From 1c143481da102e672e0d7227ae7ee24cb71d4146 Mon Sep 17 00:00:00 2001 From: James Wragg Date: Tue, 22 Aug 2023 14:55:29 +0100 Subject: [PATCH 1/3] migrate to sass --- lib/public/css/main.build.css | 2714 ++--- lib/public/css/main.build.css.map | 2 +- lib/public/css/main.build.min.css | 2 +- lib/public/js/main.build.js | 391 +- lib/public/js/main.build.min.js | 2 +- package-lock.json | 15237 +++++++++++++++------------- package.json | 4 +- 7 files changed, 9925 insertions(+), 8427 deletions(-) diff --git a/lib/public/css/main.build.css b/lib/public/css/main.build.css index a146030..af3a884 100644 --- a/lib/public/css/main.build.css +++ b/lib/public/css/main.build.css @@ -1,18 +1,11 @@ @import url("https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,500,600,700"); @import url("https://fonts.googleapis.com/css?family=Inconsolata:400,500"); * { - font-family: 'Nunito Sans', sans-serif; } + font-family: "Nunito Sans", sans-serif; +} -.hero__img__content .code, .markdown-body a code, -.markdown-body li code, -.markdown-body h1 code, -.markdown-body h2 code, -.markdown-body h3 code, -.markdown-body h4 code, -.markdown-body h5 code, -.markdown-body h6 code, -.markdown-body p code, -.markdown-body pre code, .markdown-body a span, +.markdown-body .highlight pre, +.markdown-body .highlight pre > code, .markdown-body a span, .markdown-body li span, .markdown-body h1 span, .markdown-body h2 span, @@ -21,110 +14,144 @@ .markdown-body h5 span, .markdown-body h6 span, .markdown-body p span, -.markdown-body pre span, .markdown-body .highlight pre, -.markdown-body .highlight pre > code { - font-family: 'Inconsolata', monospace; } +.markdown-body pre span, .markdown-body a code, +.markdown-body li code, +.markdown-body h1 code, +.markdown-body h2 code, +.markdown-body h3 code, +.markdown-body h4 code, +.markdown-body h5 code, +.markdown-body h6 code, +.markdown-body p code, +.markdown-body pre code, .hero__img__content .code { + font-family: "Inconsolata", monospace; +} * { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; - text-rendering: optimizeLegibility; } + text-rendering: optimizeLegibility; +} .l-navigablecontent { - padding-top: 40px; } - @media only screen and (min-width: 481px) { - .l-navigablecontent { - margin-top: 64px; } } - .l-navigablecontent .wrapper > div, .l-navigablecontent .footer__wrapper > div, .l-navigablecontent .hero__wrapper > div, .l-navigablecontent .highlight__wrapper > div, .l-navigablecontent .sponsor__wrapper > div, .l-navigablecontent .newsletter__wrapper > div { - margin: 0 auto; - margin-bottom: calc(2rem + 60px); - padding-bottom: calc(2rem + 64px); } - @media only screen and (min-width: 641px) { - .l-navigablecontent .wrapper > div, .l-navigablecontent .footer__wrapper > div, .l-navigablecontent .hero__wrapper > div, .l-navigablecontent .highlight__wrapper > div, .l-navigablecontent .sponsor__wrapper > div, .l-navigablecontent .newsletter__wrapper > div { - margin-bottom: 2rem; - margin-left: 300px; - max-width: 768px; } } + padding-top: 40px; +} +@media only screen and (min-width:481px) { + .l-navigablecontent { + margin-top: 64px; + } +} +.l-navigablecontent .wrapper > div, .l-navigablecontent .newsletter__wrapper > div, .l-navigablecontent .sponsor__wrapper > div, .l-navigablecontent .highlight__wrapper > div, .l-navigablecontent .hero__wrapper > div, .l-navigablecontent .footer__wrapper > div { + margin: 0 auto; + margin-bottom: calc(2rem + 60px); + padding-bottom: calc(2rem + 64px); +} +@media only screen and (min-width:641px) { + .l-navigablecontent .wrapper > div, .l-navigablecontent .newsletter__wrapper > div, .l-navigablecontent .sponsor__wrapper > div, .l-navigablecontent .highlight__wrapper > div, .l-navigablecontent .hero__wrapper > div, .l-navigablecontent .footer__wrapper > div { + margin-bottom: 2rem; + margin-left: 300px; + max-width: 768px; + } +} +.l-navigablecontent .wrapper--disabled::before { + background: rgba(0, 0, 0, 0.2); + bottom: 0; + content: ""; + display: block; + height: 100%; + left: 0; + position: fixed; + right: 0; + top: 0; + width: 100%; + z-index: 1; +} +@media only screen and (min-width:641px) { .l-navigablecontent .wrapper--disabled::before { - background: rgba(0, 0, 0, 0.2); - bottom: 0; - content: ''; - display: block; - height: 100%; - left: 0; - position: fixed; - right: 0; - top: 0; - width: 100%; - z-index: 1; } - @media only screen and (min-width: 641px) { - .l-navigablecontent .wrapper--disabled::before { - display: none; - visibility: hidden; } } + display: none; + visibility: hidden; + } +} +.l-navigablecontent__nav { + background-color: #fff; + border-bottom: 0; + bottom: 0; + flex: 1; + left: 0; + overflow-x: hidden; + overflow-y: auto; + position: fixed; + top: 0; + transition: ease-in-out width 0.1s; + width: 0; + z-index: 2; +} +@media only screen and (min-width:641px) { .l-navigablecontent__nav { - background-color: #fff; - border-bottom: 0; - bottom: 0; - flex: 1; - left: 0; - overflow-x: hidden; - overflow-y: auto; - position: fixed; - top: 0; - transition: ease-in-out width .1s; - width: 0; - z-index: 2; } - @media only screen and (min-width: 641px) { - .l-navigablecontent__nav { - border-right: 1px solid #e2e2e2; - top: 64px; - width: 300px; } } - .l-navigablecontent__nav--open { - box-shadow: 0 0 15px rgba(0, 0, 0, 0.4); - width: 90%; } - @media only screen and (min-width: 641px) { - .l-navigablecontent__nav--open { - box-shadow: none; - width: 300px; } } + border-right: 1px solid #e2e2e2; + top: 64px; + width: 300px; + } +} +.l-navigablecontent__nav--open { + box-shadow: 0 0 15px rgba(0, 0, 0, 0.4); + width: 90%; +} +@media only screen and (min-width:641px) { + .l-navigablecontent__nav--open { + box-shadow: none; + width: 300px; + } +} +.l-navigablecontent__mobile-controls { + background-color: #fff; + border-top: 1px solid #e2e2e2; + bottom: 0; + display: flex; + flex-direction: row; + height: 60px; + left: 0; + position: fixed; + right: 0; + width: 100%; + z-index: 1; +} +@media only screen and (min-width:641px) { .l-navigablecontent__mobile-controls { - background-color: #fff; - border-top: 1px solid #e2e2e2; - bottom: 0; - display: flex; - flex-direction: row; - height: 60px; - left: 0; - position: fixed; - right: 0; - width: 100%; - z-index: 1; } - @media only screen and (min-width: 641px) { - .l-navigablecontent__mobile-controls { - display: none; } } - .l-navigablecontent__control-item { - align-content: stretch; - align-self: center; - background: none; - border: 0; - border-radius: 50%; - height: 50px; - margin: 0 .5rem; - outline: none; - transition: ease-in-out background-color .05s; - width: 50px; } - .l-navigablecontent__control-item:active { - background-color: rgba(0, 0, 0, 0.2); - border-radius: 50%; } - .l-navigablecontent__control-item img { - height: 25px; - vertical-align: middle; - width: 25px; } - .l-navigablecontent__control-item--left { - justify-content: flex-start; } - .l-navigablecontent__control-item--right { - margin-left: auto; } - .l-navigablecontent__control-item--right img { - height: 20px; - width: 20px; } + display: none; + } +} +.l-navigablecontent__control-item { + align-content: stretch; + align-self: center; + background: none; + border: 0; + border-radius: 50%; + height: 50px; + margin: 0 0.5rem; + outline: none; + transition: ease-in-out background-color 0.05s; + width: 50px; +} +.l-navigablecontent__control-item:active { + background-color: rgba(0, 0, 0, 0.2); + border-radius: 50%; +} +.l-navigablecontent__control-item img { + height: 25px; + vertical-align: middle; + width: 25px; +} +.l-navigablecontent__control-item--left { + justify-content: flex-start; +} +.l-navigablecontent__control-item--right { + margin-left: auto; +} +.l-navigablecontent__control-item--right img { + height: 20px; + width: 20px; +} .nav { background-image: url("/public/img/header-background.jpg"); @@ -132,281 +159,361 @@ border-bottom: 1px solid transparent; box-sizing: border-box; display: flex; - padding: 0 .5rem; - width: 100%; } - @media only screen and (min-width: 481px) { - .nav { - height: 64px; } } + padding: 0 0.5rem; + width: 100%; +} +@media only screen and (min-width:481px) { + .nav { + height: 64px; + } +} +.nav__wrapper { + width: 100%; +} +@media only screen and (min-width:481px) { .nav__wrapper { - width: 100%; } - @media only screen and (min-width: 481px) { - .nav__wrapper { - display: flex; } } + display: flex; + } +} +.nav__logo { + height: 40px; + margin: 0.5rem; + width: auto; +} +@media only screen and (min-width:481px) { .nav__logo { - height: 40px; - margin: .5rem; - width: auto; } - @media only screen and (min-width: 481px) { - .nav__logo { - margin-left: 1.25rem; } } - .nav__logo__wrapper { - align-items: center; - display: flex; - flex: auto 0; - justify-content: center; } - @media only screen and (min-width: 481px) { - .nav__logo__wrapper { - justify-content: space-between; } } + margin-left: 1.25rem; + } +} +.nav__logo__wrapper { + align-items: center; + display: flex; + flex: auto 0; + justify-content: center; +} +@media only screen and (min-width:481px) { + .nav__logo__wrapper { + justify-content: space-between; + } +} +.nav__icon { + align-self: center; + display: inline-block; + height: 35px; + margin-left: 1rem; + position: relative; + width: 25px; +} +@media only screen and (max-width: 360px) { .nav__icon { - align-self: center; - display: inline-block; - height: 35px; - margin-left: 1rem; + height: 30px; + margin-left: 0.5rem; + width: 20px; + } +} +@media only screen and (min-width:481px) { + .nav__icon { + margin: 0 1rem; position: relative; - width: 25px; } - @media only screen and (max-width: 360px) { - .nav__icon { - height: 30px; - margin-left: .5rem; - width: 20px; } } - @media only screen and (min-width: 481px) { - .nav__icon { - margin: 0 1rem; - position: relative; - top: 5px; } } - .nav__dropdown { - background-color: #f87f1e; - display: none; + top: 5px; + } +} +.nav__dropdown { + background-color: #f87f1e; + display: none; + font-size: 1rem; + margin-left: 0.5rem; +} +.nav__item { + box-sizing: border-box; + color: #fff; + display: inline-block; + font-size: 0.9rem; + font-weight: 500; + height: 100%; + letter-spacing: 0.25px; + padding: 0 0.5rem; + position: relative; + text-decoration: none; +} +.nav__item:first-of-type { + padding-left: 0; +} +@media only screen and (min-width:481px) { + .nav__item { font-size: 1rem; - margin-left: .5rem; } + margin: 0 1rem; + padding: 0.5rem 0.5rem 0 0; + } +} +@media only screen and (min-width:1025px) { .nav__item { - box-sizing: border-box; - color: #fff; - display: inline-block; - font-size: .9rem; - font-weight: 500; - height: 100%; - letter-spacing: .25px; - padding: 0 .5rem; - position: relative; - text-decoration: none; } - .nav__item:first-of-type { - padding-left: 0; } - @media only screen and (min-width: 481px) { - .nav__item { - font-size: 1rem; - margin: 0 1rem; - padding: .5rem .5rem 0 0; } } - @media only screen and (min-width: 1025px) { - .nav__item { - padding: .5rem .5rem 0; } } - .nav__item::before { - content: ''; - display: inline-block; - height: 100%; - vertical-align: middle; } - .nav__item::after { - border-bottom: solid 5px transparent; - bottom: -1px; - content: ''; - display: block; - margin-top: 7px; - position: relative; - transition: ease-in-out border-bottom .1s; } - @media only screen and (min-width: 481px) { - .nav__item::after { - margin-top: 0; - top: -4px; } } - .nav__item--active::after, .nav__item:hover::after { - border-bottom: solid 5px #eecd09; } - .nav__item:hover > .nav__item--dropdown { - display: none; } - .nav__item__wrapper { - align-items: flex-end; - display: flex; - flex: auto; - flex-direction: row; - flex-wrap: wrap; - justify-content: center; - min-height: 30px; } - @media only screen and (min-width: 481px) { - .nav__item__wrapper { - align-items: center; - justify-content: flex-end; } } + padding: 0.5rem 0.5rem 0; + } +} +.nav__item::before { + content: ""; + display: inline-block; + height: 100%; + vertical-align: middle; +} +.nav__item::after { + border-bottom: solid 5px transparent; + bottom: -1px; + content: ""; + display: block; + margin-top: 7px; + position: relative; + transition: ease-in-out border-bottom 0.1s; +} +@media only screen and (min-width:481px) { + .nav__item::after { + margin-top: 0; + top: -4px; + } +} +.nav__item--active::after, .nav__item:hover::after { + border-bottom: solid 5px #eecd09; +} +.nav__item:hover > .nav__item--dropdown { + display: none; +} +.nav__item__wrapper { + align-items: flex-end; + display: flex; + flex: auto; + flex-direction: row; + flex-wrap: wrap; + justify-content: center; + min-height: 30px; +} +@media only screen and (min-width:481px) { + .nav__item__wrapper { + align-items: center; + justify-content: flex-end; + } +} .getting-started-page .nav, .docs-detail-page .nav, .best-practices-detail-page .nav { left: 0; - right: 0; } - @media only screen and (min-width: 481px) { - .getting-started-page .nav, - .docs-detail-page .nav, - .best-practices-detail-page .nav { - position: fixed; } } + right: 0; +} +@media only screen and (min-width:481px) { + .getting-started-page .nav, + .docs-detail-page .nav, + .best-practices-detail-page .nav { + position: fixed; + } +} .home-page .nav { background: transparent; border-bottom: 1px solid #f3b66e; - position: absolute; } + position: absolute; +} +.home-page .nav__item::after { + bottom: 0; +} +@media only screen and (min-width:481px) { .home-page .nav__item::after { - bottom: 0; } - @media only screen and (min-width: 481px) { - .home-page .nav__item::after { - top: -5px; } } + top: -5px; + } +} .sidenav .sidenav__sections { - padding: .75rem 0; } - .sidenav .sidenav__sections > ul { - padding: 0; } - .sidenav .sidenav__sections .sidenav__section-item { - border-left: 4px solid transparent; - border-right: 1.5rem solid transparent; - color: inherit; - display: block; - font-size: 14px; - font-weight: 400; - overflow: hidden; - padding: .75rem 0 .75rem .25rem; - text-decoration: none; - text-overflow: ellipsis; - white-space: nowrap; } - .sidenav .sidenav__sections .sidenav__section-item--indent-1 { - padding-left: 1.5rem; } - .sidenav .sidenav__sections .sidenav__section-item--indent-2 { - padding-left: 2.5rem; } - .sidenav .sidenav__sections .sidenav__section-item--indent-3 { - padding-left: 3.5rem; } - .sidenav .sidenav__sections .sidenav__section-item--indent-4 { - padding-left: 4.5rem; } - .sidenav .sidenav__sections .sidenav__section-item--indent-5, .sidenav .sidenav__sections .sidenav__section-item--indent-6 { - padding-left: 5.5rem; } - .sidenav .sidenav__sections .sidenav__section-item code { - color: #333; - font-size: 100%; } - .sidenav .sidenav__sections .sidenav__section-item--active { - border-left: 4px solid #f87f1e; - color: #f87f1e; - font-weight: bold; } - .sidenav .sidenav__sections .sidenav__section-item:hover { - background-color: #f87f1e; - color: #fff; } - + padding: 0.75rem 0; +} +.sidenav .sidenav__sections > ul { + padding: 0; +} +.sidenav .sidenav__sections .sidenav__section-item { + border-left: 4px solid transparent; + border-right: 1.5rem solid transparent; + color: inherit; + display: block; + font-size: 14px; + font-weight: 400; + overflow: hidden; + padding: 0.75rem 0 0.75rem 0.25rem; + text-decoration: none; + text-overflow: ellipsis; + white-space: nowrap; +} +.sidenav .sidenav__sections .sidenav__section-item--indent-1 { + padding-left: 1.5rem; +} +.sidenav .sidenav__sections .sidenav__section-item--indent-2 { + padding-left: 2.5rem; +} +.sidenav .sidenav__sections .sidenav__section-item--indent-3 { + padding-left: 3.5rem; +} +.sidenav .sidenav__sections .sidenav__section-item--indent-4 { + padding-left: 4.5rem; +} +.sidenav .sidenav__sections .sidenav__section-item--indent-5, .sidenav .sidenav__sections .sidenav__section-item--indent-6 { + padding-left: 5.5rem; +} +.sidenav .sidenav__sections .sidenav__section-item code { + color: #333; + font-size: 100%; +} +.sidenav .sidenav__sections .sidenav__section-item--active { + border-left: 4px solid #f87f1e; + color: #f87f1e; + font-weight: bold; +} +.sidenav .sidenav__sections .sidenav__section-item:hover { + background-color: #f87f1e; + color: #fff; +} .sidenav .sidenav__others { border-top: 1px solid #e2e2e2; margin: 0; - padding: .5rem 0 3.5rem; } - .sidenav .sidenav__others .sidenav__other-item img { - margin: 0 1rem; - opacity: 0; - transition: linear opacity .1s; - transition-delay: .05s; - width: 20px; } - .sidenav .sidenav__others .sidenav__other-item--active img { - opacity: 1; } - .sidenav .sidenav__others .sidenav__other-item a { - color: #f87f1e; - display: block; - font-size: 15px; - font-weight: 600; - list-style: none; - overflow: hidden; - padding: .5rem 1.5rem .5rem .25rem; - text-decoration: none; - text-overflow: ellipsis; - white-space: nowrap; } - .sidenav .sidenav__others .sidenav__other-item a:hover { - background-color: #f87f1e; - color: #fff; } - .sidenav .sidenav__others .sidenav__other-item a:hover img { - opacity: 1; } + padding: 0.5rem 0 3.5rem; +} +.sidenav .sidenav__others .sidenav__other-item img { + margin: 0 1rem; + opacity: 0; + transition: linear opacity 0.1s; + transition-delay: 0.05s; + width: 20px; +} +.sidenav .sidenav__others .sidenav__other-item--active img { + opacity: 1; +} +.sidenav .sidenav__others .sidenav__other-item a { + color: #f87f1e; + display: block; + font-size: 15px; + font-weight: 600; + list-style: none; + overflow: hidden; + padding: 0.5rem 1.5rem 0.5rem 0.25rem; + text-decoration: none; + text-overflow: ellipsis; + white-space: nowrap; +} +.sidenav .sidenav__others .sidenav__other-item a:hover { + background-color: #f87f1e; + color: #fff; +} +.sidenav .sidenav__others .sidenav__other-item a:hover img { + opacity: 1; +} .footer { background-color: #26272a; color: #fff; display: block; padding: 4rem 0; - width: 100%; } - @media only screen and (min-width: 1025px) { - .footer { - background-image: url("/public/img/hapi-pal-footer.svg"); - background-position: 85% 100%; - background-repeat: no-repeat; - background-size: 35%; } } + width: 100%; +} +@media only screen and (min-width:1025px) { + .footer { + background-image: url("/public/img/hapi-pal-footer.svg"); + background-position: 85% 100%; + background-repeat: no-repeat; + background-size: 35%; + } +} +.footer__flex { + align-items: center; + display: flex; + flex-direction: column; +} +@media only screen and (min-width:641px) { + .footer__flex { + align-items: flex-start; + flex-direction: row; + justify-content: stretch; + } +} +@media only screen and (min-width:1025px) { .footer__flex { - align-items: center; display: flex; - flex-direction: column; } - @media only screen and (min-width: 641px) { - .footer__flex { - align-items: flex-start; - flex-direction: row; - justify-content: stretch; } } - @media only screen and (min-width: 1025px) { - .footer__flex { - display: flex; } } - .footer__flex__left { - color: #fff; } - .footer__flex__right { - display: flex; - justify-content: space-between; } - @media only screen and (min-width: 641px) { - .footer__flex__right { - align-self: flex-start; - padding-left: 15%; } } - .footer__img { - width: 10rem; } + } +} +.footer__flex__left { + color: #fff; +} +.footer__flex__right { + display: flex; + justify-content: space-between; +} +@media only screen and (min-width:641px) { + .footer__flex__right { + align-self: flex-start; + padding-left: 15%; + } +} +.footer__img { + width: 10rem; +} +.footer__copyright { + align-items: center; + color: #fff; + font-size: 0.8rem; + font-weight: 400; + justify-content: flex-end; + text-align: center; +} +@media only screen and (min-width:641px) { .footer__copyright { - align-items: center; - color: #fff; - font-size: .8rem; - font-weight: 400; - justify-content: flex-end; - text-align: center; } - @media only screen and (min-width: 641px) { - .footer__copyright { - text-align: left; } } - .footer__copyright img { - height: 1.2rem; - position: relative; - top: 4px; - width: 1.2rem; } + text-align: left; + } +} +.footer__copyright img { + height: 1.2rem; + position: relative; + top: 4px; + width: 1.2rem; +} +.footer__nav { + margin: 2rem 0; + padding: 0 2rem; +} +@media only screen and (min-width:641px) { .footer__nav { - margin: 2rem 0; - padding: 0 2rem; } - @media only screen and (min-width: 641px) { - .footer__nav { - margin: 0; - padding: 0; - padding-right: 4rem; } } - .footer__nav__header { - font-size: 1rem; - font-weight: 700; - padding-bottom: 1rem; - padding-left: .3rem; } - .footer__nav__item { - color: #fff; - display: block; - font-size: .9rem; - font-weight: 400; - letter-spacing: 1px; - padding: .25rem .3rem; - position: relative; - text-decoration: none; - transition: ease-in-out all .2s; - width: -webkit-fit-content; - width: -moz-fit-content; - width: fit-content; } - .footer__nav__item--active { - border: 0; } - .footer__nav__item:hover { - background: #f87f1e; - color: #fff; } + margin: 0; + padding: 0; + padding-right: 4rem; + } +} +.footer__nav__header { + font-size: 1rem; + font-weight: 700; + padding-bottom: 1rem; + padding-left: 0.3rem; +} +.footer__nav__item { + color: #fff; + display: block; + font-size: 0.9rem; + font-weight: 400; + letter-spacing: 1px; + padding: 0.25rem 0.3rem; + position: relative; + text-decoration: none; + transition: ease-in-out all 0.2s; + width: -moz-fit-content; + width: fit-content; +} +.footer__nav__item--active { + border: 0; +} +.footer__nav__item:hover { + background: #f87f1e; + color: #fff; +} .docs-detail-page .footer, .getting-started-page .footer, .best-practices-detail-page .footer { - display: none; } + display: none; +} .hero { background-color: #fe4d00; @@ -415,682 +522,868 @@ background-size: cover; color: #fff; height: auto; - padding-top: 125px; } - @media only screen and (min-width: 481px) { - .hero { - padding-top: 82px; } } - .hero__wrapper { - padding: 1.2rem 0; } - .hero__img { + padding-top: 125px; +} +@media only screen and (min-width:481px) { + .hero { + padding-top: 82px; + } +} +.hero__wrapper { + padding: 1.2rem 0; +} +.hero__img { + display: block; + margin: 0 auto; +} +.hero__img--mobile { + width: 50vw; +} +@media only screen and (min-width:481px) { + .hero__img--mobile { + display: none; + } +} +.hero__img--full { + display: none; + margin-top: 2rem; + max-width: 600px; + width: 70vw; +} +@media only screen and (min-width:481px) { + .hero__img--full { display: block; - margin: 0 auto; } - .hero__img--mobile { - width: 50vw; } - @media only screen and (min-width: 481px) { - .hero__img--mobile { - display: none; } } - .hero__img--full { - display: none; - margin-top: 2rem; - max-width: 600px; - width: 70vw; } - @media only screen and (min-width: 481px) { - .hero__img--full { - display: block; } } - .hero__img__content { - margin: 0 auto; - max-width: 500px; - padding-bottom: 2rem; } - .hero__img__content p { - font-size: 1.1rem; - font-weight: 400; - text-align: center; } - @media only screen and (min-width: 481px) { - .hero__img__content p { - font-size: 1.2rem; } } - @media only screen and (min-width: 641px) { - .hero__img__content p { - font-size: 1.3rem; } } - @media only screen and (min-width: 1025px) { - .hero__img__content p { - font-size: 1.4rem; } } - .hero__img__content .code { - background-color: #1c1c20; - border-radius: 5px; - font-size: 1rem; - font-weight: 300; - padding: 1rem; - position: relative; - text-align: left; - transition: ease .6s all; } - @media only screen and (min-width: 481px) { - .hero__img__content .code { - font-size: 1.1rem; } } - @media only screen and (min-width: 641px) { - .hero__img__content .code { - font-size: 1.2rem; } } - .hero__img__content .code:hover { - background-color: #111114; } - .hero__img__content .code:hover + .code__shadow { - opacity: .4; - transform: translateY(4px); } - .hero__img__content .code__shadow { - opacity: .6; - position: relative; - top: 2rem; - transition: ease .6s all; - width: 100%; } - .hero__img__content .code__cursor { - -webkit-animation: flash; - animation: flash; - -webkit-animation-duration: 2.5s; - animation-duration: 2.5s; - -webkit-animation-fill-mode: both; - animation-fill-mode: both; - -webkit-animation-iteration-count: infinite; - animation-iteration-count: infinite; - background: #eecd09; - display: inline-block; - height: 1.3rem; - vertical-align: middle; - width: 11px; } - .hero__img__content .code__copy { - background-color: transparent; - border-radius: 0 5px 5px 0; - color: #fff; - cursor: pointer; - display: none; - height: 100%; - padding: 0 1rem; - position: absolute; - right: 0; - top: 0; } - @media only screen and (min-width: 481px) { - .hero__img__content .code__copy { - display: flex; } } - .hero__img__content .code__copy:hover .code__copy__img { - background-position: -20px 0, 0 0; } - .hero__img__content .code__copy__img { - align-self: center; - background-image: url("/public/img/copy-link.svg"), url("/public/img/copy-link-hover.svg"); - background-position: 0 0, -20px 0; - background-repeat: no-repeat; - background-size: cover; - height: 23px; - width: 20px; } - .hero__img__content .code span { - display: inline-block; - font-family: monospace; - font-size: 1rem; - font-weight: 300; - vertical-align: middle; } - @media only screen and (min-width: 481px) { - .hero__img__content .code span { - font-size: 1.2rem; } } - .hero__img__content .code__value { - background-color: transparent; - border: 0; - color: #fff; - display: inline-block; - font-family: monospace; - font-size: 1.1rem; - font-weight: 300; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - vertical-align: middle; } - @media only screen and (min-width: 481px) { - .hero__img__content .code__value { - font-size: 1.3rem; } } - -@-webkit-keyframes flash { - from, 50%, to { - opacity: 1; } - 25%, 75% { - opacity: 0; } } - + } +} +.hero__img__content { + margin: 0 auto; + max-width: 500px; + padding-bottom: 2rem; +} +.hero__img__content p { + font-size: 1.1rem; + font-weight: 400; + text-align: center; +} +@media only screen and (min-width:481px) { + .hero__img__content p { + font-size: 1.2rem; + } +} +@media only screen and (min-width:641px) { + .hero__img__content p { + font-size: 1.3rem; + } +} +@media only screen and (min-width:1025px) { + .hero__img__content p { + font-size: 1.4rem; + } +} +.hero__img__content .code { + background-color: #1c1c20; + border-radius: 5px; + font-size: 1rem; + font-weight: 300; + padding: 1rem; + position: relative; + text-align: left; + transition: ease 0.6s all; +} +@media only screen and (min-width:481px) { + .hero__img__content .code { + font-size: 1.1rem; + } +} +@media only screen and (min-width:641px) { + .hero__img__content .code { + font-size: 1.2rem; + } +} +.hero__img__content .code:hover { + background-color: #111114; +} +.hero__img__content .code:hover + .code__shadow { + opacity: 0.4; + transform: translateY(4px); +} +.hero__img__content .code__shadow { + opacity: 0.6; + position: relative; + top: 2rem; + transition: ease 0.6s all; + width: 100%; +} +.hero__img__content .code__cursor { + animation: flash; + animation-duration: 2.5s; + animation-fill-mode: both; + animation-iteration-count: infinite; + background: #eecd09; + display: inline-block; + height: 1.3rem; + vertical-align: middle; + width: 11px; +} +.hero__img__content .code__copy { + background-color: transparent; + border-radius: 0 5px 5px 0; + color: #fff; + cursor: pointer; + display: none; + height: 100%; + padding: 0 1rem; + position: absolute; + right: 0; + top: 0; +} +@media only screen and (min-width:481px) { + .hero__img__content .code__copy { + display: flex; + } +} +.hero__img__content .code__copy:hover .code__copy__img { + background-position: -20px 0, 0 0; +} +.hero__img__content .code__copy__img { + align-self: center; + background-image: url("/public/img/copy-link.svg"), url("/public/img/copy-link-hover.svg"); + background-position: 0 0, -20px 0; + background-repeat: no-repeat; + background-size: cover; + height: 23px; + width: 20px; +} +.hero__img__content .code span { + display: inline-block; + font-family: monospace; + font-size: 1rem; + font-weight: 300; + vertical-align: middle; +} +@media only screen and (min-width:481px) { + .hero__img__content .code span { + font-size: 1.2rem; + } +} +.hero__img__content .code__value { + background-color: transparent; + border: 0; + color: #fff; + display: inline-block; + font-family: monospace; + font-size: 1.1rem; + font-weight: 300; + -webkit-user-select: text; + -moz-user-select: text; + user-select: text; + vertical-align: middle; +} +@media only screen and (min-width:481px) { + .hero__img__content .code__value { + font-size: 1.3rem; + } +} @keyframes flash { from, 50%, to { - opacity: 1; } + opacity: 1; + } 25%, 75% { - opacity: 0; } } + opacity: 0; + } +} .highlight { background: #fff; color: #444; margin: 0; - text-align: center; } - @media only screen and (max-width: 360px), only screen and (min-width: 361px) and (max-width: 480px) { - .highlight { - border-bottom: solid 2px #e2e2e2; } } - .highlight h2 { - font-size: 2.1rem; - font-weight: 400; - margin-bottom: .5em; } - .highlight p { - font-size: 1rem; - margin: 1rem auto; - max-width: 800px; } - .highlight p:first-of-type { - font-size: 1.25rem; - color: #777777; - max-width: 500px; } - .highlight a { - color: #f87f1e; - text-decoration: none; } - .highlight a:hover { - text-decoration: underline; } + text-align: center; +} +@media only screen and (max-width: 360px), only screen and (min-width:361px) and (max-width:480px) { + .highlight { + border-bottom: solid 2px #e2e2e2; + } +} +.highlight h2 { + font-size: 2.1rem; + font-weight: 400; + margin-bottom: 0.5em; +} +.highlight p { + font-size: 1rem; + margin: 1rem auto; + max-width: 800px; +} +.highlight p:first-of-type { + font-size: 1.25rem; + color: #777777; + max-width: 500px; +} +.highlight a { + color: #f87f1e; + text-decoration: none; +} +.highlight a:hover { + text-decoration: underline; +} +.highlight__wrapper { + padding: 1rem 0; +} +@media only screen and (min-width:481px) { .highlight__wrapper { - padding: 1rem 0; } - @media only screen and (min-width: 481px) { - .highlight__wrapper { - border-bottom: solid 1px #e2e2e2; } } - @media only screen and (min-width: 641px) { - .highlight__grid { - display: grid; - grid-template-columns: 1fr 1fr; - margin-top: 2rem; } } - @media only screen and (min-width: 1025px) { - .highlight__grid { - grid-template-columns: 1fr 1fr 1fr; } } + border-bottom: solid 1px #e2e2e2; + } +} +@media only screen and (min-width:641px) { + .highlight__grid { + display: grid; + grid-template-columns: 1fr 1fr; + margin-top: 2rem; + } +} +@media only screen and (min-width:1025px) { + .highlight__grid { + grid-template-columns: 1fr 1fr 1fr; + } +} +.highlight__grid__item { + display: none; +} +.highlight__grid__item.orange { + display: block; +} +@media only screen and (min-width:641px) { + .highlight__grid__item.green { + display: block; + } +} +@media only screen and (min-width:1025px) { .highlight__grid__item { - display: none; } - .highlight__grid__item.orange { - display: block; } - @media only screen and (min-width: 641px) { - .highlight__grid__item.green { - display: block; } } - @media only screen and (min-width: 1025px) { - .highlight__grid__item { - display: block; } } - .highlight__grid__item > a { - color: #444; } - .highlight__grid__item > a:hover { - text-decoration: none; } - .highlight__grid__item > a:hover .highlight__grid__item__img { - background-position: -200px 0, 0 0, 200px 0; } - .highlight__grid__item > a:hover .highlight__grid__item__content.orange h5 { - color: #f87f1e; } - .highlight__grid__item > a:hover .highlight__grid__item__content.blue h5 { - color: #5d7ed2; } - .highlight__grid__item > a:hover .highlight__grid__item__content.green h5 { - color: #0ec300; } - .highlight__grid__item > a:active .highlight__grid__item__img { - background-position: -400px 0, -200px 0, 0 0; } - .highlight__grid__item.blue h6 a { - color: #5d7ed2; } - .highlight__grid__item__img { - background-position: 0 0, 200px 0, 400px 0; - background-repeat: no-repeat; - background-size: cover; - height: 200px; - margin: 0 auto; - width: 200px; } - .highlight__grid__item__img:hover { - background-position: -200px 0, 0 0, 200px 0; } - .highlight__grid__item__img:active { - background-position: -400px 0, -200px 0, 0 0; } - .highlight__grid__item__img.orange { - background-image: url("/public/img/orange-link-alt.png"), url("/public/img/orange-link-hover.png"), url("/public/img/orange-link.png"); } - .highlight__grid__item__img.green { - background-image: url("/public/img/green-link-alt.png"), url("/public/img/green-link-hover.png"), url("/public/img/green-link.png"); } - .highlight__grid__item__img.blue { - background-image: url("/public/img/blue-link-alt.png"), url("/public/img/blue-link-hover.png"), url("/public/img/blue-link.png"); } - .highlight__grid__item__content h5 { - font-size: 2rem; - font-weight: 600; - margin: 0; } - .highlight__grid__item h6 { - font-size: 1rem; - font-weight: 400; - margin: 1rem; } - .highlight__subtext { - margin: 3rem 0; } - @media only screen and (min-width: 641px) { - .highlight__subtext span.green { - display: none; } } - @media only screen and (min-width: 1025px) { - .highlight__subtext span.blue { - display: none; } } - .highlight__action { - align-items: center; - display: flex; - justify-content: center; - margin: 4rem 0 3rem; } - .highlight__action a { - align-items: center; - color: #444; - display: flex; - font-size: 1.4rem; - font-weight: 400; - text-decoration: none; } - @media only screen and (min-width: 481px) { - .highlight__action a { - font-size: 1.6rem; } } - .highlight__action a:hover { - text-decoration: none; - color: #f87f1e; } - .highlight__action a:hover .highlight__action__icon { - background-image: url("/public/img/button-orange.svg"), url("/public/img/button.svg"); - transform: rotate(45deg); } - .highlight__action a:active .highlight__action__icon { - transform: rotate(90deg); } - .highlight__action__icon { - background-image: url("/public/img/button.svg"), url("/public/img/button-orange.svg"); - background-position: 0 0, 0 -30px; - background-size: cover; - height: 30px; - margin-right: 10px; - transition: ease-in-out transform .1s; - width: 30px; } + display: block; + } +} +.highlight__grid__item > a { + color: #444; +} +.highlight__grid__item > a:hover { + text-decoration: none; +} +.highlight__grid__item > a:hover .highlight__grid__item__img { + background-position: -200px 0, 0 0, 200px 0; +} +.highlight__grid__item > a:hover .highlight__grid__item__content.orange h5 { + color: #f87f1e; +} +.highlight__grid__item > a:hover .highlight__grid__item__content.blue h5 { + color: #5d7ed2; +} +.highlight__grid__item > a:hover .highlight__grid__item__content.green h5 { + color: #0ec300; +} +.highlight__grid__item > a:active .highlight__grid__item__img { + background-position: -400px 0, -200px 0, 0 0; +} +.highlight__grid__item.blue h6 a { + color: #5d7ed2; +} +.highlight__grid__item__img { + background-position: 0 0, 200px 0, 400px 0; + background-repeat: no-repeat; + background-size: cover; + height: 200px; + margin: 0 auto; + width: 200px; +} +.highlight__grid__item__img:hover { + background-position: -200px 0, 0 0, 200px 0; +} +.highlight__grid__item__img:active { + background-position: -400px 0, -200px 0, 0 0; +} +.highlight__grid__item__img.orange { + background-image: url("/public/img/orange-link-alt.png"), url("/public/img/orange-link-hover.png"), url("/public/img/orange-link.png"); +} +.highlight__grid__item__img.green { + background-image: url("/public/img/green-link-alt.png"), url("/public/img/green-link-hover.png"), url("/public/img/green-link.png"); +} +.highlight__grid__item__img.blue { + background-image: url("/public/img/blue-link-alt.png"), url("/public/img/blue-link-hover.png"), url("/public/img/blue-link.png"); +} +.highlight__grid__item__content h5 { + font-size: 2rem; + font-weight: 600; + margin: 0; +} +.highlight__grid__item h6 { + font-size: 1rem; + font-weight: 400; + margin: 1rem; +} +.highlight__subtext { + margin: 3rem 0; +} +@media only screen and (min-width:641px) { + .highlight__subtext span.green { + display: none; + } +} +@media only screen and (min-width:1025px) { + .highlight__subtext span.blue { + display: none; + } +} +.highlight__action { + align-items: center; + display: flex; + justify-content: center; + margin: 4rem 0 3rem; +} +.highlight__action a { + align-items: center; + color: #444; + display: flex; + font-size: 1.4rem; + font-weight: 400; + text-decoration: none; +} +@media only screen and (min-width:481px) { + .highlight__action a { + font-size: 1.6rem; + } +} +.highlight__action a:hover { + text-decoration: none; + color: #f87f1e; +} +.highlight__action a:hover .highlight__action__icon { + background-image: url("/public/img/button-orange.svg"), url("/public/img/button.svg"); + transform: rotate(45deg); +} +.highlight__action a:active .highlight__action__icon { + transform: rotate(90deg); +} +.highlight__action__icon { + background-image: url("/public/img/button.svg"), url("/public/img/button-orange.svg"); + background-position: 0 0, 0 -30px; + background-size: cover; + height: 30px; + margin-right: 10px; + transition: ease-in-out transform 0.1s; + width: 30px; +} .sponsor { background: #fff; color: #444; margin: 0; - text-align: center; } - .sponsor__wrapper { - padding: 4rem 0; } - @media only screen and (min-width: 1025px) { - .sponsor__grid { - display: grid; - grid-template-columns: 40% 5% 55%; - margin: 0 auto; - width: 85%; } } + text-align: center; +} +.sponsor__wrapper { + padding: 4rem 0; +} +@media only screen and (min-width:1025px) { + .sponsor__grid { + display: grid; + grid-template-columns: 40% 5% 55%; + margin: 0 auto; + width: 85%; + } +} +.sponsor h3 { + color: #e2e2e2; + font-size: 1.2rem; + font-weight: 500; + margin-top: 0; +} +@media only screen and (min-width:1025px) { .sponsor h3 { - color: #e2e2e2; - font-size: 1.2rem; - font-weight: 500; - margin-top: 0; } - @media only screen and (min-width: 1025px) { - .sponsor h3 { - margin-left: 2rem; - text-align: left; } } + margin-left: 2rem; + text-align: left; + } +} +.sponsor__img-link { + display: inline-block; + align-self: center; + justify-self: right; + max-width: 250px; + width: 50%; +} +@media only screen and (min-width:1025px) { .sponsor__img-link { - display: inline-block; - align-self: center; - justify-self: right; - max-width: 250px; - width: 50%; } - @media only screen and (min-width: 1025px) { - .sponsor__img-link { - margin-right: 3rem; } } - .sponsor__border { - border-right: 0; } + margin-right: 3rem; + } +} +.sponsor__border { + border-right: 0; +} +.sponsor__content p { + font-size: 1rem; + font-weight: 300; +} +@media only screen and (min-width:1025px) { .sponsor__content p { - font-size: 1rem; - font-weight: 300; } - @media only screen and (min-width: 1025px) { - .sponsor__content p { - margin: 0; - text-align: left; } } + margin: 0; + text-align: left; + } +} +.sponsor__content__action { + margin-top: 1rem; +} +@media only screen and (min-width:1025px) { .sponsor__content__action { - margin-top: 1rem; } - @media only screen and (min-width: 1025px) { - .sponsor__content__action { - text-align: left; } } - .sponsor__content__action a { - color: #f87f1e; - font-size: 1rem; - font-weight: 600; - text-decoration: none; } - .sponsor__content__action a:hover .sponsor__content__action__icon { - transform: translateX(3px); } - .sponsor__content__action__icon { - display: inline-block; - height: 14px; - margin-left: 3px; - transition: linear transform .1s; - vertical-align: middle; } + text-align: left; + } +} +.sponsor__content__action a { + color: #f87f1e; + font-size: 1rem; + font-weight: 600; + text-decoration: none; +} +.sponsor__content__action a:hover .sponsor__content__action__icon { + transform: translateX(3px); +} +.sponsor__content__action__icon { + display: inline-block; + height: 14px; + margin-left: 3px; + transition: linear transform 0.1s; + vertical-align: middle; +} .newsletter { background-image: url("../img/newsletter-bg-alt.jpg"); background-position: bottom; background-size: cover; - color: #fff; } + color: #fff; +} +.newsletter__wrapper { + padding: 2rem 0 4rem; +} +@media only screen and (min-width:1025px) { .newsletter__wrapper { - padding: 2rem 0 4rem; } - @media only screen and (min-width: 1025px) { - .newsletter__wrapper { - padding: 3rem 0 4rem; } } - .newsletter p { - font-size: 1.6rem; - font-weight: 300; - max-width: 85%; } + padding: 3rem 0 4rem; + } +} +.newsletter p { + font-size: 1.6rem; + font-weight: 300; + max-width: 85%; +} +.newsletter__img { + display: none; +} +@media only screen and (min-width:1025px) { .newsletter__img { - display: none; } - @media only screen and (min-width: 1025px) { - .newsletter__img { - display: inline-block; - margin-left: 4rem; - width: 15%; } } + display: inline-block; + margin-left: 4rem; + width: 15%; + } +} +.newsletter__form { + margin: 0 auto; + max-width: 400px; +} +@media only screen and (min-width:1025px) { .newsletter__form { - margin: 0 auto; - max-width: 400px; } - @media only screen and (min-width: 1025px) { - .newsletter__form { - display: inline-block; - margin-left: 2rem; - max-width: 100%; - vertical-align: top; - width: calc(80% - 4rem); } } - .newsletter__message { - display: none; - font-size: 1.25rem; - font-weight: 400; - padding-top: 1rem; } + display: inline-block; + margin-left: 2rem; + max-width: 100%; + vertical-align: top; + width: calc(80% - 4rem); + } +} +.newsletter__message { + display: none; + font-size: 1.25rem; + font-weight: 400; + padding-top: 1rem; +} +.newsletter__input { + border: 0; + border-radius: 2px; + font-size: 1.5rem; + height: 3rem; + margin: 0; + padding: 0 0 0 1rem; + width: calc(100% - 1rem); +} +@media only screen and (min-width:1025px) { .newsletter__input { - border: 0; - border-radius: 2px; - font-size: 1.5rem; - height: 3rem; - margin: 0; - padding: 0 0 0 1rem; - width: calc(100% - 1rem); } - @media only screen and (min-width: 1025px) { - .newsletter__input { - max-width: 450px; - width: 60%; } } - .newsletter__input:focus { - outline-color: #f87f1e; } - .newsletter__input--invalid { - outline-color: #af0505; - outline-style: auto; - outline-width: 5px; } - .newsletter__input--invalid:focus { - outline-color: #af0505; - outline-style: auto; } - .newsletter__input__button { - background-color: transparent; - border: 2px solid #fff; - border-radius: 2px; - color: #fff; - cursor: pointer; - font-size: 1.3rem; - height: 3rem; - margin: 1rem 0 0; - padding: 0 2rem; - transition: linear all .1s; - vertical-align: bottom; - width: 100%; } - @media only screen and (min-width: 1025px) { - .newsletter__input__button { - margin-left: 1rem; - width: auto; } } - .newsletter__input__button:hover { - background-color: #fff; - color: #f87f1e; } - .newsletter__input__button:active { - box-shadow: 0 0 10px #fff; } - .newsletter__input__button:focus { - outline: none; } + max-width: 450px; + width: 60%; + } +} +.newsletter__input:focus { + outline-color: #f87f1e; +} +.newsletter__input--invalid { + outline-color: #af0505; + outline-style: auto; + outline-width: 5px; +} +.newsletter__input--invalid:focus { + outline-color: #af0505; + outline-style: auto; +} +.newsletter__input__button { + background-color: transparent; + border: 2px solid #fff; + border-radius: 2px; + color: #fff; + cursor: pointer; + font-size: 1.3rem; + height: 3rem; + margin: 1rem 0 0; + padding: 0 2rem; + transition: linear all 0.1s; + vertical-align: bottom; + width: 100%; +} +@media only screen and (min-width:1025px) { + .newsletter__input__button { + margin-left: 1rem; + width: auto; + } +} +.newsletter__input__button:hover { + background-color: #fff; + color: #f87f1e; +} +.newsletter__input__button:active { + box-shadow: 0 0 10px #fff; +} +.newsletter__input__button:focus { + outline: none; +} .layout-list { align-items: center; background-color: #fff; color: #444; display: flex; - padding: 2rem 0 6rem; } - .layout-list h1 { - border-bottom: 1px solid #e2e2e2; - margin: 1rem; } + padding: 2rem 0 6rem; +} +.layout-list h1 { + border-bottom: 1px solid #e2e2e2; + margin: 1rem; +} +.layout-list h2 { + font-size: 2rem; + margin: 0.25rem 0; +} +@media only screen and (min-width:481px) { .layout-list h2 { - font-size: 2rem; - margin: .25rem 0; } - @media only screen and (min-width: 481px) { - .layout-list h2 { - font-size: 3rem; } } - .layout-list a { - color: #f87f1e; - display: block; - font-size: 2.5rem; - font-weight: 600; - letter-spacing: 1.25px; - list-style: none; - padding: .5rem 1rem; - text-decoration: none; } - .layout-list a:hover { - background-color: #f87f1e; - color: #fff; - transition: linear background-color color .03s; } - .layout-list a:hover p { - color: #fff; } - .layout-list a:hover .img { - background-image: url("/public/img/hapi-bolt.svg"), url("/public/img/hapi-bolt-gold.svg"); } - .layout-list a p { - color: #444; - font-size: 14px; - font-weight: 500; - letter-spacing: .25px; - margin: 0 0 1rem 30px; } - .layout-list a .img { - background-image: url("/public/img/hapi-bolt-gold.svg"), url("/public/img/hapi-bolt.svg"); - background-position: 0 0, 0 -20px; - background-size: cover; - height: 10px; - margin-top: 5px; - position: absolute; - transition: linear background-image .1s; - transition-delay: .05s; - width: 20px; } + font-size: 3rem; + } +} +.layout-list a { + color: #f87f1e; + display: block; + font-size: 2.5rem; + font-weight: 600; + letter-spacing: 1.25px; + list-style: none; + padding: 0.5rem 1rem; + text-decoration: none; +} +.layout-list a:hover { + background-color: #f87f1e; + color: #fff; + transition: linear background-color color 0.03s; +} +.layout-list a:hover p { + color: #fff; +} +.layout-list a:hover .img { + background-image: url("/public/img/hapi-bolt.svg"), url("/public/img/hapi-bolt-gold.svg"); +} +.layout-list a p { + color: #444; + font-size: 14px; + font-weight: 500; + letter-spacing: 0.25px; + margin: 0 0 1rem 30px; +} +.layout-list a .img { + background-image: url("/public/img/hapi-bolt-gold.svg"), url("/public/img/hapi-bolt.svg"); + background-position: 0 0, 0 -20px; + background-size: cover; + height: 10px; + margin-top: 5px; + position: absolute; + transition: linear background-image 0.1s; + transition-delay: 0.05s; + width: 20px; +} .best-practices-list h2 { - margin-bottom: 16px; } + margin-bottom: 16px; +} .docs-detail-page .sidenav .select-version { align-items: center; border-bottom: 1px solid #e2e2e2; display: flex; - justify-content: center; } - .docs-detail-page .sidenav .select-version p { - font-weight: bold; } - .docs-detail-page .sidenav .select-version__arrow { - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-top: 5px solid #f87f1e; - left: -20px; - pointer-events: none; - position: relative; } - .docs-detail-page .sidenav .select-version select { - -moz-appearance: none; - -webkit-appearance: none; - background-color: transparent; - border: 1px solid #e2e2e2; - border-radius: 0; - box-sizing: border-box; - display: inline-block; - font-size: 12px; - line-height: 1em; - margin: 0; - margin-left: 2rem; - padding: .5em 3em .5em 1em; - transition: ease-in-out border .02s; } - .docs-detail-page .sidenav .select-version select.version:focus { - background-repeat: no-repeat; - background-size: 5px 5px, 5px 5px, 1px 1.5em; - outline: 0; } - .docs-detail-page .sidenav .select-version select.version:-moz-focusring { - color: transparent; - text-shadow: 0; } - .docs-detail-page .sidenav .select-version select.version:hover { - border: 1px solid #f87f1e; } - + justify-content: center; +} +.docs-detail-page .sidenav .select-version p { + font-weight: bold; +} +.docs-detail-page .sidenav .select-version__arrow { + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #f87f1e; + left: -20px; + pointer-events: none; + position: relative; +} +.docs-detail-page .sidenav .select-version select { + -moz-appearance: none; + -webkit-appearance: none; + background-color: transparent; + border: 1px solid #e2e2e2; + border-radius: 0; + box-sizing: border-box; + display: inline-block; + font-size: 12px; + line-height: 1em; + margin: 0; + margin-left: 2rem; + padding: 0.5em 3em 0.5em 1em; + transition: ease-in-out border 0.02s; +} +.docs-detail-page .sidenav .select-version select.version:focus { + background-repeat: no-repeat; + background-size: 5px 5px, 5px 5px, 1px 1.5em; + outline: 0; +} +.docs-detail-page .sidenav .select-version select.version:-moz-focusring { + color: transparent; + text-shadow: 0; +} +.docs-detail-page .sidenav .select-version select.version:hover { + border: 1px solid #f87f1e; +} .docs-detail-page .md:not(:last-child) { - padding-bottom: 0; } - + padding-bottom: 0; +} .docs-detail-page div.docs-detail__pkg-links { text-align: right; margin-bottom: 0; padding-bottom: 0; height: 0; - color: #cacaca; } - .docs-detail-page div.docs-detail__pkg-links a { - color: #f87f1e; - text-decoration: none; } - .docs-detail-page div.docs-detail__pkg-links a:hover { - text-decoration: underline; } + color: #cacaca; +} +.docs-detail-page div.docs-detail__pkg-links a { + color: #f87f1e; + text-decoration: none; +} +.docs-detail-page div.docs-detail__pkg-links a:hover { + text-decoration: underline; +} .markdown-body { max-width: 978px; - padding: 1rem 0; } - .markdown-body a { - color: #f87f1e; - padding: 0 .2rem; } - .markdown-body.entry-content a { - color: #f87f1e; } - .markdown-body.entry-content a:hover { - text-decoration: underline; } - .markdown-body.entry-content a code { - color: #f87f1e; } - .markdown-body.entry-content a code:hover { - text-decoration: underline; } - .markdown-body a, - .markdown-body li, - .markdown-body h1, - .markdown-body h2, - .markdown-body h3, - .markdown-body h4, - .markdown-body h5, - .markdown-body h6, - .markdown-body p, - .markdown-body pre { - color: #444; - text-decoration: none; } - .markdown-body a code, - .markdown-body li code, - .markdown-body h1 code, - .markdown-body h2 code, - .markdown-body h3 code, - .markdown-body h4 code, - .markdown-body h5 code, - .markdown-body h6 code, - .markdown-body p code, - .markdown-body pre code { - background-color: #f7f7f7; - color: #676767; - padding: .3rem .8rem; } - .markdown-body h2 code, - .markdown-body h3 code, - .markdown-body h4 code { - font-weight: 300; } - .markdown-body h2 { - border: 0 !important; } - .markdown-body li { - font-size: 14px; } - .markdown-body li code { - padding: .2rem .4rem; } - .markdown-body blockquote { - border-left: 4px solid #f87f1e !important; - margin: 0; - margin: 1.5rem 0 !important; } - .markdown-body blockquote p { - font-weight: 500; } - .markdown-body p { - font-size: 14px; - font-weight: 500; - padding: .25rem; } - .markdown-body p code { - padding: .15rem .35rem; } + padding: 1rem 0; +} +.markdown-body a { + color: #f87f1e; + padding: 0 0.2rem; +} +.markdown-body.entry-content a { + color: #f87f1e; +} +.markdown-body.entry-content a:hover { + text-decoration: underline; +} +.markdown-body.entry-content a code { + color: #f87f1e; +} +.markdown-body.entry-content a code:hover { + text-decoration: underline; +} +.markdown-body a, +.markdown-body li, +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6, +.markdown-body p, +.markdown-body pre { + color: #444; + text-decoration: none; +} +.markdown-body a code, +.markdown-body li code, +.markdown-body h1 code, +.markdown-body h2 code, +.markdown-body h3 code, +.markdown-body h4 code, +.markdown-body h5 code, +.markdown-body h6 code, +.markdown-body p code, +.markdown-body pre code { + background-color: #f7f7f7; + color: #676767; + padding: 0.3rem 0.8rem; +} +.markdown-body h2 code, +.markdown-body h3 code, +.markdown-body h4 code { + font-weight: 300; +} +.markdown-body h2 { + border: 0 !important; +} +.markdown-body li { + font-size: 14px; +} +.markdown-body li code { + padding: 0.2rem 0.4rem; +} +.markdown-body blockquote { + border-left: 4px solid #f87f1e !important; + margin: 0; + margin: 1.5rem 0 !important; +} +.markdown-body blockquote p { + font-weight: 500; +} +.markdown-body p { + font-size: 14px; + font-weight: 500; + padding: 0.25rem; +} +.markdown-body p code { + padding: 0.15rem 0.35rem; +} +.markdown-body .highlight pre, +.markdown-body .highlight pre > code { + background-color: #676767; + display: block; + margin: 0; + text-align: left; + white-space: pre; + width: auto; + word-break: break-all; + word-wrap: break-word; +} +@media only screen and (min-width:1025px) { .markdown-body .highlight pre, .markdown-body .highlight pre > code { - background-color: #676767; - display: block; - margin: 0; - text-align: left; - white-space: pre; - width: auto; - word-break: break-all; - word-wrap: break-word; } - @media only screen and (min-width: 1025px) { - .markdown-body .highlight pre, - .markdown-body .highlight pre > code { - padding: 2rem !important; } } - .markdown-body .pl-c { - color: #999; - font-style: italic; } - .markdown-body .pl-st, .markdown-body .pl-k, .markdown-body .pl-s { - font-weight: bold; } - .markdown-body .pl-c1, .markdown-body .pl-s1 { - color: #81bc61; } - .markdown-body .pl-en { - color: #618aff; } - .markdown-body .pl-mi1 { - background-color: #d1ffda; - color: #1b692b; } - .markdown-body .pl-md { - background-color: #ffe6e4; - color: #c32828; } - .markdown-body span.octicon.octicon-link { - background-image: url('data:image/svg+xml;utf8,'); - display: inline-block; - height: 16px; - width: 16px; } + padding: 2rem !important; + } +} +.markdown-body .pl-c { + color: #999; + font-style: italic; +} +.markdown-body .pl-st, .markdown-body .pl-k, .markdown-body .pl-s { + font-weight: bold; +} +.markdown-body .pl-c1, .markdown-body .pl-s1 { + color: #81bc61; +} +.markdown-body .pl-en { + color: #618aff; +} +.markdown-body .pl-mi1 { + background-color: #d1ffda; + color: #1b692b; +} +.markdown-body .pl-md { + background-color: #ffe6e4; + color: #c32828; +} +.markdown-body span.octicon.octicon-link { + background-image: url('data:image/svg+xml;utf8,'); + display: inline-block; + height: 16px; + width: 16px; +} .markdown-body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-size: 16px; line-height: 1.5; - word-wrap: break-word; } - .markdown-body kbd { - display: inline-block; - padding: 3px 5px; - font: 11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace; - line-height: 10px; - color: #444d56; - vertical-align: middle; - background-color: #fafbfc; - border: solid 1px #d1d5da; - border-bottom-color: #d1d5da; - border-radius: 6px; - box-shadow: inset 0 -1px 0 #d1d5da; } - .markdown-body::before { - display: table; - content: ""; } - .markdown-body::after { - display: table; - clear: both; - content: ""; } - .markdown-body > *:first-child { - margin-top: 0 !important; } - .markdown-body > *:last-child { - margin-bottom: 0 !important; } - .markdown-body a:not([href]) { - color: inherit; - text-decoration: none; } - .markdown-body .absent { - color: #cb2431; } - .markdown-body .anchor { - float: left; - padding-right: 4px; - margin-left: -20px; - line-height: 1; } - .markdown-body .anchor:focus { - outline: none; } - .markdown-body p, - .markdown-body blockquote, - .markdown-body ul, - .markdown-body ol, - .markdown-body dl, - .markdown-body table, - .markdown-body pre, - .markdown-body details { - margin-top: 0; - margin-bottom: 16px; } - .markdown-body hr { - height: 0.25em; - padding: 0; - margin: 24px 0; - background-color: #e1e4e8; - border: 0; } - .markdown-body blockquote { - padding: 0 1em; - color: #6a737d; - border-left: 0.25em solid #dfe2e5; } - .markdown-body blockquote > :first-child { - margin-top: 0; } - .markdown-body blockquote > :last-child { - margin-bottom: 0; } + word-wrap: break-word; +} +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font: 11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #d1d5da; + border-bottom-color: #d1d5da; + border-radius: 6px; + box-shadow: inset 0 -1px 0 #d1d5da; +} +.markdown-body::before { + display: table; + content: ""; +} +.markdown-body::after { + display: table; + clear: both; + content: ""; +} +.markdown-body > *:first-child { + margin-top: 0 !important; +} +.markdown-body > *:last-child { + margin-bottom: 0 !important; +} +.markdown-body a:not([href]) { + color: inherit; + text-decoration: none; +} +.markdown-body .absent { + color: #cb2431; +} +.markdown-body .anchor { + float: left; + padding-right: 4px; + margin-left: -20px; + line-height: 1; +} +.markdown-body .anchor:focus { + outline: none; +} +.markdown-body p, +.markdown-body blockquote, +.markdown-body ul, +.markdown-body ol, +.markdown-body dl, +.markdown-body table, +.markdown-body pre, +.markdown-body details { + margin-top: 0; + margin-bottom: 16px; +} +.markdown-body hr { + height: 0.25em; + padding: 0; + margin: 24px 0; + background-color: #e1e4e8; + border: 0; +} +.markdown-body blockquote { + padding: 0 1em; + color: #6a737d; + border-left: 0.25em solid #dfe2e5; +} +.markdown-body blockquote > :first-child { + margin-top: 0; +} +.markdown-body blockquote > :last-child { + margin-bottom: 0; +} .markdown-body h1, .markdown-body h2, @@ -1101,203 +1394,229 @@ margin-top: 24px; margin-bottom: 16px; font-weight: 600; - line-height: 1.25; } - .markdown-body h1 .octicon-link, - .markdown-body h2 .octicon-link, - .markdown-body h3 .octicon-link, - .markdown-body h4 .octicon-link, - .markdown-body h5 .octicon-link, - .markdown-body h6 .octicon-link { - color: #000; - vertical-align: middle; - visibility: hidden; } - .markdown-body h1:hover .anchor, - .markdown-body h2:hover .anchor, - .markdown-body h3:hover .anchor, - .markdown-body h4:hover .anchor, - .markdown-body h5:hover .anchor, - .markdown-body h6:hover .anchor { - text-decoration: none; } - .markdown-body h1:hover .anchor .octicon-link, - .markdown-body h2:hover .anchor .octicon-link, - .markdown-body h3:hover .anchor .octicon-link, - .markdown-body h4:hover .anchor .octicon-link, - .markdown-body h5:hover .anchor .octicon-link, - .markdown-body h6:hover .anchor .octicon-link { - visibility: visible; } - .markdown-body h1 tt, - .markdown-body h1 code, - .markdown-body h2 tt, - .markdown-body h2 code, - .markdown-body h3 tt, - .markdown-body h3 code, - .markdown-body h4 tt, - .markdown-body h4 code, - .markdown-body h5 tt, - .markdown-body h5 code, - .markdown-body h6 tt, - .markdown-body h6 code { - font-size: inherit; } - + line-height: 1.25; +} +.markdown-body h1 .octicon-link, +.markdown-body h2 .octicon-link, +.markdown-body h3 .octicon-link, +.markdown-body h4 .octicon-link, +.markdown-body h5 .octicon-link, +.markdown-body h6 .octicon-link { + color: #000; + vertical-align: middle; + visibility: hidden; +} +.markdown-body h1:hover .anchor, +.markdown-body h2:hover .anchor, +.markdown-body h3:hover .anchor, +.markdown-body h4:hover .anchor, +.markdown-body h5:hover .anchor, +.markdown-body h6:hover .anchor { + text-decoration: none; +} +.markdown-body h1:hover .anchor .octicon-link, +.markdown-body h2:hover .anchor .octicon-link, +.markdown-body h3:hover .anchor .octicon-link, +.markdown-body h4:hover .anchor .octicon-link, +.markdown-body h5:hover .anchor .octicon-link, +.markdown-body h6:hover .anchor .octicon-link { + visibility: visible; +} +.markdown-body h1 tt, +.markdown-body h1 code, +.markdown-body h2 tt, +.markdown-body h2 code, +.markdown-body h3 tt, +.markdown-body h3 code, +.markdown-body h4 tt, +.markdown-body h4 code, +.markdown-body h5 tt, +.markdown-body h5 code, +.markdown-body h6 tt, +.markdown-body h6 code { + font-size: inherit; +} .markdown-body h1 { padding-bottom: 0.3em; font-size: 2em; - border-bottom: 1px solid #eaecef; } - + border-bottom: 1px solid #eaecef; +} .markdown-body h2 { padding-bottom: 0.3em; font-size: 1.5em; - border-bottom: 1px solid #eaecef; } - + border-bottom: 1px solid #eaecef; +} .markdown-body h3 { - font-size: 1.25em; } - + font-size: 1.25em; +} .markdown-body h4 { - font-size: 1em; } - + font-size: 1em; +} .markdown-body h5 { - font-size: 0.875em; } - + font-size: 0.875em; +} .markdown-body h6 { font-size: 0.85em; - color: #6a737d; } + color: #6a737d; +} .markdown-body ul, .markdown-body ol { - padding-left: 2em; } - .markdown-body ul.no-list, - .markdown-body ol.no-list { - padding: 0; - list-style-type: none; } - + padding-left: 2em; +} +.markdown-body ul.no-list, +.markdown-body ol.no-list { + padding: 0; + list-style-type: none; +} .markdown-body ul ul, .markdown-body ul ol, .markdown-body ol ol, .markdown-body ol ul { margin-top: 0; - margin-bottom: 0; } - + margin-bottom: 0; +} .markdown-body li { - word-wrap: break-all; } - + word-wrap: break-all; +} .markdown-body li > p { - margin-top: 16px; } - + margin-top: 16px; +} .markdown-body li + li { - margin-top: 0.25em; } - + margin-top: 0.25em; +} .markdown-body dl { - padding: 0; } - .markdown-body dl dt { - padding: 0; - margin-top: 16px; - font-size: 1em; - font-style: italic; - font-weight: 600; } - .markdown-body dl dd { - padding: 0 16px; - margin-bottom: 16px; } + padding: 0; +} +.markdown-body dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: 600; +} +.markdown-body dl dd { + padding: 0 16px; + margin-bottom: 16px; +} .markdown-body table { display: block; width: 100%; - width: -webkit-max-content; width: -moz-max-content; width: max-content; max-width: 100%; - overflow: auto; } - .markdown-body table th { - font-weight: 600; } - .markdown-body table th, - .markdown-body table td { - padding: 6px 13px; - border: 1px solid #dfe2e5; } - .markdown-body table tr { - background-color: #fff; - border-top: 1px solid #c6cbd1; } - .markdown-body table tr:nth-child(2n) { - background-color: #f6f8fa; } - .markdown-body table img { - background-color: transparent; } + overflow: auto; +} +.markdown-body table th { + font-weight: 600; +} +.markdown-body table th, +.markdown-body table td { + padding: 6px 13px; + border: 1px solid #dfe2e5; +} +.markdown-body table tr { + background-color: #fff; + border-top: 1px solid #c6cbd1; +} +.markdown-body table tr:nth-child(2n) { + background-color: #f6f8fa; +} +.markdown-body table img { + background-color: transparent; +} .markdown-body img { max-width: 100%; box-sizing: content-box; - background-color: #fff; } - .markdown-body img[align=right] { - padding-left: 20px; } - .markdown-body img[align=left] { - padding-right: 20px; } - + background-color: #fff; +} +.markdown-body img[align=right] { + padding-left: 20px; +} +.markdown-body img[align=left] { + padding-right: 20px; +} .markdown-body .emoji { max-width: none; vertical-align: text-top; - background-color: transparent; } - + background-color: transparent; +} .markdown-body span.frame { display: block; - overflow: hidden; } - .markdown-body span.frame > span { - display: block; - float: left; - width: auto; - padding: 7px; - margin: 13px 0 0; - overflow: hidden; - border: 1px solid #dfe2e5; } - .markdown-body span.frame span img { - display: block; - float: left; } - .markdown-body span.frame span span { - display: block; - padding: 5px 0 0; - clear: both; - color: #24292e; } - + overflow: hidden; +} +.markdown-body span.frame > span { + display: block; + float: left; + width: auto; + padding: 7px; + margin: 13px 0 0; + overflow: hidden; + border: 1px solid #dfe2e5; +} +.markdown-body span.frame span img { + display: block; + float: left; +} +.markdown-body span.frame span span { + display: block; + padding: 5px 0 0; + clear: both; + color: #24292e; +} .markdown-body span.align-center { display: block; overflow: hidden; - clear: both; } - .markdown-body span.align-center > span { - display: block; - margin: 13px auto 0; - overflow: hidden; - text-align: center; } - .markdown-body span.align-center span img { - margin: 0 auto; - text-align: center; } - + clear: both; +} +.markdown-body span.align-center > span { + display: block; + margin: 13px auto 0; + overflow: hidden; + text-align: center; +} +.markdown-body span.align-center span img { + margin: 0 auto; + text-align: center; +} .markdown-body span.align-right { display: block; overflow: hidden; - clear: both; } - .markdown-body span.align-right > span { - display: block; - margin: 13px 0 0; - overflow: hidden; - text-align: right; } - .markdown-body span.align-right span img { - margin: 0; - text-align: right; } - + clear: both; +} +.markdown-body span.align-right > span { + display: block; + margin: 13px 0 0; + overflow: hidden; + text-align: right; +} +.markdown-body span.align-right span img { + margin: 0; + text-align: right; +} .markdown-body span.float-left { display: block; float: left; margin-right: 13px; - overflow: hidden; } - .markdown-body span.float-left span { - margin: 13px 0 0; } - + overflow: hidden; +} +.markdown-body span.float-left span { + margin: 13px 0 0; +} .markdown-body span.float-right { display: block; float: right; margin-left: 13px; - overflow: hidden; } - .markdown-body span.float-right > span { - display: block; - margin: 13px auto 0; - overflow: hidden; - text-align: right; } + overflow: hidden; +} +.markdown-body span.float-right > span { + display: block; + margin: 13px auto 0; + overflow: hidden; + text-align: right; +} .markdown-body code, .markdown-body tt { @@ -1305,31 +1624,34 @@ margin: 0; font-size: 85%; background-color: rgba(0, 0, 0, 0.05); - border-radius: 6px; } - .markdown-body code br, - .markdown-body tt br { - display: none; } - + border-radius: 6px; +} +.markdown-body code br, +.markdown-body tt br { + display: none; +} .markdown-body del code { - text-decoration: inherit; } - + text-decoration: inherit; +} .markdown-body pre { - word-wrap: normal; } - .markdown-body pre > code { - padding: 0; - margin: 0; - font-size: 100%; - word-break: normal; - white-space: pre; - background: transparent; - border: 0; } - + word-wrap: normal; +} +.markdown-body pre > code { + padding: 0; + margin: 0; + font-size: 100%; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; +} .markdown-body .highlight { - margin-bottom: 16px; } - .markdown-body .highlight pre { - margin-bottom: 0; - word-break: normal; } - + margin-bottom: 16px; +} +.markdown-body .highlight pre { + margin-bottom: 0; + word-break: normal; +} .markdown-body .highlight pre, .markdown-body pre { padding: 16px; @@ -1337,8 +1659,8 @@ font-size: 85%; line-height: 1.45; background-color: #f6f8fa; - border-radius: 6px; } - + border-radius: 6px; +} .markdown-body pre code, .markdown-body pre tt { display: inline; @@ -1349,7 +1671,8 @@ line-height: inherit; word-wrap: normal; background-color: transparent; - border: 0; } + border: 0; +} .markdown-body .csv-data td, .markdown-body .csv-data th { @@ -1358,102 +1681,123 @@ font-size: 12px; line-height: 1; text-align: left; - white-space: nowrap; } - + white-space: nowrap; +} .markdown-body .csv-data .blob-num { padding: 10px 8px 9px; text-align: right; background: #fff; - border: 0; } - + border: 0; +} .markdown-body .csv-data tr { - border-top: 0; } - + border-top: 0; +} .markdown-body .csv-data th { font-weight: 600; background: #f6f8fa; - border-top: 0; } + border-top: 0; +} .tooltip:hover .tooltip__container { opacity: 1; - visibility: visible; } - + visibility: visible; +} .tooltip:hover .tooltip__text { opacity: 1; - visibility: visible; } - + visibility: visible; +} .tooltip__container { border-bottom: 1px solid #000; display: inline-block; opacity: 0; position: relative; - transition: linear opacity 1s; } - + transition: linear opacity 1s; +} .tooltip__text { background-color: #000; border-radius: 6px; color: #fff; - font-size: .9rem; + font-size: 0.9rem; font-weight: 500; padding: 10px; position: absolute; text-align: center; visibility: hidden; width: 120px; - z-index: 1; } - .tooltip__text--bottom { - left: 50%; - margin-left: -80px; - margin-top: 10px; - top: 100%; - width: 120px; } - .tooltip__text::after { - border-color: transparent transparent #000; - border-style: solid; - border-width: 5px; - bottom: 100%; - content: ''; - left: 50%; - margin-left: -5px; - position: absolute; } + z-index: 1; +} +.tooltip__text--bottom { + left: 50%; + margin-left: -80px; + margin-top: 10px; + top: 100%; + width: 120px; +} +.tooltip__text::after { + border-color: transparent transparent #000; + border-style: solid; + border-width: 5px; + bottom: 100%; + content: ""; + left: 50%; + margin-left: -5px; + position: absolute; +} body { display: flex; flex-direction: column; margin: 0; - min-height: 100vh; } - body .main { - align-items: flex-start; - flex: 1; } - body .footer { - flex: 0; } + min-height: 100vh; +} +body .main { + align-items: flex-start; + flex: 1; +} +body .footer { + flex: 0; +} +body.body--noscroll { + overflow: hidden; +} +@media only screen and (min-width:641px) { body.body--noscroll { - overflow: hidden; } - @media only screen and (min-width: 641px) { - body.body--noscroll { - overflow: auto; } } + overflow: auto; + } +} span.maybe-break { - display: inline-block; } + display: inline-block; +} .container { margin: 0; - padding: 0; } + padding: 0; +} .wrapper, .footer__wrapper, .hero__wrapper, .highlight__wrapper, .sponsor__wrapper, .newsletter__wrapper { margin: 0 auto; - width: 90%; } - @media only screen and (min-width: 481px) { - .wrapper, .footer__wrapper, .hero__wrapper, .highlight__wrapper, .sponsor__wrapper, .newsletter__wrapper { - width: 85%; } } - @media only screen and (min-width: 1025px) { - .wrapper, .footer__wrapper, .hero__wrapper, .highlight__wrapper, .sponsor__wrapper, .newsletter__wrapper { - width: 990px; } } - @media only screen and (min-width: 1441px) { - .wrapper, .footer__wrapper, .hero__wrapper, .highlight__wrapper, .sponsor__wrapper, .newsletter__wrapper { - width: 1200px; } } + width: 90%; +} +@media only screen and (min-width:481px) { + .wrapper, .footer__wrapper, .hero__wrapper, .highlight__wrapper, .sponsor__wrapper, .newsletter__wrapper { + width: 85%; + } +} +@media only screen and (min-width:1025px) { + .wrapper, .footer__wrapper, .hero__wrapper, .highlight__wrapper, .sponsor__wrapper, .newsletter__wrapper { + width: 990px; + } +} +@media only screen and (min-width:1441px) { + .wrapper, .footer__wrapper, .hero__wrapper, .highlight__wrapper, .sponsor__wrapper, .newsletter__wrapper { + width: 1200px; + } +} .error { font-size: 2rem; - padding: 3rem 0; } + padding: 3rem 0; +} + /*# sourceMappingURL=main.build.css.map */ \ No newline at end of file diff --git a/lib/public/css/main.build.css.map b/lib/public/css/main.build.css.map index 83c099d..16a1162 100644 --- a/lib/public/css/main.build.css.map +++ b/lib/public/css/main.build.css.map @@ -1 +1 @@ -{"version":3,"sources":["fonts.scss","layouts.scss","colors.scss","nav.scss","sidenav.scss","footer.scss","home/hero.scss","home/highlight.scss","home/sponsor.scss","home/newsletter.scss","layout-list.scss","docs-detail.scss","markdown.scss","../../../node_modules/@primer/css/markdown/markdown-body.scss","../../../node_modules/@primer/css/support/variables/typography.scss","../../../node_modules/@primer/css/base/kbd.scss","../../../node_modules/@primer/css/support/variables/color-system.scss","../../../node_modules/@primer/css/support/variables/misc.scss","../../../node_modules/@primer/css/support/variables/layout.scss","../../../node_modules/@primer/css/markdown/headings.scss","../../../node_modules/@primer/css/support/variables/colors.scss","../../../node_modules/@primer/css/markdown/lists.scss","../../../node_modules/@primer/css/markdown/tables.scss","../../../node_modules/@primer/css/markdown/images.scss","../../../node_modules/@primer/css/markdown/code.scss","../../../node_modules/@primer/css/markdown/blob-csv.scss","tooltip.scss","main.scss"],"names":[],"mappings":"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","file":"main.build.css"} \ No newline at end of file +{"version":3,"sources":["fonts.scss","main.build.css","layouts.scss","colors.scss","nav.scss","sidenav.scss","footer.scss","home/hero.scss","home/highlight.scss","home/sponsor.scss","home/newsletter.scss","layout-list.scss","docs-detail.scss","markdown.scss","../../../node_modules/@primer/css/markdown/markdown-body.scss","../../../node_modules/@primer/css/support/variables/typography.scss","../../../node_modules/@primer/css/base/kbd.scss","../../../node_modules/@primer/css/support/variables/color-system.scss","../../../node_modules/@primer/css/support/variables/misc.scss","../../../node_modules/@primer/css/support/variables/layout.scss","../../../node_modules/@primer/css/markdown/headings.scss","../../../node_modules/@primer/css/markdown/lists.scss","../../../node_modules/@primer/css/markdown/tables.scss","../../../node_modules/@primer/css/markdown/images.scss","../../../node_modules/@primer/css/markdown/code.scss","../../../node_modules/@primer/css/markdown/blob-csv.scss","tooltip.scss","main.scss"],"names":[],"mappings":"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","file":"main.build.css"} \ No newline at end of file diff --git a/lib/public/css/main.build.min.css b/lib/public/css/main.build.min.css index b285e8a..51fb1fe 100644 --- a/lib/public/css/main.build.min.css +++ b/lib/public/css/main.build.min.css @@ -1 +1 @@ -@import url("https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,500,600,700");@import url("https://fonts.googleapis.com/css?family=Inconsolata:400,500");*{font-family:Nunito Sans,sans-serif}.hero__img__content .code,.markdown-body .highlight pre,.markdown-body .highlight pre>code,.markdown-body a code,.markdown-body a span,.markdown-body h1 code,.markdown-body h1 span,.markdown-body h2 code,.markdown-body h2 span,.markdown-body h3 code,.markdown-body h3 span,.markdown-body h4 code,.markdown-body h4 span,.markdown-body h5 code,.markdown-body h5 span,.markdown-body h6 code,.markdown-body h6 span,.markdown-body li code,.markdown-body li span,.markdown-body p code,.markdown-body pre code,.markdown-body pre span,.markdown-body p span{font-family:Inconsolata,monospace}*{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.l-navigablecontent{padding-top:40px}@media only screen and (min-width:481px){.l-navigablecontent{margin-top:64px}}.l-navigablecontent .footer__wrapper>div,.l-navigablecontent .hero__wrapper>div,.l-navigablecontent .highlight__wrapper>div,.l-navigablecontent .newsletter__wrapper>div,.l-navigablecontent .sponsor__wrapper>div,.l-navigablecontent .wrapper>div{margin:0 auto calc(2rem + 60px);padding-bottom:calc(2rem + 64px)}@media only screen and (min-width:641px){.l-navigablecontent .footer__wrapper>div,.l-navigablecontent .hero__wrapper>div,.l-navigablecontent .highlight__wrapper>div,.l-navigablecontent .newsletter__wrapper>div,.l-navigablecontent .sponsor__wrapper>div,.l-navigablecontent .wrapper>div{margin-bottom:2rem;margin-left:300px;max-width:768px}}.l-navigablecontent .wrapper--disabled:before{background:rgba(0,0,0,.2);bottom:0;content:"";display:block;height:100%;left:0;position:fixed;right:0;top:0;width:100%;z-index:1}@media only screen and (min-width:641px){.l-navigablecontent .wrapper--disabled:before{display:none;visibility:hidden}}.l-navigablecontent__nav{background-color:#fff;border-bottom:0;bottom:0;flex:1;left:0;overflow-x:hidden;overflow-y:auto;position:fixed;top:0;transition:width .1s ease-in-out;width:0;z-index:2}@media only screen and (min-width:641px){.l-navigablecontent__nav{border-right:1px solid #e2e2e2;top:64px;width:300px}}.l-navigablecontent__nav--open{box-shadow:0 0 15px rgba(0,0,0,.4);width:90%}@media only screen and (min-width:641px){.l-navigablecontent__nav--open{box-shadow:none;width:300px}}.l-navigablecontent__mobile-controls{background-color:#fff;border-top:1px solid #e2e2e2;bottom:0;display:flex;flex-direction:row;height:60px;left:0;position:fixed;right:0;width:100%;z-index:1}@media only screen and (min-width:641px){.l-navigablecontent__mobile-controls{display:none}}.l-navigablecontent__control-item{align-content:stretch;align-self:center;background:none;border:0;border-radius:50%;height:50px;margin:0 .5rem;outline:none;transition:background-color .05s ease-in-out;width:50px}.l-navigablecontent__control-item:active{background-color:rgba(0,0,0,.2);border-radius:50%}.l-navigablecontent__control-item img{height:25px;vertical-align:middle;width:25px}.l-navigablecontent__control-item--left{justify-content:flex-start}.l-navigablecontent__control-item--right{margin-left:auto}.l-navigablecontent__control-item--right img{height:20px;width:20px}.nav{background-image:url(/public/img/header-background.jpg);background-size:cover;border-bottom:1px solid transparent;box-sizing:border-box;display:flex;padding:0 .5rem;width:100%}@media only screen and (min-width:481px){.nav{height:64px}}.nav__wrapper{width:100%}@media only screen and (min-width:481px){.nav__wrapper{display:flex}}.nav__logo{height:40px;margin:.5rem;width:auto}@media only screen and (min-width:481px){.nav__logo{margin-left:1.25rem}}.nav__logo__wrapper{align-items:center;display:flex;flex:auto 0;justify-content:center}@media only screen and (min-width:481px){.nav__logo__wrapper{justify-content:space-between}}.nav__icon{align-self:center;display:inline-block;height:35px;margin-left:1rem;position:relative;width:25px}@media only screen and (max-width:360px){.nav__icon{height:30px;margin-left:.5rem;width:20px}}@media only screen and (min-width:481px){.nav__icon{margin:0 1rem;position:relative;top:5px}}.nav__dropdown{background-color:#f87f1e;display:none;font-size:1rem;margin-left:.5rem}.nav__item{box-sizing:border-box;color:#fff;display:inline-block;font-size:.9rem;font-weight:500;height:100%;letter-spacing:.25px;padding:0 .5rem;position:relative;text-decoration:none}.nav__item:first-of-type{padding-left:0}@media only screen and (min-width:481px){.nav__item{font-size:1rem;margin:0 1rem;padding:.5rem .5rem 0 0}}@media only screen and (min-width:1025px){.nav__item{padding:.5rem .5rem 0}}.nav__item:before{content:"";display:inline-block;height:100%;vertical-align:middle}.nav__item:after{border-bottom:5px solid transparent;bottom:-1px;content:"";display:block;margin-top:7px;position:relative;transition:border-bottom .1s ease-in-out}@media only screen and (min-width:481px){.nav__item:after{margin-top:0;top:-4px}}.nav__item--active:after,.nav__item:hover:after{border-bottom:5px solid #eecd09}.nav__item:hover>.nav__item--dropdown{display:none}.nav__item__wrapper{align-items:flex-end;display:flex;flex:auto;flex-direction:row;flex-wrap:wrap;justify-content:center;min-height:30px}@media only screen and (min-width:481px){.nav__item__wrapper{align-items:center;justify-content:flex-end}}.best-practices-detail-page .nav,.docs-detail-page .nav,.getting-started-page .nav{left:0;right:0}@media only screen and (min-width:481px){.best-practices-detail-page .nav,.docs-detail-page .nav,.getting-started-page .nav{position:fixed}}.home-page .nav{background:transparent;border-bottom:1px solid #f3b66e;position:absolute}.home-page .nav__item:after{bottom:0}@media only screen and (min-width:481px){.home-page .nav__item:after{top:-5px}}.sidenav .sidenav__sections{padding:.75rem 0}.sidenav .sidenav__sections>ul{padding:0}.sidenav .sidenav__sections .sidenav__section-item{border-left:4px solid transparent;border-right:1.5rem solid transparent;color:inherit;display:block;font-size:14px;font-weight:400;overflow:hidden;padding:.75rem 0 .75rem .25rem;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.sidenav .sidenav__sections .sidenav__section-item--indent-1{padding-left:1.5rem}.sidenav .sidenav__sections .sidenav__section-item--indent-2{padding-left:2.5rem}.sidenav .sidenav__sections .sidenav__section-item--indent-3{padding-left:3.5rem}.sidenav .sidenav__sections .sidenav__section-item--indent-4{padding-left:4.5rem}.sidenav .sidenav__sections .sidenav__section-item--indent-5,.sidenav .sidenav__sections .sidenav__section-item--indent-6{padding-left:5.5rem}.sidenav .sidenav__sections .sidenav__section-item code{color:#333;font-size:100%}.sidenav .sidenav__sections .sidenav__section-item--active{border-left:4px solid #f87f1e;color:#f87f1e;font-weight:700}.sidenav .sidenav__sections .sidenav__section-item:hover{background-color:#f87f1e;color:#fff}.sidenav .sidenav__others{border-top:1px solid #e2e2e2;margin:0;padding:.5rem 0 3.5rem}.sidenav .sidenav__others .sidenav__other-item img{margin:0 1rem;opacity:0;transition:opacity .1s linear;transition-delay:.05s;width:20px}.sidenav .sidenav__others .sidenav__other-item--active img{opacity:1}.sidenav .sidenav__others .sidenav__other-item a{color:#f87f1e;display:block;font-size:15px;font-weight:600;list-style:none;overflow:hidden;padding:.5rem 1.5rem .5rem .25rem;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.sidenav .sidenav__others .sidenav__other-item a:hover{background-color:#f87f1e;color:#fff}.sidenav .sidenav__others .sidenav__other-item a:hover img{opacity:1}.footer{background-color:#26272a;color:#fff;display:block;padding:4rem 0;width:100%}@media only screen and (min-width:1025px){.footer{background-image:url(/public/img/hapi-pal-footer.svg);background-position:85% 100%;background-repeat:no-repeat;background-size:35%}}.footer__flex{align-items:center;display:flex;flex-direction:column}@media only screen and (min-width:641px){.footer__flex{align-items:flex-start;flex-direction:row;justify-content:stretch}}@media only screen and (min-width:1025px){.footer__flex{display:flex}}.footer__flex__left{color:#fff}.footer__flex__right{display:flex;justify-content:space-between}@media only screen and (min-width:641px){.footer__flex__right{align-self:flex-start;padding-left:15%}}.footer__img{width:10rem}.footer__copyright{align-items:center;color:#fff;font-size:.8rem;font-weight:400;justify-content:flex-end;text-align:center}@media only screen and (min-width:641px){.footer__copyright{text-align:left}}.footer__copyright img{height:1.2rem;position:relative;top:4px;width:1.2rem}.footer__nav{margin:2rem 0;padding:0 2rem}@media only screen and (min-width:641px){.footer__nav{margin:0;padding:0 4rem 0 0}}.footer__nav__header{font-size:1rem;font-weight:700;padding-bottom:1rem;padding-left:.3rem}.footer__nav__item{color:#fff;display:block;font-size:.9rem;font-weight:400;letter-spacing:1px;padding:.25rem .3rem;position:relative;text-decoration:none;transition:all .2s ease-in-out;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.footer__nav__item--active{border:0}.footer__nav__item:hover{background:#f87f1e;color:#fff}.best-practices-detail-page .footer,.docs-detail-page .footer,.getting-started-page .footer{display:none}.hero{background-color:#fe4d00;background-image:url(/public/img/home-header-background.jpg);background-position:top;background-size:cover;color:#fff;height:auto;padding-top:125px}@media only screen and (min-width:481px){.hero{padding-top:82px}}.hero__wrapper{padding:1.2rem 0}.hero__img{display:block;margin:0 auto}.hero__img--mobile{width:50vw}@media only screen and (min-width:481px){.hero__img--mobile{display:none}}.hero__img--full{display:none;margin-top:2rem;max-width:600px;width:70vw}@media only screen and (min-width:481px){.hero__img--full{display:block}}.hero__img__content{margin:0 auto;max-width:500px;padding-bottom:2rem}.hero__img__content p{font-size:1.1rem;font-weight:400;text-align:center}@media only screen and (min-width:481px){.hero__img__content p{font-size:1.2rem}}@media only screen and (min-width:641px){.hero__img__content p{font-size:1.3rem}}@media only screen and (min-width:1025px){.hero__img__content p{font-size:1.4rem}}.hero__img__content .code{background-color:#1c1c20;border-radius:5px;font-size:1rem;font-weight:300;padding:1rem;position:relative;text-align:left;transition:all .6s ease}@media only screen and (min-width:481px){.hero__img__content .code{font-size:1.1rem}}@media only screen and (min-width:641px){.hero__img__content .code{font-size:1.2rem}}.hero__img__content .code:hover{background-color:#111114}.hero__img__content .code:hover+.code__shadow{opacity:.4;transform:translateY(4px)}.hero__img__content .code__shadow{opacity:.6;position:relative;top:2rem;transition:all .6s ease;width:100%}.hero__img__content .code__cursor{-webkit-animation:flash;animation:flash;-webkit-animation-duration:2.5s;animation-duration:2.5s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;background:#eecd09;display:inline-block;height:1.3rem;vertical-align:middle;width:11px}.hero__img__content .code__copy{background-color:transparent;border-radius:0 5px 5px 0;color:#fff;cursor:pointer;display:none;height:100%;padding:0 1rem;position:absolute;right:0;top:0}@media only screen and (min-width:481px){.hero__img__content .code__copy{display:flex}}.hero__img__content .code__copy:hover .code__copy__img{background-position:-20px 0,0 0}.hero__img__content .code__copy__img{align-self:center;background-image:url(/public/img/copy-link.svg),url(/public/img/copy-link-hover.svg);background-position:0 0,-20px 0;background-repeat:no-repeat;background-size:cover;height:23px;width:20px}.hero__img__content .code span{display:inline-block;font-family:monospace;font-size:1rem;font-weight:300;vertical-align:middle}@media only screen and (min-width:481px){.hero__img__content .code span{font-size:1.2rem}}.hero__img__content .code__value{background-color:transparent;border:0;color:#fff;display:inline-block;font-family:monospace;font-size:1.1rem;font-weight:300;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;vertical-align:middle}@media only screen and (min-width:481px){.hero__img__content .code__value{font-size:1.3rem}}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.highlight{background:#fff;color:#444;margin:0;text-align:center}@media only screen and (max-width:360px),only screen and (min-width:361px) and (max-width:480px){.highlight{border-bottom:2px solid #e2e2e2}}.highlight h2{font-size:2.1rem;font-weight:400;margin-bottom:.5em}.highlight p{font-size:1rem;margin:1rem auto;max-width:800px}.highlight p:first-of-type{font-size:1.25rem;color:#777;max-width:500px}.highlight a{color:#f87f1e;text-decoration:none}.highlight a:hover{text-decoration:underline}.highlight__wrapper{padding:1rem 0}@media only screen and (min-width:481px){.highlight__wrapper{border-bottom:1px solid #e2e2e2}}@media only screen and (min-width:641px){.highlight__grid{display:grid;grid-template-columns:1fr 1fr;margin-top:2rem}}@media only screen and (min-width:1025px){.highlight__grid{grid-template-columns:1fr 1fr 1fr}}.highlight__grid__item{display:none}.highlight__grid__item.orange{display:block}@media only screen and (min-width:641px){.highlight__grid__item.green{display:block}}@media only screen and (min-width:1025px){.highlight__grid__item{display:block}}.highlight__grid__item>a{color:#444}.highlight__grid__item>a:hover{text-decoration:none}.highlight__grid__item>a:hover .highlight__grid__item__img{background-position:-200px 0,0 0,200px 0}.highlight__grid__item>a:hover .highlight__grid__item__content.orange h5{color:#f87f1e}.highlight__grid__item>a:hover .highlight__grid__item__content.blue h5{color:#5d7ed2}.highlight__grid__item>a:hover .highlight__grid__item__content.green h5{color:#0ec300}.highlight__grid__item>a:active .highlight__grid__item__img{background-position:-400px 0,-200px 0,0 0}.highlight__grid__item.blue h6 a{color:#5d7ed2}.highlight__grid__item__img{background-position:0 0,200px 0,400px 0;background-repeat:no-repeat;background-size:cover;height:200px;margin:0 auto;width:200px}.highlight__grid__item__img:hover{background-position:-200px 0,0 0,200px 0}.highlight__grid__item__img:active{background-position:-400px 0,-200px 0,0 0}.highlight__grid__item__img.orange{background-image:url(/public/img/orange-link-alt.png),url(/public/img/orange-link-hover.png),url(/public/img/orange-link.png)}.highlight__grid__item__img.green{background-image:url(/public/img/green-link-alt.png),url(/public/img/green-link-hover.png),url(/public/img/green-link.png)}.highlight__grid__item__img.blue{background-image:url(/public/img/blue-link-alt.png),url(/public/img/blue-link-hover.png),url(/public/img/blue-link.png)}.highlight__grid__item__content h5{font-size:2rem;font-weight:600;margin:0}.highlight__grid__item h6{font-size:1rem;font-weight:400;margin:1rem}.highlight__subtext{margin:3rem 0}@media only screen and (min-width:641px){.highlight__subtext span.green{display:none}}@media only screen and (min-width:1025px){.highlight__subtext span.blue{display:none}}.highlight__action{align-items:center;display:flex;justify-content:center;margin:4rem 0 3rem}.highlight__action a{align-items:center;color:#444;display:flex;font-size:1.4rem;font-weight:400;text-decoration:none}@media only screen and (min-width:481px){.highlight__action a{font-size:1.6rem}}.highlight__action a:hover{text-decoration:none;color:#f87f1e}.highlight__action a:hover .highlight__action__icon{background-image:url(/public/img/button-orange.svg),url(/public/img/button.svg);transform:rotate(45deg)}.highlight__action a:active .highlight__action__icon{transform:rotate(90deg)}.highlight__action__icon{background-image:url(/public/img/button.svg),url(/public/img/button-orange.svg);background-position:0 0,0 -30px;background-size:cover;height:30px;margin-right:10px;transition:transform .1s ease-in-out;width:30px}.sponsor{background:#fff;color:#444;margin:0;text-align:center}.sponsor__wrapper{padding:4rem 0}@media only screen and (min-width:1025px){.sponsor__grid{display:grid;grid-template-columns:40% 5% 55%;margin:0 auto;width:85%}}.sponsor h3{color:#e2e2e2;font-size:1.2rem;font-weight:500;margin-top:0}@media only screen and (min-width:1025px){.sponsor h3{margin-left:2rem;text-align:left}}.sponsor__img-link{display:inline-block;align-self:center;justify-self:right;max-width:250px;width:50%}@media only screen and (min-width:1025px){.sponsor__img-link{margin-right:3rem}}.sponsor__border{border-right:0}.sponsor__content p{font-size:1rem;font-weight:300}@media only screen and (min-width:1025px){.sponsor__content p{margin:0;text-align:left}}.sponsor__content__action{margin-top:1rem}@media only screen and (min-width:1025px){.sponsor__content__action{text-align:left}}.sponsor__content__action a{color:#f87f1e;font-size:1rem;font-weight:600;text-decoration:none}.sponsor__content__action a:hover .sponsor__content__action__icon{transform:translateX(3px)}.sponsor__content__action__icon{display:inline-block;height:14px;margin-left:3px;transition:transform .1s linear;vertical-align:middle}.newsletter{background-image:url(../img/newsletter-bg-alt.jpg);background-position:bottom;background-size:cover;color:#fff}.newsletter__wrapper{padding:2rem 0 4rem}@media only screen and (min-width:1025px){.newsletter__wrapper{padding:3rem 0 4rem}}.newsletter p{font-size:1.6rem;font-weight:300;max-width:85%}.newsletter__img{display:none}@media only screen and (min-width:1025px){.newsletter__img{display:inline-block;margin-left:4rem;width:15%}}.newsletter__form{margin:0 auto;max-width:400px}@media only screen and (min-width:1025px){.newsletter__form{display:inline-block;margin-left:2rem;max-width:100%;vertical-align:top;width:calc(80% - 4rem)}}.newsletter__message{display:none;font-size:1.25rem;font-weight:400;padding-top:1rem}.newsletter__input{border:0;border-radius:2px;font-size:1.5rem;height:3rem;margin:0;padding:0 0 0 1rem;width:calc(100% - 1rem)}@media only screen and (min-width:1025px){.newsletter__input{max-width:450px;width:60%}}.newsletter__input:focus{outline-color:#f87f1e}.newsletter__input--invalid{outline-width:5px}.newsletter__input--invalid,.newsletter__input--invalid:focus{outline-color:#af0505;outline-style:auto}.newsletter__input__button{background-color:transparent;border:2px solid #fff;border-radius:2px;color:#fff;cursor:pointer;font-size:1.3rem;height:3rem;margin:1rem 0 0;padding:0 2rem;transition:all .1s linear;vertical-align:bottom;width:100%}@media only screen and (min-width:1025px){.newsletter__input__button{margin-left:1rem;width:auto}}.newsletter__input__button:hover{background-color:#fff;color:#f87f1e}.newsletter__input__button:active{box-shadow:0 0 10px #fff}.newsletter__input__button:focus{outline:none}.layout-list{align-items:center;background-color:#fff;color:#444;display:flex;padding:2rem 0 6rem}.layout-list h1{border-bottom:1px solid #e2e2e2;margin:1rem}.layout-list h2{font-size:2rem;margin:.25rem 0}@media only screen and (min-width:481px){.layout-list h2{font-size:3rem}}.layout-list a{color:#f87f1e;display:block;font-size:2.5rem;font-weight:600;letter-spacing:1.25px;list-style:none;padding:.5rem 1rem;text-decoration:none}.layout-list a:hover{background-color:#f87f1e;color:#fff;transition:background-color color .03s linear}.layout-list a:hover p{color:#fff}.layout-list a:hover .img{background-image:url(/public/img/hapi-bolt.svg),url(/public/img/hapi-bolt-gold.svg)}.layout-list a p{color:#444;font-size:14px;font-weight:500;letter-spacing:.25px;margin:0 0 1rem 30px}.layout-list a .img{background-image:url(/public/img/hapi-bolt-gold.svg),url(/public/img/hapi-bolt.svg);background-position:0 0,0 -20px;background-size:cover;height:10px;margin-top:5px;position:absolute;transition:background-image .1s linear;transition-delay:.05s;width:20px}.best-practices-list h2{margin-bottom:16px}.docs-detail-page .sidenav .select-version{align-items:center;border-bottom:1px solid #e2e2e2;display:flex;justify-content:center}.docs-detail-page .sidenav .select-version p{font-weight:700}.docs-detail-page .sidenav .select-version__arrow{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #f87f1e;left:-20px;pointer-events:none;position:relative}.docs-detail-page .sidenav .select-version select{-moz-appearance:none;-webkit-appearance:none;background-color:transparent;border:1px solid #e2e2e2;border-radius:0;box-sizing:border-box;display:inline-block;font-size:12px;line-height:1em;margin:0 0 0 2rem;padding:.5em 3em .5em 1em;transition:border .02s ease-in-out}.docs-detail-page .sidenav .select-version select.version:focus{background-repeat:no-repeat;background-size:5px 5px,5px 5px,1px 1.5em;outline:0}.docs-detail-page .sidenav .select-version select.version:-moz-focusring{color:transparent;text-shadow:0}.docs-detail-page .sidenav .select-version select.version:hover{border:1px solid #f87f1e}.docs-detail-page .md:not(:last-child){padding-bottom:0}.docs-detail-page div.docs-detail__pkg-links{text-align:right;margin-bottom:0;padding-bottom:0;height:0;color:#cacaca}.docs-detail-page div.docs-detail__pkg-links a{color:#f87f1e;text-decoration:none}.docs-detail-page div.docs-detail__pkg-links a:hover{text-decoration:underline}.markdown-body{max-width:978px;padding:1rem 0}.markdown-body a{color:#f87f1e;padding:0 .2rem}.markdown-body.entry-content a{color:#f87f1e}.markdown-body.entry-content a:hover{text-decoration:underline}.markdown-body.entry-content a code{color:#f87f1e}.markdown-body.entry-content a code:hover{text-decoration:underline}.markdown-body a,.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6,.markdown-body li,.markdown-body p,.markdown-body pre{color:#444;text-decoration:none}.markdown-body a code,.markdown-body h1 code,.markdown-body h2 code,.markdown-body h3 code,.markdown-body h4 code,.markdown-body h5 code,.markdown-body h6 code,.markdown-body li code,.markdown-body p code,.markdown-body pre code{background-color:#f7f7f7;color:#676767;padding:.3rem .8rem}.markdown-body h2 code,.markdown-body h3 code,.markdown-body h4 code{font-weight:300}.markdown-body h2{border:0!important}.markdown-body li{font-size:14px}.markdown-body li code{padding:.2rem .4rem}.markdown-body blockquote{border-left:4px solid #f87f1e!important;margin:0;margin:1.5rem 0!important}.markdown-body blockquote p{font-weight:500}.markdown-body p{font-size:14px;font-weight:500;padding:.25rem}.markdown-body p code{padding:.15rem .35rem}.markdown-body .highlight pre,.markdown-body .highlight pre>code{background-color:#676767;display:block;margin:0;text-align:left;white-space:pre;width:auto;word-break:break-all;word-wrap:break-word}@media only screen and (min-width:1025px){.markdown-body .highlight pre,.markdown-body .highlight pre>code{padding:2rem!important}}.markdown-body .pl-c{color:#999;font-style:italic}.markdown-body .pl-k,.markdown-body .pl-s,.markdown-body .pl-st{font-weight:700}.markdown-body .pl-c1,.markdown-body .pl-s1{color:#81bc61}.markdown-body .pl-en{color:#618aff}.markdown-body .pl-mi1{background-color:#d1ffda;color:#1b692b}.markdown-body .pl-md{background-color:#ffe6e4;color:#c32828}.markdown-body span.octicon.octicon-link{background-image:url('data:image/svg+xml;utf8,');display:inline-block;height:16px;width:16px}.markdown-body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body kbd{display:inline-block;padding:3px 5px;font:11px SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:1px solid #d1d5da;border-radius:6px;box-shadow:inset 0 -1px 0 #d1d5da}.markdown-body:after,.markdown-body:before{display:table;content:""}.markdown-body:after{clear:both}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:#cb2431}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:none}.markdown-body blockquote,.markdown-body details,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:16px}.markdown-body hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.markdown-body blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#000;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 code,.markdown-body h1 tt,.markdown-body h2 code,.markdown-body h2 tt,.markdown-body h3 code,.markdown-body h3 tt,.markdown-body h4 code,.markdown-body h4 tt,.markdown-body h5 code,.markdown-body h5 tt,.markdown-body h6 code,.markdown-body h6 tt{font-size:inherit}.markdown-body h1{font-size:2em}.markdown-body h1,.markdown-body h2{padding-bottom:.3em;border-bottom:1px solid #eaecef}.markdown-body h2{font-size:1.5em}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:#6a737d}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol.no-list,.markdown-body ul.no-list{padding:0;list-style-type:none}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li{word-wrap:break-all}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table{display:block;width:100%;width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;overflow:auto}.markdown-body table th{font-weight:600}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #dfe2e5}.markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body table img{background-color:transparent}.markdown-body img{max-width:100%;box-sizing:content-box;background-color:#fff}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{max-width:none;vertical-align:text-top;background-color:transparent}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid #dfe2e5}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{display:block;padding:5px 0 0;clear:both;color:#24292e}.markdown-body span.align-center{display:block;overflow:hidden;clear:both}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{display:block;overflow:hidden;clear:both}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{padding:.2em .4em;margin:0;font-size:85%;background-color:rgba(0,0,0,.05);border-radius:6px}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body pre{word-wrap:normal}.markdown-body pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:transparent;border:0}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f6f8fa;border-radius:6px}.markdown-body pre code,.markdown-body pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{padding:10px 8px 9px;text-align:right;background:#fff;border:0}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{font-weight:600;background:#f6f8fa;border-top:0}.tooltip:hover .tooltip__container,.tooltip:hover .tooltip__text{opacity:1;visibility:visible}.tooltip__container{border-bottom:1px solid #000;display:inline-block;opacity:0;position:relative;transition:opacity 1s linear}.tooltip__text{background-color:#000;border-radius:6px;color:#fff;font-size:.9rem;font-weight:500;padding:10px;position:absolute;text-align:center;visibility:hidden;width:120px;z-index:1}.tooltip__text--bottom{left:50%;margin-left:-80px;margin-top:10px;top:100%;width:120px}.tooltip__text:after{border:5px solid transparent;border-bottom-color:#000;bottom:100%;content:"";left:50%;margin-left:-5px;position:absolute}body{display:flex;flex-direction:column;margin:0;min-height:100vh}body .main{align-items:flex-start;flex:1}body .footer{flex:0}body.body--noscroll{overflow:hidden}@media only screen and (min-width:641px){body.body--noscroll{overflow:auto}}span.maybe-break{display:inline-block}.container{margin:0;padding:0}.footer__wrapper,.hero__wrapper,.highlight__wrapper,.newsletter__wrapper,.sponsor__wrapper,.wrapper{margin:0 auto;width:90%}@media only screen and (min-width:481px){.footer__wrapper,.hero__wrapper,.highlight__wrapper,.newsletter__wrapper,.sponsor__wrapper,.wrapper{width:85%}}@media only screen and (min-width:1025px){.footer__wrapper,.hero__wrapper,.highlight__wrapper,.newsletter__wrapper,.sponsor__wrapper,.wrapper{width:990px}}@media only screen and (min-width:1441px){.footer__wrapper,.hero__wrapper,.highlight__wrapper,.newsletter__wrapper,.sponsor__wrapper,.wrapper{width:1200px}}.error{font-size:2rem;padding:3rem 0} \ No newline at end of file +@import url("https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,500,600,700");@import url("https://fonts.googleapis.com/css?family=Inconsolata:400,500");*{font-family:Nunito Sans,sans-serif}.hero__img__content .code,.markdown-body .highlight pre,.markdown-body .highlight pre>code,.markdown-body a code,.markdown-body a span,.markdown-body h1 code,.markdown-body h1 span,.markdown-body h2 code,.markdown-body h2 span,.markdown-body h3 code,.markdown-body h3 span,.markdown-body h4 code,.markdown-body h4 span,.markdown-body h5 code,.markdown-body h5 span,.markdown-body h6 code,.markdown-body h6 span,.markdown-body li code,.markdown-body li span,.markdown-body p code,.markdown-body pre code,.markdown-body pre span,.markdown-body p span{font-family:Inconsolata,monospace}*{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.l-navigablecontent{padding-top:40px}@media only screen and (min-width:481px){.l-navigablecontent{margin-top:64px}}.l-navigablecontent .footer__wrapper>div,.l-navigablecontent .hero__wrapper>div,.l-navigablecontent .highlight__wrapper>div,.l-navigablecontent .newsletter__wrapper>div,.l-navigablecontent .sponsor__wrapper>div,.l-navigablecontent .wrapper>div{margin:0 auto calc(2rem + 60px);padding-bottom:calc(2rem + 64px)}@media only screen and (min-width:641px){.l-navigablecontent .footer__wrapper>div,.l-navigablecontent .hero__wrapper>div,.l-navigablecontent .highlight__wrapper>div,.l-navigablecontent .newsletter__wrapper>div,.l-navigablecontent .sponsor__wrapper>div,.l-navigablecontent .wrapper>div{margin-bottom:2rem;margin-left:300px;max-width:768px}}.l-navigablecontent .wrapper--disabled:before{background:rgba(0,0,0,.2);bottom:0;content:"";display:block;height:100%;left:0;position:fixed;right:0;top:0;width:100%;z-index:1}@media only screen and (min-width:641px){.l-navigablecontent .wrapper--disabled:before{display:none;visibility:hidden}}.l-navigablecontent__nav{background-color:#fff;border-bottom:0;bottom:0;flex:1;left:0;overflow-x:hidden;overflow-y:auto;position:fixed;top:0;transition:width .1s ease-in-out;width:0;z-index:2}@media only screen and (min-width:641px){.l-navigablecontent__nav{border-right:1px solid #e2e2e2;top:64px;width:300px}}.l-navigablecontent__nav--open{box-shadow:0 0 15px rgba(0,0,0,.4);width:90%}@media only screen and (min-width:641px){.l-navigablecontent__nav--open{box-shadow:none;width:300px}}.l-navigablecontent__mobile-controls{background-color:#fff;border-top:1px solid #e2e2e2;bottom:0;display:flex;flex-direction:row;height:60px;left:0;position:fixed;right:0;width:100%;z-index:1}@media only screen and (min-width:641px){.l-navigablecontent__mobile-controls{display:none}}.l-navigablecontent__control-item{align-content:stretch;align-self:center;background:none;border:0;border-radius:50%;height:50px;margin:0 .5rem;outline:none;transition:background-color .05s ease-in-out;width:50px}.l-navigablecontent__control-item:active{background-color:rgba(0,0,0,.2);border-radius:50%}.l-navigablecontent__control-item img{height:25px;vertical-align:middle;width:25px}.l-navigablecontent__control-item--left{justify-content:flex-start}.l-navigablecontent__control-item--right{margin-left:auto}.l-navigablecontent__control-item--right img{height:20px;width:20px}.nav{background-image:url(/public/img/header-background.jpg);background-size:cover;border-bottom:1px solid transparent;box-sizing:border-box;display:flex;padding:0 .5rem;width:100%}@media only screen and (min-width:481px){.nav{height:64px}}.nav__wrapper{width:100%}@media only screen and (min-width:481px){.nav__wrapper{display:flex}}.nav__logo{height:40px;margin:.5rem;width:auto}@media only screen and (min-width:481px){.nav__logo{margin-left:1.25rem}}.nav__logo__wrapper{align-items:center;display:flex;flex:auto 0;justify-content:center}@media only screen and (min-width:481px){.nav__logo__wrapper{justify-content:space-between}}.nav__icon{align-self:center;display:inline-block;height:35px;margin-left:1rem;position:relative;width:25px}@media only screen and (max-width:360px){.nav__icon{height:30px;margin-left:.5rem;width:20px}}@media only screen and (min-width:481px){.nav__icon{margin:0 1rem;position:relative;top:5px}}.nav__dropdown{background-color:#f87f1e;display:none;font-size:1rem;margin-left:.5rem}.nav__item{box-sizing:border-box;color:#fff;display:inline-block;font-size:.9rem;font-weight:500;height:100%;letter-spacing:.25px;padding:0 .5rem;position:relative;text-decoration:none}.nav__item:first-of-type{padding-left:0}@media only screen and (min-width:481px){.nav__item{font-size:1rem;margin:0 1rem;padding:.5rem .5rem 0 0}}@media only screen and (min-width:1025px){.nav__item{padding:.5rem .5rem 0}}.nav__item:before{content:"";display:inline-block;height:100%;vertical-align:middle}.nav__item:after{border-bottom:5px solid transparent;bottom:-1px;content:"";display:block;margin-top:7px;position:relative;transition:border-bottom .1s ease-in-out}@media only screen and (min-width:481px){.nav__item:after{margin-top:0;top:-4px}}.nav__item--active:after,.nav__item:hover:after{border-bottom:5px solid #eecd09}.nav__item:hover>.nav__item--dropdown{display:none}.nav__item__wrapper{align-items:flex-end;display:flex;flex:auto;flex-direction:row;flex-wrap:wrap;justify-content:center;min-height:30px}@media only screen and (min-width:481px){.nav__item__wrapper{align-items:center;justify-content:flex-end}}.best-practices-detail-page .nav,.docs-detail-page .nav,.getting-started-page .nav{left:0;right:0}@media only screen and (min-width:481px){.best-practices-detail-page .nav,.docs-detail-page .nav,.getting-started-page .nav{position:fixed}}.home-page .nav{background:transparent;border-bottom:1px solid #f3b66e;position:absolute}.home-page .nav__item:after{bottom:0}@media only screen and (min-width:481px){.home-page .nav__item:after{top:-5px}}.sidenav .sidenav__sections{padding:.75rem 0}.sidenav .sidenav__sections>ul{padding:0}.sidenav .sidenav__sections .sidenav__section-item{border-left:4px solid transparent;border-right:1.5rem solid transparent;color:inherit;display:block;font-size:14px;font-weight:400;overflow:hidden;padding:.75rem 0 .75rem .25rem;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.sidenav .sidenav__sections .sidenav__section-item--indent-1{padding-left:1.5rem}.sidenav .sidenav__sections .sidenav__section-item--indent-2{padding-left:2.5rem}.sidenav .sidenav__sections .sidenav__section-item--indent-3{padding-left:3.5rem}.sidenav .sidenav__sections .sidenav__section-item--indent-4{padding-left:4.5rem}.sidenav .sidenav__sections .sidenav__section-item--indent-5,.sidenav .sidenav__sections .sidenav__section-item--indent-6{padding-left:5.5rem}.sidenav .sidenav__sections .sidenav__section-item code{color:#333;font-size:100%}.sidenav .sidenav__sections .sidenav__section-item--active{border-left:4px solid #f87f1e;color:#f87f1e;font-weight:700}.sidenav .sidenav__sections .sidenav__section-item:hover{background-color:#f87f1e;color:#fff}.sidenav .sidenav__others{border-top:1px solid #e2e2e2;margin:0;padding:.5rem 0 3.5rem}.sidenav .sidenav__others .sidenav__other-item img{margin:0 1rem;opacity:0;transition:opacity .1s linear;transition-delay:.05s;width:20px}.sidenav .sidenav__others .sidenav__other-item--active img{opacity:1}.sidenav .sidenav__others .sidenav__other-item a{color:#f87f1e;display:block;font-size:15px;font-weight:600;list-style:none;overflow:hidden;padding:.5rem 1.5rem .5rem .25rem;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.sidenav .sidenav__others .sidenav__other-item a:hover{background-color:#f87f1e;color:#fff}.sidenav .sidenav__others .sidenav__other-item a:hover img{opacity:1}.footer{background-color:#26272a;color:#fff;display:block;padding:4rem 0;width:100%}@media only screen and (min-width:1025px){.footer{background-image:url(/public/img/hapi-pal-footer.svg);background-position:85% 100%;background-repeat:no-repeat;background-size:35%}}.footer__flex{align-items:center;display:flex;flex-direction:column}@media only screen and (min-width:641px){.footer__flex{align-items:flex-start;flex-direction:row;justify-content:stretch}}@media only screen and (min-width:1025px){.footer__flex{display:flex}}.footer__flex__left{color:#fff}.footer__flex__right{display:flex;justify-content:space-between}@media only screen and (min-width:641px){.footer__flex__right{align-self:flex-start;padding-left:15%}}.footer__img{width:10rem}.footer__copyright{align-items:center;color:#fff;font-size:.8rem;font-weight:400;justify-content:flex-end;text-align:center}@media only screen and (min-width:641px){.footer__copyright{text-align:left}}.footer__copyright img{height:1.2rem;position:relative;top:4px;width:1.2rem}.footer__nav{margin:2rem 0;padding:0 2rem}@media only screen and (min-width:641px){.footer__nav{margin:0;padding:0 4rem 0 0}}.footer__nav__header{font-size:1rem;font-weight:700;padding-bottom:1rem;padding-left:.3rem}.footer__nav__item{color:#fff;display:block;font-size:.9rem;font-weight:400;letter-spacing:1px;padding:.25rem .3rem;position:relative;text-decoration:none;transition:all .2s ease-in-out;width:-moz-fit-content;width:fit-content}.footer__nav__item--active{border:0}.footer__nav__item:hover{background:#f87f1e;color:#fff}.best-practices-detail-page .footer,.docs-detail-page .footer,.getting-started-page .footer{display:none}.hero{background-color:#fe4d00;background-image:url(/public/img/home-header-background.jpg);background-position:top;background-size:cover;color:#fff;height:auto;padding-top:125px}@media only screen and (min-width:481px){.hero{padding-top:82px}}.hero__wrapper{padding:1.2rem 0}.hero__img{display:block;margin:0 auto}.hero__img--mobile{width:50vw}@media only screen and (min-width:481px){.hero__img--mobile{display:none}}.hero__img--full{display:none;margin-top:2rem;max-width:600px;width:70vw}@media only screen and (min-width:481px){.hero__img--full{display:block}}.hero__img__content{margin:0 auto;max-width:500px;padding-bottom:2rem}.hero__img__content p{font-size:1.1rem;font-weight:400;text-align:center}@media only screen and (min-width:481px){.hero__img__content p{font-size:1.2rem}}@media only screen and (min-width:641px){.hero__img__content p{font-size:1.3rem}}@media only screen and (min-width:1025px){.hero__img__content p{font-size:1.4rem}}.hero__img__content .code{background-color:#1c1c20;border-radius:5px;font-size:1rem;font-weight:300;padding:1rem;position:relative;text-align:left;transition:all .6s ease}@media only screen and (min-width:481px){.hero__img__content .code{font-size:1.1rem}}@media only screen and (min-width:641px){.hero__img__content .code{font-size:1.2rem}}.hero__img__content .code:hover{background-color:#111114}.hero__img__content .code:hover+.code__shadow{opacity:.4;transform:translateY(4px)}.hero__img__content .code__shadow{opacity:.6;position:relative;top:2rem;transition:all .6s ease;width:100%}.hero__img__content .code__cursor{animation:flash;animation-duration:2.5s;animation-fill-mode:both;animation-iteration-count:infinite;background:#eecd09;display:inline-block;height:1.3rem;vertical-align:middle;width:11px}.hero__img__content .code__copy{background-color:transparent;border-radius:0 5px 5px 0;color:#fff;cursor:pointer;display:none;height:100%;padding:0 1rem;position:absolute;right:0;top:0}@media only screen and (min-width:481px){.hero__img__content .code__copy{display:flex}}.hero__img__content .code__copy:hover .code__copy__img{background-position:-20px 0,0 0}.hero__img__content .code__copy__img{align-self:center;background-image:url(/public/img/copy-link.svg),url(/public/img/copy-link-hover.svg);background-position:0 0,-20px 0;background-repeat:no-repeat;background-size:cover;height:23px;width:20px}.hero__img__content .code span{display:inline-block;font-family:monospace;font-size:1rem;font-weight:300;vertical-align:middle}@media only screen and (min-width:481px){.hero__img__content .code span{font-size:1.2rem}}.hero__img__content .code__value{background-color:transparent;border:0;color:#fff;display:inline-block;font-family:monospace;font-size:1.1rem;font-weight:300;-webkit-user-select:text;-moz-user-select:text;user-select:text;vertical-align:middle}@media only screen and (min-width:481px){.hero__img__content .code__value{font-size:1.3rem}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.highlight{background:#fff;color:#444;margin:0;text-align:center}@media only screen and (max-width:360px),only screen and (min-width:361px) and (max-width:480px){.highlight{border-bottom:2px solid #e2e2e2}}.highlight h2{font-size:2.1rem;font-weight:400;margin-bottom:.5em}.highlight p{font-size:1rem;margin:1rem auto;max-width:800px}.highlight p:first-of-type{font-size:1.25rem;color:#777;max-width:500px}.highlight a{color:#f87f1e;text-decoration:none}.highlight a:hover{text-decoration:underline}.highlight__wrapper{padding:1rem 0}@media only screen and (min-width:481px){.highlight__wrapper{border-bottom:1px solid #e2e2e2}}@media only screen and (min-width:641px){.highlight__grid{display:grid;grid-template-columns:1fr 1fr;margin-top:2rem}}@media only screen and (min-width:1025px){.highlight__grid{grid-template-columns:1fr 1fr 1fr}}.highlight__grid__item{display:none}.highlight__grid__item.orange{display:block}@media only screen and (min-width:641px){.highlight__grid__item.green{display:block}}@media only screen and (min-width:1025px){.highlight__grid__item{display:block}}.highlight__grid__item>a{color:#444}.highlight__grid__item>a:hover{text-decoration:none}.highlight__grid__item>a:hover .highlight__grid__item__img{background-position:-200px 0,0 0,200px 0}.highlight__grid__item>a:hover .highlight__grid__item__content.orange h5{color:#f87f1e}.highlight__grid__item>a:hover .highlight__grid__item__content.blue h5{color:#5d7ed2}.highlight__grid__item>a:hover .highlight__grid__item__content.green h5{color:#0ec300}.highlight__grid__item>a:active .highlight__grid__item__img{background-position:-400px 0,-200px 0,0 0}.highlight__grid__item.blue h6 a{color:#5d7ed2}.highlight__grid__item__img{background-position:0 0,200px 0,400px 0;background-repeat:no-repeat;background-size:cover;height:200px;margin:0 auto;width:200px}.highlight__grid__item__img:hover{background-position:-200px 0,0 0,200px 0}.highlight__grid__item__img:active{background-position:-400px 0,-200px 0,0 0}.highlight__grid__item__img.orange{background-image:url(/public/img/orange-link-alt.png),url(/public/img/orange-link-hover.png),url(/public/img/orange-link.png)}.highlight__grid__item__img.green{background-image:url(/public/img/green-link-alt.png),url(/public/img/green-link-hover.png),url(/public/img/green-link.png)}.highlight__grid__item__img.blue{background-image:url(/public/img/blue-link-alt.png),url(/public/img/blue-link-hover.png),url(/public/img/blue-link.png)}.highlight__grid__item__content h5{font-size:2rem;font-weight:600;margin:0}.highlight__grid__item h6{font-size:1rem;font-weight:400;margin:1rem}.highlight__subtext{margin:3rem 0}@media only screen and (min-width:641px){.highlight__subtext span.green{display:none}}@media only screen and (min-width:1025px){.highlight__subtext span.blue{display:none}}.highlight__action{align-items:center;display:flex;justify-content:center;margin:4rem 0 3rem}.highlight__action a{align-items:center;color:#444;display:flex;font-size:1.4rem;font-weight:400;text-decoration:none}@media only screen and (min-width:481px){.highlight__action a{font-size:1.6rem}}.highlight__action a:hover{text-decoration:none;color:#f87f1e}.highlight__action a:hover .highlight__action__icon{background-image:url(/public/img/button-orange.svg),url(/public/img/button.svg);transform:rotate(45deg)}.highlight__action a:active .highlight__action__icon{transform:rotate(90deg)}.highlight__action__icon{background-image:url(/public/img/button.svg),url(/public/img/button-orange.svg);background-position:0 0,0 -30px;background-size:cover;height:30px;margin-right:10px;transition:transform .1s ease-in-out;width:30px}.sponsor{background:#fff;color:#444;margin:0;text-align:center}.sponsor__wrapper{padding:4rem 0}@media only screen and (min-width:1025px){.sponsor__grid{display:grid;grid-template-columns:40% 5% 55%;margin:0 auto;width:85%}}.sponsor h3{color:#e2e2e2;font-size:1.2rem;font-weight:500;margin-top:0}@media only screen and (min-width:1025px){.sponsor h3{margin-left:2rem;text-align:left}}.sponsor__img-link{display:inline-block;align-self:center;justify-self:right;max-width:250px;width:50%}@media only screen and (min-width:1025px){.sponsor__img-link{margin-right:3rem}}.sponsor__border{border-right:0}.sponsor__content p{font-size:1rem;font-weight:300}@media only screen and (min-width:1025px){.sponsor__content p{margin:0;text-align:left}}.sponsor__content__action{margin-top:1rem}@media only screen and (min-width:1025px){.sponsor__content__action{text-align:left}}.sponsor__content__action a{color:#f87f1e;font-size:1rem;font-weight:600;text-decoration:none}.sponsor__content__action a:hover .sponsor__content__action__icon{transform:translateX(3px)}.sponsor__content__action__icon{display:inline-block;height:14px;margin-left:3px;transition:transform .1s linear;vertical-align:middle}.newsletter{background-image:url(../img/newsletter-bg-alt.jpg);background-position:bottom;background-size:cover;color:#fff}.newsletter__wrapper{padding:2rem 0 4rem}@media only screen and (min-width:1025px){.newsletter__wrapper{padding:3rem 0 4rem}}.newsletter p{font-size:1.6rem;font-weight:300;max-width:85%}.newsletter__img{display:none}@media only screen and (min-width:1025px){.newsletter__img{display:inline-block;margin-left:4rem;width:15%}}.newsletter__form{margin:0 auto;max-width:400px}@media only screen and (min-width:1025px){.newsletter__form{display:inline-block;margin-left:2rem;max-width:100%;vertical-align:top;width:calc(80% - 4rem)}}.newsletter__message{display:none;font-size:1.25rem;font-weight:400;padding-top:1rem}.newsletter__input{border:0;border-radius:2px;font-size:1.5rem;height:3rem;margin:0;padding:0 0 0 1rem;width:calc(100% - 1rem)}@media only screen and (min-width:1025px){.newsletter__input{max-width:450px;width:60%}}.newsletter__input:focus{outline-color:#f87f1e}.newsletter__input--invalid{outline-width:5px}.newsletter__input--invalid,.newsletter__input--invalid:focus{outline-color:#af0505;outline-style:auto}.newsletter__input__button{background-color:transparent;border:2px solid #fff;border-radius:2px;color:#fff;cursor:pointer;font-size:1.3rem;height:3rem;margin:1rem 0 0;padding:0 2rem;transition:all .1s linear;vertical-align:bottom;width:100%}@media only screen and (min-width:1025px){.newsletter__input__button{margin-left:1rem;width:auto}}.newsletter__input__button:hover{background-color:#fff;color:#f87f1e}.newsletter__input__button:active{box-shadow:0 0 10px #fff}.newsletter__input__button:focus{outline:none}.layout-list{align-items:center;background-color:#fff;color:#444;display:flex;padding:2rem 0 6rem}.layout-list h1{border-bottom:1px solid #e2e2e2;margin:1rem}.layout-list h2{font-size:2rem;margin:.25rem 0}@media only screen and (min-width:481px){.layout-list h2{font-size:3rem}}.layout-list a{color:#f87f1e;display:block;font-size:2.5rem;font-weight:600;letter-spacing:1.25px;list-style:none;padding:.5rem 1rem;text-decoration:none}.layout-list a:hover{background-color:#f87f1e;color:#fff;transition:background-color color .03s linear}.layout-list a:hover p{color:#fff}.layout-list a:hover .img{background-image:url(/public/img/hapi-bolt.svg),url(/public/img/hapi-bolt-gold.svg)}.layout-list a p{color:#444;font-size:14px;font-weight:500;letter-spacing:.25px;margin:0 0 1rem 30px}.layout-list a .img{background-image:url(/public/img/hapi-bolt-gold.svg),url(/public/img/hapi-bolt.svg);background-position:0 0,0 -20px;background-size:cover;height:10px;margin-top:5px;position:absolute;transition:background-image .1s linear;transition-delay:.05s;width:20px}.best-practices-list h2{margin-bottom:16px}.docs-detail-page .sidenav .select-version{align-items:center;border-bottom:1px solid #e2e2e2;display:flex;justify-content:center}.docs-detail-page .sidenav .select-version p{font-weight:700}.docs-detail-page .sidenav .select-version__arrow{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #f87f1e;left:-20px;pointer-events:none;position:relative}.docs-detail-page .sidenav .select-version select{-moz-appearance:none;-webkit-appearance:none;background-color:transparent;border:1px solid #e2e2e2;border-radius:0;box-sizing:border-box;display:inline-block;font-size:12px;line-height:1em;margin:0 0 0 2rem;padding:.5em 3em .5em 1em;transition:border .02s ease-in-out}.docs-detail-page .sidenav .select-version select.version:focus{background-repeat:no-repeat;background-size:5px 5px,5px 5px,1px 1.5em;outline:0}.docs-detail-page .sidenav .select-version select.version:-moz-focusring{color:transparent;text-shadow:0}.docs-detail-page .sidenav .select-version select.version:hover{border:1px solid #f87f1e}.docs-detail-page .md:not(:last-child){padding-bottom:0}.docs-detail-page div.docs-detail__pkg-links{text-align:right;margin-bottom:0;padding-bottom:0;height:0;color:#cacaca}.docs-detail-page div.docs-detail__pkg-links a{color:#f87f1e;text-decoration:none}.docs-detail-page div.docs-detail__pkg-links a:hover{text-decoration:underline}.markdown-body{max-width:978px;padding:1rem 0}.markdown-body a{color:#f87f1e;padding:0 .2rem}.markdown-body.entry-content a{color:#f87f1e}.markdown-body.entry-content a:hover{text-decoration:underline}.markdown-body.entry-content a code{color:#f87f1e}.markdown-body.entry-content a code:hover{text-decoration:underline}.markdown-body a,.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6,.markdown-body li,.markdown-body p,.markdown-body pre{color:#444;text-decoration:none}.markdown-body a code,.markdown-body h1 code,.markdown-body h2 code,.markdown-body h3 code,.markdown-body h4 code,.markdown-body h5 code,.markdown-body h6 code,.markdown-body li code,.markdown-body p code,.markdown-body pre code{background-color:#f7f7f7;color:#676767;padding:.3rem .8rem}.markdown-body h2 code,.markdown-body h3 code,.markdown-body h4 code{font-weight:300}.markdown-body h2{border:0!important}.markdown-body li{font-size:14px}.markdown-body li code{padding:.2rem .4rem}.markdown-body blockquote{border-left:4px solid #f87f1e!important;margin:0;margin:1.5rem 0!important}.markdown-body blockquote p{font-weight:500}.markdown-body p{font-size:14px;font-weight:500;padding:.25rem}.markdown-body p code{padding:.15rem .35rem}.markdown-body .highlight pre,.markdown-body .highlight pre>code{background-color:#676767;display:block;margin:0;text-align:left;white-space:pre;width:auto;word-break:break-all;word-wrap:break-word}@media only screen and (min-width:1025px){.markdown-body .highlight pre,.markdown-body .highlight pre>code{padding:2rem!important}}.markdown-body .pl-c{color:#999;font-style:italic}.markdown-body .pl-k,.markdown-body .pl-s,.markdown-body .pl-st{font-weight:700}.markdown-body .pl-c1,.markdown-body .pl-s1{color:#81bc61}.markdown-body .pl-en{color:#618aff}.markdown-body .pl-mi1{background-color:#d1ffda;color:#1b692b}.markdown-body .pl-md{background-color:#ffe6e4;color:#c32828}.markdown-body span.octicon.octicon-link{background-image:url('data:image/svg+xml;utf8,');display:inline-block;height:16px;width:16px}.markdown-body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body kbd{display:inline-block;padding:3px 5px;font:11px SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:1px solid #d1d5da;border-radius:6px;box-shadow:inset 0 -1px 0 #d1d5da}.markdown-body:after,.markdown-body:before{display:table;content:""}.markdown-body:after{clear:both}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:#cb2431}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:none}.markdown-body blockquote,.markdown-body details,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:16px}.markdown-body hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.markdown-body blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#000;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 code,.markdown-body h1 tt,.markdown-body h2 code,.markdown-body h2 tt,.markdown-body h3 code,.markdown-body h3 tt,.markdown-body h4 code,.markdown-body h4 tt,.markdown-body h5 code,.markdown-body h5 tt,.markdown-body h6 code,.markdown-body h6 tt{font-size:inherit}.markdown-body h1{font-size:2em}.markdown-body h1,.markdown-body h2{padding-bottom:.3em;border-bottom:1px solid #eaecef}.markdown-body h2{font-size:1.5em}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:#6a737d}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol.no-list,.markdown-body ul.no-list{padding:0;list-style-type:none}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li{word-wrap:break-all}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table{display:block;width:100%;width:-moz-max-content;width:max-content;max-width:100%;overflow:auto}.markdown-body table th{font-weight:600}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #dfe2e5}.markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body table img{background-color:transparent}.markdown-body img{max-width:100%;box-sizing:content-box;background-color:#fff}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{max-width:none;vertical-align:text-top;background-color:transparent}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid #dfe2e5}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{display:block;padding:5px 0 0;clear:both;color:#24292e}.markdown-body span.align-center{display:block;overflow:hidden;clear:both}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{display:block;overflow:hidden;clear:both}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{padding:.2em .4em;margin:0;font-size:85%;background-color:rgba(0,0,0,.05);border-radius:6px}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body pre{word-wrap:normal}.markdown-body pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:transparent;border:0}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f6f8fa;border-radius:6px}.markdown-body pre code,.markdown-body pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{padding:10px 8px 9px;text-align:right;background:#fff;border:0}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{font-weight:600;background:#f6f8fa;border-top:0}.tooltip:hover .tooltip__container,.tooltip:hover .tooltip__text{opacity:1;visibility:visible}.tooltip__container{border-bottom:1px solid #000;display:inline-block;opacity:0;position:relative;transition:opacity 1s linear}.tooltip__text{background-color:#000;border-radius:6px;color:#fff;font-size:.9rem;font-weight:500;padding:10px;position:absolute;text-align:center;visibility:hidden;width:120px;z-index:1}.tooltip__text--bottom{left:50%;margin-left:-80px;margin-top:10px;top:100%;width:120px}.tooltip__text:after{border:5px solid transparent;border-bottom-color:#000;bottom:100%;content:"";left:50%;margin-left:-5px;position:absolute}body{display:flex;flex-direction:column;margin:0;min-height:100vh}body .main{align-items:flex-start;flex:1}body .footer{flex:0}body.body--noscroll{overflow:hidden}@media only screen and (min-width:641px){body.body--noscroll{overflow:auto}}span.maybe-break{display:inline-block}.container{margin:0;padding:0}.footer__wrapper,.hero__wrapper,.highlight__wrapper,.newsletter__wrapper,.sponsor__wrapper,.wrapper{margin:0 auto;width:90%}@media only screen and (min-width:481px){.footer__wrapper,.hero__wrapper,.highlight__wrapper,.newsletter__wrapper,.sponsor__wrapper,.wrapper{width:85%}}@media only screen and (min-width:1025px){.footer__wrapper,.hero__wrapper,.highlight__wrapper,.newsletter__wrapper,.sponsor__wrapper,.wrapper{width:990px}}@media only screen and (min-width:1441px){.footer__wrapper,.hero__wrapper,.highlight__wrapper,.newsletter__wrapper,.sponsor__wrapper,.wrapper{width:1200px}}.error{font-size:2rem;padding:3rem 0} \ No newline at end of file diff --git a/lib/public/js/main.build.js b/lib/public/js/main.build.js index e9aec15..6d0f544 100644 --- a/lib/public/js/main.build.js +++ b/lib/public/js/main.build.js @@ -1,40 +1,31 @@ (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i is either invalid, or may already be subscribed."); emailInput.value = null; @@ -59,7 +48,6 @@ var newsletterSubmit = function newsletterSubmit() { form.style.display = 'block'; message.style.display = 'block'; break; - default: message.innerHTML = "The email address ".concat(emailInput.value, " may be invalid, or your network connection is inactive."); emailInput.value = null; @@ -69,35 +57,28 @@ var newsletterSubmit = function newsletterSubmit() { break; } }; - xhr.send(payload); } }; }; - var docsNavMobileActions = function docsNavMobileActions() { var menuButton = document.querySelector('.l-navigablecontent__control-item--left'); var topButton = document.querySelector('.l-navigablecontent__control-item--right'); var docsNav = document.querySelector('.l-navigablecontent__nav'); var docsWrapper = document.querySelector('.l-navigablecontent .wrapper'); - if (!menuButton || !topButton || !docsNav || !docsWrapper) { return; } - var isMobile = function isMobile() { return window.getComputedStyle(menuButton.parentNode).getPropertyValue('display') !== 'none'; }; - var docsNavIsOpen = function docsNavIsOpen() { return docsNav.classList.contains('l-navigablecontent__nav--open'); }; - var toggleDocsNav = function toggleDocsNav() { if (!isMobile()) { return; } - if (docsNavIsOpen()) { document.body.classList.remove('body--noscroll'); docsNav.classList.remove('l-navigablecontent__nav--open'); @@ -105,13 +86,11 @@ var docsNavMobileActions = function docsNavMobileActions() { docsWrapper.removeEventListener('click', toggleDocsNav); return; } - document.body.classList.add('body--noscroll'); docsNav.classList.add('l-navigablecontent__nav--open'); docsWrapper.classList.add('wrapper--disabled'); docsWrapper.addEventListener('click', toggleDocsNav); }; - menuButton.addEventListener('click', toggleDocsNav); Array.from(docsNav.querySelectorAll('.sidenav__section-item')).forEach(function (link) { return link.addEventListener('click', toggleDocsNav); @@ -120,7 +99,6 @@ var docsNavMobileActions = function docsNavMobileActions() { if (docsNavIsOpen()) { toggleDocsNav(); } - return window.scrollTo(0, 0); }); var hammerNav = new Hammer(docsNav); @@ -136,54 +114,43 @@ var docsNavMobileActions = function docsNavMobileActions() { } }); }; - var changePackageVersion = function changePackageVersion() { var select = document.getElementById('version'); - if (!select) { return; } - select.addEventListener('change', function (option) { window.location.search = 'v=' + option.srcElement.value; }); }; - var palToClipboard = function palToClipboard() { var element = document.getElementById('codeBox'); var button = document.getElementById('codeBoxButton'); var input = document.getElementById('code'); - if (!element || !button || !input) { return; } - element.onclick = function () { input.select(); }; - button.onclick = function () { var tooltip = document.getElementsByClassName('tooltip__text')[0]; input.select(); document.execCommand('Copy'); tooltip.innerHTML = 'Code copied'; - button.onmouseleave = function () { tooltip.innerHTML = 'Copy to clipboard'; }; }; }; - var markdownLinksExternal = function markdownLinksExternal() { // external links only (no section anchors or internal (#) links) var links = document.querySelectorAll('.markdown-body.entry-content a:not([href^="#"]):not(.anchor)'); - for (var i = 0; i < links.length; ++i) { var link = links[i]; link.setAttribute('target', '_blank'); } }; - setActiveNavItems(); newsletterSubmit(); docsNavMobileActions(); @@ -193,31 +160,26 @@ markdownLinksExternal(); },{"./sidenav":2,"hammerjs":5}],2:[function(require,module,exports){ 'use strict'; -/* global document, window */ +/* global document, window */ +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var ScrollIntoViewIfNeeded = require('scroll-into-view-if-needed'); - var Navbar = require('./vendor/navbar'); - var internals = {}; var FIXED_HEADER_HEIGHT = 60; var TOP_PADDING = 10; - exports.init = function (contentEl, navEl) { if (!contentEl) { return; } - if (!navEl) { throw new Error('Sidenav content element exists, but not the nav element.'); } - var hashState = new internals.HashState(); var navbar = Navbar({ tagName: navEl.tagName, @@ -225,19 +187,19 @@ exports.init = function (contentEl, navEl) { makeNavListItem: function makeNavListItem(el) { el = el.cloneNode(true); var anchor = el.removeChild(el.querySelector('a')); - var indent = Number(el.tagName.replace('H', '')); // Turn remaining s in header into s + var indent = Number(el.tagName.replace('H', '')); + + // Turn remaining s in header into s var getLink = function getLink() { return el.querySelector('a'); }; - while (getLink()) { var link = getLink(); var span = document.createElement('span'); span.innerHTML = link.innerHTML; link.parentNode.replaceChild(span, link); } - return internals.render(internals.item(el.innerHTML, anchor.hash, indent)); }, onScroll: function onScroll(navItem) { @@ -245,33 +207,25 @@ exports.init = function (contentEl, navEl) { hashState.hashChangeFromScroll(); window.location = navItem.href; } - hashState.scrolled(); } }); navbar.classList.add('markdown-body'); navbar.classList.add('sidenav__sections'); - var handleHash = function handleHash() { internals.maybeScrollToHash(window.location.hash, navbar, hashState); }; - window.addEventListener('hashchange', handleHash); window.addEventListener('load', handleHash); return navEl.parentNode.replaceChild(navbar, navEl); }; - -internals.HashState = -/*#__PURE__*/ -function () { +internals.HashState = /*#__PURE__*/function () { function HashState() { _classCallCheck(this, HashState); - this.autoScrolling = 0; this.fromScroll = false; this.firstScroll = true; } - _createClass(HashState, [{ key: "scrolled", value: function scrolled() { @@ -298,54 +252,45 @@ function () { this.autoScrolling--; } }]); - return HashState; }(); - internals.maybeScrollToHash = function (hash, navbar, hashState) { var anchor = hash && document.querySelector("a.anchor[href=\"".concat(hash, "\"]")); var navItem = hash && navbar.querySelector("a.sidenav__section-item[href=\"".concat(hash, "\"]")) || navbar.querySelector('.sidenav__section-item'); - if (navItem) { - internals.selectNavItem(navItem); // Don't jump the nav scroll when the user is using the nav + internals.selectNavItem(navItem); + // Don't jump the nav scroll when the user is using the nav if (!navbar.parentNode.matches(':hover')) { ScrollIntoViewIfNeeded(navItem, { boundary: navbar.parentNode }); } } - if (anchor && !hashState.fromScroll) { hashState.startAutoScrolling(); - anchor.scrollIntoView(); // Ensure element is visible + anchor.scrollIntoView(); + // Ensure element is visible if (anchor.getBoundingClientRect().top < FIXED_HEADER_HEIGHT + TOP_PADDING) { window.scrollBy(0, -(FIXED_HEADER_HEIGHT + TOP_PADDING)); } - setTimeout(function () { return hashState.stopAutoScrolling(); }, 50); } - hashState.handledChange(); }; - internals.selectNavItem = function (navItem) { var lastNavItem = navItem.parentNode.querySelector(':scope > .sidenav__section-item--active'); - if (lastNavItem) { lastNavItem.classList.remove('sidenav__section-item--active'); } - navItem.classList.add('sidenav__section-item--active'); }; - internals.item = function (innerHTML, href, indent) { return "\n ").concat(innerHTML, "\n "); }; - internals.render = function (html) { var wrapper = document.createElement('div'); wrapper.innerHTML = html; @@ -354,6 +299,7 @@ internals.render = function (html) { },{"./vendor/navbar":3,"scroll-into-view-if-needed":6}],3:[function(require,module,exports){ 'use strict'; + /* global document, window */ /* @@ -380,9 +326,7 @@ internals.render = function (html) { * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - var supportsPassive = false; - try { var opts = Object.defineProperty({}, 'passive', { get: function get() { @@ -391,10 +335,10 @@ try { }); window.addEventListener('test', null, opts); } catch (e) {} - var createAndAppendListItems = function createAndAppendListItems(navList, elementList, makeNavListItem) { - var pairs = []; // Create list elements + var pairs = []; + // Create list elements for (var i = 0; i < elementList.length; ++i) { var element = elementList[i]; var li = makeNavListItem(element); @@ -404,62 +348,54 @@ var createAndAppendListItems = function createAndAppendListItems(navList, elemen navElement: li }); } - return pairs; }; - var makeHandleScroll = function makeHandleScroll(pairs, onScrollHook, debounceTime) { var handleScroll = function handleScroll() { var frontRunnerIndex; var closestDist = Infinity; - for (var i = 0; i < pairs.length; ++i) { var pair = pairs[i]; - var absDist = Math.abs(pair.element.getBoundingClientRect().top); // If this element is not the front runner for top, deactivate it. + var absDist = Math.abs(pair.element.getBoundingClientRect().top); + // If this element is not the front runner for top, deactivate it. if (absDist > closestDist) { continue; } - frontRunnerIndex = i; closestDist = absDist; } - if (onScrollHook) { onScrollHook(pairs[frontRunnerIndex].navElement); } - }; // The default behaviour is no debounce. - + }; + // The default behaviour is no debounce. if (typeof debounceTime !== 'number' || isNaN(debounceTime)) { return handleScroll; } - var timeout; - var nullifyTimeout = function nullifyTimeout() { timeout = null; }; - return function () { if (timeout) { return; - } // Immediately use handleScroll to calculate. - + } - handleScroll(); // No further calls to handleScroll until debounceTime has elapsed. + // Immediately use handleScroll to calculate. + handleScroll(); + // No further calls to handleScroll until debounceTime has elapsed. timeout = setTimeout(nullifyTimeout, debounceTime); }; }; - var addScrollListener = function addScrollListener(target, handleScroll) { var scrollHandleWrapper = function scrollHandleWrapper(evt) { if (evt.target === target) { handleScroll(); } }; - if (target.addEventListener) { target.addEventListener('scroll', scrollHandleWrapper, supportsPassive ? { passive: true @@ -468,214 +404,34 @@ var addScrollListener = function addScrollListener(target, handleScroll) { target.attachEvent('onscroll', scrollHandleWrapper); } else { throw new Error('This browser does not support addEventListener or attachEvent.'); - } // To calculate the initial active list element. - + } + // To calculate the initial active list element. handleScroll(); }; - module.exports = function (options) { if (!options || !options.elementList || !options.makeNavListItem) { throw new Error('Options object with elementList and makeNavListItem must be provided.'); } - var navbar = document.createElement(options.tagName || 'nav'); - var navList = document.createElement('ul'); // The target defaults to window. + var navList = document.createElement('ul'); - var target = options.target || document; // Create list elements + // The target defaults to window. + var target = options.target || document; - var pairs = createAndAppendListItems(navList, options.elementList, options.makeNavListItem); // Whenever the window is scrolled, recalculate the active list element. Compatible with older - // versions of IE. + // Create list elements + var pairs = createAndAppendListItems(navList, options.elementList, options.makeNavListItem); + // Whenever the window is scrolled, recalculate the active list element. Compatible with older + // versions of IE. addScrollListener(target, makeHandleScroll(pairs, options.onScroll, options.debounceTime)); navbar.appendChild(navList); return navbar; }; },{}],4:[function(require,module,exports){ -"use strict"; - -exports.__esModule = true; -exports.default = void 0; - -function isElement(el) { - return el != null && typeof el === 'object' && el.nodeType === 1; -} - -function canOverflow(overflow, skipOverflowHiddenElements) { - if (skipOverflowHiddenElements && overflow === 'hidden') { - return false; - } - - return overflow !== 'visible' && overflow !== 'clip'; -} - -function isScrollable(el, skipOverflowHiddenElements) { - if (el.clientHeight < el.scrollHeight || el.clientWidth < el.scrollWidth) { - var style = getComputedStyle(el, null); - return canOverflow(style.overflowY, skipOverflowHiddenElements) || canOverflow(style.overflowX, skipOverflowHiddenElements); - } - - return false; -} - -function alignNearest(scrollingEdgeStart, scrollingEdgeEnd, scrollingSize, scrollingBorderStart, scrollingBorderEnd, elementEdgeStart, elementEdgeEnd, elementSize) { - if (elementEdgeStart < scrollingEdgeStart && elementEdgeEnd > scrollingEdgeEnd || elementEdgeStart > scrollingEdgeStart && elementEdgeEnd < scrollingEdgeEnd) { - return 0; - } - - if (elementEdgeStart <= scrollingEdgeStart && elementSize <= scrollingSize || elementEdgeEnd >= scrollingEdgeEnd && elementSize >= scrollingSize) { - return elementEdgeStart - scrollingEdgeStart - scrollingBorderStart; - } - - if (elementEdgeEnd > scrollingEdgeEnd && elementSize < scrollingSize || elementEdgeStart < scrollingEdgeStart && elementSize > scrollingSize) { - return elementEdgeEnd - scrollingEdgeEnd + scrollingBorderEnd; - } - - return 0; -} - -var _default = function _default(target, options) { - var scrollMode = options.scrollMode, - block = options.block, - inline = options.inline, - boundary = options.boundary, - skipOverflowHiddenElements = options.skipOverflowHiddenElements; - var checkBoundary = typeof boundary === 'function' ? boundary : function (node) { - return node !== boundary; - }; - - if (!isElement(target)) { - throw new TypeError('Invalid target'); - } - - var scrollingElement = document.scrollingElement || document.documentElement; - var frames = []; - var cursor = target; - - while (isElement(cursor) && checkBoundary(cursor)) { - cursor = cursor.parentNode; - - if (cursor === scrollingElement) { - frames.push(cursor); - break; - } - - if (cursor === document.body && isScrollable(cursor) && !isScrollable(document.documentElement)) { - continue; - } - - if (isScrollable(cursor, skipOverflowHiddenElements)) { - frames.push(cursor); - } - } - - var viewportWidth = window.visualViewport ? visualViewport.width : innerWidth; - var viewportHeight = window.visualViewport ? visualViewport.height : innerHeight; - var viewportX = window.scrollX || pageXOffset; - var viewportY = window.scrollY || pageYOffset; - - var _target$getBoundingCl = target.getBoundingClientRect(), - targetHeight = _target$getBoundingCl.height, - targetWidth = _target$getBoundingCl.width, - targetTop = _target$getBoundingCl.top, - targetRight = _target$getBoundingCl.right, - targetBottom = _target$getBoundingCl.bottom, - targetLeft = _target$getBoundingCl.left; - - var targetBlock = block === 'start' || block === 'nearest' ? targetTop : block === 'end' ? targetBottom : targetTop + targetHeight / 2; - var targetInline = inline === 'center' ? targetLeft + targetWidth / 2 : inline === 'end' ? targetRight : targetLeft; - var computations = []; - - for (var index = 0; index < frames.length; index++) { - var frame = frames[index]; - - var _frame$getBoundingCli = frame.getBoundingClientRect(), - _height = _frame$getBoundingCli.height, - _width = _frame$getBoundingCli.width, - _top = _frame$getBoundingCli.top, - right = _frame$getBoundingCli.right, - bottom = _frame$getBoundingCli.bottom, - _left = _frame$getBoundingCli.left; - - if (scrollMode === 'if-needed' && targetTop >= 0 && targetLeft >= 0 && targetBottom <= viewportHeight && targetRight <= viewportWidth && targetTop >= _top && targetBottom <= bottom && targetLeft >= _left && targetRight <= right) { - return computations; - } - - var frameStyle = getComputedStyle(frame); - var borderLeft = parseInt(frameStyle.borderLeftWidth, 10); - var borderTop = parseInt(frameStyle.borderTopWidth, 10); - var borderRight = parseInt(frameStyle.borderRightWidth, 10); - var borderBottom = parseInt(frameStyle.borderBottomWidth, 10); - var blockScroll = 0; - var inlineScroll = 0; - var scrollbarWidth = 'offsetWidth' in frame ? frame.offsetWidth - frame.clientWidth - borderLeft - borderRight : 0; - var scrollbarHeight = 'offsetHeight' in frame ? frame.offsetHeight - frame.clientHeight - borderTop - borderBottom : 0; - - if (scrollingElement === frame) { - if (block === 'start') { - blockScroll = targetBlock; - } else if (block === 'end') { - blockScroll = targetBlock - viewportHeight; - } else if (block === 'nearest') { - blockScroll = alignNearest(viewportY, viewportY + viewportHeight, viewportHeight, borderTop, borderBottom, viewportY + targetBlock, viewportY + targetBlock + targetHeight, targetHeight); - } else { - blockScroll = targetBlock - viewportHeight / 2; - } - - if (inline === 'start') { - inlineScroll = targetInline; - } else if (inline === 'center') { - inlineScroll = targetInline - viewportWidth / 2; - } else if (inline === 'end') { - inlineScroll = targetInline - viewportWidth; - } else { - inlineScroll = alignNearest(viewportX, viewportX + viewportWidth, viewportWidth, borderLeft, borderRight, viewportX + targetInline, viewportX + targetInline + targetWidth, targetWidth); - } +"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const t=t=>"object"==typeof t&&null!=t&&1===t.nodeType,e=(t,e)=>(!e||"hidden"!==t)&&("visible"!==t&&"clip"!==t),n=(t,n)=>{if(t.clientHeight{const e=(t=>{if(!t.ownerDocument||!t.ownerDocument.defaultView)return null;try{return t.ownerDocument.defaultView.frameElement}catch(t){return null}})(t);return!!e&&(e.clientHeightle||l>t&&r=e&&d>=n?l-t-o:r>e&&dn?r-e+i:0,i=t=>{const e=t.parentElement;return null==e?t.getRootNode().host||null:e};exports.compute=(e,l)=>{var r,d,s,c;if("undefined"==typeof document)return[];const{scrollMode:h,block:u,inline:f,boundary:a,skipOverflowHiddenElements:m}=l,g="function"==typeof a?a:t=>t!==a;if(!t(e))throw new TypeError("Invalid target");const p=document.scrollingElement||document.documentElement,w=[];let W=e;for(;t(W)&&g(W);){if(W=i(W),W===p){w.push(W);break}null!=W&&W===document.body&&n(W)&&!n(document.documentElement)||null!=W&&n(W,m)&&w.push(W)}const b=null!=(d=null==(r=window.visualViewport)?void 0:r.width)?d:innerWidth,H=null!=(c=null==(s=window.visualViewport)?void 0:s.height)?c:innerHeight,{scrollX:v,scrollY:y}=window,{height:M,width:E,top:x,right:I,bottom:C,left:R}=e.getBoundingClientRect();let T="start"===u||"nearest"===u?x:"end"===u?C:x+M/2,V="center"===f?R+E/2:"end"===f?I:R;const k=[];for(let t=0;t=0&&R>=0&&C<=H&&I<=b&&x>=l&&C<=d&&R>=s&&I<=r)return k;const c=getComputedStyle(e),a=parseInt(c.borderLeftWidth,10),m=parseInt(c.borderTopWidth,10),g=parseInt(c.borderRightWidth,10),W=parseInt(c.borderBottomWidth,10);let B=0,D=0;const j="offsetWidth"in e?e.offsetWidth-e.clientWidth-a-g:0,L="offsetHeight"in e?e.offsetHeight-e.clientHeight-m-W:0,O="offsetWidth"in e?0===e.offsetWidth?0:i/e.offsetWidth:0,S="offsetHeight"in e?0===e.offsetHeight?0:n/e.offsetHeight:0;if(p===e)B="start"===u?T:"end"===u?T-H:"nearest"===u?o(y,y+H,H,m,W,y+T,y+T+M,M):T-H/2,D="start"===f?V:"center"===f?V-b/2:"end"===f?V-b:o(v,v+b,b,a,g,v+V,v+V+E,E),B=Math.max(0,B+y),D=Math.max(0,D+v);else{B="start"===u?T-l-m:"end"===u?T-d+W+L:"nearest"===u?o(l,d,n,m,W+L,T,T+M,M):T-(l+n/2)+L/2,D="start"===f?V-s-a:"center"===f?V-(s+i/2)+j/2:"end"===f?V-r+g+j:o(s,r,i,a,g+j,V,V+E,E);const{scrollLeft:t,scrollTop:c}=e;B=Math.max(0,Math.min(c+B/S,e.scrollHeight-n/S+L)),D=Math.max(0,Math.min(t+D/O,e.scrollWidth-i/O+j)),T+=c-B,V+=t-D}k.push({el:e,top:B,left:D})}return k}; - blockScroll = Math.max(0, blockScroll + viewportY); - inlineScroll = Math.max(0, inlineScroll + viewportX); - } else { - if (block === 'start') { - blockScroll = targetBlock - _top - borderTop; - } else if (block === 'end') { - blockScroll = targetBlock - bottom + borderBottom + scrollbarHeight; - } else if (block === 'nearest') { - blockScroll = alignNearest(_top, bottom, _height, borderTop, borderBottom + scrollbarHeight, targetBlock, targetBlock + targetHeight, targetHeight); - } else { - blockScroll = targetBlock - (_top + _height / 2) + scrollbarHeight / 2; - } - - if (inline === 'start') { - inlineScroll = targetInline - _left - borderLeft; - } else if (inline === 'center') { - inlineScroll = targetInline - (_left + _width / 2) + scrollbarWidth / 2; - } else if (inline === 'end') { - inlineScroll = targetInline - right + borderRight + scrollbarWidth; - } else { - inlineScroll = alignNearest(_left, right, _width, borderLeft, borderRight + scrollbarWidth, targetInline, targetInline + targetWidth, targetWidth); - } - - var scrollLeft = frame.scrollLeft, - scrollTop = frame.scrollTop; - blockScroll = Math.max(0, Math.min(scrollTop + blockScroll, frame.scrollHeight - _height + scrollbarHeight)); - inlineScroll = Math.max(0, Math.min(scrollLeft + inlineScroll, frame.scrollWidth - _width + scrollbarWidth)); - targetBlock += scrollTop - blockScroll; - targetInline += scrollLeft - inlineScroll; - } - - computations.push({ - el: frame, - top: blockScroll, - left: inlineScroll - }); - } - - return computations; -}; - -exports.default = _default; -module.exports = exports.default; },{}],5:[function(require,module,exports){ /*! Hammer.JS - v2.0.7 - 2016-04-22 * http://hammerjs.github.io/ @@ -3322,78 +3078,7 @@ if (typeof define === 'function' && define.amd) { })(window, document, 'Hammer'); },{}],6:[function(require,module,exports){ -"use strict"; - -exports.__esModule = true; -exports.default = void 0; - -var _computeScrollIntoView = _interopRequireDefault(require("compute-scroll-into-view")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function isOptionsObject(options) { - return options === Object(options) && Object.keys(options).length !== 0; -} - -function defaultBehavior(actions, behavior) { - if (behavior === void 0) { - behavior = 'auto'; - } - - var canSmoothScroll = 'scrollBehavior' in document.body.style; - actions.forEach(function (_ref) { - var el = _ref.el, - top = _ref.top, - left = _ref.left; - - if (el.scroll && canSmoothScroll) { - el.scroll({ - top: top, - left: left, - behavior: behavior - }); - } else { - el.scrollTop = top; - el.scrollLeft = left; - } - }); -} - -function getOptions(options) { - if (options === false) { - return { - block: 'end', - inline: 'nearest' - }; - } - - if (isOptionsObject(options)) { - return options; - } - - return { - block: 'start', - inline: 'nearest' - }; -} - -function scrollIntoView(target, options) { - var targetIsDetached = !target.ownerDocument.documentElement.contains(target); - - if (isOptionsObject(options) && typeof options.behavior === 'function') { - return options.behavior(targetIsDetached ? [] : (0, _computeScrollIntoView.default)(target, options)); - } - - if (targetIsDetached) { - return; - } - - var computeOptions = getOptions(options); - return defaultBehavior((0, _computeScrollIntoView.default)(target, computeOptions), computeOptions.behavior); -} +"use strict";var e=require("compute-scroll-into-view");const o=e=>!1===e?{block:"end",inline:"nearest"}:(e=>e===Object(e)&&0!==Object.keys(e).length)(e)?e:{block:"start",inline:"nearest"};module.exports=function(t,n){if(!t.isConnected||!(e=>{let o=e;for(;o&&o.parentNode;){if(o.parentNode===document)return!0;o=o.parentNode instanceof ShadowRoot?o.parentNode.host:o.parentNode}return!1})(t))return;if((e=>"object"==typeof e&&"function"==typeof e.behavior)(n))return n.behavior(e.compute(t,n));const r="boolean"==typeof n||null==n?void 0:n.behavior;for(const{el:i,top:c,left:l}of e.compute(t,o(n)))i.scroll({top:c,left:l,behavior:r})}; -var _default = scrollIntoView; -exports.default = _default; -module.exports = exports.default; },{"compute-scroll-into-view":4}]},{},[1]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJsaWIvcHVibGljL2pzL21haW4uanMiLCJsaWIvcHVibGljL2pzL3NpZGVuYXYuanMiLCJsaWIvcHVibGljL2pzL3ZlbmRvci9uYXZiYXIuanMiLCJub2RlX21vZHVsZXMvY29tcHV0ZS1zY3JvbGwtaW50by12aWV3L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2hhbW1lcmpzL2hhbW1lci5qcyIsIm5vZGVfbW9kdWxlcy9zY3JvbGwtaW50by12aWV3LWlmLW5lZWRlZC9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQ0FBO0FBQ0E7O0FBRUEsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQUQsQ0FBdkI7O0FBQ0EsSUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBRUEsT0FBTyxDQUFDLElBQVIsQ0FDSSxRQUFRLENBQUMsYUFBVCxDQUF1QixrQ0FBdkIsQ0FESixFQUVJLFFBQVEsQ0FBQyxhQUFULENBQXVCLDBDQUF2QixDQUZKO0FBS0EsT0FBTyxDQUFDLElBQVIsQ0FDSSxRQUFRLENBQUMsYUFBVCxDQUF1Qiw0Q0FBdkIsQ0FESixFQUVJLFFBQVEsQ0FBQyxhQUFULENBQXVCLG9EQUF2QixDQUZKO0FBS0EsT0FBTyxDQUFDLElBQVIsQ0FDSSxRQUFRLENBQUMsYUFBVCxDQUF1QixzQ0FBdkIsQ0FESixFQUVJLFFBQVEsQ0FBQyxhQUFULENBQXVCLDhDQUF2QixDQUZKOztBQUtBLElBQU0saUJBQWlCLEdBQUcsU0FBcEIsaUJBQW9CLEdBQU07QUFFNUIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLHNCQUFULENBQWdDLFdBQWhDLENBQWI7QUFDQSxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsUUFBUCxDQUFnQixRQUFoQixDQUF5QixLQUF6QixDQUErQixHQUEvQixFQUFvQyxDQUFwQyxDQUFwQjs7QUFFQSxPQUFLLElBQUksQ0FBQyxH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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdExBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25sRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCIndXNlIHN0cmljdCc7XG4vKiBnbG9iYWwgZG9jdW1lbnQsIHdpbmRvdywgWE1MSHR0cFJlcXVlc3QgKi9cblxuY29uc3QgU2lkZW5hdiA9IHJlcXVpcmUoJy4vc2lkZW5hdicpO1xuY29uc3QgSGFtbWVyID0gcmVxdWlyZSgnaGFtbWVyanMnKTtcblxuU2lkZW5hdi5pbml0KFxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5kb2NzLWRldGFpbC1wYWdlIC5tYWluIC53cmFwcGVyJyksXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmRvY3MtZGV0YWlsLXBhZ2UgLm1haW4gLnNpZGVuYXZfX3RhcmdldCcpXG4pO1xuXG5TaWRlbmF2LmluaXQoXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmJlc3QtcHJhY3RpY2VzLWRldGFpbC1wYWdlIC5tYWluIC53cmFwcGVyJyksXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmJlc3QtcHJhY3RpY2VzLWRldGFpbC1wYWdlIC5tYWluIC5zaWRlbmF2X190YXJnZXQnKVxuKTtcblxuU2lkZW5hdi5pbml0KFxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5nZXR0aW5nLXN0YXJ0ZWQtcGFnZSAubWFpbiAud3JhcHBlcicpLFxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5nZXR0aW5nLXN0YXJ0ZWQtcGFnZSAubWFpbiAuc2lkZW5hdl9fdGFyZ2V0Jylcbik7XG5cbmNvbnN0IHNldEFjdGl2ZU5hdkl0ZW1zID0gKCkgPT4ge1xuXG4gICAgY29uc3QgbGlzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ25hdl9faXRlbScpO1xuICAgIGNvbnN0IGN1cnJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnNwbGl0KCcvJylbMV07XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgY29uc3QgaXRlbSA9IGxpc3RbaV07XG4gICAgICAgIGlmIChpdGVtLnBhdGhuYW1lLnNwbGl0KCcvJylbMV0gPT09IGN1cnJlbnRQYWdlKSB7XG4gICAgICAgICAgICBpdGVtLmNsYXNzTGlzdC5hZGQoJ25hdl9faXRlbS0tYWN0aXZlJyk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5jb25zdCBuZXdzbGV0dGVyU3VibWl0ID0gKCkgPT4ge1xuXG4gICAgY29uc3QgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduZXdzbGV0dGVyRm9ybScpO1xuXG4gICAgaWYgKCFmb3JtKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3JtLm9uc3VibWl0ID0gKGUpID0+IHtcblxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgY29uc3QgZW1haWxJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduZXdzbGV0dGVyRW1haWwnKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduZXdzbGV0dGVyTWVzc2FnZScpO1xuXG4gICAgICAgIGlmIChlbWFpbElucHV0LnZhbGlkaXR5LnZhbGlkKSB7XG4gICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVtYWlsOiBlbWFpbElucHV0LnZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgICAgICAgICAgeGhyLm9wZW4oJ1BPU1QnLCAnL21haWxjaGltcCcpO1xuICAgICAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgICAgICAgICB4aHIub25sb2FkID0gKCkgPT4ge1xuXG4gICAgICAgICAgICAgICAgc3dpdGNoICh4aHIuc3RhdHVzKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyMDA6XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICdZb3VcXCdyZSBhbGwgc2lnbmVkLXVwLiBUaGFua3MsIHBhbCEnO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW1haWxJbnB1dC52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSBgVGhlIGVtYWlsIGFkZHJlc3MgPGI+JHtlbWFpbElucHV0LnZhbHVlfTwvYj4gaXMgZWl0aGVyIGludmFsaWQsIG9yIG1heSBhbHJlYWR5IGJlIHN1YnNjcmliZWQuYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsSW5wdXQudmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW1haWxJbnB1dC5jbGFzc0xpc3QuYWRkKCduZXdzbGV0dGVyX19pbnB1dC0taW52YWxpZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2Uuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gYFRoZSBlbWFpbCBhZGRyZXNzIDxiPiR7ZW1haWxJbnB1dC52YWx1ZX08L2I+IG1heSBiZSBpbnZhbGlkLCBvciB5b3VyIG5ldHdvcmsgY29ubmVjdGlvbiBpcyBpbmFjdGl2ZS5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW1haWxJbnB1dC52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbWFpbElucHV0LmNsYXNzTGlzdC5hZGQoJ25ld3NsZXR0ZXJfX2lucHV0LS1pbnZhbGlkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHhoci5zZW5kKHBheWxvYWQpO1xuICAgICAgICB9XG4gICAgfTtcbn07XG5cbmNvbnN0IGRvY3NOYXZNb2JpbGVBY3Rpb25zID0gKCkgPT4ge1xuXG4gICAgY29uc3QgbWVudUJ1dHRvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5sLW5hdmlnYWJsZWNvbnRlbnRfX2NvbnRyb2wtaXRlbS0tbGVmdCcpO1xuICAgIGNvbnN0IHRvcEJ1dHRvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5sLW5hdmlnYWJsZWNvbnRlbnRfX2NvbnRyb2wtaXRlbS0tcmlnaHQnKTtcbiAgICBjb25zdCBkb2NzTmF2ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmwtbmF2aWdhYmxlY29udGVudF9fbmF2Jyk7XG4gICAgY29uc3QgZG9jc1dyYXBwZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubC1uYXZpZ2FibGVjb250ZW50IC53cmFwcGVyJyk7XG5cbiAgICBpZiAoIW1lbnVCdXR0b24gfHwgIXRvcEJ1dHRvbiB8fCAhZG9jc05hdiB8fCAhZG9jc1dyYXBwZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlzTW9iaWxlID0gKCkgPT4gd2luZG93LmdldENvbXB1dGVkU3R5bGUobWVudUJ1dHRvbi5wYXJlbnROb2RlKS5nZXRQcm9wZXJ0eVZhbHVlKCdkaXNwbGF5JykgIT09ICdub25lJztcbiAgICBjb25zdCBkb2NzTmF2SXNPcGVuID0gKCkgPT4gZG9jc05hdi5jbGFzc0xpc3QuY29udGFpbnMoJ2wtbmF2aWdhYmxlY29udGVudF9fbmF2LS1vcGVuJyk7XG4gICAgY29uc3QgdG9nZ2xlRG9jc05hdiA9ICgpID0+IHtcblxuICAgICAgICBpZiAoIWlzTW9iaWxlKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkb2NzTmF2SXNPcGVuKCkpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnYm9keS0tbm9zY3JvbGwnKTtcbiAgICAgICAgICAgIGRvY3NOYXYuY2xhc3NMaXN0LnJlbW92ZSgnbC1uYXZpZ2FibGVjb250ZW50X19uYXYtLW9wZW4nKTtcbiAgICAgICAgICAgIGRvY3NXcmFwcGVyLmNsYXNzTGlzdC5yZW1vdmUoJ3dyYXBwZXItLWRpc2FibGVkJyk7XG4gICAgICAgICAgICBkb2NzV3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRvZ2dsZURvY3NOYXYpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdib2R5LS1ub3Njcm9sbCcpO1xuICAgICAgICBkb2NzTmF2LmNsYXNzTGlzdC5hZGQoJ2wtbmF2aWdhYmxlY29udGVudF9fbmF2LS1vcGVuJyk7XG4gICAgICAgIGRvY3NXcmFwcGVyLmNsYXNzTGlzdC5hZGQoJ3dyYXBwZXItLWRpc2FibGVkJyk7XG4gICAgICAgIGRvY3NXcmFwcGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdG9nZ2xlRG9jc05hdik7XG4gICAgfTtcblxuICAgIG1lbnVCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0b2dnbGVEb2NzTmF2KTtcblxuICAgIEFycmF5LmZyb20oZG9jc05hdi5xdWVyeVNlbGVjdG9yQWxsKCcuc2lkZW5hdl9fc2VjdGlvbi1pdGVtJykpLmZvckVhY2goXG4gICAgICAgIChsaW5rKSA9PiBsaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdG9nZ2xlRG9jc05hdilcbiAgICApO1xuXG4gICAgdG9wQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuXG4gICAgICAgIGlmIChkb2NzTmF2SXNPcGVuKCkpIHtcbiAgICAgICAgICAgIHRvZ2dsZURvY3NOYXYoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgfSk7XG5cblxuICAgIGNvbnN0IGhhbW1lck5hdiA9IG5ldyBIYW1tZXIoZG9jc05hdik7XG4gICAgY29uc3QgaGFtbWVyQ29udGVudCA9IG5ldyBIYW1tZXIoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmwtbmF2aWdhYmxlY29udGVudCcpLCB7XG4gICAgICAgIGNzc1Byb3BzOiB7XG4gICAgICAgICAgICB1c2VyU2VsZWN0OiAnaW5pdGlhbCdcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgaGFtbWVyTmF2Lm9uKCdzd2lwZWxlZnQnLCB0b2dnbGVEb2NzTmF2KTtcbiAgICBoYW1tZXJDb250ZW50Lm9uKCdzd2lwZXJpZ2h0JywoKSA9PiB7XG5cbiAgICAgICAgaWYgKCFkb2NzTmF2SXNPcGVuKCkpIHtcbiAgICAgICAgICAgIHRvZ2dsZURvY3NOYXYoKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcblxuY29uc3QgY2hhbmdlUGFja2FnZVZlcnNpb24gPSAoKSA9PiB7XG5cbiAgICBjb25zdCBzZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndmVyc2lvbicpO1xuXG4gICAgaWYgKCFzZWxlY3QpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNlbGVjdC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAob3B0aW9uKSA9PiB7XG5cbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnNlYXJjaCA9ICd2PScgKyBvcHRpb24uc3JjRWxlbWVudC52YWx1ZTtcbiAgICB9KTtcbn07XG5cbmNvbnN0IHBhbFRvQ2xpcGJvYXJkID0gKCkgPT4ge1xuXG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb2RlQm94Jyk7XG4gICAgY29uc3QgYnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvZGVCb3hCdXR0b24nKTtcbiAgICBjb25zdCBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb2RlJyk7XG5cbiAgICBpZiAoIWVsZW1lbnQgfHwgIWJ1dHRvbiB8fCAhaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGVsZW1lbnQub25jbGljayA9ICgpID0+IHtcblxuICAgICAgICBpbnB1dC5zZWxlY3QoKTtcbiAgICB9O1xuXG4gICAgYnV0dG9uLm9uY2xpY2sgPSAoKSA9PiB7XG5cbiAgICAgICAgY29uc3QgdG9vbHRpcCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Rvb2x0aXBfX3RleHQnKVswXTtcbiAgICAgICAgaW5wdXQuc2VsZWN0KCk7XG4gICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdDb3B5Jyk7XG4gICAgICAgIHRvb2x0aXAuaW5uZXJIVE1MID0gJ0NvZGUgY29waWVkJztcblxuICAgICAgICBidXR0b24ub25tb3VzZWxlYXZlID0gKCkgPT4ge1xuXG4gICAgICAgICAgICB0b29sdGlwLmlubmVySFRNTCA9ICdDb3B5IHRvIGNsaXBib2FyZCc7XG4gICAgICAgIH07XG4gICAgfTtcbn07XG5cbmNvbnN0IG1hcmtkb3duTGlua3NFeHRlcm5hbCA9ICgpID0+IHtcblxuICAgIC8vIGV4dGVybmFsIGxpbmtzIG9ubHkgKG5vIHNlY3Rpb24gYW5jaG9ycyBvciBpbnRlcm5hbCAoIykgbGlua3MpXG4gICAgY29uc3QgbGlua3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubWFya2Rvd24tYm9keS5lbnRyeS1jb250ZW50IGE6bm90KFtocmVmXj1cIiNcIl0pOm5vdCguYW5jaG9yKScpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5rcy5sZW5ndGg7ICsraSkge1xuICAgICAgICBjb25zdCBsaW5rID0gbGlua3NbaV07XG4gICAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCd0YXJnZXQnLCAnX2JsYW5rJyk7XG4gICAgfVxufTtcblxuc2V0QWN0aXZlTmF2SXRlbXMoKTtcbm5ld3NsZXR0ZXJTdWJtaXQoKTtcbmRvY3NOYXZNb2JpbGVBY3Rpb25zKCk7XG5jaGFuZ2VQYWNrYWdlVmVyc2lvbigpO1xucGFsVG9DbGlwYm9hcmQoKTtcbm1hcmtkb3duTGlua3NFeHRlcm5hbCgpO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLyogZ2xvYmFsIGRvY3VtZW50LCB3aW5kb3cgKi9cblxuY29uc3QgU2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCA9IHJlcXVpcmUoJ3Njcm9sbC1pbnRvLXZpZXctaWYtbmVlZGVkJyk7XG5jb25zdCBOYXZiYXIgPSByZXF1aXJlKCcuL3ZlbmRvci9uYXZiYXInKTtcblxuY29uc3QgaW50ZXJuYWxzID0ge307XG5cbmNvbnN0IEZJWEVEX0hFQURFUl9IRUlHSFQgPSA2MDtcbmNvbnN0IFRPUF9QQURESU5HID0gMTA7XG5cbmV4cG9ydHMuaW5pdCA9IChjb250ZW50RWwsIG5hdkVsKSA9PiB7XG5cbiAgICBpZiAoIWNvbnRlbnRFbCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFuYXZFbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NpZGVuYXYgY29udGVudCBlbGVtZW50IGV4aXN0cywgYnV0IG5vdCB0aGUgbmF2IGVsZW1lbnQuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgaGFzaFN0YXRlID0gbmV3IGludGVybmFscy5IYXNoU3RhdGUoKTtcblxuICAgIGNvbnN0IG5hdmJhciA9IE5hdmJhcih7XG4gICAgICAgIHRhZ05hbWU6IG5hdkVsLnRhZ05hbWUsXG4gICAgICAgIGVsZW1lbnRMaXN0OiBjb250ZW50RWwucXVlcnlTZWxlY3RvckFsbCgnaDEsIGgyLCBoMywgaDQsIGg1LCBoNicpLFxuICAgICAgICBtYWtlTmF2TGlzdEl0ZW06IChlbCkgPT4ge1xuXG4gICAgICAgICAgICBlbCA9IGVsLmNsb25lTm9kZSh0cnVlKTtcblxuICAgICAgICAgICAgY29uc3QgYW5jaG9yID0gZWwucmVtb3ZlQ2hpbGQoZWwucXVlcnlTZWxlY3RvcignYScpKTtcbiAgICAgICAgICAgIGNvbnN0IGluZGVudCA9IE51bWJlcihlbC50YWdOYW1lLnJlcGxhY2UoJ0gnLCAnJykpO1xuXG4gICAgICAgICAgICAvLyBUdXJuIHJlbWFpbmluZyA8YT5zIGluIGhlYWRlciBpbnRvIDxzcGFuPnNcblxuICAgICAgICAgICAgY29uc3QgZ2V0TGluayA9ICgpID0+IGVsLnF1ZXJ5U2VsZWN0b3IoJ2EnKTtcblxuICAgICAgICAgICAgd2hpbGUgKGdldExpbmsoKSkge1xuXG4gICAgICAgICAgICAgICAgY29uc3QgbGluayA9IGdldExpbmsoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICAgICAgICAgIHNwYW4uaW5uZXJIVE1MID0gbGluay5pbm5lckhUTUw7XG5cbiAgICAgICAgICAgICAgICBsaW5rLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHNwYW4sIGxpbmspO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxzLnJlbmRlcihcbiAgICAgICAgICAgICAgICBpbnRlcm5hbHMuaXRlbShlbC5pbm5lckhUTUwsIGFuY2hvci5oYXNoLCBpbmRlbnQpXG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICBvblNjcm9sbDogKG5hdkl0ZW0pID0+IHtcblxuICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5oYXNoICE9PSBuYXZJdGVtLmhhc2ggJiYgIWhhc2hTdGF0ZS5hdXRvU2Nyb2xsaW5nICYmICFoYXNoU3RhdGUuZmlyc3RTY3JvbGwpIHtcbiAgICAgICAgICAgICAgICBoYXNoU3RhdGUuaGFzaENoYW5nZUZyb21TY3JvbGwoKTtcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSBuYXZJdGVtLmhyZWY7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGhhc2hTdGF0ZS5zY3JvbGxlZCgpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBuYXZiYXIuY2xhc3NMaXN0LmFkZCgnbWFya2Rvd24tYm9keScpO1xuICAgIG5hdmJhci5jbGFzc0xpc3QuYWRkKCdzaWRlbmF2X19zZWN0aW9ucycpO1xuXG4gICAgY29uc3QgaGFuZGxlSGFzaCA9ICgpID0+IHtcblxuICAgICAgICBpbnRlcm5hbHMubWF5YmVTY3JvbGxUb0hhc2god2luZG93LmxvY2F0aW9uLmhhc2gsIG5hdmJhciwgaGFzaFN0YXRlKTtcbiAgICB9O1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2hhc2hjaGFuZ2UnLCBoYW5kbGVIYXNoKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGhhbmRsZUhhc2gpO1xuXG4gICAgcmV0dXJuIG5hdkVsLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKG5hdmJhciwgbmF2RWwpO1xufTtcblxuaW50ZXJuYWxzLkhhc2hTdGF0ZSA9IGNsYXNzIEhhc2hTdGF0ZSB7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcblxuICAgICAgICB0aGlzLmF1dG9TY3JvbGxpbmcgPSAwO1xuICAgICAgICB0aGlzLmZyb21TY3JvbGwgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5maXJzdFNjcm9sbCA9IHRydWU7XG4gICAgfVxuXG4gICAgc2Nyb2xsZWQoKSB7XG5cbiAgICAgICAgdGhpcy5maXJzdFNjcm9sbCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGhhc2hDaGFuZ2VGcm9tU2Nyb2xsKCkge1xuXG4gICAgICAgIHRoaXMuZnJvbVNjcm9sbCA9IHRydWU7XG4gICAgfVxuXG4gICAgaGFuZGxlZENoYW5nZSgpIHtcblxuICAgICAgICB0aGlzLmZyb21TY3JvbGwgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBzdGFydEF1dG9TY3JvbGxpbmcoKSB7XG5cbiAgICAgICAgdGhpcy5hdXRvU2Nyb2xsaW5nKys7XG4gICAgfVxuXG4gICAgc3RvcEF1dG9TY3JvbGxpbmcoKSB7XG5cbiAgICAgICAgdGhpcy5hdXRvU2Nyb2xsaW5nLS07XG4gICAgfVxufTtcblxuaW50ZXJuYWxzLm1heWJlU2Nyb2xsVG9IYXNoID0gKGhhc2gsIG5hdmJhciwgaGFzaFN0YXRlKSA9PiB7XG5cbiAgICBjb25zdCBhbmNob3IgPSBoYXNoICYmIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGEuYW5jaG9yW2hyZWY9XCIke2hhc2h9XCJdYCk7XG4gICAgY29uc3QgbmF2SXRlbSA9IChoYXNoICYmIG5hdmJhci5xdWVyeVNlbGVjdG9yKGBhLnNpZGVuYXZfX3NlY3Rpb24taXRlbVtocmVmPVwiJHtoYXNofVwiXWApKSB8fCBuYXZiYXIucXVlcnlTZWxlY3RvcignLnNpZGVuYXZfX3NlY3Rpb24taXRlbScpO1xuXG4gICAgaWYgKG5hdkl0ZW0pIHtcbiAgICAgICAgaW50ZXJuYWxzLnNlbGVjdE5hdkl0ZW0obmF2SXRlbSk7XG5cbiAgICAgICAgLy8gRG9uJ3QganVtcCB0aGUgbmF2IHNjcm9sbCB3aGVuIHRoZSB1c2VyIGlzIHVzaW5nIHRoZSBuYXZcbiAgICAgICAgaWYgKCFuYXZiYXIucGFyZW50Tm9kZS5tYXRjaGVzKCc6aG92ZXInKSkge1xuICAgICAgICAgICAgU2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChuYXZJdGVtLCB7IGJvdW5kYXJ5OiBuYXZiYXIucGFyZW50Tm9kZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChhbmNob3IgJiYgIWhhc2hTdGF0ZS5mcm9tU2Nyb2xsKSB7XG4gICAgICAgIGhhc2hTdGF0ZS5zdGFydEF1dG9TY3JvbGxpbmcoKTtcbiAgICAgICAgYW5jaG9yLnNjcm9sbEludG9WaWV3KCk7XG5cbiAgICAgICAgLy8gRW5zdXJlIGVsZW1lbnQgaXMgdmlzaWJsZVxuICAgICAgICBpZiAoYW5jaG9yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCA8IChGSVhFRF9IRUFERVJfSEVJR0hUICsgVE9QX1BBRERJTkcpKSB7XG4gICAgICAgICAgICB3aW5kb3cuc2Nyb2xsQnkoMCwgLShGSVhFRF9IRUFERVJfSEVJR0hUICsgVE9QX1BBRERJTkcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gaGFzaFN0YXRlLnN0b3BBdXRvU2Nyb2xsaW5nKCksIDUwKTtcbiAgICB9XG5cbiAgICBoYXNoU3RhdGUuaGFuZGxlZENoYW5nZSgpO1xufTtcblxuaW50ZXJuYWxzLnNlbGVjdE5hdkl0ZW0gPSAobmF2SXRlbSkgPT4ge1xuXG4gICAgY29uc3QgbGFzdE5hdkl0ZW0gPSBuYXZJdGVtLnBhcmVudE5vZGUucXVlcnlTZWxlY3RvcignOnNjb3BlID4gLnNpZGVuYXZfX3NlY3Rpb24taXRlbS0tYWN0aXZlJyk7XG5cbiAgICBpZiAobGFzdE5hdkl0ZW0pIHtcbiAgICAgICAgbGFzdE5hdkl0ZW0uY2xhc3NMaXN0LnJlbW92ZSgnc2lkZW5hdl9fc2VjdGlvbi1pdGVtLS1hY3RpdmUnKTtcbiAgICB9XG5cbiAgICBuYXZJdGVtLmNsYXNzTGlzdC5hZGQoJ3NpZGVuYXZfX3NlY3Rpb24taXRlbS0tYWN0aXZlJyk7XG59O1xuXG5pbnRlcm5hbHMuaXRlbSA9IChpbm5lckhUTUwsIGhyZWYsIGluZGVudCkgPT4gKFxuXG4gICAgYDxhIGhyZWY9XCIke2hyZWZ9XCIgY2xhc3M9XCJzaWRlbmF2X19zZWN0aW9uLWl0ZW0gc2lkZW5hdl9fc2VjdGlvbi1pdGVtLS1pbmRlbnQtJHtpbmRlbnR9XCI+XG4gICAgICAgICR7aW5uZXJIVE1MfVxuICAgIDwvYT5gXG4pO1xuXG5pbnRlcm5hbHMucmVuZGVyID0gKGh0bWwpID0+IHtcblxuICAgIGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB3cmFwcGVyLmlubmVySFRNTCA9IGh0bWw7XG5cbiAgICByZXR1cm4gd3JhcHBlci5maXJzdENoaWxkO1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8qIGdsb2JhbCBkb2N1bWVudCwgd2luZG93ICovXG5cbi8qXG4gKiBUaGUgTUlUIExpY2Vuc2UgKE1JVClcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTcgTWFyayBTLiBFdmVyaXR0XG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggRGV2aW4gSXZ5IFttb2RpZmllZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9xdWJ5dGUvbmF2YmFyXVxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cblxubGV0IHN1cHBvcnRzUGFzc2l2ZSA9IGZhbHNlO1xuXG50cnkge1xuXG4gICAgY29uc3Qgb3B0cyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ3Bhc3NpdmUnLCB7XG4gICAgICAgIGdldCgpIHtcblxuICAgICAgICAgICAgc3VwcG9ydHNQYXNzaXZlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBudWxsLCBvcHRzKTtcbn1cbmNhdGNoIChlKSB7fVxuXG5jb25zdCBjcmVhdGVBbmRBcHBlbmRMaXN0SXRlbXMgPSAobmF2TGlzdCwgZWxlbWVudExpc3QsIG1ha2VOYXZMaXN0SXRlbSkgPT4ge1xuXG4gICAgY29uc3QgcGFpcnMgPSBbXTtcblxuICAgIC8vIENyZWF0ZSBsaXN0IGVsZW1lbnRzXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50TGlzdC5sZW5ndGg7ICsraSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudExpc3RbaV07XG4gICAgICAgIGNvbnN0IGxpID0gbWFrZU5hdkxpc3RJdGVtKGVsZW1lbnQpO1xuXG4gICAgICAgIG5hdkxpc3QuYXBwZW5kQ2hpbGQobGkpO1xuXG4gICAgICAgIHBhaXJzLnB1c2goeyBlbGVtZW50LCBuYXZFbGVtZW50OiBsaSB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFpcnM7XG59O1xuXG5jb25zdCBtYWtlSGFuZGxlU2Nyb2xsID0gKHBhaXJzLCBvblNjcm9sbEhvb2ssIGRlYm91bmNlVGltZSkgPT4ge1xuXG4gICAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xuXG4gICAgICAgIGxldCBmcm9udFJ1bm5lckluZGV4O1xuICAgICAgICBsZXQgY2xvc2VzdERpc3QgPSBJbmZpbml0eTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhaXJzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBjb25zdCBwYWlyID0gcGFpcnNbaV07XG4gICAgICAgICAgICBjb25zdCBhYnNEaXN0ID0gTWF0aC5hYnMocGFpci5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCk7XG5cbiAgICAgICAgICAgIC8vIElmIHRoaXMgZWxlbWVudCBpcyBub3QgdGhlIGZyb250IHJ1bm5lciBmb3IgdG9wLCBkZWFjdGl2YXRlIGl0LlxuICAgICAgICAgICAgaWYgKGFic0Rpc3QgPiBjbG9zZXN0RGlzdCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmcm9udFJ1bm5lckluZGV4ID0gaTtcbiAgICAgICAgICAgIGNsb3Nlc3REaXN0ID0gYWJzRGlzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvblNjcm9sbEhvb2spIHtcbiAgICAgICAgICAgIG9uU2Nyb2xsSG9vayhwYWlyc1tmcm9udFJ1bm5lckluZGV4XS5uYXZFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBUaGUgZGVmYXVsdCBiZWhhdmlvdXIgaXMgbm8gZGVib3VuY2UuXG4gICAgaWYgKHR5cGVvZiBkZWJvdW5jZVRpbWUgIT09ICdudW1iZXInIHx8IGlzTmFOKGRlYm91bmNlVGltZSkpIHtcbiAgICAgICAgcmV0dXJuIGhhbmRsZVNjcm9sbDtcbiAgICB9XG5cbiAgICBsZXQgdGltZW91dDtcblxuICAgIGNvbnN0IG51bGxpZnlUaW1lb3V0ID0gKCkgPT4ge1xuXG4gICAgICAgIHRpbWVvdXQgPSBudWxsO1xuICAgIH07XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuXG4gICAgICAgIGlmICh0aW1lb3V0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbW1lZGlhdGVseSB1c2UgaGFuZGxlU2Nyb2xsIHRvIGNhbGN1bGF0ZS5cbiAgICAgICAgaGFuZGxlU2Nyb2xsKCk7XG5cbiAgICAgICAgLy8gTm8gZnVydGhlciBjYWxscyB0byBoYW5kbGVTY3JvbGwgdW50aWwgZGVib3VuY2VUaW1lIGhhcyBlbGFwc2VkLlxuICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dChudWxsaWZ5VGltZW91dCwgZGVib3VuY2VUaW1lKTtcbiAgICB9O1xufTtcblxuY29uc3QgYWRkU2Nyb2xsTGlzdGVuZXIgPSAodGFyZ2V0LCBoYW5kbGVTY3JvbGwpID0+IHtcblxuICAgIGNvbnN0IHNjcm9sbEhhbmRsZVdyYXBwZXIgPSAoZXZ0KSA9PiB7XG5cbiAgICAgICAgaWYgKGV2dC50YXJnZXQgPT09IHRhcmdldCkge1xuICAgICAgICAgICAgaGFuZGxlU2Nyb2xsKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKHRhcmdldC5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBzY3JvbGxIYW5kbGVXcmFwcGVyLCBzdXBwb3J0c1Bhc3NpdmUgPyB7IHBhc3NpdmU6IHRydWUgfSA6IGZhbHNlKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodGFyZ2V0LmF0dGFjaEV2ZW50KSB7XG4gICAgICAgIHRhcmdldC5hdHRhY2hFdmVudCgnb25zY3JvbGwnLCBzY3JvbGxIYW5kbGVXcmFwcGVyKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVGhpcyBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgYWRkRXZlbnRMaXN0ZW5lciBvciBhdHRhY2hFdmVudC4nKTtcbiAgICB9XG5cbiAgICAvLyBUbyBjYWxjdWxhdGUgdGhlIGluaXRpYWwgYWN0aXZlIGxpc3QgZWxlbWVudC5cbiAgICBoYW5kbGVTY3JvbGwoKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gKG9wdGlvbnMpID0+IHtcblxuICAgIGlmICghb3B0aW9ucyB8fCAhb3B0aW9ucy5lbGVtZW50TGlzdCB8fCAhb3B0aW9ucy5tYWtlTmF2TGlzdEl0ZW0pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPcHRpb25zIG9iamVjdCB3aXRoIGVsZW1lbnRMaXN0IGFuZCBtYWtlTmF2TGlzdEl0ZW0gbXVzdCBiZSBwcm92aWRlZC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBuYXZiYXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KG9wdGlvbnMudGFnTmFtZSB8fCAnbmF2Jyk7XG4gICAgY29uc3QgbmF2TGlzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3VsJyk7XG5cbiAgICAvLyBUaGUgdGFyZ2V0IGRlZmF1bHRzIHRvIHdpbmRvdy5cbiAgICBjb25zdCB0YXJnZXQgPSBvcHRpb25zLnRhcmdldCB8fCBkb2N1bWVudDtcblxuICAgIC8vIENyZWF0ZSBsaXN0IGVsZW1lbnRzXG4gICAgY29uc3QgcGFpcnMgPSBjcmVhdGVBbmRBcHBlbmRMaXN0SXRlbXMobmF2TGlzdCwgb3B0aW9ucy5lbGVtZW50TGlzdCwgb3B0aW9ucy5tYWtlTmF2TGlzdEl0ZW0pO1xuXG4gICAgLy8gV2hlbmV2ZXIgdGhlIHdpbmRvdyBpcyBzY3JvbGxlZCwgcmVjYWxjdWxhdGUgdGhlIGFjdGl2ZSBsaXN0IGVsZW1lbnQuIENvbXBhdGlibGUgd2l0aCBvbGRlclxuICAgIC8vIHZlcnNpb25zIG9mIElFLlxuICAgIGFkZFNjcm9sbExpc3RlbmVyKHRhcmdldCwgbWFrZUhhbmRsZVNjcm9sbChwYWlycywgb3B0aW9ucy5vblNjcm9sbCwgb3B0aW9ucy5kZWJvdW5jZVRpbWUpKTtcblxuICAgIG5hdmJhci5hcHBlbmRDaGlsZChuYXZMaXN0KTtcblxuICAgIHJldHVybiBuYXZiYXI7XG59O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG5cbmZ1bmN0aW9uIGlzRWxlbWVudChlbCkge1xuICByZXR1cm4gZWwgIT0gbnVsbCAmJiB0eXBlb2YgZWwgPT09ICdvYmplY3QnICYmIGVsLm5vZGVUeXBlID09PSAxO1xufVxuXG5mdW5jdGlvbiBjYW5PdmVyZmxvdyhvdmVyZmxvdywgc2tpcE92ZXJmbG93SGlkZGVuRWxlbWVudHMpIHtcbiAgaWYgKHNraXBPdmVyZmxvd0hpZGRlbkVsZW1lbnRzICYmIG92ZXJmbG93ID09PSAnaGlkZGVuJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBvdmVyZmxvdyAhPT0gJ3Zpc2libGUnICYmIG92ZXJmbG93ICE9PSAnY2xpcCc7XG59XG5cbmZ1bmN0aW9uIGlzU2Nyb2xsYWJsZShlbCwgc2tpcE92ZXJmbG93SGlkZGVuRWxlbWVudHMpIHtcbiAgaWYgKGVsLmNsaWVudEhlaWdodCA8IGVsLnNjcm9sbEhlaWdodCB8fCBlbC5jbGllbnRXaWR0aCA8IGVsLnNjcm9sbFdpZHRoKSB7XG4gICAgdmFyIHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbCwgbnVsbCk7XG4gICAgcmV0dXJuIGNhbk92ZXJmbG93KHN0eWxlLm92ZXJmbG93WSwgc2tpcE92ZXJmbG93SGlkZGVuRWxlbWVudHMpIHx8IGNhbk92ZXJmbG93KHN0eWxlLm92ZXJmbG93WCwgc2tpcE92ZXJmbG93SGlkZGVuRWxlbWVudHMpO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBhbGlnbk5lYXJlc3Qoc2Nyb2xsaW5nRWRnZVN0YXJ0LCBzY3JvbGxpbmdFZGdlRW5kLCBzY3JvbGxpbmdTaXplLCBzY3JvbGxpbmdCb3JkZXJTdGFydCwgc2Nyb2xsaW5nQm9yZGVyRW5kLCBlbGVtZW50RWRnZVN0YXJ0LCBlbGVtZW50RWRnZUVuZCwgZWxlbWVudFNpemUpIHtcbiAgaWYgKGVsZW1lbnRFZGdlU3RhcnQgPCBzY3JvbGxpbmdFZGdlU3RhcnQgJiYgZWxlbWVudEVkZ2VFbmQgPiBzY3JvbGxpbmdFZGdlRW5kIHx8IGVsZW1lbnRFZGdlU3RhcnQgPiBzY3JvbGxpbmdFZGdlU3RhcnQgJiYgZWxlbWVudEVkZ2VFbmQgPCBzY3JvbGxpbmdFZGdlRW5kKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBpZiAoZWxlbWVudEVkZ2VTdGFydCA8PSBzY3JvbGxpbmdFZGdlU3RhcnQgJiYgZWxlbWVudFNpemUgPD0gc2Nyb2xsaW5nU2l6ZSB8fCBlbGVtZW50RWRnZUVuZCA+PSBzY3JvbGxpbmdFZGdlRW5kICYmIGVsZW1lbnRTaXplID49IHNjcm9sbGluZ1NpemUpIHtcbiAgICByZXR1cm4gZWxlbWVudEVkZ2VTdGFydCAtIHNjcm9sbGluZ0VkZ2VTdGFydCAtIHNjcm9sbGluZ0JvcmRlclN0YXJ0O1xuICB9XG5cbiAgaWYgKGVsZW1lbnRFZGdlRW5kID4gc2Nyb2xsaW5nRWRnZUVuZCAmJiBlbGVtZW50U2l6ZSA8IHNjcm9sbGluZ1NpemUgfHwgZWxlbWVudEVkZ2VTdGFydCA8IHNjcm9sbGluZ0VkZ2VTdGFydCAmJiBlbGVtZW50U2l6ZSA+IHNjcm9sbGluZ1NpemUpIHtcbiAgICByZXR1cm4gZWxlbWVudEVkZ2VFbmQgLSBzY3JvbGxpbmdFZGdlRW5kICsgc2Nyb2xsaW5nQm9yZGVyRW5kO1xuICB9XG5cbiAgcmV0dXJuIDA7XG59XG5cbnZhciBfZGVmYXVsdCA9IGZ1bmN0aW9uIF9kZWZhdWx0KHRhcmdldCwgb3B0aW9ucykge1xuICB2YXIgc2Nyb2xsTW9kZSA9IG9wdGlvbnMuc2Nyb2xsTW9kZSxcbiAgICAgIGJsb2NrID0gb3B0aW9ucy5ibG9jayxcbiAgICAgIGlubGluZSA9IG9wdGlvbnMuaW5saW5lLFxuICAgICAgYm91bmRhcnkgPSBvcHRpb25zLmJvdW5kYXJ5LFxuICAgICAgc2tpcE92ZXJmbG93SGlkZGVuRWxlbWVudHMgPSBvcHRpb25zLnNraXBPdmVyZmxvd0hpZGRlbkVsZW1lbnRzO1xuICB2YXIgY2hlY2tCb3VuZGFyeSA9IHR5cGVvZiBib3VuZGFyeSA9PT0gJ2Z1bmN0aW9uJyA/IGJvdW5kYXJ5IDogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZSAhPT0gYm91bmRhcnk7XG4gIH07XG5cbiAgaWYgKCFpc0VsZW1lbnQodGFyZ2V0KSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgdGFyZ2V0Jyk7XG4gIH1cblxuICB2YXIgc2Nyb2xsaW5nRWxlbWVudCA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICB2YXIgZnJhbWVzID0gW107XG4gIHZhciBjdXJzb3IgPSB0YXJnZXQ7XG5cbiAgd2hpbGUgKGlzRWxlbWVudChjdXJzb3IpICYmIGNoZWNrQm91bmRhcnkoY3Vyc29yKSkge1xuICAgIGN1cnNvciA9IGN1cnNvci5wYXJlbnROb2RlO1xuXG4gICAgaWYgKGN1cnNvciA9PT0gc2Nyb2xsaW5nRWxlbWVudCkge1xuICAgICAgZnJhbWVzLnB1c2goY3Vyc29yKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChjdXJzb3IgPT09IGRvY3VtZW50LmJvZHkgJiYgaXNTY3JvbGxhYmxlKGN1cnNvcikgJiYgIWlzU2Nyb2xsYWJsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoaXNTY3JvbGxhYmxlKGN1cnNvciwgc2tpcE92ZXJmbG93SGlkZGVuRWxlbWVudHMpKSB7XG4gICAgICBmcmFtZXMucHVzaChjdXJzb3IpO1xuICAgIH1cbiAgfVxuXG4gIHZhciB2aWV3cG9ydFdpZHRoID0gd2luZG93LnZpc3VhbFZpZXdwb3J0ID8gdmlzdWFsVmlld3BvcnQud2lkdGggOiBpbm5lcldpZHRoO1xuICB2YXIgdmlld3BvcnRIZWlnaHQgPSB3aW5kb3cudmlzdWFsVmlld3BvcnQgPyB2aXN1YWxWaWV3cG9ydC5oZWlnaHQgOiBpbm5lckhlaWdodDtcbiAgdmFyIHZpZXdwb3J0WCA9IHdpbmRvdy5zY3JvbGxYIHx8IHBhZ2VYT2Zmc2V0O1xuICB2YXIgdmlld3BvcnRZID0gd2luZG93LnNjcm9sbFkgfHwgcGFnZVlPZmZzZXQ7XG5cbiAgdmFyIF90YXJnZXQkZ2V0Qm91bmRpbmdDbCA9IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgIHRhcmdldEhlaWdodCA9IF90YXJnZXQkZ2V0Qm91bmRpbmdDbC5oZWlnaHQsXG4gICAgICB0YXJnZXRXaWR0aCA9IF90YXJnZXQkZ2V0Qm91bmRpbmdDbC53aWR0aCxcbiAgICAgIHRhcmdldFRvcCA9IF90YXJnZXQkZ2V0Qm91bmRpbmdDbC50b3AsXG4gICAgICB0YXJnZXRSaWdodCA9IF90YXJnZXQkZ2V0Qm91bmRpbmdDbC5yaWdodCxcbiAgICAgIHRhcmdldEJvdHRvbSA9IF90YXJnZXQkZ2V0Qm91bmRpbmdDbC5ib3R0b20sXG4gICAgICB0YXJnZXRMZWZ0ID0gX3RhcmdldCRnZXRCb3VuZGluZ0NsLmxlZnQ7XG5cbiAgdmFyIHRhcmdldEJsb2NrID0gYmxvY2sgPT09ICdzdGFydCcgfHwgYmxvY2sgPT09ICduZWFyZXN0JyA/IHRhcmdldFRvcCA6IGJsb2NrID09PSAnZW5kJyA/IHRhcmdldEJvdHRvbSA6IHRhcmdldFRvcCArIHRhcmdldEhlaWdodCAvIDI7XG4gIHZhciB0YXJnZXRJbmxpbmUgPSBpbmxpbmUgPT09ICdjZW50ZXInID8gdGFyZ2V0TGVmdCArIHRhcmdldFdpZHRoIC8gMiA6IGlubGluZSA9PT0gJ2VuZCcgPyB0YXJnZXRSaWdodCA6IHRhcmdldExlZnQ7XG4gIHZhciBjb21wdXRhdGlvbnMgPSBbXTtcblxuICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgZnJhbWVzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgIHZhciBmcmFtZSA9IGZyYW1lc1tpbmRleF07XG5cbiAgICB2YXIgX2ZyYW1lJGdldEJvdW5kaW5nQ2xpID0gZnJhbWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgICAgIF9oZWlnaHQgPSBfZnJhbWUkZ2V0Qm91bmRpbmdDbGkuaGVpZ2h0LFxuICAgICAgICBfd2lkdGggPSBfZnJhbWUkZ2V0Qm91bmRpbmdDbGkud2lkdGgsXG4gICAgICAgIF90b3AgPSBfZnJhbWUkZ2V0Qm91bmRpbmdDbGkudG9wLFxuICAgICAgICByaWdodCA9IF9mcmFtZSRnZXRCb3VuZGluZ0NsaS5yaWdodCxcbiAgICAgICAgYm90dG9tID0gX2ZyYW1lJGdldEJvdW5kaW5nQ2xpLmJvdHRvbSxcbiAgICAgICAgX2xlZnQgPSBfZnJhbWUkZ2V0Qm91bmRpbmdDbGkubGVmdDtcblxuICAgIGlmIChzY3JvbGxNb2RlID09PSAnaWYtbmVlZGVkJyAmJiB0YXJnZXRUb3AgPj0gMCAmJiB0YXJnZXRMZWZ0ID49IDAgJiYgdGFyZ2V0Qm90dG9tIDw9IHZpZXdwb3J0SGVpZ2h0ICYmIHRhcmdldFJpZ2h0IDw9IHZpZXdwb3J0V2lkdGggJiYgdGFyZ2V0VG9wID49IF90b3AgJiYgdGFyZ2V0Qm90dG9tIDw9IGJvdHRvbSAmJiB0YXJnZXRMZWZ0ID49IF9sZWZ0ICYmIHRhcmdldFJpZ2h0IDw9IHJpZ2h0KSB7XG4gICAgICByZXR1cm4gY29tcHV0YXRpb25zO1xuICAgIH1cblxuICAgIHZhciBmcmFtZVN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShmcmFtZSk7XG4gICAgdmFyIGJvcmRlckxlZnQgPSBwYXJzZUludChmcmFtZVN0eWxlLmJvcmRlckxlZnRXaWR0aCwgMTApO1xuICAgIHZhciBib3JkZXJUb3AgPSBwYXJzZUludChmcmFtZVN0eWxlLmJvcmRlclRvcFdpZHRoLCAxMCk7XG4gICAgdmFyIGJvcmRlclJpZ2h0ID0gcGFyc2VJbnQoZnJhbWVTdHlsZS5ib3JkZXJSaWdodFdpZHRoLCAxMCk7XG4gICAgdmFyIGJvcmRlckJvdHRvbSA9IHBhcnNlSW50KGZyYW1lU3R5bGUuYm9yZGVyQm90dG9tV2lkdGgsIDEwKTtcbiAgICB2YXIgYmxvY2tTY3JvbGwgPSAwO1xuICAgIHZhciBpbmxpbmVTY3JvbGwgPSAwO1xuICAgIHZhciBzY3JvbGxiYXJXaWR0aCA9ICdvZmZzZXRXaWR0aCcgaW4gZnJhbWUgPyBmcmFtZS5vZmZzZXRXaWR0aCAtIGZyYW1lLmNsaWVudFdpZHRoIC0gYm9yZGVyTGVmdCAtIGJvcmRlclJpZ2h0IDogMDtcbiAgICB2YXIgc2Nyb2xsYmFySGVpZ2h0ID0gJ29mZnNldEhlaWdodCcgaW4gZnJhbWUgPyBmcmFtZS5vZmZzZXRIZWlnaHQgLSBmcmFtZS5jbGllbnRIZWlnaHQgLSBib3JkZXJUb3AgLSBib3JkZXJCb3R0b20gOiAwO1xuXG4gICAgaWYgKHNjcm9sbGluZ0VsZW1lbnQgPT09IGZyYW1lKSB7XG4gICAgICBpZiAoYmxvY2sgPT09ICdzdGFydCcpIHtcbiAgICAgICAgYmxvY2tTY3JvbGwgPSB0YXJnZXRCbG9jaztcbiAgICAgIH0gZWxzZSBpZiAoYmxvY2sgPT09ICdlbmQnKSB7XG4gICAgICAgIGJsb2NrU2Nyb2xsID0gdGFyZ2V0QmxvY2sgLSB2aWV3cG9ydEhlaWdodDtcbiAgICAgIH0gZWxzZSBpZiAoYmxvY2sgPT09ICduZWFyZXN0Jykge1xuICAgICAgICBibG9ja1Njcm9sbCA9IGFsaWduTmVhcmVzdCh2aWV3cG9ydFksIHZpZXdwb3J0WSArIHZpZXdwb3J0SGVpZ2h0LCB2aWV3cG9ydEhlaWdodCwgYm9yZGVyVG9wLCBib3JkZXJCb3R0b20sIHZpZXdwb3J0WSArIHRhcmdldEJsb2NrLCB2aWV3cG9ydFkgKyB0YXJnZXRCbG9jayArIHRhcmdldEhlaWdodCwgdGFyZ2V0SGVpZ2h0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJsb2NrU2Nyb2xsID0gdGFyZ2V0QmxvY2sgLSB2aWV3cG9ydEhlaWdodCAvIDI7XG4gICAgICB9XG5cbiAgICAgIGlmIChpbmxpbmUgPT09ICdzdGFydCcpIHtcbiAgICAgICAgaW5saW5lU2Nyb2xsID0gdGFyZ2V0SW5saW5lO1xuICAgICAgfSBlbHNlIGlmIChpbmxpbmUgPT09ICdjZW50ZXInKSB7XG4gICAgICAgIGlubGluZVNjcm9sbCA9IHRhcmdldElubGluZSAtIHZpZXdwb3J0V2lkdGggLyAyO1xuICAgICAgfSBlbHNlIGlmIChpbmxpbmUgPT09ICdlbmQnKSB7XG4gICAgICAgIGlubGluZVNjcm9sbCA9IHRhcmdldElubGluZSAtIHZpZXdwb3J0V2lkdGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbmxpbmVTY3JvbGwgPSBhbGlnbk5lYXJlc3Qodmlld3BvcnRYLCB2aWV3cG9ydFggKyB2aWV3cG9ydFdpZHRoLCB2aWV3cG9ydFdpZHRoLCBib3JkZXJMZWZ0LCBib3JkZXJSaWdodCwgdmlld3BvcnRYICsgdGFyZ2V0SW5saW5lLCB2aWV3cG9ydFggKyB0YXJnZXRJbmxpbmUgKyB0YXJnZXRXaWR0aCwgdGFyZ2V0V2lkdGgpO1xuICAgICAgfVxuXG4gICAgICBibG9ja1Njcm9sbCA9IE1hdGgubWF4KDAsIGJsb2NrU2Nyb2xsICsgdmlld3BvcnRZKTtcbiAgICAgIGlubGluZVNjcm9sbCA9IE1hdGgubWF4KDAsIGlubGluZVNjcm9sbCArIHZpZXdwb3J0WCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChibG9jayA9PT0gJ3N0YXJ0Jykge1xuICAgICAgICBibG9ja1Njcm9sbCA9IHRhcmdldEJsb2NrIC0gX3RvcCAtIGJvcmRlclRvcDtcbiAgICAgIH0gZWxzZSBpZiAoYmxvY2sgPT09ICdlbmQnKSB7XG4gICAgICAgIGJsb2NrU2Nyb2xsID0gdGFyZ2V0QmxvY2sgLSBib3R0b20gKyBib3JkZXJCb3R0b20gKyBzY3JvbGxiYXJIZWlnaHQ7XG4gICAgICB9IGVsc2UgaWYgKGJsb2NrID09PSAnbmVhcmVzdCcpIHtcbiAgICAgICAgYmxvY2tTY3JvbGwgPSBhbGlnbk5lYXJlc3QoX3RvcCwgYm90dG9tLCBfaGVpZ2h0LCBib3JkZXJUb3AsIGJvcmRlckJvdHRvbSArIHNjcm9sbGJhckhlaWdodCwgdGFyZ2V0QmxvY2ssIHRhcmdldEJsb2NrICsgdGFyZ2V0SGVpZ2h0LCB0YXJnZXRIZWlnaHQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYmxvY2tTY3JvbGwgPSB0YXJnZXRCbG9jayAtIChfdG9wICsgX2hlaWdodCAvIDIpICsgc2Nyb2xsYmFySGVpZ2h0IC8gMjtcbiAgICAgIH1cblxuICAgICAgaWYgKGlubGluZSA9PT0gJ3N0YXJ0Jykge1xuICAgICAgICBpbmxpbmVTY3JvbGwgPSB0YXJnZXRJbmxpbmUgLSBfbGVmdCAtIGJvcmRlckxlZnQ7XG4gICAgICB9IGVsc2UgaWYgKGlubGluZSA9PT0gJ2NlbnRlcicpIHtcbiAgICAgICAgaW5saW5lU2Nyb2xsID0gdGFyZ2V0SW5saW5lIC0gKF9sZWZ0ICsgX3dpZHRoIC8gMikgKyBzY3JvbGxiYXJXaWR0aCAvIDI7XG4gICAgICB9IGVsc2UgaWYgKGlubGluZSA9PT0gJ2VuZCcpIHtcbiAgICAgICAgaW5saW5lU2Nyb2xsID0gdGFyZ2V0SW5saW5lIC0gcmlnaHQgKyBib3JkZXJSaWdodCArIHNjcm9sbGJhcldpZHRoO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5saW5lU2Nyb2xsID0gYWxpZ25OZWFyZXN0KF9sZWZ0LCByaWdodCwgX3dpZHRoLCBib3JkZXJMZWZ0LCBib3JkZXJSaWdodCArIHNjcm9sbGJhcldpZHRoLCB0YXJnZXRJbmxpbmUsIHRhcmdldElubGluZSArIHRhcmdldFdpZHRoLCB0YXJnZXRXaWR0aCk7XG4gICAgICB9XG5cbiAgICAgIHZhciBzY3JvbGxMZWZ0ID0gZnJhbWUuc2Nyb2xsTGVmdCxcbiAgICAgICAgICBzY3JvbGxUb3AgPSBmcmFtZS5zY3JvbGxUb3A7XG4gICAgICBibG9ja1Njcm9sbCA9IE1hdGgubWF4KDAsIE1hdGgubWluKHNjcm9sbFRvcCArIGJsb2NrU2Nyb2xsLCBmcmFtZS5zY3JvbGxIZWlnaHQgLSBfaGVpZ2h0ICsgc2Nyb2xsYmFySGVpZ2h0KSk7XG4gICAgICBpbmxpbmVTY3JvbGwgPSBNYXRoLm1heCgwLCBNYXRoLm1pbihzY3JvbGxMZWZ0ICsgaW5saW5lU2Nyb2xsLCBmcmFtZS5zY3JvbGxXaWR0aCAtIF93aWR0aCArIHNjcm9sbGJhcldpZHRoKSk7XG4gICAgICB0YXJnZXRCbG9jayArPSBzY3JvbGxUb3AgLSBibG9ja1Njcm9sbDtcbiAgICAgIHRhcmdldElubGluZSArPSBzY3JvbGxMZWZ0IC0gaW5saW5lU2Nyb2xsO1xuICAgIH1cblxuICAgIGNvbXB1dGF0aW9ucy5wdXNoKHtcbiAgICAgIGVsOiBmcmFtZSxcbiAgICAgIHRvcDogYmxvY2tTY3JvbGwsXG4gICAgICBsZWZ0OiBpbmxpbmVTY3JvbGxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBjb21wdXRhdGlvbnM7XG59O1xuXG5leHBvcnRzLmRlZmF1bHQgPSBfZGVmYXVsdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0OyIsIi8qISBIYW1tZXIuSlMgLSB2Mi4wLjcgLSAyMDE2LTA0LTIyXG4gKiBodHRwOi8vaGFtbWVyanMuZ2l0aHViLmlvL1xuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNiBKb3JpayBUYW5nZWxkZXI7XG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgKi9cbihmdW5jdGlvbih3aW5kb3csIGRvY3VtZW50LCBleHBvcnROYW1lLCB1bmRlZmluZWQpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG52YXIgVkVORE9SX1BSRUZJWEVTID0gWycnLCAnd2Via2l0JywgJ01veicsICdNUycsICdtcycsICdvJ107XG52YXIgVEVTVF9FTEVNRU5UID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbnZhciBUWVBFX0ZVTkNUSU9OID0gJ2Z1bmN0aW9uJztcblxudmFyIHJvdW5kID0gTWF0aC5yb3VuZDtcbnZhciBhYnMgPSBNYXRoLmFicztcbnZhciBub3cgPSBEYXRlLm5vdztcblxuLyoqXG4gKiBzZXQgYSB0aW1lb3V0IHdpdGggYSBnaXZlbiBzY29wZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEBwYXJhbSB7TnVtYmVyfSB0aW1lb3V0XG4gKiBAcGFyYW0ge09iamVjdH0gY29udGV4dFxuICogQHJldHVybnMge251bWJlcn1cbiAqL1xuZnVuY3Rpb24gc2V0VGltZW91dENvbnRleHQoZm4sIHRpbWVvdXQsIGNvbnRleHQpIHtcbiAgICByZXR1cm4gc2V0VGltZW91dChiaW5kRm4oZm4sIGNvbnRleHQpLCB0aW1lb3V0KTtcbn1cblxuLyoqXG4gKiBpZiB0aGUgYXJndW1lbnQgaXMgYW4gYXJyYXksIHdlIHdhbnQgdG8gZXhlY3V0ZSB0aGUgZm4gb24gZWFjaCBlbnRyeVxuICogaWYgaXQgYWludCBhbiBhcnJheSB3ZSBkb24ndCB3YW50IHRvIGRvIGEgdGhpbmcuXG4gKiB0aGlzIGlzIHVzZWQgYnkgYWxsIHRoZSBtZXRob2RzIHRoYXQgYWNjZXB0IGEgc2luZ2xlIGFuZCBhcnJheSBhcmd1bWVudC5cbiAqIEBwYXJhbSB7KnxBcnJheX0gYXJnXG4gKiBAcGFyYW0ge1N0cmluZ30gZm5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbY29udGV4dF1cbiAqIEByZXR1cm5zIHtCb29sZWFufVxuICovXG5mdW5jdGlvbiBpbnZva2VBcnJheUFyZyhhcmcsIGZuLCBjb250ZXh0KSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYXJnKSkge1xuICAgICAgICBlYWNoKGFyZywgY29udGV4dFtmbl0sIGNvbnRleHQpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIHdhbGsgb2JqZWN0cyBhbmQgYXJyYXlzXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRvclxuICogQHBhcmFtIHtPYmplY3R9IGNvbnRleHRcbiAqL1xuZnVuY3Rpb24gZWFjaChvYmosIGl0ZXJhdG9yLCBjb250ZXh0KSB7XG4gICAgdmFyIGk7XG5cbiAgICBpZiAoIW9iaikge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG9iai5mb3JFYWNoKSB7XG4gICAgICAgIG9iai5mb3JFYWNoKGl0ZXJhdG9yLCBjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKG9iai5sZW5ndGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpID0gMDtcbiAgICAgICAgd2hpbGUgKGkgPCBvYmoubGVuZ3RoKSB7XG4gICAgICAgICAgICBpdGVyYXRvci5jYWxsKGNvbnRleHQsIG9ialtpXSwgaSwgb2JqKTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoaSBpbiBvYmopIHtcbiAgICAgICAgICAgIG9iai5oYXNPd25Qcm9wZXJ0eShpKSAmJiBpdGVyYXRvci5jYWxsKGNvbnRleHQsIG9ialtpXSwgaSwgb2JqKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiB3cmFwIGEgbWV0aG9kIHdpdGggYSBkZXByZWNhdGlvbiB3YXJuaW5nIGFuZCBzdGFjayB0cmFjZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gbWV0aG9kXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuICogQHBhcmFtIHtTdHJpbmd9IG1lc3NhZ2VcbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gQSBuZXcgZnVuY3Rpb24gd3JhcHBpbmcgdGhlIHN1cHBsaWVkIG1ldGhvZC5cbiAqL1xuZnVuY3Rpb24gZGVwcmVjYXRlKG1ldGhvZCwgbmFtZSwgbWVzc2FnZSkge1xuICAgIHZhciBkZXByZWNhdGlvbk1lc3NhZ2UgPSAnREVQUkVDQVRFRCBNRVRIT0Q6ICcgKyBuYW1lICsgJ1xcbicgKyBtZXNzYWdlICsgJyBBVCBcXG4nO1xuICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IoJ2dldC1zdGFjay10cmFjZScpO1xuICAgICAgICB2YXIgc3RhY2sgPSBlICYmIGUuc3RhY2sgPyBlLnN0YWNrLnJlcGxhY2UoL15bXlxcKF0rP1tcXG4kXS9nbSwgJycpXG4gICAgICAgICAgICAucmVwbGFjZSgvXlxccythdFxccysvZ20sICcnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL15PYmplY3QuPGFub255bW91cz5cXHMqXFwoL2dtLCAne2Fub255bW91c30oKUAnKSA6ICdVbmtub3duIFN0YWNrIFRyYWNlJztcblxuICAgICAgICB2YXIgbG9nID0gd2luZG93LmNvbnNvbGUgJiYgKHdpbmRvdy5jb25zb2xlLndhcm4gfHwgd2luZG93LmNvbnNvbGUubG9nKTtcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgICAgbG9nLmNhbGwod2luZG93LmNvbnNvbGUsIGRlcHJlY2F0aW9uTWVzc2FnZSwgc3RhY2spO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtZXRob2QuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9O1xufVxuXG4vKipcbiAqIGV4dGVuZCBvYmplY3QuXG4gKiBtZWFucyB0aGF0IHByb3BlcnRpZXMgaW4gZGVzdCB3aWxsIGJlIG92ZXJ3cml0dGVuIGJ5IHRoZSBvbmVzIGluIHNyYy5cbiAqIEBwYXJhbSB7T2JqZWN0fSB0YXJnZXRcbiAqIEBwYXJhbSB7Li4uT2JqZWN0fSBvYmplY3RzX3RvX2Fzc2lnblxuICogQHJldHVybnMge09iamVjdH0gdGFyZ2V0XG4gKi9cbnZhciBhc3NpZ247XG5pZiAodHlwZW9mIE9iamVjdC5hc3NpZ24gIT09ICdmdW5jdGlvbicpIHtcbiAgICBhc3NpZ24gPSBmdW5jdGlvbiBhc3NpZ24odGFyZ2V0KSB7XG4gICAgICAgIGlmICh0YXJnZXQgPT09IHVuZGVmaW5lZCB8fCB0YXJnZXQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjb252ZXJ0IHVuZGVmaW5lZCBvciBudWxsIHRvIG9iamVjdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIG91dHB1dCA9IE9iamVjdCh0YXJnZXQpO1xuICAgICAgICBmb3IgKHZhciBpbmRleCA9IDE7IGluZGV4IDwgYXJndW1lbnRzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpbmRleF07XG4gICAgICAgICAgICBpZiAoc291cmNlICE9PSB1bmRlZmluZWQgJiYgc291cmNlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgbmV4dEtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShuZXh0S2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0W25leHRLZXldID0gc291cmNlW25leHRLZXldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfTtcbn0gZWxzZSB7XG4gICAgYXNzaWduID0gT2JqZWN0LmFzc2lnbjtcbn1cblxuLyoqXG4gKiBleHRlbmQgb2JqZWN0LlxuICogbWVhbnMgdGhhdCBwcm9wZXJ0aWVzIGluIGRlc3Qgd2lsbCBiZSBvdmVyd3JpdHRlbiBieSB0aGUgb25lcyBpbiBzcmMuXG4gKiBAcGFyYW0ge09iamVjdH0gZGVzdFxuICogQHBhcmFtIHtPYmplY3R9IHNyY1xuICogQHBhcmFtIHtCb29sZWFufSBbbWVyZ2U9ZmFsc2VdXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBkZXN0XG4gKi9cbnZhciBleHRlbmQgPSBkZXByZWNhdGUoZnVuY3Rpb24gZXh0ZW5kKGRlc3QsIHNyYywgbWVyZ2UpIHtcbiAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNyYyk7XG4gICAgdmFyIGkgPSAwO1xuICAgIHdoaWxlIChpIDwga2V5cy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKCFtZXJnZSB8fCAobWVyZ2UgJiYgZGVzdFtrZXlzW2ldXSA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICAgICAgZGVzdFtrZXlzW2ldXSA9IHNyY1trZXlzW2ldXTtcbiAgICAgICAgfVxuICAgICAgICBpKys7XG4gICAgfVxuICAgIHJldHVybiBkZXN0O1xufSwgJ2V4dGVuZCcsICdVc2UgYGFzc2lnbmAuJyk7XG5cbi8qKlxuICogbWVyZ2UgdGhlIHZhbHVlcyBmcm9tIHNyYyBpbiB0aGUgZGVzdC5cbiAqIG1lYW5zIHRoYXQgcHJvcGVydGllcyB0aGF0IGV4aXN0IGluIGRlc3Qgd2lsbCBub3QgYmUgb3ZlcndyaXR0ZW4gYnkgc3JjXG4gKiBAcGFyYW0ge09iamVjdH0gZGVzdFxuICogQHBhcmFtIHtPYmplY3R9IHNyY1xuICogQHJldHVybnMge09iamVjdH0gZGVzdFxuICovXG52YXIgbWVyZ2UgPSBkZXByZWNhdGUoZnVuY3Rpb24gbWVyZ2UoZGVzdCwgc3JjKSB7XG4gICAgcmV0dXJuIGV4dGVuZChkZXN0LCBzcmMsIHRydWUpO1xufSwgJ21lcmdlJywgJ1VzZSBgYXNzaWduYC4nKTtcblxuLyoqXG4gKiBzaW1wbGUgY2xhc3MgaW5oZXJpdGFuY2VcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNoaWxkXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBiYXNlXG4gKiBAcGFyYW0ge09iamVjdH0gW3Byb3BlcnRpZXNdXG4gKi9cbmZ1bmN0aW9uIGluaGVyaXQoY2hpbGQsIGJhc2UsIHByb3BlcnRpZXMpIHtcbiAgICB2YXIgYmFzZVAgPSBiYXNlLnByb3RvdHlwZSxcbiAgICAgICAgY2hpbGRQO1xuXG4gICAgY2hpbGRQID0gY2hpbGQucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShiYXNlUCk7XG4gICAgY2hpbGRQLmNvbnN0cnVjdG9yID0gY2hpbGQ7XG4gICAgY2hpbGRQLl9zdXBlciA9IGJhc2VQO1xuXG4gICAgaWYgKHByb3BlcnRpZXMpIHtcbiAgICAgICAgYXNzaWduKGNoaWxkUCwgcHJvcGVydGllcyk7XG4gICAgfVxufVxuXG4vKipcbiAqIHNpbXBsZSBmdW5jdGlvbiBiaW5kXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHBhcmFtIHtPYmplY3R9IGNvbnRleHRcbiAqIEByZXR1cm5zIHtGdW5jdGlvbn1cbiAqL1xuZnVuY3Rpb24gYmluZEZuKGZuLCBjb250ZXh0KSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGJvdW5kRm4oKSB7XG4gICAgICAgIHJldHVybiBmbi5hcHBseShjb250ZXh0LCBhcmd1bWVudHMpO1xuICAgIH07XG59XG5cbi8qKlxuICogbGV0IGEgYm9vbGVhbiB2YWx1ZSBhbHNvIGJlIGEgZnVuY3Rpb24gdGhhdCBtdXN0IHJldHVybiBhIGJvb2xlYW5cbiAqIHRoaXMgZmlyc3QgaXRlbSBpbiBhcmdzIHdpbGwgYmUgdXNlZCBhcyB0aGUgY29udGV4dFxuICogQHBhcmFtIHtCb29sZWFufEZ1bmN0aW9ufSB2YWxcbiAqIEBwYXJhbSB7QXJyYXl9IFthcmdzXVxuICogQHJldHVybnMge0Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGJvb2xPckZuKHZhbCwgYXJncykge1xuICAgIGlmICh0eXBlb2YgdmFsID09IFRZUEVfRlVOQ1RJT04pIHtcbiAgICAgICAgcmV0dXJuIHZhbC5hcHBseShhcmdzID8gYXJnc1swXSB8fCB1bmRlZmluZWQgOiB1bmRlZmluZWQsIGFyZ3MpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufVxuXG4vKipcbiAqIHVzZSB0aGUgdmFsMiB3aGVuIHZhbDEgaXMgdW5kZWZpbmVkXG4gKiBAcGFyYW0geyp9IHZhbDFcbiAqIEBwYXJhbSB7Kn0gdmFsMlxuICogQHJldHVybnMgeyp9XG4gKi9cbmZ1bmN0aW9uIGlmVW5kZWZpbmVkKHZhbDEsIHZhbDIpIHtcbiAgICByZXR1cm4gKHZhbDEgPT09IHVuZGVmaW5lZCkgPyB2YWwyIDogdmFsMTtcbn1cblxuLyoqXG4gKiBhZGRFdmVudExpc3RlbmVyIHdpdGggbXVsdGlwbGUgZXZlbnRzIGF0IG9uY2VcbiAqIEBwYXJhbSB7RXZlbnRUYXJnZXR9IHRhcmdldFxuICogQHBhcmFtIHtTdHJpbmd9IHR5cGVzXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBoYW5kbGVyXG4gKi9cbmZ1bmN0aW9uIGFkZEV2ZW50TGlzdGVuZXJzKHRhcmdldCwgdHlwZXMsIGhhbmRsZXIpIHtcbiAgICBlYWNoKHNwbGl0U3RyKHR5cGVzKSwgZnVuY3Rpb24odHlwZSkge1xuICAgICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBoYW5kbGVyLCBmYWxzZSk7XG4gICAgfSk7XG59XG5cbi8qKlxuICogcmVtb3ZlRXZlbnRMaXN0ZW5lciB3aXRoIG11bHRpcGxlIGV2ZW50cyBhdCBvbmNlXG4gKiBAcGFyYW0ge0V2ZW50VGFyZ2V0fSB0YXJnZXRcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlc1xuICogQHBhcmFtIHtGdW5jdGlvbn0gaGFuZGxlclxuICovXG5mdW5jdGlvbiByZW1vdmVFdmVudExpc3RlbmVycyh0YXJnZXQsIHR5cGVzLCBoYW5kbGVyKSB7XG4gICAgZWFjaChzcGxpdFN0cih0eXBlcyksIGZ1bmN0aW9uKHR5cGUpIHtcbiAgICAgICAgdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSwgaGFuZGxlciwgZmFsc2UpO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIGZpbmQgaWYgYSBub2RlIGlzIGluIHRoZSBnaXZlbiBwYXJlbnRcbiAqIEBtZXRob2QgaGFzUGFyZW50XG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBub2RlXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBwYXJlbnRcbiAqIEByZXR1cm4ge0Jvb2xlYW59IGZvdW5kXG4gKi9cbmZ1bmN0aW9uIGhhc1BhcmVudChub2RlLCBwYXJlbnQpIHtcbiAgICB3aGlsZSAobm9kZSkge1xuICAgICAgICBpZiAobm9kZSA9PSBwYXJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIG5vZGUgPSBub2RlLnBhcmVudE5vZGU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBzbWFsbCBpbmRleE9mIHdyYXBwZXJcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaW5kXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn0gZm91bmRcbiAqL1xuZnVuY3Rpb24gaW5TdHIoc3RyLCBmaW5kKSB7XG4gICAgcmV0dXJuIHN0ci5pbmRleE9mKGZpbmQpID4gLTE7XG59XG5cbi8qKlxuICogc3BsaXQgc3RyaW5nIG9uIHdoaXRlc3BhY2VcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm5zIHtBcnJheX0gd29yZHNcbiAqL1xuZnVuY3Rpb24gc3BsaXRTdHIoc3RyKSB7XG4gICAgcmV0dXJuIHN0ci50cmltKCkuc3BsaXQoL1xccysvZyk7XG59XG5cbi8qKlxuICogZmluZCBpZiBhIGFycmF5IGNvbnRhaW5zIHRoZSBvYmplY3QgdXNpbmcgaW5kZXhPZiBvciBhIHNpbXBsZSBwb2x5RmlsbFxuICogQHBhcmFtIHtBcnJheX0gc3JjXG4gKiBAcGFyYW0ge1N0cmluZ30gZmluZFxuICogQHBhcmFtIHtTdHJpbmd9IFtmaW5kQnlLZXldXG4gKiBAcmV0dXJuIHtCb29sZWFufE51bWJlcn0gZmFsc2Ugd2hlbiBub3QgZm91bmQsIG9yIHRoZSBpbmRleFxuICovXG5mdW5jdGlvbiBpbkFycmF5KHNyYywgZmluZCwgZmluZEJ5S2V5KSB7XG4gICAgaWYgKHNyYy5pbmRleE9mICYmICFmaW5kQnlLZXkpIHtcbiAgICAgICAgcmV0dXJuIHNyYy5pbmRleE9mKGZpbmQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBpID0gMDtcbiAgICAgICAgd2hpbGUgKGkgPCBzcmMubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoKGZpbmRCeUtleSAmJiBzcmNbaV1bZmluZEJ5S2V5XSA9PSBmaW5kKSB8fCAoIWZpbmRCeUtleSAmJiBzcmNbaV0gPT09IGZpbmQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbn1cblxuLyoqXG4gKiBjb252ZXJ0IGFycmF5LWxpa2Ugb2JqZWN0cyB0byByZWFsIGFycmF5c1xuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHJldHVybnMge0FycmF5fVxuICovXG5mdW5jdGlvbiB0b0FycmF5KG9iaikge1xuICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChvYmosIDApO1xufVxuXG4vKipcbiAqIHVuaXF1ZSBhcnJheSB3aXRoIG9iamVjdHMgYmFzZWQgb24gYSBrZXkgKGxpa2UgJ2lkJykgb3IganVzdCBieSB0aGUgYXJyYXkncyB2YWx1ZVxuICogQHBhcmFtIHtBcnJheX0gc3JjIFt7aWQ6MX0se2lkOjJ9LHtpZDoxfV1cbiAqIEBwYXJhbSB7U3RyaW5nfSBba2V5XVxuICogQHBhcmFtIHtCb29sZWFufSBbc29ydD1GYWxzZV1cbiAqIEByZXR1cm5zIHtBcnJheX0gW3tpZDoxfSx7aWQ6Mn1dXG4gKi9cbmZ1bmN0aW9uIHVuaXF1ZUFycmF5KHNyYywga2V5LCBzb3J0KSB7XG4gICAgdmFyIHJlc3VsdHMgPSBbXTtcbiAgICB2YXIgdmFsdWVzID0gW107XG4gICAgdmFyIGkgPSAwO1xuXG4gICAgd2hpbGUgKGkgPCBzcmMubGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWwgPSBrZXkgPyBzcmNbaV1ba2V5XSA6IHNyY1tpXTtcbiAgICAgICAgaWYgKGluQXJyYXkodmFsdWVzLCB2YWwpIDwgMCkge1xuICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHNyY1tpXSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWVzW2ldID0gdmFsO1xuICAgICAgICBpKys7XG4gICAgfVxuXG4gICAgaWYgKHNvcnQpIHtcbiAgICAgICAgaWYgKCFrZXkpIHtcbiAgICAgICAgICAgIHJlc3VsdHMgPSByZXN1bHRzLnNvcnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdHMgPSByZXN1bHRzLnNvcnQoZnVuY3Rpb24gc29ydFVuaXF1ZUFycmF5KGEsIGIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYVtrZXldID4gYltrZXldO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0cztcbn1cblxuLyoqXG4gKiBnZXQgdGhlIHByZWZpeGVkIHByb3BlcnR5XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcGFyYW0ge1N0cmluZ30gcHJvcGVydHlcbiAqIEByZXR1cm5zIHtTdHJpbmd8VW5kZWZpbmVkfSBwcmVmaXhlZFxuICovXG5mdW5jdGlvbiBwcmVmaXhlZChvYmosIHByb3BlcnR5KSB7XG4gICAgdmFyIHByZWZpeCwgcHJvcDtcbiAgICB2YXIgY2FtZWxQcm9wID0gcHJvcGVydHlbMF0udG9VcHBlckNhc2UoKSArIHByb3BlcnR5LnNsaWNlKDEpO1xuXG4gICAgdmFyIGkgPSAwO1xuICAgIHdoaWxlIChpIDwgVkVORE9SX1BSRUZJWEVTLmxlbmd0aCkge1xuICAgICAgICBwcmVmaXggPSBWRU5ET1JfUFJFRklYRVNbaV07XG4gICAgICAgIHByb3AgPSAocHJlZml4KSA/IHByZWZpeCArIGNhbWVsUHJvcCA6IHByb3BlcnR5O1xuXG4gICAgICAgIGlmIChwcm9wIGluIG9iaikge1xuICAgICAgICAgICAgcmV0dXJuIHByb3A7XG4gICAgICAgIH1cbiAgICAgICAgaSsrO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIGdldCBhIHVuaXF1ZSBpZFxuICogQHJldHVybnMge251bWJlcn0gdW5pcXVlSWRcbiAqL1xudmFyIF91bmlxdWVJZCA9IDE7XG5mdW5jdGlvbiB1bmlxdWVJZCgpIHtcbiAgICByZXR1cm4gX3VuaXF1ZUlkKys7XG59XG5cbi8qKlxuICogZ2V0IHRoZSB3aW5kb3cgb2JqZWN0IG9mIGFuIGVsZW1lbnRcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnRcbiAqIEByZXR1cm5zIHtEb2N1bWVudFZpZXd8V2luZG93fVxuICovXG5mdW5jdGlvbiBnZXRXaW5kb3dGb3JFbGVtZW50KGVsZW1lbnQpIHtcbiAgICB2YXIgZG9jID0gZWxlbWVudC5vd25lckRvY3VtZW50IHx8IGVsZW1lbnQ7XG4gICAgcmV0dXJuIChkb2MuZGVmYXVsdFZpZXcgfHwgZG9jLnBhcmVudFdpbmRvdyB8fCB3aW5kb3cpO1xufVxuXG52YXIgTU9CSUxFX1JFR0VYID0gL21vYmlsZXx0YWJsZXR8aXAoYWR8aG9uZXxvZCl8YW5kcm9pZC9pO1xuXG52YXIgU1VQUE9SVF9UT1VDSCA9ICgnb250b3VjaHN0YXJ0JyBpbiB3aW5kb3cpO1xudmFyIFNVUFBPUlRfUE9JTlRFUl9FVkVOVFMgPSBwcmVmaXhlZCh3aW5kb3csICdQb2ludGVyRXZlbnQnKSAhPT0gdW5kZWZpbmVkO1xudmFyIFNVUFBPUlRfT05MWV9UT1VDSCA9IFNVUFBPUlRfVE9VQ0ggJiYgTU9CSUxFX1JFR0VYLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5cbnZhciBJTlBVVF9UWVBFX1RPVUNIID0gJ3RvdWNoJztcbnZhciBJTlBVVF9UWVBFX1BFTiA9ICdwZW4nO1xudmFyIElOUFVUX1RZUEVfTU9VU0UgPSAnbW91c2UnO1xudmFyIElOUFVUX1RZUEVfS0lORUNUID0gJ2tpbmVjdCc7XG5cbnZhciBDT01QVVRFX0lOVEVSVkFMID0gMjU7XG5cbnZhciBJTlBVVF9TVEFSVCA9IDE7XG52YXIgSU5QVVRfTU9WRSA9IDI7XG52YXIgSU5QVVRfRU5EID0gNDtcbnZhciBJTlBVVF9DQU5DRUwgPSA4O1xuXG52YXIgRElSRUNUSU9OX05PTkUgPSAxO1xudmFyIERJUkVDVElPTl9MRUZUID0gMjtcbnZhciBESVJFQ1RJT05fUklHSFQgPSA0O1xudmFyIERJUkVDVElPTl9VUCA9IDg7XG52YXIgRElSRUNUSU9OX0RPV04gPSAxNjtcblxudmFyIERJUkVDVElPTl9IT1JJWk9OVEFMID0gRElSRUNUSU9OX0xFRlQgfCBESVJFQ1RJT05fUklHSFQ7XG52YXIgRElSRUNUSU9OX1ZFUlRJQ0FMID0gRElSRUNUSU9OX1VQIHwgRElSRUNUSU9OX0RPV047XG52YXIgRElSRUNUSU9OX0FMTCA9IERJUkVDVElPTl9IT1JJWk9OVEFMIHwgRElSRUNUSU9OX1ZFUlRJQ0FMO1xuXG52YXIgUFJPUFNfWFkgPSBbJ3gnLCAneSddO1xudmFyIFBST1BTX0NMSUVOVF9YWSA9IFsnY2xpZW50WCcsICdjbGllbnRZJ107XG5cbi8qKlxuICogY3JlYXRlIG5ldyBpbnB1dCB0eXBlIG1hbmFnZXJcbiAqIEBwYXJhbSB7TWFuYWdlcn0gbWFuYWdlclxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm5zIHtJbnB1dH1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5mdW5jdGlvbiBJbnB1dChtYW5hZ2VyLCBjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB0aGlzLm1hbmFnZXIgPSBtYW5hZ2VyO1xuICAgIHRoaXMuY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICB0aGlzLmVsZW1lbnQgPSBtYW5hZ2VyLmVsZW1lbnQ7XG4gICAgdGhpcy50YXJnZXQgPSBtYW5hZ2VyLm9wdGlvbnMuaW5wdXRUYXJnZXQ7XG5cbiAgICAvLyBzbWFsbGVyIHdyYXBwZXIgYXJvdW5kIHRoZSBoYW5kbGVyLCBmb3IgdGhlIHNjb3BlIGFuZCB0aGUgZW5hYmxlZCBzdGF0ZSBvZiB0aGUgbWFuYWdlcixcbiAgICAvLyBzbyB3aGVuIGRpc2FibGVkIHRoZSBpbnB1dCBldmVudHMgYXJlIGNvbXBsZXRlbHkgYnlwYXNzZWQuXG4gICAgdGhpcy5kb21IYW5kbGVyID0gZnVuY3Rpb24oZXYpIHtcbiAgICAgICAgaWYgKGJvb2xPckZuKG1hbmFnZXIub3B0aW9ucy5lbmFibGUsIFttYW5hZ2VyXSkpIHtcbiAgICAgICAgICAgIHNlbGYuaGFuZGxlcihldik7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5pbml0KCk7XG5cbn1cblxuSW5wdXQucHJvdG90eXBlID0ge1xuICAgIC8qKlxuICAgICAqIHNob3VsZCBoYW5kbGUgdGhlIGlucHV0RXZlbnQgZGF0YSBhbmQgdHJpZ2dlciB0aGUgY2FsbGJhY2tcbiAgICAgKiBAdmlydHVhbFxuICAgICAqL1xuICAgIGhhbmRsZXI6IGZ1bmN0aW9uKCkgeyB9LFxuXG4gICAgLyoqXG4gICAgICogYmluZCB0aGUgZXZlbnRzXG4gICAgICovXG4gICAgaW5pdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuZXZFbCAmJiBhZGRFdmVudExpc3RlbmVycyh0aGlzLmVsZW1lbnQsIHRoaXMuZXZFbCwgdGhpcy5kb21IYW5kbGVyKTtcbiAgICAgICAgdGhpcy5ldlRhcmdldCAmJiBhZGRFdmVudExpc3RlbmVycyh0aGlzLnRhcmdldCwgdGhpcy5ldlRhcmdldCwgdGhpcy5kb21IYW5kbGVyKTtcbiAgICAgICAgdGhpcy5ldldpbiAmJiBhZGRFdmVudExpc3RlbmVycyhnZXRXaW5kb3dGb3JFbGVtZW50KHRoaXMuZWxlbWVudCksIHRoaXMuZXZXaW4sIHRoaXMuZG9tSGFuZGxlcik7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHVuYmluZCB0aGUgZXZlbnRzXG4gICAgICovXG4gICAgZGVzdHJveTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuZXZFbCAmJiByZW1vdmVFdmVudExpc3RlbmVycyh0aGlzLmVsZW1lbnQsIHRoaXMuZXZFbCwgdGhpcy5kb21IYW5kbGVyKTtcbiAgICAgICAgdGhpcy5ldlRhcmdldCAmJiByZW1vdmVFdmVudExpc3RlbmVycyh0aGlzLnRhcmdldCwgdGhpcy5ldlRhcmdldCwgdGhpcy5kb21IYW5kbGVyKTtcbiAgICAgICAgdGhpcy5ldldpbiAmJiByZW1vdmVFdmVudExpc3RlbmVycyhnZXRXaW5kb3dGb3JFbGVtZW50KHRoaXMuZWxlbWVudCksIHRoaXMuZXZXaW4sIHRoaXMuZG9tSGFuZGxlcik7XG4gICAgfVxufTtcblxuLyoqXG4gKiBjcmVhdGUgbmV3IGlucHV0IHR5cGUgbWFuYWdlclxuICogY2FsbGVkIGJ5IHRoZSBNYW5hZ2VyIGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge0hhbW1lcn0gbWFuYWdlclxuICogQHJldHVybnMge0lucHV0fVxuICovXG5mdW5jdGlvbiBjcmVhdGVJbnB1dEluc3RhbmNlKG1hbmFnZXIpIHtcbiAgICB2YXIgVHlwZTtcbiAgICB2YXIgaW5wdXRDbGFzcyA9IG1hbmFnZXIub3B0aW9ucy5pbnB1dENsYXNzO1xuXG4gICAgaWYgKGlucHV0Q2xhc3MpIHtcbiAgICAgICAgVHlwZSA9IGlucHV0Q2xhc3M7XG4gICAgfSBlbHNlIGlmIChTVVBQT1JUX1BPSU5URVJfRVZFTlRTKSB7XG4gICAgICAgIFR5cGUgPSBQb2ludGVyRXZlbnRJbnB1dDtcbiAgICB9IGVsc2UgaWYgKFNVUFBPUlRfT05MWV9UT1VDSCkge1xuICAgICAgICBUeXBlID0gVG91Y2hJbnB1dDtcbiAgICB9IGVsc2UgaWYgKCFTVVBQT1JUX1RPVUNIKSB7XG4gICAgICAgIFR5cGUgPSBNb3VzZUlucHV0O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIFR5cGUgPSBUb3VjaE1vdXNlSW5wdXQ7XG4gICAgfVxuICAgIHJldHVybiBuZXcgKFR5cGUpKG1hbmFnZXIsIGlucHV0SGFuZGxlcik7XG59XG5cbi8qKlxuICogaGFuZGxlIGlucHV0IGV2ZW50c1xuICogQHBhcmFtIHtNYW5hZ2VyfSBtYW5hZ2VyXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRUeXBlXG4gKiBAcGFyYW0ge09iamVjdH0gaW5wdXRcbiAqL1xuZnVuY3Rpb24gaW5wdXRIYW5kbGVyKG1hbmFnZXIsIGV2ZW50VHlwZSwgaW5wdXQpIHtcbiAgICB2YXIgcG9pbnRlcnNMZW4gPSBpbnB1dC5wb2ludGVycy5sZW5ndGg7XG4gICAgdmFyIGNoYW5nZWRQb2ludGVyc0xlbiA9IGlucHV0LmNoYW5nZWRQb2ludGVycy5sZW5ndGg7XG4gICAgdmFyIGlzRmlyc3QgPSAoZXZlbnRUeXBlICYgSU5QVVRfU1RBUlQgJiYgKHBvaW50ZXJzTGVuIC0gY2hhbmdlZFBvaW50ZXJzTGVuID09PSAwKSk7XG4gICAgdmFyIGlzRmluYWwgPSAoZXZlbnRUeXBlICYgKElOUFVUX0VORCB8IElOUFVUX0NBTkNFTCkgJiYgKHBvaW50ZXJzTGVuIC0gY2hhbmdlZFBvaW50ZXJzTGVuID09PSAwKSk7XG5cbiAgICBpbnB1dC5pc0ZpcnN0ID0gISFpc0ZpcnN0O1xuICAgIGlucHV0LmlzRmluYWwgPSAhIWlzRmluYWw7XG5cbiAgICBpZiAoaXNGaXJzdCkge1xuICAgICAgICBtYW5hZ2VyLnNlc3Npb24gPSB7fTtcbiAgICB9XG5cbiAgICAvLyBzb3VyY2UgZXZlbnQgaXMgdGhlIG5vcm1hbGl6ZWQgdmFsdWUgb2YgdGhlIGRvbUV2ZW50c1xuICAgIC8vIGxpa2UgJ3RvdWNoc3RhcnQsIG1vdXNldXAsIHBvaW50ZXJkb3duJ1xuICAgIGlucHV0LmV2ZW50VHlwZSA9IGV2ZW50VHlwZTtcblxuICAgIC8vIGNvbXB1dGUgc2NhbGUsIHJvdGF0aW9uIGV0Y1xuICAgIGNvbXB1dGVJbnB1dERhdGEobWFuYWdlciwgaW5wdXQpO1xuXG4gICAgLy8gZW1pdCBzZWNyZXQgZXZlbnRcbiAgICBtYW5hZ2VyLmVtaXQoJ2hhbW1lci5pbnB1dCcsIGlucHV0KTtcblxuICAgIG1hbmFnZXIucmVjb2duaXplKGlucHV0KTtcbiAgICBtYW5hZ2VyLnNlc3Npb24ucHJldklucHV0ID0gaW5wdXQ7XG59XG5cbi8qKlxuICogZXh0ZW5kIHRoZSBkYXRhIHdpdGggc29tZSB1c2FibGUgcHJvcGVydGllcyBsaWtlIHNjYWxlLCByb3RhdGUsIHZlbG9jaXR5IGV0Y1xuICogQHBhcmFtIHtPYmplY3R9IG1hbmFnZXJcbiAqIEBwYXJhbSB7T2JqZWN0fSBpbnB1dFxuICovXG5mdW5jdGlvbiBjb21wdXRlSW5wdXREYXRhKG1hbmFnZXIsIGlucHV0KSB7XG4gICAgdmFyIHNlc3Npb24gPSBtYW5hZ2VyLnNlc3Npb247XG4gICAgdmFyIHBvaW50ZXJzID0gaW5wdXQucG9pbnRlcnM7XG4gICAgdmFyIHBvaW50ZXJzTGVuZ3RoID0gcG9pbnRlcnMubGVuZ3RoO1xuXG4gICAgLy8gc3RvcmUgdGhlIGZpcnN0IGlucHV0IHRvIGNhbGN1bGF0ZSB0aGUgZGlzdGFuY2UgYW5kIGRpcmVjdGlvblxuICAgIGlmICghc2Vzc2lvbi5maXJzdElucHV0KSB7XG4gICAgICAgIHNlc3Npb24uZmlyc3RJbnB1dCA9IHNpbXBsZUNsb25lSW5wdXREYXRhKGlucHV0KTtcbiAgICB9XG5cbiAgICAvLyB0byBjb21wdXRlIHNjYWxlIGFuZCByb3RhdGlvbiB3ZSBuZWVkIHRvIHN0b3JlIHRoZSBtdWx0aXBsZSB0b3VjaGVzXG4gICAgaWYgKHBvaW50ZXJzTGVuZ3RoID4gMSAmJiAhc2Vzc2lvbi5maXJzdE11bHRpcGxlKSB7XG4gICAgICAgIHNlc3Npb24uZmlyc3RNdWx0aXBsZSA9IHNpbXBsZUNsb25lSW5wdXREYXRhKGlucHV0KTtcbiAgICB9IGVsc2UgaWYgKHBvaW50ZXJzTGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHNlc3Npb24uZmlyc3RNdWx0aXBsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHZhciBmaXJzdElucHV0ID0gc2Vzc2lvbi5maXJzdElucHV0O1xuICAgIHZhciBmaXJzdE11bHRpcGxlID0gc2Vzc2lvbi5maXJzdE11bHRpcGxlO1xuICAgIHZhciBvZmZzZXRDZW50ZXIgPSBmaXJzdE11bHRpcGxlID8gZmlyc3RNdWx0aXBsZS5jZW50ZXIgOiBmaXJzdElucHV0LmNlbnRlcjtcblxuICAgIHZhciBjZW50ZXIgPSBpbnB1dC5jZW50ZXIgPSBnZXRDZW50ZXIocG9pbnRlcnMpO1xuICAgIGlucHV0LnRpbWVTdGFtcCA9IG5vdygpO1xuICAgIGlucHV0LmRlbHRhVGltZSA9IGlucHV0LnRpbWVTdGFtcCAtIGZpcnN0SW5wdXQudGltZVN0YW1wO1xuXG4gICAgaW5wdXQuYW5nbGUgPSBnZXRBbmdsZShvZmZzZXRDZW50ZXIsIGNlbnRlcik7XG4gICAgaW5wdXQuZGlzdGFuY2UgPSBnZXREaXN0YW5jZShvZmZzZXRDZW50ZXIsIGNlbnRlcik7XG5cbiAgICBjb21wdXRlRGVsdGFYWShzZXNzaW9uLCBpbnB1dCk7XG4gICAgaW5wdXQub2Zmc2V0RGlyZWN0aW9uID0gZ2V0RGlyZWN0aW9uKGlucHV0LmRlbHRhWCwgaW5wdXQuZGVsdGFZKTtcblxuICAgIHZhciBvdmVyYWxsVmVsb2NpdHkgPSBnZXRWZWxvY2l0eShpbnB1dC5kZWx0YVRpbWUsIGlucHV0LmRlbHRhWCwgaW5wdXQuZGVsdGFZKTtcbiAgICBpbnB1dC5vdmVyYWxsVmVsb2NpdHlYID0gb3ZlcmFsbFZlbG9jaXR5Lng7XG4gICAgaW5wdXQub3ZlcmFsbFZlbG9jaXR5WSA9IG92ZXJhbGxWZWxvY2l0eS55O1xuICAgIGlucHV0Lm92ZXJhbGxWZWxvY2l0eSA9IChhYnMob3ZlcmFsbFZlbG9jaXR5LngpID4gYWJzKG92ZXJhbGxWZWxvY2l0eS55KSkgPyBvdmVyYWxsVmVsb2NpdHkueCA6IG92ZXJhbGxWZWxvY2l0eS55O1xuXG4gICAgaW5wdXQuc2NhbGUgPSBmaXJzdE11bHRpcGxlID8gZ2V0U2NhbGUoZmlyc3RNdWx0aXBsZS5wb2ludGVycywgcG9pbnRlcnMpIDogMTtcbiAgICBpbnB1dC5yb3RhdGlvbiA9IGZpcnN0TXVsdGlwbGUgPyBnZXRSb3RhdGlvbihmaXJzdE11bHRpcGxlLnBvaW50ZXJzLCBwb2ludGVycykgOiAwO1xuXG4gICAgaW5wdXQubWF4UG9pbnRlcnMgPSAhc2Vzc2lvbi5wcmV2SW5wdXQgPyBpbnB1dC5wb2ludGVycy5sZW5ndGggOiAoKGlucHV0LnBvaW50ZXJzLmxlbmd0aCA+XG4gICAgICAgIHNlc3Npb24ucHJldklucHV0Lm1heFBvaW50ZXJzKSA/IGlucHV0LnBvaW50ZXJzLmxlbmd0aCA6IHNlc3Npb24ucHJldklucHV0Lm1heFBvaW50ZXJzKTtcblxuICAgIGNvbXB1dGVJbnRlcnZhbElucHV0RGF0YShzZXNzaW9uLCBpbnB1dCk7XG5cbiAgICAvLyBmaW5kIHRoZSBjb3JyZWN0IHRhcmdldFxuICAgIHZhciB0YXJnZXQgPSBtYW5hZ2VyLmVsZW1lbnQ7XG4gICAgaWYgKGhhc1BhcmVudChpbnB1dC5zcmNFdmVudC50YXJnZXQsIHRhcmdldCkpIHtcbiAgICAgICAgdGFyZ2V0ID0gaW5wdXQuc3JjRXZlbnQudGFyZ2V0O1xuICAgIH1cbiAgICBpbnB1dC50YXJnZXQgPSB0YXJnZXQ7XG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVEZWx0YVhZKHNlc3Npb24sIGlucHV0KSB7XG4gICAgdmFyIGNlbnRlciA9IGlucHV0LmNlbnRlcjtcbiAgICB2YXIgb2Zmc2V0ID0gc2Vzc2lvbi5vZmZzZXREZWx0YSB8fCB7fTtcbiAgICB2YXIgcHJldkRlbHRhID0gc2Vzc2lvbi5wcmV2RGVsdGEgfHwge307XG4gICAgdmFyIHByZXZJbnB1dCA9IHNlc3Npb24ucHJldklucHV0IHx8IHt9O1xuXG4gICAgaWYgKGlucHV0LmV2ZW50VHlwZSA9PT0gSU5QVVRfU1RBUlQgfHwgcHJldklucHV0LmV2ZW50VHlwZSA9PT0gSU5QVVRfRU5EKSB7XG4gICAgICAgIHByZXZEZWx0YSA9IHNlc3Npb24ucHJldkRlbHRhID0ge1xuICAgICAgICAgICAgeDogcHJldklucHV0LmRlbHRhWCB8fCAwLFxuICAgICAgICAgICAgeTogcHJldklucHV0LmRlbHRhWSB8fCAwXG4gICAgICAgIH07XG5cbiAgICAgICAgb2Zmc2V0ID0gc2Vzc2lvbi5vZmZzZXREZWx0YSA9IHtcbiAgICAgICAgICAgIHg6IGNlbnRlci54LFxuICAgICAgICAgICAgeTogY2VudGVyLnlcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBpbnB1dC5kZWx0YVggPSBwcmV2RGVsdGEueCArIChjZW50ZXIueCAtIG9mZnNldC54KTtcbiAgICBpbnB1dC5kZWx0YVkgPSBwcmV2RGVsdGEueSArIChjZW50ZXIueSAtIG9mZnNldC55KTtcbn1cblxuLyoqXG4gKiB2ZWxvY2l0eSBpcyBjYWxjdWxhdGVkIGV2ZXJ5IHggbXNcbiAqIEBwYXJhbSB7T2JqZWN0fSBzZXNzaW9uXG4gKiBAcGFyYW0ge09iamVjdH0gaW5wdXRcbiAqL1xuZnVuY3Rpb24gY29tcHV0ZUludGVydmFsSW5wdXREYXRhKHNlc3Npb24sIGlucHV0KSB7XG4gICAgdmFyIGxhc3QgPSBzZXNzaW9uLmxhc3RJbnRlcnZhbCB8fCBpbnB1dCxcbiAgICAgICAgZGVsdGFUaW1lID0gaW5wdXQudGltZVN0YW1wIC0gbGFzdC50aW1lU3RhbXAsXG4gICAgICAgIHZlbG9jaXR5LCB2ZWxvY2l0eVgsIHZlbG9jaXR5WSwgZGlyZWN0aW9uO1xuXG4gICAgaWYgKGlucHV0LmV2ZW50VHlwZSAhPSBJTlBVVF9DQU5DRUwgJiYgKGRlbHRhVGltZSA+IENPTVBVVEVfSU5URVJWQUwgfHwgbGFzdC52ZWxvY2l0eSA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICB2YXIgZGVsdGFYID0gaW5wdXQuZGVsdGFYIC0gbGFzdC5kZWx0YVg7XG4gICAgICAgIHZhciBkZWx0YVkgPSBpbnB1dC5kZWx0YVkgLSBsYXN0LmRlbHRhWTtcblxuICAgICAgICB2YXIgdiA9IGdldFZlbG9jaXR5KGRlbHRhVGltZSwgZGVsdGFYLCBkZWx0YVkpO1xuICAgICAgICB2ZWxvY2l0eVggPSB2Lng7XG4gICAgICAgIHZlbG9jaXR5WSA9IHYueTtcbiAgICAgICAgdmVsb2NpdHkgPSAoYWJzKHYueCkgPiBhYnModi55KSkgPyB2LnggOiB2Lnk7XG4gICAgICAgIGRpcmVjdGlvbiA9IGdldERpcmVjdGlvbihkZWx0YVgsIGRlbHRhWSk7XG5cbiAgICAgICAgc2Vzc2lvbi5sYXN0SW50ZXJ2YWwgPSBpbnB1dDtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyB1c2UgbGF0ZXN0IHZlbG9jaXR5IGluZm8gaWYgaXQgZG9lc24ndCBvdmVydGFrZSBhIG1pbmltdW0gcGVyaW9kXG4gICAgICAgIHZlbG9jaXR5ID0gbGFzdC52ZWxvY2l0eTtcbiAgICAgICAgdmVsb2NpdHlYID0gbGFzdC52ZWxvY2l0eVg7XG4gICAgICAgIHZlbG9jaXR5WSA9IGxhc3QudmVsb2NpdHlZO1xuICAgICAgICBkaXJlY3Rpb24gPSBsYXN0LmRpcmVjdGlvbjtcbiAgICB9XG5cbiAgICBpbnB1dC52ZWxvY2l0eSA9IHZlbG9jaXR5O1xuICAgIGlucHV0LnZlbG9jaXR5WCA9IHZlbG9jaXR5WDtcbiAgICBpbnB1dC52ZWxvY2l0eVkgPSB2ZWxvY2l0eVk7XG4gICAgaW5wdXQuZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xufVxuXG4vKipcbiAqIGNyZWF0ZSBhIHNpbXBsZSBjbG9uZSBmcm9tIHRoZSBpbnB1dCB1c2VkIGZvciBzdG9yYWdlIG9mIGZpcnN0SW5wdXQgYW5kIGZpcnN0TXVsdGlwbGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBpbnB1dFxuICogQHJldHVybnMge09iamVjdH0gY2xvbmVkSW5wdXREYXRhXG4gKi9cbmZ1bmN0aW9uIHNpbXBsZUNsb25lSW5wdXREYXRhKGlucHV0KSB7XG4gICAgLy8gbWFrZSBhIHNpbXBsZSBjb3B5IG9mIHRoZSBwb2ludGVycyBiZWNhdXNlIHdlIHdpbGwgZ2V0IGEgcmVmZXJlbmNlIGlmIHdlIGRvbid0XG4gICAgLy8gd2Ugb25seSBuZWVkIGNsaWVudFhZIGZvciB0aGUgY2FsY3VsYXRpb25zXG4gICAgdmFyIHBvaW50ZXJzID0gW107XG4gICAgdmFyIGkgPSAwO1xuICAgIHdoaWxlIChpIDwgaW5wdXQucG9pbnRlcnMubGVuZ3RoKSB7XG4gICAgICAgIHBvaW50ZXJzW2ldID0ge1xuICAgICAgICAgICAgY2xpZW50WDogcm91bmQoaW5wdXQucG9pbnRlcnNbaV0uY2xpZW50WCksXG4gICAgICAgICAgICBjbGllbnRZOiByb3VuZChpbnB1dC5wb2ludGVyc1tpXS5jbGllbnRZKVxuICAgICAgICB9O1xuICAgICAgICBpKys7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgdGltZVN0YW1wOiBub3coKSxcbiAgICAgICAgcG9pbnRlcnM6IHBvaW50ZXJzLFxuICAgICAgICBjZW50ZXI6IGdldENlbnRlcihwb2ludGVycyksXG4gICAgICAgIGRlbHRhWDogaW5wdXQuZGVsdGFYLFxuICAgICAgICBkZWx0YVk6IGlucHV0LmRlbHRhWVxuICAgIH07XG59XG5cbi8qKlxuICogZ2V0IHRoZSBjZW50ZXIgb2YgYWxsIHRoZSBwb2ludGVyc1xuICogQHBhcmFtIHtBcnJheX0gcG9pbnRlcnNcbiAqIEByZXR1cm4ge09iamVjdH0gY2VudGVyIGNvbnRhaW5zIGB4YCBhbmQgYHlgIHByb3BlcnRpZXNcbiAqL1xuZnVuY3Rpb24gZ2V0Q2VudGVyKHBvaW50ZXJzKSB7XG4gICAgdmFyIHBvaW50ZXJzTGVuZ3RoID0gcG9pbnRlcnMubGVuZ3RoO1xuXG4gICAgLy8gbm8gbmVlZCB0byBsb29wIHdoZW4gb25seSBvbmUgdG91Y2hcbiAgICBpZiAocG9pbnRlcnNMZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHg6IHJvdW5kKHBvaW50ZXJzWzBdLmNsaWVudFgpLFxuICAgICAgICAgICAgeTogcm91bmQocG9pbnRlcnNbMF0uY2xpZW50WSlcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgeCA9IDAsIHkgPSAwLCBpID0gMDtcbiAgICB3aGlsZSAoaSA8IHBvaW50ZXJzTGVuZ3RoKSB7XG4gICAgICAgIHggKz0gcG9pbnRlcnNbaV0uY2xpZW50WDtcbiAgICAgICAgeSArPSBwb2ludGVyc1tpXS5jbGllbnRZO1xuICAgICAgICBpKys7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgeDogcm91bmQoeCAvIHBvaW50ZXJzTGVuZ3RoKSxcbiAgICAgICAgeTogcm91bmQoeSAvIHBvaW50ZXJzTGVuZ3RoKVxuICAgIH07XG59XG5cbi8qKlxuICogY2FsY3VsYXRlIHRoZSB2ZWxvY2l0eSBiZXR3ZWVuIHR3byBwb2ludHMuIHVuaXQgaXMgaW4gcHggcGVyIG1zLlxuICogQHBhcmFtIHtOdW1iZXJ9IGRlbHRhVGltZVxuICogQHBhcmFtIHtOdW1iZXJ9IHhcbiAqIEBwYXJhbSB7TnVtYmVyfSB5XG4gKiBAcmV0dXJuIHtPYmplY3R9IHZlbG9jaXR5IGB4YCBhbmQgYHlgXG4gKi9cbmZ1bmN0aW9uIGdldFZlbG9jaXR5KGRlbHRhVGltZSwgeCwgeSkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHg6IHggLyBkZWx0YVRpbWUgfHwgMCxcbiAgICAgICAgeTogeSAvIGRlbHRhVGltZSB8fCAwXG4gICAgfTtcbn1cblxuLyoqXG4gKiBnZXQgdGhlIGRpcmVjdGlvbiBiZXR3ZWVuIHR3byBwb2ludHNcbiAqIEBwYXJhbSB7TnVtYmVyfSB4XG4gKiBAcGFyYW0ge051bWJlcn0geVxuICogQHJldHVybiB7TnVtYmVyfSBkaXJlY3Rpb25cbiAqL1xuZnVuY3Rpb24gZ2V0RGlyZWN0aW9uKHgsIHkpIHtcbiAgICBpZiAoeCA9PT0geSkge1xuICAgICAgICByZXR1cm4gRElSRUNUSU9OX05PTkU7XG4gICAgfVxuXG4gICAgaWYgKGFicyh4KSA+PSBhYnMoeSkpIHtcbiAgICAgICAgcmV0dXJuIHggPCAwID8gRElSRUNUSU9OX0xFRlQgOiBESVJFQ1RJT05fUklHSFQ7XG4gICAgfVxuICAgIHJldHVybiB5IDwgMCA/IERJUkVDVElPTl9VUCA6IERJUkVDVElPTl9ET1dOO1xufVxuXG4vKipcbiAqIGNhbGN1bGF0ZSB0aGUgYWJzb2x1dGUgZGlzdGFuY2UgYmV0d2VlbiB0d28gcG9pbnRzXG4gKiBAcGFyYW0ge09iamVjdH0gcDEge3gsIHl9XG4gKiBAcGFyYW0ge09iamVjdH0gcDIge3gsIHl9XG4gKiBAcGFyYW0ge0FycmF5fSBbcHJvcHNdIGNvbnRhaW5pbmcgeCBhbmQgeSBrZXlzXG4gKiBAcmV0dXJuIHtOdW1iZXJ9IGRpc3RhbmNlXG4gKi9cbmZ1bmN0aW9uIGdldERpc3RhbmNlKHAxLCBwMiwgcHJvcHMpIHtcbiAgICBpZiAoIXByb3BzKSB7XG4gICAgICAgIHByb3BzID0gUFJPUFNfWFk7XG4gICAgfVxuICAgIHZhciB4ID0gcDJbcHJvcHNbMF1dIC0gcDFbcHJvcHNbMF1dLFxuICAgICAgICB5ID0gcDJbcHJvcHNbMV1dIC0gcDFbcHJvcHNbMV1dO1xuXG4gICAgcmV0dXJuIE1hdGguc3FydCgoeCAqIHgpICsgKHkgKiB5KSk7XG59XG5cbi8qKlxuICogY2FsY3VsYXRlIHRoZSBhbmdsZSBiZXR3ZWVuIHR3byBjb29yZGluYXRlc1xuICogQHBhcmFtIHtPYmplY3R9IHAxXG4gKiBAcGFyYW0ge09iamVjdH0gcDJcbiAqIEBwYXJhbSB7QXJyYXl9IFtwcm9wc10gY29udGFpbmluZyB4IGFuZCB5IGtleXNcbiAqIEByZXR1cm4ge051bWJlcn0gYW5nbGVcbiAqL1xuZnVuY3Rpb24gZ2V0QW5nbGUocDEsIHAyLCBwcm9wcykge1xuICAgIGlmICghcHJvcHMpIHtcbiAgICAgICAgcHJvcHMgPSBQUk9QU19YWTtcbiAgICB9XG4gICAgdmFyIHggPSBwMltwcm9wc1swXV0gLSBwMVtwcm9wc1swXV0sXG4gICAgICAgIHkgPSBwMltwcm9wc1sxXV0gLSBwMVtwcm9wc1sxXV07XG4gICAgcmV0dXJuIE1hdGguYXRhbjIoeSwgeCkgKiAxODAgLyBNYXRoLlBJO1xufVxuXG4vKipcbiAqIGNhbGN1bGF0ZSB0aGUgcm90YXRpb24gZGVncmVlcyBiZXR3ZWVuIHR3byBwb2ludGVyc2V0c1xuICogQHBhcmFtIHtBcnJheX0gc3RhcnQgYXJyYXkgb2YgcG9pbnRlcnNcbiAqIEBwYXJhbSB7QXJyYXl9IGVuZCBhcnJheSBvZiBwb2ludGVyc1xuICogQHJldHVybiB7TnVtYmVyfSByb3RhdGlvblxuICovXG5mdW5jdGlvbiBnZXRSb3RhdGlvbihzdGFydCwgZW5kKSB7XG4gICAgcmV0dXJuIGdldEFuZ2xlKGVuZFsxXSwgZW5kWzBdLCBQUk9QU19DTElFTlRfWFkpICsgZ2V0QW5nbGUoc3RhcnRbMV0sIHN0YXJ0WzBdLCBQUk9QU19DTElFTlRfWFkpO1xufVxuXG4vKipcbiAqIGNhbGN1bGF0ZSB0aGUgc2NhbGUgZmFjdG9yIGJldHdlZW4gdHdvIHBvaW50ZXJzZXRzXG4gKiBubyBzY2FsZSBpcyAxLCBhbmQgZ29lcyBkb3duIHRvIDAgd2hlbiBwaW5jaGVkIHRvZ2V0aGVyLCBhbmQgYmlnZ2VyIHdoZW4gcGluY2hlZCBvdXRcbiAqIEBwYXJhbSB7QXJyYXl9IHN0YXJ0IGFycmF5IG9mIHBvaW50ZXJzXG4gKiBAcGFyYW0ge0FycmF5fSBlbmQgYXJyYXkgb2YgcG9pbnRlcnNcbiAqIEByZXR1cm4ge051bWJlcn0gc2NhbGVcbiAqL1xuZnVuY3Rpb24gZ2V0U2NhbGUoc3RhcnQsIGVuZCkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZShlbmRbMF0sIGVuZFsxXSwgUFJPUFNfQ0xJRU5UX1hZKSAvIGdldERpc3RhbmNlKHN0YXJ0WzBdLCBzdGFydFsxXSwgUFJPUFNfQ0xJRU5UX1hZKTtcbn1cblxudmFyIE1PVVNFX0lOUFVUX01BUCA9IHtcbiAgICBtb3VzZWRvd246IElOUFVUX1NUQVJULFxuICAgIG1vdXNlbW92ZTogSU5QVVRfTU9WRSxcbiAgICBtb3VzZXVwOiBJTlBVVF9FTkRcbn07XG5cbnZhciBNT1VTRV9FTEVNRU5UX0VWRU5UUyA9ICdtb3VzZWRvd24nO1xudmFyIE1PVVNFX1dJTkRPV19FVkVOVFMgPSAnbW91c2Vtb3ZlIG1vdXNldXAnO1xuXG4vKipcbiAqIE1vdXNlIGV2ZW50cyBpbnB1dFxuICogQGNvbnN0cnVjdG9yXG4gKiBAZXh0ZW5kcyBJbnB1dFxuICovXG5mdW5jdGlvbiBNb3VzZUlucHV0KCkge1xuICAgIHRoaXMuZXZFbCA9IE1PVVNFX0VMRU1FTlRfRVZFTlRTO1xuICAgIHRoaXMuZXZXaW4gPSBNT1VTRV9XSU5ET1dfRVZFTlRTO1xuXG4gICAgdGhpcy5wcmVzc2VkID0gZmFsc2U7IC8vIG1vdXNlZG93biBzdGF0ZVxuXG4gICAgSW5wdXQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuaW5oZXJpdChNb3VzZUlucHV0LCBJbnB1dCwge1xuICAgIC8qKlxuICAgICAqIGhhbmRsZSBtb3VzZSBldmVudHNcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gZXZcbiAgICAgKi9cbiAgICBoYW5kbGVyOiBmdW5jdGlvbiBNRWhhbmRsZXIoZXYpIHtcbiAgICAgICAgdmFyIGV2ZW50VHlwZSA9IE1PVVNFX0lOUFVUX01BUFtldi50eXBlXTtcblxuICAgICAgICAvLyBvbiBzdGFydCB3ZSB3YW50IHRvIGhhdmUgdGhlIGxlZnQgbW91c2UgYnV0dG9uIGRvd25cbiAgICAgICAgaWYgKGV2ZW50VHlwZSAmIElOUFVUX1NUQVJUICYmIGV2LmJ1dHRvbiA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5wcmVzc2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudFR5cGUgJiBJTlBVVF9NT1ZFICYmIGV2LndoaWNoICE9PSAxKSB7XG4gICAgICAgICAgICBldmVudFR5cGUgPSBJTlBVVF9FTkQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBtb3VzZSBtdXN0IGJlIGRvd25cbiAgICAgICAgaWYgKCF0aGlzLnByZXNzZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudFR5cGUgJiBJTlBVVF9FTkQpIHtcbiAgICAgICAgICAgIHRoaXMucHJlc3NlZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jYWxsYmFjayh0aGlzLm1hbmFnZXIsIGV2ZW50VHlwZSwge1xuICAgICAgICAgICAgcG9pbnRlcnM6IFtldl0sXG4gICAgICAgICAgICBjaGFuZ2VkUG9pbnRlcnM6IFtldl0sXG4gICAgICAgICAgICBwb2ludGVyVHlwZTogSU5QVVRfVFlQRV9NT1VTRSxcbiAgICAgICAgICAgIHNyY0V2ZW50OiBldlxuICAgICAgICB9KTtcbiAgICB9XG59KTtcblxudmFyIFBPSU5URVJfSU5QVVRfTUFQID0ge1xuICAgIHBvaW50ZXJkb3duOiBJTlBVVF9TVEFSVCxcbiAgICBwb2ludGVybW92ZTogSU5QVVRfTU9WRSxcbiAgICBwb2ludGVydXA6IElOUFVUX0VORCxcbiAgICBwb2ludGVyY2FuY2VsOiBJTlBVVF9DQU5DRUwsXG4gICAgcG9pbnRlcm91dDogSU5QVVRfQ0FOQ0VMXG59O1xuXG4vLyBpbiBJRTEwIHRoZSBwb2ludGVyIHR5cGVzIGlzIGRlZmluZWQgYXMgYW4gZW51bVxudmFyIElFMTBfUE9JTlRFUl9UWVBFX0VOVU0gPSB7XG4gICAgMjogSU5QVVRfVFlQRV9UT1VDSCxcbiAgICAzOiBJTlBVVF9UWVBFX1BFTixcbiAgICA0OiBJTlBVVF9UWVBFX01PVVNFLFxuICAgIDU6IElOUFVUX1RZUEVfS0lORUNUIC8vIHNlZSBodHRwczovL3R3aXR0ZXIuY29tL2phY29icm9zc2kvc3RhdHVzLzQ4MDU5NjQzODQ4OTg5MDgxNlxufTtcblxudmFyIFBPSU5URVJfRUxFTUVOVF9FVkVOVFMgPSAncG9pbnRlcmRvd24nO1xudmFyIFBPSU5URVJfV0lORE9XX0VWRU5UUyA9ICdwb2ludGVybW92ZSBwb2ludGVydXAgcG9pbnRlcmNhbmNlbCc7XG5cbi8vIElFMTAgaGFzIHByZWZpeGVkIHN1cHBvcnQsIGFuZCBjYXNlLXNlbnNpdGl2ZVxuaWYgKHdpbmRvdy5NU1BvaW50ZXJFdmVudCAmJiAhd2luZG93LlBvaW50ZXJFdmVudCkge1xuICAgIFBPSU5URVJfRUxFTUVOVF9FVkVOVFMgPSAnTVNQb2ludGVyRG93bic7XG4gICAgUE9JTlRFUl9XSU5ET1dfRVZFTlRTID0gJ01TUG9pbnRlck1vdmUgTVNQb2ludGVyVXAgTVNQb2ludGVyQ2FuY2VsJztcbn1cblxuLyoqXG4gKiBQb2ludGVyIGV2ZW50cyBpbnB1dFxuICogQGNvbnN0cnVjdG9yXG4gKiBAZXh0ZW5kcyBJbnB1dFxuICovXG5mdW5jdGlvbiBQb2ludGVyRXZlbnRJbnB1dCgpIHtcbiAgICB0aGlzLmV2RWwgPSBQT0lOVEVSX0VMRU1FTlRfRVZFTlRTO1xuICAgIHRoaXMuZXZXaW4gPSBQT0lOVEVSX1dJTkRPV19FVkVOVFM7XG5cbiAgICBJbnB1dC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuXG4gICAgdGhpcy5zdG9yZSA9ICh0aGlzLm1hbmFnZXIuc2Vzc2lvbi5wb2ludGVyRXZlbnRzID0gW10pO1xufVxuXG5pbmhlcml0KFBvaW50ZXJFdmVudElucHV0LCBJbnB1dCwge1xuICAgIC8qKlxuICAgICAqIGhhbmRsZSBtb3VzZSBldmVudHNcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gZXZcbiAgICAgKi9cbiAgICBoYW5kbGVyOiBmdW5jdGlvbiBQRWhhbmRsZXIoZXYpIHtcbiAgICAgICAgdmFyIHN0b3JlID0gdGhpcy5zdG9yZTtcbiAgICAgICAgdmFyIHJlbW92ZVBvaW50ZXIgPSBmYWxzZTtcblxuICAgICAgICB2YXIgZXZlbnRUeXBlTm9ybWFsaXplZCA9IGV2LnR5cGUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCdtcycsICcnKTtcbiAgICAgICAgdmFyIGV2ZW50VHlwZSA9IFBPSU5URVJfSU5QVVRfTUFQW2V2ZW50VHlwZU5vcm1hbGl6ZWRdO1xuICAgICAgICB2YXIgcG9pbnRlclR5cGUgPSBJRTEwX1BPSU5URVJfVFlQRV9FTlVNW2V2LnBvaW50ZXJUeXBlXSB8fCBldi5wb2ludGVyVHlwZTtcblxuICAgICAgICB2YXIgaXNUb3VjaCA9IChwb2ludGVyVHlwZSA9PSBJTlBVVF9UWVBFX1RPVUNIKTtcblxuICAgICAgICAvLyBnZXQgaW5kZXggb2YgdGhlIGV2ZW50IGluIHRoZSBzdG9yZVxuICAgICAgICB2YXIgc3RvcmVJbmRleCA9IGluQXJyYXkoc3RvcmUsIGV2LnBvaW50ZXJJZCwgJ3BvaW50ZXJJZCcpO1xuXG4gICAgICAgIC8vIHN0YXJ0IGFuZCBtb3VzZSBtdXN0IGJlIGRvd25cbiAgICAgICAgaWYgKGV2ZW50VHlwZSAmIElOUFVUX1NUQVJUICYmIChldi5idXR0b24gPT09IDAgfHwgaXNUb3VjaCkpIHtcbiAgICAgICAgICAgIGlmIChzdG9yZUluZGV4IDwgMCkge1xuICAgICAgICAgICAgICAgIHN0b3JlLnB1c2goZXYpO1xuICAgICAgICAgICAgICAgIHN0b3JlSW5kZXggPSBzdG9yZS5sZW5ndGggLSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSAmIChJTlBVVF9FTkQgfCBJTlBVVF9DQU5DRUwpKSB7XG4gICAgICAgICAgICByZW1vdmVQb2ludGVyID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGl0IG5vdCBmb3VuZCwgc28gdGhlIHBvaW50ZXIgaGFzbid0IGJlZW4gZG93biAoc28gaXQncyBwcm9iYWJseSBhIGhvdmVyKVxuICAgICAgICBpZiAoc3RvcmVJbmRleCA8IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHVwZGF0ZSB0aGUgZXZlbnQgaW4gdGhlIHN0b3JlXG4gICAgICAgIHN0b3JlW3N0b3JlSW5kZXhdID0gZXY7XG5cbiAgICAgICAgdGhpcy5jYWxsYmFjayh0aGlzLm1hbmFnZXIsIGV2ZW50VHlwZSwge1xuICAgICAgICAgICAgcG9pbnRlcnM6IHN0b3JlLFxuICAgICAgICAgICAgY2hhbmdlZFBvaW50ZXJzOiBbZXZdLFxuICAgICAgICAgICAgcG9pbnRlclR5cGU6IHBvaW50ZXJUeXBlLFxuICAgICAgICAgICAgc3JjRXZlbnQ6IGV2XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChyZW1vdmVQb2ludGVyKSB7XG4gICAgICAgICAgICAvLyByZW1vdmUgZnJvbSB0aGUgc3RvcmVcbiAgICAgICAgICAgIHN0b3JlLnNwbGljZShzdG9yZUluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgIH1cbn0pO1xuXG52YXIgU0lOR0xFX1RPVUNIX0lOUFVUX01BUCA9IHtcbiAgICB0b3VjaHN0YXJ0OiBJTlBVVF9TVEFSVCxcbiAgICB0b3VjaG1vdmU6IElOUFVUX01PVkUsXG4gICAgdG91Y2hlbmQ6IElOUFVUX0VORCxcbiAgICB0b3VjaGNhbmNlbDogSU5QVVRfQ0FOQ0VMXG59O1xuXG52YXIgU0lOR0xFX1RPVUNIX1RBUkdFVF9FVkVOVFMgPSAndG91Y2hzdGFydCc7XG52YXIgU0lOR0xFX1RPVUNIX1dJTkRPV19FVkVOVFMgPSAndG91Y2hzdGFydCB0b3VjaG1vdmUgdG91Y2hlbmQgdG91Y2hjYW5jZWwnO1xuXG4vKipcbiAqIFRvdWNoIGV2ZW50cyBpbnB1dFxuICogQGNvbnN0cnVjdG9yXG4gKiBAZXh0ZW5kcyBJbnB1dFxuICovXG5mdW5jdGlvbiBTaW5nbGVUb3VjaElucHV0KCkge1xuICAgIHRoaXMuZXZUYXJnZXQgPSBTSU5HTEVfVE9VQ0hfVEFSR0VUX0VWRU5UUztcbiAgICB0aGlzLmV2V2luID0gU0lOR0xFX1RPVUNIX1dJTkRPV19FVkVOVFM7XG4gICAgdGhpcy5zdGFydGVkID0gZmFsc2U7XG5cbiAgICBJbnB1dC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuXG5pbmhlcml0KFNpbmdsZVRvdWNoSW5wdXQsIElucHV0LCB7XG4gICAgaGFuZGxlcjogZnVuY3Rpb24gVEVoYW5kbGVyKGV2KSB7XG4gICAgICAgIHZhciB0eXBlID0gU0lOR0xFX1RPVUNIX0lOUFVUX01BUFtldi50eXBlXTtcblxuICAgICAgICAvLyBzaG91bGQgd2UgaGFuZGxlIHRoZSB0b3VjaCBldmVudHM/XG4gICAgICAgIGlmICh0eXBlID09PSBJTlBVVF9TVEFSVCkge1xuICAgICAgICAgICAgdGhpcy5zdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5zdGFydGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgdG91Y2hlcyA9IG5vcm1hbGl6ZVNpbmdsZVRvdWNoZXMuY2FsbCh0aGlzLCBldiwgdHlwZSk7XG5cbiAgICAgICAgLy8gd2hlbiBkb25lLCByZXNldCB0aGUgc3RhcnRlZCBzdGF0ZVxuICAgICAgICBpZiAodHlwZSAmIChJTlBVVF9FTkQgfCBJTlBVVF9DQU5DRUwpICYmIHRvdWNoZXNbMF0ubGVuZ3RoIC0gdG91Y2hlc1sxXS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRlZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jYWxsYmFjayh0aGlzLm1hbmFnZXIsIHR5cGUsIHtcbiAgICAgICAgICAgIHBvaW50ZXJzOiB0b3VjaGVzWzBdLFxuICAgICAgICAgICAgY2hhbmdlZFBvaW50ZXJzOiB0b3VjaGVzWzFdLFxuICAgICAgICAgICAgcG9pbnRlclR5cGU6IElOUFVUX1RZUEVfVE9VQ0gsXG4gICAgICAgICAgICBzcmNFdmVudDogZXZcbiAgICAgICAgfSk7XG4gICAgfVxufSk7XG5cbi8qKlxuICogQHRoaXMge1RvdWNoSW5wdXR9XG4gKiBAcGFyYW0ge09iamVjdH0gZXZcbiAqIEBwYXJhbSB7TnVtYmVyfSB0eXBlIGZsYWdcbiAqIEByZXR1cm5zIHt1bmRlZmluZWR8QXJyYXl9IFthbGwsIGNoYW5nZWRdXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVNpbmdsZVRvdWNoZXMoZXYsIHR5cGUpIHtcbiAgICB2YXIgYWxsID0gdG9BcnJheShldi50b3VjaGVzKTtcbiAgICB2YXIgY2hhbmdlZCA9IHRvQXJyYXkoZXYuY2hhbmdlZFRvdWNoZXMpO1xuXG4gICAgaWYgKHR5cGUgJiAoSU5QVVRfRU5EIHwgSU5QVVRfQ0FOQ0VMKSkge1xuICAgICAgICBhbGwgPSB1bmlxdWVBcnJheShhbGwuY29uY2F0KGNoYW5nZWQpLCAnaWRlbnRpZmllcicsIHRydWUpO1xuICAgIH1cblxuICAgIHJldHVybiBbYWxsLCBjaGFuZ2VkXTtcbn1cblxudmFyIFRPVUNIX0lOUFVUX01BUCA9IHtcbiAgICB0b3VjaHN0YXJ0OiBJTlBVVF9TVEFSVCxcbiAgICB0b3VjaG1vdmU6IElOUFVUX01PVkUsXG4gICAgdG91Y2hlbmQ6IElOUFVUX0VORCxcbiAgICB0b3VjaGNhbmNlbDogSU5QVVRfQ0FOQ0VMXG59O1xuXG52YXIgVE9VQ0hfVEFSR0VUX0VWRU5UUyA9ICd0b3VjaHN0YXJ0IHRvdWNobW92ZSB0b3VjaGVuZCB0b3VjaGNhbmNlbCc7XG5cbi8qKlxuICogTXVsdGktdXNlciB0b3VjaCBldmVudHMgaW5wdXRcbiAqIEBjb25zdHJ1Y3RvclxuICogQGV4dGVuZHMgSW5wdXRcbiAqL1xuZnVuY3Rpb24gVG91Y2hJbnB1dCgpIHtcbiAgICB0aGlzLmV2VGFyZ2V0ID0gVE9VQ0hfVEFSR0VUX0VWRU5UUztcbiAgICB0aGlzLnRhcmdldElkcyA9IHt9O1xuXG4gICAgSW5wdXQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuaW5oZXJpdChUb3VjaElucHV0LCBJbnB1dCwge1xuICAgIGhhbmRsZXI6IGZ1bmN0aW9uIE1URWhhbmRsZXIoZXYpIHtcbiAgICAgICAgdmFyIHR5cGUgPSBUT1VDSF9JTlBVVF9NQVBbZXYudHlwZV07XG4gICAgICAgIHZhciB0b3VjaGVzID0gZ2V0VG91Y2hlcy5jYWxsKHRoaXMsIGV2LCB0eXBlKTtcbiAgICAgICAgaWYgKCF0b3VjaGVzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNhbGxiYWNrKHRoaXMubWFuYWdlciwgdHlwZSwge1xuICAgICAgICAgICAgcG9pbnRlcnM6IHRvdWNoZXNbMF0sXG4gICAgICAgICAgICBjaGFuZ2VkUG9pbnRlcnM6IHRvdWNoZXNbMV0sXG4gICAgICAgICAgICBwb2ludGVyVHlwZTogSU5QVVRfVFlQRV9UT1VDSCxcbiAgICAgICAgICAgIHNyY0V2ZW50OiBldlxuICAgICAgICB9KTtcbiAgICB9XG59KTtcblxuLyoqXG4gKiBAdGhpcyB7VG91Y2hJbnB1dH1cbiAqIEBwYXJhbSB7T2JqZWN0fSBldlxuICogQHBhcmFtIHtOdW1iZXJ9IHR5cGUgZmxhZ1xuICogQHJldHVybnMge3VuZGVmaW5lZHxBcnJheX0gW2FsbCwgY2hhbmdlZF1cbiAqL1xuZnVuY3Rpb24gZ2V0VG91Y2hlcyhldiwgdHlwZSkge1xuICAgIHZhciBhbGxUb3VjaGVzID0gdG9BcnJheShldi50b3VjaGVzKTtcbiAgICB2YXIgdGFyZ2V0SWRzID0gdGhpcy50YXJnZXRJZHM7XG5cbiAgICAvLyB3aGVuIHRoZXJlIGlzIG9ubHkgb25lIHRvdWNoLCB0aGUgcHJvY2VzcyBjYW4gYmUgc2ltcGxpZmllZFxuICAgIGlmICh0eXBlICYgKElOUFVUX1NUQVJUIHwgSU5QVVRfTU9WRSkgJiYgYWxsVG91Y2hlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgdGFyZ2V0SWRzW2FsbFRvdWNoZXNbMF0uaWRlbnRpZmllcl0gPSB0cnVlO1xuICAgICAgICByZXR1cm4gW2FsbFRvdWNoZXMsIGFsbFRvdWNoZXNdO1xuICAgIH1cblxuICAgIHZhciBpLFxuICAgICAgICB0YXJnZXRUb3VjaGVzLFxuICAgICAgICBjaGFuZ2VkVG91Y2hlcyA9IHRvQXJyYXkoZXYuY2hhbmdlZFRvdWNoZXMpLFxuICAgICAgICBjaGFuZ2VkVGFyZ2V0VG91Y2hlcyA9IFtdLFxuICAgICAgICB0YXJnZXQgPSB0aGlzLnRhcmdldDtcblxuICAgIC8vIGdldCB0YXJnZXQgdG91Y2hlcyBmcm9tIHRvdWNoZXNcbiAgICB0YXJnZXRUb3VjaGVzID0gYWxsVG91Y2hlcy5maWx0ZXIoZnVuY3Rpb24odG91Y2gpIHtcbiAgICAgICAgcmV0dXJuIGhhc1BhcmVudCh0b3VjaC50YXJnZXQsIHRhcmdldCk7XG4gICAgfSk7XG5cbiAgICAvLyBjb2xsZWN0IHRvdWNoZXNcbiAgICBpZiAodHlwZSA9PT0gSU5QVVRfU1RBUlQpIHtcbiAgICAgICAgaSA9IDA7XG4gICAgICAgIHdoaWxlIChpIDwgdGFyZ2V0VG91Y2hlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRhcmdldElkc1t0YXJnZXRUb3VjaGVzW2ldLmlkZW50aWZpZXJdID0gdHJ1ZTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGZpbHRlciBjaGFuZ2VkIHRvdWNoZXMgdG8gb25seSBjb250YWluIHRvdWNoZXMgdGhhdCBleGlzdCBpbiB0aGUgY29sbGVjdGVkIHRhcmdldCBpZHNcbiAgICBpID0gMDtcbiAgICB3aGlsZSAoaSA8IGNoYW5nZWRUb3VjaGVzLmxlbmd0aCkge1xuICAgICAgICBpZiAodGFyZ2V0SWRzW2NoYW5nZWRUb3VjaGVzW2ldLmlkZW50aWZpZXJdKSB7XG4gICAgICAgICAgICBjaGFuZ2VkVGFyZ2V0VG91Y2hlcy5wdXNoKGNoYW5nZWRUb3VjaGVzW2ldKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNsZWFudXAgcmVtb3ZlZCB0b3VjaGVzXG4gICAgICAgIGlmICh0eXBlICYgKElOUFVUX0VORCB8IElOUFVUX0NBTkNFTCkpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0YXJnZXRJZHNbY2hhbmdlZFRvdWNoZXNbaV0uaWRlbnRpZmllcl07XG4gICAgICAgIH1cbiAgICAgICAgaSsrO1xuICAgIH1cblxuICAgIGlmICghY2hhbmdlZFRhcmdldFRvdWNoZXMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gW1xuICAgICAgICAvLyBtZXJnZSB0YXJnZXRUb3VjaGVzIHdpdGggY2hhbmdlZFRhcmdldFRvdWNoZXMgc28gaXQgY29udGFpbnMgQUxMIHRvdWNoZXMsIGluY2x1ZGluZyAnZW5kJyBhbmQgJ2NhbmNlbCdcbiAgICAgICAgdW5pcXVlQXJyYXkodGFyZ2V0VG91Y2hlcy5jb25jYXQoY2hhbmdlZFRhcmdldFRvdWNoZXMpLCAnaWRlbnRpZmllcicsIHRydWUpLFxuICAgICAgICBjaGFuZ2VkVGFyZ2V0VG91Y2hlc1xuICAgIF07XG59XG5cbi8qKlxuICogQ29tYmluZWQgdG91Y2ggYW5kIG1vdXNlIGlucHV0XG4gKlxuICogVG91Y2ggaGFzIGEgaGlnaGVyIHByaW9yaXR5IHRoZW4gbW91c2UsIGFuZCB3aGlsZSB0b3VjaGluZyBubyBtb3VzZSBldmVudHMgYXJlIGFsbG93ZWQuXG4gKiBUaGlzIGJlY2F1c2UgdG91Y2ggZGV2aWNlcyBhbHNvIGVtaXQgbW91c2UgZXZlbnRzIHdoaWxlIGRvaW5nIGEgdG91Y2guXG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKiBAZXh0ZW5kcyBJbnB1dFxuICovXG5cbnZhciBERURVUF9USU1FT1VUID0gMjUwMDtcbnZhciBERURVUF9ESVNUQU5DRSA9IDI1O1xuXG5mdW5jdGlvbiBUb3VjaE1vdXNlSW5wdXQoKSB7XG4gICAgSW5wdXQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICAgIHZhciBoYW5kbGVyID0gYmluZEZuKHRoaXMuaGFuZGxlciwgdGhpcyk7XG4gICAgdGhpcy50b3VjaCA9IG5ldyBUb3VjaElucHV0KHRoaXMubWFuYWdlciwgaGFuZGxlcik7XG4gICAgdGhpcy5tb3VzZSA9IG5ldyBNb3VzZUlucHV0KHRoaXMubWFuYWdlciwgaGFuZGxlcik7XG5cbiAgICB0aGlzLnByaW1hcnlUb3VjaCA9IG51bGw7XG4gICAgdGhpcy5sYXN0VG91Y2hlcyA9IFtdO1xufVxuXG5pbmhlcml0KFRvdWNoTW91c2VJbnB1dCwgSW5wdXQsIHtcbiAgICAvKipcbiAgICAgKiBoYW5kbGUgbW91c2UgYW5kIHRvdWNoIGV2ZW50c1xuICAgICAqIEBwYXJhbSB7SGFtbWVyfSBtYW5hZ2VyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IGlucHV0RXZlbnRcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gaW5wdXREYXRhXG4gICAgICovXG4gICAgaGFuZGxlcjogZnVuY3Rpb24gVE1FaGFuZGxlcihtYW5hZ2VyLCBpbnB1dEV2ZW50LCBpbnB1dERhdGEpIHtcbiAgICAgICAgdmFyIGlzVG91Y2ggPSAoaW5wdXREYXRhLnBvaW50ZXJUeXBlID09IElOUFVUX1RZUEVfVE9VQ0gpLFxuICAgICAgICAgICAgaXNNb3VzZSA9IChpbnB1dERhdGEucG9pbnRlclR5cGUgPT0gSU5QVVRfVFlQRV9NT1VTRSk7XG5cbiAgICAgICAgaWYgKGlzTW91c2UgJiYgaW5wdXREYXRhLnNvdXJjZUNhcGFiaWxpdGllcyAmJiBpbnB1dERhdGEuc291cmNlQ2FwYWJpbGl0aWVzLmZpcmVzVG91Y2hFdmVudHMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHdoZW4gd2UncmUgaW4gYSB0b3VjaCBldmVudCwgcmVjb3JkIHRvdWNoZXMgdG8gIGRlLWR1cGUgc3ludGhldGljIG1vdXNlIGV2ZW50XG4gICAgICAgIGlmIChpc1RvdWNoKSB7XG4gICAgICAgICAgICByZWNvcmRUb3VjaGVzLmNhbGwodGhpcywgaW5wdXRFdmVudCwgaW5wdXREYXRhKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc01vdXNlICYmIGlzU3ludGhldGljRXZlbnQuY2FsbCh0aGlzLCBpbnB1dERhdGEpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNhbGxiYWNrKG1hbmFnZXIsIGlucHV0RXZlbnQsIGlucHV0RGF0YSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHJlbW92ZSB0aGUgZXZlbnQgbGlzdGVuZXJzXG4gICAgICovXG4gICAgZGVzdHJveTogZnVuY3Rpb24gZGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy50b3VjaC5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMubW91c2UuZGVzdHJveSgpO1xuICAgIH1cbn0pO1xuXG5mdW5jdGlvbiByZWNvcmRUb3VjaGVzKGV2ZW50VHlwZSwgZXZlbnREYXRhKSB7XG4gICAgaWYgKGV2ZW50VHlwZSAmIElOUFVUX1NUQVJUKSB7XG4gICAgICAgIHRoaXMucHJpbWFyeVRvdWNoID0gZXZlbnREYXRhLmNoYW5nZWRQb2ludGVyc1swXS5pZGVudGlmaWVyO1xuICAgICAgICBzZXRMYXN0VG91Y2guY2FsbCh0aGlzLCBldmVudERhdGEpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlICYgKElOUFVUX0VORCB8IElOUFVUX0NBTkNFTCkpIHtcbiAgICAgICAgc2V0TGFzdFRvdWNoLmNhbGwodGhpcywgZXZlbnREYXRhKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHNldExhc3RUb3VjaChldmVudERhdGEpIHtcbiAgICB2YXIgdG91Y2ggPSBldmVudERhdGEuY2hhbmdlZFBvaW50ZXJzWzBdO1xuXG4gICAgaWYgKHRvdWNoLmlkZW50aWZpZXIgPT09IHRoaXMucHJpbWFyeVRvdWNoKSB7XG4gICAgICAgIHZhciBsYXN0VG91Y2ggPSB7eDogdG91Y2guY2xpZW50WCwgeTogdG91Y2guY2xpZW50WX07XG4gICAgICAgIHRoaXMubGFzdFRvdWNoZXMucHVzaChsYXN0VG91Y2gpO1xuICAgICAgICB2YXIgbHRzID0gdGhpcy5sYXN0VG91Y2hlcztcbiAgICAgICAgdmFyIHJlbW92ZUxhc3RUb3VjaCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGkgPSBsdHMuaW5kZXhPZihsYXN0VG91Y2gpO1xuICAgICAgICAgICAgaWYgKGkgPiAtMSkge1xuICAgICAgICAgICAgICAgIGx0cy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHNldFRpbWVvdXQocmVtb3ZlTGFzdFRvdWNoLCBERURVUF9USU1FT1VUKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGlzU3ludGhldGljRXZlbnQoZXZlbnREYXRhKSB7XG4gICAgdmFyIHggPSBldmVudERhdGEuc3JjRXZlbnQuY2xpZW50WCwgeSA9IGV2ZW50RGF0YS5zcmNFdmVudC5jbGllbnRZO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sYXN0VG91Y2hlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgdCA9IHRoaXMubGFzdFRvdWNoZXNbaV07XG4gICAgICAgIHZhciBkeCA9IE1hdGguYWJzKHggLSB0LngpLCBkeSA9IE1hdGguYWJzKHkgLSB0LnkpO1xuICAgICAgICBpZiAoZHggPD0gREVEVVBfRElTVEFOQ0UgJiYgZHkgPD0gREVEVVBfRElTVEFOQ0UpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cblxudmFyIFBSRUZJWEVEX1RPVUNIX0FDVElPTiA9IHByZWZpeGVkKFRFU1RfRUxFTUVOVC5zdHlsZSwgJ3RvdWNoQWN0aW9uJyk7XG52YXIgTkFUSVZFX1RPVUNIX0FDVElPTiA9IFBSRUZJWEVEX1RPVUNIX0FDVElPTiAhPT0gdW5kZWZpbmVkO1xuXG4vLyBtYWdpY2FsIHRvdWNoQWN0aW9uIHZhbHVlXG52YXIgVE9VQ0hfQUNUSU9OX0NPTVBVVEUgPSAnY29tcHV0ZSc7XG52YXIgVE9VQ0hfQUNUSU9OX0FVVE8gPSAnYXV0byc7XG52YXIgVE9VQ0hfQUNUSU9OX01BTklQVUxBVElPTiA9ICdtYW5pcHVsYXRpb24nOyAvLyBub3QgaW1wbGVtZW50ZWRcbnZhciBUT1VDSF9BQ1RJT05fTk9ORSA9ICdub25lJztcbnZhciBUT1VDSF9BQ1RJT05fUEFOX1ggPSAncGFuLXgnO1xudmFyIFRPVUNIX0FDVElPTl9QQU5fWSA9ICdwYW4teSc7XG52YXIgVE9VQ0hfQUNUSU9OX01BUCA9IGdldFRvdWNoQWN0aW9uUHJvcHMoKTtcblxuLyoqXG4gKiBUb3VjaCBBY3Rpb25cbiAqIHNldHMgdGhlIHRvdWNoQWN0aW9uIHByb3BlcnR5IG9yIHVzZXMgdGhlIGpzIGFsdGVybmF0aXZlXG4gKiBAcGFyYW0ge01hbmFnZXJ9IG1hbmFnZXJcbiAqIEBwYXJhbSB7U3RyaW5nfSB2YWx1ZVxuICogQGNvbnN0cnVjdG9yXG4gKi9cbmZ1bmN0aW9uIFRvdWNoQWN0aW9uKG1hbmFnZXIsIHZhbHVlKSB7XG4gICAgdGhpcy5tYW5hZ2VyID0gbWFuYWdlcjtcbiAgICB0aGlzLnNldCh2YWx1ZSk7XG59XG5cblRvdWNoQWN0aW9uLnByb3RvdHlwZSA9IHtcbiAgICAvKipcbiAgICAgKiBzZXQgdGhlIHRvdWNoQWN0aW9uIHZhbHVlIG9uIHRoZSBlbGVtZW50IG9yIGVuYWJsZSB0aGUgcG9seWZpbGxcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gdmFsdWVcbiAgICAgKi9cbiAgICBzZXQ6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgIC8vIGZpbmQgb3V0IHRoZSB0b3VjaC1hY3Rpb24gYnkgdGhlIGV2ZW50IGhhbmRsZXJzXG4gICAgICAgIGlmICh2YWx1ZSA9PSBUT1VDSF9BQ1RJT05fQ09NUFVURSkge1xuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLmNvbXB1dGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChOQVRJVkVfVE9VQ0hfQUNUSU9OICYmIHRoaXMubWFuYWdlci5lbGVtZW50LnN0eWxlICYmIFRPVUNIX0FDVElPTl9NQVBbdmFsdWVdKSB7XG4gICAgICAgICAgICB0aGlzLm1hbmFnZXIuZWxlbWVudC5zdHlsZVtQUkVGSVhFRF9UT1VDSF9BQ1RJT05dID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hY3Rpb25zID0gdmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGp1c3QgcmUtc2V0IHRoZSB0b3VjaEFjdGlvbiB2YWx1ZVxuICAgICAqL1xuICAgIHVwZGF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuc2V0KHRoaXMubWFuYWdlci5vcHRpb25zLnRvdWNoQWN0aW9uKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogY29tcHV0ZSB0aGUgdmFsdWUgZm9yIHRoZSB0b3VjaEFjdGlvbiBwcm9wZXJ0eSBiYXNlZCBvbiB0aGUgcmVjb2duaXplcidzIHNldHRpbmdzXG4gICAgICogQHJldHVybnMge1N0cmluZ30gdmFsdWVcbiAgICAgKi9cbiAgICBjb21wdXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGFjdGlvbnMgPSBbXTtcbiAgICAgICAgZWFjaCh0aGlzLm1hbmFnZXIucmVjb2duaXplcnMsIGZ1bmN0aW9uKHJlY29nbml6ZXIpIHtcbiAgICAgICAgICAgIGlmIChib29sT3JGbihyZWNvZ25pemVyLm9wdGlvbnMuZW5hYmxlLCBbcmVjb2duaXplcl0pKSB7XG4gICAgICAgICAgICAgICAgYWN0aW9ucyA9IGFjdGlvbnMuY29uY2F0KHJlY29nbml6ZXIuZ2V0VG91Y2hBY3Rpb24oKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gY2xlYW5Ub3VjaEFjdGlvbnMoYWN0aW9ucy5qb2luKCcgJykpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gZWFjaCBpbnB1dCBjeWNsZSBhbmQgcHJvdmlkZXMgdGhlIHByZXZlbnRpbmcgb2YgdGhlIGJyb3dzZXIgYmVoYXZpb3JcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gaW5wdXRcbiAgICAgKi9cbiAgICBwcmV2ZW50RGVmYXVsdHM6IGZ1bmN0aW9uKGlucHV0KSB7XG4gICAgICAgIHZhciBzcmNFdmVudCA9IGlucHV0LnNyY0V2ZW50O1xuICAgICAgICB2YXIgZGlyZWN0aW9uID0gaW5wdXQub2Zmc2V0RGlyZWN0aW9uO1xuXG4gICAgICAgIC8vIGlmIHRoZSB0b3VjaCBhY3Rpb24gZGlkIHByZXZlbnRlZCBvbmNlIHRoaXMgc2Vzc2lvblxuICAgICAgICBpZiAodGhpcy5tYW5hZ2VyLnNlc3Npb24ucHJldmVudGVkKSB7XG4gICAgICAgICAgICBzcmNFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGFjdGlvbnMgPSB0aGlzLmFjdGlvbnM7XG4gICAgICAgIHZhciBoYXNOb25lID0gaW5TdHIoYWN0aW9ucywgVE9VQ0hfQUNUSU9OX05PTkUpICYmICFUT1VDSF9BQ1RJT05fTUFQW1RPVUNIX0FDVElPTl9OT05FXTtcbiAgICAgICAgdmFyIGhhc1BhblkgPSBpblN0cihhY3Rpb25zLCBUT1VDSF9BQ1RJT05fUEFOX1kpICYmICFUT1VDSF9BQ1RJT05fTUFQW1RPVUNIX0FDVElPTl9QQU5fWV07XG4gICAgICAgIHZhciBoYXNQYW5YID0gaW5TdHIoYWN0aW9ucywgVE9VQ0hfQUNUSU9OX1BBTl9YKSAmJiAhVE9VQ0hfQUNUSU9OX01BUFtUT1VDSF9BQ1RJT05fUEFOX1hdO1xuXG4gICAgICAgIGlmIChoYXNOb25lKSB7XG4gICAgICAgICAgICAvL2RvIG5vdCBwcmV2ZW50IGRlZmF1bHRzIGlmIHRoaXMgaXMgYSB0YXAgZ2VzdHVyZVxuXG4gICAgICAgICAgICB2YXIgaXNUYXBQb2ludGVyID0gaW5wdXQucG9pbnRlcnMubGVuZ3RoID09PSAxO1xuICAgICAgICAgICAgdmFyIGlzVGFwTW92ZW1lbnQgPSBpbnB1dC5kaXN0YW5jZSA8IDI7XG4gICAgICAgICAgICB2YXIgaXNUYXBUb3VjaFRpbWUgPSBpbnB1dC5kZWx0YVRpbWUgPCAyNTA7XG5cbiAgICAgICAgICAgIGlmIChpc1RhcFBvaW50ZXIgJiYgaXNUYXBNb3ZlbWVudCAmJiBpc1RhcFRvdWNoVGltZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoYXNQYW5YICYmIGhhc1BhblkpIHtcbiAgICAgICAgICAgIC8vIGBwYW4teCBwYW4teWAgbWVhbnMgYnJvd3NlciBoYW5kbGVzIGFsbCBzY3JvbGxpbmcvcGFubmluZywgZG8gbm90IHByZXZlbnRcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoYXNOb25lIHx8XG4gICAgICAgICAgICAoaGFzUGFuWSAmJiBkaXJlY3Rpb24gJiBESVJFQ1RJT05fSE9SSVpPTlRBTCkgfHxcbiAgICAgICAgICAgIChoYXNQYW5YICYmIGRpcmVjdGlvbiAmIERJUkVDVElPTl9WRVJUSUNBTCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByZXZlbnRTcmMoc3JjRXZlbnQpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGNhbGwgcHJldmVudERlZmF1bHQgdG8gcHJldmVudCB0aGUgYnJvd3NlcidzIGRlZmF1bHQgYmVoYXZpb3IgKHNjcm9sbGluZyBpbiBtb3N0IGNhc2VzKVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzcmNFdmVudFxuICAgICAqL1xuICAgIHByZXZlbnRTcmM6IGZ1bmN0aW9uKHNyY0V2ZW50KSB7XG4gICAgICAgIHRoaXMubWFuYWdlci5zZXNzaW9uLnByZXZlbnRlZCA9IHRydWU7XG4gICAgICAgIHNyY0V2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxufTtcblxuLyoqXG4gKiB3aGVuIHRoZSB0b3VjaEFjdGlvbnMgYXJlIGNvbGxlY3RlZCB0aGV5IGFyZSBub3QgYSB2YWxpZCB2YWx1ZSwgc28gd2UgbmVlZCB0byBjbGVhbiB0aGluZ3MgdXAuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBhY3Rpb25zXG4gKiBAcmV0dXJucyB7Kn1cbiAqL1xuZnVuY3Rpb24gY2xlYW5Ub3VjaEFjdGlvbnMoYWN0aW9ucykge1xuICAgIC8vIG5vbmVcbiAgICBpZiAoaW5TdHIoYWN0aW9ucywgVE9VQ0hfQUNUSU9OX05PTkUpKSB7XG4gICAgICAgIHJldHVybiBUT1VDSF9BQ1RJT05fTk9ORTtcbiAgICB9XG5cbiAgICB2YXIgaGFzUGFuWCA9IGluU3RyKGFjdGlvbnMsIFRPVUNIX0FDVElPTl9QQU5fWCk7XG4gICAgdmFyIGhhc1BhblkgPSBpblN0cihhY3Rpb25zLCBUT1VDSF9BQ1RJT05fUEFOX1kpO1xuXG4gICAgLy8gaWYgYm90aCBwYW4teCBhbmQgcGFuLXkgYXJlIHNldCAoZGlmZmVyZW50IHJlY29nbml6ZXJzXG4gICAgLy8gZm9yIGRpZmZlcmVudCBkaXJlY3Rpb25zLCBlLmcuIGhvcml6b250YWwgcGFuIGJ1dCB2ZXJ0aWNhbCBzd2lwZT8pXG4gICAgLy8gd2UgbmVlZCBub25lIChhcyBvdGhlcndpc2Ugd2l0aCBwYW4teCBwYW4teSBjb21iaW5lZCBub25lIG9mIHRoZXNlXG4gICAgLy8gcmVjb2duaXplcnMgd2lsbCB3b3JrLCBzaW5jZSB0aGUgYnJvd3NlciB3b3VsZCBoYW5kbGUgYWxsIHBhbm5pbmdcbiAgICBpZiAoaGFzUGFuWCAmJiBoYXNQYW5ZKSB7XG4gICAgICAgIHJldHVybiBUT1VDSF9BQ1RJT05fTk9ORTtcbiAgICB9XG5cbiAgICAvLyBwYW4teCBPUiBwYW4teVxuICAgIGlmIChoYXNQYW5YIHx8IGhhc1BhblkpIHtcbiAgICAgICAgcmV0dXJuIGhhc1BhblggPyBUT1VDSF9BQ1RJT05fUEFOX1ggOiBUT1VDSF9BQ1RJT05fUEFOX1k7XG4gICAgfVxuXG4gICAgLy8gbWFuaXB1bGF0aW9uXG4gICAgaWYgKGluU3RyKGFjdGlvbnMsIFRPVUNIX0FDVElPTl9NQU5JUFVMQVRJT04pKSB7XG4gICAgICAgIHJldHVybiBUT1VDSF9BQ1RJT05fTUFOSVBVTEFUSU9OO1xuICAgIH1cblxuICAgIHJldHVybiBUT1VDSF9BQ1RJT05fQVVUTztcbn1cblxuZnVuY3Rpb24gZ2V0VG91Y2hBY3Rpb25Qcm9wcygpIHtcbiAgICBpZiAoIU5BVElWRV9UT1VDSF9BQ1RJT04pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB2YXIgdG91Y2hNYXAgPSB7fTtcbiAgICB2YXIgY3NzU3VwcG9ydHMgPSB3aW5kb3cuQ1NTICYmIHdpbmRvdy5DU1Muc3VwcG9ydHM7XG4gICAgWydhdXRvJywgJ21hbmlwdWxhdGlvbicsICdwYW4teScsICdwYW4teCcsICdwYW4teCBwYW4teScsICdub25lJ10uZm9yRWFjaChmdW5jdGlvbih2YWwpIHtcblxuICAgICAgICAvLyBJZiBjc3Muc3VwcG9ydHMgaXMgbm90IHN1cHBvcnRlZCBidXQgdGhlcmUgaXMgbmF0aXZlIHRvdWNoLWFjdGlvbiBhc3N1bWUgaXQgc3VwcG9ydHNcbiAgICAgICAgLy8gYWxsIHZhbHVlcy4gVGhpcyBpcyB0aGUgY2FzZSBmb3IgSUUgMTAgYW5kIDExLlxuICAgICAgICB0b3VjaE1hcFt2YWxdID0gY3NzU3VwcG9ydHMgPyB3aW5kb3cuQ1NTLnN1cHBvcnRzKCd0b3VjaC1hY3Rpb24nLCB2YWwpIDogdHJ1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gdG91Y2hNYXA7XG59XG5cbi8qKlxuICogUmVjb2duaXplciBmbG93IGV4cGxhaW5lZDsgKlxuICogQWxsIHJlY29nbml6ZXJzIGhhdmUgdGhlIGluaXRpYWwgc3RhdGUgb2YgUE9TU0lCTEUgd2hlbiBhIGlucHV0IHNlc3Npb24gc3RhcnRzLlxuICogVGhlIGRlZmluaXRpb24gb2YgYSBpbnB1dCBzZXNzaW9uIGlzIGZyb20gdGhlIGZpcnN0IGlucHV0IHVudGlsIHRoZSBsYXN0IGlucHV0LCB3aXRoIGFsbCBpdCdzIG1vdmVtZW50IGluIGl0LiAqXG4gKiBFeGFtcGxlIHNlc3Npb24gZm9yIG1vdXNlLWlucHV0OiBtb3VzZWRvd24gLT4gbW91c2Vtb3ZlIC0+IG1vdXNldXBcbiAqXG4gKiBPbiBlYWNoIHJlY29nbml6aW5nIGN5Y2xlIChzZWUgTWFuYWdlci5yZWNvZ25pemUpIHRoZSAucmVjb2duaXplKCkgbWV0aG9kIGlzIGV4ZWN1dGVkXG4gKiB3aGljaCBkZXRlcm1pbmVzIHdpdGggc3RhdGUgaXQgc2hvdWxkIGJlLlxuICpcbiAqIElmIHRoZSByZWNvZ25pemVyIGhhcyB0aGUgc3RhdGUgRkFJTEVELCBDQU5DRUxMRUQgb3IgUkVDT0dOSVpFRCAoZXF1YWxzIEVOREVEKSwgaXQgaXMgcmVzZXQgdG9cbiAqIFBPU1NJQkxFIHRvIGdpdmUgaXQgYW5vdGhlciBjaGFuZ2Ugb24gdGhlIG5leHQgY3ljbGUuXG4gKlxuICogICAgICAgICAgICAgICBQb3NzaWJsZVxuICogICAgICAgICAgICAgICAgICB8XG4gKiAgICAgICAgICAgICstLS0tLSstLS0tLS0tLS0tLS0tLS0rXG4gKiAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8XG4gKiAgICAgICstLS0tLSstLS0tLSsgICAgICAgICAgICAgICB8XG4gKiAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICB8XG4gKiAgIEZhaWxlZCAgICAgIENhbmNlbGxlZCAgICAgICAgICB8XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0rLS0tLS0tK1xuICogICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHxcbiAqICAgICAgICAgICAgICAgICAgICAgIFJlY29nbml6ZWQgICAgICAgQmVnYW5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbmdlZFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZGVkL1JlY29nbml6ZWRcbiAqL1xudmFyIFNUQVRFX1BPU1NJQkxFID0gMTtcbnZhciBTVEFURV9CRUdBTiA9IDI7XG52YXIgU1RBVEVfQ0hBTkdFRCA9IDQ7XG52YXIgU1RBVEVfRU5ERUQgPSA4O1xudmFyIFNUQVRFX1JFQ09HTklaRUQgPSBTVEFURV9FTkRFRDtcbnZhciBTVEFURV9DQU5DRUxMRUQgPSAxNjtcbnZhciBTVEFURV9GQUlMRUQgPSAzMjtcblxuLyoqXG4gKiBSZWNvZ25pemVyXG4gKiBFdmVyeSByZWNvZ25pemVyIG5lZWRzIHRvIGV4dGVuZCBmcm9tIHRoaXMgY2xhc3MuXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gKi9cbmZ1bmN0aW9uIFJlY29nbml6ZXIob3B0aW9ucykge1xuICAgIHRoaXMub3B0aW9ucyA9IGFzc2lnbih7fSwgdGhpcy5kZWZhdWx0cywgb3B0aW9ucyB8fCB7fSk7XG5cbiAgICB0aGlzLmlkID0gdW5pcXVlSWQoKTtcblxuICAgIHRoaXMubWFuYWdlciA9IG51bGw7XG5cbiAgICAvLyBkZWZhdWx0IGlzIGVuYWJsZSB0cnVlXG4gICAgdGhpcy5vcHRpb25zLmVuYWJsZSA9IGlmVW5kZWZpbmVkKHRoaXMub3B0aW9ucy5lbmFibGUsIHRydWUpO1xuXG4gICAgdGhpcy5zdGF0ZSA9IFNUQVRFX1BPU1NJQkxFO1xuXG4gICAgdGhpcy5zaW11bHRhbmVvdXMgPSB7fTtcbiAgICB0aGlzLnJlcXVpcmVGYWlsID0gW107XG59XG5cblJlY29nbml6ZXIucHJvdG90eXBlID0ge1xuICAgIC8qKlxuICAgICAqIEB2aXJ0dWFsXG4gICAgICogQHR5cGUge09iamVjdH1cbiAgICAgKi9cbiAgICBkZWZhdWx0czoge30sXG5cbiAgICAvKipcbiAgICAgKiBzZXQgb3B0aW9uc1xuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAgICogQHJldHVybiB7UmVjb2duaXplcn1cbiAgICAgKi9cbiAgICBzZXQ6IGZ1bmN0aW9uKG9wdGlvbnMpIHtcbiAgICAgICAgYXNzaWduKHRoaXMub3B0aW9ucywgb3B0aW9ucyk7XG5cbiAgICAgICAgLy8gYWxzbyB1cGRhdGUgdGhlIHRvdWNoQWN0aW9uLCBpbiBjYXNlIHNvbWV0aGluZyBjaGFuZ2VkIGFib3V0IHRoZSBkaXJlY3Rpb25zL2VuYWJsZWQgc3RhdGVcbiAgICAgICAgdGhpcy5tYW5hZ2VyICYmIHRoaXMubWFuYWdlci50b3VjaEFjdGlvbi51cGRhdGUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHJlY29nbml6ZSBzaW11bHRhbmVvdXMgd2l0aCBhbiBvdGhlciByZWNvZ25pemVyLlxuICAgICAqIEBwYXJhbSB7UmVjb2duaXplcn0gb3RoZXJSZWNvZ25pemVyXG4gICAgICogQHJldHVybnMge1JlY29nbml6ZXJ9IHRoaXNcbiAgICAgKi9cbiAgICByZWNvZ25pemVXaXRoOiBmdW5jdGlvbihvdGhlclJlY29nbml6ZXIpIHtcbiAgICAgICAgaWYgKGludm9rZUFycmF5QXJnKG90aGVyUmVjb2duaXplciwgJ3JlY29nbml6ZVdpdGgnLCB0aGlzKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgc2ltdWx0YW5lb3VzID0gdGhpcy5zaW11bHRhbmVvdXM7XG4gICAgICAgIG90aGVyUmVjb2duaXplciA9IGdldFJlY29nbml6ZXJCeU5hbWVJZk1hbmFnZXIob3RoZXJSZWNvZ25pemVyLCB0aGlzKTtcbiAgICAgICAgaWYgKCFzaW11bHRhbmVvdXNbb3RoZXJSZWNvZ25pemVyLmlkXSkge1xuICAgICAgICAgICAgc2ltdWx0YW5lb3VzW290aGVyUmVjb2duaXplci5pZF0gPSBvdGhlclJlY29nbml6ZXI7XG4gICAgICAgICAgICBvdGhlclJlY29nbml6ZXIucmVjb2duaXplV2l0aCh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogZHJvcCB0aGUgc2ltdWx0YW5lb3VzIGxpbmsuIGl0IGRvZXNudCByZW1vdmUgdGhlIGxpbmsgb24gdGhlIG90aGVyIHJlY29nbml6ZXIuXG4gICAgICogQHBhcmFtIHtSZWNvZ25pemVyfSBvdGhlclJlY29nbml6ZXJcbiAgICAgKiBAcmV0dXJucyB7UmVjb2duaXplcn0gdGhpc1xuICAgICAqL1xuICAgIGRyb3BSZWNvZ25pemVXaXRoOiBmdW5jdGlvbihvdGhlclJlY29nbml6ZXIpIHtcbiAgICAgICAgaWYgKGludm9rZUFycmF5QXJnKG90aGVyUmVjb2duaXplciwgJ2Ryb3BSZWNvZ25pemVXaXRoJywgdGhpcykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgb3RoZXJSZWNvZ25pemVyID0gZ2V0UmVjb2duaXplckJ5TmFtZUlmTWFuYWdlcihvdGhlclJlY29nbml6ZXIsIHRoaXMpO1xuICAgICAgICBkZWxldGUgdGhpcy5zaW11bHRhbmVvdXNbb3RoZXJSZWNvZ25pemVyLmlkXTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHJlY29nbml6ZXIgY2FuIG9ubHkgcnVuIHdoZW4gYW4gb3RoZXIgaXMgZmFpbGluZ1xuICAgICAqIEBwYXJhbSB7UmVjb2duaXplcn0gb3RoZXJSZWNvZ25pemVyXG4gICAgICogQHJldHVybnMge1JlY29nbml6ZXJ9IHRoaXNcbiAgICAgKi9cbiAgICByZXF1aXJlRmFpbHVyZTogZnVuY3Rpb24ob3RoZXJSZWNvZ25pemVyKSB7XG4gICAgICAgIGlmIChpbnZva2VBcnJheUFyZyhvdGhlclJlY29nbml6ZXIsICdyZXF1aXJlRmFpbHVyZScsIHRoaXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciByZXF1aXJlRmFpbCA9IHRoaXMucmVxdWlyZUZhaWw7XG4gICAgICAgIG90aGVyUmVjb2duaXplciA9IGdldFJlY29nbml6ZXJCeU5hbWVJZk1hbmFnZXIob3RoZXJSZWNvZ25pemVyLCB0aGlzKTtcbiAgICAgICAgaWYgKGluQXJyYXkocmVxdWlyZUZhaWwsIG90aGVyUmVjb2duaXplcikgPT09IC0xKSB7XG4gICAgICAgICAgICByZXF1aXJlRmFpbC5wdXNoKG90aGVyUmVjb2duaXplcik7XG4gICAgICAgICAgICBvdGhlclJlY29nbml6ZXIucmVxdWlyZUZhaWx1cmUodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGRyb3AgdGhlIHJlcXVpcmVGYWlsdXJlIGxpbmsuIGl0IGRvZXMgbm90IHJlbW92ZSB0aGUgbGluayBvbiB0aGUgb3RoZXIgcmVjb2duaXplci5cbiAgICAgKiBAcGFyYW0ge1JlY29nbml6ZXJ9IG90aGVyUmVjb2duaXplclxuICAgICAqIEByZXR1cm5zIHtSZWNvZ25pemVyfSB0aGlzXG4gICAgICovXG4gICAgZHJvcFJlcXVpcmVGYWlsdXJlOiBmdW5jdGlvbihvdGhlclJlY29nbml6ZXIpIHtcbiAgICAgICAgaWYgKGludm9rZUFycmF5QXJnKG90aGVyUmVjb2duaXplciwgJ2Ryb3BSZXF1aXJlRmFpbHVyZScsIHRoaXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIG90aGVyUmVjb2duaXplciA9IGdldFJlY29nbml6ZXJCeU5hbWVJZk1hbmFnZXIob3RoZXJSZWNvZ25pemVyLCB0aGlzKTtcbiAgICAgICAgdmFyIGluZGV4ID0gaW5BcnJheSh0aGlzLnJlcXVpcmVGYWlsLCBvdGhlclJlY29nbml6ZXIpO1xuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgdGhpcy5yZXF1aXJlRmFpbC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBoYXMgcmVxdWlyZSBmYWlsdXJlcyBib29sZWFuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAgICovXG4gICAgaGFzUmVxdWlyZUZhaWx1cmVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWlyZUZhaWwubGVuZ3RoID4gMDtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogaWYgdGhlIHJlY29nbml6ZXIgY2FuIHJlY29nbml6ZSBzaW11bHRhbmVvdXMgd2l0aCBhbiBvdGhlciByZWNvZ25pemVyXG4gICAgICogQHBhcmFtIHtSZWNvZ25pemVyfSBvdGhlclJlY29nbml6ZXJcbiAgICAgKiBAcmV0dXJucyB7Qm9vbGVhbn1cbiAgICAgKi9cbiAgICBjYW5SZWNvZ25pemVXaXRoOiBmdW5jdGlvbihvdGhlclJlY29nbml6ZXIpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5zaW11bHRhbmVvdXNbb3RoZXJSZWNvZ25pemVyLmlkXTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogWW91IHNob3VsZCB1c2UgYHRyeUVtaXRgIGluc3RlYWQgb2YgYGVtaXRgIGRpcmVjdGx5IHRvIGNoZWNrXG4gICAgICogdGhhdCBhbGwgdGhlIG5lZWRlZCByZWNvZ25pemVycyBoYXMgZmFpbGVkIGJlZm9yZSBlbWl0dGluZy5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gaW5wdXRcbiAgICAgKi9cbiAgICBlbWl0OiBmdW5jdGlvbihpbnB1dCkge1xuICAgICAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgICAgIHZhciBzdGF0ZSA9IHRoaXMuc3RhdGU7XG5cbiAgICAgICAgZnVuY3Rpb24gZW1pdChldmVudCkge1xuICAgICAgICAgICAgc2VsZi5tYW5hZ2VyLmVtaXQoZXZlbnQsIGlucHV0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vICdwYW5zdGFydCcgYW5kICdwYW5tb3ZlJ1xuICAgICAgICBpZiAoc3RhdGUgPCBTVEFURV9FTkRFRCkge1xuICAgICAgICAgICAgZW1pdChzZWxmLm9wdGlvbnMuZXZlbnQgKyBzdGF0ZVN0cihzdGF0ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgZW1pdChzZWxmLm9wdGlvbnMuZXZlbnQpOyAvLyBzaW1wbGUgJ2V2ZW50TmFtZScgZXZlbnRzXG5cbiAgICAgICAgaWYgKGlucHV0LmFkZGl0aW9uYWxFdmVudCkgeyAvLyBhZGRpdGlvbmFsIGV2ZW50KHBhbmxlZnQsIHBhbnJpZ2h0LCBwaW5jaGluLCBwaW5jaG91dC4uLilcbiAgICAgICAgICAgIGVtaXQoaW5wdXQuYWRkaXRpb25hbEV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHBhbmVuZCBhbmQgcGFuY2FuY2VsXG4gICAgICAgIGlmIChzdGF0ZSA+PSBTVEFURV9FTkRFRCkge1xuICAgICAgICAgICAgZW1pdChzZWxmLm9wdGlvbnMuZXZlbnQgKyBzdGF0ZVN0cihzdGF0ZSkpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIENoZWNrIHRoYXQgYWxsIHRoZSByZXF1aXJlIGZhaWx1cmUgcmVjb2duaXplcnMgaGFzIGZhaWxlZCxcbiAgICAgKiBpZiB0cnVlLCBpdCBlbWl0cyBhIGdlc3R1cmUgZXZlbnQsXG4gICAgICogb3RoZXJ3aXNlLCBzZXR1cCB0aGUgc3RhdGUgdG8gRkFJTEVELlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBpbnB1dFxuICAgICAqL1xuICAgIHRyeUVtaXQ6IGZ1bmN0aW9uKGlucHV0KSB7XG4gICAgICAgIGlmICh0aGlzLmNhbkVtaXQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZW1pdChpbnB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaXQncyBmYWlsaW5nIGFueXdheVxuICAgICAgICB0aGlzLnN0YXRlID0gU1RBVEVfRkFJTEVEO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBjYW4gd2UgZW1pdD9cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBjYW5FbWl0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGkgPSAwO1xuICAgICAgICB3aGlsZSAoaSA8IHRoaXMucmVxdWlyZUZhaWwubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoISh0aGlzLnJlcXVpcmVGYWlsW2ldLnN0YXRlICYgKFNUQVRFX0ZBSUxFRCB8IFNUQVRFX1BPU1NJQkxFKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHVwZGF0ZSB0aGUgcmVjb2duaXplclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBpbnB1dERhdGFcbiAgICAgKi9cbiAgICByZWNvZ25pemU6IGZ1bmN0aW9uKGlucHV0RGF0YSkge1xuICAgICAgICAvLyBtYWtlIGEgbmV3IGNvcHkgb2YgdGhlIGlucHV0RGF0YVxuICAgICAgICAvLyBzbyB3ZSBjYW4gY2hhbmdlIHRoZSBpbnB1dERhdGEgd2l0aG91dCBtZXNzaW5nIHVwIHRoZSBvdGhlciByZWNvZ25pemVyc1xuICAgICAgICB2YXIgaW5wdXREYXRhQ2xvbmUgPSBhc3NpZ24oe30sIGlucHV0RGF0YSk7XG5cbiAgICAgICAgLy8gaXMgaXMgZW5hYmxlZCBhbmQgYWxsb3cgcmVjb2duaXppbmc/XG4gICAgICAgIGlmICghYm9vbE9yRm4odGhpcy5vcHRpb25zLmVuYWJsZSwgW3RoaXMsIGlucHV0RGF0YUNsb25lXSkpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTVEFURV9GQUlMRUQ7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyByZXNldCB3aGVuIHdlJ3ZlIHJlYWNoZWQgdGhlIGVuZFxuICAgICAgICBpZiAodGhpcy5zdGF0ZSAmIChTVEFURV9SRUNPR05JWkVEIHwgU1RBVEVfQ0FOQ0VMTEVEIHwgU1RBVEVfRkFJTEVEKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFNUQVRFX1BPU1NJQkxFO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMucHJvY2VzcyhpbnB1dERhdGFDbG9uZSk7XG5cbiAgICAgICAgLy8gdGhlIHJlY29nbml6ZXIgaGFzIHJlY29nbml6ZWQgYSBnZXN0dXJlXG4gICAgICAgIC8vIHNvIHRyaWdnZXIgYW4gZXZlbnRcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgJiAoU1RBVEVfQkVHQU4gfCBTVEFURV9DSEFOR0VEIHwgU1RBVEVfRU5ERUQgfCBTVEFURV9DQU5DRUxMRUQpKSB7XG4gICAgICAgICAgICB0aGlzLnRyeUVtaXQoaW5wdXREYXRhQ2xvbmUpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHJldHVybiB0aGUgc3RhdGUgb2YgdGhlIHJlY29nbml6ZXJcbiAgICAgKiB0aGUgYWN0dWFsIHJlY29nbml6aW5nIGhhcHBlbnMgaW4gdGhpcyBtZXRob2RcbiAgICAgKiBAdmlydHVhbFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBpbnB1dERhdGFcbiAgICAgKiBAcmV0dXJucyB7Q29uc3R9IFNUQVRFXG4gICAgICovXG4gICAgcHJvY2VzczogZnVuY3Rpb24oaW5wdXREYXRhKSB7IH0sIC8vIGpzaGludCBpZ25vcmU6bGluZVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJuIHRoZSBwcmVmZXJyZWQgdG91Y2gtYWN0aW9uXG4gICAgICogQHZpcnR1YWxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9XG4gICAgICovXG4gICAgZ2V0VG91Y2hBY3Rpb246IGZ1bmN0aW9uKCkgeyB9LFxuXG4gICAgLyoqXG4gICAgICogY2FsbGVkIHdoZW4gdGhlIGdlc3R1cmUgaXNuJ3QgYWxsb3dlZCB0byByZWNvZ25pemVcbiAgICAgKiBsaWtlIHdoZW4gYW5vdGhlciBpcyBiZWluZyByZWNvZ25pemVkIG9yIGl0IGlzIGRpc2FibGVkXG4gICAgICogQHZpcnR1YWxcbiAgICAgKi9cbiAgICByZXNldDogZnVuY3Rpb24oKSB7IH1cbn07XG5cbi8qKlxuICogZ2V0IGEgdXNhYmxlIHN0cmluZywgdXNlZCBhcyBldmVudCBwb3N0Zml4XG4gKiBAcGFyYW0ge0NvbnN0fSBzdGF0ZVxuICogQHJldHVybnMge1N0cmluZ30gc3RhdGVcbiAqL1xuZnVuY3Rpb24gc3RhdGVTdHIoc3RhdGUpIHtcbiAgICBpZiAoc3RhdGUgJiBTVEFURV9DQU5DRUxMRUQpIHtcbiAgICAgICAgcmV0dXJuICdjYW5jZWwnO1xuICAgIH0gZWxzZSBpZiAoc3RhdGUgJiBTVEFURV9FTkRFRCkge1xuICAgICAgICByZXR1cm4gJ2VuZCc7XG4gICAgfSBlbHNlIGlmIChzdGF0ZSAmIFNUQVRFX0NIQU5HRUQpIHtcbiAgICAgICAgcmV0dXJuICdtb3ZlJztcbiAgICB9IGVsc2UgaWYgKHN0YXRlICYgU1RBVEVfQkVHQU4pIHtcbiAgICAgICAgcmV0dXJuICdzdGFydCc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbn1cblxuLyoqXG4gKiBkaXJlY3Rpb24gY29ucyB0byBzdHJpbmdcbiAqIEBwYXJhbSB7Q29uc3R9IGRpcmVjdGlvblxuICogQHJldHVybnMge1N0cmluZ31cbiAqL1xuZnVuY3Rpb24gZGlyZWN0aW9uU3RyKGRpcmVjdGlvbikge1xuICAgIGlmIChkaXJlY3Rpb24gPT0gRElSRUNUSU9OX0RPV04pIHtcbiAgICAgICAgcmV0dXJuICdkb3duJztcbiAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBESVJFQ1RJT05fVVApIHtcbiAgICAgICAgcmV0dXJuICd1cCc7XG4gICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT0gRElSRUNUSU9OX0xFRlQpIHtcbiAgICAgICAgcmV0dXJuICdsZWZ0JztcbiAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBESVJFQ1RJT05fUklHSFQpIHtcbiAgICAgICAgcmV0dXJuICdyaWdodCc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbn1cblxuLyoqXG4gKiBnZXQgYSByZWNvZ25pemVyIGJ5IG5hbWUgaWYgaXQgaXMgYm91bmQgdG8gYSBtYW5hZ2VyXG4gKiBAcGFyYW0ge1JlY29nbml6ZXJ8U3RyaW5nfSBvdGhlclJlY29nbml6ZXJcbiAqIEBwYXJhbSB7UmVjb2duaXplcn0gcmVjb2duaXplclxuICogQHJldHVybnMge1JlY29nbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIGdldFJlY29nbml6ZXJCeU5hbWVJZk1hbmFnZXIob3RoZXJSZWNvZ25pemVyLCByZWNvZ25pemVyKSB7XG4gICAgdmFyIG1hbmFnZXIgPSByZWNvZ25pemVyLm1hbmFnZXI7XG4gICAgaWYgKG1hbmFnZXIpIHtcbiAgICAgICAgcmV0dXJuIG1hbmFnZXIuZ2V0KG90aGVyUmVjb2duaXplcik7XG4gICAgfVxuICAgIHJldHVybiBvdGhlclJlY29nbml6ZXI7XG59XG5cbi8qKlxuICogVGhpcyByZWNvZ25pemVyIGlzIGp1c3QgdXNlZCBhcyBhIGJhc2UgZm9yIHRoZSBzaW1wbGUgYXR0cmlidXRlIHJlY29nbml6ZXJzLlxuICogQGNvbnN0cnVjdG9yXG4gKiBAZXh0ZW5kcyBSZWNvZ25pemVyXG4gKi9cbmZ1bmN0aW9uIEF0dHJSZWNvZ25pemVyKCkge1xuICAgIFJlY29nbml6ZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuaW5oZXJpdChBdHRyUmVjb2duaXplciwgUmVjb2duaXplciwge1xuICAgIC8qKlxuICAgICAqIEBuYW1lc3BhY2VcbiAgICAgKiBAbWVtYmVyb2YgQXR0clJlY29nbml6ZXJcbiAgICAgKi9cbiAgICBkZWZhdWx0czoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQHR5cGUge051bWJlcn1cbiAgICAgICAgICogQGRlZmF1bHQgMVxuICAgICAgICAgKi9cbiAgICAgICAgcG9pbnRlcnM6IDFcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogVXNlZCB0byBjaGVjayBpZiBpdCB0aGUgcmVjb2duaXplciByZWNlaXZlcyB2YWxpZCBpbnB1dCwgbGlrZSBpbnB1dC5kaXN0YW5jZSA+IDEwLlxuICAgICAqIEBtZW1iZXJvZiBBdHRyUmVjb2duaXplclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBpbnB1dFxuICAgICAqIEByZXR1cm5zIHtCb29sZWFufSByZWNvZ25pemVkXG4gICAgICovXG4gICAgYXR0clRlc3Q6IGZ1bmN0aW9uKGlucHV0KSB7XG4gICAgICAgIHZhciBvcHRpb25Qb2ludGVycyA9IHRoaXMub3B0aW9ucy5wb2ludGVycztcbiAgICAgICAgcmV0dXJuIG9wdGlvblBvaW50ZXJzID09PSAwIHx8IGlucHV0LnBvaW50ZXJzLmxlbmd0aCA9PT0gb3B0aW9uUG9pbnRlcnM7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3MgdGhlIGlucHV0IGFuZCByZXR1cm4gdGhlIHN0YXRlIGZvciB0aGUgcmVjb2duaXplclxuICAgICAqIEBtZW1iZXJvZiBBdHRyUmVjb2duaXplclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBpbnB1dFxuICAgICAqIEByZXR1cm5zIHsqfSBTdGF0ZVxuICAgICAqL1xuICAgIHByb2Nlc3M6IGZ1bmN0aW9uKGlucHV0KSB7XG4gICAgICAgIHZhciBzdGF0ZSA9IHRoaXMuc3RhdGU7XG4gICAgICAgIHZhciBldmVudFR5cGUgPSBpbnB1dC5ldmVudFR5cGU7XG5cbiAgICAgICAgdmFyIGlzUmVjb2duaXplZCA9IHN0YXRlICYgKFNUQVRFX0JFR0FOIHwgU1RBVEVfQ0hBTkdFRCk7XG4gICAgICAgIHZhciBpc1ZhbGlkID0gdGhpcy5hdHRyVGVzdChpbnB1dCk7XG5cbiAgICAgICAgLy8gb24gY2FuY2VsIGlucHV0IGFuZCB3ZSd2ZSByZWNvZ25pemVkIGJlZm9yZSwgcmV0dXJuIFNUQVRFX0NBTkNFTExFRFxuICAgICAgICBpZiAoaXNSZWNvZ25pemVkICYmIChldmVudFR5cGUgJiBJTlBVVF9DQU5DRUwgfHwgIWlzVmFsaWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RhdGUgfCBTVEFURV9DQU5DRUxMRUQ7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNSZWNvZ25pemVkIHx8IGlzVmFsaWQpIHtcbiAgICAgICAgICAgIGlmIChldmVudFR5cGUgJiBJTlBVVF9FTkQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGUgfCBTVEFURV9FTkRFRDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIShzdGF0ZSAmIFNUQVRFX0JFR0FOKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBTVEFURV9CRUdBTjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzdGF0ZSB8IFNUQVRFX0NIQU5HRUQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFNUQVRFX0ZBSUxFRDtcbiAgICB9XG59KTtcblxuLyoqXG4gKiBQYW5cbiAqIFJlY29nbml6ZWQgd2hlbiB0aGUgcG9pbnRlciBpcyBkb3duIGFuZCBtb3ZlZCBpbiB0aGUgYWxsb3dlZCBkaXJlY3Rpb24uXG4gKiBAY29uc3RydWN0b3JcbiAqIEBleHRlbmRzIEF0dHJSZWNvZ25pemVyXG4gKi9cbmZ1bmN0aW9uIFBhblJlY29nbml6ZXIoKSB7XG4gICAgQXR0clJlY29nbml6ZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICAgIHRoaXMucFggPSBudWxsO1xuICAgIHRoaXMucFkgPSBudWxsO1xufVxuXG5pbmhlcml0KFBhblJlY29nbml6ZXIsIEF0dHJSZWNvZ25pemVyLCB7XG4gICAgLyoqXG4gICAgICogQG5hbWVzcGFjZVxuICAgICAqIEBtZW1iZXJvZiBQYW5SZWNvZ25pemVyXG4gICAgICovXG4gICAgZGVmYXVsdHM6IHtcbiAgICAgICAgZXZlbnQ6ICdwYW4nLFxuICAgICAgICB0aHJlc2hvbGQ6IDEwLFxuICAgICAgICBwb2ludGVyczogMSxcbiAgICAgICAgZGlyZWN0aW9uOiBESVJFQ1RJT05fQUxMXG4gICAgfSxcblxuICAgIGdldFRvdWNoQWN0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGRpcmVjdGlvbiA9IHRoaXMub3B0aW9ucy5kaXJlY3Rpb247XG4gICAgICAgIHZhciBhY3Rpb25zID0gW107XG4gICAgICAgIGlmIChkaXJlY3Rpb24gJiBESVJFQ1RJT05fSE9SSVpPTlRBTCkge1xuICAgICAgICAgICAgYWN0aW9ucy5wdXNoKFRPVUNIX0FDVElPTl9QQU5fWSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRpcmVjdGlvbiAmIERJUkVDVElPTl9WRVJUSUNBTCkge1xuICAgICAgICAgICAgYWN0aW9ucy5wdXNoKFRPVUNIX0FDVElPTl9QQU5fWCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjdGlvbnM7XG4gICAgfSxcblxuICAgIGRpcmVjdGlvblRlc3Q6IGZ1bmN0aW9uKGlucHV0KSB7XG4gICAgICAgIHZhciBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgICAgICB2YXIgaGFzTW92ZWQgPSB0cnVlO1xuICAgICAgICB2YXIgZGlzdGFuY2UgPSBpbnB1dC5kaXN0YW5jZTtcbiAgICAgICAgdmFyIGRpcmVjdGlvbiA9IGlucHV0LmRpcmVjdGlvbjtcbiAgICAgICAgdmFyIHggPSBpbnB1dC5kZWx0YVg7XG4gICAgICAgIHZhciB5ID0gaW5wdXQuZGVsdGFZO1xuXG4gICAgICAgIC8vIGxvY2sgdG8gYXhpcz9cbiAgICAgICAgaWYgKCEoZGlyZWN0aW9uICYgb3B0aW9ucy5kaXJlY3Rpb24pKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5kaXJlY3Rpb24gJiBESVJFQ1RJT05fSE9SSVpPTlRBTCkge1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICh4ID09PSAwKSA/IERJUkVDVElPTl9OT05FIDogKHggPCAwKSA/IERJUkVDVElPTl9MRUZUIDogRElSRUNUSU9OX1JJR0hUO1xuICAgICAgICAgICAgICAgIGhhc01vdmVkID0geCAhPSB0aGlzLnBYO1xuICAgICAgICAgICAgICAgIGRpc3RhbmNlID0gTWF0aC5hYnMoaW5wdXQuZGVsdGFYKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uID0gKHkgPT09IDApID8gRElSRUNUSU9OX05PTkUgOiAoeSA8IDApID8gRElSRUNUSU9OX1VQIDogRElSRUNUSU9OX0RPV047XG4gICAgICAgICAgICAgICAgaGFzTW92ZWQgPSB5ICE9IHRoaXMucFk7XG4gICAgICAgICAgICAgICAgZGlzdGFuY2UgPSBNYXRoLmFicyhpbnB1dC5kZWx0YVkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlucHV0LmRpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICAgICAgcmV0dXJuIGhhc01vdmVkICYmIGRpc3RhbmNlID4gb3B0aW9ucy50aHJlc2hvbGQgJiYgZGlyZWN0aW9uICYgb3B0aW9ucy5kaXJlY3Rpb247XG4gICAgfSxcblxuICAgIGF0dHJUZXN0OiBmdW5jdGlvbihpbnB1dCkge1xuICAgICAgICByZXR1cm4gQXR0clJlY29nbml6ZXIucHJvdG90eXBlLmF0dHJUZXN0LmNhbGwodGhpcywgaW5wdXQpICYmXG4gICAgICAgICAgICAodGhpcy5zdGF0ZSAmIFNUQVRFX0JFR0FOIHx8ICghKHRoaXMuc3RhdGUgJiBTVEFURV9CRUdBTikgJiYgdGhpcy5kaXJlY3Rpb25UZXN0KGlucHV0KSkpO1xuICAgIH0sXG5cbiAgICBlbWl0OiBmdW5jdGlvbihpbnB1dCkge1xuXG4gICAgICAgIHRoaXMucFggPSBpbnB1dC5kZWx0YVg7XG4gICAgICAgIHRoaXMucFkgPSBpbnB1dC5kZWx0YVk7XG5cbiAgICAgICAgdmFyIGRpcmVjdGlvbiA9IGRpcmVjdGlvblN0cihpbnB1dC5kaXJlY3Rpb24pO1xuXG4gICAgICAgIGlmIChkaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGlucHV0LmFkZGl0aW9uYWxFdmVudCA9IHRoaXMub3B0aW9ucy5ldmVudCArIGRpcmVjdGlvbjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zdXBlci5lbWl0LmNhbGwodGhpcywgaW5wdXQpO1xuICAgIH1cbn0pO1xuXG4vKipcbiAqIFBpbmNoXG4gKiBSZWNvZ25pemVkIHdoZW4gdHdvIG9yIG1vcmUgcG9pbnRlcnMgYXJlIG1vdmluZyB0b3dhcmQgKHpvb20taW4pIG9yIGF3YXkgZnJvbSBlYWNoIG90aGVyICh6b29tLW91dCkuXG4gKiBAY29uc3RydWN0b3JcbiAqIEBleHRlbmRzIEF0dHJSZWNvZ25pemVyXG4gKi9cbmZ1bmN0aW9uIFBpbmNoUmVjb2duaXplcigpIHtcbiAgICBBdHRyUmVjb2duaXplci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuXG5pbmhlcml0KFBpbmNoUmVjb2duaXplciwgQXR0clJlY29nbml6ZXIsIHtcbiAgICAvKipcbiAgICAgKiBAbmFtZXNwYWNlXG4gICAgICogQG1lbWJlcm9mIFBpbmNoUmVjb2duaXplclxuICAgICAqL1xuICAgIGRlZmF1bHRzOiB7XG4gICAgICAgIGV2ZW50OiAncGluY2gnLFxuICAgICAgICB0aHJlc2hvbGQ6IDAsXG4gICAgICAgIHBvaW50ZXJzOiAyXG4gICAgfSxcblxuICAgIGdldFRvdWNoQWN0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFtUT1VDSF9BQ1RJT05fTk9ORV07XG4gICAgfSxcblxuICAgIGF0dHJUZXN0OiBmdW5jdGlvbihpbnB1dCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3VwZXIuYXR0clRlc3QuY2FsbCh0aGlzLCBpbnB1dCkgJiZcbiAgICAgICAgICAgIChNYXRoLmFicyhpbnB1dC5zY2FsZSAtIDEpID4gdGhpcy5vcHRpb25zLnRocmVzaG9sZCB8fCB0aGlzLnN0YXRlICYgU1RBVEVfQkVHQU4pO1xuICAgIH0sXG5cbiAgICBlbWl0OiBmdW5jdGlvbihpbnB1dCkge1xuICAgICAgICBpZiAoaW5wdXQuc2NhbGUgIT09IDEpIHtcbiAgICAgICAgICAgIHZhciBpbk91dCA9IGlucHV0LnNjYWxlIDwgMSA/ICdpbicgOiAnb3V0JztcbiAgICAgICAgICAgIGlucHV0LmFkZGl0aW9uYWxFdmVudCA9IHRoaXMub3B0aW9ucy5ldmVudCArIGluT3V0O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3N1cGVyLmVtaXQuY2FsbCh0aGlzLCBpbnB1dCk7XG4gICAgfVxufSk7XG5cbi8qKlxuICogUHJlc3NcbiAqIFJlY29nbml6ZWQgd2hlbiB0aGUgcG9pbnRlciBpcyBkb3duIGZvciB4IG1zIHdpdGhvdXQgYW55IG1vdmVtZW50LlxuICogQGNvbnN0cnVjdG9yXG4gKiBAZXh0ZW5kcyBSZWNvZ25pemVyXG4gKi9cbmZ1bmN0aW9uIFByZXNzUmVjb2duaXplcigpIHtcbiAgICBSZWNvZ25pemVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgICB0aGlzLl90aW1lciA9IG51bGw7XG4gICAgdGhpcy5faW5wdXQgPSBudWxsO1xufVxuXG5pbmhlcml0KFByZXNzUmVjb2duaXplciwgUmVjb2duaXplciwge1xuICAgIC8qKlxuICAgICAqIEBuYW1lc3BhY2VcbiAgICAgKiBAbWVtYmVyb2YgUHJlc3NSZWNvZ25pemVyXG4gICAgICovXG4gICAgZGVmYXVsdHM6IHtcbiAgICAgICAgZXZlbnQ6ICdwcmVzcycsXG4gICAgICAgIHBvaW50ZXJzOiAxLFxuICAgICAgICB0aW1lOiAyNTEsIC8vIG1pbmltYWwgdGltZSBvZiB0aGUgcG9pbnRlciB0byBiZSBwcmVzc2VkXG4gICAgICAgIHRocmVzaG9sZDogOSAvLyBhIG1pbmltYWwgbW92ZW1lbnQgaXMgb2ssIGJ1dCBrZWVwIGl0IGxvd1xuICAgIH0sXG5cbiAgICBnZXRUb3VjaEFjdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBbVE9VQ0hfQUNUSU9OX0FVVE9dO1xuICAgIH0sXG5cbiAgICBwcm9jZXNzOiBmdW5jdGlvbihpbnB1dCkge1xuICAgICAgICB2YXIgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgdmFyIHZhbGlkUG9pbnRlcnMgPSBpbnB1dC5wb2ludGVycy5sZW5ndGggPT09IG9wdGlvbnMucG9pbnRlcnM7XG4gICAgICAgIHZhciB2YWxpZE1vdmVtZW50ID0gaW5wdXQuZGlzdGFuY2UgPCBvcHRpb25zLnRocmVzaG9sZDtcbiAgICAgICAgdmFyIHZhbGlkVGltZSA9IGlucHV0LmRlbHRhVGltZSA+IG9wdGlvbnMudGltZTtcblxuICAgICAgICB0aGlzLl9pbnB1dCA9IGlucHV0O1xuXG4gICAgICAgIC8vIHdlIG9ubHkgYWxsb3cgbGl0dGxlIG1vdmVtZW50XG4gICAgICAgIC8vIGFuZCB3ZSd2ZSByZWFjaGVkIGFuIGVuZCBldmVudCwgc28gYSB0YXAgaXMgcG9zc2libGVcbiAgICAgICAgaWYgKCF2YWxpZE1vdmVtZW50IHx8ICF2YWxpZFBvaW50ZXJzIHx8IChpbnB1dC5ldmVudFR5cGUgJiAoSU5QVVRfRU5EIHwgSU5QVVRfQ0FOQ0VMKSAmJiAhdmFsaWRUaW1lKSkge1xuICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGlucHV0LmV2ZW50VHlwZSAmIElOUFVUX1NUQVJUKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICB0aGlzLl90aW1lciA9IHNldFRpbWVvdXRDb250ZXh0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTVEFURV9SRUNPR05JWkVEO1xuICAgICAgICAgICAgICAgIHRoaXMudHJ5RW1pdCgpO1xuICAgICAgICAgICAgfSwgb3B0aW9ucy50aW1lLCB0aGlzKTtcbiAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5ldmVudFR5cGUgJiBJTlBVVF9FTkQpIHtcbiAgICAgICAgICAgIHJldHVybiBTVEFURV9SRUNPR05JWkVEO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBTVEFURV9GQUlMRUQ7XG4gICAgfSxcblxuICAgIHJlc2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVyKTtcbiAgICB9LFxuXG4gICAgZW1pdDogZnVuY3Rpb24oaW5wdXQpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgIT09IFNUQVRFX1JFQ09HTklaRUQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpbnB1dCAmJiAoaW5wdXQuZXZlbnRUeXBlICYgSU5QVVRfRU5EKSkge1xuICAgICAgICAgICAgdGhpcy5tYW5hZ2VyLmVtaXQodGhpcy5vcHRpb25zLmV2ZW50ICsgJ3VwJywgaW5wdXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faW5wdXQudGltZVN0YW1wID0gbm93KCk7XG4gICAgICAgICAgICB0aGlzLm1hbmFnZXIuZW1pdCh0aGlzLm9wdGlvbnMuZXZlbnQsIHRoaXMuX2lucHV0KTtcbiAgICAgICAgfVxuICAgIH1cbn0pO1xuXG4vKipcbiAqIFJvdGF0ZVxuICogUmVjb2duaXplZCB3aGVuIHR3byBvciBtb3JlIHBvaW50ZXIgYXJlIG1vdmluZyBpbiBhIGNpcmN1bGFyIG1vdGlvbi5cbiAqIEBjb25zdHJ1Y3RvclxuICogQGV4dGVuZHMgQXR0clJlY29nbml6ZXJcbiAqL1xuZnVuY3Rpb24gUm90YXRlUmVjb2duaXplcigpIHtcbiAgICBBdHRyUmVjb2duaXplci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuXG5pbmhlcml0KFJvdGF0ZVJlY29nbml6ZXIsIEF0dHJSZWNvZ25pemVyLCB7XG4gICAgLyoqXG4gICAgICogQG5hbWVzcGFjZVxuICAgICAqIEBtZW1iZXJvZiBSb3RhdGVSZWNvZ25pemVyXG4gICAgICovXG4gICAgZGVmYXVsdHM6IHtcbiAgICAgICAgZXZlbnQ6ICdyb3RhdGUnLFxuICAgICAgICB0aHJlc2hvbGQ6IDAsXG4gICAgICAgIHBvaW50ZXJzOiAyXG4gICAgfSxcblxuICAgIGdldFRvdWNoQWN0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFtUT1VDSF9BQ1RJT05fTk9ORV07XG4gICAgfSxcblxuICAgIGF0dHJUZXN0OiBmdW5jdGlvbihpbnB1dCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3VwZXIuYXR0clRlc3QuY2FsbCh0aGlzLCBpbnB1dCkgJiZcbiAgICAgICAgICAgIChNYXRoLmFicyhpbnB1dC5yb3RhdGlvbikgPiB0aGlzLm9wdGlvbnMudGhyZXNob2xkIHx8IHRoaXMuc3RhdGUgJiBTVEFURV9CRUdBTik7XG4gICAgfVxufSk7XG5cbi8qKlxuICogU3dpcGVcbiAqIFJlY29nbml6ZWQgd2hlbiB0aGUgcG9pbnRlciBpcyBtb3ZpbmcgZmFzdCAodmVsb2NpdHkpLCB3aXRoIGVub3VnaCBkaXN0YW5jZSBpbiB0aGUgYWxsb3dlZCBkaXJlY3Rpb24uXG4gKiBAY29uc3RydWN0b3JcbiAqIEBleHRlbmRzIEF0dHJSZWNvZ25pemVyXG4gKi9cbmZ1bmN0aW9uIFN3aXBlUmVjb2duaXplcigpIHtcbiAgICBBdHRyUmVjb2duaXplci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuXG5pbmhlcml0KFN3aXBlUmVjb2duaXplciwgQXR0clJlY29nbml6ZXIsIHtcbiAgICAvKipcbiAgICAgKiBAbmFtZXNwYWNlXG4gICAgICogQG1lbWJlcm9mIFN3aXBlUmVjb2duaXplclxuICAgICAqL1xuICAgIGRlZmF1bHRzOiB7XG4gICAgICAgIGV2ZW50OiAnc3dpcGUnLFxuICAgICAgICB0aHJlc2hvbGQ6IDEwLFxuICAgICAgICB2ZWxvY2l0eTogMC4zLFxuICAgICAgICBkaXJlY3Rpb246IERJUkVDVElPTl9IT1JJWk9OVEFMIHwgRElSRUNUSU9OX1ZFUlRJQ0FMLFxuICAgICAgICBwb2ludGVyczogMVxuICAgIH0sXG5cbiAgICBnZXRUb3VjaEFjdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBQYW5SZWNvZ25pemVyLnByb3RvdHlwZS5nZXRUb3VjaEFjdGlvbi5jYWxsKHRoaXMpO1xuICAgIH0sXG5cbiAgICBhdHRyVGVzdDogZnVuY3Rpb24oaW5wdXQpIHtcbiAgICAgICAgdmFyIGRpcmVjdGlvbiA9IHRoaXMub3B0aW9ucy5kaXJlY3Rpb247XG4gICAgICAgIHZhciB2ZWxvY2l0eTtcblxuICAgICAgICBpZiAoZGlyZWN0aW9uICYgKERJUkVDVElPTl9IT1JJWk9OVEFMIHwgRElSRUNUSU9OX1ZFUlRJQ0FMKSkge1xuICAgICAgICAgICAgdmVsb2NpdHkgPSBpbnB1dC5vdmVyYWxsVmVsb2NpdHk7XG4gICAgICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uICYgRElSRUNUSU9OX0hPUklaT05UQUwpIHtcbiAgICAgICAgICAgIHZlbG9jaXR5ID0gaW5wdXQub3ZlcmFsbFZlbG9jaXR5WDtcbiAgICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gJiBESVJFQ1RJT05fVkVSVElDQUwpIHtcbiAgICAgICAgICAgIHZlbG9jaXR5ID0gaW5wdXQub3ZlcmFsbFZlbG9jaXR5WTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9zdXBlci5hdHRyVGVzdC5jYWxsKHRoaXMsIGlucHV0KSAmJlxuICAgICAgICAgICAgZGlyZWN0aW9uICYgaW5wdXQub2Zmc2V0RGlyZWN0aW9uICYmXG4gICAgICAgICAgICBpbnB1dC5kaXN0YW5jZSA+IHRoaXMub3B0aW9ucy50aHJlc2hvbGQgJiZcbiAgICAgICAgICAgIGlucHV0Lm1heFBvaW50ZXJzID09IHRoaXMub3B0aW9ucy5wb2ludGVycyAmJlxuICAgICAgICAgICAgYWJzKHZlbG9jaXR5KSA+IHRoaXMub3B0aW9ucy52ZWxvY2l0eSAmJiBpbnB1dC5ldmVudFR5cGUgJiBJTlBVVF9FTkQ7XG4gICAgfSxcblxuICAgIGVtaXQ6IGZ1bmN0aW9uKGlucHV0KSB7XG4gICAgICAgIHZhciBkaXJlY3Rpb24gPSBkaXJlY3Rpb25TdHIoaW5wdXQub2Zmc2V0RGlyZWN0aW9uKTtcbiAgICAgICAgaWYgKGRpcmVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5tYW5hZ2VyLmVtaXQodGhpcy5vcHRpb25zLmV2ZW50ICsgZGlyZWN0aW9uLCBpbnB1dCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1hbmFnZXIuZW1pdCh0aGlzLm9wdGlvbnMuZXZlbnQsIGlucHV0KTtcbiAgICB9XG59KTtcblxuLyoqXG4gKiBBIHRhcCBpcyBlY29nbml6ZWQgd2hlbiB0aGUgcG9pbnRlciBpcyBkb2luZyBhIHNtYWxsIHRhcC9jbGljay4gTXVsdGlwbGUgdGFwcyBhcmUgcmVjb2duaXplZCBpZiB0aGV5IG9jY3VyXG4gKiBiZXR3ZWVuIHRoZSBnaXZlbiBpbnRlcnZhbCBhbmQgcG9zaXRpb24uIFRoZSBkZWxheSBvcHRpb24gY2FuIGJlIHVzZWQgdG8gcmVjb2duaXplIG11bHRpLXRhcHMgd2l0aG91dCBmaXJpbmdcbiAqIGEgc2luZ2xlIHRhcC5cbiAqXG4gKiBUaGUgZXZlbnREYXRhIGZyb20gdGhlIGVtaXR0ZWQgZXZlbnQgY29udGFpbnMgdGhlIHByb3BlcnR5IGB0YXBDb3VudGAsIHdoaWNoIGNvbnRhaW5zIHRoZSBhbW91bnQgb2ZcbiAqIG11bHRpLXRhcHMgYmVpbmcgcmVjb2duaXplZC5cbiAqIEBjb25zdHJ1Y3RvclxuICogQGV4dGVuZHMgUmVjb2duaXplclxuICovXG5mdW5jdGlvbiBUYXBSZWNvZ25pemVyKCkge1xuICAgIFJlY29nbml6ZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICAgIC8vIHByZXZpb3VzIHRpbWUgYW5kIGNlbnRlcixcbiAgICAvLyB1c2VkIGZvciB0YXAgY291bnRpbmdcbiAgICB0aGlzLnBUaW1lID0gZmFsc2U7XG4gICAgdGhpcy5wQ2VudGVyID0gZmFsc2U7XG5cbiAgICB0aGlzLl90aW1lciA9IG51bGw7XG4gICAgdGhpcy5faW5wdXQgPSBudWxsO1xuICAgIHRoaXMuY291bnQgPSAwO1xufVxuXG5pbmhlcml0KFRhcFJlY29nbml6ZXIsIFJlY29nbml6ZXIsIHtcbiAgICAvKipcbiAgICAgKiBAbmFtZXNwYWNlXG4gICAgICogQG1lbWJlcm9mIFBpbmNoUmVjb2duaXplclxuICAgICAqL1xuICAgIGRlZmF1bHRzOiB7XG4gICAgICAgIGV2ZW50OiAndGFwJyxcbiAgICAgICAgcG9pbnRlcnM6IDEsXG4gICAgICAgIHRhcHM6IDEsXG4gICAgICAgIGludGVydmFsOiAzMDAsIC8vIG1heCB0aW1lIGJldHdlZW4gdGhlIG11bHRpLXRhcCB0YXBzXG4gICAgICAgIHRpbWU6IDI1MCwgLy8gbWF4IHRpbWUgb2YgdGhlIHBvaW50ZXIgdG8gYmUgZG93biAobGlrZSBmaW5nZXIgb24gdGhlIHNjcmVlbilcbiAgICAgICAgdGhyZXNob2xkOiA5LCAvLyBhIG1pbmltYWwgbW92ZW1lbnQgaXMgb2ssIGJ1dCBrZWVwIGl0IGxvd1xuICAgICAgICBwb3NUaHJlc2hvbGQ6IDEwIC8vIGEgbXVsdGktdGFwIGNhbiBiZSBhIGJpdCBvZmYgdGhlIGluaXRpYWwgcG9zaXRpb25cbiAgICB9LFxuXG4gICAgZ2V0VG91Y2hBY3Rpb246IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gW1RPVUNIX0FDVElPTl9NQU5JUFVMQVRJT05dO1xuICAgIH0sXG5cbiAgICBwcm9jZXNzOiBmdW5jdGlvbihpbnB1dCkge1xuICAgICAgICB2YXIgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcblxuICAgICAgICB2YXIgdmFsaWRQb2ludGVycyA9IGlucHV0LnBvaW50ZXJzLmxlbmd0aCA9PT0gb3B0aW9ucy5wb2ludGVycztcbiAgICAgICAgdmFyIHZhbGlkTW92ZW1lbnQgPSBpbnB1dC5kaXN0YW5jZSA8IG9wdGlvbnMudGhyZXNob2xkO1xuICAgICAgICB2YXIgdmFsaWRUb3VjaFRpbWUgPSBpbnB1dC5kZWx0YVRpbWUgPCBvcHRpb25zLnRpbWU7XG5cbiAgICAgICAgdGhpcy5yZXNldCgpO1xuXG4gICAgICAgIGlmICgoaW5wdXQuZXZlbnRUeXBlICYgSU5QVVRfU1RBUlQpICYmICh0aGlzLmNvdW50ID09PSAwKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmFpbFRpbWVvdXQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHdlIG9ubHkgYWxsb3cgbGl0dGxlIG1vdmVtZW50XG4gICAgICAgIC8vIGFuZCB3ZSd2ZSByZWFjaGVkIGFuIGVuZCBldmVudCwgc28gYSB0YXAgaXMgcG9zc2libGVcbiAgICAgICAgaWYgKHZhbGlkTW92ZW1lbnQgJiYgdmFsaWRUb3VjaFRpbWUgJiYgdmFsaWRQb2ludGVycykge1xuICAgICAgICAgICAgaWYgKGlucHV0LmV2ZW50VHlwZSAhPSBJTlBVVF9FTkQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mYWlsVGltZW91dCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgdmFsaWRJbnRlcnZhbCA9IHRoaXMucFRpbWUgPyAoaW5wdXQudGltZVN0YW1wIC0gdGhpcy5wVGltZSA8IG9wdGlvbnMuaW50ZXJ2YWwpIDogdHJ1ZTtcbiAgICAgICAgICAgIHZhciB2YWxpZE11bHRpVGFwID0gIXRoaXMucENlbnRlciB8fCBnZXREaXN0YW5jZSh0aGlzLnBDZW50ZXIsIGlucHV0LmNlbnRlcikgPCBvcHRpb25zLnBvc1RocmVzaG9sZDtcblxuICAgICAgICAgICAgdGhpcy5wVGltZSA9IGlucHV0LnRpbWVTdGFtcDtcbiAgICAgICAgICAgIHRoaXMucENlbnRlciA9IGlucHV0LmNlbnRlcjtcblxuICAgICAgICAgICAgaWYgKCF2YWxpZE11bHRpVGFwIHx8ICF2YWxpZEludGVydmFsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb3VudCA9IDE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY291bnQgKz0gMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5faW5wdXQgPSBpbnB1dDtcblxuICAgICAgICAgICAgLy8gaWYgdGFwIGNvdW50IG1hdGNoZXMgd2UgaGF2ZSByZWNvZ25pemVkIGl0LFxuICAgICAgICAgICAgLy8gZWxzZSBpdCBoYXMgYmVnYW4gcmVjb2duaXppbmcuLi5cbiAgICAgICAgICAgIHZhciB0YXBDb3VudCA9IHRoaXMuY291bnQgJSBvcHRpb25zLnRhcHM7XG4gICAgICAgICAgICBpZiAodGFwQ291bnQgPT09IDApIHtcbiAgICAgICAgICAgICAgICAvLyBubyBmYWlsaW5nIHJlcXVpcmVtZW50cywgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgdGFwIGV2ZW50XG4gICAgICAgICAgICAgICAgLy8gb3Igd2FpdCBhcyBsb25nIGFzIHRoZSBtdWx0aXRhcCBpbnRlcnZhbCB0byB0cmlnZ2VyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhhc1JlcXVpcmVGYWlsdXJlcygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBTVEFURV9SRUNPR05JWkVEO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RpbWVyID0gc2V0VGltZW91dENvbnRleHQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU1RBVEVfUkVDT0dOSVpFRDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJ5RW1pdCgpO1xuICAgICAgICAgICAgICAgICAgICB9LCBvcHRpb25zLmludGVydmFsLCB0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNUQVRFX0JFR0FOO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gU1RBVEVfRkFJTEVEO1xuICAgIH0sXG5cbiAgICBmYWlsVGltZW91dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuX3RpbWVyID0gc2V0VGltZW91dENvbnRleHQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU1RBVEVfRkFJTEVEO1xuICAgICAgICB9LCB0aGlzLm9wdGlvbnMuaW50ZXJ2YWwsIHRoaXMpO1xuICAgICAgICByZXR1cm4gU1RBVEVfRkFJTEVEO1xuICAgIH0sXG5cbiAgICByZXNldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl90aW1lcik7XG4gICAgfSxcblxuICAgIGVtaXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5zdGF0ZSA9PSBTVEFURV9SRUNPR05JWkVEKSB7XG4gICAgICAgICAgICB0aGlzLl9pbnB1dC50YXBDb3VudCA9IHRoaXMuY291bnQ7XG4gICAgICAgICAgICB0aGlzLm1hbmFnZXIuZW1pdCh0aGlzLm9wdGlvbnMuZXZlbnQsIHRoaXMuX2lucHV0KTtcbiAgICAgICAgfVxuICAgIH1cbn0pO1xuXG4vKipcbiAqIFNpbXBsZSB3YXkgdG8gY3JlYXRlIGEgbWFuYWdlciB3aXRoIGEgZGVmYXVsdCBzZXQgb2YgcmVjb2duaXplcnMuXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50XG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnNdXG4gKiBAY29uc3RydWN0b3JcbiAqL1xuZnVuY3Rpb24gSGFtbWVyKGVsZW1lbnQsIG9wdGlvbnMpIHtcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICBvcHRpb25zLnJlY29nbml6ZXJzID0gaWZVbmRlZmluZWQob3B0aW9ucy5yZWNvZ25pemVycywgSGFtbWVyLmRlZmF1bHRzLnByZXNldCk7XG4gICAgcmV0dXJuIG5ldyBNYW5hZ2VyKGVsZW1lbnQsIG9wdGlvbnMpO1xufVxuXG4vKipcbiAqIEBjb25zdCB7c3RyaW5nfVxuICovXG5IYW1tZXIuVkVSU0lPTiA9ICcyLjAuNyc7XG5cbi8qKlxuICogZGVmYXVsdCBzZXR0aW5nc1xuICogQG5hbWVzcGFjZVxuICovXG5IYW1tZXIuZGVmYXVsdHMgPSB7XG4gICAgLyoqXG4gICAgICogc2V0IGlmIERPTSBldmVudHMgYXJlIGJlaW5nIHRyaWdnZXJlZC5cbiAgICAgKiBCdXQgdGhpcyBpcyBzbG93ZXIgYW5kIHVudXNlZCBieSBzaW1wbGUgaW1wbGVtZW50YXRpb25zLCBzbyBkaXNhYmxlZCBieSBkZWZhdWx0LlxuICAgICAqIEB0eXBlIHtCb29sZWFufVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgZG9tRXZlbnRzOiBmYWxzZSxcblxuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSBmb3IgdGhlIHRvdWNoQWN0aW9uIHByb3BlcnR5L2ZhbGxiYWNrLlxuICAgICAqIFdoZW4gc2V0IHRvIGBjb21wdXRlYCBpdCB3aWxsIG1hZ2ljYWxseSBzZXQgdGhlIGNvcnJlY3QgdmFsdWUgYmFzZWQgb24gdGhlIGFkZGVkIHJlY29nbml6ZXJzLlxuICAgICAqIEB0eXBlIHtTdHJpbmd9XG4gICAgICogQGRlZmF1bHQgY29tcHV0ZVxuICAgICAqL1xuICAgIHRvdWNoQWN0aW9uOiBUT1VDSF9BQ1RJT05fQ09NUFVURSxcblxuICAgIC8qKlxuICAgICAqIEB0eXBlIHtCb29sZWFufVxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBlbmFibGU6IHRydWUsXG5cbiAgICAvKipcbiAgICAgKiBFWFBFUklNRU5UQUwgRkVBVFVSRSAtLSBjYW4gYmUgcmVtb3ZlZC9jaGFuZ2VkXG4gICAgICogQ2hhbmdlIHRoZSBwYXJlbnQgaW5wdXQgdGFyZ2V0IGVsZW1lbnQuXG4gICAgICogSWYgTnVsbCwgdGhlbiBpdCBpcyBiZWluZyBzZXQgdGhlIHRvIG1haW4gZWxlbWVudC5cbiAgICAgKiBAdHlwZSB7TnVsbHxFdmVudFRhcmdldH1cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgaW5wdXRUYXJnZXQ6IG51bGwsXG5cbiAgICAvKipcbiAgICAgKiBmb3JjZSBhbiBpbnB1dCBjbGFzc1xuICAgICAqIEB0eXBlIHtOdWxsfEZ1bmN0aW9ufVxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBpbnB1dENsYXNzOiBudWxsLFxuXG4gICAgLyoqXG4gICAgICogRGVmYXVsdCByZWNvZ25pemVyIHNldHVwIHdoZW4gY2FsbGluZyBgSGFtbWVyKClgXG4gICAgICogV2hlbiBjcmVhdGluZyBhIG5ldyBNYW5hZ2VyIHRoZXNlIHdpbGwgYmUgc2tpcHBlZC5cbiAgICAgKiBAdHlwZSB7QXJyYXl9XG4gICAgICovXG4gICAgcHJlc2V0OiBbXG4gICAgICAgIC8vIFJlY29nbml6ZXJDbGFzcywgb3B0aW9ucywgW3JlY29nbml6ZVdpdGgsIC4uLl0sIFtyZXF1aXJlRmFpbHVyZSwgLi4uXVxuICAgICAgICBbUm90YXRlUmVjb2duaXplciwge2VuYWJsZTogZmFsc2V9XSxcbiAgICAgICAgW1BpbmNoUmVjb2duaXplciwge2VuYWJsZTogZmFsc2V9LCBbJ3JvdGF0ZSddXSxcbiAgICAgICAgW1N3aXBlUmVjb2duaXplciwge2RpcmVjdGlvbjogRElSRUNUSU9OX0hPUklaT05UQUx9XSxcbiAgICAgICAgW1BhblJlY29nbml6ZXIsIHtkaXJlY3Rpb246IERJUkVDVElPTl9IT1JJWk9OVEFMfSwgWydzd2lwZSddXSxcbiAgICAgICAgW1RhcFJlY29nbml6ZXJdLFxuICAgICAgICBbVGFwUmVjb2duaXplciwge2V2ZW50OiAnZG91YmxldGFwJywgdGFwczogMn0sIFsndGFwJ11dLFxuICAgICAgICBbUHJlc3NSZWNvZ25pemVyXVxuICAgIF0sXG5cbiAgICAvKipcbiAgICAgKiBTb21lIENTUyBwcm9wZXJ0aWVzIGNhbiBiZSB1c2VkIHRvIGltcHJvdmUgdGhlIHdvcmtpbmcgb2YgSGFtbWVyLlxuICAgICAqIEFkZCB0aGVtIHRvIHRoaXMgbWV0aG9kIGFuZCB0aGV5IHdpbGwgYmUgc2V0IHdoZW4gY3JlYXRpbmcgYSBuZXcgTWFuYWdlci5cbiAgICAgKiBAbmFtZXNwYWNlXG4gICAgICovXG4gICAgY3NzUHJvcHM6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERpc2FibGVzIHRleHQgc2VsZWN0aW9uIHRvIGltcHJvdmUgdGhlIGRyYWdnaW5nIGdlc3R1cmUuIE1haW5seSBmb3IgZGVza3RvcCBicm93c2Vycy5cbiAgICAgICAgICogQHR5cGUge1N0cmluZ31cbiAgICAgICAgICogQGRlZmF1bHQgJ25vbmUnXG4gICAgICAgICAqL1xuICAgICAgICB1c2VyU2VsZWN0OiAnbm9uZScsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIERpc2FibGUgdGhlIFdpbmRvd3MgUGhvbmUgZ3JpcHBlcnMgd2hlbiBwcmVzc2luZyBhbiBlbGVtZW50LlxuICAgICAgICAgKiBAdHlwZSB7U3RyaW5nfVxuICAgICAgICAgKiBAZGVmYXVsdCAnbm9uZSdcbiAgICAgICAgICovXG4gICAgICAgIHRvdWNoU2VsZWN0OiAnbm9uZScsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIERpc2FibGVzIHRoZSBkZWZhdWx0IGNhbGxvdXQgc2hvd24gd2hlbiB5b3UgdG91Y2ggYW5kIGhvbGQgYSB0b3VjaCB0YXJnZXQuXG4gICAgICAgICAqIE9uIGlPUywgd2hlbiB5b3UgdG91Y2ggYW5kIGhvbGQgYSB0b3VjaCB0YXJnZXQgc3VjaCBhcyBhIGxpbmssIFNhZmFyaSBkaXNwbGF5c1xuICAgICAgICAgKiBhIGNhbGxvdXQgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbGluay4gVGhpcyBwcm9wZXJ0eSBhbGxvd3MgeW91IHRvIGRpc2FibGUgdGhhdCBjYWxsb3V0LlxuICAgICAgICAgKiBAdHlwZSB7U3RyaW5nfVxuICAgICAgICAgKiBAZGVmYXVsdCAnbm9uZSdcbiAgICAgICAgICovXG4gICAgICAgIHRvdWNoQ2FsbG91dDogJ25vbmUnLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTcGVjaWZpZXMgd2hldGhlciB6b29taW5nIGlzIGVuYWJsZWQuIFVzZWQgYnkgSUUxMD5cbiAgICAgICAgICogQHR5cGUge1N0cmluZ31cbiAgICAgICAgICogQGRlZmF1bHQgJ25vbmUnXG4gICAgICAgICAqL1xuICAgICAgICBjb250ZW50Wm9vbWluZzogJ25vbmUnLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTcGVjaWZpZXMgdGhhdCBhbiBlbnRpcmUgZWxlbWVudCBzaG91bGQgYmUgZHJhZ2dhYmxlIGluc3RlYWQgb2YgaXRzIGNvbnRlbnRzLiBNYWlubHkgZm9yIGRlc2t0b3AgYnJvd3NlcnMuXG4gICAgICAgICAqIEB0eXBlIHtTdHJpbmd9XG4gICAgICAgICAqIEBkZWZhdWx0ICdub25lJ1xuICAgICAgICAgKi9cbiAgICAgICAgdXNlckRyYWc6ICdub25lJyxcblxuICAgICAgICAvKipcbiAgICAgICAgICogT3ZlcnJpZGVzIHRoZSBoaWdobGlnaHQgY29sb3Igc2hvd24gd2hlbiB0aGUgdXNlciB0YXBzIGEgbGluayBvciBhIEphdmFTY3JpcHRcbiAgICAgICAgICogY2xpY2thYmxlIGVsZW1lbnQgaW4gaU9TLiBUaGlzIHByb3BlcnR5IG9iZXlzIHRoZSBhbHBoYSB2YWx1ZSwgaWYgc3BlY2lmaWVkLlxuICAgICAgICAgKiBAdHlwZSB7U3RyaW5nfVxuICAgICAgICAgKiBAZGVmYXVsdCAncmdiYSgwLDAsMCwwKSdcbiAgICAgICAgICovXG4gICAgICAgIHRhcEhpZ2hsaWdodENvbG9yOiAncmdiYSgwLDAsMCwwKSdcbiAgICB9XG59O1xuXG52YXIgU1RPUCA9IDE7XG52YXIgRk9SQ0VEX1NUT1AgPSAyO1xuXG4vKipcbiAqIE1hbmFnZXJcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnRcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc11cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5mdW5jdGlvbiBNYW5hZ2VyKGVsZW1lbnQsIG9wdGlvbnMpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBhc3NpZ24oe30sIEhhbW1lci5kZWZhdWx0cywgb3B0aW9ucyB8fCB7fSk7XG5cbiAgICB0aGlzLm9wdGlvbnMuaW5wdXRUYXJnZXQgPSB0aGlzLm9wdGlvbnMuaW5wdXRUYXJnZXQgfHwgZWxlbWVudDtcblxuICAgIHRoaXMuaGFuZGxlcnMgPSB7fTtcbiAgICB0aGlzLnNlc3Npb24gPSB7fTtcbiAgICB0aGlzLnJlY29nbml6ZXJzID0gW107XG4gICAgdGhpcy5vbGRDc3NQcm9wcyA9IHt9O1xuXG4gICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDtcbiAgICB0aGlzLmlucHV0ID0gY3JlYXRlSW5wdXRJbnN0YW5jZSh0aGlzKTtcbiAgICB0aGlzLnRvdWNoQWN0aW9uID0gbmV3IFRvdWNoQWN0aW9uKHRoaXMsIHRoaXMub3B0aW9ucy50b3VjaEFjdGlvbik7XG5cbiAgICB0b2dnbGVDc3NQcm9wcyh0aGlzLCB0cnVlKTtcblxuICAgIGVhY2godGhpcy5vcHRpb25zLnJlY29nbml6ZXJzLCBmdW5jdGlvbihpdGVtKSB7XG4gICAgICAgIHZhciByZWNvZ25pemVyID0gdGhpcy5hZGQobmV3IChpdGVtWzBdKShpdGVtWzFdKSk7XG4gICAgICAgIGl0ZW1bMl0gJiYgcmVjb2duaXplci5yZWNvZ25pemVXaXRoKGl0ZW1bMl0pO1xuICAgICAgICBpdGVtWzNdICYmIHJlY29nbml6ZXIucmVxdWlyZUZhaWx1cmUoaXRlbVszXSk7XG4gICAgfSwgdGhpcyk7XG59XG5cbk1hbmFnZXIucHJvdG90eXBlID0ge1xuICAgIC8qKlxuICAgICAqIHNldCBvcHRpb25zXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICAgKiBAcmV0dXJucyB7TWFuYWdlcn1cbiAgICAgKi9cbiAgICBzZXQ6IGZ1bmN0aW9uKG9wdGlvbnMpIHtcbiAgICAgICAgYXNzaWduKHRoaXMub3B0aW9ucywgb3B0aW9ucyk7XG5cbiAgICAgICAgLy8gT3B0aW9ucyB0aGF0IG5lZWQgYSBsaXR0bGUgbW9yZSBzZXR1cFxuICAgICAgICBpZiAob3B0aW9ucy50b3VjaEFjdGlvbikge1xuICAgICAgICAgICAgdGhpcy50b3VjaEFjdGlvbi51cGRhdGUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5pbnB1dFRhcmdldCkge1xuICAgICAgICAgICAgLy8gQ2xlYW4gdXAgZXhpc3RpbmcgZXZlbnQgbGlzdGVuZXJzIGFuZCByZWluaXRpYWxpemVcbiAgICAgICAgICAgIHRoaXMuaW5wdXQuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5pbnB1dC50YXJnZXQgPSBvcHRpb25zLmlucHV0VGFyZ2V0O1xuICAgICAgICAgICAgdGhpcy5pbnB1dC5pbml0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHN0b3AgcmVjb2duaXppbmcgZm9yIHRoaXMgc2Vzc2lvbi5cbiAgICAgKiBUaGlzIHNlc3Npb24gd2lsbCBiZSBkaXNjYXJkZWQsIHdoZW4gYSBuZXcgW2lucHV0XXN0YXJ0IGV2ZW50IGlzIGZpcmVkLlxuICAgICAqIFdoZW4gZm9yY2VkLCB0aGUgcmVjb2duaXplciBjeWNsZSBpcyBzdG9wcGVkIGltbWVkaWF0ZWx5LlxuICAgICAqIEBwYXJhbSB7Qm9vbGVhbn0gW2ZvcmNlXVxuICAgICAqL1xuICAgIHN0b3A6IGZ1bmN0aW9uKGZvcmNlKSB7XG4gICAgICAgIHRoaXMuc2Vzc2lvbi5zdG9wcGVkID0gZm9yY2UgPyBGT1JDRURfU1RPUCA6IFNUT1A7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHJ1biB0aGUgcmVjb2duaXplcnMhXG4gICAgICogY2FsbGVkIGJ5IHRoZSBpbnB1dEhhbmRsZXIgZnVuY3Rpb24gb24gZXZlcnkgbW92ZW1lbnQgb2YgdGhlIHBvaW50ZXJzICh0b3VjaGVzKVxuICAgICAqIGl0IHdhbGtzIHRocm91Z2ggYWxsIHRoZSByZWNvZ25pemVycyBhbmQgdHJpZXMgdG8gZGV0ZWN0IHRoZSBnZXN0dXJlIHRoYXQgaXMgYmVpbmcgbWFkZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBpbnB1dERhdGFcbiAgICAgKi9cbiAgICByZWNvZ25pemU6IGZ1bmN0aW9uKGlucHV0RGF0YSkge1xuICAgICAgICB2YXIgc2Vzc2lvbiA9IHRoaXMuc2Vzc2lvbjtcbiAgICAgICAgaWYgKHNlc3Npb24uc3RvcHBlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcnVuIHRoZSB0b3VjaC1hY3Rpb24gcG9seWZpbGxcbiAgICAgICAgdGhpcy50b3VjaEFjdGlvbi5wcmV2ZW50RGVmYXVsdHMoaW5wdXREYXRhKTtcblxuICAgICAgICB2YXIgcmVjb2duaXplcjtcbiAgICAgICAgdmFyIHJlY29nbml6ZXJzID0gdGhpcy5yZWNvZ25pemVycztcblxuICAgICAgICAvLyB0aGlzIGhvbGRzIHRoZSByZWNvZ25pemVyIHRoYXQgaXMgYmVpbmcgcmVjb2duaXplZC5cbiAgICAgICAgLy8gc28gdGhlIHJlY29nbml6ZXIncyBzdGF0ZSBuZWVkcyB0byBiZSBCRUdBTiwgQ0hBTkdFRCwgRU5ERUQgb3IgUkVDT0dOSVpFRFxuICAgICAgICAvLyBpZiBubyByZWNvZ25pemVyIGlzIGRldGVjdGluZyBhIHRoaW5nLCBpdCBpcyBzZXQgdG8gYG51bGxgXG4gICAgICAgIHZhciBjdXJSZWNvZ25pemVyID0gc2Vzc2lvbi5jdXJSZWNvZ25pemVyO1xuXG4gICAgICAgIC8vIHJlc2V0IHdoZW4gdGhlIGxhc3QgcmVjb2duaXplciBpcyByZWNvZ25pemVkXG4gICAgICAgIC8vIG9yIHdoZW4gd2UncmUgaW4gYSBuZXcgc2Vzc2lvblxuICAgICAgICBpZiAoIWN1clJlY29nbml6ZXIgfHwgKGN1clJlY29nbml6ZXIgJiYgY3VyUmVjb2duaXplci5zdGF0ZSAmIFNUQVRFX1JFQ09HTklaRUQpKSB7XG4gICAgICAgICAgICBjdXJSZWNvZ25pemVyID0gc2Vzc2lvbi5jdXJSZWNvZ25pemVyID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpID0gMDtcbiAgICAgICAgd2hpbGUgKGkgPCByZWNvZ25pemVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJlY29nbml6ZXIgPSByZWNvZ25pemVyc1tpXTtcblxuICAgICAgICAgICAgLy8gZmluZCBvdXQgaWYgd2UgYXJlIGFsbG93ZWQgdHJ5IHRvIHJlY29nbml6ZSB0aGUgaW5wdXQgZm9yIHRoaXMgb25lLlxuICAgICAgICAgICAgLy8gMS4gICBhbGxvdyBpZiB0aGUgc2Vzc2lvbiBpcyBOT1QgZm9yY2VkIHN0b3BwZWQgKHNlZSB0aGUgLnN0b3AoKSBtZXRob2QpXG4gICAgICAgICAgICAvLyAyLiAgIGFsbG93IGlmIHdlIHN0aWxsIGhhdmVuJ3QgcmVjb2duaXplZCBhIGdlc3R1cmUgaW4gdGhpcyBzZXNzaW9uLCBvciB0aGUgdGhpcyByZWNvZ25pemVyIGlzIHRoZSBvbmVcbiAgICAgICAgICAgIC8vICAgICAgdGhhdCBpcyBiZWluZyByZWNvZ25pemVkLlxuICAgICAgICAgICAgLy8gMy4gICBhbGxvdyBpZiB0aGUgcmVjb2duaXplciBpcyBhbGxvd2VkIHRvIHJ1biBzaW11bHRhbmVvdXMgd2l0aCB0aGUgY3VycmVudCByZWNvZ25pemVkIHJlY29nbml6ZXIuXG4gICAgICAgICAgICAvLyAgICAgIHRoaXMgY2FuIGJlIHNldHVwIHdpdGggdGhlIGByZWNvZ25pemVXaXRoKClgIG1ldGhvZCBvbiB0aGUgcmVjb2duaXplci5cbiAgICAgICAgICAgIGlmIChzZXNzaW9uLnN0b3BwZWQgIT09IEZPUkNFRF9TVE9QICYmICggLy8gMVxuICAgICAgICAgICAgICAgICAgICAhY3VyUmVjb2duaXplciB8fCByZWNvZ25pemVyID09IGN1clJlY29nbml6ZXIgfHwgLy8gMlxuICAgICAgICAgICAgICAgICAgICByZWNvZ25pemVyLmNhblJlY29nbml6ZVdpdGgoY3VyUmVjb2duaXplcikpKSB7IC8vIDNcbiAgICAgICAgICAgICAgICByZWNvZ25pemVyLnJlY29nbml6ZShpbnB1dERhdGEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZWNvZ25pemVyLnJlc2V0KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGlmIHRoZSByZWNvZ25pemVyIGhhcyBiZWVuIHJlY29nbml6aW5nIHRoZSBpbnB1dCBhcyBhIHZhbGlkIGdlc3R1cmUsIHdlIHdhbnQgdG8gc3RvcmUgdGhpcyBvbmUgYXMgdGhlXG4gICAgICAgICAgICAvLyBjdXJyZW50IGFjdGl2ZSByZWNvZ25pemVyLiBidXQgb25seSBpZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgYW4gYWN0aXZlIHJlY29nbml6ZXJcbiAgICAgICAgICAgIGlmICghY3VyUmVjb2duaXplciAmJiByZWNvZ25pemVyLnN0YXRlICYgKFNUQVRFX0JFR0FOIHwgU1RBVEVfQ0hBTkdFRCB8IFNUQVRFX0VOREVEKSkge1xuICAgICAgICAgICAgICAgIGN1clJlY29nbml6ZXIgPSBzZXNzaW9uLmN1clJlY29nbml6ZXIgPSByZWNvZ25pemVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGdldCBhIHJlY29nbml6ZXIgYnkgaXRzIGV2ZW50IG5hbWUuXG4gICAgICogQHBhcmFtIHtSZWNvZ25pemVyfFN0cmluZ30gcmVjb2duaXplclxuICAgICAqIEByZXR1cm5zIHtSZWNvZ25pemVyfE51bGx9XG4gICAgICovXG4gICAgZ2V0OiBmdW5jdGlvbihyZWNvZ25pemVyKSB7XG4gICAgICAgIGlmIChyZWNvZ25pemVyIGluc3RhbmNlb2YgUmVjb2duaXplcikge1xuICAgICAgICAgICAgcmV0dXJuIHJlY29nbml6ZXI7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcmVjb2duaXplcnMgPSB0aGlzLnJlY29nbml6ZXJzO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29nbml6ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAocmVjb2duaXplcnNbaV0ub3B0aW9ucy5ldmVudCA9PSByZWNvZ25pemVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlY29nbml6ZXJzW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBhZGQgYSByZWNvZ25pemVyIHRvIHRoZSBtYW5hZ2VyXG4gICAgICogZXhpc3RpbmcgcmVjb2duaXplcnMgd2l0aCB0aGUgc2FtZSBldmVudCBuYW1lIHdpbGwgYmUgcmVtb3ZlZFxuICAgICAqIEBwYXJhbSB7UmVjb2duaXplcn0gcmVjb2duaXplclxuICAgICAqIEByZXR1cm5zIHtSZWNvZ25pemVyfE1hbmFnZXJ9XG4gICAgICovXG4gICAgYWRkOiBmdW5jdGlvbihyZWNvZ25pemVyKSB7XG4gICAgICAgIGlmIChpbnZva2VBcnJheUFyZyhyZWNvZ25pemVyLCAnYWRkJywgdGhpcykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmVtb3ZlIGV4aXN0aW5nXG4gICAgICAgIHZhciBleGlzdGluZyA9IHRoaXMuZ2V0KHJlY29nbml6ZXIub3B0aW9ucy5ldmVudCk7XG4gICAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmUoZXhpc3RpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZWNvZ25pemVycy5wdXNoKHJlY29nbml6ZXIpO1xuICAgICAgICByZWNvZ25pemVyLm1hbmFnZXIgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMudG91Y2hBY3Rpb24udXBkYXRlKCk7XG4gICAgICAgIHJldHVybiByZWNvZ25pemVyO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiByZW1vdmUgYSByZWNvZ25pemVyIGJ5IG5hbWUgb3IgaW5zdGFuY2VcbiAgICAgKiBAcGFyYW0ge1JlY29nbml6ZXJ8U3RyaW5nfSByZWNvZ25pemVyXG4gICAgICogQHJldHVybnMge01hbmFnZXJ9XG4gICAgICovXG4gICAgcmVtb3ZlOiBmdW5jdGlvbihyZWNvZ25pemVyKSB7XG4gICAgICAgIGlmIChpbnZva2VBcnJheUFyZyhyZWNvZ25pemVyLCAncmVtb3ZlJywgdGhpcykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVjb2duaXplciA9IHRoaXMuZ2V0KHJlY29nbml6ZXIpO1xuXG4gICAgICAgIC8vIGxldCdzIG1ha2Ugc3VyZSB0aGlzIHJlY29nbml6ZXIgZXhpc3RzXG4gICAgICAgIGlmIChyZWNvZ25pemVyKSB7XG4gICAgICAgICAgICB2YXIgcmVjb2duaXplcnMgPSB0aGlzLnJlY29nbml6ZXJzO1xuICAgICAgICAgICAgdmFyIGluZGV4ID0gaW5BcnJheShyZWNvZ25pemVycywgcmVjb2duaXplcik7XG5cbiAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZWNvZ25pemVycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMudG91Y2hBY3Rpb24udXBkYXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogYmluZCBldmVudFxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBldmVudHNcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBoYW5kbGVyXG4gICAgICogQHJldHVybnMge0V2ZW50RW1pdHRlcn0gdGhpc1xuICAgICAqL1xuICAgIG9uOiBmdW5jdGlvbihldmVudHMsIGhhbmRsZXIpIHtcbiAgICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhhbmRsZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGhhbmRsZXJzID0gdGhpcy5oYW5kbGVycztcbiAgICAgICAgZWFjaChzcGxpdFN0cihldmVudHMpLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICAgICAgaGFuZGxlcnNbZXZlbnRdID0gaGFuZGxlcnNbZXZlbnRdIHx8IFtdO1xuICAgICAgICAgICAgaGFuZGxlcnNbZXZlbnRdLnB1c2goaGFuZGxlcik7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogdW5iaW5kIGV2ZW50LCBsZWF2ZSBlbWl0IGJsYW5rIHRvIHJlbW92ZSBhbGwgaGFuZGxlcnNcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRzXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2hhbmRsZXJdXG4gICAgICogQHJldHVybnMge0V2ZW50RW1pdHRlcn0gdGhpc1xuICAgICAqL1xuICAgIG9mZjogZnVuY3Rpb24oZXZlbnRzLCBoYW5kbGVyKSB7XG4gICAgICAgIGlmIChldmVudHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGhhbmRsZXJzID0gdGhpcy5oYW5kbGVycztcbiAgICAgICAgZWFjaChzcGxpdFN0cihldmVudHMpLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICAgICAgaWYgKCFoYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGhhbmRsZXJzW2V2ZW50XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlcnNbZXZlbnRdICYmIGhhbmRsZXJzW2V2ZW50XS5zcGxpY2UoaW5BcnJheShoYW5kbGVyc1tldmVudF0sIGhhbmRsZXIpLCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBlbWl0IGV2ZW50IHRvIHRoZSBsaXN0ZW5lcnNcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YVxuICAgICAqL1xuICAgIGVtaXQ6IGZ1bmN0aW9uKGV2ZW50LCBkYXRhKSB7XG4gICAgICAgIC8vIHdlIGFsc28gd2FudCB0byB0cmlnZ2VyIGRvbSBldmVudHNcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5kb21FdmVudHMpIHtcbiAgICAgICAgICAgIHRyaWdnZXJEb21FdmVudChldmVudCwgZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBubyBoYW5kbGVycywgc28gc2tpcCBpdCBhbGxcbiAgICAgICAgdmFyIGhhbmRsZXJzID0gdGhpcy5oYW5kbGVyc1tldmVudF0gJiYgdGhpcy5oYW5kbGVyc1tldmVudF0uc2xpY2UoKTtcbiAgICAgICAgaWYgKCFoYW5kbGVycyB8fCAhaGFuZGxlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBkYXRhLnR5cGUgPSBldmVudDtcbiAgICAgICAgZGF0YS5wcmV2ZW50RGVmYXVsdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgZGF0YS5zcmNFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBpID0gMDtcbiAgICAgICAgd2hpbGUgKGkgPCBoYW5kbGVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGhhbmRsZXJzW2ldKGRhdGEpO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGRlc3Ryb3kgdGhlIG1hbmFnZXIgYW5kIHVuYmluZHMgYWxsIGV2ZW50c1xuICAgICAqIGl0IGRvZXNuJ3QgdW5iaW5kIGRvbSBldmVudHMsIHRoYXQgaXMgdGhlIHVzZXIgb3duIHJlc3BvbnNpYmlsaXR5XG4gICAgICovXG4gICAgZGVzdHJveTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudCAmJiB0b2dnbGVDc3NQcm9wcyh0aGlzLCBmYWxzZSk7XG5cbiAgICAgICAgdGhpcy5oYW5kbGVycyA9IHt9O1xuICAgICAgICB0aGlzLnNlc3Npb24gPSB7fTtcbiAgICAgICAgdGhpcy5pbnB1dC5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IG51bGw7XG4gICAgfVxufTtcblxuLyoqXG4gKiBhZGQvcmVtb3ZlIHRoZSBjc3MgcHJvcGVydGllcyBhcyBkZWZpbmVkIGluIG1hbmFnZXIub3B0aW9ucy5jc3NQcm9wc1xuICogQHBhcmFtIHtNYW5hZ2VyfSBtYW5hZ2VyXG4gKiBAcGFyYW0ge0Jvb2xlYW59IGFkZFxuICovXG5mdW5jdGlvbiB0b2dnbGVDc3NQcm9wcyhtYW5hZ2VyLCBhZGQpIHtcbiAgICB2YXIgZWxlbWVudCA9IG1hbmFnZXIuZWxlbWVudDtcbiAgICBpZiAoIWVsZW1lbnQuc3R5bGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgcHJvcDtcbiAgICBlYWNoKG1hbmFnZXIub3B0aW9ucy5jc3NQcm9wcywgZnVuY3Rpb24odmFsdWUsIG5hbWUpIHtcbiAgICAgICAgcHJvcCA9IHByZWZpeGVkKGVsZW1lbnQuc3R5bGUsIG5hbWUpO1xuICAgICAgICBpZiAoYWRkKSB7XG4gICAgICAgICAgICBtYW5hZ2VyLm9sZENzc1Byb3BzW3Byb3BdID0gZWxlbWVudC5zdHlsZVtwcm9wXTtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGVbcHJvcF0gPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGVbcHJvcF0gPSBtYW5hZ2VyLm9sZENzc1Byb3BzW3Byb3BdIHx8ICcnO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCFhZGQpIHtcbiAgICAgICAgbWFuYWdlci5vbGRDc3NQcm9wcyA9IHt9O1xuICAgIH1cbn1cblxuLyoqXG4gKiB0cmlnZ2VyIGRvbSBldmVudFxuICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50XG4gKiBAcGFyYW0ge09iamVjdH0gZGF0YVxuICovXG5mdW5jdGlvbiB0cmlnZ2VyRG9tRXZlbnQoZXZlbnQsIGRhdGEpIHtcbiAgICB2YXIgZ2VzdHVyZUV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0V2ZW50Jyk7XG4gICAgZ2VzdHVyZUV2ZW50LmluaXRFdmVudChldmVudCwgdHJ1ZSwgdHJ1ZSk7XG4gICAgZ2VzdHVyZUV2ZW50Lmdlc3R1cmUgPSBkYXRhO1xuICAgIGRhdGEudGFyZ2V0LmRpc3BhdGNoRXZlbnQoZ2VzdHVyZUV2ZW50KTtcbn1cblxuYXNzaWduKEhhbW1lciwge1xuICAgIElOUFVUX1NUQVJUOiBJTlBVVF9TVEFSVCxcbiAgICBJTlBVVF9NT1ZFOiBJTlBVVF9NT1ZFLFxuICAgIElOUFVUX0VORDogSU5QVVRfRU5ELFxuICAgIElOUFVUX0NBTkNFTDogSU5QVVRfQ0FOQ0VMLFxuXG4gICAgU1RBVEVfUE9TU0lCTEU6IFNUQVRFX1BPU1NJQkxFLFxuICAgIFNUQVRFX0JFR0FOOiBTVEFURV9CRUdBTixcbiAgICBTVEFURV9DSEFOR0VEOiBTVEFURV9DSEFOR0VELFxuICAgIFNUQVRFX0VOREVEOiBTVEFURV9FTkRFRCxcbiAgICBTVEFURV9SRUNPR05JWkVEOiBTVEFURV9SRUNPR05JWkVELFxuICAgIFNUQVRFX0NBTkNFTExFRDogU1RBVEVfQ0FOQ0VMTEVELFxuICAgIFNUQVRFX0ZBSUxFRDogU1RBVEVfRkFJTEVELFxuXG4gICAgRElSRUNUSU9OX05PTkU6IERJUkVDVElPTl9OT05FLFxuICAgIERJUkVDVElPTl9MRUZUOiBESVJFQ1RJT05fTEVGVCxcbiAgICBESVJFQ1RJT05fUklHSFQ6IERJUkVDVElPTl9SSUdIVCxcbiAgICBESVJFQ1RJT05fVVA6IERJUkVDVElPTl9VUCxcbiAgICBESVJFQ1RJT05fRE9XTjogRElSRUNUSU9OX0RPV04sXG4gICAgRElSRUNUSU9OX0hPUklaT05UQUw6IERJUkVDVElPTl9IT1JJWk9OVEFMLFxuICAgIERJUkVDVElPTl9WRVJUSUNBTDogRElSRUNUSU9OX1ZFUlRJQ0FMLFxuICAgIERJUkVDVElPTl9BTEw6IERJUkVDVElPTl9BTEwsXG5cbiAgICBNYW5hZ2VyOiBNYW5hZ2VyLFxuICAgIElucHV0OiBJbnB1dCxcbiAgICBUb3VjaEFjdGlvbjogVG91Y2hBY3Rpb24sXG5cbiAgICBUb3VjaElucHV0OiBUb3VjaElucHV0LFxuICAgIE1vdXNlSW5wdXQ6IE1vdXNlSW5wdXQsXG4gICAgUG9pbnRlckV2ZW50SW5wdXQ6IFBvaW50ZXJFdmVudElucHV0LFxuICAgIFRvdWNoTW91c2VJbnB1dDogVG91Y2hNb3VzZUlucHV0LFxuICAgIFNpbmdsZVRvdWNoSW5wdXQ6IFNpbmdsZVRvdWNoSW5wdXQsXG5cbiAgICBSZWNvZ25pemVyOiBSZWNvZ25pemVyLFxuICAgIEF0dHJSZWNvZ25pemVyOiBBdHRyUmVjb2duaXplcixcbiAgICBUYXA6IFRhcFJlY29nbml6ZXIsXG4gICAgUGFuOiBQYW5SZWNvZ25pemVyLFxuICAgIFN3aXBlOiBTd2lwZVJlY29nbml6ZXIsXG4gICAgUGluY2g6IFBpbmNoUmVjb2duaXplcixcbiAgICBSb3RhdGU6IFJvdGF0ZVJlY29nbml6ZXIsXG4gICAgUHJlc3M6IFByZXNzUmVjb2duaXplcixcblxuICAgIG9uOiBhZGRFdmVudExpc3RlbmVycyxcbiAgICBvZmY6IHJlbW92ZUV2ZW50TGlzdGVuZXJzLFxuICAgIGVhY2g6IGVhY2gsXG4gICAgbWVyZ2U6IG1lcmdlLFxuICAgIGV4dGVuZDogZXh0ZW5kLFxuICAgIGFzc2lnbjogYXNzaWduLFxuICAgIGluaGVyaXQ6IGluaGVyaXQsXG4gICAgYmluZEZuOiBiaW5kRm4sXG4gICAgcHJlZml4ZWQ6IHByZWZpeGVkXG59KTtcblxuLy8gdGhpcyBwcmV2ZW50cyBlcnJvcnMgd2hlbiBIYW1tZXIgaXMgbG9hZGVkIGluIHRoZSBwcmVzZW5jZSBvZiBhbiBBTURcbi8vICBzdHlsZSBsb2FkZXIgYnV0IGJ5IHNjcmlwdCB0YWcsIG5vdCBieSB0aGUgbG9hZGVyLlxudmFyIGZyZWVHbG9iYWwgPSAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cgOiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnID8gc2VsZiA6IHt9KSk7IC8vIGpzaGludCBpZ25vcmU6bGluZVxuZnJlZUdsb2JhbC5IYW1tZXIgPSBIYW1tZXI7XG5cbmlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcbiAgICBkZWZpbmUoZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBIYW1tZXI7XG4gICAgfSk7XG59IGVsc2UgaWYgKHR5cGVvZiBtb2R1bGUgIT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IEhhbW1lcjtcbn0gZWxzZSB7XG4gICAgd2luZG93W2V4cG9ydE5hbWVdID0gSGFtbWVyO1xufVxuXG59KSh3aW5kb3csIGRvY3VtZW50LCAnSGFtbWVyJyk7XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcblxudmFyIF9jb21wdXRlU2Nyb2xsSW50b1ZpZXcgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjb21wdXRlLXNjcm9sbC1pbnRvLXZpZXdcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBpc09wdGlvbnNPYmplY3Qob3B0aW9ucykge1xuICByZXR1cm4gb3B0aW9ucyA9PT0gT2JqZWN0KG9wdGlvbnMpICYmIE9iamVjdC5rZXlzKG9wdGlvbnMpLmxlbmd0aCAhPT0gMDtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdEJlaGF2aW9yKGFjdGlvbnMsIGJlaGF2aW9yKSB7XG4gIGlmIChiZWhhdmlvciA9PT0gdm9pZCAwKSB7XG4gICAgYmVoYXZpb3IgPSAnYXV0byc7XG4gIH1cblxuICB2YXIgY2FuU21vb3RoU2Nyb2xsID0gJ3Njcm9sbEJlaGF2aW9yJyBpbiBkb2N1bWVudC5ib2R5LnN0eWxlO1xuICBhY3Rpb25zLmZvckVhY2goZnVuY3Rpb24gKF9yZWYpIHtcbiAgICB2YXIgZWwgPSBfcmVmLmVsLFxuICAgICAgICB0b3AgPSBfcmVmLnRvcCxcbiAgICAgICAgbGVmdCA9IF9yZWYubGVmdDtcblxuICAgIGlmIChlbC5zY3JvbGwgJiYgY2FuU21vb3RoU2Nyb2xsKSB7XG4gICAgICBlbC5zY3JvbGwoe1xuICAgICAgICB0b3A6IHRvcCxcbiAgICAgICAgbGVmdDogbGVmdCxcbiAgICAgICAgYmVoYXZpb3I6IGJlaGF2aW9yXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWwuc2Nyb2xsVG9wID0gdG9wO1xuICAgICAgZWwuc2Nyb2xsTGVmdCA9IGxlZnQ7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0T3B0aW9ucyhvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSBmYWxzZSkge1xuICAgIHJldHVybiB7XG4gICAgICBibG9jazogJ2VuZCcsXG4gICAgICBpbmxpbmU6ICduZWFyZXN0J1xuICAgIH07XG4gIH1cblxuICBpZiAoaXNPcHRpb25zT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGJsb2NrOiAnc3RhcnQnLFxuICAgIGlubGluZTogJ25lYXJlc3QnXG4gIH07XG59XG5cbmZ1bmN0aW9uIHNjcm9sbEludG9WaWV3KHRhcmdldCwgb3B0aW9ucykge1xuICB2YXIgdGFyZ2V0SXNEZXRhY2hlZCA9ICF0YXJnZXQub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY29udGFpbnModGFyZ2V0KTtcblxuICBpZiAoaXNPcHRpb25zT2JqZWN0KG9wdGlvbnMpICYmIHR5cGVvZiBvcHRpb25zLmJlaGF2aW9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMuYmVoYXZpb3IodGFyZ2V0SXNEZXRhY2hlZCA/IFtdIDogKDAsIF9jb21wdXRlU2Nyb2xsSW50b1ZpZXcuZGVmYXVsdCkodGFyZ2V0LCBvcHRpb25zKSk7XG4gIH1cblxuICBpZiAodGFyZ2V0SXNEZXRhY2hlZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBjb21wdXRlT3B0aW9ucyA9IGdldE9wdGlvbnMob3B0aW9ucyk7XG4gIHJldHVybiBkZWZhdWx0QmVoYXZpb3IoKDAsIF9jb21wdXRlU2Nyb2xsSW50b1ZpZXcuZGVmYXVsdCkodGFyZ2V0LCBjb21wdXRlT3B0aW9ucyksIGNvbXB1dGVPcHRpb25zLmJlaGF2aW9yKTtcbn1cblxudmFyIF9kZWZhdWx0ID0gc2Nyb2xsSW50b1ZpZXc7XG5leHBvcnRzLmRlZmF1bHQgPSBfZGVmYXVsdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0OyJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJsaWIvcHVibGljL2pzL21haW4uanMiLCJsaWIvcHVibGljL2pzL3NpZGVuYXYuanMiLCJsaWIvcHVibGljL2pzL3ZlbmRvci9uYXZiYXIuanMiLCJub2RlX21vZHVsZXMvY29tcHV0ZS1zY3JvbGwtaW50by12aWV3L2Rpc3QvaW5kZXguY2pzIiwibm9kZV9tb2R1bGVzL2hhbW1lcmpzL2hhbW1lci5qcyIsIm5vZGVfbW9kdWxlcy9zY3JvbGwtaW50by12aWV3LWlmLW5lZWRlZC9kaXN0L2luZGV4LmNqcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQ0FBLFlBQVk7O0FBQ1o7QUFFQSxJQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO0FBQ3BDLElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7QUFFbEMsT0FBTyxDQUFDLElBQUksQ0FDUixRQUFRLENBQUMsYUFBYSxDQUFDLGtDQUFrQyxDQUFDLEVBQzFELFFBQVEsQ0FBQyxhQUFhLENBQUMsMENBQTBDLENBQ3JFLENBQUM7QUFFRCxPQUFPLENBQUMsSUFBSSxDQUNSLFFBQVEsQ0FBQyxhQUFhLENBQUMsNENBQTRDLENBQUMsRUFDcEUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxvREFBb0QsQ0FDL0UsQ0FBQztBQUVELE9BQU8sQ0FBQyxJQUFJLENBQ1IsUUFBUSxDQUFDLGFBQWEsQ0FBQyxzQ0FBc0MsQ0FBQyxFQUM5RCxRQUFRLENBQUMsYUFBYSxDQUFDLDhDQUE4QyxDQUN6RSxDQUFDO0FBRUQsSUFBTSxpQkFBaUIsR0FBRyxTQUFwQixpQkFBaUIsQ0FBQSxFQUFTO0VBRTVCLElBQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUM7RUFDekQsSUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENB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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25sRkE7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLG4sdCl7ZnVuY3Rpb24gbyhpLGYpe2lmKCFuW2ldKXtpZighZVtpXSl7dmFyIGM9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighZiYmYylyZXR1cm4gYyhpLCEwKTtpZih1KXJldHVybiB1KGksITApO3ZhciBhPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIraStcIidcIik7dGhyb3cgYS5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGF9dmFyIHA9bltpXT17ZXhwb3J0czp7fX07ZVtpXVswXS5jYWxsKHAuZXhwb3J0cyxmdW5jdGlvbihyKXt2YXIgbj1lW2ldWzFdW3JdO3JldHVybiBvKG58fHIpfSxwLHAuZXhwb3J0cyxyLGUsbix0KX1yZXR1cm4gbltpXS5leHBvcnRzfWZvcih2YXIgdT1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGk9MDtpPHQubGVuZ3RoO2krKylvKHRbaV0pO3JldHVybiBvfXJldHVybiByfSkoKSIsIid1c2Ugc3RyaWN0Jztcbi8qIGdsb2JhbCBkb2N1bWVudCwgd2luZG93LCBYTUxIdHRwUmVxdWVzdCAqL1xuXG5jb25zdCBTaWRlbmF2ID0gcmVxdWlyZSgnLi9zaWRlbmF2Jyk7XG5jb25zdCBIYW1tZXIgPSByZXF1aXJlKCdoYW1tZXJqcycpO1xuXG5TaWRlbmF2LmluaXQoXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmRvY3MtZGV0YWlsLXBhZ2UgLm1haW4gLndyYXBwZXInKSxcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZG9jcy1kZXRhaWwtcGFnZSAubWFpbiAuc2lkZW5hdl9fdGFyZ2V0Jylcbik7XG5cblNpZGVuYXYuaW5pdChcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYmVzdC1wcmFjdGljZXMtZGV0YWlsLXBhZ2UgLm1haW4gLndyYXBwZXInKSxcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYmVzdC1wcmFjdGljZXMtZGV0YWlsLXBhZ2UgLm1haW4gLnNpZGVuYXZfX3RhcmdldCcpXG4pO1xuXG5TaWRlbmF2LmluaXQoXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmdldHRpbmctc3RhcnRlZC1wYWdlIC5tYWluIC53cmFwcGVyJyksXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmdldHRpbmctc3RhcnRlZC1wYWdlIC5tYWluIC5zaWRlbmF2X190YXJnZXQnKVxuKTtcblxuY29uc3Qgc2V0QWN0aXZlTmF2SXRlbXMgPSAoKSA9PiB7XG5cbiAgICBjb25zdCBsaXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbmF2X19pdGVtJyk7XG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuc3BsaXQoJy8nKVsxXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7ICsraSkge1xuICAgICAgICBjb25zdCBpdGVtID0gbGlzdFtpXTtcbiAgICAgICAgaWYgKGl0ZW0ucGF0aG5hbWUuc3BsaXQoJy8nKVsxXSA9PT0gY3VycmVudFBhZ2UpIHtcbiAgICAgICAgICAgIGl0ZW0uY2xhc3NMaXN0LmFkZCgnbmF2X19pdGVtLS1hY3RpdmUnKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmNvbnN0IG5ld3NsZXR0ZXJTdWJtaXQgPSAoKSA9PiB7XG5cbiAgICBjb25zdCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25ld3NsZXR0ZXJGb3JtJyk7XG5cbiAgICBpZiAoIWZvcm0pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvcm0ub25zdWJtaXQgPSAoZSkgPT4ge1xuXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICBjb25zdCBlbWFpbElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25ld3NsZXR0ZXJFbWFpbCcpO1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25ld3NsZXR0ZXJNZXNzYWdlJyk7XG5cbiAgICAgICAgaWYgKGVtYWlsSW5wdXQudmFsaWRpdHkudmFsaWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW1haWw6IGVtYWlsSW5wdXQudmFsdWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gICAgICAgICAgICB4aHIub3BlbignUE9TVCcsICcvbWFpbGNoaW1wJyk7XG4gICAgICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICAgICAgICAgIHhoci5vbmxvYWQgPSAoKSA9PiB7XG5cbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHhoci5zdGF0dXMpIHtcblxuICAgICAgICAgICAgICAgICAgICBjYXNlIDIwMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gJ1lvdVxcJ3JlIGFsbCBzaWduZWQtdXAuIFRoYW5rcywgcGFsISc7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbWFpbElucHV0LnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0uc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2Uuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0MDA6XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9IGBUaGUgZW1haWwgYWRkcmVzcyA8Yj4ke2VtYWlsSW5wdXQudmFsdWV9PC9iPiBpcyBlaXRoZXIgaW52YWxpZCwgb3IgbWF5IGFscmVhZHkgYmUgc3Vic2NyaWJlZC5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW1haWxJbnB1dC52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbWFpbElucHV0LmNsYXNzTGlzdC5hZGQoJ25ld3NsZXR0ZXJfX2lucHV0LS1pbnZhbGlkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSBgVGhlIGVtYWlsIGFkZHJlc3MgPGI+JHtlbWFpbElucHV0LnZhbHVlfTwvYj4gbWF5IGJlIGludmFsaWQsIG9yIHlvdXIgbmV0d29yayBjb25uZWN0aW9uIGlzIGluYWN0aXZlLmA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbWFpbElucHV0LnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsSW5wdXQuY2xhc3NMaXN0LmFkZCgnbmV3c2xldHRlcl9faW5wdXQtLWludmFsaWQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0uc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgeGhyLnNlbmQocGF5bG9hZCk7XG4gICAgICAgIH1cbiAgICB9O1xufTtcblxuY29uc3QgZG9jc05hdk1vYmlsZUFjdGlvbnMgPSAoKSA9PiB7XG5cbiAgICBjb25zdCBtZW51QnV0dG9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmwtbmF2aWdhYmxlY29udGVudF9fY29udHJvbC1pdGVtLS1sZWZ0Jyk7XG4gICAgY29uc3QgdG9wQnV0dG9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmwtbmF2aWdhYmxlY29udGVudF9fY29udHJvbC1pdGVtLS1yaWdodCcpO1xuICAgIGNvbnN0IGRvY3NOYXYgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubC1uYXZpZ2FibGVjb250ZW50X19uYXYnKTtcbiAgICBjb25zdCBkb2NzV3JhcHBlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5sLW5hdmlnYWJsZWNvbnRlbnQgLndyYXBwZXInKTtcblxuICAgIGlmICghbWVudUJ1dHRvbiB8fCAhdG9wQnV0dG9uIHx8ICFkb2NzTmF2IHx8ICFkb2NzV3JhcHBlcikge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaXNNb2JpbGUgPSAoKSA9PiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShtZW51QnV0dG9uLnBhcmVudE5vZGUpLmdldFByb3BlcnR5VmFsdWUoJ2Rpc3BsYXknKSAhPT0gJ25vbmUnO1xuICAgIGNvbnN0IGRvY3NOYXZJc09wZW4gPSAoKSA9PiBkb2NzTmF2LmNsYXNzTGlzdC5jb250YWlucygnbC1uYXZpZ2FibGVjb250ZW50X19uYXYtLW9wZW4nKTtcbiAgICBjb25zdCB0b2dnbGVEb2NzTmF2ID0gKCkgPT4ge1xuXG4gICAgICAgIGlmICghaXNNb2JpbGUoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRvY3NOYXZJc09wZW4oKSkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdib2R5LS1ub3Njcm9sbCcpO1xuICAgICAgICAgICAgZG9jc05hdi5jbGFzc0xpc3QucmVtb3ZlKCdsLW5hdmlnYWJsZWNvbnRlbnRfX25hdi0tb3BlbicpO1xuICAgICAgICAgICAgZG9jc1dyYXBwZXIuY2xhc3NMaXN0LnJlbW92ZSgnd3JhcHBlci0tZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIGRvY3NXcmFwcGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdG9nZ2xlRG9jc05hdik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2JvZHktLW5vc2Nyb2xsJyk7XG4gICAgICAgIGRvY3NOYXYuY2xhc3NMaXN0LmFkZCgnbC1uYXZpZ2FibGVjb250ZW50X19uYXYtLW9wZW4nKTtcbiAgICAgICAgZG9jc1dyYXBwZXIuY2xhc3NMaXN0LmFkZCgnd3JhcHBlci0tZGlzYWJsZWQnKTtcbiAgICAgICAgZG9jc1dyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0b2dnbGVEb2NzTmF2KTtcbiAgICB9O1xuXG4gICAgbWVudUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRvZ2dsZURvY3NOYXYpO1xuXG4gICAgQXJyYXkuZnJvbShkb2NzTmF2LnF1ZXJ5U2VsZWN0b3JBbGwoJy5zaWRlbmF2X19zZWN0aW9uLWl0ZW0nKSkuZm9yRWFjaChcbiAgICAgICAgKGxpbmspID0+IGxpbmsuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0b2dnbGVEb2NzTmF2KVxuICAgICk7XG5cbiAgICB0b3BCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG5cbiAgICAgICAgaWYgKGRvY3NOYXZJc09wZW4oKSkge1xuICAgICAgICAgICAgdG9nZ2xlRG9jc05hdigpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgICB9KTtcblxuXG4gICAgY29uc3QgaGFtbWVyTmF2ID0gbmV3IEhhbW1lcihkb2NzTmF2KTtcbiAgICBjb25zdCBoYW1tZXJDb250ZW50ID0gbmV3IEhhbW1lcihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubC1uYXZpZ2FibGVjb250ZW50JyksIHtcbiAgICAgICAgY3NzUHJvcHM6IHtcbiAgICAgICAgICAgIHVzZXJTZWxlY3Q6ICdpbml0aWFsJ1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBoYW1tZXJOYXYub24oJ3N3aXBlbGVmdCcsIHRvZ2dsZURvY3NOYXYpO1xuICAgIGhhbW1lckNvbnRlbnQub24oJ3N3aXBlcmlnaHQnLCgpID0+IHtcblxuICAgICAgICBpZiAoIWRvY3NOYXZJc09wZW4oKSkge1xuICAgICAgICAgICAgdG9nZ2xlRG9jc05hdigpO1xuICAgICAgICB9XG4gICAgfSk7XG59O1xuXG5jb25zdCBjaGFuZ2VQYWNrYWdlVmVyc2lvbiA9ICgpID0+IHtcblxuICAgIGNvbnN0IHNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2ZXJzaW9uJyk7XG5cbiAgICBpZiAoIXNlbGVjdCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2VsZWN0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChvcHRpb24pID0+IHtcblxuICAgICAgICB3aW5kb3cubG9jYXRpb24uc2VhcmNoID0gJ3Y9JyArIG9wdGlvbi5zcmNFbGVtZW50LnZhbHVlO1xuICAgIH0pO1xufTtcblxuY29uc3QgcGFsVG9DbGlwYm9hcmQgPSAoKSA9PiB7XG5cbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvZGVCb3gnKTtcbiAgICBjb25zdCBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29kZUJveEJ1dHRvbicpO1xuICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvZGUnKTtcblxuICAgIGlmICghZWxlbWVudCB8fCAhYnV0dG9uIHx8ICFpbnB1dCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZWxlbWVudC5vbmNsaWNrID0gKCkgPT4ge1xuXG4gICAgICAgIGlucHV0LnNlbGVjdCgpO1xuICAgIH07XG5cbiAgICBidXR0b24ub25jbGljayA9ICgpID0+IHtcblxuICAgICAgICBjb25zdCB0b29sdGlwID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgndG9vbHRpcF9fdGV4dCcpWzBdO1xuICAgICAgICBpbnB1dC5zZWxlY3QoKTtcbiAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0NvcHknKTtcbiAgICAgICAgdG9vbHRpcC5pbm5lckhUTUwgPSAnQ29kZSBjb3BpZWQnO1xuXG4gICAgICAgIGJ1dHRvbi5vbm1vdXNlbGVhdmUgPSAoKSA9PiB7XG5cbiAgICAgICAgICAgIHRvb2x0aXAuaW5uZXJIVE1MID0gJ0NvcHkgdG8gY2xpcGJvYXJkJztcbiAgICAgICAgfTtcbiAgICB9O1xufTtcblxuY29uc3QgbWFya2Rvd25MaW5rc0V4dGVybmFsID0gKCkgPT4ge1xuXG4gICAgLy8gZXh0ZXJuYWwgbGlua3Mgb25seSAobm8gc2VjdGlvbiBhbmNob3JzIG9yIGludGVybmFsICgjKSBsaW5rcylcbiAgICBjb25zdCBsaW5rcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tYXJrZG93bi1ib2R5LmVudHJ5LWNvbnRlbnQgYTpub3QoW2hyZWZePVwiI1wiXSk6bm90KC5hbmNob3IpJyk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmtzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGNvbnN0IGxpbmsgPSBsaW5rc1tpXTtcbiAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ3RhcmdldCcsICdfYmxhbmsnKTtcbiAgICB9XG59O1xuXG5zZXRBY3RpdmVOYXZJdGVtcygpO1xubmV3c2xldHRlclN1Ym1pdCgpO1xuZG9jc05hdk1vYmlsZUFjdGlvbnMoKTtcbmNoYW5nZVBhY2thZ2VWZXJzaW9uKCk7XG5wYWxUb0NsaXBib2FyZCgpO1xubWFya2Rvd25MaW5rc0V4dGVybmFsKCk7XG4iLCIndXNlIHN0cmljdCc7XG4vKiBnbG9iYWwgZG9jdW1lbnQsIHdpbmRvdyAqL1xuXG5jb25zdCBTY3JvbGxJbnRvVmlld0lmTmVlZGVkID0gcmVxdWlyZSgnc2Nyb2xsLWludG8tdmlldy1pZi1uZWVkZWQnKTtcbmNvbnN0IE5hdmJhciA9IHJlcXVpcmUoJy4vdmVuZG9yL25hdmJhcicpO1xuXG5jb25zdCBpbnRlcm5hbHMgPSB7fTtcblxuY29uc3QgRklYRURfSEVBREVSX0hFSUdIVCA9IDYwO1xuY29uc3QgVE9QX1BBRERJTkcgPSAxMDtcblxuZXhwb3J0cy5pbml0ID0gKGNvbnRlbnRFbCwgbmF2RWwpID0+IHtcblxuICAgIGlmICghY29udGVudEVsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIW5hdkVsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignU2lkZW5hdiBjb250ZW50IGVsZW1lbnQgZXhpc3RzLCBidXQgbm90IHRoZSBuYXYgZWxlbWVudC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNoU3RhdGUgPSBuZXcgaW50ZXJuYWxzLkhhc2hTdGF0ZSgpO1xuXG4gICAgY29uc3QgbmF2YmFyID0gTmF2YmFyKHtcbiAgICAgICAgdGFnTmFtZTogbmF2RWwudGFnTmFtZSxcbiAgICAgICAgZWxlbWVudExpc3Q6IGNvbnRlbnRFbC5xdWVyeVNlbGVjdG9yQWxsKCdoMSwgaDIsIGgzLCBoNCwgaDUsIGg2JyksXG4gICAgICAgIG1ha2VOYXZMaXN0SXRlbTogKGVsKSA9PiB7XG5cbiAgICAgICAgICAgIGVsID0gZWwuY2xvbmVOb2RlKHRydWUpO1xuXG4gICAgICAgICAgICBjb25zdCBhbmNob3IgPSBlbC5yZW1vdmVDaGlsZChlbC5xdWVyeVNlbGVjdG9yKCdhJykpO1xuICAgICAgICAgICAgY29uc3QgaW5kZW50ID0gTnVtYmVyKGVsLnRhZ05hbWUucmVwbGFjZSgnSCcsICcnKSk7XG5cbiAgICAgICAgICAgIC8vIFR1cm4gcmVtYWluaW5nIDxhPnMgaW4gaGVhZGVyIGludG8gPHNwYW4+c1xuXG4gICAgICAgICAgICBjb25zdCBnZXRMaW5rID0gKCkgPT4gZWwucXVlcnlTZWxlY3RvcignYScpO1xuXG4gICAgICAgICAgICB3aGlsZSAoZ2V0TGluaygpKSB7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBsaW5rID0gZ2V0TGluaygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgICAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSBsaW5rLmlubmVySFRNTDtcblxuICAgICAgICAgICAgICAgIGxpbmsucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoc3BhbiwgbGluayk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbHMucmVuZGVyKFxuICAgICAgICAgICAgICAgIGludGVybmFscy5pdGVtKGVsLmlubmVySFRNTCwgYW5jaG9yLmhhc2gsIGluZGVudClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uU2Nyb2xsOiAobmF2SXRlbSkgPT4ge1xuXG4gICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLmhhc2ggIT09IG5hdkl0ZW0uaGFzaCAmJiAhaGFzaFN0YXRlLmF1dG9TY3JvbGxpbmcgJiYgIWhhc2hTdGF0ZS5maXJzdFNjcm9sbCkge1xuICAgICAgICAgICAgICAgIGhhc2hTdGF0ZS5oYXNoQ2hhbmdlRnJvbVNjcm9sbCgpO1xuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IG5hdkl0ZW0uaHJlZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaGFzaFN0YXRlLnNjcm9sbGVkKCk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIG5hdmJhci5jbGFzc0xpc3QuYWRkKCdtYXJrZG93bi1ib2R5Jyk7XG4gICAgbmF2YmFyLmNsYXNzTGlzdC5hZGQoJ3NpZGVuYXZfX3NlY3Rpb25zJyk7XG5cbiAgICBjb25zdCBoYW5kbGVIYXNoID0gKCkgPT4ge1xuXG4gICAgICAgIGludGVybmFscy5tYXliZVNjcm9sbFRvSGFzaCh3aW5kb3cubG9jYXRpb24uaGFzaCwgbmF2YmFyLCBoYXNoU3RhdGUpO1xuICAgIH07XG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignaGFzaGNoYW5nZScsIGhhbmRsZUhhc2gpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgaGFuZGxlSGFzaCk7XG5cbiAgICByZXR1cm4gbmF2RWwucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQobmF2YmFyLCBuYXZFbCk7XG59O1xuXG5pbnRlcm5hbHMuSGFzaFN0YXRlID0gY2xhc3MgSGFzaFN0YXRlIHtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuXG4gICAgICAgIHRoaXMuYXV0b1Njcm9sbGluZyA9IDA7XG4gICAgICAgIHRoaXMuZnJvbVNjcm9sbCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZpcnN0U2Nyb2xsID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBzY3JvbGxlZCgpIHtcblxuICAgICAgICB0aGlzLmZpcnN0U2Nyb2xsID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaGFzaENoYW5nZUZyb21TY3JvbGwoKSB7XG5cbiAgICAgICAgdGhpcy5mcm9tU2Nyb2xsID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBoYW5kbGVkQ2hhbmdlKCkge1xuXG4gICAgICAgIHRoaXMuZnJvbVNjcm9sbCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHN0YXJ0QXV0b1Njcm9sbGluZygpIHtcblxuICAgICAgICB0aGlzLmF1dG9TY3JvbGxpbmcrKztcbiAgICB9XG5cbiAgICBzdG9wQXV0b1Njcm9sbGluZygpIHtcblxuICAgICAgICB0aGlzLmF1dG9TY3JvbGxpbmctLTtcbiAgICB9XG59O1xuXG5pbnRlcm5hbHMubWF5YmVTY3JvbGxUb0hhc2ggPSAoaGFzaCwgbmF2YmFyLCBoYXNoU3RhdGUpID0+IHtcblxuICAgIGNvbnN0IGFuY2hvciA9IGhhc2ggJiYgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgYS5hbmNob3JbaHJlZj1cIiR7aGFzaH1cIl1gKTtcbiAgICBjb25zdCBuYXZJdGVtID0gKGhhc2ggJiYgbmF2YmFyLnF1ZXJ5U2VsZWN0b3IoYGEuc2lkZW5hdl9fc2VjdGlvbi1pdGVtW2hyZWY9XCIke2hhc2h9XCJdYCkpIHx8IG5hdmJhci5xdWVyeVNlbGVjdG9yKCcuc2lkZW5hdl9fc2VjdGlvbi1pdGVtJyk7XG5cbiAgICBpZiAobmF2SXRlbSkge1xuICAgICAgICBpbnRlcm5hbHMuc2VsZWN0TmF2SXRlbShuYXZJdGVtKTtcblxuICAgICAgICAvLyBEb24ndCBqdW1wIHRoZSBuYXYgc2Nyb2xsIHdoZW4gdGhlIHVzZXIgaXMgdXNpbmcgdGhlIG5hdlxuICAgICAgICBpZiAoIW5hdmJhci5wYXJlbnROb2RlLm1hdGNoZXMoJzpob3ZlcicpKSB7XG4gICAgICAgICAgICBTY3JvbGxJbnRvVmlld0lmTmVlZGVkKG5hdkl0ZW0sIHsgYm91bmRhcnk6IG5hdmJhci5wYXJlbnROb2RlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGFuY2hvciAmJiAhaGFzaFN0YXRlLmZyb21TY3JvbGwpIHtcbiAgICAgICAgaGFzaFN0YXRlLnN0YXJ0QXV0b1Njcm9sbGluZygpO1xuICAgICAgICBhbmNob3Iuc2Nyb2xsSW50b1ZpZXcoKTtcblxuICAgICAgICAvLyBFbnN1cmUgZWxlbWVudCBpcyB2aXNpYmxlXG4gICAgICAgIGlmIChhbmNob3IuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIDwgKEZJWEVEX0hFQURFUl9IRUlHSFQgKyBUT1BfUEFERElORykpIHtcbiAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxCeSgwLCAtKEZJWEVEX0hFQURFUl9IRUlHSFQgKyBUT1BfUEFERElORykpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiBoYXNoU3RhdGUuc3RvcEF1dG9TY3JvbGxpbmcoKSwgNTApO1xuICAgIH1cblxuICAgIGhhc2hTdGF0ZS5oYW5kbGVkQ2hhbmdlKCk7XG59O1xuXG5pbnRlcm5hbHMuc2VsZWN0TmF2SXRlbSA9IChuYXZJdGVtKSA9PiB7XG5cbiAgICBjb25zdCBsYXN0TmF2SXRlbSA9IG5hdkl0ZW0ucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCc6c2NvcGUgPiAuc2lkZW5hdl9fc2VjdGlvbi1pdGVtLS1hY3RpdmUnKTtcblxuICAgIGlmIChsYXN0TmF2SXRlbSkge1xuICAgICAgICBsYXN0TmF2SXRlbS5jbGFzc0xpc3QucmVtb3ZlKCdzaWRlbmF2X19zZWN0aW9uLWl0ZW0tLWFjdGl2ZScpO1xuICAgIH1cblxuICAgIG5hdkl0ZW0uY2xhc3NMaXN0LmFkZCgnc2lkZW5hdl9fc2VjdGlvbi1pdGVtLS1hY3RpdmUnKTtcbn07XG5cbmludGVybmFscy5pdGVtID0gKGlubmVySFRNTCwgaHJlZiwgaW5kZW50KSA9PiAoXG5cbiAgICBgPGEgaHJlZj1cIiR7aHJlZn1cIiBjbGFzcz1cInNpZGVuYXZfX3NlY3Rpb24taXRlbSBzaWRlbmF2X19zZWN0aW9uLWl0ZW0tLWluZGVudC0ke2luZGVudH1cIj5cbiAgICAgICAgJHtpbm5lckhUTUx9XG4gICAgPC9hPmBcbik7XG5cbmludGVybmFscy5yZW5kZXIgPSAoaHRtbCkgPT4ge1xuXG4gICAgY29uc3Qgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHdyYXBwZXIuaW5uZXJIVE1MID0gaHRtbDtcblxuICAgIHJldHVybiB3cmFwcGVyLmZpcnN0Q2hpbGQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLyogZ2xvYmFsIGRvY3VtZW50LCB3aW5kb3cgKi9cblxuLypcbiAqIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNyBNYXJrIFMuIEV2ZXJpdHRcbiAqIENvcHlyaWdodCAoYykgMjAxOCBEZXZpbiBJdnkgW21vZGlmaWVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3F1Ynl0ZS9uYXZiYXJdXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5sZXQgc3VwcG9ydHNQYXNzaXZlID0gZmFsc2U7XG5cbnRyeSB7XG5cbiAgICBjb25zdCBvcHRzID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAncGFzc2l2ZScsIHtcbiAgICAgICAgZ2V0KCkge1xuXG4gICAgICAgICAgICBzdXBwb3J0c1Bhc3NpdmUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndGVzdCcsIG51bGwsIG9wdHMpO1xufVxuY2F0Y2ggKGUpIHt9XG5cbmNvbnN0IGNyZWF0ZUFuZEFwcGVuZExpc3RJdGVtcyA9IChuYXZMaXN0LCBlbGVtZW50TGlzdCwgbWFrZU5hdkxpc3RJdGVtKSA9PiB7XG5cbiAgICBjb25zdCBwYWlycyA9IFtdO1xuXG4gICAgLy8gQ3JlYXRlIGxpc3QgZWxlbWVudHNcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW1lbnRMaXN0Lmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50TGlzdFtpXTtcbiAgICAgICAgY29uc3QgbGkgPSBtYWtlTmF2TGlzdEl0ZW0oZWxlbWVudCk7XG5cbiAgICAgICAgbmF2TGlzdC5hcHBlbmRDaGlsZChsaSk7XG5cbiAgICAgICAgcGFpcnMucHVzaCh7IGVsZW1lbnQsIG5hdkVsZW1lbnQ6IGxpIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBwYWlycztcbn07XG5cbmNvbnN0IG1ha2VIYW5kbGVTY3JvbGwgPSAocGFpcnMsIG9uU2Nyb2xsSG9vaywgZGVib3VuY2VUaW1lKSA9PiB7XG5cbiAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG5cbiAgICAgICAgbGV0IGZyb250UnVubmVySW5kZXg7XG4gICAgICAgIGxldCBjbG9zZXN0RGlzdCA9IEluZmluaXR5O1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGFpcnMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhaXIgPSBwYWlyc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IGFic0Rpc3QgPSBNYXRoLmFicyhwYWlyLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wKTtcblxuICAgICAgICAgICAgLy8gSWYgdGhpcyBlbGVtZW50IGlzIG5vdCB0aGUgZnJvbnQgcnVubmVyIGZvciB0b3AsIGRlYWN0aXZhdGUgaXQuXG4gICAgICAgICAgICBpZiAoYWJzRGlzdCA+IGNsb3Nlc3REaXN0KSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZyb250UnVubmVySW5kZXggPSBpO1xuICAgICAgICAgICAgY2xvc2VzdERpc3QgPSBhYnNEaXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9uU2Nyb2xsSG9vaykge1xuICAgICAgICAgICAgb25TY3JvbGxIb29rKHBhaXJzW2Zyb250UnVubmVySW5kZXhdLm5hdkVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8vIFRoZSBkZWZhdWx0IGJlaGF2aW91ciBpcyBubyBkZWJvdW5jZS5cbiAgICBpZiAodHlwZW9mIGRlYm91bmNlVGltZSAhPT0gJ251bWJlcicgfHwgaXNOYU4oZGVib3VuY2VUaW1lKSkge1xuICAgICAgICByZXR1cm4gaGFuZGxlU2Nyb2xsO1xuICAgIH1cblxuICAgIGxldCB0aW1lb3V0O1xuXG4gICAgY29uc3QgbnVsbGlmeVRpbWVvdXQgPSAoKSA9PiB7XG5cbiAgICAgICAgdGltZW91dCA9IG51bGw7XG4gICAgfTtcblxuICAgIHJldHVybiAoKSA9PiB7XG5cbiAgICAgICAgaWYgKHRpbWVvdXQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEltbWVkaWF0ZWx5IHVzZSBoYW5kbGVTY3JvbGwgdG8gY2FsY3VsYXRlLlxuICAgICAgICBoYW5kbGVTY3JvbGwoKTtcblxuICAgICAgICAvLyBObyBmdXJ0aGVyIGNhbGxzIHRvIGhhbmRsZVNjcm9sbCB1bnRpbCBkZWJvdW5jZVRpbWUgaGFzIGVsYXBzZWQuXG4gICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KG51bGxpZnlUaW1lb3V0LCBkZWJvdW5jZVRpbWUpO1xuICAgIH07XG59O1xuXG5jb25zdCBhZGRTY3JvbGxMaXN0ZW5lciA9ICh0YXJnZXQsIGhhbmRsZVNjcm9sbCkgPT4ge1xuXG4gICAgY29uc3Qgc2Nyb2xsSGFuZGxlV3JhcHBlciA9IChldnQpID0+IHtcblxuICAgICAgICBpZiAoZXZ0LnRhcmdldCA9PT0gdGFyZ2V0KSB7XG4gICAgICAgICAgICBoYW5kbGVTY3JvbGwoKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAodGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIpIHtcbiAgICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHNjcm9sbEhhbmRsZVdyYXBwZXIsIHN1cHBvcnRzUGFzc2l2ZSA/IHsgcGFzc2l2ZTogdHJ1ZSB9IDogZmFsc2UpO1xuICAgIH1cbiAgICBlbHNlIGlmICh0YXJnZXQuYXR0YWNoRXZlbnQpIHtcbiAgICAgICAgdGFyZ2V0LmF0dGFjaEV2ZW50KCdvbnNjcm9sbCcsIHNjcm9sbEhhbmRsZVdyYXBwZXIpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGlzIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBhZGRFdmVudExpc3RlbmVyIG9yIGF0dGFjaEV2ZW50LicpO1xuICAgIH1cblxuICAgIC8vIFRvIGNhbGN1bGF0ZSB0aGUgaW5pdGlhbCBhY3RpdmUgbGlzdCBlbGVtZW50LlxuICAgIGhhbmRsZVNjcm9sbCgpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSAob3B0aW9ucykgPT4ge1xuXG4gICAgaWYgKCFvcHRpb25zIHx8ICFvcHRpb25zLmVsZW1lbnRMaXN0IHx8ICFvcHRpb25zLm1ha2VOYXZMaXN0SXRlbSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09wdGlvbnMgb2JqZWN0IHdpdGggZWxlbWVudExpc3QgYW5kIG1ha2VOYXZMaXN0SXRlbSBtdXN0IGJlIHByb3ZpZGVkLicpO1xuICAgIH1cblxuICAgIGNvbnN0IG5hdmJhciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQob3B0aW9ucy50YWdOYW1lIHx8ICduYXYnKTtcbiAgICBjb25zdCBuYXZMaXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndWwnKTtcblxuICAgIC8vIFRoZSB0YXJnZXQgZGVmYXVsdHMgdG8gd2luZG93LlxuICAgIGNvbnN0IHRhcmdldCA9IG9wdGlvbnMudGFyZ2V0IHx8IGRvY3VtZW50O1xuXG4gICAgLy8gQ3JlYXRlIGxpc3QgZWxlbWVudHNcbiAgICBjb25zdCBwYWlycyA9IGNyZWF0ZUFuZEFwcGVuZExpc3RJdGVtcyhuYXZMaXN0LCBvcHRpb25zLmVsZW1lbnRMaXN0LCBvcHRpb25zLm1ha2VOYXZMaXN0SXRlbSk7XG5cbiAgICAvLyBXaGVuZXZlciB0aGUgd2luZG93IGlzIHNjcm9sbGVkLCByZWNhbGN1bGF0ZSB0aGUgYWN0aXZlIGxpc3QgZWxlbWVudC4gQ29tcGF0aWJsZSB3aXRoIG9sZGVyXG4gICAgLy8gdmVyc2lvbnMgb2YgSUUuXG4gICAgYWRkU2Nyb2xsTGlzdGVuZXIodGFyZ2V0LCBtYWtlSGFuZGxlU2Nyb2xsKHBhaXJzLCBvcHRpb25zLm9uU2Nyb2xsLCBvcHRpb25zLmRlYm91bmNlVGltZSkpO1xuXG4gICAgbmF2YmFyLmFwcGVuZENoaWxkKG5hdkxpc3QpO1xuXG4gICAgcmV0dXJuIG5hdmJhcjtcbn07XG4iLCJcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cyxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtjb25zdCB0PXQ9Plwib2JqZWN0XCI9PXR5cGVvZiB0JiZudWxsIT10JiYxPT09dC5ub2RlVHlwZSxlPSh0LGUpPT4oIWV8fFwiaGlkZGVuXCIhPT10KSYmKFwidmlzaWJsZVwiIT09dCYmXCJjbGlwXCIhPT10KSxuPSh0LG4pPT57aWYodC5jbGllbnRIZWlnaHQ8dC5zY3JvbGxIZWlnaHR8fHQuY2xpZW50V2lkdGg8dC5zY3JvbGxXaWR0aCl7Y29uc3Qgbz1nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCk7cmV0dXJuIGUoby5vdmVyZmxvd1ksbil8fGUoby5vdmVyZmxvd1gsbil8fCh0PT57Y29uc3QgZT0odD0+e2lmKCF0Lm93bmVyRG9jdW1lbnR8fCF0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpcmV0dXJuIG51bGw7dHJ5e3JldHVybiB0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVFbGVtZW50fWNhdGNoKHQpe3JldHVybiBudWxsfX0pKHQpO3JldHVybiEhZSYmKGUuY2xpZW50SGVpZ2h0PHQuc2Nyb2xsSGVpZ2h0fHxlLmNsaWVudFdpZHRoPHQuc2Nyb2xsV2lkdGgpfSkodCl9cmV0dXJuITF9LG89KHQsZSxuLG8saSxsLHIsZCk9Pmw8dCYmcj5lfHxsPnQmJnI8ZT8wOmw8PXQmJmQ8PW58fHI+PWUmJmQ+PW4/bC10LW86cj5lJiZkPG58fGw8dCYmZD5uP3ItZStpOjAsaT10PT57Y29uc3QgZT10LnBhcmVudEVsZW1lbnQ7cmV0dXJuIG51bGw9PWU/dC5nZXRSb290Tm9kZSgpLmhvc3R8fG51bGw6ZX07ZXhwb3J0cy5jb21wdXRlPShlLGwpPT57dmFyIHIsZCxzLGM7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGRvY3VtZW50KXJldHVybltdO2NvbnN0e3Njcm9sbE1vZGU6aCxibG9jazp1LGlubGluZTpmLGJvdW5kYXJ5OmEsc2tpcE92ZXJmbG93SGlkZGVuRWxlbWVudHM6bX09bCxnPVwiZnVuY3Rpb25cIj09dHlwZW9mIGE/YTp0PT50IT09YTtpZighdChlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCB0YXJnZXRcIik7Y29uc3QgcD1kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsdz1bXTtsZXQgVz1lO2Zvcig7dChXKSYmZyhXKTspe2lmKFc9aShXKSxXPT09cCl7dy5wdXNoKFcpO2JyZWFrfW51bGwhPVcmJlc9PT1kb2N1bWVudC5ib2R5JiZuKFcpJiYhbihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpfHxudWxsIT1XJiZuKFcsbSkmJncucHVzaChXKX1jb25zdCBiPW51bGwhPShkPW51bGw9PShyPXdpbmRvdy52aXN1YWxWaWV3cG9ydCk/dm9pZCAwOnIud2lkdGgpP2Q6aW5uZXJXaWR0aCxIPW51bGwhPShjPW51bGw9PShzPXdpbmRvdy52aXN1YWxWaWV3cG9ydCk/dm9pZCAwOnMuaGVpZ2h0KT9jOmlubmVySGVpZ2h0LHtzY3JvbGxYOnYsc2Nyb2xsWTp5fT13aW5kb3cse2hlaWdodDpNLHdpZHRoOkUsdG9wOngscmlnaHQ6SSxib3R0b206QyxsZWZ0OlJ9PWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bGV0IFQ9XCJzdGFydFwiPT09dXx8XCJuZWFyZXN0XCI9PT11P3g6XCJlbmRcIj09PXU/Qzp4K00vMixWPVwiY2VudGVyXCI9PT1mP1IrRS8yOlwiZW5kXCI9PT1mP0k6Ujtjb25zdCBrPVtdO2ZvcihsZXQgdD0wO3Q8dy5sZW5ndGg7dCsrKXtjb25zdCBlPXdbdF0se2hlaWdodDpuLHdpZHRoOmksdG9wOmwscmlnaHQ6cixib3R0b206ZCxsZWZ0OnN9PWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoXCJpZi1uZWVkZWRcIj09PWgmJng+PTAmJlI+PTAmJkM8PUgmJkk8PWImJng+PWwmJkM8PWQmJlI+PXMmJkk8PXIpcmV0dXJuIGs7Y29uc3QgYz1nZXRDb21wdXRlZFN0eWxlKGUpLGE9cGFyc2VJbnQoYy5ib3JkZXJMZWZ0V2lkdGgsMTApLG09cGFyc2VJbnQoYy5ib3JkZXJUb3BXaWR0aCwxMCksZz1wYXJzZUludChjLmJvcmRlclJpZ2h0V2lkdGgsMTApLFc9cGFyc2VJbnQoYy5ib3JkZXJCb3R0b21XaWR0aCwxMCk7bGV0IEI9MCxEPTA7Y29uc3Qgaj1cIm9mZnNldFdpZHRoXCJpbiBlP2Uub2Zmc2V0V2lkdGgtZS5jbGllbnRXaWR0aC1hLWc6MCxMPVwib2Zmc2V0SGVpZ2h0XCJpbiBlP2Uub2Zmc2V0SGVpZ2h0LWUuY2xpZW50SGVpZ2h0LW0tVzowLE89XCJvZmZzZXRXaWR0aFwiaW4gZT8wPT09ZS5vZmZzZXRXaWR0aD8wOmkvZS5vZmZzZXRXaWR0aDowLFM9XCJvZmZzZXRIZWlnaHRcImluIGU/MD09PWUub2Zmc2V0SGVpZ2h0PzA6bi9lLm9mZnNldEhlaWdodDowO2lmKHA9PT1lKUI9XCJzdGFydFwiPT09dT9UOlwiZW5kXCI9PT11P1QtSDpcIm5lYXJlc3RcIj09PXU/byh5LHkrSCxILG0sVyx5K1QseStUK00sTSk6VC1ILzIsRD1cInN0YXJ0XCI9PT1mP1Y6XCJjZW50ZXJcIj09PWY/Vi1iLzI6XCJlbmRcIj09PWY/Vi1iOm8odix2K2IsYixhLGcsditWLHYrVitFLEUpLEI9TWF0aC5tYXgoMCxCK3kpLEQ9TWF0aC5tYXgoMCxEK3YpO2Vsc2V7Qj1cInN0YXJ0XCI9PT11P1QtbC1tOlwiZW5kXCI9PT11P1QtZCtXK0w6XCJuZWFyZXN0XCI9PT11P28obCxkLG4sbSxXK0wsVCxUK00sTSk6VC0obCtuLzIpK0wvMixEPVwic3RhcnRcIj09PWY/Vi1zLWE6XCJjZW50ZXJcIj09PWY/Vi0ocytpLzIpK2ovMjpcImVuZFwiPT09Zj9WLXIrZytqOm8ocyxyLGksYSxnK2osVixWK0UsRSk7Y29uc3R7c2Nyb2xsTGVmdDp0LHNjcm9sbFRvcDpjfT1lO0I9TWF0aC5tYXgoMCxNYXRoLm1pbihjK0IvUyxlLnNjcm9sbEhlaWdodC1uL1MrTCkpLEQ9TWF0aC5tYXgoMCxNYXRoLm1pbih0K0QvTyxlLnNjcm9sbFdpZHRoLWkvTytqKSksVCs9Yy1CLFYrPXQtRH1rLnB1c2goe2VsOmUsdG9wOkIsbGVmdDpEfSl9cmV0dXJuIGt9Oy8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmNqcy5tYXBcbiIsIi8qISBIYW1tZXIuSlMgLSB2Mi4wLjcgLSAyMDE2LTA0LTIyXG4gKiBodHRwOi8vaGFtbWVyanMuZ2l0aHViLmlvL1xuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNiBKb3JpayBUYW5nZWxkZXI7XG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgKi9cbihmdW5jdGlvbih3aW5kb3csIGRvY3VtZW50LCBleHBvcnROYW1lLCB1bmRlZmluZWQpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG52YXIgVkVORE9SX1BSRUZJWEVTID0gWycnLCAnd2Via2l0JywgJ01veicsICdNUycsICdtcycsICdvJ107XG52YXIgVEVTVF9FTEVNRU5UID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbnZhciBUWVBFX0ZVTkNUSU9OID0gJ2Z1bmN0aW9uJztcblxudmFyIHJvdW5kID0gTWF0aC5yb3VuZDtcbnZhciBhYnMgPSBNYXRoLmFicztcbnZhciBub3cgPSBEYXRlLm5vdztcblxuLyoqXG4gKiBzZXQgYSB0aW1lb3V0IHdpdGggYSBnaXZlbiBzY29wZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEBwYXJhbSB7TnVtYmVyfSB0aW1lb3V0XG4gKiBAcGFyYW0ge09iamVjdH0gY29udGV4dFxuICogQHJldHVybnMge251bWJlcn1cbiAqL1xuZnVuY3Rpb24gc2V0VGltZW91dENvbnRleHQoZm4sIHRpbWVvdXQsIGNvbnRleHQpIHtcbiAgICByZXR1cm4gc2V0VGltZW91dChiaW5kRm4oZm4sIGNvbnRleHQpLCB0aW1lb3V0KTtcbn1cblxuLyoqXG4gKiBpZiB0aGUgYXJndW1lbnQgaXMgYW4gYXJyYXksIHdlIHdhbnQgdG8gZXhlY3V0ZSB0aGUgZm4gb24gZWFjaCBlbnRyeVxuICogaWYgaXQgYWludCBhbiBhcnJheSB3ZSBkb24ndCB3YW50IHRvIGRvIGEgdGhpbmcuXG4gKiB0aGlzIGlzIHVzZWQgYnkgYWxsIHRoZSBtZXRob2RzIHRoYXQgYWNjZXB0IGEgc2luZ2xlIGFuZCBhcnJheSBhcmd1bWVudC5cbiAqIEBwYXJhbSB7KnxBcnJheX0gYXJnXG4gKiBAcGFyYW0ge1N0cmluZ30gZm5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbY29udGV4dF1cbiAqIEByZXR1cm5zIHtCb29sZWFufVxuICovXG5mdW5jdGlvbiBpbnZva2VBcnJheUFyZyhhcmcsIGZuLCBjb250ZXh0KSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYXJnKSkge1xuICAgICAgICBlYWNoKGFyZywgY29udGV4dFtmbl0sIGNvbnRleHQpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIHdhbGsgb2JqZWN0cyBhbmQgYXJyYXlzXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRvclxuICogQHBhcmFtIHtPYmplY3R9IGNvbnRleHRcbiAqL1xuZnVuY3Rpb24gZWFjaChvYmosIGl0ZXJhdG9yLCBjb250ZXh0KSB7XG4gICAgdmFyIGk7XG5cbiAgICBpZiAoIW9iaikge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG9iai5mb3JFYWNoKSB7XG4gICAgICAgIG9iai5mb3JFYWNoKGl0ZXJhdG9yLCBjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKG9iai5sZW5ndGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpID0gMDtcbiAgICAgICAgd2hpbGUgKGkgPCBvYmoubGVuZ3RoKSB7XG4gICAgICAgICAgICBpdGVyYXRvci5jYWxsKGNvbnRleHQsIG9ialtpXSwgaSwgb2JqKTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoaSBpbiBvYmopIHtcbiAgICAgICAgICAgIG9iai5oYXNPd25Qcm9wZXJ0eShpKSAmJiBpdGVyYXRvci5jYWxsKGNvbnRleHQsIG9ialtpXSwgaSwgb2JqKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiB3cmFwIGEgbWV0aG9kIHdpdGggYSBkZXByZWNhdGlvbiB3YXJuaW5nIGFuZCBzdGFjayB0cmFjZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gbWV0aG9kXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuICogQHBhcmFtIHtTdHJpbmd9IG1lc3NhZ2VcbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gQSBuZXcgZnVuY3Rpb24gd3JhcHBpbmcgdGhlIHN1cHBsaWVkIG1ldGhvZC5cbiAqL1xuZnVuY3Rpb24gZGVwcmVjYXRlKG1ldGhvZCwgbmFtZSwgbWVzc2FnZSkge1xuICAgIHZhciBkZXByZWNhdGlvbk1lc3NhZ2UgPSAnREVQUkVDQVRFRCBNRVRIT0Q6ICcgKyBuYW1lICsgJ1xcbicgKyBtZXNzYWdlICsgJyBBVCBcXG4nO1xuICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IoJ2dldC1zdGFjay10cmFjZScpO1xuICAgICAgICB2YXIgc3RhY2sgPSBlICYmIGUuc3RhY2sgPyBlLnN0YWNrLnJlcGxhY2UoL15bXlxcKF0rP1tcXG4kXS9nbSwgJycpXG4gICAgICAgICAgICAucmVwbGFjZSgvXlxccythdFxccysvZ20sICcnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL15PYmplY3QuPGFub255bW91cz5cXHMqXFwoL2dtLCAne2Fub255bW91c30oKUAnKSA6ICdVbmtub3duIFN0YWNrIFRyYWNlJztcblxuICAgICAgICB2YXIgbG9nID0gd2luZG93LmNvbnNvbGUgJiYgKHdpbmRvdy5jb25zb2xlLndhcm4gfHwgd2luZG93LmNvbnNvbGUubG9nKTtcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgICAgbG9nLmNhbGwod2luZG93LmNvbnNvbGUsIGRlcHJlY2F0aW9uTWVzc2FnZSwgc3RhY2spO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtZXRob2QuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9O1xufVxuXG4vKipcbiAqIGV4dGVuZCBvYmplY3QuXG4gKiBtZWFucyB0aGF0IHByb3BlcnRpZXMgaW4gZGVzdCB3aWxsIGJlIG92ZXJ3cml0dGVuIGJ5IHRoZSBvbmVzIGluIHNyYy5cbiAqIEBwYXJhbSB7T2JqZWN0fSB0YXJnZXRcbiAqIEBwYXJhbSB7Li4uT2JqZWN0fSBvYmplY3RzX3RvX2Fzc2lnblxuICogQHJldHVybnMge09iamVjdH0gdGFyZ2V0XG4gKi9cbnZhciBhc3NpZ247XG5pZiAodHlwZW9mIE9iamVjdC5hc3NpZ24gIT09ICdmdW5jdGlvbicpIHtcbiAgICBhc3NpZ24gPSBmdW5jdGlvbiBhc3NpZ24odGFyZ2V0KSB7XG4gICAgICAgIGlmICh0YXJnZXQgPT09IHVuZGVmaW5lZCB8fCB0YXJnZXQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjb252ZXJ0IHVuZGVmaW5lZCBvciBudWxsIHRvIG9iamVjdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIG91dHB1dCA9IE9iamVjdCh0YXJnZXQpO1xuICAgICAgICBmb3IgKHZhciBpbmRleCA9IDE7IGluZGV4IDwgYXJndW1lbnRzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpbmRleF07XG4gICAgICAgICAgICBpZiAoc291cmNlICE9PSB1bmRlZmluZWQgJiYgc291cmNlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgbmV4dEtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShuZXh0S2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0W25leHRLZXldID0gc291cmNlW25leHRLZXldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfTtcbn0gZWxzZSB7XG4gICAgYXNzaWduID0gT2JqZWN0LmFzc2lnbjtcbn1cblxuLyoqXG4gKiBleHRlbmQgb2JqZWN0LlxuICogbWVhbnMgdGhhdCBwcm9wZXJ0aWVzIGluIGRlc3Qgd2lsbCBiZSBvdmVyd3JpdHRlbiBieSB0aGUgb25lcyBpbiBzcmMuXG4gKiBAcGFyYW0ge09iamVjdH0gZGVzdFxuICogQHBhcmFtIHtPYmplY3R9IHNyY1xuICogQHBhcmFtIHtCb29sZWFufSBbbWVyZ2U9ZmFsc2VdXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBkZXN0XG4gKi9cbnZhciBleHRlbmQgPSBkZXByZWNhdGUoZnVuY3Rpb24gZXh0ZW5kKGRlc3QsIHNyYywgbWVyZ2UpIHtcbiAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNyYyk7XG4gICAgdmFyIGkgPSAwO1xuICAgIHdoaWxlIChpIDwga2V5cy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKCFtZXJnZSB8fCAobWVyZ2UgJiYgZGVzdFtrZXlzW2ldXSA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICAgICAgZGVzdFtrZXlzW2ldXSA9IHNyY1trZXlzW2ldXTtcbiAgICAgICAgfVxuICAgICAgICBpKys7XG4gICAgfVxuICAgIHJldHVybiBkZXN0O1xufSwgJ2V4dGVuZCcsICdVc2UgYGFzc2lnbmAuJyk7XG5cbi8qKlxuICogbWVyZ2UgdGhlIHZhbHVlcyBmcm9tIHNyYyBpbiB0aGUgZGVzdC5cbiAqIG1lYW5zIHRoYXQgcHJvcGVydGllcyB0aGF0IGV4aXN0IGluIGRlc3Qgd2lsbCBub3QgYmUgb3ZlcndyaXR0ZW4gYnkgc3JjXG4gKiBAcGFyYW0ge09iamVjdH0gZGVzdFxuICogQHBhcmFtIHtPYmplY3R9IHNyY1xuICogQHJldHVybnMge09iamVjdH0gZGVzdFxuICovXG52YXIgbWVyZ2UgPSBkZXByZWNhdGUoZnVuY3Rpb24gbWVyZ2UoZGVzdCwgc3JjKSB7XG4gICAgcmV0dXJuIGV4dGVuZChkZXN0LCBzcmMsIHRydWUpO1xufSwgJ21lcmdlJywgJ1VzZSBgYXNzaWduYC4nKTtcblxuLyoqXG4gKiBzaW1wbGUgY2xhc3MgaW5oZXJpdGFuY2VcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNoaWxkXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBiYXNlXG4gKiBAcGFyYW0ge09iamVjdH0gW3Byb3BlcnRpZXNdXG4gKi9cbmZ1bmN0aW9uIGluaGVyaXQoY2hpbGQsIGJhc2UsIHByb3BlcnRpZXMpIHtcbiAgICB2YXIgYmFzZVAgPSBiYXNlLnByb3RvdHlwZSxcbiAgICAgICAgY2hpbGRQO1xuXG4gICAgY2hpbGRQID0gY2hpbGQucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShiYXNlUCk7XG4gICAgY2hpbGRQLmNvbnN0cnVjdG9yID0gY2hpbGQ7XG4gICAgY2hpbGRQLl9zdXBlciA9IGJhc2VQO1xuXG4gICAgaWYgKHByb3BlcnRpZXMpIHtcbiAgICAgICAgYXNzaWduKGNoaWxkUCwgcHJvcGVydGllcyk7XG4gICAgfVxufVxuXG4vKipcbiAqIHNpbXBsZSBmdW5jdGlvbiBiaW5kXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHBhcmFtIHtPYmplY3R9IGNvbnRleHRcbiAqIEByZXR1cm5zIHtGdW5jdGlvbn1cbiAqL1xuZnVuY3Rpb24gYmluZEZuKGZuLCBjb250ZXh0KSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGJvdW5kRm4oKSB7XG4gICAgICAgIHJldHVybiBmbi5hcHBseShjb250ZXh0LCBhcmd1bWVudHMpO1xuICAgIH07XG59XG5cbi8qKlxuICogbGV0IGEgYm9vbGVhbiB2YWx1ZSBhbHNvIGJlIGEgZnVuY3Rpb24gdGhhdCBtdXN0IHJldHVybiBhIGJvb2xlYW5cbiAqIHRoaXMgZmlyc3QgaXRlbSBpbiBhcmdzIHdpbGwgYmUgdXNlZCBhcyB0aGUgY29udGV4dFxuICogQHBhcmFtIHtCb29sZWFufEZ1bmN0aW9ufSB2YWxcbiAqIEBwYXJhbSB7QXJyYXl9IFthcmdzXVxuICogQHJldHVybnMge0Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGJvb2xPckZuKHZhbCwgYXJncykge1xuICAgIGlmICh0eXBlb2YgdmFsID09IFRZUEVfRlVOQ1RJT04pIHtcbiAgICAgICAgcmV0dXJuIHZhbC5hcHBseShhcmdzID8gYXJnc1swXSB8fCB1bmRlZmluZWQgOiB1bmRlZmluZWQsIGFyZ3MpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufVxuXG4vKipcbiAqIHVzZSB0aGUgdmFsMiB3aGVuIHZhbDEgaXMgdW5kZWZpbmVkXG4gKiBAcGFyYW0geyp9IHZhbDFcbiAqIEBwYXJhbSB7Kn0gdmFsMlxuICogQHJldHVybnMgeyp9XG4gKi9cbmZ1bmN0aW9uIGlmVW5kZWZpbmVkKHZhbDEsIHZhbDIpIHtcbiAgICByZXR1cm4gKHZhbDEgPT09IHVuZGVmaW5lZCkgPyB2YWwyIDogdmFsMTtcbn1cblxuLyoqXG4gKiBhZGRFdmVudExpc3RlbmVyIHdpdGggbXVsdGlwbGUgZXZlbnRzIGF0IG9uY2VcbiAqIEBwYXJhbSB7RXZlbnRUYXJnZXR9IHRhcmdldFxuICogQHBhcmFtIHtTdHJpbmd9IHR5cGVzXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBoYW5kbGVyXG4gKi9cbmZ1bmN0aW9uIGFkZEV2ZW50TGlzdGVuZXJzKHRhcmdldCwgdHlwZXMsIGhhbmRsZXIpIHtcbiAgICBlYWNoKHNwbGl0U3RyKHR5cGVzKSwgZnVuY3Rpb24odHlwZSkge1xuICAgICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBoYW5kbGVyLCBmYWxzZSk7XG4gICAgfSk7XG59XG5cbi8qKlxuICogcmVtb3ZlRXZlbnRMaXN0ZW5lciB3aXRoIG11bHRpcGxlIGV2ZW50cyBhdCBvbmNlXG4gKiBAcGFyYW0ge0V2ZW50VGFyZ2V0fSB0YXJnZXRcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlc1xuICogQHBhcmFtIHtGdW5jdGlvbn0gaGFuZGxlclxuICovXG5mdW5jdGlvbiByZW1vdmVFdmVudExpc3RlbmVycyh0YXJnZXQsIHR5cGVzLCBoYW5kbGVyKSB7XG4gICAgZWFjaChzcGxpdFN0cih0eXBlcyksIGZ1bmN0aW9uKHR5cGUpIHtcbiAgICAgICAgdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSwgaGFuZGxlciwgZmFsc2UpO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIGZpbmQgaWYgYSBub2RlIGlzIGluIHRoZSBnaXZlbiBwYXJlbnRcbiAqIEBtZXRob2QgaGFzUGFyZW50XG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBub2RlXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBwYXJlbnRcbiAqIEByZXR1cm4ge0Jvb2xlYW59IGZvdW5kXG4gKi9cbmZ1bmN0aW9uIGhhc1BhcmVudChub2RlLCBwYXJlbnQpIHtcbiAgICB3aGlsZSAobm9kZSkge1xuICAgICAgICBpZiAobm9kZSA9PSBwYXJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIG5vZGUgPSBub2RlLnBhcmVudE5vZGU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBzbWFsbCBpbmRleE9mIHdyYXBwZXJcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaW5kXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn0gZm91bmRcbiAqL1xuZnVuY3Rpb24gaW5TdHIoc3RyLCBmaW5kKSB7XG4gICAgcmV0dXJuIHN0ci5pbmRleE9mKGZpbmQpID4gLTE7XG59XG5cbi8qKlxuICogc3BsaXQgc3RyaW5nIG9uIHdoaXRlc3BhY2VcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm5zIHtBcnJheX0gd29yZHNcbiAqL1xuZnVuY3Rpb24gc3BsaXRTdHIoc3RyKSB7XG4gICAgcmV0dXJuIHN0ci50cmltKCkuc3BsaXQoL1xccysvZyk7XG59XG5cbi8qKlxuICogZmluZCBpZiBhIGFycmF5IGNvbnRhaW5zIHRoZSBvYmplY3QgdXNpbmcgaW5kZXhPZiBvciBhIHNpbXBsZSBwb2x5RmlsbFxuICogQHBhcmFtIHtBcnJheX0gc3JjXG4gKiBAcGFyYW0ge1N0cmluZ30gZmluZFxuICogQHBhcmFtIHtTdHJpbmd9IFtmaW5kQnlLZXldXG4gKiBAcmV0dXJuIHtCb29sZWFufE51bWJlcn0gZmFsc2Ugd2hlbiBub3QgZm91bmQsIG9yIHRoZSBpbmRleFxuICovXG5mdW5jdGlvbiBpbkFycmF5KHNyYywgZmluZCwgZmluZEJ5S2V5KSB7XG4gICAgaWYgKHNyYy5pbmRleE9mICYmICFmaW5kQnlLZXkpIHtcbiAgICAgICAgcmV0dXJuIHNyYy5pbmRleE9mKGZpbmQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBpID0gMDtcbiAgICAgICAgd2hpbGUgKGkgPCBzcmMubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoKGZpbmRCeUtleSAmJiBzcmNbaV1bZmluZEJ5S2V5XSA9PSBmaW5kKSB8fCAoIWZpbmRCeUtleSAmJiBzcmNbaV0gPT09IGZpbmQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbn1cblxuLyoqXG4gKiBjb252ZXJ0IGFycmF5LWxpa2Ugb2JqZWN0cyB0byByZWFsIGFycmF5c1xuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHJldHVybnMge0FycmF5fVxuICovXG5mdW5jdGlvbiB0b0FycmF5KG9iaikge1xuICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChvYmosIDApO1xufVxuXG4vKipcbiAqIHVuaXF1ZSBhcnJheSB3aXRoIG9iamVjdHMgYmFzZWQgb24gYSBrZXkgKGxpa2UgJ2lkJykgb3IganVzdCBieSB0aGUgYXJyYXkncyB2YWx1ZVxuICogQHBhcmFtIHtBcnJheX0gc3JjIFt7aWQ6MX0se2lkOjJ9LHtpZDoxfV1cbiAqIEBwYXJhbSB7U3RyaW5nfSBba2V5XVxuICogQHBhcmFtIHtCb29sZWFufSBbc29ydD1GYWxzZV1cbiAqIEByZXR1cm5zIHtBcnJheX0gW3tpZDoxfSx7aWQ6Mn1dXG4gKi9cbmZ1bmN0aW9uIHVuaXF1ZUFycmF5KHNyYywga2V5LCBzb3J0KSB7XG4gICAgdmFyIHJlc3VsdHMgPSBbXTtcbiAgICB2YXIgdmFsdWVzID0gW107XG4gICAgdmFyIGkgPSAwO1xuXG4gICAgd2hpbGUgKGkgPCBzcmMubGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWwgPSBrZXkgPyBzcmNbaV1ba2V5XSA6IHNyY1tpXTtcbiAgICAgICAgaWYgKGluQXJyYXkodmFsdWVzLCB2YWwpIDwgMCkge1xuICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHNyY1tpXSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWVzW2ldID0gdmFsO1xuICAgICAgICBpKys7XG4gICAgfVxuXG4gICAgaWYgKHNvcnQpIHtcbiAgICAgICAgaWYgKCFrZXkpIHtcbiAgICAgICAgICAgIHJlc3VsdHMgPSByZXN1bHRzLnNvcnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdHMgPSByZXN1bHRzLnNvcnQoZnVuY3Rpb24gc29ydFVuaXF1ZUFycmF5KGEsIGIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYVtrZXldID4gYltrZXldO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0cztcbn1cblxuLyoqXG4gKiBnZXQgdGhlIHByZWZpeGVkIHByb3BlcnR5XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcGFyYW0ge1N0cmluZ30gcHJvcGVydHlcbiAqIEByZXR1cm5zIHtTdHJpbmd8VW5kZWZpbmVkfSBwcmVmaXhlZFxuICovXG5mdW5jdGlvbiBwcmVmaXhlZChvYmosIHByb3BlcnR5KSB7XG4gICAgdmFyIHByZWZpeCwgcHJvcDtcbiAgICB2YXIgY2FtZWxQcm9wID0gcHJvcGVydHlbMF0udG9VcHBlckNhc2UoKSArIHByb3BlcnR5LnNsaWNlKDEpO1xuXG4gICAgdmFyIGkgPSAwO1xuICAgIHdoaWxlIChpIDwgVkVORE9SX1BSRUZJWEVTLmxlbmd0aCkge1xuICAgICAgICBwcmVmaXggPSBWRU5ET1JfUFJFRklYRVNbaV07XG4gICAgICAgIHByb3AgPSAocHJlZml4KSA/IHByZWZpeCArIGNhbWVsUHJvcCA6IHByb3BlcnR5O1xuXG4gICAgICAgIGlmIChwcm9wIGluIG9iaikge1xuICAgICAgICAgICAgcmV0dXJuIHByb3A7XG4gICAgICAgIH1cbiAgICAgICAgaSsrO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIGdldCBhIHVuaXF1ZSBpZFxuICogQHJldHVybnMge251bWJlcn0gdW5pcXVlSWRcbiAqL1xudmFyIF91bmlxdWVJZCA9IDE7XG5mdW5jdGlvbiB1bmlxdWVJZCgpIHtcbiAgICByZXR1cm4gX3VuaXF1ZUlkKys7XG59XG5cbi8qKlxuICogZ2V0IHRoZSB3aW5kb3cgb2JqZWN0IG9mIGFuIGVsZW1lbnRcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnRcbiAqIEByZXR1cm5zIHtEb2N1bWVudFZpZXd8V2luZG93fVxuICovXG5mdW5jdGlvbiBnZXRXaW5kb3dGb3JFbGVtZW50KGVsZW1lbnQpIHtcbiAgICB2YXIgZG9jID0gZWxlbWVudC5vd25lckRvY3VtZW50IHx8IGVsZW1lbnQ7XG4gICAgcmV0dXJuIChkb2MuZGVmYXVsdFZpZXcgfHwgZG9jLnBhcmVudFdpbmRvdyB8fCB3aW5kb3cpO1xufVxuXG52YXIgTU9CSUxFX1JFR0VYID0gL21vYmlsZXx0YWJsZXR8aXAoYWR8aG9uZXxvZCl8YW5kcm9pZC9pO1xuXG52YXIgU1VQUE9SVF9UT1VDSCA9ICgnb250b3VjaHN0YXJ0JyBpbiB3aW5kb3cpO1xudmFyIFNVUFBPUlRfUE9JTlRFUl9FVkVOVFMgPSBwcmVmaXhlZCh3aW5kb3csICdQb2ludGVyRXZlbnQnKSAhPT0gdW5kZWZpbmVkO1xudmFyIFNVUFBPUlRfT05MWV9UT1VDSCA9IFNVUFBPUlRfVE9VQ0ggJiYgTU9CSUxFX1JFR0VYLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5cbnZhciBJTlBVVF9UWVBFX1RPVUNIID0gJ3RvdWNoJztcbnZhciBJTlBVVF9UWVBFX1BFTiA9ICdwZW4nO1xudmFyIElOUFVUX1RZUEVfTU9VU0UgPSAnbW91c2UnO1xudmFyIElOUFVUX1RZUEVfS0lORUNUID0gJ2tpbmVjdCc7XG5cbnZhciBDT01QVVRFX0lOVEVSVkFMID0gMjU7XG5cbnZhciBJTlBVVF9TVEFSVCA9IDE7XG52YXIgSU5QVVRfTU9WRSA9IDI7XG52YXIgSU5QVVRfRU5EID0gNDtcbnZhciBJTlBVVF9DQU5DRUwgPSA4O1xuXG52YXIgRElSRUNUSU9OX05PTkUgPSAxO1xudmFyIERJUkVDVElPTl9MRUZUID0gMjtcbnZhciBESVJFQ1RJT05fUklHSFQgPSA0O1xudmFyIERJUkVDVElPTl9VUCA9IDg7XG52YXIgRElSRUNUSU9OX0RPV04gPSAxNjtcblxudmFyIERJUkVDVElPTl9IT1JJWk9OVEFMID0gRElSRUNUSU9OX0xFRlQgfCBESVJFQ1RJT05fUklHSFQ7XG52YXIgRElSRUNUSU9OX1ZFUlRJQ0FMID0gRElSRUNUSU9OX1VQIHwgRElSRUNUSU9OX0RPV047XG52YXIgRElSRUNUSU9OX0FMTCA9IERJUkVDVElPTl9IT1JJWk9OVEFMIHwgRElSRUNUSU9OX1ZFUlRJQ0FMO1xuXG52YXIgUFJPUFNfWFkgPSBbJ3gnLCAneSddO1xudmFyIFBST1BTX0NMSUVOVF9YWSA9IFsnY2xpZW50WCcsICdjbGllbnRZJ107XG5cbi8qKlxuICogY3JlYXRlIG5ldyBpbnB1dCB0eXBlIG1hbmFnZXJcbiAqIEBwYXJhbSB7TWFuYWdlcn0gbWFuYWdlclxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm5zIHtJbnB1dH1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5mdW5jdGlvbiBJbnB1dChtYW5hZ2VyLCBjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB0aGlzLm1hbmFnZXIgPSBtYW5hZ2VyO1xuICAgIHRoaXMuY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICB0aGlzLmVsZW1lbnQgPSBtYW5hZ2VyLmVsZW1lbnQ7XG4gICAgdGhpcy50YXJnZXQgPSBtYW5hZ2VyLm9wdGlvbnMuaW5wdXRUYXJnZXQ7XG5cbiAgICAvLyBzbWFsbGVyIHdyYXBwZXIgYXJvdW5kIHRoZSBoYW5kbGVyLCBmb3IgdGhlIHNjb3BlIGFuZCB0aGUgZW5hYmxlZCBzdGF0ZSBvZiB0aGUgbWFuYWdlcixcbiAgICAvLyBzbyB3aGVuIGRpc2FibGVkIHRoZSBpbnB1dCBldmVudHMgYXJlIGNvbXBsZXRlbHkgYnlwYXNzZWQuXG4gICAgdGhpcy5kb21IYW5kbGVyID0gZnVuY3Rpb24oZXYpIHtcbiAgICAgICAgaWYgKGJvb2xPckZuKG1hbmFnZXIub3B0aW9ucy5lbmFibGUsIFttYW5hZ2VyXSkpIHtcbiAgICAgICAgICAgIHNlbGYuaGFuZGxlcihldik7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5pbml0KCk7XG5cbn1cblxuSW5wdXQucHJvdG90eXBlID0ge1xuICAgIC8qKlxuICAgICAqIHNob3VsZCBoYW5kbGUgdGhlIGlucHV0RXZlbnQgZGF0YSBhbmQgdHJpZ2dlciB0aGUgY2FsbGJhY2tcbiAgICAgKiBAdmlydHVhbFxuICAgICAqL1xuICAgIGhhbmRsZXI6IGZ1bmN0aW9uKCkgeyB9LFxuXG4gICAgLyoqXG4gICAgICogYmluZCB0aGUgZXZlbnRzXG4gICAgICovXG4gICAgaW5pdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuZXZFbCAmJiBhZGRFdmVudExpc3RlbmVycyh0aGlzLmVsZW1lbnQsIHRoaXMuZXZFbCwgdGhpcy5kb21IYW5kbGVyKTtcbiAgICAgICAgdGhpcy5ldlRhcmdldCAmJiBhZGRFdmVudExpc3RlbmVycyh0aGlzLnRhcmdldCwgdGhpcy5ldlRhcmdldCwgdGhpcy5kb21IYW5kbGVyKTtcbiAgICAgICAgdGhpcy5ldldpbiAmJiBhZGRFdmVudExpc3RlbmVycyhnZXRXaW5kb3dGb3JFbGVtZW50KHRoaXMuZWxlbWVudCksIHRoaXMuZXZXaW4sIHRoaXMuZG9tSGFuZGxlcik7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHVuYmluZCB0aGUgZXZlbnRzXG4gICAgICovXG4gICAgZGVzdHJveTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuZXZFbCAmJiByZW1vdmVFdmVudExpc3RlbmVycyh0aGlzLmVsZW1lbnQsIHRoaXMuZXZFbCwgdGhpcy5kb21IYW5kbGVyKTtcbiAgICAgICAgdGhpcy5ldlRhcmdldCAmJiByZW1vdmVFdmVudExpc3RlbmVycyh0aGlzLnRhcmdldCwgdGhpcy5ldlRhcmdldCwgdGhpcy5kb21IYW5kbGVyKTtcbiAgICAgICAgdGhpcy5ldldpbiAmJiByZW1vdmVFdmVudExpc3RlbmVycyhnZXRXaW5kb3dGb3JFbGVtZW50KHRoaXMuZWxlbWVudCksIHRoaXMuZXZXaW4sIHRoaXMuZG9tSGFuZGxlcik7XG4gICAgfVxufTtcblxuLyoqXG4gKiBjcmVhdGUgbmV3IGlucHV0IHR5cGUgbWFuYWdlclxuICogY2FsbGVkIGJ5IHRoZSBNYW5hZ2VyIGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge0hhbW1lcn0gbWFuYWdlclxuICogQHJldHVybnMge0lucHV0fVxuICovXG5mdW5jdGlvbiBjcmVhdGVJbnB1dEluc3RhbmNlKG1hbmFnZXIpIHtcbiAgICB2YXIgVHlwZTtcbiAgICB2YXIgaW5wdXRDbGFzcyA9IG1hbmFnZXIub3B0aW9ucy5pbnB1dENsYXNzO1xuXG4gICAgaWYgKGlucHV0Q2xhc3MpIHtcbiAgICAgICAgVHlwZSA9IGlucHV0Q2xhc3M7XG4gICAgfSBlbHNlIGlmIChTVVBQT1JUX1BPSU5URVJfRVZFTlRTKSB7XG4gICAgICAgIFR5cGUgPSBQb2ludGVyRXZlbnRJbnB1dDtcbiAgICB9IGVsc2UgaWYgKFNVUFBPUlRfT05MWV9UT1VDSCkge1xuICAgICAgICBUeXBlID0gVG91Y2hJbnB1dDtcbiAgICB9IGVsc2UgaWYgKCFTVVBQT1JUX1RPVUNIKSB7XG4gICAgICAgIFR5cGUgPSBNb3VzZUlucHV0O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIFR5cGUgPSBUb3VjaE1vdXNlSW5wdXQ7XG4gICAgfVxuICAgIHJldHVybiBuZXcgKFR5cGUpKG1hbmFnZXIsIGlucHV0SGFuZGxlcik7XG59XG5cbi8qKlxuICogaGFuZGxlIGlucHV0IGV2ZW50c1xuICogQHBhcmFtIHtNYW5hZ2VyfSBtYW5hZ2VyXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRUeXBlXG4gKiBAcGFyYW0ge09iamVjdH0gaW5wdXRcbiAqL1xuZnVuY3Rpb24gaW5wdXRIYW5kbGVyKG1hbmFnZXIsIGV2ZW50VHlwZSwgaW5wdXQpIHtcbiAgICB2YXIgcG9pbnRlcnNMZW4gPSBpbnB1dC5wb2ludGVycy5sZW5ndGg7XG4gICAgdmFyIGNoYW5nZWRQb2ludGVyc0xlbiA9IGlucHV0LmNoYW5nZWRQb2ludGVycy5sZW5ndGg7XG4gICAgdmFyIGlzRmlyc3QgPSAoZXZlbnRUeXBlICYgSU5QVVRfU1RBUlQgJiYgKHBvaW50ZXJzTGVuIC0gY2hhbmdlZFBvaW50ZXJzTGVuID09PSAwKSk7XG4gICAgdmFyIGlzRmluYWwgPSAoZXZlbnRUeXBlICYgKElOUFVUX0VORCB8IElOUFVUX0NBTkNFTCkgJiYgKHBvaW50ZXJzTGVuIC0gY2hhbmdlZFBvaW50ZXJzTGVuID09PSAwKSk7XG5cbiAgICBpbnB1dC5pc0ZpcnN0ID0gISFpc0ZpcnN0O1xuICAgIGlucHV0LmlzRmluYWwgPSAhIWlzRmluYWw7XG5cbiAgICBpZiAoaXNGaXJzdCkge1xuICAgICAgICBtYW5hZ2VyLnNlc3Npb24gPSB7fTtcbiAgICB9XG5cbiAgICAvLyBzb3VyY2UgZXZlbnQgaXMgdGhlIG5vcm1hbGl6ZWQgdmFsdWUgb2YgdGhlIGRvbUV2ZW50c1xuICAgIC8vIGxpa2UgJ3RvdWNoc3RhcnQsIG1vdXNldXAsIHBvaW50ZXJkb3duJ1xuICAgIGlucHV0LmV2ZW50VHlwZSA9IGV2ZW50VHlwZTtcblxuICAgIC8vIGNvbXB1dGUgc2NhbGUsIHJvdGF0aW9uIGV0Y1xuICAgIGNvbXB1dGVJbnB1dERhdGEobWFuYWdlciwgaW5wdXQpO1xuXG4gICAgLy8gZW1pdCBzZWNyZXQgZXZlbnRcbiAgICBtYW5hZ2VyLmVtaXQoJ2hhbW1lci5pbnB1dCcsIGlucHV0KTtcblxuICAgIG1hbmFnZXIucmVjb2duaXplKGlucHV0KTtcbiAgICBtYW5hZ2VyLnNlc3Npb24ucHJldklucHV0ID0gaW5wdXQ7XG59XG5cbi8qKlxuICogZXh0ZW5kIHRoZSBkYXRhIHdpdGggc29tZSB1c2FibGUgcHJvcGVydGllcyBsaWtlIHNjYWxlLCByb3RhdGUsIHZlbG9jaXR5IGV0Y1xuICogQHBhcmFtIHtPYmplY3R9IG1hbmFnZXJcbiAqIEBwYXJhbSB7T2JqZWN0fSBpbnB1dFxuICovXG5mdW5jdGlvbiBjb21wdXRlSW5wdXREYXRhKG1hbmFnZXIsIGlucHV0KSB7XG4gICAgdmFyIHNlc3Npb24gPSBtYW5hZ2VyLnNlc3Npb247XG4gICAgdmFyIHBvaW50ZXJzID0gaW5wdXQucG9pbnRlcnM7XG4gICAgdmFyIHBvaW50ZXJzTGVuZ3RoID0gcG9pbnRlcnMubGVuZ3RoO1xuXG4gICAgLy8gc3RvcmUgdGhlIGZpcnN0IGlucHV0IHRvIGNhbGN1bGF0ZSB0aGUgZGlzdGFuY2UgYW5kIGRpcmVjdGlvblxuICAgIGlmICghc2Vzc2lvbi5maXJzdElucHV0KSB7XG4gICAgICAgIHNlc3Npb24uZmlyc3RJbnB1dCA9IHNpbXBsZUNsb25lSW5wdXREYXRhKGlucHV0KTtcbiAgICB9XG5cbiAgICAvLyB0byBjb21wdXRlIHNjYWxlIGFuZCByb3RhdGlvbiB3ZSBuZWVkIHRvIHN0b3JlIHRoZSBtdWx0aXBsZSB0b3VjaGVzXG4gICAgaWYgKHBvaW50ZXJzTGVuZ3RoID4gMSAmJiAhc2Vzc2lvbi5maXJzdE11bHRpcGxlKSB7XG4gICAgICAgIHNlc3Npb24uZmlyc3RNdWx0aXBsZSA9IHNpbXBsZUNsb25lSW5wdXREYXRhKGlucHV0KTtcbiAgICB9IGVsc2UgaWYgKHBvaW50ZXJzTGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHNlc3Npb24uZmlyc3RNdWx0aXBsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHZhciBmaXJzdElucHV0ID0gc2Vzc2lvbi5maXJzdElucHV0O1xuICAgIHZhciBmaXJzdE11bHRpcGxlID0gc2Vzc2lvbi5maXJzdE11bHRpcGxlO1xuICAgIHZhciBvZmZzZXRDZW50ZXIgPSBmaXJzdE11bHRpcGxlID8gZmlyc3RNdWx0aXBsZS5jZW50ZXIgOiBmaXJzdElucHV0LmNlbnRlcjtcblxuICAgIHZhciBjZW50ZXIgPSBpbnB1dC5jZW50ZXIgPSBnZXRDZW50ZXIocG9pbnRlcnMpO1xuICAgIGlucHV0LnRpbWVTdGFtcCA9IG5vdygpO1xuICAgIGlucHV0LmRlbHRhVGltZSA9IGlucHV0LnRpbWVTdGFtcCAtIGZpcnN0SW5wdXQudGltZVN0YW1wO1xuXG4gICAgaW5wdXQuYW5nbGUgPSBnZXRBbmdsZShvZmZzZXRDZW50ZXIsIGNlbnRlcik7XG4gICAgaW5wdXQuZGlzdGFuY2UgPSBnZXREaXN0YW5jZShvZmZzZXRDZW50ZXIsIGNlbnRlcik7XG5cbiAgICBjb21wdXRlRGVsdGFYWShzZXNzaW9uLCBpbnB1dCk7XG4gICAgaW5wdXQub2Zmc2V0RGlyZWN0aW9uID0gZ2V0RGlyZWN0aW9uKGlucHV0LmRlbHRhWCwgaW5wdXQuZGVsdGFZKTtcblxuICAgIHZhciBvdmVyYWxsVmVsb2NpdHkgPSBnZXRWZWxvY2l0eShpbnB1dC5kZWx0YVRpbWUsIGlucHV0LmRlbHRhWCwgaW5wdXQuZGVsdGFZKTtcbiAgICBpbnB1dC5vdmVyYWxsVmVsb2NpdHlYID0gb3ZlcmFsbFZlbG9jaXR5Lng7XG4gICAgaW5wdXQub3ZlcmFsbFZlbG9jaXR5WSA9IG92ZXJhbGxWZWxvY2l0eS55O1xuICAgIGlucHV0Lm92ZXJhbGxWZWxvY2l0eSA9IChhYnMob3ZlcmFsbFZlbG9jaXR5LngpID4gYWJzKG92ZXJhbGxWZWxvY2l0eS55KSkgPyBvdmVyYWxsVmVsb2NpdHkueCA6IG92ZXJhbGxWZWxvY2l0eS55O1xuXG4gICAgaW5wdXQuc2NhbGUgPSBmaXJzdE11bHRpcGxlID8gZ2V0U2NhbGUoZmlyc3RNdWx0aXBsZS5wb2ludGVycywgcG9pbnRlcnMpIDogMTtcbiAgICBpbnB1dC5yb3RhdGlvbiA9IGZpcnN0TXVsdGlwbGUgPyBnZXRSb3RhdGlvbihmaXJzdE11bHRpcGxlLnBvaW50ZXJzLCBwb2ludGVycykgOiAwO1xuXG4gICAgaW5wdXQubWF4UG9pbnRlcnMgPSAhc2Vzc2lvbi5wcmV2SW5wdXQgPyBpbnB1dC5wb2ludGVycy5sZW5ndGggOiAoKGlucHV0LnBvaW50ZXJzLmxlbmd0aCA+XG4gICAgICAgIHNlc3Npb24ucHJldklucHV0Lm1heFBvaW50ZXJzKSA/IGlucHV0LnBvaW50ZXJzLmxlbmd0aCA6IHNlc3Npb24ucHJldklucHV0Lm1heFBvaW50ZXJzKTtcblxuICAgIGNvbXB1dGVJbnRlcnZhbElucHV0RGF0YShzZXNzaW9uLCBpbnB1dCk7XG5cbiAgICAvLyBmaW5kIHRoZSBjb3JyZWN0IHRhcmdldFxuICAgIHZhciB0YXJnZXQgPSBtYW5hZ2VyLmVsZW1lbnQ7XG4gICAgaWYgKGhhc1BhcmVudChpbnB1dC5zcmNFdmVudC50YXJnZXQsIHRhcmdldCkpIHtcbiAgICAgICAgdGFyZ2V0ID0gaW5wdXQuc3JjRXZlbnQudGFyZ2V0O1xuICAgIH1cbiAgICBpbnB1dC50YXJnZXQgPSB0YXJnZXQ7XG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVEZWx0YVhZKHNlc3Npb24sIGlucHV0KSB7XG4gICAgdmFyIGNlbnRlciA9IGlucHV0LmNlbnRlcjtcbiAgICB2YXIgb2Zmc2V0ID0gc2Vzc2lvbi5vZmZzZXREZWx0YSB8fCB7fTtcbiAgICB2YXIgcHJldkRlbHRhID0gc2Vzc2lvbi5wcmV2RGVsdGEgfHwge307XG4gICAgdmFyIHByZXZJbnB1dCA9IHNlc3Npb24ucHJldklucHV0IHx8IHt9O1xuXG4gICAgaWYgKGlucHV0LmV2ZW50VHlwZSA9PT0gSU5QVVRfU1RBUlQgfHwgcHJldklucHV0LmV2ZW50VHlwZSA9PT0gSU5QVVRfRU5EKSB7XG4gICAgICAgIHByZXZEZWx0YSA9IHNlc3Npb24ucHJldkRlbHRhID0ge1xuICAgICAgICAgICAgeDogcHJldklucHV0LmRlbHRhWCB8fCAwLFxuICAgICAgICAgICAgeTogcHJldklucHV0LmRlbHRhWSB8fCAwXG4gICAgICAgIH07XG5cbiAgICAgICAgb2Zmc2V0ID0gc2Vzc2lvbi5vZmZzZXREZWx0YSA9IHtcbiAgICAgICAgICAgIHg6IGNlbnRlci54LFxuICAgICAgICAgICAgeTogY2VudGVyLnlcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBpbnB1dC5kZWx0YVggPSBwcmV2RGVsdGEueCArIChjZW50ZXIueCAtIG9mZnNldC54KTtcbiAgICBpbnB1dC5kZWx0YVkgPSBwcmV2RGVsdGEueSArIChjZW50ZXIueSAtIG9mZnNldC55KTtcbn1cblxuLyoqXG4gKiB2ZWxvY2l0eSBpcyBjYWxjdWxhdGVkIGV2ZXJ5IHggbXNcbiAqIEBwYXJhbSB7T2JqZWN0fSBzZXNzaW9uXG4gKiBAcGFyYW0ge09iamVjdH0gaW5wdXRcbiAqL1xuZnVuY3Rpb24gY29tcHV0ZUludGVydmFsSW5wdXREYXRhKHNlc3Npb24sIGlucHV0KSB7XG4gICAgdmFyIGxhc3QgPSBzZXNzaW9uLmxhc3RJbnRlcnZhbCB8fCBpbnB1dCxcbiAgICAgICAgZGVsdGFUaW1lID0gaW5wdXQudGltZVN0YW1wIC0gbGFzdC50aW1lU3RhbXAsXG4gICAgICAgIHZlbG9jaXR5LCB2ZWxvY2l0eVgsIHZlbG9jaXR5WSwgZGlyZWN0aW9uO1xuXG4gICAgaWYgKGlucHV0LmV2ZW50VHlwZSAhPSBJTlBVVF9DQU5DRUwgJiYgKGRlbHRhVGltZSA+IENPTVBVVEVfSU5URVJWQUwgfHwgbGFzdC52ZWxvY2l0eSA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICB2YXIgZGVsdGFYID0gaW5wdXQuZGVsdGFYIC0gbGFzdC5kZWx0YVg7XG4gICAgICAgIHZhciBkZWx0YVkgPSBpbnB1dC5kZWx0YVkgLSBsYXN0LmRlbHRhWTtcblxuICAgICAgICB2YXIgdiA9IGdldFZlbG9jaXR5KGRlbHRhVGltZSwgZGVsdGFYLCBkZWx0YVkpO1xuICAgICAgICB2ZWxvY2l0eVggPSB2Lng7XG4gICAgICAgIHZlbG9jaXR5WSA9IHYueTtcbiAgICAgICAgdmVsb2NpdHkgPSAoYWJzKHYueCkgPiBhYnModi55KSkgPyB2LnggOiB2Lnk7XG4gICAgICAgIGRpcmVjdGlvbiA9IGdldERpcmVjdGlvbihkZWx0YVgsIGRlbHRhWSk7XG5cbiAgICAgICAgc2Vzc2lvbi5sYXN0SW50ZXJ2YWwgPSBpbnB1dDtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyB1c2UgbGF0ZXN0IHZlbG9jaXR5IGluZm8gaWYgaXQgZG9lc24ndCBvdmVydGFrZSBhIG1pbmltdW0gcGVyaW9kXG4gICAgICAgIHZlbG9jaXR5ID0gbGFzdC52ZWxvY2l0eTtcbiAgICAgICAgdmVsb2NpdHlYID0gbGFzdC52ZWxvY2l0eVg7XG4gICAgICAgIHZlbG9jaXR5WSA9IGxhc3QudmVsb2NpdHlZO1xuICAgICAgICBkaXJlY3Rpb24gPSBsYXN0LmRpcmVjdGlvbjtcbiAgICB9XG5cbiAgICBpbnB1dC52ZWxvY2l0eSA9IHZlbG9jaXR5O1xuICAgIGlucHV0LnZlbG9jaXR5WCA9IHZlbG9jaXR5WDtcbiAgICBpbnB1dC52ZWxvY2l0eVkgPSB2ZWxvY2l0eVk7XG4gICAgaW5wdXQuZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xufVxuXG4vKipcbiAqIGNyZWF0ZSBhIHNpbXBsZSBjbG9uZSBmcm9tIHRoZSBpbnB1dCB1c2VkIGZvciBzdG9yYWdlIG9mIGZpcnN0SW5wdXQgYW5kIGZpcnN0TXVsdGlwbGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBpbnB1dFxuICogQHJldHVybnMge09iamVjdH0gY2xvbmVkSW5wdXREYXRhXG4gKi9cbmZ1bmN0aW9uIHNpbXBsZUNsb25lSW5wdXREYXRhKGlucHV0KSB7XG4gICAgLy8gbWFrZSBhIHNpbXBsZSBjb3B5IG9mIHRoZSBwb2ludGVycyBiZWNhdXNlIHdlIHdpbGwgZ2V0IGEgcmVmZXJlbmNlIGlmIHdlIGRvbid0XG4gICAgLy8gd2Ugb25seSBuZWVkIGNsaWVudFhZIGZvciB0aGUgY2FsY3VsYXRpb25zXG4gICAgdmFyIHBvaW50ZXJzID0gW107XG4gICAgdmFyIGkgPSAwO1xuICAgIHdoaWxlIChpIDwgaW5wdXQucG9pbnRlcnMubGVuZ3RoKSB7XG4gICAgICAgIHBvaW50ZXJzW2ldID0ge1xuICAgICAgICAgICAgY2xpZW50WDogcm91bmQoaW5wdXQucG9pbnRlcnNbaV0uY2xpZW50WCksXG4gICAgICAgICAgICBjbGllbnRZOiByb3VuZChpbnB1dC5wb2ludGVyc1tpXS5jbGllbnRZKVxuICAgICAgICB9O1xuICAgICAgICBpKys7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgdGltZVN0YW1wOiBub3coKSxcbiAgICAgICAgcG9pbnRlcnM6IHBvaW50ZXJzLFxuICAgICAgICBjZW50ZXI6IGdldENlbnRlcihwb2ludGVycyksXG4gICAgICAgIGRlbHRhWDogaW5wdXQuZGVsdGFYLFxuICAgICAgICBkZWx0YVk6IGlucHV0LmRlbHRhWVxuICAgIH07XG59XG5cbi8qKlxuICogZ2V0IHRoZSBjZW50ZXIgb2YgYWxsIHRoZSBwb2ludGVyc1xuICogQHBhcmFtIHtBcnJheX0gcG9pbnRlcnNcbiAqIEByZXR1cm4ge09iamVjdH0gY2VudGVyIGNvbnRhaW5zIGB4YCBhbmQgYHlgIHByb3BlcnRpZXNcbiAqL1xuZnVuY3Rpb24gZ2V0Q2VudGVyKHBvaW50ZXJzKSB7XG4gICAgdmFyIHBvaW50ZXJzTGVuZ3RoID0gcG9pbnRlcnMubGVuZ3RoO1xuXG4gICAgLy8gbm8gbmVlZCB0byBsb29wIHdoZW4gb25seSBvbmUgdG91Y2hcbiAgICBpZiAocG9pbnRlcnNMZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHg6IHJvdW5kKHBvaW50ZXJzWzBdLmNsaWVudFgpLFxuICAgICAgICAgICAgeTogcm91bmQocG9pbnRlcnNbMF0uY2xpZW50WSlcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgeCA9IDAsIHkgPSAwLCBpID0gMDtcbiAgICB3aGlsZSAoaSA8IHBvaW50ZXJzTGVuZ3RoKSB7XG4gICAgICAgIHggKz0gcG9pbnRlcnNbaV0uY2xpZW50WDtcbiAgICAgICAgeSArPSBwb2ludGVyc1tpXS5jbGllbnRZO1xuICAgICAgICBpKys7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgeDogcm91bmQoeCAvIHBvaW50ZXJzTGVuZ3RoKSxcbiAgICAgICAgeTogcm91bmQoeSAvIHBvaW50ZXJzTGVuZ3RoKVxuICAgIH07XG59XG5cbi8qKlxuICogY2FsY3VsYXRlIHRoZSB2ZWxvY2l0eSBiZXR3ZWVuIHR3byBwb2ludHMuIHVuaXQgaXMgaW4gcHggcGVyIG1zLlxuICogQHBhcmFtIHtOdW1iZXJ9IGRlbHRhVGltZVxuICogQHBhcmFtIHtOdW1iZXJ9IHhcbiAqIEBwYXJhbSB7TnVtYmVyfSB5XG4gKiBAcmV0dXJuIHtPYmplY3R9IHZlbG9jaXR5IGB4YCBhbmQgYHlgXG4gKi9cbmZ1bmN0aW9uIGdldFZlbG9jaXR5KGRlbHRhVGltZSwgeCwgeSkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHg6IHggLyBkZWx0YVRpbWUgfHwgMCxcbiAgICAgICAgeTogeSAvIGRlbHRhVGltZSB8fCAwXG4gICAgfTtcbn1cblxuLyoqXG4gKiBnZXQgdGhlIGRpcmVjdGlvbiBiZXR3ZWVuIHR3byBwb2ludHNcbiAqIEBwYXJhbSB7TnVtYmVyfSB4XG4gKiBAcGFyYW0ge051bWJlcn0geVxuICogQHJldHVybiB7TnVtYmVyfSBkaXJlY3Rpb25cbiAqL1xuZnVuY3Rpb24gZ2V0RGlyZWN0aW9uKHgsIHkpIHtcbiAgICBpZiAoeCA9PT0geSkge1xuICAgICAgICByZXR1cm4gRElSRUNUSU9OX05PTkU7XG4gICAgfVxuXG4gICAgaWYgKGFicyh4KSA+PSBhYnMoeSkpIHtcbiAgICAgICAgcmV0dXJuIHggPCAwID8gRElSRUNUSU9OX0xFRlQgOiBESVJFQ1RJT05fUklHSFQ7XG4gICAgfVxuICAgIHJldHVybiB5IDwgMCA/IERJUkVDVElPTl9VUCA6IERJUkVDVElPTl9ET1dOO1xufVxuXG4vKipcbiAqIGNhbGN1bGF0ZSB0aGUgYWJzb2x1dGUgZGlzdGFuY2UgYmV0d2VlbiB0d28gcG9pbnRzXG4gKiBAcGFyYW0ge09iamVjdH0gcDEge3gsIHl9XG4gKiBAcGFyYW0ge09iamVjdH0gcDIge3gsIHl9XG4gKiBAcGFyYW0ge0FycmF5fSBbcHJvcHNdIGNvbnRhaW5pbmcgeCBhbmQgeSBrZXlzXG4gKiBAcmV0dXJuIHtOdW1iZXJ9IGRpc3RhbmNlXG4gKi9cbmZ1bmN0aW9uIGdldERpc3RhbmNlKHAxLCBwMiwgcHJvcHMpIHtcbiAgICBpZiAoIXByb3BzKSB7XG4gICAgICAgIHByb3BzID0gUFJPUFNfWFk7XG4gICAgfVxuICAgIHZhciB4ID0gcDJbcHJvcHNbMF1dIC0gcDFbcHJvcHNbMF1dLFxuICAgICAgICB5ID0gcDJbcHJvcHNbMV1dIC0gcDFbcHJvcHNbMV1dO1xuXG4gICAgcmV0dXJuIE1hdGguc3FydCgoeCAqIHgpICsgKHkgKiB5KSk7XG59XG5cbi8qKlxuICogY2FsY3VsYXRlIHRoZSBhbmdsZSBiZXR3ZWVuIHR3byBjb29yZGluYXRlc1xuICogQHBhcmFtIHtPYmplY3R9IHAxXG4gKiBAcGFyYW0ge09iamVjdH0gcDJcbiAqIEBwYXJhbSB7QXJyYXl9IFtwcm9wc10gY29udGFpbmluZyB4IGFuZCB5IGtleXNcbiAqIEByZXR1cm4ge051bWJlcn0gYW5nbGVcbiAqL1xuZnVuY3Rpb24gZ2V0QW5nbGUocDEsIHAyLCBwcm9wcykge1xuICAgIGlmICghcHJvcHMpIHtcbiAgICAgICAgcHJvcHMgPSBQUk9QU19YWTtcbiAgICB9XG4gICAgdmFyIHggPSBwMltwcm9wc1swXV0gLSBwMVtwcm9wc1swXV0sXG4gICAgICAgIHkgPSBwMltwcm9wc1sxXV0gLSBwMVtwcm9wc1sxXV07XG4gICAgcmV0dXJuIE1hdGguYXRhbjIoeSwgeCkgKiAxODAgLyBNYXRoLlBJO1xufVxuXG4vKipcbiAqIGNhbGN1bGF0ZSB0aGUgcm90YXRpb24gZGVncmVlcyBiZXR3ZWVuIHR3byBwb2ludGVyc2V0c1xuICogQHBhcmFtIHtBcnJheX0gc3RhcnQgYXJyYXkgb2YgcG9pbnRlcnNcbiAqIEBwYXJhbSB7QXJyYXl9IGVuZCBhcnJheSBvZiBwb2ludGVyc1xuICogQHJldHVybiB7TnVtYmVyfSByb3RhdGlvblxuICovXG5mdW5jdGlvbiBnZXRSb3RhdGlvbihzdGFydCwgZW5kKSB7XG4gICAgcmV0dXJuIGdldEFuZ2xlKGVuZFsxXSwgZW5kWzBdLCBQUk9QU19DTElFTlRfWFkpICsgZ2V0QW5nbGUoc3RhcnRbMV0sIHN0YXJ0WzBdLCBQUk9QU19DTElFTlRfWFkpO1xufVxuXG4vKipcbiAqIGNhbGN1bGF0ZSB0aGUgc2NhbGUgZmFjdG9yIGJldHdlZW4gdHdvIHBvaW50ZXJzZXRzXG4gKiBubyBzY2FsZSBpcyAxLCBhbmQgZ29lcyBkb3duIHRvIDAgd2hlbiBwaW5jaGVkIHRvZ2V0aGVyLCBhbmQgYmlnZ2VyIHdoZW4gcGluY2hlZCBvdXRcbiAqIEBwYXJhbSB7QXJyYXl9IHN0YXJ0IGFycmF5IG9mIHBvaW50ZXJzXG4gKiBAcGFyYW0ge0FycmF5fSBlbmQgYXJyYXkgb2YgcG9pbnRlcnNcbiAqIEByZXR1cm4ge051bWJlcn0gc2NhbGVcbiAqL1xuZnVuY3Rpb24gZ2V0U2NhbGUoc3RhcnQsIGVuZCkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZShlbmRbMF0sIGVuZFsxXSwgUFJPUFNfQ0xJRU5UX1hZKSAvIGdldERpc3RhbmNlKHN0YXJ0WzBdLCBzdGFydFsxXSwgUFJPUFNfQ0xJRU5UX1hZKTtcbn1cblxudmFyIE1PVVNFX0lOUFVUX01BUCA9IHtcbiAgICBtb3VzZWRvd246IElOUFVUX1NUQVJULFxuICAgIG1vdXNlbW92ZTogSU5QVVRfTU9WRSxcbiAgICBtb3VzZXVwOiBJTlBVVF9FTkRcbn07XG5cbnZhciBNT1VTRV9FTEVNRU5UX0VWRU5UUyA9ICdtb3VzZWRvd24nO1xudmFyIE1PVVNFX1dJTkRPV19FVkVOVFMgPSAnbW91c2Vtb3ZlIG1vdXNldXAnO1xuXG4vKipcbiAqIE1vdXNlIGV2ZW50cyBpbnB1dFxuICogQGNvbnN0cnVjdG9yXG4gKiBAZXh0ZW5kcyBJbnB1dFxuICovXG5mdW5jdGlvbiBNb3VzZUlucHV0KCkge1xuICAgIHRoaXMuZXZFbCA9IE1PVVNFX0VMRU1FTlRfRVZFTlRTO1xuICAgIHRoaXMuZXZXaW4gPSBNT1VTRV9XSU5ET1dfRVZFTlRTO1xuXG4gICAgdGhpcy5wcmVzc2VkID0gZmFsc2U7IC8vIG1vdXNlZG93biBzdGF0ZVxuXG4gICAgSW5wdXQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuaW5oZXJpdChNb3VzZUlucHV0LCBJbnB1dCwge1xuICAgIC8qKlxuICAgICAqIGhhbmRsZSBtb3VzZSBldmVudHNcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gZXZcbiAgICAgKi9cbiAgICBoYW5kbGVyOiBmdW5jdGlvbiBNRWhhbmRsZXIoZXYpIHtcbiAgICAgICAgdmFyIGV2ZW50VHlwZSA9IE1PVVNFX0lOUFVUX01BUFtldi50eXBlXTtcblxuICAgICAgICAvLyBvbiBzdGFydCB3ZSB3YW50IHRvIGhhdmUgdGhlIGxlZnQgbW91c2UgYnV0dG9uIGRvd25cbiAgICAgICAgaWYgKGV2ZW50VHlwZSAmIElOUFVUX1NUQVJUICYmIGV2LmJ1dHRvbiA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5wcmVzc2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudFR5cGUgJiBJTlBVVF9NT1ZFICYmIGV2LndoaWNoICE9PSAxKSB7XG4gICAgICAgICAgICBldmVudFR5cGUgPSBJTlBVVF9FTkQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBtb3VzZSBtdXN0IGJlIGRvd25cbiAgICAgICAgaWYgKCF0aGlzLnByZXNzZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudFR5cGUgJiBJTlBVVF9FTkQpIHtcbiAgICAgICAgICAgIHRoaXMucHJlc3NlZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jYWxsYmFjayh0aGlzLm1hbmFnZXIsIGV2ZW50VHlwZSwge1xuICAgICAgICAgICAgcG9pbnRlcnM6IFtldl0sXG4gICAgICAgICAgICBjaGFuZ2VkUG9pbnRlcnM6IFtldl0sXG4gICAgICAgICAgICBwb2ludGVyVHlwZTogSU5QVVRfVFlQRV9NT1VTRSxcbiAgICAgICAgICAgIHNyY0V2ZW50OiBldlxuICAgICAgICB9KTtcbiAgICB9XG59KTtcblxudmFyIFBPSU5URVJfSU5QVVRfTUFQID0ge1xuICAgIHBvaW50ZXJkb3duOiBJTlBVVF9TVEFSVCxcbiAgICBwb2ludGVybW92ZTogSU5QVVRfTU9WRSxcbiAgICBwb2ludGVydXA6IElOUFVUX0VORCxcbiAgICBwb2ludGVyY2FuY2VsOiBJTlBVVF9DQU5DRUwsXG4gICAgcG9pbnRlcm91dDogSU5QVVRfQ0FOQ0VMXG59O1xuXG4vLyBpbiBJRTEwIHRoZSBwb2ludGVyIHR5cGVzIGlzIGRlZmluZWQgYXMgYW4gZW51bVxudmFyIElFMTBfUE9JTlRFUl9UWVBFX0VOVU0gPSB7XG4gICAgMjogSU5QVVRfVFlQRV9UT1VDSCxcbiAgICAzOiBJTlBVVF9UWVBFX1BFTixcbiAgICA0OiBJTlBVVF9UWVBFX01PVVNFLFxuICAgIDU6IElOUFVUX1RZUEVfS0lORUNUIC8vIHNlZSBodHRwczovL3R3aXR0ZXIuY29tL2phY29icm9zc2kvc3RhdHVzLzQ4MDU5NjQzODQ4OTg5MDgxNlxufTtcblxudmFyIFBPSU5URVJfRUxFTUVOVF9FVkVOVFMgPSAncG9pbnRlcmRvd24nO1xudmFyIFBPSU5URVJfV0lORE9XX0VWRU5UUyA9ICdwb2ludGVybW92ZSBwb2ludGVydXAgcG9pbnRlcmNhbmNlbCc7XG5cbi8vIElFMTAgaGFzIHByZWZpeGVkIHN1cHBvcnQsIGFuZCBjYXNlLXNlbnNpdGl2ZVxuaWYgKHdpbmRvdy5NU1BvaW50ZXJFdmVudCAmJiAhd2luZG93LlBvaW50ZXJFdmVudCkge1xuICAgIFBPSU5URVJfRUxFTUVOVF9FVkVOVFMgPSAnTVNQb2ludGVyRG93bic7XG4gICAgUE9JTlRFUl9XSU5ET1dfRVZFTlRTID0gJ01TUG9pbnRlck1vdmUgTVNQb2ludGVyVXAgTVNQb2ludGVyQ2FuY2VsJztcbn1cblxuLyoqXG4gKiBQb2ludGVyIGV2ZW50cyBpbnB1dFxuICogQGNvbnN0cnVjdG9yXG4gKiBAZXh0ZW5kcyBJbnB1dFxuICovXG5mdW5jdGlvbiBQb2ludGVyRXZlbnRJbnB1dCgpIHtcbiAgICB0aGlzLmV2RWwgPSBQT0lOVEVSX0VMRU1FTlRfRVZFTlRTO1xuICAgIHRoaXMuZXZXaW4gPSBQT0lOVEVSX1dJTkRPV19FVkVOVFM7XG5cbiAgICBJbnB1dC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuXG4gICAgdGhpcy5zdG9yZSA9ICh0aGlzLm1hbmFnZXIuc2Vzc2lvbi5wb2ludGVyRXZlbnRzID0gW10pO1xufVxuXG5pbmhlcml0KFBvaW50ZXJFdmVudElucHV0LCBJbnB1dCwge1xuICAgIC8qKlxuICAgICAqIGhhbmRsZSBtb3VzZSBldmVudHNcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gZXZcbiAgICAgKi9cbiAgICBoYW5kbGVyOiBmdW5jdGlvbiBQRWhhbmRsZXIoZXYpIHtcbiAgICAgICAgdmFyIHN0b3JlID0gdGhpcy5zdG9yZTtcbiAgICAgICAgdmFyIHJlbW92ZVBvaW50ZXIgPSBmYWxzZTtcblxuICAgICAgICB2YXIgZXZlbnRUeXBlTm9ybWFsaXplZCA9IGV2LnR5cGUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCdtcycsICcnKTtcbiAgICAgICAgdmFyIGV2ZW50VHlwZSA9IFBPSU5URVJfSU5QVVRfTUFQW2V2ZW50VHlwZU5vcm1hbGl6ZWRdO1xuICAgICAgICB2YXIgcG9pbnRlclR5cGUgPSBJRTEwX1BPSU5URVJfVFlQRV9FTlVNW2V2LnBvaW50ZXJUeXBlXSB8fCBldi5wb2ludGVyVHlwZTtcblxuICAgICAgICB2YXIgaXNUb3VjaCA9IChwb2ludGVyVHlwZSA9PSBJTlBVVF9UWVBFX1RPVUNIKTtcblxuICAgICAgICAvLyBnZXQgaW5kZXggb2YgdGhlIGV2ZW50IGluIHRoZSBzdG9yZVxuICAgICAgICB2YXIgc3RvcmVJbmRleCA9IGluQXJyYXkoc3RvcmUsIGV2LnBvaW50ZXJJZCwgJ3BvaW50ZXJJZCcpO1xuXG4gICAgICAgIC8vIHN0YXJ0IGFuZCBtb3VzZSBtdXN0IGJlIGRvd25cbiAgICAgICAgaWYgKGV2ZW50VHlwZSAmIElOUFVUX1NUQVJUICYmIChldi5idXR0b24gPT09IDAgfHwgaXNUb3VjaCkpIHtcbiAgICAgICAgICAgIGlmIChzdG9yZUluZGV4IDwgMCkge1xuICAgICAgICAgICAgICAgIHN0b3JlLnB1c2goZXYpO1xuICAgICAgICAgICAgICAgIHN0b3JlSW5kZXggPSBzdG9yZS5sZW5ndGggLSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSAmIChJTlBVVF9FTkQgfCBJTlBVVF9DQU5DRUwpKSB7XG4gICAgICAgICAgICByZW1vdmVQb2ludGVyID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGl0IG5vdCBmb3VuZCwgc28gdGhlIHBvaW50ZXIgaGFzbid0IGJlZW4gZG93biAoc28gaXQncyBwcm9iYWJseSBhIGhvdmVyKVxuICAgICAgICBpZiAoc3RvcmVJbmRleCA8IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHVwZGF0ZSB0aGUgZXZlbnQgaW4gdGhlIHN0b3JlXG4gICAgICAgIHN0b3JlW3N0b3JlSW5kZXhdID0gZXY7XG5cbiAgICAgICAgdGhpcy5jYWxsYmFjayh0aGlzLm1hbmFnZXIsIGV2ZW50VHlwZSwge1xuICAgICAgICAgICAgcG9pbnRlcnM6IHN0b3JlLFxuICAgICAgICAgICAgY2hhbmdlZFBvaW50ZXJzOiBbZXZdLFxuICAgICAgICAgICAgcG9pbnRlclR5cGU6IHBvaW50ZXJUeXBlLFxuICAgICAgICAgICAgc3JjRXZlbnQ6IGV2XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChyZW1vdmVQb2ludGVyKSB7XG4gICAgICAgICAgICAvLyByZW1vdmUgZnJvbSB0aGUgc3RvcmVcbiAgICAgICAgICAgIHN0b3JlLnNwbGljZShzdG9yZUluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgIH1cbn0pO1xuXG52YXIgU0lOR0xFX1RPVUNIX0lOUFVUX01BUCA9IHtcbiAgICB0b3VjaHN0YXJ0OiBJTlBVVF9TVEFSVCxcbiAgICB0b3VjaG1vdmU6IElOUFVUX01PVkUsXG4gICAgdG91Y2hlbmQ6IElOUFVUX0VORCxcbiAgICB0b3VjaGNhbmNlbDogSU5QVVRfQ0FOQ0VMXG59O1xuXG52YXIgU0lOR0xFX1RPVUNIX1RBUkdFVF9FVkVOVFMgPSAndG91Y2hzdGFydCc7XG52YXIgU0lOR0xFX1RPVUNIX1dJTkRPV19FVkVOVFMgPSAndG91Y2hzdGFydCB0b3VjaG1vdmUgdG91Y2hlbmQgdG91Y2hjYW5jZWwnO1xuXG4vKipcbiAqIFRvdWNoIGV2ZW50cyBpbnB1dFxuICogQGNvbnN0cnVjdG9yXG4gKiBAZXh0ZW5kcyBJbnB1dFxuICovXG5mdW5jdGlvbiBTaW5nbGVUb3VjaElucHV0KCkge1xuICAgIHRoaXMuZXZUYXJnZXQgPSBTSU5HTEVfVE9VQ0hfVEFSR0VUX0VWRU5UUztcbiAgICB0aGlzLmV2V2luID0gU0lOR0xFX1RPVUNIX1dJTkRPV19FVkVOVFM7XG4gICAgdGhpcy5zdGFydGVkID0gZmFsc2U7XG5cbiAgICBJbnB1dC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuXG5pbmhlcml0KFNpbmdsZVRvdWNoSW5wdXQsIElucHV0LCB7XG4gICAgaGFuZGxlcjogZnVuY3Rpb24gVEVoYW5kbGVyKGV2KSB7XG4gICAgICAgIHZhciB0eXBlID0gU0lOR0xFX1RPVUNIX0lOUFVUX01BUFtldi50eXBlXTtcblxuICAgICAgICAvLyBzaG91bGQgd2UgaGFuZGxlIHRoZSB0b3VjaCBldmVudHM/XG4gICAgICAgIGlmICh0eXBlID09PSBJTlBVVF9TVEFSVCkge1xuICAgICAgICAgICAgdGhpcy5zdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5zdGFydGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgdG91Y2hlcyA9IG5vcm1hbGl6ZVNpbmdsZVRvdWNoZXMuY2FsbCh0aGlzLCBldiwgdHlwZSk7XG5cbiAgICAgICAgLy8gd2hlbiBkb25lLCByZXNldCB0aGUgc3RhcnRlZCBzdGF0ZVxuICAgICAgICBpZiAodHlwZSAmIChJTlBVVF9FTkQgfCBJTlBVVF9DQU5DRUwpICYmIHRvdWNoZXNbMF0ubGVuZ3RoIC0gdG91Y2hlc1sxXS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRlZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jYWxsYmFjayh0aGlzLm1hbmFnZXIsIHR5cGUsIHtcbiAgICAgICAgICAgIHBvaW50ZXJzOiB0b3VjaGVzWzBdLFxuICAgICAgICAgICAgY2hhbmdlZFBvaW50ZXJzOiB0b3VjaGVzWzFdLFxuICAgICAgICAgICAgcG9pbnRlclR5cGU6IElOUFVUX1RZUEVfVE9VQ0gsXG4gICAgICAgICAgICBzcmNFdmVudDogZXZcbiAgICAgICAgfSk7XG4gICAgfVxufSk7XG5cbi8qKlxuICogQHRoaXMge1RvdWNoSW5wdXR9XG4gKiBAcGFyYW0ge09iamVjdH0gZXZcbiAqIEBwYXJhbSB7TnVtYmVyfSB0eXBlIGZsYWdcbiAqIEByZXR1cm5zIHt1bmRlZmluZWR8QXJyYXl9IFthbGwsIGNoYW5nZWRdXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVNpbmdsZVRvdWNoZXMoZXYsIHR5cGUpIHtcbiAgICB2YXIgYWxsID0gdG9BcnJheShldi50b3VjaGVzKTtcbiAgICB2YXIgY2hhbmdlZCA9IHRvQXJyYXkoZXYuY2hhbmdlZFRvdWNoZXMpO1xuXG4gICAgaWYgKHR5cGUgJiAoSU5QVVRfRU5EIHwgSU5QVVRfQ0FOQ0VMKSkge1xuICAgICAgICBhbGwgPSB1bmlxdWVBcnJheShhbGwuY29uY2F0KGNoYW5nZWQpLCAnaWRlbnRpZmllcicsIHRydWUpO1xuICAgIH1cblxuICAgIHJldHVybiBbYWxsLCBjaGFuZ2VkXTtcbn1cblxudmFyIFRPVUNIX0lOUFVUX01BUCA9IHtcbiAgICB0b3VjaHN0YXJ0OiBJTlBVVF9TVEFSVCxcbiAgICB0b3VjaG1vdmU6IElOUFVUX01PVkUsXG4gICAgdG91Y2hlbmQ6IElOUFVUX0VORCxcbiAgICB0b3VjaGNhbmNlbDogSU5QVVRfQ0FOQ0VMXG59O1xuXG52YXIgVE9VQ0hfVEFSR0VUX0VWRU5UUyA9ICd0b3VjaHN0YXJ0IHRvdWNobW92ZSB0b3VjaGVuZCB0b3VjaGNhbmNlbCc7XG5cbi8qKlxuICogTXVsdGktdXNlciB0b3VjaCBldmVudHMgaW5wdXRcbiAqIEBjb25zdHJ1Y3RvclxuICogQGV4dGVuZHMgSW5wdXRcbiAqL1xuZnVuY3Rpb24gVG91Y2hJbnB1dCgpIHtcbiAgICB0aGlzLmV2VGFyZ2V0ID0gVE9VQ0hfVEFSR0VUX0VWRU5UUztcbiAgICB0aGlzLnRhcmdldElkcyA9IHt9O1xuXG4gICAgSW5wdXQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuaW5oZXJpdChUb3VjaElucHV0LCBJbnB1dCwge1xuICAgIGhhbmRsZXI6IGZ1bmN0aW9uIE1URWhhbmRsZXIoZXYpIHtcbiAgICAgICAgdmFyIHR5cGUgPSBUT1VDSF9JTlBVVF9NQVBbZXYudHlwZV07XG4gICAgICAgIHZhciB0b3VjaGVzID0gZ2V0VG91Y2hlcy5jYWxsKHRoaXMsIGV2LCB0eXBlKTtcbiAgICAgICAgaWYgKCF0b3VjaGVzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNhbGxiYWNrKHRoaXMubWFuYWdlciwgdHlwZSwge1xuICAgICAgICAgICAgcG9pbnRlcnM6IHRvdWNoZXNbMF0sXG4gICAgICAgICAgICBjaGFuZ2VkUG9pbnRlcnM6IHRvdWNoZXNbMV0sXG4gICAgICAgICAgICBwb2ludGVyVHlwZTogSU5QVVRfVFlQRV9UT1VDSCxcbiAgICAgICAgICAgIHNyY0V2ZW50OiBldlxuICAgICAgICB9KTtcbiAgICB9XG59KTtcblxuLyoqXG4gKiBAdGhpcyB7VG91Y2hJbnB1dH1cbiAqIEBwYXJhbSB7T2JqZWN0fSBldlxuICogQHBhcmFtIHtOdW1iZXJ9IHR5cGUgZmxhZ1xuICogQHJldHVybnMge3VuZGVmaW5lZHxBcnJheX0gW2FsbCwgY2hhbmdlZF1cbiAqL1xuZnVuY3Rpb24gZ2V0VG91Y2hlcyhldiwgdHlwZSkge1xuICAgIHZhciBhbGxUb3VjaGVzID0gdG9BcnJheShldi50b3VjaGVzKTtcbiAgICB2YXIgdGFyZ2V0SWRzID0gdGhpcy50YXJnZXRJZHM7XG5cbiAgICAvLyB3aGVuIHRoZXJlIGlzIG9ubHkgb25lIHRvdWNoLCB0aGUgcHJvY2VzcyBjYW4gYmUgc2ltcGxpZmllZFxuICAgIGlmICh0eXBlICYgKElOUFVUX1NUQVJUIHwgSU5QVVRfTU9WRSkgJiYgYWxsVG91Y2hlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgdGFyZ2V0SWRzW2FsbFRvdWNoZXNbMF0uaWRlbnRpZmllcl0gPSB0cnVlO1xuICAgICAgICByZXR1cm4gW2FsbFRvdWNoZXMsIGFsbFRvdWNoZXNdO1xuICAgIH1cblxuICAgIHZhciBpLFxuICAgICAgICB0YXJnZXRUb3VjaGVzLFxuICAgICAgICBjaGFuZ2VkVG91Y2hlcyA9IHRvQXJyYXkoZXYuY2hhbmdlZFRvdWNoZXMpLFxuICAgICAgICBjaGFuZ2VkVGFyZ2V0VG91Y2hlcyA9IFtdLFxuICAgICAgICB0YXJnZXQgPSB0aGlzLnRhcmdldDtcblxuICAgIC8vIGdldCB0YXJnZXQgdG91Y2hlcyBmcm9tIHRvdWNoZXNcbiAgICB0YXJnZXRUb3VjaGVzID0gYWxsVG91Y2hlcy5maWx0ZXIoZnVuY3Rpb24odG91Y2gpIHtcbiAgICAgICAgcmV0dXJuIGhhc1BhcmVudCh0b3VjaC50YXJnZXQsIHRhcmdldCk7XG4gICAgfSk7XG5cbiAgICAvLyBjb2xsZWN0IHRvdWNoZXNcbiAgICBpZiAodHlwZSA9PT0gSU5QVVRfU1RBUlQpIHtcbiAgICAgICAgaSA9IDA7XG4gICAgICAgIHdoaWxlIChpIDwgdGFyZ2V0VG91Y2hlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRhcmdldElkc1t0YXJnZXRUb3VjaGVzW2ldLmlkZW50aWZpZXJdID0gdHJ1ZTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGZpbHRlciBjaGFuZ2VkIHRvdWNoZXMgdG8gb25seSBjb250YWluIHRvdWNoZXMgdGhhdCBleGlzdCBpbiB0aGUgY29sbGVjdGVkIHRhcmdldCBpZHNcbiAgICBpID0gMDtcbiAgICB3aGlsZSAoaSA8IGNoYW5nZWRUb3VjaGVzLmxlbmd0aCkge1xuICAgICAgICBpZiAodGFyZ2V0SWRzW2NoYW5nZWRUb3VjaGVzW2ldLmlkZW50aWZpZXJdKSB7XG4gICAgICAgICAgICBjaGFuZ2VkVGFyZ2V0VG91Y2hlcy5wdXNoKGNoYW5nZWRUb3VjaGVzW2ldKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNsZWFudXAgcmVtb3ZlZCB0b3VjaGVzXG4gICAgICAgIGlmICh0eXBlICYgKElOUFVUX0VORCB8IElOUFVUX0NBTkNFTCkpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0YXJnZXRJZHNbY2hhbmdlZFRvdWNoZXNbaV0uaWRlbnRpZmllcl07XG4gICAgICAgIH1cbiAgICAgICAgaSsrO1xuICAgIH1cblxuICAgIGlmICghY2hhbmdlZFRhcmdldFRvdWNoZXMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gW1xuICAgICAgICAvLyBtZXJnZSB0YXJnZXRUb3VjaGVzIHdpdGggY2hhbmdlZFRhcmdldFRvdWNoZXMgc28gaXQgY29udGFpbnMgQUxMIHRvdWNoZXMsIGluY2x1ZGluZyAnZW5kJyBhbmQgJ2NhbmNlbCdcbiAgICAgICAgdW5pcXVlQXJyYXkodGFyZ2V0VG91Y2hlcy5jb25jYXQoY2hhbmdlZFRhcmdldFRvdWNoZXMpLCAnaWRlbnRpZmllcicsIHRydWUpLFxuICAgICAgICBjaGFuZ2VkVGFyZ2V0VG91Y2hlc1xuICAgIF07XG59XG5cbi8qKlxuICogQ29tYmluZWQgdG91Y2ggYW5kIG1vdXNlIGlucHV0XG4gKlxuICogVG91Y2ggaGFzIGEgaGlnaGVyIHByaW9yaXR5IHRoZW4gbW91c2UsIGFuZCB3aGlsZSB0b3VjaGluZyBubyBtb3VzZSBldmVudHMgYXJlIGFsbG93ZWQuXG4gKiBUaGlzIGJlY2F1c2UgdG91Y2ggZGV2aWNlcyBhbHNvIGVtaXQgbW91c2UgZXZlbnRzIHdoaWxlIGRvaW5nIGEgdG91Y2guXG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKiBAZXh0ZW5kcyBJbnB1dFxuICovXG5cbnZhciBERURVUF9USU1FT1VUID0gMjUwMDtcbnZhciBERURVUF9ESVNUQU5DRSA9IDI1O1xuXG5mdW5jdGlvbiBUb3VjaE1vdXNlSW5wdXQoKSB7XG4gICAgSW5wdXQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICAgIHZhciBoYW5kbGVyID0gYmluZEZuKHRoaXMuaGFuZGxlciwgdGhpcyk7XG4gICAgdGhpcy50b3VjaCA9IG5ldyBUb3VjaElucHV0KHRoaXMubWFuYWdlciwgaGFuZGxlcik7XG4gICAgdGhpcy5tb3VzZSA9IG5ldyBNb3VzZUlucHV0KHRoaXMubWFuYWdlciwgaGFuZGxlcik7XG5cbiAgICB0aGlzLnByaW1hcnlUb3VjaCA9IG51bGw7XG4gICAgdGhpcy5sYXN0VG91Y2hlcyA9IFtdO1xufVxuXG5pbmhlcml0KFRvdWNoTW91c2VJbnB1dCwgSW5wdXQsIHtcbiAgICAvKipcbiAgICAgKiBoYW5kbGUgbW91c2UgYW5kIHRvdWNoIGV2ZW50c1xuICAgICAqIEBwYXJhbSB7SGFtbWVyfSBtYW5hZ2VyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IGlucHV0RXZlbnRcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gaW5wdXREYXRhXG4gICAgICovXG4gICAgaGFuZGxlcjogZnVuY3Rpb24gVE1FaGFuZGxlcihtYW5hZ2VyLCBpbnB1dEV2ZW50LCBpbnB1dERhdGEpIHtcbiAgICAgICAgdmFyIGlzVG91Y2ggPSAoaW5wdXREYXRhLnBvaW50ZXJUeXBlID09IElOUFVUX1RZUEVfVE9VQ0gpLFxuICAgICAgICAgICAgaXNNb3VzZSA9IChpbnB1dERhdGEucG9pbnRlclR5cGUgPT0gSU5QVVRfVFlQRV9NT1VTRSk7XG5cbiAgICAgICAgaWYgKGlzTW91c2UgJiYgaW5wdXREYXRhLnNvdXJjZUNhcGFiaWxpdGllcyAmJiBpbnB1dERhdGEuc291cmNlQ2FwYWJpbGl0aWVzLmZpcmVzVG91Y2hFdmVudHMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHdoZW4gd2UncmUgaW4gYSB0b3VjaCBldmVudCwgcmVjb3JkIHRvdWNoZXMgdG8gIGRlLWR1cGUgc3ludGhldGljIG1vdXNlIGV2ZW50XG4gICAgICAgIGlmIChpc1RvdWNoKSB7XG4gICAgICAgICAgICByZWNvcmRUb3VjaGVzLmNhbGwodGhpcywgaW5wdXRFdmVudCwgaW5wdXREYXRhKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc01vdXNlICYmIGlzU3ludGhldGljRXZlbnQuY2FsbCh0aGlzLCBpbnB1dERhdGEpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNhbGxiYWNrKG1hbmFnZXIsIGlucHV0RXZlbnQsIGlucHV0RGF0YSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHJlbW92ZSB0aGUgZXZlbnQgbGlzdGVuZXJzXG4gICAgICovXG4gICAgZGVzdHJveTogZnVuY3Rpb24gZGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy50b3VjaC5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMubW91c2UuZGVzdHJveSgpO1xuICAgIH1cbn0pO1xuXG5mdW5jdGlvbiByZWNvcmRUb3VjaGVzKGV2ZW50VHlwZSwgZXZlbnREYXRhKSB7XG4gICAgaWYgKGV2ZW50VHlwZSAmIElOUFVUX1NUQVJUKSB7XG4gICAgICAgIHRoaXMucHJpbWFyeVRvdWNoID0gZXZlbnREYXRhLmNoYW5nZWRQb2ludGVyc1swXS5pZGVudGlmaWVyO1xuICAgICAgICBzZXRMYXN0VG91Y2guY2FsbCh0aGlzLCBldmVudERhdGEpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlICYgKElOUFVUX0VORCB8IElOUFVUX0NBTkNFTCkpIHtcbiAgICAgICAgc2V0TGFzdFRvdWNoLmNhbGwodGhpcywgZXZlbnREYXRhKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHNldExhc3RUb3VjaChldmVudERhdGEpIHtcbiAgICB2YXIgdG91Y2ggPSBldmVudERhdGEuY2hhbmdlZFBvaW50ZXJzWzBdO1xuXG4gICAgaWYgKHRvdWNoLmlkZW50aWZpZXIgPT09IHRoaXMucHJpbWFyeVRvdWNoKSB7XG4gICAgICAgIHZhciBsYXN0VG91Y2ggPSB7eDogdG91Y2guY2xpZW50WCwgeTogdG91Y2guY2xpZW50WX07XG4gICAgICAgIHRoaXMubGFzdFRvdWNoZXMucHVzaChsYXN0VG91Y2gpO1xuICAgICAgICB2YXIgbHRzID0gdGhpcy5sYXN0VG91Y2hlcztcbiAgICAgICAgdmFyIHJlbW92ZUxhc3RUb3VjaCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGkgPSBsdHMuaW5kZXhPZihsYXN0VG91Y2gpO1xuICAgICAgICAgICAgaWYgKGkgPiAtMSkge1xuICAgICAgICAgICAgICAgIGx0cy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHNldFRpbWVvdXQocmVtb3ZlTGFzdFRvdWNoLCBERURVUF9USU1FT1VUKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGlzU3ludGhldGljRXZlbnQoZXZlbnREYXRhKSB7XG4gICAgdmFyIHggPSBldmVudERhdGEuc3JjRXZlbnQuY2xpZW50WCwgeSA9IGV2ZW50RGF0YS5zcmNFdmVudC5jbGllbnRZO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sYXN0VG91Y2hlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgdCA9IHRoaXMubGFzdFRvdWNoZXNbaV07XG4gICAgICAgIHZhciBkeCA9IE1hdGguYWJzKHggLSB0LngpLCBkeSA9IE1hdGguYWJzKHkgLSB0LnkpO1xuICAgICAgICBpZiAoZHggPD0gREVEVVBfRElTVEFOQ0UgJiYgZHkgPD0gREVEVVBfRElTVEFOQ0UpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cblxudmFyIFBSRUZJWEVEX1RPVUNIX0FDVElPTiA9IHByZWZpeGVkKFRFU1RfRUxFTUVOVC5zdHlsZSwgJ3RvdWNoQWN0aW9uJyk7XG52YXIgTkFUSVZFX1RPVUNIX0FDVElPTiA9IFBSRUZJWEVEX1RPVUNIX0FDVElPTiAhPT0gdW5kZWZpbmVkO1xuXG4vLyBtYWdpY2FsIHRvdWNoQWN0aW9uIHZhbHVlXG52YXIgVE9VQ0hfQUNUSU9OX0NPTVBVVEUgPSAnY29tcHV0ZSc7XG52YXIgVE9VQ0hfQUNUSU9OX0FVVE8gPSAnYXV0byc7XG52YXIgVE9VQ0hfQUNUSU9OX01BTklQVUxBVElPTiA9ICdtYW5pcHVsYXRpb24nOyAvLyBub3QgaW1wbGVtZW50ZWRcbnZhciBUT1VDSF9BQ1RJT05fTk9ORSA9ICdub25lJztcbnZhciBUT1VDSF9BQ1RJT05fUEFOX1ggPSAncGFuLXgnO1xudmFyIFRPVUNIX0FDVElPTl9QQU5fWSA9ICdwYW4teSc7XG52YXIgVE9VQ0hfQUNUSU9OX01BUCA9IGdldFRvdWNoQWN0aW9uUHJvcHMoKTtcblxuLyoqXG4gKiBUb3VjaCBBY3Rpb25cbiAqIHNldHMgdGhlIHRvdWNoQWN0aW9uIHByb3BlcnR5IG9yIHVzZXMgdGhlIGpzIGFsdGVybmF0aXZlXG4gKiBAcGFyYW0ge01hbmFnZXJ9IG1hbmFnZXJcbiAqIEBwYXJhbSB7U3RyaW5nfSB2YWx1ZVxuICogQGNvbnN0cnVjdG9yXG4gKi9cbmZ1bmN0aW9uIFRvdWNoQWN0aW9uKG1hbmFnZXIsIHZhbHVlKSB7XG4gICAgdGhpcy5tYW5hZ2VyID0gbWFuYWdlcjtcbiAgICB0aGlzLnNldCh2YWx1ZSk7XG59XG5cblRvdWNoQWN0aW9uLnByb3RvdHlwZSA9IHtcbiAgICAvKipcbiAgICAgKiBzZXQgdGhlIHRvdWNoQWN0aW9uIHZhbHVlIG9uIHRoZSBlbGVtZW50IG9yIGVuYWJsZSB0aGUgcG9seWZpbGxcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gdmFsdWVcbiAgICAgKi9cbiAgICBzZXQ6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgIC8vIGZpbmQgb3V0IHRoZSB0b3VjaC1hY3Rpb24gYnkgdGhlIGV2ZW50IGhhbmRsZXJzXG4gICAgICAgIGlmICh2YWx1ZSA9PSBUT1VDSF9BQ1RJT05fQ09NUFVURSkge1xuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLmNvbXB1dGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChOQVRJVkVfVE9VQ0hfQUNUSU9OICYmIHRoaXMubWFuYWdlci5lbGVtZW50LnN0eWxlICYmIFRPVUNIX0FDVElPTl9NQVBbdmFsdWVdKSB7XG4gICAgICAgICAgICB0aGlzLm1hbmFnZXIuZWxlbWVudC5zdHlsZVtQUkVGSVhFRF9UT1VDSF9BQ1RJT05dID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hY3Rpb25zID0gdmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGp1c3QgcmUtc2V0IHRoZSB0b3VjaEFjdGlvbiB2YWx1ZVxuICAgICAqL1xuICAgIHVwZGF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuc2V0KHRoaXMubWFuYWdlci5vcHRpb25zLnRvdWNoQWN0aW9uKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogY29tcHV0ZSB0aGUgdmFsdWUgZm9yIHRoZSB0b3VjaEFjdGlvbiBwcm9wZXJ0eSBiYXNlZCBvbiB0aGUgcmVjb2duaXplcidzIHNldHRpbmdzXG4gICAgICogQHJldHVybnMge1N0cmluZ30gdmFsdWVcbiAgICAgKi9cbiAgICBjb21wdXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGFjdGlvbnMgPSBbXTtcbiAgICAgICAgZWFjaCh0aGlzLm1hbmFnZXIucmVjb2duaXplcnMsIGZ1bmN0aW9uKHJlY29nbml6ZXIpIHtcbiAgICAgICAgICAgIGlmIChib29sT3JGbihyZWNvZ25pemVyLm9wdGlvbnMuZW5hYmxlLCBbcmVjb2duaXplcl0pKSB7XG4gICAgICAgICAgICAgICAgYWN0aW9ucyA9IGFjdGlvbnMuY29uY2F0KHJlY29nbml6ZXIuZ2V0VG91Y2hBY3Rpb24oKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gY2xlYW5Ub3VjaEFjdGlvbnMoYWN0aW9ucy5qb2luKCcgJykpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gZWFjaCBpbnB1dCBjeWNsZSBhbmQgcHJvdmlkZXMgdGhlIHByZXZlbnRpbmcgb2YgdGhlIGJyb3dzZXIgYmVoYXZpb3JcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gaW5wdXRcbiAgICAgKi9cbiAgICBwcmV2ZW50RGVmYXVsdHM6IGZ1bmN0aW9uKGlucHV0KSB7XG4gICAgICAgIHZhciBzcmNFdmVudCA9IGlucHV0LnNyY0V2ZW50O1xuICAgICAgICB2YXIgZGlyZWN0aW9uID0gaW5wdXQub2Zmc2V0RGlyZWN0aW9uO1xuXG4gICAgICAgIC8vIGlmIHRoZSB0b3VjaCBhY3Rpb24gZGlkIHByZXZlbnRlZCBvbmNlIHRoaXMgc2Vzc2lvblxuICAgICAgICBpZiAodGhpcy5tYW5hZ2VyLnNlc3Npb24ucHJldmVudGVkKSB7XG4gICAgICAgICAgICBzcmNFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGFjdGlvbnMgPSB0aGlzLmFjdGlvbnM7XG4gICAgICAgIHZhciBoYXNOb25lID0gaW5TdHIoYWN0aW9ucywgVE9VQ0hfQUNUSU9OX05PTkUpICYmICFUT1VDSF9BQ1RJT05fTUFQW1RPVUNIX0FDVElPTl9OT05FXTtcbiAgICAgICAgdmFyIGhhc1BhblkgPSBpblN0cihhY3Rpb25zLCBUT1VDSF9BQ1RJT05fUEFOX1kpICYmICFUT1VDSF9BQ1RJT05fTUFQW1RPVUNIX0FDVElPTl9QQU5fWV07XG4gICAgICAgIHZhciBoYXNQYW5YID0gaW5TdHIoYWN0aW9ucywgVE9VQ0hfQUNUSU9OX1BBTl9YKSAmJiAhVE9VQ0hfQUNUSU9OX01BUFtUT1VDSF9BQ1RJT05fUEFOX1hdO1xuXG4gICAgICAgIGlmIChoYXNOb25lKSB7XG4gICAgICAgICAgICAvL2RvIG5vdCBwcmV2ZW50IGRlZmF1bHRzIGlmIHRoaXMgaXMgYSB0YXAgZ2VzdHVyZVxuXG4gICAgICAgICAgICB2YXIgaXNUYXBQb2ludGVyID0gaW5wdXQucG9pbnRlcnMubGVuZ3RoID09PSAxO1xuICAgICAgICAgICAgdmFyIGlzVGFwTW92ZW1lbnQgPSBpbnB1dC5kaXN0YW5jZSA8IDI7XG4gICAgICAgICAgICB2YXIgaXNUYXBUb3VjaFRpbWUgPSBpbnB1dC5kZWx0YVRpbWUgPCAyNTA7XG5cbiAgICAgICAgICAgIGlmIChpc1RhcFBvaW50ZXIgJiYgaXNUYXBNb3ZlbWVudCAmJiBpc1RhcFRvdWNoVGltZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoYXNQYW5YICYmIGhhc1BhblkpIHtcbiAgICAgICAgICAgIC8vIGBwYW4teCBwYW4teWAgbWVhbnMgYnJvd3NlciBoYW5kbGVzIGFsbCBzY3JvbGxpbmcvcGFubmluZywgZG8gbm90IHByZXZlbnRcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoYXNOb25lIHx8XG4gICAgICAgICAgICAoaGFzUGFuWSAmJiBkaXJlY3Rpb24gJiBESVJFQ1RJT05fSE9SSVpPTlRBTCkgfHxcbiAgICAgICAgICAgIChoYXNQYW5YICYmIGRpcmVjdGlvbiAmIERJUkVDVElPTl9WRVJUSUNBTCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByZXZlbnRTcmMoc3JjRXZlbnQpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGNhbGwgcHJldmVudERlZmF1bHQgdG8gcHJldmVudCB0aGUgYnJvd3NlcidzIGRlZmF1bHQgYmVoYXZpb3IgKHNjcm9sbGluZyBpbiBtb3N0IGNhc2VzKVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzcmNFdmVudFxuICAgICAqL1xuICAgIHByZXZlbnRTcmM6IGZ1bmN0aW9uKHNyY0V2ZW50KSB7XG4gICAgICAgIHRoaXMubWFuYWdlci5zZXNzaW9uLnByZXZlbnRlZCA9IHRydWU7XG4gICAgICAgIHNyY0V2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxufTtcblxuLyoqXG4gKiB3aGVuIHRoZSB0b3VjaEFjdGlvbnMgYXJlIGNvbGxlY3RlZCB0aGV5IGFyZSBub3QgYSB2YWxpZCB2YWx1ZSwgc28gd2UgbmVlZCB0byBjbGVhbiB0aGluZ3MgdXAuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBhY3Rpb25zXG4gKiBAcmV0dXJucyB7Kn1cbiAqL1xuZnVuY3Rpb24gY2xlYW5Ub3VjaEFjdGlvbnMoYWN0aW9ucykge1xuICAgIC8vIG5vbmVcbiAgICBpZiAoaW5TdHIoYWN0aW9ucywgVE9VQ0hfQUNUSU9OX05PTkUpKSB7XG4gICAgICAgIHJldHVybiBUT1VDSF9BQ1RJT05fTk9ORTtcbiAgICB9XG5cbiAgICB2YXIgaGFzUGFuWCA9IGluU3RyKGFjdGlvbnMsIFRPVUNIX0FDVElPTl9QQU5fWCk7XG4gICAgdmFyIGhhc1BhblkgPSBpblN0cihhY3Rpb25zLCBUT1VDSF9BQ1RJT05fUEFOX1kpO1xuXG4gICAgLy8gaWYgYm90aCBwYW4teCBhbmQgcGFuLXkgYXJlIHNldCAoZGlmZmVyZW50IHJlY29nbml6ZXJzXG4gICAgLy8gZm9yIGRpZmZlcmVudCBkaXJlY3Rpb25zLCBlLmcuIGhvcml6b250YWwgcGFuIGJ1dCB2ZXJ0aWNhbCBzd2lwZT8pXG4gICAgLy8gd2UgbmVlZCBub25lIChhcyBvdGhlcndpc2Ugd2l0aCBwYW4teCBwYW4teSBjb21iaW5lZCBub25lIG9mIHRoZXNlXG4gICAgLy8gcmVjb2duaXplcnMgd2lsbCB3b3JrLCBzaW5jZSB0aGUgYnJvd3NlciB3b3VsZCBoYW5kbGUgYWxsIHBhbm5pbmdcbiAgICBpZiAoaGFzUGFuWCAmJiBoYXNQYW5ZKSB7XG4gICAgICAgIHJldHVybiBUT1VDSF9BQ1RJT05fTk9ORTtcbiAgICB9XG5cbiAgICAvLyBwYW4teCBPUiBwYW4teVxuICAgIGlmIChoYXNQYW5YIHx8IGhhc1BhblkpIHtcbiAgICAgICAgcmV0dXJuIGhhc1BhblggPyBUT1VDSF9BQ1RJT05fUEFOX1ggOiBUT1VDSF9BQ1RJT05fUEFOX1k7XG4gICAgfVxuXG4gICAgLy8gbWFuaXB1bGF0aW9uXG4gICAgaWYgKGluU3RyKGFjdGlvbnMsIFRPVUNIX0FDVElPTl9NQU5JUFVMQVRJT04pKSB7XG4gICAgICAgIHJldHVybiBUT1VDSF9BQ1RJT05fTUFOSVBVTEFUSU9OO1xuICAgIH1cblxuICAgIHJldHVybiBUT1VDSF9BQ1RJT05fQVVUTztcbn1cblxuZnVuY3Rpb24gZ2V0VG91Y2hBY3Rpb25Qcm9wcygpIHtcbiAgICBpZiAoIU5BVElWRV9UT1VDSF9BQ1RJT04pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB2YXIgdG91Y2hNYXAgPSB7fTtcbiAgICB2YXIgY3NzU3VwcG9ydHMgPSB3aW5kb3cuQ1NTICYmIHdpbmRvdy5DU1Muc3VwcG9ydHM7XG4gICAgWydhdXRvJywgJ21hbmlwdWxhdGlvbicsICdwYW4teScsICdwYW4teCcsICdwYW4teCBwYW4teScsICdub25lJ10uZm9yRWFjaChmdW5jdGlvbih2YWwpIHtcblxuICAgICAgICAvLyBJZiBjc3Muc3VwcG9ydHMgaXMgbm90IHN1cHBvcnRlZCBidXQgdGhlcmUgaXMgbmF0aXZlIHRvdWNoLWFjdGlvbiBhc3N1bWUgaXQgc3VwcG9ydHNcbiAgICAgICAgLy8gYWxsIHZhbHVlcy4gVGhpcyBpcyB0aGUgY2FzZSBmb3IgSUUgMTAgYW5kIDExLlxuICAgICAgICB0b3VjaE1hcFt2YWxdID0gY3NzU3VwcG9ydHMgPyB3aW5kb3cuQ1NTLnN1cHBvcnRzKCd0b3VjaC1hY3Rpb24nLCB2YWwpIDogdHJ1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gdG91Y2hNYXA7XG59XG5cbi8qKlxuICogUmVjb2duaXplciBmbG93IGV4cGxhaW5lZDsgKlxuICogQWxsIHJlY29nbml6ZXJzIGhhdmUgdGhlIGluaXRpYWwgc3RhdGUgb2YgUE9TU0lCTEUgd2hlbiBhIGlucHV0IHNlc3Npb24gc3RhcnRzLlxuICogVGhlIGRlZmluaXRpb24gb2YgYSBpbnB1dCBzZXNzaW9uIGlzIGZyb20gdGhlIGZpcnN0IGlucHV0IHVudGlsIHRoZSBsYXN0IGlucHV0LCB3aXRoIGFsbCBpdCdzIG1vdmVtZW50IGluIGl0LiAqXG4gKiBFeGFtcGxlIHNlc3Npb24gZm9yIG1vdXNlLWlucHV0OiBtb3VzZWRvd24gLT4gbW91c2Vtb3ZlIC0+IG1vdXNldXBcbiAqXG4gKiBPbiBlYWNoIHJlY29nbml6aW5nIGN5Y2xlIChzZWUgTWFuYWdlci5yZWNvZ25pemUpIHRoZSAucmVjb2duaXplKCkgbWV0aG9kIGlzIGV4ZWN1dGVkXG4gKiB3aGljaCBkZXRlcm1pbmVzIHdpdGggc3RhdGUgaXQgc2hvdWxkIGJlLlxuICpcbiAqIElmIHRoZSByZWNvZ25pemVyIGhhcyB0aGUgc3RhdGUgRkFJTEVELCBDQU5DRUxMRUQgb3IgUkVDT0dOSVpFRCAoZXF1YWxzIEVOREVEKSwgaXQgaXMgcmVzZXQgdG9cbiAqIFBPU1NJQkxFIHRvIGdpdmUgaXQgYW5vdGhlciBjaGFuZ2Ugb24gdGhlIG5leHQgY3ljbGUuXG4gKlxuICogICAgICAgICAgICAgICBQb3NzaWJsZVxuICogICAgICAgICAgICAgICAgICB8XG4gKiAgICAgICAgICAgICstLS0tLSstLS0tLS0tLS0tLS0tLS0rXG4gKiAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8XG4gKiAgICAgICstLS0tLSstLS0tLSsgICAgICAgICAgICAgICB8XG4gKiAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICB8XG4gKiAgIEZhaWxlZCAgICAgIENhbmNlbGxlZCAgICAgICAgICB8XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0rLS0tLS0tK1xuICogICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHxcbiAqICAgICAgICAgICAgICAgICAgICAgIFJlY29nbml6ZWQgICAgICAgQmVnYW5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbmdlZFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZGVkL1JlY29nbml6ZWRcbiAqL1xudmFyIFNUQVRFX1BPU1NJQkxFID0gMTtcbnZhciBTVEFURV9CRUdBTiA9IDI7XG52YXIgU1RBVEVfQ0hBTkdFRCA9IDQ7XG52YXIgU1RBVEVfRU5ERUQgPSA4O1xudmFyIFNUQVRFX1JFQ09HTklaRUQgPSBTVEFURV9FTkRFRDtcbnZhciBTVEFURV9DQU5DRUxMRUQgPSAxNjtcbnZhciBTVEFURV9GQUlMRUQgPSAzMjtcblxuLyoqXG4gKiBSZWNvZ25pemVyXG4gKiBFdmVyeSByZWNvZ25pemVyIG5lZWRzIHRvIGV4dGVuZCBmcm9tIHRoaXMgY2xhc3MuXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gKi9cbmZ1bmN0aW9uIFJlY29nbml6ZXIob3B0aW9ucykge1xuICAgIHRoaXMub3B0aW9ucyA9IGFzc2lnbih7fSwgdGhpcy5kZWZhdWx0cywgb3B0aW9ucyB8fCB7fSk7XG5cbiAgICB0aGlzLmlkID0gdW5pcXVlSWQoKTtcblxuICAgIHRoaXMubWFuYWdlciA9IG51bGw7XG5cbiAgICAvLyBkZWZhdWx0IGlzIGVuYWJsZSB0cnVlXG4gICAgdGhpcy5vcHRpb25zLmVuYWJsZSA9IGlmVW5kZWZpbmVkKHRoaXMub3B0aW9ucy5lbmFibGUsIHRydWUpO1xuXG4gICAgdGhpcy5zdGF0ZSA9IFNUQVRFX1BPU1NJQkxFO1xuXG4gICAgdGhpcy5zaW11bHRhbmVvdXMgPSB7fTtcbiAgICB0aGlzLnJlcXVpcmVGYWlsID0gW107XG59XG5cblJlY29nbml6ZXIucHJvdG90eXBlID0ge1xuICAgIC8qKlxuICAgICAqIEB2aXJ0dWFsXG4gICAgICogQHR5cGUge09iamVjdH1cbiAgICAgKi9cbiAgICBkZWZhdWx0czoge30sXG5cbiAgICAvKipcbiAgICAgKiBzZXQgb3B0aW9uc1xuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAgICogQHJldHVybiB7UmVjb2duaXplcn1cbiAgICAgKi9cbiAgICBzZXQ6IGZ1bmN0aW9uKG9wdGlvbnMpIHtcbiAgICAgICAgYXNzaWduKHRoaXMub3B0aW9ucywgb3B0aW9ucyk7XG5cbiAgICAgICAgLy8gYWxzbyB1cGRhdGUgdGhlIHRvdWNoQWN0aW9uLCBpbiBjYXNlIHNvbWV0aGluZyBjaGFuZ2VkIGFib3V0IHRoZSBkaXJlY3Rpb25zL2VuYWJsZWQgc3RhdGVcbiAgICAgICAgdGhpcy5tYW5hZ2VyICYmIHRoaXMubWFuYWdlci50b3VjaEFjdGlvbi51cGRhdGUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHJlY29nbml6ZSBzaW11bHRhbmVvdXMgd2l0aCBhbiBvdGhlciByZWNvZ25pemVyLlxuICAgICAqIEBwYXJhbSB7UmVjb2duaXplcn0gb3RoZXJSZWNvZ25pemVyXG4gICAgICogQHJldHVybnMge1JlY29nbml6ZXJ9IHRoaXNcbiAgICAgKi9cbiAgICByZWNvZ25pemVXaXRoOiBmdW5jdGlvbihvdGhlclJlY29nbml6ZXIpIHtcbiAgICAgICAgaWYgKGludm9rZUFycmF5QXJnKG90aGVyUmVjb2duaXplciwgJ3JlY29nbml6ZVdpdGgnLCB0aGlzKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgc2ltdWx0YW5lb3VzID0gdGhpcy5zaW11bHRhbmVvdXM7XG4gICAgICAgIG90aGVyUmVjb2duaXplciA9IGdldFJlY29nbml6ZXJCeU5hbWVJZk1hbmFnZXIob3RoZXJSZWNvZ25pemVyLCB0aGlzKTtcbiAgICAgICAgaWYgKCFzaW11bHRhbmVvdXNbb3RoZXJSZWNvZ25pemVyLmlkXSkge1xuICAgICAgICAgICAgc2ltdWx0YW5lb3VzW290aGVyUmVjb2duaXplci5pZF0gPSBvdGhlclJlY29nbml6ZXI7XG4gICAgICAgICAgICBvdGhlclJlY29nbml6ZXIucmVjb2duaXplV2l0aCh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogZHJvcCB0aGUgc2ltdWx0YW5lb3VzIGxpbmsuIGl0IGRvZXNudCByZW1vdmUgdGhlIGxpbmsgb24gdGhlIG90aGVyIHJlY29nbml6ZXIuXG4gICAgICogQHBhcmFtIHtSZWNvZ25pemVyfSBvdGhlclJlY29nbml6ZXJcbiAgICAgKiBAcmV0dXJucyB7UmVjb2duaXplcn0gdGhpc1xuICAgICAqL1xuICAgIGRyb3BSZWNvZ25pemVXaXRoOiBmdW5jdGlvbihvdGhlclJlY29nbml6ZXIpIHtcbiAgICAgICAgaWYgKGludm9rZUFycmF5QXJnKG90aGVyUmVjb2duaXplciwgJ2Ryb3BSZWNvZ25pemVXaXRoJywgdGhpcykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgb3RoZXJSZWNvZ25pemVyID0gZ2V0UmVjb2duaXplckJ5TmFtZUlmTWFuYWdlcihvdGhlclJlY29nbml6ZXIsIHRoaXMpO1xuICAgICAgICBkZWxldGUgdGhpcy5zaW11bHRhbmVvdXNbb3RoZXJSZWNvZ25pemVyLmlkXTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHJlY29nbml6ZXIgY2FuIG9ubHkgcnVuIHdoZW4gYW4gb3RoZXIgaXMgZmFpbGluZ1xuICAgICAqIEBwYXJhbSB7UmVjb2duaXplcn0gb3RoZXJSZWNvZ25pemVyXG4gICAgICogQHJldHVybnMge1JlY29nbml6ZXJ9IHRoaXNcbiAgICAgKi9cbiAgICByZXF1aXJlRmFpbHVyZTogZnVuY3Rpb24ob3RoZXJSZWNvZ25pemVyKSB7XG4gICAgICAgIGlmIChpbnZva2VBcnJheUFyZyhvdGhlclJlY29nbml6ZXIsICdyZXF1aXJlRmFpbHVyZScsIHRoaXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciByZXF1aXJlRmFpbCA9IHRoaXMucmVxdWlyZUZhaWw7XG4gICAgICAgIG90aGVyUmVjb2duaXplciA9IGdldFJlY29nbml6ZXJCeU5hbWVJZk1hbmFnZXIob3RoZXJSZWNvZ25pemVyLCB0aGlzKTtcbiAgICAgICAgaWYgKGluQXJyYXkocmVxdWlyZUZhaWwsIG90aGVyUmVjb2duaXplcikgPT09IC0xKSB7XG4gICAgICAgICAgICByZXF1aXJlRmFpbC5wdXNoKG90aGVyUmVjb2duaXplcik7XG4gICAgICAgICAgICBvdGhlclJlY29nbml6ZXIucmVxdWlyZUZhaWx1cmUodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGRyb3AgdGhlIHJlcXVpcmVGYWlsdXJlIGxpbmsuIGl0IGRvZXMgbm90IHJlbW92ZSB0aGUgbGluayBvbiB0aGUgb3RoZXIgcmVjb2duaXplci5cbiAgICAgKiBAcGFyYW0ge1JlY29nbml6ZXJ9IG90aGVyUmVjb2duaXplclxuICAgICAqIEByZXR1cm5zIHtSZWNvZ25pemVyfSB0aGlzXG4gICAgICovXG4gICAgZHJvcFJlcXVpcmVGYWlsdXJlOiBmdW5jdGlvbihvdGhlclJlY29nbml6ZXIpIHtcbiAgICAgICAgaWYgKGludm9rZUFycmF5QXJnKG90aGVyUmVjb2duaXplciwgJ2Ryb3BSZXF1aXJlRmFpbHVyZScsIHRoaXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIG90aGVyUmVjb2duaXplciA9IGdldFJlY29nbml6ZXJCeU5hbWVJZk1hbmFnZXIob3RoZXJSZWNvZ25pemVyLCB0aGlzKTtcbiAgICAgICAgdmFyIGluZGV4ID0gaW5BcnJheSh0aGlzLnJlcXVpcmVGYWlsLCBvdGhlclJlY29nbml6ZXIpO1xuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgdGhpcy5yZXF1aXJlRmFpbC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBoYXMgcmVxdWlyZSBmYWlsdXJlcyBib29sZWFuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAgICovXG4gICAgaGFzUmVxdWlyZUZhaWx1cmVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWlyZUZhaWwubGVuZ3RoID4gMDtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogaWYgdGhlIHJlY29nbml6ZXIgY2FuIHJlY29nbml6ZSBzaW11bHRhbmVvdXMgd2l0aCBhbiBvdGhlciByZWNvZ25pemVyXG4gICAgICogQHBhcmFtIHtSZWNvZ25pemVyfSBvdGhlclJlY29nbml6ZXJcbiAgICAgKiBAcmV0dXJucyB7Qm9vbGVhbn1cbiAgICAgKi9cbiAgICBjYW5SZWNvZ25pemVXaXRoOiBmdW5jdGlvbihvdGhlclJlY29nbml6ZXIpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5zaW11bHRhbmVvdXNbb3RoZXJSZWNvZ25pemVyLmlkXTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogWW91IHNob3VsZCB1c2UgYHRyeUVtaXRgIGluc3RlYWQgb2YgYGVtaXRgIGRpcmVjdGx5IHRvIGNoZWNrXG4gICAgICogdGhhdCBhbGwgdGhlIG5lZWRlZCByZWNvZ25pemVycyBoYXMgZmFpbGVkIGJlZm9yZSBlbWl0dGluZy5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gaW5wdXRcbiAgICAgKi9cbiAgICBlbWl0OiBmdW5jdGlvbihpbnB1dCkge1xuICAgICAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgICAgIHZhciBzdGF0ZSA9IHRoaXMuc3RhdGU7XG5cbiAgICAgICAgZnVuY3Rpb24gZW1pdChldmVudCkge1xuICAgICAgICAgICAgc2VsZi5tYW5hZ2VyLmVtaXQoZXZlbnQsIGlucHV0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vICdwYW5zdGFydCcgYW5kICdwYW5tb3ZlJ1xuICAgICAgICBpZiAoc3RhdGUgPCBTVEFURV9FTkRFRCkge1xuICAgICAgICAgICAgZW1pdChzZWxmLm9wdGlvbnMuZXZlbnQgKyBzdGF0ZVN0cihzdGF0ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgZW1pdChzZWxmLm9wdGlvbnMuZXZlbnQpOyAvLyBzaW1wbGUgJ2V2ZW50TmFtZScgZXZlbnRzXG5cbiAgICAgICAgaWYgKGlucHV0LmFkZGl0aW9uYWxFdmVudCkgeyAvLyBhZGRpdGlvbmFsIGV2ZW50KHBhbmxlZnQsIHBhbnJpZ2h0LCBwaW5jaGluLCBwaW5jaG91dC4uLilcbiAgICAgICAgICAgIGVtaXQoaW5wdXQuYWRkaXRpb25hbEV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHBhbmVuZCBhbmQgcGFuY2FuY2VsXG4gICAgICAgIGlmIChzdGF0ZSA+PSBTVEFURV9FTkRFRCkge1xuICAgICAgICAgICAgZW1pdChzZWxmLm9wdGlvbnMuZXZlbnQgKyBzdGF0ZVN0cihzdGF0ZSkpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIENoZWNrIHRoYXQgYWxsIHRoZSByZXF1aXJlIGZhaWx1cmUgcmVjb2duaXplcnMgaGFzIGZhaWxlZCxcbiAgICAgKiBpZiB0cnVlLCBpdCBlbWl0cyBhIGdlc3R1cmUgZXZlbnQsXG4gICAgICogb3RoZXJ3aXNlLCBzZXR1cCB0aGUgc3RhdGUgdG8gRkFJTEVELlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBpbnB1dFxuICAgICAqL1xuICAgIHRyeUVtaXQ6IGZ1bmN0aW9uKGlucHV0KSB7XG4gICAgICAgIGlmICh0aGlzLmNhbkVtaXQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZW1pdChpbnB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaXQncyBmYWlsaW5nIGFueXdheVxuICAgICAgICB0aGlzLnN0YXRlID0gU1RBVEVfRkFJTEVEO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBjYW4gd2UgZW1pdD9cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBjYW5FbWl0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGkgPSAwO1xuICAgICAgICB3aGlsZSAoaSA8IHRoaXMucmVxdWlyZUZhaWwubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoISh0aGlzLnJlcXVpcmVGYWlsW2ldLnN0YXRlICYgKFNUQVRFX0ZBSUxFRCB8IFNUQVRFX1BPU1NJQkxFKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHVwZGF0ZSB0aGUgcmVjb2duaXplclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBpbnB1dERhdGFcbiAgICAgKi9cbiAgICByZWNvZ25pemU6IGZ1bmN0aW9uKGlucHV0RGF0YSkge1xuICAgICAgICAvLyBtYWtlIGEgbmV3IGNvcHkgb2YgdGhlIGlucHV0RGF0YVxuICAgICAgICAvLyBzbyB3ZSBjYW4gY2hhbmdlIHRoZSBpbnB1dERhdGEgd2l0aG91dCBtZXNzaW5nIHVwIHRoZSBvdGhlciByZWNvZ25pemVyc1xuICAgICAgICB2YXIgaW5wdXREYXRhQ2xvbmUgPSBhc3NpZ24oe30sIGlucHV0RGF0YSk7XG5cbiAgICAgICAgLy8gaXMgaXMgZW5hYmxlZCBhbmQgYWxsb3cgcmVjb2duaXppbmc/XG4gICAgICAgIGlmICghYm9vbE9yRm4odGhpcy5vcHRpb25zLmVuYWJsZSwgW3RoaXMsIGlucHV0RGF0YUNsb25lXSkpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTVEFURV9GQUlMRUQ7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyByZXNldCB3aGVuIHdlJ3ZlIHJlYWNoZWQgdGhlIGVuZFxuICAgICAgICBpZiAodGhpcy5zdGF0ZSAmIChTVEFURV9SRUNPR05JWkVEIHwgU1RBVEVfQ0FOQ0VMTEVEIHwgU1RBVEVfRkFJTEVEKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFNUQVRFX1BPU1NJQkxFO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMucHJvY2VzcyhpbnB1dERhdGFDbG9uZSk7XG5cbiAgICAgICAgLy8gdGhlIHJlY29nbml6ZXIgaGFzIHJlY29nbml6ZWQgYSBnZXN0dXJlXG4gICAgICAgIC8vIHNvIHRyaWdnZXIgYW4gZXZlbnRcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgJiAoU1RBVEVfQkVHQU4gfCBTVEFURV9DSEFOR0VEIHwgU1RBVEVfRU5ERUQgfCBTVEFURV9DQU5DRUxMRUQpKSB7XG4gICAgICAgICAgICB0aGlzLnRyeUVtaXQoaW5wdXREYXRhQ2xvbmUpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHJldHVybiB0aGUgc3RhdGUgb2YgdGhlIHJlY29nbml6ZXJcbiAgICAgKiB0aGUgYWN0dWFsIHJlY29nbml6aW5nIGhhcHBlbnMgaW4gdGhpcyBtZXRob2RcbiAgICAgKiBAdmlydHVhbFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBpbnB1dERhdGFcbiAgICAgKiBAcmV0dXJucyB7Q29uc3R9IFNUQVRFXG4gICAgICovXG4gICAgcHJvY2VzczogZnVuY3Rpb24oaW5wdXREYXRhKSB7IH0sIC8vIGpzaGludCBpZ25vcmU6bGluZVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJuIHRoZSBwcmVmZXJyZWQgdG91Y2gtYWN0aW9uXG4gICAgICogQHZpcnR1YWxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9XG4gICAgICovXG4gICAgZ2V0VG91Y2hBY3Rpb246IGZ1bmN0aW9uKCkgeyB9LFxuXG4gICAgLyoqXG4gICAgICogY2FsbGVkIHdoZW4gdGhlIGdlc3R1cmUgaXNuJ3QgYWxsb3dlZCB0byByZWNvZ25pemVcbiAgICAgKiBsaWtlIHdoZW4gYW5vdGhlciBpcyBiZWluZyByZWNvZ25pemVkIG9yIGl0IGlzIGRpc2FibGVkXG4gICAgICogQHZpcnR1YWxcbiAgICAgKi9cbiAgICByZXNldDogZnVuY3Rpb24oKSB7IH1cbn07XG5cbi8qKlxuICogZ2V0IGEgdXNhYmxlIHN0cmluZywgdXNlZCBhcyBldmVudCBwb3N0Zml4XG4gKiBAcGFyYW0ge0NvbnN0fSBzdGF0ZVxuICogQHJldHVybnMge1N0cmluZ30gc3RhdGVcbiAqL1xuZnVuY3Rpb24gc3RhdGVTdHIoc3RhdGUpIHtcbiAgICBpZiAoc3RhdGUgJiBTVEFURV9DQU5DRUxMRUQpIHtcbiAgICAgICAgcmV0dXJuICdjYW5jZWwnO1xuICAgIH0gZWxzZSBpZiAoc3RhdGUgJiBTVEFURV9FTkRFRCkge1xuICAgICAgICByZXR1cm4gJ2VuZCc7XG4gICAgfSBlbHNlIGlmIChzdGF0ZSAmIFNUQVRFX0NIQU5HRUQpIHtcbiAgICAgICAgcmV0dXJuICdtb3ZlJztcbiAgICB9IGVsc2UgaWYgKHN0YXRlICYgU1RBVEVfQkVHQU4pIHtcbiAgICAgICAgcmV0dXJuICdzdGFydCc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbn1cblxuLyoqXG4gKiBkaXJlY3Rpb24gY29ucyB0byBzdHJpbmdcbiAqIEBwYXJhbSB7Q29uc3R9IGRpcmVjdGlvblxuICogQHJldHVybnMge1N0cmluZ31cbiAqL1xuZnVuY3Rpb24gZGlyZWN0aW9uU3RyKGRpcmVjdGlvbikge1xuICAgIGlmIChkaXJlY3Rpb24gPT0gRElSRUNUSU9OX0RPV04pIHtcbiAgICAgICAgcmV0dXJuICdkb3duJztcbiAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBESVJFQ1RJT05fVVApIHtcbiAgICAgICAgcmV0dXJuICd1cCc7XG4gICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT0gRElSRUNUSU9OX0xFRlQpIHtcbiAgICAgICAgcmV0dXJuICdsZWZ0JztcbiAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBESVJFQ1RJT05fUklHSFQpIHtcbiAgICAgICAgcmV0dXJuICdyaWdodCc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbn1cblxuLyoqXG4gKiBnZXQgYSByZWNvZ25pemVyIGJ5IG5hbWUgaWYgaXQgaXMgYm91bmQgdG8gYSBtYW5hZ2VyXG4gKiBAcGFyYW0ge1JlY29nbml6ZXJ8U3RyaW5nfSBvdGhlclJlY29nbml6ZXJcbiAqIEBwYXJhbSB7UmVjb2duaXplcn0gcmVjb2duaXplclxuICogQHJldHVybnMge1JlY29nbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIGdldFJlY29nbml6ZXJCeU5hbWVJZk1hbmFnZXIob3RoZXJSZWNvZ25pemVyLCByZWNvZ25pemVyKSB7XG4gICAgdmFyIG1hbmFnZXIgPSByZWNvZ25pemVyLm1hbmFnZXI7XG4gICAgaWYgKG1hbmFnZXIpIHtcbiAgICAgICAgcmV0dXJuIG1hbmFnZXIuZ2V0KG90aGVyUmVjb2duaXplcik7XG4gICAgfVxuICAgIHJldHVybiBvdGhlclJlY29nbml6ZXI7XG59XG5cbi8qKlxuICogVGhpcyByZWNvZ25pemVyIGlzIGp1c3QgdXNlZCBhcyBhIGJhc2UgZm9yIHRoZSBzaW1wbGUgYXR0cmlidXRlIHJlY29nbml6ZXJzLlxuICogQGNvbnN0cnVjdG9yXG4gKiBAZXh0ZW5kcyBSZWNvZ25pemVyXG4gKi9cbmZ1bmN0aW9uIEF0dHJSZWNvZ25pemVyKCkge1xuICAgIFJlY29nbml6ZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuaW5oZXJpdChBdHRyUmVjb2duaXplciwgUmVjb2duaXplciwge1xuICAgIC8qKlxuICAgICAqIEBuYW1lc3BhY2VcbiAgICAgKiBAbWVtYmVyb2YgQXR0clJlY29nbml6ZXJcbiAgICAgKi9cbiAgICBkZWZhdWx0czoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQHR5cGUge051bWJlcn1cbiAgICAgICAgICogQGRlZmF1bHQgMVxuICAgICAgICAgKi9cbiAgICAgICAgcG9pbnRlcnM6IDFcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogVXNlZCB0byBjaGVjayBpZiBpdCB0aGUgcmVjb2duaXplciByZWNlaXZlcyB2YWxpZCBpbnB1dCwgbGlrZSBpbnB1dC5kaXN0YW5jZSA+IDEwLlxuICAgICAqIEBtZW1iZXJvZiBBdHRyUmVjb2duaXplclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBpbnB1dFxuICAgICAqIEByZXR1cm5zIHtCb29sZWFufSByZWNvZ25pemVkXG4gICAgICovXG4gICAgYXR0clRlc3Q6IGZ1bmN0aW9uKGlucHV0KSB7XG4gICAgICAgIHZhciBvcHRpb25Qb2ludGVycyA9IHRoaXMub3B0aW9ucy5wb2ludGVycztcbiAgICAgICAgcmV0dXJuIG9wdGlvblBvaW50ZXJzID09PSAwIHx8IGlucHV0LnBvaW50ZXJzLmxlbmd0aCA9PT0gb3B0aW9uUG9pbnRlcnM7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3MgdGhlIGlucHV0IGFuZCByZXR1cm4gdGhlIHN0YXRlIGZvciB0aGUgcmVjb2duaXplclxuICAgICAqIEBtZW1iZXJvZiBBdHRyUmVjb2duaXplclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBpbnB1dFxuICAgICAqIEByZXR1cm5zIHsqfSBTdGF0ZVxuICAgICAqL1xuICAgIHByb2Nlc3M6IGZ1bmN0aW9uKGlucHV0KSB7XG4gICAgICAgIHZhciBzdGF0ZSA9IHRoaXMuc3RhdGU7XG4gICAgICAgIHZhciBldmVudFR5cGUgPSBpbnB1dC5ldmVudFR5cGU7XG5cbiAgICAgICAgdmFyIGlzUmVjb2duaXplZCA9IHN0YXRlICYgKFNUQVRFX0JFR0FOIHwgU1RBVEVfQ0hBTkdFRCk7XG4gICAgICAgIHZhciBpc1ZhbGlkID0gdGhpcy5hdHRyVGVzdChpbnB1dCk7XG5cbiAgICAgICAgLy8gb24gY2FuY2VsIGlucHV0IGFuZCB3ZSd2ZSByZWNvZ25pemVkIGJlZm9yZSwgcmV0dXJuIFNUQVRFX0NBTkNFTExFRFxuICAgICAgICBpZiAoaXNSZWNvZ25pemVkICYmIChldmVudFR5cGUgJiBJTlBVVF9DQU5DRUwgfHwgIWlzVmFsaWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RhdGUgfCBTVEFURV9DQU5DRUxMRUQ7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNSZWNvZ25pemVkIHx8IGlzVmFsaWQpIHtcbiAgICAgICAgICAgIGlmIChldmVudFR5cGUgJiBJTlBVVF9FTkQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGUgfCBTVEFURV9FTkRFRDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIShzdGF0ZSAmIFNUQVRFX0JFR0FOKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBTVEFURV9CRUdBTjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzdGF0ZSB8IFNUQVRFX0NIQU5HRUQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFNUQVRFX0ZBSUxFRDtcbiAgICB9XG59KTtcblxuLyoqXG4gKiBQYW5cbiAqIFJlY29nbml6ZWQgd2hlbiB0aGUgcG9pbnRlciBpcyBkb3duIGFuZCBtb3ZlZCBpbiB0aGUgYWxsb3dlZCBkaXJlY3Rpb24uXG4gKiBAY29uc3RydWN0b3JcbiAqIEBleHRlbmRzIEF0dHJSZWNvZ25pemVyXG4gKi9cbmZ1bmN0aW9uIFBhblJlY29nbml6ZXIoKSB7XG4gICAgQXR0clJlY29nbml6ZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICAgIHRoaXMucFggPSBudWxsO1xuICAgIHRoaXMucFkgPSBudWxsO1xufVxuXG5pbmhlcml0KFBhblJlY29nbml6ZXIsIEF0dHJSZWNvZ25pemVyLCB7XG4gICAgLyoqXG4gICAgICogQG5hbWVzcGFjZVxuICAgICAqIEBtZW1iZXJvZiBQYW5SZWNvZ25pemVyXG4gICAgICovXG4gICAgZGVmYXVsdHM6IHtcbiAgICAgICAgZXZlbnQ6ICdwYW4nLFxuICAgICAgICB0aHJlc2hvbGQ6IDEwLFxuICAgICAgICBwb2ludGVyczogMSxcbiAgICAgICAgZGlyZWN0aW9uOiBESVJFQ1RJT05fQUxMXG4gICAgfSxcblxuICAgIGdldFRvdWNoQWN0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGRpcmVjdGlvbiA9IHRoaXMub3B0aW9ucy5kaXJlY3Rpb247XG4gICAgICAgIHZhciBhY3Rpb25zID0gW107XG4gICAgICAgIGlmIChkaXJlY3Rpb24gJiBESVJFQ1RJT05fSE9SSVpPTlRBTCkge1xuICAgICAgICAgICAgYWN0aW9ucy5wdXNoKFRPVUNIX0FDVElPTl9QQU5fWSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRpcmVjdGlvbiAmIERJUkVDVElPTl9WRVJUSUNBTCkge1xuICAgICAgICAgICAgYWN0aW9ucy5wdXNoKFRPVUNIX0FDVElPTl9QQU5fWCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjdGlvbnM7XG4gICAgfSxcblxuICAgIGRpcmVjdGlvblRlc3Q6IGZ1bmN0aW9uKGlucHV0KSB7XG4gICAgICAgIHZhciBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgICAgICB2YXIgaGFzTW92ZWQgPSB0cnVlO1xuICAgICAgICB2YXIgZGlzdGFuY2UgPSBpbnB1dC5kaXN0YW5jZTtcbiAgICAgICAgdmFyIGRpcmVjdGlvbiA9IGlucHV0LmRpcmVjdGlvbjtcbiAgICAgICAgdmFyIHggPSBpbnB1dC5kZWx0YVg7XG4gICAgICAgIHZhciB5ID0gaW5wdXQuZGVsdGFZO1xuXG4gICAgICAgIC8vIGxvY2sgdG8gYXhpcz9cbiAgICAgICAgaWYgKCEoZGlyZWN0aW9uICYgb3B0aW9ucy5kaXJlY3Rpb24pKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5kaXJlY3Rpb24gJiBESVJFQ1RJT05fSE9SSVpPTlRBTCkge1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICh4ID09PSAwKSA/IERJUkVDVElPTl9OT05FIDogKHggPCAwKSA/IERJUkVDVElPTl9MRUZUIDogRElSRUNUSU9OX1JJR0hUO1xuICAgICAgICAgICAgICAgIGhhc01vdmVkID0geCAhPSB0aGlzLnBYO1xuICAgICAgICAgICAgICAgIGRpc3RhbmNlID0gTWF0aC5hYnMoaW5wdXQuZGVsdGFYKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uID0gKHkgPT09IDApID8gRElSRUNUSU9OX05PTkUgOiAoeSA8IDApID8gRElSRUNUSU9OX1VQIDogRElSRUNUSU9OX0RPV047XG4gICAgICAgICAgICAgICAgaGFzTW92ZWQgPSB5ICE9IHRoaXMucFk7XG4gICAgICAgICAgICAgICAgZGlzdGFuY2UgPSBNYXRoLmFicyhpbnB1dC5kZWx0YVkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlucHV0LmRpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICAgICAgcmV0dXJuIGhhc01vdmVkICYmIGRpc3RhbmNlID4gb3B0aW9ucy50aHJlc2hvbGQgJiYgZGlyZWN0aW9uICYgb3B0aW9ucy5kaXJlY3Rpb247XG4gICAgfSxcblxuICAgIGF0dHJUZXN0OiBmdW5jdGlvbihpbnB1dCkge1xuICAgICAgICByZXR1cm4gQXR0clJlY29nbml6ZXIucHJvdG90eXBlLmF0dHJUZXN0LmNhbGwodGhpcywgaW5wdXQpICYmXG4gICAgICAgICAgICAodGhpcy5zdGF0ZSAmIFNUQVRFX0JFR0FOIHx8ICghKHRoaXMuc3RhdGUgJiBTVEFURV9CRUdBTikgJiYgdGhpcy5kaXJlY3Rpb25UZXN0KGlucHV0KSkpO1xuICAgIH0sXG5cbiAgICBlbWl0OiBmdW5jdGlvbihpbnB1dCkge1xuXG4gICAgICAgIHRoaXMucFggPSBpbnB1dC5kZWx0YVg7XG4gICAgICAgIHRoaXMucFkgPSBpbnB1dC5kZWx0YVk7XG5cbiAgICAgICAgdmFyIGRpcmVjdGlvbiA9IGRpcmVjdGlvblN0cihpbnB1dC5kaXJlY3Rpb24pO1xuXG4gICAgICAgIGlmIChkaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGlucHV0LmFkZGl0aW9uYWxFdmVudCA9IHRoaXMub3B0aW9ucy5ldmVudCArIGRpcmVjdGlvbjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zdXBlci5lbWl0LmNhbGwodGhpcywgaW5wdXQpO1xuICAgIH1cbn0pO1xuXG4vKipcbiAqIFBpbmNoXG4gKiBSZWNvZ25pemVkIHdoZW4gdHdvIG9yIG1vcmUgcG9pbnRlcnMgYXJlIG1vdmluZyB0b3dhcmQgKHpvb20taW4pIG9yIGF3YXkgZnJvbSBlYWNoIG90aGVyICh6b29tLW91dCkuXG4gKiBAY29uc3RydWN0b3JcbiAqIEBleHRlbmRzIEF0dHJSZWNvZ25pemVyXG4gKi9cbmZ1bmN0aW9uIFBpbmNoUmVjb2duaXplcigpIHtcbiAgICBBdHRyUmVjb2duaXplci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuXG5pbmhlcml0KFBpbmNoUmVjb2duaXplciwgQXR0clJlY29nbml6ZXIsIHtcbiAgICAvKipcbiAgICAgKiBAbmFtZXNwYWNlXG4gICAgICogQG1lbWJlcm9mIFBpbmNoUmVjb2duaXplclxuICAgICAqL1xuICAgIGRlZmF1bHRzOiB7XG4gICAgICAgIGV2ZW50OiAncGluY2gnLFxuICAgICAgICB0aHJlc2hvbGQ6IDAsXG4gICAgICAgIHBvaW50ZXJzOiAyXG4gICAgfSxcblxuICAgIGdldFRvdWNoQWN0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFtUT1VDSF9BQ1RJT05fTk9ORV07XG4gICAgfSxcblxuICAgIGF0dHJUZXN0OiBmdW5jdGlvbihpbnB1dCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3VwZXIuYXR0clRlc3QuY2FsbCh0aGlzLCBpbnB1dCkgJiZcbiAgICAgICAgICAgIChNYXRoLmFicyhpbnB1dC5zY2FsZSAtIDEpID4gdGhpcy5vcHRpb25zLnRocmVzaG9sZCB8fCB0aGlzLnN0YXRlICYgU1RBVEVfQkVHQU4pO1xuICAgIH0sXG5cbiAgICBlbWl0OiBmdW5jdGlvbihpbnB1dCkge1xuICAgICAgICBpZiAoaW5wdXQuc2NhbGUgIT09IDEpIHtcbiAgICAgICAgICAgIHZhciBpbk91dCA9IGlucHV0LnNjYWxlIDwgMSA/ICdpbicgOiAnb3V0JztcbiAgICAgICAgICAgIGlucHV0LmFkZGl0aW9uYWxFdmVudCA9IHRoaXMub3B0aW9ucy5ldmVudCArIGluT3V0O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3N1cGVyLmVtaXQuY2FsbCh0aGlzLCBpbnB1dCk7XG4gICAgfVxufSk7XG5cbi8qKlxuICogUHJlc3NcbiAqIFJlY29nbml6ZWQgd2hlbiB0aGUgcG9pbnRlciBpcyBkb3duIGZvciB4IG1zIHdpdGhvdXQgYW55IG1vdmVtZW50LlxuICogQGNvbnN0cnVjdG9yXG4gKiBAZXh0ZW5kcyBSZWNvZ25pemVyXG4gKi9cbmZ1bmN0aW9uIFByZXNzUmVjb2duaXplcigpIHtcbiAgICBSZWNvZ25pemVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgICB0aGlzLl90aW1lciA9IG51bGw7XG4gICAgdGhpcy5faW5wdXQgPSBudWxsO1xufVxuXG5pbmhlcml0KFByZXNzUmVjb2duaXplciwgUmVjb2duaXplciwge1xuICAgIC8qKlxuICAgICAqIEBuYW1lc3BhY2VcbiAgICAgKiBAbWVtYmVyb2YgUHJlc3NSZWNvZ25pemVyXG4gICAgICovXG4gICAgZGVmYXVsdHM6IHtcbiAgICAgICAgZXZlbnQ6ICdwcmVzcycsXG4gICAgICAgIHBvaW50ZXJzOiAxLFxuICAgICAgICB0aW1lOiAyNTEsIC8vIG1pbmltYWwgdGltZSBvZiB0aGUgcG9pbnRlciB0byBiZSBwcmVzc2VkXG4gICAgICAgIHRocmVzaG9sZDogOSAvLyBhIG1pbmltYWwgbW92ZW1lbnQgaXMgb2ssIGJ1dCBrZWVwIGl0IGxvd1xuICAgIH0sXG5cbiAgICBnZXRUb3VjaEFjdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBbVE9VQ0hfQUNUSU9OX0FVVE9dO1xuICAgIH0sXG5cbiAgICBwcm9jZXNzOiBmdW5jdGlvbihpbnB1dCkge1xuICAgICAgICB2YXIgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgdmFyIHZhbGlkUG9pbnRlcnMgPSBpbnB1dC5wb2ludGVycy5sZW5ndGggPT09IG9wdGlvbnMucG9pbnRlcnM7XG4gICAgICAgIHZhciB2YWxpZE1vdmVtZW50ID0gaW5wdXQuZGlzdGFuY2UgPCBvcHRpb25zLnRocmVzaG9sZDtcbiAgICAgICAgdmFyIHZhbGlkVGltZSA9IGlucHV0LmRlbHRhVGltZSA+IG9wdGlvbnMudGltZTtcblxuICAgICAgICB0aGlzLl9pbnB1dCA9IGlucHV0O1xuXG4gICAgICAgIC8vIHdlIG9ubHkgYWxsb3cgbGl0dGxlIG1vdmVtZW50XG4gICAgICAgIC8vIGFuZCB3ZSd2ZSByZWFjaGVkIGFuIGVuZCBldmVudCwgc28gYSB0YXAgaXMgcG9zc2libGVcbiAgICAgICAgaWYgKCF2YWxpZE1vdmVtZW50IHx8ICF2YWxpZFBvaW50ZXJzIHx8IChpbnB1dC5ldmVudFR5cGUgJiAoSU5QVVRfRU5EIHwgSU5QVVRfQ0FOQ0VMKSAmJiAhdmFsaWRUaW1lKSkge1xuICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGlucHV0LmV2ZW50VHlwZSAmIElOUFVUX1NUQVJUKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICB0aGlzLl90aW1lciA9IHNldFRpbWVvdXRDb250ZXh0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTVEFURV9SRUNPR05JWkVEO1xuICAgICAgICAgICAgICAgIHRoaXMudHJ5RW1pdCgpO1xuICAgICAgICAgICAgfSwgb3B0aW9ucy50aW1lLCB0aGlzKTtcbiAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5ldmVudFR5cGUgJiBJTlBVVF9FTkQpIHtcbiAgICAgICAgICAgIHJldHVybiBTVEFURV9SRUNPR05JWkVEO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBTVEFURV9GQUlMRUQ7XG4gICAgfSxcblxuICAgIHJlc2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVyKTtcbiAgICB9LFxuXG4gICAgZW1pdDogZnVuY3Rpb24oaW5wdXQpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgIT09IFNUQVRFX1JFQ09HTklaRUQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpbnB1dCAmJiAoaW5wdXQuZXZlbnRUeXBlICYgSU5QVVRfRU5EKSkge1xuICAgICAgICAgICAgdGhpcy5tYW5hZ2VyLmVtaXQodGhpcy5vcHRpb25zLmV2ZW50ICsgJ3VwJywgaW5wdXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faW5wdXQudGltZVN0YW1wID0gbm93KCk7XG4gICAgICAgICAgICB0aGlzLm1hbmFnZXIuZW1pdCh0aGlzLm9wdGlvbnMuZXZlbnQsIHRoaXMuX2lucHV0KTtcbiAgICAgICAgfVxuICAgIH1cbn0pO1xuXG4vKipcbiAqIFJvdGF0ZVxuICogUmVjb2duaXplZCB3aGVuIHR3byBvciBtb3JlIHBvaW50ZXIgYXJlIG1vdmluZyBpbiBhIGNpcmN1bGFyIG1vdGlvbi5cbiAqIEBjb25zdHJ1Y3RvclxuICogQGV4dGVuZHMgQXR0clJlY29nbml6ZXJcbiAqL1xuZnVuY3Rpb24gUm90YXRlUmVjb2duaXplcigpIHtcbiAgICBBdHRyUmVjb2duaXplci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuXG5pbmhlcml0KFJvdGF0ZVJlY29nbml6ZXIsIEF0dHJSZWNvZ25pemVyLCB7XG4gICAgLyoqXG4gICAgICogQG5hbWVzcGFjZVxuICAgICAqIEBtZW1iZXJvZiBSb3RhdGVSZWNvZ25pemVyXG4gICAgICovXG4gICAgZGVmYXVsdHM6IHtcbiAgICAgICAgZXZlbnQ6ICdyb3RhdGUnLFxuICAgICAgICB0aHJlc2hvbGQ6IDAsXG4gICAgICAgIHBvaW50ZXJzOiAyXG4gICAgfSxcblxuICAgIGdldFRvdWNoQWN0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFtUT1VDSF9BQ1RJT05fTk9ORV07XG4gICAgfSxcblxuICAgIGF0dHJUZXN0OiBmdW5jdGlvbihpbnB1dCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3VwZXIuYXR0clRlc3QuY2FsbCh0aGlzLCBpbnB1dCkgJiZcbiAgICAgICAgICAgIChNYXRoLmFicyhpbnB1dC5yb3RhdGlvbikgPiB0aGlzLm9wdGlvbnMudGhyZXNob2xkIHx8IHRoaXMuc3RhdGUgJiBTVEFURV9CRUdBTik7XG4gICAgfVxufSk7XG5cbi8qKlxuICogU3dpcGVcbiAqIFJlY29nbml6ZWQgd2hlbiB0aGUgcG9pbnRlciBpcyBtb3ZpbmcgZmFzdCAodmVsb2NpdHkpLCB3aXRoIGVub3VnaCBkaXN0YW5jZSBpbiB0aGUgYWxsb3dlZCBkaXJlY3Rpb24uXG4gKiBAY29uc3RydWN0b3JcbiAqIEBleHRlbmRzIEF0dHJSZWNvZ25pemVyXG4gKi9cbmZ1bmN0aW9uIFN3aXBlUmVjb2duaXplcigpIHtcbiAgICBBdHRyUmVjb2duaXplci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuXG5pbmhlcml0KFN3aXBlUmVjb2duaXplciwgQXR0clJlY29nbml6ZXIsIHtcbiAgICAvKipcbiAgICAgKiBAbmFtZXNwYWNlXG4gICAgICogQG1lbWJlcm9mIFN3aXBlUmVjb2duaXplclxuICAgICAqL1xuICAgIGRlZmF1bHRzOiB7XG4gICAgICAgIGV2ZW50OiAnc3dpcGUnLFxuICAgICAgICB0aHJlc2hvbGQ6IDEwLFxuICAgICAgICB2ZWxvY2l0eTogMC4zLFxuICAgICAgICBkaXJlY3Rpb246IERJUkVDVElPTl9IT1JJWk9OVEFMIHwgRElSRUNUSU9OX1ZFUlRJQ0FMLFxuICAgICAgICBwb2ludGVyczogMVxuICAgIH0sXG5cbiAgICBnZXRUb3VjaEFjdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBQYW5SZWNvZ25pemVyLnByb3RvdHlwZS5nZXRUb3VjaEFjdGlvbi5jYWxsKHRoaXMpO1xuICAgIH0sXG5cbiAgICBhdHRyVGVzdDogZnVuY3Rpb24oaW5wdXQpIHtcbiAgICAgICAgdmFyIGRpcmVjdGlvbiA9IHRoaXMub3B0aW9ucy5kaXJlY3Rpb247XG4gICAgICAgIHZhciB2ZWxvY2l0eTtcblxuICAgICAgICBpZiAoZGlyZWN0aW9uICYgKERJUkVDVElPTl9IT1JJWk9OVEFMIHwgRElSRUNUSU9OX1ZFUlRJQ0FMKSkge1xuICAgICAgICAgICAgdmVsb2NpdHkgPSBpbnB1dC5vdmVyYWxsVmVsb2NpdHk7XG4gICAgICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uICYgRElSRUNUSU9OX0hPUklaT05UQUwpIHtcbiAgICAgICAgICAgIHZlbG9jaXR5ID0gaW5wdXQub3ZlcmFsbFZlbG9jaXR5WDtcbiAgICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gJiBESVJFQ1RJT05fVkVSVElDQUwpIHtcbiAgICAgICAgICAgIHZlbG9jaXR5ID0gaW5wdXQub3ZlcmFsbFZlbG9jaXR5WTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9zdXBlci5hdHRyVGVzdC5jYWxsKHRoaXMsIGlucHV0KSAmJlxuICAgICAgICAgICAgZGlyZWN0aW9uICYgaW5wdXQub2Zmc2V0RGlyZWN0aW9uICYmXG4gICAgICAgICAgICBpbnB1dC5kaXN0YW5jZSA+IHRoaXMub3B0aW9ucy50aHJlc2hvbGQgJiZcbiAgICAgICAgICAgIGlucHV0Lm1heFBvaW50ZXJzID09IHRoaXMub3B0aW9ucy5wb2ludGVycyAmJlxuICAgICAgICAgICAgYWJzKHZlbG9jaXR5KSA+IHRoaXMub3B0aW9ucy52ZWxvY2l0eSAmJiBpbnB1dC5ldmVudFR5cGUgJiBJTlBVVF9FTkQ7XG4gICAgfSxcblxuICAgIGVtaXQ6IGZ1bmN0aW9uKGlucHV0KSB7XG4gICAgICAgIHZhciBkaXJlY3Rpb24gPSBkaXJlY3Rpb25TdHIoaW5wdXQub2Zmc2V0RGlyZWN0aW9uKTtcbiAgICAgICAgaWYgKGRpcmVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5tYW5hZ2VyLmVtaXQodGhpcy5vcHRpb25zLmV2ZW50ICsgZGlyZWN0aW9uLCBpbnB1dCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1hbmFnZXIuZW1pdCh0aGlzLm9wdGlvbnMuZXZlbnQsIGlucHV0KTtcbiAgICB9XG59KTtcblxuLyoqXG4gKiBBIHRhcCBpcyBlY29nbml6ZWQgd2hlbiB0aGUgcG9pbnRlciBpcyBkb2luZyBhIHNtYWxsIHRhcC9jbGljay4gTXVsdGlwbGUgdGFwcyBhcmUgcmVjb2duaXplZCBpZiB0aGV5IG9jY3VyXG4gKiBiZXR3ZWVuIHRoZSBnaXZlbiBpbnRlcnZhbCBhbmQgcG9zaXRpb24uIFRoZSBkZWxheSBvcHRpb24gY2FuIGJlIHVzZWQgdG8gcmVjb2duaXplIG11bHRpLXRhcHMgd2l0aG91dCBmaXJpbmdcbiAqIGEgc2luZ2xlIHRhcC5cbiAqXG4gKiBUaGUgZXZlbnREYXRhIGZyb20gdGhlIGVtaXR0ZWQgZXZlbnQgY29udGFpbnMgdGhlIHByb3BlcnR5IGB0YXBDb3VudGAsIHdoaWNoIGNvbnRhaW5zIHRoZSBhbW91bnQgb2ZcbiAqIG11bHRpLXRhcHMgYmVpbmcgcmVjb2duaXplZC5cbiAqIEBjb25zdHJ1Y3RvclxuICogQGV4dGVuZHMgUmVjb2duaXplclxuICovXG5mdW5jdGlvbiBUYXBSZWNvZ25pemVyKCkge1xuICAgIFJlY29nbml6ZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICAgIC8vIHByZXZpb3VzIHRpbWUgYW5kIGNlbnRlcixcbiAgICAvLyB1c2VkIGZvciB0YXAgY291bnRpbmdcbiAgICB0aGlzLnBUaW1lID0gZmFsc2U7XG4gICAgdGhpcy5wQ2VudGVyID0gZmFsc2U7XG5cbiAgICB0aGlzLl90aW1lciA9IG51bGw7XG4gICAgdGhpcy5faW5wdXQgPSBudWxsO1xuICAgIHRoaXMuY291bnQgPSAwO1xufVxuXG5pbmhlcml0KFRhcFJlY29nbml6ZXIsIFJlY29nbml6ZXIsIHtcbiAgICAvKipcbiAgICAgKiBAbmFtZXNwYWNlXG4gICAgICogQG1lbWJlcm9mIFBpbmNoUmVjb2duaXplclxuICAgICAqL1xuICAgIGRlZmF1bHRzOiB7XG4gICAgICAgIGV2ZW50OiAndGFwJyxcbiAgICAgICAgcG9pbnRlcnM6IDEsXG4gICAgICAgIHRhcHM6IDEsXG4gICAgICAgIGludGVydmFsOiAzMDAsIC8vIG1heCB0aW1lIGJldHdlZW4gdGhlIG11bHRpLXRhcCB0YXBzXG4gICAgICAgIHRpbWU6IDI1MCwgLy8gbWF4IHRpbWUgb2YgdGhlIHBvaW50ZXIgdG8gYmUgZG93biAobGlrZSBmaW5nZXIgb24gdGhlIHNjcmVlbilcbiAgICAgICAgdGhyZXNob2xkOiA5LCAvLyBhIG1pbmltYWwgbW92ZW1lbnQgaXMgb2ssIGJ1dCBrZWVwIGl0IGxvd1xuICAgICAgICBwb3NUaHJlc2hvbGQ6IDEwIC8vIGEgbXVsdGktdGFwIGNhbiBiZSBhIGJpdCBvZmYgdGhlIGluaXRpYWwgcG9zaXRpb25cbiAgICB9LFxuXG4gICAgZ2V0VG91Y2hBY3Rpb246IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gW1RPVUNIX0FDVElPTl9NQU5JUFVMQVRJT05dO1xuICAgIH0sXG5cbiAgICBwcm9jZXNzOiBmdW5jdGlvbihpbnB1dCkge1xuICAgICAgICB2YXIgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcblxuICAgICAgICB2YXIgdmFsaWRQb2ludGVycyA9IGlucHV0LnBvaW50ZXJzLmxlbmd0aCA9PT0gb3B0aW9ucy5wb2ludGVycztcbiAgICAgICAgdmFyIHZhbGlkTW92ZW1lbnQgPSBpbnB1dC5kaXN0YW5jZSA8IG9wdGlvbnMudGhyZXNob2xkO1xuICAgICAgICB2YXIgdmFsaWRUb3VjaFRpbWUgPSBpbnB1dC5kZWx0YVRpbWUgPCBvcHRpb25zLnRpbWU7XG5cbiAgICAgICAgdGhpcy5yZXNldCgpO1xuXG4gICAgICAgIGlmICgoaW5wdXQuZXZlbnRUeXBlICYgSU5QVVRfU1RBUlQpICYmICh0aGlzLmNvdW50ID09PSAwKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmFpbFRpbWVvdXQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHdlIG9ubHkgYWxsb3cgbGl0dGxlIG1vdmVtZW50XG4gICAgICAgIC8vIGFuZCB3ZSd2ZSByZWFjaGVkIGFuIGVuZCBldmVudCwgc28gYSB0YXAgaXMgcG9zc2libGVcbiAgICAgICAgaWYgKHZhbGlkTW92ZW1lbnQgJiYgdmFsaWRUb3VjaFRpbWUgJiYgdmFsaWRQb2ludGVycykge1xuICAgICAgICAgICAgaWYgKGlucHV0LmV2ZW50VHlwZSAhPSBJTlBVVF9FTkQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mYWlsVGltZW91dCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgdmFsaWRJbnRlcnZhbCA9IHRoaXMucFRpbWUgPyAoaW5wdXQudGltZVN0YW1wIC0gdGhpcy5wVGltZSA8IG9wdGlvbnMuaW50ZXJ2YWwpIDogdHJ1ZTtcbiAgICAgICAgICAgIHZhciB2YWxpZE11bHRpVGFwID0gIXRoaXMucENlbnRlciB8fCBnZXREaXN0YW5jZSh0aGlzLnBDZW50ZXIsIGlucHV0LmNlbnRlcikgPCBvcHRpb25zLnBvc1RocmVzaG9sZDtcblxuICAgICAgICAgICAgdGhpcy5wVGltZSA9IGlucHV0LnRpbWVTdGFtcDtcbiAgICAgICAgICAgIHRoaXMucENlbnRlciA9IGlucHV0LmNlbnRlcjtcblxuICAgICAgICAgICAgaWYgKCF2YWxpZE11bHRpVGFwIHx8ICF2YWxpZEludGVydmFsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb3VudCA9IDE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY291bnQgKz0gMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5faW5wdXQgPSBpbnB1dDtcblxuICAgICAgICAgICAgLy8gaWYgdGFwIGNvdW50IG1hdGNoZXMgd2UgaGF2ZSByZWNvZ25pemVkIGl0LFxuICAgICAgICAgICAgLy8gZWxzZSBpdCBoYXMgYmVnYW4gcmVjb2duaXppbmcuLi5cbiAgICAgICAgICAgIHZhciB0YXBDb3VudCA9IHRoaXMuY291bnQgJSBvcHRpb25zLnRhcHM7XG4gICAgICAgICAgICBpZiAodGFwQ291bnQgPT09IDApIHtcbiAgICAgICAgICAgICAgICAvLyBubyBmYWlsaW5nIHJlcXVpcmVtZW50cywgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgdGFwIGV2ZW50XG4gICAgICAgICAgICAgICAgLy8gb3Igd2FpdCBhcyBsb25nIGFzIHRoZSBtdWx0aXRhcCBpbnRlcnZhbCB0byB0cmlnZ2VyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhhc1JlcXVpcmVGYWlsdXJlcygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBTVEFURV9SRUNPR05JWkVEO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RpbWVyID0gc2V0VGltZW91dENvbnRleHQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU1RBVEVfUkVDT0dOSVpFRDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJ5RW1pdCgpO1xuICAgICAgICAgICAgICAgICAgICB9LCBvcHRpb25zLmludGVydmFsLCB0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNUQVRFX0JFR0FOO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gU1RBVEVfRkFJTEVEO1xuICAgIH0sXG5cbiAgICBmYWlsVGltZW91dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuX3RpbWVyID0gc2V0VGltZW91dENvbnRleHQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU1RBVEVfRkFJTEVEO1xuICAgICAgICB9LCB0aGlzLm9wdGlvbnMuaW50ZXJ2YWwsIHRoaXMpO1xuICAgICAgICByZXR1cm4gU1RBVEVfRkFJTEVEO1xuICAgIH0sXG5cbiAgICByZXNldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl90aW1lcik7XG4gICAgfSxcblxuICAgIGVtaXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5zdGF0ZSA9PSBTVEFURV9SRUNPR05JWkVEKSB7XG4gICAgICAgICAgICB0aGlzLl9pbnB1dC50YXBDb3VudCA9IHRoaXMuY291bnQ7XG4gICAgICAgICAgICB0aGlzLm1hbmFnZXIuZW1pdCh0aGlzLm9wdGlvbnMuZXZlbnQsIHRoaXMuX2lucHV0KTtcbiAgICAgICAgfVxuICAgIH1cbn0pO1xuXG4vKipcbiAqIFNpbXBsZSB3YXkgdG8gY3JlYXRlIGEgbWFuYWdlciB3aXRoIGEgZGVmYXVsdCBzZXQgb2YgcmVjb2duaXplcnMuXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50XG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnNdXG4gKiBAY29uc3RydWN0b3JcbiAqL1xuZnVuY3Rpb24gSGFtbWVyKGVsZW1lbnQsIG9wdGlvbnMpIHtcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICBvcHRpb25zLnJlY29nbml6ZXJzID0gaWZVbmRlZmluZWQob3B0aW9ucy5yZWNvZ25pemVycywgSGFtbWVyLmRlZmF1bHRzLnByZXNldCk7XG4gICAgcmV0dXJuIG5ldyBNYW5hZ2VyKGVsZW1lbnQsIG9wdGlvbnMpO1xufVxuXG4vKipcbiAqIEBjb25zdCB7c3RyaW5nfVxuICovXG5IYW1tZXIuVkVSU0lPTiA9ICcyLjAuNyc7XG5cbi8qKlxuICogZGVmYXVsdCBzZXR0aW5nc1xuICogQG5hbWVzcGFjZVxuICovXG5IYW1tZXIuZGVmYXVsdHMgPSB7XG4gICAgLyoqXG4gICAgICogc2V0IGlmIERPTSBldmVudHMgYXJlIGJlaW5nIHRyaWdnZXJlZC5cbiAgICAgKiBCdXQgdGhpcyBpcyBzbG93ZXIgYW5kIHVudXNlZCBieSBzaW1wbGUgaW1wbGVtZW50YXRpb25zLCBzbyBkaXNhYmxlZCBieSBkZWZhdWx0LlxuICAgICAqIEB0eXBlIHtCb29sZWFufVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgZG9tRXZlbnRzOiBmYWxzZSxcblxuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSBmb3IgdGhlIHRvdWNoQWN0aW9uIHByb3BlcnR5L2ZhbGxiYWNrLlxuICAgICAqIFdoZW4gc2V0IHRvIGBjb21wdXRlYCBpdCB3aWxsIG1hZ2ljYWxseSBzZXQgdGhlIGNvcnJlY3QgdmFsdWUgYmFzZWQgb24gdGhlIGFkZGVkIHJlY29nbml6ZXJzLlxuICAgICAqIEB0eXBlIHtTdHJpbmd9XG4gICAgICogQGRlZmF1bHQgY29tcHV0ZVxuICAgICAqL1xuICAgIHRvdWNoQWN0aW9uOiBUT1VDSF9BQ1RJT05fQ09NUFVURSxcblxuICAgIC8qKlxuICAgICAqIEB0eXBlIHtCb29sZWFufVxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBlbmFibGU6IHRydWUsXG5cbiAgICAvKipcbiAgICAgKiBFWFBFUklNRU5UQUwgRkVBVFVSRSAtLSBjYW4gYmUgcmVtb3ZlZC9jaGFuZ2VkXG4gICAgICogQ2hhbmdlIHRoZSBwYXJlbnQgaW5wdXQgdGFyZ2V0IGVsZW1lbnQuXG4gICAgICogSWYgTnVsbCwgdGhlbiBpdCBpcyBiZWluZyBzZXQgdGhlIHRvIG1haW4gZWxlbWVudC5cbiAgICAgKiBAdHlwZSB7TnVsbHxFdmVudFRhcmdldH1cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgaW5wdXRUYXJnZXQ6IG51bGwsXG5cbiAgICAvKipcbiAgICAgKiBmb3JjZSBhbiBpbnB1dCBjbGFzc1xuICAgICAqIEB0eXBlIHtOdWxsfEZ1bmN0aW9ufVxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBpbnB1dENsYXNzOiBudWxsLFxuXG4gICAgLyoqXG4gICAgICogRGVmYXVsdCByZWNvZ25pemVyIHNldHVwIHdoZW4gY2FsbGluZyBgSGFtbWVyKClgXG4gICAgICogV2hlbiBjcmVhdGluZyBhIG5ldyBNYW5hZ2VyIHRoZXNlIHdpbGwgYmUgc2tpcHBlZC5cbiAgICAgKiBAdHlwZSB7QXJyYXl9XG4gICAgICovXG4gICAgcHJlc2V0OiBbXG4gICAgICAgIC8vIFJlY29nbml6ZXJDbGFzcywgb3B0aW9ucywgW3JlY29nbml6ZVdpdGgsIC4uLl0sIFtyZXF1aXJlRmFpbHVyZSwgLi4uXVxuICAgICAgICBbUm90YXRlUmVjb2duaXplciwge2VuYWJsZTogZmFsc2V9XSxcbiAgICAgICAgW1BpbmNoUmVjb2duaXplciwge2VuYWJsZTogZmFsc2V9LCBbJ3JvdGF0ZSddXSxcbiAgICAgICAgW1N3aXBlUmVjb2duaXplciwge2RpcmVjdGlvbjogRElSRUNUSU9OX0hPUklaT05UQUx9XSxcbiAgICAgICAgW1BhblJlY29nbml6ZXIsIHtkaXJlY3Rpb246IERJUkVDVElPTl9IT1JJWk9OVEFMfSwgWydzd2lwZSddXSxcbiAgICAgICAgW1RhcFJlY29nbml6ZXJdLFxuICAgICAgICBbVGFwUmVjb2duaXplciwge2V2ZW50OiAnZG91YmxldGFwJywgdGFwczogMn0sIFsndGFwJ11dLFxuICAgICAgICBbUHJlc3NSZWNvZ25pemVyXVxuICAgIF0sXG5cbiAgICAvKipcbiAgICAgKiBTb21lIENTUyBwcm9wZXJ0aWVzIGNhbiBiZSB1c2VkIHRvIGltcHJvdmUgdGhlIHdvcmtpbmcgb2YgSGFtbWVyLlxuICAgICAqIEFkZCB0aGVtIHRvIHRoaXMgbWV0aG9kIGFuZCB0aGV5IHdpbGwgYmUgc2V0IHdoZW4gY3JlYXRpbmcgYSBuZXcgTWFuYWdlci5cbiAgICAgKiBAbmFtZXNwYWNlXG4gICAgICovXG4gICAgY3NzUHJvcHM6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERpc2FibGVzIHRleHQgc2VsZWN0aW9uIHRvIGltcHJvdmUgdGhlIGRyYWdnaW5nIGdlc3R1cmUuIE1haW5seSBmb3IgZGVza3RvcCBicm93c2Vycy5cbiAgICAgICAgICogQHR5cGUge1N0cmluZ31cbiAgICAgICAgICogQGRlZmF1bHQgJ25vbmUnXG4gICAgICAgICAqL1xuICAgICAgICB1c2VyU2VsZWN0OiAnbm9uZScsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIERpc2FibGUgdGhlIFdpbmRvd3MgUGhvbmUgZ3JpcHBlcnMgd2hlbiBwcmVzc2luZyBhbiBlbGVtZW50LlxuICAgICAgICAgKiBAdHlwZSB7U3RyaW5nfVxuICAgICAgICAgKiBAZGVmYXVsdCAnbm9uZSdcbiAgICAgICAgICovXG4gICAgICAgIHRvdWNoU2VsZWN0OiAnbm9uZScsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIERpc2FibGVzIHRoZSBkZWZhdWx0IGNhbGxvdXQgc2hvd24gd2hlbiB5b3UgdG91Y2ggYW5kIGhvbGQgYSB0b3VjaCB0YXJnZXQuXG4gICAgICAgICAqIE9uIGlPUywgd2hlbiB5b3UgdG91Y2ggYW5kIGhvbGQgYSB0b3VjaCB0YXJnZXQgc3VjaCBhcyBhIGxpbmssIFNhZmFyaSBkaXNwbGF5c1xuICAgICAgICAgKiBhIGNhbGxvdXQgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbGluay4gVGhpcyBwcm9wZXJ0eSBhbGxvd3MgeW91IHRvIGRpc2FibGUgdGhhdCBjYWxsb3V0LlxuICAgICAgICAgKiBAdHlwZSB7U3RyaW5nfVxuICAgICAgICAgKiBAZGVmYXVsdCAnbm9uZSdcbiAgICAgICAgICovXG4gICAgICAgIHRvdWNoQ2FsbG91dDogJ25vbmUnLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTcGVjaWZpZXMgd2hldGhlciB6b29taW5nIGlzIGVuYWJsZWQuIFVzZWQgYnkgSUUxMD5cbiAgICAgICAgICogQHR5cGUge1N0cmluZ31cbiAgICAgICAgICogQGRlZmF1bHQgJ25vbmUnXG4gICAgICAgICAqL1xuICAgICAgICBjb250ZW50Wm9vbWluZzogJ25vbmUnLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTcGVjaWZpZXMgdGhhdCBhbiBlbnRpcmUgZWxlbWVudCBzaG91bGQgYmUgZHJhZ2dhYmxlIGluc3RlYWQgb2YgaXRzIGNvbnRlbnRzLiBNYWlubHkgZm9yIGRlc2t0b3AgYnJvd3NlcnMuXG4gICAgICAgICAqIEB0eXBlIHtTdHJpbmd9XG4gICAgICAgICAqIEBkZWZhdWx0ICdub25lJ1xuICAgICAgICAgKi9cbiAgICAgICAgdXNlckRyYWc6ICdub25lJyxcblxuICAgICAgICAvKipcbiAgICAgICAgICogT3ZlcnJpZGVzIHRoZSBoaWdobGlnaHQgY29sb3Igc2hvd24gd2hlbiB0aGUgdXNlciB0YXBzIGEgbGluayBvciBhIEphdmFTY3JpcHRcbiAgICAgICAgICogY2xpY2thYmxlIGVsZW1lbnQgaW4gaU9TLiBUaGlzIHByb3BlcnR5IG9iZXlzIHRoZSBhbHBoYSB2YWx1ZSwgaWYgc3BlY2lmaWVkLlxuICAgICAgICAgKiBAdHlwZSB7U3RyaW5nfVxuICAgICAgICAgKiBAZGVmYXVsdCAncmdiYSgwLDAsMCwwKSdcbiAgICAgICAgICovXG4gICAgICAgIHRhcEhpZ2hsaWdodENvbG9yOiAncmdiYSgwLDAsMCwwKSdcbiAgICB9XG59O1xuXG52YXIgU1RPUCA9IDE7XG52YXIgRk9SQ0VEX1NUT1AgPSAyO1xuXG4vKipcbiAqIE1hbmFnZXJcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnRcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc11cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5mdW5jdGlvbiBNYW5hZ2VyKGVsZW1lbnQsIG9wdGlvbnMpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBhc3NpZ24oe30sIEhhbW1lci5kZWZhdWx0cywgb3B0aW9ucyB8fCB7fSk7XG5cbiAgICB0aGlzLm9wdGlvbnMuaW5wdXRUYXJnZXQgPSB0aGlzLm9wdGlvbnMuaW5wdXRUYXJnZXQgfHwgZWxlbWVudDtcblxuICAgIHRoaXMuaGFuZGxlcnMgPSB7fTtcbiAgICB0aGlzLnNlc3Npb24gPSB7fTtcbiAgICB0aGlzLnJlY29nbml6ZXJzID0gW107XG4gICAgdGhpcy5vbGRDc3NQcm9wcyA9IHt9O1xuXG4gICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDtcbiAgICB0aGlzLmlucHV0ID0gY3JlYXRlSW5wdXRJbnN0YW5jZSh0aGlzKTtcbiAgICB0aGlzLnRvdWNoQWN0aW9uID0gbmV3IFRvdWNoQWN0aW9uKHRoaXMsIHRoaXMub3B0aW9ucy50b3VjaEFjdGlvbik7XG5cbiAgICB0b2dnbGVDc3NQcm9wcyh0aGlzLCB0cnVlKTtcblxuICAgIGVhY2godGhpcy5vcHRpb25zLnJlY29nbml6ZXJzLCBmdW5jdGlvbihpdGVtKSB7XG4gICAgICAgIHZhciByZWNvZ25pemVyID0gdGhpcy5hZGQobmV3IChpdGVtWzBdKShpdGVtWzFdKSk7XG4gICAgICAgIGl0ZW1bMl0gJiYgcmVjb2duaXplci5yZWNvZ25pemVXaXRoKGl0ZW1bMl0pO1xuICAgICAgICBpdGVtWzNdICYmIHJlY29nbml6ZXIucmVxdWlyZUZhaWx1cmUoaXRlbVszXSk7XG4gICAgfSwgdGhpcyk7XG59XG5cbk1hbmFnZXIucHJvdG90eXBlID0ge1xuICAgIC8qKlxuICAgICAqIHNldCBvcHRpb25zXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICAgKiBAcmV0dXJucyB7TWFuYWdlcn1cbiAgICAgKi9cbiAgICBzZXQ6IGZ1bmN0aW9uKG9wdGlvbnMpIHtcbiAgICAgICAgYXNzaWduKHRoaXMub3B0aW9ucywgb3B0aW9ucyk7XG5cbiAgICAgICAgLy8gT3B0aW9ucyB0aGF0IG5lZWQgYSBsaXR0bGUgbW9yZSBzZXR1cFxuICAgICAgICBpZiAob3B0aW9ucy50b3VjaEFjdGlvbikge1xuICAgICAgICAgICAgdGhpcy50b3VjaEFjdGlvbi51cGRhdGUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5pbnB1dFRhcmdldCkge1xuICAgICAgICAgICAgLy8gQ2xlYW4gdXAgZXhpc3RpbmcgZXZlbnQgbGlzdGVuZXJzIGFuZCByZWluaXRpYWxpemVcbiAgICAgICAgICAgIHRoaXMuaW5wdXQuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5pbnB1dC50YXJnZXQgPSBvcHRpb25zLmlucHV0VGFyZ2V0O1xuICAgICAgICAgICAgdGhpcy5pbnB1dC5pbml0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHN0b3AgcmVjb2duaXppbmcgZm9yIHRoaXMgc2Vzc2lvbi5cbiAgICAgKiBUaGlzIHNlc3Npb24gd2lsbCBiZSBkaXNjYXJkZWQsIHdoZW4gYSBuZXcgW2lucHV0XXN0YXJ0IGV2ZW50IGlzIGZpcmVkLlxuICAgICAqIFdoZW4gZm9yY2VkLCB0aGUgcmVjb2duaXplciBjeWNsZSBpcyBzdG9wcGVkIGltbWVkaWF0ZWx5LlxuICAgICAqIEBwYXJhbSB7Qm9vbGVhbn0gW2ZvcmNlXVxuICAgICAqL1xuICAgIHN0b3A6IGZ1bmN0aW9uKGZvcmNlKSB7XG4gICAgICAgIHRoaXMuc2Vzc2lvbi5zdG9wcGVkID0gZm9yY2UgPyBGT1JDRURfU1RPUCA6IFNUT1A7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHJ1biB0aGUgcmVjb2duaXplcnMhXG4gICAgICogY2FsbGVkIGJ5IHRoZSBpbnB1dEhhbmRsZXIgZnVuY3Rpb24gb24gZXZlcnkgbW92ZW1lbnQgb2YgdGhlIHBvaW50ZXJzICh0b3VjaGVzKVxuICAgICAqIGl0IHdhbGtzIHRocm91Z2ggYWxsIHRoZSByZWNvZ25pemVycyBhbmQgdHJpZXMgdG8gZGV0ZWN0IHRoZSBnZXN0dXJlIHRoYXQgaXMgYmVpbmcgbWFkZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBpbnB1dERhdGFcbiAgICAgKi9cbiAgICByZWNvZ25pemU6IGZ1bmN0aW9uKGlucHV0RGF0YSkge1xuICAgICAgICB2YXIgc2Vzc2lvbiA9IHRoaXMuc2Vzc2lvbjtcbiAgICAgICAgaWYgKHNlc3Npb24uc3RvcHBlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcnVuIHRoZSB0b3VjaC1hY3Rpb24gcG9seWZpbGxcbiAgICAgICAgdGhpcy50b3VjaEFjdGlvbi5wcmV2ZW50RGVmYXVsdHMoaW5wdXREYXRhKTtcblxuICAgICAgICB2YXIgcmVjb2duaXplcjtcbiAgICAgICAgdmFyIHJlY29nbml6ZXJzID0gdGhpcy5yZWNvZ25pemVycztcblxuICAgICAgICAvLyB0aGlzIGhvbGRzIHRoZSByZWNvZ25pemVyIHRoYXQgaXMgYmVpbmcgcmVjb2duaXplZC5cbiAgICAgICAgLy8gc28gdGhlIHJlY29nbml6ZXIncyBzdGF0ZSBuZWVkcyB0byBiZSBCRUdBTiwgQ0hBTkdFRCwgRU5ERUQgb3IgUkVDT0dOSVpFRFxuICAgICAgICAvLyBpZiBubyByZWNvZ25pemVyIGlzIGRldGVjdGluZyBhIHRoaW5nLCBpdCBpcyBzZXQgdG8gYG51bGxgXG4gICAgICAgIHZhciBjdXJSZWNvZ25pemVyID0gc2Vzc2lvbi5jdXJSZWNvZ25pemVyO1xuXG4gICAgICAgIC8vIHJlc2V0IHdoZW4gdGhlIGxhc3QgcmVjb2duaXplciBpcyByZWNvZ25pemVkXG4gICAgICAgIC8vIG9yIHdoZW4gd2UncmUgaW4gYSBuZXcgc2Vzc2lvblxuICAgICAgICBpZiAoIWN1clJlY29nbml6ZXIgfHwgKGN1clJlY29nbml6ZXIgJiYgY3VyUmVjb2duaXplci5zdGF0ZSAmIFNUQVRFX1JFQ09HTklaRUQpKSB7XG4gICAgICAgICAgICBjdXJSZWNvZ25pemVyID0gc2Vzc2lvbi5jdXJSZWNvZ25pemVyID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpID0gMDtcbiAgICAgICAgd2hpbGUgKGkgPCByZWNvZ25pemVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJlY29nbml6ZXIgPSByZWNvZ25pemVyc1tpXTtcblxuICAgICAgICAgICAgLy8gZmluZCBvdXQgaWYgd2UgYXJlIGFsbG93ZWQgdHJ5IHRvIHJlY29nbml6ZSB0aGUgaW5wdXQgZm9yIHRoaXMgb25lLlxuICAgICAgICAgICAgLy8gMS4gICBhbGxvdyBpZiB0aGUgc2Vzc2lvbiBpcyBOT1QgZm9yY2VkIHN0b3BwZWQgKHNlZSB0aGUgLnN0b3AoKSBtZXRob2QpXG4gICAgICAgICAgICAvLyAyLiAgIGFsbG93IGlmIHdlIHN0aWxsIGhhdmVuJ3QgcmVjb2duaXplZCBhIGdlc3R1cmUgaW4gdGhpcyBzZXNzaW9uLCBvciB0aGUgdGhpcyByZWNvZ25pemVyIGlzIHRoZSBvbmVcbiAgICAgICAgICAgIC8vICAgICAgdGhhdCBpcyBiZWluZyByZWNvZ25pemVkLlxuICAgICAgICAgICAgLy8gMy4gICBhbGxvdyBpZiB0aGUgcmVjb2duaXplciBpcyBhbGxvd2VkIHRvIHJ1biBzaW11bHRhbmVvdXMgd2l0aCB0aGUgY3VycmVudCByZWNvZ25pemVkIHJlY29nbml6ZXIuXG4gICAgICAgICAgICAvLyAgICAgIHRoaXMgY2FuIGJlIHNldHVwIHdpdGggdGhlIGByZWNvZ25pemVXaXRoKClgIG1ldGhvZCBvbiB0aGUgcmVjb2duaXplci5cbiAgICAgICAgICAgIGlmIChzZXNzaW9uLnN0b3BwZWQgIT09IEZPUkNFRF9TVE9QICYmICggLy8gMVxuICAgICAgICAgICAgICAgICAgICAhY3VyUmVjb2duaXplciB8fCByZWNvZ25pemVyID09IGN1clJlY29nbml6ZXIgfHwgLy8gMlxuICAgICAgICAgICAgICAgICAgICByZWNvZ25pemVyLmNhblJlY29nbml6ZVdpdGgoY3VyUmVjb2duaXplcikpKSB7IC8vIDNcbiAgICAgICAgICAgICAgICByZWNvZ25pemVyLnJlY29nbml6ZShpbnB1dERhdGEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZWNvZ25pemVyLnJlc2V0KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGlmIHRoZSByZWNvZ25pemVyIGhhcyBiZWVuIHJlY29nbml6aW5nIHRoZSBpbnB1dCBhcyBhIHZhbGlkIGdlc3R1cmUsIHdlIHdhbnQgdG8gc3RvcmUgdGhpcyBvbmUgYXMgdGhlXG4gICAgICAgICAgICAvLyBjdXJyZW50IGFjdGl2ZSByZWNvZ25pemVyLiBidXQgb25seSBpZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgYW4gYWN0aXZlIHJlY29nbml6ZXJcbiAgICAgICAgICAgIGlmICghY3VyUmVjb2duaXplciAmJiByZWNvZ25pemVyLnN0YXRlICYgKFNUQVRFX0JFR0FOIHwgU1RBVEVfQ0hBTkdFRCB8IFNUQVRFX0VOREVEKSkge1xuICAgICAgICAgICAgICAgIGN1clJlY29nbml6ZXIgPSBzZXNzaW9uLmN1clJlY29nbml6ZXIgPSByZWNvZ25pemVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGdldCBhIHJlY29nbml6ZXIgYnkgaXRzIGV2ZW50IG5hbWUuXG4gICAgICogQHBhcmFtIHtSZWNvZ25pemVyfFN0cmluZ30gcmVjb2duaXplclxuICAgICAqIEByZXR1cm5zIHtSZWNvZ25pemVyfE51bGx9XG4gICAgICovXG4gICAgZ2V0OiBmdW5jdGlvbihyZWNvZ25pemVyKSB7XG4gICAgICAgIGlmIChyZWNvZ25pemVyIGluc3RhbmNlb2YgUmVjb2duaXplcikge1xuICAgICAgICAgICAgcmV0dXJuIHJlY29nbml6ZXI7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcmVjb2duaXplcnMgPSB0aGlzLnJlY29nbml6ZXJzO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29nbml6ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAocmVjb2duaXplcnNbaV0ub3B0aW9ucy5ldmVudCA9PSByZWNvZ25pemVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlY29nbml6ZXJzW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBhZGQgYSByZWNvZ25pemVyIHRvIHRoZSBtYW5hZ2VyXG4gICAgICogZXhpc3RpbmcgcmVjb2duaXplcnMgd2l0aCB0aGUgc2FtZSBldmVudCBuYW1lIHdpbGwgYmUgcmVtb3ZlZFxuICAgICAqIEBwYXJhbSB7UmVjb2duaXplcn0gcmVjb2duaXplclxuICAgICAqIEByZXR1cm5zIHtSZWNvZ25pemVyfE1hbmFnZXJ9XG4gICAgICovXG4gICAgYWRkOiBmdW5jdGlvbihyZWNvZ25pemVyKSB7XG4gICAgICAgIGlmIChpbnZva2VBcnJheUFyZyhyZWNvZ25pemVyLCAnYWRkJywgdGhpcykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmVtb3ZlIGV4aXN0aW5nXG4gICAgICAgIHZhciBleGlzdGluZyA9IHRoaXMuZ2V0KHJlY29nbml6ZXIub3B0aW9ucy5ldmVudCk7XG4gICAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmUoZXhpc3RpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZWNvZ25pemVycy5wdXNoKHJlY29nbml6ZXIpO1xuICAgICAgICByZWNvZ25pemVyLm1hbmFnZXIgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMudG91Y2hBY3Rpb24udXBkYXRlKCk7XG4gICAgICAgIHJldHVybiByZWNvZ25pemVyO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiByZW1vdmUgYSByZWNvZ25pemVyIGJ5IG5hbWUgb3IgaW5zdGFuY2VcbiAgICAgKiBAcGFyYW0ge1JlY29nbml6ZXJ8U3RyaW5nfSByZWNvZ25pemVyXG4gICAgICogQHJldHVybnMge01hbmFnZXJ9XG4gICAgICovXG4gICAgcmVtb3ZlOiBmdW5jdGlvbihyZWNvZ25pemVyKSB7XG4gICAgICAgIGlmIChpbnZva2VBcnJheUFyZyhyZWNvZ25pemVyLCAncmVtb3ZlJywgdGhpcykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVjb2duaXplciA9IHRoaXMuZ2V0KHJlY29nbml6ZXIpO1xuXG4gICAgICAgIC8vIGxldCdzIG1ha2Ugc3VyZSB0aGlzIHJlY29nbml6ZXIgZXhpc3RzXG4gICAgICAgIGlmIChyZWNvZ25pemVyKSB7XG4gICAgICAgICAgICB2YXIgcmVjb2duaXplcnMgPSB0aGlzLnJlY29nbml6ZXJzO1xuICAgICAgICAgICAgdmFyIGluZGV4ID0gaW5BcnJheShyZWNvZ25pemVycywgcmVjb2duaXplcik7XG5cbiAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZWNvZ25pemVycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMudG91Y2hBY3Rpb24udXBkYXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogYmluZCBldmVudFxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBldmVudHNcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBoYW5kbGVyXG4gICAgICogQHJldHVybnMge0V2ZW50RW1pdHRlcn0gdGhpc1xuICAgICAqL1xuICAgIG9uOiBmdW5jdGlvbihldmVudHMsIGhhbmRsZXIpIHtcbiAgICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhhbmRsZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGhhbmRsZXJzID0gdGhpcy5oYW5kbGVycztcbiAgICAgICAgZWFjaChzcGxpdFN0cihldmVudHMpLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICAgICAgaGFuZGxlcnNbZXZlbnRdID0gaGFuZGxlcnNbZXZlbnRdIHx8IFtdO1xuICAgICAgICAgICAgaGFuZGxlcnNbZXZlbnRdLnB1c2goaGFuZGxlcik7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogdW5iaW5kIGV2ZW50LCBsZWF2ZSBlbWl0IGJsYW5rIHRvIHJlbW92ZSBhbGwgaGFuZGxlcnNcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRzXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2hhbmRsZXJdXG4gICAgICogQHJldHVybnMge0V2ZW50RW1pdHRlcn0gdGhpc1xuICAgICAqL1xuICAgIG9mZjogZnVuY3Rpb24oZXZlbnRzLCBoYW5kbGVyKSB7XG4gICAgICAgIGlmIChldmVudHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGhhbmRsZXJzID0gdGhpcy5oYW5kbGVycztcbiAgICAgICAgZWFjaChzcGxpdFN0cihldmVudHMpLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICAgICAgaWYgKCFoYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGhhbmRsZXJzW2V2ZW50XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlcnNbZXZlbnRdICYmIGhhbmRsZXJzW2V2ZW50XS5zcGxpY2UoaW5BcnJheShoYW5kbGVyc1tldmVudF0sIGhhbmRsZXIpLCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBlbWl0IGV2ZW50IHRvIHRoZSBsaXN0ZW5lcnNcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YVxuICAgICAqL1xuICAgIGVtaXQ6IGZ1bmN0aW9uKGV2ZW50LCBkYXRhKSB7XG4gICAgICAgIC8vIHdlIGFsc28gd2FudCB0byB0cmlnZ2VyIGRvbSBldmVudHNcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5kb21FdmVudHMpIHtcbiAgICAgICAgICAgIHRyaWdnZXJEb21FdmVudChldmVudCwgZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBubyBoYW5kbGVycywgc28gc2tpcCBpdCBhbGxcbiAgICAgICAgdmFyIGhhbmRsZXJzID0gdGhpcy5oYW5kbGVyc1tldmVudF0gJiYgdGhpcy5oYW5kbGVyc1tldmVudF0uc2xpY2UoKTtcbiAgICAgICAgaWYgKCFoYW5kbGVycyB8fCAhaGFuZGxlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBkYXRhLnR5cGUgPSBldmVudDtcbiAgICAgICAgZGF0YS5wcmV2ZW50RGVmYXVsdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgZGF0YS5zcmNFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBpID0gMDtcbiAgICAgICAgd2hpbGUgKGkgPCBoYW5kbGVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGhhbmRsZXJzW2ldKGRhdGEpO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGRlc3Ryb3kgdGhlIG1hbmFnZXIgYW5kIHVuYmluZHMgYWxsIGV2ZW50c1xuICAgICAqIGl0IGRvZXNuJ3QgdW5iaW5kIGRvbSBldmVudHMsIHRoYXQgaXMgdGhlIHVzZXIgb3duIHJlc3BvbnNpYmlsaXR5XG4gICAgICovXG4gICAgZGVzdHJveTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudCAmJiB0b2dnbGVDc3NQcm9wcyh0aGlzLCBmYWxzZSk7XG5cbiAgICAgICAgdGhpcy5oYW5kbGVycyA9IHt9O1xuICAgICAgICB0aGlzLnNlc3Npb24gPSB7fTtcbiAgICAgICAgdGhpcy5pbnB1dC5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IG51bGw7XG4gICAgfVxufTtcblxuLyoqXG4gKiBhZGQvcmVtb3ZlIHRoZSBjc3MgcHJvcGVydGllcyBhcyBkZWZpbmVkIGluIG1hbmFnZXIub3B0aW9ucy5jc3NQcm9wc1xuICogQHBhcmFtIHtNYW5hZ2VyfSBtYW5hZ2VyXG4gKiBAcGFyYW0ge0Jvb2xlYW59IGFkZFxuICovXG5mdW5jdGlvbiB0b2dnbGVDc3NQcm9wcyhtYW5hZ2VyLCBhZGQpIHtcbiAgICB2YXIgZWxlbWVudCA9IG1hbmFnZXIuZWxlbWVudDtcbiAgICBpZiAoIWVsZW1lbnQuc3R5bGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgcHJvcDtcbiAgICBlYWNoKG1hbmFnZXIub3B0aW9ucy5jc3NQcm9wcywgZnVuY3Rpb24odmFsdWUsIG5hbWUpIHtcbiAgICAgICAgcHJvcCA9IHByZWZpeGVkKGVsZW1lbnQuc3R5bGUsIG5hbWUpO1xuICAgICAgICBpZiAoYWRkKSB7XG4gICAgICAgICAgICBtYW5hZ2VyLm9sZENzc1Byb3BzW3Byb3BdID0gZWxlbWVudC5zdHlsZVtwcm9wXTtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGVbcHJvcF0gPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGVbcHJvcF0gPSBtYW5hZ2VyLm9sZENzc1Byb3BzW3Byb3BdIHx8ICcnO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCFhZGQpIHtcbiAgICAgICAgbWFuYWdlci5vbGRDc3NQcm9wcyA9IHt9O1xuICAgIH1cbn1cblxuLyoqXG4gKiB0cmlnZ2VyIGRvbSBldmVudFxuICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50XG4gKiBAcGFyYW0ge09iamVjdH0gZGF0YVxuICovXG5mdW5jdGlvbiB0cmlnZ2VyRG9tRXZlbnQoZXZlbnQsIGRhdGEpIHtcbiAgICB2YXIgZ2VzdHVyZUV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0V2ZW50Jyk7XG4gICAgZ2VzdHVyZUV2ZW50LmluaXRFdmVudChldmVudCwgdHJ1ZSwgdHJ1ZSk7XG4gICAgZ2VzdHVyZUV2ZW50Lmdlc3R1cmUgPSBkYXRhO1xuICAgIGRhdGEudGFyZ2V0LmRpc3BhdGNoRXZlbnQoZ2VzdHVyZUV2ZW50KTtcbn1cblxuYXNzaWduKEhhbW1lciwge1xuICAgIElOUFVUX1NUQVJUOiBJTlBVVF9TVEFSVCxcbiAgICBJTlBVVF9NT1ZFOiBJTlBVVF9NT1ZFLFxuICAgIElOUFVUX0VORDogSU5QVVRfRU5ELFxuICAgIElOUFVUX0NBTkNFTDogSU5QVVRfQ0FOQ0VMLFxuXG4gICAgU1RBVEVfUE9TU0lCTEU6IFNUQVRFX1BPU1NJQkxFLFxuICAgIFNUQVRFX0JFR0FOOiBTVEFURV9CRUdBTixcbiAgICBTVEFURV9DSEFOR0VEOiBTVEFURV9DSEFOR0VELFxuICAgIFNUQVRFX0VOREVEOiBTVEFURV9FTkRFRCxcbiAgICBTVEFURV9SRUNPR05JWkVEOiBTVEFURV9SRUNPR05JWkVELFxuICAgIFNUQVRFX0NBTkNFTExFRDogU1RBVEVfQ0FOQ0VMTEVELFxuICAgIFNUQVRFX0ZBSUxFRDogU1RBVEVfRkFJTEVELFxuXG4gICAgRElSRUNUSU9OX05PTkU6IERJUkVDVElPTl9OT05FLFxuICAgIERJUkVDVElPTl9MRUZUOiBESVJFQ1RJT05fTEVGVCxcbiAgICBESVJFQ1RJT05fUklHSFQ6IERJUkVDVElPTl9SSUdIVCxcbiAgICBESVJFQ1RJT05fVVA6IERJUkVDVElPTl9VUCxcbiAgICBESVJFQ1RJT05fRE9XTjogRElSRUNUSU9OX0RPV04sXG4gICAgRElSRUNUSU9OX0hPUklaT05UQUw6IERJUkVDVElPTl9IT1JJWk9OVEFMLFxuICAgIERJUkVDVElPTl9WRVJUSUNBTDogRElSRUNUSU9OX1ZFUlRJQ0FMLFxuICAgIERJUkVDVElPTl9BTEw6IERJUkVDVElPTl9BTEwsXG5cbiAgICBNYW5hZ2VyOiBNYW5hZ2VyLFxuICAgIElucHV0OiBJbnB1dCxcbiAgICBUb3VjaEFjdGlvbjogVG91Y2hBY3Rpb24sXG5cbiAgICBUb3VjaElucHV0OiBUb3VjaElucHV0LFxuICAgIE1vdXNlSW5wdXQ6IE1vdXNlSW5wdXQsXG4gICAgUG9pbnRlckV2ZW50SW5wdXQ6IFBvaW50ZXJFdmVudElucHV0LFxuICAgIFRvdWNoTW91c2VJbnB1dDogVG91Y2hNb3VzZUlucHV0LFxuICAgIFNpbmdsZVRvdWNoSW5wdXQ6IFNpbmdsZVRvdWNoSW5wdXQsXG5cbiAgICBSZWNvZ25pemVyOiBSZWNvZ25pemVyLFxuICAgIEF0dHJSZWNvZ25pemVyOiBBdHRyUmVjb2duaXplcixcbiAgICBUYXA6IFRhcFJlY29nbml6ZXIsXG4gICAgUGFuOiBQYW5SZWNvZ25pemVyLFxuICAgIFN3aXBlOiBTd2lwZVJlY29nbml6ZXIsXG4gICAgUGluY2g6IFBpbmNoUmVjb2duaXplcixcbiAgICBSb3RhdGU6IFJvdGF0ZVJlY29nbml6ZXIsXG4gICAgUHJlc3M6IFByZXNzUmVjb2duaXplcixcblxuICAgIG9uOiBhZGRFdmVudExpc3RlbmVycyxcbiAgICBvZmY6IHJlbW92ZUV2ZW50TGlzdGVuZXJzLFxuICAgIGVhY2g6IGVhY2gsXG4gICAgbWVyZ2U6IG1lcmdlLFxuICAgIGV4dGVuZDogZXh0ZW5kLFxuICAgIGFzc2lnbjogYXNzaWduLFxuICAgIGluaGVyaXQ6IGluaGVyaXQsXG4gICAgYmluZEZuOiBiaW5kRm4sXG4gICAgcHJlZml4ZWQ6IHByZWZpeGVkXG59KTtcblxuLy8gdGhpcyBwcmV2ZW50cyBlcnJvcnMgd2hlbiBIYW1tZXIgaXMgbG9hZGVkIGluIHRoZSBwcmVzZW5jZSBvZiBhbiBBTURcbi8vICBzdHlsZSBsb2FkZXIgYnV0IGJ5IHNjcmlwdCB0YWcsIG5vdCBieSB0aGUgbG9hZGVyLlxudmFyIGZyZWVHbG9iYWwgPSAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cgOiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnID8gc2VsZiA6IHt9KSk7IC8vIGpzaGludCBpZ25vcmU6bGluZVxuZnJlZUdsb2JhbC5IYW1tZXIgPSBIYW1tZXI7XG5cbmlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcbiAgICBkZWZpbmUoZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBIYW1tZXI7XG4gICAgfSk7XG59IGVsc2UgaWYgKHR5cGVvZiBtb2R1bGUgIT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IEhhbW1lcjtcbn0gZWxzZSB7XG4gICAgd2luZG93W2V4cG9ydE5hbWVdID0gSGFtbWVyO1xufVxuXG59KSh3aW5kb3csIGRvY3VtZW50LCAnSGFtbWVyJyk7XG4iLCJcInVzZSBzdHJpY3RcIjt2YXIgZT1yZXF1aXJlKFwiY29tcHV0ZS1zY3JvbGwtaW50by12aWV3XCIpO2NvbnN0IG89ZT0+ITE9PT1lP3tibG9jazpcImVuZFwiLGlubGluZTpcIm5lYXJlc3RcIn06KGU9PmU9PT1PYmplY3QoZSkmJjAhPT1PYmplY3Qua2V5cyhlKS5sZW5ndGgpKGUpP2U6e2Jsb2NrOlwic3RhcnRcIixpbmxpbmU6XCJuZWFyZXN0XCJ9O21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKHQsbil7aWYoIXQuaXNDb25uZWN0ZWR8fCEoZT0+e2xldCBvPWU7Zm9yKDtvJiZvLnBhcmVudE5vZGU7KXtpZihvLnBhcmVudE5vZGU9PT1kb2N1bWVudClyZXR1cm4hMDtvPW8ucGFyZW50Tm9kZSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3Q/by5wYXJlbnROb2RlLmhvc3Q6by5wYXJlbnROb2RlfXJldHVybiExfSkodCkpcmV0dXJuO2lmKChlPT5cIm9iamVjdFwiPT10eXBlb2YgZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgZS5iZWhhdmlvcikobikpcmV0dXJuIG4uYmVoYXZpb3IoZS5jb21wdXRlKHQsbikpO2NvbnN0IHI9XCJib29sZWFuXCI9PXR5cGVvZiBufHxudWxsPT1uP3ZvaWQgMDpuLmJlaGF2aW9yO2Zvcihjb25zdHtlbDppLHRvcDpjLGxlZnQ6bH1vZiBlLmNvbXB1dGUodCxvKG4pKSlpLnNjcm9sbCh7dG9wOmMsbGVmdDpsLGJlaGF2aW9yOnJ9KX07Ly8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguY2pzLm1hcFxuIl19 diff --git a/lib/public/js/main.build.min.js b/lib/public/js/main.build.min.js index d331e00..d984822 100644 --- a/lib/public/js/main.build.min.js +++ b/lib/public/js/main.build.min.js @@ -1 +1 @@ -(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i is either invalid, or may already be subscribed.");emailInput.value=null;emailInput.classList.add("newsletter__input--invalid");form.style.display="block";message.style.display="block";break;default:message.innerHTML="The email address ".concat(emailInput.value," may be invalid, or your network connection is inactive.");emailInput.value=null;emailInput.classList.add("newsletter__input--invalid");form.style.display="block";message.style.display="block";break}};xhr.send(payload)}}};var docsNavMobileActions=function docsNavMobileActions(){var menuButton=document.querySelector(".l-navigablecontent__control-item--left");var topButton=document.querySelector(".l-navigablecontent__control-item--right");var docsNav=document.querySelector(".l-navigablecontent__nav");var docsWrapper=document.querySelector(".l-navigablecontent .wrapper");if(!menuButton||!topButton||!docsNav||!docsWrapper){return}var isMobile=function isMobile(){return window.getComputedStyle(menuButton.parentNode).getPropertyValue("display")!=="none"};var docsNavIsOpen=function docsNavIsOpen(){return docsNav.classList.contains("l-navigablecontent__nav--open")};var toggleDocsNav=function toggleDocsNav(){if(!isMobile()){return}if(docsNavIsOpen()){document.body.classList.remove("body--noscroll");docsNav.classList.remove("l-navigablecontent__nav--open");docsWrapper.classList.remove("wrapper--disabled");docsWrapper.removeEventListener("click",toggleDocsNav);return}document.body.classList.add("body--noscroll");docsNav.classList.add("l-navigablecontent__nav--open");docsWrapper.classList.add("wrapper--disabled");docsWrapper.addEventListener("click",toggleDocsNav)};menuButton.addEventListener("click",toggleDocsNav);Array.from(docsNav.querySelectorAll(".sidenav__section-item")).forEach(function(link){return link.addEventListener("click",toggleDocsNav)});topButton.addEventListener("click",function(){if(docsNavIsOpen()){toggleDocsNav()}return window.scrollTo(0,0)});var hammerNav=new Hammer(docsNav);var hammerContent=new Hammer(document.querySelector(".l-navigablecontent"),{cssProps:{userSelect:"initial"}});hammerNav.on("swipeleft",toggleDocsNav);hammerContent.on("swiperight",function(){if(!docsNavIsOpen()){toggleDocsNav()}})};var changePackageVersion=function changePackageVersion(){var select=document.getElementById("version");if(!select){return}select.addEventListener("change",function(option){window.location.search="v="+option.srcElement.value})};var palToClipboard=function palToClipboard(){var element=document.getElementById("codeBox");var button=document.getElementById("codeBoxButton");var input=document.getElementById("code");if(!element||!button||!input){return}element.onclick=function(){input.select()};button.onclick=function(){var tooltip=document.getElementsByClassName("tooltip__text")[0];input.select();document.execCommand("Copy");tooltip.innerHTML="Code copied";button.onmouseleave=function(){tooltip.innerHTML="Copy to clipboard"}}};setActiveNavItems();newsletterSubmit();docsNavMobileActions();changePackageVersion();palToClipboard()},{"./sidenav":2,hammerjs:5}],2:[function(require,module,exports){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i .sidenav__section-item--active");if(lastNavItem){lastNavItem.classList.remove("sidenav__section-item--active")}navItem.classList.add("sidenav__section-item--active")};internals.item=function(innerHTML,href,indent){return'\n ').concat(innerHTML,"\n ")};internals.render=function(html){var wrapper=document.createElement("div");wrapper.innerHTML=html;return wrapper.firstChild}},{"./vendor/navbar":3,"scroll-into-view-if-needed":6}],3:[function(require,module,exports){"use strict";var supportsPassive=false;try{var opts=Object.defineProperty({},"passive",{get:function get(){supportsPassive=true}});window.addEventListener("test",null,opts)}catch(e){}var createAndAppendListItems=function createAndAppendListItems(navList,elementList,makeNavListItem){var pairs=[];for(var i=0;iclosestDist){continue}frontRunnerIndex=i;closestDist=absDist}if(onScrollHook){onScrollHook(pairs[frontRunnerIndex].navElement)}};if(typeof debounceTime!=="number"||isNaN(debounceTime)){return handleScroll}var timeout;var nullifyTimeout=function nullifyTimeout(){timeout=null};return function(){if(timeout){return}handleScroll();timeout=setTimeout(nullifyTimeout,debounceTime)}};var addScrollListener=function addScrollListener(target,handleScroll){var scrollHandleWrapper=function scrollHandleWrapper(evt){if(evt.target===target){handleScroll()}};if(target.addEventListener){target.addEventListener("scroll",scrollHandleWrapper,supportsPassive?{passive:true}:false)}else if(target.attachEvent){target.attachEvent("onscroll",scrollHandleWrapper)}else{throw new Error("This browser does not support addEventListener or attachEvent.")}handleScroll()};module.exports=function(options){if(!options||!options.elementList||!options.makeNavListItem){throw new Error("Options object with elementList and makeNavListItem must be provided.")}var navbar=document.createElement(options.tagName||"nav");var navList=document.createElement("ul");var target=options.target||document;var pairs=createAndAppendListItems(navList,options.elementList,options.makeNavListItem);addScrollListener(target,makeHandleScroll(pairs,options.onScroll,options.debounceTime));navbar.appendChild(navList);return navbar}},{}],4:[function(require,module,exports){"use strict";exports.__esModule=true;exports.default=void 0;function isElement(el){return el!=null&&typeof el==="object"&&el.nodeType===1}function canOverflow(overflow,skipOverflowHiddenElements){if(skipOverflowHiddenElements&&overflow==="hidden"){return false}return overflow!=="visible"&&overflow!=="clip"}function isScrollable(el,skipOverflowHiddenElements){if(el.clientHeightscrollingEdgeEnd||elementEdgeStart>scrollingEdgeStart&&elementEdgeEnd=scrollingEdgeEnd&&elementSize>=scrollingSize){return elementEdgeStart-scrollingEdgeStart-scrollingBorderStart}if(elementEdgeEnd>scrollingEdgeEnd&&elementSizescrollingSize){return elementEdgeEnd-scrollingEdgeEnd+scrollingBorderEnd}return 0}var _default=function _default(target,options){var scrollMode=options.scrollMode,block=options.block,inline=options.inline,boundary=options.boundary,skipOverflowHiddenElements=options.skipOverflowHiddenElements;var checkBoundary=typeof boundary==="function"?boundary:function(node){return node!==boundary};if(!isElement(target)){throw new TypeError("Invalid target")}var scrollingElement=document.scrollingElement||document.documentElement;var frames=[];var cursor=target;while(isElement(cursor)&&checkBoundary(cursor)){cursor=cursor.parentNode;if(cursor===scrollingElement){frames.push(cursor);break}if(cursor===document.body&&isScrollable(cursor)&&!isScrollable(document.documentElement)){continue}if(isScrollable(cursor,skipOverflowHiddenElements)){frames.push(cursor)}}var viewportWidth=window.visualViewport?visualViewport.width:innerWidth;var viewportHeight=window.visualViewport?visualViewport.height:innerHeight;var viewportX=window.scrollX||pageXOffset;var viewportY=window.scrollY||pageYOffset;var _target$getBoundingCl=target.getBoundingClientRect(),targetHeight=_target$getBoundingCl.height,targetWidth=_target$getBoundingCl.width,targetTop=_target$getBoundingCl.top,targetRight=_target$getBoundingCl.right,targetBottom=_target$getBoundingCl.bottom,targetLeft=_target$getBoundingCl.left;var targetBlock=block==="start"||block==="nearest"?targetTop:block==="end"?targetBottom:targetTop+targetHeight/2;var targetInline=inline==="center"?targetLeft+targetWidth/2:inline==="end"?targetRight:targetLeft;var computations=[];for(var index=0;index=0&&targetLeft>=0&&targetBottom<=viewportHeight&&targetRight<=viewportWidth&&targetTop>=_top&&targetBottom<=bottom&&targetLeft>=_left&&targetRight<=right){return computations}var frameStyle=getComputedStyle(frame);var borderLeft=parseInt(frameStyle.borderLeftWidth,10);var borderTop=parseInt(frameStyle.borderTopWidth,10);var borderRight=parseInt(frameStyle.borderRightWidth,10);var borderBottom=parseInt(frameStyle.borderBottomWidth,10);var blockScroll=0;var inlineScroll=0;var scrollbarWidth="offsetWidth"in frame?frame.offsetWidth-frame.clientWidth-borderLeft-borderRight:0;var scrollbarHeight="offsetHeight"in frame?frame.offsetHeight-frame.clientHeight-borderTop-borderBottom:0;if(scrollingElement===frame){if(block==="start"){blockScroll=targetBlock}else if(block==="end"){blockScroll=targetBlock-viewportHeight}else if(block==="nearest"){blockScroll=alignNearest(viewportY,viewportY+viewportHeight,viewportHeight,borderTop,borderBottom,viewportY+targetBlock,viewportY+targetBlock+targetHeight,targetHeight)}else{blockScroll=targetBlock-viewportHeight/2}if(inline==="start"){inlineScroll=targetInline}else if(inline==="center"){inlineScroll=targetInline-viewportWidth/2}else if(inline==="end"){inlineScroll=targetInline-viewportWidth}else{inlineScroll=alignNearest(viewportX,viewportX+viewportWidth,viewportWidth,borderLeft,borderRight,viewportX+targetInline,viewportX+targetInline+targetWidth,targetWidth)}blockScroll=Math.max(0,blockScroll+viewportY);inlineScroll=Math.max(0,inlineScroll+viewportX)}else{if(block==="start"){blockScroll=targetBlock-_top-borderTop}else if(block==="end"){blockScroll=targetBlock-bottom+borderBottom+scrollbarHeight}else if(block==="nearest"){blockScroll=alignNearest(_top,bottom,_height,borderTop,borderBottom+scrollbarHeight,targetBlock,targetBlock+targetHeight,targetHeight)}else{blockScroll=targetBlock-(_top+_height/2)+scrollbarHeight/2}if(inline==="start"){inlineScroll=targetInline-_left-borderLeft}else if(inline==="center"){inlineScroll=targetInline-(_left+_width/2)+scrollbarWidth/2}else if(inline==="end"){inlineScroll=targetInline-right+borderRight+scrollbarWidth}else{inlineScroll=alignNearest(_left,right,_width,borderLeft,borderRight+scrollbarWidth,targetInline,targetInline+targetWidth,targetWidth)}var scrollLeft=frame.scrollLeft,scrollTop=frame.scrollTop;blockScroll=Math.max(0,Math.min(scrollTop+blockScroll,frame.scrollHeight-_height+scrollbarHeight));inlineScroll=Math.max(0,Math.min(scrollLeft+inlineScroll,frame.scrollWidth-_width+scrollbarWidth));targetBlock+=scrollTop-blockScroll;targetInline+=scrollLeft-inlineScroll}computations.push({el:frame,top:blockScroll,left:inlineScroll})}return computations};exports.default=_default;module.exports=exports.default},{}],5:[function(require,module,exports){(function(window,document,exportName,undefined){"use strict";var VENDOR_PREFIXES=["","webkit","Moz","MS","ms","o"];var TEST_ELEMENT=document.createElement("div");var TYPE_FUNCTION="function";var round=Math.round;var abs=Math.abs;var now=Date.now;function setTimeoutContext(fn,timeout,context){return setTimeout(bindFn(fn,context),timeout)}function invokeArrayArg(arg,fn,context){if(Array.isArray(arg)){each(arg,context[fn],context);return true}return false}function each(obj,iterator,context){var i;if(!obj){return}if(obj.forEach){obj.forEach(iterator,context)}else if(obj.length!==undefined){i=0;while(i\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace";var log=window.console&&(window.console.warn||window.console.log);if(log){log.call(window.console,deprecationMessage,stack)}return method.apply(this,arguments)}}var assign;if(typeof Object.assign!=="function"){assign=function assign(target){if(target===undefined||target===null){throw new TypeError("Cannot convert undefined or null to object")}var output=Object(target);for(var index=1;index-1}function splitStr(str){return str.trim().split(/\s+/g)}function inArray(src,find,findByKey){if(src.indexOf&&!findByKey){return src.indexOf(find)}else{var i=0;while(ib[key]})}}return results}function prefixed(obj,property){var prefix,prop;var camelProp=property[0].toUpperCase()+property.slice(1);var i=0;while(i1&&!session.firstMultiple){session.firstMultiple=simpleCloneInputData(input)}else if(pointersLength===1){session.firstMultiple=false}var firstInput=session.firstInput;var firstMultiple=session.firstMultiple;var offsetCenter=firstMultiple?firstMultiple.center:firstInput.center;var center=input.center=getCenter(pointers);input.timeStamp=now();input.deltaTime=input.timeStamp-firstInput.timeStamp;input.angle=getAngle(offsetCenter,center);input.distance=getDistance(offsetCenter,center);computeDeltaXY(session,input);input.offsetDirection=getDirection(input.deltaX,input.deltaY);var overallVelocity=getVelocity(input.deltaTime,input.deltaX,input.deltaY);input.overallVelocityX=overallVelocity.x;input.overallVelocityY=overallVelocity.y;input.overallVelocity=abs(overallVelocity.x)>abs(overallVelocity.y)?overallVelocity.x:overallVelocity.y;input.scale=firstMultiple?getScale(firstMultiple.pointers,pointers):1;input.rotation=firstMultiple?getRotation(firstMultiple.pointers,pointers):0;input.maxPointers=!session.prevInput?input.pointers.length:input.pointers.length>session.prevInput.maxPointers?input.pointers.length:session.prevInput.maxPointers;computeIntervalInputData(session,input);var target=manager.element;if(hasParent(input.srcEvent.target,target)){target=input.srcEvent.target}input.target=target}function computeDeltaXY(session,input){var center=input.center;var offset=session.offsetDelta||{};var prevDelta=session.prevDelta||{};var prevInput=session.prevInput||{};if(input.eventType===INPUT_START||prevInput.eventType===INPUT_END){prevDelta=session.prevDelta={x:prevInput.deltaX||0,y:prevInput.deltaY||0};offset=session.offsetDelta={x:center.x,y:center.y}}input.deltaX=prevDelta.x+(center.x-offset.x);input.deltaY=prevDelta.y+(center.y-offset.y)}function computeIntervalInputData(session,input){var last=session.lastInterval||input,deltaTime=input.timeStamp-last.timeStamp,velocity,velocityX,velocityY,direction;if(input.eventType!=INPUT_CANCEL&&(deltaTime>COMPUTE_INTERVAL||last.velocity===undefined)){var deltaX=input.deltaX-last.deltaX;var deltaY=input.deltaY-last.deltaY;var v=getVelocity(deltaTime,deltaX,deltaY);velocityX=v.x;velocityY=v.y;velocity=abs(v.x)>abs(v.y)?v.x:v.y;direction=getDirection(deltaX,deltaY);session.lastInterval=input}else{velocity=last.velocity;velocityX=last.velocityX;velocityY=last.velocityY;direction=last.direction}input.velocity=velocity;input.velocityX=velocityX;input.velocityY=velocityY;input.direction=direction}function simpleCloneInputData(input){var pointers=[];var i=0;while(i=abs(y)){return x<0?DIRECTION_LEFT:DIRECTION_RIGHT}return y<0?DIRECTION_UP:DIRECTION_DOWN}function getDistance(p1,p2,props){if(!props){props=PROPS_XY}var x=p2[props[0]]-p1[props[0]],y=p2[props[1]]-p1[props[1]];return Math.sqrt(x*x+y*y)}function getAngle(p1,p2,props){if(!props){props=PROPS_XY}var x=p2[props[0]]-p1[props[0]],y=p2[props[1]]-p1[props[1]];return Math.atan2(y,x)*180/Math.PI}function getRotation(start,end){return getAngle(end[1],end[0],PROPS_CLIENT_XY)+getAngle(start[1],start[0],PROPS_CLIENT_XY)}function getScale(start,end){return getDistance(end[0],end[1],PROPS_CLIENT_XY)/getDistance(start[0],start[1],PROPS_CLIENT_XY)}var MOUSE_INPUT_MAP={mousedown:INPUT_START,mousemove:INPUT_MOVE,mouseup:INPUT_END};var MOUSE_ELEMENT_EVENTS="mousedown";var MOUSE_WINDOW_EVENTS="mousemove mouseup";function MouseInput(){this.evEl=MOUSE_ELEMENT_EVENTS;this.evWin=MOUSE_WINDOW_EVENTS;this.pressed=false;Input.apply(this,arguments)}inherit(MouseInput,Input,{handler:function MEhandler(ev){var eventType=MOUSE_INPUT_MAP[ev.type];if(eventType&INPUT_START&&ev.button===0){this.pressed=true}if(eventType&INPUT_MOVE&&ev.which!==1){eventType=INPUT_END}if(!this.pressed){return}if(eventType&INPUT_END){this.pressed=false}this.callback(this.manager,eventType,{pointers:[ev],changedPointers:[ev],pointerType:INPUT_TYPE_MOUSE,srcEvent:ev})}});var POINTER_INPUT_MAP={pointerdown:INPUT_START,pointermove:INPUT_MOVE,pointerup:INPUT_END,pointercancel:INPUT_CANCEL,pointerout:INPUT_CANCEL};var IE10_POINTER_TYPE_ENUM={2:INPUT_TYPE_TOUCH,3:INPUT_TYPE_PEN,4:INPUT_TYPE_MOUSE,5:INPUT_TYPE_KINECT};var POINTER_ELEMENT_EVENTS="pointerdown";var POINTER_WINDOW_EVENTS="pointermove pointerup pointercancel";if(window.MSPointerEvent&&!window.PointerEvent){POINTER_ELEMENT_EVENTS="MSPointerDown";POINTER_WINDOW_EVENTS="MSPointerMove MSPointerUp MSPointerCancel"}function PointerEventInput(){this.evEl=POINTER_ELEMENT_EVENTS;this.evWin=POINTER_WINDOW_EVENTS;Input.apply(this,arguments);this.store=this.manager.session.pointerEvents=[]}inherit(PointerEventInput,Input,{handler:function PEhandler(ev){var store=this.store;var removePointer=false;var eventTypeNormalized=ev.type.toLowerCase().replace("ms","");var eventType=POINTER_INPUT_MAP[eventTypeNormalized];var pointerType=IE10_POINTER_TYPE_ENUM[ev.pointerType]||ev.pointerType;var isTouch=pointerType==INPUT_TYPE_TOUCH;var storeIndex=inArray(store,ev.pointerId,"pointerId");if(eventType&INPUT_START&&(ev.button===0||isTouch)){if(storeIndex<0){store.push(ev);storeIndex=store.length-1}}else if(eventType&(INPUT_END|INPUT_CANCEL)){removePointer=true}if(storeIndex<0){return}store[storeIndex]=ev;this.callback(this.manager,eventType,{pointers:store,changedPointers:[ev],pointerType:pointerType,srcEvent:ev});if(removePointer){store.splice(storeIndex,1)}}});var SINGLE_TOUCH_INPUT_MAP={touchstart:INPUT_START,touchmove:INPUT_MOVE,touchend:INPUT_END,touchcancel:INPUT_CANCEL};var SINGLE_TOUCH_TARGET_EVENTS="touchstart";var SINGLE_TOUCH_WINDOW_EVENTS="touchstart touchmove touchend touchcancel";function SingleTouchInput(){this.evTarget=SINGLE_TOUCH_TARGET_EVENTS;this.evWin=SINGLE_TOUCH_WINDOW_EVENTS;this.started=false;Input.apply(this,arguments)}inherit(SingleTouchInput,Input,{handler:function TEhandler(ev){var type=SINGLE_TOUCH_INPUT_MAP[ev.type];if(type===INPUT_START){this.started=true}if(!this.started){return}var touches=normalizeSingleTouches.call(this,ev,type);if(type&(INPUT_END|INPUT_CANCEL)&&touches[0].length-touches[1].length===0){this.started=false}this.callback(this.manager,type,{pointers:touches[0],changedPointers:touches[1],pointerType:INPUT_TYPE_TOUCH,srcEvent:ev})}});function normalizeSingleTouches(ev,type){var all=toArray(ev.touches);var changed=toArray(ev.changedTouches);if(type&(INPUT_END|INPUT_CANCEL)){all=uniqueArray(all.concat(changed),"identifier",true)}return[all,changed]}var TOUCH_INPUT_MAP={touchstart:INPUT_START,touchmove:INPUT_MOVE,touchend:INPUT_END,touchcancel:INPUT_CANCEL};var TOUCH_TARGET_EVENTS="touchstart touchmove touchend touchcancel";function TouchInput(){this.evTarget=TOUCH_TARGET_EVENTS;this.targetIds={};Input.apply(this,arguments)}inherit(TouchInput,Input,{handler:function MTEhandler(ev){var type=TOUCH_INPUT_MAP[ev.type];var touches=getTouches.call(this,ev,type);if(!touches){return}this.callback(this.manager,type,{pointers:touches[0],changedPointers:touches[1],pointerType:INPUT_TYPE_TOUCH,srcEvent:ev})}});function getTouches(ev,type){var allTouches=toArray(ev.touches);var targetIds=this.targetIds;if(type&(INPUT_START|INPUT_MOVE)&&allTouches.length===1){targetIds[allTouches[0].identifier]=true;return[allTouches,allTouches]}var i,targetTouches,changedTouches=toArray(ev.changedTouches),changedTargetTouches=[],target=this.target;targetTouches=allTouches.filter(function(touch){return hasParent(touch.target,target)});if(type===INPUT_START){i=0;while(i-1){lts.splice(i,1)}};setTimeout(removeLastTouch,DEDUP_TIMEOUT)}}function isSyntheticEvent(eventData){var x=eventData.srcEvent.clientX,y=eventData.srcEvent.clientY;for(var i=0;i-1){this.requireFail.splice(index,1)}return this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(otherRecognizer){return!!this.simultaneous[otherRecognizer.id]},emit:function(input){var self=this;var state=this.state;function emit(event){self.manager.emit(event,input)}if(state=STATE_ENDED){emit(self.options.event+stateStr(state))}},tryEmit:function(input){if(this.canEmit()){return this.emit(input)}this.state=STATE_FAILED},canEmit:function(){var i=0;while(ioptions.threshold&&direction&options.direction},attrTest:function(input){return AttrRecognizer.prototype.attrTest.call(this,input)&&(this.state&STATE_BEGAN||!(this.state&STATE_BEGAN)&&this.directionTest(input))},emit:function(input){this.pX=input.deltaX;this.pY=input.deltaY;var direction=directionStr(input.direction);if(direction){input.additionalEvent=this.options.event+direction}this._super.emit.call(this,input)}});function PinchRecognizer(){AttrRecognizer.apply(this,arguments)}inherit(PinchRecognizer,AttrRecognizer,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[TOUCH_ACTION_NONE]},attrTest:function(input){return this._super.attrTest.call(this,input)&&(Math.abs(input.scale-1)>this.options.threshold||this.state&STATE_BEGAN)},emit:function(input){if(input.scale!==1){var inOut=input.scale<1?"in":"out";input.additionalEvent=this.options.event+inOut}this._super.emit.call(this,input)}});function PressRecognizer(){Recognizer.apply(this,arguments);this._timer=null;this._input=null}inherit(PressRecognizer,Recognizer,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[TOUCH_ACTION_AUTO]},process:function(input){var options=this.options;var validPointers=input.pointers.length===options.pointers;var validMovement=input.distanceoptions.time;this._input=input;if(!validMovement||!validPointers||input.eventType&(INPUT_END|INPUT_CANCEL)&&!validTime){this.reset()}else if(input.eventType&INPUT_START){this.reset();this._timer=setTimeoutContext(function(){this.state=STATE_RECOGNIZED;this.tryEmit()},options.time,this)}else if(input.eventType&INPUT_END){return STATE_RECOGNIZED}return STATE_FAILED},reset:function(){clearTimeout(this._timer)},emit:function(input){if(this.state!==STATE_RECOGNIZED){return}if(input&&input.eventType&INPUT_END){this.manager.emit(this.options.event+"up",input)}else{this._input.timeStamp=now();this.manager.emit(this.options.event,this._input)}}});function RotateRecognizer(){AttrRecognizer.apply(this,arguments)}inherit(RotateRecognizer,AttrRecognizer,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[TOUCH_ACTION_NONE]},attrTest:function(input){return this._super.attrTest.call(this,input)&&(Math.abs(input.rotation)>this.options.threshold||this.state&STATE_BEGAN)}});function SwipeRecognizer(){AttrRecognizer.apply(this,arguments)}inherit(SwipeRecognizer,AttrRecognizer,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:DIRECTION_HORIZONTAL|DIRECTION_VERTICAL,pointers:1},getTouchAction:function(){return PanRecognizer.prototype.getTouchAction.call(this)},attrTest:function(input){var direction=this.options.direction;var velocity;if(direction&(DIRECTION_HORIZONTAL|DIRECTION_VERTICAL)){velocity=input.overallVelocity}else if(direction&DIRECTION_HORIZONTAL){velocity=input.overallVelocityX}else if(direction&DIRECTION_VERTICAL){velocity=input.overallVelocityY}return this._super.attrTest.call(this,input)&&direction&input.offsetDirection&&input.distance>this.options.threshold&&input.maxPointers==this.options.pointers&&abs(velocity)>this.options.velocity&&input.eventType&INPUT_END},emit:function(input){var direction=directionStr(input.offsetDirection);if(direction){this.manager.emit(this.options.event+direction,input)}this.manager.emit(this.options.event,input)}});function TapRecognizer(){Recognizer.apply(this,arguments);this.pTime=false;this.pCenter=false;this._timer=null;this._input=null;this.count=0}inherit(TapRecognizer,Recognizer,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[TOUCH_ACTION_MANIPULATION]},process:function(input){var options=this.options;var validPointers=input.pointers.length===options.pointers;var validMovement=input.distance is either invalid, or may already be subscribed.");emailInput.value=null;emailInput.classList.add("newsletter__input--invalid");form.style.display="block";message.style.display="block";break;default:message.innerHTML="The email address ".concat(emailInput.value," may be invalid, or your network connection is inactive.");emailInput.value=null;emailInput.classList.add("newsletter__input--invalid");form.style.display="block";message.style.display="block";break}};xhr.send(payload)}}};var docsNavMobileActions=function docsNavMobileActions(){var menuButton=document.querySelector(".l-navigablecontent__control-item--left");var topButton=document.querySelector(".l-navigablecontent__control-item--right");var docsNav=document.querySelector(".l-navigablecontent__nav");var docsWrapper=document.querySelector(".l-navigablecontent .wrapper");if(!menuButton||!topButton||!docsNav||!docsWrapper){return}var isMobile=function isMobile(){return window.getComputedStyle(menuButton.parentNode).getPropertyValue("display")!=="none"};var docsNavIsOpen=function docsNavIsOpen(){return docsNav.classList.contains("l-navigablecontent__nav--open")};var toggleDocsNav=function toggleDocsNav(){if(!isMobile()){return}if(docsNavIsOpen()){document.body.classList.remove("body--noscroll");docsNav.classList.remove("l-navigablecontent__nav--open");docsWrapper.classList.remove("wrapper--disabled");docsWrapper.removeEventListener("click",toggleDocsNav);return}document.body.classList.add("body--noscroll");docsNav.classList.add("l-navigablecontent__nav--open");docsWrapper.classList.add("wrapper--disabled");docsWrapper.addEventListener("click",toggleDocsNav)};menuButton.addEventListener("click",toggleDocsNav);Array.from(docsNav.querySelectorAll(".sidenav__section-item")).forEach(function(link){return link.addEventListener("click",toggleDocsNav)});topButton.addEventListener("click",function(){if(docsNavIsOpen()){toggleDocsNav()}return window.scrollTo(0,0)});var hammerNav=new Hammer(docsNav);var hammerContent=new Hammer(document.querySelector(".l-navigablecontent"),{cssProps:{userSelect:"initial"}});hammerNav.on("swipeleft",toggleDocsNav);hammerContent.on("swiperight",function(){if(!docsNavIsOpen()){toggleDocsNav()}})};var changePackageVersion=function changePackageVersion(){var select=document.getElementById("version");if(!select){return}select.addEventListener("change",function(option){window.location.search="v="+option.srcElement.value})};var palToClipboard=function palToClipboard(){var element=document.getElementById("codeBox");var button=document.getElementById("codeBoxButton");var input=document.getElementById("code");if(!element||!button||!input){return}element.onclick=function(){input.select()};button.onclick=function(){var tooltip=document.getElementsByClassName("tooltip__text")[0];input.select();document.execCommand("Copy");tooltip.innerHTML="Code copied";button.onmouseleave=function(){tooltip.innerHTML="Copy to clipboard"}}};var markdownLinksExternal=function markdownLinksExternal(){var links=document.querySelectorAll('.markdown-body.entry-content a:not([href^="#"]):not(.anchor)');for(var i=0;i .sidenav__section-item--active");if(lastNavItem){lastNavItem.classList.remove("sidenav__section-item--active")}navItem.classList.add("sidenav__section-item--active")};internals.item=function(innerHTML,href,indent){return'\n ').concat(innerHTML,"\n ")};internals.render=function(html){var wrapper=document.createElement("div");wrapper.innerHTML=html;return wrapper.firstChild}},{"./vendor/navbar":3,"scroll-into-view-if-needed":6}],3:[function(require,module,exports){"use strict";var supportsPassive=false;try{var opts=Object.defineProperty({},"passive",{get:function get(){supportsPassive=true}});window.addEventListener("test",null,opts)}catch(e){}var createAndAppendListItems=function createAndAppendListItems(navList,elementList,makeNavListItem){var pairs=[];for(var i=0;iclosestDist){continue}frontRunnerIndex=i;closestDist=absDist}if(onScrollHook){onScrollHook(pairs[frontRunnerIndex].navElement)}};if(typeof debounceTime!=="number"||isNaN(debounceTime)){return handleScroll}var timeout;var nullifyTimeout=function nullifyTimeout(){timeout=null};return function(){if(timeout){return}handleScroll();timeout=setTimeout(nullifyTimeout,debounceTime)}};var addScrollListener=function addScrollListener(target,handleScroll){var scrollHandleWrapper=function scrollHandleWrapper(evt){if(evt.target===target){handleScroll()}};if(target.addEventListener){target.addEventListener("scroll",scrollHandleWrapper,supportsPassive?{passive:true}:false)}else if(target.attachEvent){target.attachEvent("onscroll",scrollHandleWrapper)}else{throw new Error("This browser does not support addEventListener or attachEvent.")}handleScroll()};module.exports=function(options){if(!options||!options.elementList||!options.makeNavListItem){throw new Error("Options object with elementList and makeNavListItem must be provided.")}var navbar=document.createElement(options.tagName||"nav");var navList=document.createElement("ul");var target=options.target||document;var pairs=createAndAppendListItems(navList,options.elementList,options.makeNavListItem);addScrollListener(target,makeHandleScroll(pairs,options.onScroll,options.debounceTime));navbar.appendChild(navList);return navbar}},{}],4:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const t=t=>"object"==typeof t&&null!=t&&1===t.nodeType,e=(t,e)=>(!e||"hidden"!==t)&&("visible"!==t&&"clip"!==t),n=(t,n)=>{if(t.clientHeight{const e=(t=>{if(!t.ownerDocument||!t.ownerDocument.defaultView)return null;try{return t.ownerDocument.defaultView.frameElement}catch(t){return null}})(t);return!!e&&(e.clientHeightle||l>t&&r=e&&d>=n?l-t-o:r>e&&dn?r-e+i:0,i=t=>{const e=t.parentElement;return null==e?t.getRootNode().host||null:e};exports.compute=(e,l)=>{var r,d,s,c;if("undefined"==typeof document)return[];const{scrollMode:h,block:u,inline:f,boundary:a,skipOverflowHiddenElements:m}=l,g="function"==typeof a?a:t=>t!==a;if(!t(e))throw new TypeError("Invalid target");const p=document.scrollingElement||document.documentElement,w=[];let W=e;for(;t(W)&&g(W);){if(W=i(W),W===p){w.push(W);break}null!=W&&W===document.body&&n(W)&&!n(document.documentElement)||null!=W&&n(W,m)&&w.push(W)}const b=null!=(d=null==(r=window.visualViewport)?void 0:r.width)?d:innerWidth,H=null!=(c=null==(s=window.visualViewport)?void 0:s.height)?c:innerHeight,{scrollX:v,scrollY:y}=window,{height:M,width:E,top:x,right:I,bottom:C,left:R}=e.getBoundingClientRect();let T="start"===u||"nearest"===u?x:"end"===u?C:x+M/2,V="center"===f?R+E/2:"end"===f?I:R;const k=[];for(let t=0;t=0&&R>=0&&C<=H&&I<=b&&x>=l&&C<=d&&R>=s&&I<=r)return k;const c=getComputedStyle(e),a=parseInt(c.borderLeftWidth,10),m=parseInt(c.borderTopWidth,10),g=parseInt(c.borderRightWidth,10),W=parseInt(c.borderBottomWidth,10);let B=0,D=0;const j="offsetWidth"in e?e.offsetWidth-e.clientWidth-a-g:0,L="offsetHeight"in e?e.offsetHeight-e.clientHeight-m-W:0,O="offsetWidth"in e?0===e.offsetWidth?0:i/e.offsetWidth:0,S="offsetHeight"in e?0===e.offsetHeight?0:n/e.offsetHeight:0;if(p===e)B="start"===u?T:"end"===u?T-H:"nearest"===u?o(y,y+H,H,m,W,y+T,y+T+M,M):T-H/2,D="start"===f?V:"center"===f?V-b/2:"end"===f?V-b:o(v,v+b,b,a,g,v+V,v+V+E,E),B=Math.max(0,B+y),D=Math.max(0,D+v);else{B="start"===u?T-l-m:"end"===u?T-d+W+L:"nearest"===u?o(l,d,n,m,W+L,T,T+M,M):T-(l+n/2)+L/2,D="start"===f?V-s-a:"center"===f?V-(s+i/2)+j/2:"end"===f?V-r+g+j:o(s,r,i,a,g+j,V,V+E,E);const{scrollLeft:t,scrollTop:c}=e;B=Math.max(0,Math.min(c+B/S,e.scrollHeight-n/S+L)),D=Math.max(0,Math.min(t+D/O,e.scrollWidth-i/O+j)),T+=c-B,V+=t-D}k.push({el:e,top:B,left:D})}return k}},{}],5:[function(require,module,exports){(function(window,document,exportName,undefined){"use strict";var VENDOR_PREFIXES=["","webkit","Moz","MS","ms","o"];var TEST_ELEMENT=document.createElement("div");var TYPE_FUNCTION="function";var round=Math.round;var abs=Math.abs;var now=Date.now;function setTimeoutContext(fn,timeout,context){return setTimeout(bindFn(fn,context),timeout)}function invokeArrayArg(arg,fn,context){if(Array.isArray(arg)){each(arg,context[fn],context);return true}return false}function each(obj,iterator,context){var i;if(!obj){return}if(obj.forEach){obj.forEach(iterator,context)}else if(obj.length!==undefined){i=0;while(i\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace";var log=window.console&&(window.console.warn||window.console.log);if(log){log.call(window.console,deprecationMessage,stack)}return method.apply(this,arguments)}}var assign;if(typeof Object.assign!=="function"){assign=function assign(target){if(target===undefined||target===null){throw new TypeError("Cannot convert undefined or null to object")}var output=Object(target);for(var index=1;index-1}function splitStr(str){return str.trim().split(/\s+/g)}function inArray(src,find,findByKey){if(src.indexOf&&!findByKey){return src.indexOf(find)}else{var i=0;while(ib[key]})}}return results}function prefixed(obj,property){var prefix,prop;var camelProp=property[0].toUpperCase()+property.slice(1);var i=0;while(i1&&!session.firstMultiple){session.firstMultiple=simpleCloneInputData(input)}else if(pointersLength===1){session.firstMultiple=false}var firstInput=session.firstInput;var firstMultiple=session.firstMultiple;var offsetCenter=firstMultiple?firstMultiple.center:firstInput.center;var center=input.center=getCenter(pointers);input.timeStamp=now();input.deltaTime=input.timeStamp-firstInput.timeStamp;input.angle=getAngle(offsetCenter,center);input.distance=getDistance(offsetCenter,center);computeDeltaXY(session,input);input.offsetDirection=getDirection(input.deltaX,input.deltaY);var overallVelocity=getVelocity(input.deltaTime,input.deltaX,input.deltaY);input.overallVelocityX=overallVelocity.x;input.overallVelocityY=overallVelocity.y;input.overallVelocity=abs(overallVelocity.x)>abs(overallVelocity.y)?overallVelocity.x:overallVelocity.y;input.scale=firstMultiple?getScale(firstMultiple.pointers,pointers):1;input.rotation=firstMultiple?getRotation(firstMultiple.pointers,pointers):0;input.maxPointers=!session.prevInput?input.pointers.length:input.pointers.length>session.prevInput.maxPointers?input.pointers.length:session.prevInput.maxPointers;computeIntervalInputData(session,input);var target=manager.element;if(hasParent(input.srcEvent.target,target)){target=input.srcEvent.target}input.target=target}function computeDeltaXY(session,input){var center=input.center;var offset=session.offsetDelta||{};var prevDelta=session.prevDelta||{};var prevInput=session.prevInput||{};if(input.eventType===INPUT_START||prevInput.eventType===INPUT_END){prevDelta=session.prevDelta={x:prevInput.deltaX||0,y:prevInput.deltaY||0};offset=session.offsetDelta={x:center.x,y:center.y}}input.deltaX=prevDelta.x+(center.x-offset.x);input.deltaY=prevDelta.y+(center.y-offset.y)}function computeIntervalInputData(session,input){var last=session.lastInterval||input,deltaTime=input.timeStamp-last.timeStamp,velocity,velocityX,velocityY,direction;if(input.eventType!=INPUT_CANCEL&&(deltaTime>COMPUTE_INTERVAL||last.velocity===undefined)){var deltaX=input.deltaX-last.deltaX;var deltaY=input.deltaY-last.deltaY;var v=getVelocity(deltaTime,deltaX,deltaY);velocityX=v.x;velocityY=v.y;velocity=abs(v.x)>abs(v.y)?v.x:v.y;direction=getDirection(deltaX,deltaY);session.lastInterval=input}else{velocity=last.velocity;velocityX=last.velocityX;velocityY=last.velocityY;direction=last.direction}input.velocity=velocity;input.velocityX=velocityX;input.velocityY=velocityY;input.direction=direction}function simpleCloneInputData(input){var pointers=[];var i=0;while(i=abs(y)){return x<0?DIRECTION_LEFT:DIRECTION_RIGHT}return y<0?DIRECTION_UP:DIRECTION_DOWN}function getDistance(p1,p2,props){if(!props){props=PROPS_XY}var x=p2[props[0]]-p1[props[0]],y=p2[props[1]]-p1[props[1]];return Math.sqrt(x*x+y*y)}function getAngle(p1,p2,props){if(!props){props=PROPS_XY}var x=p2[props[0]]-p1[props[0]],y=p2[props[1]]-p1[props[1]];return Math.atan2(y,x)*180/Math.PI}function getRotation(start,end){return getAngle(end[1],end[0],PROPS_CLIENT_XY)+getAngle(start[1],start[0],PROPS_CLIENT_XY)}function getScale(start,end){return getDistance(end[0],end[1],PROPS_CLIENT_XY)/getDistance(start[0],start[1],PROPS_CLIENT_XY)}var MOUSE_INPUT_MAP={mousedown:INPUT_START,mousemove:INPUT_MOVE,mouseup:INPUT_END};var MOUSE_ELEMENT_EVENTS="mousedown";var MOUSE_WINDOW_EVENTS="mousemove mouseup";function MouseInput(){this.evEl=MOUSE_ELEMENT_EVENTS;this.evWin=MOUSE_WINDOW_EVENTS;this.pressed=false;Input.apply(this,arguments)}inherit(MouseInput,Input,{handler:function MEhandler(ev){var eventType=MOUSE_INPUT_MAP[ev.type];if(eventType&INPUT_START&&ev.button===0){this.pressed=true}if(eventType&INPUT_MOVE&&ev.which!==1){eventType=INPUT_END}if(!this.pressed){return}if(eventType&INPUT_END){this.pressed=false}this.callback(this.manager,eventType,{pointers:[ev],changedPointers:[ev],pointerType:INPUT_TYPE_MOUSE,srcEvent:ev})}});var POINTER_INPUT_MAP={pointerdown:INPUT_START,pointermove:INPUT_MOVE,pointerup:INPUT_END,pointercancel:INPUT_CANCEL,pointerout:INPUT_CANCEL};var IE10_POINTER_TYPE_ENUM={2:INPUT_TYPE_TOUCH,3:INPUT_TYPE_PEN,4:INPUT_TYPE_MOUSE,5:INPUT_TYPE_KINECT};var POINTER_ELEMENT_EVENTS="pointerdown";var POINTER_WINDOW_EVENTS="pointermove pointerup pointercancel";if(window.MSPointerEvent&&!window.PointerEvent){POINTER_ELEMENT_EVENTS="MSPointerDown";POINTER_WINDOW_EVENTS="MSPointerMove MSPointerUp MSPointerCancel"}function PointerEventInput(){this.evEl=POINTER_ELEMENT_EVENTS;this.evWin=POINTER_WINDOW_EVENTS;Input.apply(this,arguments);this.store=this.manager.session.pointerEvents=[]}inherit(PointerEventInput,Input,{handler:function PEhandler(ev){var store=this.store;var removePointer=false;var eventTypeNormalized=ev.type.toLowerCase().replace("ms","");var eventType=POINTER_INPUT_MAP[eventTypeNormalized];var pointerType=IE10_POINTER_TYPE_ENUM[ev.pointerType]||ev.pointerType;var isTouch=pointerType==INPUT_TYPE_TOUCH;var storeIndex=inArray(store,ev.pointerId,"pointerId");if(eventType&INPUT_START&&(ev.button===0||isTouch)){if(storeIndex<0){store.push(ev);storeIndex=store.length-1}}else if(eventType&(INPUT_END|INPUT_CANCEL)){removePointer=true}if(storeIndex<0){return}store[storeIndex]=ev;this.callback(this.manager,eventType,{pointers:store,changedPointers:[ev],pointerType:pointerType,srcEvent:ev});if(removePointer){store.splice(storeIndex,1)}}});var SINGLE_TOUCH_INPUT_MAP={touchstart:INPUT_START,touchmove:INPUT_MOVE,touchend:INPUT_END,touchcancel:INPUT_CANCEL};var SINGLE_TOUCH_TARGET_EVENTS="touchstart";var SINGLE_TOUCH_WINDOW_EVENTS="touchstart touchmove touchend touchcancel";function SingleTouchInput(){this.evTarget=SINGLE_TOUCH_TARGET_EVENTS;this.evWin=SINGLE_TOUCH_WINDOW_EVENTS;this.started=false;Input.apply(this,arguments)}inherit(SingleTouchInput,Input,{handler:function TEhandler(ev){var type=SINGLE_TOUCH_INPUT_MAP[ev.type];if(type===INPUT_START){this.started=true}if(!this.started){return}var touches=normalizeSingleTouches.call(this,ev,type);if(type&(INPUT_END|INPUT_CANCEL)&&touches[0].length-touches[1].length===0){this.started=false}this.callback(this.manager,type,{pointers:touches[0],changedPointers:touches[1],pointerType:INPUT_TYPE_TOUCH,srcEvent:ev})}});function normalizeSingleTouches(ev,type){var all=toArray(ev.touches);var changed=toArray(ev.changedTouches);if(type&(INPUT_END|INPUT_CANCEL)){all=uniqueArray(all.concat(changed),"identifier",true)}return[all,changed]}var TOUCH_INPUT_MAP={touchstart:INPUT_START,touchmove:INPUT_MOVE,touchend:INPUT_END,touchcancel:INPUT_CANCEL};var TOUCH_TARGET_EVENTS="touchstart touchmove touchend touchcancel";function TouchInput(){this.evTarget=TOUCH_TARGET_EVENTS;this.targetIds={};Input.apply(this,arguments)}inherit(TouchInput,Input,{handler:function MTEhandler(ev){var type=TOUCH_INPUT_MAP[ev.type];var touches=getTouches.call(this,ev,type);if(!touches){return}this.callback(this.manager,type,{pointers:touches[0],changedPointers:touches[1],pointerType:INPUT_TYPE_TOUCH,srcEvent:ev})}});function getTouches(ev,type){var allTouches=toArray(ev.touches);var targetIds=this.targetIds;if(type&(INPUT_START|INPUT_MOVE)&&allTouches.length===1){targetIds[allTouches[0].identifier]=true;return[allTouches,allTouches]}var i,targetTouches,changedTouches=toArray(ev.changedTouches),changedTargetTouches=[],target=this.target;targetTouches=allTouches.filter(function(touch){return hasParent(touch.target,target)});if(type===INPUT_START){i=0;while(i-1){lts.splice(i,1)}};setTimeout(removeLastTouch,DEDUP_TIMEOUT)}}function isSyntheticEvent(eventData){var x=eventData.srcEvent.clientX,y=eventData.srcEvent.clientY;for(var i=0;i-1){this.requireFail.splice(index,1)}return this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(otherRecognizer){return!!this.simultaneous[otherRecognizer.id]},emit:function(input){var self=this;var state=this.state;function emit(event){self.manager.emit(event,input)}if(state=STATE_ENDED){emit(self.options.event+stateStr(state))}},tryEmit:function(input){if(this.canEmit()){return this.emit(input)}this.state=STATE_FAILED},canEmit:function(){var i=0;while(ioptions.threshold&&direction&options.direction},attrTest:function(input){return AttrRecognizer.prototype.attrTest.call(this,input)&&(this.state&STATE_BEGAN||!(this.state&STATE_BEGAN)&&this.directionTest(input))},emit:function(input){this.pX=input.deltaX;this.pY=input.deltaY;var direction=directionStr(input.direction);if(direction){input.additionalEvent=this.options.event+direction}this._super.emit.call(this,input)}});function PinchRecognizer(){AttrRecognizer.apply(this,arguments)}inherit(PinchRecognizer,AttrRecognizer,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[TOUCH_ACTION_NONE]},attrTest:function(input){return this._super.attrTest.call(this,input)&&(Math.abs(input.scale-1)>this.options.threshold||this.state&STATE_BEGAN)},emit:function(input){if(input.scale!==1){var inOut=input.scale<1?"in":"out";input.additionalEvent=this.options.event+inOut}this._super.emit.call(this,input)}});function PressRecognizer(){Recognizer.apply(this,arguments);this._timer=null;this._input=null}inherit(PressRecognizer,Recognizer,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[TOUCH_ACTION_AUTO]},process:function(input){var options=this.options;var validPointers=input.pointers.length===options.pointers;var validMovement=input.distanceoptions.time;this._input=input;if(!validMovement||!validPointers||input.eventType&(INPUT_END|INPUT_CANCEL)&&!validTime){this.reset()}else if(input.eventType&INPUT_START){this.reset();this._timer=setTimeoutContext(function(){this.state=STATE_RECOGNIZED;this.tryEmit()},options.time,this)}else if(input.eventType&INPUT_END){return STATE_RECOGNIZED}return STATE_FAILED},reset:function(){clearTimeout(this._timer)},emit:function(input){if(this.state!==STATE_RECOGNIZED){return}if(input&&input.eventType&INPUT_END){this.manager.emit(this.options.event+"up",input)}else{this._input.timeStamp=now();this.manager.emit(this.options.event,this._input)}}});function RotateRecognizer(){AttrRecognizer.apply(this,arguments)}inherit(RotateRecognizer,AttrRecognizer,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[TOUCH_ACTION_NONE]},attrTest:function(input){return this._super.attrTest.call(this,input)&&(Math.abs(input.rotation)>this.options.threshold||this.state&STATE_BEGAN)}});function SwipeRecognizer(){AttrRecognizer.apply(this,arguments)}inherit(SwipeRecognizer,AttrRecognizer,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:DIRECTION_HORIZONTAL|DIRECTION_VERTICAL,pointers:1},getTouchAction:function(){return PanRecognizer.prototype.getTouchAction.call(this)},attrTest:function(input){var direction=this.options.direction;var velocity;if(direction&(DIRECTION_HORIZONTAL|DIRECTION_VERTICAL)){velocity=input.overallVelocity}else if(direction&DIRECTION_HORIZONTAL){velocity=input.overallVelocityX}else if(direction&DIRECTION_VERTICAL){velocity=input.overallVelocityY}return this._super.attrTest.call(this,input)&&direction&input.offsetDirection&&input.distance>this.options.threshold&&input.maxPointers==this.options.pointers&&abs(velocity)>this.options.velocity&&input.eventType&INPUT_END},emit:function(input){var direction=directionStr(input.offsetDirection);if(direction){this.manager.emit(this.options.event+direction,input)}this.manager.emit(this.options.event,input)}});function TapRecognizer(){Recognizer.apply(this,arguments);this.pTime=false;this.pCenter=false;this._timer=null;this._input=null;this.count=0}inherit(TapRecognizer,Recognizer,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[TOUCH_ACTION_MANIPULATION]},process:function(input){var options=this.options;var validPointers=input.pointers.length===options.pointers;var validMovement=input.distance!1===e?{block:"end",inline:"nearest"}:(e=>e===Object(e)&&0!==Object.keys(e).length)(e)?e:{block:"start",inline:"nearest"};module.exports=function(t,n){if(!t.isConnected||!(e=>{let o=e;for(;o&&o.parentNode;){if(o.parentNode===document)return!0;o=o.parentNode instanceof ShadowRoot?o.parentNode.host:o.parentNode}return!1})(t))return;if((e=>"object"==typeof e&&"function"==typeof e.behavior)(n))return n.behavior(e.compute(t,n));const r="boolean"==typeof n||null==n?void 0:n.behavior;for(const{el:i,top:c,left:l}of e.compute(t,o(n)))i.scroll({top:c,left:l,behavior:r})}},{"compute-scroll-into-view":4}]},{},[1]); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 35248f4..f4c4341 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,1361 +1,2191 @@ { "name": "hapipal.com", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "@babel/core": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.4.tgz", - "integrity": "sha512-Rm0HGw101GY8FTzpWSyRbki/jzq+/PkNQJ+nSulrdY6gFGOsNseCqD6KHRYe2E+EdzuBdr2pxCp6s4Uk6eJ+XQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.4", - "@babel/helpers": "^7.6.2", - "@babel/parser": "^7.6.4", - "@babel/template": "^7.6.0", - "@babel/traverse": "^7.6.3", - "@babel/types": "^7.6.3", - "convert-source-map": "^1.1.0", - "debug": "^4.1.0", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } + "packages": { + "": { + "name": "hapipal.com", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@hapi/boom": "9.x.x", + "@hapi/bounce": "2.x.x", + "@hapi/glue": "8.x.x", + "@hapi/hapi": "20.x.x", + "@hapi/inert": "6.x.x", + "@hapi/somever": "3.x.x", + "@hapi/vision": "6.x.x", + "@hapi/wreck": "17.x.x", + "@hapipal/confidence": "6.x.x", + "@hapipal/haute-couture": "4.x.x", + "@hapipal/schmervice": "2.x.x", + "@hapipal/toys": "3.x.x", + "dotenv": "8.x.x", + "exiting": "6.x.x", + "handlebars": ">=4.7.6 <5", + "joi": "17.x.x", + "require-dir": "1.x.x" + }, + "devDependencies": { + "@babel/core": "7.x.x", + "@babel/preset-env": "7.x.x", + "@hapi/code": "8.x.x", + "@hapi/eslint-config-hapi": "13.x.x", + "@hapi/eslint-plugin-hapi": "4.x.x", + "@hapi/lab": "24.x.x", + "@hapipal/hpal": "3.x.x", + "@hapipal/hpal-debug": "2.x.x", + "@primer/css": "15.x.x", + "autoprefixer": "10.x.x", + "babelify": "10.x.x", + "browser-sync": "^2.26.14", + "browserify": "17.x.x", + "cssnano": "4.x.x", + "eslint": "7.x.x", + "hammerjs": "2.x.x", + "postcss": "8.x.x", + "postcss-cli": "8.x.x", + "sass": "^1.66.1", + "scroll-into-view-if-needed": "^3.0.10" + }, + "engines": { + "node": ">=12 <15" } }, - "@babel/generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.4.tgz", - "integrity": "sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w==", + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true, - "requires": { - "@babel/types": "^7.6.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } + "engines": { + "node": ">=0.10.0" } }, - "@babel/helper-annotate-as-pure": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", - "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, - "requires": { - "@babel/types": "^7.0.0" + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" } }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", - "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", + "node_modules/@babel/code-frame": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.10.tgz", + "integrity": "sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==", "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.1.0", - "@babel/types": "^7.0.0" + "dependencies": { + "@babel/highlight": "^7.22.10", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-call-delegate": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz", - "integrity": "sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==", + "node_modules/@babel/compat-data": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.4.4", - "@babel/traverse": "^7.4.4", - "@babel/types": "^7.4.4" + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-define-map": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz", - "integrity": "sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg==", + "node_modules/@babel/core": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.10.tgz", + "integrity": "sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==", "dev": true, - "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/types": "^7.5.5", - "lodash": "^4.17.13" + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.10", + "@babel/generator": "^7.22.10", + "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helpers": "^7.22.10", + "@babel/parser": "^7.22.10", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.10", + "@babel/types": "^7.22.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "@babel/helper-explode-assignable-expression": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", - "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", + "node_modules/@babel/eslint-parser": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.10.tgz", + "integrity": "sha512-0J8DNPRXQRLeR9rPaUMM3fA+RbixjnVLe/MRMYCkp3hzgsSuxCHQ8NN8xQG1wIHKJ4a1DTROTvFJdW+B5/eOsg==", "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.0.0" + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0" } }, - "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "node_modules/@babel/generator": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.10.tgz", + "integrity": "sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==", "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" + "dependencies": { + "@babel/types": "^7.22.10", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, - "requires": { - "@babel/types": "^7.0.0" + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-hoist-variables": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz", - "integrity": "sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==", + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz", + "integrity": "sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ==", "dev": true, - "requires": { - "@babel/types": "^7.4.4" + "dependencies": { + "@babel/types": "^7.22.10" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-member-expression-to-functions": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz", - "integrity": "sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz", + "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==", "dev": true, - "requires": { - "@babel/types": "^7.5.5" + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-imports": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", - "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.10.tgz", + "integrity": "sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA==", "dev": true, - "requires": { - "@babel/types": "^7.0.0" + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-module-transforms": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz", - "integrity": "sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==", + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", + "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-simple-access": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/template": "^7.4.4", - "@babel/types": "^7.5.5", - "lodash": "^4.17.13" + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-optimise-call-expression": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", - "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", + "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", "dev": true, - "requires": { - "@babel/types": "^7.0.0" + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "@babel/helper-plugin-utils": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", - "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", - "dev": true - }, - "@babel/helper-regex": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz", - "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==", + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", "dev": true, - "requires": { - "lodash": "^4.17.13" + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-remap-async-to-generator": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", - "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", + "node_modules/@babel/helper-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-wrap-function": "^7.1.0", - "@babel/template": "^7.1.0", - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.0.0" + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-replace-supers": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz", - "integrity": "sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==", + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.5.5", - "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/traverse": "^7.5.5", - "@babel/types": "^7.5.5" + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-simple-access": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", - "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", + "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", "dev": true, - "requires": { - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-split-export-declaration": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", - "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "node_modules/@babel/helper-module-imports": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", "dev": true, - "requires": { - "@babel/types": "^7.4.4" + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", - "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", + "node_modules/@babel/helper-module-transforms": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", "dev": true, - "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/template": "^7.1.0", - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.2.0" + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helpers": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.2.tgz", - "integrity": "sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA==", + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, - "requires": { - "@babel/template": "^7.6.0", - "@babel/traverse": "^7.6.2", - "@babel/types": "^7.6.0" + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/highlight": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", - "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "engines": { + "node": ">=6.9.0" } }, - "@babel/parser": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.4.tgz", - "integrity": "sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A==", - "dev": true - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", - "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", + "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.1.0", - "@babel/plugin-syntax-async-generators": "^7.2.0" + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-wrap-function": "^7.22.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz", - "integrity": "sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw==", + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", + "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.2.0" + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-proposal-json-strings": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", - "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-json-strings": "^7.2.0" + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz", - "integrity": "sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw==", + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", - "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz", - "integrity": "sha512-NxHETdmpeSCtiatMRYWVJo7266rrvAC3DTeG5exQBIH/fMIUK7ejDNznBbn3HQl/o9peymRRg7Yqkx6PdUXmMw==", + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.6.0" + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-syntax-async-generators": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", - "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", - "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==", + "node_modules/@babel/helper-validator-option": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-syntax-json-strings": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", - "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz", + "integrity": "sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.10" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", - "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", + "node_modules/@babel/helpers": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.10.tgz", + "integrity": "sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.10", + "@babel/types": "^7.22.10" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", - "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", + "node_modules/@babel/highlight": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.10.tgz", + "integrity": "sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", - "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", + "node_modules/@babel/parser": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.10.tgz", + "integrity": "sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" } }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz", - "integrity": "sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==", + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", + "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.1.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", - "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", + "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" } }, - "@babel/plugin-transform-block-scoping": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz", - "integrity": "sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw==", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "lodash": "^4.17.13" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-classes": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz", - "integrity": "sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg==", + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-define-map": "^7.5.5", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.5.5", - "@babel/helper-split-export-declaration": "^7.4.4", - "globals": "^11.1.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-computed-properties": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", - "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-destructuring": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz", - "integrity": "sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ==", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz", - "integrity": "sha512-KGKT9aqKV+9YMZSkowzYoYEiHqgaDhGmPNZlZxX6UeHC4z30nC1J9IrZuGqbYFB1jaIGdv91ujpze0exiVK8bA==", + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.6.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz", - "integrity": "sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==", + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", - "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-for-of": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz", - "integrity": "sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", + "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-function-name": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz", - "integrity": "sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==", + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, - "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", - "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz", - "integrity": "sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==", + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-amd": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz", - "integrity": "sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==", + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0", - "babel-plugin-dynamic-import-node": "^2.3.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz", - "integrity": "sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g==", + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.4.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-simple-access": "^7.1.0", - "babel-plugin-dynamic-import-node": "^2.3.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz", - "integrity": "sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg==", + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.4.4", - "@babel/helper-plugin-utils": "^7.0.0", - "babel-plugin-dynamic-import-node": "^2.3.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-umd": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", - "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.3.tgz", - "integrity": "sha512-jTkk7/uE6H2s5w6VlMHeWuH+Pcy2lmdwFoeWCVnvIrDUnB5gQqTVI8WfmEAhF2CDEarGrknZcmSFg1+bkfCoSw==", + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, - "requires": { - "regexpu-core": "^4.6.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-new-target": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz", - "integrity": "sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==", + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-object-super": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz", - "integrity": "sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.5.5" + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-parameters": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz", - "integrity": "sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, - "requires": { - "@babel/helper-call-delegate": "^7.4.4", - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-transform-property-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz", - "integrity": "sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-regenerator": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz", - "integrity": "sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.10.tgz", + "integrity": "sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g==", "dev": true, - "requires": { - "regenerator-transform": "^0.14.0" + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-reserved-words": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz", - "integrity": "sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", - "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-spread": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz", - "integrity": "sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz", + "integrity": "sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", - "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.0.0" + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-template-literals": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz", - "integrity": "sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==", + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz", + "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" } }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", - "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", + "node_modules/@babel/plugin-transform-classes": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", + "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz", - "integrity": "sha512-orZI6cWlR3nk2YmYdb0gImrgCUwb5cBUwjf6Ks6dvNVvXERkwtJWOQaEOjPiu0Gu1Tq6Yq/hruCZZOOi9F34Dw==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.6.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/preset-env": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.6.3.tgz", - "integrity": "sha512-CWQkn7EVnwzlOdR5NOm2+pfgSNEZmvGjOhlCHBDq0J8/EStr+G+FvPEiz9B56dR6MoiUFjXhfE4hjLoAKKJtIQ==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz", + "integrity": "sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.2.0", - "@babel/plugin-proposal-dynamic-import": "^7.5.0", - "@babel/plugin-proposal-json-strings": "^7.2.0", - "@babel/plugin-proposal-object-rest-spread": "^7.6.2", - "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.6.2", - "@babel/plugin-syntax-async-generators": "^7.2.0", - "@babel/plugin-syntax-dynamic-import": "^7.2.0", - "@babel/plugin-syntax-json-strings": "^7.2.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", - "@babel/plugin-transform-arrow-functions": "^7.2.0", - "@babel/plugin-transform-async-to-generator": "^7.5.0", - "@babel/plugin-transform-block-scoped-functions": "^7.2.0", - "@babel/plugin-transform-block-scoping": "^7.6.3", - "@babel/plugin-transform-classes": "^7.5.5", - "@babel/plugin-transform-computed-properties": "^7.2.0", - "@babel/plugin-transform-destructuring": "^7.6.0", - "@babel/plugin-transform-dotall-regex": "^7.6.2", - "@babel/plugin-transform-duplicate-keys": "^7.5.0", - "@babel/plugin-transform-exponentiation-operator": "^7.2.0", - "@babel/plugin-transform-for-of": "^7.4.4", - "@babel/plugin-transform-function-name": "^7.4.4", - "@babel/plugin-transform-literals": "^7.2.0", - "@babel/plugin-transform-member-expression-literals": "^7.2.0", - "@babel/plugin-transform-modules-amd": "^7.5.0", - "@babel/plugin-transform-modules-commonjs": "^7.6.0", - "@babel/plugin-transform-modules-systemjs": "^7.5.0", - "@babel/plugin-transform-modules-umd": "^7.2.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.6.3", - "@babel/plugin-transform-new-target": "^7.4.4", - "@babel/plugin-transform-object-super": "^7.5.5", - "@babel/plugin-transform-parameters": "^7.4.4", - "@babel/plugin-transform-property-literals": "^7.2.0", - "@babel/plugin-transform-regenerator": "^7.4.5", - "@babel/plugin-transform-reserved-words": "^7.2.0", - "@babel/plugin-transform-shorthand-properties": "^7.2.0", - "@babel/plugin-transform-spread": "^7.6.2", - "@babel/plugin-transform-sticky-regex": "^7.2.0", - "@babel/plugin-transform-template-literals": "^7.4.4", - "@babel/plugin-transform-typeof-symbol": "^7.2.0", - "@babel/plugin-transform-unicode-regex": "^7.6.2", - "@babel/types": "^7.6.3", - "browserslist": "^4.6.0", - "core-js-compat": "^3.1.1", - "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", - "semver": "^5.5.0" - } - }, - "@babel/template": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz", - "integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.6.0", - "@babel/types": "^7.6.0" - } - }, - "@babel/traverse": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.3.tgz", - "integrity": "sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.3", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.6.3", - "@babel/types": "^7.6.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/types": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", - "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@hapi/accept": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.1.tgz", - "integrity": "sha512-fMr4d7zLzsAXo28PRRQPXR1o2Wmu+6z+VY1UzDp0iFo13Twj8WePakwXBiqn3E1aAlTpSNzCXdnnQXFhst8h8Q==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", + "dev": true, "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@hapi/ammo": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@hapi/ammo/-/ammo-5.0.1.tgz", - "integrity": "sha512-FbCNwcTbnQP4VYYhLNGZmA76xb2aHg9AMPiy18NZyWMG310P5KdFGyA9v2rm5ujrIny77dEEIkMOwl0Xv+fSSA==", - "requires": { - "@hapi/hoek": "9.x.x" - }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz", + "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==", + "dev": true, "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@hapi/b64": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz", - "integrity": "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==", - "requires": { - "@hapi/hoek": "9.x.x" - }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", + "dev": true, "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@hapi/boom": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.0.tgz", - "integrity": "sha512-4nZmpp4tXbm162LaZT45P7F7sgiem8dwAh2vHWT6XX24dozNjGMg6BvKCRvtCUcmcXqeMIUqWN8Rc5X8yKuROQ==", - "requires": { - "@hapi/hoek": "9.x.x" - }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz", + "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==", + "dev": true, "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@hapi/bossy": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/bossy/-/bossy-5.1.0.tgz", - "integrity": "sha512-sVZC6GucPaG2Pugldj476ZtGevkFCOoJSf4Ay9HJXxAOjyyBhb0AnxtxYdrf1tvTBV2hAMytV3RASQXudB3rnQ==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/bounce": "2.x.x", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", + "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz", + "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz", + "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", + "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", + "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", + "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz", + "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz", + "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz", + "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz", + "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.10.tgz", + "integrity": "sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", + "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz", + "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", + "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", + "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", + "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.10.tgz", + "integrity": "sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.10", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.10", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.5", + "@babel/plugin-transform-classes": "^7.22.6", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.10", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.5", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.5", + "@babel/plugin-transform-for-of": "^7.22.5", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.5", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-modules-systemjs": "^7.22.5", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", + "@babel/plugin-transform-numeric-separator": "^7.22.5", + "@babel/plugin-transform-object-rest-spread": "^7.22.5", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.10", + "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.5", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.22.10", + "babel-plugin-polyfill-corejs2": "^0.4.5", + "babel-plugin-polyfill-corejs3": "^0.8.3", + "babel-plugin-polyfill-regenerator": "^0.5.2", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.10.tgz", + "integrity": "sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.10.tgz", + "integrity": "sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.10", + "@babel/generator": "^7.22.10", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.10", + "@babel/types": "^7.22.10", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.10.tgz", + "integrity": "sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@eslint/eslintrc/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@hapi/accept": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz", + "integrity": "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==", + "dependencies": { + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "node_modules/@hapi/ammo": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@hapi/ammo/-/ammo-5.0.1.tgz", + "integrity": "sha512-FbCNwcTbnQP4VYYhLNGZmA76xb2aHg9AMPiy18NZyWMG310P5KdFGyA9v2rm5ujrIny77dEEIkMOwl0Xv+fSSA==", + "dependencies": { + "@hapi/hoek": "9.x.x" + } + }, + "node_modules/@hapi/b64": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz", + "integrity": "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==", + "dependencies": { + "@hapi/hoek": "9.x.x" + } + }, + "node_modules/@hapi/boom": { + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz", + "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==", + "dependencies": { + "@hapi/hoek": "9.x.x" + } + }, + "node_modules/@hapi/bossy": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@hapi/bossy/-/bossy-5.1.1.tgz", + "integrity": "sha512-3LP4qNJ0GZqZNV9lpIQLqhnT6x+hq3QwJ29iEXX/Yk36v2EegD9SylN//M/BpJ9Ikzb/XXAxCryRTrVgTgduew==", + "dependencies": { + "@hapi/boom": "9.x.x", + "@hapi/bounce": "2.x.x", "@hapi/bourne": "2.x.x", "@hapi/hoek": "9.x.x", "@hapi/validate": "1.x.x" - }, - "dependencies": { - "@hapi/bourne": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", - "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==" - }, - "@hapi/hoek": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.1.tgz", - "integrity": "sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw==" - } } }, - "@hapi/bounce": { + "node_modules/@hapi/bounce": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@hapi/bounce/-/bounce-2.0.0.tgz", "integrity": "sha512-JesW92uyzOOyuzJKjoLHM1ThiOvHPOLDHw01YV8yh5nCso7sDwJho1h0Ad2N+E62bZyz46TG3xhAi/78Gsct6A==", - "requires": { + "dependencies": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x" - }, - "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } } }, - "@hapi/call": { + "node_modules/@hapi/bourne": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.1.0.tgz", + "integrity": "sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q==" + }, + "node_modules/@hapi/call": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/@hapi/call/-/call-8.0.1.tgz", "integrity": "sha512-bOff6GTdOnoe5b8oXRV3lwkQSb/LAWylvDMae6RgEWWntd0SHtkYbQukDHKlfaYtVnSAgIavJ0kqszF/AIBb6g==", - "requires": { + "dependencies": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x" - }, - "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } } }, - "@hapi/catbox": { + "node_modules/@hapi/catbox": { "version": "11.1.1", "resolved": "https://registry.npmjs.org/@hapi/catbox/-/catbox-11.1.1.tgz", "integrity": "sha512-u/8HvB7dD/6X8hsZIpskSDo4yMKpHxFd7NluoylhGrL6cUfYxdQPnvUp9YU2C6F9hsyBVLGulBd9vBN1ebfXOQ==", - "requires": { + "dependencies": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x", "@hapi/podium": "4.x.x", "@hapi/validate": "1.x.x" - }, - "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } } }, - "@hapi/catbox-memory": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/catbox-memory/-/catbox-memory-5.0.0.tgz", - "integrity": "sha512-ByuxVJPHNaXwLzbBv4GdTr6ccpe1nG+AfYt+8ftDWEJY7EWBWzD+Klhy5oPTDGzU26pNUh1e7fcYI1ILZRxAXQ==", - "requires": { + "node_modules/@hapi/catbox-memory": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@hapi/catbox-memory/-/catbox-memory-5.0.1.tgz", + "integrity": "sha512-QWw9nOYJq5PlvChLWV8i6hQHJYfvdqiXdvTupJFh0eqLZ64Xir7mKNi96d5/ZMUAqXPursfNDIDxjFgoEDUqeQ==", + "dependencies": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x" - }, - "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } } }, - "@hapi/code": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@hapi/code/-/code-8.0.2.tgz", - "integrity": "sha512-JG3yfRMU/acl48i14YAwucyf12wtIyyfEJ4PyL/qZxDd3ltjqCVIlZmOSCazxFjtDZTfMx6TLVcDU5XWvP8tNQ==", + "node_modules/@hapi/code": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@hapi/code/-/code-8.0.7.tgz", + "integrity": "sha512-4FTubqMVwbeMmmpxtmpdDz8xo24JQydAGNneGUDkj3lV6H7zUBPrufUvajFlTMZC7MdNV+apZImNJUIZt1gD/Q==", "dev": true, - "requires": { - "@hapi/hoek": "9.x.x" - }, "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==", - "dev": true - } + "@hapi/hoek": "9.x.x" } }, - "@hapi/content": { + "node_modules/@hapi/content": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/@hapi/content/-/content-5.0.2.tgz", "integrity": "sha512-mre4dl1ygd4ZyOH3tiYBrOUBzV7Pu/EOs8VLGf58vtOEECWed8Uuw6B4iR9AN/8uQt42tB04qpVaMyoMQh0oMw==", - "requires": { + "dependencies": { "@hapi/boom": "9.x.x" } }, - "@hapi/cryptiles": { + "node_modules/@hapi/cryptiles": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz", "integrity": "sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==", - "requires": { + "dependencies": { "@hapi/boom": "9.x.x" + }, + "engines": { + "node": ">=12.0.0" } }, - "@hapi/eslint-config-hapi": { + "node_modules/@hapi/eslint-config-hapi": { "version": "13.0.2", "resolved": "https://registry.npmjs.org/@hapi/eslint-config-hapi/-/eslint-config-hapi-13.0.2.tgz", "integrity": "sha512-LtTYBSWdBmv9JfMWAtXfJ4nm8TURPdqWY2ER9cfQxqPEF1jrfv5T4GmPE/GmFy4WJs+s13j8DKsWifOAxgGLRw==", - "dev": true - }, - "@hapi/eslint-plugin": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/eslint-plugin/-/eslint-plugin-5.0.0.tgz", - "integrity": "sha512-a3K7cVhxhcN3NJv+UCFeOS8RO+mFtnpgbtkDIPplOdBQoYEuAUCePooZKJuYu07N5z/QjmsSQz83Xx/hHlfJDA==", - "dev": true + "deprecated": "This module has moved and is now available as part of @hapi/eslint-plugin. Please update your dependencies as this version is no longer maintained and may contain bugs and security issues.", + "dev": true, + "peerDependencies": { + "@hapi/eslint-plugin-hapi": "4.x.x" + } }, - "@hapi/eslint-plugin-hapi": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@hapi/eslint-plugin-hapi/-/eslint-plugin-hapi-4.3.4.tgz", - "integrity": "sha512-sm7dg6m6dPjRCx1DDaTK7Ij7YjZMJsdscZOn4dAPvWekhEPYSRoQRXId64iVVjxubuZELzcIyUoNj9koyVx4Sg==", + "node_modules/@hapi/eslint-plugin": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/eslint-plugin/-/eslint-plugin-5.1.0.tgz", + "integrity": "sha512-D0OvhsjbWW4lhuw0LqERl8vqCIRMnePy9XGYhkf7krzwqzYNEAcBFCafiFsd0gIF6QiQj3O1vYmshRVFZMXdwQ==", "dev": true, - "requires": { - "@hapi/rule-capitalize-modules": "1.x.x", - "@hapi/rule-for-loop": "1.x.x", - "@hapi/rule-no-arrowception": "1.x.x", - "@hapi/rule-no-var": "1.x.x", - "@hapi/rule-scope-start": "2.x.x" + "peerDependencies": { + "@babel/core": "^7.14.3", + "@babel/eslint-parser": "^7.14.3" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@babel/eslint-parser": { + "optional": true + } } }, - "@hapi/file": { + "node_modules/@hapi/eslint-plugin-hapi": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@hapi/eslint-plugin-hapi/-/eslint-plugin-hapi-4.3.6.tgz", + "integrity": "sha512-fmoLInkoAhuBPrV0OCGz9+DLq0PyarKxCp5s4ytNxDgZy5g33xVZpA1v0NCkQcQxTboP1AzbG2SLS8zAXjIWrQ==", + "deprecated": "This module has moved and is now available at @hapi/eslint-plugin. Please update your dependencies as this version is no longer maintained and may contain bugs and security issues.", + "dev": true + }, + "node_modules/@hapi/file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@hapi/file/-/file-2.0.0.tgz", "integrity": "sha512-WSrlgpvEqgPWkI18kkGELEZfXr0bYLtr16iIN4Krh9sRnzBZN6nnWxHFxtsnP684wueEySBbXPDg/WfA9xJdBQ==" }, - "@hapi/glue": { + "node_modules/@hapi/glue": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@hapi/glue/-/glue-8.0.0.tgz", "integrity": "sha512-dqAQ401MTDpTUnPUtUZ/RIJOE+ROTjhq1YgPeuAVMYpoYlh55PNNJq6YBDBlye5VcF9uYtL1h3VnRMZz2NSlXw==", - "requires": { + "dependencies": { "@hapi/hapi": "20.x.x", "@hapi/hoek": "9.x.x", "@hapi/validate": "1.x.x" - }, - "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } } }, - "@hapi/hapi": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-20.0.0.tgz", - "integrity": "sha512-Wh0tIDFsl7nemU2JQYW4zZVr9XkpuZ1eM3yaX8tzaYdaYXon8QeB5NzrTNQY3R1/+fO7amQUrOoLLNPRwIZfgw==", - "requires": { + "node_modules/@hapi/hapi": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-20.3.0.tgz", + "integrity": "sha512-zvPSRvaQyF3S6Nev9aiAzko2/hIFZmNSJNcs07qdVaVAvj8dGJSV4fVUuQSnufYJAGiSau+U5LxMLhx79se5WA==", + "dependencies": { "@hapi/accept": "^5.0.1", "@hapi/ammo": "^5.0.1", - "@hapi/boom": "9.x.x", - "@hapi/bounce": "2.x.x", - "@hapi/call": "8.x.x", + "@hapi/boom": "^9.1.0", + "@hapi/bounce": "^2.0.0", + "@hapi/call": "^8.0.0", "@hapi/catbox": "^11.1.1", - "@hapi/catbox-memory": "5.x.x", + "@hapi/catbox-memory": "^5.0.0", "@hapi/heavy": "^7.0.1", - "@hapi/hoek": "9.x.x", - "@hapi/mimos": "5.x.x", + "@hapi/hoek": "^9.0.4", + "@hapi/mimos": "^6.0.0", "@hapi/podium": "^4.1.1", - "@hapi/shot": "^5.0.1", - "@hapi/somever": "3.x.x", + "@hapi/shot": "^5.0.5", + "@hapi/somever": "^3.0.0", "@hapi/statehood": "^7.0.3", - "@hapi/subtext": "^7.0.3", - "@hapi/teamwork": "5.x.x", - "@hapi/topo": "5.x.x", - "@hapi/validate": "^1.1.0" + "@hapi/subtext": "^7.1.0", + "@hapi/teamwork": "^5.1.0", + "@hapi/topo": "^5.0.0", + "@hapi/validate": "^1.1.1" }, - "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - }, - "@hapi/topo": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", - "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - } + "engines": { + "node": ">=12.0.0" } }, - "@hapi/heavy": { + "node_modules/@hapi/heavy": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/@hapi/heavy/-/heavy-7.0.1.tgz", "integrity": "sha512-vJ/vzRQ13MtRzz6Qd4zRHWS3FaUc/5uivV2TIuExGTM9Qk+7Zzqj0e2G7EpE6KztO9SalTbiIkTh7qFKj/33cA==", - "requires": { + "dependencies": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x", "@hapi/validate": "1.x.x" - }, - "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } } }, - "@hapi/hoek": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", - "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" }, - "@hapi/inert": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@hapi/inert/-/inert-6.0.2.tgz", - "integrity": "sha512-cq0a8jstkLW1+oJaw4jp52PZBEkVbX9d0YDy5aOs3rOKYSjpzs2nQBahnCHEMchOrOSUffLpE+IDoivYHcx8uA==", - "requires": { + "node_modules/@hapi/inert": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/@hapi/inert/-/inert-6.0.5.tgz", + "integrity": "sha512-eVAdUVhJLmmXLM/Zt7u5H5Vzazs9GKe4zfPK2b97ePHEfs3g/AQkxHfYQjJqMy11hvyB7a21Z6rBEA0R//dtXw==", + "dependencies": { "@hapi/ammo": "5.x.x", "@hapi/boom": "9.x.x", "@hapi/bounce": "2.x.x", "@hapi/hoek": "9.x.x", "@hapi/validate": "1.x.x", - "lru-cache": "5.x.x" - }, + "lru-cache": "^6.0.0" + } + }, + "node_modules/@hapi/inert/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "@hapi/iron": { + "node_modules/@hapi/inert/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/@hapi/iron": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz", "integrity": "sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==", - "requires": { + "dependencies": { "@hapi/b64": "5.x.x", "@hapi/boom": "9.x.x", "@hapi/bourne": "2.x.x", "@hapi/cryptiles": "5.x.x", "@hapi/hoek": "9.x.x" - }, - "dependencies": { - "@hapi/bourne": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", - "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==" - }, - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } } }, - "@hapi/lab": { - "version": "24.1.0", - "resolved": "https://registry.npmjs.org/@hapi/lab/-/lab-24.1.0.tgz", - "integrity": "sha512-/Y4wXRk8dmlTW0U8mFdnJAjNBAv/jEb0X/qXxY3nlVRnSI/BC2T6csipxEC+XNs41xgVYGbXh44ShpiYVY49NQ==", + "node_modules/@hapi/lab": { + "version": "24.7.1", + "resolved": "https://registry.npmjs.org/@hapi/lab/-/lab-24.7.1.tgz", + "integrity": "sha512-Coc7/VXrIw4kQc3GikhZdz1OBUk7pBnQ+xxKYGyhDYZiQU0WXACicMYtRdBU5sx+3+bZjLT8hai/yBkkHaeMiQ==", "dev": true, - "requires": { + "dependencies": { + "@babel/core": "^7.14.3", + "@babel/eslint-parser": "^7.14.3", "@hapi/bossy": "5.x.x", - "@hapi/eslint-plugin": "5.x.x", + "@hapi/eslint-plugin": "^5.1.0", "@hapi/hoek": "9.x.x", - "babel-eslint": "10.x.x", "diff": "4.x.x", "eslint": "7.x.x", "find-rc": "4.x.x", - "globby": "10.x.x", + "globby": "^11.1.0", "handlebars": "4.x.x", + "mo-walk": "^1.2.0", "seedrandom": "3.x.x", "source-map": "0.7.x", "source-map-support": "0.5.x", - "supports-color": "7.x.x", + "supports-color": "^8.1.1", "will-call": "1.x.x" }, - "dependencies": { - "@hapi/bossy": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/bossy/-/bossy-5.1.0.tgz", - "integrity": "sha512-sVZC6GucPaG2Pugldj476ZtGevkFCOoJSf4Ay9HJXxAOjyyBhb0AnxtxYdrf1tvTBV2hAMytV3RASQXudB3rnQ==", - "dev": true, - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/bounce": "2.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/bourne": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", - "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==", - "dev": true - }, - "@hapi/hoek": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.1.tgz", - "integrity": "sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } + "bin": { + "lab": "bin/lab" + }, + "peerDependencies": { + "@hapi/eslint-plugin": "^5.1.0", + "typescript": ">=3.6.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true } } }, - "@hapi/mimos": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/mimos/-/mimos-5.0.0.tgz", - "integrity": "sha512-EVS6wJYeE73InTlPWt+2e3Izn319iIvffDreci3qDNT+t3lA5ylJ0/SoTaID8e0TPNUkHUSsgJZXEmLHvoYzrA==", - "requires": { + "node_modules/@hapi/mimos": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@hapi/mimos/-/mimos-6.0.0.tgz", + "integrity": "sha512-Op/67tr1I+JafN3R3XN5DucVSxKRT/Tc+tUszDwENoNpolxeXkhrJ2Czt6B6AAqrespHoivhgZBWYSuANN9QXg==", + "dependencies": { "@hapi/hoek": "9.x.x", "mime-db": "1.x.x" - }, - "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } } }, - "@hapi/nigel": { + "node_modules/@hapi/nigel": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@hapi/nigel/-/nigel-4.0.2.tgz", "integrity": "sha512-ht2KoEsDW22BxQOEkLEJaqfpoKPXxi7tvabXy7B/77eFtOyG5ZEstfZwxHQcqAiZhp58Ae5vkhEqI03kawkYNw==", - "requires": { + "dependencies": { "@hapi/hoek": "^9.0.4", "@hapi/vise": "^4.0.0" }, - "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } + "engines": { + "node": ">=12.0.0" } }, - "@hapi/pez": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@hapi/pez/-/pez-5.0.3.tgz", - "integrity": "sha512-mpikYRJjtrbJgdDHG/H9ySqYqwJ+QU/D7FXsYciS9P7NYBXE2ayKDAy3H0ou6CohOCaxPuTV4SZ0D936+VomHA==", - "requires": { + "node_modules/@hapi/pez": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/pez/-/pez-5.1.0.tgz", + "integrity": "sha512-YfB0btnkLB3lb6Ry/1KifnMPBm5ZPfaAHWFskzOMAgDgXgcBgA+zjpIynyEiBfWEz22DBT8o1e2tAaBdlt8zbw==", + "dependencies": { "@hapi/b64": "5.x.x", "@hapi/boom": "9.x.x", "@hapi/content": "^5.0.2", "@hapi/hoek": "9.x.x", "@hapi/nigel": "4.x.x" - }, - "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } } }, - "@hapi/podium": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-4.1.1.tgz", - "integrity": "sha512-jh7a6+5Z4FUWzx8fgmxjaAa1DTBu+Qfg+NbVdo0f++rE5DgsVidUYrLDp3db65+QjDLleA2MfKQXkpT8ylBDXA==", - "requires": { + "node_modules/@hapi/podium": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-4.1.3.tgz", + "integrity": "sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g==", + "dependencies": { "@hapi/hoek": "9.x.x", "@hapi/teamwork": "5.x.x", "@hapi/validate": "1.x.x" - }, - "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } } }, - "@hapi/rule-capitalize-modules": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@hapi/rule-capitalize-modules/-/rule-capitalize-modules-1.2.1.tgz", - "integrity": "sha512-XduBSQQehgY/PJX/Ud2H5UdVyNVEC3QiU00vOHWvpn+kbH1co2dmzpu2JEGGxKmdGHjm8jdDkrlqVxGFXHAuhQ==", - "dev": true - }, - "@hapi/rule-for-loop": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@hapi/rule-for-loop/-/rule-for-loop-1.2.1.tgz", - "integrity": "sha512-9Y2yjNpmhntryViPTb6JlTCqma9fF+H0lCtjvlWA0La/ckxPSzXfwh9kgroyjQ3mJiwKDUYboqC4/BK6L5DFUg==", - "dev": true - }, - "@hapi/rule-no-arrowception": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@hapi/rule-no-arrowception/-/rule-no-arrowception-1.1.2.tgz", - "integrity": "sha512-NV6IpfcUpI6w/6oR2oBFaBUoOGC3j3xzfXq7ZciBnmOyReqwuSiyvwLb9SeSomei/n1LHaVdnIXJnMD9IAma2Q==", - "dev": true - }, - "@hapi/rule-no-var": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@hapi/rule-no-var/-/rule-no-var-1.1.4.tgz", - "integrity": "sha512-u0gtMRd9uxlmmew3H5pBZJe1D64dTz5yhPWU3UcurOwZGTbGYU2PAUpjxE0TOaeCRDW+tL5Y/9f7637P2vqQSA==", - "dev": true - }, - "@hapi/rule-scope-start": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@hapi/rule-scope-start/-/rule-scope-start-2.2.0.tgz", - "integrity": "sha512-n0adld0osaYNXlus/64dCN0GlkMvmwuJfkpM0OtrA2U7x2Iu1XoHV6Lmne3C+9gM8X/xLUviYLoTCOC7IW8RYg==", - "dev": true - }, - "@hapi/shot": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@hapi/shot/-/shot-5.0.3.tgz", - "integrity": "sha512-qbccs8KL4YSL9x0J/17Z6Udmtrrn32ieGbrCW8iivl2ha8YzlDy9Wvv1pFKh3mzbTsomWHGLF3UsKcQFk/BqPg==", - "requires": { + "node_modules/@hapi/shot": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@hapi/shot/-/shot-5.0.5.tgz", + "integrity": "sha512-x5AMSZ5+j+Paa8KdfCoKh+klB78otxF+vcJR/IoN91Vo2e5ulXIW6HUsFTCU+4W6P/Etaip9nmdAx2zWDimB2A==", + "dependencies": { "@hapi/hoek": "9.x.x", "@hapi/validate": "1.x.x" - }, - "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } } }, - "@hapi/somever": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@hapi/somever/-/somever-3.0.0.tgz", - "integrity": "sha512-Upw/kmKotC9iEmK4y047HMYe4LDKsE5NWfjgX41XNKmFvxsQL7OiaCWVhuyyhU0ShDGBfIAnCH8jZr49z/JzZA==", - "requires": { + "node_modules/@hapi/somever": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@hapi/somever/-/somever-3.0.1.tgz", + "integrity": "sha512-4ZTSN3YAHtgpY/M4GOtHUXgi6uZtG9nEZfNI6QrArhK0XN/RDVgijlb9kOmXwCR5VclDSkBul9FBvhSuKXx9+w==", + "dependencies": { "@hapi/bounce": "2.x.x", "@hapi/hoek": "9.x.x" - }, - "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } } }, - "@hapi/statehood": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@hapi/statehood/-/statehood-7.0.3.tgz", - "integrity": "sha512-pYB+pyCHkf2Amh67QAXz7e/DN9jcMplIL7Z6N8h0K+ZTy0b404JKPEYkbWHSnDtxLjJB/OtgElxocr2fMH4G7w==", - "requires": { + "node_modules/@hapi/statehood": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@hapi/statehood/-/statehood-7.0.4.tgz", + "integrity": "sha512-Fia6atroOVmc5+2bNOxF6Zv9vpbNAjEXNcUbWXavDqhnJDlchwUUwKS5LCi5mGtCTxRhUKKHwuxuBZJkmLZ7fw==", + "dependencies": { "@hapi/boom": "9.x.x", "@hapi/bounce": "2.x.x", "@hapi/bourne": "2.x.x", @@ -1363,185 +2193,132 @@ "@hapi/hoek": "9.x.x", "@hapi/iron": "6.x.x", "@hapi/validate": "1.x.x" - }, - "dependencies": { - "@hapi/bourne": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", - "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==" - }, - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } } }, - "@hapi/subtext": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@hapi/subtext/-/subtext-7.0.3.tgz", - "integrity": "sha512-CekDizZkDGERJ01C0+TzHlKtqdXZxzSWTOaH6THBrbOHnsr3GY+yiMZC+AfNCypfE17RaIakGIAbpL2Tk1z2+A==", - "requires": { + "node_modules/@hapi/subtext": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@hapi/subtext/-/subtext-7.1.0.tgz", + "integrity": "sha512-n94cU6hlvsNRIpXaROzBNEJGwxC+HA69q769pChzej84On8vsU14guHDub7Pphr/pqn5b93zV3IkMPDU5AUiXA==", + "dependencies": { "@hapi/boom": "9.x.x", "@hapi/bourne": "2.x.x", "@hapi/content": "^5.0.2", "@hapi/file": "2.x.x", "@hapi/hoek": "9.x.x", - "@hapi/pez": "^5.0.1", + "@hapi/pez": "^5.1.0", "@hapi/wreck": "17.x.x" - }, - "dependencies": { - "@hapi/bourne": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", - "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==" - }, - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } } }, - "@hapi/teamwork": { + "node_modules/@hapi/teamwork": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-5.1.1.tgz", + "integrity": "sha512-1oPx9AE5TIv+V6Ih54RP9lTZBso3rP8j4Xhb6iSVwPXtAM+sDopl5TFMv5Paw73UnpZJ9gjcrTE1BXrWt9eQrg==", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@hapi/topo": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-5.1.0.tgz", - "integrity": "sha512-llqoQTrAJDTXxG3c4Kz/uzhBS1TsmSBa/XG5SPcVXgmffHE1nFtyLIK0hNJHCB3EuBKT84adzd1hZNY9GJLWtg==" + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } }, - "@hapi/validate": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@hapi/validate/-/validate-1.1.2.tgz", - "integrity": "sha512-ojg3iE/haKh8aCZFObkOzuJ1vQ8NP+EiuibliJKe01IMstBPXQc4Xl08+8zqAL+iZSZKp1TaWdwaNSzq8HIMKA==", - "requires": { + "node_modules/@hapi/validate": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@hapi/validate/-/validate-1.1.3.tgz", + "integrity": "sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA==", + "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0" - }, - "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - }, - "@hapi/topo": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", - "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - } } }, - "@hapi/vise": { + "node_modules/@hapi/vise": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@hapi/vise/-/vise-4.0.0.tgz", "integrity": "sha512-eYyLkuUiFZTer59h+SGy7hUm+qE9p+UemePTHLlIWppEd+wExn3Df5jO04bFQTm7nleF5V8CtuYQYb+VFpZ6Sg==", - "requires": { - "@hapi/hoek": "9.x.x" - }, "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } + "@hapi/hoek": "9.x.x" } }, - "@hapi/vision": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@hapi/vision/-/vision-6.0.1.tgz", - "integrity": "sha512-xv4PwmhbXCLzDfojZ7l4+P/YynBhMInV8GtLPH4gB74prhwOl8lGcJxxK8V9rf1aMH/vonM5yVGd9FuoA9sT0A==", - "requires": { + "node_modules/@hapi/vision": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@hapi/vision/-/vision-6.1.0.tgz", + "integrity": "sha512-ll0zJ13xDxCYIWvC1aq/8srK0bTXfqZYGT+YoTi/fS42gYYJ3dnvmS35r8T8XXtJ6F6cmya8G2cRlMR/z11LQw==", + "dependencies": { "@hapi/boom": "9.x.x", "@hapi/bounce": "2.x.x", "@hapi/hoek": "9.x.x", "@hapi/validate": "1.x.x" - }, - "dependencies": { - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } } }, - "@hapi/wreck": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/@hapi/wreck/-/wreck-17.0.0.tgz", - "integrity": "sha512-d8lqCinbKyDByn7GzJDRDbitddhIEydNm44UcAMejfhEH3o4IYvKYq6K8cAqXbilXPuvZc0ErlUOg9SDdgRtMw==", - "requires": { + "node_modules/@hapi/wreck": { + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@hapi/wreck/-/wreck-17.2.0.tgz", + "integrity": "sha512-pJ5kjYoRPYDv+eIuiLQqhGon341fr2bNIYZjuotuPJG/3Ilzr/XtI+JAp0A86E2bYfsS3zBPABuS2ICkaXFT8g==", + "dependencies": { "@hapi/boom": "9.x.x", "@hapi/bourne": "2.x.x", "@hapi/hoek": "9.x.x" - }, - "dependencies": { - "@hapi/bourne": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", - "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==" - }, - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - } } }, - "@hapipal/confidence": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@hapipal/confidence/-/confidence-6.0.0.tgz", - "integrity": "sha512-Eupr6MQV+FEFWv7Ttto3hxsYvQtJhcIDyzzImhCbIv3jJNWURTFhtttCNfZaWkNaLdfoVEtg8wsIEIhx2/19Qw==", - "requires": { + "node_modules/@hapipal/confidence": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@hapipal/confidence/-/confidence-6.0.2.tgz", + "integrity": "sha512-WNR+s4rNyyRpyBDr9bFYjLdnD+C2gOI2Wl1CiIjBUbXQrYCMUr3289wi4JKsd6khgMWQbRyifAtG+yvDd8v1pg==", + "dependencies": { "@hapi/bossy": ">=5.1.0 <6", "@hapi/bourne": "2.x.x", "@hapi/hoek": "9.x.x", "joi": "17.x.x" }, - "dependencies": { - "@hapi/bourne": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", - "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==" - }, - "@hapi/hoek": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.1.tgz", - "integrity": "sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw==" - } + "bin": { + "confidence": "bin/confidence" } }, - "@hapipal/haute-couture": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@hapipal/haute-couture/-/haute-couture-4.0.0.tgz", - "integrity": "sha512-iYUguasafL+NSmikQeOCy8vRh8nFXK+IMK1FaDWtIjVeIkmznQIYFx/FIp01f+iBBaiTxTyjg/A7woq5jV6FxA==", - "requires": { - "@hapi/hoek": "9.x.x", - "@hapi/topo": "5.x.x", - "haute": ">=3.1.x <4", - "parent-module": "2.x.x" - }, + "node_modules/@hapipal/haute-couture": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@hapipal/haute-couture/-/haute-couture-4.3.1.tgz", + "integrity": "sha512-JrAxhvRv0vlBSIV18rxED4d58IjdcYruLKO7TJLsP4ppzP8cufNzwAS2IfkXz0N6GT/1upQQck4CqUDe/6/EDg==", "dependencies": { - "@hapi/hoek": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.1.tgz", - "integrity": "sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw==" + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "haute": "^4.0.0", + "mo-walk": "^1.1.0", + "parent-module": "^2.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "@hapi/hapi": ">=19 <22", + "@hapi/nes": ">=11", + "@hapi/vision": ">=5", + "@hapipal/schmervice": ">=2", + "@hapipal/schwifty": ">=6" + }, + "peerDependenciesMeta": { + "@hapi/nes": { + "optional": true + }, + "@hapi/vision": { + "optional": true }, - "@hapi/topo": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", - "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", - "requires": { - "@hapi/hoek": "^9.0.0" - } + "@hapipal/schmervice": { + "optional": true + }, + "@hapipal/schwifty": { + "optional": true } } }, - "@hapipal/hpal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@hapipal/hpal/-/hpal-3.0.0.tgz", - "integrity": "sha512-NkNGbRkK38fp+wqVnwX+3QPh6J/wncORyd/zdHb12sQVwTlvNHWDCqFRCzTIU1xi2ocP8Be23KyuWJIiho+GMw==", + "node_modules/@hapipal/hpal": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@hapipal/hpal/-/hpal-3.1.0.tgz", + "integrity": "sha512-Kfe0hnFMYzk+Uld9SYKuRGtUu5Ftb+WqpZSBEXYNDNMp/8M+NY4QjWhP5FBSXKpA1p1GFAV5roqSCkGDhogWGg==", "dev": true, - "requires": { + "dependencies": { "@hapi/bossy": "5.x.x", "@hapi/bounce": "2.x.x", "@hapi/somever": "3.x.x", @@ -1552,1215 +2329,1003 @@ "marked": "1.x.x", "marked-terminal": "4.x.x", "mkdirp": "1.x.x", + "mo-walk": ">=1.1.0 <2", "pkg-dir": "5.x.x", "pluralize": "8.x.x", "supports-color": "7.x.x" }, - "dependencies": { - "@hapi/bossy": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/bossy/-/bossy-5.1.0.tgz", - "integrity": "sha512-sVZC6GucPaG2Pugldj476ZtGevkFCOoJSf4Ay9HJXxAOjyyBhb0AnxtxYdrf1tvTBV2hAMytV3RASQXudB3rnQ==", - "dev": true, - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/bounce": "2.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/bourne": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", - "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==", - "dev": true - }, - "@hapi/hoek": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.1.tgz", - "integrity": "sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "marked": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/marked/-/marked-1.2.9.tgz", - "integrity": "sha512-H8lIX2SvyitGX+TRdtS06m1jHMijKN/XjfH6Ooii9fvxMlh8QdqBfBDkGUpMWH2kQNrtixjzYUa3SH8ROTgRRw==", - "dev": true - }, - "marked-terminal": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-4.1.0.tgz", - "integrity": "sha512-5KllfAOW02WS6hLRQ7cNvGOxvKW1BKuXELH4EtbWfyWgxQhROoMxEvuQ/3fTgkNjledR0J48F4HbapvYp1zWkQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.3.1", - "cardinal": "^2.1.1", - "chalk": "^4.0.0", - "cli-table": "^0.3.1", - "node-emoji": "^1.10.0", - "supports-hyperlinks": "^2.1.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", - "dev": true, - "requires": { - "find-up": "^5.0.0" - } - }, - "pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } + "bin": { + "hpal": "bin/hpal" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "ts-node": "10.x.x", + "typescript": "*" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true }, - "supports-hyperlinks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", - "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } + "typescript": { + "optional": true } } }, - "@hapipal/hpal-debug": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapipal/hpal-debug/-/hpal-debug-2.0.0.tgz", - "integrity": "sha512-G26pENyhYB4ccWtaxTLN/C6VhkLwiUtH72Nb7JudvcOXjc8bfqv9h500K4jSWXu4h0Y0D2zbdrAetPozxVcDpQ==", + "node_modules/@hapipal/hpal-debug": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@hapipal/hpal-debug/-/hpal-debug-2.1.0.tgz", + "integrity": "sha512-7piG3Nr/Q1Xh1A7rJ6F+9hFMQA7jOOKV2K+YiURuq7qY5lYkgjfAM4TJmnALxjKMpUA/YJnqncNXcdFvJpjHYQ==", "dev": true, - "requires": { - "@hapi/bossy": "5.x.x", - "@hapipal/toys": "3.x.x", - "cli-table": "0.3.x", - "word-wrap": "1.x.x" - }, - "dependencies": { - "@hapi/bossy": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/bossy/-/bossy-5.1.0.tgz", - "integrity": "sha512-sVZC6GucPaG2Pugldj476ZtGevkFCOoJSf4Ay9HJXxAOjyyBhb0AnxtxYdrf1tvTBV2hAMytV3RASQXudB3rnQ==", - "dev": true, - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/bounce": "2.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/bourne": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", - "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==", - "dev": true - }, - "@hapi/hoek": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.1.tgz", - "integrity": "sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw==", - "dev": true + "dependencies": { + "@hapi/bossy": "^5.0.0", + "@hapipal/toys": "^3.2.0", + "cli-table": "^0.3.0", + "word-wrap": "^1.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "@hapi/hapi": ">=19 <22", + "joi": ">=17 <18" + }, + "peerDependenciesMeta": { + "joi": { + "optional": true } } }, - "@hapipal/schmervice": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapipal/schmervice/-/schmervice-2.0.0.tgz", - "integrity": "sha512-EmQLVM4MdPXCw1iijqfG0gQXnawYsPypagdEFMo5c0kf637Sjj7x5DjDOMN2Qmce+tIm2Nv70vrSk6qfrJW3qw==", - "requires": { - "@hapi/hoek": "9.x.x" + "node_modules/@hapipal/hpal/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@hapipal/schmervice": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@hapipal/schmervice/-/schmervice-2.1.0.tgz", + "integrity": "sha512-cspf22BtwPFK92V0VQ9bYb0zORDWB/2P/9821Q0BhpIFNSWOJ2cjJarEewZ91tS0wPjP1ViLdLTS1JWPYTWNQg==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + }, + "engines": { + "node": ">=12" }, + "peerDependencies": { + "@hapi/hapi": ">=19 <22" + } + }, + "node_modules/@hapipal/toys": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@hapipal/toys/-/toys-3.2.0.tgz", + "integrity": "sha512-7O8S44mBL1oZZey6nzTbMlGdUCczZUSU+bPZJsrnsduJzptN7sR6M1qBbTfPxKfkW9fOAb7JoE5Sozu98lc82w==", "dependencies": { - "@hapi/hoek": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.1.tgz", - "integrity": "sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw==" + "@hapi/hoek": "^9.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "@hapi/hapi": ">=19 <22" + }, + "peerDependenciesMeta": { + "@hapi/hapi": { + "optional": true } } }, - "@hapipal/toys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@hapipal/toys/-/toys-3.0.0.tgz", - "integrity": "sha512-VhTdbg/mW0RcUgDGjEtKZhwKLXAu9BXK6e6gs3mDH/GbM8TJnn/opMUs4Gp4HmjF2I8Cpk1BlN/1WKfbsZ/RQg==", - "requires": { - "@hapi/hoek": "9.x.x" + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, "dependencies": { - "@hapi/hoek": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.1.tgz", - "integrity": "sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw==" - } + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" } }, - "@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.3", - "run-parallel": "^1.1.9" + "engines": { + "node": ">=6.0.0" } }, - "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, - "@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dev": true, + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.3", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" } }, - "@primer/css": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@primer/css/-/css-15.1.0.tgz", - "integrity": "sha512-UmmfjwA26FhOGBMuAfJQOBeRHz9YUcw7khPtifp7K+VyTDEhLnJPRTdApxtivH69vHTkSJ3rh/W1gWYolrLgVA==", + "node_modules/@primer/css": { + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@primer/css/-/css-15.2.0.tgz", + "integrity": "sha512-/vNDchWrxlXqd6E+SWQcChPHJVzGia9aCaTYoz8O9sJTnUSiTKOgSNCQuOXyUInPruTRSqj+z3MZxayKcTsWhA==", "dev": true, - "requires": { + "dependencies": { "@primer/octicons": "^9.1.1" + }, + "bin": { + "primer-migrate": "bin/primer-migrate" } }, - "@primer/octicons": { + "node_modules/@primer/octicons": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/@primer/octicons/-/octicons-9.6.0.tgz", "integrity": "sha512-B5Wzk5izRXXz0JqEXJkVUtqhCXSpUKgqYkVwegMkp5sziBW+ksd9LPbONlCWyyLODwf9GsI2sBXekR7m+JJDBw==", "dev": true, - "requires": { + "dependencies": { "object-assign": "^4.1.1" } }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" + "node_modules/@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "dependencies": { + "@hapi/hoek": "^9.0.0" } }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" }, - "@types/node": { - "version": "14.14.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.28.tgz", - "integrity": "sha512-lg55ArB+ZiHHbBBttLpzD07akz0QPrZgUODNakeC09i62dnrywr9mFErHuaPlB6I7z+sEbK+IYmplahvplCj2g==", - "dev": true + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", "dev": true }, - "@types/q": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", - "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==", + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", "dev": true }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "node_modules/@types/cors": { + "version": "2.8.13", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", + "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" + "dependencies": { + "@types/node": "*" } }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "node_modules/@types/node": { + "version": "20.5.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.1.tgz", + "integrity": "sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==", + "dev": true + }, + "node_modules/@types/q": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==", "dev": true }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" } }, - "acorn": { + "node_modules/acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, - "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", - "dev": true + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } }, - "acorn-node": { + "node_modules/acorn-node": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", "dev": true, - "requires": { + "dependencies": { "acorn": "^7.0.0", "acorn-walk": "^7.0.0", "xtend": "^4.0.2" } }, - "acorn-walk": { + "node_modules/acorn-walk": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4.0" + } }, - "ajv": { + "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "requires": { + "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" }, - "dependencies": { - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - } + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "alphanum-sort": { + "node_modules/alphanum-sort": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "integrity": "sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ==", "dev": true }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "requires": { - "type-fest": "^0.11.0" - }, "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "ansi-styles": { + "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "requires": { + "dependencies": { "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "ansicolors": { + "node_modules/ansicolors": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", + "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", "dev": true }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "requires": { + "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "argparse": { + "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "requires": { + "dependencies": { "sprintf-js": "~1.0.2" } }, - "array-filter": { + "node_modules/array-buffer-byte-length": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", - "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "array-union": { + "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", - "dev": true + "node_modules/array.prototype.reduce": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz", + "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", + "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", "dev": true, - "requires": { - "safer-buffer": "~2.1.0" + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "asn1.js": { + "node_modules/asn1.js": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.0.0", "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0", "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } } }, - "assert": { + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/assert": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", "dev": true, - "requires": { + "dependencies": { "object-assign": "^4.1.1", "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } } }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", "dev": true }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", + "dev": true, + "dependencies": { + "inherits": "2.0.1" + } }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } }, - "async-each-series": { + "node_modules/async-each-series": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", - "integrity": "sha1-dhfBkXQB/Yykooqtzj266Yr+tDI=", - "dev": true - }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } }, - "at-least-node": { + "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 4.0.0" + } }, - "autoprefixer": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.4.tgz", - "integrity": "sha512-DCCdUQiMD+P/as8m3XkeTUkUKuuRqLGcwD0nll7wevhqoJfMRpJlkFd1+MQh1pvupjiQuip42lc/VFvfUTMSKw==", + "node_modules/autoprefixer": { + "version": "10.4.15", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.15.tgz", + "integrity": "sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==", "dev": true, - "requires": { - "browserslist": "^4.16.1", - "caniuse-lite": "^1.0.30001181", - "colorette": "^1.2.1", - "fraction.js": "^4.0.13", - "normalize-range": "^0.1.2", - "postcss-value-parser": "^4.1.0" - }, - "dependencies": { - "caniuse-lite": { - "version": "1.0.30001187", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001187.tgz", - "integrity": "sha512-w7/EP1JRZ9552CyrThUnay2RkZ1DXxKe/Q2swTC4+LElLh9RRYrL1Z+27LlakB8kzY0fSmHw9mc7XYDUKAKWMA==", - "dev": true + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" }, - "electron-to-chromium": { - "version": "1.3.664", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.664.tgz", - "integrity": "sha512-yb8LrTQXQnh9yhnaIHLk6CYugF/An50T20+X0h++hjjhVfgSp1DGoMSYycF8/aD5eiqS4QwaNhiduFvK8rifRg==" + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" }, - "node-releases": { - "version": "1.1.70", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz", - "integrity": "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==" + { + "type": "github", + "url": "https://github.com/sponsors/ai" } + ], + "dependencies": { + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001520", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "available-typed-arrays": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", - "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true, - "requires": { - "array-filter": "^1.0.0" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", - "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==", - "dev": true + "node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.0" + } }, - "axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", + "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", "dev": true, - "requires": { - "follow-redirects": "^1.10.0" + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", - "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - }, - "dependencies": { - "@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.12.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz", - "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==", - "dev": true - }, - "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - } - } - }, - "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - } - } - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", + "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.2", + "core-js-compat": "^3.31.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", - "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", + "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", "dev": true, - "requires": { - "object.assign": "^4.1.0" + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "babelify": { + "node_modules/babelify": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz", "integrity": "sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } }, - "backo2": { + "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base64-arraybuffer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "base64-js": { + "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "base64id": { + "node_modules/base64id": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } }, - "batch": { + "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bin-v8-flags-filter": { + "node_modules/bin-v8-flags-filter": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/bin-v8-flags-filter/-/bin-v8-flags-filter-1.2.0.tgz", "integrity": "sha512-g8aeYkY7GhyyKRvQMBsJQZjhm2iCX3dKYvfrMpwVR8IxmUGrkpCBFoKbB9Rh0o3sTLCjU/1tFpZ4C7j3f+D+3g==", "dev": true }, - "binary-extensions": { + "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", - "dev": true - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "dev": true, - "requires": { - "inherits": "~2.0.0" + "engines": { + "node": ">=8" } }, - "bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", "dev": true }, - "boolbase": { + "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true }, - "brace-expansion": { + "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "requires": { + "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "braces": { + "node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "requires": { + "dependencies": { "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" } }, - "brorand": { + "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", "dev": true }, - "browser-pack": { + "node_modules/browser-pack": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", "dev": true, - "requires": { - "JSONStream": "^1.0.3", + "dependencies": { "combine-source-map": "~0.8.0", "defined": "^1.0.0", + "JSONStream": "^1.0.3", "safe-buffer": "^5.1.1", "through2": "^2.0.0", "umd": "^3.0.0" + }, + "bin": { + "browser-pack": "bin/cmd.js" + } + }, + "node_modules/browser-resolve": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", + "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", + "dev": true, + "dependencies": { + "resolve": "^1.17.0" + } + }, + "node_modules/browser-sync": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.29.3.tgz", + "integrity": "sha512-NiM38O6XU84+MN+gzspVmXV2fTOoe+jBqIBx3IBdhZrdeURr6ZgznJr/p+hQ+KzkKEiGH/GcC4SQFSL0jV49bg==", + "dev": true, + "dependencies": { + "browser-sync-client": "^2.29.3", + "browser-sync-ui": "^2.29.3", + "bs-recipes": "1.3.4", + "chalk": "4.1.2", + "chokidar": "^3.5.1", + "connect": "3.6.6", + "connect-history-api-fallback": "^1", + "dev-ip": "^1.0.1", + "easy-extender": "^2.3.4", + "eazy-logger": "^4.0.1", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "3.0.1", + "http-proxy": "^1.18.1", + "immutable": "^3", + "localtunnel": "^2.0.1", + "micromatch": "^4.0.2", + "opn": "5.3.0", + "portscanner": "2.2.0", + "raw-body": "^2.3.2", + "resp-modifier": "6.0.2", + "rx": "4.1.0", + "send": "0.16.2", + "serve-index": "1.9.1", + "serve-static": "1.13.2", + "server-destroy": "1.0.1", + "socket.io": "^4.4.1", + "ua-parser-js": "^1.0.33", + "yargs": "^17.3.1" + }, + "bin": { + "browser-sync": "dist/bin.js" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/browser-sync-client": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.29.3.tgz", + "integrity": "sha512-4tK5JKCl7v/3aLbmCBMzpufiYLsB1+UI+7tUXCCp5qF0AllHy/jAqYu6k7hUF3hYtlClKpxExWaR+rH+ny07wQ==", + "dev": true, + "dependencies": { + "etag": "1.8.1", + "fresh": "0.5.2", + "mitt": "^1.1.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/browser-sync-ui": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.29.3.tgz", + "integrity": "sha512-kBYOIQjU/D/3kYtUIJtj82e797Egk1FB2broqItkr3i4eF1qiHbFCG6srksu9gWhfmuM/TNG76jMfzAdxEPakg==", + "dev": true, + "dependencies": { + "async-each-series": "0.1.1", + "chalk": "4.1.2", + "connect-history-api-fallback": "^1", + "immutable": "^3", + "server-destroy": "1.0.1", + "socket.io-client": "^4.4.1", + "stream-throttle": "^0.1.3" + } + }, + "node_modules/browser-sync-ui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/browser-sync-ui/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/browser-sync-ui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "browser-resolve": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", - "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", + "node_modules/browser-sync-ui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/browser-sync-ui/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { - "resolve": "^1.17.0" - }, "dependencies": { - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "browser-sync": { - "version": "2.26.14", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.26.14.tgz", - "integrity": "sha512-3TtpsheGolJT6UFtM2CZWEcGJmI4ZEvoCKiKE2bvcDnPxRkhQT4nIGVtfiyPcoHKXGM0LwMOZmYJNWfiNfVXWA==", + "node_modules/browser-sync/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "requires": { - "browser-sync-client": "^2.26.14", - "browser-sync-ui": "^2.26.14", - "bs-recipes": "1.3.4", - "bs-snippet-injector": "^2.0.1", - "chokidar": "^3.5.1", - "connect": "3.6.6", - "connect-history-api-fallback": "^1", - "dev-ip": "^1.0.1", - "easy-extender": "^2.3.4", - "eazy-logger": "3.1.0", - "etag": "^1.8.1", - "fresh": "^0.5.2", - "fs-extra": "3.0.1", - "http-proxy": "^1.18.1", - "immutable": "^3", - "localtunnel": "^2.0.1", - "micromatch": "^4.0.2", - "opn": "5.3.0", - "portscanner": "2.1.1", - "qs": "6.2.3", - "raw-body": "^2.3.2", - "resp-modifier": "6.0.2", - "rx": "4.1.0", - "send": "0.16.2", - "serve-index": "1.9.1", - "serve-static": "1.13.2", - "server-destroy": "1.0.1", - "socket.io": "2.4.0", - "ua-parser-js": "^0.7.18", - "yargs": "^15.4.1" + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/browser-sync/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "browser-sync-client": { - "version": "2.26.14", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.26.14.tgz", - "integrity": "sha512-be0m1MchmKv/26r/yyyolxXcBi052aYrmaQep5nm8YNMjFcEyzv0ZoOKn/c3WEXNlEB/KeXWaw70fAOJ+/F1zQ==", + "node_modules/browser-sync/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "requires": { - "etag": "1.8.1", - "fresh": "0.5.2", - "mitt": "^1.1.3", - "rxjs": "^5.5.6" + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "browser-sync-ui": { - "version": "2.26.14", - "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.26.14.tgz", - "integrity": "sha512-6oT1sboM4KVNnWCCJDMGbRIeTBw97toMFQ+srImvwQ6J5t9KMgizaIX8HcKLiemsUMSJkgGM9RVKIpq2UblgOA==", + "node_modules/browser-sync/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/browser-sync/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { - "async-each-series": "0.1.1", - "connect-history-api-fallback": "^1", - "immutable": "^3", - "server-destroy": "1.0.1", - "socket.io-client": "^2.4.0", - "stream-throttle": "^0.1.3" + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "browserify": { + "node_modules/browserify": { "version": "17.0.0", "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", "dev": true, - "requires": { - "JSONStream": "^1.0.3", + "dependencies": { "assert": "^1.4.0", "browser-pack": "^6.0.1", "browser-resolve": "^2.0.0", @@ -2782,6 +3347,7 @@ "https-browserify": "^1.0.0", "inherits": "~2.0.1", "insert-module-globals": "^7.2.1", + "JSONStream": "^1.0.3", "labeled-stream-splicer": "^2.0.0", "mkdirp-classic": "^0.5.2", "module-deps": "^6.2.3", @@ -2809,33 +3375,19 @@ "vm-browserify": "^1.0.0", "xtend": "^4.0.0" }, - "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } + "bin": { + "browserify": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8" } }, - "browserify-aes": { + "node_modules/browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, - "requires": { + "dependencies": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", "create-hash": "^1.1.0", @@ -2844,45 +3396,45 @@ "safe-buffer": "^5.0.1" } }, - "browserify-cipher": { + "node_modules/browserify-cipher": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, - "requires": { + "dependencies": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", "evp_bytestokey": "^1.0.0" } }, - "browserify-des": { + "node_modules/browserify-des": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, - "requires": { + "dependencies": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", "inherits": "^2.0.1", "safe-buffer": "^5.1.2" } }, - "browserify-rsa": { + "node_modules/browserify-rsa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^5.0.0", "randombytes": "^2.0.1" } }, - "browserify-sign": { + "node_modules/browserify-sign": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^5.1.1", "browserify-rsa": "^4.0.1", "create-hash": "^1.2.0", @@ -2892,582 +3444,575 @@ "parse-asn1": "^5.1.5", "readable-stream": "^3.6.0", "safe-buffer": "^5.2.0" - }, + } + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "browserify-zlib": { + "node_modules/browserify-zlib": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, - "requires": { + "dependencies": { "pako": "~1.0.5" } }, - "browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "node_modules/browserslist": { + "version": "4.21.10", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", + "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - }, - "dependencies": { - "caniuse-lite": { - "version": "1.0.30001228", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz", - "integrity": "sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A==", - "dev": true + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" }, - "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", - "dev": true + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" }, - "electron-to-chromium": { - "version": "1.3.736", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.736.tgz", - "integrity": "sha512-DY8dA7gR51MSo66DqitEQoUMQ0Z+A2DSXFi7tK304bdTVqczCAfUuyQw6Wdg8hIoo5zIxkU1L24RQtUce1Ioig==", - "dev": true - }, - "node-releases": { - "version": "1.1.72", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.72.tgz", - "integrity": "sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==", - "dev": true + { + "type": "github", + "url": "https://github.com/sponsors/ai" } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001517", + "electron-to-chromium": "^1.4.477", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "bs-recipes": { + "node_modules/bs-recipes": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", - "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=", - "dev": true - }, - "bs-snippet-injector": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz", - "integrity": "sha1-YbU5PxH1JVntEgaTEANDtu2wTdU=", + "integrity": "sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw==", "dev": true }, - "buffer": { + "node_modules/buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "dev": true, - "requires": { + "dependencies": { "base64-js": "^1.0.2", "ieee754": "^1.1.4" } }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "buffer-xor": { + "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", "dev": true }, - "builtin-status-codes": { + "node_modules/builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", "dev": true }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "cached-path-relative": { + "node_modules/cached-path-relative": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", "dev": true }, - "call-bind": { + "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, - "requires": { + "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "caller-callsite": { + "node_modules/caller-callsite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", "dev": true, - "requires": { + "dependencies": { "callsites": "^2.0.0" }, - "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - } + "engines": { + "node": ">=4" } }, - "caller-path": { + "node_modules/caller-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", "dev": true, - "requires": { + "dependencies": { "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", "dev": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - } + "engines": { + "node": ">=4" } }, - "caniuse-api": { + "node_modules/caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", "dev": true, - "requires": { + "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", "lodash.memoize": "^4.1.2", "lodash.uniq": "^4.5.0" - }, - "dependencies": { - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - } } }, - "caniuse-lite": { - "version": "1.0.30001008", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001008.tgz", - "integrity": "sha512-b8DJyb+VVXZGRgJUa30cbk8gKHZ3LOZTBLaUEEVr2P4xpmFigOCc62CO4uzquW641Ouq1Rm9N+rWLWdSYDaDIw==", + "node_modules/caniuse-api/node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true }, - "cardinal": { + "node_modules/caniuse-lite": { + "version": "1.0.30001522", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001522.tgz", + "integrity": "sha512-TKiyTVZxJGhsTszLuzb+6vUZSjVOAhClszBr2Ta2k9IwtNBT/4dzmL6aywt0HCgEZlmwJzXJd8yNiob6HgwTRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/cardinal": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", + "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", "dev": true, - "requires": { + "dependencies": { "ansicolors": "~0.3.2", "redeyed": "~2.1.0" + }, + "bin": { + "cdl": "bin/cdl.js" } }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chalk": { + "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "requires": { + "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, - "requires": { - "anymatch": "~3.1.1", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "cipher-base": { + "node_modules/cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" } }, - "cli-table": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", - "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", + "node_modules/cli-table": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz", + "integrity": "sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==", "dev": true, - "requires": { + "dependencies": { "colors": "1.0.3" + }, + "engines": { + "node": ">= 0.2.0" } }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "node_modules/cli-table3": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "coa": { + "node_modules/coa": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", "dev": true, - "requires": { + "dependencies": { "@types/q": "^1.5.1", "chalk": "^2.4.1", "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "color": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", - "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", + "node_modules/color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", "dev": true, - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" } }, - "color-convert": { + "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "requires": { + "dependencies": { "color-name": "1.1.3" } }, - "color-name": { + "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, - "color-string": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", - "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", "dev": true, - "requires": { + "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, - "colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", - "dev": true - }, - "colors": { + "node_modules/colors": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "dev": true + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } }, - "combine-source-map": { + "node_modules/combine-source-map": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "integrity": "sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg==", "dev": true, - "requires": { + "dependencies": { "convert-source-map": "~1.1.0", "inline-source-map": "~0.6.0", "lodash.memoize": "~3.0.3", "source-map": "~0.5.3" - }, - "dependencies": { - "convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } } }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/combine-source-map/node_modules/convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg==", + "dev": true + }, + "node_modules/combine-source-map/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, - "requires": { - "delayed-stream": "~1.0.0" + "engines": { + "node": ">=0.10.0" } }, - "commander": { + "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", - "dev": true - }, - "compute-scroll-into-view": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.11.tgz", - "integrity": "sha512-uUnglJowSe0IPmWOdDtrlHXof5CTIJitfJEyITHBW6zDVOGu9Pjk5puaLM73SLcwak0L4hEjO7Td88/a6P5i7A==", + "node_modules/compute-scroll-into-view": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.0.3.tgz", + "integrity": "sha512-nadqwNxghAGTamwIqQSG433W6OADZx2vCo3UXHNrzTRHK/htu+7+L0zhjEoaeaQVNAi3YgqWDv8+tzf0hRfR+A==", "dev": true }, - "concat-map": { + "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "connect": { + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/connect": { "version": "3.6.6", "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", - "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "integrity": "sha512-OO7axMmPpu/2XuX1+2Yrg0ddju31B6xLZMWkJ5rYBu4YRmRVlOjvlY6kw2FJKiAzyxGwnrDUAG4s1Pf0sbBMCQ==", "dev": true, - "requires": { + "dependencies": { "debug": "2.6.9", "finalhandler": "1.1.0", "parseurl": "~1.3.2", "utils-merge": "1.0.1" }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "engines": { + "node": ">= 0.10.0" } }, - "connect-history-api-fallback": { + "node_modules/connect-history-api-fallback": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "console-browserify": { + "node_modules/console-browserify": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", "dev": true }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "constants-browserify": { + "node_modules/constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", "dev": true }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true, - "requires": { - "safe-buffer": "~5.1.1" + "engines": { + "node": ">= 0.6" } }, - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "dev": true - }, - "core-js-compat": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.3.6.tgz", - "integrity": "sha512-YnwZG/+0/f7Pf6Lr3jxtVAFjtGBW9lsLYcqrxhYJai1GfvrP8DEyEpnNzj/FRQfIkOOfk1j5tTBvPBLWVVJm4A==", + "node_modules/core-js-compat": { + "version": "3.32.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.1.tgz", + "integrity": "sha512-GSvKDv4wE0bPnQtjklV101juQ85g6H3rm5PDP20mqlS5j0kXF3pP97YvAu5hl+uFHqMictp3b2VxOHljWMAtuA==", "dev": true, - "requires": { - "browserslist": "^4.7.2", - "semver": "^6.3.0" - }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "browserslist": "^4.21.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, - "cosmiconfig": { + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", "dev": true, - "requires": { + "dependencies": { "import-fresh": "^2.0.0", "is-directory": "^0.3.1", "js-yaml": "^3.13.1", "parse-json": "^4.0.0" }, - "dependencies": { - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } + "engines": { + "node": ">=4" } }, - "create-ecdh": { + "node_modules/create-ecdh": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.1.0", "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } } }, - "create-hash": { + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, - "requires": { + "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", "md5.js": "^1.3.4", @@ -3475,12 +4020,12 @@ "sha.js": "^2.4.0" } }, - "create-hmac": { + "node_modules/create-hmac": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, - "requires": { + "dependencies": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", "inherits": "^2.0.1", @@ -3489,34 +4034,26 @@ "sha.js": "^2.4.8" } }, - "cross-spawn": { + "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, - "requires": { + "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" }, - "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } + "engines": { + "node": ">= 8" } }, - "crypto-browserify": { + "node_modules/crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, - "requires": { + "dependencies": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", "create-ecdh": "^4.0.0", @@ -3528,132 +4065,150 @@ "public-encrypt": "^4.0.0", "randombytes": "^2.0.0", "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" } }, - "css-color-names": { + "node_modules/css-color-names": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true + "integrity": "sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==", + "dev": true, + "engines": { + "node": "*" + } }, - "css-declaration-sorter": { + "node_modules/css-declaration-sorter": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", "dev": true, - "requires": { + "dependencies": { "postcss": "^7.0.1", "timsort": "^0.3.0" }, + "engines": { + "node": ">4" + } + }, + "node_modules/css-declaration-sorter/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/css-declaration-sorter/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "css-select": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.0.2.tgz", - "integrity": "sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ==", + "node_modules/css-declaration-sorter/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", "dev": true, - "requires": { + "dependencies": { "boolbase": "^1.0.0", - "css-what": "^2.1.2", + "css-what": "^3.2.1", "domutils": "^1.7.0", "nth-check": "^1.0.2" } }, - "css-select-base-adapter": { + "node_modules/css-select-base-adapter": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", "dev": true }, - "css-tree": { + "node_modules/css-tree": { "version": "1.0.0-alpha.37", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", "dev": true, - "requires": { + "dependencies": { "mdn-data": "2.0.4", "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "css-unit-converter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", - "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=", - "dev": true + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", - "dev": true + "node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } }, - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", - "dev": true + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } }, - "cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "node_modules/cssnano": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz", + "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==", "dev": true, - "requires": { + "dependencies": { "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", + "cssnano-preset-default": "^4.0.8", "is-resolvable": "^1.0.0", "postcss": "^7.0.0" }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "engines": { + "node": ">=6.9.0" } }, - "cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "node_modules/cssnano-preset-default": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", + "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", "dev": true, - "requires": { + "dependencies": { "css-declaration-sorter": "^4.0.1", "cssnano-util-raw-cache": "^4.0.1", "postcss": "^7.0.0", @@ -3682,371 +4237,550 @@ "postcss-ordered-values": "^4.1.2", "postcss-reduce-initial": "^4.0.3", "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", + "postcss-svgo": "^4.0.3", "postcss-unique-selectors": "^4.0.1" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/cssnano-preset-default/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/cssnano-preset-default/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "cssnano-util-get-arguments": { + "node_modules/cssnano-util-get-arguments": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", - "dev": true + "integrity": "sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "cssnano-util-get-match": { + "node_modules/cssnano-util-get-match": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", - "dev": true + "integrity": "sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "cssnano-util-raw-cache": { + "node_modules/cssnano-util-raw-cache": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", "dev": true, - "requires": { + "dependencies": { "postcss": "^7.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-raw-cache/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/cssnano-util-raw-cache/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/cssnano-util-raw-cache/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "cssnano-util-same-parent": { + "node_modules/cssnano-util-same-parent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, - "csso": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.2.tgz", - "integrity": "sha512-kS7/oeNVXkHWxby5tHVxlhjizRCSv8QdU7hB2FpdAibDU8FjTAolhNjKNTiLzXtUrKT6HwClE81yXwEk1309wg==", + "node_modules/cssnano/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, - "requires": { - "css-tree": "1.0.0-alpha.37" + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "node_modules/cssnano/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "requires": { - "array-find-index": "^1.0.1" + "engines": { + "node": ">=0.10.0" } }, - "dash-ast": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", - "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", "dev": true, - "requires": { - "assert-plus": "^1.0.0" + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" } }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "dev": true, - "requires": { - "ms": "^2.1.1" + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", "dev": true }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "requires": { - "object-keys": "^1.0.12" + "engines": { + "node": ">=0.10.0" } }, - "defined": { + "node_modules/dash-ast": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", "dev": true }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "dependency-graph": { + "node_modules/dependency-graph": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.9.0.tgz", "integrity": "sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6.0" + } }, - "deps-sort": { + "node_modules/deps-sort": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", "dev": true, - "requires": { + "dependencies": { "JSONStream": "^1.0.3", "shasum-object": "^1.0.0", "subarg": "^1.0.0", "through2": "^2.0.0" + }, + "bin": { + "deps-sort": "bin/cmd.js" } }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" } }, - "destroy": { + "node_modules/destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", "dev": true }, - "detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "node_modules/detective": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", + "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", "dev": true, - "requires": { - "acorn-node": "^1.6.1", + "dependencies": { + "acorn-node": "^1.8.2", "defined": "^1.0.0", - "minimist": "^1.1.1" + "minimist": "^1.2.6" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" } }, - "dev-ip": { + "node_modules/dev-ip": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", - "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=", - "dev": true + "integrity": "sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==", + "dev": true, + "bin": { + "dev-ip": "lib/dev-ip.js" + }, + "engines": { + "node": ">= 0.8.0" + } }, - "diff": { + "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.3.1" + } }, - "diffie-hellman": { + "node_modules/diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } } }, - "dir-glob": { + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, - "requires": { + "dependencies": { "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, - "doctrine": { + "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, - "requires": { + "dependencies": { "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "dom-serializer": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.1.tgz", - "integrity": "sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q==", + "node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", "dev": true, - "requires": { + "dependencies": { "domelementtype": "^2.0.1", "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", - "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==", - "dev": true - } } }, - "domain-browser": { + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } }, - "domelementtype": { + "node_modules/domelementtype": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", "dev": true }, - "domutils": { + "node_modules/domutils": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, - "requires": { + "dependencies": { "dom-serializer": "0", "domelementtype": "1" } }, - "dot-prop": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", - "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, - "requires": { - "is-obj": "^1.0.0" + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + "node_modules/dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "engines": { + "node": ">=10" + } }, - "duplexer2": { + "node_modules/duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", "dev": true, - "requires": { + "dependencies": { "readable-stream": "^2.0.2" } }, - "easy-extender": { + "node_modules/easy-extender": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", "dev": true, - "requires": { + "dependencies": { "lodash": "^4.17.10" + }, + "engines": { + "node": ">= 4.0.0" } }, - "eazy-logger": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.1.0.tgz", - "integrity": "sha512-/snsn2JqBtUSSstEl4R0RKjkisGHAhvYj89i7r3ytNUKW12y178KDZwXLXIgwDqLW6E/VRMT9qfld7wvFae8bQ==", + "node_modules/eazy-logger": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz", + "integrity": "sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==", "dev": true, - "requires": { - "tfunk": "^4.0.0" + "dependencies": { + "chalk": "4.1.2" + }, + "engines": { + "node": ">= 0.8.0" } }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "node_modules/eazy-logger/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eazy-logger/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eazy-logger/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eazy-logger/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eazy-logger/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "ee-first": { + "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.496", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.496.tgz", + "integrity": "sha512-qeXC3Zbykq44RCrBa4kr8v/dWzYJA8rAwpyh9Qd+NKWoJfjG5vvJqy9XOJ9H4P/lqulZBCgUWAYi+FeK5AuJ8g==", "dev": true }, - "elliptic": { + "node_modules/elliptic": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", "hash.js": "^1.0.0", @@ -4054,185 +4788,244 @@ "inherits": "^2.0.4", "minimalistic-assert": "^1.0.1", "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } } }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "encodeurl": { + "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "engine.io": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz", - "integrity": "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==", + "node_modules/engine.io": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.2.tgz", + "integrity": "sha512-IXsMcGpw/xRfjra46sVZVHiSWo/nJ/3g1337q9KNXtS6YRzbW5yIzTCb9DjhrBe7r3GZQR0I4+nq+4ODk5g/cA==", "dev": true, - "requires": { + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "2.0.0", "cookie": "~0.4.1", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "ws": "~7.4.2" - } - }, - "engine.io-client": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.0.tgz", - "integrity": "sha512-12wPRfMrugVw/DNyJk34GQ5vIVArEcVMXWugQGGuw2XxUSztFNmJggZmv8IZlLyEdnpO1QB9LkcjeWewO2vxtA==", - "dev": true, - "requires": { - "component-emitter": "~1.3.0", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.2.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~7.4.2", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0" }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/engine.io-client": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.2.tgz", + "integrity": "sha512-CQZqbrpEYnrpGqC07a9dJDz4gePZUgTPMU3NKJPSeQOyw27Tst4Pl3FemKoFGAlHzgZmKjoRmiJvbWfhCXUlIg==", + "dev": true, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0", + "xmlhttprequest-ssl": "~2.0.0" } }, - "engine.io-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", - "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", + "node_modules/engine.io-parser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", + "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", "dev": true, - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.4", - "blob": "0.0.5", - "has-binary2": "~1.0.2" + "engines": { + "node": ">=10.0.0" } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "dev": true, - "requires": { - "ansi-colors": "^4.1.1" + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" } }, - "entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==", - "dev": true + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, - "error-ex": { + "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "requires": { + "dependencies": { "is-arrayish": "^0.2.1" } }, - "es-abstract": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz", - "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==", + "node_modules/es-abstract": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", + "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", "dev": true, - "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.1", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", "has": "^1.0.3", - "has-symbols": "^1.0.0", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-inspect": "^1.6.0", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", "object-keys": "^1.1.1", - "string.prototype.trimleft": "^2.1.0", - "string.prototype.trimright": "^2.1.0" + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "safe-array-concat": "^1.0.0", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" } }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, - "requires": { + "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "escalade": { + "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "escape-html": { + "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, - "escape-string-regexp": { + "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } }, - "eslint": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.7.0.tgz", - "integrity": "sha512-1KUxLzos0ZVsyL81PnRN335nDtQ8/vZUD6uMtWbF+5zDtjKcsklIi78XoE0MVL93QvWTu+E5y44VyyCsOMBrIg==", + "node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", "enquirer": "^2.3.5", - "eslint-scope": "^5.1.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^1.3.0", - "espree": "^7.2.0", - "esquery": "^1.2.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -4240,7 +5033,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -4249,306 +5042,478 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "eslint-scope": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", - "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, - "requires": { - "esrecurse": "^4.1.0", + "dependencies": { + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" }, - "dependencies": { - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - } + "engines": { + "node": ">=8.0.0" } }, - "eslint-utils": { + "node_modules/eslint-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, - "requires": { + "dependencies": { "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, - "eslint-visitor-keys": { + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "espree": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz", - "integrity": "sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==", + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.3.0" + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", + "dev": true, "dependencies": { - "acorn": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", - "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", - "dev": true - } + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "node_modules/eslint/node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "requires": { - "estraverse": "^5.1.0" + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "node_modules/eslint/node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "requires": { - "estraverse": "^4.1.0" + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" } }, - "esutils": { + "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "etag": { + "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "eventemitter3": { + "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, - "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "dev": true + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } }, - "evp_bytestokey": { + "node_modules/evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, - "requires": { + "dependencies": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" } }, - "exiting": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/exiting/-/exiting-6.0.1.tgz", - "integrity": "sha512-0kUQkyWTMJUZ2wKkxjducVojsL5vtDxw26q9sd07SwyWZswbHOrWN9Bs2jk9uXffatsGp2QP5tmQUYXiPi1Z2A==", - "requires": { + "node_modules/exiting": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/exiting/-/exiting-6.1.0.tgz", + "integrity": "sha512-BZjiof55/K1hrj9P5wM+AihAjqAgIXV1E+mGB+Mu86M97r1GJdSBihYBqNKkwkbe1MBg/lC4fdmel3bCLYzymA==", + "dependencies": { "@hapi/bounce": "^2.0.0", "@hapi/hoek": "^9.0.2" }, - "dependencies": { - "@hapi/hoek": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.1.tgz", - "integrity": "sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw==" - } + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "@hapi/hapi": ">=17.9.0" } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, - "requires": { + "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" } }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "fast-levenshtein": { + "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, - "fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", "dev": true }, - "fastq": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", - "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, - "requires": { + "dependencies": { "reusify": "^1.0.4" } }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, - "requires": { - "flat-cache": "^2.0.1" + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "fill-range": { + "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, - "requires": { + "dependencies": { "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "finalhandler": { + "node_modules/finalhandler": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "integrity": "sha512-ejnvM9ZXYzp6PUPUyQBMBf0Co5VX2gr5H2VQe2Ui2jWXNlxv+PYZo8wpAymJNJdLsG1R4p+M4aynF8KuoUEwRw==", "dev": true, - "requires": { + "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.1", "escape-html": "~1.0.3", @@ -4557,790 +5522,864 @@ "statuses": "~1.3.1", "unpipe": "~1.0.0" }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "ms": "2.0.0" } }, - "find-rc": { + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/find-rc": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/find-rc/-/find-rc-4.0.1.tgz", "integrity": "sha512-YEox27Ie95/zoqkxm6BYSPguJsvYz9d9G1YuaNKhxjSgZbjMC9q5blmvbL4+Ail8yacQIE0OObhDb+ZwvfJafw==", "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, - "requires": { - "locate-path": "^3.0.0" + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "follow-redirects": { - "version": "1.14.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", - "dev": true - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "dependencies": { + "is-callable": "^1.1.3" } }, - "fraction.js": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.13.tgz", - "integrity": "sha512-E1fz2Xs9ltlUp+qbiyx9wmt2n9dRzPsS11Jtdb8D2o+cC7wr9xkkKsVKJuBX0ST+LVS+LhLO+SbLJNtfWcJvXA==", - "dev": true + "node_modules/fraction.js": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.1.tgz", + "integrity": "sha512-/KxoyCnPM0GwYI4NN0Iag38Tqt+od3/mLuguepLgCAKPn0ZhC544nssAW0tG2/00zXEYl9W+7hwAIpLHo6Oc7Q==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } }, - "fresh": { + "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "fs-extra": { + "node_modules/fs-extra": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", - "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "integrity": "sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==", "dev": true, - "requires": { + "dependencies": { "graceful-fs": "^4.1.2", "jsonfile": "^3.0.0", "universalify": "^0.1.0" } }, - "fs.realpath": { + "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "fsevents": { + "node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, - "optional": true - }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "function-bind": { + "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "functional-red-black-tree": { + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, - "requires": { - "globule": "^1.0.0" + "engines": { + "node": ">=6.9.0" } }, - "get-assigned-identifiers": { + "node_modules/get-assigned-identifiers": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", "dev": true }, - "get-caller-file": { + "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, - "requires": { + "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" }, - "dependencies": { - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true + "node_modules/get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, - "requires": { - "assert-plus": "^1.0.0" + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "glob": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", - "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "requires": { + "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "glob-parent": { + "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "requires": { + "dependencies": { "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "globals": { + "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, - "requires": { - "@types/glob": "^7.1.1", + "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" }, - "dependencies": { - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - } + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "globule": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", - "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", + "node_modules/globby/node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, - "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" + "engines": { + "node": ">= 4" } }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "hammerjs": { + "node_modules/hammerjs": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", - "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=", - "dev": true + "integrity": "sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "requires": { + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dependencies": { "minimist": "^1.2.5", - "neo-async": "^2.6.0", + "neo-async": "^2.6.2", "source-map": "^0.6.1", - "uglify-js": "^3.1.4", "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" } }, - "has": { + "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, - "requires": { + "dependencies": { "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "requires": { - "isarray": "2.0.1" + "engines": { + "node": ">=8" } }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", - "dev": true + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "hash-base": { + "node_modules/hash-base": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", "safe-buffer": "^5.2.0" }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "hash.js": { + "node_modules/hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" } }, - "haute": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/haute/-/haute-3.1.1.tgz", - "integrity": "sha512-mxKCO+erprs/hBdS7MiBQcGU/tTiCUp8ypVqO8TcPYBttGBIvPlO8kA8uFVd0bTePKvRfzViv7etVesbBaNq0A==", - "requires": { - "@hapi/hoek": "8.x.x", - "require-directory": "2.x.x" + "node_modules/haute": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/haute/-/haute-4.0.0.tgz", + "integrity": "sha512-A/1A1WIedwpkX9a3YdXpXXvgGoWLT3/WRPBQTQHbd++cg48WfalwS/cngVwyydNrNmNVEjtXxIbfkZVB+Fy1gg==", + "dependencies": { + "@hapi/hoek": "9.x.x", + "mo-walk": ">=1.1.0 <2" + }, + "engines": { + "node": ">=12" } }, - "hex-color-regex": { + "node_modules/hex-color-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", "dev": true }, - "hmac-drbg": { + "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "dev": true, - "requires": { + "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.1" } }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "hsl-regex": { + "node_modules/hsl-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "integrity": "sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A==", "dev": true }, - "hsla-regex": { + "node_modules/hsla-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "integrity": "sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA==", "dev": true }, - "htmlescape": { + "node_modules/htmlescape": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", - "dev": true + "integrity": "sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg==", + "dev": true, + "engines": { + "node": ">=0.10" + } }, - "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, - "requires": { - "depd": "~1.1.2", + "dependencies": { + "depd": "2.0.0", "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" }, - "dependencies": { - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - } + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" } }, - "http-proxy": { + "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, - "requires": { + "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-browserify": { + "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", "dev": true }, - "iconv-lite": { + "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, - "requires": { + "dependencies": { "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" } }, - "ieee754": { + "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "ignore": { + "node_modules/ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 4" + } }, - "immutable": { + "node_modules/immutable": { "version": "3.8.2", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=", - "dev": true - }, - "import-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", - "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", + "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", "dev": true, - "requires": { - "import-from": "^3.0.0" + "engines": { + "node": ">=0.10.0" } }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, "dependencies": { - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - } - } - }, - "import-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", - "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } + "engines": { + "node": ">=4" } }, - "imurmurhash": { + "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "in-publish": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", - "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", - "dev": true - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "requires": { - "repeating": "^2.0.0" + "engines": { + "node": ">=0.8.19" } }, - "indexes-of": { + "node_modules/indexes-of": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==", "dev": true }, - "inflight": { + "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, - "requires": { + "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, - "inherits": { + "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "inline-source-map": { + "node_modules/inline-source-map": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "integrity": "sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA==", "dev": true, - "requires": { - "source-map": "~0.5.3" - }, "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } + "source-map": "~0.5.3" + } + }, + "node_modules/inline-source-map/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "insert-module-globals": { + "node_modules/insert-module-globals": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", "dev": true, - "requires": { - "JSONStream": "^1.0.3", + "dependencies": { "acorn-node": "^1.5.2", "combine-source-map": "^0.8.0", "concat-stream": "^1.6.1", "is-buffer": "^1.1.0", + "JSONStream": "^1.0.3", "path-is-absolute": "^1.0.1", "process": "~0.11.0", "through2": "^2.0.0", "undeclared-identifiers": "^1.1.2", "xtend": "^4.0.0" }, - "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - } + "bin": { + "insert-module-globals": "bin/cmd.js" + } + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dev": true, - "requires": { - "loose-envify": "^1.0.0" + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, - "is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, - "requires": { - "call-bind": "^1.0.0" + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { + "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "requires": { + "dependencies": { "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-buffer": { + "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-color-stop": { + "node_modules/is-color-stop": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "integrity": "sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA==", "dev": true, - "requires": { + "dependencies": { "css-color-names": "^0.0.4", "hex-color-regex": "^1.1.0", "hsl-regex": "^1.0.0", @@ -5349,846 +6388,787 @@ "rgba-regex": "^1.0.0" } }, - "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "node_modules/is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, - "requires": { + "dependencies": { "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-directory": { + "node_modules/is-directory": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true + "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "is-extglob": { + "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "dev": true + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "is-generator-function": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz", - "integrity": "sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==", - "dev": true + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "requires": { + "dependencies": { "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-number": { + "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.12.0" + } }, - "is-number-like": { + "node_modules/is-number-like": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", "dev": true, - "requires": { + "dependencies": { "lodash.isfinite": "^3.3.2" } }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, - "requires": { - "has": "^1.0.1" + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-resolvable": { + "node_modules/is-resolvable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", "dev": true }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, - "requires": { - "html-comment-regex": "^1.1.0" + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, - "requires": { - "has-symbols": "^1.0.0" + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-typed-array": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", - "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, - "requires": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.0-next.2", - "foreach": "^2.0.5", - "has-symbols": "^1.0.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.18.0-next.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", - "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.1", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.3", - "string.prototype.trimstart": "^1.0.3" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", - "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.1" - } - }, - "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - } + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-wsl": { + "node_modules/is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, - "isexe": { + "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "joi": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.2.1.tgz", - "integrity": "sha512-YT3/4Ln+5YRpacdmfEfrrKh50/kkgX3LgBltjqnlMPIYiZ4hxXZuVJcxmsvxsdeHg9soZfE3qXxHC2tMpCCBOA==", - "requires": { - "@hapi/address": "^4.1.0", - "@hapi/formula": "^2.0.0", - "@hapi/hoek": "^9.0.0", - "@hapi/pinpoint": "^2.0.0", - "@hapi/topo": "^5.0.0" - }, + "node_modules/joi": { + "version": "17.9.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz", + "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==", "dependencies": { - "@hapi/address": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz", - "integrity": "sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@hapi/formula": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", - "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" - }, - "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" - }, - "@hapi/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==" - }, - "@hapi/topo": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", - "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - } + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" } }, - "js-base64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz", - "integrity": "sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==", - "dev": true - }, - "js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", - "dev": true - }, - "js-tokens": { + "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "requires": { + "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, - "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - } + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsesc": { + "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } }, - "json-parse-better-errors": { + "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { + "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "json-stable-stringify-without-jsonify": { + "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "requires": { - "minimist": "^1.2.0" + "bin": { + "json5": "lib/cli.js" }, - "dependencies": { - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - } + "engines": { + "node": ">=6" } }, - "jsonfile": { + "node_modules/jsonfile": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", - "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "integrity": "sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==", "dev": true, - "requires": { + "optionalDependencies": { "graceful-fs": "^4.1.6" } }, - "jsonparse": { + "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" } }, - "labeled-stream-splicer": { + "node_modules/labeled-stream-splicer": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "stream-splicer": "^2.0.0" } }, - "levn": { + "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "requires": { + "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" } }, - "limiter": { + "node_modules/limiter": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", "dev": true }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true + "node_modules/localtunnel": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz", + "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==", + "dev": true, + "dependencies": { + "axios": "0.21.4", + "debug": "4.3.2", + "openurl": "1.1.1", + "yargs": "17.1.1" + }, + "bin": { + "lt": "bin/lt.js" + }, + "engines": { + "node": ">=8.3.0" + } }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "node_modules/localtunnel/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "localtunnel": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.1.tgz", - "integrity": "sha512-LiaI5wZdz0xFkIQpXbNI62ZnNn8IMsVhwxHmhA+h4vj8R9JG/07bQHWwQlyy7b95/5fVOCHJfIHv+a5XnkvaJA==", + "node_modules/localtunnel/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, - "requires": { - "axios": "0.21.1", - "debug": "4.3.1", - "openurl": "1.1.1", - "yargs": "16.2.0" - }, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.5", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.5.tgz", - "integrity": "sha512-jYRGS3zWy20NtDtK2kBgo/TlAoy5YUuhD9/LZ7z7W4j1Fdw2cqD0xEEclf8fxc8xjD6X5Qr+qQQwCEsP8iRiYg==", - "dev": true + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true } } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "node_modules/localtunnel/node_modules/yargs": { + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", + "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=12" } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", - "dev": true + "node_modules/localtunnel/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } }, - "lodash.forown": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.forown/-/lodash.forown-4.4.0.tgz", - "integrity": "sha1-hRFc8E9z75ZuztUlEdOJPMRmg68=", - "dev": true + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "lodash.groupby": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", - "integrity": "sha1-Cwih3PaDl8OXhVwyOXg4Mt90A9E=", + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, - "lodash.isfinite": { + "node_modules/lodash.isfinite": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", - "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=", + "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==", "dev": true }, - "lodash.memoize": { + "node_modules/lodash.memoize": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", + "integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==", "dev": true }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "lodash.toarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", - "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=", + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, - "lodash.uniq": { + "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", "dev": true }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "dependencies": { + "yallist": "^3.0.2" } }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "node_modules/marked": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/marked/-/marked-1.2.9.tgz", + "integrity": "sha512-H8lIX2SvyitGX+TRdtS06m1jHMijKN/XjfH6Ooii9fvxMlh8QdqBfBDkGUpMWH2kQNrtixjzYUa3SH8ROTgRRw==", + "dev": true, + "bin": { + "marked": "bin/marked" + }, + "engines": { + "node": ">= 8.16.2" + } + }, + "node_modules/marked-terminal": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-4.2.0.tgz", + "integrity": "sha512-DQfNRV9svZf0Dm9Cf5x5xaVJ1+XjxQW6XjFJ5HFkVyK52SDpj5PCBzS5X5r2w9nHr3mlB0T5201UMLue9fmhUw==", "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" + "dependencies": { + "ansi-escapes": "^4.3.1", + "cardinal": "^2.1.1", + "chalk": "^4.1.0", + "cli-table3": "^0.6.0", + "node-emoji": "^1.10.0", + "supports-hyperlinks": "^2.1.0" + }, + "peerDependencies": { + "marked": "^1.0.0 || ^2.0.0" } }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "node_modules/marked-terminal/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "node_modules/marked-terminal/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/marked-terminal/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/marked-terminal/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "md5.js": { + "node_modules/marked-terminal/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, - "requires": { + "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1", "safe-buffer": "^5.1.2" } }, - "mdn-data": { + "node_modules/mdn-data": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", "dev": true }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - } - }, - "merge2": { + "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 8" + } }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" } }, - "miller-rabin": { + "node_modules/miller-rabin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.0.0", "brorand": "^1.0.1" }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } + "bin": { + "miller-rabin": "bin/miller-rabin" } }, - "mime": { + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/mime": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", - "dev": true + "dev": true, + "bin": { + "mime": "cli.js" + } }, - "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, - "requires": { - "mime-db": "1.40.0" - }, "dependencies": { - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", - "dev": true - } + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" } }, - "minimalistic-assert": { + "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true }, - "minimalistic-crypto-utils": { + "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", "dev": true }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "requires": { + "dependencies": { "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "mitt": { + "node_modules/mitt": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", "dev": true }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "requires": { - "minimist": "^1.2.5" + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" } }, - "mkdirp-classic": { + "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "dev": true }, - "module-deps": { + "node_modules/mo-walk": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mo-walk/-/mo-walk-1.2.0.tgz", + "integrity": "sha512-rat9d/EMjr08N56/u2MwMaykb/bGuByYmTgG8eJIJbUxPtSuoW76el6Tm1+cUqY0lmhuss4IIO3x2lWLojmRTA==", + "dependencies": { + "pkg-up": "3.x.x" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/module-deps": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", "dev": true, - "requires": { - "JSONStream": "^1.0.3", + "dependencies": { "browser-resolve": "^2.0.0", "cached-path-relative": "^1.0.2", "concat-stream": "~1.6.0", @@ -6196,6 +7176,7 @@ "detective": "^5.2.0", "duplexer2": "^0.1.2", "inherits": "^2.0.1", + "JSONStream": "^1.0.3", "parents": "^1.0.0", "readable-stream": "^2.0.2", "resolve": "^1.4.0", @@ -6204,422 +7185,329 @@ "through2": "^2.0.0", "xtend": "^4.0.0" }, - "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - } + "bin": { + "module-deps": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8.0" } }, - "ms": { + "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "dev": true - }, - "nanoid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", - "dev": true + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } }, - "natural-compare": { + "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "neo-async": { + "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, - "node-emoji": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", - "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", - "dev": true, - "requires": { - "lodash.toarray": "^4.4.0" - } - }, - "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, - "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "dependencies": { - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true - } - } - }, - "node-sass": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", - "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", - "dev": true, - "requires": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^3.0.0", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "in-publish": "^2.0.0", - "lodash": "^4.17.15", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.13.2", - "node-gyp": "^3.8.0", - "npmlog": "^4.0.0", - "request": "^2.88.0", - "sass-graph": "2.2.5", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", "dev": true, - "requires": { - "abbrev": "1" + "dependencies": { + "lodash": "^4.17.21" } }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true }, - "normalize-path": { + "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "normalize-range": { + "node_modules/normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "normalize-url": { + "node_modules/normalize-url": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", - "dev": true - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "engines": { + "node": ">=6" } }, - "nth-check": { + "node_modules/nth-check": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", "dev": true, - "requires": { + "dependencies": { "boolbase": "~1.0.0" } }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { + "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "object-inspect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", - "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", - "dev": true + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "object-keys": { + "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + } }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz", + "integrity": "sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ==", "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" + "dependencies": { + "array.prototype.reduce": "^1.0.5", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.21.2", + "safe-array-concat": "^1.0.0" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object.values": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", - "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", + "node_modules/object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "on-finished": { + "node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "dev": true, - "requires": { + "dependencies": { "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, - "once": { + "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "requires": { + "dependencies": { "wrappy": "1" } }, - "openurl": { + "node_modules/openurl": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", - "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c=", + "integrity": "sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA==", "dev": true }, - "opn": { + "node_modules/opn": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", "dev": true, - "requires": { + "dependencies": { "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" } }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, - "requires": { + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "os-browserify": { + "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "dev": true }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "requires": { - "p-try": "^2.0.0" + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "requires": { - "p-limit": "^2.0.0" + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-try": { + "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "engines": { + "node": ">=6" + } }, - "pako": { + "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, - "parent-module": { + "node_modules/parent-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-2.0.0.tgz", "integrity": "sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==", - "requires": { + "dependencies": { "callsites": "^3.1.0" + }, + "engines": { + "node": ">=8" } }, - "parents": { + "node_modules/parent-module/node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/parents": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "integrity": "sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==", "dev": true, - "requires": { + "dependencies": { "path-platform": "~0.11.15" } }, - "parse-asn1": { + "node_modules/parse-asn1": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", "dev": true, - "requires": { + "dependencies": { "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", "evp_bytestokey": "^1.0.0", @@ -6627,196 +7515,307 @@ "safe-buffer": "^5.1.1" } }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dev": true, - "requires": { - "error-ex": "^1.2.0" + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" } }, - "parseqs": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", - "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", - "dev": true - }, - "parseuri": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", - "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", - "dev": true - }, - "parseurl": { + "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "path-browserify": { + "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "dev": true }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "path-is-absolute": { + "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "path-key": { + "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "path-parse": { + "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "path-platform": { + "node_modules/path-platform": { "version": "0.11.15", "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", - "dev": true + "integrity": "sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } }, - "path-type": { + "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "dev": true, - "requires": { + "dependencies": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", "ripemd160": "^2.0.1", "safe-buffer": "^5.0.1", "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } }, - "pify": { + "node_modules/pkg-up/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true, - "requires": { - "pinkie": "^2.0.0" + "engines": { + "node": ">=4" } }, - "portscanner": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz", - "integrity": "sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y=", + "node_modules/portscanner": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", + "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==", "dev": true, - "requires": { - "async": "1.5.2", + "dependencies": { + "async": "^2.6.0", "is-number-like": "^1.0.3" + }, + "engines": { + "node": ">=0.4", + "npm": ">=1.0.0" } }, - "postcss": { - "version": "8.2.13", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.13.tgz", - "integrity": "sha512-FCE5xLH+hjbzRdpbRb1IMCvPv9yZx2QnDarBEYSN0N0HYk+TcXsEhwdFcFb+SRWOKzKGErhIEbBK2ogyLdTtfQ==", + "node_modules/postcss": { + "version": "8.4.28", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.28.tgz", + "integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==", "dev": true, - "requires": { - "colorette": "^1.2.2", - "nanoid": "^3.1.22", - "source-map": "^0.6.1" + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "dev": true, "dependencies": { - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true - } + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" } }, - "postcss-calc": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.1.tgz", - "integrity": "sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==", + "node_modules/postcss-calc/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-calc/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, - "requires": { - "css-unit-converter": "^1.1.1", - "postcss": "^7.0.5", - "postcss-selector-parser": "^5.0.0-rc.4", - "postcss-value-parser": "^3.3.1" - }, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-calc/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "postcss-cli": { + "node_modules/postcss-cli": { "version": "8.3.1", "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-8.3.1.tgz", "integrity": "sha512-leHXsQRq89S3JC9zw/tKyiVV2jAhnfQe0J8VI4eQQbUjwIe0XxVqLrR+7UsahF1s9wi4GlqP6SJ8ydf44cgF2Q==", "dev": true, - "requires": { + "dependencies": { "chalk": "^4.0.0", "chokidar": "^3.3.0", "dependency-graph": "^0.9.0", @@ -6830,479 +7829,520 @@ "slash": "^3.0.0", "yargs": "^16.0.0" }, + "bin": { + "postcss": "bin/postcss" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true - }, - "globby": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", - "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.5", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.5.tgz", - "integrity": "sha512-jYRGS3zWy20NtDtK2kBgo/TlAoy5YUuhD9/LZ7z7W4j1Fdw2cqD0xEEclf8fxc8xjD6X5Qr+qQQwCEsP8iRiYg==", - "dev": true - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/postcss-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/postcss-cli/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/postcss-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/postcss-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/postcss-cli/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-cli/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/postcss-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-cli/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/postcss-cli/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" } }, - "postcss-colormin": { + "node_modules/postcss-cli/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-colormin": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", "dev": true, - "requires": { + "dependencies": { "browserslist": "^4.0.0", "color": "^3.0.0", "has": "^1.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-colormin/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-colormin/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-colormin/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-colormin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "postcss-convert-values": { + "node_modules/postcss-convert-values": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", "dev": true, - "requires": { + "dependencies": { "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-convert-values/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-convert-values/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "postcss-discard-comments": { + "node_modules/postcss-convert-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-convert-values/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-discard-comments": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", "dev": true, - "requires": { + "dependencies": { "postcss": "^7.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-comments/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-discard-comments/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-discard-comments/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "postcss-discard-duplicates": { + "node_modules/postcss-discard-duplicates": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", "dev": true, - "requires": { + "dependencies": { "postcss": "^7.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-duplicates/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-discard-duplicates/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "postcss-discard-empty": { + "node_modules/postcss-discard-duplicates/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-discard-empty": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", "dev": true, - "requires": { + "dependencies": { "postcss": "^7.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-empty/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-discard-empty/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-discard-empty/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "postcss-discard-overridden": { + "node_modules/postcss-discard-overridden": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", "dev": true, - "requires": { + "dependencies": { "postcss": "^7.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-overridden/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-discard-overridden/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "postcss-load-config": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.0.1.tgz", - "integrity": "sha512-/pDHe30UYZUD11IeG8GWx9lNtu1ToyTsZHnyy45B4Mrwr/Kb6NgYl7k753+05CJNKnjbwh4975amoPJ+TEjHNQ==", - "dev": true, - "requires": { - "cosmiconfig": "^7.0.0", - "import-cwd": "^3.0.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } + "node_modules/postcss-discard-overridden/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } + "ts-node": { + "optional": true } } }, - "postcss-merge-longhand": { + "node_modules/postcss-merge-longhand": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", "dev": true, - "requires": { + "dependencies": { "css-color-names": "0.0.4", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0", "stylehacks": "^4.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-longhand/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-merge-longhand/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-merge-longhand/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "postcss-merge-rules": { + "node_modules/postcss-merge-rules": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", "dev": true, - "requires": { + "dependencies": { "browserslist": "^4.0.0", "caniuse-api": "^3.0.0", "cssnano-util-same-parent": "^4.0.0", @@ -7310,135 +8350,166 @@ "postcss-selector-parser": "^3.0.0", "vendors": "^1.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-rules/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-merge-rules/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", - "dev": true, - "requires": { - "dot-prop": "^4.1.1", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "dependencies": { - "dot-prop": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", - "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", - "dev": true, - "requires": { - "is-obj": "^1.0.0" - } - } - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "postcss-minify-font-values": { + "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-merge-rules/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-minify-font-values": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", "dev": true, - "requires": { + "dependencies": { "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-font-values/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-minify-font-values/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-minify-font-values/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "postcss-minify-gradients": { + "node_modules/postcss-minify-gradients": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", "dev": true, - "requires": { + "dependencies": { "cssnano-util-get-arguments": "^4.0.0", "is-color-stop": "^1.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-gradients/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-minify-gradients/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-minify-gradients/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "postcss-minify-params": { + "node_modules/postcss-minify-params": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", "dev": true, - "requires": { + "dependencies": { "alphanum-sort": "^1.0.0", "browserslist": "^4.0.0", "cssnano-util-get-arguments": "^4.0.0", @@ -7446,869 +8517,1049 @@ "postcss-value-parser": "^3.0.0", "uniqs": "^2.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-params/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-minify-params/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "postcss-minify-selectors": { + "node_modules/postcss-minify-params/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-minify-params/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-minify-selectors": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", "dev": true, - "requires": { + "dependencies": { "alphanum-sort": "^1.0.0", "has": "^1.0.0", "postcss": "^7.0.0", "postcss-selector-parser": "^3.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-selectors/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-minify-selectors/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", - "dev": true, - "requires": { - "dot-prop": "^4.1.1", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "dependencies": { - "dot-prop": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", - "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", - "dev": true, - "requires": { - "is-obj": "^1.0.0" - } - } - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-minify-selectors/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "postcss-normalize-charset": { + "node_modules/postcss-normalize-charset": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", "dev": true, - "requires": { + "dependencies": { "postcss": "^7.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-charset/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-normalize-charset/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-charset/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "postcss-normalize-display-values": { + "node_modules/postcss-normalize-display-values": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", "dev": true, - "requires": { + "dependencies": { "cssnano-util-get-match": "^4.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-normalize-display-values/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-display-values/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "postcss-normalize-positions": { + "node_modules/postcss-normalize-positions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", "dev": true, - "requires": { + "dependencies": { "cssnano-util-get-arguments": "^4.0.0", "has": "^1.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-positions/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-normalize-positions/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-positions/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-normalize-repeat-style/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-repeat-style/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "engines": { + "node": ">=0.10.0" } }, - "postcss-normalize-string": { + "node_modules/postcss-normalize-string": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", "dev": true, - "requires": { + "dependencies": { "has": "^1.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-string/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-normalize-string/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-string/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "postcss-normalize-timing-functions": { + "node_modules/postcss-normalize-timing-functions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", "dev": true, - "requires": { + "dependencies": { "cssnano-util-get-match": "^4.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-normalize-timing-functions/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-timing-functions/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "postcss-normalize-unicode": { + "node_modules/postcss-normalize-unicode": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", "dev": true, - "requires": { + "dependencies": { "browserslist": "^4.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-normalize-unicode/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-unicode/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "postcss-normalize-url": { + "node_modules/postcss-normalize-url": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", "dev": true, - "requires": { + "dependencies": { "is-absolute-url": "^2.0.0", "normalize-url": "^3.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-url/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-normalize-url/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-url/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "postcss-normalize-whitespace": { + "node_modules/postcss-normalize-whitespace": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", "dev": true, - "requires": { + "dependencies": { "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-normalize-whitespace/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-whitespace/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "postcss-ordered-values": { + "node_modules/postcss-ordered-values": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", "dev": true, - "requires": { + "dependencies": { "cssnano-util-get-arguments": "^4.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-ordered-values/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-ordered-values/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-ordered-values/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "postcss-reduce-initial": { + "node_modules/postcss-reduce-initial": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", "dev": true, - "requires": { + "dependencies": { "browserslist": "^4.0.0", "caniuse-api": "^3.0.0", "has": "^1.0.0", "postcss": "^7.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-initial/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-reduce-initial/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-reduce-initial/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "postcss-reduce-transforms": { + "node_modules/postcss-reduce-transforms": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", "dev": true, - "requires": { + "dependencies": { "cssnano-util-get-match": "^4.0.0", "has": "^1.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-transforms/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-reduce-transforms/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "postcss-reporter": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.2.tgz", - "integrity": "sha512-JyQ96NTQQsso42y6L1H1RqHfWH1C3Jr0pt91mVv5IdYddZAE9DUZxuferNgk6q0o6vBVOrfVJb10X1FgDzjmDw==", + "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-reduce-transforms/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "requires": { - "colorette": "^1.2.1", - "lodash.difference": "^4.5.0", - "lodash.forown": "^4.4.0", - "lodash.get": "^4.4.2", - "lodash.groupby": "^4.6.0", - "lodash.sortby": "^4.7.0" + "engines": { + "node": ">=0.10.0" } }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "node_modules/postcss-reporter": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", + "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", "dev": true, - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz", + "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", "dev": true, - "requires": { - "is-svg": "^3.0.0", + "dependencies": { "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0", "svgo": "^1.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-svgo/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-svgo/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-svgo/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-svgo/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "postcss-unique-selectors": { + "node_modules/postcss-unique-selectors": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", "dev": true, - "requires": { + "dependencies": { "alphanum-sort": "^1.0.0", "postcss": "^7.0.0", "uniqs": "^2.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-unique-selectors/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-unique-selectors/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "node_modules/postcss-unique-selectors/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, - "prelude-ls": { + "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8.0" + } }, - "pretty-hrtime": { + "node_modules/pretty-hrtime": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "process": { + "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } }, - "process-nextick-args": { + "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "progress": { + "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4.0" + } }, - "public-encrypt": { + "node_modules/public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", "create-hash": "^1.1.0", "parse-asn1": "^5.0.0", "randombytes": "^2.0.1", "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } } }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true }, - "qs": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", - "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=", - "dev": true + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true + "node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "querystring-es3": { + "node_modules/querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true, + "engines": { + "node": ">=0.4.x" + } }, - "randombytes": { + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, - "requires": { + "dependencies": { "safe-buffer": "^5.1.0" } }, - "randomfill": { + "node_modules/randomfill": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, - "requires": { + "dependencies": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" } }, - "range-parser": { + "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "raw-body": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.3", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "read-cache": { + "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", "dev": true, - "requires": { + "dependencies": { "pify": "^2.3.0" } }, - "read-only-stream": { + "node_modules/read-only-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", + "integrity": "sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w==", "dev": true, - "requires": { + "dependencies": { "readable-stream": "^2.0.2" } }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "dependencies": { - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - } - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - } - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "requires": { + "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", @@ -8316,390 +9567,429 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - } } }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/readable-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, - "requires": { - "picomatch": "^2.2.1" + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" } }, - "redeyed": { + "node_modules/redeyed": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", + "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==", "dev": true, - "requires": { - "esprima": "~4.0.0" - }, "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - } + "esprima": "~4.0.0" } }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true }, - "regenerate-unicode-properties": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", - "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", "dev": true, - "requires": { - "regenerate": "^1.4.0" + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" } }, - "regenerator-transform": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", - "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, - "requires": { - "private": "^0.1.6" + "dependencies": { + "@babel/runtime": "^7.8.4" } }, - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "dev": true + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "regexpu-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", - "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.1.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, - "regjsgen": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", - "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", - "dev": true + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } }, - "regjsparser": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", - "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, - "requires": { + "dependencies": { "jsesc": "~0.5.0" }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } + "bin": { + "regjsparser": "bin/parser" } }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - } + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" } }, - "require-dir": { + "node_modules/require-dir": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/require-dir/-/require-dir-1.2.0.tgz", - "integrity": "sha512-LY85DTSu+heYgDqq/mK+7zFHWkttVNRXC9NKcKGyuGLdlsfbjEPrIEYdCVrx6hqnJb+xSu3Lzaoo8VnmOhhjNA==" + "integrity": "sha512-LY85DTSu+heYgDqq/mK+7zFHWkttVNRXC9NKcKGyuGLdlsfbjEPrIEYdCVrx6hqnJb+xSu3Lzaoo8VnmOhhjNA==", + "engines": { + "node": "*" + } }, - "require-directory": { + "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "requires-port": { + "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, - "resolve": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", - "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "node_modules/resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, - "requires": { - "path-parse": "^1.0.6" + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true + "node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "resp-modifier": { + "node_modules/resp-modifier": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", - "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=", + "integrity": "sha512-U1+0kWC/+4ncRFYqQWTx/3qkfE6a4B/h3XXgmXypfa0SPZ3t7cbbaFk297PjQS/yov24R18h6OZe6iZwj3NSLw==", "dev": true, - "requires": { + "dependencies": { "debug": "^2.2.0", "minimatch": "^3.0.2" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/resp-modifier/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "ms": "2.0.0" } }, - "reusify": { + "node_modules/resp-modifier/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } }, - "rgb-regex": { + "node_modules/rgb-regex": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "integrity": "sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w==", "dev": true }, - "rgba-regex": { + "node_modules/rgba-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "integrity": "sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg==", "dev": true }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, - "requires": { + "dependencies": { "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "ripemd160": { + "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, - "requires": { + "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1" } }, - "run-parallel": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", - "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", - "dev": true + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } }, - "rx": { + "node_modules/rx": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", - "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", + "integrity": "sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==", "dev": true }, - "rxjs": { - "version": "5.5.12", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", - "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "node_modules/safe-array-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", + "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", "dev": true, - "requires": { - "symbol-observable": "1.0.1" + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true }, - "safer-buffer": { + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "sass-graph": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", - "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", + "node_modules/sass": { + "version": "1.66.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.66.1.tgz", + "integrity": "sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA==", "dev": true, - "requires": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^13.3.2" - }, "dependencies": { - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - } + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" } }, - "sax": { + "node_modules/sass/node_modules/immutable": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.2.tgz", + "integrity": "sha512-oGXzbEDem9OOpDWZu88jGiYCvIsLHMvGw+8OXlpsvTFvIQplQbjg1B1cvKg8f7Hoch6+NGjpPsH1Fr+Mc2D1aA==", + "dev": true + }, + "node_modules/sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, - "scroll-into-view-if-needed": { - "version": "2.2.20", - "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.20.tgz", - "integrity": "sha512-P9kYMrhi9f6dvWwTGpO5I3HgjSU/8Mts7xL3lkoH5xlewK7O9Obdc5WmMCzppln7bCVGNmf3qfoZXrpCeyNJXw==", - "dev": true, - "requires": { - "compute-scroll-into-view": "1.0.11" - } - }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "node_modules/scroll-into-view-if-needed": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.0.10.tgz", + "integrity": "sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg==", "dev": true, - "requires": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" - }, "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } + "compute-scroll-into-view": "^3.0.2" } }, - "seedrandom": { + "node_modules/seedrandom": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==", "dev": true }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } }, - "send": { + "node_modules/send": { "version": "0.16.2", "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", "dev": true, - "requires": { + "dependencies": { "debug": "2.6.9", "depd": "~1.1.2", "destroy": "~1.0.4", @@ -8714,60 +10004,76 @@ "range-parser": "~1.2.0", "statuses": "~1.4.0" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", - "dev": true - } + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/send/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/send/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/send/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/send/node_modules/statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true, + "engines": { + "node": ">= 0.6" } }, - "serve-index": { + "node_modules/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dev": true, - "requires": { + "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", @@ -8776,603 +10082,677 @@ "mime-types": "~2.1.17", "parseurl": "~1.3.2" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - } + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" } }, - "serve-static": { + "node_modules/serve-static": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "dev": true, - "requires": { + "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.2", "send": "0.16.2" + }, + "engines": { + "node": ">= 0.8.0" } }, - "server-destroy": { + "node_modules/server-destroy": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", - "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", "dev": true }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, - "sha.js": { + "node_modules/sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" } }, - "shasum-object": { + "node_modules/shasum-object": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", "dev": true, - "requires": { + "dependencies": { "fast-safe-stringify": "^2.0.7" } }, - "shebang-command": { + "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "requires": { + "dependencies": { "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "shebang-regex": { + "node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", - "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", - "dev": true + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "simple-concat": { + "node_modules/simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "simple-swizzle": { + "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", "dev": true, - "requires": { - "is-arrayish": "^0.3.1" - }, "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - } + "is-arrayish": "^0.3.1" } }, - "slash": { + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, + "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "socket.io": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.4.0.tgz", - "integrity": "sha512-9UPJ1UTvKayuQfVv2IQ3k7tCQC/fboDyIK62i99dAQIyHKaBsNdTpwHLgKJ6guRWxRtC9H+138UwpaGuQO9uWQ==", - "dev": true, - "requires": { - "debug": "~4.1.0", - "engine.io": "~3.5.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.4.0", - "socket.io-parser": "~3.4.0" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "socket.io-parser": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", - "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", - "dev": true, - "requires": { - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "isarray": "2.0.1" - } - } + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "socket.io-client": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz", - "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==", - "dev": true, - "requires": { - "backo2": "1.0.2", - "component-bind": "1.0.0", - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "engine.io-client": "~3.5.0", - "has-binary2": "~1.0.2", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" - }, + "node_modules/socket.io": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.2.tgz", + "integrity": "sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==", + "dev": true, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" } }, - "socket.io-parser": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz", - "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==", + "node_modules/socket.io-adapter": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", + "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", "dev": true, - "requires": { - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "isarray": "2.0.1" - }, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "ws": "~8.11.0" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "node_modules/socket.io-client": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.2.tgz", + "integrity": "sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.0.0" + } }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" } }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "engines": { + "node": ">= 8" } }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", - "dev": true + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "sprintf-js": { + "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stable": { + "node_modules/stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", "dev": true }, - "statuses": { + "node_modules/statuses": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", - "dev": true - }, - "stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "integrity": "sha512-wuTCPGlJONk/a1kqZ4fQM2+908lC7fa7nPYpTC1EhnvqLX/IICbeP1OZGDtA374trpSq68YubKUMo8oRhN46yg==", "dev": true, - "requires": { - "readable-stream": "^2.0.1" + "engines": { + "node": ">= 0.6" } }, - "stream-browserify": { + "node_modules/stream-browserify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", "dev": true, - "requires": { + "dependencies": { "inherits": "~2.0.4", "readable-stream": "^3.5.0" - }, + } + }, + "node_modules/stream-browserify/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "stream-combiner2": { + "node_modules/stream-combiner2": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", "dev": true, - "requires": { + "dependencies": { "duplexer2": "~0.1.0", "readable-stream": "^2.0.2" } }, - "stream-http": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", - "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", + "node_modules/stream-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", "dev": true, - "requires": { + "dependencies": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.4", "readable-stream": "^3.6.0", "xtend": "^4.0.2" - }, + } + }, + "node_modules/stream-http/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "stream-splicer": { + "node_modules/stream-splicer": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.2" } }, - "stream-throttle": { + "node_modules/stream-throttle": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", - "integrity": "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=", + "integrity": "sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==", "dev": true, - "requires": { + "dependencies": { "commander": "^2.2.0", "limiter": "^1.0.5" + }, + "bin": { + "throttleproxy": "bin/throttleproxy.js" + }, + "engines": { + "node": ">= 0.10.0" } }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", - "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimleft": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", - "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "string.prototype.trimright": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", - "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "dependencies": { + "safe-buffer": "~5.2.0" } }, - "string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", - "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", "dev": true, - "requires": { - "safe-buffer": "~5.1.0" + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dev": true, - "requires": { - "ansi-regex": "^4.1.0" + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dev": true, - "requires": { - "is-utf8": "^0.2.0" + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { - "get-stdin": "^4.0.1" + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "strip-json-comments": { + "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "stylehacks": { + "node_modules/stylehacks": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", "dev": true, - "requires": { + "dependencies": { "browserslist": "^4.0.0", "postcss": "^7.0.0", "postcss-selector-parser": "^3.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/stylehacks/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/stylehacks/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", - "dev": true, - "requires": { - "dot-prop": "^4.1.1", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "subarg": { + "node_modules/stylehacks/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylehacks/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/subarg": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "integrity": "sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==", "dev": true, - "requires": { + "dependencies": { "minimist": "^1.1.0" } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "requires": { - "has-flag": "^3.0.0" + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "svgo": { + "node_modules/svgo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", "dev": true, - "requires": { + "dependencies": { "chalk": "^2.4.1", "coa": "^2.0.2", "css-select": "^2.0.0", @@ -9386,667 +10766,756 @@ "stable": "^0.1.8", "unquote": "~1.1.1", "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" } }, - "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", - "dev": true + "node_modules/svgo/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } }, - "syntax-error": { + "node_modules/syntax-error": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", "dev": true, - "requires": { + "dependencies": { "acorn-node": "^1.2.0" } }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "node_modules/table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" } }, - "tar": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "node_modules/table/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "text-table": { + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "tfunk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-4.0.0.tgz", - "integrity": "sha512-eJQ0dGfDIzWNiFNYFVjJ+Ezl/GmwHaFTBTjrtqNPW0S7cuVDBrZrmzUz6VkMeCR4DZFqhd4YtLwsw3i2wYHswQ==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "dlv": "^1.1.3" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } + "node_modules/thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true }, - "through": { + "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, - "through2": { + "node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, - "requires": { + "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, - "timers-browserify": { + "node_modules/timers-browserify": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "integrity": "sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q==", "dev": true, - "requires": { + "dependencies": { "process": "~0.11.0" + }, + "engines": { + "node": ">=0.6.0" } }, - "timsort": { + "node_modules/timsort": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==", "dev": true }, - "to-fast-properties": { + "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "to-regex-range": { + "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "requires": { + "dependencies": { "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "engines": { + "node": ">=0.6" } }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", "dev": true }, - "true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "requires": { - "glob": "^7.1.2" + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" } }, - "tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", "dev": true, - "requires": { - "safe-buffer": "^5.0.1" + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" } }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", "dev": true, - "requires": { - "prelude-ls": "^1.2.1" + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "typedarray": { + "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, - "ua-parser-js": { - "version": "0.7.24", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.24.tgz", - "integrity": "sha512-yo+miGzQx5gakzVK3QFfN0/L9uVhosXBBO7qmnk7c2iw1IhL212wfA3zbnI54B0obGwC/5NWub/iT9sReMx+Fw==", - "dev": true + "node_modules/ua-parser-js": { + "version": "1.0.35", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz", + "integrity": "sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "engines": { + "node": "*" + } }, - "uglify-js": { - "version": "3.13.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.5.tgz", - "integrity": "sha512-xtB8yEqIkn7zmOyS2zUNBsYCBRhDkvlNxMMY2smuJ/qA8NCHeQvKCF3i9Z4k8FJH4+PJvZRtMrPynfZ75+CSZw==", - "optional": true + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } }, - "umd": { + "node_modules/umd": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", - "dev": true + "dev": true, + "bin": { + "umd": "bin/cli.js" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "undeclared-identifiers": { + "node_modules/undeclared-identifiers": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", "dev": true, - "requires": { + "dependencies": { "acorn-node": "^1.3.0", "dash-ast": "^1.0.0", "get-assigned-identifiers": "^1.2.0", "simple-concat": "^1.0.0", "xtend": "^4.0.1" + }, + "bin": { + "undeclared-identifiers": "bin.js" } }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "unicode-match-property-value-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", - "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", - "dev": true + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "unicode-property-aliases-ecmascript": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", - "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", - "dev": true + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "uniq": { + "node_modules/uniq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", "dev": true }, - "uniqs": { + "node_modules/uniqs": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "integrity": "sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ==", "dev": true }, - "universalify": { + "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 4.0.0" + } }, - "unpipe": { + "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "unquote": { + "node_modules/unquote": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", "dev": true }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "requires": { + "dependencies": { "punycode": "^2.1.0" } }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "node_modules/uri-js/node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/url": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.1.tgz", + "integrity": "sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA==", "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } + "punycode": "^1.4.1", + "qs": "^6.11.0" } }, - "util": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz", - "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==", + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", "is-generator-function": "^1.0.7", "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", "which-typed-array": "^1.1.2" } }, - "util-deprecate": { + "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", "dev": true, - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "utils-merge": { + "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } }, - "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", + "node_modules/v8-compile-cache": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", "dev": true }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "engines": { + "node": ">= 0.8" } }, - "vendors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.3.tgz", - "integrity": "sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw==", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "node_modules/vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "vm-browserify": { + "node_modules/vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "requires": { + "dependencies": { "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "which-typed-array": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", - "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, - "requires": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.0", - "es-abstract": "^1.18.0-next.1", - "foreach": "^2.0.5", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.1", - "is-typed-array": "^1.1.3" - }, - "dependencies": { - "es-abstract": { - "version": "1.18.0-next.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", - "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.1", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.3", - "string.prototype.trimstart": "^1.0.3" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", - "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.1" - } - }, - "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - } + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "node_modules/which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "will-call": { + "node_modules/will-call": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/will-call/-/will-call-1.0.1.tgz", "integrity": "sha512-1hEeV8SfBYhNRc/bNXeQfyUBX8Dl9SCYME3qXh99iZP9wJcnhnlBsoBw8Y0lXVZ3YuPsoxImTzBiol1ouNR/hg==", "dev": true }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "wordwrap": { + "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "requires": { - "mkdirp": "^0.5.1" + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "xtend": { + "node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4" + } }, - "y18n": { + "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + } }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "yaml": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", - "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", - "dev": true + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" } }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", - "dev": true + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } }, - "yocto-queue": { + "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index 006d6df..86c8196 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "start": "node server", "test": "lab -a @hapi/code -L", "lint": "eslint .", - "prebuild:css": "node-sass lib/public/css/main.scss lib/public/css/main.build.css --source-map true --include-path node_modules && postcss lib/public/css/main.build.css --replace --use autoprefixer --map", + "prebuild:css": "sass lib/public/css/main.scss lib/public/css/main.build.css --load-path=node_modules && postcss lib/public/css/main.build.css --replace --use autoprefixer --map", "build:css": "postcss lib/public/css/main.build.css -o lib/public/css/main.build.min.css --use cssnano --no-map", "prebuild:js": "browserify lib/public/js/main.js -o lib/public/js/main.build.js -d -t [ babelify --presets [ @babel/preset-env ] ]", "build:js": "uglifyjs lib/public/js/main.build.js -o lib/public/js/main.build.min.js", @@ -58,9 +58,9 @@ "cssnano": "4.x.x", "eslint": "7.x.x", "hammerjs": "2.x.x", - "node-sass": ">=4.14.1 <5", "postcss": "8.x.x", "postcss-cli": "8.x.x", + "sass": "^1.66.1", "scroll-into-view-if-needed": "2.x.x" } } From 6553ac64817dd58146fce951cead6e4bf73b9b0f Mon Sep 17 00:00:00 2001 From: James Wragg Date: Tue, 22 Aug 2023 14:56:19 +0100 Subject: [PATCH 2/3] update scroll-into-view-if-needed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix the `Cannot find module 'loose-envify’` build error --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 86c8196..0c105d6 100644 --- a/package.json +++ b/package.json @@ -61,6 +61,6 @@ "postcss": "8.x.x", "postcss-cli": "8.x.x", "sass": "^1.66.1", - "scroll-into-view-if-needed": "2.x.x" + "scroll-into-view-if-needed": "^3.0.10" } } From e42d1c024eea9cbba0de394b1894fe0cc4db7589 Mon Sep 17 00:00:00 2001 From: James Wragg Date: Tue, 22 Aug 2023 15:13:14 +0100 Subject: [PATCH 3/3] add example nested project --- lib/content/best-practices/index.js | 4 ++++ .../nested-boilerplate-projects.md | 15 +++++++++++++++ lib/public/img/nested-boilerplate-projects.jpg | Bin 0 -> 710113 bytes 3 files changed, 19 insertions(+) create mode 100644 lib/content/best-practices/nested-boilerplate-projects.md create mode 100644 lib/public/img/nested-boilerplate-projects.jpg diff --git a/lib/content/best-practices/index.js b/lib/content/best-practices/index.js index 93ff723..7037e6f 100644 --- a/lib/content/best-practices/index.js +++ b/lib/content/best-practices/index.js @@ -12,5 +12,9 @@ module.exports = { 'schwifty-across-plugins': { title: 'Extending schwifty models across plugins', subtitle: 'This example of creating a general-purpose "users" plugin demonstrates that, with the help of schwifty, it\'s possible to create highly reusable, data-oriented hapi plugins.' + }, + "nested-boilerplate-projects": { + title: "Nested boilerplate projects", + subtitle: "Anything built with pal boilerplate is a Hapi plugin, see how your plugins could hang together.", } }; diff --git a/lib/content/best-practices/nested-boilerplate-projects.md b/lib/content/best-practices/nested-boilerplate-projects.md new file mode 100644 index 0000000..71efc64 --- /dev/null +++ b/lib/content/best-practices/nested-boilerplate-projects.md @@ -0,0 +1,15 @@ +# Nested boilerplate projects + +The pal [boilerplate](link:boilerplate) is a proven starting point for your next hapi project, but did you know it also exposes your app as a Hapi plugin? + +Hapi plugins are a super-power, and combining them with the pal [tooling](link:tooling) is a perfect way to contain & compose API verticals. + +The following diagram is an example of how multiple APIs, all built with [boilerplate](link:boilerplate) can create the fictional service _My Awesome Project_. + +![Diagram showing a more advanced structure](/public/img/nested-boilerplate-projects.jpg) + +Diagram credit [@yoannma](https://github.com/YoannMa) + +[boilerplate]: https://github.com/hapipal/boilerplate +[haute]: https://hapipal.com/docs/haute-couture +[tooling]: https://hapipal.com/docs diff --git a/lib/public/img/nested-boilerplate-projects.jpg b/lib/public/img/nested-boilerplate-projects.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1666a8f4185b2411cd37c0a45e5eba0ce3bd424e GIT binary patch literal 710113 zcmb4q1yoy2^kumIfPc%Mb+kF4f`X-%4p+Q8p7Onv|W>gwg8qasglWNbo@{S$zO`utO@Y&>88OZ^|us9u*d|Ms2a`9Jpf ze^=t#LOg9yU5-%)vj=K$004~?MU&e9OSAu_t^cK^{?c!}UVEYXX#J%<^mG(Zv@MEe zxBnls_5Yx4UVHrQAB*ZE1$FWMJJ#RwcXdx7uKK#DZyeM?4e$i$08{|-f7g%tjVf-1 z0D#y90DzJB-*wiR06@zJ0DyAgzw4Mk0sw?z06_EDf7kstPhMMjSp9Q3Ow<|O&JF-L zEd>DZjR63X9{>QJ=|63#)Bj~|^r$9k)V$nKAA5ic00N)~00FK58vrkg5(MxA1OOs` z76A$X4D`R{?->JCFtITI791?BM_9NxczC!txVU&v2%q3RCU}gCi%*14K=|}2(Nnx9 z#3aN|Nl^6DzZXIK`%er^9Mm75KE{2Fs{Q{gf4%^SaIo=k)G^Q)0q8_%7({4)z5!_e ziW4Tre@P;0P1xudSU6~yk8tr&?LJQdXy}-zfiZ9%VM4u3K4|J$?xXphiQyu(H{ z8WRD~(a_N!Vd7)sVm(4J<`HU=7(|#1kB9~2w5{Be#<569$ruH7-X#~*eLW_ZM@^}I zf=NhN?|n*P&l>X!1x3#j7Mr5Ub&=2pY}Q^1eOR%Q?djQ{1;7&w)VM?#L;zX9Z7GgC zK>q35r(yJXJRy1Xqs+T!FM#{vT&%MWdoJLvVowfvQ=RVOj9l?=x|upnpm@m71qkme zwW@9ViMDKXV>u{;68)Jr1;&`~nRL3AQ5S`jOfdDw`o)~Ip>*>ELtk|-_s1@z`HIGL zuc!sm=aAOQ@dwnCrHd+VFC3?n1e2Vxttc<87~%g)%55EO}?9hGSBACa5hP!5L61UDEjo9}|i@4142n&W>tuF{f=M zcQum|iQvJ^noPM4 zp^gi7y@Vch+*fb$%(ga!&HfPFD$Q7NVKkL(mc?-Cy;nBW>yuku?CzLGu3uXVR%TnA z#$f#$;(_Z?I3z1OzGg(bMy6a-co2D zEoTn-5Z7RnZJu#U^U{iw%)O&BJ-{XGOhzg~EOAl2grJCH{zJ8$fhjWbKee9P~MaAi}3J^q-7H-zTOF&w(>vN6YRcv1YXR?&5dE?d9q2t0Ir$IzI zek~9Owq&)~{FaXh2{)ifm5GLnapxaE!TTu>A--Srv5mh|#oPK{DnJX4Nzd}+7YT6|37U z@Ttk6-^LjcLWS!e0<0PQ-kH5}gj7_{dE2XdL5ctxa2A@Ot9{T|dJFwzjN!a5 zEPMS25TUr?m8IcYyuXpVRi;!Qu08EkAN+3WTdsh(07%~P6v}{HR_;>;f9m0RC6%01 zdr~KWoZQ?z?h=@9yZKm3*fXMDlQn%CK`#r8Bb6i{*T490-V=vDy0MbzL-iqNH?HM>_G#>q>7a zOC&c_ZYlJtn2u!XoM`4Z*^ke8zTS=y%H`#juAPS=(ZT5bbkM$j?#wJC{Zk~fm>=B0 zK37mI-b)t_)81ui43vC(NOT>wsXw(Zg4s_NOk3tLsjgFYo$R=~8-EOhu<(e8w>AX5 z-Cg&Is;WlVjF!IT}w{GH39hE&!0sEcH2S(5{ zssDcZW9XEoTw+MPqeBT=Kj!wk!Fs<)&3CzN(b~ZHHu8N@Zz^6C%i^&0V1xBj7^^X- z`wk&y1pEO?hVt+z;L)6a4TwyNK7*Wk6r?QA0KQcp6z2>%tR-jM5eodWbDKuQdRe@>N5K&b|V!| zCI{(FW>l&*=YsHX*(1UI6fcCZKOtG3lVL4>m{*D2N}p~_@c<8WazVCzo21V2O86$P zwB)2dDB>5$xp|0i146lC=oT}2cSrQNzKZ`;zZvS2ppCC9=ILMmdvs`nM^L>&&Fy)} zGE98Vr~A`M_sO?ef}`hI?5C7ngzd^@5t#2lMk-O#1?>rnzk#(x5_VUbCw>RGE=P~=&L0m*l=fB#KYO~-+5}Hoh8ECQxpI98ia;ts!Tqc~9EI@*s4&S$?jC@imhNH!LMG8lqzq~0Nk{qkcAekRd4 zM$mjG2~T22CaJy(6+YF7{krp!F4^xU?uIDXEjjC1i@w!qnpWKM;wtN6yG6yb!19U9 z>4QZf*CAewFgcaATi50mR`}k;rz9xkNo$!3cCo4TM@hA?(1BH7bz9PnCRsm@i!uuH zmyff2)g(x`Q;@4`_%qc}$4dt!aR!Cw^_jir5A2D;K2kpWarli{0%1&dd3KgE{ z#F&@A*Y)l^ja%~W^VF6$C^`?o^y;tedJHuLv+szTFZ_1ty2~lys~_PBxE$#qOV{in zD7U48Ichb{a2!@9E<&T;MCTZ9CLMRA&_rocAqQXax>l$W@O6JIv0&)x(ozVuBEBa8 zF2oLe^A>4*ij!<*mL-Q$q|}Ykl|{VLRRj8LeMV!@IeA>kOsMtl-BTGl_G{>jKn#Na37_k9h3%_P%)v+c8MA zE5VdDX?Rq5nnJ2vG3MNm7KEPnTKGQmb2%VALX(inuFDDRj+0GYST#ZD8 zxY;!Tt4GXz{s{xXsaLs(3-RQth}NNsQk?XJUl z+718v;sSfdAo6@f$%_M5iq}FOeVbO^4$4bN57d4>{ln!iTRV4gYk%_A}C zb1DdPmJRWPxvoC|Dpk!Qm_97#u%p(1ggGyocr>4pkeb;ps)b$NM zBivot;={pO8`(1*9dix4et!UM_7QUX5ouf2b#AJ@{$0;i2Iz|KRs?3e`vstiL!wQL z+96Ns9)7(Jl-rcZ&mI*pkN;U&-s-D^AR3f(_w&0EA2>P`>YEvaz6p9P$Wj8y6DTLu z%kH6MAVz``7oF65bbfxWakWpIm8xkmf)BU$c^kJyE9Mb>*?oc;6){ivHYKF(1JzaJ zj#Vx4iTZ_q=+>qck`f&{h3|^Coa&rbbiK+P_^{}yt7D{`Ga{IU$j`JGuE(EQA6#~l zu{{h2$o%{6MA+T>Dm?}>|K@w~T~?|u*@@&5QURGRMOZPG-uGN(8VBaa%XU(zmq} zDB`((zQVBC%u^$45OSy_yx-9`t>0jziTTwbja?=lk&HycJ__?>jyK%IKky{2L0@kl z?meG>Lij#$sqnp>C4|?g($xeMxih3q-DXCazDFjWx!W85$&Gx4p3?&&duWglai!#; zx;s|vvt-VPH(}}+-q`#DzkcD3Zj3Z`bW|JLf;wpb4d$fDk&ftWYMSeeBjltu{(jvx zH}#79-Y@Z91;^US$}x3o=8^Z!2M5Pu1}B}d_>DxQ`m>=WeWgSXyMp(xpZ5U$cFZ3$ z?tFai0+<6}&k~Q&Dt%esoBmKbVGf-1T!wV}P;APc#CNtD@Z_lP{ft&DKjNMzKTl2Q zW)FOKqGAzDlsRI~g_VAxSETpEY|i?1a@i7zY) z1VnB>HI{nuei>0`JHnBAAJWeCad(urb3cy~-aOnuk8%}Hn6GkPpP!weSOPf>!GaZT zUr@xJ9>eS4>ECs zW_+m9zOhth>auVdWEnx4#*&7uW<}yItBj$1-$umic>apv4vnNQVq`dJ zul?03>veFk?lX)uzHU`${)E1^Hm%g7b>Cb=2)z@kVbYC1BOdXX386eyJy}hRwkv_Z zh6`HcGw@nudR=-9W2|`hwlQB5I2rE6!au%F>ZDQm)M=j{cFo-_@(5lbQv9)|&AuUi zHLloHGU6n*aZECRMGFA3zY^(a*;zx_EOg(%QkQs$1v%N~w~O+uweVa0m}VEX=X3 zk!_C_&wL4mn!)mN#(OgJT*%7$c;g{H*$P;HcZ$a71@GrWU33qJMA4n_+=hF8S1cJH>$Vb*d_)6Ik2t$7i~tF zZ%S#aHF#r~4>Ogg9dE*@oMhk0owQW?Af4|I0pFAV_i-n?ErL90>I|#zrk4%ULe`7>5<=H$KZGXxA2mxN zD?2H-a_Y}++f;&>i=ay7%?Bf=b}E8mDgt`&vCr>b%d72bqEzf9gz>i#+l=Va(m4%N zd5&bfJ4v}K_|dCk5JCncUibsEOye0yk0glxjB$1=*qvkAp008f1>|#iSm^x&7YO!0 z-XCBeN7DqeujUqRDHm`>FdLOjW`OdIo*;&phRRN9)YThB$OZhTEuG>HQHmB6!+nN) z44n4R&^1|X-fTU%UQjw~%<+wa>A;Ugu!P*0VPS$r^QGmf%eAx=J3p;keu-^IXo5

CAY^sQh99X*NE)Y41-1oX(=(397$cV^oL`Vng`0}P z(hd9Qcr0Us3%1qCBf8REoQi88sYTQce$YPvSM60%XD1&0vFu$YM{cGJ_|`PtS6@Ee zL0kncP>;#Wm9O-s+ERmUyR{44L*t(4t*3NJU*~v;lWU%uDLCO|7|p%)S_We0R^n0* zU@^Dn^j^RB_IidL&Ahk}3}OAgY%F)9vOyc_>b_VGZjw*2me1r)9g(zShU?Zc6WD*n zrAqnXmqfB+_9FYB{y=--wDTX{Tx{B`O0ytV*Yo2uF5~7)xcU9-*9Kp-LlL|3`IHTML4~%ptm8jjHqLFElz&@Y; zMM#i-dMI`EifR34UbEsVCN5btr|Q5}Ry#C?51u@a=5KPS-Xlun!PZqK#;R1zfNaa4 z(JPskDtcNc_x@J2F`>t=(o%hSoa7B)oyEB+<+JoeUCkm$M$Ph3X@e|tbl4iMMwh_J zAg=6FI+*`8p%8`r4&?YQMo{>&H-$HlxI+eo=EV=b$~E(s7b{cahiI`-Fkca z7^v4CROKuam=69vA&^(P{Va>rSpC_1U8z&jkHsQzACA8aibxb~+ohl_+CV%K$Fj$M z)yDvX*TOGj+^0P-rrTlQ3v}iMFIX2A@a8slK(BZ8@eBTL+jH8l188R|pq$Bz`OVpK zT!t{ql^cl1OW7dH4ca^!DQlKOZwTdO{~|nqt3p}a?(`4fO`?fX#yB*p#!zJmBg zG`?&@kp)coiH+ppz3k29LrrYiC=Ojg>hJj&RwdF;m@02h&7~x8x_#6HEV6`w>P+v) zg_{vG&5PRmL<1!5ufUqYB8_?%Tr_J4PX`P9uhH_{;gj~{dlhVn3rKANRuBlWR_-}T z;wfD`RNVDKu-lcd>{N9QGhY6S8>x9MjXvDEKN2;=v@zJtc3qtBf^kteWPsds;*;6aQ7+M(0Pbn&k$_B81vmg&}x88>=E!8^}8N$ZR-TuvK0KZEAo z=(U@~7^BoHWG-gM_KefoN>5yhBUBs3o3sr_<9*^_0cInTAFloj<7QK7uYMF~LYG)V z4UzQ|dS>qZWCN~BQ-SJ0Vkpom+O(lzGDYX%D(M@e?;*7c?%~IEB7h7$i-yfS|7u?J zlRX{pi-IE+^J8NU3bvi4j1tWcS>E<6$WAc+J1Jr4in2mj!4w{#mR~Em0;BPrGTQ4@Anr1aO$h2fp=MLKUWe#+s)%I!9^DtKZ zsC6DSo6>&ZHPkZgbk@SKe~SIgVPA@I8)dHh=8Y@8EG5jzl zi9g8ZYWpp5!InRl$(uVhckoC8IcE8Svt4YCH36={qs^w^_ZmAY7qbPLhVpnFb;`K*E$i1iX zs~VH`wJ%kC>U2XIHE5HHMGq_(&=XIW4p^H^11 zbD?e~z+KZM|#?KhD!n4hp z&|2?$de!-tvf-{3h@Sw!Qc5j4^AE>XV?&1+~h-Qa`=K}6vWBNax=QlOYfRS zdp~xn#ywgu`wa3T0;OAi{dk&bBsCU|M%$yJ#nhtrNt*u{J_#d6PL}mUUk`<_U#ARm zAm40?_BjM{n%4`aJ8O;ucQ`EBMuHxK!h=q$0>t`FgH4IZ)veUORStKlq@{m#RCt9O zF`sPWb%bOw=q?mrOhi7h{IpgX1ca2Nvb?AEp2o^>B)v#&tw9SxYhykjP7XTk6)tRX z4Igj29x_Q_xJIz;#lrB^^x)BR^SlSAq7l?Y&Bf4?fQjpj)Ed$tz$TyN`)YF{0-nip( z#q0&^Xc_(}JeW^MmKU`<{JqQ}mMOu-Bc(Jsx}$R|Fkh4)H(U*5_*Y<7lLrH#OfPMD+wD^h~VAbz1hL!E!Hps+8bWVD_+bb(kIVxbdfZu?557kc;v>TXxw-#&;#0vEWP%xdm$aF3d7YbvN*O)6w`M8u)dzmoYhz%#Gwsql2i+P7#p zMP=w-0?^j1NGCmpX!P)$QuL{1xfbZd;nPZP?eFFAbmW>FtVS=Xe80tU@pfv6Et`0A zDv6kzY|a}j*GH_TNy(_ntm1SSuSD?-80+?KhI~A%ahw4|;Yrb~U+(}R zF<6LH%MlE`oW7lm(pPqr$kmpfp`r>;`I$8P?TE4qE!l)9zK1XnG)**AarV@@}|eVfj9VKb#os@etn!&{=6k}Y2Da`HVA z?*;C9m+HQzwM!ql%_i1MJefE2-n+!y?Ph&vQF(rx8nnhkL(K(lpw~esFYn}jc<)e@ zleo>6Qpm$4n&%xBd?1nzbfI!L_WkQ|Hw%PvKbce2fW5Zloi%KI_Q`($?yET_LtneE z%BZ^(Ek+HkP4^ui z+n?sV;O366W

6eV=86fxN|UOh~gmgm1jcUSh$wCQssfLm1pcNLs|IQ<#ppD=t8d z2t$$M16Eq?dHO)@pO{vsAvik=BxzkW;v9%^Q=P@^Mb|WNu)D!bBecy)Mb;2VA)V3$ zB8_Pv+`tnw1@iKMdUf_Vwa-K)_W_q^qyx4qY?&_lPGWgU?C>Ixv6!n-SjiP;TzJub z>y~fwCS`DkaMrZaBVzSj9T#qsKY(RD*%xDh>K23SK(~$la&K}}4&}XyN!>&Kr{Y}$G(2ax$-)yM z&RkcF)`f5HW&^xd1I)^{Uier*qHXgyiq$oSso)ro2jfRDW=!JZ-d?)8V5;fk?)sBv z3wj9d>K+D?HsEZ7ku<;$ym?vN9g`Q>J=>Po!1RQ4<^;^h)VWc-`?5V}Xbx=4wz;@r z7{sUn4TVRyHP!=x#p3`KZ72jCH*6*seoGE?R&)t-I)n&AW zWGqupzPf}?2}NcQ6Aw*TD$yFV?4T`k)CXx#t$H@apLkRxR}Kves3q12-<|jSvaMul zrDY@6_v8NA9P}uV=ahiHdm#h}y z$!LtZd}S($7#(e_?C|3g7U6;XG6Or7B`+5QB;%0vH^y?EVN@efco$eHC$=11Igy>_ z>>rrb%`O}C+S`~qf;mBYy}Wp1Iuou{=FEV*;C_CpdPgb4RujP+Sa%~@2)S_`_w6j8 z>KHtE6CgdG$vfbcbsXRtu$*R=jZ+P#|K#l-JG?3MV=u7{v~(z?k;y*jMC>;A}rGmz3pL4UEO>sA&kTEe*n8GKQFJ+W_uH3ip2tZyfe3MSqy49 zhO@Cd><(|gE*1Se_()ST6$%YAE8ip_a)M?l@xl#!+#gP(b6wzRUzeTG&>sM1X5Sk0 z^IYRNr($EID7o zr(3tPa*TV~c;{@j@id!tigEWNXjm80UDGjJld8baZ}qQ;^KXS^4Pmc z!{=KYq*EodH6xrc^i8b#c#{&R_%-VYa022l@{G%869(_BJQqpRj%#?ca^D%*|9JuY z?cj9CxqH-FxMWl0afP0lk2WHqD|yyM!VlW|LziT`D;Ym}-wa>xAn zlDj8`VuRtb6TlVBTw1oY&j>EpdtQhT0+$XI45oME>A$OG`?i>@Vp+(Z?gYlurTa9s ztya?-V4OZyy%&+JgZ%@Rz<@nB8Wrtjj!JHAK_C}~-_>A$@0948&#rx)r5hI$GED^n zCy?Wn=F!S3npL$l-hm*h@7M}ny5u#BG;sq;bp+Ng9NrSWo2VB8%-D4u3%7;uRxR;|3T~H9 zU(37I2Vz?UHpjD_ngTS(0>%{KQsl``rUtXT!byH&RgmT7tE+lv#rDuS6Z|;8b^g^p z?YiF})s!z2MHB4M3D`c$&x&yNET?wuFQIGn?=Am1c zo#BX*^SFx+uZFp%d^P^(%^HxP=h_|PtR<}G3?il&u1xA zgRKVpK5$xU>uRtcmLzK+NJS@VVzI93&|Qlr^3OjQa+&DMAYEV>UWk@c;=o{?_I&m; zq(}1Hd6%+xahrn6Znp8~!=}*S5n5bKbU6MYw?xKx%zkhTs2htj&iO$@iTTFty7cq= zEm5n+EpIk36`Mi!2`oE^Vs2(TKrG;?u7C!uNt;TB+C+oHWBGSWzQxy1eHf+Xe8V!+ zGX{p0gNPx!OFUZFz%*jKrNkv>iI>+c45Hi0Gc5F($@y9-<-jIcaE8L^(MO(At%?uK z7g*A)5fjPZm41AKKR-r*9-8`OueiLz@x=T%8)=(3d~24jU)&q0xIPUtPwjac1_)yS zFyOqzk$;NL;d$tEmqMn*8#H2>Y=e7Unc6s|E~HqbZCjR+{%q|+ulC+p&AHie_UUHD zCzBMLf|s0YqIKJR(63moaN8N(soh`Y0?N>BJ8XxAh5R7ZAASJ&tFyCC-!=|88?r4= z58t>jNmh#tN8*pSA1kk>RKBmQFE#H`M$`4p^F*fesAuS_5savlHqx;0NED1P7}V2X zILD%tEK{+IYP~hBRbiz+m8>bkaw0vYHLkC(NqQ6W3u_-H^Lv&GZ8qo>sbKazpS^l8GqGVj?Um0D zAYgw)_13^eW;TKUSv@DJxc>if3kwJ6vsH8&mMyFd*tnzJiZvGyM+FhqAwQ?@eHlEVRPdNtK*j^@i!9FUH@dH{Tjj zv)SZz6D9+8_;;pEpCwdwcXnkOFl`v?2QPdM*HQ~)15mgY!;R!P=dN9aZ`0KfR)%lY zgdWh|C1I2KOY$VYb35;sez!Ia_S-W7M<*T@PTZrsJ?OPxzF1)1xNL>)In$KnS#fY) zaLOLP{i!V1go1`uDu+EPo1L+E<8Eqtd6=&jI+M{4I~ETJ~~V=vMIgqM}~3@fdd zdS=$neNx*l65d7(9+2EN$;wMB{O2UmoS8hn-n?&I>%+=^u2fngi8%RP3ZA4EPinK_ z-%Yo{|HQzyX24b=a;Lqzb5kU35{Yi0Zy*J$N!d8-`(cu1Hz)#983pe}4Biv{$CaP| zyL>^*j(yEAjd@smvbomM`O6d8LJpmA);Vay zf<%MWIyma|=@C{0N)U=rf)K}aes&I@c{R2fY$$5C(95Y?exbWNNe8^v)CLZ8R;9XJ zX1KeGRgILEh{|q=P>0!9g{c*{x1cW@3I*GLQNf2*O*C=Su;pHIo}LoXto`@{sF*yr znUXyDd)rXz@GK{Mh_AgXf~-n@hGg=&j+D&qMc?Cr;hGFX>lG>q83~juxNjXNN?W#~Fs%_zHJO>>PFf?U%}dG9mM@t{ zDV<6qhMx5~?FUl_-E(W(#_E&+E?=n@Uv)h1%|e0{{Vz;ib7Fx zA-H2VN@L{6I`mp|*zLLu_1xBN>^LGf0T)unslm@zs{aOi69&I63bOBBI%Pc&iQWqud{2-kSzA!Dv;14AD1;a)(_XF zsQLJl8>TgxjKOX9YBE{$SPgZcVP%b)QnKs^^6t^srugAmeWWl3^x5;7L-5<9Aoqj- zNjg(UonHysT&j*C@UmUC%Kp{CC$*r^Csu`}dLo_seaTYbkUs#*))o0JPY2xJH13M7 zdiEu};Ny)&XWE~vXx##Zk1D)_kDMQr=gitsma5|9TC(f&8qhc_fs`%{U5(OLQZl0?o2g# zYcdFyn0;}YSDd%jx1aR3maBmRs@M!Cs?CP2k8@+IYKz86UPMl2!wpMRG%6#8uzGSc zdcRef<}d$M0qkIQO=U>RA(GPF0g4^6JV~K_EPWsLW_e_(-K6n86#>A1S3mk7)g9T` zxjOXW>0F=SFQ^QT@#j+;iimwH=m*+J;tI#vdi{`CWChb{-$mM1?L5E*o;e@am3!UV z8H30adBH^>4#&vM%V1Ht4oJ3X&DkCzPl1aSBw~kZ(*5c;JQz!>{=6t1wTSC7-{?b- z`=EX3c^r8l9aEF7a*cbi5Ojz9{9T(bNgPt#{y?Pzy23r5-G8^XcXlEGefBJk#QCu@ zm5~+Jv)){yTWcMqd)EJr)*gMyMz_|=%aO^lDiPUopR17AJ(Z51@Augiy>auS30 zr8<&mD(WEZ3CARh!oODyuMyNJ;V})jFvKUW+p8QMe){fCdMtgCLO;pRp!Zb`0e4u8 z*_b+UNIJD>p159*uuvon+7%Xa#db}kviO;Y#z;5y3WsV=^|PCO+4*)dtkt+9Wqv{4TijeFIg0=`fSb{!BZU)7fEH37bt7(;g zx|z??05MfvscgOrhzLXLI~ll*B>^qGFPMR1p#h$_*gkM6Rsl@}sL< z4>YeRZ3Qlb_TzKa(s|Nm3#`hrU)}fy33%8@yyhOn_cyz;dt+X9^d=&rg8Fl=FAwm^ z&}Xejrepz2SKcxTU|Ag00`8)viI7aDs1-;+W=uVq1^afMbT(5lu6lW*){v+0x&5=S zxrH)B7vJ0nYRhb7;qxlxuC=Uk`%7grmCMw5DN6aIe+xkUMnVm`oHTS*caH)(2#adA zBb@gw2Z~Vk*?IR5fVW1y9bqz1SuIcc``X2QV(G9)_BsjqQFnQ3r_tQNYfYGST@!^Gx<(1d31;U$k58Z+ie`7-De@Lv z+3+Ii=2eWy%yX7mAC<%TxK6!*yD+k(Ohe8I6XoY7Fs$B5l&Oh2`ueOtTnjFA2xg2i?gURfezjJnw)7Zd9iPqzWAcSi;Y^r;Pzs*Zj?+HemO-X4=CTx|`E+vQ2ZXW~rfz_PDVb`lwS z!<1UNYn8)aN~3jHI$0v_n^FTa5GuuLd=J&rneINnQW_gah^3E85zN4OkV)>n-k&D( zR)?lHB@{1FA{i|c>mS~ne~LUGsw_iU8d9dU+S{~3AloD>;3m8)%*2gJu*YiUhgBa| z((7!n`kREPqtod8(MsZ*CneTF?6O{lT}Kux7#*``N}4;aj})xR{Ms5T5?ST;&^C}q zL<_$uPT9{@J~=!70dSV8$GF)B8}Y0v*${C4rXXjtJY>5L9J{sN997-2!FePGaW)nK zp#qbgYxg1X$#k6qOuVpN$z*-{`>E>UE5AOT9SaMJm?M2Vxu#@kwBLlA|0(v*Z~uxt zQ<@+Jw^nvXgkC9GdqOG7tpl95$hS@42@l zs)GGt^f|?$${@{XoyplGkE!eMOwQD!PtH2Vq*BS+5YnzrDj1s zZaa#_wr~Sj&@L+c`!}puTO;epMa3131xD#=ua;J{53f!cH|7`95NIU=LN*2n?Q~zv zgrAD#(lOFWMR#aZlY7n;caR9w66lN^b0msOv(nf~_}uuyZr9sl6A*(wh|%Z9s8<^# z1-#i$F+S6z38iqGzEtgda+5st{tsX<`uWIRi~AY>A$vNmMz6#E>>26_uZ%&f-;@Ci zDutLn2U6YMmKzcWo0>*~bG&O!96R^}B$HJ6XseryFk3q#C*HOQgJ4FT%=s9SndSTY z?zy9&mihy`4KmONc2}2bWFXekdZXQU^S5{c>XF7&=B5m?ilAN}!AtoBMfHH-TuTX* zyOr8hHtMb(F>-$y_$qTZF5;bZsaVx;JYw9d2)}%nDn(Mj_78wBALb7nQSSsPK&|Hi z;1?X@Em5L-WG$I~{)K?Psc!|WKc9uYFIsnd#!YAA29b~^67a1OX&yygpC>00fy&cl zctgxac1lE00L+>3wCyUU6rY`;15VdrCn^oDxqp-3IE?s`z|J7nlS~pcnEmqegkP|4 znP0>^^28zEo> zmEp-uF|g@F$x|0pnCFm-eyI)r^)3E-*X^I+t#@^xv&L_nbA?*JtsSMggU1&)8Gmob z)cY{2CVWODN?dId*3M32o67qb*c-fo@_XSZHvnvD3C_>sV}z?44CbfnJasKvU`85F zKI6gvxPlub>{uT01hJfw! zbG3`8Tb(_Afuv`8LqYoz9n5BBx|0-_d3UC%1D$oRDRO$9(0Z4Exf%1)GB?9#u?HX$ zSFDHg+_4QMw+;_V<;^pU-X6Bihsb}D14XoVj&%P(EP#PBBy^0W(W);DqfBM8L~`a2 zpm-}}l1v>1790O&4Pbi_Ad=k%>N}LZ+PE6K#Gv$-%BMFws`pZV6Az_-u}(1xTRL$7%tk+Z)2;RW#a@p%gYLwXyS|+7z9r5- zNy=m43>tB!Vk`Z1|JqoH7i%K;3C+OXeMk*^LdpW$g;Q{te?+j?zt|XkMi~O@&HdQx zq{jG@P$Q##4CUzJ?K~8?N#JSx<9y=C6`xmO@#WGF`FYF~xvs{AO#pPIw>03FjFY(B z1-e4aKJiAM@XzC;h-BHkz{sh4oC}iwOq3|jZ7|nf2oXr?eyP_LBm+`OtwMy6uv3-F zxv3%uZ5k4=NA7VZSXvgRyX8(J=XvfF-GOTov+4uO*y9np?k&8HyCEqtM+4Wi1hj`o zP2{EDsLbE4a}2w5<(f8J-0`sN66+2&StlnIkL-#PzG(5D%Dtq@C)P{V+U0qAu3>TQ z@X2Z3S3A1i(XD>)*w4~`J~!_%@XdFc{$iG@H$M^J7eTWDVwDGhd74NoOm;Jmc)Umv zOq}R?Q-Q_mp$eR7w#N;pxc8%H*}RZqn`E}5s2g`Jt`F9 zzVXlJ5G>TU8LyXPcr41$1cfRlc@pPZmrv{1stSLQ<(!0f_hCBa21zZ_;(xqFN?N*x zQKh&FL@--cuVZ&O_G7^c>H^sJ(=x$AK_71Nnzu-O?cnY259$Zt&e^b8)iQwBAF)Zdi#jm3|Yj_W}?cD0pZ!a90MWt=+! z*}31|WPkIEd3j#G1?GAorZn?A^*dIW7f2~;XRS>n`Z}Z-So)~WGzc<#(Yb&(<_-Ih z9d>P&3_Oed?&P*=pPjWolw4Ik;o@8oz6Nd^Rey3S!FS^JqmhN{*z{2YrVs5_>438>pw1oC3Jzrzkm7pa_%=sTW>W z<6yi^VARY{Y1C&j8r~^MG4kY0<=5Oj;Nt#>+|-k!<0mJl@@C$F?UI2zOY<$ACiF;K zcp7`7j!`?*n-Zv3U45!_JWLg1W2^>uW5N^tn7#i#a@NrJW_;Y+jFyiiG7GpOF4w%e zzmqp+ph8`Do-*|T$I@mrKw3~LxBsS8?Dv%TlO_d{Tl6ViLrBjASl1adS={VquE&sM z+k(2ZAPgd*6Zewr`4FdjKdE2hqbcC=-8lW=;Gk8ze~vrEnay;x!n<>AZym_`#jih| zzs26%!`e@&_{Ehu>sB$X2J6z2!9wIFeuU(A@8i}i@(NuNnWY)EFO7zLp{@ZYcLR|d z>_cDmm@0nzeOCRV8!03`_|1^bW1d9RQ%x3G#K2%!FRwJHMb5gBxtd7M*^-rd6+1Un zQt})+ks3Dr97hW{-#VSK-h z`BdXePU2sWF(6&?%vyNY0R&>p8iiVf{A5842A4^%p$Ms_4Q@obtG?ikC;KG365NF3 z;1gL2oU>Mc>VMJo)?rP)?;G$4MNmLWlvFwd1nF+rh{?u4I;2y&Lqrge9^J43qjN|r zpft$nR+Z-FR8levPY7HruqA2i+z1Ry!2td;k4)sS8Ro-dYu~Ny)T2QWJ?j4 zO3anclr$xGN5yG&p#SZa@T#B1@2|eI{{R#WPzQrpro<} z8}bJ5X5;yYv@*&tehzCgD;niita)q)nj#IGpw3rkl=NC+OM|;Hd{0wgNgueQ2>F}x z5lh}fl!5hT_~OHpLiK#!9TQ7rvq2U?wnek#i37j^;0!xP5B=W2c&Hr(!{=;EITWioH_gn%X@!%Nwre$}# zd^Bv~OXKac#;ki3!wz@t(y<3Uc0;;eu2HD@oZV`ARjK&{AJ^HSi1!%X5dDa-%;BUUF`GdE9hJp@lMd?502*C^hBXkVe@E5OrPYOf)}@9 z{6Jj};kBP~rc!$Gdp7(`+qh;vZ{-D%b#NP>RKfrQ^JuGfqGM!qyy^~ z{e_wg-y?_wvd<$8zl=Mh6aijbo5sf|<(%$%~nK|5X3B7xs}yV_Bk2@c+^}}5u+}X6d-~N;Y*K<4Mw(J?oWzg?&C@=` zQ#4ucf*muBn?myqilKYjxk1?>swKHQ8geU(w-17%re}E&L%w^dOfUOQo$_|A z$s7ZS>d3VYA41YoOWVWQ^k+#m(T$>Tq}nPq_b;yiKjlWANZxwBiDC$%U#JpN$rbeL z#7*h4Xft}p%UZ)w72GMh9y;C;b96Zz8=1&y{!aEtk($vky{s%Ln53mG=WJd-U>2hm zOqG+$l#9N}HS1A2ewy}~Bx__$l{tZ&jckmRyY++POzy;oT1NkP3PQctS0DL%lHNDU zAX@V0?SXbE4H+j!&N)Bw7nCOz4aM{&RWA0{;Fn=_{761ET;VXX=}HNd9`fMmnun%f z=Mo|t7`bFC>OTW0wZ+yqq`F6YQ=+}6XGoJ>}d*Zaj zx?)B-f2Wgm%U~Y0hFF>tp2)CT5iiks1CtI}{@b?M1EGivqkznmyTKh6H|XeWzne;0 zJ}@F0f4-M_y z`|68X+-v~uF&cP`3LIT&&GD$D@y2B z%1|mcrzu5@gEmtwGWC2?4})Vtqu91(Mg;%(g3?&BproBU3OcaIV+fnwd$9_K5LtP4r9)@o1Q5#7tGde%9{K<4o%|WfZ_zHej>{Oa`wavl|Y?C zl~M7(x}1iHfktpiUCL04l!T2MUx(n0&QSUfZ#j~hYsb6n zr0$u~K+A&R8t%BH&nwSAcznXo>HwuYMS{3{A7|B-5GMR0f0M!(KkS>ajTxOT{-l?m zx3Gu%c>s@(={>N4p`A7bVuEr)b`8BG)Bqeh0S9iUk&E;9CB0##3;OcYbJ4)k(HlKg zI5nbu?d|G!Y@@OJp~O0(DCn;~+gIm{8HL48ipifF+bFNzU$eW+yF*FxGSE`P%^rd^ z^R>SeaCj|CBVUfP=%Bi0{EHd@8$DT`uJ(Q_r(%M}BcTM!q|~hY-xBzNGJp-;z#%WL zhE3*lk<8eM<4CB2;?$EGSc?;Gsc>AE{+!GC0)w%t<_eXUVW#}|$BcXfdIDa=X89UQ zwziR0Bf{s3-N-fFEszMa&ohEwlno2Y%xFpf(s$~I)&U7m zV6oNfZW}BvL28dRt5oWO_S5t-KHV|C`}^)t?Wc^N?~mv&JCoc6N=VAoTm3}>D}ei zAC8x1i@F@yyv656j>k%nO_q(ad&HGMt8$X&B(}hzPp;Y%;Q>$6oWC&fl$Se>fc#XP z8}}LyI=L=Y(zY5JefadfuYyG%`z7H1%_Ps;G>EXg!7Vt0Ll^13ZVB8X8e$2D*6%mY zOibdCBZ~Y6I$3b7rVTuT?wqEYqo|@khiv;Ll*MZqV%$)5LSw48{E@?CK-|)4&M5=nZT0BrMwM;Q}(Np^H>VS%`M^r}<_Q-{a#-Tgzrd6tS2F2U0v<#5+BZep92 zA{SCab2PB%KO7I`78sT;CoGxr>+WZ*Z11pI$hk~)UGh$Ypt$6q*`k;{glNnWPDCO~ zkhk_{rk5K`ch678YQpjubT)Tp;BkyY6ODC4(SPr4T>1ZgbVmyDjAN&=!hT(p zHL(!&GfIPfZ;VVTbvGWC7C}D0j=vh*!bp~0{sWliKQoDi#uAyLS<1p3A(H**b15T7 zE7?Aq^|G3i>UL~vfVxP3;7NJqm7Qh9mfcpmS_fr*fXG{d)6;`j)kvgPrOsyF{-^4CV8&bLp~giD~3Soczh!XXJgGvkM- zVj#bz1RTbZfarVGI?zzyGN$x5nmIiLIt+5KtQWO||3Hzlp09NUvji)KJiRs3RO=rA zrMC3I-aGTSX_O4wzWuOE&X_X>$k?~&NQ543-I+Lvk;tsi5 z)c-#CD%VjzFO;GGRbq+?i^1$%c$eOBC$Z2Kn(#xPFPl5TX|Lk0>9~$>S!O?{SVcwZ zJg0L1Wfp(?T{DQ%HQ4 zc8~5@$j>_^c|q8w}5+7JCO+h54I!b^aqVxzY?6U*6r;zyQ5l$_n)b$j$b(s z-HbJQ^Udwe3&NzVt2w>wsshXsZ3o^ReP~N%qHC@5>(p4axF@ALjAhjx)$G%sgAUxA zrZ7t7akI6kQGmpUE_DfrM7&12UU{4h$**2{z8DR$hCn{HHvw5kQ*KxsiZzB|#h=`Z zXO--4H~FhSt}iyy%6WpJ7Uhu-u(Fr3$mZ60g|AOs`6k$ zm#Ss>4P(4ZfN0XmO>&c6NzguK>+rK+i|YI7r#ucC6q>+KsD~s~8nX^SbPwVl8^uTu zy+`yoXoPbKCJTa6-m8&+Pjb?dlz8Mt2p}H~;mR(tW#ljZq(ZFp9U#7<<_+tl4=j|? zy}1eZSwpPbLq0^vgXr&p3{zU-g^)~$V-7K$T^Ots(=%ajEn#9X?~W@8e41K`W(lHi zdL(F&m>U*=e^i#R#69UfIf{WnA^yT_6&^tI7QPr;ZdQ_c_Umjg_v>ToHqBO!J=EJU z19oERzbG-HUW?tR76YDYt-``9^#pTlieluVuIz zyeJMtwdXxc;^3pCAajtD+K^hdiFa1^eLKwhdhM%hzOw?($2B$ZrD<3api^E~fT~^5 zi+ai+5rx(GsH#^zMpOH~U(Hl;W zK~aY>u@;&u8WF*kDN)py^pb*)>OfEzBShkK7e|?K@+9zY2o^{Ok#lbvVhgOETpeAT z+Z~wvY@`4DJ9kM<5|F$cFcm%I7{XXk4nRaY?3 zsN$fhoQCNDuvWD3~iE;=;usCVbq@%LMbG?gUn$ZWxi>5UN=fVK zfMY0|D9)7lD~WZmiU6S0+{UdlRXfPf{ZpB>AcEg*ZMGp$FF}+S*39PXCH0^(%1>Gj z?6#RZV=}#L@Rv_5Gd}8o=^JaIOw9M;-j*_4EH)K2j``kx8^QPw5TZb)Vjs+M&pigW zW|V25wQQ|C5F-$M^&q8QkvTpj49IrU38iWJRG-n5A}6TX!;_BDndf{A3ZrlT)(ot{ z`qWCzangBK^sN1=m@wii#b zyX|nl7%l|91e00`+?y6WVy1pxWvEY4Y+Jvl7<8Kkfn?1GJjeTeuSYvsph+poG7oGn zew|0eKY9CZ2&MMTL+AFrJ<3UrV|VwY*A6>s|LQ2x@5c$i*At}1)$c9vw3D1lgsmE) zucy%u);m8wiY%F*ReZ8gfonn#Gy{jDA98`#+#c1L`G6=hPimoYTqmG6pr}pSWL&sO zgUJYLSJO7kwEjIQ^F(+qa&&Q$IKg{*Mmu4uCmjXI2<;UUqLOu{l8rc|sx!7{jvE82 zXR1qa{1ob>8wer$7HI895Xd>R%Z-6C`Zu>iV^{K|4AEG2`)%NS!}z*)+R8tGJB13T zczGq(1^if316|ZVy_NuhigrL6kB z^ml4Z0z49c>85s2GC{0%4I};{yxeTJ#jut)<&?hOxvR(IW?A**0+~~OI8`)4Zg2kV z1yc?rrX6Tv5Tv^oa4o$7t|M|C`{SBfaTRDu1mhLAgA9LsVV35sp`lekgM!iUshLw! z0@?naB-4D6$@wDQl06jrUY4F4`m>2Ehl_sxy_00l-V`UDQ$^3hXr~v)0K@Yr8`ya` zGxJZGKnazSs2(U!n#vEsPqXX)03CX=&u`@Ya!V|xUYmUB)e)a6_el|7G#v~$a5uU@ z4(z@=3Nxr01E>7AnF4eJw=3!tj!jQ^B+IPAO$UvCZ+iEg>J!ifczU5zm`MGAZ+sp3t+lQZDY#Xl?iScou92UO1 zDWuY=n7&!KAVe}mLi@ZT+h(Wv<|a7UcIYa7OwU)|kg_H;6QzAxaYyva>Xl8}v1y6t zVu|+$i`L@hs2IiI`z(2sTafu=n*lZ_a9DfEO5Dfxp<)qm?Iej#nrnF_r-NII7GGL0 znX$K(Rl~J&)tL7DVqSUI3*E8fx|Y<tg{e2cH zj*OcVG`n7R$rrwoFiTKsJ_?kf@13ac>TA+zJNR!*DE_^vC z;&;|Hi)+b1)60};hpNXxo@sc5#&0W?3O~-hRu)8~6(J>Cn^=i6VB>w>7 z1*?DloaVUgI(T_OdSKJRJnp6>N4W;>0kt;@-J1TOWAI%OAc7x z+uzoTv&bIX==Y$$%!~}^FGZq}?D9#nvEo?n*^gX*HHCi3Y}=y)VWSzS9k?$zq$9Q3PIw>XpCy$eAyzpq*%Ald`4p!UMij+a;cD^) zN_`4%Z!`cpxs@7oqY5i#QbgJI+ zFYo|k=Pb&=*}qy=C4=OO=<%e;AdHq*{Ew4&(t7V2MyJ#RQ&8Ik;b-|2V#Vi7CA@Y8 z-K*Pt_ln@iLbB35NAX+Y1io`$&yG&Ezs0g2%CVvA$C9TD`@BpD*Nx8c5yjxhz#puK z`>v2)!GV)-GA>ye?aApsOP{%ZTJj8ZF)$a?>yO2FHzuKjI~ZoF`Vf1!xB&p4+0J3Z zN0X4xD9)$Fa~5QhNvWA21Z+|LKz)W>>H*SyK^c<~>^C7fAVQn#=Bl2R8yPao!>U)DFBuzM?U zTGceTwtk!WpMHtLMnO*i)LG|a89CfRiCZ%YlUUP{Xch0=tkQ`K1=*4VldZ&VAUCTk zlIYScC;Qwnlp#vg|d^J2&w@3(VK)JTsK+eCN0}6hWcAqOjeg zr&&1kGvRU5qZCY%EKrI$ox)?qGB!|Uh1=So{xv@XU)~Z>apL3G4H1r2qw9q*d%Jq&PDG&u?*4d;iMxiG z(4c7;M89?V5OFsD^44d@@lxewXWiJ;;%_GtHior-0LoY`5iLWo(+UY@4$4-wwV{Pp zUlVH_={mG)?lEOfb+>S4k67@4#y}8oy+&qxwoBzrPM%E7`bm=HZR7F9^Ck3>y80%< zogm{Z{dmsOvQxH+1EX9YK+U9dC_ND@u_aZss@l>XHyIXN3(L_Df>p1S^a{jgBYMFl zA-fG;djDH5LiEa=6foilUR4dW8}S8ACB&S~H&iPUy~Lz5u)M-c@#>@?ZEr>?Co2jF z2kEJvwg2d?Nu+{-EG@tJ$+ME+;VaHlLKOd9n-@jpWxb!G<06 zopRz+*Gwg(-iKaZqCk}IQ9!D}(cW)xNLFLbM0M-;nXhekq6xhnfvWsgzve8s{rDXC z8rX?!;*{Py<-K?x$QnN6MjFY6`IhKllB3#nR0e_ju$@QA067!r_o%`v+Nzim_81M^ z)^oJ^r;SFKKK3N{g&=xCsycH$S7on%a~F@m5%h?JAl(ZDMf1e~6EQ_yP@G-_BA~3i z;*2k_h_;tMCxREOvWU|OhMkIbX!dzUh)3&oIpU{&YC$aWdJe>LH+|6evGn(ncSYI!yr0Y(?65 zn~LkP_j@L^>@cWF36+_(S9s4!DZ(>?v99Kz#u@q}A`j|-^&TerBoK`X+&agCn>G!S z?WSf9Fo3|p4LwtXLg~ROvnW)o@?wAF^p1En^Dj#2&=}8cVAO1ZAu7K>o`R>V(Zkq0jvcWF=P=W`zsJ)bX@AU5wx6V*Up)z#MLFQ+4{Jk_hIf5GH?vWhgmue? zie7yEIKf`!xN(aoTHwzw)xSR|(2(Pw|HQ)#fb#)mT}XkQI`1vbN;Nh0Hnk{o>oUCm z0fIYnKOWd0%Y+?14F4^tEJzt*%^da7ZfMr+i_TYQ@K ziQ`OwNczfD!M@e-!ohI9jW%h0C{ngh{L@LJPF6ubhh5{`yMph z4tm!DV*MEukzXTS^2@rvnku+%?P5w8Z8hvR6xAH~f~}5Y9-?eFIF+bE-cgbd*8G9! zR5lbiYEM6JAqkZe)_CnI6=h2cO7;RKSnFl_aqdSR*vsXe8s5%s7jdN8okaZNNX-&W zkgCXc(yInY`sTE~1O0L+Zhc!;740lXZ0a76_Ob59)omGGd7GKqH0vjz{&_lDJUlZ9 z`}(bWZU$VGdea8IKd1dI#T&`ZnJ;zPV5k)!`>G-AaT_bhI#z*YM-kpwdO;MW!}(1a z*MN8%oY~m2=_Tei4f{`B61crfF^<$2nzT{zE}c~b-1c>KoFyN|uQKmo=1U5AyWWTW zfb9*tX{kz^ecV{|Hg9Mb&GL2d$0?OuN(-E^^k^U6@7|v@{(e%oGPdM4ok?dz508(a zQ-eN9)*r146q3P;yTa3R`=nHXhid55@%R76ovsG(YEuwn*alT+<^ zLmp22F_V9?Oas2VO`Qrs^~#eLNUrC^!qF82u6PmMM>ULv~g-G^~v*}@v3tJw@cd~#0Tvwh!yFRZU|{Z1*u9} z8YpQF-x$d5Ad7dT3tVEydVZ-SQ!!ki1$@08l&Ulyh>EL-aV*y?Zj=qn@ZPtY)th1t ze{-qqe!yfSdY(*0L@N!`UKmHaHM|ShIQ8+X8Vc9}uGO5J>a*1cr(IK6I`|#3iwGKJ ze5Y=dM9gYS35C+jFRNcTN18oFihMc6ap~Xc-B0jKjcE3sIC>Ln_7bTb2L5z*uu1t| z=LeLH6!lUd?|S{+72uW=d%`1f4~RqoMZ4?c&)+&-6)sGayQ}YCQkq4`r9Q`V8mHF{YyhDK00yENw%H=2j*==Wq?+j{rCj= z2Lgb4Uv})}b*}&1^Wj*Cn(<%~WF?e{+JIoM8&F=0+$>8;zp*&spB(VyZ29O=%aL6} z3~|Z51@CFi7FnI+1Byz!X76UL6&^_+!?MG+^`P?av%zAkHF1{;tv)g`&UYe7C!d!* zXg1mHT0yn~84A|&vW9t1PQhFTun$dA#xW;xy|cv*nDBP?w(1o7Ueze?WT?Gyq!htm zPZkc(KpcsDKPiJU5QQI)Fg`+)P8~;PaPDy4;!7mJwb;|jCNtnX_7m8kahzgR67+ZC zY5GEg3nzMZrDUG+VELn6CAy<(>Z`{AYX`M)h}x$n0kXZr!wyl3iMZ#(ni9N%Qc|hT z;>SCCHa5oP^{5~2_}_9uYd~tlG$IDWsFoyNk7veA4^)tJFc_RYK^2S9I?dG=t(og$ zd-lu+d(2g?Ysh6yq>E^Y*uLAUJsMRw#C7>l;Es|{9O(tyF0ml@=|^Hmeb_)E==!s6 zRc&go^{7%*aU)HEpR6puPoUp22RXC0_TuQnzrl=YhZGYVg2RS0>4^UIPAjx7Tr(BB zyZC$`Les|;?_50yH@g-e@|S`%OdTaY@(zE^Kj*N=8{o@EWigc86oq3XqAo16>U8CC zggL+7Y&ioR=^<`P^0Vl2*h^cpC*wmxai784GMcsvPn%#0mI!P^V@`qH&-13JCU3ot zaoX4d$2Ms%A6x0=Vl_TkJ&R(VY}rp;F;N=~a#Z%#!I)jWwnhDUXlPc9`zDjDzHY55 z%}+|-U{~^X?R-m@*-K*m4b0Jc^kcokBr%NllQ%@~U7Ucaq=%1Y8i)A}LWBoHZ|#7W zQH=6mSn0)YmRv1J0>itE(p^lw44cm^oGAi)XE~O(I;ba&&CMEDDOb=<8MgfAZ8;jXy&kBn0 z0RI4Q>%U$TjV9}TL3c&>g`=95UiiFlS*w2><7G{2gP61XNJ>t<&M#Rk18($L<`&Cz zF>a$XP*ULGcI$ens1mK~|Ii6Qks%dZZ|GF;9bUHE>&GR+_BJ zdz~J=-_%g2#h0DN0{jw^weM)%Rt5NI9gKb0lsd1bv-@Mj1^^NoVoNsHMkWPYD-Qv- zSaaG~y8Nl0@ukn@P@F5T8A2bS|5%Lk*Ae>&y{?Vbe$)o?{Mel0Cr?<!B2DlB-~t z61q1O#_d6}aC(gZPXV`BV+jVg;_SVpV$&|Mxm5^fLtB#00i}zU;Sf_>Tcr-V?7JWEDZ;@Va=7)m&uvsRLeVsJ05$Lg?K4IaU_pvU7bVInt~KV5%LTx`^4j;9CB zybbhNm|k0L8zO>i>^v&ZyMC)vD?Ne@bL%kY3#$K``*q-R4Vs#y=5ol141SYH%6*B? z%;9Eq=pO7BP#hV;6KR|-d ze%uv!=y&IhO(!pfg^0M6)5eb|^_>~XJXem@Pg8ZfC7{>!Pid$eiJ0VRrIHVHY78lk zh{hP6WJ=E|To$pb%bXMLnpvj&z$*%#kcjIxHM`9prF zXv)B=*!bUx2-2liR-mT$i9SfO_zBhZPNg|s;B&!bRZJU_iRL~~UNcp9=q~RL9@aFp z)6{AOPlVt<|Ltz#h-v#?$<11}xxD;yUd2Tu5$^@-laa5$CVw2$d4!`LRD7C{DtDqN zF6^LlimL0qi;^p2T{|_wCf`P0e3{B9X`V1ccM?DHCnv`%G_K^HoL>cNdR&=LvPMjr zXb)?Y=E{$18vE^5)d~gls>GumE7gKbqTuGqggj72ZnfS5o+j+=y74j?QmMD^t4PKQ{{%{`i1bkeS zVK2)R2Fi8+RC;5&FhgFb7f8)#NLzHo?15{@1z z0SV&oE2Y4ZPnFbf3@l2o!RqVUYq8yYQXk(S_ZvCKLP2T@n>bRqwXMK`#6Q3!iP+(j zP8)FvzYpZn^vZIl_d9J~zkP(09wJLq67(%&(!J98UF^eVsOJ9eK`4=m##3Z84o$t6 zo!13K_sP2(6UI|@iucJ*za_fX#(luYj%OBUE#K7s0ibrBJ#@F}!{)UyH00_q;+!?}~NgaE1kWN#l)JH3|~v zYyNJ6kxc%zsYV@p9sRGa=oFTYHN)ypaI~>I%UuR$W5 z!4TZHu?#Rx{sW#8sR=QgFw`?&-%TyMXurMak4A-Dvtg5p+JUO*UFVpj=@BuKQthZ?~+VW1~2rL{CYSpa`$B3rf=?& z6UM#OPP_qj&PF<7LXNJUNzMpVW8y{p($eL!BN8BaZT`aG_rS*Ne>eSeoqjra$kay@&OSL4JWVd1ZTsQM3J!&nUp8QikkG5-oi zdNKJQOY#3o3LfNkXp+AI-W*y~^bJl*%xhX=VZCg`;R)$y_ldg*QlBCJ&yrsvn zMValPZg8o0JNM5#r5(B%eyVK~wTKbxb?oA60m~Nit+@b;xz#1}V=j|;3VuZP)<07Y+jskB&k!0br*axM`{9pl%7ky+ zMwKyomTx86eX@^DT;lFCdc<~p@EtV0E*qI^C6G4xjC`hwo}rZbA7G{LR_9IEg{ON# z-#-AY8aC1%(*cuHHT#?sNR%uG^m;ljflA{w2-=0da1V&;ER&6M8@y~vlP&Ts)CjgR zb1f6niF|dju9Aq``tg%AkK~jXP?SnDT_L(^cK@@aa>o*2L(rdx=p>G2SQrF)dp1Q` zQ&$60T!Q0tG&@|ZlV51~P=ioETng#T#;`xlx!~_zxFMnc0DfR>G%h!nfUft}7F-o9 zTtNp*wlogOWdE9WShAI;NG!BJ^q}Y`P<|DAnp_REzw1<^EW@Lle9mtpxKwE-I4}9kN9kz*K+`Q zR1512ud_4sCMViJa|`+vMO>%1xy9WBuSXT&49I79fVdzsXj)1kyY6r?vS)d?3xy8<(YA)Y`7;Z%_9&8U`2O31_Y}&%WKZOLG@3cv6Io=4x z;(tvsUQ`}mW>@Q-h@!8taRs13w?6xl zK0li%xo*1Xf7?bks~ys2788hIcVInT?5iSfsuTnXCp@VI%9 zd?I!seEayW^WS>t~A&?5|jJhnYYA&kD_#|Ewri1k;2>$}NSgD2-SS6~U5T zDK2zi+X)wP^Jp#bJ|6{7>zP#AX2`wkKC`sg9Xp~rQBssu4F3FMD^O!zGNkn%pwH)L zWTG4xmv_*rIC3-SxGgkhEGIz~)=yRLSHr7lsMq0#3{{!TU;**W6IPrPBEkd1Zz*Da zdF9S_pF39c+e>O#*=~0fQo0wx=Yq+39Lm@XmyWrD1Z^?y1>8J7Jmt!#jqK*+70T-c za%^ghncyB~W%Fz1ta+~BJ+BNt{?s3GOR|L|Is?;U*E%coydK5rn*w-CS1XwHqxN2@ zX1QpoSF(IE^SDq(#@R8<%oap3Y7?Iz`#ExEF2GpMhce()q~2`Y3b321U;TAT%W~0p zbYJX4(?ws&Qbo0Noe@2y?5mW(kmGme!klXlHWh9}i7UfMv(b$*Fc+sWUhYfiK7EVMQw(4+w7sYv$BKuU?c4 zVk7&lTae9#iHtW{^Yq7P$1XO9KDw;5VYs;bgfhm-dG9d+t;F?&jlIH58iTX^&+b_! zf~`1!qCDs=0)3$@<17 zsmQTP)j&n9+joYSJc%`j^_!|dt?HSjO>>s%vE}&LKfrx~9L{}_^JRuTHu0!0AZiIm z#6a0HFiz%jv@tfP;wuqLi*lXVWePn}gImef9P1k5+!9+oA7pitALI82b;Vm6dY^UW z9%qeWQG*;{iis4{s+bMm;6*wvaTp%uK<(%%L|_t4J`m(0)FR-6FK zaN!SqsxxO2QSp~^?YyOve6JPF)^Rj*S_85Y+Re;Ri=nS6biDUOFXENzXJN;BT-yDlX}akrGG6Em(v9+;C*rgUD|hc_Fe>*B(FZ)7W5f2ZO=gd7{+BlDj6c7}i68t`~t0eexo_`2w(ZlMARh$S@`!wL{ zlGZpX-p84}yH?B~M}y4EfBIeMnSz0Z2GL5hklf%)9BK30)@eaQ6@sU~tQMZ>k1`QQ zV1TwZe|xY$R!x(}u8vD+=GF=`+jl3j^qtp}>K4>%!dYi>Jr)1ExiZj_wU@g>)Ak;v z_GikBNR;dIjz)u*Y^95)Y;(VjDhrL*-6&Lf%0XlGnTkc?g>;tTD;0@e+$ui^k*sA= zH3U7qIlCzefAWj>7=2Baru0_~?NTR!jZF~K?pMm~^aRi^gCpG21CU<^r_(O#@)xKh zrg3){XLX%T2Z3yj&&kCWeC1>8FHf3KJa->w7zbRLX%|}|1*WHmB`nJ&`u%NXNoy=jA(>2b=w2i zj*W{ZtVH2Lamw-15D}XVQ}(x*+TJ9F9%IuOkdYEv zB>~&iC8Q0IVfH*UxL8*yEDPmqSQ)~+X20;CRJ354=JP!2oMIxP6#0)LL+|%9YTXvT zb949P!7;;>U$jpY;dVfmesj+)~4e{u7jM|3%Y-RsMoYlp|!W#jRJzNUuz`ffPyF{b9*?Zz&$QL z17FXXD|JfUT(7r5hsxy1gip=(4eJv+(4vu6KdU=1<>At|t8p^lWDf+B&#~y|Vcw=lgY9!H|WS#^H;e7B6qOt`tMGX97AH9ckLgH>b zOUN@QD&1u0jScmm^fcw3?!8bAyEpqU0DI*DY|J9evQsn`*-G33h8otC0>UZiPxL7t zmoR}U=QUm3rjWR1(;TcGX1#u}8)2qyN#|^-(*|UHBY>)!rp$QYZqk2J?Nx-g zVPPvj7YiePlM9gZT_Jj@$fS(@ga_P6)f?_NBAgI$%6`sPap=zHBJWOzoE3^-8Q&|; zN)^`^(v80p)VR3v;HCS$@Y`URinC?GMgc_2xF1Rl+>rDjQMVLkFACqO# z4|DvaZc-D+xDSr+5Oahp`ls~Q6J2-q$d9M_%!q4N`X85x;p`6gBcVN{puzk*EEkEJ zA4{52syc;3k=J{l zoETYy9GKYxb*A&eRc5kekSV&spp=N>GS9Mr)T|&fJH=fm;uk!00xPPOEgmCmj@|Tw zAWfaBa~L&HxMfxWzlT_QfkO{O^uac9cbPm{`h{M6s0QIfk-XvL7WIsH8%)^^>+`%vcZgAcFt zq>{QW^lZ|2*#%{cGyR-FqEwzj)cByb{&jOnGMx?2{iGk}wZiYTE6fquS@xoHXx!(I zj2Ef&DG&~3ex``n1dad^DRV%nMf6u!&fSNG#g@_LKS?#c zktBC#q)+3rOtt&@%k9H-Vl^rqi^BD%O^zH#3r9v0nz85WuO@}RZW~qcDetu`zrRa9 z#an;EmVN?Q_pZuEZHM0f(Co~1ZX|zrv$_4nA%M|B(nM4DFv!IeHW4!b0+c+N1NTDS z5I1kTZT@kU_*t{=Lov9)njYJ14^|T@HOvFi6T@~Biq3!Fmw&*1Tz#gCX((amp{twp z{$d0~cDNh+@-tPw|2CoHUX~3ta+-7Xgr3#&*)!$6TDL6C&#>`(xXAVqThfDnukSR) zCDgPyJ-vtO$94@uLkJWgb##aWV*ivO@(g_UR8MNCKTt}FQ#~0mq^&KUIHO+Ui9#@j z#eR6_D$8R*UiU$z!hd#_L=1xdXD+KcU2lu;AJvTAL zlX@Ye3zW)r(CG~K+OFHzFaBhjpY>|?c4%zDWAh{~Nc{k(inEuHIjPYEH01RXKXmlz zv@lB6{`=j?^lWe?zB$Lb2l0Q2a#8!;z}!IGWd>6011&%9X|;i4^OeDg%TF6Vu0 zC?kNtC6t`2Uy(AVfH+voR>C!TIj^^Fr}2+S*34IGt>M8ph(zv}RCD$+=>{C%{09v- zRE9?(TFvQL^@blz1_O%*D*P2RqyeP_<42PgZkTVR;ZP0?hhEDfaP5pQ$3L#$Fu5rA9Gy^5GTT6>+bflU$uVmgUGNKBK07WscMJvc3iSWj)d*Z}joD^b zVH-bg-#bv*)|qb_7y`m7{LD4mAMNGV?ph@o~ri@BNe zP~kM?@N?4(y9yBzST@91F9l)HmE6!mzJ$Y#MOIXOOjAFxwPm-f!-|HkThBWb;tW@QD+hx;ry#v8mlA$)pexo0&`Q?;8*(Dt?MEvC!qUUCvl z?z&5KNqZaQ2;JiAfn^=eIWY_|L&RF>{og7=r9uiYY~?~$@a;#Cq;r$Zt&ZdIDKuao zhEr=+m~9$%K#-&sc_*o9N7t^2Nvg>MrIMZ9QAUg=Af9o@?_ev|b&++E`u~Tw|9om{ z`~SFM?4k!ys!Eei=paRqA}B%vp(OMwN{~>cOIHCAP)b5*p%Vz93xr;jB0?xisG&)R z(0dU)*FL}RJ@?G@4_uEjd6d~RJ8P}adY9L`j66O0saDLkRRmRB`g?Q{hQ%2hWQ7TO zdhE|-x?RC35fI_r$rO?FjXBlFZl3Z;`t^OQm~^=`O^`SV&L&@MF{TDe8CKa&2rIEAb%f z)1jw?8v7NC9I0AE^*kCulgvM1!**P%6P_ncnp^oY4;_*c@vze8G;DxH?yZj@(2Wg3 zB__5H()a7N+$=fY)c{xhAuOD^cU(I?XXn~KBO4Ly_;|*vE5`Xu3rR22 zfZjTwKA%s=oBHiLpc}^YZ4o3mMkl&bx@{zYSkC%_X3?;*uFy|=cM4X(NlVri1yi+X zpnp$&M7OC8CjDASR**HI^vEd{9~mUH#0OpJKkMe-lXm+IUEffXin#Q`LMNqtQn06y06#T|E1wZb5cL;VAc!wKMXodX=0&`pR!#`ZD>3% z5h$`@dnsrh+z^s7itE8BrRG>16U0Ks1H<9_czZy|w4t7&eaWNsib?iXi+rZ7Cd zmg{w^oRp912|K}t3(WC0_T%?5!I~mp>`vPF^%K!Gm2>6WVIJW?57gXoi^hgb`ml^y zbp*)SB6`ZhrgFr;uq*QvW1DJ)hVW)d6zi67H;YCIAdhgQZKwaGT477=8rE znQ`&|=iQd-RQrd_TFaIX+Nzu7TxK~1FI=k>*VbuR``&D-?fNxrth%bYG1&dM!%Iz; z=UxRiv2+4gHLIt_DVbpJDuJAxOgj;Y6abFn*OsE@*y7z zjg0uA;_R;86|ok>r`O;d1H|DE$itLoELCSFGxRPZJ%oI~7yXHRK#P7-@X&JbT0TH; z1^*Yh*ZQdtQ-y{N-DS03K(wXXeuI$m(lDoyGB0C(*aaB(=bQb7$2FAq=X0;w-OyBh zu2e*XefL-x6H2k;yp=T=kg^6T#zu!?P<@+tuA9k}y|GWq%;og~cI zfK?MQUoqy%wh*tVWnq4!ytmdcScLH(QKKp+)(zlX`M<2;YicZSicyt)wDZj>68C0A z+()%rJ}P?cB{s#zm*1=0vs(4eGc);#|QV{M`aGt5Pu_w>SwYrPuFqdnrLe3X?Ol>QMysWLG>{3zq~dgA@y z$KIDHFQ$|X(~KIZMBaM_VAEhz@%z|#ePgDEIC#a_^)e0f)zt(mg1qG*O2FK9+Q7f? zuTrGih1yTfk**oWCZXxT5*GfZ#nv4xX)G#^Ju!<Kc=Aq#6^vK-B?H2mC zQYJq1dKEtz(_KI%7s3!03TQixQMCwzofFkdp%3$d3}qOApqH6V`}uA~Xd1&{NZGIj z&H}P1kg>kc4?2Rk+K2tPFzmFDuy=e>5Bnb5|H*pvE-7ZARd4DYKF~b`XI4BQfo$gy zyn!+vF9(0|@%@vgukJcj7UmXI?=!N!@K%85 z1LH#Zq@kpqd-j|ZEftyrL*h_SP{dr3ijsrFtC^nKt%w-esY3*pO=x-VM{=nJ(WUi~ zK=KWb`TnEOdQ5I!X6IVa&Fbg?!isMm%v-`^r}Rj#`!P538~#w61UKWG<$b()Qm9l` zdV1^<% z2E?!3xU9G5x0`(nVPL^k&4t>bOP#Ox_hiNUt=Bk2zqNk>I#IFWprcn2=+O`ZF6z;TeBKWI7gFIueIj^c>O z#; zB=5Adl(9rdD%ITfJ&qL5irbjD4M2FgM>9(0ibPP+pFGVq*s)grtVc`p-Y@MpPiDFR z)8KR`69Cf|(Uh<@MOJ+Yeljn*qZN7jG{86wD4qX?RQFh>|6su}(h@d)?w`Q6ESL{s z)LiziA%iPn@~v+#Dl1C;RsJK*02{lbfmq&4CG zI*n7u?*O|vpHn82&5g0TGk3&^AP276VX0KkI8(I{Fq&L`BcP&xdf7uKLGGIF89Afa z&Mx3bMKE$9TZu=F*+*sT(p7|m2$SfOo-10&TBaZLcEHA(7;yH-3!dhiFC}#VvcqLF zKzx+3TH>HR<(6`GFX6WImx_XO8F`$$==m?Ln4^ zkR^aLw&{;+?ZAMadql-t60^vK-9kU4dgCrkA-IK)X%s^Z;AGF^0C16y^xOIfx_@MW zB)F5B>T=gAZ-cdBnphQ?JP-kpeZk2iA;rfGYd`6Jeb#~*9kdD$`Uo^g@4oytQPN52 zo)Gxr5oB)p4}7~*+D&;8g{|8w0zzI(`cXnSvwU!?noQccVY9@or&S`rb__r6DnGb5 zgm!xY?igCW2eZFpx@nTAx>DXI9OAwfhyf>4(IPppDdF0!TJjN&JDQznnCzsY6s}_zxHYd%n=t z+AsVjGxO4FY^R><=nQkfiytW-N*UfaqkR9GE^>jn)p%}0zjc}0L7ZiiJJ4^x<3GiIsuQi;c@iTLA zEs1>#obO@<3k0^$u*{S|PFy<>f9^Z7sK*E&`v`)P5k>!0E;%qe6fwm#45_>_bww#N zUhAb1luBPL6#!Z2ccD&-yRFJkw`oO%TxumGKU(C!?t3UZ(5Bq1(-`T;)~6@7&j~)f z@Keh~GXWH^Xi(~27eae4u*Y!BTuu1%+hfANG}k--5nw=@6Ur??2IS}3{?CszuF1R& zHr&BXZ^uxCgkEX5!A>KC!aRh39p`m+zS-w`Y?}Z!PP8(CP!eVj(x#_3Gg7h2Mr6ui ztA}n=-f&cxHMSC!IgfLTSGyQCyE{CzL9&}Dgf^XZHB}QYH{;kcFCo3TY-hQ`mKQk& z`c5yo`~s>!1~Z^otxn`6;MlKP#kPo86o%cfm>#q4%JLeqXdu{xuG}7nd?+LGpEyDO z1`2h>F({Vl9lCl+`nO^9+lNS(6RUp=CgQAh3|CZPQK!9T_@0NDddp(wT)Pge&>R2{ zg`Ncz9-mxbhK~gl%Zkcf9r`fQnk&`%F{@2DD3AQrzmqWDIplpvcle2AHQ8ld&_q@G z?^0%n@1YICg7xz&cFhns`Psd++4fQ#B&J_sAn=HFI>7CVeA0O1b2`_H3a%WDh)X-M zvmoXAEK%|v1oOl!;KN0L>uL-*my1m^|D^%)Fy0GexjMAw?o%wFPS+Z$`EiH0_KNbg zxBQk6vvwKLlsBiE8je(RAwRa0HqA4ob&1EZpuWyNhz(0Q%mxz3+fsGleYewQ98vEP zWXpRzZL(KlmwI)9pIx%ADKL8z&k9t$s8Pqo{j-8-14M;AuBP(%@ULkeS8W2FS{1-=kgO! zs_;mn%OLTgWv30?%61>{8|>(3>?|w^)AgAw8*z!a@Qu={HUHEqy#9w8SrQ@wjeL~Z zODfY>b~M8Hid9||v~_pumLIPUkp_6^d(~VP`TIW|d#ZcTgk{Y1I?BJ)M)c8`&!gSj zl=E+q$ksdZaT#tvj9(EVUGtd@=}ZzQ3WUz;Q_e_eHt{4Y(#(*DoV4f@w3ChXXUKRx z(%Z$P>}`mrzJ!Nvczpa5;yv_=6`3&fr?wK9`x0kRTBE(4vfXUMQbo;1z_KmxTH%)J z`&V1VC`6j-@4{DBe$f2@XFFYBTE8k=;qMRJ%%5DJUgV!Q>{3ab{pPPfFOW3yGRf)0 zJ!HXHWCF8VL-i7d*_$in-!rIn484(a_G_>03oO;sPSyf^KD5#p>y1zq8VK#1lk_E; z7`=T8keqM}T|U(eF-sv~?shA*%>NOj8v?7yv1>lTM^mbm!@u~tyeg>r>5he)i;?(8 z?gUkim}EcR2bQ=|8Bwmt56F)Q9H%&@9vz-8!()wd#8Kg<4YwKlg|0+5|O zHG+Ve&H5PcafK!BBWhucuGlS-kcUJVc{lDmAVjhjq}$w2vsSWxsx4LeK=0C#F+(%| zaZujgo9|jiB{+h?vcAIjP-cd%6K9SuWTrUs6~*OIflAMo5C zaF&`Cwu|@k2sX<5t%xSC#8fhB<4BEiic*-Ct+w74-^=ev-S=HC8$$5C^7%tl#Er~1 z=DrJqis3>(yi^61Pog5FWp@%V7U=tJ?|i=1ItG~ib)OBwZejF(=D|(d{Na)GrlihI zbFaC)a-X1@+MVrwGo6%Np9k*w+65%xLswx-q5(B$c5yE#hmDGUzyih?5Zn^^L;j@b zPoqM3|Enp&rX@~%y1IQpN2}XIe*SoqRHG`rx6QrM99kzu6q7}nRC&sA{V85D(jU=R z=b(a~y-u&3fCbsc*ViDbGE!}22Z1A*mx`iz&gBbnk#AI(g&(VeNauf#AbMcTc2wGhY8E$5R=qK8kO>rhVHANIxhZ+D1+ZIYPQxDP#g>0mk6^EHfDC~Y#M zzdvx@AvDemZE1QU-|#egD3ujjFs15}{meS9FWcQCny8zDtktwXB03 zzF)4)r*sdrK~6SSZu+)rGWw%;G$dI--#xe4mIdmGdu+p&r^_ zU>Zw@-{u9tbVcMg2K{Xj6#oHEm2EUCdI(I`KFW)KN^x$tvM$G!Os3>wMWq2(WUHL4 z%Q&ny?$rPDOQq(cF$v63NzdBhl*3=5%# zXy`{q{Y#^HQV4wnPdj=a?=3%8O*9i+YT1v|wG=nTn-7|M|Ng9+N zDZd<7Ha(Uj2)_w8I%|&(K`dH35hsJmKN)(JuICyStT2`vujxnhHBb8lZTt@R54CxM zkbu0%krf@bM;f4L#mi%U*WXz6 zl&CFgG>1JM{HccutlZceR0ID@13gaG*!ibTsK642+z>Ttv^Q(X>F#7e@2VeWCVU-^ z5>z|Vf&7)N2u)!a49fdSFuIpd@{PFCS*l)>rd2}B1apttaWW$Zy@|MgY4|uM0$)i; zMz{1UPrODW$KMPL)djhT4?987Pdo=pBk_W?I^s+~O)gN_dVbrrVDa@C77a&VaT7a? zYs#7Sc=a_{oi9F?UqEH+3DK#z+h`)Hu`I~sry>s*EjRd4$_k0p7$t;Ok$oRUi{R?c z58km6+CS$OIUXrD?w5faAm+5ZO%qQ-$FF~v_Y1i}Io{QuOxnqgJ=S}zTFQg{N#MmCMLtoYp~!(jL}I{R3xUa6GZ>s_3w2W zpfD66m`=FAp@*ZIK0I#h=R{GS&C&uQ|4E0Xg8cBSk0PR-=rIL70aVT!?i$3@4U3Jt z{|_9A2Z=CcBrd{k+zyokiBT-4|GpZ7>m&o%n}zEPiRQVVpV{5=T6QxI5RPuzEpS9|9dm5*M) zMt%<23N#C$i8B&nKhw=BKdl=I!6nx%58B+w<1TD=ZGCe&fy?238M$JZ z*MSK4mJ=8ItfSn$Lc#8Y$&;$+Vd_eQkr}jQJ=46xU3h0>&@4K|iqm4> zc=1jRdJfYc#3KAcT6WdQ_Y)4iL$%qTuv{l=taiPLw{&g#2O742pwh6|6B`_fZ*_z!8EScN)f;#X7>(&l?j&Q&Ac zi{5d*)vzBXnS&o8MMG>rv~?D~DlC;BM&lTA|A-UxSP(I3MY%bm#e&3=w3@EsAc~5f z+Ly5&?-4Hgd;Nx0jW+aMfrwJqjJr%3KMt?c&HpHQQN+rbps7)Bl8i^>N-&t8t4Y? zI_W!5p71V3F>y^5tBf>Xq1#~{c0Sf`9z0WP|Z|3(fr7^hikHn;;uW<&B>yY)%1~hvH7qTK;auQu7&8k z%TW4KzrU%;cweY*N`*GeLlg6b9WUk+o_)Q!vDe`t*;ZEV;IclykSCZEJnGF8!GbKWOccatJ%9z>86z!90od%FIpBN;$k21>=}W#^BH)*u7ia1Acn2+$AodBa5E`~({lgPu-FqV>FlC<7FuL8ynpCK zUM@1g#qiTSHfecmi`QO9_?k%GhJnT^i({Oep2SE*nM{H>hvP3Mf&~w!ziKwq|M14` z7=APQMsZUbXg49QPxn8HrZli$;86bJy<-|3&?4Hr;ayWYamcj5_wM<{mnnyZdm8^Q z80i1EUpzS4Ze9HU|0I|1eOtuSEUyKfhvhkfQdVKFIjR%%yF;FbCJOC;M|?6JpS5Vr z64cz==P`V@z)M6-)}1_%j9awb??Mmy$jSC`?=K(aTF>T{<`%VnZK_=E3fhkn8L?Erh4-~Z+eJN5c&O&G}Z^_ z@xRBeEKYUOJJAFg_Qoq(0j|prPRvO8@)K=)%vL6eH2`GequSB@A>$W8?Z2!q$Ia+Qb1B*Trj?c(_8C+@PWqAj*ptpkI*fZ5m`y=V zcu#0)m1C?H&H{p+j0}XE(uXMf*Er`CU(F{ai_U2^$v+Ym4_{-F^mSdy6mYx!66i?1 z7<3hwSfeDM$)XP&%k;8yjj^fn#(#ZmUg6)KzTljlOIx&fmM<>bI?1>v-ca-HPf?G{ z#mKkh(5#hIq2+tnoAyjA&|-~!z=;?_r^?s0viJtK?o?g0Qp8y!A0A{JdbeON)Hq-! zrFK2~Mkcx_kJxm=q$A-ORllIOl44;(kg7=aMXy2Ye@-mWzsw=_f3*?9L263czNfsX zAn7R>J#kagaMPfR(zs^KSp9CfRU0#9o{ygawMFPPy#J6U^n2{_G6*P6e;F~0!O`NfTRkJ4jTw`R zU*~4S@UWxpJcJvlph3L4b6Y|mR&m9!*Z7fFj=m zy57FpWUVyVVUkpx&u+a5E~vD+w^wB&DE-d)Lho}W5ISK@QRQkKuAw1yeP}6AFDn=g+QXp>nf6fSAF4%=1-yr&F)@Jf6Gd2T{3x zZ2VYoV=Nx*ZCfn^mylMH4g3R=O4WP}_&@jmHgmljti|x-C55PpSMI^^X!+}r=r!#6 z-tlvP6yG~H+!`q=9b6owTqQ&{mdY#CFM29VXjR86byio?-(-p^#d&z>MWCXcT`^_l znXWCqChfYW?XyU`*OeY=uHAT-2~v)vbg2xZ9PQ*?c>4{+Oz?KII$WlcuPJ=1lyCW2 zc^Xie)oT8Ik1R)UNVJN_Al+!d#^mP^*O5iY;l+SwBnV6Z8LOwtj;LSlSS#$iEVyxh ztKhd^lKc5%?P#f`TkUV8YpJqS5yVWEO;Uc_&|Ke%;F@5^rvB5I6Z8VrSHO~8SaWDN z+JBS&&F`)rQCfstocbcRAQQq= z@sp)kn*)sx#h2LRh!jT&SH21H4Z%WldX#MZhwH*ieT7D@SVUcTN^=niY$?0&7cjRS zOT$^}ot_pOgSWFQrrH!H^Fa%VpUWQCAI9@BW4e_EJ_=rN({6c`xy6<;#XK*U6a5HUcSoA0S5rtgTj% zUvlCTQ8|Gwk89>e_~|`l6(ISu0iII6w-VN479zzeAwKlGiFsZ{QvnRy>ctGdm3iI~ z(BLGL)@C9y&4*N1`|cP!IX3-`FDrFgMeGl!PqK5n4zXKwI4u#?V97W(!{(9zegbWa z_!AUp@2epb-HfG7yLy0KgTlqbk*Pjf-yYm)Wa-y2qE?mG-9cNljYPPK7aWNQdFF~; zX$g{JJXn|1!@po`FO`NT2Y)aEYs37wHHWV6RO`u3V!pwRy&k5?P>}S_9vId9nz*Z- z-SyPcA8Zvf9;i7h747dU&lqKZ1TqvXsrnB81;l#YB^FZCmCgOsaNtY8ak{L#BSh5X z2B=n19-D|YB{tlAa|n&hv2MNLfo&p|I)3jHV9uy)O&?`UR}XirWPt!GhUdWuhwE=& zjU<*}5U0y^g`HOIgQ65qcS(`NyHVi!_XnEqd*`<7lUXV!u6@0N<5p9(yuQhiqXq&+ z2q0zpd&uv_@M$`^Ru^he6(P5d_c#W0#yeBo=|^ts73jj)u~>{Pl7HL-sq@rgQxeRk zO*v}rpPVNgGAYTvl9=-2G-k_4#1K)_no0_acvRdmHgkf#|IVImf?HbMFMtUZ-1Qd~ zH9T$}41Pg()|f{kb)-Id@61HIkw2;X7qz}H$R*6mj}b>6xcOB~4A^n@GQAZx8W#8V zXOY$&VSc2Ek#I#W5SezK9covc&gW^Yl!Qcgh$$z&5-iD>K)O10oAb|vZ)LWlbyuyp zQ2FIoe{Tg_iYmG^`Zbaq%(?!+Bt|rf(4ScsEj7Xuzp&D>);i|Q|5mylwJR6_4KXP; zz$PMYVA5dLX$G9xF8qFs{y5G9F5ihVve86wrjOC8W+D%}u5#8#RSo?fzH;?t$DQp% zwj46!I*}eMlUUti1JfAFkvTGE%+(8@umg(NuKtZ-%9*vjt5G5@4s~@n?5?gFM}4lB z>1M8T(}4#GA#cc{GLrBI7g3m=t1!gX@Nww{SB~)EFpB%&dFcN z?FPZ~8+zQiKan;&28%{T<{pR|lgd2#*(I=Apg#P^#Ia2vOSbTw_otoY5geI#)|?EP zV5vDt@OYvRiH(hAvDT9@FWnvxJX;U1z-7`UW$Vs!*cv1k8aa^O5ll^3aT%LL-XmDl zf%-%_kH=U-`>YEpwvwj!Ah6EF003p;c+G zls!pq>ZWb!!}pH8n;lRpBJ(f2ZU(0=)?C^pJ?WvX^aDc-5`OXi7Er@=vBs|35Fv1k zZ_b_0;)1<~<_X_sO1J-^#d%8E568nFho6xO!mT$(z{+_nSsddfy)TOPV?|IM)g!6C z0dCN08A1X8gMVZ5l?5q7Wu~N1xb9QP`tL}4Y`wdfYI%o}^=8NHDnoa$H zQ_Xsd!w>q;)2=@JhL#yand_f2Qznwl%ps|luL$Gf82y^Rx5=b&8UGI8)MSbFkzS3E zuZ)uVlaDx3HQ;!EEsB$N(RuafDfhj?F6INoy{NhZ%CM^ils{wUpYvA^NrPkBLvMWE z^w0@8;!AS3SbTS_JP+=~Ug)~>l6G;wstQ9Js)HPbAlP~I)TqE_9tHP!tz16KmEImVx_nz)BsbMQzOwwnuUEZi>VI!9NH#us{t8euHooW~ ziBR#Ah3Q_*xz+d2;-6#HZc){%)AURy*U{RG*8^|&AI8boEST|M=8TSex2FG71pfu+`bG5+mLn@DDwQ#u7Xc!dr`M}-X(wF6eQ<^HdGYRZPX zXvfP#wqRtz`@}Y@M>uZt&Y5}9(C3FKO`jDt8>BE)9YxY)J?p@yB1^qNXMryq-8ypG z7^^cXjItlTsyB-ZG9k~msumd@Y8eU#l*-}-13y0IIX^^R3;DsFs2M$=ZpYCmEp3$U z{^g2*sZoQGyemh{8kZ0X7ThAg2CW+!q`L>6?#U4K(d%Uin3#+?;Gh00crLF@TqA#C zc_>OY7iiH>M#oGxTk^0@O^*_{HT9K;eGpyx2+aiEuQzEUVl}2<@)hT*rT@}QJ%E4I z)_)~s=xfQligw&6eUbolgz8zn%_~uP)&0Qdxo4}I2yL=>SJ_6bKR#y z`Xetp982EYmVLB+TYwkEoY(;DTlA zWQvxdq5_t3{-X>lxMAaJOuM-UlGg?TjB!O-%oi2Z?rNO9jTsI=5A;TJ3jbX(JJz}; zNFEJkzr9{ZeQH%=%%rCQ8amtpJeeA|u6+xum`HwNM|z?6wX*=5*v@zpn`YpN*fN{( zDfYrK{d5DX+JEmB9{g0XzwG?VBye%sX^%=N~EhJVP}$sFd~moszEB6&iv7k*r?)rt=Qa*v@RVQ|tE?zSuK zii^LCFZDkX%wn4d$LNbNCri<)XpRCCh9b3FT(1ZedBeCUQ#dO9p(N-G(f>4~ti1pH zN0E80C>aX8sk&h|hD9imQ^v=d3=AmM(Cf8kSt*&J(;~3Hw;cu=6y-B>=gZeFrPei? z6Y9RFArzGgrYaxncU&v4ed$g^`{*W@{i0cW;#%2e%j%Y;kJ9Wy;>_~$l0N({)Vbbn zR;&gPcgn0MV-h1U|2=bMqqI88?U{OpyJW+l1;t|QVy>@AEQvDCg|ARr$X;xNYty7--nzK_Bm{yk* zb?|nRR4qTEHIy)Pa*2^BhyfSFV-2IHk0eaH@;=W_*=M>tiw`LMcLD4#mq^M(cA@+k zzWtv<;-5n8S903?qz0}Ou+V-&(%uaJTpcG~x};fuMT>zTQ>e$4YgL!~q|9lHsV3KW zz~nc<`T~vHQ@^+IZTr9MF$4(h1-_QG$mj8@*-94{Id(@nA;C3Z^*0;JD9iiJXXa_u zjFkhPN39-4lO4@B45Nd>>pktrxz_Q1uzC#BZ$;G05^uXzO{I-x5iip8bXD<6!td~N zn!p!{-2SPatrk`2JsKYIykLa`3ztCuJbxXRv3tyfKCCqS* ze=NS|om7JAwiMRf3M8hDw-+2Yn-wgk&Ga05vHT*$lAJTMUaP1{Hx}3Y;Jg)gIj%fi zltn0iBsy5-Lig%_1|Ld59Ux7VY_Js#KU=LlZAXkwDw!ixt74Sjo(pBiiPbqWk}@)2 z4kGBlqREIBVd^bx+=C_U+pSC{ne^zkpBR*BVhu6WCBG5({kD%l+3?nvAU6%f()M~9 zXcr_o(95a$)LO@)zSM?4^9d>Ya_p2y=I}l9?)p)fjhTchHBJI&wa;y<#-quaHXl%g z5iN3^`ZE)FjoRGu&TbA`e2&)TN+kGf&B|1SRA1UpS;S>1+#8GwA11WFpAjN8x5|?h zWw)4jr;m3fJ$kXuWxBN{>0n(nP(Urh_2o)z7H|(~cJ69m#Mq~t;2G2<+Yss55ALkXDGe$X zr}M^Ihj-PkrI?Sf&8eSgbQ=`8I$L9qk3E71*6l@h92h=ApI&w|hz`rU`$kj=H9d1> z2i5JVxj9stx%hPnap*Ysxd$xs+1?RRJbwQ|Lt+5Gm(YI7>fl2A=DqYDqCC3vrr8%C zlc{0)_Y?fy><5&|k~|_f`Jch}KbbH0bQM+7wS&%{W|J#{)N*{Uiuwzl!w{8vXxCn+HbA)~Ts?LOx|j%EoE?^Et3@vmSS4 z1LY~cA74c94}DgATgw7?QH{q_a>j-52I-NMXEAMkMd-`70{dtH!d@SBl@k)=fE_ zd@t9yxoj2LT`nk4nHY?LX6N*| z`0%lQ)vS-`9mWvz({O9TfD$F)8E$pI7XI3G%8rAWa1sgU5choJlpf`4fVVcRWD2bN zgD0qfl?U{5<)5V^zZ<0kYJKM68D@RK+?CI~yC7L+w#Q3Feu~#T%@q`0g!nd2s+6ap zcly5`*Um31buTgrQFx;>QqRzQBtT?3dAq$p6P^dc$sD|>JhqxY++Z2dJ}%9E6XMlm zUeK*(ngR91VR;_)Q~}tIypyy3b0$X&q_VKlg7~bIr6D~C->~81A;6DrBn8eL^KS5_ zoupWMmZ*6*h=p_M=Cx0p`=dju`s<@#u?UF~1=9fC|M^&*|664M5x>ys16nTHv)LtM zw*7dH#66z7XjO1F^-sPpoiK;0)T|7}U+NTaGM|*kZW7<1-0gsURKH`sWJ# zCck!1F_7%Dwz)bv(8=!gXy1WFcCX;Go?mtFynlC@sq#lIT8`4c*JljbzsTi1lg@{# z7~3Zu&NOcfIE-d|ddcZ90hr$A-;q8V8+QCeLWEI{e^&#JL}xrgaM(Z4?lE)oi%&}> z^xAcFr7{68zUr&Jl%;3jX!~5mI4k7JkiHxj?z@`egTu$WK+TmALDSiTG*MkMHMs@7ltV(CHQQcI>5Wu|W3|fP8P@g(g|n0jq~?=?q&MMJOP}P_s-fiBGmbN{ zM<_ELQiQHi!LVns6^4^|d-fL}P&Ur*`Aj;GR!sDQe_@x9HQaGGiB?3o9G@kN|e>;;z({tDO@WMku1W zs6a#d!xqyGF8boeZIfy71GbgwE-b8=tv4gG;t{2y^HOM2o%>%S-n%JHK%l7fIAq8?5{ec-c+-x>*sI z82b2Mn#T(HzyvRw&my*}72KIIGB;o=qxUuNGF+#i>RGa>m9 zEUjNe>AXtJ`!!IJk#4RbNO;WG^TjHnC9D&&4fN@1S(WMkLmv9G2|9_yOv?kADgDQ4 zQY-g+?&XnGEK8NMARY=nFHuZ8mRj*ZLSL*$-uCsJ)8Hc&TGdZIE!$xuGvc=TJPU%Q zPAGy80`P0Ng$Ln#j{WPt+`-i=?6zF52T9m7HY_46@V1p2@Rqm1ChSs5GW|@^}A!{+r1gYgx+z!9{f~FdJ252ai#ORh=3MS{^L@BZ#4HeZtEfDnhy?a zV%gytGBQDl`9Vb6@&~O&5_)HK)1^AF_ti|TVp(@RTn}8EtNPwp1zUZb9ncQ2Bj#76 z68WRdeQp+*bHv14D%W3#EqL^RiOwLOJqe>xAh<+J$9uk<4jAuehcX`r{j~gSkk65s z`MOz7Dx3ZtVCEQhz4X=d5=9@*GDz6U86Flvh-Lp8Eze>`@5RW@0gV=UEoE?J_u zI_$rhYn-SloYqKD)oDhckXC*$spd`nCq%2ip8~Eq=Ik_KIqaC<@<$2Nwr?OnAQH4_-Rm za_d%owC>t_6y)l<{7WmzTF--z%&qq!6`(usyUMS~^T)nQR=+wb(b3=pr%PHC_?{{V zG&y|pRlBp_%H!#e^;tm8jd-xQr+v;(Wv84~$Kv*PmRw&mkxZ%=9~BTO4es`UYo$ih zzc-ILnfIWD69IFH))6Tgxsg$*J1KBErr^)2zIv_7I?eJI!9@}9YAwdHDA3}@m;fKD z#Q(xiZaL1rNJh_c6FeOxh(SwzF#M8tQP(gR=(1agG&ldv8Q_}2hge4~g+4#pk4cTV zdd#biCtBOt1J)Ks)wS$!4Hg)6D8ZlV8By+ zneTqSDYdHEy**i=O?!0`o8d13RhbE%uV6jSJwqu4OAqU@h#LDJ>nlhKSZ>Kxy+8O( ziC&oPI^}?nAO`l<{zqkgzIF$D77c}e-|cBef&2i!Wy#Pz*sZK-6m@A#jq~LqpxP;K zG0RW@6O-WdWq7Iy!TYw`)RXzbpoASQn^!n10?_cT`=?vSCi%xzyV;`;1N#H&d*8d1 z0-`Ni(NJOWy&(VcszK?h=5j3Mn0Io1b7W~$8*LGu_lz8eqbzTORn>&|fj!Yz#F*BJ z0|g@?hh6`XNw5O|k8~~B3imZ3KvQ~3V$F2Y#61IGj%&sfCQ(7%v7dRNC#zu=1RSFu zLI?%_xkYYYHk^DbT`W?)Ovxsf%VDRkboZ?}fCY(J(akRPkOUb=-&#`-UPK3`)VYF= zubuQDjOS`!Let~hGzq}DpO6g;;qsHvbzW2z0=@2Tz;@>U^ z@~{`4_9jk_!hrK{Ozn+2HI(B(MNyL=pKO_?2}9n{#X_2}kju_M66>#{@`s(i7lm`_ zM`alVeaQwQ|5(A?srpK>n|>$zUd02pXAuI%<=yz-T|xPsrAJfbw%&yU6X5d8N{J)~ zUM@nb?viVvJvLqilU)n3S{+9r#$^Lg1@%NHEYwBu;mP12{UStpq`c&BHXQ+us5c6942z7uTzt526xCZA>FYdcB{G@4W zvqusC@(UN}+UpSMEl*man9N_E4EUZp7~`1esAi#ppU=$9KK`{jT!hT8{E*^IOba^n zT*uFg?(=&IKFGfz2P&#EX(x|W0eJNC&(odFDc#+V#1;;BC9V`TtN;Ba8*LF;(0g-j z=?;+7-ls26g6pNh>1I#wOX#We*-wF6OXlLDmRqUUBH0erB(gC9#umXANySzKs}C~( z6w@8+sd7(1XnJYntmhB7wz0nsI#Bs9&FD(S?SL`r=1q_s)>cN+Gf*z`FXv^7?0oP< zy)Bo$DHIR+g^RuzaqgF4Sd%yWG;8f-zF3U1hWN;_Jy#G?O0Bc z4)|4Tq4WRpW~M;r{TxH*|Df<5<^)w6O;(J%PGDN3V8XD?L@@WmYq>!0%POE7#Xvx= z>Gie6`%Qf}-{fMBhe^K~R0zVQr?=K>Ap z$3le&LW}N!C&vi^Tt4Y)V$qsXY(m@$LN9XjcH&aMR4m&4{>OJAKVND;23_TLk=l

s+HMABmC&dYQCw#3%N+|YKP(9xBP zV&wd!Z+^E&O`>tqbYgo;33YKA}%$2d-5X+Clsj;kF}j`_qA2EN|)SV?VbXRuObP_p|_z0 zUsO@4@)-YT3<4oaO`)YVQ>F#1iy;V4nKj<@p6cF*=ohE|!<48=t#S0V9GE=+g)Czo zb8l3T`drQM4R~fa&6~}-%ea# zk8r#zrMJgv?<4R3Ep_6dn?+ng07EV0m0L3eN$CKt+WA?_eX!P|G-K$wx4yOC4QlVd z6gkEgj(9Y*zT=Yg3X1X5o49?)HTHZfl1FFFk4c}_cLb+hp%ML|Q!7Q4yc2XSFcsQ- z@6#MoruPSVT%*96GrfxMxtL5W7OeesUtP^n4ZJ4@= z2XZM>ra&$Q#RTM1nqJ=U!cjbdfAg~VFDtf2T(SUv<+e#@XSjlBBytnluWT|GTmK&g zq5MbiW6z6XFng|yv_JQY?nfqJbt?U(#&-eM`|?Rds=Q5y*IcpExGws}dCy>r;)#8z zEq$aZkia;2hBR^tjCQ$yN&eKo8ok4GOyzz&laXhw0JK0^g$ia6x`MJ2&x;4`tA~fr zgn(5{RWU}da1NBOBku~e^YwrEpIiUh96g>e=JTJR)CWtF?F^u~7O{Od_0sKC;5o53yhPU1(Dxd^;+{)<%xKmSAm=4qZL1mf-k zGKEDchzJq*QNdrvul0yQbWh>egDU4WkvFctrpadbc$p$e`M$HYQur+0SS871NtxWd zM=`#xp>T`m`eWdR{Xe@`wAG)qR{l;yoh&cYg_Jh@N5GM)@F6)3-9B8Ih-1;qQRj1o zh{p}rZ{L>cA&JBsG;cM&+pCYpAvp-o9yeU*RVbZv2;UblTBMF#?z)X zlg$b8`uY!RgE#QzaM6R&9dmtSZnX>ZT+S7v!L(WfM?e@s-om6DyO}GO;9~4Wsrz9} zaY`Xen61OTh4HHtfow6ct8Kjh2+l3;q1gf+KvF#ZfmFOJ&0{hdu!3Jxj45g1W+ajtq8VGfdPQF!E07vjiqO@qC6`*;=cyvk@(Y&4ep3dd9Jy zkKNx0T269)*GIO?F6GY!=<(-$k+w+o(Is6o8?j!>P`JNJa}*~U#wK$746oU(=uZuU zAiJpGbRB!Mn*WEmw~UJF5C3+-A{0?l>4qVd7`k&9LWYtS1e6$%ltvLnK#2)DBnB9| zhM`dbVdxmT1nKTj3&q!N z5`}qcDv9;aD2#rDbmh9P zXIrAeQee^Y2h!qPJK%+ZEXC!{X;CP|I9g3jtI1ve&HUFN7OL$;YbgUw!B~#j(rRgP zLt`T1HGkh83+fNWk0pooCCr182HBE^x-rCS9Ks3~m@Z_tEJKz4Mrd9%b6jQ1Ef}$LHdFY4ld$9WvXc#1R3Q$`)0Ep-5H)PQCI8Thhnjo zncM23SC;aHM|NwU(5K9PQ5G;7*pjXe{*h*`z~aS8Z?A*kwHC`zO-r&j((J>r`mA~U zUnDyfUDM`TMI;e11{6|`6-^oCoxkicwT>tDCDZw7O>i9FXp{c}ysIMHXA{|r{gL4A zoavI;Oj#Z-85m&2y|1@QTPTXxdPTHJg2pSPM&0vE3{y3mK3y4+xHNu`O=(qa^fQsM zfS<0CsFI*LX0N~USNIeR($Q6WB1}>lTReR&P99?N<2gqmtLB4(3ilaL#q`pi9!uMD z#_KF#CIj(tZ@9b%#Qi9(pHoEYy<^ptUEijFMpfE#^9U2+icDVq)o3f8m$g`73InXJ zPGvOqM^APjh-qA{d(L`Wq(_1>j_J!-WKSX1d$$2hNDBO#DJqiJf777{KghTtnMz47 z6{9cu^s$iWXDTp4N9Qyhx%0R)H~2x21T)j2t5J+soJFUsjW54jrlq!_a2WlFkrxW{ z5c;mx&khQi?DG2Y_**UZ#r_pf310B{xO#-ylCC62rC{~z+oKLElts&j{Q?$S_6~`= zb-dXY_Agzax8YiUWuGo=M2FKpyTkp-)@55;TW{tQPY&)h7Ou)OKcV)PdxlNoA!pK^ zdRDCm`j?E7hh0Nv8ut0e{#j-Dd7r-ZAU+xE{+@7|-oSiYE$!QXFn1q%T^P(K;h`@L zx8kdClV6ZLY81DYjV?N`PKxQIacmL9(Y>bwkv#!(yeD}+&J)mOnW>+Ef#5g|&>ogH ziI}={9bK5ho4A1=ihegujblnj(dZpS>mS>-jN*+3!ic`sg&n*>cadD{=%2&mf2Z&N zN9ghY%ZDzBo1s}`6%B_jHT;)|yc^v&UB8mR=Q0DrC9hKYeWWbK0h%>Clh3aWRrZ2M z!tadSZt97b!-=+#(+!OPMOkBW{gMAj4D15g;&0ww4~pOFn*2>jyB8VUKJY(xa?)>G z_gNkCJB1X?pQL&Tz(2`B1i|cnV0K9KtCMC8+GDIP{@$n54p4`#(YtQt z7p$_GeYbi$VqAB1?C*eAn6ju}I?ck+{f-G9HA^@)^{#GBf6mdTL8v_b>9LcQR_~wL zw|DBcKfT=YpX`~Z#Usx@A;qeL}93%Ap{IW<1&G-L^LU>h&34j30fxC3Hk)WAC zHVk3d;#~|PO9%~xuZ&zRuwt7S43c8<0p+iofVMv@u$2OSZdSjYG%|vIEp`+CM~HX8 zR3GJC^T_q6{U-%0;_jjfYYUbv{D;|PguPKFP!&t_jeyk+d6ev;?}a)AV0gUGdl;4} zV$m)W1=+wlM2S{MOho>c(V|y(;$lmKPrV#-PUVV>^^B@W7@~mX~NyQEk_%yzX z76Wg6^ulqt(riFZNa|a@Nh=ywD@yjp6kFvO6Ep=OAeS{7`1A(D_K3Fr`@s{%w2Zzn zGba-{<4#iL)>X3qr|dTZr!jF2P`hTCY|pN}#lOMxBPM`FN_P}3_0n=Q^C;cmwC%=e z+vB>YX)WcF%ctO_dfTZJIum|?Va1w@K;=}@%(!q$&p5`tOYS38l`m?UkwVlA8{O%IWij;!m~U;j^mf-H)G;xz=pul;NQ77EFR^^| z4)ttbVk7B{5xel=^)KL6y?}0SpL>R!E8GS-*htoqX|Xd+UnTWlz!KUA?K;}(#(|+ir&iPIh*k@((*ej1_p{2sjim# z9JK~@C$}R={}gu-$cXF@_PR9*7kLIQl0j-vWCb&t)|+A#!%jQc9rCpwGGfwXEn4(r z2Ha!K$lO{@gM1w(al#$FQ5bBtzjBT6iu%2;#{)x{p(*p9*GKi+7=Z%GF`BqH>@W`# z&32c~rAx@VTs8;X!_21fMlmn%6ZWh$p4o-gRshXQBL)E2`td;p1qN8qCH2R5X zJIOVLs*rAzX#F;NWq=D5sI95%21;>4R^gM;7SoUWJyt?2^tNYl*B~O*(^)Bg8j^Fn zcxwfM(r5!P#gD6@Qr30Dr-D*S3^NBi^&11hiGwGJ4EZz0ZZa{YbPZ9rQvKh|0(>nb z@p%6R(k*3+$H1&$7UA*@Yeri`Aq{o8y#1mgb<;DP{8w2F@G#FOW|=J2^=W&(oy^@-8`b!o3y`_BZ(QehQ- zY|q$fSzSMk6lT!5!bsd-)2ZyHyK61nR}9fd$W1p))h%1n1$mS#sK==8p-VzJE^!`^ z^W05Et`BK?2v)Q`v99)upuYA%b{ow)a5+}&W{YBiI+j)ORzE&#&AR1f z*-CrlS6SUIEC{(PHvG^mHCemj(c+(JcptI~FJ|J0i`+;7P;55hOZ`P0c28Q~QO%^Z zM0`AnYq!T!;rAlGF`^Su5XO^W$(hhAOMs@WiZ9h~(RDB8gBowWs7`)qX%r!RFWt(5 zm4YQobyd$bPd5Ntl#hG;s(RtnyzF8}+?8_Av#WH!DvY_*bbq_|P^u6lr9$)TE_efe z2P1##1Ub(S>cZkxZfIwI2zLP8;>k`(gfdYY$>HyznRljLDEUn*p69vE-rl46s_Zyu z+X2XlkMw1z$KQk@x8r8F7hIQ?c{4?Fa*AE{-I??&^4U=UsA~VSOh2tU+nnu`%xGP4 zO#FT^dKia-e>wUZ#Tra$C5l#;Ow75!oMrispUydKcs8)afON` z^!(v=60u=Y1uVT4F=7*ldqxI0_oLUXQ%da24A%Pax|8Qu-M~W9*pF_C4x?9udh4-; zQP}(2uNY>u8&@@Bq{(GLf4(px)Xt7D4c_oHhT09X@E|1XpW|G?TPR9DN9Mp~|aGzCAMf?CQ5~xGK0o z5&l!U9Js!r2D2nfWOB8$waVALAWrtZ|)VqRgd8>t+gq`5msj9L~mt3h`SrBg|&u>%kzED=$a#Cl5-IwcwfH_L^ zQAcfa3FV!lUQQL=-nUMDO~bB-(?7jQtPe>n3U#5-o`qE7sHs%<(6t}gBMcY5Ztne%jE z6y=39kQ%ksGz>8Hmpt2YSR1%c!z$!@Y77eNdgslYLF1x4LaG^vY%j}t1d=G+@C6;V zl*CqyW$38veJOEFkQMDhX#UB|{vn@P^U3zUpk&#MV>5r_?O#jdj1vP^32MWg3L#4b-Xl$8L(`mo(#ic(U`+zVmV@tO(RJsI>f`>EpO$B;R}$S<*!1 zx>zV7E(TFtu%TK$$D2M!zHj%ixsN8+JWO!1zPi!s-~bu%p&SQ zY3-`m!{D;%Cj3c0pk?tg=u=R&&}pz7AgGZ=sVMmnJJd3z=nd`?bITWwl+2qx%#-4S zn`h3eI!61StXQECFPkJUKu$O241{+vMdyA1Sx_TzuioWOv3}H@PF=XFF*T{5tHK+$ zuWH8KBoM#|jn6716ZDy;GH_u~535Y}_`~lJoERL`Q+aTa=>S?s zEYLrl`?0cQ+MH>NC`stU2&E+?@#^u`;zi5DsS8)%;?>n;OzrIjtRl$)pJ@G&_YP<+ zL-$@J8l*8vB8z-*XzNjsV_U?llaM5ha{N4N&aub}Sx#JIkaE@5hV7VSZbHEe<*;RI zg&#$Q7F){nAv`e&=3*81#%c6MTL><00JsUE{fo`jTs2HZ(-%v&=B#*LL{c(Yo9-S$ zN4iYb$u`E?jiVW=~tiWfJ(G3PJD)a@->-!`rhHGjd92Pp$~I~y5+@^%0S zFnTkHyg^b2NpnlfZmr#cVrc8xBcOJ>tftR0bA zJCXm8lJaD}GLT;r10BBlS+nR~dSpHr{Ij0!w4_tQ)t*sb(8eE#{x1lz(}f8fY+bZ4 zVbtf3rG)rKtkXi)?aS3YT)_a7vP%Lfjso3?l$z5|w@>N{bW=bm3~oL4NatFva4{{G zd2gVUUSAzt#_^9P5(jK&yBtBpLVgIqi^y1M6pA<%P3|qLz2vL5Vq`q1U4@y(2qSAG z4Cx!&B2xm@Uo&p+uhS?*`o7658i>uW{f%si-!n5*9j!GdDyAP^_8uKk)kj{#ARJSk z%y@W~2Hf6O%ruzbGh2CFup!w#W7s#R+38tuRa0`f&#M1sg-KACHm+0@t2F~Av}El3 zM`BZEX=c$79A@`!LrGQw(o<-II7EW9Qz+&j=Jv)4&WPW9K1VFJKJl2_zAj$S@B$vKq*GH*-QY zXw2%1122DjUdxuUf6HY#6O+Ck8JLwV7q7~?r=DtDJ|I`u*BSHR2F(XV&;_zDvym#d zqo2=R=l7j-0%tGwjKzpDP&>1m`TF?W&G!wTHtmbG1SNkGxvHU_e_G{}g*YM7{zt(U zL%!w3hcAgGQaqh8<2S#N933&}E zzH|Z0XN-)EDF2(T_^~0aVChpTv&vI00NzDT zf%E46SJ=pSun=W3Cg)LTM9-AxROe*+C&{{qnf<%qjNMn?xaM9TnGfN^wT*oljc<)O z@{7*@gecs)?1AUHKKbMaYT|#Xx#JnK(vP#t_UJ=r?j8YjJiz!Zy33bIi-dp@>@~ns z=W9UO!f-##^bdVZdYtT@sU&@4O^z!B_qigU?ZXW6Ks)uCsL3YP=#)M<>lyNBX# z5m~LmY7z+WAD=l8W65(X*+a{GkYws`UUO;r^&3Z|-(^d#kn` zV!@Eoq|QC3A6A+)7Fdwh$o6&@$IZ8uRYn&AI(VXN%8{V4UXSE50M{RH(i1}zWL`eN z^L)lxB~)t?9tRal?^zkpx6&(}-#jxqtMzo`x@?@ja#hGZx%DZZ&eWB>CI{@4M?e9% zAZDM21s~uM>sp<~mHW-!yLvFv?9XA#Ulu)d9@~`iS*Yfwq6p01&$1+1!cCu;_bkci zP+NuMs>SfGQtG?C(gT{o<%6YRr#)&!2z*vp?f$1wPfS*t(#~~x%_k%Gr3=92DN?XCH(CRSbrFyT` zN4loGuklmeUQ$w08$epNJWpcZZKw=0JXix+hdW?=*A6v;QN_&?>#eAJmXK5RvKvWC_c=ji+L%S`q~N0H%*4msXJSj zUWMK5xo4@A{n}x7_44U{>&i*iDbF9b9p6*WaOSuc%Ro~X^zgDZxqW3Q=+`EOJ7vGF zBQViJ)yS9%3jWTQ0e_j8%srfn8$XKNu9ig@7E^y7gc=(rCW$X&A^Ng$f8tmpdq(@R zcU|h*%bIWfec#8CZ?-m)pTn#xu89&O0*UX-#KmUs(NCNBm=3AZqh&~N@_~{%zax&b zW?^DmQ%o;-s2vUZE0mSOWc89YA?qXAS0AIzFnbnb$1$E6bWcykqpA|GM$%=G!?^G5 zNnh=};iFD=8Gfd}o1%4Tq-yUHbhUot*X06!cYUF|+UOWpauu7CS#b)jRh!ofmzv&_Kb*=XR8JK3J%ir|}_;YticP=m?mAKJ)VzJYjUU zJ4;F`X>G}P#eA#F$g6uY_T1W!OQ?i6%7ZcneR+tU0*2-1kF;jITRyaRBP$=F(a3i1 zyZZWKi{?$Sw^p>hY0`IJ^G`$gQ$H6oHBJT?CY3?|BcWWG>waE0;+7hG1%5B6O$qyc zk8->Wksv=%K5s|7O**6&rRR57w91s%c=Y=VaG=R}^r2EcPKR~S-T!jF8p zUJ{Ufd`{{eI3eUCn6E37BREz2ivVsrpg%s7ACa%U zT7wtrfBmh}J24fs36~uGABi~IHBiYwo3g|n6-YzGuGQ9%FOg^mFhOne&CRn-itlUY z)hY6Ry%(ALRWhDkq%|&#BH(y|Jd}c2GkZ&}uEFhv%omW6H777LsNBjpsSkODh z3DLOSBWO%gp!%-Z6nERdm_77==PqjESd1i}APbO!El`_n_NVLA1U6-&zU6SOJZ#_J zIId&*VsNvpwe{NLz`3=S{pGb6!UE>DXPde5g6?G#!qca>xzl3~_pk89&hRN5=7hV( z=q9YRUicoF^en5$5c`0Cxq}O>4t!{CMePmRUOq^ziBsb(m)XVy73nxQFW-0aFd6)}slG~==m|y&NvVnjbSOydBITkpkjcN5mt0^%< ztJAdbSxm7I3to6Dhi)R|n!j?*cXpsi0ah2A-1H^C7XT z6~Vo?_A=^3T6CHWkzqlOX2oSFSqEOs*jXf7;lZHsD9Xq4vy;!VdG)7Yd1t!~XC4>BzFFaMA} zglH~M>9?5tM*sBB`Nj*Mz(0ro;aKN zHV&(in<|2FqMMRp8`GHWle_yf%ay6&5(EDgM4WtKDizgjbaQH>rb>r9^tV8q9j~&a zukWAjpDs;M*z(s)8_@M^#K$X2{l5+(gC9#rpFm{YA?{{#eRYJrsmh+m3*pLLMP(GG zw)Un$#l0|^j-(j{v`19eV8@x(*Ud8FzKO!#cwYV9n!5DgZ;rHA61Ui6?j|1q{ICa4_@%UP>3&$HN)4h&6y}w}7^PVQ@_DeX2!eQ7ka)_-&;j+SK(DV&{y1>Dc_NWTBc0@+xo|@{J`ulgvsF>iRO1Ep$88 ziHZ*k9*=g`0cPmNO)*@ACx$%=2sx_1Q5i_##8;hMI%i|UEAKYr>D~>l2*JctD}dES7SVSkkd${D6>4O&y8w6tM%RsM3<@y7&E@cE`p(Ebs;Cd$&V z^Q-cGaAC{#vNk>BjF&jZml9d*b$oWSsf@$jtbzn^CcJDA5(23fmO)E<|Cf6k*fhy_^pTgL~PY^j6v(8oN1Lj}Cj{Ka4SAx?qIH>8?_O18iymxh zC05Ec(L!y)TzX83QK@_esdxmu^ooN2qH8tog|oHaVpLIwWIjibdJ!`eKSce5J7Hr$ zbYNh(^8Ew(M_b;9eN-Ug7fSR`v3_lzv~81;b*HqDIsqqhdzGZoKHbmjiLM zAT>z6=Dfkck(;-bpLs>W{+gQ<{x#PYSPo~ZhtMc(Y-LrUftS=kz_;cg@&Nie;qgS0 zeHvZvrq3S*RZ?Ed7}W&;hH9{BZoGUGmxkPpd!_ShDJWQxH@4F<{jQOq3i>|W_3z*_ zok{AL%m(B`1D0RX?}go9dfQ$1o-&!)-1xw|N$;P3#wcy>VdQCEA@K}cS0=^4SEgyv z-v0WDnSabLQEKF(6RSyCNYcEmhJG#9yujLwqjXBB%2>dR-~xd5X1b=~!ITWkV?iOD zW$?glY&686^OFVuf-Xorf zN*4Y~_nntGO-JWL1j_ma-0AB#2R0Q=@`x!hG9J^JJky1YfrRDd(>CcYQqbn=X-jN` zKw2s?$M^&lDLLYsQ%glyPmn{hJ@V`EfmWCz=#5eglAhjL%s~a$cw>m_a_KLVmTTDag~m!IbQ6`Y%DQ`4MgFdeK_jmCxtmtzP4{Mc zcf?frev4DL2V7b5~$t_F`PgdcdR6mMy#+*|4Elg#LQ|t= z8xk*Zpf!_@oXpn&bDT`h66^i6~NEkIW7H)836c3_b|7@u{eIqtnRuw>Duj)oyQ2sgWKP5+J! zix)j3v^m31l4+xgqM>eT+OC`0{x+@I|1i~&z4K?7Vpe(zlbJ6iF#Pt2VPGdv66I5* zgv-WQA9VrQrB}cPelTGvL*`D4&Y{DE<<(xAh z_?P8n*Dse86Z_2q#k-Fwm~mftg^ZttFc}d38I}M)QAopHg=PAC1n$9#(^1-NYXzIa zk4FZV6=Q#)e$i*njC<}0JoGPZkq)@9J8Tg%Sesk319NpuNjcrXB!Ni9Z8c!oZvTvA z{nl6NQ92lQqfp#=HR8#lp@=zDum45VHcw%fb2AC!L*kK>OU{=mJ6(u)$!SW2J zgW!B3#N85e4zKqJ;zW?AfJBs$0YvTP{s z^vv$>Clk~1OH<&we`~}pP6(mBvmw5(Vg7gW+QaN7%J!&+SWx8$w2Bgiwaz^-KPq%i zeq?%pJNZSfW1wyab-52l{pX#MJFBTG_(ZkT9E8gSR-gulf zfo?=rULW9Za0#W@$y9+*)Vy4u4pD67Q>d_q*(~LGmYt=p%Y)2DPCQS-Ho5PV)ifl> z^D*3u7%i=H_t&}kEcQQ=cY{5=P1YJ>DDR@uUkU+#;x|#=1yY;}S)^UH5n=jx?(#X= zzKv=UT@@0lNPmB^#g~6QB+@rB;^6X066TTiXI$pwYKjyF+#gr(T@!BJeBk0KqXTsj z|_2!g4?0hdDli5%gf(=jd8bZ*!VSU%#5K4HY!kqJv&2q2Vcs=h1~`^XGQc zH0$>UZFXpr+J2Ac`0XSFnpZwO;WeY6JX=z<(9p{DIeac|I;7>g`6%PZ){ahk5!#O> zpFc=5n?j8gpJE&5|>}7-6 z)IIM#4z|QU3Qw2~S*x~i-FQjZjX1#*gECoJL+ODE&Z)o&(vg$=_v4kw|GCbhhb*eGu;Op7846A#A-*VopcYix}A+5{!yB+CrI{ePY7 zTPEgG3s7lAx!IBPp0k=$f}Kl6I%1Vlg0XZB;MEBF`vQ zJHI{_oVZ#2_FseCkoMjHOurm$mE;Put4+yh?_)^QnS$;ld*=<^Mi{<{&a$}k#F4Ft zSU`iHtwB=X-x5mD4T<83pPsSJzpL$6WtMw=6?+(a}iQ95rdHF;WS1nohLiW{= zOWV$#ZKGaz`dZk}?~EUv?<<^iD!zA3R%L(vu6sNcRcum=lDNKcRYrn92vCP_>!j*Wk`+X`G@S@)ecuBzTlpjfo z4@pA>m=iC!)6o6e(_C$|mNGvoQ3_0t2)Jsqx!yhJ?n1-%B=4|tV^rlYO6!a!tb`{C zw&9KN1J7LJMcj97oc2JS6*?5vCyPn5{xUvf_U(J-A5FWZIETx@;O_$HB#rOp!i?qm zl(2#Y(+cr5Bj7u#uQ|!S0Jal)_Cfv&Tw_MU8ioypdsn}ek~DuM@rF&c|oA- zbNydaT+1Hfn`ZycS~znL->OZ85<1BQ8|p+evIevz{}H)?vDMtFPQ1InB*Z?rP5O~L z$&^8Zhx+mxvPx1qUGXutrvnBU&XpTE0`As4AwV7V3fWdu)K}VR7U-JF)!z6U;XxyN zN}+5?ls!CkQp?m+USWT48xjWpo9b?roOQs5LG%cXo9ZK^K<|{nU$%n2zpWc6<984{ ztIam?lQxg^G0C=3T{J-HcwveP^-lxhpVAIfoOfY?q=SuRxDg$eB(EMGnmPi2eMW+q zJ@O8WS2bYJ2mW@j2u7LT?j#IqG+FPKbEHp!!xXLJQ`O$=E=8{6`2!rRxhIUVEj&zM+0+Bg84s2gWS!5@Ipbxhm@cWNa| zL!uRK{sjI-0h+B1z$T5D6r9JmwS5Kd| zlI!&iniea?f_z(Z?89K6*<6+9=;VAEm_43P=vw4LC7=bBjE`3PznmOccCX7_e)Wyv z#jNZf=RR%H{*T~fY;bA^PwczN@jO+z;DQciku!pAOI zF#g^4cBZd?4RvBD$xiVCK~3)OW6ODOjZ|#r?V^63NRE=m-se6(!=TkX;^lWa@eRdl zw(I!N75ZKb(B@vYd%B(g)>#*U4@^#UNRG(`DnrS!|BvLM)$#o7=vH}u zlNQ1fDL?>5$_j%&5g{RlsWfp=*L=Wi71R=i{vMVIz_9U%U6ImdL7i4a zvK(B6rz!Zl53X^{s_Is}9?a6xXn(*PO7(VSe0*g|F7du)EvO4WVHQKs^bF2z*_(}Y zSU!1PgdYN1_Gsx4s21CUpRgytvtaU;%- zyZLshK+l-Ec>Goag})>3-=i#daV7|rb%)rl1=rlKZc-1G4%4E_ zN)JH5WpiY;GuU~Nv`Ak*VkI3COlh0ptY44`ubRqpVKDVJ31m!?O-JI5!|CCgN*T$p z?#FuEzCOG6+$Ij z|0*idtF=;74i?vJdfaQlE)bV_YnBje>KbD@-6Ou4@L`+Xi>(^6Jgs0>68}tklk2Z; zNOkC4iw?{Z;#aI`ZRNthj%s1|gRYtFfN^{6{(8Ss**6t&;jl zRn`q#V7c(M4xv;?M|}=b;*&BesC=w1G?pBbjoV-TkHm*xbc#TaFIu&==^+khWmhJ< z{w(-A7hgpEgnW-J-zs4~^?l37LL)ITEY0V8)vdOje+)a>SbrU8@Y_n=l-9!JaM>u1 z+RwsZ?w;q-E9YIndT=2%ei>M@8&UqQgj^6I5q(xW_JW z)K4!>G8G7TlVXGP&-!*fxR*fin6Ve$!eS8-<5KdE;jx;{w`1vL3fh;y!3<8H6Rc{9 zicw|c|0Q6TaDN)01|ExgKiepHYKcVnKADMl561jZ#ltiD(_h88H(w3kyl)X5(h-F?%PME zC4xsLk1k4<=g(G@G@Acla-SId!z0tXhKhR15- z89JL878H5Cg3CyI@tlc6vhlFuLUvn@RBxofBJemG1s@ughu=b84EFETGM`;68YHr! z*-Rp30O4X$h{lz`X3$?RfD2^5es1J3Ta)ysjn^~G!}}0}JQc;)W9yQmoe_VqFpzl9 zIbWHl&Xek@JqJ)+1I+5N(;@$s9c==`rh(*DxbuP!mTNn#c{h5U8$Vk6SmB6fnN%G^u zf|dOf#X4RK(dL?*4{sYYEH({mXS0=MiX!F1a3Sg~QW@EdjY6Ac(VlD0rzh|SaA5Y| z3QH@~G+CB_VxaE_6ePtb8K5rAZUA*^f=)^lbcf=h`pjUzjfY$tTe(;_Pyr1{$u&xL z(SMklu5VfxUrcR>pw{5W0@3$(-f?{(0*@XRYH=&f(H&CPU)cWqh*~0GehrrY#}Ns0 z9gasdDAicmu5A72na2K`^GDH$f9{*({Ep>IGC7J}lU!egTyVtO;~J=Tc47+r|08j5 zN_6Y?1qF=c2p$@`dG04Y3k|H>&qp>smIeDlNFm&3IiUb0;bn)@datILiD zJ94k-^o?~lXz2WhjlHslzdTLx%a=j%=9S^%hJUn2D~@~xRx#;O)SqX`4}<%$|e=Y>(%0LMpt^!M&x4=o^EEWhd^Zh%wT(m#&y}< z$X7=O=9A-wqgCbZW9gif$Zs;<4gsezTD9oL${FXMG`e(UoPsk=FE1LB&(r1W-*ly@ zHKeBaEX|1z9f3A5DU^@;c01`j^Y9g(A*s^j6aV zC$Jl^HTUX_;itE1zhoJCv|Zhq|KhQ~Op=a$UX`eBW!5mRC^0yF(yHi_I{g|MBm4_K z?mT*tS!_j(U={X9U-?l)c1+Hrr6)Mszr(n%%)4AFs540!n>0(iF7F3jYAmHW*h6F6FbCXj!HNxMFUjWqDXDY0%KSIxiYJWV>t6#> zerVI4OjmKe-A#R-@pSWQ{gZOSx+-W{S1ln^{+ielMLdR1xTvRDZ0ghFq2%@$Ic4bd>%i#)1{1p+i4QJ_>-E-UWbn2bO$MBa8m zQmIdIIJNckZrQ=zCHg9<=EfY|qU>15`i&65RLVY3HZDy z`xUZkIV;bTJ@?fcCGY=8R&M;FnSW221=^fgsjwI3HR>~$ zglPBqnAq3KP!;wdRP8UK*xtZOf0yRy4zhv$aT_X>FJ7raJ$LCLKWJ=I1FdC5M9Fl_ zHnPE86u#-cz2UC(@w(Qd!N!etHcr0=Y(`5T_Td){NLQ0J`os5+9D+M~G`X+{Qc(R! zPPcV8%yxr}Y?QVlcqO&QL>FuD!D$Oc8Cf1lqt#Ufy0#(B6Ps{rj>j7QO`GyzgpC=0 zw*m*=j%XdGrC~g80UGt*u7bbDbBD$)bp?E0YZ;8uVw*Tc3|9<9>7raAWk%B~ z{PrLjH0@wXRKiS#k0FJYYY%wf!YQ*XEX;=&j7QwEJGj|iE}cayIeYRI{V?GGD(=!j z)6zJuvzJ7ytnqP!!{0ZM@TR(cDiCxROqL<`3olr=-@Tdp?43iTfIEzwQzKa6xn@-| zMZ<+U+HV_@&@8uBiquEZOR0F?HlJ71{0c4OuY^c*P1k|(68CcjLLNKKsq)kPy!^XJ z+4AVNOLjuhfZmfi|5Fe^R!{finY{;#Oz^~gixXrLOkzlO&8uo^+DYaPQTRbH^WzN+ zY@o(S=^|Lq`L2c1R~UgCt)GC2Dyxy{BxI!}q?K`hX%JYijheK+_BTa0)3MU4hWgrW z#|$Ly-1@H^*B(4|w)o_NYG_GTcw&FcTE{xqTu8T=^9zZZWs1F)b>n@n{R!!YQEvx} zUR!DJ8g>Wnq_Is~j<2$xr{0|k#b9?KdNL&&O`?fY&FS;grdSmkRLU|YZ$-ECp#Dcz zxr(Lob4mk8d5CqRVj%*pq}l=!^s_d#%ywSKB`T)zL_i@VKzLt>3IbK=J6 z28G(pQn`FKb?m9;>He>iK9dBQ4Ug!W`js)zrXWCZwf-y}yXo>fSw$@1<$%vMa zQWQ?yLfK*K1+6i)`Km@nG$_fVN2spDZbFIMV|`OAuaa@kU=aEw-$+O>fd!(kXNWDd|&1BwX9?hP;z7lFJKfRRtbJW!mG_rZ4$lY3bBKgfiD#IRe z?e8AE*iQ;o?6v!gis$u{Thn765cc&?pzoisb64?XYgnP374r>8JkM3l30GRi(Ge|I zw60CIrN>coM zJ+jQrs5;B0+$4nL_nY4@^I&sUo24evChbi*JXSh*d0+6d9JP4KUPg&&8J2p0;CyBr zJ2!A8UKL{$(=^%Q-lCB&nDt&?zoa%Jym^z*()<<(Ll%(;HyUuJnp9KJP5Di&{72Ht zpu};hN(A_(oqi9KizS?+4ZUs0gy0GzJ+mPOPqrUClu?CD0XmeO#cvR*v zMEO>>GW#Z#@oltqn?nL~e(%%`4o~r>NpLpZ!t+Cb1s0?(z71t^OludX`SSbuS(WLB z4YIBkws-bzLVDFZ{!W~=plDf-O%*2Hn`QPttHH{=K!pOlf-07k#|R>OW=ip5#rT%J zgnrirC1AVjQmuSyKIMZ%*0h+=od!e&Hy0ZNv7sS<`{ZR~t9Iuvao z>0eXB`orof@sNE2OK(!RQiOPhxo+0qTm9CpBthr;|Ha&UhqL|1f4`JgQPgg2wRdZ8 zso8YGI^ql>Cd5_^*%vA39QQJXgQR(sFdswdz3zOU=9oFwi}>2+ssZO8ir25s4q zQQ3r`?xFeW0!`P-ZzBX~G~Mrz>*^Ht{s|-~qd9m#V>YT3vwmCrsbh8ARfUAtRz-8v zAu}sAfM=yB5E&vy1={>_JKi$4tfTNuLZXXkPt~fW;Uj#(X#-fio8jps!qenD%gV6Z zOJ2X8^f_^TLpB_gkmd`p!x+E{+<3tlPDb(-vcUlaTdiPIHO%9q2ckFrN06O35aNF9 zQAxmX_oiFpkU-lH2=T55dSRqL8>>7C zIyP?3_~eM9E9ki|#(s<}FaG9lBqA31=Gth$P1k?$I@nz@-5rBf96gTtjN;qfkX*4k zUHQ#9$bRQ~sp-U?F4EUBt=cF=NPT8wF^%3--1+5|@7 zMMAeG+F#;XU&ZHYfiEV%J4%6H?t>am7QGd$_9GeJOFasDuPV|QZ{_TdTY}&KQbU2j zgCPcoop2GrM>7EUbs4FJkWT1y5SD9Rl=~wRa+>ZneJxvm%v&FnST-nEIw8q7+jpiV z@6v}sggv&g@_14bD_N8z5sn-ksIlH#={y=wzMpZqMPY2Pr#>z7F(`Ita*(3GY}6Yb zowA)_l`zEFZ$)vK%xzs4|LxMjgZGy)t599|f>(lANP54K*GQOXvnM9~^S$gJQgmA) zkXdb2T-e8eE&K8zn~*!ZZ&~g9ku^Nw`nTg>|H+hi+W8F{>?@z{sv3DdD3y8EL1)TRXs}k| zUtPORhs^X&KmY4)?!+mAOJ(R36(xYj*zF5b8 zkpFX@nHo@=XEcC55fd*{1SE*kg_i*UPpeqzd3gBr5zaY=2nRDO8{+y@`^wKV>MKZ; zJJA7c6)^S$-4IW?XWrVk%r^8q2C;?H^}KXa z$iMV(16%T1hu_cRs8gDS{dj=)WXzl!4tOY(pzdWA$){jEu9zsL@|X$Hu-LQEr;6Sk z=y+A@9>YUg!06QT4BA}ttkSP>;d|HZ!j#C82Q&2gyws!mCRWMz&+i)|ALGpu)a#<7 zl(H_YUUhJ+zq=!^Pi)WwVCZEVGYNFg*R5jyi(l#nRWhwEid7xN^vIm%edWA!BJJy~ ztn%BD5`3m)_&D$c3Q>6{_ddpeFk@m3(-L3?eQ#8{Z*MtPT&n-;iOSRP`toqatQQ7x zi^MMj!LO$`)LCMszVc}#EY0=DiA!NWGgl^K##u@MyzY0YR0*9oXj5!!h8B;_VsoUW zW0O_)1!KBcF=-)~!^ttT*h;e&-HrO-`5dA%HtcqMOD_99*#H4$M|D1~*}W>oIosXu zZX{STUzB`a3S<v)35#q8bi9e%I= zX!pqBO<#40bkvn@hiOutqAm!^4Hlf9&blp-y<#P)th86Ls>#eW?9_1I|4wUiV_~A) zh751*l_`eY{6qEkoMgqJta7^Pvc}d<_s^=o5CfKRol{! zzg_l3>lPN!tr6W7{?p$V1fH}v&g57;dbe<$JQ&62IVBflsXAo@6!&N%M z`GHwD?bgr!(Pzf~FDMX0`slJX4i@;i%z%+zpzDm0W?_Lq>Ar{M%}7?gY@FhyY|`r= zB7AK4xll0=H<+_0cG<7BcpCkC(O70>i+>rSJvhKXG zAG3BMSKSgrswATvl5_k`Qh?{wLZf1enYyeDiF30SBt6vD@1sh!;xHQVZswi=gB2`B zAHj)DjG&}bm04z?(Tq1-JT!PZcU{0J1FU9Hy(9-*X6wto+~CypD6HR0`V@bCJzNYI zWl$$7Gdlq$j(jEJB9RX?r3Bg3{u#`G7G4zp0eJL2IullP+|my^3+2Rf?&udE6AXj-kVm*qq?@E&)eo3 zguD=`4^|39UqfJrvkBUKEG(oyLvnmN92@!S@tfJTX1~4`1j!W+H~@GwLfE3Cj@ZdS z4KXi}bsC80rC7=lBf(7ym33<+jH@cU?uMu`sqZ+Fn=GPWaU?!weBSY_p>_AT#>$`- z;ygdp=8#r2Spdk-F}e$VTK&|#xQ|SZ`Q(a#vPoA_5f&S63#XC;3EGu;4|d%sw&gX% zSQYlNe2nSX+O-^KD!SW%YE%$j_+-?@4t*!(TOj#Y%l#K*Tabvrk~7@px;FXmV_Lkr zFkpJ1Dm8$1>Fiy5jsq^E|C^D@PTo<=Gii)0Qd8E(EY;%bvU|RJDLy9f=rB%%e%os_ z$`yv@7<9TbJ~K+{HRBa3c>GAD*q}x)SyMbcd+;>?G|RjLHwcd~72HW2-SfR8T%@b_ zi@*lX5rW#w8T0>z2W+;3LVDNGtmj%%F|`TsIsmMBeYu%Qn7({8c8d_?TF_CmRM9u)>ZlVKu`WjC z)sk$)h`iWD+i~XaEm!0-d*`JN0AV8&ZB|u&~8OS3+QZKc*T)zt;RpFTi#p4>#txo`R$NPz! z5^@a=agjzJdsY|a4&wOdZBz=2YhT`5{+fV3tL6W@Zob_5w@?D5^LyGAi5AgN>NjTg zT&Ix?1tQ;-XO%M#4NEd0@IX=xi;WD$-2MM!)oM*xk) z2A)p&uG?prl23p7LZQEEUT4R9rst>Hk9eKo$j2^X*@FH|&>({p={s`;Q zM0xc1g(#8VXh5Z^V+Xk#?xzIx0!Ey`c?~&g*-AFA-V@z#|NQHZqAP&hU~Wb>zz^E> zB8&&}KPJ|@=wV#Rk-jMd?o1|BH%8b$CaHF!oaq4=A)mF0nhXadj|5EyKc+anaqIl8 zyo807r}p*ObG9WDCOTX}0i4-fd#r`hBD9kDFTf0>F;6N>Hf!h;C7MD3=NSW4eJ&Jp z7VoCcNz(5f0_I@3*O%@e(IP{|N!zgsvy0CU>=M7fbNevib zS@|=JXG=Tsei#=i_uX5m5p1YFGykx3n7X@Hp)YTK|^7(^8|)wlB9UP5mv(6El2QJ1?~!_Dlcz#XsX*s%v!(xjIStZ zsB3rErKB5Qu>VmkT?l#t%+Li|sbXpSfy2+w&nG{yQ%pNnW3JHjy zxQjc`Ss{B`iCdpWAd|oSxrnNBa2pZ!cBM!Sj%K!Q@TsMV`p`rD-ntv{L_kVL2WyT6 zj6KGfN15c!rD!F&CmxkGq}ZIs`frXW?WDMS`hqdtLBWJ{Lgu6oqu@eU({USH=Q~6= z-Gh3~&9rE=zlpL*!5ozPKsug?j`$QoH_&9;IntYzs(~;{Hr}y%(eS$J5UJdv>XCGR z56mYMV;ZrN@hqlxo?W!D&FW7J1N69<>N5J=7M7W2-SA2S#V42wlvRYK`Tm&h*$N~c zz0l6t@f1$wdwAn2X(?8N(4A4~y|y5Dw!4|%Wlm@`YXsVFA^SG))C}B2f#A)xX`@b~ zlIjfS2yq`$+M@+~`)FkMjFT_j@KI^z`wHy>B8??B$QB z2a8gj$bNKtuNg^-eb3Cu${H0e~?(O$Q%dcZ$xAGnXTg=K^{TgC-LA*{`PBgdZxg{3du^sgm zYgLar~ zi2>gIMQw+f!|q97yI%3odt&G+|AsDSD_F@*ZH}>r`qQLGV4nP(LKq&>1h0J$M^ORP zmCFcBI`xa<9d6kx69tWam@gvUrmL~aOLwwN{q4#vZ58;V*)S|5CTJZ12A~4v zjVHgMOAgpG{7U>hEH~BDv?-%^2d<=UT5SpgEWkl+i8r*f(I7GYU1uk6Z|rSkmI%=- zD<=+houD0H_aNGfc3!iDIsysh>MNgAA{$kGa{Y9qbH8sQiXq9s^ual0r%@2t@j`7T z+eySu`K;Yb;nkVd-?JR{462Vf---GU9!2*hI{=k<#_P3f zqH4ULVI=O-pVqq!3aCf_WWpz1W##(@=qfc<>_Kjf8x1nrw6ni1(ofs48IR!-$@QiA+^LBRd?tXfYQaeg~c{lvG)CY z87Ith1fSYX6-QWD##?ezLqm>nFUMFXC5)SLLj3kfE~`bsNCv7OTW6-D*Tuz6WLIOv zo5!=tIz4+gqbX8fF_Xs8K{HJ$a|@^s+kIdZ3ZIlRE#Vc*}2v^sTd5QI=0HngRDR0zlQTYtGNw zAX5T;9$Mnjxx{m~7(XbMGJjpv4Zpsk4YLnkJ?!ypE@v*JLHU-y27>-OR?0>nL0M-{ zxDewfgUym1H)p-_DXt^A%yVpM?r%AW>^z_s2~Ioai1N54-L`~)#+qH+LRx#K zx18)aXOa*uH9O7p$K1M^yM%oY6@iW-7stzYn?1s{&NM}U|E{SPC=i`{5YU*cWzRm5e^OPq?sg3IHS zB=NrQTOcl>v#(7S9=QfLZxTo6v`f9rACL5=`qY-ACE>{r`3VlK22~P=g3(Fpg!FVm zW+Neq*?ED_v1Hsc$i}tdX=UY+&gR2D6U_JhZ$-D)EkoAvxG9RGV8oAjKq!Yak@v2ke%V88MJI+|{t^G7$HHoD60 zN=U}<&60Ye>V7^{8pK@PjwHg@{%>`p~`<2a@h#Wf;C#0 znT}Bzv<$!f)Gs~g@4@2vr*Gt|9vQ24VNz03k8y9B2Ne^X7j&k=*gJGo1-hpT2JYfy zm)YT{RPIP}<3jt_Gxlew8O-$QLXfwTpQWzbpudP8^WpNF$%b@a$NKBwM`@e22G>GQ ztr2c_A+^WpzE{NOxr9CY1=W81i44EjYv1GJ=iGwYp#QFPvxr@OLAU1x&J`x^GHAsI zj+Cc@N~G^q73*7D-mkW%MPwxdi})GBhFhk7Cb8z5<_+XHPpCbZq$&_l9Sa-@r5{%5 z_paZgwGHJKS*Z^Sl|$+`Z)8<7{as@tH(B|vkS8z(A;~TX;tfCy?5_dzTCKCGBqv?1 ztV!Wn`00Q!fzBPO%d891t>09Ha;Jf;p4E$J%mkC1R=Jy9bkqXu6SR5!%vg9jai32L z1l-+yd}Pp|jQ=k*s2&V;4Sc(b7Iu@l;N5}G2y~?1NS)g-o0yNEimPagRgOKU2yVJ1 zG{7#>ATX+c@<(z0r$+1c%2V2igho2v9%!C}v}Jf3ALwj_!W=c69c+_?6FyfI4p!rD zN5wx!y#rG%e}9KBDooM0|FucTA5Z-F{rOThXS;2^e4-J1`1M)c$WTFb|7Z%eA*O3gP zD)t}IgLn@0a|F|7HSkyvTF*LSkZd}`xgY*%JBQ&@f9F2IU1^%*<>Rbn%=aTI`Z)<~ z>Q%Y~A?dsIkBHR6f2ji)$HG2hCwnR`;bmtUI3G*}Pj3If)~14{_l`F!%t%JgWo$ov zw8_QUMEHDLG=zH`xAM|MM`H*CcqZhdYl>VNT2*W@*h9bNaMYHP;7{#Cp>2dSe1ACo zDcsUkB1$}p=PgROwQk?;pkW-vo4-ZBN>wZnvd3bupUY8rg%|{=exm{;74a!JPeh28 zF@6hvyC$BG&=c#AUNQ^o``zSK$X}asm!*%sIjRmGMng<^Dz87$e5B>rh@Eo*5Gq=C zHLt37uM^jo9L8j=oU7zTe54s3$Ip9hofoW@5d85p`GQzO@xn_8K9Ujw5K`LNWFtV` z)E=D3>TI(je?QQwiOu62{15JaapqGky0;uWKhcrMpx^q$HvJi0l%PG6g(;3YE@y-H z#(47XzL3xh1}jT3>7OHyj|?~3E}veww(jH429bov>q_a=L%`C0l{s7uy|HNPjnkjd8HU_eb_Nc~lh$eaP{*vD^esR2*J z1qVy~O?z?Tx>P9}1H5N#S#{!Rn)hJ*rY(z7{n6hML)fG;}|j z?paYPz{HJdcuo}!-b%=w0%)U@6Kn1sa1!#dBgdvHvW}ljSR_H4as0hoEZXLbH`y-T z6*@e>7*FM%SxQkVuJgyOHXj?SiT>d{|ACWyhcxGgEi3&iFdsqE>&a$$=H9 zBJ1wSJ-eMI6uL9BdHEADrcKBVeV0@S@O83$-qNi53>wYHlRyj8(6Gu7jnp;!{vsZg zjXF==8W+YC)_zX&sLM!IeDK;E*kVK|Y|hYVWyhcnA0#8oV9y)0M3#0&6cq6r-y6J^W9|LG$3~lg>REtwK~wukkpVb3ufxtu7~lrZn_Pwbn1g z_~*~6H$9C81{z71dt|}ov^9b%1gSw(#*uO>1`-e`U4p1_gNoo~%7m(4ByQ#Lti-AN zs5%R`3!&TqKEVvhunR3E=+N1T=$XHCKGOTFJvM?u(%(0GrDI#zSTVU~yQ$`{I~f<* z`?#0_kA95B$Ld%R?2K=91n177V{r3iE2O0%+Fi($EVNgI8D^TbGWlpdRF4N6Sr<_~ zch9%KhN>wN_xWUaz=jULGAo&lHoJ&QBIs>SeS0QcJJd7E4bZ7yE&kwT+$9QB|#M%4YyPb&N4+p+EeqN$!*0v}cqGOm3Ttk+$A<%rC zb#2)!g~B#i1u=N?l}FUFz;X88M>YZ|?O5WSYf*H!3B-{V9{bxp z8jARuYQ(PZk+*2ur14X*9;IQfyJq)`m(&CQmAEQ#80R(CB|Zt)`(_yJt-yJ?&&5sqCVV{=X6KmI0RC`LY7IUP^}@RMC73aX528JMlj z(A>m*o^-!YF>3*U8NA0GKAC*~-(WLD*ZIaN?vGY4!oRt~uzwv!8wGNyntA zg;ES#M#2)A_$m-SB=@aa!-yU)opGsw{xGF6lWc;Vz8uZfQPaqyb^Ej)YU#-y?*+PD z!TS5U$4%9X9R0Yjq>SgU&&$(f6O$%n6PO|upe|>%ldmqI;Tt>L@t}xmjgKP3w0~=* z%#Oyyk{&ol?m|+gk1GCHU7jl_$dJ|d{R0u7#-o_s#Y?N^D4U^qPLaXYA@|x_nK|~= zkg>H92gfbRO>PnBcjRq(;un>?;$O9}PHhqcnPC+Uee$F*R{^sK zh9tl78k~-r=rOQO5O)waTUuL3ZR{<@%WVEKKXKql?==VOBsB`|$N%^`bHKWFQ2(~! zpgxt216mXF*sMSQH*hv;+DD)zrCh7hkAJo+vZvo$=3=`7tY24$W5R1o^uJg?0zwB; z3u`yzhl~wN`e^4Ey9<_~4Njs6g3OZ_HCJXR9Qrnxf?S7aj=y`9;4$-y|MBAB*7c|} zTlpZ%^N%~D>$rsBGNofGXc)W?434Bom#yB-Xm8r2@0;YeqiO>;u131_zIB0J_$zk3CV zRuOCL`ZkzRdP4$+Y>IlIB}lJ1Cp*Jdw7AH`xrhEgAOnqRm5ErK4koHsp z5%!k`1{jy5Y6MY{8{^%78EQ=Mf+=NfBqpUL`55>{`j*Mc3@B^jztczzzEmXK?h5T~ zQ~wc7?y@D|#hn+FW)ZE!K!g1y-xWp}y9=QZrN;CG3|z$7PU(5|OnIc|h=kt2C;zMky?w<$12(f@m=l3r>L-B7+Hv}&Mq74sh~>ms9)W6@3CM5zzItz zyc)4!qWg1%j`DTVfMnsZNl_6y;{xq-K@HIZ_WP@dj1yyV=PgH zInOq@q(79!YAjOQR7cp63ZyAr$tZxn83O~>eL|{(RxX%U|BA`_u(#1IM)9xnn{8zQ znbMM`gaGa)-%WdK|LigkM>&R|xd=DaOnC?*1SIxQhQ*3vf=&@w^F=SL}?9?Td0or4+$N!H{q z1Nz>BZsIKm()&5$^^y#}HWPPdMB9FYhzJ2{tDBRw-XU++PKnSHmIK+mPn^sZpZxl{ zlvB}&9&tiSCwxYm zHh35>5!rS;2xVd10qj`6o!!5`DT7mhit6eDK&z>V@FZtjE1TNdelad?syr@Iv=A#1 z5fO3E-JS2Wc!&SdCK0Oq|IZgJBb^OI%BqKt)6&biI{G@!G0UY6!on{GMxtl-Ho5W+ zE7=dR6V-?zRsXd@!=T*I_5Ro8t84B{ENgZ>IUh3%6;}qruta2MrZP9b=&tyuzXC;x z#>s0#P|*^Sqy2jJr}$+8=Xv?+AGQ%$=bjvK5o_p>y{sGns8~&S>z1D3biWwysT-+S z;~%@Ee#5T&NPZjyuT052P>M9Jw9jJREP25WKFkF$9p zH~S<3R~#@R$FkjK=6qn`p`A1IGVU)hU>rI32uZ&g7q?l5?+A_>RmKsIb~P}Hsl)X% zF%%(B4TTIjvtW(E%E7+36jC74vXt@kQZF)X#37wap?N#<@V zenhrCT}ADB>_IjZGqNr>GPj2EtFH^p^xiUq7j7nc1<^gN9>vX?MZ`B4gCyJ4PTvgS z71+`>gEsde$bOkkmikdTy`eSefz6ceKccsy!QSWZkJt@wXb14K6$avI;`zJ}%+iYJ zLbocu@ty}49Q$|mUex!QbBnh9u(Bb++iK0FL#ydMVzeW;*PcH&l^+?4dpk0`-3$Gj z)E+N6=sPz*L6EklXI=`(=*hxyFWdS7hR5QeR01o}e({Oy_sq~&{bH5$GD01W+)BRD zB#!a$u(;Mc*F%45CP$pYfdToy0MCH)N+{wl?3gg7CkEX>q!W=ew$r2aI}MN~p(=p&7DdiP0sQO$}@yE2DWv#IoI zjI4E|2u3bw)g%~i0X@|Ip<)1+}NI}Rk#g@_sY(lwpM%;GtyW2 zQaGlMAn3mBUT|UQTcahsR-}buV<_RG`R2BHab;Ginomo7t-z(NHBO(6cz2BSDc)$4f2egvo*-~#eyQF53 z$thMJ48J|+%4#p~2z3N^`*MmIcK;T@=}k{;rHbn`?e{y~I)P^zY!L=l06lHc?x{k}qD*El%j)4%fW9+7mR{|HlSpB>x3fh+a9qX_u4U0z0L1S=6CNV^zST4xt3943wznZ?S%4Mwy3oBc~lyrh5c zVKodqtV)J!<0`!-^h*{ac=a0m7k!9-~7(Z zgRXyxyvR8;xJ$`-n{50fwm^syPta)Zu%#Ka@aHrDnAk%kuDhkHN-N%1-||#C>eJ?< z?7liceIDT-O`D*9aN_Z~rroR9?}!)Xn70MYRbo2lhO=4VelaB%E3uZ+z4LRg{!vqd zq|hQs5mWxrN#;MgJ|VjT%OZ!vqq1>b&ZX(EbfAS-mJLIZzS=S(o#%vS$u!y^-MSri zAPoHS3|chq=>k_jjHl4Z{A(C66}iMv=jUvKnA5qwMf3i=(|dK9`8>V)dw1hOIRUqg zZnXySgF9Oha;60Fg|Z=`)hdiNME}I_zc3Y@qAC-dY-x)r>L(=CJy^jZC!iN7K6_KL z??I+{a`#X>NM0Wmy6nO&C0lu@5tYHu!XwMxeZ*qp`uK(SkcZ`N5Hm?+(LgrVNdXY( zxoUIvqYv1#Li5Zcjr`)nnnq@X4CvRqJ!#;pTnoj#Gt`aX_8)KIC;FMu1A={z%cSD@ z_nW9Iv|eXyl3_<-9;35IMB1(p_s>+SHpANRWP?H*-OY39?7(=?@H_fi0sJlAsJl2n5Q0O^a$%pM!?+2{4exyV|CSpK@8!zY!#OOykHe{r^eL@Q z0qV279AAtiLyFRF-4#T<9>d-hBQ1K4YOE9!$R$axfnML4{UA`r&AXl#z`E|1>a0w3+E|+341}>F)#tUtegwT~WM^KkG3;3A z#Z+zR!&j^9e|WEqQarR`r4?;v$eC09S(Cpl#dYZ#c5Wz0HF_Mq3k>yu@#Jp(h*N~N>rfDtuMku%U zJ19HgE|MQQnM_GqrMx6nt-m1bA~{4%Z`{rk8R*7Xtc?t6r=2O36nu&IYIEQ;KTRtB z+?}y4Lqx%KCCK-5Vb%m5uL3Pta?SQAvKML0H@<`nH{qwFK$7{OsKO(9+1{Ubuk%zq zFC+~&$My+6ds&wIyDf2`u|jHi`+{2*BRwHJa;MD1QdBm-s^sNTgrxTKIJ1j3WAoY( zt@0!OEL}RNpimes?AJ3y*#G+T14mP8`EMn50#qrkXKin!Qfj9Zgmu6Dx7`*_a_T+n z((U>B|PHFl?1JZ3RNeA2D zat+ywDL9QcB5n`AZpd;S5Gqu+Z=ZJ;oD_}i?>_(pL|+9YGWnN2fBkJFx-Fog^~pv(w8_P+0Dbaglt+Dgecic`!Qo|CbvEkp%O)xYkblwi#V0M9Ie zIE<~h@R{)jRSV4ViSTp@BV+bA0kFO9e%rcc;t99PotvS~u#&v7CB-9n#4TND9mh_M zU9Gm%v8Io_A!-77+&sm&sl2LfRs+2D;Z<5%}K2^OAN9@yyjFVOwq-K z{t*SN63R5A;Rda9K|Y$6Eq-|5wdV7!NI3Y4ma2a5bf*Cq)Mr+|f#1%_df^MbA}NAudl8fbv1h7|C-E#9{HNTR zUZKG^s~V*`jnuS_VN01p96T>Zr7V7- zseg#g;i}__RYSu_kCh<8DO@(P+r3NGgi$Zg zd7?qi{9R`B`Rtx=p`k9l4qaIjx>vf|*2kq)dQoZiM2F`cD>y-}Y%19Wh?$Dpm9^ed zU*Du8a{^;M{>yb9v=jxIq*vDiF2ER%poLUb%HhLKbZ;!-fW0g%EIh&^>MLx_QAGy- z(ynGIcO1{?nt{x=AGp7i)!^F!zfQ>cqL_WS8MyAe<|?K5?5RhSol+) zPY!j|p}E@}rL}1V)x2n?lr2!mneB_ow<0e#2*dV^7JZY!et?Om!D(a5{DmrI($0!) z>(;30*&eukD#*|RNhe0ZC-hvg{LjF**~075V6#B#%nPc&YO}}y&TrLy!My^6|2#ATlw~-j*e?Z=GWCCKXQN zH*o?ROT{DRQ@ybs*UL9Fv2Z-Bx`EeeUL-5^g;%HtmUsnu&g!1{)8lvOz|M^H4|+rR z&%T6MSJU!j+A-Hd-uaF+HRU(IP&J(nz9PFbIfF*g7sGzhRjj@Y)leDpSjKB{SK zo_S8s@Eadee(C)1ug*qSo!j8^LJbezp|Y7fxEW-`-VUyvia=OIze>!d`V} zFFZs^My;Gy@A79&@{Sfo!RaVwsM$w6=Ls$m_GdZ0tkhK#5E_SoU(%NVA+P>({^5mj zRmpY+|92>DdTOP}!ZB{){3tgH_U7Elrt&~wu=342$}?Bcpia#Oou(Mm%xwUPGi?v6 zj{qDrdc`C7BPP$|;L-6vqBOqUsFP!^8KZ4A;I^2VtDkUDUlM&WcNf=LR6IYPAiP8z zg4)BpI&Q(k9(U+?2Yv+$VW`d)91Byd#D9(@1uB` zl0Q^e_P3B7h-1fg`3s^A)-pTBT0(k0M?vM)TZXN{CE=Cbca;P-!Q4TNO@5u(FyvdE z7&#(IrR91`c(fv>yu|!HD|F|UU}^w^knHN}{u34H0+ircmiMxlEjin;IuQpgFcTIp zx(h@B*0L+PZ>{7+&Ah5m%bZO;e8HI+(wkO$8n0U3tD{j-9D7B|@r7-?97W4=Xi>gi zr|8z<#l+EHg?BC6~5DVrLiTjb>GRaO^#wbYSp?=LP= zH?C#Gh7HpI&TgjE%LddsM!g*5Y`xnj-O{gSjmM0Rk`J=yo}Y^yC9m!-WE{+$!3f{R zDmP&!scHa8D>J(08Or)YgAArqASST0f=sZl7%-vV;AVAMu%-&jE)Lfxu8BID3e?KS zS+y(Q#;-bIXnz_a#k>3Z15bqe3i;XYLaQ(U<@eDcoF6Ux{j|7w@xHcz1;4Ic#4(HO z=tN+`aJ2*c-RdG{wzHb90O>WiG2oY>^T^yWpUzi1K{b&ub8a8;sb!Xn`C$uy^iYDSlmANfZ z_(~|vQ^+|*kl6nJKz%}Ww)_ra(3mfEEFwq7%gN1P@MYCW3n5e;E>NXYnABL*9e%`Q~U zs-tE<>WZ{x${%@qI!FAzb~2KWS83cIOdhn`l`+LEwoqw-zeyeq_isX`Vg=r|OCFc; z7!&JgAf=1%eD{?Ki}{?{pD81iK9%y=Eub}Zx6ZU{tSE!rilH`KhO19&@bPzPIkYSV zP@-CcF4h9G+GWSAe`x=mAw7h}kA6TY&0o=GEG#`S-HP4kuAD%#lY z5F5QaYcU@G)=mN&5dWP+vA`H*lbMxhpI#y={SjU9YfdkUoW$#GIA=OhN0m_%^qZz0 z=@$7h*2^JG&@OaxEBZ$DSnw>4Cn-ZbD?cyj*#&Fk&&93=RGF(_iu4; z?}(*hAr`c!FPNA7<5ak{cmDf&Xbm$Jo9e-OI-B@QYjc&3ajWtYaK}BN&7wERkJ+Hr zGQRKC(^{~YhG3|O z+niUK?OA>&cgK4v2K{^FbJ{@v0|wd5XD>`GCBY2A#aJnt)$OOSf2Kfe>NLwtRKAoe5O{^gHgghH3Dc z%W$n~Qu4jFqN7HW%vVic0_tx)9`O87wf+G3u)k}zoHXbAq?g`3fZk#x6YVU7#Y2_5)(sv-~CpuTmEk=O3gxH;rs$Wl$wGh%T8V zP9~j!FwZTD=`w6(A|i*xkMU`ps>aUAj&IPBN9T)yp9Tue9C9&h*v(X85lBQ>Gc-jy z+=35)tJ`_x^Ba86#r&cCKG`8S2XC?^OZ%N}WieRo5!%YZu}EV*3&$J%$!+G1Xu|C= zfvdu5(=~ZF`R#i>Sm%Ndo>UUF4JbPBGn$WetS~y_*>hW>&L{EAQ%|ySZc#(9gRTtt zBqxQA%oqNgGW?hk^di~jDWotH@@H<)iP!Hd7oBE)=s>7&wH&Y4Ph!}?3g98sk$)gT{4o&*E& zauw~dx3D*l=ydl(%?viX9&>@m24p010^yN~)}zs5Lb?&GK(nw<7@JY-eA%BQcT(a% zSC1N}ddj&>EniWLVWoAO9zc3A*4m=!LFg1ybVDM>NmwJcjG#8Sb(paP<35tR{VI~J zwkwS=QnScM-FLzuyf>cpjk~{xxx)*#!ta~n508hck{`x)v*Nls2boDs4$vI0DD{8` z47D>MnPbMiatO)DSRyaJN;=K1Q6m0{7`ur1hZu$7Z)Tn@p|61{Rs&J}C**00gSyq2 zO#u|>kiosM*OP+c)(jD%@)pr#8&{PF9h=@EmE~`bh|CT*@nQ>cEh|69B?kH0A!W=5 z-x-%0VqYREc&%MfF%j_`8>42)?-m}NT=OdFA@1UlmFeU(>_BbuT$ZO0u^~oil97E! z6)_|&?dU;enb&dW{?dYqhG82w#d2;eDo%gw#7*vN^5e^AXl~`e&1@_Hq}KB=+*YjvyDcIYV>yC!NQ4GR9o-Y>G>z0$og&uCKU{3x4u@Lb(e^F~M># zGW9|UYXHGU9bvy`#Y9xTQvkucbGWHf2tF1hLzAl*`R$%p2HLe33Is8qmYtRYEt0w{$`wg!_K%qOQFN zTm(f*YR_McqAXqr!`h^ophpdDPB@RyQi%$JFiyepN1m?J)`@dpX7KB05V@b(5C~^x z4r{iC;!){PWR6j~hBelJQu5b{)6AiHc*XHN0nZA=uL%?yTV|&Sd-@qD>gVJTz6M=j zz}c%B*{fPqBt(NBdpwgwTdm!v#z(%Prn)BLQve*Zxw7`Q1|Ov_2nCPfT)xh^`714G z%Sq0I(>c?G^|my#@hO_q)fhPn~=Sk3YLgrtco80p>P*7J15Bjat>X>K^a zlD!X$LDh36Sa!3Ej z_|Y1L0>z3$DW$juE$-SP2@(hdmmx*Ld8ExU z_5Ru5US8kLkme`80JAke`6ZIl4^Rxau&I`*aee1-nSDT)6C+ngW)2wr&kpc0h4+X; zuxw}L3S}F2#7Y{~w+6W0d%Hva4$bE^lc5d6`wTf*qOArM-e~m-Z3HQTzo8zYaHCc5 zKjRcs}N~IFUY&sT}Sf%$ZUNPe1}JuWW$h{eq5>&jIpPbv zfuldjgzXap8J&c+`0=Kyflj!0kqi4bV$+Tx%_6)5oG0gZ>VVy1Q-tWI)--v}fnF+_ zZuV2y^R3Z75aQ~qsp0az)TpS1-Q@UzhNKFTdB1AZ4AU;~tt3_-O>V94etq2kax{}z zDUo3V<%td31*UvBw&U6bi-Xsov+zLe{a`}HH!5ye(e*^eBrq3!ZJ6WIK+@=PpKeS< zfl4XJP+__BP?e2W4Ea9MajLXzlQ8BCO01iwp$Kb;)Nz5gfb@uHa{y0PTdk2TGOBTWFG>XZSKc{_}h z+(gHDd9yy%a>htDV`NlKXE!Saj!yQVIfjNYqW|F-m`6YmQ8dSZ^#NP{iELN>)@TPR z*cc1nzTbFDXC^Svm_%xpiPBt}V|(u;B}~bpx=2}(FzZ?`;Au}9t6PkK;|x&4_LTR>JqylXp=M|Q5_ku7N{Xc`J~#8YMoae+>4 z^9vV!EUj=-AS;wTm}ktGsQxn&L|Vqx3rUFPN|gI^#Td5g!?y~73 zo81_xUKl^aJ5IwjPwAa`-Wm>ly9t>CX8nGtz`n1b^{9?1xTPt659)<3Rg0KU#`6s* z1Lp+Zj=9$Snu!sGP?k-XhT<{CojPxQ=o2p?wvwdG=S0&jRC@a(G&4S8>*Q%FaosuF&6KuWK0MGaC zV$@jN3D=%|dy@XSe_17dK;x`tQhnp=W8)p$e=-L0o$HG1&CmEGe{zkHtP~?g9U`0A zE9>~tSN~4+KE2QLX&Q9_d{?x|A4tu0-Ecl2a=1U;*I}j{K7!=zj#cbb`|a<R3?qMFf4D#@NPjQ>qY!StE`+J;!>LlKbYLMBnMc9-k4Cuk2f{`|5QAw0e0v zIX)3Xk@+8U<1zmEcG}IGu>o~C@hq=mBjo}fzNe?{$ceY>g99oxEz|;G=P@~5YWq0M ztuc+qY}V&EB6r6A#G>>@HftFW7swSKdA;(GQP`*MCPFie#pp2c!cBfYpWMEhW}|ma z>ZYnV<8raq&$C9I2EJo2Ce9T@p5^E(f;Ci%RbKZcN|~F{G^O*FA2MpHIbd+s^jxmgx3S3+@)F&*)3N)2w=CQH0#kTFIvffPg(hLE6y>7D{-{m2$8xQ!L<&@(*(JMMRZ?*A* zEoF3XmF7<uCZPRrU;|9$s=7<0x&ou!Y|T_{*PrO5kI zBySC8JG7QYWlTSY{T4T?{lKb+WUxAw0aMq45s3@k!V3_tAYSTJ6-X^|%UG zL#ks{`hCcu*1wlyatV4ia?#3DsK5UHyK=U5M-S%9`b>lSoq*35D(LM{3t!z_E6TbC zZufsF>vvtD4f;W!F1pY7hSfSD*%~&14a*Rc;g&Gv>-Ik%I8wbcD*w0G#u9uhcsOu1Vw&eg#aVk=mohgnz`2P+ZiNPV^T@MQd$n~S&R)?zTWA!3}7|Z{0WX-`W~zw%<64^mY~jv{t~*X z<35+jDQ`?rHU}i>{b%>Ul)dZD!i#$!)>Y=U75xPlt&T&ptvlso6)e-=-mT2q1?F9g zWNsgx|I{_eP^+n5HvcI3OPG6=5Q;T`)afi!iC<%>tQ)h(qIV;dRtEI7+xrOC+DP*SuMg8Ryj~eo?gnJKNUfn z8RcV@@xE)%btvvbccsQ7U$6zTCL|=-yec@s;vEt&q%Ope4S&Y{GKCQd)^=qWWNdHfBZyz-fL8MDf^x>b|56}yubid5*6MKh)c*)0T)J&Z*P%qfsxh)g&$NH+3)B*>{l!?v^$dEk<@!yaN?%099(%)OrlB=xsWyC(SOsAI7lN+{QFy zeOCM7VZC~{OsEqjM9gTeJ2jZt@;2J`EmWU&4|g%oUzqEr(u>BlmMzz7la~?x>3yR! z>mi}cFQkJg^&*+w)#94?!DO?Ay(GM+b~f$abRT`rI^DSL$MZbIAo_OI6sjrNu|k_( zN6VA82G=NC(Hj%8v#y+7&MncIJqqud?K~v3pEo6Z7b6|3%ZGPGwsfi;h$z^^TWCM2 z-rO^DQdL!l0*>&xuCoC9^UFkkjo~$aLz2V~_&MLQg%s^aa=_c!n3kF;<5mhm0gwM- zlv{tvHp)J)|Czc|V4@xR?ZB_@`v8dhSm#MFrJ>{J<$b^Be3U)QR84lqTmx%}1DslI1)B=_Flf4=#WJU;u<^CcfX$le) zJ@tnZA(&6luosGcp`kB$U`d}Rsr`zD7WS!7Cb#X^Jp$&h;IWO18X3TUTi>xVblYDp zWC!Svrct|Jq#eGAkQfMjZMx3nZK~jN?^l(dLsDN29`B#Z5HZLBwjEPG{jA3Sk;suu zX*!yoW)XBMXdQe-wAHjfNm@e$-r4E>Mte}MffWoJx9Q~j?i!)=hx|ySr%&KdIa=Ly z_O5#A=Ly+FlCg4QbN@>}u3-r#Z7!KW0(+KY@L}Sz#~&$q>fy>P8K>2uzpFN#+&?eZ z+-;N$xq6It3E^6nG3g#lT!L?5=64l$+KG4K<6R1>a9r?-g2gbRTGB_ z?0=r8v?WWT1jdyAVSJM7wa>83ygx;gH~!!Yii(y0Fz~j0B8(^A{PSKGq+fV|dPnU) zlhW8eV|ufn(r|$70S!!gvU2jgeeKVpbLa8Ip5-kO8=7z| zL~olwQ~7$#@V}jZC^!hCUAIZK`=s^8pS>A>A;ty%1@l_D*9f@KU%rds2odsK;GFvE zuOw2_CBY;RHUlk)39opXG9Py_B8d7iIBn+p)f#{Fmrvl^d1;jyQmHJRT*A4-CnfP- zuwWJ|*3y%2=D zX3KI620chiMrB&sl1USCex7)8qv`JH!n3OkllMtHEg{yUE`rT@+qhzBbGFSVNms?1 z>|{}lJFv9P96KGWY*nBwh&ibx6s5vQ>~cwb6@Q4ky<0=9vxj-+L7&|kMNDcrn2dwl z8cBt{fx{tM_fPVOLb3ceLLUwd$ zQ1Kh%gOgR2vc28*E|=!=&&H88;k&(5aI8PE2B2uaq=;bY2=oV?l>1mwlCw zV8Uw${GWE%|33t!8-~aKR{-;w><`le;lY2VHbA*uZ29(e%G}B7!=1o4|6wG%aO7?= z&eZ=2<|hSmJgD5fr_B$>&GHg*H6=$c^jT9LS#}uyzDKU0bj^(l*0QcOdn+CEqLvC; zo-ZqsCe;;4{U5VVe(OcFjF)e$P0&JrI4V0ot6X%viZKTO%XEPW+Q3_DIyx2$e+PR*rmT(qbA!ekyUsgw~ z-*vMpyUm=sMIVGH8bNDd@gOdhka~QqLb6@(jBWYBTmaNuG39MXK(F<#>feK(igo{C zs1{9D>~7O1NMwBRQs}t8q|7#HXx3TOVrka;^B9E=3(1B1E?(A&86f95h1r&}B=j{v z9@)m2*td8WZtt>ok^@vp`zzggTQWjY=Ztqwn=eeB_C*LgeroJ3cmArYPx`nzCQ>kn6qQWQVWk*8VkwH5_x3i*;X-9ago}Qj$vVgIlGP^G$;~Kl zOrxkph>oeNQ&lCuMxLQXXi7S%UVs)`b4Rt<_T)74^&$OSdQmCj46Ll!K*H!VE-wpO z$%c%Sl<(BicG`MQp$&ZiNVX6Vh@9dC36|N1Rt z-zL(WDE~Xsuc7(|%_h9MInwMyg*SC9>bPL1O?<5w6WteH{gm%9nNe@Zk`)#hP(s=mBK1csxhi;lOlBc-FMbk|0 z&htc7!kBlLjUdf+y(Y%k=8TQkpZeJbcDtWkZ_)DKe@xkTKLXjvHQ+RMPi|WQ zU0^elh&hv!%SwLH86sR7qv~EsS+vLK4_xCb=gR2KEQhfVjWVfv1Jxp;#1egjf&D*( zpgi71^L6?9;Mge0yh4K%!6Zf0&KQ8;K;7osOhriNiH|<4yRUEHjI^`;+viQFh4pRw zFu7x>4(BfiS>Gl~*5(n+?MPt%!PrqPvlv8;a}}`PMk)FOV2y<)twlkWV_Uc!_r9lUI#0`DCAuduI=|Qxw_j8Lba`4uIwZ{WY`OtA~j2ou&V<1O{DVxQfzXo)4}02 z4<1O=CkL?UPNac_qzT5NU|iq`s}rSCbA>zI&u!`~>n)ndbhadu)89Gs{<)n&D>dJ<`8)TcY*cstq+KLiW^lW+Ma-Ht_7!|BGJ z0%j|Fg`wV&>dca#9HhMmmUkVG-ZD(Dv}h$=HZB`8u6H8D1^IF&!DTs*Cwtk`*z0JI zLB{5^E`J0zhHM$#jlJ0#x8o#i)q5k%3Z($v5GddBEm7Hqr+#Sk|0v6?Mzj4sk%Rqs z+KqXO2S7W9z@y*}PO}ZP&cxveihC@iT0VUOsePm@@?2!-NSR}NEZL@ezzmibjuoy1 z2!E+{KCUvl6O(PMrSJU9{>|4z*O7jWvvt|>iM?gwOl@gmuSMZeUYCAsxUs@b>*`%go08FU%u0* z5Dq2dn-o>KW*a-3bJi%SX$y zhpTiAwX;lT_y%qOY^KulwGR3d^<<`I)fdfX^l=S(?*8y!?c#2M?27|BiA@=T+;F%C zS@Nbcx*Q%EE}92V7Q+LFQjF(!O^lEo4Fj{@Q+4e-zCE11N^dFoC5^Fz`)C=1uc8H& zkW?(or`wVc&5s5rUmSh9^*j=qkTrjocncx#yVF@{X}lNym*cbOqETx%gDg2fHCxwJ z=AZFicGsLOO-`~OjZ|GVtSJ_+j=q>du`3}%#_ZR05;s2J>TYDjQ16H#%gSGU?AVLq zx85zj{e{@38(@gR36@Qe9IiTp5)r0+x&c9@1!HMnW;` z(I)lxte&cezxcp9Z$8FvYaz_N8Sf$Af*fWp+-_2`S$M;c@=A=k%mo(97u|N9laJ0I8}IE^b(&`W;Mj z#lDKPUb$*ONvJsd7QfyK&E|MFz|m2~(9Zf45@>aixEfKCjaZojHYy;wK^T8$&v(Kv zr==eQO^GTi!7ufGFci07jcVqUe;DPxp$)_u5Ao+|IUbL1)Qmu343^ zuJ9Dj*@6&@W-Xzq=Sgkege?7+ihd+jky-D1^YRLOpPO>%j&;*Re3|~&k8hCwqu}&$ zb|w{YHvJmw;H2ueJ-W^PDyh(Un`S2di%tR@B+Io5U;ihxr|%;lDev%b5{RL_S zIaFbGp-~y8=jgwY{r*N!W5KABQy9UTp4{C@>BWJbeMgKVcbA6dMsG zBNLwHX4xZ?EbEO7IGId6yt=E?5-BM~}EG)3F<0q1I##(%R$j$sT`u)mT&)be5@8LOI* z8dB%(f?@7)mly#hv)7L$KT9Ba7DHTKRJgW#xIWj;GPK|j1`}hXP8qw+-=`|(8G@G< zscji5|H~GTR|jWsQ~5f57OO&z>%C7I3pY% zSjh5oq26ekgAlG!U1plIGHrq$p?*Fy`_J8pZ~n-#;tDb1zF#a{m=z&*EM1$xfj*Gv z3yi$8W~CNxKze6JG~cDf2GC;yG(1=3ILeZj zD<`I~Ba@VTNWQOW$?IN3V{2)(SL?5t5tf>|J^O0Sab26hO=KGc*flotXIV1t9*ya3 zDJ@R`2Zgl{@t)g%BY);i#4+^E`I_hnvzY@7G8RTr<2lj(7$-3VJ>bjA%3_VL3sf|m zaZv}Eq|ZMg{?@tgvN@f?ulW7%sJ?LUTqy!W$kZ}8nzThvXC*@YO6hG;E6D;nsV}Nu z_h0;EzsSe|0y!O0Iqu$#@FAYiS&7yQ=GD(VoqOiAG`x`l zoozG)4R73HQMI@By#|W#T~I)~XW7~EgqUShXc`YEm3?b9@yNPlQ-$)Scf(rxT`$?% zz~iQEZcBjQQoZhyzJm}4DHK8)9ycaftEwWSGFi8<>FCmS%bNE>5LpZir9=|d%`({E zmlXc?07Toyyf`29k>W&UF5tbPjx4iTOLzCG{*KDR_w}Cdoo}HuPgcC?Cp`~ha-^r_Oz1F+`cI6W)j z^09-4CARLQy12VaG`D8)-;$@sX|7W&wy_9o{pNII(*(b;)dQs?8^Jtl?lvLcft=N# z8f9QaKT}AM6zkMMq)G_*8ze~@LYx|o9_1bTcchF zk?FCzIJc3vl1XqE;QgW4l8Si2*H=ocqs+cUi-bpl25>Lu2e;SbXl}2!zV<>B)tDKukR-yKFTJRJt?Mt*mRZ z(qAU2WGn9+pU&#?gf_0>TA{j(Z26R>?VhZ5-}HBr8>%`>q=v!P3W_>HA&73_Q3Y>Z zS~%2_AORl2(l+n>1d-Qb3{hANd$o=|Zi1gJ9+(Tw@aag4M)8wUh-hZ34HMK$LQB^O zzEFdzmF~z=|Uf#E_UE;47A%%np6EXG@_kBF%yIXRpOfC*4t#CZNq1!5WT zE(fk5>5|0!lucY(ztcgv43-K{v7nDgUV|h3#s67hXtHWMH7RzMi+0JsLuJ2BN!YWnKAv^S)V{hs!qaif z*s$6|C_j;KLwgiC4=B&4schK^hg!HsbX6IvpQMAopmBzBm9DQ=^@rBJo6aEUvqbD` z@K>k^xAi!1+O?)d{&$(>2S6G|p*(<@Er_n|O^Fy()AK@fTOuQSj*Z==M5l7uM$_=v zkO%bT!-CDUXDPo*bwSuv2Yqc}YnP|7u6J&5?3AAdxriRbo6hDhG^V&6iKEmDv9%9lm`X{f;qwDF z8}7ivmLvTEdRtfJ9OhUL0%Ii3?qXY094m$>NacO06Ye29F9cu-1!QMBv8}z9@`4qljm2E%{#MO@V|~H zor(}aR~i5JcrwvZL`5zCMyIxX-m?ZM3TW#|M%UND1GHBFTnIu}kDtQ3&Zo+j{Z_Q+ zXti-KJ@1C4HJEvG-mr3Ve0J~eUYSek$E!RZQIeYpyH#0V=mWsH%?>(gQqD07X z4KA=Wk6x7WdJxlbW15~r+vTof2l7^qPT)OQp91D}w z&=H!ss>SiLHMvA!7Zr?y6PWJLY!pc~Xw(BOUo7k2+ava?6(<(aJ4`0)s z+5>WZ30|{jp!#e^b@@cFQLM!Hw`*)7&>AB(*7V<^w~y3~mUE@euKE9AB+}2UNnF6= zZPX)G#%vM@tX@M`-O^@C3r_b)%d&MUts|T9{Y4`f!U6TPrXVt+3**6B#$kfri>G1$ zl#p;Fl1zkKzh>(}(z>bF+2tonpw`8isG8K+z8f^-=H|G)DhE?`2U{Alr1^4$-Mfyx zMjKoza7!~$TjLsBGnET`e@16tJNwDAIY6dV0XkuJORI+IhG40L#c@y~MiJNw-%xL7 zvHB}x)ZQ))0b7%xE^!7v*Uz$kQ{~(4(>xwof}F}_&(k5%dp=Dm*RJW@a&A{<0yFRZ z#K7~|L8(zc-j_L<&9gOG0Nd=$_pu1{pu|!ZqN$m6G<5T00@HiUDuf+9QLl-D<~e`Z z;bN57;rOm5+aSaTd?IKR`!nk`dTV1WGnZ2h#dM3PPfu5bfAJ!|v^w!3PDDZRmzvmw z2$aJ`i3@ur4slT&Ufigp9G^S9E$@%}6ediY0NLp;k;fYQ&xr%SBh}!>CmLO2m>l!Y z{WXZ?1)bRL#GebF^Psrqq}4lfX|>af-91+LM;m%lWY-r>OilkgiVKpj$NHu;+$R_& zc+ftOwrDK;@p8)Ajh8nzlr-(=M6W6FXBq=y`KHK>Kq3AIZvqFliIK2XgvsdlTshmI zPu9eCTWG*GD{BC3SxJ~?j{u3tunFfm=(vb0LM>C9e@}iJynb(yD=o5P7A(eDOiesNhwAVR)Lu-#nH+EI*ZeBPrr4M1XZG14P0K;; z1Gcy2cK`-TL2n~dwC8a*9lRT)KDFA{Zul7`?vQ_#S2dyfmekC&1~uSHM%v7Wkh#J|L@0|z-XMJUZw6GM@{43N^eX3H;Q^AHNBOTtyIyB|=Gj|#u?PsB%%obgmg1o1xH~PC zQ!Lt7e6Ze&lW%^-xcIDG;ijGIwfwYa$?-btdSd2CDSRwan72hrkP=II+tpYVgVQy* z;+ugHOIPkNPwlV-!5lyL+lvyQex+LFgc^Pnos(=K=1K3!R1Ohbl#W>`MAlB%$Njqr z>`&oCNA6E}g{FlQp;|Jsh!$S7@|{vPELU={!QFAD-{+W}0U>fN)Q!Dx$I6zOAC#np&RId#EG<-oO`g;@6qEFM z=(&F~4LH87WDASI%881}xOOwwq3n&8>39}LoN6c4CF41AUWtOqrn7z2Tl#y`LstsPY6zWyMjA1+ zWEgg?I9;&wW4KUzR;t065Ww?DM2Z?b_jV2XdLuO-p6OwR5TDlNOJm5TYk&2Kli{2C z*~6A#Y}=`|e>&~x&2oCAEetr-%y_8v8$$uxVD&wPDmnzrSPT}^P965;pmT)Va*F_3 zlA2q~C?f(61-^(|5n6Ony+ic9QvA%MR5~pBIxQtR+aTc#SeW#mNx*HGU-d3k<@xY>p}qxv=^ko=1y zbWVc%g<8ZUX>jIoOp7K#}RRv8v*5; zEErn%uD!ne*^4S9mJit?tZM2qTIC`F$Qx7838E>DkqyMeN~#q8?xE-Rt;oeq*j0=t zrck7ZpF$UhZjKs8*6UbZEIyo-&T4yXFML_Du6o=b!5#(7;ueF83=}`zL^U^KTi%X6 znQE13jL+`89~)@uDdB5eUL_?LzHFYdBpjDz{IdRTPweF@T-?c64b5(oWRvhib8A+} zpJ8ejWD>Wgt1;T-9-y~?$eJ$bzT*SYN2h2FMt;5aOaO^#OP{W%4R-0c z;r9!55p0i-)@q|>JN{}GnN`nh@anRo4w(jx2(duMAl;B;oWw#^(Jve0DZip3^XV_J z?i+dCPg}S(6L=>lHKZi38%Ts3$`Q5W^hlZQ+004f5%qd2QT=@KMNQLOha2(fyh_n# zq~;i$IIWP5K;M(-y+eKTDTbXa?#TGWBp096$Fyi6Ki_d+O53z@W4HhnEKGcB_e8Ik zT|vx^(Q6fJx=$U}%(Jvzz||Hy7Em&P&hEZC`b0JN%(g<;NCF)m%1rshp05|4j$U-G zoGC9P%oW1;%r~9p*JE6Kl;pEpfyZAmFjj#W@Fwp-TGw zZweb5ir#1|O3S;k8>5md;&Iv2(^UmGl}6>hjyPhoXBhAzJoz{7J1jf%uZljb5}pl1 z7t5zgIVx@lI;LKhksq;EULjJ&kwu^m$U!FY8FA^c*0Zg?0~PWBc+@8HNe&!kO;-w8$}*se0rBHb7~r3u8a^F?md`wHx}MOv!Q_ zLwYQxZ}l?%K($NhwX?l{fHg{87Fm+dwP{(=Y-UcCc$G3fvYodzc!Kx0`$V3A@%nn* zr>0Gw;?m9H5mU;gcV(~-XO|tV!7j(r6Q{F7ekd(+A`v#mQGMZylig)nRs+AmRXDC( zu|!rTyzly&sZ3r`-Z@?SSiEtBr9X9HS>1Ct8~PTlPsNX|J`L59;HYqx#RsF88`Gjv zn=_@^3y!^x)-QM3Kk>n-BQ{0ScLy%GVRe45$l;^cvGG6o#EP80gGnC5gKOm~SkL1dk7kr}3^clvY2L5Z!1$xnfey9VzEW9?s4~cDDQ8 z5hX#fb{Q~uZ+vNWc*bjAmrDqUUwG~2xpq3%ERZnbnq$b#&{ognQAyv`0TUig>0?BzDeN+8|b?hdi%I7(_$l-UVZ&IvH zrN5o#@BRvSBzod!+v`&;-%W6$B65HMAnhh;r3SvP^tke4I$wZ5m+-&)bu)y<4X=jc zi_Roz_$Ak*xKP9>0=FUkx9Qp7>a9PYFjOC9E!tyvS(EXx&5I7n)>U-+e1lc<0*zKV zeS}Har%VkQeN)?IzfZH870akt9W8Ue=qU}1E}TAlRBU{_ylu=>By-pQzhLG68@YTv zmj~WbXUn$NBdTfS5J|A-PR}xq(blcVpgtv4sMl6tl5$dz9%kVz+`Xk4I}y?>RU3`% zVXQEmrwN4Fotj|jRDvtzTXv1I;bq#Dh zHApqS@IfZeHne_+%N{IQqeN7s1W@E35mo(HsFE?&=I1_SStXKdGd;EO@-VTd*YinxDRj6EanGd!$!FC6z5g!v zqsyi~gr&7XpO^{2@Q%$!D& zci5W%yyuR~{Uyx4@zvaGphG~K4S@lwRTEV zhR=dh>2n#0pj*%4v{Cx!gLr-Sp++^@xtUqcQFKN!%(_h7+_0hN`({WdUxd+0e@*I9 zT9LQ7Z2nVUL;TEZvy6fCu?f-{6iZnNERc+{t#F@8xKv!0KzliU`U#_P?>`I>wuXd` zYC2SA)!=geRI#-6T@|z%*A7^J#Yk~NwkIs|+RHPNpW2nsP-VP?`q(+YQBxnKqWr5~ zY)r>|5&-0RARqgo`Zkg*)f zaAjwITp|jaNnu?)A^I%!UMbe?6RGDTk{&*x7a4o%tOU6RN+=${lKEQceQi4^j#iyY z0>uu&Ni)Kp{%&rF?B-eMZ6|LHcWb-tu!-FozB!O}Tl~A!(#Z0yzANh*eEAgCzgV(K z=oM{aRM+40CYKNTwg!s|#LLnS&c0UBsx3QPB-^zLY$aR!V{fwpYMNJ^B}LzQR*khk zl)O6ZAmmEUHOIx5Gt%%I&;Q&n_P~YMX{$^&LkT}>^Ew5ehrb*9G5&G1MkFOOkNIhZ z)8k61?j)?LCD?PPRtg-W^tJ+XJFr+U@7sfh$DrDBv>z6IkCVCZufK5i57OJ{hIN!& zgF@uD>s-{($wroNV8}&J+pe_Q=0(r~mX&A-eFN(G2Bg^kZ^`^}j7M4bAh*0djZ^7{ zNY>j>xr*5KO97HZ_K%kGI&J=xE$EdNO7_ zEbS5BlYEw$LxudovL;PPUnLs_{ue&Py=BF<0yH{8e;+*9(*$v^m^MynuYVpgaCkPK zu3lXma-094CL^ckbdSNPnCA$g&6%+g{ikmHZ?r4>Ka8louhDXU1W3RK%`IIrte_KD zweC#&N1lw@01LNyroI7hu*qkGT+#F7Pr;P{X#*Gmh3A~@+zzYB*LfBOge3P(^mU2I z;$T+rZuvojO%pF^-L26s|DUsxC!m|%#iumJWFpym&hTs;eta)Ga;^9uh5!ZI zVt!8WE^-Qt?fcG^Gem#T#-!YO>Vn{Dx=#+d*iHXc z9jL7Kg-9IzeyWR7czeAf7XenAWFOXv`Z)$qo8-!@QU`AELdxoinYEbjcuS5N;;k<0 z-Uo`IZfI)zJh%VD;QMQ8^DXfsGb6)EJLdB5m(@$$-MwN#gKZs1*a3Ac6zM-M{E zx-Aq=@M$%5oM_AA+p89Rx?hiGJP5~z_kS=4L^b}1VKUiuM_gBMnyoBfNJ^>COjEG| zm9^nL5H%?&DZ}o>6^{wGx6?-CwF%{~YfEjZowim$M@M&R4n1R4Wi4ga_2JArW&az0 z{XZg8mafg4kEy}@6sqM97x??TIpbL~mx~tW!&ukvmvXFh?j`8O)7AfCx)EMro%_aK zJV2@oDw2LO@SeCEAxD}QAJxkluogW?Cm92AHXItzwqj0hZQ0|Xbn6)YBR zx~jTG1UG+6_BcS2qCyT>NCq@DEW6|ktJ;uaN(gwS4!#r(5=p>hdx44ZkSs}bx6LJ~ zYpYl43ek2DxP-Qzx7_XhaIJ@? zR-PqCWS1DuZO_&HE{uEn*U57{W;PU3^x15V9o(u|XU};Og`F2sd<;xK$;tcl>u}miw}W_h zE{OC-D*s>)_*Ia3IZr}Og6D3-vXvoNd44qgw7#0N9x=yZBvaW#0D($TVvUGCC@*jn zzT6=?c*i%cF2$1p%yb|0hDqmum8bk@88XQ=cT{jZT-Di>x`loh-r9)*QthrF9aId} zr^6I4_sDl^oC3Ad{)zG@rb9}( zI?j_q7i1*?xES;ZhM}ud%h^AFGmU z+nl5+Wwu#loZW0IF*+Pqr5_`;{4_DL_^OeGr}veHvg0q90nQ-lzEr+T-GK5RAM^fG zg#9S_$2d)QGm15;omzaq4Zc46sxxD1di_z8bo~vY#3C&uw!7Am(nY}Fa&D=$F{i5;^-$IpU?0J6wzdxISt1`*}v&-~}zbe9q z;DDFy4@2Z-`14yoMgkJ`zOv6u1z5FT9n6-qJI2*YjeVN$wFwu6y zN-p2|L*3aUr#t{iWli<5iI9O=;T|P+1_V}ShH0c~nf&<=10Ss$csnJw5nP}uJuz}j z<(}jt+!KsABBtfA(=lL?y6|uZCT&CN#VpAN6*^w{O!t#$A|I+@6%jE%jnE72 z{sY769J`R0t+*dt!-%V68_AFzLJ`++;_6;+3{vkU`_-6hJ)&|>lZ-{{9C;f8sGGma z5xO>K44PDXKWjKZj(h?LMyVYG|DG3JV4^`v)T7l*ZlHq3G^*qOq3SQ=n*1N|Zx~TT zK)OUydUSUPDlnQ+($WqX$mkRiM7kM`z(#jBN{^K8X2j@D`QH0o|NFkL>w0)T*n@Mg z&-SU~c)zvxRB+yUeRN4Fg?7G=Wn{93O)WF)6a$`<6}~u_`%G(klk;XcXTo~8NDi!i z_nJ;8HLWHm^-`~%J{Y9=JA*`ujrozfI=M;&1?a?EG&;ffEf`VZ#yh5UMx-|GTU1iQFawc8Mz!ju(kOmZ_| zH#Hz`q6GRp;Dii2TU9$GI%sL>jXY4!PG-lo0za9%@TIjXL{%1kFt}r^8ZPtu*iEc4 z`0Z&Obg~%V#TcH_T2tf5*20}!UI~?=VyK(_j_Yin12`TU5|+yGLnu&O0g3sp`78cy ztroRkG8DSJLhGXoAXYFd|i&4?e>vOS0277d+?dylLq>R94e|o(}(qHCVNmY9N|?(chP4S*RCocRMe;a@L+X zCL4mW>5>=;O_(5ttSK6~p6GQ4>z@_!k1&Opqos>2#D(j;W|ilaM6Gh^5@ys~avWE# z`AjlWf+u3-c8V77641Nv<6@Olm1;;v*x!47D1)i`VoczTm;@)zVXM&on5amD2gbDU z+{olJy_v<2{_W>W$e$~Y;XLUc6EIhx&{+^ws(MI&HxFUB6c3ry(^*gg=KNF8s4AU4qrbjvBvgnJ~9K-17BbG#rR(DVmwF zX2VOeWr=`hbr0j*CM9$&l%)gEr*pWv3;~+1#WWrh@D#oB;qG1o)_4yyGr~rlo4nu7 zAZ9VQ@V0`)M2mbYqww(g?_L%Z*L{gw6!BGC@k9OP56whxpwVtXeWhlBG|vGeCzXzh zX|JZ{$pQN7W!0q%>`unQ6XFF2E4=QMqaoO+e3YXvq4dCj}%Q#XC^RecbX+Jk)s8L0hAKnq70!`OJP?UFe3 zrg{%(K2%oUzK5RB-dGI54%joC3+}m`vv}Ud!|;x!DinNu69TmTT}Ye89x^gq$@r}P zQEdNo9f2m|AQ9&+t+4uQ@tsCZ^UOk$d2vzEy~&RwNza|x=7q+v7JM9JhbS5O-Z>ZC znZvrQ9Ub+`3Cxj_+_pP&o#AK9(ti*DrR5Rbzc7PUdr6kMScP}fzIkCz@I_U>KXt2i z;~T*G2dxo$wzRb7yhhl(6q(*eWnBhG0Mpqag=F^k0fM!dokv4GI&#iF5D;XTXVj=& zm2yX|@7mn>W^zZY#Vw3GQ#oI4(^xglDRh1>>DO?J7nhOP(f9V|1YXA{{`+8mdi`S6 zGE+mYR(}im+T>D4UvibnQ3PJ$mAQGokOI`>3ISgve1m;90GNkE4^xQyq<4W=*$o&u zut}bpxJDsUv&eCYtgUI*OeLAdzk-J#R_n90oRl)v=3R+0*0um_W|#-;<5|f&J*cDVI|~zu%&~a8ac-Lb*=vQ zA~`8aXhVf_Wj?)PQSqS>D?IXCR<&IZ0>bPMo*n32DPq~pmSw5zi&~+CbD(JpWjR>2 zE3!Yw`?6VFPHrT>wz<_x@AG1Pzg5dg4)s|5Wm_Fkm4RYX;un zeHwFh=j*aP;~*FGqliM!82raF{}?R$mGgLPL^;X!XQ>)4aK9CPu&~I{!krkaOm4~o zK$^JJCZ}Ld@u%!M`uF@Aq-*h?BdfL}W8M;fjAcC+oI^|^mTmb6d3oI6D#~4(R($cS0eL}f*fE2 z1}dJoCY6JBC{}{H(1Zg=jg-WPc*DO$EOMM&i?yjpv(?|<-Y_q9M;p%A6{OJS1B*)A zoY*O(a(Wr)wWb4eIRDu}D1EL5+2&VNO=I4jL@;pt+Pmy+2EQ}&segViC6oK)M^IJ3 zJIH(gZ+|_alAOdyE%Q&bXvEDsTwA=((znhGM@+8LOZ29Us}~O*+m!iqVm9yxyI{aL zH?R)nW6(0f~i-gd~@0 zFU=h*TN4@NuBpY8Oi(96H`^hSb1CV&f>s&Wwu=9e^mKJkUXoH>o;$4gpQ)=oMD#LZ2v(JB!W8!EcEgM51CbNelda}M{Z)k`(e@)o66 z1?p2J1du7Qda)q~SB*E$000r+OiL0L7d2Bx6!*`Ai^u*80v8~i0KhbX(pWL@UgMj zW|U@Mvt}RS#{vXw3tklpv#2Ie6{^%sm_VN9U10h=1dz*&o`7U^9QtCRp*i=okB>o^ z)}45u$E=y#3KC~e2diyuYfz>W&gz{h=QE^w;es z#)4M!ujZl_n6Ui1SqA>#wh`y!pWhj}YwM8uW#e_1-Xft32cH)J_fw5jxf!n7OQE$eUc`X3#hBXtIM#d8XHZ_W6)zWY#N3V-3_5nk?6L6?VcV_aZN< zdVw~5J>>-PFcz1kw9(+NK6o0f?zEsK+IX7s%k#yqOrUqD8*Xq6jhhwZW7=?sBavZJ zeR<0jwTHXUR`Wn>c{Je5B~DKngR8wVwNh&x{d|G8>q3;K;quF&C~@&)%|O%-8`R4U zJji_Jhp=VO)Iwjj;%12DZ)cuzfX0|ywKVF{14ZR9Br2RT5BqWY$_EGhK?*)O8YGE! z;x<-6Q#>K996j0VeKgBO*(y^e+&sptRd@U3tB{WjbNGc$y}Gd?{9W~yUgP#XORA)! z8aMfp+I=dshi@ExC5m-7K#eKL^up*vtw4r}{*3-|6^AuFUa?)27W{84?8cAsOQ&iP zdq#?kzrDHUv^Gzae3V(5r>eoyrJ&51jTEcd>QA4Z%@8~9wTw?1C>N?Uf=nkSaJy#O zZhJ2E>fs1;v(A|`9L!tR3T90PBKZf*1#`4b$V{bIeQDT!aZPh@dkS@Pi_PB|K z<5C7uwaw|l5u+l_@F-dBKB0P1P$NxOS1v36nceFz4lDQ1R^#`pXsusNgSFhpzEA8X z_t1RT>vmIB)l1=i<(${`lcPrnepr9Kf7syje$zT6;*M-9med>PSCz`e!lID93(2hl zqs$YrE|&DKq)W2XN#tr{{%x6DSl{@=w@jOu*RIWEpTzo_2-mE5R6S&WS}$CXNtre_ z14>(@T6`mUuJa0nk5`Acrq^!)LH%x81i`xS2pIh}C223o?>upq-M+kq_CHhalEax(_DW^xKi zW_Tr=GH=5_Ovz}q|h0c*Zk?!N`;1=$bR?N^0*la1Q?P)k9XRc{*HSWtA z^5Dv`6&Q^J<+&eF5i4K?2=(1Y!){$vq4lW}D`7w2w3_*X`bDB#k*0)^5!9@4ShNXm zX;Wv5JLCmo1amyUb@S--MJd6_9aGYU^Q^ta}pcG2~kmhr}O8;5=EP4-3(VjBd|QcqRF% zSx*YddjC@`p}c8=7wW!ttp3DC@nUd*SrPpq^qc+kYo*g56xFlqJB9Sv=l+tfNx$5^ zyPeJyLZ%jRUY84NSz0=J*gQe>AP7yd>Rh}RoDge^OlOni+;o#wZGCJ#MN-+l-ZdT` zz8S}ak>MWuh&&zzlg|p`%vVjqFNekq3$%xe0hZ5rxE7y`cgd#`qv(So4m9JV-rTa4 zV+ytXuryb(uH@Cw1QVYZx?zu$RilOmT;7AFCZ*Quex?A?16wmgu)F{^WKM|heXZwW zt%8(JE{-ZdGi{?%M_-n3vN#HX?Emq@1RMF5@zo9MSMzGUhl38rxOYM$4z6Z>uW5^W zbIOjKwQ|B^$}(G%lDItG?=%eD=UC}0&oJVO;T--?5yg($P&nciXf$f#p}W-V#kR8+ zT{2OZj&w5h`L_db(nh_^CknIA!I{l*i@Vk2|HJZYf2gO|-Pp4#92vq{sAHmF-B!=w zTzML+fZ_iS>Fu#i(dnKO92!kgG`?7{{4>~nf|1f?J&Zw1wFBz&vNZ5a4}Q0}G=b?N zBhKh$G{=+i-KVIS^Xer~uTK4%7yYg~U}TVXy>mY!XN0JrwCFLf=tSs8n!?HJB!=&& z)04kl))}1cN6PVkO(dlmN$M>?PLX)%Zx~e6!-H33qULKy#c#@H+bINz!rbz1xE{Rr zD8^|NH9&9PT_8LR_&%z9$;G^Pn#hI!j^)>C*OEt}A+6D*iAB`pAh*BnT8EqI(js%d zCg8&3lA6sH1-A{=48S%v)_GPn@py%yj~bNTe>faYZPiLj%TA{(NwmdRsVi&gIQxDY zyP4hb^m8NEWHKf}uL}Ug+hE|T?~WoKxWdkr$LNvsg>+skNJ^v2$R<<;jl%w|@~_+5 z7e~3O3Bko|w<0qotKxl261*8VCVKE=$o;LHc*;(;zCu4MjbAP7^W(ld?MLIgC%Y=! zzQn?fs`}r}0~#Z3TizFAo0Wc)%dIkEWOAqX>1{xafBd4$ng9nO^zAd7+lFAxDzYE0 zK`l82vZ`4hO04M<-#nSf-q1uUDvM(Jf-)E%N^=zXM;MRhn@0`EI(q}#rQxZZqFZP_ zeaEQzS4-zwg9`yxl>UA0Tl3|OAWvEk9che;Bfm;VgArS8XSpZPdnhVCUGm|K=)*6G!jk)B? z;V~LD3yN&&QX4kvpP1F$#cy^S9j&9;HAQC1+^#$FL-Nd{*$<|MdevmFOA>>73Sa8-T_(gq2s#mW~{;IFQk{xi=V*fhP zzmbm&>o1~sO*;kV9;avULWlH^jN*jE&-GoDs^obk;QXj#xnQ7oA~LC=Gtwg&b?GPP zYDk=L8*MVwCe#Npu-WEn@(h(Qg@j`r4r9PeM|CnZAZfMFt7``{>oO16e+?>7L+1CR?JSp?4*SIPiGc|l9JSX`nlA)n{-m$`N&R~ZT z_1O%E+Mgfsr+SI>>x#+rt|p;!IEbX1WX@nc5(@k4)r4Ov&wiOeNfP{qjG9>!&lB>u z)lD5hd5Bl_ufeUI4qAR4v)dx}+!kV29!Yv7WOb4vHG|pW_opL$gmK;GhH@+}tlqFl zgLiAZnAO)LZy!3V_5z*1gSiQl`2BnOpxuCEqmr9*BR^cI-lfsF(DBXS5ko4FJYmPW zyoWLLEmKIA4fb2oTK8KqPN-%l2Iaj`u{GRv#cdc{1;v(vCO8{zCmI$t1d#sEo)-O6 z-v1+7OW|*T;3Um-^v6+$OWSG-PUV1q$9@A{<6!ui$xSWLJ8;BFzB`5o5iV7iktx07 ze}}%2Dp@${qbM6TZBhF`d)+8N0dGGwX*w1F^wxLJ_vK zWW%{CJ+E{ErXm8M+Cfzz^eSq5K*r~}P<-v>3WhqndKO+s+dy8w5ur$9rkb`+rS4SKxcSr)19tr{Az~8>00o2IE|Hjbpr61f!A_dwsIQUsLVn+6 zm`AOwiVa`3>yoP%LoB1@+)FzyCKN70gP#!A*Ze5w0ww6YihiDxm`N?HGZyt9R)3}S z!(uPsWqRqz8+5y!^%R-AkDzm(sTr@C81M)UB1Pcs6q{2NzIN&JqZXSTfRX88grJIP z3Q8Kf`!YVRf3#s=8Q6_JcY8w`LHn=3$%qdT`m)dVJbjiY8kM=r(0D`=W&0uim3?|C zg7#!aC`}=w@9A#kdfA9%Ub}cL2%C_|1;Q^h7hjy}Ir@p>E>%CYk=>2@=WuV_hIPc9 zntO{ap^`N=YGby-JSt;ZxOVoaRs2(8)9V*YtO!n}@!>Jb;*!WHKtEMpgnK1326z0y z8`3^jk|X@NvfpaGC_TW)1!Xwjn*si_w7z4v;HN55Q7Od}LS9T({&e`3sBn|p`JIbG z3jE|!RLx^iY{mW3$82Ag6EwB>cVUKg8xT!RUI~YYnnm77jp3)zZ_`YdIx9PiJI-4dQw4N|;`}^w zGtYm}(9Kki4IlYGs6@m?1X3XY?=v{s5R69CIg_^-ZRj)t*eZao#&JM;0d+YIke0N^ zoh&Yl^0b60#j3{fHRWtM_+Qq$%g@Ny>b*89QXZv9&7?F$8nVj`%z^3d4j#Qwi2NIQ zLq0#kt57jxyJ`t;kLQClTE_qnf1R5Tfr5K$%tJ5y$VbEbCv;R{;+FMOBjI8dA zd!$RnS{?h3=MzcK1}DAf>w8+{bWU|JCv_-tAV_cO;9k!nxN!&;V|$4>={VKC8RZAI)Y_SXtJEh!rr+Rdlz*Bpzl@Se2fGQt)NP1-_+o$n= zg4num|2MMhe}dQpLB0Rui519+K$>U-uBV$daG)#DY?{D2Jp_G!w`^nFoRV!;Y=s-Y zqcA|{rNBoB7JUjrYL4~(NfdFIp`o;_Udku1B^d-a%K$mQQxU(pLo@2rM4FNa5qsxU zJVQ1?T-GX)py%IdetO&Yo0JHmUi@hI+T;RZ}!P@(G_!OuIZKq@!?^ zmIOb1B35{Fa*>SLGfJ3;4pxY&C!E#KW!I@Ew*qpZs+O{TM-4;H`)mJ}8Y*kYzEGZv z<%h2{h?Sb_wU?EUgc#E)l7wLW-yqHZJzyM0JtFwf2rkiPJbfa|y(Fes_-}?Nme*f} z&bCd!nO}b_JhYVJJ)k3N=D!8)U|py~6nr0AF(tr-MN{HYEXq3i0AoMhc`b7Z?;j&lOn9D%2Dg=q@6F5#V{?1H@I6 zi2hmG4~Eg+6I#N#P_S&p_7>zrk8<|7{+m@g$g4w8WT3Zl(M5|@vU1)DC91j$=u@Ir zPLuiO#RW$?$^jkQmrHps)S)unJQ8&Bt?cgJNaa73XKxG4-u_B^p)5aXxMacjUW%CAm-`6 zlEZ!IS+9ZsFIx4uO$TpxJz#GeixnLJr@+Mfb`y zo7R-=O3RqL?kb2jW_D*!kSQ`2Zm*fN!?5EG!%7CEa1YTG{p}obsmjZL!h;kb?ChtW0Z~)RFBwzSUn6Q&q zXu-^OW{LtvlIvbXI!vO_=HIkgx{NpE)Hjg+sKSB0O;1d2fPybO*mdERcKmXj0XAc zx*CP$;?JTXJhc4g7plWj%QnVfYm{q5b%ac(c>$U4pe95Jc;hgmJz3hKt)TxmDflfH z?c%4KuVXLSdd&58YOQe^1$sh_@Cj1V8XbA=C_tNP^?v}`%$wGuSP5@l%s4aOTnu(F zoQ5=*&`F0^HwXsg0HM)8P~-v!weL*<6M7;`&e#}`Jrm&?VOq$iX4#AzEvd87#PpB) zx-UWKsN$}vji*`|Oah`Wi@HWHl$y-G!Yeh^+AIXawqV0T92;VbDcCh2Ho=F zlXBS{=cE+HOWJ42OIab9BOB(Z#0^>k`z(9<@sp9)rGP6Ob92UwK-U+9BQhb&s*bAR z6OvwKKHh!xmCO8^SbfcvVdvkuxW@)Qy}kn{#H`a0t9?-eaKD+aIUi8O$>{h6k2!hm z+4iI*K_Z`UYG3rFq*kTwc1c}QL-8%UopvMYX;6}9(evG@CoJ03*s|WY#9gy3gb6qD z5p5g8FJ0x0bJv!T0cmLer9)XQd9FBICW6UjmMzPEJ#sHeamy z*Za1HGxXMn6^#tnYns-AD#Qld%Ps%ma{^eVpPe@aiRF=&XX>5GM>P5LH*36$@48rs z#-*Qa-z^y#F8_T{C8elltfC^jk*D{fMy2s%vcv6hVjWMLo0x+S?5!iNSl)bD9)wSg zGIaNEGV>j*h+>agd=Jb1Z?tp&L%^545UA18ad%VmtB$1No=H{|fT_U2&O>oMd*pAj znEQ216_0pz)Yl)`vTVX*!UaO#U)yv5hGaBRvic5s+Hl8qIC-iPR?Q=mFI(E zL1KOX=RedT!+|55$4E#cDw_G%2I1Wqqw(ga8e~G>ivrejkg3JQ#?QN-(OwxDg%jtE z!d%IC+ctA42wnn@Yef>#7Nj`qV&P8IxQzLiW>^z6O{3@bHW*PbpX?;dGh$Q>TQE|} zOKw1d;{1Q&!lHbR`Zqrt<|Kmx3te3I{5Z1E>zi8>1ufQJedHBIlaJkVf+an>md4Uu zab3P6rlK@o)s&f7Ulsu4qG#>m(9GsRDSsmk~$CU^!&;_MCeM@0O_zHhMq~ITG(}!kz$%>Im z&vKC^MaWzl1iV!nRBJkiUnqirci*Bx1ABML76f{n6(Y8%eTi(d>69Nqc)Du5@h&=G zy!sX*9h6{ol*kN2c7twPIx3`v%1!(?MJlN!_bdFjmYu|9 z6@vAi9dc(a6ru$8Ca5J6rTe21HfJko;znNlPw-=j^^nWAEtmhW_?6L7EhJO1PdqLA zN@EqOeuHeh@7I<J|)bz`02ITe^|VX*YPZh^d$_c^bP(h%c69X z3T$nJs;WQh|6ruM+r3tW88e-85XPI&|6z56lWj;wB}C&b^rF2BrES-h^X~% zv-mSxVgDn0&VgoheB+tbE@FEldfF_HiQ!uwC$;lGaXVNA{p-st~aNGwQU0?|I->ptza-*(W)vrTne&diH8Ms=a7b z+q6gY`5dH~#>r7in}o;M9Sa+43p?R$!3iA$qA{kQImtgbHAv{*N zv3w2gJxfxVi~rN_XLr5;tvpxu_@l}93*}KiHpF7G_erMQ`avsWj$2s>023>6rZxDu1P=bo2r9ffqDWUpwz)n9^5 z3_VyXBa+u-p1JK&m#fz4C4$8zWz%?I;%w)8B9@dTf6hwzeZK2uyiXw*O8a$lfzSh> zKg6j(aO$BdJI&87b*>=Xs#ROxd52q&ru#hw`k`DX*1MtqODFr+OF2_Pm_wBRdzFTR z?KMRTTBMvXx)&q4@Q{L7PU@i5)p;64B}F!EZTXwX_lP)L`BnuchzDhm=bgw1dP3Yq z+G%i8-;m=7#J_U7(bXEh8eH1}?bIA~dgRmR=bGAa_~WKmLdTuyeYi(N1b&EjWXJ&T zetH;6Bo-A(X?>qqplJH<)XdB<_$_KpeEV&L-Aal{V8jIRFEvi_`NmPpKS=mZkg{KY z{2Z60>wGv_e6BF1&$tZ}!zO?sfF!#xJ$8DRR!393#-J_5%WDo+?CNtqxjnBwvHi-T zU1auYGN9sN7)dLVZ5+F;`nCAznecmQrL5LHwUL)j*%$?E+(-jUz) znA|pRoO07jc)z>^ia?RIJGz=~FVW3>B{8uam~+RzzBeebKu2|T0VeuQjHAE915O?} zZ#rZimD6Y9f8KmR}wF{e#zMtr%SLHGpzddJ@wQ8flL#2Yt!*eBo0Ou=})FIhZ*T~7oBfB z=$kM05*}j~^?}WxVwh5zq>gK0_Wjv5kRy&YYa~CotpLHp1~7-$W?r-X@gqBTgG84V zvL(z#o{?$l@^p;wO|vI1DbNZFwq-=yrh7Ss; zcV&GEn<9)F`kwyerbw$#7He`iwZw9VmJjV-Vmrc_=Gs2UkFJ{Cq&?qjiB+R>9aQ^l zXO=RnpP>Rt(M1caD%`T9$-fHrAuK^pxg};UHeA>5G`qT3t=C3h^%}8R6-M>cwC^A! zlBew6>UH1wmE|WNPITK87LIk61Gu?A#H+mwR`fkLiIDY2KDNFnhy`l!nT9r*r+V-E zpxlf*wRc%Y`)>M)*LdUw!(Ax`z~Qbo(Gg2VTOma78=|1ZDt6wJrq648GUjYW^R`|| zEHl^b2YrIsTxDM_bQ2SSthFwl=G{a6uQtA?=mDY(BkY0;=;$+E{#thCPB(I5gqJR8 z1Yy0KW5k_y>#}nb5&o8tj&BV5e1RC|Ezn-R_FM-teKgUzM0Oxm-}}6Jhr1!ibV_#q zPI$&f03NQBkig9efxwTFvO0*J?=vXlEgiksF#ZUesl{J93E&&&EI5CyQWjVfNkvO! zHg$$&fygU-`lEQBP;=FsPvYawtM=MJ)5PUJa&FVs4mtv4_l{HUiT?x6ZPu`t{bwU;4I9LGdnpZ?zDtRK_Q=agW}x^pY|rAIeS@~DHk{X^~=SUy-k1b+=tJF|gon*}BcYQGShN4SF!O{WslexhwnYXf?NHGDza1 zoz#BrIunmKG;!7WP_XlFkA~k{lRiOT`4?A{v5IIm>r=-EpnFFRi5u~nqDXW1A{e(T z9iy`rr5b%bL`l!Tr8o|`Pdfd&{WJ6WgkPv+N z=kh~p#)k$e8(tU2DCUJKJ4GI{Bg3%<%F(k@s2LNl`z?0l57R3$JchwSgWs72`Ls(MLL&g01$O!$bh+Lw zcrps^sMR?C{jv|$8kitN(T2iG9&8ric4J+tet)7>FOM7A7I{*IY#mQ}<=4j6?2 zCp7P1esCE}b;&Nd94Pu`DAkGjyW7d2Q!4Wf%Pb#j&lS~5gG5#5Fa;J+gaQswzxB6E z;0e<=GIs3Yl0fTqC5KnCN!8*49iy(voRmNr1#T{M#e4Wdk4gN3%t~AK8|?|+7EGGl zHfj2**GG$uk7hC48ZHtb9%ihp%s-&9-OvI(v$=7JTravgYlg19d%i&+BZQr79I@MUADycCizluIK4hz>$0KDWMHY` z6box|iWM+Kbx4e45j>F;6D)nw1l+@~(5K96ShR%=$8scHw?*JhVT^a4NBjP5_f`iLc^tW>Z6fy=O-sT`H{vO%)kKJMzPxo6}h&8>q|X`-9j!~*W97Dhb; z3~4q)&F*GdsX>LY<%HH)*vQ^WET zt^}Ctbb98QzQDuaMP1~PwmY0%|DH4iq-Ng3^}RAIG1jj^k8J?UV-}i z07WUT1fY3Y#q_m>6JmPXXlapS5s?$o!Smh9${E~JHz949C6E#mTPnPY4_PS-V ze0XOcK=328sAQYc+-R`etSe1bUp6V>5(Gc?G&jSe-Q!}uYR1E7A|F*@MC-Eqx~v!4 zy?CoAl@qZbgLQh9h^lB)aaBt)dJ};-iTP|vgZ>9@QG3;*(FZutd`_=^#>N)UvlxMY z5ws8g1vfQPWmPsH3xhUtc!_7M{D<`)mVL9cc^ezAf1|%|eDFzDCY{oDilu=-1z-6j z2l%5@68K|Yph5N`vkPU%e^_vtZVU?PeMrkVd#e+o!O+7|f!2E`-xB$RgHvY@A82G8 z#uw`F^w%7gMePVrsluTS&LOy`+von zM{9Y4kNpb`Oo4AcH#L5)h-`cxqoSqIywn5K^f=TMD`vCpBK7k>cKi>^abzN9308hd z{W+;-?CADy-dTk`bfT>+?j6eY5;% zx`cRi#P5%)4pEW0QVJ};bX{6SQ_{g0DW&dJE zHzv3Dy;7cY4e{_!OiULvoMWlN0z(xso`C!{m!vQo4rax-&(y@Q;}rc`l>T(dh+!}# z4qMN>-hr8P01>(nAzq;q*{xM5rkP{dEXyBgqZHvj?Rj)eb?(UP}5b zDgwbNv?9&S#X_bdeS>%Q<5{iqy;)0xGXp%xjQ+^NAIFzu*r%-FF+x-u``=$q5%o*N_Ko zXEMoc1VG+9C9Q6f4s8{n<@~32@O8YsWs;K?78d7Uv>zV(MQvo%tt=0%{Oi>vrqWx+ z{*i&DVjTRFOZ&1yX^qH1`xK8htCd(&nrANA0WwS06$Y2{8!|>VL7pZfWyMq$=Rb+1 zTl1+_ozbRo;-{xJdYW~FYuuer5N##oj|KMB@~G6LCv8v+@f1u9$9pg_z}@&bbDS}C z!YiG_mJ##O`T2PT-l5grt;Tw?X~)?54h}Uk%QE3`06|Lsjd|=(+H~1;8xA;4y3=Z+ zB_C_3cY^1(C+V|Ih9?pVJ?-fwlJsxmiaDv(lI*v^pJ7VZI%E}M_-|RArTe=UoupFs zsfsk}7c@Hvpu-kNpNiOAPZSy{D;!iOxlVg{3FZX7|gS=iRp+hdDGwi{4H46 zT&z|p?*BC>`9VQYtYTloGF_%+>El+pS#TZPO@1#Lm7bQ+o%GL!63ZzmdImkV!+NCd zebM4R;tbZ8%Bm~c11U2~^*!`|jFF{+Gj$59z7Mk{DlT`qjxrmBvsj^7Kcz8uYtf7r=v-8@WN ziVRx$ZlJ~HnNprlr)~QtN^dB##%jcFRUt`~oFTc)TZx}|Uqzmie~j>;PvGYxL}h5t zcMr66_R!<@NqhHe^3%%FDvBh!mGZ#2H*QHom`adCHafVI-gN7rd@+Mr;?xfzoCvTY zLazhax&$!PkC+~pDTg}q5JA|wsPVk@5hFt<`!M(t?Xcw@IN70Tf^;F*fOTP};Z#6P zO>F`}fqx&~vgB$H^+_gwwREwWZ2x_T2$9774pL|fc<&T{gQgqn0m_7nZKg0+M078} zGfT!ITg;saHd#a|jg7cJyt<+rdcX@~a9THQ?wSfh05H6}J+cW5>?p|O?Gf|uq6b^7 z=f5rZp{~75^?Q6x!z~B<#q(}Nt4E(3d2bizH$K#b422mVCM+a`g!hl5tAeDyV3OZ zIh3Wp_70vuCRPIfg4c?;Yh7BBV$LvoVqAUBoU(4>u#m~5MZL`o7pENR!GCIeHih;n zv(;Y!MPrTXmJPOPhm7u5pkWS(LnA-yw`Q53Sl;RO4=&@Vf%LK|!l@cD2KzsF)KzC! z{oFo-CJtqKBn-tP4|HuU8utP|VmU>{W?Cau#d_B}j6S-W)Ku$ro81YqYubS-H$8r` z>8>Bso6^S%HAFe8eMlQ-yR@d-eH2MUO#EakOBYP@Clb(lre9il49j8-v9n@NUoxxebFtQNYlswIz zKq)MMGs!voRz6QEqo}_q1o+qHDJ0ier|PLkOYQBH)+IJGWD_mUQL0I6fwNWEd+gW1 zyKbDI=IAGN7t%d3!R?Jz4;9^{zuTZ%($U_t_W$=~LiV=c< z^ahQo8|})B&h5k&({g|CF7>pKte}&UoYysR!%U=5(3sqDhwg4|3FEVI@t40Y9`dIi zFpUIJ4$Jc$R z6bJ;pq`J4KeW?Sl03{zT#P0(v%pPNt>C)ekp*uFZ?JC!$Z$==k%aontN`qgfAK*3X z$nMc=_he+%aQEl3sk8(5+!LXMJ?f^W39NlLmqD@JXW(Ao!+IA3S|l#Pg;-u|Se-Ap zU}7_7ctFPnl{vl0{#y(&_QaO8h-A4#D3P|TFk)(1$u^miJWt6mzL}w#9*^;lR@SDG zw|5eyoH&N1G1uklcJrNJXuX9^%63OTFGnRUQP?5H_SrmP@l1CZWGbOF0YPq^FK~jO zQIIV;oM&G#>R{A&R+%+$HVCYYHLBZnHjZT7JeESxUd1$hm_d&&g$a3L5i_y$B*4B> zX!^Quh#5!CZTjC$U1(iNGc4?nsjriCNzhdfR6_B@P~<8@9R@+2SPAj26p zF^sG+CV5~?J#+e295ff?!>1)DD%BbBZ5;1J0Yc%5&j$_D*y%V{%<8db}7AMG}2EF;%!Wpa60ddf&n5T)O2JTJE1qjg^Jbc z6Q%o5An_vIrGwO|suK;?PwTRbm`CHP%hLP)Tvl@&Z-@W6BxBF7^vZ1| z5+Ta@1_Gf=2hcyVUy~nLiKcr9xwE|%_?WVQV5D@(*tossmw&?ZK!5Cl z!BKxU$605L2qZ2!cRoR8Cq3BzU^DS_w#KoVSxQNM18k2&Q^1)m9q6Z7g@_hLGgjNK zTPmR4B#qyjey!)wqL%fp^|o4nX4$TZ>5h1Q%YvZM3z<~X0E1P}J&`(IP9NW7p3tje z?#lu?^w~p)$`vDlH%(Z`37_5i_2>EUkm9D8p!%Q@xj=p5JjihbJoKp}qh2I^JtjcP z3Fe9`*taT6oNMB%blg!QN^miFrWMjYenjXBHBuGMR*e-xYa`SQwhF*#7h?|&(6W=5 zf<_FytkAV%gTo1s+Wa+U?jn;ort0dA!Duhsr+_@$!qJ#$J%bc5+upadB69r9WQ zrU{%W?C$}15${R2L`t)Ipb~`}UkS4$zyCHDQns&I>3$WXSO?=hjSKm#jhhNwGVk|} zgP5}D%b$H;fBn^q>SU*fhz2lkR~VF~iW{A@7}509@5Tj1ZQDM{M>rI0UZ0kXPtnyZ ztlzCKM&VVxS_POp@Cp)3C#@u7*yVWcK~1*QN%9el1D+!ISBt%ZSx`PXlkRWj=*z*= z{YB*+HT3`C>Mi4%jNiV06eI= zABO+dKa4*t)gt|_c+d}Xe@JfqimXBiUZ_d>oGHfqb;Fv*o!{$_Z4pP8I-cT0>J`r) z=DV+k(2%-Lz~85a?3H18xLo0mH)u!)>u+;Xs0_E|kdKfIt`)pl$8ct4(M>&uo}6m| zUV`GX#0yu)Vr8G_c{Z||VjX}a5)GO;&ki1cH$)1Wjso3k^LZQL)nwj_nB?|sCEGYV zjEzlVtOV%X(@T}{=O)Lkx?Bk@NKw$bzYip=L_}*eJMciMx;_p1W<0eMDfaW|CFI+W zaY-Qo`(gDW#F(0N5n@y(oLfX?QR&ZO#X{mxXqa+B-=E41ukVbyozn09MqbwundzkI z58SMVM{Vh}W>(G^!CdAsd~>z1w?d_Xm|01gI+EB3p+tL0HpNz&;*?huF_K*nM<#sVDQSDTYCyB`dj?{6zC>$%3j4<$r36nFRa!5!TD3=PXu8z)pZs}p16 z+&eUQs&mc^IzQ#wH=O^&uy!OOuQ(OUeyMik+CxP=<3d+QOO#G!)c2fOQyqjDg@# zdjl~su+=Xb_BIYAFOF7uQn;w%(C`-xeD~QQ9)`}FCGUBfkfxRS3A}s>I{cU}Lv$D6 zXK9_JajEa_hm>udxRaMpuTg(@B3_w@1Ycn$H5)eEI_ zb46#L|I28X4WGW0Kxpla!!U3V9R=T5A9Noj?xIe|h@bJ8+4wBZ#xAbWx|y`_tOg3* zrHsV=it{9*d6?Qx{w6%67xLTVinu&T9zEL*)N*bwL`aipdE-nPF#$(DS=~JXsvjnQ z_$I00ThD#Za6)9iO&?)NMS}azRiz)bmxBMexcEajujkw=N2|zzBP8wiG8%1pwdbrZ zzSEG>VsA(3Rp)aj)UPJC^L%SWpt1}j?cZp!=_JS!7DsdCgb_2|AMEKLPtKGdr#*bW zwR_#-1(27ddL})St*^11_2l^OZ~Cxx+b8Vcf#}}9R5G{!p^M;23I|7rE)_&pPwkdV znQCkOanRs1LT@)LD$j|9Rz4p<+^g9Fpu@T52S>10-{y8JHu!X`KW}Z)t7{5X)Mbe0 zT0j`S^`cyBmH~@vV$jE01#f!yL$IjLO8{EsY4QBGD1Uj7?jwJ}-E)o|^U6_VIMBe3 zZ_UU4A^|G#0bBsCEJ}PB?L}ZKm9k}V8!T`CRH@o{kOOiok!Zr~s2xEU(_gnc;9t`& z^+)_$qS>=i6CS@>(6?#p7$|74sLfjhR^z;mh>Al0$Lco-Q<)!BdEUqowRb$GsqUbC zqq1s&9*!>SNR(v3tNmt3z0w!0%{mp=|AC5F%l`A4AJ7M8ye6LlOeesG1S^Myiw@9! zwh-5Suqjg4GamMlo9$QMVT50Y#g(as!|N{-T_zS(T|pk1k5cKGxm^_dN5E$U!n>(F zL-*a}VSFFyE>E_%U)E4tQkeFX3^Je5IO5hVe+TzJ>4nB!eETlC=T05vG85}&=8yxx zOr#d!-44>vIX^dGk||4$*N-^xiXTLX@bi_C3j}I3Oo{UGjABldL4atxr&l~@kE(Ls zAM*8Dp5rA~o~E@Dci)Ikci@s(wTqI?=>fYiGg@c!pS3-nDkTO{is84-N~V|wHD;k& z9E;^@RgF{+*LTu5{PZP_jBnw8u%;U4#_6JS{iP@rUnKPY-*VJf8L~UIL;oiT{rbOx z(EjVQz0`M5y0)CRIrv(%X_bwEAm{mk9g?iwX&12!Pt6Vm@4a-TXjTrhi=-0InSPcY z;dUNP{nBN#iDFbSBE_0$@?hz^p-N}Lm!yezZv-OJxBiMG&sD=tQSDd1^O{a~8AT?K z_RKBg-{c735=1KNa zFkC&wtuWRaWf2s7=mTs4Z!%Wy#1Ed6{PD7y?b1$~HShI%aGdKM`)hXuh+wAQ75GmM z`lYhNuCne{8pcM@+yE?Bgz0IVLvG-@1xvP(y_oxU2!OO?o8~bea1%N~pyrm>)4O3$ z96Uj5OKk>#LHxygksrO(3ojtfjxL#)&KvY&M0_{)LkKDUOrw#gz4Izky0Utqz0?X> zY-3a2$@R9k4y(@VK^%(quBWF1y$`1lZ;3F0obD6=yx<$3z80U0Jp%y*;!E|~+`tMz z_(D*e`C7tm_^C60oO>Y8B<=L%+zxwOst)h%Glc0?C>!R0Eo=WjjAuQ&cv;m+idVKJ zT2Liy*yXK#PFClH7lDdqWm52D>{sZ%j=0#Xv+Q))gV!;Y(-c%c8PqbEp|!(HxxN&s zxxTiUM?!KjRWj*k{4Q!Eou1%WnQlHvdA`07!nEGe*^UD`@|}$ktk=Qz zWhB?fOJ!}59Ana( zt=z|;9T|7}JToJ%Fs%+d;^_ksZ?QuW>byr!Mjd91puy7n&n-%tS3fg80~$8c+9Kr$ z>seC|f&SlRKaW)~Y)m|d1{mlM_$O%@?xe`Ej@a#xA}ofJ3I#%CWde)nnBB^{J51L> zAw&oRlGxKcXTkUx4!hMHU4#r;dlmegwTOs^>ZQB_CG)Id*pv8yXVw^n1-8qtadpU%nzVnRb>4sS^+Mr3kp}=T$ z8S!Vs1S8m5*&@Z6nhRuFu`3j9V_}d58vdy6_m?a^r?2t6`lBE)(CA3GH@5*BU+}iM z`3Pii_3B*&GsE{&Td7Q#_xuSFYZ0?#nihO)gw-#t0siT7U|7zxBrJqpJbpwPESB@q zr&1{9WSq$-OTY%1q{b>%#KxkiN`<4<2@4M1t&hjyMM?2^gjL2mO87_Rl*q*+W$$LE zrYm(^Mi=|+6=T$VTUlA3c&I-)YZesj&gufwx@w~|Gqj*(Gaiqne_!*f*I4$c12oQx zDJxTL8d6@4%dDa+9zqyR*&??>DWMUSQzha>^#CzgHqk$aB zH-T%><`>~hT-ON5_MZyUL~)xRF8nJ_@{HW#fmxMSk3>S%x;_NchANbk^=+(?^R_u2 z$Dz`~g%^9Yj{O4^5|#yDMb?AhL(A{gdkx!#?J7LN(!jy|qpBRnGj z*d-@S6uRxgZtPyyCw_p`ZD{KcKzVd3oyxq@Y@=2bR$A3_JWna^mktkMfZl99*4ejr}&al7$U6IGAV z48zh0pswz;qw-o@T3Ga-U(;`ED%iLHC#?J*8hY|C_^D5#E!r6ukeq-Q)=0XHa4k&ll!kwvfX5{#k`)wbG}9l-dI$UIoB&FoI#Y@v6k85ac5n)HF9C_n*FHbx7?(b z4LULFsU@YL4%qqdi+#tD^fzH?8H>PH?$i=p^2QQNgKBG?+0oSG!l3L6L4v60-Cd7V zY(Rllg(!7)es*qvgQau0TWA@%SLyu%(^LQNFAkHQv`$?bL#ktCen{`<=>Qb`kxplO zM^f-L+ny08%(*?i{{B-6Ya*8KSrh}cFUb5alYZZX6iM*2Z&Q}V0CRmRr>zUQT`^$2R;%EHhc<(b9mMo+`4HutNH zG~M(QNIHXXzgj~6PmjPRP&i`kI5Hqfhe1}^4cOyLG~0YCYGiZAR>{xQlpTLD{Ur&t zuoDH_PqHO8V3OSyrR6r|_w#8;&$25coiPnN6Wr zJTqE(T~AM*MnGOp-~9=T#O)m+)rOFu8!=^&fwirM4FgB1)qV(Vd24LtEWYlrt&Pos zqEfP%0vDjJ9%Gq;m6nVq$zUWN81DDI_{1`+5iiol@#cQ5)!1Ri#MVA0Cw&m&%f-^_ zcvx-r{(wmSBq4=PC~)f-@@`va7tqV@5MXOFRFPKb;UvD!#)%XB>U-YU=ECSPoySM< z*S1sx;^%n90qx-e+VKa7YLt*jAg@06F6 zn##%UCTT{kz}?({f<->@6eV!YYJ2rN+j6Rr}y$x#4&+*W{7!~1{FwPDzeuwC$x+!ca#HH9r8E4p&9*U+fIWyxbDutm%keJ-VGDL?ik7Ul-c1rA6pQyu7V1X%|nOCU_+ls~iFtX%KbFTBl zQ9K7z88lvhwN&S$WX2Qm5sg0n&y*yqL#AAuKPs0c6kk7ri3mFXGM=ED>K6*`fBtMy zTG$B zhhp{wp&7&b2LaIDkMGmL+Klm`wQy!%@S}or%uPE$$g1`sijefv;@0RZ7d^%J?Fl#LRV@mmW^6DyG>>?TT)Y zCWY{#=kw;h@$1##Cz4bPoMZ-Hoa*tE?TpjuB3l#mj$xk9x)5eN=YX&M;>3 zb>@;4^9b}&*YCk4IQhqx+8om2XOeTtVLMH)Nnl7BXw5%I3Rh9))5cq7+$aCTqJFj$ z@oQh-WP6>!jjTUzId^!ELjkX3hiq z^x`6}HvJR*eS9fHlU*s5g5D61=`&2WdQHa(!RXnyP{_8;T=gp}8?(8b&g{Y4S`1)a zQqF?K_YNm_aHNe;bF2&V>r2`8&)<VX@#P3ZdI@!QV9sc>mOrV)xyS%RSn}}KA8$d9Zkv20xvzWr$o_*s4ySH25p`;&d zOKGsK?k!-*Z%}^Lh@*xPb=k70TbK-FGR<*$FA)0wpc5}bIraCXyb_d22}oAh|T@|aD> z0pB3W4mpq6=fGroiy=yquu*Eq-Qw`gyugW#ciOfcJEqM@#kQC@JK@tEF;mWc0%F-! z`yx+GiAK*_)IUHmTFNhp?A&juZ!`e4FYfb28BRKrn+xj-p1W;pD0`|JOQzfLai{n;T(>fjJpd4+*EBoc z?ipXnP4TZ_64oI^mIQw=lFc%Gya`&r=5F^VmR{GNP3BpL!wPk+X2Y+=_6S=}a@L$6 z+s|wk!TRaUM1I$DkjVPa=m06{c=fCSpy$m#@Nh}{ctmXdRwX-WY*0mSFD5pAihLNm z(Uo&CY7qSDZeS+mZtNSDanUpFsz)nFxrSTw?RHxwvG}8@zk^$N3%4W3%RMoF%3aZM zfQuxG%8I?ir+>^2kfV^x#GNo`D1|SjF3v4=X11DNx4P*!_${wd zqh{7U{Abn|nGbEUP`0b!Uhp6|Hpzmhejzu@DvmGKTZYqFf$CcgwTfP4Z|b0@_U*<- z8ovU}1*BA0mJy5x*a;Dw3&If$am77Z{Gi9+ej7blCQ$AAwK~50ABKTE4)adn*UW5G zck@f5`Fta%uwP%7EDAoM@HEVBD(482OnY_1tyh})Q09Q)|4nv9bjFv5yM91o=` zS_do6TyZGmWS?ZYnW&1X0e{0DQ)h0Cd51u}yI2<^GRg7{U+CIdjptd?i)BAGC+t;d zR)9=lmFtBO2U#CaI2*4XtR(!0!ze2e^~p33o#N0i$@VRK9D8I+m_ zMLUI$pf(?}r?>E&$our4N=^iRdUA#cu#Xq=TklAX`0%0RITW)%C#T<{j2+tQX^ z(uxjGjJ>_U^rUZj&cniR*y|^d=nm%QJqxP!#bR`-WK)FB!SYaJ&0RsZ7Pa&CnGUH! zW>w>2+-&R%?(=k_7{ueiI?OEAC#|1JGa?R_-)>;nUrE?3n&YJa^w`rk&}Oo=b<_Ie zNJCPEWeig1RoQd~_yz+LGJf;9EBm$-=1?0Wd{W=3;vk@Q)Qf9J(Vuq7Yq?eyDJPUr znihGo^q8caCJ7)LOUQ8j+WaGlp+IyvfBNiGKSFnoUJ8CT@A&?sK>*m^qw*mKQl?ZE z<1nr!JC{FGkbWiFBoM3j zbNDdhD!={Dij{=)R4?l$iQO-7fI254E6t-`9#LbfuHIz&LBcH=!Aj!BA7}wrHs9s@ zxHYrxR8fX`Lu0>`B8(oJ%dr-evKQRL_+b z_qM(ZOznS}|JCt54{<#A`opWyY7Gc1ecRX>>6a0V>j;7-H*&@;SA$wPhB598aFuFS zpnLBm!+z1kiV({CEn>9)X9y9$Qbt)jGbXfse37|Pl9v|ne8+I&s?pOify2H26w~g1eOgZ}cZ{;^`x%}2gf~FCX#|m&qa-vvnMNOD1=T3%hDVg= zkd9k1L*&cwBISJrx`(da;M-;Tk_PXcZMI!RZfcGtzu*}NUD*+dNfDr8oL8_^PMc6YMZIk^kK@FERtHtFDW7kxPjQt-}<&<8PB4lsArWdLjLh=i+2{ zy>hK=2%f&XLvv_kNn>Lug`Mg=SKH6>o7R(^SI3%dCwalXE(@EYI@!OYwwt@xA|pu- z_dwr)y>K7SmJ71c!Y}YPuZH?^^s%J&@*L7<4P49aLIn$@nyw@#A5!Fj@Xh- z#d9c{Ycnd>EUvptTjV7r?d1Y#93vR@dyq+e^!$}s>H(0dW@bJI&m%JlkBPol#8Q2&Sr-w3=dxkx#(#egN5a0i znuZUi1X|2eaa6Z)DNJ?nlTPP;nXoeTPv8D_SC=|>!crgfu~mKfHrYvcHwEc^qRq=c zfdV#5d2g2|HmU9f(``&}{BDU(Or+-a>;3>UFwnh7hlHtB!XvFkJ-G`;S(_AmiK|AMGo`ty>dg+e zIXRYuKFnk9zjzF_rP&yAK56-C7nQrBq;D_>4TuYI?9Y(hZY5)d&YDopADi}8bFg2U z+vw=Px#}t|eW&g{V++0hpr{AQ(M+Gx znB>^ij~L6m!KY@SQysK9G1zq|MFZ;1KU;>~oX282 zJz_*pD#02O{D;C0w@VTKM*>vMC1gQnS+p+I1uYVPa1-|?aJM6dFhDdKHOI{NHE#c$ z&0Z2`&#jpN)Vu(1fP#DN0SXJWL|0DQre-WW}Kc;a+iK<;8g0BqF>E9{b zI_!Y^G#^P8Eeis)qFy=^>9RveVM%&;jE2r)SI{7JkMcH@dz(HGSUr5JC|w)4diVSf zvUYN0c=$&+yUc#Fe#JoahxKpFHm8+U{TR~2Oke%9XI-w z=lt}RmG9H!YLk+Q(+}{mPD|r=cDNZa`VET zDnj&G3otEsZ*FN>8KcaK**33T_UvXS_}x!Jq{*0;jcIO`49N4}mx1$nDhHWn)KkXDtp!h-e5#CPXb_J>Q3<&-10VGTd@MD&p-fBRV3J+U+5 z+@#e4vP!CfZMbjY2+5?$b4xIT0`G>To}8xr!k#y@9Ks+EB~-eACVwdx2n!t6-Ulw{ zmwtB=Ej4OHk!S@!yDghh|Dr~t+qmRQDa(nOd{eQM6^BBFWShMi_le*Cy0je8Jq1+`yanJI=PvEJae=$H3 zRgMPq%8Lv1d-DEakbBE$E*%rs^nT5!PFCZAw;Ukr80mM3FKw{V2(*L>vImzPNO2L5vE_ zJOcT&?^}lkpRq@%Vvk=clWzvp0^Cf}M><7U6Ls_?gX^2t!kRib1X1TL`Gt12-XeT! z-ds2{;30GvQ`K zS?*q~V&v&i`D|}mB#%7i-@Gq2!q&{w{Su+-^op*XT*jfu_fsU z#5OA{Geafk?}$f_fV>BmGSdnPfsG15HH_pyUpy29qZR9d@-pcYhKtXvrc56d{B_n$ zdf!An+v$;@Ym@Bk^WqLZ!%AH}ZGR_$-!9s5RCG^&}^DHj>n0i5* zbvUGI;0J8*uU4sy-3bCGvo1m3qtuv78>_96MvZY43`*BH^3NI)!@j#HwL?8rb7zM2 z5yOapHLvp=FVBA%7{;sEb6bQ5zq^|NwJ!Od8I>t+K<}du zd*tso_Pe5g-V*m>x%ksEgsyHT1dr90wi2Y}%lcomCn`|Oj zYDgc4r|0b3V+0z^<<+j}vq6U@i$QS-&*C`CPoa2CMB&$?g#pwQ8S_xQMUjnD z<8k3~?%K?jPTn)#p(FpZEJez%@Y}nL&QE5t`T+>ptNFhk5H{H zFO+d^s~|U(L3ng)gHf?Z!5dij_6ydE;Mk?{KMdf$Q_3(Pzk*ANtkTBCK|eOA_SM-x z4BVn0eiq4VS(JaK;Uwxd3wPnaO{Ystdj_mSC5f><4_B>)B4g5^9NXY&DCW;6IZL<#}0-E|x04=R-2D1&;WD zXPY&ZdYXaN|1hwV#$4X)ktB+do*cA(u#+$XqB~RK{XPQ5b{lcIzWH0Hk2jxYrj)%Z z)KiBVPithDS5$-rPHTEf-Jn~~3I|Hf(u3in)skGOebo$SuKTvAAtrB)Be=KJSp#0G zciLbbWQ-5=JJW(`o$d#*_F0m-`Rk?BG~Man6&g(@xRmMd;(UN|FOy&@KSWOx45ewp zboX{v=i8R4W|K~(Z&D@JB!WI#SenM?AZB$rLN6lY*qD}ulc3TMV4W>2dkz8^&oc5f zytnjK-%FDhQ=H=Im8`4|WK)S^{8GHETccl5i|+59J>Y_%DMJ9DC}l^tyF%WWbwBw1 zb6-HZnJ2LhUDgwHRz{$hHpAxa3we_fd#vz~%czHX2J-Vx`ppNMB-8}`j}IPX)cz{n zpLb4@!ikjz$$PsO%4C(GDheZR z?Qqa*3z@2Pli4fxrSC8V74oZHXj0%?u$%luja^W(NDa*B5&mT@1oK1#;nZ)ki zMtr3#{6IWznK|QcjSMz#Z-}h_VHAs78H0&*232+9AT=dpu5GpBz&jQM`)Hr0O`mLa zE#jKgXXy{89BYt`w^SgJo~4Yvow37$ZD9+aIsY9K%-Lq6)$_UsV+s z02=6TR-QgpF%O~I2I;fr=(hWkS9mYgz#_wX1Ylh{`>8&>%I^?Sy}8= z(H)H%2)rP8(x5`5XhqWI=N@19^jYG(oEYZ;1Rkm2H1TyfJ2m6)CSOhGimqh&MJM-K z)>mIfcRiKm)DN&>L1%$oz8{y)96j5NIsHra=2hu{j_Y3o2~DzZo4t+}h$f9w&N~=q znht)Kr;V!fh^b}#q2N5ci`Kabzf~D@oyyH~cMX6XFU2UAYQfhgbEJG?!FrWYo%5h_ zq=!El$Q1>W!X6SFt89yed3uKsmX*ac!?fAgtRp5gn89slm+1F{jr4ZM@1j$mEeSSR z_W|>Uda{|gj;q^mBOd2R_F4S^z>$B4j2#FO`CD(;4Pj*}1+JoQsNfycMWhH$I~SlU z-rq%%I_U=Fu)gImyO#3<^^<)z?a&^a%uhAq)BT`BJhiOT%mKne{fJ{z-fffTQl)G9 z$!-`l+Ri?*uR9Ir^RW&-lA%@k)Xe;YHgB-Ap@$cQN~d;WZt8>LFufX3napX-(KZQM z?wD`4T6L&oZ8f>M*%Q%p43oBud|~TRmO!`HgKGnTuvLoK9zc1VPmO}PQ2tQ-#NEs! zK1H<^>Ovm1^@p`#(;z6SbpG?n@)++t6#R-c4S@-qA(lz~XlP;Wn3fd6E`zN_#ims# zO4IJW)`L`_B?2*B09jUxA!K03M!#q3JiakvQxbbPHTS7Ae|}-N1%OH5?%yi0rpkzE z^uMh!=OAcwFOklHB-L*OzfG!(dd;;sj!0W+wS(=F{nQ*6sl()#UQ5BE>DS1vP;ac6~Q8n`Q zvsLt>RG0&N=4&c0Xfzgn_DVPQ*I@W&MM@_!hO6YdAZot3lKuK&es2Y`t}T677U8`%CH-vy zufBw?w?4J(J!g!alDx@lZtZkq;%-bQ0)~5W{!TFoCm;uk$kp7(iv;nj@nIIGskkU1c@ zQ|zi!rH2r$#rteeB-nF_w^i^OY^<>#HGv~S#B!t{-T6%za85s3SP zGJ`aWMWa|vO?v;kq(KEPK2Fw*#*v4Azh6b9&K8A;Zl?SXk(NRp*drjI;K|HiZ3m+q z3O%Hc^B4|DS2@e)F7B)o65^sL>0B*hr(_kBUNO~d+D3&I9sH-rn(01>#iVyGOrw3M zD!n)TRxPz4#~wfuG~x;o&mh1Tk3x}0ekwHz<1+>|JzdeSuDwtipb+BQuwAy{nZdf{$7V1>Y1(b<{W*Uji$TuEH zC7v8UU;b&^OLaE3(h*J?=Hz_@5ECf*({W}=1U#`XE5gokym;?+^Q42 z_u?#l(rjM{ujNQr_AGUh$;o*d&7D{1mN%+q*vI$;0;5$Oj3Nje3 zwD!OxA-``x=Bv30rN10bSE7dvg+pA0H#yQdP5K56YS_^0*V-w}4CuwMFWKk@1dgb2 zvgv$LGP~qFE~?zlFDtyQ?)_Scsx-~fj0WiVcsST;^w{sYqQhppThHCj;NPer)oJ)n zsD`#8Z-C{U>r?vlq#s|?3Ht{rDI3HwVjb&&YS zs}%t7QWCjhHI(J{ViE6nr1?yxASTXhhaE5-)~K!UhV$<(U+rf(+@iB2@DoZ0;?B<; zga8E_!4G0t-g2}bb%Pn@>WoZm^k2twyu9HCxSi$i$!gplE;U5tIE&?9_awv9Hd>D; zxe#jHA$e^B7b=%)vlsiGj}g-lloMj8c|3|{E5*e@ua%9ZU~-N-D-%{U-5(XIi0fRM zEH$FN1xtjZy|vY>-;-_jXKi}%(n^mjHyVB}ixx0nqPHJG%mAwJjBV>$376Qd^)7yi za0h*#A?pmP(}uotS-os!BZD_dS4pEnCpDEek{h4tItA!LlgRKJh2xiCrdRnt*57jB zV%kQ-F~~wndptM5s>imKIzqR>M%9{4rBl@MX_h9GQ~D{@7KsYmKb+~Qbw!NFt`IMS z5HQP#hR3`{xH=&ar+e$E$|sVY*PdXYj#~nBX2#%4+VXiY)#VYt+x#(h&f>0b52wxP zAzP`r&DGQa5nKNZUmCM~nDpnkdi$mvn}()EMXgX$(v)`?TNrWm7atBBDvwtEGaR=( zaTSIBpIicBqP6l&U5~u=S|kJ*5AaLMOlz2zrCGXO^+824F00q`k>@8>NnQ<{KH1#} zin=u*IX~jY{lYplqod{8$N~l1qDX@##QXg`vogs6QTT4TMYNQ7RGEm{q~F zSk+Ob9mp#NZqh%-u4(t0mbmkW|1dU&Q_{Tmg33mmUW;Y6HX69{G7;i15FOGi#DdEHb_@>*3_^~7s~+A1(*hmPs2@_xI|ltzIu@a{?l{%jaarR-b+9E1WFw8-VP$D1Y&T305dx9{Rhd4PO3{U#7CnTtBVyi`pPsVHvit{5T`vPHL6>izq^*+rgUw@c5RG#d}S@FDZ>| zLVis(*Ki$cbB5~OQk>!uCNeKdXgelcf~;T>CvNoO?{u%&i}z1{*ov8xjIdJM;S=`; zlpd|HugoHtRmDV^lqW6YxuV=ONDTdD8~|9j_*_ZSR*P zjoKyt`uhl>Ehf2v*BGX=C^C=yskJ>_W$Q0Gl1h4hX&|af2o#lLmV|`_D@u1n72fYA z^on_VQ|!dLE+(0jo{|`|Jc$BL=tDwsVz0z@SqBwK_K8{l_n7nl*QJjJO8)2a6Zxdy z5n2A{gE;z>yWvTtU*e%VPK*geLH+323I9eU!sO#qQApH34A-}1oi{+`jElmT^UvR= zm~61S=qLHka%dK)pH1#JQSf-N=A6$vfBoC^la5$`T_BQqWOeGZ%87EpB)Ks~g6tp;8u1n^bw z3;(cJ7fghzkA0)(>sJV^@)MgZU5Owm-5lM`+u#JmN=ORN{+038PUb5sBPPSB$SKw3 zB$j#`n=a(rJmM;NpHo^}KmbDPY_ zx3|N%rFEQ2Q0VjXYG%&E562s5O-vLN3S`&(00q@fG%N)YZoKICqy7A_x#3_NnU@8O zU2le3Kj2?)3wR?gc|{%)wws;dA&BD2Kz z9KO~Y)oE$VW;ZMQ_k;sz!lLdp?7y>NEY(`NQ>^R;uaYZZDAX|c)i(~+J7@Y#c}50t z_puN{j~>eR&)xfF7|NvbENsYJN7);dvhvjn)iOSyR-uc!qRb$gP`oMU51F15aWRkl zLbNs2ZeeDeFax^& zhpWP{jB0LGcx$$7CEdA=7NmI&I;zsgzQXJHOEI|r%`-H9b^ZFeO~0$#4pN_MEa=77 z)=B`RkeA=Y!^!LjqxxGi5Kps#G_R|p7tfBwx}SI5F(Q69xymkzdElaqQ^-?z?V~Zf zL%wd8TFlYC5)~^#+P^Y1v4J zSE#vj>opo56`32vk4Gne^>ydz7w^kepJS^F%2UG!Pks;wWXWo?wr1pTsnrTbo62Jr z=en!4-W0l~o%r{-h>UdL)R*e*up8mg=^2Pbv@`8lZck8%Lb_(sxLBQ@x&)YGjG)#M zY$kSH-o1P7|5{1oNj8~Z&r@CNu;gq6W8K_0kT$a>0jaa2k>b)@yYIVgI;Q9>w>yKe ztr^iXG>R5OZtRexv2wFSRH?$N_*zxj=o5-4Ytv|AZfE^$<8B2*_BS} z6QE67aqdi+yjNIqL&d;TP=6Y0vg$5|<&AH=`f8U1^{3a?bJ9rgYm;&ReGQ01@VW3^ z1(#oy8e-m?i||t&MjWf5p)*5mo0`UE66L$+Cj7eHEs}v8_TJbIsPmaL?lm&bF!IF$ z#XQ!CG~cSkjBWbd@7Hpk{}SAR^&tATDGolJJj} zPJP1t_ZuIC@lXIe`DlRa@!nU--bh=$DXNp$cg!=Kabd0@TG+|f1Ei08rGnoLLtOFQ zDns{$WA@me@zo$d!!iWXlgj>&)(sR7pR<)O%C#XNSIdo~SJ}yO^i4dXrKS&+f2T7m zr}zDf&N+AzbLa!F$J8A?h;$I5s;UF{4P@WC%f;NJc~rMumHXvL_jSLYJTss+!ouG= z!`_95`-{dk(=)`I#iA*(8Xs-4DIHS2fK)`_iNZ~;)R zR{R)&9lJGd@1=j1*`D@awjyCGWC8$E=zef_O}~XR;j2d^>9bH;+@+S=>0`l8-3pr; zyLpFm{LGy4jn#$gK}P&NOMvlJ-3o}~!yWJczTzUDD3&OlYonXt&q=1CE?HSkhWe>L z*s3k$(d$-!b_*AMvxR8UH=H`L&7oAUi}i3;a>f^8<4SaD$BNXXkIUGGhw|*KJI@+DI{LJH}V#+bu;7Y znS`#L=))gB551qyXZ=6Yum4I;C!HRpC7!&JyBbOhexBJSG!}NupRU(=pa1h82IrQY z;h%pPs(u8I+TtGv`=xS5eKPYRKOU+wj+pu_n@U-qaz9#!Y=Kpx(~EmLEBHHKy+=QI z2hacK!Ry}gncX;5$aG>cV zP-yYu7TgLHcPJJ-xH~jJ@ZeUoKyiXQ3GPmc6)DBtt+*5@?$DRtd-vV-?s|V^&6<^2 znVC$!C+F<_+0e+@iC2TOh6T1&tZ6u$&BC2WY=I?5Kmw zLHEM?bkO9pvEy9i%+lgNvpj>aJu^004kaEl?w z9}ZzS!(8c@Qqj@@C{rCsFgpjh$vKPDyDIqzA7?1CpAWWfR1;0y8X6S)sWB#vs-=B$ z&0gU4K}Icx`Mz>1FWFm28)Scsazp9muk5}@bd{W+J(FO)YX~hW8LZg!iQ#*H%iT2B zDsIX>6smDF9`isrvqs{dOR*!MT|CCbTzXl$fbwU_a&y3go=Iy3N&G;|1p{tAeOChy zPWM3d8}OKC&m2ln^Q#ptQMJAk@^fwi3!e}ednU|I-^Uu9sMWRKykf*EIdw}Pn8ScX ze0u5gf>oUiL$5xj(trH2;su%0HB{^aduH=rvwrz)VRVRBCT7jWDkKR?* zzwd^iEHi3?DGU>fHLzsb8pu8;Zt4S>cgZE)s(jP)&xand1l%G#C>J#HJ4%cZFCK(> z8twXxS20=Z;zZi`HRfwcq=9@N=E{YTS$ak<3cLZlsbuQCp%p=? zQLOr1!ngPEeeiX;dG3xCFV~#UnR?FA=w`$lB#OgT=Q1>;zuvyWJO%GLXwKNwSPCwVHrZuwis*+^~&b$9uNX}`vD zG<5&sXErLQ!0kTR*c40Q@#6RH(`)*9h@-Ta;_W6^k%=+wLh3P@>=l|Ds10BEp(p*@ zMF5_Zs194w=rzNyT=@CCCCIaZ{&eWHrl?T(%t-lLBvsCQ{|<}{%uUy)^+^#T-lVK#WCj`)%AMmT zv`qya#*0g&TfbUfYb>!xRyxm%VGDo)!< zuB+#Z%G+g)mYWiwKO5dHOXTYh=#qi&ELduKzds*PSaB>bKmj!i*DvOs-px|~(90Dm zAF*L{P^!ue-%2)tj~iw z0e%#_a>7DUO8X0aTjDbk^7r;{Y>s(gFJA3vgTQy6zI7Xx4D%amAwk!d@4%r0|Vd7uUOoXxD}IoK9&o#tUoU9jD?3Y&vNW$YpE4;_cvg zy`18GC^Eyc?EA4oBHYL*8%r-#RgDJB`Q^Il0llNj*P&t~RXG8!D4<$glcHzM50sx( zJW$gl{&4Q@u{RkUtjB`|X0vuEVZoLT>kf{n^j&>)qDq-KHrv?rIur#YCugKgqEgio z{;Oy3Nz`Z}!E`;2x0KCEFYwJ6#Qr!XDq<%NmWAnC(DF9yO-af24o8<@a5J}nu4}>6 z#jZXOKa3W0QYPxvwc<9lc|GV`g=~sfT__6Kk}sQ`s&L9`Eg9f-lW+{)iUsZlc!8AqV4m#kGNSe2`rnPP2)KW@}*0>q^FrP#EJ*J*moDM<7W?duw94p~n94~>MH zr^WfrmON5)mAvrR9Yu@)-puDirBvdok>H3Bh3Pu2Dg_ci63Y7M*gn20z{{vhHRPPz zgFO}1H-mw~C1|lkXl+os>X`1Ugl5b1HR2yIwfQm6YbXCURC1`TJ=u|fH*R0Hmt+{<3;GHK<^{lEXL+@LQvqp|) zn<5?Jnz!o7V2nI~-12?#ZElz|6XtyR+u1UQX05&vx>Tj)X%XF79TUe4%ZFC9N$QzQFnMAPCJ)omk^V8skSdc7Wi+wX};k z!_O8OL8iTAq~ADj{E05BSd&4gycGYCmmOxTs7Rs{z1UlJnsFaL={mm{og<{8PPSb> z@1NP^O=-RpdE5B<$Tz#q5cQM$`bM7jY*V;A>EmFSFtRn0pEMqN%|yKDOF||W8c#?# ze>o@%8?!{yA6&lKBnggXIBAk~L62puHGb8}&DxWAu1%yhH9!1)A^+ApLf#=5_8?TE-k4FZxKpTSW7&98a*x3HAWo&neFHi^KgtUqlf&{(tHv`>8 zVyOx+3piuI#i zO5sfQYv5CI*w+_F)AW_J!hJw#gF@DtCYyAbkrG#w3z|Bw-{$`YlDbfIqt)EM8RlvA zTmmk+Ft7o`eqf~0@$K@S*;R+xV^CWc9wb9CHPSyDA$pf7aRGRx^^k$i>^le3^l!Y} z=Ui{CN9ZT*qIh}h1sqkSDpxa1dVum$Ev;J^ku`k6mTyC6Q=Rgx;5?QOJXT`A3j0l7a zJMwk&)`J=;I{GfYDWZUg2FnIIO{lLJttPG26N@-^^XE^M__7O;sg41A=Wx%IYI1+H zw`Os|nQXjzIV!FNF&y;Qg-nU^L*ll@Q{%E>lnxvUMUCZZ0+*JszdgZxB8mcaY_p?9 z=xJ{F8sL`W0Ats`vsQZ9;0Re5>(p25*EDD9ShXi>y=&tE;PkPTdUQEiSZp7f(QvE( zS4!DOjp@I?Ue6v=c>VMgIVYgniUpfTiekrn(3U#cW+5o^(gLVg3TGH3CKe=Fe1BGo z%MXucG4K$(O;&{K*m1A`{3w!3D1WPV8E%&!kbA9>O~ew5m66KYER7!RR@|I%{N?zX zydqz5b!e=BxLz*C`*8N+Qhzf)1>cceO^p5r{eNP%XB!HbA;OEMxYLXg_Iw{S{psWR zpMV6@C=SYthVHVgs|dULNLpqlv|>tzRE1Vla*V+umYV-ecJQE| z8h|P9T*P@*6PBW4(^25NHXBeG?#nc zp1yen@v(KGera_0T_VAV-A!e|L!!Xlz#j?#=BHMJvU#y$;5(6(M8yTnQw{$1)=XSU zc`56Kxf~zJXdee4b*`*i|GO!Qs%hnjz?Ctd6wcIBV3zXoO?F8jfNzttnj@}3lW3PSzsvn!45!VpD`ma^hxW0Y$NkM)nm#JkqNOp#5f%L6 zp4SWv+ceML5!R?@Co8s4Dwa)>$>oH@%SPhN8ofB zo6j%)7gMqkV#DsDtO}^Us1!-1{N7TPOjwgBEXGdH+GAgw=Z6v&|LLcF@3IiP!-}U9_KS3%}3kuWWiH)g}TS54kn8a)S=7ZOf@UsmamGLaoi6WmlE-idP{i z?x$pH4eLimbCvVg2U!Z+R_EP1GVg@{aImmEBix6fv*pvv?NefC8(cl#Nk4q-2FG8# z5d-$R8T8GbyB9aI=h$pL*YZwkT5c;%t#FYJjqzf7jYO-#^oBeFjXWkITVn0jm&@}+ zeLSEai=DE5@)m!~`CbZA9AYa2A&rROhs_QQW*6>|#dQ)#zV$yRbWmpRDS5ckLPbkI zFE8%1MZpyuLoa|)^s}jjDRat5ztb#Nu-mBhD|5jUo{GMv6oZ20Aj)wG#!LWw9^Hya3@c{<9^S`Vv%zLir^QrnMMz+oYfoE z5bi9)ggyQ2drs*_ocOt+5EdIXrco$xx->qoBHF5fQE;dUT z=@(zo)QF9qK8w@V)hT$!P#bGe6CY+3V-039%p2qO)WMm=1YAqCHeECBRvu%e5=Q?+ zn^_iLODqDZP1Dut8`|!g3I!HvS-Smy(}2D z#wA^;WU+myCjj=2DqEm!4R%n@?xcf~znl_Sduq0~d0z@dpQj^Yvdmkh64O#l^xnb3 zwI(zasPfRRr4Ib~|F}SS9<&5G(<|Q0B|g&Rmg2dCZVKG2H{QIPe~_bQ`lD=1!S`9V z1X$%Q@tm}>X=RtMG1#d)jOZRJydWdg9En)v)zoK+ZbUHP?>VCMxZo3Fo!%oiC(g`E zyv!L>MXs5;5XzPUnb`2sFXmR{2=UIcgaI*?fmN|*5iO~vm9ZbnJr)NN^gDAlSOg^^ z1zz12N`5{&o}3KupBm*(AtB+=wyR|F6`UG54Z!dGZl*qgV*aLnEPEo>FWVjNoi0sH z9X#}BF6KALE?`qv+XyW=zlt>#Y*_UeM{H#jF=1Ge@~f>x?Nu@K-M|ga13q1lzhzw> zItCaC2#u+roddz_ad}ssvGogXxkWqnf*DLDj>aiRPpU-DcdC`Tx*$gtLq0Wzb~ZJ( zzl_0LJV{$I5~@(lp5~W7Ka7V>gls3uM?`FtOf1iS^JT4|8AxzXg1m~WRW@;7t$8KH{DG&N=T_2C#>KY`H}SLZ@()4W z!*vYr6*SpdRn1vIcSI{M%+Eggf=Jhs@h3<5*y30Q(~PH!OQ+?qWnN@((aI1;W%p>(-tf{M+?lVD6HPZV{~tFT%$rPFBLJl!b&Xn z<(zBi#JY&SRfTG?C4SVm18qfTmw@?C=_R+7F#J7(nY3g98&h?|F(JW4teJ5~4-~>& z;lgzIO-H%#l*%R&`y1|A#;1EAXKoY@?BEu2o}&dLRWEjGL}7fAyfawU5AE*8t98etpRClhqM9guz>7&~ zvDpG2{<@$Oyk>!XKMehQky9kb5;`OYHhRa;sH!#RJ_qR!Rgn%l z?2wf|SK}LzaCso1FOGDr1{7`Kw_)hzbYI%&5HBw(PyH}qQ3pk$-N1w2eq9tM{D{E9 zef#!RQ$x}5>Re`&8iHbFEbouDMl2)T3AU}G@3sh8N*DO$Kt`snUo?O$_|s&xJX4V$ z5OVr;{%w@F{Z%m&paevN_|Cu&Nr@L3Wj+JSg94|>Jg@w-Nj3Pp?nP26HRDC3r{XYt z<-Rncz#1p~FH*Uz9QfZ3lR26LegC1!a*BbDv{{!kk4mxPX`UDS7XL&k{d*bBd$B4! zHxyd)Sf%yn7-UG`YneHF4)M$6-xu#^{aq?gqzbp22o%QoE?SqOFYdowByE_hb(RiM z)HZP;@t;6iE$k)VKDo8|s5DF?{kMwP8(Vo6g!HefkKXE!|b zcX!tDka^c%x)jg77TyEQ958WWY%#U# zq&y3-Zplwh+PN7kB^nrP7B4c9ks`cx6(g--r=U;#b#jX`>AbG}%J!D00mNd8sh+;T zf4}IH^c!;Fc7joBQc;lDt)HUk3OU|<^Tkz-ZK>z{(PEVYFxL7fGtRArwSWZk+@vX9g}!ef6fUojM)=HPn$_TIZA`dvBLJjU>m(^px1*-&LsBvg~{yr^x3&Zd}+Cs)2_URTe& zNxitibAr_bbk9SmRdjJ+X!di-%!o4dOooG5@CEij3d?&}#SHf($>*DWEKP+@`h8^w z8V3mG{!gXmCU}#@90ng(aygpH&yRc$CxVlwk7u^7NYO#?88YK^eIfVO5BoSuAF`_g zr6qR>e z8@nV(IG+7AVm!Z2bEsMG$u1ypV1l)ZQxMf(hY2oO_%3cd8VaVDY;EKiu2D(D(+ACDNyv#8Rl#tXjmk zq&kdG4s2%C*f|)B00lVNIwq;0Lir*nI6L-d?+14pFU4iL-0?n^sJgSh3y`zQD)wZ=msm@HPzzXL($Rb-G+A@O#sflENOCz@&Oy&)sH@EHkWA`8>R^3;$#&G;!qgA+??M^veP57LjA|^tLf{*>kzXojd%9+2`RJJ4TfF|xs- z-T3#ni@=A&shw21x?nV}w*TN}HEwo`gVwsA{0@gGbK56N#J?_nCt`TjcP;TUX?@1- zDvn%N@ZSAOTQ%850Vp!X6*G&4e4D&6u+)8hf&pK8w#_n-m+q}^l`H~341GcexM?gI zgl}ETr?iV4@1vabVEf^BKE z>!_B=%yIyxjg1Xj?h`~-(km7Z1=aIP@T8DAn9dn2)8Gs=J}8Q0;`k^Lh+1nGIFlOw zOq@?eALA&!|Z?0wPDpo~X$RaQ_( zIe}J81@eOursF;@$Trh*_L;Et_;y*|o05#~pu003O?~he8ca;)l*>Dr{6Rty(!9br zOVf)|N+6ZKihv_dQdHI#NY?a$yDqDilgx3vt2A$=*fa-UD6&pEvSVm{{p-b=X7{1% zH!SHC@x#gfTW-m08Oy+QX)gL{%bKE)M+v?;En9kax(>>-IEVW%28bCMqjmKZxpj+% z&M^Y;_z40Yfu02f6L7yJ!}CPTU5Hw2+eRq|)UKLPRM2ewBi6e<9=S?`j3i0&d|8gt zI>nbOWYsPmU2i;;B7I_@Mf1KZl)b!XdwQmY=AtlXqVi3yCMdk3?Du>;ByS$4FsCD? zTwDIF(vRT5g~MGX`_+dfLmQ1U*f#sp&84$=fl|$Iw8}IisV1aBL`X1%j=7MG;2z5W6g{WTHtq3fCSlELgVdF+OhC4o|90UYhldQL6{T>|tFT<0<_o{yJ zTAF_c105ZbrX69F*RP6Bk~DX6sfa8xi91XBZyFol&8&nLdS!g}c4*a_ulgk>QjA zOcyG!Xl-^b&WsU=ngsR_Bdj>Vv-*Z!zF}1KW!a5GxmH3`Y${5F&EBf$O#X*Hc4yyS z@bC!4KCs_`Z!KY@ec=>_pP{fRUR8^VVWgvPXoDe2R?&1tCNH+>_fc6>!|8{iE>WxR z8kNI0N{70o(~}lz#X5mVsq~v6!fkP(p}`ar8(bowtqn5~=Fg(u5x(vhnia|)MFb2P zq*$k%!`@}4C0$Zzd;syoYud-|_sz~8f&!AL>1r62PGgur@6X?_uQHbDhaL$|z;si~ z2T*7oXvCW|4^#k+#^Uo1F#4x!M@1e$2kW(-v)zLI3-d!aonjuj^fwx^1>z3Eq~SWL zuN%Xf{#dp_Eou^bTYhv7{54!dAGX9~W}IDF&YiyV6uw5J0`xuWU}gb-{K(PJI)Z#q z4?0Hr0!@EWO0lsOALp;fUjxLG9ArpI{su9N%u(@@G-_vQUNL zNCDkeUEgb^(pTG}6Q?RaM81s?yIf~`Jx?3nu{^;^*V>_g0Mk8yE_|dq_&Bk}8I}r5 z1sA3PnLkT@TeD`@6{;n97?SW@?I>k5CNw+d){zD$mqZyM?+-er*c7)U-ci|>p5eK- z_1;|EhP~Ra>o+tv%Arpj+lY%2MhP@Oeb7a&rQQbJ^fcg7pIU7WPA<9P!&uP84;&Pg z97=mxhMo=3+>n2&x~6daP!!Jidnu9>Z8A8X^oO){V(l*?+G8`lFZM=M1s~hcjkXqD zVVND*t*&yS0{6B}9GUnx`!++BCtZAlc_1`02E-8*KxGJZF;!pc?SDfH@<+HFVaaN_H_hYp`Ru{viq%M9Z%PNV=VptP5!smD zB&Lm!8`(hPpePbuKA6(*L+CFg5S7gHV=9k-ol z%@&Tx4?pEoAj?Sw6a~mMMpd?!R&UozZQBjm4mco{hw`}J=_A0AldItw&v2S@_3cCx zMYYua#EFHD@SNmiLD&MGRJ7~npD`k#@;uks&Sa3+WXkmQ zK@JjXa8f1MnZds-j*YTeWX9_56$tqyFAWM0D^)ezkwNOY=-J&vU0H}P1KDE(85mb< z`SWPCnaC50VRXhA4Qx8wpK_5^4+G+PqGMi%XmP-N;l5WYtwQ{l%Iu%b^IJh38V8;t zIq-+md^w`&vRMxVWz+4#Rw~8SX+Xt!OtPQt!S>C(re3KK+rq>?2YjS0n;Gcv0(^Ql zPwtDkZ)uk9$3+wA5#-}z>E@f*c$3rg@=z$zPw_(vBuj`986#_4aWR1$xh>C$_jxvb z>xG8C$j3d$h+|j6#j{%id)r!Ew1N{^vxj-0?f2IdPyb`3Mn%ejv+vW?&9Asu+*?;2 z1>01~Ec+e^4Lz-;ywbjsXc{-V2PAebjnFenkN9JTEajyE7Q|55VYAa3HZ`TpR%}T1 z423esp^~80_FO?aXSw+AoxA>C#asH)=*y@`7?9;-uYtK4;3b*}Hza7^7YB)kDS}P0 z_Bo6kaR13P2VVV0cYlYz+x2d2x_xIL2~6To3z_ zzkMv7q9BPBYhp5rHxQO;?+HA>Iv?<}Ip?f7=8|9ADHiuk78i;X3llCHFE)Jb3?~Ax zsVg2lTYOrQ-5g}ExhKGhcn{^ISw;selao{SXPJl=?rAN$sEC}MZi_B0qU7HE@BXip zH54t%=su%8ob^91oq(T2qH@4R`+n>at@K_^UNj+|4F=7X17J>_)XAf6oaNU(wnLko zY$@9{yv6EmcK-H=M5*RW?oH<|#OSDnW1okNv_{9cpXSM8Ewquya1~%?V~vaz1q4L0HjTbi{8xlP0qta0Vfs1 zN0z*7gZO+x2YRzd>>L6-hs-|pWR3`=!W+7sbx)2*0o+O;Tl`6*TUPq%a6X&lWkI%^!eo3}+LB6eQ6+)=R% z^J6%%PEf+bFzsqJ%$aO$6w%7erLWQGy6kk0es1bVTkjbBra*L`rEzhbzyxq7th#W3 z3U%)i9iADCRcwre&DLoZwgP@?{+AFr^#7A6+s(QRZW!U@@Q~Jue9Fwo2j;`?WH4vL zCl)HPrH_y*bIvMX+N(U9E58V43<;w@*NMH!Rqk6hj5=h`mbIA^xE1z{+{D+&?ER>Z z6p4K`^>M+;BwJ_oKDH3jDGUI8aT9ng165?fRjiFlDED39 z(=lf;lc1AGRG;R&sb8QpHWA`_JmN3)Z`yTtszVjEmFk}gflg$B56`%t#3afDh1O{u zkE#7~1-c&bf{K}L+~(;THK{L)yPh0ORMk$->oiSES z9Zv#vB%3uSQq?qMP{m(}a8OkZMNPXOc?<+5~}^*Zg;%^mG)rgcGG* z5avw%Q?S6wcV3muP3D{XC_4l(iA;M-Wc6d`!|q{JyRo=K#)Ll+ZD15Z`ZElge8+^o>} z53QcF&OyhAL%fOH!Sp8zK2jif@5gp;Vt<1=>?f&+2nP(uW9N7ulh9L=E4wIyo(_C< zq?;GscKFIaw6<>|rwbVW(3=0DO-I&#Hu)*>IQEo0FyejntfoK-9&4`I`N*xdgkt`7 z)phnu+*#mLNUZ0t$k`0FLL%;#eKpQ6H**gI^8PnfoYnvthleii(JM z?0?FNtl2#Z8zBR&osB)EHFyOHET+>s-J0Ify?^Q-7B6&52TM^Bge}wmG13wA%`5qv zjw=|8{E$y=(&D*Rhw&tHvpFm8{hcg!1w}+v_5U<*^$$(r1R`;>c1ItQTP8x6sn)uE zUv`R{Lv`Znw6sHbmA@WwfhLwwn7oCnCvff8RpB%^eI$`{iVeJy{)aZer4p!qA#XAC z5A7KLTr;(!x993616AR&{6pIucIDl1ksClL5d5a*CQ{ns2QHIlxqVgps)VV6dMm3K zsYAm0WhRLWBVAg});j9i2am^=ST-Cst($c^m9cM@1|7O`{pcGx*Zh+R7*IZQZY^>Q zpZu{sKdcv*7UK2OCBReJ61-Nkj3JB!AQe?iT6v=H=rH&fFd2`t?|=Rfmv_IgcFhgf zX-<=s`g378CB62e!Rsc1weILmnJ#B-rAZFcG7hWar#s>2O{{EC8o0rnaOCz-TF?87 zS=Pi5#QWk#InN{`0y`E?t-p|PulIXz_;mRUK#B9a*s|grEWjg26@z=nI1)O0!Ut~d z{lv$LGR?@T7`hH2mlzB@#$C-OsqM$EvrK{w6yb8 z{>2td0K?`LxpEA&tQH1d7-;_JnTQ|5@iJb`o&DBboOs^9wQn@)$8{%$8cqkBxc^^x z!Ia=N{B*`ee^HI?WEqK-|5`TE;J=spXOrbhj2`KHjCt(mYz}L%D23IJn>6ztIto`` zS-56j)`y&l5aC@Ukmvor;R`ua+lkR0MCv7{`NOYe1a};@g7}Fq>;uxyGo-_t(z7U#YGcol`5Dqc~5RdcNCrZjpL#86FFA@L$mwe8!sq4xjs<*bd<3S&b zm$QZpj*Xqicw875?%W>@@zg|{OdaygIo|yOP#$^AkXQb{tE0tjw8nKk#DOrICWT?;XN+;{X>h7jkT;@)HTq38ccX-?Dr*iN}qowvBHY+5EOkg z5xlM480f6<1S%Z!X*FUI5Jh5H~^>y#T|pdA9Jb|Iq1jm?V51H6bDt7c4jnB2EzkX zoD<;Qa`0bb{OmfC;MxNai?#ad#@4 z2{373Mz2_^-97Pt!e04$k_qEU=VQHl2Sg|#i_u%??N2z-bIca{xVZj&Dhn`$igxe?$hwlwELsdCOZ z5r!ZJgN`m-c#cd4Y>U6hz}U4tR#2onu~*mTbGoHH^R2AnCycxasCOL=d4Qfv7F0PJt6s8)%;EF-v7x`$kP2-$eg#+}x zNq56uYAxr{(1GYmC3TsV^cCPu-BIpt`O*{4z(Da@hSpFlOJb^MaGosrcb68r6t z!+|MP8TrYBW6DzcBAZ;8GH)zLfZ|rl{i#u#DMiZgU5()2&6`j5<_IvyePuh}j}yK> zH0O|E41GZoLcvx$t?4ds(W-{{)d*V#r|NKvr{Wf7s|bv;;U)8PAw05~%v&je72I_*>3x1KhC&u&icS1?kmnTwnU>6B8B_V}#x^@;r*y{_{| zSwiMd{>u`g-oVhyf=vSaqDV#4KfE0IJ4u*_X$2>}-~AhZ@!6_1l(eawIo-ZqhJab) z4F|eG_vAWeQzHAb&WI^J$=A2A%m>mPt!ku7D6cQZI_baz`B%FN9XlxTJFPykodny- z)2$c-kY=D>$(J^NzR+i9_8%X|M!C-|qp zIKrXjGpK5$hVInFz&ABZZnuiZlG>#_9r|kCNwt+a03BF#@T}8<65T89Sm;>tVv+odclUj7 zal9;16A1!+m*|6Pb>}JzZNz~z6b>h(v!eVgrR$D=rj?nwq{q*FbtmrWTciIL)Yob+ zHRiy%3uQL=z!J9y`*N6!7I!7kLk?RX6C&^yO6DH7D~M5OZ=b7@QI| z-AJw9Pv~hd?a3+t=pW;PDg{5xjrje@vwfv%*4hUAbH)On*#24&R(Wq^SXiJ)DqV9j zaR#eKorD5KrO_rWLiICJpbn?dd@wy1DhJ{JRPbP)m z+tLb=ZxzFMk7h|}W_h^PyXTn6+8VJetZ&$T2;}GI#5+iQ)e}$t3{ts8Oh8aL+PhChw#+RLppEu38TqhoA7NkSn}r;fD6=0*bS zU@aCc+6GOAu*BYcx<0>4;e3mD&vw|le_n!hMrd31t1!-11LaHw#g^I{@)x^DJC21l zWVLV5VOrl_|0)DQM6|tN)2yo3Q7QiRRQ{eK1P9T^I`O$KWe#GL9H2vI)WXYlL(9kYz~^}&Ly?wc<(m*ZnNa1LpY)wGOc+knLp+& z{1xr|!E|0~jQ;TJ0)QY;wRUr}t~raxj@n8Ye>I>MEdPhwF^SFqXtVSFwYqA!{$97J z=(Kmzx%=8!8gyAjxD?a6^y4iQcVRjgiE79CNu1saENAu{%x27%vgcD#Pq?g%j_7E% zY1SF)4>7wDjzp%1mJ$v?sYdFX9r9;ndWLpxrNu}WV5p&7ouh|`YH7rmW{Wtq01b+^ zS5G86kTqFInK5?*#&jkv|8c{YraDm!sp+E)dBvjl{s_KBJe3p;&A%Lm!!2U=Ii)Wh zeG(jH{F05)nN2RKTvJ=c1~}SC*cci`#3CI`o?KZfo&P4WjBNZOM=XEL@=QiO~s|0pwOH|TSEW}#2o3@CM9Rvlyr zY0}9?HO0pkt)E2)Y9aAoq*u! zqX_poHrr>Y@C=E%^3w2=8To#yhpq~1rV{+^`R2=#C>t#1635@Coi>y}q zEj4+nKIroJwPn6eK1y~KubFGu7|>sM**ULiXbpyLIN(e=R99_wc_NGWIvK4Q_ZvRV z66hS-+8TNj@Ulp<#lup?GTz&7L>OsbqbQ-;$CkP$TzIYP@vTQv>(wuJDM=#PB{WMJ zRgHsE(N%MRzd%`;e+5qLST%4(&p;_vdB5mT3`N3LIeXrZ=~qKB3YNm5O^F!ZtV%$~ zEw{he_ixm7CODf?^L6pojTP72>}C}m>lP+`*l~s38^l?|nCx4OU2SswD$CCSKs_hc zeYcPMz;FPsCP7s`n@gjp`gJ}2TNf>1Hn{Bt;ua{4gkYzO%_@j*BUyJWn}lg ziP*A5Ub00+!Zvw_!->rYM%;`}`v|Kfx4;mm`X@*s;;OD&Vbws#Mh~Uf%ybWcz8|6` z4I#KUty}x6to?O6V&K#5)CJz#nv4tqOG;h&>wZw@1gRCx8?{4CA|@-Fmw#_SF=_rW zn=VK&mcH#l9S4bh@m1X`wT z9ai-5pTXu%vn2Al4ZWp~R{I?AfA(9XrOT}IKKEP8Nw=9o#cjD=k?ZTOaBrL4 zfX8zuNR9sU3CLVbngn~9&TJ$f@x~S(G3I{0&krCg6YWg;-}{d|RdiR%VRL@av68iZ zxcKZm)D-Fi|9xWgC%1~{m*o56#hzDe#|^vL53S8=7X@(ZoL91yQgW+Y$Uxyjme6Oh zOkB^};U}9cr0M=!? z)}ck0O5=M-OP%3q(crjm7_!$?OtR?3^tLl^6j54#HoGQngj32A@8Q=eG;5A>=TQF9 zY~lZ!QI_H8@09>qVbuUGK$^8VVP0T#KzT1=tP6{am}pdhf$*sTXx%Hn9&*W2OwgR` zBW`v|o!y$xpw>gmBxk4(jbL>WqZf)}WlKBE#bp=Nm);(4eh)?m0;51$bqJplVC3oh zLGJPe20_Ng?}nbM^}vT}2vW^H6bioLFz`IF)?rzvIoUM-D3Vg^Wu2q8TzWdvL z2GzGx8hN)=ZtqTOubQZ?pss-qplXUspin-kji=zVBBEU8NaL`vG27_3-pwuhRm!Od zDv`3rRjC_N0;$7>iLEF93<(eD$%QdUI(lM}?q|(hop@k$KfJSK^}y}{T_A<+W_*@h z*#{Kgy|X1(9^$yOLqQ@ALV$ooA)A8!f_Vh2rS%d5b_Q$ z)7xmNi<31^41y}~Z^lFrN-5InVhcYPc|V8ioA15*6;N#2pR63*lZ~8UlZGQR+QD1V zU?218poy16`YbNb`2W&=vWv+WP%gG-s1g3KwIkF!-{h}a<(O~K+sH6F(s9tN>mN{P z7J_)*Wt2St*e{fZVL4%hr}TRdiR@-VZq;%*LzsjVuLi2D9|h^L);+OobqKoohP``L zIgiS3YOf9?EYJ285_>8D%yjw%B16t$xD&F#R-o(vIxrRNIz^w?yf8-JByRu)d@w%)@c-az%e@QgrO6 z7{;hPZ>g%YHWVT!4)CxS=SqrDd%^Z`u`~3lgCc9Y?AyU^whZX#>KoBM`1=vh?;S;y zy*X+6(Z6}s<_o}BU#oYyI|vQ;{FqA8>+LXocw!%w_F%S(f)Wx<=Sv;Fn9jJUgwWc8 z3a7M%js4nSfy3PtB3zBdohmokCpUv9)LuAUWCrB|4c@r*;yU=%2Km+Q@LjG*gi}{S zUC+bE(vxHYb8is^ajtLkhGm4n6vw>ww<=#Iw}BuPv7cME5?m_c-sRYE&6OQ9{E#oI zw1F(4mx?Z7#8ZEhJ^IaAI4Gipbf|o#s3r=hRg_&Z1t92su`kGP6BR|$=5+6syxy=i z3O>0Sd6oZl@=iRFU=gdfxV|JIbyN)lASyjY?A6u0`&^&V_;mqX=j9XEvr5#;^byG; zEt%pQp7;*AUz3I!bT!YSTai>^;%Mutc3ZDj8jABSLft*aUvC=np5i?YVHUhx#-2UJD| z2iL@osmo;R_9pF5#~!?{D8q}>`=r>!e^fzXr_l=qxb_d}?XzPm1`LbFDU_;YGfR7W zKl>ee&a}HD8RItM$j*FYNF|nds~yHFRGtw=J2TEaB>f)d<}0M0rGIEmCL8oxgB4wY z6>}PMuX4%i-uV3vEK#4i+Ip?j=QJv6RP8RQ=e1T(e$%wRj9E)DvF``~RUSzAskeW* z)a*>Qe19%fm&9s~Cy{m=5q>iK9mk^%pN}<@U4nabl%cWQV4$`JEyp&O8Ke|Z#mO7i zn(7t2@oxK=(tmVC(30bIY8vKcHMcgDvecBOA&;fe5JJ}_JNf!|As2Ua8dKOP*+lMb z%H&Wz??{O@V4IP612e#*TF}TkjL4}nuab2-DX(PBhFk{e(ynN8zI*@n^Q6%bhu32$_m1bj1@&&aXl;6{ zucB5pOMjl1i)hU@MzTAv?@?E0dl|ZI5@w%8>Her&+lqbhJ1XYW3gR@~6uOii`B`A4 z*(b~P=DxG%1qDmVq!qDaV(t(95^)6K6^+++sJ{`zZ&U>2`8 z6^AW)Eo6yR|Mt99VtGg{k{G!u8lqYnUO0_a;OZ40^U7hO2zW#Wyr=x??mj;P=~~{R z#uk4oS_8MZ8-873-eyoK`B+h5z2Zp2lGAhFH37v9d8Wc56V!TkbTv?kta*EmAC zqggVXdq2{TtTvPeY1?i-4*4GOx$00nt{PtdQu^-+Sn}^np8rdq`j4is@=ZlIyZp8v z_2tB1fQ&_|31LwBM#DQvc(#==@AKB2H0xK`A0V+poeYUxW8{r9Sj-{Fq1C;!ybeW- zl|K{1{avq#exj)Ic!(lnE5k5L^vvFzxWY7>w@J-J#bS!VNX%jFWC|7MT~;EELQOIO z(Z2xsFrr&mhEb}%R=g8WO&Gv9Fp~R?eTm56n`aQ@q9hD#5{UVy0QL>YhbeueWReHTa7%WXhl6#+(@k>IQF7T%qh7-mUX9?A4!!;*y@xW5O5<2I%X|Gp(7&L@Z z&v4lW(%=1cbp;{hNciMI`A9Bx_5obbV|6uk^kQ_H<_d}Lwcrt5it-n-;og@KPvooK zP_o15wZcQl%b1KD*7l8PsWQKfI zn*t~In_^BH3ik@8IKNrHk6-un4UMHd+}4MO;hE;YTg3gJ>;8Zc=foZ#8mKhz8rw(! z{nXFf`05c;e5?tokm8S~-*AeslDLG(H)Kn~$M(?q@?Vo2- zBNqo(qvULyi(pV<1 zaHRVk*|MM7bJWgcMWi1>Oksl7-C`r`i9CTi7+AZ4HIGVM4&!vK>lrD z!6fU%HobUqgPn;p1<%CI>v(v;*xu=rWFsH)(Oa{5{YWZxAdMW|1@5h7=Z)bX_@;@@ zp)R_k$j{o|+BR^fRl-^1Gy3qW36$vfL!2AJeEjaJ#itqSA9}D6FnS*Xg@EkrDn;Md zHV{JduQs}ZUIi(Bdhwv^{zE5CuOtu5y9;99_gJf18I%pedZ2E)OCi!zY5@=!H-V5w zjVWS8Xu5dXscDwap>xGf6?TYs6rW!t(PsV2)iMPk014B z1;n2P*Q)p!<)FW7|2z$c+Mx&xoi7gD{g;@XPI1(xn|8-oP+U9YP2u{@NHnLj=p-J+ z5{WF;D*Q0b05tuW-`ZlP(J*D-t6CJfES{QX9n3YwkQ{Qb-oi?c()X>fV4Z!yO~6^a z;Nqy{n)p*Vebt;P6IQd-Yj8GSu#CDFysHTWy89-Ip>#7sv^o%VI*rn{t zAaS{Sz1wI1X8o0Jz0csa{!8TZ88mn8S2jWtZwwe3s^c1bVOyJ9KS3TACy&=Q^!^9u zMmOy6yF)?!9*kfdVTQH(vEwj4cVY@<5;ZtDI9)Bh&~_#f#!UP5|F-9p`2t5QVb;a} z$;-6T>#?aQZ2vHQV~U5BO_pLwBO+sSLO&J_9YYs{o?g(p#7*Iv5ZFqkxe!Ra&2&A%Z#Lb5ng44mMop; zjTHSmZSBO0^;QkzehB+ZS>%D}YtD*)hkvgYNPHtJK=HQ36{_#c7XsjeA4k?ypKoTi zk#JN4vzs5?w@8H=y|oIEc3FHb2o#hlk@6g4gfWIu)@<~Hk^m-{CdIj9d2co&LPnrX1rg)|676kUv=02>Ja}c z$5pPLR9dWuX~WIJFde|B`xmLs3%#$z&(&S8YAk<}`H|up{ZcDl0&7yNnKG6#T%s4s z%R=ZFOVVwA4IWm-U#Q%}I{za;?*IF!)S>o*kW0}h{>j8AeNzZkT)r3BX5h?^d!mkLbVJJt4~~tfa|K;bL5^)M@}iA;L6bB zNpSGTZv%5c8Ci3Vry9bM>}fV(-%18H62hMzA)XI}`0ax6;wywFCp?<~Q3#-0nz6b{ z@_kSD5zc}`ZHRtd@hltD6Ll#JmOp$>28E5iYv~>7M_L{HAx`3J@nK}L1z|00ERq%} zFpnB0BJ;5P@9>-$Jl4fhjJrBeSL%}{EkrqZmz+XK??6nL=T3gd3t0dlRHr9UV_Bd^ zq!MB0p6YWwclm?MnJyXxL1eLHm`sD%fYeKS$BgLqtznAi-F=9E+%>ajrYd% zYhAxOglms+_{wWL3APnnU2)AAC!#13*Do?kzsNeIM4Yd4qstr*WmWPQoP!D{nv*Ma zbPr|6miI6Io)mp@6l#=zku%?ceSvIN)v?Q3xzQb)Z+PM*v)Aw z1Gi9yRwm+TeG_3O90wt2@GrJ7lHb(q0Mt#B2e$|t-x=4|LToteeV>%hXX$1TU7jx0 zKD^XPXwa|I7Rw!1n|YI=;Qx7tde``uTqN{3(2`slUaW_t_XV)e!^u61wnZ7Gou)Op zzC{`WuEW?wf@3zf3+Jbn8DNu6O$@l|w`)PeW~`ZBA*I(k?Jvv~&2k&G4pK0i@f!r5 zWA}%z8w)}>Bsph$jnZ?%k>Q}2o;*iA@+3}o6DNgh4*iKJ0|Y6C=mzFyt1pq5DOt$G zb2mR&=BxBtJ%8_whBD={)9fL6tE$;UT2t%=7J?*)Wi8(1dRIpunD^-Aq6_7pfOn=e zeT#adw<5;FZEvdl96{T#7pWp*CExspL`=#z`o)Bif-iGk%4BdRmQW;bS0)x*m zrBnl?UUfC@>xZq6;d{}MADGfslz}`qN5G6<=V^2BTxkm10UkJJp(3Fiv{>0CdbeR- zQ+-6fHOSkSPz&tDTTQ1F+jRDvc<|y0?22}E)*!v?rrB@{Zuuj_!RaixX_qEFTX4_1 zSHJAW8^7Uf?N+=u+ql|+HRne1(_d?rxuEb*>y?(eLI;f6s$vmA-)kJpS#oR~_sz^8 z27H+kLYuvp35_@92bS7Yl*mtewX-a#S9OMro9{f){bs#6W4}?~OO`^bq;C%@Bi&oE zj@pz)pNm>TIViXPzRSs-EqBxV>e`N<)o?%i_u&9)p74JAk?SJ8UDE;bNO3{ScJ^i~ z*7b2P{pvDW2OZ}!L&vh>R4GM<=8UNFR1p%L|6mM93=+|vmrbhk#_|Uj14S@uSVwN)6gofUJ`1=@l3)yF6_bmD?iJph zgdn<7z1>SMh@oJSry4-$LOh=R7E6YBlY<0q(b6 zYg9ui>FWYDcjB#S>`XatXN;?jNmUF-VT zcY_Uq2Z{MC^(7)vQLJf`W;T`*L9C)kv!A+E1E~88ILVF*Ta1UCupoTU+`#-2O)9ZP z{?>#3M9`YeV(6=1dXoKcxaZa?Mm?YhBk@bTg=3n*2)X6Sd)1P7x8K=b_sV8&yrRK# zRfAgRvFG*K1xdG{?v#|2bqciyxE0q%zO(kUy$x5C6^r)UgR%E{;frQm11?t^3Jmth zFQ-@Hc3cBJl*8COB?DkeeqqCOXmg-A(H*FlfZI)RhJZEfn!;MxQTCb8Ym@KH*=57} z_Ut(taj54rcBPpoM+Ks@w6EuZwQ)Y+xS5Ic0GR-bw29Y0&=f66==^S3VY-jDlgsoX zY(3E{DmQf8PqLn9RD??(cv~Sosb!2VWcn|U)R&ikza-9LU6NEZ$sSwWOnU>EUtq<& zWvQb=-s$npeZ<%bt~{;in4x|*&+y`ZJdopm6g|RE?|o5YH<%2Efgu~G5La}aBK6oU z=Miy?aZLHUsGXD1I9@I+t}Ot4xukYn|1pImS4hjvehRWL!BdpM1pj9k z4fm-lsh&u%@|d)-(3d;o2-XE_ zX0!LiaMvz|s=;$oqYvtfxQ%)D!r-L`yPisl7nfJFW_tFICR(Pjc$x13*v-W%UYc-V zK{_1zlX_Ovo>ALVG?wX0;;C|baEH(y zHB{}Lb85?@{F6F{l;<@4)qG$bdkR;XhLFl%34bh?mIK_8^-mU%4ke8`ll1WjgN)Mc=Am~V z5`wDH9%$cZTC6sZLW+%$Aw3s{T*&-JwPZ@lfam;Uvy(O|tJ68c;6rL=_SsV*5 zySL^avx!ccUh?(!e_Og__37#B3MQ=M_tvekoas6YS)f5}3I)bo9yZDt= z-$*3n`wQpus;wZ-CaJ9NasrRYVae}0 zmRS~GZSySKPI_*4hKsnq9_Y{PHH5TphK^i3z6#>p^ErNX2=WqnV*7$VpC;NCU#^`> z;u~Xv*mOX}Iu+Yy!l`+XyA```wOQK7gOurl}S8dd#fyyle;Xm4j}xbXzX}Gev$cb`&TA62Ndtfr zlV*PxKg%c)&e|Ho;`(GboV1(u$~I%a>AF8X#yEdcMr3O*iMK*%g!4P3?siaj>-1jV z?;~D|oOt9yqk>tI#yFfKb75un<)l zNXHtZJ4z$A8G)D>6m=se=|G!C7*tcGj^s(}9X1h=+cNPSqUOafBFLcq@j*phS-8nx zA(?jc1f<`KSyC;La1=*`llVmfX>`qU34fGTnE~-JnCp zc!U@opWwB@v8@x}yEJUAbq6i0e7>)|UPXBNNm9y;_OkDeF>SkEDa`b6?p{bPj3s+1 zr<>(kkzZuJCx0q{VD-88!Q)HDF0y`?vDL(TW}=TLG?l@St2mcegGFql&P|2E$J|c< z=QsRU>vHQ)-z`{eQp|5$QFq2^dRkV1*>FnIGxOhMO`oc63vOwy-;;2vW%Sm5apvf;AD-n62XB7Az$=zG}f<{ zrkNVhWR13RO&PP*-r{Gg`|E{0Wo2^FcOgz}`zl(0^8LjD&w_4ohVh}Pc!ouMZ!i0< zI{QH@b;fFqgFwK^R89h{bU+SNJSZ%JZquX(Mr05|QJlu=U{DX)4;&Vs#?%3I58HKt z?^y$Y@JE{$yOmJ^>9`sqyG4<-PxV%sZow>Z<_SB+(4IFF=C)x{G?T(};Uzm7#bZ?# zPdkm>6kVU$K2j8{4!+?wjr}#Tv5;)Vt=kMI{fs@ZnEfNcOiB7<-Vj(8Gku}wHn-U+ zLg$200_|nx>aqTQS|FJgBjIlPY@2f{ z{aX@M@Z;D!^?Ie-CiQT@jW>y68tVnJ&h*1U+2O)AXT!`()oLP24%^7^#|evR#&>?! zTn|H1?#dn3Y%idrC*hN4N!*UW-`sIK1!ogYJxmV-ucYtCMiym)tDHytz`5K~qI>=? z@x2#`y~j9xWYAQ&Y4&xiA5GLd*@(`rn6k@XjY#iFZF|81B8u3o_p5jM@Cw8^Sh-?E`q19KKyvHH^ui8857iD{uY(ebx z9fCWag)BsQJ6Dw$7p+ZyGm|$jC}ta4=i=X%=l6*3UhXvp6FO?Skn!{7sUR6_4Hgr` z3?o>eNwh?2-RB1+AP{}G(7^dz7J7hPo`8M9b)xH%4#o#V;bVQfspJ0X-o(LED#g4Rw_GHy22|ffEnX8l8d~H$SN`&9?rK9I1=b$TXF8E_u?;03iPBVU1s#nc+wEb6twrz zg*3Z_F=Ow>;GA;jTwQddz<7GCrMw|<`nyfiMbdK(4Rxzsq9Y`^2-$vfO%=w+Z23>? z^zxDY>{JO=964%-X0(O6`RJ#G?(OLI+o#Uv)zMy#+a_kRj{fAE|6l}ujmOb2kmb5) zXD+d4{_X*l17^{mz=F_vc)(&NQUtJ}wXFLM!b3gx zykK^i|JXr})wDGLlR?16eC>2&*82?f*`A%0=Or4E&49DmDuyOUFF;d}s0HV$urcXa zp8Ry%mwVcgCpW;V4SvcoP=kuq>l=(B_T}YER30+G_FpYKBi1i0XV$*~D$H|yw1!Wc zEJl?F=S17`N#YDlOGYcg3PY9T`QSU%`e0ICf5+wi5~&2D8+hnhKHtM|%z|Hrd7fQ7 zc@4O>)zH8_s70-Fm`cysSJ|Yy1{8+KWmeiX<%SY~&kN9Ubhrnv+91Ugp87mjjIZZ(ZhDsx>o;=p#1uEJ!SXm>fo6B@gl1HIPKulD z2X7)eiQFX2fj7t7{s`v#6+|f{76G8%oih$INlZ(%YBK3{yE3>xIC&aC?N|*2BaKRk zc9pyQ8#dQh0R?sOf|=F&@LOWxq>TFSaoFKr3#euGG{1HRJ7}8vUYo3L4=Wc?c^A$+ zkyPdREla7)ABwtQpI-%*;Rss_u_dU1i{?{liJ_8uH#1}=1-t742)la+k@m|eL|dSg zMjJ)MQ4Fyp_g1HDWZz?1h7VpYp~hF>WTVbg|7X6lIi! zP;B6Bn7{B4y|iuo2U+t8h-Lq5SL~PFuacTe27x68uB#=z7}_b~J;!q7nX+59W>yE7 zSuaG}AV#`MF$k*&b~>yy4Zk{0!ZVDoHzP`jA?Hg(h1+I-Y>=%Hw%*ZX6+5ZM_b^^K zU$=%ifj~WwaIKZaxr~RxGS0nNIyC*YF_d=`Nrwa^k3)}cWc0kMJfhI99L7G=z zx=FfM9e`>YUuVTL6>C?TWz#^-O(D&AvxooLuO2Tkgig_*p$&JWgN>m0naP|m8w(T& z#JSwkjtK;tOw0qPzrhR0)kQHr{-o@B?IaY43J_E1yNKaUnxl=b0i}JR(zE!k8#T$z zP7(B59bh}64oX@!hO+ndb)E2Noh&3))4c|sD2s@J@945#nV0%I=X&gAp}@ADj+5n_ zw6F>$!sT(CzOL8%JTeo`wZl9f%0sPIh?~%q%C+uUo$V8BabaG`wKjcZPwAi1wLy%+ z4YXd8=R;p+YVPk7Z@ht4U84#Ot5yxs5!?C9g&G38yv+Y1NqAQ&Ixh&aO)!$qHkrr$R**u9@b zCaQ*n8hm{C$}H@=d;aTWQFw- z*e7ZP<7?o&5QXZ`0MTs>_3^mOC2)qeDX%ul);2|;;u&%q7P8h#j=y+=*Hxp9?ufF_ zsxGhyRvpo$rziVa15Ju_9nA;6&92k{e{n4aH-MS&;=ex1xQ{UjI@cRdewg~ixIR!2 zfy2-}>|H4Ut$|Cjd%xlxS(cv8}EULF<^jY`O{f z6@y$IBNfZ~9TEU3)YjA-RM)r72~xLeN>2CXHYIqq%8jwazA)SG%*lyO)JaW-yuts< z`XQb^KwYO)ue=5z%&gJF^0OF_>|2t>z6GhW7evxq@ttpLO-iZ% zlt|p?N%o1sF7m2`Ip@&k+7wue$pGuTSf8SwK@kf-IPs$dujmA$ZRdcR4mQX3Q+fJg zRjuX}n3V`EW=L_yyO^8}`#`!@AX;Q&c2-c}u!Ia>_`m>82!~~wE`Yp~ zfC=|WNN`itgw`Qh2TAshO|tt|?HB!Zv$)e#WiEF;=@cJ$O%7&rlSIV60AASE zYx_{UXhnK3aF|deB^gA`w#(RLDHSw#N0;f(%xh~BUxhl{0FHM**^m1D@Vx_kCT03B~%`(STl|rgzU+(3>h9xb5V^VH1f`#*sjcDS6 zc;Xe+4Mu{j#75%THI|knq)Aj+B@i>LcJ5$7ckas#OdG=BC?{6G#4g{cCw^>b4KtW9 zyGYI-*?bh-ktB5A)oLFobdj4)rfvuu`uy-7cUSh;01(1Kb0n5DNVb%G)yW?_pbP_v z4M0E94i?OLw}>v8xN#|EsOo1BP&M6iMZ^!#41<^jQL}O3hKoms#MeF_7F^l7zuz6rlAx&?Y3ApE90pem1$Fom^VedM%rJJ~`TE)ep44! z6B~)hU!@#)RxiOUi{W)5i0l*6zzi8AJ3$`0MlU=LNq_$bLrTwSHfm#Y_S;~Kgyf00 z)dbaDeRHNI6FiUN@< zkTr=Il);q`P>&5<+m=278Lt9paLfl@4i60DZ&=09vwvDl5`Hq6VJX+dY@Qd14Y(F4 z!=|8j)Zdl#EGbj2D{Z`V!6KU>7KN~0?n8s^pc{toyHx~nOuU>>-P1$i&bD+w)1oe=h7D;Zw5^mbU!675UzBg9Pt)f6WbXt)qKwH0Sh zl+1O{DXd{jQK0cZnb;wxlf*+-bRAu_tuiWb3=uX^@*5(ow*+6+{_=e0%lD!+gS~qd zV<>PY$M2p&!cS>uAcV9U1XIzTm&Od50F!;0#g>3_Y)m6wlk+K z^uJGdqMZ(w+!by4s0>fdRLes*zCE+k`QKs<<`+;`G4~;&ccmbsnIFBca-zx(0eiMw z)^C|_3JR~rNrZn?Z8DO4grmL}WMB@b zVl9U$iVMf`QJ#^I1K-{=X1{O=`XSpsXkb`x3JeS+4Os&}&mYI~m|)-ew+H_}>i?=K zU#pfGdut;z<)Vt+Mf_~m2tCL>CUyc-zTVHKu`EYWR zG^Q-&zpm8o_827&tPO3zXC=>4)4^+-$mkyn;(c$XW#j$sm;L#XK}X8ROUV9|n;ou~ z>uU2RO7>+Bx36vKfJUrT3CUg)kVmn7Ue&-)1z5y>A)C+MgR1Q!bg8RVLULa-hv z91F}7DgDWaxmA5}{oyzF9wKkuS$4vrOz))u93QQ`v|x9>v>Xk- zbgt1v3WSfez7`mt<5auu|A}{_(4RtV6dn5PPp+F+w^v@P6 z_;~?RX$f2Zx|Jo=i_>O%UA=V;wsa(>=u@5S;B01Ged=C)9i;54DOpr#&J1dDs+b{R z!fkjfH}S4W3lUWLx-{k*`(Ojx5*(P|K(-qWF%vE3FTzoHmGnq733fj4E)2CVUN zY%_#*s518R8#ZwEDs%RW90saw>xnyR*3+G*#|)tAip@bhhsD9|30j|TzHCY9I|7lw zQi^`F^%*YR6?qw%7Q%&}m{nwU@jy3MnmSFyaQU91K5xE@_l~nOZZB?6aYoIgwtgW* zrAWNsY4nI}Hk9>V=~3eL%l#p3)j2}EpUgmlr=&Y@`KnLb$<-<*1KP)*b??I4Ublvi z7!Xn`5~vU+1T8g3EKdZX&xK0nX(_wRN~bM*(XzlJ$;0W-qm{261jY)dLC(8_(^EP?67%(h)j5 zb(z=f{VW&jv@)+`JaQ&%JhX?fI)o194!Cjtp8fu}o-pb%M4kbMPnN!9+ho(mu7&wh zGI_;>BoP1bNHGAvk$TqyrJ7Q{RvTuoB?FnSgG_B_X)c{D-ThyQc4LPHn+O+wB7pFq?*IZ9Z4`cn6j3qm<>T~pbtL>Pnwrz!Q^pAF%; zn3xwxHav%nV?0;ip`hUg^nQA=B#qzAsZEW;^ zwX-O(X=h*?&ht8-sfeyvi<$N1z-9?TQ`WT|!K=hd-$kDI3q#f;tin>&oB3sTXYv>t z(r@A`CvkZ4eAoJp4bHKux}5t-&p5-CebV#B-ck67jjvHkb~?|sOud-1eiIznJ3@2byn7nuqyy~v>?Jwc*K0-a@rh@B$dfk79 zF4q=H_hu6!m@e!@ry}&gxo@e;$ZzW~=E=c%d~Gjs$nS;n!*V=Yi1mzI4Bk=c3AS-O zx26dz^^Zdln9BnpKMv9f->A)ESyuqK1slv*j=2$wTzXSR$-2ESjskI4=(J@A{om?K z9S(80cPlMspC*@G!IeY&7um}`br+a+dvlJ zxK<8>qzrlA20d=yKw>sS0zzBf;?Uo2g>!8PI(h$e<0g>|GiemNojbTma$@iK+;)l} z%PVB*mI)M}z=Xnc$I+PstT-NCUYtEnQb8JP^9v*+lq6ot^Y#G3FPtJiH)o@j7h&m( znKo@8|E5|vWOzihECiOtWv~eVVC&X=_-}{(f1CsVwZTGL`RBwS69Q5!J(NYuU+JgV zYMU2E{#Gv-3~s+}E(K>*i$3M@djW*&i^N&MYW)nITkiy0uoM1pWt~m zB~n**t*R?0Z7=Y(n*AW2u4^u8wngNb>EEITM#d5LCf~|w9;`q1e zPCKniKcd!dCd5?fBO{`9Z!$zW4=91gT&V-MEMj78`VL=y%Ka(Zi%Uui4AsZ{#9wvi zecc`}8xj;sEA#yCc)#%Ytz?i0p4^KU&#*^wAsAB{F{Qgwd{o7pSVvaq< za;wzOJ?P9J4zjt_QW%poj!x#S?}xbOV-}l%CW8D5u48l0ja{!=&{4zA1ek6!(uiZ^ z2iY;*Tzn z^qA9SzoOR_MDGchpMG=l9%Lf@O$)tbkAC1TT9k6L_Vf=L!85h zn$$G~Q=rVAT&Uqg;ombdugCdE0g>UbyycMsD!7gbx7yzj+xPTTS$CR#csClz&7>Y} zWcrZ&Pgo|^iC~C8y;x?-_dkoB1?odn?8~XCnk^7Y^tt_l%m&}^=s_^ zU^rZ)uPx)}vRt(r>Si4SzO`27cu*&WB>4~7+BB2Iw?@0H48=xN#o-G!OUmIhQo;SG zbqh`OXys^XbEIrArtvFh@ts={^3surafO>H`moJM5l`b6D&|y=dtr}0uRc%j@KpQ~O=JB| z{eS7$WOM2?mwKZ7>5L!4%t6Z2h!(`Ieoile+&85Wyo^^O8Ov|-nYX8!PZaewlGX3G zq|Tkwi+|gjmZ+~|q11660c17?4| z>!f6PR2IyEvt}f|z~TJ|V`3EN)FuDXK`;kqouRV*6|LtgZr>n$=A!@M9}KI98%jme zXjtoit`vwR2$d*!S#(P5FIixT>6+Da2-N~fk}kGy$@mAijvQ)Do9@0}v)YP2hOs(M zz@=|`>+q)%7CbjFFq+|cY$4!8R8ke$#vP}QE8&89{sQIFVRHF*i}!XYLCF?>%QGc7 zmtOU(U2;!2pDx=b@gUfkL6)N;LT@-}?HyTPH6HShO})bx+mMX=2CAqh%oris=SQL&g%JS-6FwG$q$4j`2ge5Z%Qkm z2lXGiTi8is`X0LuPF9;>-7!e9$^vCg(&lP+!SB!N)=ZUc<|kv;k|LO5B1tuWnX48{ z9byVvRRbsB1rFLFn73+joC{)w0JLKXsMR1vqhHVxl<-H=UzrW75zUV;dcYBsHa2uv zEVf`QEWsY|<7uh!-k2c3f#2z?{{EC9(hWNp({-3|-^D8$tXg@m%CU(5v}lCssFI@L z4W&4jTUqoWDPp~Z9y;UWGIMG;8jw8iV_h&!YcYMi>7toZ8N8>?q_vAyNxn=@!ToK@ zq6U<&ua-1(r^l`5ZQu7$yBhS{O-x~Su2(ri7n%3lYK!{%yQTo0hFo4V$AiFgD8|E&*u4?!GR`XKUs6I^G6%gqfG1S}<&Fmlf&orq`n`j9fQ!%*E%1+$;XBkXyRtjsU8R!STjC8!L_#1M4Rrj6SczTmwwkw8YRV*k#_CSFsMTwyw4alkE;~>Snbyr zrH{ybH4$}^JvH1e9FQiRv3z+XZjz+-UT9pHViL#!uIDy{aBt+Y>`-BSJlj15l(!a{ ze`tCYAyNTk?4V~vYsWma%HgNzU#CqDsuA5MbUzF&^xDY4HhmZk{mrt@V2?IHY+JHC zXeNM-Io0^Zc_{d%+GCZ7B0vFO?#SafPHQY-(bc94SEn6bf2mOeQ2%SHJz@1vbtxLi z5|vMZ(h@mG4remZ!Ash#resCi1rbLW`A;Z~iG4oNIR;6bcU$Y{v%DOxg-E5r-*ak1 zPi!+RW=_0(_IzGFvSy8<+C&!MQ+7J}d?8OWFnqF&H(D5q);$hYS6k`h76bF1!7+#1O`u)D z#zXlLy)@i9iPfLTD$^g8n3JhEagAUIPoDF&slStmmuvz6z9N-2CXY0L1N?RHz_u)Y zqL4{c;oZ}Fr)!f}&lEm?sOSCe*dq=}E3GZ&&VX5M)|M11h(jLTy0OwbQzGQI`4~n`Red z9?e@*sfvvhVl`ZgSLHl8aPx(o_sZ%6qckQQwG}9o{34*gxAjs!F8ZZH)C(j1zUPkC zMbh~A9@WfPB~k}CGdG`i=~rsESd)OP$g1+Pq$Dw2)2Mf@)YQwf#Pa?avHG>3$f@aM z8m5SQ?mEuA3B!`SS>!OLFfx%@eBRL}7RAaR!g48tX%UQhUQQTGfgy-KDzRU-k zov-lI!?E*640Nr9;{7){$;&|1;U%CtpT+C0KezeoWH&5bQWL(sk(LDPU?mMvV76x? zJYrgs1ZQ%n+X<~nG?JkPI8JsewA)NwZFi! zkY}vaqHC?!`}r5D<;Ummuz%FT+O>I-?P4sF`mLWEylUNcp4wQ-p<7l#$$?jMzad%p z5)_pO&~PxSo8Y*pvQ|l|7Q54tgjhBOV0y;p`W~TD_A*ePYmBt{zS+hE5(OKKcgY=h zk^1()@ym5GeUQb_*Ev(&(Yd*cUeCQCtw{29aJiXf+Wx_^xZ4XTg}M`uh*&^MNR9vU z7<$1XarU%SoC9p^mL|~|>pDV`=pcLaTiw*u=^0Lz`$2=WTS=k+A|Z%#t^vYb}1I4H7YXFms}~yfOyLvPi72lGkXKNzgUt;$ZEtH*O})#wzn z*nOG*a4GN#{wP7+TB;TPD;JWUt5@SnD>P1JkpBzww-VGfD(5(|5mno(Vg+rk%Ja_j z;;@N}VY)^S?}8Q|kFwM6>EGZo`XN*M;m%#5XlIB92z6@`g`F*GXf;IiqT= zI{6?0_asNS2lOy$y|>{(bonQpX7?G{@wrP27ulW?DBo{l^Nfhd* z>icoSBT;@dNb_#>Sbj@3Cy5rdvGD_e$gp^7vDy2b|CS8VV&?4{;ENSEJgk{}9KYle zx>LQk(Ir7mCH?6ijKtwo@l^k=auUkHqbF#T z^B3@m5+mTi4tFHw;=34!-Si^ViY2lH3Fyu35n-MASOHK}ck6x13Sa@k5ES7j8vGgmi?Fwj ziaL7xc0o`|Kw7$E=x$I!VrIypq@@|UQxNHn2|5I3fT5%tl@=I4=|);o1eDa@ndh8m zo%23ty=%RH&OfteeP?Fh``-KhT-VbARaZoqCRT#+wL&nxJVN57wR#4q&wF3E%$LeQb`J}QrjO_A3qlVz8FZq zeEU2fqiK936Jp-V#&9#0@^;3{PPs7nXXL3pPw z$z~xLo-aiwE4Hp3n(EqDBHd;?Yma|eezHuww7NFGimC`XsNp(WTNF< zVh)j3Y$!mNR#~|bch0^ShC4Lqf-%3l1+8b-e(Ph;Pw1|Bu6f8aqE_;Ff}ECg4Tmep z!W>_5jJLZJ5$`mqYG0S{pS1-T?|xV3<%g|aZ{Va|TeWQiQ0H51cX4^K&2~j!Pc4ZH zb%BF9(3&B6=~5gP+i;QO+0qgxZ{aIv>m1ATCNooEb&w!?QRp$QOxM1?rvlUVs0c|J zRm|)XoGLSWVk+j9P61%E+F(f1evh{iov8~S9~yl(io_T4FE#uW5H8XK{Y!5ywRi|a zrR2xibZp0x&%$msrfic#hl27jjHZ2mI%SdI^*akUv9h0;zavtHu4I+W%@sYv3O^xM z1quGa)he)TUSpD<(0I7}m1|jl@$&!b z-PgLf{@qHD^KoAvj%Ryw_mdBTqd;d|I7q}yhh){#(^uq)X41~2$HsqQE`q_9jl%g< z+g!W}d!&7djPE$HwJq7Xbx)|PQKMtXR{1Sw9y6AuM<(su1XO-gafv6~YKMu^UE zUSMIamh)eYp?c@Qo%LJeJ2aT&(-0y57~YLZfdX${kCHD{)(tQ6)toVlnM#6rMSais z>mT`rc>xn$Y0rz2(-JvN9}L?364=-9PX0(P7`R$B_~xaVlxb0hxQugX$_S^04K0jN`Sp4-m#7LdEDw5#g2?E%PLoT3nPq56)=lF=%5b{e*FjeF>78vWp# z4+WBd^AjTcNz4z+qey5r z%cD(QaL?9~YfQ)2*cEpzv{HY(aVuy3k5Y&=GH;^OsjLn5OPE24Iu_G*!?km$D#-Jh zDJG$DlIIH8ydm1i_T)3NP!7RpBAwr}t5!YD92ADi6dth7N2Db~glRnrkkAe)R;T#z zsk6Un9oPY*40^srsn%*&NUhFvkrALhkFw>Z$5baWZ)SY__UiF zw=@=n8TzBQ{I9kDol203y>Gow(!e@D7WB_$OSmfwW7?>pBE8)2Y~0T4!UW2EZ`!9Q zv(^$^7x^PfMvnX1^}}~ce=X+f1koQOp=k-u?r^W@@IbWZA++G)lT)NEqvJ?pfBRDw zQJd#)NRN}?N)z8}HM zE4RL|jyF^I+{cB5#f8UZSRl7Q)IZjzC7z?gt{S`TCz!8(Qabby)(iMO;tByyXW~ED z6R!rb|AS(A9`;;{%4w{^oBkj$B0k%{{` zgvzqNsLT zfR^T30Kl}SvJ3X&cS=Z3m`3qN3t~ezyocz~vvIX-ZcZ zlG+f(Tnr^D^fWcui8OOW#X09>KQ+l`DGDpwg@ncz`MO&5eUTX7$ zl275^7x^`Sy6+0DCeBWo$9bJrjUpn7^C?eAcrs%`;40sQW5(0ju4SFodBi>1STfOD z%MphEhDL0BN7~h_eHV<;wJ|7bknAFHvHaAgC4)_sEFhKE{WQliOodRZ38$5Z1(v?)btUt2O!nWaAO zU(i1xngUR8G!vw)YAC(i@!!(t^J^yl2K{L-2$wn@HxZmt{A`ruIfvn`=$j?^Skz9| z8{goxQ%^du^taI5Wk6P>Zp(t#8{ZV#M5l0-c|4>BeT<%~BlRRE1439x6um-M*Y^)t zT~=Gak9FN628XR@Ul|wHNWSf?@z+hroK~Z@YPvGb#5ZV^-3ZA#d-iZu%Bg~HAommA zu8CsItNsaPZ0b%yJ$ep3dti$asLhLUU(!3|+8cb%F4o}(pHk)X(CXhUcrvWrQ#7HB}P1Q_`jw8hdo!01%6DzWDn=S}|AL@D0( zs-imY*4Az3V|MlrJEvCpG`F#8A#YBuYOW)h7EIAA@%a)Y)ahprybdWp`3Aw&us&B(*QhInk$+&Tf$l6Eapgc z9$)&WI_qTAIx~NdFWXnHAGQ2}o>*E~(@)Eheq7xqn3yE)aGfIj_Q=j@+}~^SKy$~j zf_J}yx8%}vD04i$t)cx1k;u!e-t;}Zub%=Kl9u_YZfswUC@5&u=xwHUj--M0jH@O4 zy58LF;^rN*>JMEErUQSd{2IGT65?PT&b^RxRkrgj&%3dX<`w@f5pc|}Zr{!?+)wa6 zeG#Ky%kxC{oi9j^nTL#Zt87P9*Y3F4pI_j{TixYh&vb5Bs#El0h|s)Ie!Xc^u#lnP z$E%*_ev!Mj4`E2e+`sweQ#55zzwYwRGWwLf9~2Ho`~&b%HTK}Q!J7SM&g=Am*p~b5 zAK)~_>He=<#2pZ0S&pSp=)e?SCRt|c`$pRMoz;k5?^1d#>RGGg>+Q1ywhmSLaQ9-#H7SW+84OKK@3iQ|-!EqTlm zNm4MRv@KJHhuLOVh(mMD*H7j=dld~1 zKdLf1$h9zx+f2f;axU8~-OMV-Zxj{=8(NY|j=l2a;Tpa*$Sia47B@AqTj%W%>|3-I zk#b?L4ht-QRbe9ZH12Az3LXV$9q-vzffYH$F)(|!zOfcug?=30-wWAwR(lO71n2!; zA`Mj85yTxt#Qur*bmIS>`Q@P=EHnH)>$~14p3pZ^+m9QDLWML(^33B(N;k)5;G)1W z1+ZIjyD=Y&T6R3MA|!_%DI&W^SG5Rd%Wrk7o-I3ZR~TCo1=xmfc7|rqma{X~JG$qP zGExoOKE5f2h9)Fu<>qRB9EY7wiZSZ;%;KOHTQ)Bd;}$X11|V94Iz`>lWeFRu3+_ba zvI)0^QkOl4@y+F!I^*1cUBXtI=mpoUXkJ6*m3K!n70VzJ4%?p4pDndL6A;gBNiX`ZVN6g$y6y?FSN2}wFuy(hzGc-&a@cOZ-(TC#wMV#nLeRrRj*J&?9 zqjbCqPnao_$u5&yVo^f?9fS^eLORDHke%7WnAqfYm3f#w?i}|CZ$mKO#GROu^qkD> z@&v;rcjw5}AuT*_(3JLxhcy#!7yZjmK(CSu7+{^YaCVtNuF8Tjp@qM;RZ0E~NuX2P zJtf3p0tI7D8gD+r%{Qr*7wr6g+S2U#f*TSBugqoO+kOqF=4$?veyS@bS0k^^vjuB<>PoULv(CHgH0HyO+@uION zRFERL4{vsiw(o%GIsVsJGzZm3M0yU}iBiHFGK10ibGPh0j)7}Mn^$0?8QofJvubRD zI{KTmF>XMXxRJ+|S9aQyiPkRe-#~)rEWBs8_m}7Cwf5xcTSPI?Lz5fUs|J33NB5Lb%lIZ2OaG0w$2BOQ~Fa@7IJM0<$6p=26w{B(*evcWie zn%WqRi&CVO`<;3S)8ghY*IL)o z5$%;g3!$~dJ5d2A9C(y}-ztTN5J^f{lhBeHV|SIF0K1r~554S+KB!=r!lkq7Q19%s z=NbjMq!(5f#;nvfsBXZqIre}B!3uwHY^_1QM^j0a9lF&f2SkI>5H5+sdmAov%R$V~TN5g! zai!;u5Pnx}_eLp>CT>FZgMLL9wy;R8Dh>yq9}7Say}vl_!;1?Y9yv=Y3E7wP)%3N~ z={Ih#{BC9cS5o(}cy=@o@%5AEYg%3PzjzAn@NoRc%EzIlz%MKnn>2Wa9~a>lm&-%W zjT~dWiYa0uXd^x^`{miD_g=J~uNAE2j$I;Mx9i#bGm^W4h%n(xhJ%Oi8N;FxmX{LJ zsFt12Wqi-~##;tMHeh4UN% z^im%7{>#9kHH{hd7RC@7*XtGbq#P4;{z%o_g_5F^JX1mcolpIv!HI1>9tllO^eoR| z%WX`?1d;K%>DF|tK&%7~7UE{um9*~>+T#zSQ&z}eD3&Lp-bv(tU@r|PF!_oj2!?+qqpqqv+0t=iR?aDF7nQ9^QMTrtW zy3QG)-iq%LvM@BwSA2gaty3fWd!0$$g(e~PnTmtl5)mOXSfr+}BD=HoujMwi4%AL}bu6Uu z6#=4FqaxrJ(-c1-7R%qS3i%85dvy0Sl#*@zPL8KN2lM80vkHpU=&k?Ypj{zeHb5*Zg^SvLMO_RcI-g7y|wJDr|6^k7rXgO4f9ncg88@pKqRK4V{} ze!@%a>V#yRjyIj%LIr|!4Q7!^+JyNNVtuwOZTkXu=Tf z#N#ue9L815-$Z6P?TAPrT!n=d3@@I6v&_MW8`jvGT%w0F2Xj^$FX2Vi#+NyKduzTe zbr$R9LNiqb98a>o5~rw4E3b?)RcPAZcZN$hj6c1iP~x}9D(_Z)C(D-`NKuN<&}pbY z#GLt>L@Qpocboa~l#c0j;nt(H)Z9E6h_`CCnzpvv?v9ySrCfpe?a?9QM%y6Yqdl<=HZ!WVnXJajws=Y zNsucFYC=5Q)u^|UyER3@V)OrPTx^jB^V7TN`lUKbjvZGVuL%rAf` zc%8C-W>h|+3tQ(5Do(P&Nd@_JQkWD{E(m{iB|aD&RXrHib|TEyDqLr@O_*??T)_BC z&A?tAD5{gvrq@No>J4IUuAMo*5|sgysmX!9q*81_$D+l z+PR3W&NFaxmE8Yg?x_XpN&j^^GE%EKp(J+UFLR{2zcV`|MD|*kMzH$+gwJVYx6;LF zFLSFvy+-ha1S%Q_;NM-T4HEzKNAs5!k}+*Wc+z*PP{z710}ujA&?qzt*pU)MbX>T5 zZ%30ST@SKa#KG`Z>xHg|hHo6w05=Q+^{+Z}&C89Emm|C&7OOfztK$S)VnFYdTHExa zUCXE-CDB9q`48`^kix?Q(+FW*3BDC1C;&Buk`fWuiXia``^@g$a*-zT-iiMSW1fQ6 zwpPNM&4H&jt+^qx#cPq^C)3@bo}L`kZL1`P9#+h0O5U9Z1wJxGINeIY(*Y@g(DLMl zNr{16kZ*pV9Q9XJ1e1lA*I>^|INlbu$a=eKoA{&e{ZFDK?tP=r<{dVf+6adODh`bm zcM4!e)9KU%b;7SwP|@(&Coc#e5Ob+&ob6_ZOeLH?YuKPTzxa^z!=$=8w-}m<*8l2! zu>0Lcwlx#uY>M9it}$d-%xDUtIu{dny2ugez+&}y-EX3OQ~&8sZX)eXj1B}4jt12j z-`3I6g8HG(z&5qhNXgkia>HsAH-v&_aV}57OZ3O>kc0&Pi^`y6d~)dmUb!``fk?-T zPc6CUXoyqvFO86cP_+q}sb=5~A_MUjxa-gArgL8buq%9hcVNQm$!D+muRJZ2Hb*~g zDDl_w3R&?ONnwaRQ+>rQAubB*+p~;)lixCN$EXEg1*-3iy3|JAH1i(RUY1u4Fz-(9U7_L&87|YLD^|n ze4gKMS0?>ri!uZV{|)kXYfKMB zm}(h)S1b|enSn@?hH_NNrk~H(pRbxL!Dp*-E7XAbIyE1#%Jhe)$JqWqLMH9}xTFC~ zR0e>xjkoCGU>&s%>$DeT1CCYt52V{!wNl^ehOj6^9_b6zeY5&Fe?Lr>oDCkbv}I2l zf(Un7=F)ZL2Y{P^IUdD7+J{xh>!z}}?xXk%Sj=PsDSr!^hZD4;YD4}B{QGE(?b_ok zxT;V)naOQODHcWFKPeHr54ALNLmOOml7Fi@MjN?nlfMtEtK1d3y%`FiQ_&JkznnQM zzJ-79q}j|qiC+juA&YnWeD}q%mzeTn!JrJ$=+>ibF@S0f@FdIq2JYFzHK3Z1a1jwS zw^aVPGW*Ea+2sag_^&N}(sOzRz3Zey_a_6eWX2Y7;TzE%tor2$!eVWtq$2C}isP|L z{VO&*)vVY0d0iO|iB&^gHK36;p6c<|j$MR9=*|XzT@J1AWsr^F!Y82?RRt=3P^aWh zx0kLsW1!mMbDLiN{yz-=dbXR0QhgL`6b@P(bFyF3!A_ToTDl(vXJKm;gvic_fWhgI-Nu#s4O#uuIJELFifd3t|!^Di;w?<7li zIHBVTqB_^2n(||EoVi!nPkm)rdtfn|CzfVbwnRQ#YTu&K`H{K?@05;BW_jy)s>MGu zs;!n&u57XA3g2ufS|DxXf=NzaPO=WAodBDcV`=(K(_VL8-`C%uS{0PHXjfBV)H^Fl zA7SCRue*LtxoZT?7EsvJDrhpAm(X8maKdNn_qpmF_8L!tB3kKy^ErU$Nibnx29%wS z&H6+zmXq;+@p=ExkU{9&*l)7OGie61)k_@vws8wx8=Fx$NR+DbHS&p% z{}?P-5o5A+UbaFV;+s=FsiRP_NnUM2<^d0XU`!M7!RIx3TC5vg@EWPT&5J+}nf}Ru z$!VitnpZX7n97Z;T>X8eXhfrEx}ML{_<5eh{Br5qO~&xF1K=I>>eex$A0&BecwZKf zwdy(zJpk@T)cH3)A(~#)8drSVMR%IK-B~;(5(2KA9P759{nGzCCy&JBBp88fQ(5bu zGpKcGI%tjjJN_sE$a4|&k!8*fi9;Jj>(=3A7`Js+va)aD_T}F?G*cnx8*5%QkJf5` z5g{(=*8%fMVGw7V*S3)du&;UxZB24}+=AW-HmXO|?%q$r-&0>M&a#l?|`pvZ}Bt6rJA26 zIrE%b=_N2~DE#4_6?@xJ_J$+i;A;r+0L`hucj!UfJX{dK}FxPtYL8p8(hbdbv5>ixP#6h08e3ueB5)-R3`Z%gTy;b7R$OK~o^S1yA zOM4BNp%08kOf-(b-YXCWG~6qv_F}(M40%?H%}-r7Y)ll?d(xS7|H7~Uqaxn$Vz%L; z`h^mnM<(&|N-lwk??N|z+Wy}9d&g5vh*dQJA2L=_$JAeBaEE(t-@T}bO~ywb3YgRf zWvJ$s1Q8|c3WoVOJz~$LDAoJ;wG==EBEnfaENs~B4#w-G_k3pfl5%m~AqF3h?TZGt~C&Bs2z95m6{7#{j2ez_LvZk6F~ zHxY+%iyXe|X+<3e@FcD-DFEHxG*e4LCct2DTei6qijcDf$5I1ne#XPY^T12Tau7On z#zh}6X1tT2uw8(M1@TnqLMm!A%d$71x=6gRsG1CMZZ4d2Z)SCLq$4Il`2tHp-i#tu zu_;%~M@vt9Owln`cLgVbMz8g?UpE~E^$xiB=|m{ie#5+qhbuh)VB}OSeHcTQU4Y1g zib~!I0YP6|1UG>knJ@N360Var82}-0+QWJwWR)SVn;%rs8VX<-L|bUMnzmi`q7Ff3 z>m&w>x?`lqz_hnxs=QK_3F%zQ3a##A!p8`)G318xj!PohrC)dKpO+ZxUGk)iO2e4F zVz855;5WmBW;48L3E>pC`7sx#{z50qG+lY&wuvMLwRer;gpa4_m7nj{C$VvMs1ISh z%s;J#B;d&>@2U*UeG?@P&AwtF6EtX4N}Q0qN?)gu64~T`KDkVY_%~{m=IM^Y@{UJY zkQ9K!=1Cff1$R7s#GZ1=%TDx^h1omAiSqrTcv{h=nJScGadn$Htx>z$Riske6x2H0 zO4X=bPBl{NOKeTeqIE`-!#E>=DEZwN>&!cQPAy6rTYFCSx9r^~Unt({0~{^mIQ1S0 zGVDAISdoJKBx}2%cvx!xr^8@z#97r;xBQ*5h;ntBKKU=^{@;dR5W$I*QKl0`9G>Zt z7OKs#7C#&>bdiS9nn2zH38K&subqV^sY#b1(wJ^xFs!7 zGa2ZsH01f{)_0#&p-6D#o+K?zGVoh_-HLn#aOA{ZW?#Y}ybp4a3PvCw>#IWJ}uE4f3eR9-GX^KRU z3TDJFj6Jk37yyB~9` zz9~?8o@ajA{Ays15%MN{DDAj4s`9|Bj&Z=W-c(D1#n=C1 zUhDtioDxQ)yuECF_o>(T?F1js(~L&%f7uOkSJfFesKFT8Td~Vjv)h!@=RZdxT`2!N zE4F_UYsK>4Z*4Ts>Bf^)`kz>nJ7XX2)w@^ zoTlwWfkkc}eZANz@@z2@sd|s!)rlXD@8{i`fjBNY948U6b~pLIoz1Qun@MKvI~(gs zC9}@XzC|X+ActxVLEWIjT>TAtRW5zY$cV|$4?~we7-g1z4_%ehMb2Lirj!b|k5*7C zoz`9wASZWU`malxFXcOvmP_&LBXHC(2Y$hrjog6CPxELtwLJ-8cfG3&F`hDpqV{2Tz)QsZ z$K7%O#nyibCd{I%FxGcyje-`V&5!!4LH6*FaJh?}p98!lhU=kvTMEtkaNcUi zrf8c$rJ!ndDpmE7{j=V~!WqxzpH|5rMz;xJnInM}=d3*~sb8A^>^l!IZZE3=FnZTg z=1j3Au0M0$sbxXhdnU&c3rM?BY1zz$(<|7^?w6~Q@FNkI>h><=Y$l-vP=3sy_wX5O z-FN^4->FT3DPO+6-(v4ECdq8zWBj)V&_Ny@#dmAj?ptje@6K*!!-#)kd*)QKcO03t zJWxv&KOIYPih%D~3nMvFEY{V+)lZ>hk#=*eTz{{!L#v95dCu{|2}4ES2(CdLvGRwP z%BYi-+K62?V*O#&b=1hq{Z;AToZG!UDbc&z|GxBzE}s5j;pCkwZKGMi4COG-tDb(x zu{W9ZmbI+wrj?}hW%O`L3o}z|bJDywWVP@w|2;~_!PSlsIIbnKG`{Z-ls{mdhspMK zaVo=#E3t4oBS%9)xKRmjOB+&z#OE|B!iC}b@aVfNt3y7L5fId|%h$u-B~+4P`F1U@ ztuDAZSV$0&?F<*KMx24@5l}Unb#ksd&S!v^%lr8m6Rf;>%cui8QjrPTd%R{y$g@s-xc`-($(rD6j|t&H>NXlZs+Vk ziFr8e1bo(#X%Aai?0>v@6_ zIYjmI?tEp2z9$3BGy`{+t3t94`S(?=_laTP05`M1->9nEt8Q_PC@6oGeAncGeV9<#ip>}W}zRoMGy?6m9A*dimlP`2Jf_d_DbvB1&Y_U zdXn?JthFQDG#cJyG~V`VclwLINWybq?X>(dvN~9lZBlPsB+17rW&TFk3#}(%alZIb zRh|JOy_A=iiADq8q+o(^v66(Oy{-D-A0&JWEzabU*m4p(1aDiWFy0QKB^++AkvWdH zybFS~LlB`DEsUzfp59cma!z#7H@$3LDKZ>GW>6pbM^!oDRd=5qz*Xm2oQqs!`yOsu zzD(gz?^Ti?*MwTR=#gf*^jjav4^bZec|Ly6U?T16o?5TDX3IqzzSqrJ8Z|c)azU)# zSjN1@-@&C|$l#q4FS}GkfP*Hn^t<_u@a+AmIa!uj-CAYO@7y!ml1U~uDEI*>6BATr zYf-sCKRKy&%4ml>Ilox4(yRL1yr#xHR5$E>&)%p-{+umKkqgPA+&CR2XnyKagZ7Fc zOJ)fn|H!i5o}v_GwXuS5PWH|Wnh$zO@uwUI2Yg8N<&9w=>y->vM@ayURYrw{|L98k z$z@pZ*ZHpk#zx&8GCfrn5!<_xZviAV3mNCQfb>}7W`Vs1O#*o^5M7z>FkIEPybfrI z#o^el|HVQ4C=_+dodh@tu^mfGE&h)={)4Arb@fS7Bq+?T@@w|8>)rY&d1>45g&u{r z_RWKpOWCtWzjXoe=rl$1{@KEYmT?SERY@P}Lda05IQ+V(ewTDJsi<{hp2eb5U3~~WIAzXxgghiZj~Tbcs~SG{oRB)n2IaP<>Vw;-`{F0;oLsq zQ$DC%WV$_e`Hwe;#<`wevYqcLX=66(=9!US^R+46yeyW)|Ls#Fpf9YQ9=dp;S90b6@ZH)bbZRu191C&=Id76bW6KfIg2U2><; zdFPs^7t9JeAcAxAw^0C%Z70rHQv3NwujLF+b*UQCr*k;MLm6 zzKjM4qT91kgSe$JEv6B)rY}6p$H||1k1PtKr%*8<=l6*a}|+HNY^YX1{38 zXBDe1Sw$6xSd<(qSE^U6YwD@2Y`NBk_WM`XU~}n1(;K!8QuP|7gLH#PJtar*czKT{ z(VQni^_0=cLCDW(=+Cy+S+|#hL9fl9Gow)fo~r7YL;E#FQ~NOYjV`zoX(M&5K*SKy zHv5Q~Eq;4yxE!}@$G2-4Arn}TdCdv#m~ZS#WPGj+t=niB{F{UP_B=KCiAjm?x0fhb zXJvPdfh;krmzGF7|NGres>n}Pk|a8*FfcsBTmTdd_#{^N)7y^!wL__Hg@S-iiYT4_ zGbcTrn8;E72x9(i<`Pvm6>d1l0i9fRChvR=0te68n*R*XYD$xNxWd0@b2WM*Is^5T zjR7MKB_|5>R3D~{-!plBq0n4S2ncL_08$)kN89Oud3he8e(|1tlby47bi~Xs6e28KX8vJAFUB1g`UC#+{UN&-bYWKW z1j}b?abo18-KigJ5ok`wjQAJ8@`@ERkm@-S$lVt(Z;dE+bHA=t(|Jm-}fc^EX1 z@vc=r`y)bNQGg=&U(Q*i$xl(cn~{89kvCkUk{-eyQLBtPCJtEj6HBS z^09_@-asF}|KOGDeu&gu*m?MuB*+roaD03;D%!abG4sU|rnQy+JQDs`mEHOi>A^n0 z@3+YKRR1r9mDP_bE`(!W9ci~~gyaM*GU|^KE=%51;&GR2W#v`rGOZbqm8_oxsD-i5 zU0xHeAnYBe^zU{Rqm%f6kDETEztKOqRUoM8h7`|N^5liI%mC-4uT{(RdH8=#&Hfic zmA2Gc@WK>L^j*uj*%C)cZ(`jH`M`McMuAL*aj#+^4Q9eOeJM{Zii!J2qRMsuFXQRv zf*H_zhTY>Cq~Ka1G=LSR$Pt1Y>HqYVI~J4d*iob3VhN&I8UvxM-m^wOKiulN_WQ+` zZ79JX)~f;VtCS{XbTFOZFU}0Zp8)-8;g>c0qsO3426jjW+9BPUWb>$Z%eRJo=eu(#x}l2qVG1wpM`E{D%=Usc(Rl(iFd1 z4!NJLy3^YL10Ny13kp9_%YD`;$<0j`>t#(tuT2Gv&EV^ddXFXHacp|ElGXLemzM^W zA2yGH*8JV6CG=Omp{LYAG+Dr<8b}x zY28X&2K*t)Uhev=FDpeS*xV1`3#0TL`X~QN)+l0HYP2FJ__ND|fj9qjf_NFBe`&mU zr1X&tIUdL4AFpdJZ{+?Iop@Xf0tG%iRQ_<}z42`@gU6X1q zrdUmosmaOy9Qd)o*E7ZU5!ZzBGwu{jV6~p%Zf$fk4c+Vt88p9U`p6&?-SnfuVtm5g zms87R#+{a@#=XWQDcEVRMn=v|Osj%ZUr`Nc5e)%0Y3{xZV19Q!(p~$MzBMl7&nOeC zlAIg$tBB>oa|wrQd$@s`P40WpEUTMgPM$ercD%+(rED5c2o!)Q0_b&^1v(c!o8WIf z@jS_qG;7=4lbW3~Kl$Sq2zS;q`2g+K|3z#$H%WOCM>^NX8ScR zh#%}OvczpxD~hDyF70gn=rrBHZ>ue(&mS-@_l@}8o3cpjeTpY~ZyacEPOd{6LHI48Q~gY1>iU9j+< zW=7DEc8*(Vg_;$#5?mzIzA>vRmjB{+hEaRkkJ?#2(_7bohzcv+RsXH=^1+*H%1e!9 z)Kzb4t1em`soSHZ5EONa!args%s84?9!-k1!|1E$1n3x7)VJH%s?WKd5rk8Et85E< zaXk$I6$AlALPeQN*~~_pz2-IK6{Jrh$=0X5)b#Xc3j_M&c8KdYxvTZHIJxJS$$#o+2A+ z)&b;TlFkN0*$l5IQU9MJ?tfs^a4)F(((Uk`D;tkb>VMloInAJ3MkiGddjeu1<$g^En160&e5*F3 z052(5@_)vN1wJ#YHN2BMc&bE>8ANXijy?CX-tAp#qix|RzW%ygZ?)8OxJ{-Yuj7VH z_|)i}1scEc{w?%)7VXQmfk0NaJc$QayII>Muy|^72qV2btB16>CvkPjO!$Iv89T2% z@6yy?nwUSM!p(^pQ@(q>VKrFFAuFo-Sgv9a3H`Wj-^5I?t%LcZER)UH`t0Rk>!DQ{ z#;mdpEg|1e3;Api2oU7VjB0}5HSS~AWV~Oh;u!*j@YrsmuTZj z%LV6kjG^hqrd;Sf6-iJJM^TS0nG)`VPq8T93N(bY4Y62sx8|AJ`^M$_}c(OK4= z^TJQ9Cif}GQ;Krast@7Oapd}3=u)tQ??=dDtRe}Sp!ToheZHmK4->tj?MgY{4+2Q|{_+JG1*nzmRWECNGuUN87rCPahlb$z3 zMmvuK_e<<^#D2a>?v~+ITn$=I##e2;0UPcpz&~k^A#pnu6_>Xnb#*sF@RX~yEWSga zCAPy4=NIv;$h~TM@lZt0*_3G!ra8g=D-q{#SyvR1jf(yFgVb#k)waPut72Mk|MI8* zuSA|>uIy#p`9Mm;05`Zz5s|6C3e&3H8f8MrZD?Q6y>Qok}fQV=)~uDZWuz+W?R|Z_%RZ7s}5%=uzS$7Q_(PWvoY2hAlez`E9SH8)dK(m9zbpzST74ZeQ**2A>kjy==0+k&zx3)FDCaIFZ^^i~-q&p%#~0q%%E zCkNT|mK{``n&AP-LC{7{uBWczN)jpPYpFeqQv5|rkR9_EZsoGg5$-11S(Y*7HniP{ zTRmX3eRsN@&F@g~+p;`bL?l|bfRIxKFGK06PdjY!KX^>`k9|{pGOP9MlbJ&zYX>H4 zzU?^~?6pw8vu6ReX2XaZ+Jy$Yi61-~Wg`xOZvK4oEJbobbj7~q$Mov`VWRSMXZT)ZQG(rd5t~ z2*%}Ji?&An67p66e*h|R%4b`BZJJ4%t`q#>5jtFRwx5$XlWzrH2x*^OCHzB>YE!eA)C08-`a_FqMFzTI`PC{KTN_SN5gO~5_0J4K6Nq?m*S0JI z+@JS{O&x)X;{qNknNub&RJ9hB_&ku;!D76p}rs# zk?Dg?lZG(EbA9y=k>B2zf(&`hfE+M;%KGraH(d5CbimL4OZF(EAKp4D92YVQ2wkZa zdDAT=gI>@JLmpl;g7;L-K2hBFOzr~^oe#i&s= zx4kK_ZMAHk=!4tS|9k(kb}v#94ND zTKYTmW=e3agg@eU=Znni|G^8J(Q_^pr%!Ubog`vM7P`(x`gPdb*$t^YYMG{LE= zMbI*$um#nj2vL9;ml>mJIw46s7ZUJ(JT5W zyT%EyMIv4#PBD`1i+ehS?5{>bK2{`0(7)q3zCRwj;jEZ8uAy)n1DA4HB;yYEFJ&Ub)ixb`1>C`KVYZucEF#+M}NSaqU5L4-*-NkwRP5NoThH& z(UDrK#SK)jR3#0kPSXy~D-<~OBLKRrGaN{sOk|X4jg=dy`*C-w&W@KlsZ#$RJsB|* ztZ*RDE@_E2GH4v09YN}OurT)G_^H#!Z%%Fvyo7$B6Cg@xxTPFuGX{1xa}T^0X?l~b z2-O&p8~xgG(K~F^7Z>?fT;6zW?3B}|45UQ?8WXclK-Iqr!Uwev;g_}>P4Xeyr4n80 zw~SZI3DcAlS8{f#u=fT57krCBxJliolp?sE+0c4Uzu!0%{bw}dcX<0buT_-|-WS8nDPKVpMK*8LTLeLQWa zR?lkWtMtLsypVcq)vD~cNZNdTlJ>tgDz6;9AX{s-_br`@*Vh`9CM}nqY$WXFt3%ZR zg@f3UPbSjlzaKnxJkRmCyl`UkBVL1zWU9#A&_np{!I;Iyw&b(#oZpNL?@hK_>AYBH&4ZyCu=6= zjSL4f6NBuJPStAN1gUd_k|V!hjOV;R5^6aPTkVM(yINdp8pG+V7YlF#Y`)|-(ScZb zrRW7YB{u_>(@=^^`Sw(MlE=#+j3o#YRp&^dNv|5n_A<@pc12gx!LpIc21Nev?= zrs;(tBG~l!70a!(&eh@;?7(6&R1yLbKmf^%Vz&A2gcd#5SUqbp84mT0%&6qAEdev% zJ3dmTtU9=_19p3JHGL;^=Y2#hA|C2$gA_y&JShzHHXhUwQTMBzs}$I;x%rc=Afpnn zo4lt;*Oq>0=>dc6y*rgRxmof>zniIaolWFRocpP7aRl%Nqm{a`%Gv zK_7iF0z7+bu+w~9zLnl{&%KzT=objt#3)Gf`s?$5{~BS;<8M(n%6+uM{gt8Z*Jagp z)vw2U|9ckfkd(Tl_(y}?zi*{{QCqt|I{Y+74_amMeSz9bZG9Yop(->9kn0elG4!3{ zqubu8)lT-4{E^V|6vu|Y^hQq4#DPXN$^|&Hbi0+TtQx*yqilmjwfss_G1mn}id^#9 zvd>QnbAuLiMdL>YX{2dIf2}%9`u`&AJ)@d>qi|0U5fDK^ib|JILX{ReN++R*-bDyV z2_2LwDxh=-p?64t(0eaRkrI0ENbkK1;^aSf*34aZ-I@8AFDK_DXT5vB?|z=&Gg=-9 z(RAh8nG}VTEoihZ@42QlYuM_19L)?$>VA&ONsbVeEA+~Im#hQvSx@f$hZimcHNHo` z_X9xTM*3Zq%*n?1Nck&pV#8hNJCD40`tu0k0)1C*pe{1Fj;yE0se_oP83g_E3x$k( zPoQ;lK>0IyT`cU*c+JbnRaPdE!P<&vv{Mze+~C$`<_71R~>t)a3)ye~ui56T|UwY3|5CO5E({ zh{6qTqEES@yW^=&LGfxMh^;@Y@nQA2Yr@Oaf+m=S7AL8^(q&5@N&S82r>&HIX=Ojy z9{!kd4lZAQqa}+PWm`M@g2(KoqF##ERw>x?=KlrQ`;vLZ_nQ=L=Z4;R`2%1qOyqv` z>e-9z`;w{!cG7WMT8DNMC|*_=`|6L-fF}=7zM1se`ln3I49C-3J0pDSlf~b|#A>4SV?a+PIGV-K)?4o@Dn8 z*k4?H7mfJ! zIEjdd^<6feL;js6IceKpCLE0SY9pln zb3j(FUI59_unM_tkbf^p^J=Y#`+9QrUi6^VgF@d_dfIU_wT|avVb<;VBtFT;1&{)_ zt-0R}KP029`j>38@$A25Z03=oofG|JH(QBGz>w#;tKWR_KN)X%k^(6Cl(Jj@zRYg_ zhev${hs_go*Kz<=@CC0@AFAjfDjHZcIMH&Oh`{=LbKhsD-@HJjd}_1^`gY(aA8UAF z%6OC>UjW_cA%aWC&(6EIu{v0M+}1ta4Syk(0&{l=%olis;hYi(5fF}7zfVmTR1~_; zCyY?vul%qB+Id1W*bht2*py+}M_mOk^VP*44xs7;#LcnY+hNcP@R*1uVaMXZH+=er z&+iZ3?$s^V)&}87nVU>W-|mfTwFr7xh3ja?PV#57r%Gk5et+;+g*n6ZjI5KTlV)B8 zs!I%2sb~GssT%cBWjRiepzxPC^;Zsyj|=YV(3FG}{k4M|7V=ZTp9MAiCmc+^S>7+@ zgb28fT0bmbJcJh3KEZ8xYi4G5JbOizZFai8lT{K9)XmRo^)9}uq?0IoZ6)@BhA%o? z$D`lURFczrk;=+Y2C=UIS``1D-K*f@(+halO822|LrCq>x)+}{+wK0z2j z&^)I(-X9|3YxUsz%Yh7vV|CX1w)#x{T(u-g+Hkj|zNqJ&$Z9-CSiTkttD8&<9xr)# zl?7nm`J;@y?nt;^|B80qFnHI?b1d5yXeuAmZIUmM6K>J2i2SZ(c*`kL@%cQ@VbIpIC&rj6i@gr#d(>=;LqUp|# zSie`2S}iJfZ+q#TVAwEEYMnfcebGee{Kx<9R{l5QB#H|j99wmg=R)mvc-pO=j z{xSaX4{x#X^+p`!Bb}|bQ2~n`{sw|JhU>J~(|6wARnvHKlW&#ub7`+;3=f z^XG>=wL)>M7fSq;LxU zQ|)6A!+opgL73U7XJvyxAYUDzT4tM8t;+XFI}ujD%QmZg^L;P-VoK@w6gW>3CWtDu zw@oqDyCBF0E3l@vQr-GynpVlovX^c8=%(-nihpNme@-TLBSiEX|CHuFX|zs zeB(Lkb8|ow8NUme$jPbCjh&;|b~x;(8KXIWhU#;LLWOW3^zR1T3BS_Vp^BCRXF@t{ zhI!!dh=vj=$sQclZhAEUp#FGHpl%Hlet#y}H`!;w`pLZD-mtXYBCg~DotQd$?L+?h zn4oB8aq_?$E7o>5{}yscm7WWU*Say3(hCfM3a9$T_WR{7UNgInq<^%c)Za&-=^SfB zKKR`UNw`u(yPa?$PMcUq5^P6|ammP}p6i8s!iov2L57@BVXSY(*y`JSmbIOC?ELz^-Nrv~R-v+iD38@y^#C-g3@D=oY~2nI#l z-Ua&<*R9li#APYL7bvFTwcC$KdP7FGHCQWQ$fCyC2Y>Llh(x&i{^CUe*5~qT4&xPo zEVO&i4ZPnLtui53qDOi>!`&#$Ci4=tGYCe0R%-jA^<@f<-@IJAg*`?PUN1k#6mgFy zbYAkF_%+K=V!0*vOuW4*++sD|U^Zx(oNA!#xIGO{bHnqsmvx0BYyQA%cY>Kf_GJvVL#(Ao;D3X$F+yVX999vD0}<5Ex&UUw^p zCMQy~{2CA)sg53&*l!bbHoBytUaLyWEc?TIJEzLur|!-lZR7*hZhVv*=kDY+=3GFl zPvkw3p`voMMYItPR$KO0+tq9pB58^u8{?X|An3gMm>O4JO||#azoBl1G(BKDE>S8; zS+D5F+@wrrlMed{;!5B|_6B&&scWL_ zW)BtmW<0>TK%T{{&1xluKHO2Y*VOxCt6GNYPlMUT!OC2FN#ghf!t366N)d*6i(kgk z3Xv^eet1x93^pfwrCB}}+aJF_*E8cR7H|^^qizl3MgtdS{~y z_xoe*){f2{sUI?usBuP0cqK}BW=~Z`f92-l&25dltJ#C8%>Z7ONZr+0J8tP%+>Uec zc3vHcS=fCouBzT(&~staBWljAsL-REd3$;x-AFNOK9N<~}12 z^q{bbS5p*kDqwCdzZa&6Kt`#kY{mZRo$nSJbHXfZA`H)h!!cg z!YK4=-+DvMZS3Nm`zd7!L>zwc$zX@<{inZ1 z1%6ab%!Ov?{Vczl$4F(CVedE^c6J6*bqI{s|81UznXL*ObjTao^G13yqiUW_=`Q>(2!_WVd@V{WI{&r zz^(Fqgfkel@fJ}^?>f#T*@OT4WeK0ky)k>$bMb-kN=Xa>=19)@twg4vnsF>bVTOzi zVv3;A$Kj9j(p%T=I9aD1iC7vVpF{1_^fq}LHp=Rx2j|T9Q@zq^s(dNTWQ@?Yp>IWME6lUA( zQ|M{}XNZeO8!t&s@0z0~OJkgdmz(v(W?~69i;6}nVeC#}w@Ylm7LJ;5;PuN%kBy$4 zR_fHZ;W}acFFz1avw7S*X_hmJ4E9|XqcPRyk~0_poEo=1i~b!B@NDzS7Td+0N(5r^ zm0cKB81&0n&eL-mu9pg>EhIvY!l!|$- z9wncuxlo~vauk8oM@WOkq)ltAe62GscN3Lm+_b+!t`GgqSGPuAPfY!lu--yp8Pu|U zy>^)V^zN9qBu)jq^lGN^ObXNhp%17FjVgI(3;d7eJJzBz+r_lhy;s?LMpP5^6LmpP zA2LzA{w|S`Z#gOb)x!wKOPSU7AQ30P4op(G zATP;x)C|9`d0{-Jq_dK|%l>qG^KERoz+UUFu8}TQm7~UgRE1Q3$3TSFHjBRZ`kUArZ103N~{Iz&A z2!1j`^$>z=_(sCtsOhuOr4T#WN$GPBZ$3{bf+ZIN2G@xjflEqSVxwD*SnBj4b2Njs z+JYG<2ONn`x)&48OJ;7 z&G0^xcNy*52#t`Aw|rjjjii(6n0+`u7Wp zDs}8Eq;)R< zRB47^6K9`9%MLS9S{1Iwx$Be^M+&Kec|aAeJTuev6(>W?GR{b=PF`-7X z2WR0o^+bp^h^()=bp?5X%pos({8{HnKY@StY z-ciE#gVfgJJ{mkJ z9zXvPf8iTydwI@;ZYU0xVqUftTj+FB*PRygBs4_d8n!@MpoZ6g33nXzc_I^oyxlB0 zR9Ayo{`n}+8(*AG1|pl>8Ojs{&nK0RA|Lw32|cFdFWIEt6|4HA@#FE^XaTOXcg>n+ za$g%gu&SqfP;bEFgwp){n1~|X12OwweO^t@)~qdcU1xPYLHbRthYmneF(0$ObcN8c z;^R>yLHUuKA7y&!rxB{F+L_(|TcDL7WXp5SKscN7+1I(Ss0xC;GCUiWtG z$1QREx^bV5tl^j)3$h5hXeIsfD&oK`TNnEXI>4k2Pv*Ec9_19fn+@7}T6o9d{4B^N z9cu6d{ChUzfonn`QsSc?M6q2}Q(_hoh=}V|<&+Dqt!VvqTynFc}V9p zcR#XJIq=W5XXN{Sb0(O&cFI~6<5`~u9@>lY^Q6&cK}osJJ16Q2g7lC{`V^?KQbx?= zNQp*Ka9%BE(Sp&Qrf2hJ_6W6y7wi2a2_=m*&vRUgVdH>EO-a;EvLy7>mi!O#4SSM0 zdrnuZD9>-`SBKgQsO-U&#a{t?cNw>^%<4h$n1?N4+8BGHegLJ+$Ej=j>^@_vptS?e zF47_mHRhL!p?3e9aS&Qpet;FQN@r-PboH{u;E8Jhn-yWE<9GDf#Ki zv>VWpel@03!>JWv>o^t%cWFTw_`==T0{46(X5)S0S%19(%Yd4kc~eO;e8bd|kwlf9 zW$K(JjpN}rOZ{1oO9grt1>N?8srs}Xs$?FjlCiw*!)Y-M4BICXs`a(}_kaFvgo1R= z7Be^|Pb0h>@K?AZ+Ue168}!jydedJahN_MJu!2AtGU$AW!7qctRf*I(Kz2ww@TZB&G7We8a1PD+IvkgkDAYbBm-vp!V+xe zktn)(Z)7KbsO={zLnJOjc4nRAjyC>?L5We*z3&c3v)k`|VO&a%y@ zfVN0PAv&w4rvgJ7QJEzS_DK`et-~6TROlG=LIQ^i$p2_+RI6Ib+s?taUv^v*1rX2sHrZOr!tVe4nXT@vLXb5E-{ zYP3X0$)g)krv@)&rAoX@ay^1c#3g6OAK9 zgO2Xdtkrn6)rd@nrKnw_o6P8Vwr09-B(jyC{qDs%9FQIl-~Ec1PVf}`-VYSz$WyA* zXU|iC z=!Au27ge66rx`w<@D_4&w{5YnJAF!QYrTm&aB3*W`fQiadUotnn@#h%P5c=Ro%!;7 zzv%_*Jl_K~SmR|U-ocyle$D-25$LG3fhOclBvXdrnpECPxlBVl`ryyBo0U5KNoRJq z0ygRrrkZLt^l=b~u3lNSbc)7W9DLln;O_H7F;hKADa9|{BliT?UY7v!F-3KOAni7n z(IMOD%;VyS`ppmrENgWtmW%k!Invb;p`5U8GqUh}Dfwr0!$oFZ@e@&vR|w|oeg9lM z#PXbQ1!)ef{}UjTM&B1u5`W7TGR2&qSU0oESiPZO6DdtH7QH>#xanCNRMIzbnvcsu zB`)t6DTAgJU79Isy4%zG)sD~nSjC{q2O<1Kkej_7{(pEZhib<}Nzlfx*U~@_RPpC9 zwrCG`Nx(kMKfFpw1{R6*UT~bRVU50O;1@o!4%ctsqw7@a4`v_sc947JE)E`jfywdt zIlh_h;JF{Er&0YIDz5nc=AqlVsv^&Rdq+}!9~ptxBFb0?#Ie> z+a^(D{Nz+C?jUOL^Ru#9W$_Wd(1~|1NZpF3A=R>kwg|oa%K6MN@xuVWCNgVte^8r7 z0OpP7Ir~qR!-o8fSg#)!vHjQh&pOD^J2gcSets&BTP7dqnl`gpSKmr-X)eyhWW2(V zS&X{KMo;RHRa(|T6IR4mVN3f$c}MF_b;bIRXLkh0|ww+*{Z1Pd(EO4_W&8fLV=6zQ5Qv1Sq!j$g=;nNo?mR?~qR33uFDIT%LPW zN=127m540r!fj^bj;T~^aeGd0BA2(NhBxtf;tU$%s&KaH=0~&gSYGc;9TjHIM>mq>6yTR=&H&J9Sbqrhh{`w|K3tIXn@kzK59srEpiNq05!3;d`o z$qfv15TOnh746!CAilW@MkoIi{g45 z3oa-OQH`T{6wr7bFfFvBca$i(C0A`tu+J#j{csRJUA3@5d;Ffx8czkb`_z#YHEBM~ zb*ebSrLZ8Qof@@Jr-zyFHZ8DY1pUKPRvncvPqQjhB6pic&IZ&Uh)+J2(}l~mC?s4G z*X+diK9=0^=pX6#0g>g5)1~ICuskTZZAytrcQOT0fw*4ImpNo)efBbP)T)}S(9Ely z8%GYR_Ty4IRqZ@4XWNb_ypHqSZX?Aoz`j&N)P($I_Ze&uw0H{dj&; zOm*Jy6KZb0ig)3Wleo@Z_Es6EFU*lm}1oX)xrp$``Dz@dXMy(5tSjLHP61E9!InS zI>hb1%S_!%zX0Md=ZG&ks}nd84t$ccQpUZici>gljo*Fu!K$DC@ZeqClNs7k3%Zwl=KQ`w z6FRqPAl|ZQ;8T~s=~c~|YvQqoAITOe;R*Wp*#G^u$X>=+X1>3lZ zvI()fbGoE8dECOI#)Kj^P%(*MjFdi|j}n!S_2_aJp^?EVEluAF&#ySdx(v?@Spnd=Up2ry$8=g?9 z>NZ{9D%BaY8#(fP?}ee8>t79ChiOV8@2-qcg8Z0!QeK~p$E%xBY@*)XY16gD3lnz| zAw8O18W-F2fw!kSqtM+l24kdTIPhvMfP`p*>AA^uH>|Sz-3-37>O~@q>4oco&(KP^ zsmJVXV3={dIUl5N*o3ybJrp*cjv04 z1QEF94&&xWXV286UU@8XJlTi&omAFNVfUt^?0N@wIx9?yDwL5zQY63p5 z_z-uO@4tLkffL1BCyH?GqoQ`cul>h$ir%bIjY;j&W7RL5htxWT{5;6KA5F31lUc-v zgJtHc(xz2v1>)h>qaFY`>f|19D?i_XmnH1T<)|sb+<3rmv-c+h<=p_|#G{RiR{HNh zPusXFm&9ICZ4meOJryyw9%%y4@Rwf^sTPY5JW&zC#d%Xg1GgZ$sJMcHi~%Ms6kBHLz|FRn3gy;8?ZN?d z8~=|yC6c+aiAGc^)@}Vg4N6SU!_7q36s3bnW=oV<# z;K%Z)zD_b_c$Z912F;MJF(87UhnO(pjMFOD{rFqm^sDObsSE1Mb$s)}JPj%715#>rEev5^3~(hg z4Mu}hD1?TjoG@m)fljFn7i!cP`fC>w-;rdy&l_m_8KQNzikz~5DUeF-N36Ebmd#Yp z*@Kx;^9p9>Kjw>9S4Fwq+MYbBZQmcV;lnYpM7Y0}S4#7_Nbx+h(NE3M2G&Evzd^M< z?UFGY6jF6mUr!OzvX%Rm>KVl+kNdJ{pUKsztJ#$w+Bs6Z4WLku zXyX3c&&7wI#Z7KCzt*XzWDBLx%30QZ2#A;kAJho1kR+vxj%&~I*foGi?lTl&AARqW z`WB~12XtHcDpxpIlkMDxC6szWL+g3IFo7~zEr{m=R@Cq4OlH%Jni#KK0IpgUHzj~$ z_M={FZ8b4wPZ?d^Gbz8`U)#`)_}Xq)C1jXLQyxD#!iA?oS&c%mn+>o+pgUo5M6Td+ z0d{MHN8Y{&()4F~y|=Pq++WQ;(HbzE6~=2D5E?JY?j9)|1Aa?4Y}I?RGx`stHahrE+myg^%<)EM1OaSig=MS4InQ zi`{>Yfj%@>j81~CWrer8^M*Kga zQe3E=P@tAvH>wA^8XkLbn2*uOom%C!o$DdqNM>G_vt2S;p?8cy(HV*swcXF#Gl8U~_~l0sKg!o*bQrl3pOWT6k<^oym;A+l&8MASMZd%q%v|Du z9TSgROv$}v&r7wYXsPT)SN}%wtN%uWV|ijJt)6wFLY#6>zY!pQn)W=UA!W@L1$Y~t zhBpj|3h4i!PDGDuYbNadF#Lz-!C&(Rg!68+L8Wr$`|>gd6V|t*(Bwsr&~@~i)6pso zdX0sX<)=hQEi0I2D{xe^rn?4!&@@`~@;+!eJxw&UzWFM;EUF{(Tz+*NQb%7x?O87H z4yq@J*vGP{LQPauxV53*83A3VR@MHLFLI01;PmbDQ9LYv>49>-QpvpHz$y#o2CKESR}~l*v?;5b=a?>Zh)Sr9 zWm_NU#!Kh?!~4#vShaCImT{dcZwI?LeJt#fp$!R2pUxYjWZ&szLL`px)!_FXpIg_4 zB<;<~X$9p&poD=0G520!Rs{7&$(Mhsrglsiv5VgG^D5kuA(Ld9m`ddCb{89FJ3hdd z=WGq#m+yk?CrjR_go)Yf)(AbASR6ykTouHKV-%~I(hjLMyuJH>{fN`i*R&I(!k=bg z!6EU=rkKRPSg;kat;-+g&Z;kIPC5s*uCl*yM4(48pr6!Sb}latPQg2|G{a-gWIx}x2!A6ReRJlUir?Dln%LR@507Lrq{fegP9Uf{dDy4aKs)ah~ zZuY5C4Hkio&mmZht0oH$Blk6D4G@e+G%Um5MoM(Fn&5HU+FtxE5AUg7N>S+F5rYCA z@>#oe96c6jP!8Bufhe`JJ)1OtUO(s%X4?Nt%$8^!<`o%qrU=bijN zs5jcpB}b!2j>p0l#RU_?n#qt)g{s3c$cjfQn$scq99nkH>r0LP3E~}{UNk*>)jw;Jclcg0L8Va zd4^XHcK)Y&E{FHOevpzf`f?N^jgtI!+)9ml_t50`H^7dY`hZ}WJ^g)u?fj&}uWDu; zj_VeZ_2g;EsL7tk6XlOqcam~(NsBc=G8P5kV=~(}Q133B7hjd6Gu?NgzUZJIR*0>6z<0dFWt;DBX+9CG&_+E zi3QIRG~qmYXb<$?`|xaI#P53-%;!{XF5D?G}7@&{i*S;j`Ln#A!puL zlH;kX<~S@B$mpY+d#W^~gt^IK+6gg%wURNcuk1~=pDA#x1Kmm8<}L%ykBemr2+%+F zxs2rn>thAwPEKaNgvr~>R8S(|bq$+SyC8PZhKOe1&_W!&{A6NdzR(aADEKzdm~vZL zy4x(e|32LM|Bs9He<|nincl794ieHxHx^VrA=GSlHlICsh0~|~A~;o4z3sDlEwz%W zbQc@`4^P{_hvwN*|MFe;X-^>zR29F1liK0*ZP460K5ZfrW7NT?sdbEIbw^Q*BXE=7 zYb4KnM}?p{yXJFwn^|3&kGBF>mj*O4a~gq`+Jc8*z|hbg4{RV&DEkj`)c2DXBq!KX zPx<}D#D_|(zT#vET$uuv>F~)1khHV*DwvJ(1hMPd#a#tMrZ&9VK9=D~md2@bIxE)2 zH(VH5GBREH$1~%!Qv79d!E_;XxD5`tK{EC^!%MkrZI6`~s{s+aSs{iTEqp`0ZCxCz zjQ*hYXHmB5{RS@nR>Q>aB44&QO;+IOE_i-1j(*oyO6lBC;Uk^YC=FhnFe9|%+CRL~ zuD$_d8PTpWgX_M-q4HA!()fpqCW8Ydl>-uTh@f%=u}=8dyE2xF(=~DP>vO_RjbY5G zkgcMOhEYyxWV+#-Lz6<;Y4ZGlF9K?&JFVk!P`3mUr-acweQ|6NOHI&8QXE)5X8XCWUe~#=*3S#j-F$KNjyNvCs9b5Tb#7WD*M1NMd zbw}IV5|+?XBs}N*BYciyT}E-l*$iItaj$mjr;9Qf%N|&It}!@A{R)u4N3#vso7jzIz9Oh4%|V$GENQ*;{vfIv7{@qn;{bG;x6m5vZE zxINw&-3}=@e18RnrDzj!>Gj12oZw=_Gfl59m3}O7A<}7%su^qSu0}5{+$`v05QwP+ zZ4(MJ$~050;-PJLNbF5=Ri%l_)!f+;M`p1P{+yR}qmFJ0-2aR2Q#O95n<6Qs?2ZpX zk7*{KMUqoie1B_Jm}x_O+tRpHV-}sEpVhjM!|r@+xR&zREx@MhGA0$dWQ`{1PJ;LsN`o5&1Pk9$i-@84as@NC=ChF&F}rV7 zPNClkvZzPxR@BkDJ7J?uz@gxm`(FnjQZ*DqSu`rs&QIOSMC20G+2=lqIK!_s(H`X` z)W!esmQrI%<@5@9Qu1wkNXOni^?Z**KAdZFByXUZ-qJAmpR0LA83~nwbnory0EYCq z^Kx;1R=4}zeCpDmQ=NylI^hj*iH5bY6H`*+dlKgJgNu%5J&rWb3|)8?VO==B$fRok zS#H)@VjroAT-i5}Z>`1N)i{>XypbR(^r!5cMq z;zw7x&UAm=$1rg!m84N6#&mWZo<$wl&WtahtrDi$vF=sS?Zi(fY;-rNl`;As9*5?j z&TEN02pcS})b7MrIIf%^W#V`2`JO~~)T)M>SRtFhxr1@dIET!uwl1a!rOB%tJ_$@7 zgKk9XcefI;dzk@Ks$^GlKb$Bf(uWM2`x{~H?{#xfL6JH-qK$C@zUQtMT1!8a`W3;e z_F}!lwZg4Ceinni38qF*Af)_J=D7*znH0ve-Yij#_$yI}*FN#av>EYQIM9 zif##2ue&Yr&B^CF8@!DeFC35MI4n~K#vTXA>a1@3Ec7L>+QbDkH2&ey-|nqn znx?sGs>cfl-M&CXj?ZecYdbk{!xh}<9zQz-ebrD&_0MXU8hw$NC_6)fV@l!S;85mx z#5sB)s2N2FyrwopDcQ)q@v{L`qQ2;MsxCB&z};Dmm*q$DC4wNFE>AtT7r3R1%VNis zyIhFwl4Jb*qJ!^{jd@ptZBL%MR6?iAcu^d`Bo`w$x0cWtZkLg(a)if#TjT(yn1RaL z3HH7lAlQxa&#<&rk6^f;RXJ#ltRcM=mmU<+)`B2sHw7)`n{(LE?c`{RFzg4^aSRP0 zk!EJ&f}>RZ$eK}n4*lDouXzn5qJ_UY8>YgHH4q2(q{gU9@AZKIQU~8Zj$xBW>j(>` zJ+u6t27{!h?!0Kq0rCN|Xx-1pPsdcs8yG8S&Xw-=)>ffBw5APf$ZScBy%d57YL#f3 z7!%KJL{>fOLl#IM$fQLvZ26E-FATF+4M<4Uo(cIAch%`GElyrnnXCBzO2Xws!6`DM zv%ZzY$zps0=r#4B!ciID4*lxfzI;c%OM2JoNe0gK`w4YBd4f*LEEr0jiJcj2jQ-+y z05Fo)yj1*T7M%NKZ@|ejd7{SS!0u$1&by!IBl*`Erw>u5=w2wNNBnNO?=m|(75@yu zfc>piFYxa@;5u7`UDHKDbA9jerf)sZm5GmWrrrMUSXInfuz&Q(c;5Q#tm|1S@@vBz zY5mfC^sUPx=9%IK7Eph+AqzzX^zHR;R+frJ5TP<-mZFYFxVr; zTbWSxLF%tByNM<6CF_g+^s!$sXvRdUbRcO?E*EqQLv&YQ#|OH34$#4zGwf5xTJUSm zm%4G+%6*gd5b0VSG+P7vSfvRs;h|s43tL{@lvB5pDi0WXHr`V3WJ?te!kLQQ?g7)% z-YJ>63q2gg@u)Kb$x&w%*ebVT>WiUTL=demRTlA^tI4C&2#t5vE8yU!S2aSAI1VFG zLglrq9nlKCdgXevQ=L(NW96XrIZv1YED1Y z&f{>7?*`zP?b;@%+^goh$J`^hu91hj*wysQcbWA8Wis5wof79MSvdRUr>Npr$8$ja3u$Kbw{N0OMf6IKpeNR!`Gl6E9f&E|n)M&iYtYNU zX~l4!f_Tp=_ZB<*;+)pk3rO{TO+DNDRlqUO3Ph!Kv?Swg>~T+Rj<{p&;PDNdqwhrNlNZt<<>6&YMW2T{FO(gYq99=fvDxLB?VAouHg%tq3tsom*>8 z=yna1Vk@GcUyr?q+mKdNlB|*3k~N_-{YwNJS{?XO!${Wid3MPZ`8JGpLFx9grK}MN zmWHbpk?RDeCp*^_Y9QzwZ%t;`=3?&6M!&hIth$gGFBB!to=CMSYmk<-X5qf}_6_`|ldMz$<)aJxYZ^v768Ld>+4{zR3_%sQWTm{r-TsHC~|1BSs79&vkF` zIV@W|X8mgJDLTn)O=g#Ds$a?wl+?{(0O`E~qsw#rL8yJ|>t5baZ|+q-ck1_7ZgUO3 zGbZpp%UK^|6=(wh??Jw)Bpy-d8WA(m8`fMPzYsLpMJ?m7NU+@N?&#}@@-G9Oy7I3g zdYK$va|LWdJq zuL%9iiLL{4UrPH+@8-GRE;(VVXw;K1DNN-!NUc5YSb2qgE<<6zN0Gew+!&q*D^3`_ zHv`t_(PTdPcKY-*laGT*tsADEUmeF4H&Z+7rP`+{ITvTQCc}AMR-`wX8hPkdI(fO){l#J`eto6r%+0M;tG`Le7=sAK8Pycj#Qhh| zZhG3x{#s2XMwV!*zqDiC;);P8o7fR}*AW5ok7XGtodOZ*h&V)Gg#vndHaRf-?$rh@*<&0%gqCxnjFU^*;QiWE|i{6wJ;B8#hbyn+MA6K%=_s2{LZ*r{402dq-eHo^1KAC(THpmi$7fUV6+xT`s~lx@r6qCN zHN3DC$^y%VI+2%|T(Sv{^O*Cv%ASoJ@Ie%6seN{9SWCZB-;Dn5a$|NHIXASrx@uW$ zzOB!!|Lpe|-H^-}(5C=+mi*knq|rpaD&ivO^D!3e?h2PQ3GkH+S_f9oi?B*`s3gFk zYCujpmJrJ6;ZeUQL3=Xp{hi`naFgI(zk6Lo5id$)j6Z+hAVJ0@`@jiR6Buezbu}w7u_1u+91tb!#m2@khXQA5183&}rEB2Od%Y|klB#%o#>J5U^ zb4H8=F$|hR_U!D|<>$f}o0|;V=9R&1$2vH+6_x#KGcb-!`czvtAE5q<@eXgzpwcgEdh4cz(YNO(g8m7GM3)BwH(%z zs+p&zB<5qeELWa{bTf-`#Nc^y#85<`opeo|Dzx4g1C6a=&X@B2Or&r(Z(Q)Y1x;>t z!6k@cS3kqeS-Q#kT8v+i{h+yK9jOoYO>FLdf%Ov?mEdyM&9coq$b-q3vL)zTDKb;M z8IOE#u{(? zZp(LdP-3)s1Mv>KqjC*}o;f=E6ncB$R@gsGNt*+tDgr4rT?V2}>>i@E-nl&~7!k zlMy%S94n9`e3^#G`x0ha*)-J9pKCB#<3Z;x=_82P8(F6n5L@w;yO(ZAL+3~tJHi^n zgz9QE6Bi`oa(d5F_mDU5?<7vJ^>{LO{BW7kV{bR^&@1}~Rz2VN;kWrQY>n1VE{@E1 zn}wctH4H22upco&Y+PN0JG2mp$xwADR0o6@aUG}%i;Bt+q{NT!Nhmt2ac!53 zPivc<>8!Pi46$(^4_P3j4(Xx516>@hCJWU_BRfvyIZFPM^~g@DRr`=JwzS1=#g<-% z!Dt_RU~aPRo0z_74Wr7bS--pe-XxFybP4q+=_*cynyMqw6qkzRA#-f6sU_Xnd0J1C za$KQMEYxm~lh#yYA$x=8lju>a`hjkKdXf4KR$Xh@iOFq>=0T?~5$lR?3$?RZg7wyk zKA5b06oN!Er6GLc=nAy*ae^BTdx7Kib?Kd3v7|oZ)~ClAT|fOC#l5$UO|vBA;ng@p zY2=UsniV4z7)?~3T&h_=+l%*sJt5w4*8753h68TTID{we?H-?egk`S%t^V`%fl~Z& z^rc>u{7Q7jU17LzvX`C5hRz)46RbZT{bU)7Z(M)eiWOH}R7_&<@8Pd?vwoCU%XQZL zy|`J49BgGa7MypVlpz9drE?5&b=={Xr1w7)y?wTd5m(Q?EHU% z>vItvbLiSLPlz>7p^wdlPSH-FkM~?mrE>hnla#7ZL!}hohYVqF%00nrMSh=$Jta@> zfj%0B@>F@VHDa&zFI(1>v@Muu`M{M8n7*Ck!h1+Ze?HhYa&5 z#mE6-mi*`awJi`oS2Gt1M?r>0dYDVMqtIBWh*dr7hP~|$103*;L%D^oOHL}c_`_QYQ>Ttt7 zIZ$-Mh3yVNPwGH1s!*7(ZOJFS+MgB1%|z$Z%1V){{yLBnJ@t)6hH(!&Mw;V_>lW1i zLDySGMH#T|+8~OAfRZ8|0}S1rN)A1AOG^w$H==?_!_Zwb3^Q~$C@DipH%K=~r@H5P z-*0{E-D~gtpS5N!e%$wUU)OmaN3wG^^B+?W5j4~_%$;*gUXtVQ2ca&-g(Jg4ArWB? zeYnYGOy}<{-uZ)Dm4bg*{cJu44mGLkmzWTcf5+&`D4`H}gS!@q%*m&<8MC|$&o0TW zSDMZmWo(lP>{Zvo`3wyEMEkKD!nf{0d;8D6{CqT(6xzpbZ9VP0nKX5Bw6z0xC&-bQ zG(n5U`NYu<7C6d%LsCA6R}!NM0On;9G!|_*z4wbw5Tm;3^<*H2yj-Y9N&0D(r-#q{ zs2KEezp4AK+qqTa5vh}Sbol-b%xprlp7iZBCmIn|46XHxr#)TRQR)sIQy!9~i6%H4~(!*+VSyj_A@G7&EryX%LWiQ4Q*I$$@!#pnJ5 zzQsDJML$s1#~YA&j@Q1d7a*0(JCm(9f(w|`hBcU?&58e_Lq z-fWioO#ds-Lt;0sOJc<3*SgomZLAih`sPO{GPCv_#rP=gFos!}X^|eAMV3KeJqf%u zTX=knHvuaBpnYc>{RgwIXz}K;hH)@Wiv|tpZcfNy)N4;O7c~yp+BRYhV}n)O+fP#O zlCrGU-h|E`-z*qcPXD|c=S52yPIVB~C$~?0-}-aJp1JS46?AQ9|FRGyB`3Y(Bz#H` zFyz)i_X#Xpz&uT#lSw&kQsxWkG`sZ0OLrxLN^?v6!&=w2u4NH5)f?P&mzcokgE?<9<^%uV92_j1{39JulmGfzK)i*_*z%Y?lnX-JSZgf zaX)!t8pFwEv7q-g&}?0F!e<)zG!aA8Hnfcu-|1wJ%Q7IXU@z*SyD#XPgV#C*H`JY_ zq>$i|;h<6H-cx(rSRcWo2*YX!?0wvK%)5VcXBJuh;j7?&i-b~dN}y0GXYf>Q=qr6e z@YzI?t)GPxp=QN0D1oIVrpD59rbgM}cg_lBU$QsK&`v<^5oDH4oYy)`(t~Z!jS}}s0@3_$q>gtY^kCds}^GHs{Q`DwD))Wsv5!_)! zKOLkkm&xZCsL@U|wGf)b?De^wUMsJq1c(1kp1Q@Rbb>xnSKRE8fzoJYI)%m-_x_c@ zSP)LTPz{Ck>Es0|A3fEoA4%1R5-Afj*t@t|UZ0}R9Z;#fN2F1iX@HmJ!#y8~8hPRL z^2($iCE_p#78kdCUI^lwKLbU6X^7M9{IHcF`5vh*>tJiD+lTn7T|~Y`u|QH%Djdyh zXoCMnGvUFVLMW$=t=D;go15N!$i+`k48HWf?Q|9ClS-n902#lt|Dt;c0<(Nq4IkYeI>-yd)&$Q9TQ8V zhg^Wd?+34mzmpSxQc(l1E^WG)D52^*4K1E5rdoOK{h?L+x}y7R4THk4Iwo!&;S&@d z&av$`vl$uOr4x4%!q7TNbhbQ%;}zT#cwD>6JFj-D0wtTwk3;%Q>E}4VR!T&Ya}JA~ zI#3cHSj9L=<)>7=ywI0<((nVML8A8FchXC}={o|Ipgw29l8E!oeGn*Zhe0G{1)Me1 z@G7+-K4zIlFaF8FtW6`xlueNKdRsYqV9)!Jc6?3~sT7>y3dQ4q6E{cqS9Rh1D>joQ z{8!@L^{Bol?|9^xz$tDv=B$q%Ju<|b;`8C~WW@4ilR7(+(g{GC2qV*|UnOdn&&kml zZLc>?hRUbX{df`TX`?AvW{oALk#a17$Ua~Q(*D|29+=y1O;9n^%2)RCP;K+Dkyoj! zigmhndSP`yt*jyR#i@f4t6{UiXds5XaXz3$Tm|%TmC)JNe?GaeoJPpj=frNkjNh?N zG#o3VS!{sIwNCPd)(<*|HgPholVhV75}u{1{8M+tuLgOHh37-~{-k+|Wp|4{U$808 zrZg-wB92Gs)P8X{2@?jnEv_>{73EAP+uVKUcnVc9;9Pz(kjaYO60;;L`o5=KnG4Y7 z)x^2J((8rBA2Ot_Q}%3%s${bJ`8nPAoVOX)eb@*h)5vot*}(mo0#&cox~84Ll43DE z)aqxGW*PX0MUoobBd*Txc#vrjO^0JZLl0htNkVfDd6MJHBa-6PjaskQs*MW@|e#$?H7)p6tYka(xxD_P;STH%$BBnBKp ze$~rAcbtDp#)YX2$};vVfv#PD5Aos(BoI&Un-v5zrdBlG;`U#u$JU2fyM4$SuigE; z*AVXYicIm^q1m|fN)=_D^Bq>9JPN$CtE(s;J<o$etRD zAw$*)1GZi6pSIU~gfs~s@OE;Xxf5EE-&xV!4s}|-puHBeX5S*%=d~qkmHh+SsgS9^ z&$hl@r_≺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

84?s3YQ4|s(S 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%0A>Lyq~Tpm>A1#EEzun(S8q&#b?B+`6?FF*}Ke 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