diff --git a/CHANGELOG.md b/CHANGELOG.md index 75b1c529..e1648d78 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,34 @@ # Changelog +## [1.2.0] + +### Added + +- Product prices will update dynamically to reflect the price of the selected variant. +- Reintroduced the ability to set API credentials without using the connector app. +- Added logs for import errors, viewable through the plugin diagnostics section + on the plugin settings screen. +- Added support for links directly to product variants. +- The import process will continue to run via ajax requests while an admin is + on the plugin settings screen. This can speed up import processing on sites + that depend on WordPress cron jobs for the import. + +### Changed + +- Refactored Gutenberg block registration to re-use code and allow more + configuration when registering the blocks in PHP. +- Font sizes use relative units instead of pixels. +- Increased quantity field width to accommodate three digits. + +### Fixed + +- Fixed compatibility with newer (4.4+) versions of Gutenberg. +- Updated the `$_COOKIE` superglobal immediately on setting the cart cookie. +- Fixed a PHP error when the BigCommerce tax class API returns an invalid value. +- Added decimal precision to price sorting queries, fixing sorting for products + that round to the same integer value. +- Improved accessibility and keyboard navigation on the plugin settings screen. + ## [1.1.0] ### Added @@ -191,6 +220,7 @@ [Unreleased]: https://github.com/moderntribe/bigcommerce/compare/master...develop +[1.2.0]: https://github.com/bigcommerce/bigcommerce-for-wordpress/compare/1.1.0...1.2.0 [1.1.0]: https://github.com/bigcommerce/bigcommerce-for-wordpress/compare/1.0.2...1.1.0 [1.0.2]: https://github.com/bigcommerce/bigcommerce-for-wordpress/compare/1.0.1...1.0.2 [1.0.1]: https://github.com/bigcommerce/bigcommerce-for-wordpress/compare/0.15.0...1.0.1 diff --git a/assets/css/bc-admin.css b/assets/css/bc-admin.css index 515f8c13..226fd1cf 100644 --- a/assets/css/bc-admin.css +++ b/assets/css/bc-admin.css @@ -541,7 +541,7 @@ border: 0; } .bc-choices[data-type*="select-one"]:after { - border-color: #888 transparent transparent; + border-color: #8b8b8b transparent transparent; border-width: 4px; right: 16px; } @@ -557,6 +557,12 @@ min-height: 20px; padding: 11px 10px 10px; } +.bc-choices.is-focused[data-type*="select-one"]:after { + border-color: #4b71fc transparent transparent; +} +.bc-choices.is-focused .choices__inner { + border-color: #4b71fc; +} .bc-choices[data-type*="select-one"] .choices__inner { padding-bottom: 9px; } @@ -574,7 +580,7 @@ /* Admin Plugin Settings */ .dashicons-bigcommerce:before { font-family: 'bigcommerce-icons'; - font-size: 17px; + font-size: 1.063em; } .bigcommerce-settings-page { background-color: #fff; @@ -586,14 +592,14 @@ .bigcommerce-settings-page .bigcommerce-connection-status__message { display: inline-block; color: #829d5f; - font-size: 14px; + font-size: 0.875em; font-weight: 500; } .bigcommerce-settings-page .bigcommerce-connection-status__message-failed { color: #d2574a; } .bigcommerce-settings-page p { - font-size: 14px; + font-size: 0.875em; } .bigcommerce-settings-page p.description { font-style: normal; @@ -650,11 +656,11 @@ border-color: #4b71fc; color: #fff; } -.bigcommerce_product_page_bigcommerce_welcome #wpwrap, .bigcommerce_product_page_bigcommerce_connect #wpwrap, .bigcommerce_product_page_bigcommerce_new_account #wpwrap, .bigcommerce_product_page_bigcommerce_pending_account #wpwrap { +.bigcommerce_product_page_bigcommerce_welcome #wpwrap, .bigcommerce_product_page_bigcommerce_connect #wpwrap, .bigcommerce_product_page_bigcommerce_new_account #wpwrap, .bigcommerce_product_page_bigcommerce_api_credentials #wpwrap, .bigcommerce_product_page_bigcommerce_pending_account #wpwrap { position: relative; padding-bottom: 210px; } -.bigcommerce_product_page_bigcommerce_welcome #wpwrap:after, .bigcommerce_product_page_bigcommerce_connect #wpwrap:after, .bigcommerce_product_page_bigcommerce_new_account #wpwrap:after, .bigcommerce_product_page_bigcommerce_pending_account #wpwrap:after { +.bigcommerce_product_page_bigcommerce_welcome #wpwrap:after, .bigcommerce_product_page_bigcommerce_connect #wpwrap:after, .bigcommerce_product_page_bigcommerce_new_account #wpwrap:after, .bigcommerce_product_page_bigcommerce_api_credentials #wpwrap:after, .bigcommerce_product_page_bigcommerce_pending_account #wpwrap:after { background: transparent url("../img/admin/bc-bg-geometric.svg") no-repeat bottom right/contain; content: ''; position: absolute; @@ -665,7 +671,7 @@ z-index: 1; } @media (min-width: 783px) { - .bigcommerce_product_page_bigcommerce_welcome #wpwrap:after, .bigcommerce_product_page_bigcommerce_connect #wpwrap:after, .bigcommerce_product_page_bigcommerce_new_account #wpwrap:after, .bigcommerce_product_page_bigcommerce_pending_account #wpwrap:after { + .bigcommerce_product_page_bigcommerce_welcome #wpwrap:after, .bigcommerce_product_page_bigcommerce_connect #wpwrap:after, .bigcommerce_product_page_bigcommerce_new_account #wpwrap:after, .bigcommerce_product_page_bigcommerce_api_credentials #wpwrap:after, .bigcommerce_product_page_bigcommerce_pending_account #wpwrap:after { background-position: bottom left; bottom: 40px; left: 36px; @@ -675,21 +681,21 @@ } } @media (min-width: 960px) { - .bigcommerce_product_page_bigcommerce_welcome #wpwrap:after, .bigcommerce_product_page_bigcommerce_connect #wpwrap:after, .bigcommerce_product_page_bigcommerce_new_account #wpwrap:after, .bigcommerce_product_page_bigcommerce_pending_account #wpwrap:after { + .bigcommerce_product_page_bigcommerce_welcome #wpwrap:after, .bigcommerce_product_page_bigcommerce_connect #wpwrap:after, .bigcommerce_product_page_bigcommerce_new_account #wpwrap:after, .bigcommerce_product_page_bigcommerce_api_credentials #wpwrap:after, .bigcommerce_product_page_bigcommerce_pending_account #wpwrap:after { left: 160px } } -.bigcommerce_product_page_bigcommerce_welcome #wpcontent, .bigcommerce_product_page_bigcommerce_connect #wpcontent, .bigcommerce_product_page_bigcommerce_new_account #wpcontent, .bigcommerce_product_page_bigcommerce_pending_account #wpcontent { +.bigcommerce_product_page_bigcommerce_welcome #wpcontent, .bigcommerce_product_page_bigcommerce_connect #wpcontent, .bigcommerce_product_page_bigcommerce_new_account #wpcontent, .bigcommerce_product_page_bigcommerce_api_credentials #wpcontent, .bigcommerce_product_page_bigcommerce_pending_account #wpcontent { padding-right: 10px; position: relative; z-index: 2; } @media (min-width: 783px) { - .bigcommerce_product_page_bigcommerce_welcome #wpcontent, .bigcommerce_product_page_bigcommerce_connect #wpcontent, .bigcommerce_product_page_bigcommerce_new_account #wpcontent, .bigcommerce_product_page_bigcommerce_pending_account #wpcontent { + .bigcommerce_product_page_bigcommerce_welcome #wpcontent, .bigcommerce_product_page_bigcommerce_connect #wpcontent, .bigcommerce_product_page_bigcommerce_new_account #wpcontent, .bigcommerce_product_page_bigcommerce_api_credentials #wpcontent, .bigcommerce_product_page_bigcommerce_pending_account #wpcontent { padding-right: 20px } } -.bigcommerce_product_page_bigcommerce_welcome #wpfooter, .bigcommerce_product_page_bigcommerce_connect #wpfooter, .bigcommerce_product_page_bigcommerce_new_account #wpfooter, .bigcommerce_product_page_bigcommerce_pending_account #wpfooter { +.bigcommerce_product_page_bigcommerce_welcome #wpfooter, .bigcommerce_product_page_bigcommerce_connect #wpfooter, .bigcommerce_product_page_bigcommerce_new_account #wpfooter, .bigcommerce_product_page_bigcommerce_api_credentials #wpfooter, .bigcommerce_product_page_bigcommerce_pending_account #wpfooter { border-top: 1px solid #e0e3e9; z-index: 2; } @@ -707,7 +713,7 @@ } .bc-settings-form .form-table th, .bc-settings-form .form-wrap label { - font-size: 15px; + font-size: 1.071em; } .bc-settings-form .form-table th { font-weight: 400; @@ -751,7 +757,7 @@ } .bc-settings-form .button { text-shadow: none; - font-size: 16px; + font-size: 1em; padding: 8px 12px; height: auto; -webkit-transition: all 0.15s ease-in-out; @@ -773,6 +779,10 @@ color: #d2574a; margin-left: 4px; } +/* Set base font size for BC plugin admin views */ +.bc-settings-bigcommerce { + font-size: 16px; +} .bc-settings-header { color: #34313f; display: -webkit-box; @@ -912,25 +922,25 @@ } .bigcommerce_product_page_bigcommerce .bc-settings-header__welcome-title { color: #34313f; - font-size: 32px; + font-size: 2em; line-height: 1.01; margin-bottom: 18px; } @media (min-width: 768px) { .bigcommerce_product_page_bigcommerce .bc-settings-header__welcome-title { - font-size: 48px + font-size: 3em } } .bc-settings-header__welcome-text { - font-size: 18px; + font-size: 1.125em; } .bc-settings-header__cta-title { - font-size: 22px; - line-height: 22px; + font-size: 1.375em; + line-height: 1; margin: 0 0 14px; } .bc-settings-header__cta-text { - font-size: 16px; + font-size: 1em; margin: 0; } .bc-settings-header__cta-btn { @@ -965,11 +975,24 @@ justify-content: flex-start; padding: 20px; position: relative; + -webkit-transition: all 0.15s ease-in-out; + transition: all 0.15s ease-in-out; + width: 100%; +} +.bc-settings-section__header:hover, + .bc-settings-section__header:focus { + border-color: #4b71fc; + outline: none; +} +.bc-settings-section__header:hover .icon-bc-arrow-solid, .bc-settings-section__header:focus .icon-bc-arrow-solid { + color: #4b71fc; } .bc-settings-section__header .icon-bc-arrow-solid { font-size: 20px; - color: #888; + color: #8b8b8b; margin-left: auto; + -webkit-transition: all 0.15s ease-in-out; + transition: all 0.15s ease-in-out; } .bc-settings-section__header .bc-icon--settings { color: #4b71fc; @@ -987,6 +1010,7 @@ color: #fff; } .bc-settings-section--open .bc-settings-section__header .icon-bc-arrow-solid { + color: #8b8b8b; -webkit-transform: rotate(180deg); transform: rotate(180deg); } @@ -994,16 +1018,11 @@ color: #fff; } .bc-settings-section__title { - font-size: 20px; + font-size: 1.25em; font-weight: 400; - line-height: 26px; + line-height: 1.3; margin: 0 0 0 30px; } -@media (min-width: 1200px) { - .bc-settings-section__title { - margin-left: calc(4.16667% - 16px) - } -} .bc-settings-section--open .bc-settings-section__title { color: #fff; } @@ -1017,17 +1036,20 @@ .bc-settings-section__body { background-color: #fff; color: #34313f; - font-size: 14px; - line-height: 18px; + font-size: 0.875em; + line-height: 1.3; padding: 20px 20px 40px; } .bc-settings-section__body > p:first-child { margin-top: 18px; padding-top: 0; } +.bc-settings-section__body p { + font-size: 1em; +} .bc-settings-section__body .form-table p.description { color: #6c6c6c; - font-size: 12px; + font-size: 0.857em; font-style: italic; } .bc-settings-section--bigcommerce_diagnostics .bc-diagnostics-data__description { @@ -1120,6 +1142,22 @@ padding-left: 20px } } +.bc-diagnostics-data__meta-importlogs .bc-diagnostics-data__meta-value { + border: 1px solid #cdcdcd; + font-family: monospace; + overflow: scroll; + position: relative; + height: 200px; + width: auto; +} +.bc-diagnostics-data__meta-importlogs .bc-diagnostics-data__meta-value-container { + position: absolute; + top: 5px; + left: 18px; +} +.bc-diagnostics-data__meta-importlogs .bc-diagnostics-data__meta-value-container pre { + margin: 0; +} .bc-settings-form--bigcommerce .bc-settings-save { background: #fff; -webkit-box-sizing: border-box; @@ -1282,25 +1320,25 @@ } .bc-welcome__content-title { color: #34313f; - font-size: 32px; + font-size: 2em; font-weight: 400; - line-height: 40px; + line-height: 1.25; margin: 18px 0 22px; } @media (min-width: 768px) { .bc-welcome__content-title { - font-size: 48px; - line-height: 52px + font-size: 3em; + line-height: 1.1 } } .bc-welcome__content p { - font-size: 15px; + font-size: 0.938em; line-height: 1.44; margin: 0; } @media (min-width: 768px) { .bc-welcome__content p { - font-size: 18px + font-size: 1.125em } } .bc-welcome__btn-group { @@ -1326,6 +1364,9 @@ .bigcommerce_product_page_bigcommerce_welcome .bc-welcome__btn-group .bc-admin-btn--outline:focus { background-color: #4b71fc; } +.bc-welcome__alt-actions { + margin-top: 20px; +} .bc-welcome__notice { background-color: #f5f5f5; margin-bottom: 20px; @@ -1337,17 +1378,17 @@ } } .bc-welcome__notice-title { - font-size: 22px; + font-size: 1.375em; font-weight: 500; - line-height: 29px; + line-height: 1.32; margin: 0; } .bc-welcome__notice-title + p { margin-top: 2px; } .bc-welcome__notice p { - font-size: 16px; - line-height: 24px; + font-size: 1em; + line-height: 1.5; } .bc-settings-bigcommerce_connect, .bc-settings-bigcommerce_new_account { @@ -1373,10 +1414,12 @@ @media (min-width: 768px) { .bc-connect__header, .bc-new-account__header, +.bc-api-credentials__header, .bc-settings-form--bigcommerce_connect, .bc-settings-form--bigcommerce_new_account, .bc-welcome__account-connection, -.bc-settings-form--bigcommerce_channel { +.bc-settings-form--bigcommerce_channel, +.bc-settings-form--bigcommerce_api_credentials { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; @@ -1389,27 +1432,33 @@ } .bc-connect__header:nth-child(1n), .bc-new-account__header:nth-child(1n), +.bc-api-credentials__header:nth-child(1n), .bc-settings-form--bigcommerce_connect:nth-child(1n), .bc-settings-form--bigcommerce_new_account:nth-child(1n), .bc-welcome__account-connection:nth-child(1n), -.bc-settings-form--bigcommerce_channel:nth-child(1n) { +.bc-settings-form--bigcommerce_channel:nth-child(1n), +.bc-settings-form--bigcommerce_api_credentials:nth-child(1n) { margin-right: 20px; margin-left: 0 } .bc-connect__header:last-child, .bc-new-account__header:last-child, +.bc-api-credentials__header:last-child, .bc-settings-form--bigcommerce_connect:last-child, .bc-settings-form--bigcommerce_new_account:last-child, .bc-welcome__account-connection:last-child, -.bc-settings-form--bigcommerce_channel:last-child { +.bc-settings-form--bigcommerce_channel:last-child, +.bc-settings-form--bigcommerce_api_credentials:last-child { margin-right: 0 } .bc-connect__header:nth-child(12n), .bc-new-account__header:nth-child(12n), +.bc-api-credentials__header:nth-child(12n), .bc-settings-form--bigcommerce_connect:nth-child(12n), .bc-settings-form--bigcommerce_new_account:nth-child(12n), .bc-welcome__account-connection:nth-child(12n), -.bc-settings-form--bigcommerce_channel:nth-child(12n) { +.bc-settings-form--bigcommerce_channel:nth-child(12n), +.bc-settings-form--bigcommerce_api_credentials:nth-child(12n) { margin-right: 0; margin-left: auto } @@ -1417,10 +1466,12 @@ @media (min-width: 1200px) { .bc-connect__header, .bc-new-account__header, +.bc-api-credentials__header, .bc-settings-form--bigcommerce_connect, .bc-settings-form--bigcommerce_new_account, .bc-welcome__account-connection, -.bc-settings-form--bigcommerce_channel { +.bc-settings-form--bigcommerce_channel, +.bc-settings-form--bigcommerce_api_credentials { margin-left: calc(8.33333% + 1.66667px) !important } } @@ -1428,7 +1479,8 @@ .bc-settings-form--bigcommerce_connect, .bc-settings-form--bigcommerce_new_account, .bc-welcome__account-connection, -.bc-settings-form--bigcommerce_channel { +.bc-settings-form--bigcommerce_channel, +.bc-settings-form--bigcommerce_api_credentials { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; @@ -1442,31 +1494,36 @@ .bc-settings-form--bigcommerce_connect:nth-child(1n), .bc-settings-form--bigcommerce_new_account:nth-child(1n), .bc-welcome__account-connection:nth-child(1n), -.bc-settings-form--bigcommerce_channel:nth-child(1n) { +.bc-settings-form--bigcommerce_channel:nth-child(1n), +.bc-settings-form--bigcommerce_api_credentials:nth-child(1n) { margin-right: 20px; margin-left: 0 } .bc-settings-form--bigcommerce_connect:last-child, .bc-settings-form--bigcommerce_new_account:last-child, .bc-welcome__account-connection:last-child, -.bc-settings-form--bigcommerce_channel:last-child { +.bc-settings-form--bigcommerce_channel:last-child, +.bc-settings-form--bigcommerce_api_credentials:last-child { margin-right: 0 } .bc-settings-form--bigcommerce_connect:nth-child(12n), .bc-settings-form--bigcommerce_new_account:nth-child(12n), .bc-welcome__account-connection:nth-child(12n), -.bc-settings-form--bigcommerce_channel:nth-child(12n) { +.bc-settings-form--bigcommerce_channel:nth-child(12n), +.bc-settings-form--bigcommerce_api_credentials:nth-child(12n) { margin-right: 0; margin-left: auto } } .bc-connect__header, -.bc-new-account__header { +.bc-new-account__header, +.bc-api-credentials__header { margin: 10px 0 30px; } @media (min-width: 768px) { .bc-connect__header, -.bc-new-account__header { +.bc-new-account__header, +.bc-api-credentials__header { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; @@ -1480,37 +1537,41 @@ max-width: 620px } .bc-connect__header:nth-child(1n), -.bc-new-account__header:nth-child(1n) { +.bc-new-account__header:nth-child(1n), +.bc-api-credentials__header:nth-child(1n) { margin-right: 20px; margin-left: 0 } .bc-connect__header:last-child, -.bc-new-account__header:last-child { +.bc-new-account__header:last-child, +.bc-api-credentials__header:last-child { margin-right: 0 } .bc-connect__header:nth-child(12n), -.bc-new-account__header:nth-child(12n) { +.bc-new-account__header:nth-child(12n), +.bc-api-credentials__header:nth-child(12n) { margin-right: 0; margin-left: auto } } @media (min-width: 1200px) { .bc-connect__header, -.bc-new-account__header { +.bc-new-account__header, +.bc-api-credentials__header { margin-top: 60px } } .bc-settings .bc-settings-connect__title { color: #34313f; - font-size: 32px; + font-size: 2em; font-weight: 400; - line-height: 40px; + line-height: 1.25; margin: 18px 0 0; } @media (min-width: 768px) { .bc-settings .bc-settings-connect__title { - font-size: 48px; - line-height: 52px + font-size: 3em; + line-height: 1.1 } } .bc-connect-spinner { @@ -1520,7 +1581,7 @@ } .bc-account-connection-response { padding: 20px; - font-size: 15px; + font-size: 0.938em; border: 1px solid #e0e3e9; border-left: 10px solid #168fc0; } @@ -1531,7 +1592,7 @@ margin-top: 0; } .bc-account-connection__error-code { - font-size: 16px; + font-size: 1em; font-weight: 700; } .bc-account-connection__error-code code { @@ -1540,7 +1601,7 @@ .bc-account-connection__error-message { display: block; margin-top: 4px; - font-size: 15px; + font-size: 0.938em; } .bigcommerce-notice { position: relative; @@ -1583,8 +1644,8 @@ p.bigcommerce-notice__refresh { } .bigcommerce-notice__refresh-button { text-decoration: none; - font-size: 12px; - line-height: 14px; + font-size: 0.75em; + line-height: 1.15; display: inline-block; text-transform: uppercase; letter-spacing: 1px; @@ -1592,8 +1653,211 @@ p.bigcommerce-notice__refresh { .bigcommerce-notice__refresh-button i { display: inline-block; vertical-align: text-bottom; - font-size: 18px; - line-height: 14px; + font-size: 1.125em; + line-height: 0.78; +} +.bigcommerce-notice__import-status { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + color: #fff; + font-weight: 500; + -webkit-transition: background-color 250ms ease; + transition: background-color 250ms ease; +} +@media (min-width: 783px) { + .bigcommerce-notice__import-status { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap + } +} +.wp-admin .bigcommerce-notice__import-status { + background-color: #4b71fc; + border: 0; + padding: 20px; +} +.bigcommerce-notice__import-status.bigcommerce-notice__import-status--success { + background-color: #65c68c; + -ms-flex-line-pack: center; + align-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +.bigcommerce-notice__import-status.bigcommerce-notice__import-status--error { + border: 1px solid #d2574a; + background-color: #fff; + color: #34313f; +} +.import-status { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; +} +@media (min-width: 783px) { + .import-status { + -webkit-box-flex: 0; + -ms-flex: 0 1 50%; + flex: 0 1 50% + } +} +.import-status .bc-icon, + .import-status .dashicons { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + font-size: 16px; + line-height: 1.5; + margin-right: 4px; + margin-top: 3px; +} +.import-status .dashicons-warning { + color: #d2574a; + font-size: 21px; + line-height: 1.1; +} +.import-status p.bc-import-status-message { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + margin: 0; + font-size: 16px; +} +.bigcommerce-notice__import-status--success .import-status { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} +@media (min-width: 783px) { + .bigcommerce-notice__import-status--success .import-status { + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start + } +} +.bigcommerce-notice__import-status--success .import-status p.bc-import-status-message { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; +} +.import-status.import-status-previous p.bc-import-status-message { + font-size: inherit; +} +.bc-import-progress-bar__wrapper { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + line-height: 1.5; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + height: 20px; + margin-top: 20px; +} +@media (min-width: 783px) { + .bc-import-progress-bar__wrapper { + -webkit-box-flex: 0; + -ms-flex: 0 1 50%; + flex: 0 1 50%; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + margin-top: 0 + } +} +.bc-import-progress-bar__wrapper .button { + background: transparent; + color: #fff; + font-size: 20px; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + opacity: 1; + -webkit-transition: opacity 0.3s ease; + transition: opacity 0.3s ease; +} +.bc-import-progress-bar__wrapper .button:hover, + .bc-import-progress-bar__wrapper .button:focus { + color: #fff; + background: transparent; + opacity: 0.7; +} +.bc-import-progress-count { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + text-align: right; + padding-right: 20px; +} +.bc-import-progress-bar { + -webkit-box-flex: 0; + -ms-flex: 0 1 220px; + flex: 0 1 220px; + position: relative; + height: 20px; + border-radius: 10px; + overflow: hidden; +} +.bc-import-progress-bar__mask { + position: absolute; + top: 0; + left: -100%; + width: 100%; + height: 100%; + background-color: #34313f; + border-radius: 10px; + -webkit-transition: left 0.25s ease; + transition: left 0.25s ease; +} +.bc-import-progress-bar__bg { + background-color: #fff; + width: 100%; + height: 100%; +} +.bc-import-progress-bar__percent { + position: absolute; + right: 8px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + font-size: 10px; + font-weight: 700; + color: #4b71fc; + text-shadow: 0 0 1px rgba(250, 250, 250, .5); } /* Admin UI Styles */ @@ -1643,6 +1907,7 @@ p.bigcommerce-notice__refresh { left: 5%; top: 5%; overflow-y: scroll; + font-size: 16px; } .bc-shortcode-ui__content > div { height: 100%; @@ -1827,6 +2092,9 @@ p.bigcommerce-notice__refresh { visibility: visible; opacity: 1; } +.bc-shortcode-ui__default-header { + font-size: 0.813em; +} .bc-shortcode-ui__selections { position: relative; overflow: hidden; @@ -1892,8 +2160,8 @@ p.bigcommerce-notice__refresh { vertical-align: middle; border-radius: 4px; padding: 4px 2px 4px 10px; - font-size: 12px; - line-height: 20px; + font-size: 0.75em; + line-height: 1.67; font-weight: 500; margin-right: 4px; margin-bottom: 4px; @@ -1944,6 +2212,9 @@ p.bigcommerce-notice__refresh { display: block; margin: 30px auto 0; } +.bc-shortcode-ui__display-settings { + font-size: 0.813em; +} .bc-shortcode-ui__display-settings > * { display: block; margin-top: 20px; @@ -2049,6 +2320,7 @@ p.bigcommerce-notice__refresh { } .bc-shortcode-ui__query-builder-list-item { border-bottom: 1px solid #ccc; + font-size: 0.813em; padding: 12px 0; display: block; width: 100%; @@ -2131,11 +2403,14 @@ p.bigcommerce-notice__refresh { .bc-shortcode-ui__searchform .choices__inner { padding-right: 88px; } +.bc-shortcode-ui__searchform input.choices__input { + font-size: 0.857em; +} .bc-shortcode-ui__searchform .bc-shortcode-ui-search__submit-button { -webkit-box-flex: 0; -ms-flex: 0 0 95px; flex: 0 0 95px; - font-size: 12px; + font-size: 0.75em; line-height: 1; padding: 15px 28px; margin-left: 20px; @@ -2147,6 +2422,7 @@ p.bigcommerce-notice__refresh { background: transparent; border: 0; color: cornflowerblue; + font-size: 0.813em; position: absolute; right: 125px; top: 12px; @@ -2157,7 +2433,7 @@ input.choices__input { border: 0; -webkit-box-shadow: none; box-shadow: none; - font-size: 12px; + font-size: 0.75em; width: 140px !important; } .choices[data-type*="select-multiple"] .choices__button, @@ -2315,7 +2591,7 @@ input.choices__input { position: absolute; top: 15px; right: 15px; - font-size: 20px; + font-size: 1.25em; opacity: 0; color: #168fc0; } @@ -2357,8 +2633,8 @@ input.choices__input { background: #168fc0; text-align: center; padding: 0 10px; - font-size: 12px; - line-height: 32px; + font-size: 0.75em; + line-height: 2.7; color: #fff; border-radius: 4px; -webkit-transform: translateX(-50%); @@ -2411,18 +2687,18 @@ input.choices__input { -webkit-box-flex: 1; -ms-flex: 1 1 auto; flex: 1 1 auto; - font-size: 16px; + font-size: 1em; margin: 16px 0; - line-height: 20px; + line-height: 1.25; } .bc-shortcode-ui__product-price { - font-size: 16px; - line-height: 20px; + font-size: 1em; + line-height: 1.25; margin: 16px 0 16px 14px; } .bc-shortcode-ui__product-description { - font-size: 14px; - line-height: 18px; + font-size: 0.875em; + line-height: 1.3; } .bc-shortcode-ui__product-query-dimmer { position: absolute; @@ -2460,8 +2736,8 @@ input.choices__input { margin: 0; display: inline; font-weight: normal; - font-size: 14px; - line-height: 20px; + font-size: 0.875em; + line-height: 1.43; } .bc-shortcode-ui__remove-selected { display: inline-block; @@ -2470,6 +2746,7 @@ input.choices__input { padding: 0; color: #168fc0; cursor: pointer; + font-size: 0.813em; } .bc-shortcode-ui__remove-selected:hover, .bc-shortcode-ui__remove-selected:focus { @@ -2489,7 +2766,7 @@ input.choices__input { -webkit-box-shadow: none; box-shadow: none; text-transform: uppercase; - font-size: 18px; + font-size: 1.125em; line-height: 40px; height: 40px; opacity: 1; @@ -2531,7 +2808,7 @@ input.choices__input { } .post-type-bigcommerce_product.edit-php .bc-settings-header__cta-btn .bc-admin-btn { font-size: 10px; - line-height: 12px; + line-height: 0.9; text-decoration: none; text-transform: uppercase; letter-spacing: 1px; @@ -2542,7 +2819,7 @@ input.choices__input { } .post-type-bigcommerce_product.edit-php .bc-settings-header__cta-btn .bc-admin-btn .bc-icon { font-size: 14px; - line-height: 12px; + line-height: 0.9; vertical-align: text-top; margin-right: 6px; border-left: 1px solid #cdcdcd; @@ -2557,4 +2834,4 @@ input.choices__input { } -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3Bjc3MvYWRtaW4vYmMtYWRtaW4ucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL21peGlucy9fYnV0dG9ucy5wY3NzIiwiLi4vcGNzcy91dGlsaXRpZXMvdmFyaWFibGVzL19jb2xvcnMucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL3ZhcmlhYmxlcy9fdHlwb2dyYXBoeS5wY3NzIiwiLi4vcGNzcy91dGlsaXRpZXMvdmFyaWFibGVzL19pY29ucy5wY3NzIiwiLi4vcGNzcy9iYXNlL19pY29ucy5wY3NzIiwiLi4vcGNzcy9hZG1pbi9jaG9pY2VzL19jaG9pY2VzLnBjc3MiLCIuLi9wY3NzL2FkbWluL2Nob2ljZXMvX2Nob2ljZXMtY3VzdG9tLnBjc3MiLCIuLi9wY3NzL2FkbWluL3NldHRpbmdzL19tZW51LnBjc3MiLCIuLi9wY3NzL2FkbWluL3NldHRpbmdzL19wbHVnaW4tc2V0dGluZ3MtcGFnZXMucGNzcyIsIi4uL3Bjc3MvYWRtaW4vc2V0dGluZ3MvX3BsdWdpbi1zZXR0aW5ncy5wY3NzIiwiLi4vcGNzcy9hZG1pbi9zZXR0aW5ncy9fcGx1Z2luLXdlbGNvbWUucGNzcyIsIi4uL3Bjc3MvYWRtaW4vc2V0dGluZ3MvX3BsdWdpbi1jb25uZWN0LnBjc3MiLCIuLi9wY3NzL2FkbWluL3NldHRpbmdzL19wbHVnaW4tbm90aWNlcy5wY3NzIiwiLi4vcGNzcy9hZG1pbi9zaG9ydGNvZGUtdWkvX3Nob3J0Y29kZS1kaWFsb2cucGNzcyIsIi4uL3Bjc3MvYWRtaW4vc2hvcnRjb2RlLXVpL19xdWVyeS1idWlsZGVyLnBjc3MiLCIuLi9wY3NzL2FkbWluL3Nob3J0Y29kZS11aS9fc2VhcmNoZm9ybS5wY3NzIiwiLi4vcGNzcy9hZG1pbi9zaG9ydGNvZGUtdWkvX3Byb2R1Y3QtcmVzdWx0cy5wY3NzIiwiPG5vIHNvdXJjZT4iLCIuLi9wY3NzL2FkbWluL3Nob3J0Y29kZS11aS9fc2VsZWN0ZWQtcHJvZHVjdHMucGNzcyIsIi4uL3Bjc3MvYWRtaW4vcG9zdHMvX3Bvc3RzLWxpc3QucGNzcyIsIi4uL3Bjc3MvYWRtaW4vcG9zdHMvX2VkaXQtcG9zdC5wY3NzIiwiLi4vcGNzcy9hZG1pbi9wb3N0cy9fcXVpY2stZWRpdC5wY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHOztBQUVILG1CQUFtQjtBQ05uQjs7OzttRkFJbUY7QUFlbkY7Ozs7bUZBSW1GO0FBc0JuRjs7OzttRkFJbUY7QUNsRG5GO0NBQ0M7O29GQUVtRjs7Q0FnQm5GOztvRkFFbUY7O0NBS25GOztvRkFFbUY7O0NBTW5GOztvRkFFbUY7O0NBTW5GOztvRkFFbUY7O0NBUW5GOztvRkFFbUY7O0NBS25GOztvRkFFbUY7O0NBS25GOztvRkFFbUY7O0NBS25GOztvRkFFbUY7Q0FPbkY7QUNsRkQ7Q0FDQzs7b0ZBRW1GOztDQU9uRjs7b0ZBRW1GOztDQU1uRjs7b0ZBRW1GOztDQVFuRjs7b0ZBRW1GOztDQVFuRjs7b0ZBRW1GO0NBSW5GO0FDNUNEOzttRkFFbUY7QUFFbkYsdUJBQXVCO0FDSnZCOzs7O21GQUltRjtBQUVuRix1QkFBdUI7QUFFdkI7RUFDRSxpQ0FBaUM7RUFDakM7Ozs7bUdBSTBHO0VBQzFHLG9CQUFvQjtFQUNwQixtQkFBbUI7Q0FDcEI7QUFFRDtFQUNFLGdGQUFnRjtFQUNoRiw0Q0FBNEM7RUFDNUMsWUFBWTtFQUNaLG1CQUFtQjtFQUNuQixvQkFBb0I7RUFDcEIsc0NBQXFCO1VBQXJCLDhCQUFxQjtFQUFyQixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLGVBQWU7O0VBRWYsdUNBQXVDO0VBQ3ZDLG9DQUFvQztFQUNwQyxtQ0FBbUM7Q0FDcEM7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCOztBTC9HRCx3QkFBd0I7QU1sQnhCOztrQ0FFa0M7QUFFbEM7Q0FDQyxtQkFBbUI7Q0FDbkIsb0JBQW9CO0NBQ3BCLGdCQUFnQjtDQUNoQjtBQUVEO0NBQ0MsY0FBYztDQUNkO0FBRUQ7Q0FDQyxpQkFBaUI7Q0FDakI7QUFFRDs7Q0FFQywwQkFBMEI7Q0FDMUIsb0JBQW9CO0NBQ3BCLDBCQUEwQjtDQUMxQix1QkFBdUI7Q0FDdkIsc0JBQXNCO0NBQ3RCLGtCQUFrQjtDQUNsQjtBQUVEO0NBQ0Msb0JBQW9CO0NBQ3BCO0FBRUQ7Q0FDQyxnQkFBZ0I7Q0FDaEI7QUFFRDtDQUNDLHNCQUFzQjtDQUN0QjtBQUVEO0NBQ0MsZUFBZTtDQUNmLFlBQVk7Q0FDWixjQUFjO0NBQ2QsOEJBQThCO0NBQzlCLHVCQUF1QjtDQUN2QixVQUFVO0NBQ1Y7QUFFRDtDQUNDLHVEQUF1RDtDQUN2RCxXQUFXO0NBQ1gscUJBQXFCO0NBQ3JCLG1CQUFtQjtDQUNuQixTQUFTO0NBQ1QsU0FBUztDQUNULGtCQUFrQjtDQUNsQixtQkFBbUI7Q0FDbkIsYUFBYTtDQUNiLFlBQVk7Q0FDWixvQkFBb0I7Q0FDcEIsYUFBYTtDQUNiO0FBRUQ7O0NBRUMsV0FBVztDQUNYO0FBRUQ7Q0FDQyxzQ0FBOEI7U0FBOUIsOEJBQThCO0NBQzlCO0FBRUQ7Q0FDQyxZQUFZO0NBQ1osVUFBVTtDQUNWLFNBQVM7Q0FDVCxvQkFBb0I7Q0FDcEIsMkNBQTJDO0NBQzNDLGtCQUFrQjtDQUNsQixtQkFBbUI7Q0FDbkIsY0FBYztDQUNkLFNBQVM7Q0FDVCxtQkFBbUI7Q0FDbkIscUJBQXFCO0NBQ3JCO0FBRUQ7Q0FDQywyQ0FBMkM7Q0FDM0MsbUJBQW1CO0NBQ25CO0FBRUQ7Q0FDQyxhQUFhO0NBQ2IsWUFBWTtDQUNaO0FBRUQ7Q0FDQyxZQUFZO0NBQ1osUUFBUTtDQUNSLGtCQUFrQjtDQUNsQixnQkFBZ0I7Q0FDaEI7QUFFRDs7Q0FFQyxhQUFhO0NBQ2I7QUFFRDs7Q0FFQyxtQkFBbUI7Q0FDbkIsc0JBQXNCO0NBQ3RCLHFCQUFxQjtDQUNyQixtQkFBbUI7Q0FDbkIsK0JBQStCO0NBQy9CLCtDQUErQztDQUMvQyxxQkFBcUI7Q0FDckIsV0FBVztDQUNYLGVBQWU7Q0FDZixjQUFjO0NBQ2Q7QUFFRDs7OztDQUlDLFdBQVc7Q0FDWDtBQUVEO0NBQ0Msc0JBQXNCO0NBQ3RCLG9CQUFvQjtDQUNwQixZQUFZO0NBQ1osMEJBQTBCO0NBQzFCLDRCQUE0QjtDQUM1Qix1QkFBdUI7Q0FDdkIscUJBQXFCO0NBQ3JCLGdCQUFnQjtDQUNoQixpQkFBaUI7Q0FDakIsaUJBQWlCO0NBQ2pCO0FBRUQ7O0NBRUMsc0JBQXNCO0NBQ3RCO0FBRUQ7Q0FDQywrQkFBK0I7Q0FDL0I7QUFFRDtDQUNDLCtCQUErQjtDQUMvQjtBQUVEO0NBQ0MsVUFBVTtDQUNWLGdCQUFnQjtDQUNoQixpQkFBaUI7Q0FDakI7QUFFRDtDQUNDLHNCQUFzQjtDQUN0QiwwQkFBMEI7Q0FDMUIsWUFBWTtDQUNaO0FBRUQ7Q0FDQyxtQkFBbUI7Q0FDbkIsbUJBQW1CO0NBQ25CO0FBRUQ7Q0FDQyxZQUFZO0NBQ1o7QUFFRDtDQUNDLGdCQUFnQjtDQUNoQjtBQUVEO0NBQ0Msc0JBQXNCO0NBQ3RCLHVCQUF1QjtDQUN2QixvQkFBb0I7Q0FDcEIsa0JBQWtCO0NBQ2xCLGdCQUFnQjtDQUNoQixpQkFBaUI7Q0FDakIscUJBQXFCO0NBQ3JCLHNCQUFzQjtDQUN0QiwwQkFBMEI7Q0FDMUIsMEJBQTBCO0NBQzFCLFlBQVk7Q0FDWixzQkFBc0I7Q0FDdEI7QUFFRDtDQUNDLG1CQUFtQjtDQUNuQjtBQUVEO0NBQ0MsZ0JBQWdCO0NBQ2hCLG9CQUFvQjtDQUNwQjtBQUVEO0NBQ0MsMEJBQTBCO0NBQzFCLDBCQUEwQjtDQUMxQjtBQUVEO0NBQ0MsdUJBQXVCO0NBQ3ZCLDBCQUEwQjtDQUMxQjtBQUVEO0NBQ0MsY0FBYztDQUNkLFdBQVc7Q0FDWCxtQkFBbUI7Q0FDbkIsWUFBWTtDQUNaLHVCQUF1QjtDQUN2Qix1QkFBdUI7Q0FDdkIsVUFBVTtDQUNWLGlCQUFpQjtDQUNqQixpQ0FBaUM7Q0FDakMsa0NBQWtDO0NBQ2xDLGlCQUFpQjtDQUNqQixzQkFBc0I7Q0FDdEI7QUFFRDtDQUNDLGVBQWU7Q0FDZjtBQUVEO0NBQ0Msc0JBQXNCO0NBQ3RCO0FBRUQ7Q0FDQyxVQUFVO0NBQ1YsYUFBYTtDQUNiLGNBQWM7Q0FDZCxvQkFBb0I7Q0FDcEIsbUNBQW1DO0NBQ25DO0FBRUQ7Q0FDQyxtQkFBbUI7Q0FDbkIsa0JBQWtCO0NBQ2xCLGVBQWU7Q0FDZixrQ0FBa0M7Q0FDbEMsNkJBQTZCO0NBQzdCO0FBRUQ7Q0FDQyxtQkFBbUI7Q0FDbkIsY0FBYztDQUNkLGdCQUFnQjtDQUNoQjtBQUVEO0NBQ0Msa0JBQWtCO0NBQ2xCO0FBRUQ7Q0FFQztFQUNDLHFCQUFxQjtFQUNyQjtDQUVEO0VBQ0MsZ0NBQWdDO0VBQ2hDLGdCQUFnQjtFQUNoQixXQUFXO0VBQ1gsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixTQUFTO0VBQ1Qsb0NBQW9DO0VBQ3BDLDRCQUE0QjtFQUM1QjtDQUVEO0VBQ0Msa0JBQWtCO0VBQ2xCLG9CQUFvQjtFQUNwQixvQkFBb0I7RUFDcEI7Q0FFRDtFQUNDLFlBQVk7RUFDWixXQUFXO0VBQ1g7Q0FDRDtBQUVEO0NBQ0MsMEJBQTBCO0NBQzFCO0FBRUQ7Q0FDQyxhQUFhO0NBQ2I7QUFFRDtDQUNDLGdCQUFnQjtDQUNoQjtBQUVEO0NBQ0MsZ0JBQWdCO0NBQ2hCO0FBRUQ7Q0FDQyxvQkFBb0I7Q0FDcEIsMEJBQTBCO0NBQzFCLHVCQUF1QjtDQUN2QixzQkFBc0I7Q0FDdEIsa0JBQWtCO0NBQ2xCLGFBQWE7Q0FDYjtBQUVEO0NBQ0MsaUJBQWlCO0NBQ2pCLGdCQUFnQjtDQUNoQixjQUFjO0NBQ2QsaUNBQWlDO0NBQ2pDLFlBQVk7Q0FDWjtBQUVEO0NBQ0MscUJBQXFCO0NBQ3JCLHlCQUF5QjtDQUN6QixzQkFBc0I7Q0FDdEIsaUJBQWlCO0NBQ2pCLFVBQVU7Q0FDViw4QkFBOEI7Q0FDOUIsNkJBQTZCO0NBQzdCLDRCQUE0QjtDQUM1QixnQkFBZ0I7Q0FDaEI7QUFFRDtDQUNDLGNBQWM7Q0FDZDtBQUVEO0NBQ0Msc0JBQXNCO0NBQ3RCLHlCQUF5QjtDQUN6QiwwQkFBMEI7Q0FDMUIsZ0JBQWdCO0NBQ2hCLG1CQUFtQjtDQUNuQixVQUFVO0NBQ1YsaUJBQWlCO0NBQ2pCLGdCQUFnQjtDQUNoQix1QkFBdUI7Q0FDdkI7QUFFRDtDQUNDLFdBQVc7Q0FDWDtBQUVEO0NBQ0MsbUJBQW1CO0NBQ25CLGdCQUFnQjtDQUNoQjtBQUVEO0NBQ0MsYUFBYTtDQUNiO0FDN1dEOztDQUVDLHFCQUFxQjtDQUNyQixzQkFBc0Q7Q0FDdEQ7QUFFRDtDQUNDLG1CQUFtQjtDQUNuQiwwQkFBMEI7Q0FDMUIsa0JBQWtCO0NBQ2xCLDBCQUE2QztDQUM3QyxVQUFVO0NBQ1Y7QUFFRDtDQUNDLDBCQUEyRDtDQUMzRCxVQUFVO0NBQ1Y7QUFJQTtDQUNDLDJDQUEyQztDQUMzQyxrQkFBa0I7Q0FDbEIsWUFBWTtDQUNaO0FBRUQ7Q0FDQyxpQkFBaUI7Q0FDakI7QUFFRDtDQUNDLHVCQUFxQztDQUNyQyxzQkFBNkM7Q0FDN0MsaUJBQWlCO0NBQ2pCLCtCQUF1QjtTQUF2Qix1QkFBdUI7Q0FDdkIsaUJBQWlCO0NBQ2pCLHdCQUF3QjtDQUN4QjtBQUVEO0NBQ0Msb0JBQW9CO0NBQ3BCO0FBRUQ7Q0FDQywrQkFBdUI7U0FBdkIsdUJBQXVCO0NBQ3ZCLG9CQUFvQjtDQUNwQjtBQUVEO0NBQ0Msc0JBQTZDO0NBQzdDLCtCQUF1QjtTQUF2Qix1QkFBdUI7Q0FDdkI7O0FQL0JGLDJCQUEyQjtBUW5CMUI7Q0FDQyxpQ0FBa0Q7Q0FDbEQsZ0JBQWdCO0NBQ2hCO0FDSEQ7Q0FDQyx1QkFBcUM7Q0FDckM7QUFFRDtDQUNDLGlCQUFpQjtDQUNqQixZQUFZO0NBQ1o7QUFFRDtDQUNDLHNCQUFzQjtDQUN0QixlQUErQjtDQUMvQixnQkFBZ0I7Q0FDaEIsaUJBQWlCO0NBQ2pCO0FBRUQ7Q0FDQyxlQUEyQjtDQUMzQjtBQUVEO0NBQ0MsZ0JBQWdCO0NBTWhCO0FBSkE7Q0FDQyxtQkFBbUI7Q0FDbkIsZUFBNkI7Q0FDN0I7QUFHRjs7Q1JzQkEsb0JBQXVDO0NBQ3ZDLDBCQUE2QztDQUM3QyxvQkFBb0I7Q0FDcEIsK0JBQXVCO1NBQXZCLHVCQUF1QjtDQUN2QiwwQkFBa0I7U0FBbEIsa0JBQWtCO0NBQ2xCLGdCQUFnQjtDQUNoQixZQUEwQjtDQUMxQixzQkFBc0I7Q0FDdEIsd0JBQXdCO0NBQ3hCLGdCQUFnQjtDQUNoQixpQkFBdUM7Q0FDdkMsb0JBQW9CO0NBQ3BCLGtCQUFrQjtDQUNsQixzQkFBc0I7Q0FDdEIsa0JBQWtCO0NBQ2xCLDBCQUEwQjtDQUMxQiwwQ0FBOEI7Q0FBOUIsa0NBQThCO0NBQzlCLHlCQUF5QjtDQUN6QixvQkFBb0I7Q1FyQ25CO0FSdUNEOzs7Ozs7Q0FHQywwQkFBaUQ7Q0FDakQsc0JBQTZDO0NBQzdDO0FBRUQ7Q0FDQyxxQ0FBd0Q7Q0FDeEQsaUNBQW9EO0NBQ3BELDBCQUF1QztDQUN2QywyQkFBMkI7Q0FDM0I7QVFqREQ7Q0FDQyx3QkFBd0I7Q0FDeEIsMEJBQTZDO0NBQzdDLGVBQWtDO0NBUWxDO0FBTkE7O0NBRUMsMEJBQTZDO0NBQzdDLHNCQUF5QztDQUN6QyxZQUEwQjtDQUMxQjtBQVNGO0NBQ0MsbUJBQW1CO0NBQ25CLHNCQUFzQjtDQXlCdEI7QUF2QkE7Q0FDQywrRkFBK0Y7Q0FDL0YsWUFBWTtDQUNaLG1CQUFtQjtDQUNuQixjQUFjO0NBQ2QsWUFBWTtDQUNaLGFBQWE7Q0FDYixTQUFTO0NBQ1QsV0FBVztDQWNYO0FBWkE7Q0FWRDtFQVdFLGlDQUFpQztFQUNqQyxhQUFhO0VBQ2IsV0FBVztFQUNYLFlBQVk7RUFDWixjQUFjO0VBQ2QsVUFBVztFQU1aO0NBTEM7QUFFRDtDQW5CRDtFQW9CRSxXQUFZO0VBRWI7Q0FEQztBQUlIO0NBQ0Msb0JBQW9CO0NBQ3BCLG1CQUFtQjtDQUNuQixXQUFXO0NBS1g7QUFIQTtDQUxEO0VBTUUsbUJBQW9CO0VBRXJCO0NBREM7QUFHRjtDQUNDLDhCQUFpRDtDQUNqRCxXQUFXO0NBQ1g7QUFHRjtDQUNDLGtCQUFrQjtDQUNsQjtBQUlBO0NBQ0MsbUJBQW1CO0NBQ25CLGNBQWM7Q0FDZDtBQUVEOzs7Q0FHQyxlQUE2QjtDQUM3QjtBQUVEOztDQUVDLGdCQUFnQjtDQUNoQjtBQUVEO0NBQ0MsaUJBQXdDO0NBS3hDO0FBSEE7Q0FIRDtFQUlFLFlBQWE7RUFFZDtDQURDO0FBR0Y7O0NBRUMsMEJBQWlEO0NBQ2pELHlCQUFpQjtTQUFqQixpQkFBaUI7Q0FDakI7QUFFRDtDQUNDLGNBQWM7Q0FDZCxhQUFhO0NBQ2Isa0JBQWtCO0NBQ2xCLGlCQUFpQjtDQUNqQjtBQUVEOzs7O0NBSUMsYUFBYTtDQUNiLGtCQUFrQjtDQUNsQixlQUFlO0NBQ2Ysa0JBQWtCO0NBQ2xCO0FBRUQ7Q0FDQyxZQUFZO0NBQ1osWUFBWTtDQUNaLGFBQWE7Q0FRYjtBQU5BO0NBQ0Msc0JBQXNCO0NBQ3RCLGdCQUFnQjtDQUNoQixZQUFZO0NBQ1osYUFBYTtDQUNiO0FBR0Y7Q0FDQyxrQkFBa0I7Q0FDbEIsZ0JBQWdCO0NBQ2hCLGtCQUFrQjtDQUNsQixhQUFhO0NBQ2IsMENBQThCO0NBQTlCLGtDQUE4QjtDQUM5QjtBQUVEO0NBQ0MsbUJBQW1CO0NBTW5CO0FBSkE7O0NBRUMsMEJBQTBCO0NBQzFCO0FBR0Y7Q0FDQyxtREFBaUQ7U0FBakQsMkNBQWlEO0NBQ2pEO0FBR0Y7Q0FDQyxzQkFBc0I7Q0FDdEIsZUFBMkI7Q0FDM0IsaUJBQWlCO0NBQ2pCO0FDL0xEO0NBQ0MsZUFBNkI7Q0FDN0IscUJBQWM7Q0FBZCxxQkFBYztDQUFkLGNBQWM7Q0FDZCxvQkFBZ0I7S0FBaEIsZ0JBQWdCO0NBQ2hCLDZCQUF1QjtDQUF2Qiw4QkFBdUI7S0FBdkIsMkJBQXVCO1NBQXZCLHVCQUF1QjtDQUV2QixvQkFBb0I7Q0FDcEIsa0JBQWtCO0NBQ2xCLG1CQUFtQjtDQXNDbkI7QUE5Q0Q7Q0FLQyxZQUF1QjtDQUF2QixlQUF1QjtDQXlDdkI7QUE5Q0Q7Q0FLQyxZQUF1QjtDQUF2QixlQUF1QjtDQUF2QixZQUF1QjtDQXlDdkI7QUFwQ0E7Q0FWRDtFQVdFLCtCQUFvQjtFQUFwQiw4QkFBb0I7TUFBcEIsd0JBQW9CO1VBQXBCLG9CQUFvQjtFQUNwQix3QkFBNEI7TUFBNUIscUJBQTRCO1VBQTVCLDRCQUE0QjtFQUM1QiwwQkFBb0I7TUFBcEIsdUJBQW9CO1VBQXBCLG1CQUFvQjtFQWlDckI7Q0FoQ0M7QUFFRDtDQUNDLDBCQUE2QztDQUM3QyxZQUFZO0NBQ1osbUJBQW1CO0NBQ25CLFVBQVU7Q0FDVixhQUFhO0NBQ2IsWUFBWTtDQUNaLHlCQUF5QjtDQUN6QjtBQUVEO0NBQ0MsK0ZBQStGO0NBQy9GLFlBQVk7Q0FDWixtQkFBbUI7Q0FDbkIsY0FBYztDQUNkLFdBQVc7Q0FDWCxZQUFZO0NBQ1osYUFBYTtDQUNiLFdBQVc7Q0FNWDtBQUpBO0NBVkQ7RUFXRSxjQUFjO0VBQ2QsVUFBVztFQUVaO0NBREM7QUFHRjtDQUNDLCtCQUF1QjtTQUF2Qix1QkFBdUI7Q0FDdkIsb0JBQW1CO0tBQW5CLHFCQUFtQjtTQUFuQixhQUFtQjtDQUFuQixxQkFBbUI7S0FBbkIsZUFBbUI7Q0FBbkIsbUNBQW1CO0tBQW5CLHNCQUFtQjtDQUFuQixxQkFBbUI7Q0FBbkIsaUJBQW1CO0NBQ25CO0FBSEQ7Q0FFQyxtQkFBbUI7Q0FBbkIsZUFBbUI7Q0FDbkI7QUFIRDtDQUVDLGdCQUFtQjtDQUNuQjtBQUhEO0NBRUMsZ0JBQW1CO0NBQW5CLGtCQUFtQjtDQUNuQjtBQUlEO0NBREQ7RUFFRSxrREFBb0I7RUFFckI7Q0FEQztBQUdGOztDQUVDLG1CQUFtQjtDQUNuQixXQUFXO0NBTVg7QUFKQTtDQUxEOztFQU1FLG9CQUFrQjtNQUFsQixxQkFBa0I7VUFBbEIsYUFBa0I7RUFBbEIscUJBQWtCO01BQWxCLGVBQWtCO0VBQWxCLHNEQUFrQjtNQUFsQix5Q0FBa0I7RUFBbEIsd0NBQWtCO0VBQWxCLG9DQUFrQjtFQUNsQixnQkFBaUI7RUFFbEI7Q0FURDs7RUFNRSxtQkFBa0I7RUFBbEIsY0FBa0I7RUFHbkI7Q0FURDs7RUFNRSxlQUFrQjtFQUduQjtDQVREOztFQU1FLGdCQUFrQjtFQUFsQixpQkFBa0I7RUFHbkI7Q0FEQztBQUdGO0NBQ0MsMEJBQXlDO0NBQ3pDLGlCQUFpQjtDQUNqQixjQUFjO0NBTWQ7QUFKQTtDQUxEO0VBTUUsY0FBYztFQUNkLGFBQWM7RUFFZjtDQURDO0FBS0Q7Q0FDQyxlQUE2QjtDQUM3QixnQkFBZ0I7Q0FDaEIsa0JBQWtCO0NBQ2xCLG9CQUFvQjtDQUtwQjtBQUhBO0NBTkQ7RUFPRSxlQUFnQjtFQUVqQjtDQURDO0FBSUg7Q0FDQyxnQkFBZ0I7Q0FDaEI7QUFFRDtDQUNDLGdCQUFnQjtDQUNoQixrQkFBa0I7Q0FDbEIsaUJBQWlCO0NBQ2pCO0FBRUQ7Q0FDQyxnQkFBZ0I7Q0FDaEIsVUFBVTtDQUNWO0FBRUQ7Q0FDQyxpQkFBaUI7Q0FDakI7QUFJQTtDQUNDLFlBQVk7Q0FDWixtQkFBbUI7Q0FDbkIsWUFBWTtDQUNaO0FBS0Q7Q0FDQyxpQkFBaUI7Q0FDakI7QUFHRjtDQUNDLHVCQUFxQztDQUNyQywwQkFBNkM7Q0FDN0MsZ0JBQWdCO0NBQ2hCLHFCQUFjO0NBQWQscUJBQWM7Q0FBZCxjQUFjO0NBQ2QsK0JBQW9CO0NBQXBCLDhCQUFvQjtLQUFwQix3QkFBb0I7U0FBcEIsb0JBQW9CO0NBQ3BCLHNCQUFrQjtLQUFsQixrQkFBa0I7Q0FDbEIsMEJBQW9CO0tBQXBCLHVCQUFvQjtTQUFwQixvQkFBb0I7Q0FDcEIsd0JBQTRCO0tBQTVCLHFCQUE0QjtTQUE1Qiw0QkFBNEI7Q0FDNUIsY0FBYztDQUNkLG1CQUFtQjtDQWdDbkI7QUE5QkE7Q0FDQyxnQkFBZ0I7Q0FDaEIsWUFBWTtDQUNaLGtCQUFrQjtDQUNsQjtBQUVEO0NBQ0MsZUFBa0M7Q0FDbEMsZ0JBQWdCO0NBQ2hCLG1CQUFtQjtDQUNuQjtBQUVEO0NBQ0MsZ0JBQWdCO0NBQ2hCO0FBRUQ7Q0FDQywwQkFBZ0Q7Q0FDaEQsc0JBQTRDO0NBQzVDLHNDQUE4QjtTQUE5Qiw4QkFBOEI7Q0FDOUIsWUFBMEI7Q0FDMUI7QUFFRDtDQUNDLGtDQUEwQjtTQUExQiwwQkFBMEI7Q0FDMUI7QUFFRDtDQUNDLFlBQTBCO0NBQzFCO0FBR0Y7Q0FDQyxnQkFBZ0I7Q0FDaEIsaUJBQXdDO0NBQ3hDLGtCQUFrQjtDQUNsQixtQkFBbUI7Q0FTbkI7QUFQQTtDQU5EO0VBT0Usa0NBQW1DO0VBTXBDO0NBTEM7QUFFRDtDQUNDLFlBQTBCO0NBQzFCO0FBR0Y7Q0FDQywwQkFBNkM7Q0FDN0MsY0FBYztDQUNkLGNBQWM7Q0FDZCxXQUFXO0NBQ1gsaUJBQWlCO0NBQ2pCO0FBRUQ7Q0FDQyx1QkFBcUM7Q0FDckMsZUFBNkI7Q0FDN0IsZ0JBQWdCO0NBQ2hCLGtCQUFrQjtDQUNsQix3QkFBd0I7Q0FleEI7QUFiQTtDQUNDLGlCQUFpQjtDQUNqQixlQUFlO0NBQ2Y7QUFJQTtDQUNDLGVBQThCO0NBQzlCLGdCQUFnQjtDQUNoQixtQkFBbUI7Q0FDbkI7QUFNRjtDQUNDLGVBQWU7Q0FDZjtBQUVEO0NBQ0Msa0JBQWtCO0NBQ2xCLHVCQUF1QjtDQUN2QixlQUFlO0NBQ2YsY0FBYztDQUtkO0FBSEE7Q0FDQyxlQUFlO0NBQ2Y7QUFHRjtDQUNDLFlBQVk7Q0FDWixzQkFBc0I7Q0FDdEIsdUJBQXVCO0NBQ3ZCLG1CQUFtQjtDQUNuQixVQUFVO0NBQ1Y7QUFLRDtDQUNDLGVBQWU7Q0FDZixvQkFBb0I7Q0FDcEI7QUFFRDtDQUNDLHNCQUFzQjtDQUN0QixtQkFBbUI7Q0FDbkIsU0FBUztDQUNULGVBQTZCO0NBQzdCO0FBR0Y7Q0FDQywwQkFBc0M7Q0FDdEMsY0FBYztDQUtkO0FBSEE7Q0FDQyxpQkFBaUI7Q0FDakI7QUFHRjs7Q0FFQyxpQkFBaUI7Q0FDakIsZ0JBQWdCO0NBQ2hCO0FBRUQ7Q0FDQyw4QkFBK0M7Q0FDL0MsaUJBQWlCO0NBQ2pCLGdCQUFnQjtDQUtoQjtBQUhBO0NBQ0MsaUJBQWlCO0NBQ2pCO0FBR0Y7Q0FDQyxjQUFjO0NBQ2Q7QUFFRDtDQUNDLGVBQWU7Q0FRZjtBQU5BO0NBSEQ7RUFJRSxxQkFBYztFQUFkLHFCQUFjO0VBQWQsY0FBYztFQUNkLCtCQUFvQjtFQUFwQiw4QkFBb0I7TUFBcEIsd0JBQW9CO1VBQXBCLG9CQUFvQjtFQUNwQixzQkFBa0I7TUFBbEIsa0JBQWtCO0VBQ2xCLHlCQUF3QjtNQUF4QixzQkFBd0I7VUFBeEIsdUJBQXdCO0VBRXpCO0NBREM7QUFHRjtDQUNDLGlCQUFxQztDQU1yQztBQUpBO0NBSEQ7RUFJRSxvQkFBZ0I7TUFBaEIsb0JBQWdCO1VBQWhCLGdCQUFnQjtFQUNoQixtQkFBb0I7RUFFckI7Q0FEQztBQUlEO0NBREQ7RUFFRSxvQkFBUTtNQUFSLFlBQVE7VUFBUixRQUFRO0VBQ1Isa0JBQW1CO0VBRXBCO0NBREM7QUFLRDtDQUNDLGlCQUErQjtDQUMvQiwrQkFBdUI7U0FBdkIsdUJBQXVCO0NBQ3ZCLGlCQUFpQjtDQW9CakI7QUFsQkE7Q0FMRDtFQU1FLHNDQUE4QjtVQUE5Qiw4QkFBOEI7RUFDOUIscUJBQWM7RUFBZCxxQkFBYztFQUFkLGNBQWM7RUFDZCwrQkFBb0I7RUFBcEIsOEJBQW9CO01BQXBCLHdCQUFvQjtVQUFwQixvQkFBb0I7RUFDcEIsMEJBQStCO01BQS9CLHVCQUErQjtVQUEvQiwrQkFBK0I7RUFDL0IsMEJBQW9CO01BQXBCLHVCQUFvQjtVQUFwQixvQkFBb0I7RUFDcEIsY0FBYztFQUNkLGdCQUFnQjtFQUNoQixVQUFVO0VBQ1YsU0FBUztFQUNULG1CQUFtQjtFQUNuQix5QkFBeUI7RUFDekIsVUFBVztFQU1aO0NBTEM7QUFFRDtDQXBCRDtFQXFCRSx5QkFBMEI7RUFFM0I7Q0FEQztBQUdGO0NBQ0MsY0FBYztDQUtkO0FBSEE7Q0FIRDtFQUlFLGNBQWU7RUFFaEI7Q0FEQztBQUdGO0NBQ0MsV0FBVztDQUNYLFVBQVU7Q0FDVjtBQUdGO0NBQ0MsaUJBQWlCO0NBS2pCO0FBSEE7Q0FIRDtFQUlFLGdCQUFpQjtFQUVsQjtDQURDO0FDdFdGO0NBQ0MscUJBQWM7Q0FBZCxxQkFBYztDQUFkLGNBQWM7Q0FDZCw2QkFBdUI7Q0FBdkIsOEJBQXVCO0tBQXZCLDJCQUF1QjtTQUF2Qix1QkFBdUI7Q0FFdkIsaUJBQWlCO0NBV2pCO0FBZkQ7Q0FHQyxZQUF1QjtDQUF2QixlQUF1QjtDQVl2QjtBQWZEO0NBR0MsWUFBdUI7Q0FBdkIsZUFBdUI7Q0FBdkIsWUFBdUI7Q0FZdkI7QUFUQTtDQU5EO0VBT0UsK0JBQW9CO0VBQXBCLDhCQUFvQjtNQUFwQix3QkFBb0I7VUFBcEIsb0JBQW9CO0VBQ3BCLHdCQUE0QjtNQUE1QixxQkFBNEI7VUFBNUIsNEJBQTRCO0VBQzVCLGdCQUFpQjtFQU1sQjtDQUxDO0FBRUQ7Q0FaRDtFQWFFLGlCQUFrQjtFQUVuQjtDQURDO0FBS0Q7Q0FGRDs7RUFHRSxvQkFBa0I7TUFBbEIscUJBQWtCO1VBQWxCLGFBQWtCO0VBQWxCLHFCQUFrQjtNQUFsQixlQUFrQjtFQUFsQixnREFBa0I7TUFBbEIsbUNBQWtCO0VBQWxCLGtDQUFrQjtFQUFsQiw2QkFBa0I7RUFNbkI7Q0FURDs7RUFHRSxtQkFBa0I7RUFBbEIsY0FBa0I7RUFNbkI7Q0FURDs7RUFHRSxlQUFrQjtFQU1uQjtDQVREOztFQUdFLGdCQUFrQjtFQUFsQixpQkFBa0I7RUFNbkI7Q0FMQztBQUVEO0NBTkQ7O0VBT0Usb0JBQWtCO01BQWxCLHFCQUFrQjtVQUFsQixhQUFrQjtFQUFsQixxQkFBa0I7TUFBbEIsZUFBa0I7RUFBbEIsc0RBQWtCO01BQWxCLHlDQUFrQjtFQUFsQix3Q0FBa0I7RUFBbEIsbUNBQWtCO0VBRW5CO0NBVEQ7O0VBT0UsbUJBQWtCO0VBQWxCLGNBQWtCO0VBRW5CO0NBVEQ7O0VBT0UsZUFBa0I7RUFFbkI7Q0FURDs7RUFPRSxnQkFBa0I7RUFBbEIsaUJBQWtCO0VBRW5CO0NBREM7QUFJRDtDQUREO0VBRUUsa0RBQWtCO0VBRW5CO0NBREM7QUFJRDtDQUREO0VBRUUsb0JBQW9CO0VBQ3BCLGdCQUFpQjtFQUVsQjtDQURDO0FBS0Q7Q0FDQyxlQUE2QjtDQUM3QixnQkFBZ0I7Q0FDaEIsaUJBQXdDO0NBQ3hDLGtCQUFrQjtDQUNsQixvQkFBb0I7Q0FNcEI7QUFKQTtDQVBEO0VBUUUsZ0JBQWdCO0VBQ2hCLGlCQUFrQjtFQUVuQjtDQURDO0FBR0Y7Q0FDQyxnQkFBZ0I7Q0FDaEIsa0JBQWtCO0NBQ2xCLFVBQVU7Q0FLVjtBQUhBO0NBTEQ7RUFNRSxlQUFnQjtFQUVqQjtDQURDO0FBSUg7Q0FDQyxxQkFBYztDQUFkLHFCQUFjO0NBQWQsY0FBYztDQUNkLG9CQUFnQjtLQUFoQixnQkFBZ0I7Q0FzQmhCO0FBcEJBO0NBQ0Msb0JBQW9CO0NBS3BCO0FBSEE7Q0FDQyxtQkFBbUI7Q0FDbkI7QUFHRjtDQUNDLGlCQUFpQjtDQUNqQjtBQUVEO0NBQ0MsdUJBQXFDO0NBTXJDO0FBSkE7O0NBRUMsMEJBQTZDO0NBQzdDO0FBSUg7Q0FDQywwQkFBeUM7Q0FDekMsb0JBQW9CO0NBQ3BCLG1CQUFtQjtDQUtuQjtBQUhBO0NBTEQ7RUFNRSxvQkFBcUI7RUFFdEI7Q0FEQztBQUtEO0NBQ0MsZ0JBQWdCO0NBQ2hCLGlCQUF1QztDQUN2QyxrQkFBa0I7Q0FDbEIsVUFBVTtDQUtWO0FBSEE7Q0FDQyxnQkFBZ0I7Q0FDaEI7QUFHRjtDQUNDLGdCQUFnQjtDQUNoQixrQkFBa0I7Q0FDbEI7QUN2SEY7O0NBRUMscUJBQWM7Q0FBZCxxQkFBYztDQUFkLGNBQWM7Q0FDZCw2QkFBdUI7Q0FBdkIsOEJBQXVCO0tBQXZCLDJCQUF1QjtTQUF2Qix1QkFBdUI7Q0FFdkI7QUFMRDs7Q0FJQyxZQUF1QjtDQUF2QixlQUF1QjtDQUN2QjtBQUxEOztDQUlDLFlBQXVCO0NBQXZCLGVBQXVCO0NBQXZCLFlBQXVCO0NBQ3ZCO0FBUUE7Q0FORDs7Ozs7O0VBT0Usb0JBQW1CO01BQW5CLHFCQUFtQjtVQUFuQixhQUFtQjtFQUFuQixxQkFBbUI7TUFBbkIsZUFBbUI7RUFBbkIscURBQW1CO01BQW5CLHdDQUFtQjtFQUFuQix1Q0FBbUI7RUFBbkIsa0NBQW1CO0VBTXBCO0NBYkQ7Ozs7OztFQU9FLG1CQUFtQjtFQUFuQixjQUFtQjtFQU1wQjtDQWJEOzs7Ozs7RUFPRSxlQUFtQjtFQU1wQjtDQWJEOzs7Ozs7RUFPRSxnQkFBbUI7RUFBbkIsaUJBQW1CO0VBTXBCO0NBTEM7QUFFRDtDQVZEOzs7Ozs7RUFXRSxrREFBa0I7RUFFbkI7Q0FEQztBQU9EO0NBSkQ7Ozs7RUFLRSxvQkFBa0I7TUFBbEIscUJBQWtCO1VBQWxCLGFBQWtCO0VBQWxCLHFCQUFrQjtNQUFsQixlQUFrQjtFQUFsQiwrQ0FBa0I7TUFBbEIsa0NBQWtCO0VBQWxCLGlDQUFrQjtFQUFsQiw0QkFBa0I7RUFFbkI7Q0FQRDs7OztFQUtFLG1CQUFrQjtFQUFsQixjQUFrQjtFQUVuQjtDQVBEOzs7O0VBS0UsZUFBa0I7RUFFbkI7Q0FQRDs7OztFQUtFLGdCQUFrQjtFQUFsQixpQkFBa0I7RUFFbkI7Q0FEQztBQUdGOztDQUVDLG9CQUFvQjtDQVdwQjtBQVRBO0NBSkQ7O0VBS0Usb0JBQWtCO01BQWxCLHFCQUFrQjtVQUFsQixhQUFrQjtFQUFsQixxQkFBa0I7TUFBbEIsZUFBa0I7RUFBbEIsK0NBQWtCO01BQWxCLGtDQUFrQjtFQUFsQixpQ0FBa0I7RUFBbEIsNkJBQWtCO0VBQ2xCLG9CQUFvQjtFQUNwQixnQkFBaUI7RUFNbEI7Q0FiRDs7RUFLRSxtQkFBa0I7RUFBbEIsY0FBa0I7RUFRbkI7Q0FiRDs7RUFLRSxlQUFrQjtFQVFuQjtDQWJEOztFQUtFLGdCQUFrQjtFQUFsQixpQkFBa0I7RUFRbkI7Q0FMQztBQUVEO0NBVkQ7O0VBV0UsZ0JBQWlCO0VBRWxCO0NBREM7QUFHRjtDQUNDLGVBQTZCO0NBQzdCLGdCQUFnQjtDQUNoQixpQkFBd0M7Q0FDeEMsa0JBQWtCO0NBQ2xCLGlCQUFpQjtDQU1qQjtBQUpBO0NBUEQ7RUFRRSxnQkFBZ0I7RUFDaEIsaUJBQWtCO0VBRW5CO0NBREM7QUFHRjtDQUNDLFlBQVk7Q0FDWixvQkFBb0I7Q0FDcEIsbUJBQW1CO0NBQ25CO0FBRUQ7Q0FDQyxjQUFjO0NBQ2QsZ0JBQWdCO0NBQ2hCLDBCQUE2QztDQUM3QyxnQ0FBbUQ7Q0FLbkQ7QUFIQTtDQUNDLDJCQUF1QztDQUN2QztBQUdGO0NBQ0MsY0FBYztDQUNkO0FBRUQ7Q0FDQyxnQkFBZ0I7Q0FDaEIsaUJBQXFDO0NBS3JDO0FBSEE7Q0FDQyxvQkFBb0I7Q0FDcEI7QUFHRjtDQUNDLGVBQWU7Q0FDZixnQkFBZ0I7Q0FDaEIsZ0JBQWdCO0NBQ2hCO0FDN0ZEO0NBQ0MsbUJBQW1CO0NBQ25CLGNBQWM7Q0F1QmQ7QUFyQkE7Q0FDQyx1QkFBcUM7Q0FDckM7QUFFRDtDQUNDLDBCQUF5QztDQUN6QyxvQkFBb0I7Q0FLcEI7QUFIQTtDQUNDLGtCQUFrQjtDQUNsQjtBQUdGO0NBQ0Msc0JBQXNCO0NBQ3RCLGtCQUFrQjtDQUtsQjtBQUhBO0NBQ0MsbUJBQW1CO0NBQ25CO0FBSUg7Q0FDQyxrQkFBa0I7Q0FLbEI7QUFIQTtDQUhEO0VBSUUsb0JBQXFCO0VBRXRCO0NBREM7QUFHRjtDQUNDLFVBQVU7Q0FPVjtBQUxBO0NBSEQ7RUFJRSxtQkFBbUI7RUFDbkIsVUFBVTtFQUNWLFdBQVk7RUFFYjtDQURDO0FBR0Y7Q0FDQyxzQkFBc0I7Q0FDdEIsZ0JBQWdCO0NBQ2hCLGtCQUFrQjtDQUNsQixzQkFBc0I7Q0FDdEIsMEJBQTBCO0NBQzFCLG9CQUFvQjtDQVFwQjtBQU5BO0NBQ0Msc0JBQXNCO0NBQ3RCLDRCQUE0QjtDQUM1QixnQkFBZ0I7Q0FDaEIsa0JBQWtCO0NBQ2xCOztBYjdCRixxQkFBcUI7QWM3QnJCO0NBQ0MsZ0JBQWdCO0NBQ2hCLE9BQU87Q0FDUCxTQUFTO0NBQ1QsY0FBYztDQUNkLGFBQWE7Q0FDYiw4QkFBb0M7Q0FDcEM7QUFFRDtDQUNDLGdCQUFnQjtDQUNoQixPQUFPO0NBQ1AsU0FBUztDQUNULGNBQWM7Q0FDZCxhQUFhO0NBQ2IsZ0JBQWdCO0NBS2hCO0FBSEE7Q0FDQyxjQUFjO0NBQ2Q7QUFHRjtDQUNDLG1CQUFtQjtDQUNuQixTQUFTO0NBQ1QsT0FBTztDQUNQLGdCQUFnQjtDQUNoQiw4QkFBOEI7Q0FDOUIsVUFBVTtDQUNWLGFBQWE7Q0FDYixZQUFZO0NBQ1osZ0JBQWdCO0NBQ2hCLGFBQWE7Q0FDYixzQ0FBc0M7Q0FBdEMsOEJBQXNDO0NBTXRDO0FBSkE7O0NBRUMsV0FBVztDQUNYO0FBR0Y7Q0FDQyxvQkFBbUM7Q0FDbkMsZ0JBQWdCO0NBQ2hCLG1CQUFtQjtDQUNuQixXQUFXO0NBQ1gsWUFBWTtDQUNaLFNBQVM7Q0FDVCxRQUFRO0NBQ1IsbUJBQW1CO0NBYW5CO0FBWEE7Q0FDQyxhQUFhO0NBQ2I7QUFFRDtDQUNDLCtCQUF1QjtTQUF2Qix1QkFBdUI7Q0FDdkI7QUFFRDtDQWxCRDtFQW1CRSxnQkFBaUI7RUFFbEI7Q0FEQztBQUdGO0NBQ0MsYUFBYTtDQU9iO0FBTEE7Q0FIRDtFQUlFLHFCQUFjO0VBQWQscUJBQWM7RUFBZCxjQUFjO0VBQ2QsK0JBQW9CO0VBQXBCLDhCQUFvQjtNQUFwQix3QkFBb0I7VUFBcEIsb0JBQW9CO0VBQ3BCLHNCQUFrQjtNQUFsQixpQkFBa0I7RUFFbkI7Q0FEQztBQUdGO0NBQ0Msb0JBQVE7S0FBUixZQUFRO1NBQVIsUUFBUTtDQUNSLFlBQVk7Q0FDWixhQUFhO0NBQ2IsOEJBQThCO0NBQzlCLGNBQWM7Q0FDZCxtQkFBbUI7Q0FRbkI7QUFOQTtDQVJEO0VBU0Usb0JBQWdCO01BQWhCLG9CQUFnQjtVQUFoQixnQkFBZ0I7RUFDaEIsYUFBYTtFQUNiLGlCQUFpQjtFQUNqQiw0QkFBNkI7RUFFOUI7Q0FEQztBQUdGO0NBQ0MsWUFBWTtDQUNaLGFBQWE7Q0FRYjtBQU5BO0NBSkQ7RUFLRSxvQkFBZTtNQUFmLG1CQUFlO1VBQWYsZUFBZTtFQUNmLHFCQUFjO0VBQWQscUJBQWM7RUFBZCxjQUFjO0VBQ2QsK0JBQW9CO0VBQXBCLDhCQUFvQjtNQUFwQix3QkFBb0I7VUFBcEIsb0JBQW9CO0VBQ3BCLHNCQUFrQjtNQUFsQixpQkFBa0I7RUFFbkI7Q0FEQztBQUdGO0NBQ0MsbUJBQW1CO0NBYW5CO0FBWEE7Q0FIRDtFQUlFLG9CQUFjO01BQWQsa0JBQWM7VUFBZCxjQUFjO0VBQ2QsYUFBYTtFQUNiLHFCQUFjO0VBQWQscUJBQWM7RUFBZCxjQUFjO0VBQ2QsNkJBQXVCO0VBQXZCLDhCQUF1QjtNQUF2QiwyQkFBdUI7VUFBdkIsdUJBQXVCO0VBQ3ZCLHNCQUFrQjtNQUFsQixpQkFBa0I7RUFNbkI7Q0FMQztBQUVEO0NBWEQ7RUFZRSxvQkFBYztNQUFkLGtCQUFjO1VBQWQsYUFBYztFQUVmO0NBREM7QUFHRjtDQUNDLG1CQUFtQjtDQUNuQjtBQUVEO0NBQ0MsbUJBQW1CO0NBQ25CLGtDQUFrQztDQUNsQyxxQkFBYztDQUFkLHFCQUFjO0NBQWQsY0FBYztDQUNkLCtCQUFvQjtDQUFwQiw4QkFBb0I7S0FBcEIsd0JBQW9CO1NBQXBCLG9CQUFvQjtDQUNwQixvQkFBZ0I7S0FBaEIsZ0JBQWdCO0NBQ2hCLGFBQWE7Q0FDYixtQkFBbUI7Q0FDbkI7QUFFRCxtQ0FBbUM7QUFDbkM7Q0FDQyxhQUFhO0NBQ2IsMkJBQTJCO0NBQzNCLGlCQUErQjtDQUMvQixxQkFBYztDQUFkLHFCQUFjO0NBQWQsY0FBYztDQUNkLDZCQUF1QjtDQUF2Qiw4QkFBdUI7S0FBdkIsMkJBQXVCO1NBQXZCLHVCQUF1QjtDQUN2QixzQkFBa0I7S0FBbEIsa0JBQWtCO0NBQ2xCLDBCQUErQjtLQUEvQix1QkFBK0I7U0FBL0IsK0JBQStCO0NBWS9CO0FBVkE7Q0FURDtFQVVFLGFBQWE7RUFDYixvQkFBYztNQUFkLGtCQUFjO1VBQWQsY0FBYztFQUNkLGNBQWM7RUFDZCwyQkFBNEI7RUFNN0I7Q0FMQztBQUVEO0NBaEJEO0VBaUJFLG9CQUFjO01BQWQsa0JBQWM7VUFBZCxhQUFjO0VBRWY7Q0FEQztBQUdGO0NBQ0MsbUJBQW1CO0NBQ25CLG9CQUFnQjtLQUFoQixvQkFBZ0I7U0FBaEIsZ0JBQWdCO0NBQ2hCLGlCQUFpQjtDQUNqQjtBQUVEOzs7Q0FHQyxtQkFBbUI7Q0FDbkIsT0FBTztDQUNQLFFBQVE7Q0FDUixZQUFZO0NBQ1osYUFBYTtDQUNiLG1CQUFtQjtDQUNuQixpQkFBaUI7Q0FDakIsV0FBVztDQUNYLFlBQVk7Q0FDWiwwQ0FBOEI7Q0FBOUIsa0NBQThCO0NBQzlCLGNBQWM7Q0FXZDtBQVRBO0NBZkQ7OztFQWdCRSxhQUFjO0VBUWY7Q0FQQztBQUVEO0NBQ0MsV0FBVztDQUNYLG9CQUFvQjtDQUNwQixXQUFXO0NBQ1g7QUFHRjtDQUNDLG1CQUFtQjtDQUNuQixpQkFBaUI7Q0FDakIsb0JBQWM7S0FBZCxrQkFBYztTQUFkLGNBQWM7Q0FDZCwyQkFBMkI7Q0FDM0I7QUFFRDtDQUNDLG1CQUFtQjtDQUNuQixhQUFhO0NBQ2IsUUFBUTtDQUNSLFVBQVU7Q0FDVixZQUFZO0NBQ1oscUlBQW9GO0NBQXBGLG1GQUFvRjtDQUNwRixxQkFBcUI7Q0FLckI7QUFIQTtDQVREO0VBVUUsWUFBYTtFQUVkO0NBREM7QUFHRjs7Q0FFQyxtQkFBbUI7Q0FDbkIsT0FBTztDQUNQLFFBQVE7Q0FDUixZQUFZO0NBQ1osYUFBYTtDQUNiLGlCQUFpQjtDQUNqQixtQkFBbUI7Q0FDbkIsV0FBVztDQUNYLFlBQVk7Q0FDWiwwQ0FBOEI7Q0FBOUIsa0NBQThCO0NBTzlCO0FBTEE7Q0FDQyxvQkFBb0I7Q0FDcEIsV0FBVztDQUNYLFdBQVc7Q0FDWDtBQUdGOztDQUVDLG1CQUFtQjtDQUNuQixrQ0FBa0M7Q0FDbEMsY0FBYztDQUNkLFVBQVU7Q0FDVixjQUFjO0NBTWQ7QUFKQTtDQVJEOztFQVNFLGFBQWE7RUFDYixhQUFjO0VBRWY7Q0FEQztBQUdGO0NBQ0MsYUFBYTtDQUNiO0FBRUQ7Q0FDQyxzQkFBc0I7Q0FDdEIsdUJBQXVCO0NBQ3ZCLG1CQUFtQjtDQUNuQiwwQkFBMEI7Q0FDMUIsZ0JBQWdCO0NBQ2hCLGtCQUFrQjtDQUNsQixpQkFBaUI7Q0FDakIsa0JBQWtCO0NBQ2xCLG1CQUFtQjtDQUNuQiw4QkFBOEI7Q0FDOUIsMEJBQTZDO0NBQzdDLGVBQTZCO0NBQzdCLHNCQUFzQjtDQXdCdEI7QUF0QkE7Q0FDQyxtQkFBbUI7Q0FDbkIsOEJBQThCO0NBQzlCLFVBQVU7Q0FDVixzQkFBc0I7Q0FDdEIsdUJBQXVCO0NBQ3ZCLGtCQUFrQjtDQUNsQixjQUFjO0NBQ2QsaUJBQWlCO0NBQ2pCLGVBQWtDO0NBQ2xDLGdCQUFnQjtDQUNoQiwwQ0FBOEI7Q0FBOUIsa0NBQThCO0NBVTlCO0FBUkE7O0NBRUMsV0FBVztDQUNYO0FBRUQ7Q0FDQyxnQkFBZ0I7Q0FDaEI7QUFJSDtDQUNDLHVCQUF1QjtDQUN2QjtBQUVEO0NBQ0MsWUFBWTtDQUNaLGFBQWE7Q0FDYixjQUFjO0NBQ2QsMkJBQTJCO0NBQzNCLG9CQUFjO0tBQWQsa0JBQWM7U0FBZCxjQUFjO0NBVWQ7QUFSQTtDQVBEO0VBUUUsYUFBYztFQU9mO0NBTkM7QUFFRDtDQUNDLGVBQWU7Q0FDZixvQkFBb0I7Q0FDcEI7QUFLRDtDQUNDLGVBQWU7Q0FDZixpQkFBaUI7Q0FDakI7QUFFRDtDQUNDLGVBQWU7Q0FDZixtQkFBbUI7Q0FDbkI7QUFFRDtDQUNDLHNCQUFzQjtDQUN0QjtBQUVEOztDQUVDLHFCQUFjO0NBQWQscUJBQWM7Q0FBZCxjQUFjO0NBQ2QsK0JBQW9CO0NBQXBCLDhCQUFvQjtLQUFwQix3QkFBb0I7U0FBcEIsb0JBQW9CO0NBQ3BCLG9CQUFnQjtLQUFoQixnQkFBZ0I7Q0FjaEI7QUFaQTtDQUNDLG9CQUFlO0tBQWYsbUJBQWU7U0FBZixlQUFlO0NBQ2Y7QUFFRDtDQUNDLG9CQUFjO0tBQWQsa0JBQWM7U0FBZCxjQUFjO0NBTWQ7QUFKQTtDQUNDLHNCQUFzQjtDQUN0QixpQkFBaUI7Q0FDakI7QUFLSjtDQUNDLHFCQUFjO0NBQWQscUJBQWM7Q0FBZCxjQUFjO0NBQ2QsK0JBQW9CO0NBQXBCLDhCQUFvQjtLQUFwQix3QkFBb0I7U0FBcEIsb0JBQW9CO0NBQ3BCLHNCQUFrQjtLQUFsQixrQkFBa0I7Q0FDbEIsMEJBQW9CO0tBQXBCLHVCQUFvQjtTQUFwQixvQkFBb0I7Q0FDcEI7QUFFRDtDQUNDLG9CQUFlO0tBQWYsbUJBQWU7U0FBZixlQUFlO0NBQ2Ysa0JBQWtCO0NBQ2xCO0FBRUQ7Q0FDQyxvQkFBZ0I7S0FBaEIsb0JBQWdCO1NBQWhCLGdCQUFnQjtDQUNoQixrQkFBa0I7Q0FDbEIsWUFBWTtDQUNaLGdCQUFnQjtDQUNoQjtBQUVEO0NBQ0Msb0JBQWU7S0FBZixtQkFBZTtTQUFmLGVBQWU7Q0FDZixhQUFhO0NBQ2Isa0JBQWtCO0NBQ2xCLHVCQUF1QjtDQUN2QixtQkFBbUI7Q0FDbkI7QUFFRDtDQUNDLG9CQUFlO0tBQWYsbUJBQWU7U0FBZixlQUFlO0NBQ2YsZ0JBQWdCO0NBQ2hCLFVBQVU7Q0FDVixlQUFrQztDQU1sQztBQUpBOztDQUVDLGVBQStDO0NBQy9DO0FDMVhGO0NBQ0MsMkVBQXVGO0NBQ3ZGLHlCQUF5QjtDQUN6QixhQUFhO0NBQ2IsYUFBYTtDQUNiLGVBQWU7Q0FDZixzQkFBc0I7Q0FDdEI7QUFFRDtDQUNDLFVBQVU7Q0FDVjtBQUVEO0NBQ0MsbUJBQW1CO0NBQ25CLGNBQWM7Q0FDZCxXQUFXO0NBQ1gsaUJBQWlCO0NBQ2pCO0FBRUQ7Q0FDQyw4QkFBOEI7Q0FDOUIsZ0JBQWdCO0NBQ2hCLGVBQWU7Q0FDZixZQUFZO0NBQ1osaUJBQWlCO0NBT2pCO0FBTEE7Q0FDQyxpQkFBaUI7Q0FDakIsaUJBQWlCO0NBQ2pCLFdBQVc7Q0FDWDtBQUdGOztDQUVDLHNCQUFzQjtDQUN0QixzQkFBc0I7Q0FDdEIsZUFBbUM7Q0FDbkMsaUJBQXFDO0NBQ3JDLDBDQUE4QjtDQUE5QixrQ0FBOEI7Q0FDOUIsZUFBZTtDQUNmLG1CQUFtQjtDQVVuQjtBQVJBOzs7O0NBRUMsZUFBNkI7Q0FDN0I7QUFFRDtDQUNDLGVBQXNDO0NBQ3RDO0FBS0Q7Q0FDQyxpQkFBd0M7Q0FpQnhDO0FBZkE7Q0FDQyxlQUE2QjtDQWE3QjtBQVhBO0NBQ0MsWUFBWTtDQUNaLFlBQVk7Q0FDWixhQUFhO0NBQ2Isb0JBQW9CO0NBQ3BCLG1CQUFtQjtDQUNuQixTQUFTO0NBQ1QsaUJBQWlCO0NBQ2pCLFlBQVk7Q0FDWiwwQkFBaUQ7Q0FDakQ7QUFLSjtDQUNDLGVBQWU7Q0FDZixZQUFZO0NBQ1osd0JBQXdCO0NBQ3hCLFVBQVU7Q0FDVixnQkFBZ0I7Q0FDaEIsaUJBQWlCO0NBS2pCO0FBSEE7Q0FDQyxhQUFhO0NBQ2I7QUN2RkY7Q0FDQyxxQkFBYztDQUFkLHFCQUFjO0NBQWQsY0FBYztDQUNkLCtCQUFvQjtDQUFwQiw4QkFBb0I7S0FBcEIsd0JBQW9CO1NBQXBCLG9CQUFvQjtDQUNwQixzQkFBa0I7S0FBbEIsa0JBQWtCO0NBQ2xCLHlCQUF3QjtLQUF4QixzQkFBd0I7U0FBeEIsd0JBQXdCO0NBQ3hCLG1CQUFtQjtDQStCbkI7QUE3QkE7Q0FDQyxvQkFBZTtLQUFmLG1CQUFlO1NBQWYsZUFBZTtDQUNmLGlCQUFpQjtDQUNqQjtBQUVEO0NBQ0Msb0JBQW9CO0NBQ3BCO0FBRUQ7Q0FDQyxvQkFBZTtLQUFmLG1CQUFlO1NBQWYsZUFBZTtDQUNmLGdCQUFnQjtDQUNoQixlQUFlO0NBQ2YsbUJBQW1CO0NBQ25CLGtCQUFrQjtDQUNsQixnQkFBZ0I7Q0FDaEIsdUJBQXVCO0NBQ3ZCLGdCQUFnQjtDQUNoQjtBQUVEO0NBQ0Msd0JBQXdCO0NBQ3hCLFVBQVU7Q0FDVixzQkFBc0I7Q0FDdEIsbUJBQW1CO0NBQ25CLGFBQWE7Q0FDYixVQUFVO0NBQ1YsZ0JBQWdCO0NBQ2hCO0FBR0Y7Q0FDQyw4QkFBOEI7Q0FDOUIsVUFBVTtDQUNWLHlCQUFpQjtTQUFqQixpQkFBaUI7Q0FDakIsZ0JBQWdCO0NBQ2hCLHdCQUF3QjtDQUN4QjtBQUVEOztDQUVDLHNEQUFrRTtDQUNsRTtBQ2pERDtDQUNDLG9CQUFpQjtLQUFqQixxQkFBaUI7U0FBakIsYUFBaUI7Q0FBakIscUJBQWlCO0tBQWpCLGVBQWlCO0NBQWpCLG1DQUFpQjtLQUFqQixzQkFBaUI7Q0FBakIscUJBQWlCO0NBQWpCLGlCQUFpQjtDQUNqQixvQkFBb0I7Q0FDcEIsY0FBYztDQUNkLG1CQUFtQjtDQXNCbkI7QUExQkQ7Q0FDQyxtQkFBaUI7Q0FBakIsZUFBaUI7Q0F5QmpCO0FBMUJEO0NBQ0MsZ0JBQWlCO0NBeUJqQjtBQTFCRDtDQUNDLGdCQUFpQjtDQUFqQixrQkFBaUI7Q0F5QmpCO0FBcEJBO0NBTkQ7RUFPRSxvQkFBcUI7TUFBckIscUJBQXFCO1VBQXJCLGFBQXFCO0VBQXJCLHFCQUFxQjtNQUFyQixlQUFxQjtFQUFyQiw2QkFBcUI7TUFBckIsZ0JBQXFCO0VBQXJCLGVBQXFCO0VBQXJCLFdBQXFCO0VBQ3JCLG1CQUFvQjtFQWtCckI7Q0ExQkQ7RUFPRSxnQkFBcUI7RUFBckIsY0FBcUI7RUFtQnRCO0NBMUJEO0VBT0UsZUFBcUI7RUFtQnRCO0NBMUJEO0VBT0UsZ0JBQXFCO0VBQXJCLGlCQUFxQjtFQW1CdEI7Q0FqQkM7QUFFRDtDQVhEO0VBWUUsb0JBQXFCO01BQXJCLHFCQUFxQjtVQUFyQixhQUFxQjtFQUFyQixxQkFBcUI7TUFBckIsZUFBcUI7RUFBckIsbUNBQXFCO01BQXJCLHNCQUFxQjtFQUFyQixxQkFBcUI7RUFBckIsZ0JBQXFCO0VBY3RCO0NBMUJEO0VBWUUsZ0JBQXFCO0VBQXJCLGNBQXFCO0VBY3RCO0NBMUJEO0VBWUUsZUFBcUI7RUFjdEI7Q0ExQkQ7RUFZRSxnQkFBcUI7RUFBckIsaUJBQXFCO0VBY3RCO0NBYkM7QUFFRDtDQWZEO0VBZ0JFLG9CQUFxQjtNQUFyQixxQkFBcUI7VUFBckIsYUFBcUI7RUFBckIscUJBQXFCO01BQXJCLGVBQXFCO0VBQXJCLDZCQUFxQjtNQUFyQixnQkFBcUI7RUFBckIsZUFBcUI7RUFBckIsVUFBcUI7RUFVdEI7Q0ExQkQ7RUFnQkUsZ0JBQXFCO0VBQXJCLGNBQXFCO0VBVXRCO0NBMUJEO0VBZ0JFLGVBQXFCO0VBVXRCO0NBMUJEO0VBZ0JFLGdCQUFxQjtFQUFyQixpQkFBcUI7RUFVdEI7Q0FUQztBQUVEO0NBbkJEO0VBb0JFLG9CQUFxQjtNQUFyQixxQkFBcUI7VUFBckIsYUFBcUI7RUFBckIscUJBQXFCO01BQXJCLGVBQXFCO0VBQXJCLG1DQUFxQjtNQUFyQixzQkFBcUI7RUFBckIscUJBQXFCO0VBQXJCLGdCQUFxQjtFQU10QjtDQTFCRDtFQW9CRSxnQkFBcUI7RUFBckIsY0FBcUI7RUFNdEI7Q0ExQkQ7RUFvQkUsZUFBcUI7RUFNdEI7Q0ExQkQ7RUFvQkUsZ0JBQXFCO0VBQXJCLGlCQUFxQjtFQU10QjtDQUxDO0FBRUQ7Q0F2QkQ7RUF3QkUsb0JBQXFCO01BQXJCLHFCQUFxQjtVQUFyQixhQUFxQjtFQUFyQixxQkFBcUI7TUFBckIsZUFBcUI7RUFBckIsNkJBQXFCO01BQXJCLGdCQUFxQjtFQUFyQixlQUFxQjtFQUFyQixVQUFxQjtFQUV0QjtDQTFCRDtFQXdCRSxnQkFBcUI7RUFBckIsY0FBcUI7RUFFdEI7Q0ExQkQ7RUF3QkUsZUFBcUI7RUFFdEI7Q0ExQkQ7RUF3QkUsZ0JBQXFCO0VBQXJCLGlCQUFxQjtFQUV0QjtDQURDO0FBS0Q7Q0FDQyxlQUFlO0NBQ2YsbUJBQW1CO0NBQ25CLFVBQVU7Q0FDVixZQUFZO0NBQ1osZ0JBQWdCO0NBQ2hCLFdBQVc7Q0FDWCxlQUFrQztDQUtsQztBQUhBO0NBQ0MsV0FBVztDQUNYO0FBSUg7Q0FDQyxlQUE2QjtDQUM3QixzQkFBc0I7Q0FDdEIsbUJBQW1CO0NBQ25CLFFBQVE7Q0FDUixPQUFPO0NBQ1AsWUFBWTtDQUNaLGFBQWE7Q0FDYixlQUFlO0NBQ2YsZ0JBQWdCO0NBQ2hCLFdBQVc7Q0FDWCwwQ0FBOEI7Q0FBOUIsa0NBQThCO0NBQzlCLHdCQUF3QjtDQUN4QiwyQkFBaUM7Q0FZakM7QUFWQTs7Q0FFQyxXQUFXO0NBQ1gsdUJBQXVCO0NBQ3ZCLGVBQTZCO0NBSzdCO0FBSEE7Q0FDQyxlQUFlO0NBQ2Y7QUFJSDtDQUNDLGVBQWU7Q0FDZixtQkFBbUI7Q0FDbkIsVUFBVTtDQUNWLFNBQVM7Q0FDVCxZQUFZO0NBQ1osaUJBQWlCO0NBQ2pCLG9CQUF1QztDQUN2QyxtQkFBbUI7Q0FDbkIsZ0JBQWdCO0NBQ2hCLGdCQUFnQjtDQUNoQixrQkFBa0I7Q0FDbEIsWUFBMEI7Q0FDMUIsbUJBQW1CO0NBQ25CLG9DQUE0QjtTQUE1Qiw0QkFBNEI7Q0FDNUI7QUFFRDtDQUNDLHlDQUE0RDtDQUM1RCxZQUFZO0NBQ1osVUFBVTtDQUNWLG1CQUFtQjtDQzdGcEIsK0JBQUE7U0FBQSx1QkFBQTtDRCtGQztBQURBO0NDOUZELG1CQUFBO0NBQUEsT0FBQTtDQUFBLFNBQUE7Q0FBQSxVQUFBO0NBQUEsUUFBQTtDQUFBLCtCQUFBO1NBQUEsdUJBQUE7Q0Q4RnFCO0FBQXBCO0NDOUZELG1CQUFBO0NBQUEsZUFBQTtDQUFBLFlBQUE7Q0FBQSxrQkFBQTtDQUFBLCtCQUFBO1NBQUEsdUJBQUE7Q0Q4RnFCO0FBR3JCO0NBQ0MsdUJBQXVCO0NBQ3ZCO0FBRUQ7Q0FDQyx5QkFBeUI7Q0FDekIsbUNBQW1DO0NBQ25DO0FBRUQ7Q0FDQyxxQkFBYztDQUFkLHFCQUFjO0NBQWQsY0FBYztDQUNkLCtCQUFvQjtDQUFwQiw4QkFBb0I7S0FBcEIsd0JBQW9CO1NBQXBCLG9CQUFvQjtDQUNwQixzQkFBa0I7S0FBbEIsa0JBQWtCO0NBQ2xCO0FBRUQ7Q0FDQyxvQkFBZTtLQUFmLG1CQUFlO1NBQWYsZUFBZTtDQUNmLGdCQUFnQjtDQUNoQixlQUFlO0NBQ2Ysa0JBQWtCO0NBQ2xCO0FBRUQ7Q0FDQyxnQkFBZ0I7Q0FDaEIsa0JBQWtCO0NBQ2xCLHlCQUF5QjtDQUN6QjtBQUVEO0NBQ0MsZ0JBQWdCO0NBQ2hCLGtCQUFrQjtDQUNsQjtBQUVEO0NBQ0MsbUJBQW1CO0NBQ25CLFlBQVk7Q0FDWixhQUFhO0NBQ2IsT0FBTztDQUNQLFFBQVE7Q0FDUiw4QkFBb0M7Q0FDcEMsV0FBVztDQUNYLHVDQUErQjtDQUEvQiwrQkFBK0I7Q0FDL0IsWUFBWTtDQU1aO0FBSkE7Q0FDQyxXQUFXO0NBQ1gsaUJBQWlCO0NBQ2pCO0FBS0Q7Q0FDQyxXQUFXO0NBQ1gsMENBQThCO0NBQTlCLGtDQUE4QjtDQUM5QjtBQUlBO0NBQ0MsYUFBYTtDQUNiLG9CQUFvQjtDQUNwQjtBRS9KSDtDQUNDLGlCQUFpQjtDQUNqQjtBQUVEO0NBQ0Msb0JBQW9CO0NBVXBCO0FBUkE7O0NBRUMsVUFBVTtDQUNWLGdCQUFnQjtDQUNoQixvQkFBb0I7Q0FDcEIsZ0JBQWdCO0NBQ2hCLGtCQUFrQjtDQUNsQjtBQUdGO0NBQ0Msc0JBQXNCO0NBQ3RCLHdCQUF3QjtDQUN4QixVQUFVO0NBQ1YsV0FBVztDQUNYLGVBQWtDO0NBQ2xDLGdCQUFnQjtDQU1oQjtBQUpBOztDQUVDLGVBQTRCO0NBQzVCOztBbkJRRix3QkFBd0I7QW9CcEN4QjtDQUNDLGlCQUFpQjtDQWdDakI7QUE5QkE7Q0FDQywwQkFBNkM7Q0FDN0MsWUFBMEI7Q0FDMUIsZ0JBQWdCO0NBQ2hCLFVBQVU7Q0FDVixvQkFBb0I7Q0FDcEIseUJBQWlCO1NBQWpCLGlCQUFpQjtDQUNqQiwwQkFBMEI7Q0FDMUIsZ0JBQWdCO0NBQ2hCLGtCQUFrQjtDQUNsQixhQUFhO0NBQ2IsV0FBVztDQUNYLHNDQUFzQztDQUF0Qyw4QkFBc0M7Q0FZdEM7QUFWQTs7Q0FFQywwQkFBNkM7Q0FDN0MsWUFBMEI7Q0FDMUIsYUFBYTtDQUNiO0FBRUQ7Q0FDQyxrQkFBa0I7Q0FDbEI7QUFHRjtDQUNDLDREQUEyQztDQUMzQyxpQkFBcUM7Q0FDckM7QUM1QkE7Q0FDQyxtQkFBbUI7Q0FDbkIsVUFBVTtDQUNWLG1CQUFtQjtDQUNuQixlQUFlO0NBQ2Y7QUFFRDtDQUNDLGNBQWM7Q0FDZDtBQUtEO0NBQ0MsY0FBYztDQUNkLGNBQWM7Q0FDZCxlQUFlO0NBaUNmO0FBL0JBO0NBQ0Msc0JBQXNCO0NBQ3RCLGtCQUFrQjtDQUNsQix1QkFBdUI7Q0FDdkIsbUJBQW1CO0NBQ25CO0FBRUQ7Q0FDQyxnQkFBZ0I7Q0FDaEIsa0JBQWtCO0NBQ2xCLHNCQUFzQjtDQUN0QiwwQkFBMEI7Q0FDMUIsb0JBQW9CO0NBQ3BCLGVBQWtDO0NBQ2xDLFdBQVc7Q0FDWCxzQ0FBc0M7Q0FBdEMsOEJBQXNDO0NBZXRDO0FBYkE7Q0FDQyxnQkFBZ0I7Q0FDaEIsa0JBQWtCO0NBQ2xCLHlCQUF5QjtDQUN6QixrQkFBa0I7Q0FDbEIsK0JBQWdEO0NBQ2hELG1CQUFtQjtDQUNuQjtBQUVEOztDQUVDLGFBQWE7Q0FDYjtBQ2xESjtDQUNDLGNBQWM7Q0FDZCIsImZpbGUiOiJiYy1hZG1pbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogV29yZFByZXNzIGFkbWluIENTU1xuICpcbiAqIFRoaXMgY3NzIGZpbGVzIGluY2x1ZGVzIGFyZSBsb2FkZWQgZ2xvYmFsbHkgaW4gdGhlIGFkbWluLiBVc2UgdGhpcyBmb3IgYWxsIG90aGVyIGFkbWluIGNzcy5cbiAqXG4gKi9cblxuLyogQWRtaW4gVUkgQmFzZSAqL1xuQGltcG9ydCBcIi4uL3V0aWxpdGllcy9taXhpbnMvYnV0dG9uc1wiO1xuQGltcG9ydCBcIi4uL3V0aWxpdGllcy92YXJpYWJsZXMvY29sb3JzXCI7XG5AaW1wb3J0IFwiLi4vdXRpbGl0aWVzL3ZhcmlhYmxlcy9tZWRpYS1xdWVyaWVzXCI7XG5AaW1wb3J0IFwiLi4vdXRpbGl0aWVzL3ZhcmlhYmxlcy9wYXRoc1wiO1xuQGltcG9ydCBcIi4uL3V0aWxpdGllcy92YXJpYWJsZXMvdHJhbnNpdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi91dGlsaXRpZXMvdmFyaWFibGVzL3R5cG9ncmFwaHlcIjtcbkBpbXBvcnQgXCIuLi91dGlsaXRpZXMvdmFyaWFibGVzL2ljb25zXCI7XG5AaW1wb3J0IFwiLi4vdXRpbGl0aWVzL3NldHRpbmdzL2dyaWRcIjtcbkBpbXBvcnQgXCIuLi9iYXNlL2ljb25zXCI7XG5cbi8qIFZlbmRvcjogQ2hvaWNlcy5qcyAqL1xuQGltcG9ydCBcImNob2ljZXMvYWxsXCI7XG5cbi8qIEFkbWluIFBsdWdpbiBTZXR0aW5ncyAqL1xuQGltcG9ydCAnLi9zZXR0aW5ncy9tZW51JztcbkBpbXBvcnQgJy4vc2V0dGluZ3MvcGx1Z2luLXNldHRpbmdzLXBhZ2VzJztcbkBpbXBvcnQgJy4vc2V0dGluZ3MvcGx1Z2luLXNldHRpbmdzJztcbkBpbXBvcnQgJy4vc2V0dGluZ3MvcGx1Z2luLXdlbGNvbWUnO1xuQGltcG9ydCAnLi9zZXR0aW5ncy9wbHVnaW4tY29ubmVjdCc7XG5AaW1wb3J0ICcuL3NldHRpbmdzL3BsdWdpbi1ub3RpY2VzJztcblxuLyogQWRtaW4gVUkgU3R5bGVzICovXG5AaW1wb3J0ICcuL3Nob3J0Y29kZS11aS9zaG9ydGNvZGUtZGlhbG9nJztcbkBpbXBvcnQgJy4vc2hvcnRjb2RlLXVpL3F1ZXJ5LWJ1aWxkZXInO1xuQGltcG9ydCAnLi9zaG9ydGNvZGUtdWkvc2VhcmNoZm9ybSc7XG5AaW1wb3J0ICcuL3Nob3J0Y29kZS11aS9wcm9kdWN0LXJlc3VsdHMnO1xuQGltcG9ydCAnLi9zaG9ydGNvZGUtdWkvc2VsZWN0ZWQtcHJvZHVjdHMnO1xuXG4vKiBQb3N0IEVkaXRvciBTdHlsZXMgKi9cbkBpbXBvcnQgJy4vcG9zdHMvcG9zdHMtbGlzdCc7XG5AaW1wb3J0ICcuL3Bvc3RzL2VkaXQtcG9zdCc7XG5AaW1wb3J0ICcuL3Bvc3RzL3F1aWNrLWVkaXQnO1xuXG4iLCJcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogR2xvYmFsIEJ1dHRvbiBSZXNldHNcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZGVmaW5lLW1peGluIGJ1dHRvbi1nbG9iYWwge1xuXHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblx0d2lkdGg6IGF1dG87XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWV2ZW4pO1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdGhlaWdodDogYXV0bztcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGJvcmRlcjogMDtcblx0cGFkZGluZzogMDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBCdXR0b24gU3VibWl0XG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGRlZmluZS1taXhpbiBidXR0b24tc3VibWl0IHtcblx0QG1peGluIGJ1dHRvbi1nbG9iYWw7XG5cblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmxhY2spO1xuXHRwYWRkaW5nOiAxZW07XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Y29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblxuXHQmOnZpc2l0ZWQge1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmV5LWRhcmspO1xuXHR9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQnV0dG9uIFBpbGxcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZGVmaW5lLW1peGluIGJ1dHRvbi1waWxsIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmMtZG9nZXItYmx1ZSk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWRvZ2VyLWJsdWUpO1xuXHRib3JkZXItcmFkaXVzOiAxOXB4O1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRib3gtc2hhZG93OiB1bnNldDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBhZGRpbmc6IDEzcHggMjBweCAxMnB4O1xuXHRmb250LXNpemU6IDEycHg7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuXHRsZXR0ZXItc3BhY2luZzogMXB4O1xuXHRsaW5lLWhlaWdodDogMTJweDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR0ZXh0LXNoYWRvdzogbm9uZTtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtYmx1ZS10dXJxdW9pc2UpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYmMtYmx1ZS10dXJxdW9pc2UpO1xuXHR9XG5cblx0JjpkaXNhYmxlZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSkgIWltcG9ydGFudDtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpICFpbXBvcnRhbnQ7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWdyZXkpICFpbXBvcnRhbnQ7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7XG5cdH1cbn1cbiIsIjpyb290IHtcblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogUHJpbWFyeSBQYWxldHRlXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jb2xvci1wcmltYXJ5OiAjNTI3M2Y0O1xuXHQtLWNvbG9yLXNlY29uZGFyeTogZGFya2VuKHZhcigtLWNvbG9yLXByaW1hcnkpLCAwLjA4KTtcblx0LS1jb2xvci1iYy1ncmVlbjogIzY1YzY4Yztcblx0LS1jb2xvci1iYy1saWdodC1ncmV5OiAjZTBlM2U5O1xuXHQtLWNvbG9yLWJjLWNvbmNyZXRlOiAjY2RjZGNkO1xuXHQtLWNvbG9yLWJjLWdyZXk6ICM4YjhiOGI7XG5cdC0tY29sb3ItYmMtZ3JleS1tZWRpdW06ICM1ZTVlNWU7XG5cdC0tY29sb3ItYmMtYmxhY2s6ICMzNDMxM2Y7XG5cdC0tY29sb3ItYmMtZG9nZXItYmx1ZTogIzRiNzFmYztcblx0LS1jb2xvci1iYy1ibHVlLWxpZ2h0OiAjMTY4ZmMwO1xuXHQtLWNvbG9yLWJjLWJsdWUtdHVycXVvaXNlOiAjNTNiYWQxO1xuXHQtLWNvbG9yLWJjLXJlZDogI2QyNTc0YTtcblx0LS1jb2xvci1iYy1zdWNjZXNzOiAjODI5ZDVmO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIFdoaXRlc1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY29sb3Itd2hpdGU6ICNmZmY7XG5cdC0tY29sb3Itb2ZmLXdoaXRlOiAjZjVmNWY1O1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIEdyZXlzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jb2xvci1ncmV5LWxpZ2h0OiBsaWdodGVuKHZhcigtLWNvbG9yLWdyZXkpLCAwLjE1KTtcblx0LS1jb2xvci1ncmV5OiBncmV5O1xuXHQtLWNvbG9yLWdyZXktZGFyazogZGFya2VuKHZhcigtLWNvbG9yLWdyZXkpLCAwLjE1KTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBCbGFja3Ncblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNvbG9yLWJsYWNrOiAjMDAwO1xuXHQtLWNvbG9yLWJsYWNrLWEtNDA6IHJnYmEoMCwgMCwgMCwgMC40KTtcblx0LS1jb2xvci1ibGFjay1hLTcwOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogQmFja2dyb3VuZHNcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNvbG9yLWJnZDogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHQtLWNvbG9yLWJnZC1jb250ZW50OiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdC0tY29sb3ItYmdkLWxvZ2luOiAjZjFmMWYxO1xuXHQtLWNvbG9yLWJnZC1zZWxlY3Rpb246IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuXHQtLWNvbG9yLWJnZC1wYW5lbC1hY3RpdmU6ICMyYzI5MzU7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogTGlua3Ncblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNvbG9yLWxpbms6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuXHQtLWNvbG9yLWxpbmstaG92ZXI6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogVGV4dFxuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY29sb3ItdGV4dDogdmFyKC0tY29sb3ItYmxhY2spO1xuXHQtLWNvbG9yLXRleHQtc2VsZWN0aW9uOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogQm9yZGVyc1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY29sb3ItYm9yZGVyOiB2YXIoLS1jb2xvci1ncmV5KTtcblx0LS1jb2xvci1ib3JkZXItZm9ybS1maWVsZDogI2UxZTZlYTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBBbGVydCBDb2xvcnNcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWFsZXJ0LWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdC0tYWxlcnQtYmctZGVmYXVsdDogdmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCk7XG5cdC0tYWxlcnQtc3VjY2VzczogIzNlYzg4OTtcblx0LS1hbGVydC1lcnJvcjogI2ZmMDAxMjtcblx0LS1hbGVydC1iZy1pbmZvOiB2YXIoLS1jb2xvci1iYy1jb25jcmV0ZSk7XG59XG4iLCI6cm9vdCB7XG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIEZvbnQgU3RhY2tzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb250LWZhbWlseS1iaWdjb21tZXJjZS1pY29uczogJ2JpZ2NvbW1lcmNlLWljb25zJztcblx0LS1mb250LWZhbWlseS1wcm94aW1hLW5vdmE6IFwicHJveGltYS1ub3ZhXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcblx0LS1mb250LWZhbWlseS1zYW5zLXNlcmlmOiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG5cdC0tZm9udC1mYW1pbHktYmFzZTogdmFyKC0tZm9udC1mYW1pbHktcHJveGltYS1ub3ZhKTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBGb250IFNpemluZ1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tZm9udC1zaXplLWJhc2U6IDE4cHg7XG5cdC0tZm9udC1zaXplLWNvbnRlbnQ6IDE4cHg7XG5cdC0tZm9udC1zaXplLWNvbnRlbnQtczogMTZweDtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBGb250IFdlaWdodHNcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWZvbnQtd2VpZ2h0LWxpZ2h0OiAzMDA7XG5cdC0tZm9udC13ZWlnaHQtcmVndWxhcjogNDAwO1xuXHQtLWZvbnQtd2VpZ2h0LW1lZGl1bTogNTAwO1xuXHQtLWZvbnQtd2VpZ2h0LXNlbWlib2xkOiA2MDA7XG5cdC0tZm9udC13ZWlnaHQtYm9sZDogNzAwO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIExpbmUgSGVpZ2h0c1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tbGluZS1oZWlnaHQtYmFzZTogMS41O1xuXHQtLWxpbmUtaGVpZ2h0LW06IDEuMzM7XG5cdC0tbGluZS1oZWlnaHQtczogMS4yNTtcblx0LS1saW5lLWhlaWdodC1zczogMS4xNTtcblx0LS1saW5lLWhlaWdodC1ldmVuOiAxO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIEJvcmRlciBSYWRpdXNcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWJvcmRlci1yYWRpdXMtYmFzZTogNHB4O1xuXHQtLWJvcmRlci1yYWRpdXMtcm91bmQ6IDUwJTtcbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBGb250IEljb25zICh2aWEgSWNvTW9vbilcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG5cbjpyb290IHtcbi0taWNvbW9vbi1mb250LWZhbWlseTogXCJiaWdjb21tZXJjZS1pY29uc1wiICFkZWZhdWx0O1xuXG5cbi0taWNvbi1iYy1iaWdjb21tZXJjZV9kaWFnbm9zdGljczogXCJcXGU5MTJcIjtcbi0taWNvbi1iYy1jaGFubmVsX3NlbGVjdDogXCJcXGU5MTFcIjtcbi0taWNvbi1iYy1jaGFubmVsOiBcIlxcZTkxMVwiO1xuLS1pY29uLWJjLWNyZWRlbnRpYWxzOiBcIlxcZTkxMFwiO1xuLS1pY29uLWJjLXN5bmM6IFwiXFxlOTBmXCI7XG4tLWljb24tYmMtYWNjb3VudHM6IFwiXFxlOTA2XCI7XG4tLWljb24tYmMtYW5hbHl0aWNzOiBcIlxcZTkwN1wiO1xuLS1pY29uLWJjLWNhcnQ6IFwiXFxlOTA4XCI7XG4tLWljb24tYmMtY3VycmVuY3k6IFwiXFxlOTA5XCI7XG4tLWljb24tYmMtZ2lmdF9jZXJ0aWZpY2F0ZXM6IFwiXFxlOTBhXCI7XG4tLWljb24tYmMtaW1wb3J0OiBcIlxcZTkwYlwiO1xuLS1pY29uLWJjLW9yZGVyX2NvbmZpcm1hdGlvbjogXCJcXGU5MGNcIjtcbi0taWNvbi1iYy1wcm9kdWN0X3Jldmlld3M6IFwiXFxlOTBkXCI7XG4tLWljb24tYmMtc2hpcHBpbmdfcmV0dXJuczogXCJcXGU5MGVcIjtcbi0taWNvbi1iYy1iLWxvZ286IFwiXFxlOTAxXCI7XG4tLWRhc2hpY29ucy1iaWdjb21tZXJjZTogXCJcXGU5MDFcIjtcbi0taWNvbi1iYy1hcnJvdy1zb2xpZDogXCJcXGU5MDJcIjtcbi0taWNvbi1iYy1zZWxlY3RlZDogXCJcXGU5MDNcIjtcbi0taWNvbi1iYy1hcnJvdy10b2dnbGU6IFwiXFxlOTA1XCI7XG4tLWljb24tYmMtYXJyb3ctbGVmdDogXCJcXGUwOTRcIjtcbi0taWNvbi1iYy1hcnJvdy1yaWdodDogXCJcXGUwOTVcIjtcbi0taWNvbi1iYy1hcnJvdy11cDogXCJcXGUwOTZcIjtcbi0taWNvbi1iYy1hcnJvdy1kb3duOiBcIlxcZTA5N1wiO1xuLS1pY29uLWJjLXBsdXM6IFwiXFxlMTE0XCI7XG4tLWljb24tYmMtbWludXM6IFwiXFxlMTE1XCI7XG4tLWljb24tYmMtY2hlY2s6IFwiXFxlMTE2XCI7XG4tLWljb24tYmMtY3Jvc3M6IFwiXFxlMTE3XCI7XG4tLWljb24tYmMtc2VhcmNoOiBcIlxcZTAzNlwiO1xuLS1pY29uLWJjLWNoZXZyb24tZG93bjogXCJcXGU5MDBcIjtcbi0taWNvbi1iYy1jaGV2cm9uLWxlZnQ6IFwiXFxlOTFhXCI7XG4tLWljb24tYmMtY2hldnJvbi1yaWdodDogXCJcXGU5MTlcIjtcbi0taWNvbi1iYy1jaGV2cm9uLXVwOiBcIlxcZTkwNFwiO1xuXG5cbn0iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEZvbnQgSWNvbnM6IEljb25zICh2aWEgSWNvTW9vbilcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdiaWdjb21tZXJjZS1pY29ucyc7XG4gIHNyYzpcbiAgICB1cmwoJ3ZhcigtLXBhdGgtZm9udHMpL2ljb25zLWJpZ2NvbW1lcmNlL2JpZ2NvbW1lcmNlLWljb25zLndvZmYyP21uaGVwZCcpIGZvcm1hdCgnd29mZjInKSxcbiAgICB1cmwoJ3ZhcigtLXBhdGgtZm9udHMpL2ljb25zLWJpZ2NvbW1lcmNlL2JpZ2NvbW1lcmNlLWljb25zLnR0Zj9tbmhlcGQnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgdXJsKCd2YXIoLS1wYXRoLWZvbnRzKS9pY29ucy1iaWdjb21tZXJjZS9iaWdjb21tZXJjZS1pY29ucy53b2ZmP21uaGVwZCcpIGZvcm1hdCgnd29mZicpLFxuICAgIHVybCgndmFyKC0tcGF0aC1mb250cykvaWNvbnMtYmlnY29tbWVyY2UvYmlnY29tbWVyY2UtaWNvbnMuc3ZnP21uaGVwZCNiaWdjb21tZXJjZS1pY29ucycpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLmJjLWljb24ge1xuICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICBmb250LWZhbWlseTogJ2JpZ2NvbW1lcmNlLWljb25zJyAhaW1wb3J0YW50O1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuXG4gIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLmljb24tYmMtYmlnY29tbWVyY2VfZGlhZ25vc3RpY3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MTJcIjtcbn1cbi5pY29uLWJjLWNoYW5uZWxfc2VsZWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTExXCI7XG59XG4uaWNvbi1iYy1jaGFubmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTExXCI7XG59XG4uaWNvbi1iYy1jcmVkZW50aWFsczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxMFwiO1xufVxuLmljb24tYmMtc3luYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwZlwiO1xufVxuLmljb24tYmMtYWNjb3VudHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDZcIjtcbn1cbi5pY29uLWJjLWFuYWx5dGljczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwN1wiO1xufVxuLmljb24tYmMtY2FydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwOFwiO1xufVxuLmljb24tYmMtY3VycmVuY3k6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDlcIjtcbn1cbi5pY29uLWJjLWdpZnRfY2VydGlmaWNhdGVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBhXCI7XG59XG4uaWNvbi1iYy1pbXBvcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MGJcIjtcbn1cbi5pY29uLWJjLW9yZGVyX2NvbmZpcm1hdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwY1wiO1xufVxuLmljb24tYmMtcHJvZHVjdF9yZXZpZXdzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBkXCI7XG59XG4uaWNvbi1iYy1zaGlwcGluZ19yZXR1cm5zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBlXCI7XG59XG4uaWNvbi1iYy1iLWxvZ286YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDFcIjtcbn1cbi5kYXNoaWNvbnMtYmlnY29tbWVyY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDFcIjtcbn1cbi5pY29uLWJjLWFycm93LXNvbGlkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTAyXCI7XG59XG4uaWNvbi1iYy1zZWxlY3RlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwM1wiO1xufVxuLmljb24tYmMtYXJyb3ctdG9nZ2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA1XCI7XG59XG4uaWNvbi1iYy1hcnJvdy1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDk0XCI7XG59XG4uaWNvbi1iYy1hcnJvdy1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5NVwiO1xufVxuLmljb24tYmMtYXJyb3ctdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTZcIjtcbn1cbi5pY29uLWJjLWFycm93LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTdcIjtcbn1cbi5pY29uLWJjLXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTRcIjtcbn1cbi5pY29uLWJjLW1pbnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTE1XCI7XG59XG4uaWNvbi1iYy1jaGVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExNlwiO1xufVxuLmljb24tYmMtY3Jvc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTdcIjtcbn1cbi5pY29uLWJjLXNlYXJjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzNlwiO1xufVxuLmljb24tYmMtY2hldnJvbi1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTAwXCI7XG59XG4uaWNvbi1iYy1jaGV2cm9uLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MWFcIjtcbn1cbi5pY29uLWJjLWNoZXZyb24tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MTlcIjtcbn1cbi5pY29uLWJjLWNoZXZyb24tdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDRcIjtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbj0gICAgICAgICAgICBDaG9pY2VzICAgICAgICAgICAgPVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uY2hvaWNlcyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0bWFyZ2luLWJvdHRvbTogMjRweDtcblx0Zm9udC1zaXplOiAxNnB4O1xufVxuXG4uY2hvaWNlczpmb2N1cyB7XG5cdG91dGxpbmU6IG5vbmU7XG59XG5cbi5jaG9pY2VzOmxhc3QtY2hpbGQge1xuXHRtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uY2hvaWNlcy5pcy1kaXNhYmxlZCAuY2hvaWNlc19faW5uZXIsXG4uY2hvaWNlcy5pcy1kaXNhYmxlZCAuY2hvaWNlc19faW5wdXQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZWFlYWVhO1xuXHRjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uY2hvaWNlcy5pcy1kaXNhYmxlZCAuY2hvaWNlc19faXRlbSB7XG5cdGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5jaG9pY2VzW2RhdGEtdHlwZSo9XCJzZWxlY3Qtb25lXCJdIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2hvaWNlc1tkYXRhLXR5cGUqPVwic2VsZWN0LW9uZVwiXSAuY2hvaWNlc19faW5uZXIge1xuXHRwYWRkaW5nLWJvdHRvbTogNy41cHg7XG59XG5cbi5jaG9pY2VzW2RhdGEtdHlwZSo9XCJzZWxlY3Qtb25lXCJdIC5jaG9pY2VzX19pbnB1dCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogMTAwJTtcblx0cGFkZGluZzogMTBweDtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdG1hcmdpbjogMDtcbn1cblxuLmNob2ljZXNbZGF0YS10eXBlKj1cInNlbGVjdC1vbmVcIl0gLmNob2ljZXNfX2J1dHRvbiB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2ljb25zL2Nyb3NzLWludmVyc2Uuc3ZnXCIpO1xuXHRwYWRkaW5nOiAwO1xuXHRiYWNrZ3JvdW5kLXNpemU6IDhweDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDUwJTtcblx0cmlnaHQ6IDA7XG5cdG1hcmdpbi10b3A6IC0xMHB4O1xuXHRtYXJnaW4tcmlnaHQ6IDI1cHg7XG5cdGhlaWdodDogMjBweDtcblx0d2lkdGg6IDIwcHg7XG5cdGJvcmRlci1yYWRpdXM6IDEwZW07XG5cdG9wYWNpdHk6IDAuNTtcbn1cblxuLmNob2ljZXNbZGF0YS10eXBlKj1cInNlbGVjdC1vbmVcIl0gLmNob2ljZXNfX2J1dHRvbjpob3Zlcixcbi5jaG9pY2VzW2RhdGEtdHlwZSo9XCJzZWxlY3Qtb25lXCJdIC5jaG9pY2VzX19idXR0b246Zm9jdXMge1xuXHRvcGFjaXR5OiAxO1xufVxuXG4uY2hvaWNlc1tkYXRhLXR5cGUqPVwic2VsZWN0LW9uZVwiXSAuY2hvaWNlc19fYnV0dG9uOmZvY3VzIHtcblx0Ym94LXNoYWRvdzogMCAwIDAgMnB4ICMwMGJjZDQ7XG59XG5cbi5jaG9pY2VzW2RhdGEtdHlwZSo9XCJzZWxlY3Qtb25lXCJdOmFmdGVyIHtcblx0Y29udGVudDogXCJcIjtcblx0aGVpZ2h0OiAwO1xuXHR3aWR0aDogMDtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0Ym9yZGVyLWNvbG9yOiAjMzMzIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRib3JkZXItd2lkdGg6IDVweDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogMTEuNXB4O1xuXHR0b3A6IDUwJTtcblx0bWFyZ2luLXRvcDogLTIuNXB4O1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmNob2ljZXNbZGF0YS10eXBlKj1cInNlbGVjdC1vbmVcIl0uaXMtb3BlbjphZnRlciB7XG5cdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzMzMztcblx0bWFyZ2luLXRvcDogLTcuNXB4O1xufVxuXG4uY2hvaWNlc1tkYXRhLXR5cGUqPVwic2VsZWN0LW9uZVwiXVtkaXI9XCJydGxcIl06YWZ0ZXIge1xuXHRsZWZ0OiAxMS41cHg7XG5cdHJpZ2h0OiBhdXRvO1xufVxuXG4uY2hvaWNlc1tkYXRhLXR5cGUqPVwic2VsZWN0LW9uZVwiXVtkaXI9XCJydGxcIl0gLmNob2ljZXNfX2J1dHRvbiB7XG5cdHJpZ2h0OiBhdXRvO1xuXHRsZWZ0OiAwO1xuXHRtYXJnaW4tbGVmdDogMjVweDtcblx0bWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4uY2hvaWNlc1tkYXRhLXR5cGUqPVwic2VsZWN0LW11bHRpcGxlXCJdIC5jaG9pY2VzX19pbm5lcixcbi5jaG9pY2VzW2RhdGEtdHlwZSo9XCJ0ZXh0XCJdIC5jaG9pY2VzX19pbm5lciB7XG5cdGN1cnNvcjogdGV4dDtcbn1cblxuLmNob2ljZXNbZGF0YS10eXBlKj1cInNlbGVjdC1tdWx0aXBsZVwiXSAuY2hvaWNlc19fYnV0dG9uLFxuLmNob2ljZXNbZGF0YS10eXBlKj1cInRleHRcIl0gLmNob2ljZXNfX2J1dHRvbiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtYXJnaW46IDAgLTRweCAwIDhweDtcblx0cGFkZGluZy1sZWZ0OiAxNnB4O1xuXHRib3JkZXItbGVmdDogMXB4IHNvbGlkICMwMDhmYTE7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2ljb25zL2Nyb3NzLnN2Z1wiKTtcblx0YmFja2dyb3VuZC1zaXplOiA4cHg7XG5cdHdpZHRoOiA4cHg7XG5cdGxpbmUtaGVpZ2h0OiAxO1xuXHRvcGFjaXR5OiAwLjc1O1xufVxuXG4uY2hvaWNlc1tkYXRhLXR5cGUqPVwic2VsZWN0LW11bHRpcGxlXCJdIC5jaG9pY2VzX19idXR0b246aG92ZXIsXG4uY2hvaWNlc1tkYXRhLXR5cGUqPVwic2VsZWN0LW11bHRpcGxlXCJdIC5jaG9pY2VzX19idXR0b246Zm9jdXMsXG4uY2hvaWNlc1tkYXRhLXR5cGUqPVwidGV4dFwiXSAuY2hvaWNlc19fYnV0dG9uOmhvdmVyLFxuLmNob2ljZXNbZGF0YS10eXBlKj1cInRleHRcIl0gLmNob2ljZXNfX2J1dHRvbjpmb2N1cyB7XG5cdG9wYWNpdHk6IDE7XG59XG5cbi5jaG9pY2VzX19pbm5lciB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0d2lkdGg6IDEwMCU7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG5cdHBhZGRpbmc6IDcuNXB4IDcuNXB4IDMuNzVweDtcblx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblx0Ym9yZGVyLXJhZGl1czogMi41cHg7XG5cdGZvbnQtc2l6ZTogMTRweDtcblx0bWluLWhlaWdodDogNDRweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmlzLWZvY3VzZWQgLmNob2ljZXNfX2lubmVyLFxuLmlzLW9wZW4gLmNob2ljZXNfX2lubmVyIHtcblx0Ym9yZGVyLWNvbG9yOiAjYjdiN2I3O1xufVxuXG4uaXMtb3BlbiAuY2hvaWNlc19faW5uZXIge1xuXHRib3JkZXItcmFkaXVzOiAyLjVweCAyLjVweCAwIDA7XG59XG5cbi5pcy1mbGlwcGVkLmlzLW9wZW4gLmNob2ljZXNfX2lubmVyIHtcblx0Ym9yZGVyLXJhZGl1czogMCAwIDIuNXB4IDIuNXB4O1xufVxuXG4uY2hvaWNlc19fbGlzdCB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZy1sZWZ0OiAwO1xuXHRsaXN0LXN0eWxlOiBub25lO1xufVxuXG4uY2hvaWNlc19fbGlzdC0tc2luZ2xlIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwYWRkaW5nOiA0cHggMTZweCA0cHggNHB4O1xuXHR3aWR0aDogMTAwJTtcbn1cblxuW2Rpcj1cInJ0bFwiXSAuY2hvaWNlc19fbGlzdC0tc2luZ2xlIHtcblx0cGFkZGluZy1yaWdodDogNHB4O1xuXHRwYWRkaW5nLWxlZnQ6IDE2cHg7XG59XG5cbi5jaG9pY2VzX19saXN0LS1zaW5nbGUgLmNob2ljZXNfX2l0ZW0ge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmNob2ljZXNfX2xpc3QtLW11bHRpcGxlIHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uY2hvaWNlc19fbGlzdC0tbXVsdGlwbGUgLmNob2ljZXNfX2l0ZW0ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdGJvcmRlci1yYWRpdXM6IDIwcHg7XG5cdHBhZGRpbmc6IDRweCAxMHB4O1xuXHRmb250LXNpemU6IDEycHg7XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdG1hcmdpbi1yaWdodDogMy43NXB4O1xuXHRtYXJnaW4tYm90dG9tOiAzLjc1cHg7XG5cdGJhY2tncm91bmQtY29sb3I6ICMwMGJjZDQ7XG5cdGJvcmRlcjogMXB4IHNvbGlkICMwMGE1YmI7XG5cdGNvbG9yOiAjZmZmO1xuXHR3b3JkLWJyZWFrOiBicmVhay1hbGw7XG59XG5cbi5jaG9pY2VzX19saXN0LS1tdWx0aXBsZSAuY2hvaWNlc19faXRlbVtkYXRhLWRlbGV0YWJsZV0ge1xuXHRwYWRkaW5nLXJpZ2h0OiA1cHg7XG59XG5cbltkaXI9XCJydGxcIl0gLmNob2ljZXNfX2xpc3QtLW11bHRpcGxlIC5jaG9pY2VzX19pdGVtIHtcblx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRtYXJnaW4tbGVmdDogMy43NXB4O1xufVxuXG4uY2hvaWNlc19fbGlzdC0tbXVsdGlwbGUgLmNob2ljZXNfX2l0ZW0uaXMtaGlnaGxpZ2h0ZWQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDBhNWJiO1xuXHRib3JkZXI6IDFweCBzb2xpZCAjMDA4ZmExO1xufVxuXG4uaXMtZGlzYWJsZWQgLmNob2ljZXNfX2xpc3QtLW11bHRpcGxlIC5jaG9pY2VzX19pdGVtIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2FhYTtcblx0Ym9yZGVyOiAxcHggc29saWQgIzkxOTE5MTtcbn1cblxuLmNob2ljZXNfX2xpc3QtLWRyb3Bkb3duIHtcblx0ZGlzcGxheTogbm9uZTtcblx0ei1pbmRleDogMTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogMTAwJTtcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblx0dG9wOiAxMDAlO1xuXHRtYXJnaW4tdG9wOiAtMXB4O1xuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAyLjVweDtcblx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDIuNXB4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR3b3JkLWJyZWFrOiBicmVhay1hbGw7XG59XG5cbi5jaG9pY2VzX19saXN0LS1kcm9wZG93bi5pcy1hY3RpdmUge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLmlzLW9wZW4gLmNob2ljZXNfX2xpc3QtLWRyb3Bkb3duIHtcblx0Ym9yZGVyLWNvbG9yOiAjYjdiN2I3O1xufVxuXG4uaXMtZmxpcHBlZCAuY2hvaWNlc19fbGlzdC0tZHJvcGRvd24ge1xuXHR0b3A6IGF1dG87XG5cdGJvdHRvbTogMTAwJTtcblx0bWFyZ2luLXRvcDogMDtcblx0bWFyZ2luLWJvdHRvbTogLTFweDtcblx0Ym9yZGVyLXJhZGl1czogMC4yNXJlbSAwLjI1cmVtIDAgMDtcbn1cblxuLmNob2ljZXNfX2xpc3QtLWRyb3Bkb3duIC5jaG9pY2VzX19saXN0IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRtYXgtaGVpZ2h0OiAzMDBweDtcblx0b3ZlcmZsb3c6IGF1dG87XG5cdC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblx0d2lsbC1jaGFuZ2U6IHNjcm9sbC1wb3NpdGlvbjtcbn1cblxuLmNob2ljZXNfX2xpc3QtLWRyb3Bkb3duIC5jaG9pY2VzX19pdGVtIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nOiAxMHB4O1xuXHRmb250LXNpemU6IDE0cHg7XG59XG5cbltkaXI9XCJydGxcIl0gLmNob2ljZXNfX2xpc3QtLWRyb3Bkb3duIC5jaG9pY2VzX19pdGVtIHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuXG5cdC5jaG9pY2VzX19saXN0LS1kcm9wZG93biAuY2hvaWNlc19faXRlbS0tc2VsZWN0YWJsZSB7XG5cdFx0cGFkZGluZy1yaWdodDogMTAwcHg7XG5cdH1cblxuXHQuY2hvaWNlc19fbGlzdC0tZHJvcGRvd24gLmNob2ljZXNfX2l0ZW0tLXNlbGVjdGFibGU6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS1zZWxlY3QtdGV4dCk7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAxMHB4O1xuXHRcdHRvcDogNTAlO1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0fVxuXG5cdFtkaXI9XCJydGxcIl0gLmNob2ljZXNfX2xpc3QtLWRyb3Bkb3duIC5jaG9pY2VzX19pdGVtLS1zZWxlY3RhYmxlIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRwYWRkaW5nLWxlZnQ6IDEwMHB4O1xuXHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdH1cblxuXHRbZGlyPVwicnRsXCJdIC5jaG9pY2VzX19saXN0LS1kcm9wZG93biAuY2hvaWNlc19faXRlbS0tc2VsZWN0YWJsZTphZnRlciB7XG5cdFx0cmlnaHQ6IGF1dG87XG5cdFx0bGVmdDogMTBweDtcblx0fVxufVxuXG4uY2hvaWNlc19fbGlzdC0tZHJvcGRvd24gLmNob2ljZXNfX2l0ZW0tLXNlbGVjdGFibGUuaXMtaGlnaGxpZ2h0ZWQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xufVxuXG4uY2hvaWNlc19fbGlzdC0tZHJvcGRvd24gLmNob2ljZXNfX2l0ZW0tLXNlbGVjdGFibGUuaXMtaGlnaGxpZ2h0ZWQ6YWZ0ZXIge1xuXHRvcGFjaXR5OiAwLjU7XG59XG5cbi5jaG9pY2VzX19pdGVtIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uY2hvaWNlc19faXRlbS0tc2VsZWN0YWJsZSB7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNob2ljZXNfX2l0ZW0tLWRpc2FibGVkIHtcblx0Y3Vyc29yOiBub3QtYWxsb3dlZDtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblx0b3BhY2l0eTogMC41O1xufVxuXG4uY2hvaWNlc19faGVhZGluZyB7XG5cdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0cGFkZGluZzogMTBweDtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmN2Y3Zjc7XG5cdGNvbG9yOiBncmF5O1xufVxuXG4uY2hvaWNlc19fYnV0dG9uIHtcblx0dGV4dC1pbmRlbnQ6IC05OTk5cHg7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0LW1vei1hcHBlYXJhbmNlOiBub25lO1xuXHRhcHBlYXJhbmNlOiBub25lO1xuXHRib3JkZXI6IDA7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNob2ljZXNfX2J1dHRvbjpmb2N1cyB7XG5cdG91dGxpbmU6IG5vbmU7XG59XG5cbi5jaG9pY2VzX19pbnB1dCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuXHRmb250LXNpemU6IDE0cHg7XG5cdG1hcmdpbi1ib3R0b206IDVweDtcblx0Ym9yZGVyOiAwO1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdHBhZGRpbmc6IDRweCAwIDRweCAycHg7XG59XG5cbi5jaG9pY2VzX19pbnB1dDpmb2N1cyB7XG5cdG91dGxpbmU6IDA7XG59XG5cbltkaXI9XCJydGxcIl0gLmNob2ljZXNfX2lucHV0IHtcblx0cGFkZGluZy1yaWdodDogMnB4O1xuXHRwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi5jaG9pY2VzX19wbGFjZWhvbGRlciB7XG5cdG9wYWNpdHk6IDAuNTtcbn1cbiIsIi5jaG9pY2VzW2RhdGEtdHlwZSo9XCJzZWxlY3QtbXVsdGlwbGVcIl0gLmNob2ljZXNfX2J1dHRvbixcbi5jaG9pY2VzW2RhdGEtdHlwZSo9XCJ0ZXh0XCJdIC5jaG9pY2VzX19idXR0b24ge1xuXHRiYWNrZ3JvdW5kLXNpemU6IDlweDtcblx0Ym9yZGVyLWNvbG9yOiBkYXJrZW4odmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCksIDAuMyk7XG59XG5cbi5jaG9pY2VzX19saXN0LS1tdWx0aXBsZSAuY2hvaWNlc19faXRlbSB7XG5cdGJvcmRlci1yYWRpdXM6IDRweDtcblx0cGFkZGluZzogNHB4IDJweCA0cHggMTBweDtcblx0bGluZS1oZWlnaHQ6IDIwcHg7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJjLWJsdWUtbGlnaHQpO1xuXHRib3JkZXI6IDA7XG59XG5cbi5jaG9pY2VzX19saXN0LS1tdWx0aXBsZSAuY2hvaWNlc19faXRlbS5pcy1oaWdobGlnaHRlZCB7XG5cdGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4odmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCksIDAuMSk7XG5cdGJvcmRlcjogMDtcbn1cblxuLmJjLWNob2ljZXMge1xuXG5cdCZbZGF0YS10eXBlKj1cInNlbGVjdC1vbmVcIl06YWZ0ZXIge1xuXHRcdGJvcmRlci1jb2xvcjogIzg4OCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0XHRib3JkZXItd2lkdGg6IDRweDtcblx0XHRyaWdodDogMTZweDtcblx0fVxuXG5cdC5iYy1zZXR0aW5ncy1zZWN0aW9uX19ib2R5ICZbZGF0YS10eXBlKj1cInNlbGVjdC1vbmVcIl0ge1xuXHRcdG1heC13aWR0aDogNTQwcHg7XG5cdH1cblxuXHQuY2hvaWNlc19faW5uZXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJvcmRlci1mb3JtLWZpZWxkKTtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0bWluLWhlaWdodDogMjBweDtcblx0XHRwYWRkaW5nOiAxMXB4IDEwcHggMTBweDtcblx0fVxuXG5cdCZbZGF0YS10eXBlKj1cInNlbGVjdC1vbmVcIl0gLmNob2ljZXNfX2lubmVyIHtcblx0XHRwYWRkaW5nLWJvdHRvbTogOXB4O1xuXHR9XG5cblx0LmNob2ljZXNfX2xpc3QtLXNpbmdsZSB7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRwYWRkaW5nOiAwIDIwcHggMCAwO1xuXHR9XG5cblx0LmNob2ljZXNfX2xpc3QtLWRyb3Bkb3duIHtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJvcmRlci1mb3JtLWZpZWxkKTtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR9XG59XG4iLCIuZGFzaGljb25zLWJpZ2NvbW1lcmNlIHtcblxuXHQmOmJlZm9yZSB7XG5cdFx0Zm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWJpZ2NvbW1lcmNlLWljb25zKTtcblx0XHRmb250LXNpemU6IDE3cHg7XG5cdH1cbn1cbiIsIi5iaWdjb21tZXJjZS1zZXR0aW5ncy1wYWdlIHtcblxuXHQmIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdH1cblxuXHQucmVndWxhci10ZXh0IHtcblx0XHRtYXgtd2lkdGg6IDU0MHB4O1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0LmJpZ2NvbW1lcmNlLWNvbm5lY3Rpb24tc3RhdHVzX19tZXNzYWdlIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLXN1Y2Nlc3MpO1xuXHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRmb250LXdlaWdodDogNTAwO1xuXHR9XG5cblx0LmJpZ2NvbW1lcmNlLWNvbm5lY3Rpb24tc3RhdHVzX19tZXNzYWdlLWZhaWxlZCB7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLXJlZCk7XG5cdH1cblxuXHRwIHtcblx0XHRmb250LXNpemU6IDE0cHg7XG5cblx0XHQmLmRlc2NyaXB0aW9uIHtcblx0XHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0XHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ibGFjayk7XG5cdFx0fVxuXHR9XG5cblx0LmJjLXNldHRpbmdzLWZvcm0gaW5wdXRbdHlwZT1zdWJtaXRdLFxuXHQuYmMtYWRtaW4tYnRuIHtcblx0XHRAbWl4aW4gYnV0dG9uLXBpbGw7XG5cdH1cblxuXHQuYmMtYWRtaW4tYnRuLS1vdXRsaW5lIHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1kb2dlci1ibHVlKTtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtZG9nZXItYmx1ZSk7XG5cblx0XHQmOmhvdmVyLFxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtZG9nZXItYmx1ZSk7XG5cdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJjLWRvZ2VyLWJsdWUpO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0XHR9XG5cdH1cbn1cblxuLmJpZ2NvbW1lcmNlX3Byb2R1Y3RfcGFnZV9iaWdjb21tZXJjZV93ZWxjb21lLFxuLmJpZ2NvbW1lcmNlX3Byb2R1Y3RfcGFnZV9iaWdjb21tZXJjZV9jb25uZWN0LFxuLmJpZ2NvbW1lcmNlX3Byb2R1Y3RfcGFnZV9iaWdjb21tZXJjZV9uZXdfYWNjb3VudCxcbi5iaWdjb21tZXJjZV9wcm9kdWN0X3BhZ2VfYmlnY29tbWVyY2VfcGVuZGluZ19hY2NvdW50IHtcblxuXHQjd3B3cmFwIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cGFkZGluZy1ib3R0b206IDIxMHB4O1xuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoXCIuLi9pbWcvYWRtaW4vYmMtYmctZ2VvbWV0cmljLnN2Z1wiKSBuby1yZXBlYXQgYm90dG9tIHJpZ2h0L2NvbnRhaW47XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGhlaWdodDogMjAwcHg7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGJvdHRvbTogLTFweDtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0ei1pbmRleDogMTtcblxuXHRcdFx0QG1lZGlhICgtLXZpZXdwb3J0LXdwYWRtaW4pIHtcblx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIGxlZnQ7XG5cdFx0XHRcdGJvdHRvbTogNDBweDtcblx0XHRcdFx0bGVmdDogMzZweDtcblx0XHRcdFx0cmlnaHQ6IGF1dG87XG5cdFx0XHRcdGhlaWdodDogMjgwcHg7XG5cdFx0XHRcdHdpZHRoOiA2NSU7XG5cdFx0XHR9XG5cblx0XHRcdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0XHRcdGxlZnQ6IDE2MHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCN3cGNvbnRlbnQge1xuXHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHotaW5kZXg6IDI7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtd3BhZG1pbikge1xuXHRcdFx0cGFkZGluZy1yaWdodDogMjBweDtcblx0XHR9XG5cdH1cblxuXHQjd3Bmb290ZXIge1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0XHR6LWluZGV4OiAyO1xuXHR9XG59XG5cbi5iaWdjb21tZXJjZV9wcm9kdWN0X3BhZ2VfYmlnY29tbWVyY2VfcGVuZGluZ19hY2NvdW50ICN3cHdyYXAge1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmJjLXNldHRpbmdzLWZvcm0ge1xuXG5cdC5mb3JtLXRhYmxlIHtcblx0XHRtYXJnaW4tYm90dG9tOiA0cHg7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0fVxuXG5cdGZvcm0sXG5cdC5mb3JtLXRhYmxlIHRoLFxuXHQuZm9ybS13cmFwIGxhYmVsIHtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHR9XG5cblx0LmZvcm0tdGFibGUgdGgsXG5cdC5mb3JtLXdyYXAgbGFiZWwge1xuXHRcdGZvbnQtc2l6ZTogMTVweDtcblx0fVxuXG5cdC5mb3JtLXRhYmxlIHRoIHtcblx0XHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtcmVndWxhcik7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtd3BhZG1pbikge1xuXHRcdFx0d2lkdGg6IDE3MHB4O1xuXHRcdH1cblx0fVxuXG5cdHNlbGVjdCxcblx0aW5wdXQge1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci1mb3JtLWZpZWxkKTtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHR9XG5cblx0c2VsZWN0IHtcblx0XHRwYWRkaW5nOiAxMnB4O1xuXHRcdGhlaWdodDogNDVweDtcblx0XHRsaW5lLWhlaWdodDogNDVweDtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHR9XG5cblx0aW5wdXRbdHlwZT10ZXh0XSxcblx0aW5wdXRbdHlwZT1wYXNzd29yZF0sXG5cdGlucHV0W3R5cGU9dXJsXSxcblx0aW5wdXRbdHlwZT1udW1iZXJdIHtcblx0XHRoZWlnaHQ6IDQwcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDQwcHg7XG5cdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0cGFkZGluZy1ib3R0b206IDA7XG5cdH1cblxuXHRpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0d2lkdGg6IDIwcHg7XG5cdFx0aGVpZ2h0OiAyMHB4O1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0bWFyZ2luOiAtMXB4IDAgMCAtM3B4O1xuXHRcdFx0Zm9udC1zaXplOiAyMXB4O1xuXHRcdFx0d2lkdGg6IDIwcHg7XG5cdFx0XHRoZWlnaHQ6IDIwcHg7XG5cdFx0fVxuXHR9XG5cblx0LmJ1dHRvbiB7XG5cdFx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdHBhZGRpbmc6IDhweCAxMnB4O1xuXHRcdGhlaWdodDogYXV0bztcblx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblx0fVxuXG5cdC5zZWNvbmRhcnkge1xuXHRcdGJvcmRlci1yYWRpdXM6IDZweDtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmRmZGZkO1xuXHRcdH1cblx0fVxuXG5cdC5idXR0b24tcHJpbWFyeSB7XG5cdFx0Ym94LXNoYWRvdzogLTFweCAxcHggMnB4IHZhcigtLWNvbG9yLWJsYWNrLWEtNDApO1xuXHR9XG59XG5cbi5iYy1zZXR0aW5ncy1maWVsZC0tcmVxdWlyZWQge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1yZWQpO1xuXHRtYXJnaW4tbGVmdDogNHB4O1xufVxuIiwiXG4uYmMtc2V0dGluZ3MtaGVhZGVyIHtcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWJsYWNrKTtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRsb3N0LXV0aWxpdHk6IGNsZWFyZml4O1xuXHRtYXJnaW4tYm90dG9tOiAyOHB4O1xuXHRwYWRkaW5nOiAwIDAgNDBweDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHR9XG5cblx0JjpiZWZvcmUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRib3R0b206IDA7XG5cdFx0cmlnaHQ6IC0yMHB4O1xuXHRcdGhlaWdodDogMXB4O1xuXHRcdHdpZHRoOiBjYWxjKDEwMCUgKyA0MnB4KTtcblx0fVxuXG5cdCY6YWZ0ZXIge1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybChcIi4uL2ltZy9hZG1pbi9iYy1iZy1nZW9tZXRyaWMuc3ZnXCIpIG5vLXJlcGVhdCBib3R0b20gcmlnaHQvY29udGFpbjtcblx0XHRjb250ZW50OiAnJztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0aGVpZ2h0OiAyMjBweDtcblx0XHR3aWR0aDogNzUlO1xuXHRcdGJvdHRvbTogMXB4O1xuXHRcdHJpZ2h0OiAtMjBweDtcblx0XHR6LWluZGV4OiAxO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0aGVpZ2h0OiAyMjBweDtcblx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0fVxuXHR9XG5cblx0Lm5vdGljZSB7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRsb3N0LWNvbHVtbjogMTIvMTI7XG5cdH1cbn1cblxuLmJjLXNldHRpbmdzLWhlYWRlcl9fd2VsY29tZSB7XG5cdEBtZWRpYSAoLS12aWV3cG9ydC1sYXJnZSkge1xuXHRcdGxvc3Qtb2Zmc2V0OiAwLjUvMTI7XG5cdH1cbn1cblxuLmJjLXNldHRpbmdzLWhlYWRlcl9fd2VsY29tZSxcbi5iYy1zZXR0aW5ncy1oZWFkZXJfX2N0YSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMjtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bG9zdC1jb2x1bW46IDUvMTI7XG5cdFx0bWF4LXdpZHRoOiA0NjBweDtcblx0fVxufVxuXG4uYmMtc2V0dGluZ3MtaGVhZGVyX19jdGEge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1vZmYtd2hpdGUpO1xuXHRtYXJnaW4tdG9wOiAzMHB4O1xuXHRwYWRkaW5nOiAyMHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdHBhZGRpbmc6IDQwcHg7XG5cdH1cbn1cblxuLmJpZ2NvbW1lcmNlX3Byb2R1Y3RfcGFnZV9iaWdjb21tZXJjZSB7XG5cblx0LmJjLXNldHRpbmdzLWhlYWRlcl9fd2VsY29tZS10aXRsZSB7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWJsYWNrKTtcblx0XHRmb250LXNpemU6IDMycHg7XG5cdFx0bGluZS1oZWlnaHQ6IDEuMDE7XG5cdFx0bWFyZ2luLWJvdHRvbTogMThweDtcblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRcdGZvbnQtc2l6ZTogNDhweDtcblx0XHR9XG5cdH1cbn1cblxuLmJjLXNldHRpbmdzLWhlYWRlcl9fd2VsY29tZS10ZXh0IHtcblx0Zm9udC1zaXplOiAxOHB4O1xufVxuXG4uYmMtc2V0dGluZ3MtaGVhZGVyX19jdGEtdGl0bGUge1xuXHRmb250LXNpemU6IDIycHg7XG5cdGxpbmUtaGVpZ2h0OiAyMnB4O1xuXHRtYXJnaW46IDAgMCAxNHB4O1xufVxuXG4uYmMtc2V0dGluZ3MtaGVhZGVyX19jdGEtdGV4dCB7XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0bWFyZ2luOiAwO1xufVxuXG4uYmMtc2V0dGluZ3MtaGVhZGVyX19jdGEtYnRuIHtcblx0bWFyZ2luLXRvcDogMjBweDtcbn1cblxuLmJpZ2NvbW1lcmNlX3Byb2R1Y3RfcGFnZV9iaWdjb21tZXJjZSB7XG5cblx0c2VsZWN0W25hbWU9XCJiaWdjb21tZXJjZV9pbXBvcnRfZnJlcXVlbmN5XCJdIHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRtYXJnaW4tcmlnaHQ6IDE0cHg7XG5cdFx0d2lkdGg6IGF1dG87XG5cdH1cbn1cblxuLmJjLXNldHRpbmdzLXNlY3Rpb24ge1xuXG5cdCsgLmJjLXNldHRpbmdzLXNlY3Rpb24ge1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdH1cbn1cblxuLmJjLXNldHRpbmdzLXNlY3Rpb25fX2hlYWRlciB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0cGFkZGluZzogMjBweDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdC5pY29uLWJjLWFycm93LXNvbGlkIHtcblx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0Y29sb3I6ICM4ODg7XG5cdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdH1cblxuXHQuYmMtaWNvbi0tc2V0dGluZ3Mge1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1kb2dlci1ibHVlKTtcblx0XHRmb250LXNpemU6IDE3cHg7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG5cblx0Lmljb24tYmMtaW1wb3J0IHtcblx0XHRmb250LXNpemU6IDEwcHg7XG5cdH1cblxuXHQuYmMtc2V0dGluZ3Mtc2VjdGlvbi0tb3BlbiAmIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iZ2QtcGFuZWwtYWN0aXZlKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJnZC1wYW5lbC1hY3RpdmUpO1xuXHRcdGJveC1zaGFkb3c6IDAgM3B4IDAgMCAjZWVmMGYyO1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdH1cblxuXHQuYmMtc2V0dGluZ3Mtc2VjdGlvbi0tb3BlbiAmIC5pY29uLWJjLWFycm93LXNvbGlkIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuXHR9XG5cblx0LmJjLXNldHRpbmdzLXNlY3Rpb24tLW9wZW4gJiAuYmMtaWNvbi0tc2V0dGluZ3Mge1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdH1cbn1cblxuLmJjLXNldHRpbmdzLXNlY3Rpb25fX3RpdGxlIHtcblx0Zm9udC1zaXplOiAyMHB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtcmVndWxhcik7XG5cdGxpbmUtaGVpZ2h0OiAyNnB4O1xuXHRtYXJnaW46IDAgMCAwIDMwcHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0bWFyZ2luLWxlZnQ6IGNhbGMoNC4xNjY2NyUgLSAxNnB4KTtcblx0fVxuXG5cdC5iYy1zZXR0aW5ncy1zZWN0aW9uLS1vcGVuICYge1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdH1cbn1cblxuLmJjLXNldHRpbmdzLXNlY3Rpb25fX3RhcmdldCB7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRib3JkZXItdG9wOiAwO1xuXHRtYXgtaGVpZ2h0OiAwO1xuXHRvcGFjaXR5OiAwO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uYmMtc2V0dGluZ3Mtc2VjdGlvbl9fYm9keSB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWJsYWNrKTtcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRsaW5lLWhlaWdodDogMThweDtcblx0cGFkZGluZzogMjBweCAyMHB4IDQwcHg7XG5cblx0PiBwOmZpcnN0LWNoaWxkIHtcblx0XHRtYXJnaW4tdG9wOiAxOHB4O1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHR9XG5cblx0LmZvcm0tdGFibGUge1xuXG5cdFx0cC5kZXNjcmlwdGlvbiB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY29sb3ItZ3JleS1kYXJrKTtcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0XHR9XG5cdH1cbn1cblxuLmJjLXNldHRpbmdzLXNlY3Rpb24tLWJpZ2NvbW1lcmNlX2RpYWdub3N0aWNzIHtcblxuXHQuYmMtZGlhZ25vc3RpY3MtZGF0YV9fZGVzY3JpcHRpb24ge1xuXHRcdG1hcmdpbjogMTBweCAwO1xuXHR9XG5cblx0LmJjLWFkbWluLWRpYWdub3N0aWNzLWxvYWRlciB7XG5cdFx0bGluZS1oZWlnaHQ6IDIwcHg7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRtYXJnaW46IDIwcHggMDtcblx0XHRkaXNwbGF5OiBub25lO1xuXG5cdFx0Ji5pcy1hY3RpdmUge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXHR9XG5cblx0LnNwaW5uZXIuYmMtYWRtaW4tc3Bpbm5lciB7XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHRvcDogLTNweDtcblx0fVxufVxuXG4uYmMtZGlhZ25vc3RpY3MtZGF0YS0tc3VjY2VzcyB7XG5cblx0LndyYXAgJiB7XG5cdFx0cGFkZGluZzogOXB4IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0fVxuXG5cdC5iYy1pY29uIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHRvcDogMnB4O1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ncmVlbik7XG5cdH1cbn1cblxuLmJjLWRpYWdub3N0aWNzLWRhdGEtLWVycm9yIHtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtcmVkKTtcblx0cGFkZGluZzogMTBweDtcblxuXHQuYmMtYWRtaW4tYnRuIHtcblx0XHRtYXJnaW4tdG9wOiAyMHB4O1xuXHR9XG59XG5cbi5iYy1kaWFnbm9zdGljcy1kYXRhLFxuLmJjLXNldGluZ3MtZGlhZ25vc3RpY3Mtd3JhcHBlciB7XG5cdG1hcmdpbi10b3A6IDEwcHg7XG5cdHBhZGRpbmc6IDIwcHggMDtcbn1cblxuLmJjLWRpYWdub3N0aWNzLWRhdGFfX3NlY3Rpb24ge1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtY29uY3JldGUpO1xuXHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRwYWRkaW5nOiAyMHB4IDA7XG5cblx0LmJjLWFkbWluLWJ0biB7XG5cdFx0bWFyZ2luLXRvcDogMjBweDtcblx0fVxufVxuXG4uYmMtZGlhZ25vc3RpY3MtZGF0YV9fc2VjdGlvbi1oZWFkZXIge1xuXHRtYXJnaW4tdG9wOiAwO1xufVxuXG4uYmMtZGlhZ25vc3RpY3MtZGF0YV9fbWV0YSB7XG5cdHBhZGRpbmc6IDRweCAwO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC13cGFkbWluKSB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHR9XG59XG5cbi5iYy1kaWFnbm9zdGljcy1kYXRhX19tZXRhLWxhYmVsIHtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC13cGFkbWluKSB7XG5cdFx0ZmxleDogMCAwIDE3MHB4O1xuXHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdH1cbn1cblxuLmJjLWRpYWdub3N0aWNzLWRhdGFfX21ldGEtdmFsdWUge1xuXHRAbWVkaWEgKC0tdmlld3BvcnQtd3BhZG1pbikge1xuXHRcdGZsZXg6IDE7XG5cdFx0cGFkZGluZy1sZWZ0OiAyMHB4O1xuXHR9XG59XG5cbi5iYy1zZXR0aW5ncy1mb3JtLS1iaWdjb21tZXJjZSB7XG5cblx0LmJjLXNldHRpbmdzLXNhdmUge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdG1hcmdpbi10b3A6IDMwcHg7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtd3BhZG1pbikge1xuXHRcdFx0Ym94LXNoYWRvdzogMCAzcHggMCAwICNlZWYwZjI7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdFx0dG9wOiAzMXB4O1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRwYWRkaW5nOiAxMHB4IDIwcHg7XG5cdFx0XHR3aWR0aDogY2FsYygxMDAlIC0gMzZweCk7XG5cdFx0XHR6LWluZGV4OiAzO1xuXHRcdH1cblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0XHR3aWR0aDogY2FsYygxMDAlIC0gMTYwcHgpO1xuXHRcdH1cblx0fVxuXG5cdC5iYy1zZXR0aW5ncy1zYXZlX19sb2dvIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LXdwYWRtaW4pIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0fVxuXG5cdHAuc3VibWl0IHtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdG1hcmdpbjogMDtcblx0fVxufVxuXG4uYmlnY29tbWVyY2VfcHJvZHVjdF9wYWdlX2JpZ2NvbW1lcmNlICN3cGJvZHktY29udGVudCB7XG5cdG1hcmdpbi10b3A6IDEwcHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LXdwYWRtaW4pIHtcblx0XHRtYXJnaW4tdG9wOiA4NnB4O1xuXHR9XG59XG4iLCIuYmMtd2VsY29tZSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGxvc3QtdXRpbGl0eTogY2xlYXJmaXg7XG5cdG1hcmdpbi10b3A6IDEwcHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRcdG1hcmdpbi10b3A6IDMwcHg7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRtYXJnaW4tdG9wOiAxMTBweDtcblx0fVxufVxuXG4uYmMtd2VsY29tZV9fY29udGVudCxcbi5iYy13ZWxjb21lX19ub3RpY2VzIHtcblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGxvc3QtY29sdW1uOiA2LzEyO1xuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0bG9zdC1jb2x1bW46IDUvMTI7XG5cdH1cbn1cblxuLmJjLXdlbGNvbWVfX2NvbnRlbnQge1xuXHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRsb3N0LW9mZnNldDogMS8xMjtcblx0fVxufVxuXG4uYmMtd2VsY29tZV9fY29udGVudC13cmFwIHtcblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0bWFyZ2luLXJpZ2h0OiAxMi41JTtcblx0XHRtYXgtd2lkdGg6IDQxMHB4O1xuXHR9XG59XG5cbi5iYy13ZWxjb21lX19jb250ZW50IHtcblxuXHQmLXRpdGxlIHtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHRcdGZvbnQtc2l6ZTogMzJweDtcblx0XHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtcmVndWxhcik7XG5cdFx0bGluZS1oZWlnaHQ6IDQwcHg7XG5cdFx0bWFyZ2luOiAxOHB4IDAgMjJweDtcblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRcdGZvbnQtc2l6ZTogNDhweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiA1MnB4O1xuXHRcdH1cblx0fVxuXG5cdHAge1xuXHRcdGZvbnQtc2l6ZTogMTVweDtcblx0XHRsaW5lLWhlaWdodDogMS40NDtcblx0XHRtYXJnaW46IDA7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy13ZWxjb21lX19idG4tZ3JvdXAge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LXdyYXA6IHdyYXA7XG5cblx0LmJjLWFkbWluLWJ0biB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblxuXHRcdCY6bm90KDpsYXN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cdFx0fVxuXHR9XG5cblx0LmJjLXdlbGNvbWVfX2NvbnRlbnQtd3JhcCArICYge1xuXHRcdG1hcmdpbi10b3A6IDQwcHg7XG5cdH1cblxuXHQuYmlnY29tbWVyY2VfcHJvZHVjdF9wYWdlX2JpZ2NvbW1lcmNlX3dlbGNvbWUgJiAuYmMtYWRtaW4tYnRuLS1vdXRsaW5lIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cblx0XHQmOmhvdmVyLFxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtZG9nZXItYmx1ZSk7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy13ZWxjb21lX19ub3RpY2Uge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1vZmYtd2hpdGUpO1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRwYWRkaW5nOiAzNnB4IDMwcHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0cGFkZGluZy1yaWdodDogMTIuNSU7XG5cdH1cbn1cblxuLmJjLXdlbGNvbWVfX25vdGljZSB7XG5cblx0Ji10aXRsZSB7XG5cdFx0Zm9udC1zaXplOiAyMnB4O1xuXHRcdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuXHRcdGxpbmUtaGVpZ2h0OiAyOXB4O1xuXHRcdG1hcmdpbjogMDtcblxuXHRcdCsgcCB7XG5cdFx0XHRtYXJnaW4tdG9wOiAycHg7XG5cdFx0fVxuXHR9XG5cblx0cCB7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAyNHB4O1xuXHR9XG59XG4iLCIuYmMtc2V0dGluZ3MtYmlnY29tbWVyY2VfY29ubmVjdCxcbi5iYy1zZXR0aW5ncy1iaWdjb21tZXJjZV9uZXdfYWNjb3VudCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGxvc3QtdXRpbGl0eTogY2xlYXJmaXg7XG59XG5cbi5iYy1jb25uZWN0X19oZWFkZXIsXG4uYmMtbmV3LWFjY291bnRfX2hlYWRlcixcbi5iYy1zZXR0aW5ncy1mb3JtLS1iaWdjb21tZXJjZV9jb25uZWN0LFxuLmJjLXNldHRpbmdzLWZvcm0tLWJpZ2NvbW1lcmNlX25ld19hY2NvdW50LFxuLmJjLXdlbGNvbWVfX2FjY291bnQtY29ubmVjdGlvbixcbi5iYy1zZXR0aW5ncy1mb3JtLS1iaWdjb21tZXJjZV9jaGFubmVsIHtcblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGxvc3QtY29sdW1uOiAxMS8xMjtcblx0fVxuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1sYXJnZSkge1xuXHRcdGxvc3Qtb2Zmc2V0OiAxLzEyO1xuXHR9XG59XG5cbi5iYy1zZXR0aW5ncy1mb3JtLS1iaWdjb21tZXJjZV9jb25uZWN0LFxuLmJjLXNldHRpbmdzLWZvcm0tLWJpZ2NvbW1lcmNlX25ld19hY2NvdW50LFxuLmJjLXdlbGNvbWVfX2FjY291bnQtY29ubmVjdGlvbixcbi5iYy1zZXR0aW5ncy1mb3JtLS1iaWdjb21tZXJjZV9jaGFubmVsIHtcblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0bG9zdC1jb2x1bW46IDkvMTI7XG5cdH1cbn1cblxuLmJjLWNvbm5lY3RfX2hlYWRlcixcbi5iYy1uZXctYWNjb3VudF9faGVhZGVyIHtcblx0bWFyZ2luOiAxMHB4IDAgMzBweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bG9zdC1jb2x1bW46IDkvMTI7XG5cdFx0bWFyZ2luOiAzMHB4IDAgNTBweDtcblx0XHRtYXgtd2lkdGg6IDYyMHB4O1xuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0bWFyZ2luLXRvcDogNjBweDtcblx0fVxufVxuXG4uYmMtc2V0dGluZ3MgLmJjLXNldHRpbmdzLWNvbm5lY3RfX3RpdGxlIHtcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWJsYWNrKTtcblx0Zm9udC1zaXplOiAzMnB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtcmVndWxhcik7XG5cdGxpbmUtaGVpZ2h0OiA0MHB4O1xuXHRtYXJnaW46IDE4cHggMCAwO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmb250LXNpemU6IDQ4cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDUycHg7XG5cdH1cbn1cblxuLmJjLWNvbm5lY3Qtc3Bpbm5lciB7XG5cdGZsb2F0OiBub25lO1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHRtYXJnaW46IDAgMTBweCAwIDA7XG59XG5cbi5iYy1hY2NvdW50LWNvbm5lY3Rpb24tcmVzcG9uc2Uge1xuXHRwYWRkaW5nOiAyMHB4O1xuXHRmb250LXNpemU6IDE1cHg7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRib3JkZXItbGVmdDogMTBweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1ibHVlLWxpZ2h0KTtcblxuXHQmLS1lcnJvciB7XG5cdFx0Ym9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNvbG9yLWJjLXJlZCk7XG5cdH1cbn1cblxuLmJjLWFjY291bnQtY29ubmVjdGlvbl9fZXJyb3ItdGl0bGUge1xuXHRtYXJnaW4tdG9wOiAwO1xufVxuXG4uYmMtYWNjb3VudC1jb25uZWN0aW9uX19lcnJvci1jb2RlIHtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cblx0Y29kZSB7XG5cdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0fVxufVxuXG4uYmMtYWNjb3VudC1jb25uZWN0aW9uX19lcnJvci1tZXNzYWdlIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbi10b3A6IDRweDtcblx0Zm9udC1zaXplOiAxNXB4O1xufVxuIiwiLmJpZ2NvbW1lcmNlLW5vdGljZSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZzogMTBweDtcblxuXHQud3AtYWRtaW4gJiB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHR9XG5cblx0LmJjLXNldHRpbmdzLWJpZ2NvbW1lcmNlICYge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW9mZi13aGl0ZSk7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblxuXHRcdCY6bnRoLWNoaWxkKDIpIHtcblx0XHRcdG1hcmdpbi10b3A6IC0yMHB4O1xuXHRcdH1cblx0fVxuXG5cdC5iaWdjb21tZXJjZS1ub3RpY2VfX2xpc3Qge1xuXHRcdGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcblx0XHRtYXJnaW4tbGVmdDogMjBweDtcblxuXHRcdC5iaWdjb21tZXJjZS1ub3RpY2VfX2xpc3QtaXRlbSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiA4cHg7XG5cdFx0fVxuXHR9XG59XG5cbi5iaWdjb21tZXJjZS1ub3RpY2VfX2hlYWRpbmcge1xuXHRtYXJnaW4tdG9wOiAwLjVlbTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0cGFkZGluZy1yaWdodDogMTMwcHg7XG5cdH1cbn1cblxucC5iaWdjb21tZXJjZS1ub3RpY2VfX3JlZnJlc2gge1xuXHRtYXJnaW46IDA7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDIwcHg7XG5cdFx0cmlnaHQ6IDIwcHg7XG5cdH1cbn1cblxuLmJpZ2NvbW1lcmNlLW5vdGljZV9fcmVmcmVzaC1idXR0b24ge1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0bGluZS1oZWlnaHQ6IDE0cHg7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0bGV0dGVyLXNwYWNpbmc6IDFweDtcblxuXHRpIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuXHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRsaW5lLWhlaWdodDogMTRweDtcblx0fVxufVxuIiwiLmJjLXNob3J0Y29kZS11aV9fb3ZlcmxheSB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHRyaWdodDogMDtcblx0aGVpZ2h0OiAxMDB2aDtcblx0d2lkdGg6IDEwMHZ3O1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ibGFjay1hLTcwKTtcbn1cblxuLmJjLXNob3J0Y29kZS11aV9fd3JhcHBlciB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHRyaWdodDogMDtcblx0aGVpZ2h0OiAxMDB2aDtcblx0d2lkdGg6IDEwMHZ3O1xuXHR6LWluZGV4OiAxNTkwMDA7XG5cblx0JlthcmlhLWhpZGRlbj0ndHJ1ZSddIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX2Nsb3NlLWJ1dHRvbiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDA7XG5cdHRvcDogMDtcblx0Zm9udC1zaXplOiAyNXB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiA4cHg7XG5cdHotaW5kZXg6IDIwO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdG9wYWNpdHk6IDAuNjtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1vcGFjaXR5KTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX2NvbnRlbnQge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1vZmYtd2hpdGUpO1xuXHR6LWluZGV4OiAxNTk5MDE7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IDkwJTtcblx0aGVpZ2h0OiA5MCU7XG5cdGxlZnQ6IDUlO1xuXHR0b3A6IDUlO1xuXHRvdmVyZmxvdy15OiBzY3JvbGw7XG5cblx0PiBkaXYge1xuXHRcdGhlaWdodDogMTAwJTtcblx0fVxuXG5cdCoge1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdH1cbn1cblxuLmJjLXNob3J0Y29kZS11aSB7XG5cdGhlaWdodDogMTAwJTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0fVxufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19zZWxlY3RvcnMge1xuXHRmbGV4OiAxO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiBhdXRvO1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcblx0cGFkZGluZzogMzBweDtcblx0b3ZlcmZsb3cteTogc2Nyb2xsO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0ZmxleDogMCAxIDI1MHB4O1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRib3JkZXItYm90dG9tOiAwO1xuXHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2M7XG5cdH1cbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcHJvZHVjdHMtd3JhcHBlciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdH1cbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcHJvZHVjdHMge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRmbGV4OiAwIDEgNjAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRmbGV4OiAwIDEgNzAlO1xuXHR9XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3NlYXJjaCB7XG5cdHBhZGRpbmc6IDQwcHggMzBweDtcbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcHJvZHVjdC1ncmlkIHtcblx0b3ZlcmZsb3cteTogc2Nyb2xsO1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0aGVpZ2h0OiAxMDAlO1xuXHRwYWRkaW5nOiAxMHB4IDIwcHg7XG59XG5cbi8qIFNob3J0Y29kZSBVSSBTZXR0aW5ncyBTaWRlYmFyICovXG4uYmMtc2hvcnRjb2RlLXVpX19zZXR0aW5ncyB7XG5cdGhlaWdodDogYXV0bztcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRmbGV4OiAwIDEgNDAlO1xuXHRcdGJvcmRlci10b3A6IDA7XG5cdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjO1xuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0ZmxleDogMCAxIDMwJTtcblx0fVxufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19zZXR0aW5ncy1oZWFkZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGZsZXg6IDAgMCAxNTBweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmJjLXNob3J0Y29kZS11aV9fZHluYW1pYy1saXN0aW5nLWhlYWRlcixcbi5iYy1zaG9ydGNvZGUtdWlfX21hbnVhbC1saXN0aW5nLWhlYWRlcixcbi5iYy1zaG9ydGNvZGUtdWlfX2RlZmF1bHQtaGVhZGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0b3BhY2l0eTogMDtcblx0ei1pbmRleDogLTE7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXHRwYWRkaW5nOiAyMHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1sYXJnZSkge1xuXHRcdHBhZGRpbmc6IDMwcHg7XG5cdH1cblxuXHQmLmFjdGl2ZSB7XG5cdFx0ei1pbmRleDogMTtcblx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cblxuLmJjLXNob3J0Y29kZS11aV9fc2VsZWN0aW9ucyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0ZmxleDogMCAxIDQwJTtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX292ZXJmbG93LW1hc2sge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGhlaWdodDogNjVweDtcblx0bGVmdDogMDtcblx0Ym90dG9tOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdHJhbnNwYXJlbnQgMzAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODIpIDcwJSk7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1sYXJnZSkge1xuXHRcdGhlaWdodDogODBweDtcblx0fVxufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19zZWxlY3RlZC10ZXJtcyxcbi5iYy1zaG9ydGNvZGUtdWlfX3NlbGVjdGVkLXByb2R1Y3RzIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0b3BhY2l0eTogMDtcblx0ei1pbmRleDogLTE7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXG5cdCYuYWN0aXZlIHtcblx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0ei1pbmRleDogMTtcblx0fVxufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0cy1saXN0LFxuLmJjLXNob3J0Y29kZS11aV9fdGVybXMtbGlzdCB7XG5cdG92ZXJmbG93LXk6IHNjcm9sbDtcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXHRoZWlnaHQ6IDMwMHB4O1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDIwcHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdHBhZGRpbmc6IDMwcHg7XG5cdH1cbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcHJvZHVjdHMtbGlzdCB7XG5cdGhlaWdodDogMTAwJTtcbn1cblxuLmJjLXNob3J0Y29kZS11aV9fdGVybXMtbGlzdC1pdGVtIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdHBhZGRpbmc6IDRweCAycHggNHB4IDEwcHg7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0bGluZS1oZWlnaHQ6IDIwcHg7XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdG1hcmdpbi1yaWdodDogNHB4O1xuXHRtYXJnaW4tYm90dG9tOiA0cHg7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1ibHVlLWxpZ2h0KTtcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWJsYWNrKTtcblx0d29yZC1icmVhazogYnJlYWstYWxsO1xuXG5cdGJ1dHRvbiB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlcjogMDtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRsaW5lLWhlaWdodDogMjBweDtcblx0XHRvcGFjaXR5OiAwLjc1O1xuXHRcdHBhZGRpbmc6IDJweCA2cHg7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWJsdWUtbGlnaHQpO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblxuXHRcdGkge1xuXHRcdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdH1cblx0fVxufVxuXG4uYmMtc2hvcnRjb2RlLXVpX190ZXJtcy1saXN0LXRlcm0ge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19hY3Rpb25zIHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogYXV0bztcblx0cGFkZGluZzogMjBweDtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG5cdGZsZXg6IDAgMSA0MCU7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0cGFkZGluZzogMzBweDtcblx0fVxuXG5cdC5idXR0b24ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbjogMzBweCBhdXRvIDA7XG5cdH1cbn1cblxuLmJjLXNob3J0Y29kZS11aV9fZGlzcGxheS1zZXR0aW5ncyB7XG5cblx0JiA+ICoge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdH1cblxuXHQuYmMtc2hvcnRjb2RlLXVpX19maWVsZC1sYWJlbCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWFyZ2luLWJvdHRvbTogNHB4O1xuXHR9XG5cblx0aW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdH1cblxuXHQuYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LW9yZGVyLFxuXHQuYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LW9yZGVyYnkge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cblx0XHQuYmMtc2hvcnRjb2RlLXVpX19maWVsZC1sYWJlbCB7XG5cdFx0XHRmbGV4OiAwIDAgMTAwJTtcblx0XHR9XG5cblx0XHRsYWJlbCB7XG5cdFx0XHRmbGV4OiAwIDAgNTAlO1xuXG5cdFx0XHQuYmMtc2hvcnRjb2RlLXVpX19maWVsZC1sYWJlbCB7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcG9zdHMtcGVyLXBhZ2UtLWNvbnRyb2wge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcG9zdHMtcGVyLXBhZ2UtaWNvbiB7XG5cdGZsZXg6IDAgMCBhdXRvO1xuXHRtYXJnaW4tcmlnaHQ6IDhweDtcbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcG9zdHMtcGVyLXBhZ2Uge1xuXHRmbGV4OiAwIDEgMTQwcHg7XG5cdG1hcmdpbi1yaWdodDogOHB4O1xuXHR3aWR0aDogMTAwJTtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19wb3N0cy1wZXItcGFnZS12YWx1ZSB7XG5cdGZsZXg6IDAgMCA0NHB4O1xuXHRwYWRkaW5nOiA0cHg7XG5cdG1hcmdpbi1yaWdodDogNHB4O1xuXHRib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3Bvc3RzLXBlci1wYWdlLXJlc2V0IHtcblx0ZmxleDogMCAwIDQ0cHg7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0Ym9yZGVyOiAwO1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCk7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyB7XG5cdFx0Y29sb3I6IGRhcmtlbih2YXIoLS1jb2xvci1iYy1ibHVlLWxpZ2h0KSwgMC40KTtcblx0fVxufVxuIiwiLmJjLXNob3J0Y29kZS11aV9fbG9nbyB7XG5cdGJhY2tncm91bmQ6IHVybChcInZhcigtLXBhdGgtaW1hZ2VzKS9hZG1pbi9iaWctY29tbWVyY2UtbG9nby5wbmdcIikgbm8tcmVwZWF0IHRvcCBjZW50ZXI7XG5cdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcblx0d2lkdGg6IDEzMnB4O1xuXHRoZWlnaHQ6IDMwcHg7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW46IDRweCBhdXRvIDMwcHg7XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3F1ZXJ5LWJ1aWxkZXItbGlzdCB7XG5cdG1hcmdpbjogMDtcbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcXVlcnktYnVpbGRlci1jaGlsZC1saXN0IHtcblx0cGFkZGluZy1sZWZ0OiAyMHB4O1xuXHRtYXgtaGVpZ2h0OiAwO1xuXHRvcGFjaXR5OiAwO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19xdWVyeS1idWlsZGVyLWxpc3QtaXRlbSB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuXHRwYWRkaW5nOiAxMnB4IDA7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogMTAwJTtcblx0bWFyZ2luLWJvdHRvbTogMDtcblxuXHQuYmMtc2hvcnRjb2RlLXVpX19xdWVyeS1idWlsZGVyLWNoaWxkLWxpc3QgJiB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMDtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcXVlcnktYnVpbGRlci1hbmNob3IsXG4uYmMtc2hvcnRjb2RlLXVpX19xdWVyeS1idWlsZGVyLXRvZ2dsZSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtZ3JleS1tZWRpdW0pO1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXHRwYWRkaW5nOiA0cHggMDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMge1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ibGFjayk7XG5cdH1cblxuXHQmLmJjcWItaXRlbS1zZWxlY3RlZCB7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWJsdWUtdHVycXVvaXNlKTtcblx0fVxufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19xdWVyeS1idWlsZGVyLWFuY2hvciB7XG5cblx0LmJjLXNob3J0Y29kZS11aV9fcXVlcnktYnVpbGRlci1jaGlsZC1saXN0ICYge1xuXHRcdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1yZWd1bGFyKTtcblxuXHRcdCYuYmNxYi1pdGVtLXNlbGVjdGVkIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ibGFjayk7XG5cblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdHdpZHRoOiAxMHB4O1xuXHRcdFx0XHRoZWlnaHQ6IDEwcHg7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRcdG1hcmdpbi10b3A6IC01cHg7XG5cdFx0XHRcdGxlZnQ6IC0yMHB4O1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYy1ibHVlLXR1cnF1b2lzZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3F1ZXJ5LWJ1aWxkZXItdG9nZ2xlIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHdpZHRoOiAxMDAlO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyOiAwO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cblx0Lmljb24ge1xuXHRcdGZsb2F0OiByaWdodDtcblx0fVxufVxuIiwiLmJjLXNob3J0Y29kZS11aV9fc2VhcmNoZm9ybSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwO1xuXHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdC5jaG9pY2VzIHtcblx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG5cblx0LmNob2ljZXNfX2lubmVyIHtcblx0XHRwYWRkaW5nLXJpZ2h0OiA4OHB4O1xuXHR9XG5cblx0LmJjLXNob3J0Y29kZS11aS1zZWFyY2hfX3N1Ym1pdC1idXR0b24ge1xuXHRcdGZsZXg6IDAgMCA5NXB4O1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRsaW5lLWhlaWdodDogMTtcblx0XHRwYWRkaW5nOiAxNXB4IDI4cHg7XG5cdFx0bWFyZ2luLWxlZnQ6IDIwcHg7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG5cdFx0bWF4LXdpZHRoOiA5NXB4O1xuXHR9XG5cblx0LmJjLXNob3J0Y29kZS11aS1zZWFyY2hfX2NsZWFyLXNlYXJjaCB7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdGNvbG9yOiBjb3JuZmxvd2VyYmx1ZTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDEyNXB4O1xuXHRcdHRvcDogMTJweDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdH1cbn1cblxuaW5wdXQuY2hvaWNlc19faW5wdXQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyOiAwO1xuXHRib3gtc2hhZG93OiBub25lO1xuXHRmb250LXNpemU6IDEycHg7XG5cdHdpZHRoOiAxNDBweCAhaW1wb3J0YW50O1xufVxuXG4uY2hvaWNlc1tkYXRhLXR5cGUqPVwic2VsZWN0LW11bHRpcGxlXCJdIC5jaG9pY2VzX19idXR0b24sXG4uY2hvaWNlc1tkYXRhLXR5cGUqPVwidGV4dFwiXSAuY2hvaWNlc19fYnV0dG9uIHtcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwidmFyKC0tcGF0aC1pbWFnZXMpL2FkbWluL2ljb25zL2Nyb3NzLnN2Z1wiKTtcbn1cbiIsIi5iYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3Qge1xuXHRsb3N0LWNvbHVtbjogMS8xO1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRwYWRkaW5nOiAxMHB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LXNtYWxsKSB7XG5cdFx0bG9zdC1jb2x1bW46IDEvMiAyIDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0fVxuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRsb3N0LWNvbHVtbjogMS8zIDMgMDtcblx0fVxuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0bG9zdC1jb2x1bW46IDEvMiAyIDA7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRsb3N0LWNvbHVtbjogMS8zIDMgMDtcblx0fVxuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC14eGxhcmdlKSB7XG5cdFx0bG9zdC1jb2x1bW46IDEvNCA0IDA7XG5cdH1cbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcHJvZHVjdC1pbm5lciB7XG5cblx0LmJjLWljb24uaWNvbi1iYy1zZWxlY3RlZCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMTVweDtcblx0XHRyaWdodDogMTVweDtcblx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCk7XG5cblx0XHQuYmMtc2hvcnRjb2RlLXVpX19zZWxlY3RlZC1yZXN1bHQgJiB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LWFuY2hvciB7XG5cdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ibGFjayk7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdG9wYWNpdHk6IDA7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0b3V0bGluZTogdmFyKC0tY29sb3ItYmxhY2stYS00MCk7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ibGFjayk7XG5cblx0XHQuYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LWFjdGlvbnMge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtYW5jaG9yLXN0YXR1cyB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDUwJTtcblx0dG9wOiAyMCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXgtd2lkdGg6IDEzMHB4O1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYy1ibHVlLWxpZ2h0KTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRwYWRkaW5nOiAwIDEwcHg7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0bGluZS1oZWlnaHQ6IDMycHg7XG5cdGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdGJvcmRlci1yYWRpdXM6IDRweDtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LWltYWdlIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSkgbm8tcmVwZWF0IGNlbnRlciB0b3A7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW46IDA7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0YXNwZWN0LXJhdGlvOiAnNDo0Jztcbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcHJvZHVjdC1pbWFnZS0tZmVhdHVyZWQge1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LWltYWdlLS1wbGFjZWhvbGRlciB7XG5cdGJhY2tncm91bmQtc2l6ZTogNTAlIDUwJTtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcHJvZHVjdC1tZXRhIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiBub3dyYXA7XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtdGl0bGUge1xuXHRmbGV4OiAxIDEgYXV0bztcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRtYXJnaW46IDE2cHggMDtcblx0bGluZS1oZWlnaHQ6IDIwcHg7XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtcHJpY2Uge1xuXHRmb250LXNpemU6IDE2cHg7XG5cdGxpbmUtaGVpZ2h0OiAyMHB4O1xuXHRtYXJnaW46IDE2cHggMCAxNnB4IDE0cHg7XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtZGVzY3JpcHRpb24ge1xuXHRmb250LXNpemU6IDE0cHg7XG5cdGxpbmUtaGVpZ2h0OiAxOHB4O1xufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LXF1ZXJ5LWRpbW1lciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ibGFjay1hLTQwKTtcblx0b3BhY2l0eTogMDtcblx0dHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlO1xuXHR6LWluZGV4OiAtMTtcblxuXHQmLmFjdGl2ZSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR6LWluZGV4OiAyMDAwMDAwO1xuXHR9XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtcXVlcnktbG9hZGVyIHtcblxuXHQuc3Bpbm5lciB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblx0fVxuXG5cdCYuYWN0aXZlIHtcblxuXHRcdC5zcGlubmVyIHtcblx0XHRcdG9wYWNpdHk6IDAuNTtcblx0XHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdFx0fVxuXHR9XG59XG4iLG51bGwsIi5iYy1zaG9ydGNvZGUtdWlfX3NlbGVjdGVkLXByb2R1Y3RzLXRpdGxlIHtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmJjLXNob3J0Y29kZS11aV9fc2VsZWN0ZWQtcHJvZHVjdCB7XG5cdG1hcmdpbi1ib3R0b206IDE3cHg7XG5cblx0aDUsXG5cdHNwYW4ge1xuXHRcdG1hcmdpbjogMDtcblx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDIwcHg7XG5cdH1cbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcmVtb3ZlLXNlbGVjdGVkIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCk7XG5cdGN1cnNvcjogcG9pbnRlcjtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzIHtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG5cdH1cbn1cbiIsIi5iYy1pbXBvcnQtbm93IHtcblx0bWFyZ2luLXRvcDogMzhweDtcblxuXHQuYmMtcHJvZHVjdHMtc3luYyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCk7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0XHRwYWRkaW5nOiAwIDMwcHg7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdGJvcmRlci1yYWRpdXM6IDIwcHg7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRsaW5lLWhlaWdodDogNDBweDtcblx0XHRoZWlnaHQ6IDQwcHg7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLW9wYWNpdHkpO1xuXG5cdFx0Jjpob3Zlcixcblx0XHQmOmZvY3VzIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJjLWJsdWUtbGlnaHQpO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0XHRcdG9wYWNpdHk6IDAuOTtcblx0XHR9XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDZweDtcblx0XHR9XG5cdH1cblxuXHQuYmMtcHJvZHVjdHMtc3luYy1sYWJlbCB7XG5cdFx0Zm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LXNhbnMtc2VyaWYpO1xuXHRcdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0fVxufVxuXG4iLCIucG9zdC10eXBlLWJpZ2NvbW1lcmNlX3Byb2R1Y3Qge1xuXG5cdCYucG9zdC1waHAge1xuXG5cdFx0Lm1pc2MtcHViLWJpZ2NvbW1lcmNlIC5kYXNoaWNvbnMge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0dG9wOiAtM3B4O1xuXHRcdFx0cGFkZGluZy1yaWdodDogM3B4O1xuXHRcdFx0Y29sb3I6ICM4Mjg3OGM7XG5cdFx0fVxuXG5cdFx0LmVkaXRvci1wb3N0LXBlcm1hbGlua19fZWRpdCB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdCYuZWRpdC1waHAge1xuXG5cdFx0LmJjLXNldHRpbmdzLWhlYWRlcl9fY3RhLWJ0biB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXG5cdFx0XHQmLS1hY3RpdmUge1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAyMHB4O1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAycHg7XG5cdFx0XHR9XG5cblx0XHRcdC5iYy1hZG1pbi1idG4ge1xuXHRcdFx0XHRmb250LXNpemU6IDEwcHg7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAxMnB4O1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRcdGxldHRlci1zcGFjaW5nOiAxcHg7XG5cdFx0XHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1kb2dlci1ibHVlKTtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdFx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1vcGFjaXR5KTtcblxuXHRcdFx0XHQuYmMtaWNvbiB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAxMnB4O1xuXHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDZweDtcblx0XHRcdFx0XHRib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWNvbmNyZXRlKTtcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDE1cHg7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOmhvdmVyLFxuXHRcdFx0XHQmOmZvY3VzIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAwLjg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi5pbmxpbmUtZWRpdC1iaWdjb21tZXJjZV9wcm9kdWN0IHtcblxuXHQuaW5saW5lLWVkaXQtY29sLWxlZnQgLmlubGluZS1lZGl0LWNvbCA+IGxhYmVsOm50aC1jaGlsZCgyKSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4iXX0= */ \ No newline at end of file +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3Bjc3MvYWRtaW4vYmMtYWRtaW4ucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL21peGlucy9fYnV0dG9ucy5wY3NzIiwiLi4vcGNzcy91dGlsaXRpZXMvdmFyaWFibGVzL19jb2xvcnMucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL3ZhcmlhYmxlcy9fdHlwb2dyYXBoeS5wY3NzIiwiLi4vcGNzcy91dGlsaXRpZXMvdmFyaWFibGVzL19pY29ucy5wY3NzIiwiLi4vcGNzcy9iYXNlL19pY29ucy5wY3NzIiwiLi4vcGNzcy9hZG1pbi9jaG9pY2VzL19jaG9pY2VzLnBjc3MiLCIuLi9wY3NzL2FkbWluL2Nob2ljZXMvX2Nob2ljZXMtY3VzdG9tLnBjc3MiLCIuLi9wY3NzL2FkbWluL3NldHRpbmdzL19tZW51LnBjc3MiLCIuLi9wY3NzL2FkbWluL3NldHRpbmdzL19wbHVnaW4tc2V0dGluZ3MtcGFnZXMucGNzcyIsIi4uL3Bjc3MvYWRtaW4vc2V0dGluZ3MvX3BsdWdpbi1zZXR0aW5ncy5wY3NzIiwiLi4vcGNzcy9hZG1pbi9zZXR0aW5ncy9fcGx1Z2luLXdlbGNvbWUucGNzcyIsIi4uL3Bjc3MvYWRtaW4vc2V0dGluZ3MvX3BsdWdpbi1jb25uZWN0LnBjc3MiLCIuLi9wY3NzL2FkbWluL3NldHRpbmdzL19wbHVnaW4tbm90aWNlcy5wY3NzIiwiLi4vcGNzcy9hZG1pbi9zaG9ydGNvZGUtdWkvX3Nob3J0Y29kZS1kaWFsb2cucGNzcyIsIi4uL3Bjc3MvYWRtaW4vc2hvcnRjb2RlLXVpL19xdWVyeS1idWlsZGVyLnBjc3MiLCIuLi9wY3NzL2FkbWluL3Nob3J0Y29kZS11aS9fc2VhcmNoZm9ybS5wY3NzIiwiLi4vcGNzcy9hZG1pbi9zaG9ydGNvZGUtdWkvX3Byb2R1Y3QtcmVzdWx0cy5wY3NzIiwiPG5vIHNvdXJjZT4iLCIuLi9wY3NzL2FkbWluL3Nob3J0Y29kZS11aS9fc2VsZWN0ZWQtcHJvZHVjdHMucGNzcyIsIi4uL3Bjc3MvYWRtaW4vcG9zdHMvX3Bvc3RzLWxpc3QucGNzcyIsIi4uL3Bjc3MvYWRtaW4vcG9zdHMvX2VkaXQtcG9zdC5wY3NzIiwiLi4vcGNzcy9hZG1pbi9wb3N0cy9fcXVpY2stZWRpdC5wY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHOztBQUVILG1CQUFtQjtBQ05uQjs7OzttRkFJbUY7QUFlbkY7Ozs7bUZBSW1GO0FBc0JuRjs7OzttRkFJbUY7QUNsRG5GO0NBQ0M7O29GQUVtRjs7Q0FnQm5GOztvRkFFbUY7O0NBS25GOztvRkFFbUY7O0NBTW5GOztvRkFFbUY7O0NBTW5GOztvRkFFbUY7O0NBUW5GOztvRkFFbUY7O0NBS25GOztvRkFFbUY7O0NBS25GOztvRkFFbUY7O0NBS25GOztvRkFFbUY7Q0FPbkY7QUNsRkQ7Q0FDQzs7b0ZBRW1GOztDQU9uRjs7b0ZBRW1GOztDQVluRjs7b0ZBRW1GOztDQVFuRjs7b0ZBRW1GOztDQVNuRjs7b0ZBRW1GO0NBSW5GO0FDbkREOzttRkFFbUY7QUFFbkYsdUJBQXVCO0FDSnZCOzs7O21GQUltRjtBQUVuRix1QkFBdUI7QUFFdkI7RUFDRSxpQ0FBaUM7RUFDakM7Ozs7bUdBSTBHO0VBQzFHLG9CQUFvQjtFQUNwQixtQkFBbUI7Q0FDcEI7QUFFRDtFQUNFLGdGQUFnRjtFQUNoRiw0Q0FBNEM7RUFDNUMsWUFBWTtFQUNaLG1CQUFtQjtFQUNuQixvQkFBb0I7RUFDcEIsc0NBQXFCO1VBQXJCLDhCQUFxQjtFQUFyQixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLGVBQXFDOztFQUVyQyx1Q0FBdUM7RUFDdkMsb0NBQW9DO0VBQ3BDLG1DQUFtQztDQUNwQztBQUVEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7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RDs7Q0FFQyxhQUFhO0NBQ2I7QUNsREo7Q0FDQyxjQUFjO0NBQ2QiLCJmaWxlIjoiYmMtYWRtaW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFdvcmRQcmVzcyBhZG1pbiBDU1NcbiAqXG4gKiBUaGlzIGNzcyBmaWxlcyBpbmNsdWRlcyBhcmUgbG9hZGVkIGdsb2JhbGx5IGluIHRoZSBhZG1pbi4gVXNlIHRoaXMgZm9yIGFsbCBvdGhlciBhZG1pbiBjc3MuXG4gKlxuICovXG5cbi8qIEFkbWluIFVJIEJhc2UgKi9cbkBpbXBvcnQgXCIuLi91dGlsaXRpZXMvbWl4aW5zL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCIuLi91dGlsaXRpZXMvdmFyaWFibGVzL2NvbG9yc1wiO1xuQGltcG9ydCBcIi4uL3V0aWxpdGllcy92YXJpYWJsZXMvbWVkaWEtcXVlcmllc1wiO1xuQGltcG9ydCBcIi4uL3V0aWxpdGllcy92YXJpYWJsZXMvcGF0aHNcIjtcbkBpbXBvcnQgXCIuLi91dGlsaXRpZXMvdmFyaWFibGVzL3RyYW5zaXRpb25zXCI7XG5AaW1wb3J0IFwiLi4vdXRpbGl0aWVzL3ZhcmlhYmxlcy90eXBvZ3JhcGh5XCI7XG5AaW1wb3J0IFwiLi4vdXRpbGl0aWVzL3ZhcmlhYmxlcy9pY29uc1wiO1xuQGltcG9ydCBcIi4uL3V0aWxpdGllcy9zZXR0aW5ncy9ncmlkXCI7XG5AaW1wb3J0IFwiLi4vYmFzZS9pY29uc1wiO1xuXG4vKiBWZW5kb3I6IENob2ljZXMuanMgKi9cbkBpbXBvcnQgXCJjaG9pY2VzL2FsbFwiO1xuXG4vKiBBZG1pbiBQbHVnaW4gU2V0dGluZ3MgKi9cbkBpbXBvcnQgJy4vc2V0dGluZ3MvbWVudSc7XG5AaW1wb3J0ICcuL3NldHRpbmdzL3BsdWdpbi1zZXR0aW5ncy1wYWdlcyc7XG5AaW1wb3J0ICcuL3NldHRpbmdzL3BsdWdpbi1zZXR0aW5ncyc7XG5AaW1wb3J0ICcuL3NldHRpbmdzL3BsdWdpbi13ZWxjb21lJztcbkBpbXBvcnQgJy4vc2V0dGluZ3MvcGx1Z2luLWNvbm5lY3QnO1xuQGltcG9ydCAnLi9zZXR0aW5ncy9wbHVnaW4tbm90aWNlcyc7XG5cbi8qIEFkbWluIFVJIFN0eWxlcyAqL1xuQGltcG9ydCAnLi9zaG9ydGNvZGUtdWkvc2hvcnRjb2RlLWRpYWxvZyc7XG5AaW1wb3J0ICcuL3Nob3J0Y29kZS11aS9xdWVyeS1idWlsZGVyJztcbkBpbXBvcnQgJy4vc2hvcnRjb2RlLXVpL3NlYXJjaGZvcm0nO1xuQGltcG9ydCAnLi9zaG9ydGNvZGUtdWkvcHJvZHVjdC1yZXN1bHRzJztcbkBpbXBvcnQgJy4vc2hvcnRjb2RlLXVpL3NlbGVjdGVkLXByb2R1Y3RzJztcblxuLyogUG9zdCBFZGl0b3IgU3R5bGVzICovXG5AaW1wb3J0ICcuL3Bvc3RzL3Bvc3RzLWxpc3QnO1xuQGltcG9ydCAnLi9wb3N0cy9lZGl0LXBvc3QnO1xuQGltcG9ydCAnLi9wb3N0cy9xdWljay1lZGl0JztcblxuIiwiXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEdsb2JhbCBCdXR0b24gUmVzZXRzXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGRlZmluZS1taXhpbiBidXR0b24tZ2xvYmFsIHtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cdHdpZHRoOiBhdXRvO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1ldmVuKTtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXHRoZWlnaHQ6IGF1dG87XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRib3JkZXI6IDA7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQnV0dG9uIFN1Ym1pdFxuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBkZWZpbmUtbWl4aW4gYnV0dG9uLXN1Ym1pdCB7XG5cdEBtaXhpbiBidXR0b24tZ2xvYmFsO1xuXG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJsYWNrKTtcblx0cGFkZGluZzogMWVtO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cblx0Jjp2aXNpdGVkIHtcblx0XHRjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JleS1kYXJrKTtcblx0fVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEJ1dHRvbiBQaWxsXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGRlZmluZS1taXhpbiBidXR0b24tcGlsbCB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJjLWRvZ2VyLWJsdWUpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1kb2dlci1ibHVlKTtcblx0Ym9yZGVyLXJhZGl1czogMTlweDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym94LXNoYWRvdzogdW5zZXQ7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0Y29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwYWRkaW5nOiAxM3B4IDIwcHggMTJweDtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcblx0bGV0dGVyLXNwYWNpbmc6IDFweDtcblx0bGluZS1oZWlnaHQ6IDEycHg7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJjLWJsdWUtdHVycXVvaXNlKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJjLWJsdWUtdHVycXVvaXNlKTtcblx0fVxuXG5cdCY6ZGlzYWJsZWQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpICFpbXBvcnRhbnQ7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KSAhaW1wb3J0YW50O1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ncmV5KSAhaW1wb3J0YW50O1xuXHRcdGN1cnNvcjogZGVmYXVsdCAhaW1wb3J0YW50O1xuXHR9XG59XG4iLCI6cm9vdCB7XG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIFByaW1hcnkgUGFsZXR0ZVxuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY29sb3ItcHJpbWFyeTogIzUyNzNmNDtcblx0LS1jb2xvci1zZWNvbmRhcnk6IGRhcmtlbih2YXIoLS1jb2xvci1wcmltYXJ5KSwgMC4wOCk7XG5cdC0tY29sb3ItYmMtZ3JlZW46ICM2NWM2OGM7XG5cdC0tY29sb3ItYmMtbGlnaHQtZ3JleTogI2UwZTNlOTtcblx0LS1jb2xvci1iYy1jb25jcmV0ZTogI2NkY2RjZDtcblx0LS1jb2xvci1iYy1ncmV5OiAjOGI4YjhiO1xuXHQtLWNvbG9yLWJjLWdyZXktbWVkaXVtOiAjNWU1ZTVlO1xuXHQtLWNvbG9yLWJjLWJsYWNrOiAjMzQzMTNmO1xuXHQtLWNvbG9yLWJjLWRvZ2VyLWJsdWU6ICM0YjcxZmM7XG5cdC0tY29sb3ItYmMtYmx1ZS1saWdodDogIzE2OGZjMDtcblx0LS1jb2xvci1iYy1ibHVlLXR1cnF1b2lzZTogIzUzYmFkMTtcblx0LS1jb2xvci1iYy1yZWQ6ICNkMjU3NGE7XG5cdC0tY29sb3ItYmMtc3VjY2VzczogIzgyOWQ1ZjtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBXaGl0ZXNcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNvbG9yLXdoaXRlOiAjZmZmO1xuXHQtLWNvbG9yLW9mZi13aGl0ZTogI2Y1ZjVmNTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBHcmV5c1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY29sb3ItZ3JleS1saWdodDogbGlnaHRlbih2YXIoLS1jb2xvci1ncmV5KSwgMC4xNSk7XG5cdC0tY29sb3ItZ3JleTogZ3JleTtcblx0LS1jb2xvci1ncmV5LWRhcms6IGRhcmtlbih2YXIoLS1jb2xvci1ncmV5KSwgMC4xNSk7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogQmxhY2tzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jb2xvci1ibGFjazogIzAwMDtcblx0LS1jb2xvci1ibGFjay1hLTQwOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG5cdC0tY29sb3ItYmxhY2stYS03MDogcmdiYSgwLCAwLCAwLCAwLjcpO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIEJhY2tncm91bmRzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jb2xvci1iZ2Q6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0LS1jb2xvci1iZ2QtY29udGVudDogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHQtLWNvbG9yLWJnZC1sb2dpbjogI2YxZjFmMTtcblx0LS1jb2xvci1iZ2Qtc2VsZWN0aW9uOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcblx0LS1jb2xvci1iZ2QtcGFuZWwtYWN0aXZlOiAjMmMyOTM1O1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIExpbmtzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jb2xvci1saW5rOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcblx0LS1jb2xvci1saW5rLWhvdmVyOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIFRleHRcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNvbG9yLXRleHQ6IHZhcigtLWNvbG9yLWJsYWNrKTtcblx0LS1jb2xvci10ZXh0LXNlbGVjdGlvbjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIEJvcmRlcnNcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNvbG9yLWJvcmRlcjogdmFyKC0tY29sb3ItZ3JleSk7XG5cdC0tY29sb3ItYm9yZGVyLWZvcm0tZmllbGQ6ICNlMWU2ZWE7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogQWxlcnQgQ29sb3JzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1hbGVydC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHQtLWFsZXJ0LWJnLWRlZmF1bHQ6IHZhcigtLWNvbG9yLWJjLWJsdWUtbGlnaHQpO1xuXHQtLWFsZXJ0LXN1Y2Nlc3M6ICMzZWM4ODk7XG5cdC0tYWxlcnQtZXJyb3I6ICNmZjAwMTI7XG5cdC0tYWxlcnQtYmctaW5mbzogdmFyKC0tY29sb3ItYmMtY29uY3JldGUpO1xufVxuIiwiOnJvb3Qge1xuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBGb250IFN0YWNrc1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tZm9udC1mYW1pbHktYmlnY29tbWVyY2UtaWNvbnM6ICdiaWdjb21tZXJjZS1pY29ucyc7XG5cdC0tZm9udC1mYW1pbHktcHJveGltYS1ub3ZhOiBcInByb3hpbWEtbm92YVwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG5cdC0tZm9udC1mYW1pbHktc2Fucy1zZXJpZjogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXHQtLWZvbnQtZmFtaWx5LWJhc2U6IHZhcigtLWZvbnQtZmFtaWx5LXByb3hpbWEtbm92YSk7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogRm9udCBTaXppbmdcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWZvbnQtc2l6ZS1iYXNlOiAxNnB4O1xuXHQtLWZvbnQtc2l6ZS1jb250ZW50OiAxZW07XG5cdC0tZm9udC1zaXplLWNvbnRlbnQteHhsOiAxLjVlbTtcblx0LS1mb250LXNpemUtY29udGVudC14bDogMS4yNWVtO1xuXHQtLWZvbnQtc2l6ZS1jb250ZW50LWxnOiAxLjEyNWVtO1xuXHQtLWZvbnQtc2l6ZS1jb250ZW50LW06IDAuODc1ZW07XG5cdC0tZm9udC1zaXplLWNvbnRlbnQtczogMC44MTNlbTtcblx0LS1mb250LXNpemUtY29udGVudC14czogMC43NWVtO1xuXHQtLWZvbnQtc2l6ZS1jb250ZW50LXh4czogMC42MjVlbTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBGb250IFdlaWdodHNcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWZvbnQtd2VpZ2h0LWxpZ2h0OiAzMDA7XG5cdC0tZm9udC13ZWlnaHQtcmVndWxhcjogNDAwO1xuXHQtLWZvbnQtd2VpZ2h0LW1lZGl1bTogNTAwO1xuXHQtLWZvbnQtd2VpZ2h0LXNlbWlib2xkOiA2MDA7XG5cdC0tZm9udC13ZWlnaHQtYm9sZDogNzAwO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIExpbmUgSGVpZ2h0c1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tbGluZS1oZWlnaHQtYmFzZTogMS41O1xuXHQtLWxpbmUtaGVpZ2h0LWw6IDEuNjtcblx0LS1saW5lLWhlaWdodC1tOiAxLjM3NTtcblx0LS1saW5lLWhlaWdodC1zOiAxLjM7XG5cdC0tbGluZS1oZWlnaHQtc3M6IDEuMjtcblx0LS1saW5lLWhlaWdodC1ldmVuOiAxO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIEJvcmRlciBSYWRpdXNcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWJvcmRlci1yYWRpdXMtYmFzZTogNHB4O1xuXHQtLWJvcmRlci1yYWRpdXMtcm91bmQ6IDUwJTtcbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBGb250IEljb25zICh2aWEgSWNvTW9vbilcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG5cbjpyb290IHtcbi0taWNvbW9vbi1mb250LWZhbWlseTogXCJiaWdjb21tZXJjZS1pY29uc1wiICFkZWZhdWx0O1xuXG5cbi0taWNvbi1iYy1iaWdjb21tZXJjZV9kaWFnbm9zdGljczogXCJcXGU5MTJcIjtcbi0taWNvbi1iYy1jaGFubmVsX3NlbGVjdDogXCJcXGU5MTFcIjtcbi0taWNvbi1iYy1jaGFubmVsOiBcIlxcZTkxMVwiO1xuLS1pY29uLWJjLWNyZWRlbnRpYWxzOiBcIlxcZTkxMFwiO1xuLS1pY29uLWJjLXN5bmM6IFwiXFxlOTBmXCI7XG4tLWljb24tYmMtYWNjb3VudHM6IFwiXFxlOTA2XCI7XG4tLWljb24tYmMtYW5hbHl0aWNzOiBcIlxcZTkwN1wiO1xuLS1pY29uLWJjLWNhcnQ6IFwiXFxlOTA4XCI7XG4tLWljb24tYmMtY3VycmVuY3k6IFwiXFxlOTA5XCI7XG4tLWljb24tYmMtZ2lmdF9jZXJ0aWZpY2F0ZXM6IFwiXFxlOTBhXCI7XG4tLWljb24tYmMtaW1wb3J0OiBcIlxcZTkwYlwiO1xuLS1pY29uLWJjLW9yZGVyX2NvbmZpcm1hdGlvbjogXCJcXGU5MGNcIjtcbi0taWNvbi1iYy1wcm9kdWN0X3Jldmlld3M6IFwiXFxlOTBkXCI7XG4tLWljb24tYmMtc2hpcHBpbmdfcmV0dXJuczogXCJcXGU5MGVcIjtcbi0taWNvbi1iYy1iLWxvZ286IFwiXFxlOTAxXCI7XG4tLWRhc2hpY29ucy1iaWdjb21tZXJjZTogXCJcXGU5MDFcIjtcbi0taWNvbi1iYy1hcnJvdy1zb2xpZDogXCJcXGU5MDJcIjtcbi0taWNvbi1iYy1zZWxlY3RlZDogXCJcXGU5MDNcIjtcbi0taWNvbi1iYy1hcnJvdy10b2dnbGU6IFwiXFxlOTA1XCI7XG4tLWljb24tYmMtYXJyb3ctbGVmdDogXCJcXGUwOTRcIjtcbi0taWNvbi1iYy1hcnJvdy1yaWdodDogXCJcXGUwOTVcIjtcbi0taWNvbi1iYy1hcnJvdy11cDogXCJcXGUwOTZcIjtcbi0taWNvbi1iYy1hcnJvdy1kb3duOiBcIlxcZTA5N1wiO1xuLS1pY29uLWJjLXBsdXM6IFwiXFxlMTE0XCI7XG4tLWljb24tYmMtbWludXM6IFwiXFxlMTE1XCI7XG4tLWljb24tYmMtY2hlY2s6IFwiXFxlMTE2XCI7XG4tLWljb24tYmMtY3Jvc3M6IFwiXFxlMTE3XCI7XG4tLWljb24tYmMtc2VhcmNoOiBcIlxcZTAzNlwiO1xuLS1pY29uLWJjLWNoZXZyb24tZG93bjogXCJcXGU5MDBcIjtcbi0taWNvbi1iYy1jaGV2cm9uLWxlZnQ6IFwiXFxlOTFhXCI7XG4tLWljb24tYmMtY2hldnJvbi1yaWdodDogXCJcXGU5MTlcIjtcbi0taWNvbi1iYy1jaGV2cm9uLXVwOiBcIlxcZTkwNFwiO1xuXG5cbn0iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEZvbnQgSWNvbnM6IEljb25zICh2aWEgSWNvTW9vbilcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdiaWdjb21tZXJjZS1pY29ucyc7XG4gIHNyYzpcbiAgICB1cmwoJ3ZhcigtLXBhdGgtZm9udHMpL2ljb25zLWJpZ2NvbW1lcmNlL2JpZ2NvbW1lcmNlLWljb25zLndvZmYyP21uaGVwZCcpIGZvcm1hdCgnd29mZjInKSxcbiAgICB1cmwoJ3ZhcigtLXBhdGgtZm9udHMpL2ljb25zLWJpZ2NvbW1lcmNlL2JpZ2NvbW1lcmNlLWljb25zLnR0Zj9tbmhlcGQnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgdXJsKCd2YXIoLS1wYXRoLWZvbnRzKS9pY29ucy1iaWdjb21tZXJjZS9iaWdjb21tZXJjZS1pY29ucy53b2ZmP21uaGVwZCcpIGZvcm1hdCgnd29mZicpLFxuICAgIHVybCgndmFyKC0tcGF0aC1mb250cykvaWNvbnMtYmlnY29tbWVyY2UvYmlnY29tbWVyY2UtaWNvbnMuc3ZnP21uaGVwZCNiaWdjb21tZXJjZS1pY29ucycpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLmJjLWljb24ge1xuICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICBmb250LWZhbWlseTogJ2JpZ2NvbW1lcmNlLWljb25zJyAhaW1wb3J0YW50O1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1ldmVuKTtcblxuICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi5pY29uLWJjLWJpZ2NvbW1lcmNlX2RpYWdub3N0aWNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTEyXCI7XG59XG4uaWNvbi1iYy1jaGFubmVsX3NlbGVjdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxMVwiO1xufVxuLmljb24tYmMtY2hhbm5lbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxMVwiO1xufVxuLmljb24tYmMtY3JlZGVudGlhbHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MTBcIjtcbn1cbi5pY29uLWJjLXN5bmM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MGZcIjtcbn1cbi5pY29uLWJjLWFjY291bnRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA2XCI7XG59XG4uaWNvbi1iYy1hbmFseXRpY3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDdcIjtcbn1cbi5pY29uLWJjLWNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDhcIjtcbn1cbi5pY29uLWJjLWN1cnJlbmN5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA5XCI7XG59XG4uaWNvbi1iYy1naWZ0X2NlcnRpZmljYXRlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwYVwiO1xufVxuLmljb24tYmMtaW1wb3J0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBiXCI7XG59XG4uaWNvbi1iYy1vcmRlcl9jb25maXJtYXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MGNcIjtcbn1cbi5pY29uLWJjLXByb2R1Y3RfcmV2aWV3czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwZFwiO1xufVxuLmljb24tYmMtc2hpcHBpbmdfcmV0dXJuczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwZVwiO1xufVxuLmljb24tYmMtYi1sb2dvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTAxXCI7XG59XG4uZGFzaGljb25zLWJpZ2NvbW1lcmNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTAxXCI7XG59XG4uaWNvbi1iYy1hcnJvdy1zb2xpZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwMlwiO1xufVxuLmljb24tYmMtc2VsZWN0ZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDNcIjtcbn1cbi5pY29uLWJjLWFycm93LXRvZ2dsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwNVwiO1xufVxuLmljb24tYmMtYXJyb3ctbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5NFwiO1xufVxuLmljb24tYmMtYXJyb3ctcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTVcIjtcbn1cbi5pY29uLWJjLWFycm93LXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDk2XCI7XG59XG4uaWNvbi1iYy1hcnJvdy1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDk3XCI7XG59XG4uaWNvbi1iYy1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTE0XCI7XG59XG4uaWNvbi1iYy1taW51czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExNVwiO1xufVxuLmljb24tYmMtY2hlY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTZcIjtcbn1cbi5pY29uLWJjLWNyb3NzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTE3XCI7XG59XG4uaWNvbi1iYy1zZWFyY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzZcIjtcbn1cbi5pY29uLWJjLWNoZXZyb24tZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwMFwiO1xufVxuLmljb24tYmMtY2hldnJvbi1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTFhXCI7XG59XG4uaWNvbi1iYy1jaGV2cm9uLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTE5XCI7XG59XG4uaWNvbi1iYy1jaGV2cm9uLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA0XCI7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG49ICAgICAgICAgICAgQ2hvaWNlcyAgICAgICAgICAgID1cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmNob2ljZXMge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbi1ib3R0b206IDI0cHg7XG5cdGZvbnQtc2l6ZTogMTZweDtcbn1cblxuLmNob2ljZXM6Zm9jdXMge1xuXHRvdXRsaW5lOiBub25lO1xufVxuXG4uY2hvaWNlczpsYXN0LWNoaWxkIHtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmNob2ljZXMuaXMtZGlzYWJsZWQgLmNob2ljZXNfX2lubmVyLFxuLmNob2ljZXMuaXMtZGlzYWJsZWQgLmNob2ljZXNfX2lucHV0IHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2VhZWFlYTtcblx0Y3Vyc29yOiBub3QtYWxsb3dlZDtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLmNob2ljZXMuaXMtZGlzYWJsZWQgLmNob2ljZXNfX2l0ZW0ge1xuXHRjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uY2hvaWNlc1tkYXRhLXR5cGUqPVwic2VsZWN0LW9uZVwiXSB7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNob2ljZXNbZGF0YS10eXBlKj1cInNlbGVjdC1vbmVcIl0gLmNob2ljZXNfX2lubmVyIHtcblx0cGFkZGluZy1ib3R0b206IDcuNXB4O1xufVxuXG4uY2hvaWNlc1tkYXRhLXR5cGUqPVwic2VsZWN0LW9uZVwiXSAuY2hvaWNlc19faW5wdXQge1xuXHRkaXNwbGF5OiBibG9jaztcblx0d2lkdGg6IDEwMCU7XG5cdHBhZGRpbmc6IDEwcHg7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRtYXJnaW46IDA7XG59XG5cbi5jaG9pY2VzW2RhdGEtdHlwZSo9XCJzZWxlY3Qtb25lXCJdIC5jaG9pY2VzX19idXR0b24ge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9pY29ucy9jcm9zcy1pbnZlcnNlLnN2Z1wiKTtcblx0cGFkZGluZzogMDtcblx0YmFja2dyb3VuZC1zaXplOiA4cHg7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiA1MCU7XG5cdHJpZ2h0OiAwO1xuXHRtYXJnaW4tdG9wOiAtMTBweDtcblx0bWFyZ2luLXJpZ2h0OiAyNXB4O1xuXHRoZWlnaHQ6IDIwcHg7XG5cdHdpZHRoOiAyMHB4O1xuXHRib3JkZXItcmFkaXVzOiAxMGVtO1xuXHRvcGFjaXR5OiAwLjU7XG59XG5cbi5jaG9pY2VzW2RhdGEtdHlwZSo9XCJzZWxlY3Qtb25lXCJdIC5jaG9pY2VzX19idXR0b246aG92ZXIsXG4uY2hvaWNlc1tkYXRhLXR5cGUqPVwic2VsZWN0LW9uZVwiXSAuY2hvaWNlc19fYnV0dG9uOmZvY3VzIHtcblx0b3BhY2l0eTogMTtcbn1cblxuLmNob2ljZXNbZGF0YS10eXBlKj1cInNlbGVjdC1vbmVcIl0gLmNob2ljZXNfX2J1dHRvbjpmb2N1cyB7XG5cdGJveC1zaGFkb3c6IDAgMCAwIDJweCAjMDBiY2Q0O1xufVxuXG4uY2hvaWNlc1tkYXRhLXR5cGUqPVwic2VsZWN0LW9uZVwiXTphZnRlciB7XG5cdGNvbnRlbnQ6IFwiXCI7XG5cdGhlaWdodDogMDtcblx0d2lkdGg6IDA7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci1jb2xvcjogIzMzMyB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLXdpZHRoOiA1cHg7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDExLjVweDtcblx0dG9wOiA1MCU7XG5cdG1hcmdpbi10b3A6IC0yLjVweDtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5jaG9pY2VzW2RhdGEtdHlwZSo9XCJzZWxlY3Qtb25lXCJdLmlzLW9wZW46YWZ0ZXIge1xuXHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMzMzM7XG5cdG1hcmdpbi10b3A6IC03LjVweDtcbn1cblxuLmNob2ljZXNbZGF0YS10eXBlKj1cInNlbGVjdC1vbmVcIl1bZGlyPVwicnRsXCJdOmFmdGVyIHtcblx0bGVmdDogMTEuNXB4O1xuXHRyaWdodDogYXV0bztcbn1cblxuLmNob2ljZXNbZGF0YS10eXBlKj1cInNlbGVjdC1vbmVcIl1bZGlyPVwicnRsXCJdIC5jaG9pY2VzX19idXR0b24ge1xuXHRyaWdodDogYXV0bztcblx0bGVmdDogMDtcblx0bWFyZ2luLWxlZnQ6IDI1cHg7XG5cdG1hcmdpbi1yaWdodDogMDtcbn1cblxuLmNob2ljZXNbZGF0YS10eXBlKj1cInNlbGVjdC1tdWx0aXBsZVwiXSAuY2hvaWNlc19faW5uZXIsXG4uY2hvaWNlc1tkYXRhLXR5cGUqPVwidGV4dFwiXSAuY2hvaWNlc19faW5uZXIge1xuXHRjdXJzb3I6IHRleHQ7XG59XG5cbi5jaG9pY2VzW2RhdGEtdHlwZSo9XCJzZWxlY3QtbXVsdGlwbGVcIl0gLmNob2ljZXNfX2J1dHRvbixcbi5jaG9pY2VzW2RhdGEtdHlwZSo9XCJ0ZXh0XCJdIC5jaG9pY2VzX19idXR0b24ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0bWFyZ2luOiAwIC00cHggMCA4cHg7XG5cdHBhZGRpbmctbGVmdDogMTZweDtcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjMDA4ZmExO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9pY29ucy9jcm9zcy5zdmdcIik7XG5cdGJhY2tncm91bmQtc2l6ZTogOHB4O1xuXHR3aWR0aDogOHB4O1xuXHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtZXZlbik7XG5cdG9wYWNpdHk6IDAuNzU7XG59XG5cbi5jaG9pY2VzW2RhdGEtdHlwZSo9XCJzZWxlY3QtbXVsdGlwbGVcIl0gLmNob2ljZXNfX2J1dHRvbjpob3Zlcixcbi5jaG9pY2VzW2RhdGEtdHlwZSo9XCJzZWxlY3QtbXVsdGlwbGVcIl0gLmNob2ljZXNfX2J1dHRvbjpmb2N1cyxcbi5jaG9pY2VzW2RhdGEtdHlwZSo9XCJ0ZXh0XCJdIC5jaG9pY2VzX19idXR0b246aG92ZXIsXG4uY2hvaWNlc1tkYXRhLXR5cGUqPVwidGV4dFwiXSAuY2hvaWNlc19fYnV0dG9uOmZvY3VzIHtcblx0b3BhY2l0eTogMTtcbn1cblxuLmNob2ljZXNfX2lubmVyIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHR3aWR0aDogMTAwJTtcblx0YmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcblx0cGFkZGluZzogNy41cHggNy41cHggMy43NXB4O1xuXHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXHRib3JkZXItcmFkaXVzOiAyLjVweDtcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRtaW4taGVpZ2h0OiA0NHB4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uaXMtZm9jdXNlZCAuY2hvaWNlc19faW5uZXIsXG4uaXMtb3BlbiAuY2hvaWNlc19faW5uZXIge1xuXHRib3JkZXItY29sb3I6ICNiN2I3Yjc7XG59XG5cbi5pcy1vcGVuIC5jaG9pY2VzX19pbm5lciB7XG5cdGJvcmRlci1yYWRpdXM6IDIuNXB4IDIuNXB4IDAgMDtcbn1cblxuLmlzLWZsaXBwZWQuaXMtb3BlbiAuY2hvaWNlc19faW5uZXIge1xuXHRib3JkZXItcmFkaXVzOiAwIDAgMi41cHggMi41cHg7XG59XG5cbi5jaG9pY2VzX19saXN0IHtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nLWxlZnQ6IDA7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5jaG9pY2VzX19saXN0LS1zaW5nbGUge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBhZGRpbmc6IDRweCAxNnB4IDRweCA0cHg7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG5bZGlyPVwicnRsXCJdIC5jaG9pY2VzX19saXN0LS1zaW5nbGUge1xuXHRwYWRkaW5nLXJpZ2h0OiA0cHg7XG5cdHBhZGRpbmctbGVmdDogMTZweDtcbn1cblxuLmNob2ljZXNfX2xpc3QtLXNpbmdsZSAuY2hvaWNlc19faXRlbSB7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4uY2hvaWNlc19fbGlzdC0tbXVsdGlwbGUge1xuXHRkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5jaG9pY2VzX19saXN0LS1tdWx0aXBsZSAuY2hvaWNlc19faXRlbSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0Ym9yZGVyLXJhZGl1czogMjBweDtcblx0cGFkZGluZzogNHB4IDEwcHg7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0bWFyZ2luLXJpZ2h0OiAzLjc1cHg7XG5cdG1hcmdpbi1ib3R0b206IDMuNzVweDtcblx0YmFja2dyb3VuZC1jb2xvcjogIzAwYmNkNDtcblx0Ym9yZGVyOiAxcHggc29saWQgIzAwYTViYjtcblx0Y29sb3I6ICNmZmY7XG5cdHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbn1cblxuLmNob2ljZXNfX2xpc3QtLW11bHRpcGxlIC5jaG9pY2VzX19pdGVtW2RhdGEtZGVsZXRhYmxlXSB7XG5cdHBhZGRpbmctcmlnaHQ6IDVweDtcbn1cblxuW2Rpcj1cInJ0bFwiXSAuY2hvaWNlc19fbGlzdC0tbXVsdGlwbGUgLmNob2ljZXNfX2l0ZW0ge1xuXHRtYXJnaW4tcmlnaHQ6IDA7XG5cdG1hcmdpbi1sZWZ0OiAzLjc1cHg7XG59XG5cbi5jaG9pY2VzX19saXN0LS1tdWx0aXBsZSAuY2hvaWNlc19faXRlbS5pcy1oaWdobGlnaHRlZCB7XG5cdGJhY2tncm91bmQtY29sb3I6ICMwMGE1YmI7XG5cdGJvcmRlcjogMXB4IHNvbGlkICMwMDhmYTE7XG59XG5cbi5pcy1kaXNhYmxlZCAuY2hvaWNlc19fbGlzdC0tbXVsdGlwbGUgLmNob2ljZXNfX2l0ZW0ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjYWFhO1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTE5MTkxO1xufVxuXG4uY2hvaWNlc19fbGlzdC0tZHJvcGRvd24ge1xuXHRkaXNwbGF5OiBub25lO1xuXHR6LWluZGV4OiAxO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiAxMDAlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXHR0b3A6IDEwMCU7XG5cdG1hcmdpbi10b3A6IC0xcHg7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDIuNXB4O1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMi41cHg7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbn1cblxuLmNob2ljZXNfX2xpc3QtLWRyb3Bkb3duLmlzLWFjdGl2ZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uaXMtb3BlbiAuY2hvaWNlc19fbGlzdC0tZHJvcGRvd24ge1xuXHRib3JkZXItY29sb3I6ICNiN2I3Yjc7XG59XG5cbi5pcy1mbGlwcGVkIC5jaG9pY2VzX19saXN0LS1kcm9wZG93biB7XG5cdHRvcDogYXV0bztcblx0Ym90dG9tOiAxMDAlO1xuXHRtYXJnaW4tdG9wOiAwO1xuXHRtYXJnaW4tYm90dG9tOiAtMXB4O1xuXHRib3JkZXItcmFkaXVzOiAwLjI1cmVtIDAuMjVyZW0gMCAwO1xufVxuXG4uY2hvaWNlc19fbGlzdC0tZHJvcGRvd24gLmNob2ljZXNfX2xpc3Qge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1heC1oZWlnaHQ6IDMwMHB4O1xuXHRvdmVyZmxvdzogYXV0bztcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXHR3aWxsLWNoYW5nZTogc2Nyb2xsLXBvc2l0aW9uO1xufVxuXG4uY2hvaWNlc19fbGlzdC0tZHJvcGRvd24gLmNob2ljZXNfX2l0ZW0ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHBhZGRpbmc6IDEwcHg7XG5cdGZvbnQtc2l6ZTogMTRweDtcbn1cblxuW2Rpcj1cInJ0bFwiXSAuY2hvaWNlc19fbGlzdC0tZHJvcGRvd24gLmNob2ljZXNfX2l0ZW0ge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG5cblx0LmNob2ljZXNfX2xpc3QtLWRyb3Bkb3duIC5jaG9pY2VzX19pdGVtLS1zZWxlY3RhYmxlIHtcblx0XHRwYWRkaW5nLXJpZ2h0OiAxMDBweDtcblx0fVxuXG5cdC5jaG9pY2VzX19saXN0LS1kcm9wZG93biAuY2hvaWNlc19faXRlbS0tc2VsZWN0YWJsZTphZnRlciB7XG5cdFx0Y29udGVudDogYXR0cihkYXRhLXNlbGVjdC10ZXh0KTtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDEwcHg7XG5cdFx0dG9wOiA1MCU7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHR9XG5cblx0W2Rpcj1cInJ0bFwiXSAuY2hvaWNlc19fbGlzdC0tZHJvcGRvd24gLmNob2ljZXNfX2l0ZW0tLXNlbGVjdGFibGUge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdHBhZGRpbmctbGVmdDogMTAwcHg7XG5cdFx0cGFkZGluZy1yaWdodDogMTBweDtcblx0fVxuXG5cdFtkaXI9XCJydGxcIl0gLmNob2ljZXNfX2xpc3QtLWRyb3Bkb3duIC5jaG9pY2VzX19pdGVtLS1zZWxlY3RhYmxlOmFmdGVyIHtcblx0XHRyaWdodDogYXV0bztcblx0XHRsZWZ0OiAxMHB4O1xuXHR9XG59XG5cbi5jaG9pY2VzX19saXN0LS1kcm9wZG93biAuY2hvaWNlc19faXRlbS0tc2VsZWN0YWJsZS5pcy1oaWdobGlnaHRlZCB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7XG59XG5cbi5jaG9pY2VzX19saXN0LS1kcm9wZG93biAuY2hvaWNlc19faXRlbS0tc2VsZWN0YWJsZS5pcy1oaWdobGlnaHRlZDphZnRlciB7XG5cdG9wYWNpdHk6IDAuNTtcbn1cblxuLmNob2ljZXNfX2l0ZW0ge1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5jaG9pY2VzX19pdGVtLS1zZWxlY3RhYmxlIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2hvaWNlc19faXRlbS0tZGlzYWJsZWQge1xuXHRjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHRvcGFjaXR5OiAwLjU7XG59XG5cbi5jaG9pY2VzX19oZWFkaW5nIHtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRwYWRkaW5nOiAxMHB4O1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Y3ZjdmNztcblx0Y29sb3I6IGdyYXk7XG59XG5cbi5jaG9pY2VzX19idXR0b24ge1xuXHR0ZXh0LWluZGVudDogLTk5OTlweDtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHQtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG5cdGFwcGVhcmFuY2U6IG5vbmU7XG5cdGJvcmRlcjogMDtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2hvaWNlc19fYnV0dG9uOmZvY3VzIHtcblx0b3V0bGluZTogbm9uZTtcbn1cblxuLmNob2ljZXNfX2lucHV0IHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG5cdGZvbnQtc2l6ZTogMTRweDtcblx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXHRib3JkZXI6IDA7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cdG1heC13aWR0aDogMTAwJTtcblx0cGFkZGluZzogNHB4IDAgNHB4IDJweDtcbn1cblxuLmNob2ljZXNfX2lucHV0OmZvY3VzIHtcblx0b3V0bGluZTogMDtcbn1cblxuW2Rpcj1cInJ0bFwiXSAuY2hvaWNlc19faW5wdXQge1xuXHRwYWRkaW5nLXJpZ2h0OiAycHg7XG5cdHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmNob2ljZXNfX3BsYWNlaG9sZGVyIHtcblx0b3BhY2l0eTogMC41O1xufVxuIiwiLmNob2ljZXNbZGF0YS10eXBlKj1cInNlbGVjdC1tdWx0aXBsZVwiXSAuY2hvaWNlc19fYnV0dG9uLFxuLmNob2ljZXNbZGF0YS10eXBlKj1cInRleHRcIl0gLmNob2ljZXNfX2J1dHRvbiB7XG5cdGJhY2tncm91bmQtc2l6ZTogOXB4O1xuXHRib3JkZXItY29sb3I6IGRhcmtlbih2YXIoLS1jb2xvci1iYy1ibHVlLWxpZ2h0KSwgMC4zKTtcbn1cblxuLmNob2ljZXNfX2xpc3QtLW11bHRpcGxlIC5jaG9pY2VzX19pdGVtIHtcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRwYWRkaW5nOiA0cHggMnB4IDRweCAxMHB4O1xuXHRsaW5lLWhlaWdodDogMjBweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCk7XG5cdGJvcmRlcjogMDtcbn1cblxuLmNob2ljZXNfX2xpc3QtLW11bHRpcGxlIC5jaG9pY2VzX19pdGVtLmlzLWhpZ2hsaWdodGVkIHtcblx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbih2YXIoLS1jb2xvci1iYy1ibHVlLWxpZ2h0KSwgMC4xKTtcblx0Ym9yZGVyOiAwO1xufVxuXG4uYmMtY2hvaWNlcyB7XG5cblx0JltkYXRhLXR5cGUqPVwic2VsZWN0LW9uZVwiXTphZnRlciB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1iYy1ncmV5KSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0XHRib3JkZXItd2lkdGg6IDRweDtcblx0XHRyaWdodDogMTZweDtcblx0fVxuXG5cdC5iYy1zZXR0aW5ncy1zZWN0aW9uX19ib2R5ICZbZGF0YS10eXBlKj1cInNlbGVjdC1vbmVcIl0ge1xuXHRcdG1heC13aWR0aDogNTQwcHg7XG5cdH1cblxuXHQuY2hvaWNlc19faW5uZXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJvcmRlci1mb3JtLWZpZWxkKTtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0bWluLWhlaWdodDogMjBweDtcblx0XHRwYWRkaW5nOiAxMXB4IDEwcHggMTBweDtcblx0fVxuXG5cdCYuaXMtZm9jdXNlZCB7XG5cblx0XHQmW2RhdGEtdHlwZSo9XCJzZWxlY3Qtb25lXCJdOmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYmMtZG9nZXItYmx1ZSkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0fVxuXG5cdFx0LmNob2ljZXNfX2lubmVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYmMtZG9nZXItYmx1ZSk7XG5cdFx0fVxuXHR9XG5cblx0JltkYXRhLXR5cGUqPVwic2VsZWN0LW9uZVwiXSAuY2hvaWNlc19faW5uZXIge1xuXHRcdHBhZGRpbmctYm90dG9tOiA5cHg7XG5cdH1cblxuXHQuY2hvaWNlc19fbGlzdC0tc2luZ2xlIHtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdHBhZGRpbmc6IDAgMjBweCAwIDA7XG5cdH1cblxuXHQuY2hvaWNlc19fbGlzdC0tZHJvcGRvd24ge1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYm9yZGVyLWZvcm0tZmllbGQpO1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdH1cbn1cbiIsIi5kYXNoaWNvbnMtYmlnY29tbWVyY2Uge1xuXG5cdCY6YmVmb3JlIHtcblx0XHRmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktYmlnY29tbWVyY2UtaWNvbnMpO1xuXHRcdGZvbnQtc2l6ZTogMS4wNjNlbTtcblx0fVxufVxuIiwiLmJpZ2NvbW1lcmNlLXNldHRpbmdzLXBhZ2Uge1xuXG5cdCYge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0fVxuXG5cdC5yZWd1bGFyLXRleHQge1xuXHRcdG1heC13aWR0aDogNTQwcHg7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHQuYmlnY29tbWVyY2UtY29ubmVjdGlvbi1zdGF0dXNfX21lc3NhZ2Uge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtc3VjY2Vzcyk7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC1tKTtcblx0XHRmb250LXdlaWdodDogNTAwO1xuXHR9XG5cblx0LmJpZ2NvbW1lcmNlLWNvbm5lY3Rpb24tc3RhdHVzX19tZXNzYWdlLWZhaWxlZCB7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLXJlZCk7XG5cdH1cblxuXHRwIHtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LW0pO1xuXG5cdFx0Ji5kZXNjcmlwdGlvbiB7XG5cdFx0XHRmb250LXN0eWxlOiBub3JtYWw7XG5cdFx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHRcdH1cblx0fVxuXG5cdC5iYy1zZXR0aW5ncy1mb3JtIGlucHV0W3R5cGU9c3VibWl0XSxcblx0LmJjLWFkbWluLWJ0biB7XG5cdFx0QG1peGluIGJ1dHRvbi1waWxsO1xuXHR9XG5cblx0LmJjLWFkbWluLWJ0bi0tb3V0bGluZSB7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtZG9nZXItYmx1ZSk7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWRvZ2VyLWJsdWUpO1xuXG5cdFx0Jjpob3Zlcixcblx0XHQmOmZvY3VzIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJjLWRvZ2VyLWJsdWUpO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1iYy1kb2dlci1ibHVlKTtcblx0XHRcdGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdFx0fVxuXHR9XG59XG5cbi5iaWdjb21tZXJjZV9wcm9kdWN0X3BhZ2VfYmlnY29tbWVyY2Vfd2VsY29tZSxcbi5iaWdjb21tZXJjZV9wcm9kdWN0X3BhZ2VfYmlnY29tbWVyY2VfY29ubmVjdCxcbi5iaWdjb21tZXJjZV9wcm9kdWN0X3BhZ2VfYmlnY29tbWVyY2VfbmV3X2FjY291bnQsXG4uYmlnY29tbWVyY2VfcHJvZHVjdF9wYWdlX2JpZ2NvbW1lcmNlX2FwaV9jcmVkZW50aWFscyxcbi5iaWdjb21tZXJjZV9wcm9kdWN0X3BhZ2VfYmlnY29tbWVyY2VfcGVuZGluZ19hY2NvdW50IHtcblxuXHQjd3B3cmFwIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cGFkZGluZy1ib3R0b206IDIxMHB4O1xuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoXCIuLi9pbWcvYWRtaW4vYmMtYmctZ2VvbWV0cmljLnN2Z1wiKSBuby1yZXBlYXQgYm90dG9tIHJpZ2h0L2NvbnRhaW47XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGhlaWdodDogMjAwcHg7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGJvdHRvbTogLTFweDtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0ei1pbmRleDogMTtcblxuXHRcdFx0QG1lZGlhICgtLXZpZXdwb3J0LXdwYWRtaW4pIHtcblx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIGxlZnQ7XG5cdFx0XHRcdGJvdHRvbTogNDBweDtcblx0XHRcdFx0bGVmdDogMzZweDtcblx0XHRcdFx0cmlnaHQ6IGF1dG87XG5cdFx0XHRcdGhlaWdodDogMjgwcHg7XG5cdFx0XHRcdHdpZHRoOiA2NSU7XG5cdFx0XHR9XG5cblx0XHRcdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0XHRcdGxlZnQ6IDE2MHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCN3cGNvbnRlbnQge1xuXHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHotaW5kZXg6IDI7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtd3BhZG1pbikge1xuXHRcdFx0cGFkZGluZy1yaWdodDogMjBweDtcblx0XHR9XG5cdH1cblxuXHQjd3Bmb290ZXIge1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0XHR6LWluZGV4OiAyO1xuXHR9XG59XG5cbi5iaWdjb21tZXJjZV9wcm9kdWN0X3BhZ2VfYmlnY29tbWVyY2VfcGVuZGluZ19hY2NvdW50ICN3cHdyYXAge1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmJjLXNldHRpbmdzLWZvcm0ge1xuXG5cdC5mb3JtLXRhYmxlIHtcblx0XHRtYXJnaW4tYm90dG9tOiA0cHg7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0fVxuXG5cdGZvcm0sXG5cdC5mb3JtLXRhYmxlIHRoLFxuXHQuZm9ybS13cmFwIGxhYmVsIHtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHR9XG5cblx0LmZvcm0tdGFibGUgdGgsXG5cdC5mb3JtLXdyYXAgbGFiZWwge1xuXHRcdGZvbnQtc2l6ZTogMS4wNzFlbTtcblx0fVxuXG5cdC5mb3JtLXRhYmxlIHRoIHtcblx0XHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtcmVndWxhcik7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtd3BhZG1pbikge1xuXHRcdFx0d2lkdGg6IDE3MHB4O1xuXHRcdH1cblx0fVxuXG5cdHNlbGVjdCxcblx0aW5wdXQge1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci1mb3JtLWZpZWxkKTtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHR9XG5cblx0c2VsZWN0IHtcblx0XHRwYWRkaW5nOiAxMnB4O1xuXHRcdGhlaWdodDogNDVweDtcblx0XHRsaW5lLWhlaWdodDogNDVweDtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHR9XG5cblx0aW5wdXRbdHlwZT10ZXh0XSxcblx0aW5wdXRbdHlwZT1wYXNzd29yZF0sXG5cdGlucHV0W3R5cGU9dXJsXSxcblx0aW5wdXRbdHlwZT1udW1iZXJdIHtcblx0XHRoZWlnaHQ6IDQwcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDQwcHg7XG5cdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0cGFkZGluZy1ib3R0b206IDA7XG5cdH1cblxuXHRpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0d2lkdGg6IDIwcHg7XG5cdFx0aGVpZ2h0OiAyMHB4O1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0bWFyZ2luOiAtMXB4IDAgMCAtM3B4O1xuXHRcdFx0Zm9udC1zaXplOiAyMXB4O1xuXHRcdFx0d2lkdGg6IDIwcHg7XG5cdFx0XHRoZWlnaHQ6IDIwcHg7XG5cdFx0fVxuXHR9XG5cblx0LmJ1dHRvbiB7XG5cdFx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudCk7XG5cdFx0cGFkZGluZzogOHB4IDEycHg7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXHR9XG5cblx0LnNlY29uZGFyeSB7XG5cdFx0Ym9yZGVyLXJhZGl1czogNnB4O1xuXG5cdFx0Jjpob3Zlcixcblx0XHQmOmZvY3VzIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZGZkZmQ7XG5cdFx0fVxuXHR9XG5cblx0LmJ1dHRvbi1wcmltYXJ5IHtcblx0XHRib3gtc2hhZG93OiAtMXB4IDFweCAycHggdmFyKC0tY29sb3ItYmxhY2stYS00MCk7XG5cdH1cbn1cblxuLmJjLXNldHRpbmdzLWZpZWxkLS1yZXF1aXJlZCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLXJlZCk7XG5cdG1hcmdpbi1sZWZ0OiA0cHg7XG59XG4iLCIvKiBTZXQgYmFzZSBmb250IHNpemUgZm9yIEJDIHBsdWdpbiBhZG1pbiB2aWV3cyAqL1xuLmJjLXNldHRpbmdzLWJpZ2NvbW1lcmNlIHtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtYmFzZSk7XG59XG5cbi5iYy1zZXR0aW5ncy1oZWFkZXIge1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LXdyYXA6IHdyYXA7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGxvc3QtdXRpbGl0eTogY2xlYXJmaXg7XG5cdG1hcmdpbi1ib3R0b206IDI4cHg7XG5cdHBhZGRpbmc6IDAgMCA0MHB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdH1cblxuXHQmOmJlZm9yZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJvdHRvbTogMDtcblx0XHRyaWdodDogLTIwcHg7XG5cdFx0aGVpZ2h0OiAxcHg7XG5cdFx0d2lkdGg6IGNhbGMoMTAwJSArIDQycHgpO1xuXHR9XG5cblx0JjphZnRlciB7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKFwiLi4vaW1nL2FkbWluL2JjLWJnLWdlb21ldHJpYy5zdmdcIikgbm8tcmVwZWF0IGJvdHRvbSByaWdodC9jb250YWluO1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRoZWlnaHQ6IDIyMHB4O1xuXHRcdHdpZHRoOiA3NSU7XG5cdFx0Ym90dG9tOiAxcHg7XG5cdFx0cmlnaHQ6IC0yMHB4O1xuXHRcdHotaW5kZXg6IDE7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRoZWlnaHQ6IDIyMHB4O1xuXHRcdFx0d2lkdGg6IDUwJTtcblx0XHR9XG5cdH1cblxuXHQubm90aWNlIHtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGxvc3QtY29sdW1uOiAxMi8xMjtcblx0fVxufVxuXG4uYmMtc2V0dGluZ3MtaGVhZGVyX193ZWxjb21lIHtcblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0bG9zdC1vZmZzZXQ6IDAuNS8xMjtcblx0fVxufVxuXG4uYmMtc2V0dGluZ3MtaGVhZGVyX193ZWxjb21lLFxuLmJjLXNldHRpbmdzLWhlYWRlcl9fY3RhIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAyO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRsb3N0LWNvbHVtbjogNS8xMjtcblx0XHRtYXgtd2lkdGg6IDQ2MHB4O1xuXHR9XG59XG5cbi5iYy1zZXR0aW5ncy1oZWFkZXJfX2N0YSB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW9mZi13aGl0ZSk7XG5cdG1hcmdpbi10b3A6IDMwcHg7XG5cdHBhZGRpbmc6IDIwcHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0cGFkZGluZzogNDBweDtcblx0fVxufVxuXG4uYmlnY29tbWVyY2VfcHJvZHVjdF9wYWdlX2JpZ2NvbW1lcmNlIHtcblxuXHQuYmMtc2V0dGluZ3MtaGVhZGVyX193ZWxjb21lLXRpdGxlIHtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHRcdGZvbnQtc2l6ZTogMmVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjAxO1xuXHRcdG1hcmdpbi1ib3R0b206IDE4cHg7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRmb250LXNpemU6IDNlbTtcblx0XHR9XG5cdH1cbn1cblxuLmJjLXNldHRpbmdzLWhlYWRlcl9fd2VsY29tZS10ZXh0IHtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC1sZyk7XG59XG5cbi5iYy1zZXR0aW5ncy1oZWFkZXJfX2N0YS10aXRsZSB7XG5cdGZvbnQtc2l6ZTogMS4zNzVlbTtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWV2ZW4pO1xuXHRtYXJnaW46IDAgMCAxNHB4O1xufVxuXG4uYmMtc2V0dGluZ3MtaGVhZGVyX19jdGEtdGV4dCB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQpO1xuXHRtYXJnaW46IDA7XG59XG5cbi5iYy1zZXR0aW5ncy1oZWFkZXJfX2N0YS1idG4ge1xuXHRtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4uYmlnY29tbWVyY2VfcHJvZHVjdF9wYWdlX2JpZ2NvbW1lcmNlIHtcblxuXHRzZWxlY3RbbmFtZT1cImJpZ2NvbW1lcmNlX2ltcG9ydF9mcmVxdWVuY3lcIl0ge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdG1hcmdpbi1yaWdodDogMTRweDtcblx0XHR3aWR0aDogYXV0bztcblx0fVxufVxuXG4uYmMtc2V0dGluZ3Mtc2VjdGlvbiB7XG5cblx0KyAuYmMtc2V0dGluZ3Mtc2VjdGlvbiB7XG5cdFx0bWFyZ2luLXRvcDogMjBweDtcblx0fVxufVxuXG4uYmMtc2V0dGluZ3Mtc2VjdGlvbl9faGVhZGVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRwYWRkaW5nOiAyMHB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXHR3aWR0aDogMTAwJTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzIHtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJjLWRvZ2VyLWJsdWUpO1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cblx0XHQuaWNvbi1iYy1hcnJvdy1zb2xpZCB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtZG9nZXItYmx1ZSk7XG5cdFx0fVxuXHR9XG5cblx0Lmljb24tYmMtYXJyb3ctc29saWQge1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtZ3JleSk7XG5cdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cdH1cblxuXHQuYmMtaWNvbi0tc2V0dGluZ3Mge1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1kb2dlci1ibHVlKTtcblx0XHRmb250LXNpemU6IDE3cHg7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG5cblx0Lmljb24tYmMtaW1wb3J0IHtcblx0XHRmb250LXNpemU6IDEwcHg7XG5cdH1cblxuXHQuYmMtc2V0dGluZ3Mtc2VjdGlvbi0tb3BlbiAmIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iZ2QtcGFuZWwtYWN0aXZlKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJnZC1wYW5lbC1hY3RpdmUpO1xuXHRcdGJveC1zaGFkb3c6IDAgM3B4IDAgMCAjZWVmMGYyO1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdH1cblxuXHQuYmMtc2V0dGluZ3Mtc2VjdGlvbi0tb3BlbiAmIC5pY29uLWJjLWFycm93LXNvbGlkIHtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtZ3JleSk7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcblx0fVxuXG5cdC5iYy1zZXR0aW5ncy1zZWN0aW9uLS1vcGVuICYgLmJjLWljb24tLXNldHRpbmdzIHtcblx0XHRjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHR9XG59XG5cbi5iYy1zZXR0aW5ncy1zZWN0aW9uX190aXRsZSB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQteGwpO1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtcmVndWxhcik7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zKTtcblx0bWFyZ2luOiAwIDAgMCAzMHB4O1xuXG5cdC5iYy1zZXR0aW5ncy1zZWN0aW9uLS1vcGVuICYge1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdH1cbn1cblxuLmJjLXNldHRpbmdzLXNlY3Rpb25fX3RhcmdldCB7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRib3JkZXItdG9wOiAwO1xuXHRtYXgtaGVpZ2h0OiAwO1xuXHRvcGFjaXR5OiAwO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uYmMtc2V0dGluZ3Mtc2VjdGlvbl9fYm9keSB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWJsYWNrKTtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC1tKTtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXMpO1xuXHRwYWRkaW5nOiAyMHB4IDIwcHggNDBweDtcblxuXHQ+IHA6Zmlyc3QtY2hpbGQge1xuXHRcdG1hcmdpbi10b3A6IDE4cHg7XG5cdFx0cGFkZGluZy10b3A6IDA7XG5cdH1cblxuXHRwIHtcblx0XHRmb250LXNpemU6IDFlbTtcblx0fVxuXG5cdC5mb3JtLXRhYmxlIHtcblxuXHRcdHAuZGVzY3JpcHRpb24ge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNvbG9yLWdyZXktZGFyayk7XG5cdFx0XHRmb250LXNpemU6IDAuODU3ZW07XG5cdFx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1zZXR0aW5ncy1zZWN0aW9uLS1iaWdjb21tZXJjZV9kaWFnbm9zdGljcyB7XG5cblx0LmJjLWRpYWdub3N0aWNzLWRhdGFfX2Rlc2NyaXB0aW9uIHtcblx0XHRtYXJnaW46IDEwcHggMDtcblx0fVxuXG5cdC5iYy1hZG1pbi1kaWFnbm9zdGljcy1sb2FkZXIge1xuXHRcdGxpbmUtaGVpZ2h0OiAyMHB4O1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0bWFyZ2luOiAyMHB4IDA7XG5cdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdCYuaXMtYWN0aXZlIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0fVxuXG5cdC5zcGlubmVyLmJjLWFkbWluLXNwaW5uZXIge1xuXHRcdGZsb2F0OiBub25lO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IC0zcHg7XG5cdH1cbn1cblxuLmJjLWRpYWdub3N0aWNzLWRhdGEtLXN1Y2Nlc3Mge1xuXG5cdC53cmFwICYge1xuXHRcdHBhZGRpbmc6IDlweCAwO1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdH1cblxuXHQuYmMtaWNvbiB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IDJweDtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtZ3JlZW4pO1xuXHR9XG59XG5cbi5iYy1kaWFnbm9zdGljcy1kYXRhLS1lcnJvciB7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLXJlZCk7XG5cdHBhZGRpbmc6IDEwcHg7XG5cblx0LmJjLWFkbWluLWJ0biB7XG5cdFx0bWFyZ2luLXRvcDogMjBweDtcblx0fVxufVxuXG4uYmMtZGlhZ25vc3RpY3MtZGF0YSxcbi5iYy1zZXRpbmdzLWRpYWdub3N0aWNzLXdyYXBwZXIge1xuXHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRwYWRkaW5nOiAyMHB4IDA7XG59XG5cbi5iYy1kaWFnbm9zdGljcy1kYXRhX19zZWN0aW9uIHtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWNvbmNyZXRlKTtcblx0bWFyZ2luLXRvcDogMTBweDtcblx0cGFkZGluZzogMjBweCAwO1xuXG5cdC5iYy1hZG1pbi1idG4ge1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdH1cbn1cblxuLmJjLWRpYWdub3N0aWNzLWRhdGFfX3NlY3Rpb24taGVhZGVyIHtcblx0bWFyZ2luLXRvcDogMDtcbn1cblxuLmJjLWRpYWdub3N0aWNzLWRhdGFfX21ldGEge1xuXHRwYWRkaW5nOiA0cHggMDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtd3BhZG1pbikge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0fVxufVxuXG4uYmMtZGlhZ25vc3RpY3MtZGF0YV9fbWV0YS1sYWJlbCB7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtd3BhZG1pbikge1xuXHRcdGZsZXg6IDAgMCAxNzBweDtcblx0XHRwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuXHR9XG59XG5cbi5iYy1kaWFnbm9zdGljcy1kYXRhX19tZXRhLXZhbHVlIHtcblx0QG1lZGlhICgtLXZpZXdwb3J0LXdwYWRtaW4pIHtcblx0XHRmbGV4OiAxO1xuXHRcdHBhZGRpbmctbGVmdDogMjBweDtcblx0fVxufVxuXG4uYmMtZGlhZ25vc3RpY3MtZGF0YV9fbWV0YS1pbXBvcnRsb2dzIHtcblxuXHQuYmMtZGlhZ25vc3RpY3MtZGF0YV9fbWV0YS12YWx1ZSB7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtY29uY3JldGUpO1xuXHRcdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdFx0b3ZlcmZsb3c6IHNjcm9sbDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0aGVpZ2h0OiAyMDBweDtcblx0XHR3aWR0aDogYXV0bztcblx0fVxuXG5cdC5iYy1kaWFnbm9zdGljcy1kYXRhX19tZXRhLXZhbHVlLWNvbnRhaW5lciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogNXB4O1xuXHRcdGxlZnQ6IDE4cHg7XG5cblx0XHRwcmUge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdH1cblx0fVxufVxuXG4uYmMtc2V0dGluZ3MtZm9ybS0tYmlnY29tbWVyY2Uge1xuXG5cdC5iYy1zZXR0aW5ncy1zYXZlIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRtYXJnaW4tdG9wOiAzMHB4O1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LXdwYWRtaW4pIHtcblx0XHRcdGJveC1zaGFkb3c6IDAgM3B4IDAgMCAjZWVmMGYyO1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRcdHRvcDogMzFweDtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0cGFkZGluZzogMTBweCAyMHB4O1xuXHRcdFx0d2lkdGg6IGNhbGMoMTAwJSAtIDM2cHgpO1xuXHRcdFx0ei1pbmRleDogMztcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0d2lkdGg6IGNhbGMoMTAwJSAtIDE2MHB4KTtcblx0XHR9XG5cdH1cblxuXHQuYmMtc2V0dGluZ3Mtc2F2ZV9fbG9nbyB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC13cGFkbWluKSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cdH1cblxuXHRwLnN1Ym1pdCB7XG5cdFx0cGFkZGluZzogMDtcblx0XHRtYXJnaW46IDA7XG5cdH1cbn1cblxuLmJpZ2NvbW1lcmNlX3Byb2R1Y3RfcGFnZV9iaWdjb21tZXJjZSAjd3Bib2R5LWNvbnRlbnQge1xuXHRtYXJnaW4tdG9wOiAxMHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC13cGFkbWluKSB7XG5cdFx0bWFyZ2luLXRvcDogODZweDtcblx0fVxufVxuIiwiLmJjLXdlbGNvbWUge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRsb3N0LXV0aWxpdHk6IGNsZWFyZml4O1xuXHRtYXJnaW4tdG9wOiAxMHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0XHRtYXJnaW4tdG9wOiAzMHB4O1xuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0bWFyZ2luLXRvcDogMTEwcHg7XG5cdH1cbn1cblxuLmJjLXdlbGNvbWVfX2NvbnRlbnQsXG4uYmMtd2VsY29tZV9fbm90aWNlcyB7XG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRsb3N0LWNvbHVtbjogNi8xMjtcblx0fVxuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1sYXJnZSkge1xuXHRcdGxvc3QtY29sdW1uOiA1LzEyO1xuXHR9XG59XG5cbi5iYy13ZWxjb21lX19jb250ZW50IHtcblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0bG9zdC1vZmZzZXQ6IDEvMTI7XG5cdH1cbn1cblxuLmJjLXdlbGNvbWVfX2NvbnRlbnQtd3JhcCB7XG5cdEBtZWRpYSAoLS12aWV3cG9ydC1sYXJnZSkge1xuXHRcdG1hcmdpbi1yaWdodDogMTIuNSU7XG5cdFx0bWF4LXdpZHRoOiA0MTBweDtcblx0fVxufVxuXG4uYmMtd2VsY29tZV9fY29udGVudCB7XG5cblx0Ji10aXRsZSB7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWJsYWNrKTtcblx0XHRmb250LXNpemU6IDJlbTtcblx0XHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtcmVndWxhcik7XG5cdFx0bGluZS1oZWlnaHQ6IDEuMjU7XG5cdFx0bWFyZ2luOiAxOHB4IDAgMjJweDtcblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRcdGZvbnQtc2l6ZTogM2VtO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuMTtcblx0XHR9XG5cdH1cblxuXHRwIHtcblx0XHRmb250LXNpemU6IDAuOTM4ZW07XG5cdFx0bGluZS1oZWlnaHQ6IDEuNDQ7XG5cdFx0bWFyZ2luOiAwO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC1sZyk7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy13ZWxjb21lX19idG4tZ3JvdXAge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LXdyYXA6IHdyYXA7XG5cblx0LmJjLWFkbWluLWJ0biB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblxuXHRcdCY6bm90KDpsYXN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cdFx0fVxuXHR9XG5cblx0LmJjLXdlbGNvbWVfX2NvbnRlbnQtd3JhcCArICYge1xuXHRcdG1hcmdpbi10b3A6IDQwcHg7XG5cdH1cblxuXHQuYmlnY29tbWVyY2VfcHJvZHVjdF9wYWdlX2JpZ2NvbW1lcmNlX3dlbGNvbWUgJiAuYmMtYWRtaW4tYnRuLS1vdXRsaW5lIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cblx0XHQmOmhvdmVyLFxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtZG9nZXItYmx1ZSk7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy13ZWxjb21lX19hbHQtYWN0aW9ucyB7XG5cdG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi5iYy13ZWxjb21lX19ub3RpY2Uge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1vZmYtd2hpdGUpO1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRwYWRkaW5nOiAzNnB4IDMwcHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0cGFkZGluZy1yaWdodDogMTIuNSU7XG5cdH1cbn1cblxuLmJjLXdlbGNvbWVfX25vdGljZSB7XG5cblx0Ji10aXRsZSB7XG5cdFx0Zm9udC1zaXplOiAxLjM3NWVtO1xuXHRcdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjMyO1xuXHRcdG1hcmdpbjogMDtcblxuXHRcdCsgcCB7XG5cdFx0XHRtYXJnaW4tdG9wOiAycHg7XG5cdFx0fVxuXHR9XG5cblx0cCB7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudCk7XG5cdFx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO1xuXHR9XG59XG4iLCIuYmMtc2V0dGluZ3MtYmlnY29tbWVyY2VfY29ubmVjdCxcbi5iYy1zZXR0aW5ncy1iaWdjb21tZXJjZV9uZXdfYWNjb3VudCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGxvc3QtdXRpbGl0eTogY2xlYXJmaXg7XG59XG5cbi5iYy1jb25uZWN0X19oZWFkZXIsXG4uYmMtbmV3LWFjY291bnRfX2hlYWRlcixcbi5iYy1hcGktY3JlZGVudGlhbHNfX2hlYWRlcixcbi5iYy1zZXR0aW5ncy1mb3JtLS1iaWdjb21tZXJjZV9jb25uZWN0LFxuLmJjLXNldHRpbmdzLWZvcm0tLWJpZ2NvbW1lcmNlX25ld19hY2NvdW50LFxuLmJjLXdlbGNvbWVfX2FjY291bnQtY29ubmVjdGlvbixcbi5iYy1zZXR0aW5ncy1mb3JtLS1iaWdjb21tZXJjZV9jaGFubmVsLFxuLmJjLXNldHRpbmdzLWZvcm0tLWJpZ2NvbW1lcmNlX2FwaV9jcmVkZW50aWFscyB7XG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRsb3N0LWNvbHVtbjogMTEvMTI7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRsb3N0LW9mZnNldDogMS8xMjtcblx0fVxufVxuXG4uYmMtc2V0dGluZ3MtZm9ybS0tYmlnY29tbWVyY2VfY29ubmVjdCxcbi5iYy1zZXR0aW5ncy1mb3JtLS1iaWdjb21tZXJjZV9uZXdfYWNjb3VudCxcbi5iYy13ZWxjb21lX19hY2NvdW50LWNvbm5lY3Rpb24sXG4uYmMtc2V0dGluZ3MtZm9ybS0tYmlnY29tbWVyY2VfY2hhbm5lbCxcbi5iYy1zZXR0aW5ncy1mb3JtLS1iaWdjb21tZXJjZV9hcGlfY3JlZGVudGlhbHMge1xuXHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRsb3N0LWNvbHVtbjogOS8xMjtcblx0fVxufVxuXG4uYmMtY29ubmVjdF9faGVhZGVyLFxuLmJjLW5ldy1hY2NvdW50X19oZWFkZXIsXG4uYmMtYXBpLWNyZWRlbnRpYWxzX19oZWFkZXIge1xuXHRtYXJnaW46IDEwcHggMCAzMHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRsb3N0LWNvbHVtbjogOS8xMjtcblx0XHRtYXJnaW46IDMwcHggMCA1MHB4O1xuXHRcdG1heC13aWR0aDogNjIwcHg7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRtYXJnaW4tdG9wOiA2MHB4O1xuXHR9XG59XG5cbi5iYy1zZXR0aW5ncyAuYmMtc2V0dGluZ3MtY29ubmVjdF9fdGl0bGUge1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHRmb250LXNpemU6IDJlbTtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpO1xuXHRsaW5lLWhlaWdodDogMS4yNTtcblx0bWFyZ2luOiAxOHB4IDAgMDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0Zm9udC1zaXplOiAzZW07XG5cdFx0bGluZS1oZWlnaHQ6IDEuMTtcblx0fVxufVxuXG4uYmMtY29ubmVjdC1zcGlubmVyIHtcblx0ZmxvYXQ6IG5vbmU7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdG1hcmdpbjogMCAxMHB4IDAgMDtcbn1cblxuLmJjLWFjY291bnQtY29ubmVjdGlvbi1yZXNwb25zZSB7XG5cdHBhZGRpbmc6IDIwcHg7XG5cdGZvbnQtc2l6ZTogMC45MzhlbTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWJsdWUtbGlnaHQpO1xuXG5cdCYtLWVycm9yIHtcblx0XHRib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tY29sb3ItYmMtcmVkKTtcblx0fVxufVxuXG4uYmMtYWNjb3VudC1jb25uZWN0aW9uX19lcnJvci10aXRsZSB7XG5cdG1hcmdpbi10b3A6IDA7XG59XG5cbi5iYy1hY2NvdW50LWNvbm5lY3Rpb25fX2Vycm9yLWNvZGUge1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50KTtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXG5cdGNvZGUge1xuXHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdH1cbn1cblxuLmJjLWFjY291bnQtY29ubmVjdGlvbl9fZXJyb3ItbWVzc2FnZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW4tdG9wOiA0cHg7XG5cdGZvbnQtc2l6ZTogMC45MzhlbTtcbn1cbiIsIi5iaWdjb21tZXJjZS1ub3RpY2Uge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHBhZGRpbmc6IDEwcHg7XG5cblx0LndwLWFkbWluICYge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0fVxuXG5cdC5iYy1zZXR0aW5ncy1iaWdjb21tZXJjZSAmIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1vZmYtd2hpdGUpO1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cblx0XHQmOm50aC1jaGlsZCgyKSB7XG5cdFx0XHRtYXJnaW4tdG9wOiAtMjBweDtcblx0XHR9XG5cdH1cblxuXHQuYmlnY29tbWVyY2Utbm90aWNlX19saXN0IHtcblx0XHRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG5cdFx0bWFyZ2luLWxlZnQ6IDIwcHg7XG5cblx0XHQuYmlnY29tbWVyY2Utbm90aWNlX19saXN0LWl0ZW0ge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogOHB4O1xuXHRcdH1cblx0fVxufVxuXG4uYmlnY29tbWVyY2Utbm90aWNlX19oZWFkaW5nIHtcblx0bWFyZ2luLXRvcDogMC41ZW07XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdHBhZGRpbmctcmlnaHQ6IDEzMHB4O1xuXHR9XG59XG5cbnAuYmlnY29tbWVyY2Utbm90aWNlX19yZWZyZXNoIHtcblx0bWFyZ2luOiAwO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAyMHB4O1xuXHRcdHJpZ2h0OiAyMHB4O1xuXHR9XG59XG5cbi5iaWdjb21tZXJjZS1ub3RpY2VfX3JlZnJlc2gtYnV0dG9uIHtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXhzKTtcblx0bGluZS1oZWlnaHQ6IDEuMTU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0bGV0dGVyLXNwYWNpbmc6IDFweDtcblxuXHRpIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQtbGcpO1xuXHRcdGxpbmUtaGVpZ2h0OiAwLjc4O1xuXHR9XG59XG5cbi5iaWdjb21tZXJjZS1ub3RpY2VfX2ltcG9ydC1zdGF0dXMge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IHdyYXA7XG5cdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHRjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcblx0dHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyNTBtcyBlYXNlO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC13cGFkbWluKSB7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdH1cblxuXHQud3AtYWRtaW4gJiB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtZG9nZXItYmx1ZSk7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdHBhZGRpbmc6IDIwcHg7XG5cdH1cblxuXHQmLmJpZ2NvbW1lcmNlLW5vdGljZV9faW1wb3J0LXN0YXR1cy0tc3VjY2VzcyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtZ3JlZW4pO1xuXHRcdGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHR9XG5cblx0Ji5iaWdjb21tZXJjZS1ub3RpY2VfX2ltcG9ydC1zdGF0dXMtLWVycm9yIHtcblx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1yZWQpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHR9XG59XG5cbi5pbXBvcnQtc3RhdHVzIHtcblx0ZmxleDogMTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LXdwYWRtaW4pIHtcblx0XHRmbGV4OiAwIDEgNTAlO1xuXHR9XG5cblx0LmJjLWljb24sXG5cdC5kYXNoaWNvbnMge1xuXHRcdGZsZXg6IDAgMCBhdXRvO1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRsaW5lLWhlaWdodDogMS41O1xuXHRcdG1hcmdpbi1yaWdodDogNHB4O1xuXHRcdG1hcmdpbi10b3A6IDNweDtcblx0fVxuXG5cdC5kYXNoaWNvbnMtd2FybmluZyB7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLXJlZCk7XG5cdFx0Zm9udC1zaXplOiAyMXB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjE7XG5cdH1cblxuXHRwLmJjLWltcG9ydC1zdGF0dXMtbWVzc2FnZSB7XG5cdFx0ZmxleDogMTtcblx0XHRtYXJnaW46IDA7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHR9XG5cblx0LmJpZ2NvbW1lcmNlLW5vdGljZV9faW1wb3J0LXN0YXR1cy0tc3VjY2VzcyAmIHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC13cGFkbWluKSB7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdFx0fVxuXG5cdFx0cC5iYy1pbXBvcnQtc3RhdHVzLW1lc3NhZ2Uge1xuXHRcdFx0ZmxleDogMCAwIGF1dG87XG5cdFx0fVxuXHR9XG5cblx0Ji5pbXBvcnQtc3RhdHVzLXByZXZpb3VzIHtcblxuXHRcdHAuYmMtaW1wb3J0LXN0YXR1cy1tZXNzYWdlIHtcblx0XHRcdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0XHR9XG5cdH1cbn1cblxuLmJjLWltcG9ydC1wcm9ncmVzcy1iYXJfX3dyYXBwZXIge1xuXHRmbGV4OiAwIDAgMTAwJTtcblx0bGluZS1oZWlnaHQ6IDEuNTtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRoZWlnaHQ6IDIwcHg7XG5cdG1hcmdpbi10b3A6IDIwcHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LXdwYWRtaW4pIHtcblx0XHRmbGV4OiAwIDEgNTAlO1xuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0fVxuXG5cdC5idXR0b24ge1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdGJvcmRlcjogMDtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1vcGFjaXR5KTtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0XHRvcGFjaXR5OiAwLjc7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1pbXBvcnQtcHJvZ3Jlc3MtY291bnQge1xuXHRmbGV4OiAwIDAgYXV0bztcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdHBhZGRpbmctcmlnaHQ6IDIwcHg7XG59XG5cbi5iYy1pbXBvcnQtcHJvZ3Jlc3MtYmFyIHtcblx0ZmxleDogMCAxIDIyMHB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGhlaWdodDogMjBweDtcblx0Ym9yZGVyLXJhZGl1czogMTBweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmJjLWltcG9ydC1wcm9ncmVzcy1iYXJfX21hc2sge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogLTEwMCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJjLWJsYWNrKTtcblx0Ym9yZGVyLXJhZGl1czogMTBweDtcblx0dHJhbnNpdGlvbjogbGVmdCAwLjI1cyBlYXNlO1xufVxuXG4uYmMtaW1wb3J0LXByb2dyZXNzLWJhcl9fYmcge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG59XG5cbi5iYy1pbXBvcnQtcHJvZ3Jlc3MtYmFyX19wZXJjZW50IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogOHB4O1xuXHR0b3A6IDUwJTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRmb250LXNpemU6IDEwcHg7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWRvZ2VyLWJsdWUpO1xuXHR0ZXh0LXNoYWRvdzogMCAwIDFweCByZ2JhKDI1MCwgMjUwLCAyNTAsIDAuNSk7XG59XG5cbiIsIi5iYy1zaG9ydGNvZGUtdWlfX292ZXJsYXkge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogMDtcblx0cmlnaHQ6IDA7XG5cdGhlaWdodDogMTAwdmg7XG5cdHdpZHRoOiAxMDB2dztcblx0YmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmxhY2stYS03MCk7XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3dyYXBwZXIge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogMDtcblx0cmlnaHQ6IDA7XG5cdGhlaWdodDogMTAwdmg7XG5cdHdpZHRoOiAxMDB2dztcblx0ei1pbmRleDogMTU5MDAwO1xuXG5cdCZbYXJpYS1oaWRkZW49J3RydWUnXSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19jbG9zZS1idXR0b24ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAwO1xuXHR0b3A6IDA7XG5cdGZvbnQtc2l6ZTogMjVweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlcjogMDtcblx0cGFkZGluZzogOHB4O1xuXHR6LWluZGV4OiAyMDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRvcGFjaXR5OiAwLjY7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tb3BhY2l0eSk7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19jb250ZW50IHtcblx0YmFja2dyb3VuZDogdmFyKC0tY29sb3Itb2ZmLXdoaXRlKTtcblx0ei1pbmRleDogMTU5OTAxO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiA5MCU7XG5cdGhlaWdodDogOTAlO1xuXHRsZWZ0OiA1JTtcblx0dG9wOiA1JTtcblx0b3ZlcmZsb3cteTogc2Nyb2xsO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcblxuXHQ+IGRpdiB7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG5cblx0KiB7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0fVxuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0fVxufVxuXG4uYmMtc2hvcnRjb2RlLXVpIHtcblx0aGVpZ2h0OiAxMDAlO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHR9XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3NlbGVjdG9ycyB7XG5cdGZsZXg6IDE7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IGF1dG87XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuXHRwYWRkaW5nOiAzMHB4O1xuXHRvdmVyZmxvdy15OiBzY3JvbGw7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRmbGV4OiAwIDEgMjUwcHg7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGJvcmRlci1ib3R0b206IDA7XG5cdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYztcblx0fVxufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0cy13cmFwcGVyIHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdGZsZXg6IDEgMSBhdXRvO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0fVxufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0cyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdGZsZXg6IDAgMSA2MCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0fVxuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1sYXJnZSkge1xuXHRcdGZsZXg6IDAgMSA3MCU7XG5cdH1cbn1cblxuLmJjLXNob3J0Y29kZS11aV9fc2VhcmNoIHtcblx0cGFkZGluZzogNDBweCAzMHB4O1xufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LWdyaWQge1xuXHRvdmVyZmxvdy15OiBzY3JvbGw7XG5cdC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHBhZGRpbmc6IDEwcHggMjBweDtcbn1cblxuLyogU2hvcnRjb2RlIFVJIFNldHRpbmdzIFNpZGViYXIgKi9cbi5iYy1zaG9ydGNvZGUtdWlfX3NldHRpbmdzIHtcblx0aGVpZ2h0OiBhdXRvO1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcblx0YmFja2dyb3VuZDogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGZsZXg6IDAgMSA0MCU7XG5cdFx0Ym9yZGVyLXRvcDogMDtcblx0XHRib3JkZXItbGVmdDogMXB4IHNvbGlkICNjY2M7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRmbGV4OiAwIDEgMzAlO1xuXHR9XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3NldHRpbmdzLWhlYWRlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZmxleDogMCAwIDE1MHB4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19keW5hbWljLWxpc3RpbmctaGVhZGVyLFxuLmJjLXNob3J0Y29kZS11aV9fbWFudWFsLWxpc3RpbmctaGVhZGVyLFxuLmJjLXNob3J0Y29kZS11aV9fZGVmYXVsdC1oZWFkZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRvcGFjaXR5OiAwO1xuXHR6LWluZGV4OiAtMTtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cdHBhZGRpbmc6IDIwcHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0cGFkZGluZzogMzBweDtcblx0fVxuXG5cdCYuYWN0aXZlIHtcblx0XHR6LWluZGV4OiAxO1xuXHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19kZWZhdWx0LWhlYWRlciB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQtcyk7XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3NlbGVjdGlvbnMge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGZsZXg6IDAgMSA0MCU7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19vdmVyZmxvdy1tYXNrIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRoZWlnaHQ6IDY1cHg7XG5cdGxlZnQ6IDA7XG5cdGJvdHRvbTogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHRyYW5zcGFyZW50IDMwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgyKSA3MCUpO1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRoZWlnaHQ6IDgwcHg7XG5cdH1cbn1cblxuLmJjLXNob3J0Y29kZS11aV9fc2VsZWN0ZWQtdGVybXMsXG4uYmMtc2hvcnRjb2RlLXVpX19zZWxlY3RlZC1wcm9kdWN0cyB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdG9wYWNpdHk6IDA7XG5cdHotaW5kZXg6IC0xO1xuXHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblxuXHQmLmFjdGl2ZSB7XG5cdFx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHotaW5kZXg6IDE7XG5cdH1cbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcHJvZHVjdHMtbGlzdCxcbi5iYy1zaG9ydGNvZGUtdWlfX3Rlcm1zLWxpc3Qge1xuXHRvdmVyZmxvdy15OiBzY3JvbGw7XG5cdC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblx0aGVpZ2h0OiAzMDBweDtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAyMHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1sYXJnZSkge1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRwYWRkaW5nOiAzMHB4O1xuXHR9XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3RzLWxpc3Qge1xuXHRoZWlnaHQ6IDEwMCU7XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3Rlcm1zLWxpc3QtaXRlbSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRwYWRkaW5nOiA0cHggMnB4IDRweCAxMHB4O1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXhzKTtcblx0bGluZS1oZWlnaHQ6IDEuNjc7XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdG1hcmdpbi1yaWdodDogNHB4O1xuXHRtYXJnaW4tYm90dG9tOiA0cHg7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1ibHVlLWxpZ2h0KTtcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWJsYWNrKTtcblx0d29yZC1icmVhazogYnJlYWstYWxsO1xuXG5cdGJ1dHRvbiB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlcjogMDtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRsaW5lLWhlaWdodDogMjBweDtcblx0XHRvcGFjaXR5OiAwLjc1O1xuXHRcdHBhZGRpbmc6IDJweCA2cHg7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWJsdWUtbGlnaHQpO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblxuXHRcdGkge1xuXHRcdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdH1cblx0fVxufVxuXG4uYmMtc2hvcnRjb2RlLXVpX190ZXJtcy1saXN0LXRlcm0ge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19hY3Rpb25zIHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogYXV0bztcblx0cGFkZGluZzogMjBweDtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG5cdGZsZXg6IDAgMSA0MCU7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0cGFkZGluZzogMzBweDtcblx0fVxuXG5cdC5idXR0b24ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbjogMzBweCBhdXRvIDA7XG5cdH1cbn1cblxuLmJjLXNob3J0Y29kZS11aV9fZGlzcGxheS1zZXR0aW5ncyB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQtcyk7XG5cblx0JiA+ICoge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdH1cblxuXHQuYmMtc2hvcnRjb2RlLXVpX19maWVsZC1sYWJlbCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWFyZ2luLWJvdHRvbTogNHB4O1xuXHR9XG5cblx0aW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdH1cblxuXHQuYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LW9yZGVyLFxuXHQuYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LW9yZGVyYnkge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cblx0XHQuYmMtc2hvcnRjb2RlLXVpX19maWVsZC1sYWJlbCB7XG5cdFx0XHRmbGV4OiAwIDAgMTAwJTtcblx0XHR9XG5cblx0XHRsYWJlbCB7XG5cdFx0XHRmbGV4OiAwIDAgNTAlO1xuXG5cdFx0XHQuYmMtc2hvcnRjb2RlLXVpX19maWVsZC1sYWJlbCB7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcG9zdHMtcGVyLXBhZ2UtLWNvbnRyb2wge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcG9zdHMtcGVyLXBhZ2UtaWNvbiB7XG5cdGZsZXg6IDAgMCBhdXRvO1xuXHRtYXJnaW4tcmlnaHQ6IDhweDtcbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcG9zdHMtcGVyLXBhZ2Uge1xuXHRmbGV4OiAwIDEgMTQwcHg7XG5cdG1hcmdpbi1yaWdodDogOHB4O1xuXHR3aWR0aDogMTAwJTtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19wb3N0cy1wZXItcGFnZS12YWx1ZSB7XG5cdGZsZXg6IDAgMCA0NHB4O1xuXHRwYWRkaW5nOiA0cHg7XG5cdG1hcmdpbi1yaWdodDogNHB4O1xuXHRib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3Bvc3RzLXBlci1wYWdlLXJlc2V0IHtcblx0ZmxleDogMCAwIDQ0cHg7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0Ym9yZGVyOiAwO1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCk7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyB7XG5cdFx0Y29sb3I6IGRhcmtlbih2YXIoLS1jb2xvci1iYy1ibHVlLWxpZ2h0KSwgMC40KTtcblx0fVxufVxuIiwiLmJjLXNob3J0Y29kZS11aV9fbG9nbyB7XG5cdGJhY2tncm91bmQ6IHVybChcInZhcigtLXBhdGgtaW1hZ2VzKS9hZG1pbi9iaWctY29tbWVyY2UtbG9nby5wbmdcIikgbm8tcmVwZWF0IHRvcCBjZW50ZXI7XG5cdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcblx0d2lkdGg6IDEzMnB4O1xuXHRoZWlnaHQ6IDMwcHg7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW46IDRweCBhdXRvIDMwcHg7XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3F1ZXJ5LWJ1aWxkZXItbGlzdCB7XG5cdG1hcmdpbjogMDtcbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcXVlcnktYnVpbGRlci1jaGlsZC1saXN0IHtcblx0cGFkZGluZy1sZWZ0OiAyMHB4O1xuXHRtYXgtaGVpZ2h0OiAwO1xuXHRvcGFjaXR5OiAwO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19xdWVyeS1idWlsZGVyLWxpc3QtaXRlbSB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXMpO1xuXHRwYWRkaW5nOiAxMnB4IDA7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogMTAwJTtcblx0bWFyZ2luLWJvdHRvbTogMDtcblxuXHQuYmMtc2hvcnRjb2RlLXVpX19xdWVyeS1idWlsZGVyLWNoaWxkLWxpc3QgJiB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMDtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcXVlcnktYnVpbGRlci1hbmNob3IsXG4uYmMtc2hvcnRjb2RlLXVpX19xdWVyeS1idWlsZGVyLXRvZ2dsZSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtZ3JleS1tZWRpdW0pO1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXHRwYWRkaW5nOiA0cHggMDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMge1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ibGFjayk7XG5cdH1cblxuXHQmLmJjcWItaXRlbS1zZWxlY3RlZCB7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWJsdWUtdHVycXVvaXNlKTtcblx0fVxufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19xdWVyeS1idWlsZGVyLWFuY2hvciB7XG5cblx0LmJjLXNob3J0Y29kZS11aV9fcXVlcnktYnVpbGRlci1jaGlsZC1saXN0ICYge1xuXHRcdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1yZWd1bGFyKTtcblxuXHRcdCYuYmNxYi1pdGVtLXNlbGVjdGVkIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ibGFjayk7XG5cblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdHdpZHRoOiAxMHB4O1xuXHRcdFx0XHRoZWlnaHQ6IDEwcHg7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRcdG1hcmdpbi10b3A6IC01cHg7XG5cdFx0XHRcdGxlZnQ6IC0yMHB4O1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYy1ibHVlLXR1cnF1b2lzZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3F1ZXJ5LWJ1aWxkZXItdG9nZ2xlIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHdpZHRoOiAxMDAlO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyOiAwO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cblx0Lmljb24ge1xuXHRcdGZsb2F0OiByaWdodDtcblx0fVxufVxuIiwiLmJjLXNob3J0Y29kZS11aV9fc2VhcmNoZm9ybSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwO1xuXHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdC5jaG9pY2VzIHtcblx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG5cblx0LmNob2ljZXNfX2lubmVyIHtcblx0XHRwYWRkaW5nLXJpZ2h0OiA4OHB4O1xuXHR9XG5cblx0aW5wdXQuY2hvaWNlc19faW5wdXQge1xuXHRcdGZvbnQtc2l6ZTogMC44NTdlbTtcblx0fVxuXG5cdC5iYy1zaG9ydGNvZGUtdWktc2VhcmNoX19zdWJtaXQtYnV0dG9uIHtcblx0XHRmbGV4OiAwIDAgOTVweDtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXhzKTtcblx0XHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtZXZlbik7XG5cdFx0cGFkZGluZzogMTVweCAyOHB4O1xuXHRcdG1hcmdpbi1sZWZ0OiAyMHB4O1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXHRcdG1heC13aWR0aDogOTVweDtcblx0fVxuXG5cdC5iYy1zaG9ydGNvZGUtdWktc2VhcmNoX19jbGVhci1zZWFyY2gge1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlcjogMDtcblx0XHRjb2xvcjogY29ybmZsb3dlcmJsdWU7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC1zKTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDEyNXB4O1xuXHRcdHRvcDogMTJweDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdH1cbn1cblxuaW5wdXQuY2hvaWNlc19faW5wdXQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyOiAwO1xuXHRib3gtc2hhZG93OiBub25lO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXhzKTtcblx0d2lkdGg6IDE0MHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5jaG9pY2VzW2RhdGEtdHlwZSo9XCJzZWxlY3QtbXVsdGlwbGVcIl0gLmNob2ljZXNfX2J1dHRvbixcbi5jaG9pY2VzW2RhdGEtdHlwZSo9XCJ0ZXh0XCJdIC5jaG9pY2VzX19idXR0b24ge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJ2YXIoLS1wYXRoLWltYWdlcykvYWRtaW4vaWNvbnMvY3Jvc3Muc3ZnXCIpO1xufVxuIiwiLmJjLXNob3J0Y29kZS11aV9fcHJvZHVjdCB7XG5cdGxvc3QtY29sdW1uOiAxLzE7XG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdHBhZGRpbmc6IDEwcHg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtc21hbGwpIHtcblx0XHRsb3N0LWNvbHVtbjogMS8yIDIgMDtcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGxvc3QtY29sdW1uOiAxLzMgMyAwO1xuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRsb3N0LWNvbHVtbjogMS8yIDIgMDtcblx0fVxuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1sYXJnZSkge1xuXHRcdGxvc3QtY29sdW1uOiAxLzMgMyAwO1xuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LXh4bGFyZ2UpIHtcblx0XHRsb3N0LWNvbHVtbjogMS80IDQgMDtcblx0fVxufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LWlubmVyIHtcblxuXHQuYmMtaWNvbi5pY29uLWJjLXNlbGVjdGVkIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAxNXB4O1xuXHRcdHJpZ2h0OiAxNXB4O1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQteGwpO1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWJsdWUtbGlnaHQpO1xuXG5cdFx0LmJjLXNob3J0Y29kZS11aV9fc2VsZWN0ZWQtcmVzdWx0ICYge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcHJvZHVjdC1hbmNob3Ige1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRkaXNwbGF5OiBibG9jaztcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRvcGFjaXR5OiAwO1xuXHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdG91dGxpbmU6IHZhcigtLWNvbG9yLWJsYWNrLWEtNDApO1xuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgI2NjYztcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXG5cdFx0LmJjLXNob3J0Y29kZS11aV9fcHJvZHVjdC1hY3Rpb25zIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0fVxufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LWFuY2hvci1zdGF0dXMge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiA1MCU7XG5cdHRvcDogMjAlO1xuXHR3aWR0aDogMTAwJTtcblx0bWF4LXdpZHRoOiAxMzBweDtcblx0YmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCk7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0cGFkZGluZzogMCAxMHB4O1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXhzKTtcblx0bGluZS1oZWlnaHQ6IDIuNztcblx0Y29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtaW1hZ2Uge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KSBuby1yZXBlYXQgY2VudGVyIHRvcDtcblx0d2lkdGg6IDEwMCU7XG5cdG1hcmdpbjogMDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRhc3BlY3QtcmF0aW86ICc0OjQnO1xufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LWltYWdlLS1mZWF0dXJlZCB7XG5cdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtaW1hZ2UtLXBsYWNlaG9sZGVyIHtcblx0YmFja2dyb3VuZC1zaXplOiA1MCUgNTAlO1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LW1ldGEge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcHJvZHVjdC10aXRsZSB7XG5cdGZsZXg6IDEgMSBhdXRvO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50KTtcblx0bWFyZ2luOiAxNnB4IDA7XG5cdGxpbmUtaGVpZ2h0OiAxLjI1O1xufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LXByaWNlIHtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudCk7XG5cdGxpbmUtaGVpZ2h0OiAxLjI1O1xuXHRtYXJnaW46IDE2cHggMCAxNnB4IDE0cHg7XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtZGVzY3JpcHRpb24ge1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LW0pO1xuXHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtcyk7XG59XG5cbi5iYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtcXVlcnktZGltbWVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJsYWNrLWEtNDApO1xuXHRvcGFjaXR5OiAwO1xuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGVhc2U7XG5cdHotaW5kZXg6IC0xO1xuXG5cdCYuYWN0aXZlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHotaW5kZXg6IDIwMDAwMDA7XG5cdH1cbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcHJvZHVjdC1xdWVyeS1sb2FkZXIge1xuXG5cdC5zcGlubmVyIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXHR9XG5cblx0Ji5hY3RpdmUge1xuXG5cdFx0LnNwaW5uZXIge1xuXHRcdFx0b3BhY2l0eTogMC41O1xuXHRcdFx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0XHR9XG5cdH1cbn1cbiIsbnVsbCwiLmJjLXNob3J0Y29kZS11aV9fc2VsZWN0ZWQtcHJvZHVjdHMtdGl0bGUge1xuXHRtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYmMtc2hvcnRjb2RlLXVpX19zZWxlY3RlZC1wcm9kdWN0IHtcblx0bWFyZ2luLWJvdHRvbTogMTdweDtcblxuXHRoNSxcblx0c3BhbiB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQtbSk7XG5cdFx0bGluZS1oZWlnaHQ6IDEuNDM7XG5cdH1cbn1cblxuLmJjLXNob3J0Y29kZS11aV9fcmVtb3ZlLXNlbGVjdGVkIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCk7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC1zKTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzIHtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG5cdH1cbn1cbiIsIi5iYy1pbXBvcnQtbm93IHtcblx0bWFyZ2luLXRvcDogMzhweDtcblxuXHQuYmMtcHJvZHVjdHMtc3luYyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCk7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0XHRwYWRkaW5nOiAwIDMwcHg7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdGJvcmRlci1yYWRpdXM6IDIwcHg7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQtbGcpO1xuXHRcdGxpbmUtaGVpZ2h0OiA0MHB4O1xuXHRcdGhlaWdodDogNDBweDtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tb3BhY2l0eSk7XG5cblx0XHQmOmhvdmVyLFxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRcdFx0b3BhY2l0eTogMC45O1xuXHRcdH1cblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdG1hcmdpbi1yaWdodDogNnB4O1xuXHRcdH1cblx0fVxuXG5cdC5iYy1wcm9kdWN0cy1zeW5jLWxhYmVsIHtcblx0XHRmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktc2Fucy1zZXJpZik7XG5cdFx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXHR9XG59XG5cbiIsIi5wb3N0LXR5cGUtYmlnY29tbWVyY2VfcHJvZHVjdCB7XG5cblx0Ji5wb3N0LXBocCB7XG5cblx0XHQubWlzYy1wdWItYmlnY29tbWVyY2UgLmRhc2hpY29ucyB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR0b3A6IC0zcHg7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAzcHg7XG5cdFx0XHRjb2xvcjogIzgyODc4Yztcblx0XHR9XG5cblx0XHQuZWRpdG9yLXBvc3QtcGVybWFsaW5rX19lZGl0IHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0Ji5lZGl0LXBocCB7XG5cblx0XHQuYmMtc2V0dGluZ3MtaGVhZGVyX19jdGEtYnRuIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cblx0XHRcdCYtLWFjdGl2ZSB7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDIwcHg7XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBib3R0b207XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDJweDtcblx0XHRcdH1cblxuXHRcdFx0LmJjLWFkbWluLWJ0biB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTBweDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDAuOTtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0XHRsZXR0ZXItc3BhY2luZzogMXB4O1xuXHRcdFx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtZG9nZXItYmx1ZSk7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRcdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tb3BhY2l0eSk7XG5cblx0XHRcdFx0LmJjLWljb24ge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogMC45O1xuXHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDZweDtcblx0XHRcdFx0XHRib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWNvbmNyZXRlKTtcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDE1cHg7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOmhvdmVyLFxuXHRcdFx0XHQmOmZvY3VzIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAwLjg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi5pbmxpbmUtZWRpdC1iaWdjb21tZXJjZV9wcm9kdWN0IHtcblxuXHQuaW5saW5lLWVkaXQtY29sLWxlZnQgLmlubGluZS1lZGl0LWNvbCA+IGxhYmVsOm50aC1jaGlsZCgyKSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4iXX0= */ \ No newline at end of file diff --git a/assets/css/bc-admin.min.css b/assets/css/bc-admin.min.css index 328607cf..17aacc91 100644 --- a/assets/css/bc-admin.min.css +++ b/assets/css/bc-admin.min.css @@ -1,2 +1,2 @@ /* BigCommerce: WordPress Admin CSS */ -@font-face{font-family:bigcommerce-icons;src:url(../fonts/icons-bigcommerce/bigcommerce-icons.woff2?mnhepd) format("woff2"),url(../fonts/icons-bigcommerce/bigcommerce-icons.ttf?mnhepd) format("truetype"),url(../fonts/icons-bigcommerce/bigcommerce-icons.woff?mnhepd) format("woff"),url(../fonts/icons-bigcommerce/bigcommerce-icons.svg?mnhepd#bigcommerce-icons) format("svg");font-weight:400;font-style:normal}.bc-icon{font-family:bigcommerce-icons!important;speak:none;font-style:normal;font-weight:400;-webkit-font-feature-settings:normal;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-bc-bigcommerce_diagnostics:before{content:"\e912"}.icon-bc-channel:before,.icon-bc-channel_select:before{content:"\e911"}.icon-bc-credentials:before{content:"\e910"}.icon-bc-sync:before{content:"\e90f"}.icon-bc-accounts:before{content:"\e906"}.icon-bc-analytics:before{content:"\e907"}.icon-bc-cart:before{content:"\e908"}.icon-bc-currency:before{content:"\e909"}.icon-bc-gift_certificates:before{content:"\e90a"}.icon-bc-import:before{content:"\e90b"}.icon-bc-order_confirmation:before{content:"\e90c"}.icon-bc-product_reviews:before{content:"\e90d"}.icon-bc-shipping_returns:before{content:"\e90e"}.dashicons-bigcommerce:before,.icon-bc-b-logo:before{content:"\e901"}.icon-bc-arrow-solid:before{content:"\e902"}.icon-bc-selected:before{content:"\e903"}.icon-bc-arrow-toggle:before{content:"\e905"}.icon-bc-arrow-left:before{content:"\e094"}.icon-bc-arrow-right:before{content:"\e095"}.icon-bc-arrow-up:before{content:"\e096"}.icon-bc-arrow-down:before{content:"\e097"}.icon-bc-plus:before{content:"\e114"}.icon-bc-minus:before{content:"\e115"}.icon-bc-check:before{content:"\e116"}.icon-bc-cross:before{content:"\e117"}.icon-bc-search:before{content:"\e036"}.icon-bc-chevron-down:before{content:"\e900"}.icon-bc-chevron-left:before{content:"\e91a"}.icon-bc-chevron-right:before{content:"\e919"}.icon-bc-chevron-up:before{content:"\e904"}.choices{position:relative;margin-bottom:24px;font-size:16px}.choices:focus{outline:none}.choices:last-child{margin-bottom:0}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#eaeaea;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.choices.is-disabled .choices__item{cursor:not-allowed}.choices[data-type*=select-one]{cursor:pointer}.choices[data-type*=select-one] .choices__inner{padding-bottom:7.5px}.choices[data-type*=select-one] .choices__input{display:block;width:100%;padding:10px;border-bottom:1px solid #ddd;background-color:#fff;margin:0}.choices[data-type*=select-one] .choices__button{background-image:url(../../icons/cross-inverse.svg);padding:0;background-size:8px;position:absolute;top:50%;right:0;margin-top:-10px;margin-right:25px;height:20px;width:20px;border-radius:10em;opacity:.5}.choices[data-type*=select-one] .choices__button:focus,.choices[data-type*=select-one] .choices__button:hover{opacity:1}.choices[data-type*=select-one] .choices__button:focus{box-shadow:0 0 0 2px #00bcd4}.choices[data-type*=select-one]:after{content:"";height:0;width:0;border-style:solid;border-color:#333 transparent transparent;border-width:5px;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*=select-one].is-open:after{border-color:transparent transparent #333;margin-top:-7.5px}.choices[data-type*=select-one][dir=rtl]:after{left:11.5px;right:auto}.choices[data-type*=select-one][dir=rtl] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}.choices[data-type*=select-multiple] .choices__inner,.choices[data-type*=text] .choices__inner{cursor:text}.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=text] .choices__button{position:relative;display:inline-block;margin:0 -4px 0 8px;padding-left:16px;border-left:1px solid #008fa1;background-image:url(../../icons/cross.svg);background-size:8px;width:8px;line-height:1;opacity:.75}.choices[data-type*=select-multiple] .choices__button:focus,.choices[data-type*=select-multiple] .choices__button:hover,.choices[data-type*=text] .choices__button:focus,.choices[data-type*=text] .choices__button:hover{opacity:1}.choices__inner{display:inline-block;vertical-align:top;width:100%;background-color:#f9f9f9;padding:7.5px 7.5px 3.75px;border:1px solid #ddd;border-radius:2.5px;font-size:14px;min-height:44px;overflow:hidden}.is-focused .choices__inner,.is-open .choices__inner{border-color:#b7b7b7}.is-open .choices__inner{border-radius:2.5px 2.5px 0 0}.is-flipped.is-open .choices__inner{border-radius:0 0 2.5px 2.5px}.choices__list{margin:0;padding-left:0;list-style:none}.choices__list--single{display:inline-block;padding:4px 16px 4px 4px;width:100%}[dir=rtl] .choices__list--single{padding-right:4px;padding-left:16px}.choices__list--single .choices__item{width:100%}.choices__list--multiple{display:inline}.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:500;margin-right:3.75px;margin-bottom:3.75px;background-color:#00bcd4;border:1px solid #00a5bb;color:#fff;word-break:break-all}.choices__list--multiple .choices__item[data-deletable]{padding-right:5px}[dir=rtl] .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}.choices__list--multiple .choices__item.is-highlighted{background-color:#00a5bb;border:1px solid #008fa1}.is-disabled .choices__list--multiple .choices__item{background-color:#aaa;border:1px solid #919191}.choices__list--dropdown{display:none;z-index:1;position:absolute;width:100%;background-color:#fff;border:1px solid #ddd;top:100%;margin-top:-1px;border-bottom-left-radius:2.5px;border-bottom-right-radius:2.5px;overflow:hidden;word-break:break-all}.choices__list--dropdown.is-active{display:block}.is-open .choices__list--dropdown{border-color:#b7b7b7}.is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:.25rem .25rem 0 0}.choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.choices__list--dropdown .choices__item{position:relative;padding:10px;font-size:14px}[dir=rtl] .choices__list--dropdown .choices__item{text-align:right}@media (min-width:640px){.choices__list--dropdown .choices__item--selectable{padding-right:100px}.choices__list--dropdown .choices__item--selectable:after{content:attr(data-select-text);font-size:12px;opacity:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}[dir=rtl] .choices__list--dropdown .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}[dir=rtl] .choices__list--dropdown .choices__item--selectable:after{right:auto;left:10px}}.choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f2f2f2}.choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.5}.choices__heading{font-weight:600;font-size:12px;padding:10px;border-bottom:1px solid #f7f7f7;color:gray}.choices__button{text-indent:-9999px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:50%;cursor:pointer}.choices__button:focus{outline:none}.choices__input{display:inline-block;vertical-align:baseline;background-color:#f9f9f9;font-size:14px;margin-bottom:5px;border:0;border-radius:0;max-width:100%;padding:4px 0 4px 2px}.choices__input:focus{outline:0}[dir=rtl] .choices__input{padding-right:2px;padding-left:0}.choices__placeholder{opacity:.5}.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=text] .choices__button{background-size:9px;border-color:#0f6486}.choices__list--multiple .choices__item{border-radius:4px;padding:4px 2px 4px 10px;line-height:20px;background-color:#168fc0;border:0}.choices__list--multiple .choices__item.is-highlighted{background-color:#189dd3;border:0}.bc-choices[data-type*=select-one]:after{border-color:#888 transparent transparent;border-width:4px;right:16px}.bc-settings-section__body .bc-choices[data-type*=select-one]{max-width:540px}.bc-choices .choices__inner{background-color:#fff;border-color:#e1e6ea;border-radius:0;box-sizing:border-box;min-height:20px;padding:11px 10px 10px}.bc-choices[data-type*=select-one] .choices__inner{padding-bottom:9px}.bc-choices .choices__list--single{box-sizing:border-box;padding:0 20px 0 0}.bc-choices .choices__list--dropdown{border-color:#e1e6ea;box-sizing:border-box}.dashicons-bigcommerce:before{font-family:bigcommerce-icons;font-size:17px}.bigcommerce-settings-page{background-color:#fff}.bigcommerce-settings-page .regular-text{max-width:540px;width:100%}.bigcommerce-settings-page .bigcommerce-connection-status__message{display:inline-block;color:#829d5f;font-size:14px;font-weight:500}.bigcommerce-settings-page .bigcommerce-connection-status__message-failed{color:#d2574a}.bigcommerce-settings-page p{font-size:14px}.bigcommerce-settings-page p.description{font-style:normal;color:#34313f}.bigcommerce-settings-page .bc-admin-btn,.bigcommerce-settings-page .bc-settings-form input[type=submit]{background:#4b71fc;border:1px solid #4b71fc;border-radius:19px;box-sizing:border-box;box-shadow:unset;cursor:pointer;color:#fff;display:inline-block;padding:13px 20px 12px;font-size:12px;font-weight:500;letter-spacing:1px;line-height:12px;text-decoration:none;text-shadow:none;text-transform:uppercase;transition:all .15s ease-in-out;-webkit-appearance:none;white-space:nowrap}.bigcommerce-settings-page .bc-admin-btn:active,.bigcommerce-settings-page .bc-admin-btn:focus,.bigcommerce-settings-page .bc-admin-btn:hover,.bigcommerce-settings-page .bc-settings-form input[type=submit]:active,.bigcommerce-settings-page .bc-settings-form input[type=submit]:focus,.bigcommerce-settings-page .bc-settings-form input[type=submit]:hover{background-color:#53bad1;border-color:#53bad1}.bigcommerce-settings-page .bc-admin-btn:disabled,.bigcommerce-settings-page .bc-settings-form input[type=submit]:disabled{background-color:#e0e3e9!important;border-color:#e0e3e9!important;color:#8b8b8b!important;cursor:default!important}.bigcommerce-settings-page .bc-admin-btn--outline{background:transparent;border:1px solid #4b71fc;color:#4b71fc}.bigcommerce-settings-page .bc-admin-btn--outline:focus,.bigcommerce-settings-page .bc-admin-btn--outline:hover{background-color:#4b71fc;border-color:#4b71fc;color:#fff}.bigcommerce_product_page_bigcommerce_connect #wpwrap,.bigcommerce_product_page_bigcommerce_new_account #wpwrap,.bigcommerce_product_page_bigcommerce_pending_account #wpwrap,.bigcommerce_product_page_bigcommerce_welcome #wpwrap{position:relative;padding-bottom:210px}.bigcommerce_product_page_bigcommerce_connect #wpwrap:after,.bigcommerce_product_page_bigcommerce_new_account #wpwrap:after,.bigcommerce_product_page_bigcommerce_pending_account #wpwrap:after,.bigcommerce_product_page_bigcommerce_welcome #wpwrap:after{background:transparent url(../img/admin/bc-bg-geometric.svg) no-repeat 100% 100%/contain;content:"";position:absolute;height:200px;width:100%;bottom:-1px;right:0;z-index:1}@media (min-width:783px){.bigcommerce_product_page_bigcommerce_connect #wpwrap:after,.bigcommerce_product_page_bigcommerce_new_account #wpwrap:after,.bigcommerce_product_page_bigcommerce_pending_account #wpwrap:after,.bigcommerce_product_page_bigcommerce_welcome #wpwrap:after{background-position:0 100%;bottom:40px;left:36px;right:auto;height:280px;width:65%}}@media (min-width:960px){.bigcommerce_product_page_bigcommerce_connect #wpwrap:after,.bigcommerce_product_page_bigcommerce_new_account #wpwrap:after,.bigcommerce_product_page_bigcommerce_pending_account #wpwrap:after,.bigcommerce_product_page_bigcommerce_welcome #wpwrap:after{left:160px}}.bigcommerce_product_page_bigcommerce_connect #wpcontent,.bigcommerce_product_page_bigcommerce_new_account #wpcontent,.bigcommerce_product_page_bigcommerce_pending_account #wpcontent,.bigcommerce_product_page_bigcommerce_welcome #wpcontent{padding-right:10px;position:relative;z-index:2}@media (min-width:783px){.bigcommerce_product_page_bigcommerce_connect #wpcontent,.bigcommerce_product_page_bigcommerce_new_account #wpcontent,.bigcommerce_product_page_bigcommerce_pending_account #wpcontent,.bigcommerce_product_page_bigcommerce_welcome #wpcontent{padding-right:20px}}.bigcommerce_product_page_bigcommerce_connect #wpfooter,.bigcommerce_product_page_bigcommerce_new_account #wpfooter,.bigcommerce_product_page_bigcommerce_pending_account #wpfooter,.bigcommerce_product_page_bigcommerce_welcome #wpfooter{border-top:1px solid #e0e3e9;z-index:2}.bigcommerce_product_page_bigcommerce_pending_account #wpwrap{padding-bottom:0}.bc-settings-form .form-table{margin-bottom:4px;margin-top:0}.bc-settings-form .form-table th,.bc-settings-form .form-wrap label,.bc-settings-form form{color:#34313f}.bc-settings-form .form-table th,.bc-settings-form .form-wrap label{font-size:15px}.bc-settings-form .form-table th{font-weight:400}@media (min-width:783px){.bc-settings-form .form-table th{width:170px}}.bc-settings-form input,.bc-settings-form select{border:1px solid #e1e6ea;box-shadow:none}.bc-settings-form select{padding:12px;height:45px;line-height:45px;border-radius:0}.bc-settings-form input[type=number],.bc-settings-form input[type=password],.bc-settings-form input[type=text],.bc-settings-form input[type=url]{height:40px;line-height:40px;padding-top:0;padding-bottom:0}.bc-settings-form input[type=checkbox]{width:auto;width:20px;height:20px}.bc-settings-form input[type=checkbox]:before{margin:-1px 0 0 -3px;font-size:21px;width:20px;height:20px}.bc-settings-form .button{text-shadow:none;font-size:16px;padding:8px 12px;height:auto;transition:all .15s ease-in-out}.bc-settings-form .secondary{border-radius:6px}.bc-settings-form .secondary:focus,.bc-settings-form .secondary:hover{background-color:#fdfdfd}.bc-settings-form .button-primary{box-shadow:-1px 1px 2px rgba(0,0,0,.4)}.bc-settings-field--required{display:inline-block;color:#d2574a;margin-left:4px}.bc-settings-header{color:#34313f;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-direction:column;flex-direction:column;margin-bottom:28px;padding:0 0 40px;position:relative}.bc-settings-header:before{display:table}.bc-settings-header:after{display:table;clear:both}@media (min-width:768px){.bc-settings-header{-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center}}.bc-settings-header:before{background-color:#e0e3e9;content:"";position:absolute;bottom:0;right:-20px;height:1px;width:calc(100% + 42px)}.bc-settings-header:after{background:transparent url(../img/admin/bc-bg-geometric.svg) no-repeat 100% 100%/contain;content:"";position:absolute;height:220px;width:75%;bottom:1px;right:-20px;z-index:1}@media (min-width:768px){.bc-settings-header:after{height:220px;width:50%}}.bc-settings-header .notice{box-sizing:border-box;-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:99.99999%;flex-basis:99.99999%;max-width:99.99999%;width:99.99999%}.bc-settings-header .notice:nth-child(1n){margin-right:20px;margin-left:0}.bc-settings-header .notice:last-child{margin-right:0}.bc-settings-header .notice:nth-child(12n){margin-right:0;margin-left:auto}@media (min-width:1200px){.bc-settings-header__welcome{margin-left:calc(4.16667% + .83333px)!important}}.bc-settings-header__cta,.bc-settings-header__welcome{position:relative;z-index:2}@media (min-width:768px){.bc-settings-header__cta,.bc-settings-header__welcome{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(41.66666% - 11.66667px);flex-basis:calc(41.66666% - 11.66667px);max-width:calc(41.66666% - 11.66667px);width:calc(41.66666% - 11.66667px);max-width:460px}.bc-settings-header__cta:nth-child(1n),.bc-settings-header__welcome:nth-child(1n){margin-right:20px;margin-left:0}.bc-settings-header__cta:last-child,.bc-settings-header__welcome:last-child{margin-right:0}.bc-settings-header__cta:nth-child(12n),.bc-settings-header__welcome:nth-child(12n){margin-right:0;margin-left:auto}}.bc-settings-header__cta{background-color:#f5f5f5;margin-top:30px;padding:20px}@media (min-width:768px){.bc-settings-header__cta{margin-top:0;padding:40px}}.bigcommerce_product_page_bigcommerce .bc-settings-header__welcome-title{color:#34313f;font-size:32px;line-height:1.01;margin-bottom:18px}@media (min-width:768px){.bigcommerce_product_page_bigcommerce .bc-settings-header__welcome-title{font-size:48px}}.bc-settings-header__welcome-text{font-size:18px}.bc-settings-header__cta-title{font-size:22px;line-height:22px;margin:0 0 14px}.bc-settings-header__cta-text{font-size:16px;margin:0}.bc-settings-header__cta-btn{margin-top:20px}.bigcommerce_product_page_bigcommerce select[name=bigcommerce_import_frequency]{float:left;margin-right:14px;width:auto}.bc-settings-section+.bc-settings-section{margin-top:20px}.bc-settings-section__header{background-color:#fff;border:1px solid #e0e3e9;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:start;justify-content:flex-start;padding:20px;position:relative}.bc-settings-section__header .icon-bc-arrow-solid{font-size:20px;color:#888;margin-left:auto}.bc-settings-section__header .bc-icon--settings{color:#4b71fc;font-size:17px;position:absolute}.bc-settings-section__header .icon-bc-import{font-size:10px}.bc-settings-section--open .bc-settings-section__header{background-color:#2c2935;border-color:#2c2935;box-shadow:0 3px 0 0 #eef0f2;color:#fff}.bc-settings-section--open .bc-settings-section__header .icon-bc-arrow-solid{transform:rotate(180deg)}.bc-settings-section--open .bc-settings-section__header .bc-icon--settings{color:#fff}.bc-settings-section__title{font-size:20px;font-weight:400;line-height:26px;margin:0 0 0 30px}@media (min-width:1200px){.bc-settings-section__title{margin-left:calc(4.16667% - 16px)}}.bc-settings-section--open .bc-settings-section__title{color:#fff}.bc-settings-section__target{border:1px solid #e0e3e9;border-top:0;max-height:0;opacity:0;overflow:hidden}.bc-settings-section__body{background-color:#fff;color:#34313f;font-size:14px;line-height:18px;padding:20px 20px 40px}.bc-settings-section__body>p:first-child{margin-top:18px;padding-top:0}.bc-settings-section__body .form-table p.description{color:#6c6c6c;font-size:12px;font-style:italic}.bc-settings-section--bigcommerce_diagnostics .bc-diagnostics-data__description{margin:10px 0}.bc-settings-section--bigcommerce_diagnostics .bc-admin-diagnostics-loader{line-height:20px;vertical-align:middle;margin:20px 0;display:none}.bc-settings-section--bigcommerce_diagnostics .bc-admin-diagnostics-loader.is-active{display:block}.bc-settings-section--bigcommerce_diagnostics .spinner.bc-admin-spinner{float:none;display:inline-block;vertical-align:middle;position:relative;top:-3px}.wrap .bc-diagnostics-data--success{padding:9px 0;margin-bottom:20px}.bc-diagnostics-data--success .bc-icon{display:inline-block;position:relative;top:2px;color:#65c68c}.bc-diagnostics-data--error{border:1px solid #d2574a;padding:10px}.bc-diagnostics-data--error .bc-admin-btn{margin-top:20px}.bc-diagnostics-data,.bc-diagnostics-data__section,.bc-setings-diagnostics-wrapper{margin-top:10px;padding:20px 0}.bc-diagnostics-data__section{border-top:1px solid #cdcdcd}.bc-diagnostics-data__section .bc-admin-btn{margin-top:20px}.bc-diagnostics-data__section-header{margin-top:0}.bc-diagnostics-data__meta{padding:4px 0}@media (min-width:783px){.bc-diagnostics-data__meta{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:start;align-items:flex-start}}.bc-diagnostics-data__meta-label{font-weight:700}@media (min-width:783px){.bc-diagnostics-data__meta-label{-ms-flex:0 0 170px;flex:0 0 170px;padding-right:10px}}@media (min-width:783px){.bc-diagnostics-data__meta-value{-ms-flex:1;flex:1;padding-left:20px}}.bc-settings-form--bigcommerce .bc-settings-save{background:#fff;box-sizing:border-box;margin-top:30px}@media (min-width:783px){.bc-settings-form--bigcommerce .bc-settings-save{box-shadow:0 3px 0 0 #eef0f2;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;margin-top:0;position:fixed;top:31px;right:0;padding:10px 20px;width:calc(100% - 36px);z-index:3}}@media (min-width:960px){.bc-settings-form--bigcommerce .bc-settings-save{width:calc(100% - 160px)}}.bc-settings-form--bigcommerce .bc-settings-save__logo{display:none}@media (min-width:783px){.bc-settings-form--bigcommerce .bc-settings-save__logo{display:block}}.bc-settings-form--bigcommerce p.submit{padding:0;margin:0}.bigcommerce_product_page_bigcommerce #wpbody-content{margin-top:10px}@media (min-width:783px){.bigcommerce_product_page_bigcommerce #wpbody-content{margin-top:86px}}.bc-welcome{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin-top:10px}.bc-welcome:after,.bc-welcome:before{content:"";display:table}.bc-welcome:after{clear:both}@media (min-width:768px){.bc-welcome{-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:start;justify-content:flex-start;margin-top:30px}}@media (min-width:1200px){.bc-welcome{margin-top:110px}}@media (min-width:768px){.bc-welcome__content,.bc-welcome__notices{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(49.99999% - 10px);flex-basis:calc(49.99999% - 10px);max-width:calc(49.99999% - 10px);width:calc(49.99999% - 10px)}.bc-welcome__content:nth-child(1n),.bc-welcome__notices:nth-child(1n){margin-right:20px;margin-left:0}.bc-welcome__content:last-child,.bc-welcome__notices:last-child{margin-right:0}.bc-welcome__content:nth-child(12n),.bc-welcome__notices:nth-child(12n){margin-right:0;margin-left:auto}}@media (min-width:1200px){.bc-welcome__content,.bc-welcome__notices{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(41.66666% - 11.66667px);flex-basis:calc(41.66666% - 11.66667px);max-width:calc(41.66666% - 11.66667px);width:calc(41.66666% - 11.66667px)}.bc-welcome__content:nth-child(1n),.bc-welcome__notices:nth-child(1n){margin-right:20px;margin-left:0}.bc-welcome__content:last-child,.bc-welcome__notices:last-child{margin-right:0}.bc-welcome__content:nth-child(12n),.bc-welcome__notices:nth-child(12n){margin-right:0;margin-left:auto}}@media (min-width:1200px){.bc-welcome__content{margin-left:calc(8.33333% + 1.66667px)!important}}@media (min-width:1200px){.bc-welcome__content-wrap{margin-right:12.5%;max-width:410px}}.bc-welcome__content-title{color:#34313f;font-size:32px;font-weight:400;line-height:40px;margin:18px 0 22px}@media (min-width:768px){.bc-welcome__content-title{font-size:48px;line-height:52px}}.bc-welcome__content p{font-size:15px;line-height:1.44;margin:0}@media (min-width:768px){.bc-welcome__content p{font-size:18px}}.bc-welcome__btn-group{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.bc-welcome__btn-group .bc-admin-btn{margin-bottom:20px}.bc-welcome__btn-group .bc-admin-btn:not(:last-child){margin-right:20px}.bc-welcome__content-wrap+.bc-welcome__btn-group{margin-top:40px}.bigcommerce_product_page_bigcommerce_welcome .bc-welcome__btn-group .bc-admin-btn--outline{background-color:#fff}.bigcommerce_product_page_bigcommerce_welcome .bc-welcome__btn-group .bc-admin-btn--outline:focus,.bigcommerce_product_page_bigcommerce_welcome .bc-welcome__btn-group .bc-admin-btn--outline:hover{background-color:#4b71fc}.bc-welcome__notice{background-color:#f5f5f5;margin-bottom:20px;padding:36px 30px}@media (min-width:1200px){.bc-welcome__notice{padding-right:12.5%}}.bc-welcome__notice-title{font-size:22px;font-weight:500;line-height:29px;margin:0}.bc-welcome__notice-title+p{margin-top:2px}.bc-welcome__notice p{font-size:16px;line-height:24px}.bc-settings-bigcommerce_connect,.bc-settings-bigcommerce_new_account{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.bc-settings-bigcommerce_connect:before,.bc-settings-bigcommerce_new_account:before{content:"";display:table}.bc-settings-bigcommerce_connect:after,.bc-settings-bigcommerce_new_account:after{content:"";display:table;clear:both}@media (min-width:768px){.bc-connect__header,.bc-new-account__header,.bc-settings-form--bigcommerce_channel,.bc-settings-form--bigcommerce_connect,.bc-settings-form--bigcommerce_new_account,.bc-welcome__account-connection{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(91.66666% - 1.66667px);flex-basis:calc(91.66666% - 1.66667px);max-width:calc(91.66666% - 1.66667px);width:calc(91.66666% - 1.66667px)}.bc-connect__header:nth-child(1n),.bc-new-account__header:nth-child(1n),.bc-settings-form--bigcommerce_channel:nth-child(1n),.bc-settings-form--bigcommerce_connect:nth-child(1n),.bc-settings-form--bigcommerce_new_account:nth-child(1n),.bc-welcome__account-connection:nth-child(1n){margin-right:20px;margin-left:0}.bc-connect__header:last-child,.bc-new-account__header:last-child,.bc-settings-form--bigcommerce_channel:last-child,.bc-settings-form--bigcommerce_connect:last-child,.bc-settings-form--bigcommerce_new_account:last-child,.bc-welcome__account-connection:last-child{margin-right:0}.bc-connect__header:nth-child(12n),.bc-new-account__header:nth-child(12n),.bc-settings-form--bigcommerce_channel:nth-child(12n),.bc-settings-form--bigcommerce_connect:nth-child(12n),.bc-settings-form--bigcommerce_new_account:nth-child(12n),.bc-welcome__account-connection:nth-child(12n){margin-right:0;margin-left:auto}}@media (min-width:1200px){.bc-connect__header,.bc-new-account__header,.bc-settings-form--bigcommerce_channel,.bc-settings-form--bigcommerce_connect,.bc-settings-form--bigcommerce_new_account,.bc-welcome__account-connection{margin-left:calc(8.33333% + 1.66667px)!important}}@media (min-width:1200px){.bc-settings-form--bigcommerce_channel,.bc-settings-form--bigcommerce_connect,.bc-settings-form--bigcommerce_new_account,.bc-welcome__account-connection{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(74.99999% - 5px);flex-basis:calc(74.99999% - 5px);max-width:calc(74.99999% - 5px);width:calc(74.99999% - 5px)}.bc-settings-form--bigcommerce_channel:nth-child(1n),.bc-settings-form--bigcommerce_connect:nth-child(1n),.bc-settings-form--bigcommerce_new_account:nth-child(1n),.bc-welcome__account-connection:nth-child(1n){margin-right:20px;margin-left:0}.bc-settings-form--bigcommerce_channel:last-child,.bc-settings-form--bigcommerce_connect:last-child,.bc-settings-form--bigcommerce_new_account:last-child,.bc-welcome__account-connection:last-child{margin-right:0}.bc-settings-form--bigcommerce_channel:nth-child(12n),.bc-settings-form--bigcommerce_connect:nth-child(12n),.bc-settings-form--bigcommerce_new_account:nth-child(12n),.bc-welcome__account-connection:nth-child(12n){margin-right:0;margin-left:auto}}.bc-connect__header,.bc-new-account__header{margin:10px 0 30px}@media (min-width:768px){.bc-connect__header,.bc-new-account__header{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(74.99999% - 5px);flex-basis:calc(74.99999% - 5px);max-width:calc(74.99999% - 5px);width:calc(74.99999% - 5px);margin:30px 0 50px;max-width:620px}.bc-connect__header:nth-child(1n),.bc-new-account__header:nth-child(1n){margin-right:20px;margin-left:0}.bc-connect__header:last-child,.bc-new-account__header:last-child{margin-right:0}.bc-connect__header:nth-child(12n),.bc-new-account__header:nth-child(12n){margin-right:0;margin-left:auto}}@media (min-width:1200px){.bc-connect__header,.bc-new-account__header{margin-top:60px}}.bc-settings .bc-settings-connect__title{color:#34313f;font-size:32px;font-weight:400;line-height:40px;margin:18px 0 0}@media (min-width:768px){.bc-settings .bc-settings-connect__title{font-size:48px;line-height:52px}}.bc-connect-spinner{float:none;visibility:visible;margin:0 10px 0 0}.bc-account-connection-response{padding:20px;font-size:15px;border:1px solid #e0e3e9;border-left:10px solid #168fc0}.bc-account-connection-response--error{border-left-color:#d2574a}.bc-account-connection__error-title{margin-top:0}.bc-account-connection__error-code{font-size:16px;font-weight:700}.bc-account-connection__error-code code{font-weight:400}.bc-account-connection__error-message{display:block;margin-top:4px;font-size:15px}.bigcommerce-notice{position:relative;padding:10px}.wp-admin .bigcommerce-notice{background-color:#fff}.bc-settings-bigcommerce .bigcommerce-notice{background-color:#f5f5f5;margin-bottom:10px}.bc-settings-bigcommerce .bigcommerce-notice:nth-child(2){margin-top:-20px}.bigcommerce-notice .bigcommerce-notice__list{list-style-type:disc;margin-left:20px}.bigcommerce-notice .bigcommerce-notice__list .bigcommerce-notice__list-item{margin-bottom:8px}.bigcommerce-notice__heading{margin-top:.5em}@media (min-width:768px){.bigcommerce-notice__heading{padding-right:130px}}p.bigcommerce-notice__refresh{margin:0}@media (min-width:768px){p.bigcommerce-notice__refresh{position:absolute;top:20px;right:20px}}.bigcommerce-notice__refresh-button{text-decoration:none;font-size:12px;line-height:14px;display:inline-block;text-transform:uppercase;letter-spacing:1px}.bigcommerce-notice__refresh-button i{display:inline-block;vertical-align:text-bottom;font-size:18px;line-height:14px}.bc-shortcode-ui__overlay{background:rgba(0,0,0,.7)}.bc-shortcode-ui__overlay,.bc-shortcode-ui__wrapper{position:fixed;top:0;right:0;height:100vh;width:100vw}.bc-shortcode-ui__wrapper{z-index:159000}.bc-shortcode-ui__wrapper[aria-hidden=true]{display:none}.bc-shortcode-ui__close-button{position:absolute;right:0;top:0;font-size:25px;background-color:transparent;border:0;padding:8px;z-index:20;cursor:pointer;opacity:.6;transition:opacity .3s ease}.bc-shortcode-ui__close-button:focus,.bc-shortcode-ui__close-button:hover{opacity:1}.bc-shortcode-ui__content{background:#f5f5f5;z-index:159901;position:absolute;width:90%;height:90%;left:5%;top:5%;overflow-y:scroll}.bc-shortcode-ui__content>div{height:100%}.bc-shortcode-ui__content *{box-sizing:border-box}@media (min-width:960px){.bc-shortcode-ui__content{overflow:hidden}}.bc-shortcode-ui{height:100%}@media (min-width:960px){.bc-shortcode-ui{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap}}.bc-shortcode-ui__selectors{-ms-flex:1;flex:1;width:100%;height:auto;border-bottom:1px solid #ccc;padding:30px;overflow-y:scroll}@media (min-width:960px){.bc-shortcode-ui__selectors{-ms-flex:0 1 250px;flex:0 1 250px;height:100%;border-bottom:0;border-right:1px solid #ccc}}.bc-shortcode-ui__products-wrapper{width:100%;height:100%}@media (min-width:960px){.bc-shortcode-ui__products-wrapper{-ms-flex:1 1 auto;flex:1 1 auto;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap}}.bc-shortcode-ui__products{position:relative}@media (min-width:960px){.bc-shortcode-ui__products{-ms-flex:0 1 60%;flex:0 1 60%;height:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}}@media (min-width:1200px){.bc-shortcode-ui__products{-ms-flex:0 1 70%;flex:0 1 70%}}.bc-shortcode-ui__search{padding:40px 30px}.bc-shortcode-ui__product-grid{overflow-y:scroll;-webkit-overflow-scrolling:touch;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;height:100%;padding:10px 20px}.bc-shortcode-ui__settings{height:auto;border-top:1px solid #ccc;background:#fff;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-pack:justify;justify-content:space-between}@media (min-width:960px){.bc-shortcode-ui__settings{height:100%;-ms-flex:0 1 40%;flex:0 1 40%;border-top:0;border-left:1px solid #ccc}}@media (min-width:1200px){.bc-shortcode-ui__settings{-ms-flex:0 1 30%;flex:0 1 30%}}.bc-shortcode-ui__settings-header{position:relative;-ms-flex:0 0 150px;flex:0 0 150px;overflow:hidden}.bc-shortcode-ui__default-header,.bc-shortcode-ui__dynamic-listing-header,.bc-shortcode-ui__manual-listing-header{position:absolute;top:0;left:0;width:100%;height:100%;visibility:hidden;overflow:hidden;opacity:0;z-index:-1;transition:all .15s ease-in-out;padding:20px}@media (min-width:1200px){.bc-shortcode-ui__default-header,.bc-shortcode-ui__dynamic-listing-header,.bc-shortcode-ui__manual-listing-header{padding:30px}}.bc-shortcode-ui__default-header.active,.bc-shortcode-ui__dynamic-listing-header.active,.bc-shortcode-ui__manual-listing-header.active{z-index:1;visibility:visible;opacity:1}.bc-shortcode-ui__selections{position:relative;overflow:hidden;-ms-flex:0 1 40%;flex:0 1 40%;border-top:1px solid #ccc}.bc-shortcode-ui__overflow-mask{position:absolute;height:65px;left:0;bottom:0;width:100%;background:linear-gradient(180deg,transparent 30%,hsla(0,0%,100%,.82) 70%);pointer-events:none}@media (min-width:1200px){.bc-shortcode-ui__overflow-mask{height:80px}}.bc-shortcode-ui__selected-products,.bc-shortcode-ui__selected-terms{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;visibility:hidden;opacity:0;z-index:-1;transition:all .15s ease-in-out}.bc-shortcode-ui__selected-products.active,.bc-shortcode-ui__selected-terms.active{visibility:visible;opacity:1;z-index:1}.bc-shortcode-ui__products-list,.bc-shortcode-ui__terms-list{overflow-y:scroll;-webkit-overflow-scrolling:touch;height:300px;margin:0;padding:20px}@media (min-width:1200px){.bc-shortcode-ui__products-list,.bc-shortcode-ui__terms-list{height:100%;padding:30px}}.bc-shortcode-ui__products-list{height:100%}.bc-shortcode-ui__terms-list-item{border-radius:4px;padding:4px 2px 4px 10px;font-size:12px;font-weight:500;margin-right:4px;margin-bottom:4px;border:1px solid #168fc0;color:#34313f;word-break:break-all}.bc-shortcode-ui__terms-list-item,.bc-shortcode-ui__terms-list-item button{display:inline-block;vertical-align:middle;line-height:20px;background-color:transparent}.bc-shortcode-ui__terms-list-item button{position:relative;border:0;opacity:.75;padding:2px 6px;color:#168fc0;cursor:pointer;transition:all .15s ease-in-out}.bc-shortcode-ui__terms-list-item button:focus,.bc-shortcode-ui__terms-list-item button:hover{opacity:1}.bc-shortcode-ui__terms-list-item button i{font-size:20px}.bc-shortcode-ui__terms-list-term{vertical-align:middle}.bc-shortcode-ui__actions{width:100%;height:auto;padding:20px;border-top:1px solid #ccc;-ms-flex:0 1 40%;flex:0 1 40%}@media (min-width:1200px){.bc-shortcode-ui__actions{padding:30px}}.bc-shortcode-ui__actions .button{display:block;margin:30px auto 0}.bc-shortcode-ui__display-settings>*{display:block;margin-top:20px}.bc-shortcode-ui__display-settings .bc-shortcode-ui__field-label{display:block;margin-bottom:4px}.bc-shortcode-ui__display-settings input[type=radio]{display:inline-block}.bc-shortcode-ui__display-settings .bc-shortcode-ui__product-order,.bc-shortcode-ui__display-settings .bc-shortcode-ui__product-orderby{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.bc-shortcode-ui__display-settings .bc-shortcode-ui__product-order .bc-shortcode-ui__field-label,.bc-shortcode-ui__display-settings .bc-shortcode-ui__product-orderby .bc-shortcode-ui__field-label{-ms-flex:0 0 100%;flex:0 0 100%}.bc-shortcode-ui__display-settings .bc-shortcode-ui__product-orderby label,.bc-shortcode-ui__display-settings .bc-shortcode-ui__product-order label{-ms-flex:0 0 50%;flex:0 0 50%}.bc-shortcode-ui__display-settings .bc-shortcode-ui__product-orderby label .bc-shortcode-ui__field-label,.bc-shortcode-ui__display-settings .bc-shortcode-ui__product-order label .bc-shortcode-ui__field-label{display:inline-block;margin-bottom:0}.bc-shortcode-ui__posts-per-page--control{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:center;align-items:center}.bc-shortcode-ui__posts-per-page-icon{-ms-flex:0 0 auto;flex:0 0 auto;margin-right:8px}.bc-shortcode-ui__posts-per-page{-ms-flex:0 1 140px;flex:0 1 140px;margin-right:8px;width:100%;cursor:pointer}.bc-shortcode-ui__posts-per-page-value{-ms-flex:0 0 44px;flex:0 0 44px;padding:4px;margin-right:4px;border:1px solid #ccc;text-align:center}.bc-shortcode-ui__posts-per-page-reset{-ms-flex:0 0 44px;flex:0 0 44px;cursor:pointer;border:0;color:#168fc0}.bc-shortcode-ui__posts-per-page-reset:focus,.bc-shortcode-ui__posts-per-page-reset:hover{color:#0d5573}.bc-shortcode-ui__logo{background:url(../img/admin/big-commerce-logo.png) no-repeat top;background-size:contain;width:132px;height:30px;display:block;margin:4px auto 30px}.bc-shortcode-ui__query-builder-list{margin:0}.bc-shortcode-ui__query-builder-child-list{padding-left:20px;max-height:0;opacity:0;overflow:hidden}.bc-shortcode-ui__query-builder-list-item{border-bottom:1px solid #ccc;padding:12px 0;display:block;width:100%;margin-bottom:0}.bc-shortcode-ui__query-builder-child-list .bc-shortcode-ui__query-builder-list-item{border-bottom:0;margin-bottom:0;padding:0}.bc-shortcode-ui__query-builder-anchor,.bc-shortcode-ui__query-builder-toggle{display:inline-block;text-decoration:none;color:#5e5e5e;font-weight:700;transition:all .15s ease-in-out;padding:4px 0;position:relative}.bc-shortcode-ui__query-builder-anchor:focus,.bc-shortcode-ui__query-builder-anchor:hover,.bc-shortcode-ui__query-builder-toggle:focus,.bc-shortcode-ui__query-builder-toggle:hover{color:#34313f}.bc-shortcode-ui__query-builder-anchor.bcqb-item-selected,.bc-shortcode-ui__query-builder-toggle.bcqb-item-selected{color:#53bad1}.bc-shortcode-ui__query-builder-child-list .bc-shortcode-ui__query-builder-anchor{font-weight:400}.bc-shortcode-ui__query-builder-child-list .bc-shortcode-ui__query-builder-anchor.bcqb-item-selected{color:#34313f}.bc-shortcode-ui__query-builder-child-list .bc-shortcode-ui__query-builder-anchor.bcqb-item-selected:before{content:"";width:10px;height:10px;border-radius:10px;position:absolute;top:50%;margin-top:-5px;left:-20px;background-color:#53bad1}.bc-shortcode-ui__query-builder-toggle{display:block;width:100%;background:transparent;border:0;cursor:pointer;text-align:left}.bc-shortcode-ui__query-builder-toggle .icon{float:right}.bc-shortcode-ui__searchform{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:start;align-items:flex-start;position:relative}.bc-shortcode-ui__searchform .choices{-ms-flex:1 1 auto;flex:1 1 auto;margin-bottom:0}.bc-shortcode-ui__searchform .choices__inner{padding-right:88px}.bc-shortcode-ui__searchform .bc-shortcode-ui-search__submit-button{-ms-flex:0 0 95px;flex:0 0 95px;font-size:12px;line-height:1;padding:15px 28px;margin-left:20px;cursor:pointer;border:1px solid #ddd;max-width:95px}.bc-shortcode-ui__searchform .bc-shortcode-ui-search__clear-search{background:transparent;border:0;color:#6495ed;position:absolute;right:125px;top:12px;cursor:pointer}input.choices__input{background-color:transparent;border:0;box-shadow:none;font-size:12px;width:140px!important}.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=text] .choices__button{background-image:url(../img/admin/icons/cross.svg)}.bc-shortcode-ui__product{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:99.99999%;flex-basis:99.99999%;max-width:99.99999%;width:99.99999%;margin-bottom:20px;padding:10px;position:relative}.bc-shortcode-ui__product:nth-child(1n){margin-right:20px;margin-left:0}.bc-shortcode-ui__product:last-child{margin-right:0}.bc-shortcode-ui__product:nth-child(1n){margin-right:0;margin-left:auto}@media (min-width:600px){.bc-shortcode-ui__product{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%;width:50%;margin-bottom:10px}.bc-shortcode-ui__product:nth-child(1n){margin-right:0;margin-left:0}.bc-shortcode-ui__product:last-child{margin-right:0}.bc-shortcode-ui__product:nth-child(2n){margin-right:0;margin-left:auto}}@media (min-width:768px){.bc-shortcode-ui__product{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:33.33333%;flex-basis:33.33333%;max-width:33.33333%;width:33.33333%}.bc-shortcode-ui__product:nth-child(1n){margin-right:0;margin-left:0}.bc-shortcode-ui__product:last-child{margin-right:0}.bc-shortcode-ui__product:nth-child(3n){margin-right:0;margin-left:auto}}@media (min-width:960px){.bc-shortcode-ui__product{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%;width:50%}.bc-shortcode-ui__product:nth-child(1n){margin-right:0;margin-left:0}.bc-shortcode-ui__product:last-child{margin-right:0}.bc-shortcode-ui__product:nth-child(2n){margin-right:0;margin-left:auto}}@media (min-width:1200px){.bc-shortcode-ui__product{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:33.33333%;flex-basis:33.33333%;max-width:33.33333%;width:33.33333%}.bc-shortcode-ui__product:nth-child(1n){margin-right:0;margin-left:0}.bc-shortcode-ui__product:last-child{margin-right:0}.bc-shortcode-ui__product:nth-child(3n){margin-right:0;margin-left:auto}}@media (min-width:1600px){.bc-shortcode-ui__product{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%;width:25%}.bc-shortcode-ui__product:nth-child(1n){margin-right:0;margin-left:0}.bc-shortcode-ui__product:last-child{margin-right:0}.bc-shortcode-ui__product:nth-child(4n){margin-right:0;margin-left:auto}}.bc-shortcode-ui__product-inner .bc-icon.icon-bc-selected{display:block;position:absolute;top:15px;right:15px;font-size:20px;opacity:0;color:#168fc0}.bc-shortcode-ui__selected-result .bc-shortcode-ui__product-inner .bc-icon.icon-bc-selected{opacity:1}.bc-shortcode-ui__product-anchor{color:#34313f;text-decoration:none;position:absolute;left:0;top:0;width:100%;height:100%;display:block;cursor:pointer;opacity:0;transition:all .15s ease-in-out;background:transparent;outline:rgba(0,0,0,.4)}.bc-shortcode-ui__product-anchor:focus,.bc-shortcode-ui__product-anchor:hover{opacity:1;border:1px solid #ccc;color:#34313f}.bc-shortcode-ui__product-anchor:focus .bc-shortcode-ui__product-actions,.bc-shortcode-ui__product-anchor:hover .bc-shortcode-ui__product-actions{display:block}.bc-shortcode-ui__product-anchor-status{display:block;position:absolute;left:50%;top:20%;width:100%;max-width:130px;background:#168fc0;text-align:center;padding:0 10px;font-size:12px;line-height:32px;color:#fff;border-radius:4px;transform:translateX(-50%)}.bc-shortcode-ui__product-image{background:#e0e3e9 no-repeat top;width:100%;margin:0;position:relative;box-sizing:border-box}.bc-shortcode-ui__product-image>*{position:absolute;top:0;right:0;bottom:0;left:0;box-sizing:border-box}.bc-shortcode-ui__product-image:before{position:relative;display:block;content:"";padding-top:100%;box-sizing:border-box}.bc-shortcode-ui__product-image--featured{background-size:cover}.bc-shortcode-ui__product-image--placeholder{background-size:50% 50%;background-position:50%}.bc-shortcode-ui__product-meta{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.bc-shortcode-ui__product-title{-ms-flex:1 1 auto;flex:1 1 auto;font-size:16px;margin:16px 0;line-height:20px}.bc-shortcode-ui__product-price{font-size:16px;line-height:20px;margin:16px 0 16px 14px}.bc-shortcode-ui__product-description{font-size:14px;line-height:18px}.bc-shortcode-ui__product-query-dimmer{position:absolute;width:100%;height:100%;top:0;left:0;background:rgba(0,0,0,.4);opacity:0;transition:opacity .15s ease;z-index:-1}.bc-shortcode-ui__product-query-dimmer.active{opacity:1;z-index:2000000}.bc-shortcode-ui__product-query-loader .spinner{opacity:0;transition:all .15s ease-in-out}.bc-shortcode-ui__product-query-loader.active .spinner{opacity:.5;visibility:visible}.bc-shortcode-ui__selected-products-title{margin-bottom:0}.bc-shortcode-ui__selected-product{margin-bottom:17px}.bc-shortcode-ui__selected-product h5,.bc-shortcode-ui__selected-product span{margin:0;display:inline;font-weight:400;font-size:14px;line-height:20px}.bc-shortcode-ui__remove-selected{display:inline-block;background:transparent;border:0;padding:0;color:#168fc0;cursor:pointer}.bc-shortcode-ui__remove-selected:focus,.bc-shortcode-ui__remove-selected:hover{color:#5273f4}.bc-import-now{margin-top:38px}.bc-import-now .bc-products-sync{background-color:#168fc0;color:#fff;padding:0 30px;border:0;border-radius:20px;box-shadow:none;text-transform:uppercase;font-size:18px;line-height:40px;height:40px;opacity:1;transition:opacity .3s ease}.bc-import-now .bc-products-sync:focus,.bc-import-now .bc-products-sync:hover{background-color:#168fc0;color:#fff;opacity:.9}.bc-import-now .bc-products-sync:before{margin-right:6px}.bc-import-now .bc-products-sync-label{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700}.post-type-bigcommerce_product.post-php .misc-pub-bigcommerce .dashicons{position:relative;top:-3px;padding-right:3px;color:#82878c}.post-type-bigcommerce_product.post-php .editor-post-permalink__edit{display:none}.post-type-bigcommerce_product.edit-php .bc-settings-header__cta-btn{display:none;margin-top:0;margin-left:0}.post-type-bigcommerce_product.edit-php .bc-settings-header__cta-btn--active{display:inline-block;margin-left:20px;vertical-align:bottom;margin-bottom:2px}.post-type-bigcommerce_product.edit-php .bc-settings-header__cta-btn .bc-admin-btn{font-size:10px;line-height:12px;text-decoration:none;text-transform:uppercase;letter-spacing:1px;color:#4b71fc;opacity:1;transition:opacity .3s ease}.post-type-bigcommerce_product.edit-php .bc-settings-header__cta-btn .bc-admin-btn .bc-icon{font-size:14px;line-height:12px;vertical-align:text-top;margin-right:6px;border-left:1px solid #cdcdcd;padding-left:15px}.post-type-bigcommerce_product.edit-php .bc-settings-header__cta-btn .bc-admin-btn:focus,.post-type-bigcommerce_product.edit-php .bc-settings-header__cta-btn .bc-admin-btn:hover{opacity:.8}.inline-edit-bigcommerce_product .inline-edit-col-left .inline-edit-col>label:nth-child(2){display:none} \ No newline at end of file +@font-face{font-family:bigcommerce-icons;src:url(../fonts/icons-bigcommerce/bigcommerce-icons.woff2?mnhepd) format("woff2"),url(../fonts/icons-bigcommerce/bigcommerce-icons.ttf?mnhepd) format("truetype"),url(../fonts/icons-bigcommerce/bigcommerce-icons.woff?mnhepd) format("woff"),url(../fonts/icons-bigcommerce/bigcommerce-icons.svg?mnhepd#bigcommerce-icons) format("svg");font-weight:400;font-style:normal}.bc-icon{font-family:bigcommerce-icons!important;speak:none;font-style:normal;font-weight:400;-webkit-font-feature-settings:normal;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-bc-bigcommerce_diagnostics:before{content:"\e912"}.icon-bc-channel:before,.icon-bc-channel_select:before{content:"\e911"}.icon-bc-credentials:before{content:"\e910"}.icon-bc-sync:before{content:"\e90f"}.icon-bc-accounts:before{content:"\e906"}.icon-bc-analytics:before{content:"\e907"}.icon-bc-cart:before{content:"\e908"}.icon-bc-currency:before{content:"\e909"}.icon-bc-gift_certificates:before{content:"\e90a"}.icon-bc-import:before{content:"\e90b"}.icon-bc-order_confirmation:before{content:"\e90c"}.icon-bc-product_reviews:before{content:"\e90d"}.icon-bc-shipping_returns:before{content:"\e90e"}.dashicons-bigcommerce:before,.icon-bc-b-logo:before{content:"\e901"}.icon-bc-arrow-solid:before{content:"\e902"}.icon-bc-selected:before{content:"\e903"}.icon-bc-arrow-toggle:before{content:"\e905"}.icon-bc-arrow-left:before{content:"\e094"}.icon-bc-arrow-right:before{content:"\e095"}.icon-bc-arrow-up:before{content:"\e096"}.icon-bc-arrow-down:before{content:"\e097"}.icon-bc-plus:before{content:"\e114"}.icon-bc-minus:before{content:"\e115"}.icon-bc-check:before{content:"\e116"}.icon-bc-cross:before{content:"\e117"}.icon-bc-search:before{content:"\e036"}.icon-bc-chevron-down:before{content:"\e900"}.icon-bc-chevron-left:before{content:"\e91a"}.icon-bc-chevron-right:before{content:"\e919"}.icon-bc-chevron-up:before{content:"\e904"}.choices{position:relative;margin-bottom:24px;font-size:16px}.choices:focus{outline:none}.choices:last-child{margin-bottom:0}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#eaeaea;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.choices.is-disabled .choices__item{cursor:not-allowed}.choices[data-type*=select-one]{cursor:pointer}.choices[data-type*=select-one] .choices__inner{padding-bottom:7.5px}.choices[data-type*=select-one] .choices__input{display:block;width:100%;padding:10px;border-bottom:1px solid #ddd;background-color:#fff;margin:0}.choices[data-type*=select-one] .choices__button{background-image:url(../../icons/cross-inverse.svg);padding:0;background-size:8px;position:absolute;top:50%;right:0;margin-top:-10px;margin-right:25px;height:20px;width:20px;border-radius:10em;opacity:.5}.choices[data-type*=select-one] .choices__button:focus,.choices[data-type*=select-one] .choices__button:hover{opacity:1}.choices[data-type*=select-one] .choices__button:focus{box-shadow:0 0 0 2px #00bcd4}.choices[data-type*=select-one]:after{content:"";height:0;width:0;border-style:solid;border-color:#333 transparent transparent;border-width:5px;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*=select-one].is-open:after{border-color:transparent transparent #333;margin-top:-7.5px}.choices[data-type*=select-one][dir=rtl]:after{left:11.5px;right:auto}.choices[data-type*=select-one][dir=rtl] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}.choices[data-type*=select-multiple] .choices__inner,.choices[data-type*=text] .choices__inner{cursor:text}.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=text] .choices__button{position:relative;display:inline-block;margin:0 -4px 0 8px;padding-left:16px;border-left:1px solid #008fa1;background-image:url(../../icons/cross.svg);background-size:8px;width:8px;line-height:1;opacity:.75}.choices[data-type*=select-multiple] .choices__button:focus,.choices[data-type*=select-multiple] .choices__button:hover,.choices[data-type*=text] .choices__button:focus,.choices[data-type*=text] .choices__button:hover{opacity:1}.choices__inner{display:inline-block;vertical-align:top;width:100%;background-color:#f9f9f9;padding:7.5px 7.5px 3.75px;border:1px solid #ddd;border-radius:2.5px;font-size:14px;min-height:44px;overflow:hidden}.is-focused .choices__inner,.is-open .choices__inner{border-color:#b7b7b7}.is-open .choices__inner{border-radius:2.5px 2.5px 0 0}.is-flipped.is-open .choices__inner{border-radius:0 0 2.5px 2.5px}.choices__list{margin:0;padding-left:0;list-style:none}.choices__list--single{display:inline-block;padding:4px 16px 4px 4px;width:100%}[dir=rtl] .choices__list--single{padding-right:4px;padding-left:16px}.choices__list--single .choices__item{width:100%}.choices__list--multiple{display:inline}.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:500;margin-right:3.75px;margin-bottom:3.75px;background-color:#00bcd4;border:1px solid #00a5bb;color:#fff;word-break:break-all}.choices__list--multiple .choices__item[data-deletable]{padding-right:5px}[dir=rtl] .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}.choices__list--multiple .choices__item.is-highlighted{background-color:#00a5bb;border:1px solid #008fa1}.is-disabled .choices__list--multiple .choices__item{background-color:#aaa;border:1px solid #919191}.choices__list--dropdown{display:none;z-index:1;position:absolute;width:100%;background-color:#fff;border:1px solid #ddd;top:100%;margin-top:-1px;border-bottom-left-radius:2.5px;border-bottom-right-radius:2.5px;overflow:hidden;word-break:break-all}.choices__list--dropdown.is-active{display:block}.is-open .choices__list--dropdown{border-color:#b7b7b7}.is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:.25rem .25rem 0 0}.choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.choices__list--dropdown .choices__item{position:relative;padding:10px;font-size:14px}[dir=rtl] .choices__list--dropdown .choices__item{text-align:right}@media (min-width:640px){.choices__list--dropdown .choices__item--selectable{padding-right:100px}.choices__list--dropdown .choices__item--selectable:after{content:attr(data-select-text);font-size:12px;opacity:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}[dir=rtl] .choices__list--dropdown .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}[dir=rtl] .choices__list--dropdown .choices__item--selectable:after{right:auto;left:10px}}.choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f2f2f2}.choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.5}.choices__heading{font-weight:600;font-size:12px;padding:10px;border-bottom:1px solid #f7f7f7;color:gray}.choices__button{text-indent:-9999px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:50%;cursor:pointer}.choices__button:focus{outline:none}.choices__input{display:inline-block;vertical-align:baseline;background-color:#f9f9f9;font-size:14px;margin-bottom:5px;border:0;border-radius:0;max-width:100%;padding:4px 0 4px 2px}.choices__input:focus{outline:0}[dir=rtl] .choices__input{padding-right:2px;padding-left:0}.choices__placeholder{opacity:.5}.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=text] .choices__button{background-size:9px;border-color:#0f6486}.choices__list--multiple .choices__item{border-radius:4px;padding:4px 2px 4px 10px;line-height:20px;background-color:#168fc0;border:0}.choices__list--multiple .choices__item.is-highlighted{background-color:#189dd3;border:0}.bc-choices[data-type*=select-one]:after{border-color:#8b8b8b transparent transparent;border-width:4px;right:16px}.bc-settings-section__body .bc-choices[data-type*=select-one]{max-width:540px}.bc-choices .choices__inner{background-color:#fff;border-color:#e1e6ea;border-radius:0;box-sizing:border-box;min-height:20px;padding:11px 10px 10px}.bc-choices.is-focused[data-type*=select-one]:after{border-color:#4b71fc transparent transparent}.bc-choices.is-focused .choices__inner{border-color:#4b71fc}.bc-choices[data-type*=select-one] .choices__inner{padding-bottom:9px}.bc-choices .choices__list--single{box-sizing:border-box;padding:0 20px 0 0}.bc-choices .choices__list--dropdown{border-color:#e1e6ea;box-sizing:border-box}.dashicons-bigcommerce:before{font-family:bigcommerce-icons;font-size:1.063em}.bigcommerce-settings-page{background-color:#fff}.bigcommerce-settings-page .regular-text{max-width:540px;width:100%}.bigcommerce-settings-page .bigcommerce-connection-status__message{display:inline-block;color:#829d5f;font-size:.875em;font-weight:500}.bigcommerce-settings-page .bigcommerce-connection-status__message-failed{color:#d2574a}.bigcommerce-settings-page p{font-size:.875em}.bigcommerce-settings-page p.description{font-style:normal;color:#34313f}.bigcommerce-settings-page .bc-admin-btn,.bigcommerce-settings-page .bc-settings-form input[type=submit]{background:#4b71fc;border:1px solid #4b71fc;border-radius:19px;box-sizing:border-box;box-shadow:unset;cursor:pointer;color:#fff;display:inline-block;padding:13px 20px 12px;font-size:12px;font-weight:500;letter-spacing:1px;line-height:12px;text-decoration:none;text-shadow:none;text-transform:uppercase;transition:all .15s ease-in-out;-webkit-appearance:none;white-space:nowrap}.bigcommerce-settings-page .bc-admin-btn:active,.bigcommerce-settings-page .bc-admin-btn:focus,.bigcommerce-settings-page .bc-admin-btn:hover,.bigcommerce-settings-page .bc-settings-form input[type=submit]:active,.bigcommerce-settings-page .bc-settings-form input[type=submit]:focus,.bigcommerce-settings-page .bc-settings-form input[type=submit]:hover{background-color:#53bad1;border-color:#53bad1}.bigcommerce-settings-page .bc-admin-btn:disabled,.bigcommerce-settings-page .bc-settings-form input[type=submit]:disabled{background-color:#e0e3e9!important;border-color:#e0e3e9!important;color:#8b8b8b!important;cursor:default!important}.bigcommerce-settings-page .bc-admin-btn--outline{background:transparent;border:1px solid #4b71fc;color:#4b71fc}.bigcommerce-settings-page .bc-admin-btn--outline:focus,.bigcommerce-settings-page .bc-admin-btn--outline:hover{background-color:#4b71fc;border-color:#4b71fc;color:#fff}.bigcommerce_product_page_bigcommerce_api_credentials #wpwrap,.bigcommerce_product_page_bigcommerce_connect #wpwrap,.bigcommerce_product_page_bigcommerce_new_account #wpwrap,.bigcommerce_product_page_bigcommerce_pending_account #wpwrap,.bigcommerce_product_page_bigcommerce_welcome #wpwrap{position:relative;padding-bottom:210px}.bigcommerce_product_page_bigcommerce_api_credentials #wpwrap:after,.bigcommerce_product_page_bigcommerce_connect #wpwrap:after,.bigcommerce_product_page_bigcommerce_new_account #wpwrap:after,.bigcommerce_product_page_bigcommerce_pending_account #wpwrap:after,.bigcommerce_product_page_bigcommerce_welcome #wpwrap:after{background:transparent url(../img/admin/bc-bg-geometric.svg) no-repeat 100% 100%/contain;content:"";position:absolute;height:200px;width:100%;bottom:-1px;right:0;z-index:1}@media (min-width:783px){.bigcommerce_product_page_bigcommerce_api_credentials #wpwrap:after,.bigcommerce_product_page_bigcommerce_connect #wpwrap:after,.bigcommerce_product_page_bigcommerce_new_account #wpwrap:after,.bigcommerce_product_page_bigcommerce_pending_account #wpwrap:after,.bigcommerce_product_page_bigcommerce_welcome #wpwrap:after{background-position:0 100%;bottom:40px;left:36px;right:auto;height:280px;width:65%}}@media (min-width:960px){.bigcommerce_product_page_bigcommerce_api_credentials #wpwrap:after,.bigcommerce_product_page_bigcommerce_connect #wpwrap:after,.bigcommerce_product_page_bigcommerce_new_account #wpwrap:after,.bigcommerce_product_page_bigcommerce_pending_account #wpwrap:after,.bigcommerce_product_page_bigcommerce_welcome #wpwrap:after{left:160px}}.bigcommerce_product_page_bigcommerce_api_credentials #wpcontent,.bigcommerce_product_page_bigcommerce_connect #wpcontent,.bigcommerce_product_page_bigcommerce_new_account #wpcontent,.bigcommerce_product_page_bigcommerce_pending_account #wpcontent,.bigcommerce_product_page_bigcommerce_welcome #wpcontent{padding-right:10px;position:relative;z-index:2}@media (min-width:783px){.bigcommerce_product_page_bigcommerce_api_credentials #wpcontent,.bigcommerce_product_page_bigcommerce_connect #wpcontent,.bigcommerce_product_page_bigcommerce_new_account #wpcontent,.bigcommerce_product_page_bigcommerce_pending_account #wpcontent,.bigcommerce_product_page_bigcommerce_welcome #wpcontent{padding-right:20px}}.bigcommerce_product_page_bigcommerce_api_credentials #wpfooter,.bigcommerce_product_page_bigcommerce_connect #wpfooter,.bigcommerce_product_page_bigcommerce_new_account #wpfooter,.bigcommerce_product_page_bigcommerce_pending_account #wpfooter,.bigcommerce_product_page_bigcommerce_welcome #wpfooter{border-top:1px solid #e0e3e9;z-index:2}.bigcommerce_product_page_bigcommerce_pending_account #wpwrap{padding-bottom:0}.bc-settings-form .form-table{margin-bottom:4px;margin-top:0}.bc-settings-form .form-table th,.bc-settings-form .form-wrap label,.bc-settings-form form{color:#34313f}.bc-settings-form .form-table th,.bc-settings-form .form-wrap label{font-size:1.071em}.bc-settings-form .form-table th{font-weight:400}@media (min-width:783px){.bc-settings-form .form-table th{width:170px}}.bc-settings-form input,.bc-settings-form select{border:1px solid #e1e6ea;box-shadow:none}.bc-settings-form select{padding:12px;height:45px;line-height:45px;border-radius:0}.bc-settings-form input[type=number],.bc-settings-form input[type=password],.bc-settings-form input[type=text],.bc-settings-form input[type=url]{height:40px;line-height:40px;padding-top:0;padding-bottom:0}.bc-settings-form input[type=checkbox]{width:auto;width:20px;height:20px}.bc-settings-form input[type=checkbox]:before{margin:-1px 0 0 -3px;font-size:21px;width:20px;height:20px}.bc-settings-form .button{text-shadow:none;font-size:1em;padding:8px 12px;height:auto;transition:all .15s ease-in-out}.bc-settings-form .secondary{border-radius:6px}.bc-settings-form .secondary:focus,.bc-settings-form .secondary:hover{background-color:#fdfdfd}.bc-settings-form .button-primary{box-shadow:-1px 1px 2px rgba(0,0,0,.4)}.bc-settings-field--required{display:inline-block;color:#d2574a;margin-left:4px}.bc-settings-bigcommerce{font-size:16px}.bc-settings-header{color:#34313f;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-direction:column;flex-direction:column;margin-bottom:28px;padding:0 0 40px;position:relative}.bc-settings-header:before{display:table}.bc-settings-header:after{display:table;clear:both}@media (min-width:768px){.bc-settings-header{-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center}}.bc-settings-header:before{background-color:#e0e3e9;content:"";position:absolute;bottom:0;right:-20px;height:1px;width:calc(100% + 42px)}.bc-settings-header:after{background:transparent url(../img/admin/bc-bg-geometric.svg) no-repeat 100% 100%/contain;content:"";position:absolute;height:220px;width:75%;bottom:1px;right:-20px;z-index:1}@media (min-width:768px){.bc-settings-header:after{height:220px;width:50%}}.bc-settings-header .notice{box-sizing:border-box;-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:99.99999%;flex-basis:99.99999%;max-width:99.99999%;width:99.99999%}.bc-settings-header .notice:nth-child(1n){margin-right:20px;margin-left:0}.bc-settings-header .notice:last-child{margin-right:0}.bc-settings-header .notice:nth-child(12n){margin-right:0;margin-left:auto}@media (min-width:1200px){.bc-settings-header__welcome{margin-left:calc(4.16667% + .83333px)!important}}.bc-settings-header__cta,.bc-settings-header__welcome{position:relative;z-index:2}@media (min-width:768px){.bc-settings-header__cta,.bc-settings-header__welcome{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(41.66666% - 11.66667px);flex-basis:calc(41.66666% - 11.66667px);max-width:calc(41.66666% - 11.66667px);width:calc(41.66666% - 11.66667px);max-width:460px}.bc-settings-header__cta:nth-child(1n),.bc-settings-header__welcome:nth-child(1n){margin-right:20px;margin-left:0}.bc-settings-header__cta:last-child,.bc-settings-header__welcome:last-child{margin-right:0}.bc-settings-header__cta:nth-child(12n),.bc-settings-header__welcome:nth-child(12n){margin-right:0;margin-left:auto}}.bc-settings-header__cta{background-color:#f5f5f5;margin-top:30px;padding:20px}@media (min-width:768px){.bc-settings-header__cta{margin-top:0;padding:40px}}.bigcommerce_product_page_bigcommerce .bc-settings-header__welcome-title{color:#34313f;font-size:2em;line-height:1.01;margin-bottom:18px}@media (min-width:768px){.bigcommerce_product_page_bigcommerce .bc-settings-header__welcome-title{font-size:3em}}.bc-settings-header__welcome-text{font-size:1.125em}.bc-settings-header__cta-title{font-size:1.375em;line-height:1;margin:0 0 14px}.bc-settings-header__cta-text{font-size:1em;margin:0}.bc-settings-header__cta-btn{margin-top:20px}.bigcommerce_product_page_bigcommerce select[name=bigcommerce_import_frequency]{float:left;margin-right:14px;width:auto}.bc-settings-section+.bc-settings-section{margin-top:20px}.bc-settings-section__header{background-color:#fff;border:1px solid #e0e3e9;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:start;justify-content:flex-start;padding:20px;position:relative;transition:all .15s ease-in-out;width:100%}.bc-settings-section__header:focus,.bc-settings-section__header:hover{border-color:#4b71fc;outline:none}.bc-settings-section__header:focus .icon-bc-arrow-solid,.bc-settings-section__header:hover .icon-bc-arrow-solid{color:#4b71fc}.bc-settings-section__header .icon-bc-arrow-solid{font-size:20px;color:#8b8b8b;margin-left:auto;transition:all .15s ease-in-out}.bc-settings-section__header .bc-icon--settings{color:#4b71fc;font-size:17px;position:absolute}.bc-settings-section__header .icon-bc-import{font-size:10px}.bc-settings-section--open .bc-settings-section__header{background-color:#2c2935;border-color:#2c2935;box-shadow:0 3px 0 0 #eef0f2;color:#fff}.bc-settings-section--open .bc-settings-section__header .icon-bc-arrow-solid{color:#8b8b8b;transform:rotate(180deg)}.bc-settings-section--open .bc-settings-section__header .bc-icon--settings{color:#fff}.bc-settings-section__title{font-size:1.25em;font-weight:400;line-height:1.3;margin:0 0 0 30px}.bc-settings-section--open .bc-settings-section__title{color:#fff}.bc-settings-section__target{border:1px solid #e0e3e9;border-top:0;max-height:0;opacity:0;overflow:hidden}.bc-settings-section__body{background-color:#fff;color:#34313f;font-size:.875em;line-height:1.3;padding:20px 20px 40px}.bc-settings-section__body>p:first-child{margin-top:18px;padding-top:0}.bc-settings-section__body p{font-size:1em}.bc-settings-section__body .form-table p.description{color:#6c6c6c;font-size:.857em;font-style:italic}.bc-settings-section--bigcommerce_diagnostics .bc-diagnostics-data__description{margin:10px 0}.bc-settings-section--bigcommerce_diagnostics .bc-admin-diagnostics-loader{line-height:20px;vertical-align:middle;margin:20px 0;display:none}.bc-settings-section--bigcommerce_diagnostics .bc-admin-diagnostics-loader.is-active{display:block}.bc-settings-section--bigcommerce_diagnostics .spinner.bc-admin-spinner{float:none;display:inline-block;vertical-align:middle;position:relative;top:-3px}.wrap .bc-diagnostics-data--success{padding:9px 0;margin-bottom:20px}.bc-diagnostics-data--success .bc-icon{display:inline-block;position:relative;top:2px;color:#65c68c}.bc-diagnostics-data--error{border:1px solid #d2574a;padding:10px}.bc-diagnostics-data--error .bc-admin-btn{margin-top:20px}.bc-diagnostics-data,.bc-diagnostics-data__section,.bc-setings-diagnostics-wrapper{margin-top:10px;padding:20px 0}.bc-diagnostics-data__section{border-top:1px solid #cdcdcd}.bc-diagnostics-data__section .bc-admin-btn{margin-top:20px}.bc-diagnostics-data__section-header{margin-top:0}.bc-diagnostics-data__meta{padding:4px 0}@media (min-width:783px){.bc-diagnostics-data__meta{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:start;align-items:flex-start}}.bc-diagnostics-data__meta-label{font-weight:700}@media (min-width:783px){.bc-diagnostics-data__meta-label{-ms-flex:0 0 170px;flex:0 0 170px;padding-right:10px}}@media (min-width:783px){.bc-diagnostics-data__meta-value{-ms-flex:1;flex:1;padding-left:20px}}.bc-diagnostics-data__meta-importlogs .bc-diagnostics-data__meta-value{border:1px solid #cdcdcd;font-family:monospace;overflow:scroll;position:relative;height:200px;width:auto}.bc-diagnostics-data__meta-importlogs .bc-diagnostics-data__meta-value-container{position:absolute;top:5px;left:18px}.bc-diagnostics-data__meta-importlogs .bc-diagnostics-data__meta-value-container pre{margin:0}.bc-settings-form--bigcommerce .bc-settings-save{background:#fff;box-sizing:border-box;margin-top:30px}@media (min-width:783px){.bc-settings-form--bigcommerce .bc-settings-save{box-shadow:0 3px 0 0 #eef0f2;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;margin-top:0;position:fixed;top:31px;right:0;padding:10px 20px;width:calc(100% - 36px);z-index:3}}@media (min-width:960px){.bc-settings-form--bigcommerce .bc-settings-save{width:calc(100% - 160px)}}.bc-settings-form--bigcommerce .bc-settings-save__logo{display:none}@media (min-width:783px){.bc-settings-form--bigcommerce .bc-settings-save__logo{display:block}}.bc-settings-form--bigcommerce p.submit{padding:0;margin:0}.bigcommerce_product_page_bigcommerce #wpbody-content{margin-top:10px}@media (min-width:783px){.bigcommerce_product_page_bigcommerce #wpbody-content{margin-top:86px}}.bc-welcome{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin-top:10px}.bc-welcome:after,.bc-welcome:before{content:"";display:table}.bc-welcome:after{clear:both}@media (min-width:768px){.bc-welcome{-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:start;justify-content:flex-start;margin-top:30px}}@media (min-width:1200px){.bc-welcome{margin-top:110px}}@media (min-width:768px){.bc-welcome__content,.bc-welcome__notices{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(49.99999% - 10px);flex-basis:calc(49.99999% - 10px);max-width:calc(49.99999% - 10px);width:calc(49.99999% - 10px)}.bc-welcome__content:nth-child(1n),.bc-welcome__notices:nth-child(1n){margin-right:20px;margin-left:0}.bc-welcome__content:last-child,.bc-welcome__notices:last-child{margin-right:0}.bc-welcome__content:nth-child(12n),.bc-welcome__notices:nth-child(12n){margin-right:0;margin-left:auto}}@media (min-width:1200px){.bc-welcome__content,.bc-welcome__notices{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(41.66666% - 11.66667px);flex-basis:calc(41.66666% - 11.66667px);max-width:calc(41.66666% - 11.66667px);width:calc(41.66666% - 11.66667px)}.bc-welcome__content:nth-child(1n),.bc-welcome__notices:nth-child(1n){margin-right:20px;margin-left:0}.bc-welcome__content:last-child,.bc-welcome__notices:last-child{margin-right:0}.bc-welcome__content:nth-child(12n),.bc-welcome__notices:nth-child(12n){margin-right:0;margin-left:auto}}@media (min-width:1200px){.bc-welcome__content{margin-left:calc(8.33333% + 1.66667px)!important}}@media (min-width:1200px){.bc-welcome__content-wrap{margin-right:12.5%;max-width:410px}}.bc-welcome__content-title{color:#34313f;font-size:2em;font-weight:400;line-height:1.25;margin:18px 0 22px}@media (min-width:768px){.bc-welcome__content-title{font-size:3em;line-height:1.1}}.bc-welcome__content p{font-size:.938em;line-height:1.44;margin:0}@media (min-width:768px){.bc-welcome__content p{font-size:1.125em}}.bc-welcome__btn-group{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.bc-welcome__btn-group .bc-admin-btn{margin-bottom:20px}.bc-welcome__btn-group .bc-admin-btn:not(:last-child){margin-right:20px}.bc-welcome__content-wrap+.bc-welcome__btn-group{margin-top:40px}.bigcommerce_product_page_bigcommerce_welcome .bc-welcome__btn-group .bc-admin-btn--outline{background-color:#fff}.bigcommerce_product_page_bigcommerce_welcome .bc-welcome__btn-group .bc-admin-btn--outline:focus,.bigcommerce_product_page_bigcommerce_welcome .bc-welcome__btn-group .bc-admin-btn--outline:hover{background-color:#4b71fc}.bc-welcome__alt-actions{margin-top:20px}.bc-welcome__notice{background-color:#f5f5f5;margin-bottom:20px;padding:36px 30px}@media (min-width:1200px){.bc-welcome__notice{padding-right:12.5%}}.bc-welcome__notice-title{font-size:1.375em;font-weight:500;line-height:1.32;margin:0}.bc-welcome__notice-title+p{margin-top:2px}.bc-welcome__notice p{font-size:1em;line-height:1.5}.bc-settings-bigcommerce_connect,.bc-settings-bigcommerce_new_account{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.bc-settings-bigcommerce_connect:before,.bc-settings-bigcommerce_new_account:before{content:"";display:table}.bc-settings-bigcommerce_connect:after,.bc-settings-bigcommerce_new_account:after{content:"";display:table;clear:both}@media (min-width:768px){.bc-api-credentials__header,.bc-connect__header,.bc-new-account__header,.bc-settings-form--bigcommerce_api_credentials,.bc-settings-form--bigcommerce_channel,.bc-settings-form--bigcommerce_connect,.bc-settings-form--bigcommerce_new_account,.bc-welcome__account-connection{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(91.66666% - 1.66667px);flex-basis:calc(91.66666% - 1.66667px);max-width:calc(91.66666% - 1.66667px);width:calc(91.66666% - 1.66667px)}.bc-api-credentials__header:nth-child(1n),.bc-connect__header:nth-child(1n),.bc-new-account__header:nth-child(1n),.bc-settings-form--bigcommerce_api_credentials:nth-child(1n),.bc-settings-form--bigcommerce_channel:nth-child(1n),.bc-settings-form--bigcommerce_connect:nth-child(1n),.bc-settings-form--bigcommerce_new_account:nth-child(1n),.bc-welcome__account-connection:nth-child(1n){margin-right:20px;margin-left:0}.bc-api-credentials__header:last-child,.bc-connect__header:last-child,.bc-new-account__header:last-child,.bc-settings-form--bigcommerce_api_credentials:last-child,.bc-settings-form--bigcommerce_channel:last-child,.bc-settings-form--bigcommerce_connect:last-child,.bc-settings-form--bigcommerce_new_account:last-child,.bc-welcome__account-connection:last-child{margin-right:0}.bc-api-credentials__header:nth-child(12n),.bc-connect__header:nth-child(12n),.bc-new-account__header:nth-child(12n),.bc-settings-form--bigcommerce_api_credentials:nth-child(12n),.bc-settings-form--bigcommerce_channel:nth-child(12n),.bc-settings-form--bigcommerce_connect:nth-child(12n),.bc-settings-form--bigcommerce_new_account:nth-child(12n),.bc-welcome__account-connection:nth-child(12n){margin-right:0;margin-left:auto}}@media (min-width:1200px){.bc-api-credentials__header,.bc-connect__header,.bc-new-account__header,.bc-settings-form--bigcommerce_api_credentials,.bc-settings-form--bigcommerce_channel,.bc-settings-form--bigcommerce_connect,.bc-settings-form--bigcommerce_new_account,.bc-welcome__account-connection{margin-left:calc(8.33333% + 1.66667px)!important}}@media (min-width:1200px){.bc-settings-form--bigcommerce_api_credentials,.bc-settings-form--bigcommerce_channel,.bc-settings-form--bigcommerce_connect,.bc-settings-form--bigcommerce_new_account,.bc-welcome__account-connection{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(74.99999% - 5px);flex-basis:calc(74.99999% - 5px);max-width:calc(74.99999% - 5px);width:calc(74.99999% - 5px)}.bc-settings-form--bigcommerce_api_credentials:nth-child(1n),.bc-settings-form--bigcommerce_channel:nth-child(1n),.bc-settings-form--bigcommerce_connect:nth-child(1n),.bc-settings-form--bigcommerce_new_account:nth-child(1n),.bc-welcome__account-connection:nth-child(1n){margin-right:20px;margin-left:0}.bc-settings-form--bigcommerce_api_credentials:last-child,.bc-settings-form--bigcommerce_channel:last-child,.bc-settings-form--bigcommerce_connect:last-child,.bc-settings-form--bigcommerce_new_account:last-child,.bc-welcome__account-connection:last-child{margin-right:0}.bc-settings-form--bigcommerce_api_credentials:nth-child(12n),.bc-settings-form--bigcommerce_channel:nth-child(12n),.bc-settings-form--bigcommerce_connect:nth-child(12n),.bc-settings-form--bigcommerce_new_account:nth-child(12n),.bc-welcome__account-connection:nth-child(12n){margin-right:0;margin-left:auto}}.bc-api-credentials__header,.bc-connect__header,.bc-new-account__header{margin:10px 0 30px}@media (min-width:768px){.bc-api-credentials__header,.bc-connect__header,.bc-new-account__header{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(74.99999% - 5px);flex-basis:calc(74.99999% - 5px);max-width:calc(74.99999% - 5px);width:calc(74.99999% - 5px);margin:30px 0 50px;max-width:620px}.bc-api-credentials__header:nth-child(1n),.bc-connect__header:nth-child(1n),.bc-new-account__header:nth-child(1n){margin-right:20px;margin-left:0}.bc-api-credentials__header:last-child,.bc-connect__header:last-child,.bc-new-account__header:last-child{margin-right:0}.bc-api-credentials__header:nth-child(12n),.bc-connect__header:nth-child(12n),.bc-new-account__header:nth-child(12n){margin-right:0;margin-left:auto}}@media (min-width:1200px){.bc-api-credentials__header,.bc-connect__header,.bc-new-account__header{margin-top:60px}}.bc-settings .bc-settings-connect__title{color:#34313f;font-size:2em;font-weight:400;line-height:1.25;margin:18px 0 0}@media (min-width:768px){.bc-settings .bc-settings-connect__title{font-size:3em;line-height:1.1}}.bc-connect-spinner{float:none;visibility:visible;margin:0 10px 0 0}.bc-account-connection-response{padding:20px;font-size:.938em;border:1px solid #e0e3e9;border-left:10px solid #168fc0}.bc-account-connection-response--error{border-left-color:#d2574a}.bc-account-connection__error-title{margin-top:0}.bc-account-connection__error-code{font-size:1em;font-weight:700}.bc-account-connection__error-code code{font-weight:400}.bc-account-connection__error-message{display:block;margin-top:4px;font-size:.938em}.bigcommerce-notice{position:relative;padding:10px}.wp-admin .bigcommerce-notice{background-color:#fff}.bc-settings-bigcommerce .bigcommerce-notice{background-color:#f5f5f5;margin-bottom:10px}.bc-settings-bigcommerce .bigcommerce-notice:nth-child(2){margin-top:-20px}.bigcommerce-notice .bigcommerce-notice__list{list-style-type:disc;margin-left:20px}.bigcommerce-notice .bigcommerce-notice__list .bigcommerce-notice__list-item{margin-bottom:8px}.bigcommerce-notice__heading{margin-top:.5em}@media (min-width:768px){.bigcommerce-notice__heading{padding-right:130px}}p.bigcommerce-notice__refresh{margin:0}@media (min-width:768px){p.bigcommerce-notice__refresh{position:absolute;top:20px;right:20px}}.bigcommerce-notice__refresh-button{text-decoration:none;font-size:.75em;line-height:1.15;display:inline-block;text-transform:uppercase;letter-spacing:1px}.bigcommerce-notice__refresh-button i{display:inline-block;vertical-align:text-bottom;font-size:1.125em;line-height:.78}.bigcommerce-notice__import-status{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start;color:#fff;font-weight:500;transition:background-color .25s ease}@media (min-width:783px){.bigcommerce-notice__import-status{-ms-flex-wrap:nowrap;flex-wrap:nowrap}}.wp-admin .bigcommerce-notice__import-status{background-color:#4b71fc;border:0;padding:20px}.bigcommerce-notice__import-status.bigcommerce-notice__import-status--success{background-color:#65c68c;-ms-flex-line-pack:center;align-content:center;-ms-flex-align:center;align-items:center}.bigcommerce-notice__import-status.bigcommerce-notice__import-status--error{border:1px solid #d2574a;background-color:#fff;color:#34313f}.import-status{-ms-flex:1;flex:1;position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:start;align-items:flex-start}@media (min-width:783px){.import-status{-ms-flex:0 1 50%;flex:0 1 50%}}.import-status .bc-icon,.import-status .dashicons{-ms-flex:0 0 auto;flex:0 0 auto;font-size:16px;line-height:1.5;margin-right:4px;margin-top:3px}.import-status .dashicons-warning{color:#d2574a;font-size:21px;line-height:1.1}.import-status p.bc-import-status-message{-ms-flex:1;flex:1;margin:0;font-size:16px}.bigcommerce-notice__import-status--success .import-status{-ms-flex-pack:center;justify-content:center}@media (min-width:783px){.bigcommerce-notice__import-status--success .import-status{-ms-flex-pack:start;justify-content:flex-start}}.bigcommerce-notice__import-status--success .import-status p.bc-import-status-message{-ms-flex:0 0 auto;flex:0 0 auto}.import-status.import-status-previous p.bc-import-status-message{font-size:inherit}.bc-import-progress-bar__wrapper{-ms-flex:0 0 100%;flex:0 0 100%;line-height:1.5;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;height:20px;margin-top:20px}@media (min-width:783px){.bc-import-progress-bar__wrapper{-ms-flex:0 1 50%;flex:0 1 50%;-ms-flex-pack:end;justify-content:flex-end;margin-top:0}}.bc-import-progress-bar__wrapper .button{background:transparent;color:#fff;font-size:20px;border:0;box-shadow:none;opacity:1;transition:opacity .3s ease}.bc-import-progress-bar__wrapper .button:focus,.bc-import-progress-bar__wrapper .button:hover{color:#fff;background:transparent;opacity:.7}.bc-import-progress-count{-ms-flex:0 0 auto;flex:0 0 auto;text-align:right;padding-right:20px}.bc-import-progress-bar{-ms-flex:0 1 220px;flex:0 1 220px;position:relative;height:20px;border-radius:10px;overflow:hidden}.bc-import-progress-bar__mask{position:absolute;top:0;left:-100%;width:100%;height:100%;background-color:#34313f;border-radius:10px;transition:left .25s ease}.bc-import-progress-bar__bg{background-color:#fff;width:100%;height:100%}.bc-import-progress-bar__percent{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:10px;font-weight:700;color:#4b71fc;text-shadow:0 0 1px hsla(0,0%,98%,.5)}.bc-shortcode-ui__overlay{background:rgba(0,0,0,.7)}.bc-shortcode-ui__overlay,.bc-shortcode-ui__wrapper{position:fixed;top:0;right:0;height:100vh;width:100vw}.bc-shortcode-ui__wrapper{z-index:159000}.bc-shortcode-ui__wrapper[aria-hidden=true]{display:none}.bc-shortcode-ui__close-button{position:absolute;right:0;top:0;font-size:25px;background-color:transparent;border:0;padding:8px;z-index:20;cursor:pointer;opacity:.6;transition:opacity .3s ease}.bc-shortcode-ui__close-button:focus,.bc-shortcode-ui__close-button:hover{opacity:1}.bc-shortcode-ui__content{background:#f5f5f5;z-index:159901;position:absolute;width:90%;height:90%;left:5%;top:5%;overflow-y:scroll;font-size:16px}.bc-shortcode-ui__content>div{height:100%}.bc-shortcode-ui__content *{box-sizing:border-box}@media (min-width:960px){.bc-shortcode-ui__content{overflow:hidden}}.bc-shortcode-ui{height:100%}@media (min-width:960px){.bc-shortcode-ui{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap}}.bc-shortcode-ui__selectors{-ms-flex:1;flex:1;width:100%;height:auto;border-bottom:1px solid #ccc;padding:30px;overflow-y:scroll}@media (min-width:960px){.bc-shortcode-ui__selectors{-ms-flex:0 1 250px;flex:0 1 250px;height:100%;border-bottom:0;border-right:1px solid #ccc}}.bc-shortcode-ui__products-wrapper{width:100%;height:100%}@media (min-width:960px){.bc-shortcode-ui__products-wrapper{-ms-flex:1 1 auto;flex:1 1 auto;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap}}.bc-shortcode-ui__products{position:relative}@media (min-width:960px){.bc-shortcode-ui__products{-ms-flex:0 1 60%;flex:0 1 60%;height:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}}@media (min-width:1200px){.bc-shortcode-ui__products{-ms-flex:0 1 70%;flex:0 1 70%}}.bc-shortcode-ui__search{padding:40px 30px}.bc-shortcode-ui__product-grid{overflow-y:scroll;-webkit-overflow-scrolling:touch;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;height:100%;padding:10px 20px}.bc-shortcode-ui__settings{height:auto;border-top:1px solid #ccc;background:#fff;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-pack:justify;justify-content:space-between}@media (min-width:960px){.bc-shortcode-ui__settings{height:100%;-ms-flex:0 1 40%;flex:0 1 40%;border-top:0;border-left:1px solid #ccc}}@media (min-width:1200px){.bc-shortcode-ui__settings{-ms-flex:0 1 30%;flex:0 1 30%}}.bc-shortcode-ui__settings-header{position:relative;-ms-flex:0 0 150px;flex:0 0 150px;overflow:hidden}.bc-shortcode-ui__default-header,.bc-shortcode-ui__dynamic-listing-header,.bc-shortcode-ui__manual-listing-header{position:absolute;top:0;left:0;width:100%;height:100%;visibility:hidden;overflow:hidden;opacity:0;z-index:-1;transition:all .15s ease-in-out;padding:20px}@media (min-width:1200px){.bc-shortcode-ui__default-header,.bc-shortcode-ui__dynamic-listing-header,.bc-shortcode-ui__manual-listing-header{padding:30px}}.bc-shortcode-ui__default-header.active,.bc-shortcode-ui__dynamic-listing-header.active,.bc-shortcode-ui__manual-listing-header.active{z-index:1;visibility:visible;opacity:1}.bc-shortcode-ui__default-header{font-size:.813em}.bc-shortcode-ui__selections{position:relative;overflow:hidden;-ms-flex:0 1 40%;flex:0 1 40%;border-top:1px solid #ccc}.bc-shortcode-ui__overflow-mask{position:absolute;height:65px;left:0;bottom:0;width:100%;background:linear-gradient(180deg,transparent 30%,hsla(0,0%,100%,.82) 70%);pointer-events:none}@media (min-width:1200px){.bc-shortcode-ui__overflow-mask{height:80px}}.bc-shortcode-ui__selected-products,.bc-shortcode-ui__selected-terms{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;visibility:hidden;opacity:0;z-index:-1;transition:all .15s ease-in-out}.bc-shortcode-ui__selected-products.active,.bc-shortcode-ui__selected-terms.active{visibility:visible;opacity:1;z-index:1}.bc-shortcode-ui__products-list,.bc-shortcode-ui__terms-list{overflow-y:scroll;-webkit-overflow-scrolling:touch;height:300px;margin:0;padding:20px}@media (min-width:1200px){.bc-shortcode-ui__products-list,.bc-shortcode-ui__terms-list{height:100%;padding:30px}}.bc-shortcode-ui__products-list{height:100%}.bc-shortcode-ui__terms-list-item{display:inline-block;vertical-align:middle;border-radius:4px;padding:4px 2px 4px 10px;font-size:.75em;line-height:1.67;font-weight:500;margin-right:4px;margin-bottom:4px;background-color:transparent;border:1px solid #168fc0;color:#34313f;word-break:break-all}.bc-shortcode-ui__terms-list-item button{position:relative;background-color:transparent;border:0;display:inline-block;vertical-align:middle;line-height:20px;opacity:.75;padding:2px 6px;color:#168fc0;cursor:pointer;transition:all .15s ease-in-out}.bc-shortcode-ui__terms-list-item button:focus,.bc-shortcode-ui__terms-list-item button:hover{opacity:1}.bc-shortcode-ui__terms-list-item button i{font-size:20px}.bc-shortcode-ui__terms-list-term{vertical-align:middle}.bc-shortcode-ui__actions{width:100%;height:auto;padding:20px;border-top:1px solid #ccc;-ms-flex:0 1 40%;flex:0 1 40%}@media (min-width:1200px){.bc-shortcode-ui__actions{padding:30px}}.bc-shortcode-ui__actions .button{display:block;margin:30px auto 0}.bc-shortcode-ui__display-settings{font-size:.813em}.bc-shortcode-ui__display-settings>*{display:block;margin-top:20px}.bc-shortcode-ui__display-settings .bc-shortcode-ui__field-label{display:block;margin-bottom:4px}.bc-shortcode-ui__display-settings input[type=radio]{display:inline-block}.bc-shortcode-ui__display-settings .bc-shortcode-ui__product-order,.bc-shortcode-ui__display-settings .bc-shortcode-ui__product-orderby{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.bc-shortcode-ui__display-settings .bc-shortcode-ui__product-order .bc-shortcode-ui__field-label,.bc-shortcode-ui__display-settings .bc-shortcode-ui__product-orderby .bc-shortcode-ui__field-label{-ms-flex:0 0 100%;flex:0 0 100%}.bc-shortcode-ui__display-settings .bc-shortcode-ui__product-orderby label,.bc-shortcode-ui__display-settings .bc-shortcode-ui__product-order label{-ms-flex:0 0 50%;flex:0 0 50%}.bc-shortcode-ui__display-settings .bc-shortcode-ui__product-orderby label .bc-shortcode-ui__field-label,.bc-shortcode-ui__display-settings .bc-shortcode-ui__product-order label .bc-shortcode-ui__field-label{display:inline-block;margin-bottom:0}.bc-shortcode-ui__posts-per-page--control{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:center;align-items:center}.bc-shortcode-ui__posts-per-page-icon{-ms-flex:0 0 auto;flex:0 0 auto;margin-right:8px}.bc-shortcode-ui__posts-per-page{-ms-flex:0 1 140px;flex:0 1 140px;margin-right:8px;width:100%;cursor:pointer}.bc-shortcode-ui__posts-per-page-value{-ms-flex:0 0 44px;flex:0 0 44px;padding:4px;margin-right:4px;border:1px solid #ccc;text-align:center}.bc-shortcode-ui__posts-per-page-reset{-ms-flex:0 0 44px;flex:0 0 44px;cursor:pointer;border:0;color:#168fc0}.bc-shortcode-ui__posts-per-page-reset:focus,.bc-shortcode-ui__posts-per-page-reset:hover{color:#0d5573}.bc-shortcode-ui__logo{background:url(../img/admin/big-commerce-logo.png) no-repeat top;background-size:contain;width:132px;height:30px;display:block;margin:4px auto 30px}.bc-shortcode-ui__query-builder-list{margin:0}.bc-shortcode-ui__query-builder-child-list{padding-left:20px;max-height:0;opacity:0;overflow:hidden}.bc-shortcode-ui__query-builder-list-item{border-bottom:1px solid #ccc;font-size:.813em;padding:12px 0;display:block;width:100%;margin-bottom:0}.bc-shortcode-ui__query-builder-child-list .bc-shortcode-ui__query-builder-list-item{border-bottom:0;margin-bottom:0;padding:0}.bc-shortcode-ui__query-builder-anchor,.bc-shortcode-ui__query-builder-toggle{display:inline-block;text-decoration:none;color:#5e5e5e;font-weight:700;transition:all .15s ease-in-out;padding:4px 0;position:relative}.bc-shortcode-ui__query-builder-anchor:focus,.bc-shortcode-ui__query-builder-anchor:hover,.bc-shortcode-ui__query-builder-toggle:focus,.bc-shortcode-ui__query-builder-toggle:hover{color:#34313f}.bc-shortcode-ui__query-builder-anchor.bcqb-item-selected,.bc-shortcode-ui__query-builder-toggle.bcqb-item-selected{color:#53bad1}.bc-shortcode-ui__query-builder-child-list .bc-shortcode-ui__query-builder-anchor{font-weight:400}.bc-shortcode-ui__query-builder-child-list .bc-shortcode-ui__query-builder-anchor.bcqb-item-selected{color:#34313f}.bc-shortcode-ui__query-builder-child-list .bc-shortcode-ui__query-builder-anchor.bcqb-item-selected:before{content:"";width:10px;height:10px;border-radius:10px;position:absolute;top:50%;margin-top:-5px;left:-20px;background-color:#53bad1}.bc-shortcode-ui__query-builder-toggle{display:block;width:100%;background:transparent;border:0;cursor:pointer;text-align:left}.bc-shortcode-ui__query-builder-toggle .icon{float:right}.bc-shortcode-ui__searchform{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:start;align-items:flex-start;position:relative}.bc-shortcode-ui__searchform .choices{-ms-flex:1 1 auto;flex:1 1 auto;margin-bottom:0}.bc-shortcode-ui__searchform .choices__inner{padding-right:88px}.bc-shortcode-ui__searchform input.choices__input{font-size:.857em}.bc-shortcode-ui__searchform .bc-shortcode-ui-search__submit-button{-ms-flex:0 0 95px;flex:0 0 95px;font-size:.75em;line-height:1;padding:15px 28px;margin-left:20px;cursor:pointer;border:1px solid #ddd;max-width:95px}.bc-shortcode-ui__searchform .bc-shortcode-ui-search__clear-search{background:transparent;border:0;color:#6495ed;font-size:.813em;position:absolute;right:125px;top:12px;cursor:pointer}input.choices__input{background-color:transparent;border:0;box-shadow:none;font-size:.75em;width:140px!important}.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=text] .choices__button{background-image:url(../img/admin/icons/cross.svg)}.bc-shortcode-ui__product{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:99.99999%;flex-basis:99.99999%;max-width:99.99999%;width:99.99999%;margin-bottom:20px;padding:10px;position:relative}.bc-shortcode-ui__product:nth-child(1n){margin-right:20px;margin-left:0}.bc-shortcode-ui__product:last-child{margin-right:0}.bc-shortcode-ui__product:nth-child(1n){margin-right:0;margin-left:auto}@media (min-width:600px){.bc-shortcode-ui__product{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%;width:50%;margin-bottom:10px}.bc-shortcode-ui__product:nth-child(1n){margin-right:0;margin-left:0}.bc-shortcode-ui__product:last-child{margin-right:0}.bc-shortcode-ui__product:nth-child(2n){margin-right:0;margin-left:auto}}@media (min-width:768px){.bc-shortcode-ui__product{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:33.33333%;flex-basis:33.33333%;max-width:33.33333%;width:33.33333%}.bc-shortcode-ui__product:nth-child(1n){margin-right:0;margin-left:0}.bc-shortcode-ui__product:last-child{margin-right:0}.bc-shortcode-ui__product:nth-child(3n){margin-right:0;margin-left:auto}}@media (min-width:960px){.bc-shortcode-ui__product{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%;width:50%}.bc-shortcode-ui__product:nth-child(1n){margin-right:0;margin-left:0}.bc-shortcode-ui__product:last-child{margin-right:0}.bc-shortcode-ui__product:nth-child(2n){margin-right:0;margin-left:auto}}@media (min-width:1200px){.bc-shortcode-ui__product{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:33.33333%;flex-basis:33.33333%;max-width:33.33333%;width:33.33333%}.bc-shortcode-ui__product:nth-child(1n){margin-right:0;margin-left:0}.bc-shortcode-ui__product:last-child{margin-right:0}.bc-shortcode-ui__product:nth-child(3n){margin-right:0;margin-left:auto}}@media (min-width:1600px){.bc-shortcode-ui__product{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%;width:25%}.bc-shortcode-ui__product:nth-child(1n){margin-right:0;margin-left:0}.bc-shortcode-ui__product:last-child{margin-right:0}.bc-shortcode-ui__product:nth-child(4n){margin-right:0;margin-left:auto}}.bc-shortcode-ui__product-inner .bc-icon.icon-bc-selected{display:block;position:absolute;top:15px;right:15px;font-size:1.25em;opacity:0;color:#168fc0}.bc-shortcode-ui__selected-result .bc-shortcode-ui__product-inner .bc-icon.icon-bc-selected{opacity:1}.bc-shortcode-ui__product-anchor{color:#34313f;text-decoration:none;position:absolute;left:0;top:0;width:100%;height:100%;display:block;cursor:pointer;opacity:0;transition:all .15s ease-in-out;background:transparent;outline:rgba(0,0,0,.4)}.bc-shortcode-ui__product-anchor:focus,.bc-shortcode-ui__product-anchor:hover{opacity:1;border:1px solid #ccc;color:#34313f}.bc-shortcode-ui__product-anchor:focus .bc-shortcode-ui__product-actions,.bc-shortcode-ui__product-anchor:hover .bc-shortcode-ui__product-actions{display:block}.bc-shortcode-ui__product-anchor-status{display:block;position:absolute;left:50%;top:20%;width:100%;max-width:130px;background:#168fc0;text-align:center;padding:0 10px;font-size:.75em;line-height:2.7;color:#fff;border-radius:4px;transform:translateX(-50%)}.bc-shortcode-ui__product-image{background:#e0e3e9 no-repeat top;width:100%;margin:0;position:relative;box-sizing:border-box}.bc-shortcode-ui__product-image>*{position:absolute;top:0;right:0;bottom:0;left:0;box-sizing:border-box}.bc-shortcode-ui__product-image:before{position:relative;display:block;content:"";padding-top:100%;box-sizing:border-box}.bc-shortcode-ui__product-image--featured{background-size:cover}.bc-shortcode-ui__product-image--placeholder{background-size:50% 50%;background-position:50%}.bc-shortcode-ui__product-meta{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.bc-shortcode-ui__product-title{-ms-flex:1 1 auto;flex:1 1 auto;font-size:1em;margin:16px 0;line-height:1.25}.bc-shortcode-ui__product-price{font-size:1em;line-height:1.25;margin:16px 0 16px 14px}.bc-shortcode-ui__product-description{font-size:.875em;line-height:1.3}.bc-shortcode-ui__product-query-dimmer{position:absolute;width:100%;height:100%;top:0;left:0;background:rgba(0,0,0,.4);opacity:0;transition:opacity .15s ease;z-index:-1}.bc-shortcode-ui__product-query-dimmer.active{opacity:1;z-index:2000000}.bc-shortcode-ui__product-query-loader .spinner{opacity:0;transition:all .15s ease-in-out}.bc-shortcode-ui__product-query-loader.active .spinner{opacity:.5;visibility:visible}.bc-shortcode-ui__selected-products-title{margin-bottom:0}.bc-shortcode-ui__selected-product{margin-bottom:17px}.bc-shortcode-ui__selected-product h5,.bc-shortcode-ui__selected-product span{margin:0;display:inline;font-weight:400;font-size:.875em;line-height:1.43}.bc-shortcode-ui__remove-selected{display:inline-block;background:transparent;border:0;padding:0;color:#168fc0;cursor:pointer;font-size:.813em}.bc-shortcode-ui__remove-selected:focus,.bc-shortcode-ui__remove-selected:hover{color:#5273f4}.bc-import-now{margin-top:38px}.bc-import-now .bc-products-sync{background-color:#168fc0;color:#fff;padding:0 30px;border:0;border-radius:20px;box-shadow:none;text-transform:uppercase;font-size:1.125em;line-height:40px;height:40px;opacity:1;transition:opacity .3s ease}.bc-import-now .bc-products-sync:focus,.bc-import-now .bc-products-sync:hover{background-color:#168fc0;color:#fff;opacity:.9}.bc-import-now .bc-products-sync:before{margin-right:6px}.bc-import-now .bc-products-sync-label{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700}.post-type-bigcommerce_product.post-php .misc-pub-bigcommerce .dashicons{position:relative;top:-3px;padding-right:3px;color:#82878c}.post-type-bigcommerce_product.post-php .editor-post-permalink__edit{display:none}.post-type-bigcommerce_product.edit-php .bc-settings-header__cta-btn{display:none;margin-top:0;margin-left:0}.post-type-bigcommerce_product.edit-php .bc-settings-header__cta-btn--active{display:inline-block;margin-left:20px;vertical-align:bottom;margin-bottom:2px}.post-type-bigcommerce_product.edit-php .bc-settings-header__cta-btn .bc-admin-btn{font-size:10px;line-height:.9;text-decoration:none;text-transform:uppercase;letter-spacing:1px;color:#4b71fc;opacity:1;transition:opacity .3s ease}.post-type-bigcommerce_product.edit-php .bc-settings-header__cta-btn .bc-admin-btn .bc-icon{font-size:14px;line-height:.9;vertical-align:text-top;margin-right:6px;border-left:1px solid #cdcdcd;padding-left:15px}.post-type-bigcommerce_product.edit-php .bc-settings-header__cta-btn .bc-admin-btn:focus,.post-type-bigcommerce_product.edit-php .bc-settings-header__cta-btn .bc-admin-btn:hover{opacity:.8}.inline-edit-bigcommerce_product .inline-edit-col-left .inline-edit-col>label:nth-child(2){display:none} \ No newline at end of file diff --git a/assets/css/bc-gutenberg.css b/assets/css/bc-gutenberg.css index fd6f73dd..a2cde8ed 100644 --- a/assets/css/bc-gutenberg.css +++ b/assets/css/bc-gutenberg.css @@ -69,22 +69,22 @@ /* Components */ /* Components */ .bc-product__title{ - font-size: 18px; - line-height: 22px; + font-size: 1.125em; + line-height: 1.2; font-weight: 700; padding: 0; margin: 0 0 18px; } @media (min-width: 768px){ .bc-product__title{ - font-size: 20px; - line-height: 24px; + font-size: 1.25em; + line-height: 1.2; } } @media (min-width: 960px){ .bc-product__title{ - font-size: 24px; - line-height: 28px; + font-size: 1.5em; + line-height: 1.15; } } .bc-product__title-link{ @@ -106,14 +106,17 @@ } .bc-product__inventory{ display: inline-block; - font-size: 14px; - line-height: 22px; + font-size: 0.875em; + line-height: 1.6; font-weight: 400; vertical-align: baseline; } +.bc-product-card .bc-product__inventory{ + font-size: 0.563em; +} .bc-product-single__meta .bc-product__title,.bc-product-card--single .bc-product__title{ - font-size: 24px; - line-height: 28px; + font-size: 1.5em; + line-height: 1.15; margin-top: 0; margin-bottom: 10px; padding: 0; @@ -121,26 +124,35 @@ } @media (min-width: 768px){ .bc-product-single__meta .bc-product__title,.bc-product-card--single .bc-product__title{ - font-size: 28px; - line-height: 32px; + font-size: 1.75em; } } @media (min-width: 960px){ .bc-product-single__meta .bc-product__title,.bc-product-card--single .bc-product__title{ - font-size: 32px; - line-height: 36px; + font-size: 2em; + line-height: 1.125; } } .bc-product-single__meta .bc-product__inventory,.bc-product-card--single .bc-product__inventory{ - font-size: 16px; + font-size: 0.563em; margin: 0; } +@media (min-width: 768px){ + .bc-product-single__meta .bc-product__inventory,.bc-product-card--single .bc-product__inventory{ + font-size: 0.571em; + } +} +@media (min-width: 960px){ + .bc-product-single__meta .bc-product__inventory,.bc-product-card--single .bc-product__inventory{ + font-size: 0.5em; + } +} .bc-product-card--related .bc-product__title{ margin-bottom: 15px; } .bc-product__brand{ display: block; - font-size: 14px; + font-size: 0.875em; line-height: 1; font-weight: 700; margin-bottom: 10px; @@ -157,7 +169,7 @@ } .bc-product-single .bc-product__brand,.bc-product-card--single .bc-product__brand{ display: block; - font-size: 16px; + font-size: 1em; margin-bottom: 10px; } .bc-product__pricing{ @@ -165,7 +177,7 @@ font-weight: normal; } .bc-product__price{ - font-size: 16px; + font-size: 1em; } .bc-product__original-price{ text-decoration: line-through; @@ -221,7 +233,7 @@ vertical-align: middle; padding: 7px 8px; background-color: #e0e3e9; - font-size: 12px; + font-size: 0.522em; line-height: 1; font-weight: 600; } @@ -233,11 +245,22 @@ font-weight: 600; } .bc-product-single .bc-product-flag--grey,.bc-product-card--single .bc-product-flag--grey{ + font-size: 0.5em; margin-bottom: 5px; } +@media (min-width: 768px){ + .bc-product-single .bc-product-flag--grey,.bc-product-card--single .bc-product-flag--grey{ + font-size: 0.429em; + } +} +@media (min-width: 960px){ + .bc-product-single .bc-product-flag--grey,.bc-product-card--single .bc-product-flag--grey{ + font-size: 0.375em; + } +} .bc-product__description{ - font-size: 16px; - line-height: 24px; + font-size: 1em; + line-height: 1.5; margin-bottom: 30px; } @media (min-width: 960px){ @@ -312,7 +335,7 @@ .bc-product-form__modifier-label{ display: block; margin-bottom: 10px; - font-size: 16px; + font-size: 1em; font-weight: 700; } .bc-product-form__option-variants{ @@ -357,17 +380,17 @@ input.bc-product-variant__radio--hidden{ .bc-product-form__message{ display: block; padding: 12px 16px; - font-size: 12px; + font-size: 0.75em; } .bc-product-form__modifier-description{ display: block; - font-size: 12px; - line-height: 14px; + font-size: 0.75em; + line-height: 1.15; padding: 0 10px; margin-top: 4px; } .bc-product-form__option-select{ - font-size: 16px; + font-size: 1em; } .bc-product-form__control--swatch input.bc-product-variant__radio--hidden:checked + .bc-product-variant__label .bc-product-variant__label--swatch{ border: 0 solid #fff; @@ -397,7 +420,7 @@ input.bc-product-variant__radio--hidden{ .bc-product-variant__label--rectangle{ display: block; height: 36px; - line-height: 24px; + line-height: 1.5; padding: 5px 10px; text-align: center; border: 1px solid #cdcdcd; @@ -460,7 +483,7 @@ input.bc-product-variant__radio--hidden{ -webkit-box-flex: 1; -ms-flex: 1; flex: 1; - line-height: 24px; + line-height: 1.5; } .bc-single-product__rating{ unicode-bidi: bidi-override; @@ -526,7 +549,7 @@ input.bc-product-variant__radio--hidden{ font-size: 15px; } .bc-single-product__rating-reviews{ - font-size: 12px; + font-size: 0.75em; font-weight: 700; margin-left: 10px; display: inline-block; @@ -548,7 +571,7 @@ input.bc-product-variant__radio--hidden{ margin-right: auto; } .bc-product__spec{ - font-size: 14px; + font-size: 0.875em; -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; @@ -642,7 +665,7 @@ input.bc-product-variant__radio--hidden{ margin-top: 0; } .bc-single-product__section-title--related{ - font-size: 24px; + font-size: 1.5em; margin-bottom: 0; } .bc-product-archive__refinery{ @@ -736,7 +759,7 @@ input.bc-product-variant__radio--hidden{ } } .bc-product-archive__select-label{ - font-size: 12px; + font-size: 0.75em; text-transform: uppercase; margin-right: 10px; font-weight: 700; @@ -792,7 +815,7 @@ input.bc-product-variant__radio--hidden{ } } .bc-form .bc-product-archive__select-field{ - font-size: 12px; + font-size: 0.75em; color: #8b8b8b; } .bc-product-archive__search-submit{ @@ -802,7 +825,7 @@ input.bc-product-variant__radio--hidden{ -webkit-transition: all 0.15s ease-in-out; transition: all 0.15s ease-in-out; height: 100%; - font-size: 16px; + font-size: 1em; } .bc-product-archive__search-submit.bc-btn.bc-btn--small{ max-width: none; @@ -856,7 +879,7 @@ input.bc-product-variant__radio--hidden{ .bc-alert{ background-color: #168fc0; color: #fff; - font-size: 16px; + font-size: 1em; line-height: 1.5; padding: 12px 16px; margin-bottom: 40px; @@ -878,7 +901,7 @@ input.bc-product-variant__radio--hidden{ .bc-alert-group--info{ background-color: #cdcdcd; color: #34313f; - font-size: 14px; + font-size: 0.875em; } .bc-product-form .bc-alert-group--info{ margin-bottom: 0; @@ -902,7 +925,7 @@ input.bc-product-variant__radio--hidden{ margin-top: 10px; margin-bottom: 10px; font-weight: 400; - font-size: 13px; + font-size: 0.813em; } .bc-load-items{ position: relative; @@ -943,8 +966,8 @@ input.bc-product-variant__radio--hidden{ .bc-no-results__button{ background: transparent; color: #5273f4; - font-size: 14px; - line-height: 14px; + font-size: 0.875em; + line-height: 1; outline: none; border: 0; cursor: pointer; @@ -974,7 +997,7 @@ input.bc-product-variant__radio--hidden{ /* Error Handling */ .bc-pagination__error-message{ display: block; - font-size: 14px; + font-size: 0.875em; } .bc-order-product-row{ display: -webkit-box; @@ -1026,14 +1049,14 @@ input.bc-product-variant__radio--hidden{ } } .bc-order-product-row__header .bc-order-product-row__title{ - font-size: 20px; - line-height: 24px; + font-size: 1.25em; + line-height: 1.2; margin: 0 10px 0 0; } @media (min-width: 960px){ .bc-order-product-row__header .bc-order-product-row__title{ - font-size: 24px; - line-height: 32px; + font-size: 1.5em; + line-height: 1.3; } } .bc-order-product-row__header .bc-product-flag--grey{ @@ -1042,8 +1065,8 @@ input.bc-product-variant__radio--hidden{ .bc-order-product-row__brand, .bc-order-product-row__unit-price, .bc-order-product-row__option{ - font-size: 16px; - line-height: 22px; + font-size: 1em; + line-height: 1.375; margin-bottom: 4px; } .bc-order-product-row__brand{ @@ -1060,8 +1083,8 @@ input.bc-product-variant__radio--hidden{ } .bc-order-product-row__option{ color: #8b8b8b; - font-size: 12px; - line-height: 18px; + font-size: 0.75em; + line-height: 1.5; margin-top: 10px; } .bc-order-product-row__option-label{ @@ -1071,9 +1094,9 @@ input.bc-product-variant__radio--hidden{ font-weight: 300; } .bc-order-product-row__status{ - font-size: 16px; + font-size: 1em; font-weight: 700; - line-height: 22px; + line-height: 1.375; margin-bottom: 12px; } @media (min-width: 768px){ @@ -1083,15 +1106,15 @@ input.bc-product-variant__radio--hidden{ -webkit-box-flex: 0; -ms-flex: 0 0 150px; flex: 0 0 150px; - font-size: 20px; - line-height: 24px; + font-size: 1.25em; + line-height: 1.2; margin: 0 0 0 auto; } } .bc-order-product-row__quantity{ - font-size: 12px; + font-size: 0.75em; font-weight: 700; - line-height: 18px; + line-height: 1.5; margin-bottom: 12px; } @media (min-width: 768px){ @@ -1104,9 +1127,9 @@ input.bc-product-variant__radio--hidden{ } } .bc-order-product-row__total{ - font-size: 16px; + font-size: 1em; font-weight: 700; - line-height: 22px; + line-height: 1.375; margin-bottom: 26px; } @media (min-width: 768px){ @@ -1114,7 +1137,7 @@ input.bc-product-variant__radio--hidden{ -webkit-box-flex: 0; -ms-flex: 0 0 150px; flex: 0 0 150px; - font-size: 20px; + font-size: 1.25em; text-align: right; margin-bottom: 0; } @@ -1150,8 +1173,8 @@ a.bc-btn, padding: 15px 20px; border-radius: 0; font-weight: 600; - line-height: 20px; - font-size: 13px; + line-height: 1.6; + font-size: 0.813em; text-transform: uppercase; text-align: center; text-decoration: none; @@ -1195,7 +1218,7 @@ a.bc-btn, background-color: #5e5e5e; color: #fff; padding: 15px 20px; - line-height: 20px; + line-height: 1.6; font-family: sans-serif; opacity: 0.6; cursor: not-allowed; @@ -1217,7 +1240,7 @@ a.bc-btn, background-color: #5e5e5e; color: #fff; padding: 15px 20px; - line-height: 20px; + line-height: 1.6; font-family: sans-serif; opacity: 0.6; } @@ -1273,7 +1296,7 @@ button.bc-quickview-trigger { background-color: #fff; color: #34313f; font-weight: normal; - font-size: 14px; + font-size: 0.875em; border-radius: 20px; text-align: center; } @@ -1699,12 +1722,12 @@ button.bc-quickview-trigger { width: 100%; } .bc-no-results__message { - font-size: 22px; - line-height: 24px; + font-size: 1.375em; + line-height: 1.1; } .bc-no-results__button { margin: 0 auto; - font-size: 16px; + font-size: 1em; text-decoration: none; } @@ -1779,14 +1802,23 @@ button.bc-quickview-trigger { .bc-product-single .bc-product__sku { display: block; margin-top: 20px; - font-size: 14px; + font-size: 0.875em; +} +.bc-product-single .bc-product__sku .bc-product-single__meta-label { + font-size: 1.143em; } .bc-product-single .bc-product-single__meta-label { - font-size: 16px; + font-size: 1em; font-weight: 700; } .bc-product-single .bc-product-form { margin-top: 40px; + opacity: 1; + -webkit-transition: opacity 0.3s ease; + transition: opacity 0.3s ease; +} +.bc-product-single .bc-product-form.bc-product__is-setting-options { + opacity: 0.5; } .bc-product-single .bc-btn { margin-top: 40px; @@ -1804,10 +1836,10 @@ button.bc-quickview-trigger { .bc-product-single .bc-single-product__section-title { font-weight: 700; margin-bottom: 20px; - font-size: 16px; + font-size: 1em; } .bc-product-single .bc-single-product__section-title--related { - font-size: 24px; + font-size: 1.5em; } .bc-product-single .bc-single-product__ratings { margin-top: 20px; @@ -1831,14 +1863,15 @@ button.bc-quickview-trigger { input.bc-product-form__quantity-input[type=number] { background: #fff; border: 1px solid #e0e3e9; - font-size: 13px; + font-size: 0.813em; text-align: center; - width: 42px; + padding-left: 6px; + padding-right: 6px; + width: 70px; } @media (min-width: 768px) { input.bc-product-form__quantity-input[type=number] { - font-size: 16px; - width: 52px + font-size: 1em } } input.bc-product-form__quantity-input[type=number]:focus { @@ -2001,4 +2034,4 @@ button.bc-product-quick-view__close-button:hover, outline: none; } -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3Bjc3MvYWRtaW4vYmMtZ3V0ZW5iZXJnLnBjc3MiLCIuLi9wY3NzL3V0aWxpdGllcy92YXJpYWJsZXMvX2NvbG9ycy5wY3NzIiwiLi4vcGNzcy91dGlsaXRpZXMvdmFyaWFibGVzL190eXBvZ3JhcGh5LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fYWxsLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fdGl0bGUucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19icmFuZC5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX3ByaWNlLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fZmxhZ3MucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19kZXNjcmlwdGlvbi5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX2dhbGxlcnkucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19mb3JtLWNvbXBvbmVudHMucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19vcHRpb24tZHJvcGRvd24ucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19vcHRpb24tc3dhdGNoLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fb3B0aW9uLXJlY3RhbmdsZS5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX29wdGlvbi1waWNrLWxpc3QucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19vcHRpb24tcmFkaW8ucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19yYXRpbmdzLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fc3BlY3MucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19yZWxhdGVkLXByb2R1Y3RzLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fcmVmaW5lcnkucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19zdWJuYXYucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19hbGVydC5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX3BhZ2luYXRpb24ucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19vcmRlci1wcm9kdWN0LXJvdy5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX2ltYWdlcy5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2J1dHRvbnMvX2RlZmF1bHQucGNzcyIsIi4uL3Bjc3MvY29udGVudC9idXR0b25zL19xdWljay12aWV3LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY2FyZHMvX2RlZmF1bHQucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jYXJkcy9fc2luZ2xlLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvbG9vcC9fZGVmYXVsdC5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2xvb3AvX25vLXJlc3VsdHMucGNzcyIsIi4uL3Bjc3MvY29udGVudC9zaW5nbGUvX3Byb2R1Y3QucGNzcyIsIi4uL3Bjc3MvY29udGVudC9zaW5nbGUvX3Byb2R1Y3QtcXVpY2stdmlldy5wY3NzIiwiLi4vcGNzcy9hZG1pbi9ndXRlbmJlcmcvX2RlZmF1bHQucGNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7O0FBRUgsbUJBQW1CO0FDUm5CO0NBQ0M7O29GQUVtRjs7Q0FnQm5GOztvRkFFbUY7O0NBS25GOztvRkFFbUY7O0NBTW5GOztvRkFFbUY7O0NBTW5GOztvRkFFbUY7O0NBUW5GOztvRkFFbUY7O0NBS25GOztvRkFFbUY7O0NBS25GOztvRkFFbUY7O0NBS25GOztvRkFFbUY7Q0FPbkY7QUNsRkQ7Q0FDQzs7b0ZBRW1GOztDQU9uRjs7b0ZBRW1GOztDQU1uRjs7b0ZBRW1GOztDQVFuRjs7b0ZBRW1GOztDQVFuRjs7b0ZBRW1GO0NBSW5GOztBRjdC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YUFBYTtFQUNiLHFCQUFxQjtFQUNyQixvQkFBZTtNQUFmLG1CQUFlO1VBQWYsY0FBZTtFQUVoQjtDQURDO0FBR0Y7Q0FDQyxZQUFZO0NBYVo7QUFYQTtDQUhEO0VBSUUsbUJBQW9CO0VBVXJCO0NBVEM7QUFFRDtDQVBEO0VBUUUsdUJBQXdCO0VBTXpCO0NBTEM7QUFFRDtDQVhEO0VBWUUsZUFBZ0I7RUFFakI7Q0FEQztBQUdGO0NBQ0Msb0JBQW9CO0NBQ3BCO0FBRUQ7Q0FDQyxvQkFBb0I7Q0FDcEI7QUFFRDtDQUNDLGlCQUFxQztDQUNyQztBQUVEO0NBQ0MsNkJBQVM7S0FBVCxrQkFBUztTQUFULFNBQVM7Q0FDVCxZQUFZO0NBQ1osaUJBQWlCO0NBQ2pCLGtCQUFrQjtDQUNsQiw4QkFBaUQ7Q0FhakQ7QUFYQTtDQVBEO0VBUUUsd0JBQXdCO0VBQ3hCLHlCQUFxQjtNQUFyQixvQkFBcUI7RUFTdEI7Q0FSQztBQUVEO0NBWkQ7RUFhRSxvQkFBZTtNQUFmLG1CQUFlO1VBQWYsZUFBZTtFQUNmLDZCQUFTO01BQVQsa0JBQVM7VUFBVCxTQUFTO0VBQ1QsZ0JBQWdCO0VBQ2hCLHVCQUF3QjtFQUV6QjtDQURDOztBaEN2R0gsOEJBQThCO0FpQzlCNUI7Q0FDQyxjQUFjO0NBS2Q7QUFIQTtDQUNDLGVBQWU7Q0FDZjtBQUlIO0NBQ0MsVUFBVTtDQUNWLGNBQWM7Q0FDZCIsImZpbGUiOiJiYy1ndXRlbmJlcmcuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFdvcmRQcmVzcyBHdXRlbmJlcmcgQmxvY2sgQ1NTXG4gKlxuICogVGhpcyBjc3MgZmlsZXMgaW5jbHVkZXMgYXJlIGxvYWRlZCB3aXRoIEd1dGVuYmVyZyBibG9jayBzY3JpcHRzIGluIHRoZSBhZG1pbi5cbiAqIFVzZSB0aGlzIGZvciBhbGwgYmxvY2sgc3BlY2lmaWMgR3V0ZW5iZXJnIGVkaXRvciBjc3MuXG4gKlxuICovXG5cbi8qIEFkbWluIFVJIEJhc2UgKi9cbkBpbXBvcnQgXCIuLi91dGlsaXRpZXMvc2V0dGluZ3MvZ3JpZFwiO1xuQGltcG9ydCBcIi4uL3V0aWxpdGllcy92YXJpYWJsZXMvY29sb3JzXCI7XG5AaW1wb3J0IFwiLi4vdXRpbGl0aWVzL3ZhcmlhYmxlcy9tZWRpYS1xdWVyaWVzXCI7XG5AaW1wb3J0IFwiLi4vdXRpbGl0aWVzL3ZhcmlhYmxlcy90cmFuc2l0aW9uc1wiO1xuQGltcG9ydCBcIi4uL3V0aWxpdGllcy92YXJpYWJsZXMvdHlwb2dyYXBoeVwiO1xuXG4vKiBDb21wb25lbnRzICovXG5AaW1wb3J0IFwiLi4vY29udGVudC9jb21wb25lbnRzL2FsbFwiO1xuXG4vKiBCdXR0b25zICovXG5AaW1wb3J0IFwiLi4vY29udGVudC9idXR0b25zL2RlZmF1bHRcIjtcbkBpbXBvcnQgXCIuLi9jb250ZW50L2J1dHRvbnMvcXVpY2stdmlld1wiO1xuXG4vKiBDYXJkcyAqL1xuQGltcG9ydCBcIi4uL2NvbnRlbnQvY2FyZHMvZGVmYXVsdFwiO1xuQGltcG9ydCBcIi4uL2NvbnRlbnQvY2FyZHMvc2luZ2xlXCI7XG5cbi8qIExvb3AgKi9cbkBpbXBvcnQgXCIuLi9jb250ZW50L2xvb3AvZGVmYXVsdFwiO1xuQGltcG9ydCBcIi4uL2NvbnRlbnQvbG9vcC9uby1yZXN1bHRzXCI7XG5cbi8qIFNpbmdsZSAqL1xuQGltcG9ydCBcIi4uL2NvbnRlbnQvc2luZ2xlL3Byb2R1Y3RcIjtcbkBpbXBvcnQgXCIuLi9jb250ZW50L3NpbmdsZS9wcm9kdWN0LXF1aWNrLXZpZXdcIjtcblxuLyogR3V0ZW5iZXJnIEN1c3RvbWl6YXRpb25zICovXG5AaW1wb3J0ICdndXRlbmJlcmcvZGVmYXVsdCc7XG4iLCI6cm9vdCB7XG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIFByaW1hcnkgUGFsZXR0ZVxuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY29sb3ItcHJpbWFyeTogIzUyNzNmNDtcblx0LS1jb2xvci1zZWNvbmRhcnk6IGRhcmtlbih2YXIoLS1jb2xvci1wcmltYXJ5KSwgMC4wOCk7XG5cdC0tY29sb3ItYmMtZ3JlZW46ICM2NWM2OGM7XG5cdC0tY29sb3ItYmMtbGlnaHQtZ3JleTogI2UwZTNlOTtcblx0LS1jb2xvci1iYy1jb25jcmV0ZTogI2NkY2RjZDtcblx0LS1jb2xvci1iYy1ncmV5OiAjOGI4YjhiO1xuXHQtLWNvbG9yLWJjLWdyZXktbWVkaXVtOiAjNWU1ZTVlO1xuXHQtLWNvbG9yLWJjLWJsYWNrOiAjMzQzMTNmO1xuXHQtLWNvbG9yLWJjLWRvZ2VyLWJsdWU6ICM0YjcxZmM7XG5cdC0tY29sb3ItYmMtYmx1ZS1saWdodDogIzE2OGZjMDtcblx0LS1jb2xvci1iYy1ibHVlLXR1cnF1b2lzZTogIzUzYmFkMTtcblx0LS1jb2xvci1iYy1yZWQ6ICNkMjU3NGE7XG5cdC0tY29sb3ItYmMtc3VjY2VzczogIzgyOWQ1ZjtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBXaGl0ZXNcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNvbG9yLXdoaXRlOiAjZmZmO1xuXHQtLWNvbG9yLW9mZi13aGl0ZTogI2Y1ZjVmNTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBHcmV5c1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY29sb3ItZ3JleS1saWdodDogbGlnaHRlbih2YXIoLS1jb2xvci1ncmV5KSwgMC4xNSk7XG5cdC0tY29sb3ItZ3JleTogZ3JleTtcblx0LS1jb2xvci1ncmV5LWRhcms6IGRhcmtlbih2YXIoLS1jb2xvci1ncmV5KSwgMC4xNSk7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogQmxhY2tzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jb2xvci1ibGFjazogIzAwMDtcblx0LS1jb2xvci1ibGFjay1hLTQwOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG5cdC0tY29sb3ItYmxhY2stYS03MDogcmdiYSgwLCAwLCAwLCAwLjcpO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIEJhY2tncm91bmRzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jb2xvci1iZ2Q6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0LS1jb2xvci1iZ2QtY29udGVudDogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHQtLWNvbG9yLWJnZC1sb2dpbjogI2YxZjFmMTtcblx0LS1jb2xvci1iZ2Qtc2VsZWN0aW9uOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcblx0LS1jb2xvci1iZ2QtcGFuZWwtYWN0aXZlOiAjMmMyOTM1O1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIExpbmtzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jb2xvci1saW5rOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcblx0LS1jb2xvci1saW5rLWhvdmVyOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIFRleHRcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNvbG9yLXRleHQ6IHZhcigtLWNvbG9yLWJsYWNrKTtcblx0LS1jb2xvci10ZXh0LXNlbGVjdGlvbjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIEJvcmRlcnNcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNvbG9yLWJvcmRlcjogdmFyKC0tY29sb3ItZ3JleSk7XG5cdC0tY29sb3ItYm9yZGVyLWZvcm0tZmllbGQ6ICNlMWU2ZWE7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogQWxlcnQgQ29sb3JzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1hbGVydC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHQtLWFsZXJ0LWJnLWRlZmF1bHQ6IHZhcigtLWNvbG9yLWJjLWJsdWUtbGlnaHQpO1xuXHQtLWFsZXJ0LXN1Y2Nlc3M6ICMzZWM4ODk7XG5cdC0tYWxlcnQtZXJyb3I6ICNmZjAwMTI7XG5cdC0tYWxlcnQtYmctaW5mbzogdmFyKC0tY29sb3ItYmMtY29uY3JldGUpO1xufVxuIiwiOnJvb3Qge1xuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBGb250IFN0YWNrc1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tZm9udC1mYW1pbHktYmlnY29tbWVyY2UtaWNvbnM6ICdiaWdjb21tZXJjZS1pY29ucyc7XG5cdC0tZm9udC1mYW1pbHktcHJveGltYS1ub3ZhOiBcInByb3hpbWEtbm92YVwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG5cdC0tZm9udC1mYW1pbHktc2Fucy1zZXJpZjogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXHQtLWZvbnQtZmFtaWx5LWJhc2U6IHZhcigtLWZvbnQtZmFtaWx5LXByb3hpbWEtbm92YSk7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogRm9udCBTaXppbmdcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWZvbnQtc2l6ZS1iYXNlOiAxOHB4O1xuXHQtLWZvbnQtc2l6ZS1jb250ZW50OiAxOHB4O1xuXHQtLWZvbnQtc2l6ZS1jb250ZW50LXM6IDE2cHg7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogRm9udCBXZWlnaHRzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb250LXdlaWdodC1saWdodDogMzAwO1xuXHQtLWZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMDtcblx0LS1mb250LXdlaWdodC1tZWRpdW06IDUwMDtcblx0LS1mb250LXdlaWdodC1zZW1pYm9sZDogNjAwO1xuXHQtLWZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBMaW5lIEhlaWdodHNcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWxpbmUtaGVpZ2h0LWJhc2U6IDEuNTtcblx0LS1saW5lLWhlaWdodC1tOiAxLjMzO1xuXHQtLWxpbmUtaGVpZ2h0LXM6IDEuMjU7XG5cdC0tbGluZS1oZWlnaHQtc3M6IDEuMTU7XG5cdC0tbGluZS1oZWlnaHQtZXZlbjogMTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBCb3JkZXIgUmFkaXVzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1ib3JkZXItcmFkaXVzLWJhc2U6IDRweDtcblx0LS1ib3JkZXItcmFkaXVzLXJvdW5kOiA1MCU7XG59XG4iLCIvKiBDb21wb25lbnRzICovXG5AaW1wb3J0IFwidGl0bGVcIjtcbkBpbXBvcnQgXCJicmFuZFwiO1xuQGltcG9ydCBcInByaWNlXCI7XG5AaW1wb3J0IFwiZmxhZ3NcIjtcbkBpbXBvcnQgXCJkZXNjcmlwdGlvblwiO1xuQGltcG9ydCBcImdhbGxlcnlcIjtcbkBpbXBvcnQgXCJmb3JtLWNvbXBvbmVudHNcIjtcbkBpbXBvcnQgXCJvcHRpb24tZHJvcGRvd25cIjtcbkBpbXBvcnQgXCJvcHRpb24tc3dhdGNoXCI7XG5AaW1wb3J0IFwib3B0aW9uLXJlY3RhbmdsZVwiO1xuQGltcG9ydCBcIm9wdGlvbi1waWNrLWxpc3RcIjtcbkBpbXBvcnQgXCJvcHRpb24tcmFkaW9cIjtcbkBpbXBvcnQgXCJyYXRpbmdzXCI7XG5AaW1wb3J0IFwic3BlY3NcIjtcbkBpbXBvcnQgXCJyZWxhdGVkLXByb2R1Y3RzXCI7XG5AaW1wb3J0IFwicmVmaW5lcnlcIjtcbkBpbXBvcnQgXCJzdWJuYXZcIjtcbkBpbXBvcnQgXCJhbGVydFwiO1xuQGltcG9ydCBcInBhZ2luYXRpb25cIjtcbkBpbXBvcnQgXCJvcmRlci1wcm9kdWN0LXJvd1wiO1xuQGltcG9ydCBcImltYWdlc1wiO1xuIiwiLmJjLXByb2R1Y3RfX3RpdGxlIHtcblx0Zm9udC1zaXplOiAxOHB4O1xuXHRsaW5lLWhlaWdodDogMjJweDtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDAgMCAxOHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDI0cHg7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdGZvbnQtc2l6ZTogMjRweDtcblx0XHRsaW5lLWhlaWdodDogMjhweDtcblx0fVxufVxuXG4uYmMtcHJvZHVjdF9fdGl0bGUtbGluayB7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0Ym94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHRvcGFjaXR5OiAxO1xuXHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzIHtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHRcdG9wYWNpdHk6IDAuODtcblxuXHRcdC5iYy1wcm9kdWN0LWZsYWctLWdyZXkge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cbn1cblxuLmJjLXByb2R1Y3RfX2ludmVudG9yeSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRsaW5lLWhlaWdodDogMjJweDtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpO1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5iYy1wcm9kdWN0LXNpbmdsZV9fbWV0YSxcbi5iYy1wcm9kdWN0LWNhcmQtLXNpbmdsZSB7XG5cblx0LmJjLXByb2R1Y3RfX3RpdGxlIHtcblx0XHRmb250LXNpemU6IDI0cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDI4cHg7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0Zm9udC1zaXplOiAyOHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDMycHg7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdGZvbnQtc2l6ZTogMzJweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAzNnB4O1xuXHRcdH1cblx0fVxuXG5cdC5iYy1wcm9kdWN0X19pbnZlbnRvcnkge1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRtYXJnaW46IDA7XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtY2FyZC0tcmVsYXRlZCB7XG5cblx0LmJjLXByb2R1Y3RfX3RpdGxlIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxNXB4O1xuXHR9XG59XG4iLCIuYmMtcHJvZHVjdF9fYnJhbmQge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtZXZlbik7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0bWFyZ2luLWJvdHRvbTogMTBweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcblx0fVxuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0fVxufVxuXG4uYmMtcHJvZHVjdC1zaW5nbGUsXG4uYmMtcHJvZHVjdC1jYXJkLS1zaW5nbGUge1xuXG5cdC5iYy1wcm9kdWN0X19icmFuZCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdH1cbn1cbiIsIi5iYy1wcm9kdWN0X19wcmljaW5nIHtcblx0bWFyZ2luLWJvdHRvbTogMDtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLmJjLXByb2R1Y3RfX3ByaWNlIHtcblx0Zm9udC1zaXplOiAxNnB4O1xufVxuXG4uYmMtcHJvZHVjdF9fb3JpZ2luYWwtcHJpY2Uge1xuXHR0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcblx0bWFyZ2luLXJpZ2h0OiAxMnB4O1xuXHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWdyZXkpO1xufVxuXG4uYmMtcHJvZHVjdF9fcHJpY2UtLXNhbGUge1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ncmVlbik7XG59XG5cbi5iYy1wcm9kdWN0LWNhcmQtLXNpbmdsZSB7XG5cblx0LmJjLXByb2R1Y3RfX3ByaWNpbmcge1xuXHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDUwcHg7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1wcm9kdWN0LWNhcmQtLXNpbmdsZSxcbi5iYy1wcm9kdWN0LXNpbmdsZSB7XG5cblx0LmJjLXByb2R1Y3RfX29yaWdpbmFsLXByaWNlIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cdH1cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogUHJvZHVjdCBGbGFnc1xuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5iYy1wcm9kdWN0LWZsYWctLXNhbGUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogLTIwcHg7XG5cdHRvcDogLTIwcHg7XG5cdHdpZHRoOiA1MHB4O1xuXHRoZWlnaHQ6IDUwcHg7XG5cdGxpbmUtaGVpZ2h0OiA1MHB4O1xuXHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJjLWdyZWVuKTtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0ei1pbmRleDogMjtcbn1cblxuLmJjLXByb2R1Y3QtZmxhZy0tZ3JleSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0cGFkZGluZzogN3B4IDhweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWV2ZW4pO1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuXG4uYmMtcHJvZHVjdC1zaW5nbGUsXG4uYmMtcHJvZHVjdC1jYXJkLS1zaW5nbGUge1xuXG5cdC5iYy1wcm9kdWN0LWZsYWctLXNhbGUge1xuXHRcdHdpZHRoOiA2MHB4O1xuXHRcdGhlaWdodDogNjBweDtcblx0XHRsaW5lLWhlaWdodDogNjBweDtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcblx0fVxuXG5cdC5iYy1wcm9kdWN0LWZsYWctLWdyZXkge1xuXHRcdG1hcmdpbi1ib3R0b206IDVweDtcblx0fVxufVxuXG4iLCIuYmMtcHJvZHVjdF9fZGVzY3JpcHRpb24ge1xuXHRmb250LXNpemU6IDE2cHg7XG5cdGxpbmUtaGVpZ2h0OiAyNHB4O1xuXHRtYXJnaW4tYm90dG9tOiAzMHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcblx0fVxuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1sYXJnZSkge1xuXHRcdG1hcmdpbi1ib3R0b206IDUwcHg7XG5cdH1cblxuXHRwOmxhc3QtY2hpbGQge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cbn1cbiIsIi5iYy1wcm9kdWN0LWdhbGxlcnlfX2ltYWdlcyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEwMCU7XG5cdG1heC13aWR0aDogMzcwcHg7XG5cdG1hcmdpbjogNjBweCBhdXRvO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRtYXJnaW46IDA7XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtZ2FsbGVyeV9faW1hZ2Utc2xpZGUge1xuXG5cdGltZyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtZ2FsbGVyeS0taGFzLWNhcm91c2VsIHtcblx0bWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLyogVGh1bWJuYWlsIENhcm91c2VsICovXG5cbi8qIENBU0U6IHRodW1iIGNvbnRyb2xsZXIgb25seSB3b3JrcyB3aXRoIGNlbnRlcmVkIHNsaWRlcy4gVGhpcyBtb3ZlcyB0aGF0IGNvbnRhaW5lciBiYWNrIHRvIGZsdXNoIGxlZnQuICovXG4uc3dpcGVyLWNvbnRhaW5lcltkYXRhLWpzPVwiYmMtZ2FsbGVyeS10aHVtYnNcIl0gLnN3aXBlci13cmFwcGVyIHtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApICFpbXBvcnRhbnQ7XG59XG5cbi5iYy1wcm9kdWN0LWdhbGxlcnlfX3RodW1icyB7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cblx0LmJjLXByb2R1Y3QtZ2FsbGVyeV9fdGh1bWItc2xpZGUge1xuXHRcdGJveC1zaGFkb3c6IHVuc2V0O1xuXHR9XG59XG5cbi5iYy1wcm9kdWN0LWdhbGxlcnlfX3RodW1iLXNsaWRlIHtcblx0d2lkdGg6IGNhbGMoMjUlIC0gMTBweCk7XG5cdG1hcmdpbjogMCAxMHB4IDEwcHggMDtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyOiAwO1xuXHRiYWNrZ3JvdW5kOiBub25lO1xuXHRvcGFjaXR5OiAwLjg7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCYuc3dpcGVyLXNsaWRlLWFjdGl2ZSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEZvcm1zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYmMtcHJvZHVjdC1mb3JtX19jb250cm9sIHtcblx0bWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLmJjLXByb2R1Y3QtZm9ybV9fb3B0aW9uLWxhYmVsLFxuLmJjLXByb2R1Y3QtZm9ybV9fbW9kaWZpZXItbGFiZWwge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG59XG5cbi5iYy1wcm9kdWN0LWZvcm1fX29wdGlvbi12YXJpYW50cyB7XG5cdG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5iYy1wcm9kdWN0LWZvcm1fX29wdGlvbi12YXJpYW50cy0taW5saW5lIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuXHQuYmMtcHJvZHVjdC12YXJpYW50X19sYWJlbCB7XG5cdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xuXG5cdFx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdH1cblx0fVxufVxuXG4uYmMtcHJvZHVjdC12YXJpYW50X19sYWJlbC0tdGl0bGUge1xuXHRmbGV4OiAxO1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtZ3JleSk7XG59XG5cbmlucHV0LmJjLXByb2R1Y3QtdmFyaWFudF9fcmFkaW8tLWhpZGRlbiB7XG5cdG1hcmdpbjogMDtcbn1cblxuLmJjLXByb2R1Y3QtZm9ybV9fcHJvZHVjdC1tZXNzYWdlIHtcblx0cGFkZGluZzogMDtcbn1cblxuLmJjLXByb2R1Y3QtZm9ybV9fbWVzc2FnZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nOiAxMnB4IDE2cHg7XG5cdGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmJjLXByb2R1Y3QtZm9ybV9fbW9kaWZpZXItZGVzY3JpcHRpb24ge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRsaW5lLWhlaWdodDogMTRweDtcblx0cGFkZGluZzogMCAxMHB4O1xuXHRtYXJnaW4tdG9wOiA0cHg7XG59XG4iLCIuYmMtcHJvZHVjdC1mb3JtX19vcHRpb24tc2VsZWN0IHtcblx0Zm9udC1zaXplOiAxNnB4O1xufVxuIiwiLmJjLXByb2R1Y3QtZm9ybV9fY29udHJvbC0tc3dhdGNoIHtcblxuXHRpbnB1dC5iYy1wcm9kdWN0LXZhcmlhbnRfX3JhZGlvLS1oaWRkZW4ge1xuXG5cdFx0JjpjaGVja2VkICsgLmJjLXByb2R1Y3QtdmFyaWFudF9fbGFiZWwgLmJjLXByb2R1Y3QtdmFyaWFudF9fbGFiZWwtLXN3YXRjaCB7XG5cdFx0XHRib3JkZXI6IDAgc29saWQgdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRcdFx0Ym94LXNoYWRvdzogMCAwIDFweCB2YXIoLS1jb2xvci1iYy1ibHVlLWxpZ2h0KTtcblx0XHRcdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tYm9yZGVyKTtcblx0XHR9XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtdmFyaWFudF9fbGFiZWwtLXN3YXRjaCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogMzZweDtcblx0aGVpZ2h0OiAzNnB4O1xuXHRib3JkZXI6IDVweCBzb2xpZCB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdGJveC1zaGFkb3c6IDAgMCAxcHggdmFyKC0tY29sb3ItYmMtZ3JleSk7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1ib3JkZXIpO1xufVxuIiwiLmJjLXByb2R1Y3QtZm9ybV9fY29udHJvbC0tcmVjdGFuZ2xlIHtcblxuXHRpbnB1dC5iYy1wcm9kdWN0LXZhcmlhbnRfX3JhZGlvLS1oaWRkZW4ge1xuXG5cdFx0JjpjaGVja2VkICsgLmJjLXByb2R1Y3QtdmFyaWFudF9fbGFiZWwgLmJjLXByb2R1Y3QtdmFyaWFudF9fbGFiZWwtLXJlY3RhbmdsZSB7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1ibHVlLWxpZ2h0KTtcblx0XHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ibHVlLWxpZ2h0KTtcblx0XHRcdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0XHRcdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tYm9yZGVyKSwgdmFyKC0tdHJhbnNpdGlvbi1jb2xvci1mYXN0KTtcblx0XHR9XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtdmFyaWFudF9fbGFiZWwtLXJlY3RhbmdsZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRoZWlnaHQ6IDM2cHg7XG5cdGxpbmUtaGVpZ2h0OiAyNHB4O1xuXHRwYWRkaW5nOiA1cHggMTBweDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1jb25jcmV0ZSk7XG5cdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ncmV5KTtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1ib3JkZXIpLCB2YXIoLS10cmFuc2l0aW9uLWNvbG9yLWZhc3QpO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG4iLCIuYmMtcHJvZHVjdC1mb3JtX19jb250cm9sLS1waWNrLWxpc3Qge1xuXG5cdGlucHV0LmJjLXByb2R1Y3QtdmFyaWFudF9fcmFkaW8tLWhpZGRlbiB7XG5cblx0XHQmOmNoZWNrZWQgKyAuYmMtcHJvZHVjdC12YXJpYW50X19sYWJlbCAuYmMtcHJvZHVjdC12YXJpYW50X19sYWJlbC0tcGljay1saXN0IHtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWJsdWUtbGlnaHQpO1xuXHRcdFx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1ib3JkZXIpO1xuXHRcdH1cblx0fVxufVxuXG4uYmMtcHJvZHVjdC12YXJpYW50X19sYWJlbC0tcGljay1saXN0IHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0cGFkZGluZzogNXB4O1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYmMtcHJvZHVjdC12YXJpYW50X19sYWJlbC0taW1nIHtcblx0ZmxleDogMDtcblx0bWFyZ2luLXJpZ2h0OiA2cHg7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXgtd2lkdGg6IDUwcHg7XG5cdGhlaWdodDogYXV0bztcbn1cbiIsIi5iYy1wcm9kdWN0LWZvcm1fX2NvbnRyb2wtLXJhZGlvIHtcblxuXHQuYmMtcHJvZHVjdC1mb3JtX19vcHRpb24tbGFiZWwge1xuXHRcdGZsZXg6IDAgMCAxMDAlO1xuXHR9XG5cblx0LmJjLXByb2R1Y3QtdmFyaWFudF9fbGFiZWwge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdG1hcmdpbi1ib3R0b206IDZweDtcblx0fVxuXG5cdC5iYy1wcm9kdWN0LXZhcmlhbnRfX3JhZGlvIHtcblx0XHRmbGV4OiAwIDAgYXV0bztcblx0fVxuXG5cdC5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsLS1yYWRpbyB7XG5cdFx0ZmxleDogMTtcblx0XHRsaW5lLWhlaWdodDogMjRweDtcblx0fVxufVxuIiwiLmJjLXNpbmdsZS1wcm9kdWN0X19yYXRpbmcge1xuXHR1bmljb2RlLWJpZGk6IGJpZGktb3ZlcnJpZGU7XG5cdGNvbG9yOiAjOGI4YjhiO1xuXHRmb250LXNpemU6IDE1cHg7XG5cdGhlaWdodDogMjVweDtcblx0d2lkdGg6IDkwcHg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZzogMDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG5cdCYtLW1hc2sge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGhlaWdodDogMjVweDtcblx0XHR6LWluZGV4OiAyO1xuXHR9XG5cblx0Ji0tdG9wIHtcblx0XHRjb2xvcjogI2ZjMDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdHdpZHRoOiA5MHB4O1xuXHRcdHotaW5kZXg6IDE7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdH1cblxuXHQmLS1ib3R0b20ge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0ei1pbmRleDogMDtcblx0XHR3aWR0aDogOTBweDtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0fVxufVxuXG4uYmMtcmF0aW5nLXN0YXIge1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlxcMjYwNVwiO1xuXHRcdGZvbnQtc2l6ZTogMTVweDtcblx0fVxufVxuXG4uYmMtc2luZ2xlLXByb2R1Y3RfX3JhdGluZy1yZXZpZXdzIHtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdG1hcmdpbi1sZWZ0OiAxMHB4O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4iLCIuYmMtcHJvZHVjdF9fc3BlYy1saXN0IHtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRsb3N0LWNlbnRlcjogMTAwJTtcbn1cblxuLmJjLXByb2R1Y3RfX3NwZWMge1xuXHRmb250LXNpemU6IDE0cHg7XG5cdGxvc3Qtd2FmZmxlOiAxLzI7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGxvc3Qtd2FmZmxlOiAxLzM7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdGxvc3Qtd2FmZmxlOiAxLzQ7XG5cdH1cbn1cbiIsIi5iYy1zaW5nbGUtcHJvZHVjdF9fcmVsYXRlZCB7XG5cdHBhZGRpbmc6IDUwcHggMCAwO1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cblx0LmJjLWZvcm0uYmMtcHJvZHVjdC1mb3JtLFxuXHRidXR0b24uYmMtYnRuIHtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHR9XG59XG5cbi5iYy1zaW5nbGUtcHJvZHVjdF9fc2VjdGlvbi10aXRsZS0tcmVsYXRlZCB7XG5cdGZvbnQtc2l6ZTogMjRweDtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cbiIsIi5iYy1wcm9kdWN0LWFyY2hpdmVfX3JlZmluZXJ5IHtcblx0d2lkdGg6IDEwMCU7XG5cdG1hcmdpbjogNDBweCAwIDgwcHg7XG5cblx0LmJjLWZvcm0ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0XHR9XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtYXJjaGl2ZV9fc2VhcmNoIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRmbGV4OiAxIDEgMTAwJTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0ZmxleDogMCAxIDI3MHB4O1xuXHR9XG59XG5cbi5iYy1wcm9kdWN0LWFyY2hpdmVfX3NlbGVjdCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0bWFyZ2luLXRvcDogMTVweDtcblx0ZmxleDogMSAxIDEwMCU7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LXhzbWFsbCkge1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGZsZXg6IDAgMSBjYWxjKDMzLjMzMzMlIC0gMjBweCk7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdG1hcmdpbi1yaWdodDogMjBweDtcblxuXHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0fVxuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0XHRmbGV4OiAwIDEgYXV0bztcblx0fVxufVxuXG4uYmMtcHJvZHVjdC1hcmNoaXZlX19zZWxlY3QtbGFiZWwge1xuXHRmb250LXNpemU6IDEycHg7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdG1hcmdpbi1yaWdodDogMTBweDtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXHRmbGV4OiAwIDAgMTAwJTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQteHNtYWxsKSB7XG5cdFx0ZmxleDogMCAwIDE1MHB4O1xuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGZsZXg6IDAgMCAxMDAlO1xuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRmbGV4OiAwIDAgYXV0bztcblx0fVxufVxuXG4uYmMtcHJvZHVjdC1hcmNoaXZlX19zZWxlY3QtZmllbGQge1xuXHRmbGV4OiAwIDAgMTAwJTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQteHNtYWxsKSB7XG5cdFx0ZmxleDogMSAxIDEwMCU7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0ZmxleDogMCAwIDEwMCU7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdGZsZXg6IDAgMSBhdXRvO1xuXHR9XG5cblx0LmJjLWZvcm0gJiB7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ncmV5KTtcblx0fVxufVxuXG4uYmMtcHJvZHVjdC1hcmNoaXZlX19zZWFyY2gtc3VibWl0IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogMDtcblx0dG9wOiAwO1xuXHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRmb250LXNpemU6IDE2cHg7XG5cblx0Ji5iYy1idG4uYmMtYnRuLS1zbWFsbCB7XG5cdFx0bWF4LXdpZHRoOiBub25lO1xuXHRcdHdpZHRoOiBhdXRvO1xuXHR9XG59XG4iLCIuYmMtc3VibmF2X19saXN0IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtc21hbGwpIHtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHR9XG59XG5cbi5iYy1zdWJuYXZfX2xpc3QtaXRlbSB7XG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdHBhZGRpbmc6IDA7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LXNtYWxsKSB7XG5cblx0XHQrIC5iYy1zdWJuYXZfX2xpc3QtaXRlbSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMzBweDtcblx0XHR9XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcblx0fVxufVxuXG4uYmMtc3VibmF2X19saW5rIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmJjLXN1Ym5hdl9fbGlzdC1pdGVtLS1jdXJyZW50IC5iYy1zdWJuYXZfX2xpbmsge1xuXHRjb2xvcjogY3VycmVudENvbG9yO1xufVxuIiwiLmJjLWFsZXJ0IHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWxlcnQtYmctZGVmYXVsdCk7XG5cdGNvbG9yOiB2YXIoLS1hbGVydC1jb2xvcik7XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0bGluZS1oZWlnaHQ6IDEuNTtcblx0cGFkZGluZzogMTJweCAxNnB4O1xuXHRtYXJnaW4tYm90dG9tOiA0MHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRtYXJnaW4tYm90dG9tOiA2MHB4O1xuXHR9XG5cblx0Ji0tc3VjY2VzcyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWxlcnQtc3VjY2Vzcyk7XG5cdH1cblxuXHQmLS1lcnJvciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWxlcnQtZXJyb3IpO1xuXHR9XG59XG5cbi5iYy1hbGVydC1ncm91cCB7XG5cblx0LmJjLWFsZXJ0Om5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdH1cblxuXHQmLS1pbmZvIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hbGVydC1iZy1pbmZvKTtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHRcdGZvbnQtc2l6ZTogMTRweDtcblxuXHRcdC5iYy1wcm9kdWN0LWZvcm0gJiB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdH1cblx0fVxuXG5cdCYtLWVycm9yIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdGhlaWdodDogMDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblx0fVxuXG5cdCYuYmMtZmFkZS1pbi1hbGVydC1ncm91cCB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHRcdGhlaWdodDogYXV0bztcblx0fVxufVxuXG4uYmMtZm9ybV9fZXJyb3ItbWVzc2FnZSB7XG5cdGNvbG9yOiB2YXIoLS1hbGVydC1lcnJvcik7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtcmVndWxhcik7XG5cdGZvbnQtc2l6ZTogMTNweDtcbn1cbiIsIi5iYy1sb2FkLWl0ZW1zIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYmMtbG9hZC1pdGVtcy1jb250YWluZXItLWhhcy1wYWdlcyB7XG5cdHBhZGRpbmctYm90dG9tOiA0MHB4O1xuXG5cdD4gKjpub3QoLmJjLWxvYWQtaXRlbXNfX3RyaWdnZXIpIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tb3BhY2l0eSk7XG5cblx0XHQmLml0ZW0taW5pdGlhbGl6ZWQge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cbn1cblxuLmJjLWxvYWQtaXRlbXNfX2xvYWRlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Ym90dG9tOiAzMHB4O1xuXHRsZWZ0OiA1MCU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0b3BhY2l0eTogMDtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1vcGFjaXR5KTtcblxuXHQmLmFjdGl2ZSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG4uYmMtbG9hZC1tb3JlLWl0ZW1zLFxuLmJjLWxvYWQtaXRlbXNfX3RyaWdnZXIge1xuXHR3aWR0aDogMTAwJTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYmMtbG9hZC1tb3JlLWl0ZW1zIHtcblx0bWFyZ2luLXRvcDogMjBweDtcbn1cblxuLmJjLWxvYWQtaXRlbXNfX3RyaWdnZXItYnRuLFxuLmJjLW5vLXJlc3VsdHNfX2J1dHRvbiB7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG5cdGZvbnQtc2l6ZTogMTRweDtcblx0bGluZS1oZWlnaHQ6IDE0cHg7XG5cdG91dGxpbmU6IG5vbmU7XG5cdGJvcmRlcjogMDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdCZbZGlzYWJsZWRdIHtcblx0XHRvcGFjaXR5OiAwLjU7XG5cdFx0Y3Vyc29yOiBub3QtYWxsb3dlZDtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMge1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci1saW5rLWhvdmVyKTtcblxuXHRcdCZbZGlzYWJsZWRdIHtcblx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdFx0Y29sb3I6IHZhcigtLWNvbG9yLWxpbmstaG92ZXIpO1xuXHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdH1cblx0fVxuXG5cdC5iYy1pY29uIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRtYXJnaW4tdG9wOiAxNHB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRmb250LXNpemU6IDE4cHg7XG5cdH1cbn1cblxuLyogRXJyb3IgSGFuZGxpbmcgKi9cbi5iYy1wYWdpbmF0aW9uX19lcnJvci1tZXNzYWdlIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGZvbnQtc2l6ZTogMTRweDtcbn1cbiIsIi5iYy1vcmRlci1wcm9kdWN0LXJvdyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdH1cbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19pbWFnZSB7XG5cdGZsZXg6IDAgMCAxMDBweDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXHRtYXgtd2lkdGg6IDEwMHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRtYXJnaW46IDAgMjBweCAwIDA7XG5cdH1cblxuXHRpbWcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogYXV0bztcblx0fVxufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX2JvZHkge1xuXHRmbGV4OiAxIDEgYXV0bztcblx0bWFyZ2luLWJvdHRvbTogMTJweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bWFyZ2luOiAwIDIwcHggMCAwO1xuXHRcdG1heC13aWR0aDogNTUwcHg7XG5cdH1cbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19oZWFkZXIge1xuXG5cdC5iYy1vcmRlci1wcm9kdWN0LXJvd19fdGl0bGUge1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRsaW5lLWhlaWdodDogMjRweDtcblx0XHRtYXJnaW46IDAgMTBweCAwIDA7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0Zm9udC1zaXplOiAyNHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDMycHg7XG5cdFx0fVxuXHR9XG5cblx0LmJjLXByb2R1Y3QtZmxhZy0tZ3JleSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXHR9XG59XG5cbi5iYy1vcmRlci1wcm9kdWN0LXJvd19fYnJhbmQsXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX3VuaXQtcHJpY2UsXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX29wdGlvbiB7XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0bGluZS1oZWlnaHQ6IDIycHg7XG5cdG1hcmdpbi1ib3R0b206IDRweDtcbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19icmFuZCB7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19vcHRpb25zLWxpc3QsXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX29wdGlvbiB7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19vcHRpb25zLWxpc3Qge1xuXHRtYXJnaW4tdG9wOiA4cHg7XG59XG5cbi5iYy1vcmRlci1wcm9kdWN0LXJvd19fb3B0aW9uIHtcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWdyZXkpO1xuXHRmb250LXNpemU6IDEycHg7XG5cdGxpbmUtaGVpZ2h0OiAxOHB4O1xuXHRtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX29wdGlvbi1sYWJlbCB7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG59XG5cbi5iYy1vcmRlci1wcm9kdWN0LXJvd19fb3B0aW9uLXZhbHVlIHtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWxpZ2h0KTtcbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19zdGF0dXMge1xuXHRmb250LXNpemU6IDE2cHg7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0bGluZS1oZWlnaHQ6IDIycHg7XG5cdG1hcmdpbi1ib3R0b206IDEycHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGFsaWduLXNlbGY6IGNlbnRlcjtcblx0XHRmbGV4OiAwIDAgMTUwcHg7XG5cdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAyNHB4O1xuXHRcdG1hcmdpbjogMCAwIDAgYXV0bztcblx0fVxufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX3F1YW50aXR5IHtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdGxpbmUtaGVpZ2h0OiAxOHB4O1xuXHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmbGV4OiAwIDAgMTAwcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0fVxufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX3RvdGFsIHtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdGxpbmUtaGVpZ2h0OiAyMnB4O1xuXHRtYXJnaW4tYm90dG9tOiAyNnB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmbGV4OiAwIDAgMTUwcHg7XG5cdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cbn1cbiIsIi5iYy1vcmRlci1wcm9kdWN0LXJvd19faW1hZ2UsXG4uYmMtY2FydC1pdGVtLWltYWdlIHtcblxuXHQuYmMtcHJvZHVjdF9fdGh1bWJuYWlsLWxpbmsge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdGJvcmRlcjogMDtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tb3BhY2l0eSk7XG5cblx0XHQmOmhvdmVyLFxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0b3BhY2l0eTogMC44O1xuXHRcdH1cblx0fVxufVxuIiwiLmJjLWJ0bixcbmJ1dHRvbi5iYy1idG4sXG5hLmJjLWJ0bixcbi5lbnRyeS1jb250ZW50IC5iYy1idG4sXG4uZW50cnktY29udGVudCBidXR0b24uYmMtYnRuLFxuLmVudHJ5LWNvbnRlbnQgYS5iYy1idG4sXG4uYmMtYWNjb3VudC1sb2dpbl9fZm9ybSBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRmb250LWZhbWlseTogc2Fucy1zZXJpZjtcblx0d2lkdGg6IDEwMCU7XG5cdHBhZGRpbmc6IDE1cHggMjBweDtcblx0Ym9yZGVyLXJhZGl1czogMDtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcblx0bGluZS1oZWlnaHQ6IDIwcHg7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGJveC1zaGFkb3c6IG5vbmU7XG5cdG9wYWNpdHk6IDE7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0bWF4LXdpZHRoOiAyNzBweDtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMge1xuXHRcdG9wYWNpdHk6IDAuOTtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuXG5cdCZbZGlzYWJsZWRdIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYy1ncmV5LW1lZGl1bSk7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0XHRwYWRkaW5nOiAxNXB4IDIwcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDIwcHg7XG5cdFx0Zm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG5cdFx0b3BhY2l0eTogMC42O1xuXHRcdGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cblx0XHQmOmhvdmVyLFxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtZ3JleS1tZWRpdW0pO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0XHRcdHBhZGRpbmc6IDE1cHggMjBweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAyMHB4O1xuXHRcdFx0Zm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG5cdFx0XHRvcGFjaXR5OiAwLjY7XG5cdFx0fVxuXHR9XG5cblx0Ji0tc21hbGwge1xuXHRcdHBhZGRpbmc6IDhweCAxNnB4O1xuXHR9XG5cblx0Ji0taW52ZXJzZSB7XG5cdFx0cGFkZGluZzogMTFweCAyMHB4O1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyOiA0cHggc29saWQ7XG5cdH1cbn1cbiIsIi5iYy1xdWlja3ZpZXctdHJpZ2dlcixcbmJ1dHRvbi5iYy1xdWlja3ZpZXctdHJpZ2dlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGNvbG9yOiBpbmhlcml0O1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0cGFkZGluZzogMDtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzIHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLW9wYWNpdHkpO1xuXG5cdFx0LmJjLXF1aWNrdmlldy10cmlnZ2VyLS1ob3ZlciB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxufVxuXG4uYmMtcXVpY2t2aWV3LXRyaWdnZXItLWhvdmVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdG9wYWNpdHk6IDA7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI0LCAyMjcsIDIzMywgMC43Mik7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tb3BhY2l0eSk7XG59XG5cbi5iYy1xdWlja3ZpZXctdHJpZ2dlci0taG92ZXItbGFiZWwge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDUwJTtcblx0dG9wOiA1MCU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG5cdHdpZHRoOiA3MCU7XG5cdHBhZGRpbmc6IDEycHggMTRweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRmb250LXNpemU6IDE0cHg7XG5cdGJvcmRlci1yYWRpdXM6IDIwcHg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiIsIi5iYy1wcm9kdWN0LWNhcmQge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblxuXHQuYmMtcXVpY2t2aWV3LXRyaWdnZXIge1xuXHRcdGZsZXg6IDAgMCBhdXRvO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdH1cblxuXHQuYmMtcHJvZHVjdF9fYWN0aW9ucyB7XG5cdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0ZmxleDogMCAwIGF1dG87XG5cdH1cblxuXHQuYmMtYnRuLFxuXHRhLmJjLWJ0bixcblx0YnV0dG9uLmJjLWJ0biB7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHR9XG59XG5cbi5iYy1wcm9kdWN0LWNhcmRfX2ZlYXR1cmVkLWltYWdlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblxuXHRpbWcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogYXV0bztcblx0fVxufVxuXG4uYmMtcHJvZHVjdF9fbWV0YSB7XG5cdHBhZGRpbmc6IDI1cHggMCA1MHB4O1xuXHR3aWR0aDogMTAwJTtcblx0d29yZC13cmFwOiBicmVhay13b3JkO1xuXHRoeXBoZW5zOiBhdXRvO1xuXHRmbGV4OiAxIDEgYXV0bztcbn1cbiIsIi5iYy1wcm9kdWN0LWNhcmQtLXNpbmdsZSB7XG5cdG1heC13aWR0aDogbm9uZTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IHdyYXA7XG5cdG1hcmdpbjogNjBweCAwO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0fVxuXG5cdC5iYy1wcm9kdWN0X19nYWxsZXJ5IHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0b3JkZXI6IDI7XG5cdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHR3aWR0aDogY2FsYyg1MCUgLSAzMHB4KTtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdG1heC13aWR0aDogMzcwcHg7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0b3JkZXI6IDE7XG5cdFx0fVxuXHR9XG5cblx0LmJjLXByb2R1Y3RfX21ldGEge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0b3JkZXI6IDE7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0ZmxleDogMCAwIGF1dG87XG5cdFx0XHRvcmRlcjogMjtcblx0XHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdFx0d2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XG5cdFx0fVxuXHR9XG5cblx0LmJjLXByb2R1Y3RfX2FjdGlvbnMge1xuXHRcdG9yZGVyOiAzO1xuXHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0d2lkdGg6IGNhbGMoNTAlICsgMzBweCk7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDYwcHg7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdGZsZXg6IDAgMCBhdXRvO1xuXHRcdFx0b3JkZXI6IDM7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdFx0XHR3aWR0aDogY2FsYyg1MCUgLSAzMHB4KTtcblx0XHR9XG5cdH1cblxuXHQuYmMtYnRuIHtcblx0XHRtYXJnaW4tdG9wOiA0MHB4O1xuXHR9XG59XG4iLCIuYmMtcHJvZHVjdC1ncmlkIHtcblx0d2lkdGg6IDEwMCU7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0cGFkZGluZzogNDBweCAwO1xuXG5cdD4gLmJjLXByb2R1Y3QtY2FyZCB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWF4LXdpZHRoOiAzNzBweDtcblx0XHRtYXJnaW46IDAgYXV0byA2MHB4O1xuXHR9XG5cblx0Ji0tMmNvbCA+IC5iYy1wcm9kdWN0LWNhcmQge1xuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRcdGxvc3QtY29sdW1uOiAxLzIgMiAzMHB4O1xuXHRcdH1cblx0fVxuXG5cdCYtLTNjb2wgPiAuYmMtcHJvZHVjdC1jYXJkIHtcblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRsb3N0LWNvbHVtbjogMS8yIDIgMzBweDtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0bG9zdC1jb2x1bW46IDEvMyAzIDMwcHg7XG5cdFx0XHRsb3N0LWNvbHVtbi1yb3VuZGVyOiA5OS45ODtcblx0XHR9XG5cdH1cblxuXHQmLS00Y29sID4gLmJjLXByb2R1Y3QtY2FyZCB7XG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LXhzbWFsbCkge1xuXHRcdFx0bG9zdC1jb2x1bW46IDEvMiAyIDMwcHg7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LXNtYWxsKSB7XG5cdFx0XHRsb3N0LWNvbHVtbjogMS8zIDMgMzBweDtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0bG9zdC1jb2x1bW46IDEvNCA0IDMwcHg7XG5cdFx0XHRsb3N0LWNvbHVtbi1yb3VuZGVyOiA5OS45ODtcblx0XHR9XG5cdH1cblxuXHQmLS01Y29sID4gLmJjLXByb2R1Y3QtY2FyZCB7XG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LXhzbWFsbCkge1xuXHRcdFx0bG9zdC1jb2x1bW46IDEvMiAyIDMwcHg7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LXNtYWxsKSB7XG5cdFx0XHRsb3N0LWNvbHVtbjogMS8zIDMgMzBweDtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0bG9zdC1jb2x1bW46IDEvNCA0IDMwcHg7XG5cdFx0XHRsb3N0LWNvbHVtbi1yb3VuZGVyOiA5OS45ODtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRcdGxvc3QtY29sdW1uOiAxLzUgNSAzMHB4O1xuXHRcdFx0bG9zdC1jb2x1bW4tcm91bmRlcjogOTkuOTg7XG5cdFx0fVxuXHR9XG5cblx0Ji0tcmVsYXRlZCB7XG5cdFx0cGFkZGluZy1ib3R0b206IDA7XG5cdH1cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogTG9vcDogTm8gUmVzdWx0c1xuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5iYy1uby1yZXN1bHRzIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmJjLW5vLXJlc3VsdHNfX21lc3NhZ2Uge1xuXHRmb250LXNpemU6IDIycHg7XG5cdGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4uYmMtbm8tcmVzdWx0c19fYnV0dG9uIHtcblx0bWFyZ2luOiAwIGF1dG87XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuIiwiLmJjLXByb2R1Y3Qtc2luZ2xlIHtcblx0bWF4LXdpZHRoOiA5NzBweDtcblx0cGFkZGluZzogMCAyMHB4O1xuXHRtYXJnaW46IDAgYXV0bztcblxuXHQuYmMtcHJvZHVjdC1zaW5nbGVfX3RvcCB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHR9XG5cdH1cblxuXHQuYmMtcHJvZHVjdF9fZ2FsbGVyeSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG9yZGVyOiAyO1xuXHRcdGZsZXg6IDEgMSAxMDAlO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0b3JkZXI6IDE7XG5cdFx0XHRmbGV4OiAwIDAgMzcwcHg7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDMwcHg7XG5cdFx0fVxuXHR9XG5cblx0LmJjLXByb2R1Y3Qtc2luZ2xlX19tZXRhIHtcblx0XHRmbGV4OiAxIDEgMTAwJTtcblx0XHRvcmRlcjogMTtcblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRcdG9yZGVyOiAyO1xuXHRcdFx0ZmxleDogMCAwIGF1dG87XG5cdFx0XHR3aWR0aDogY2FsYyg1MCUgLSA2MHB4KTtcblx0XHR9XG5cdH1cblxuXHQuYmMtcHJvZHVjdF9fc2t1IHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRtYXJnaW4tdG9wOiAyMHB4O1xuXHRcdGZvbnQtc2l6ZTogMTRweDtcblx0fVxuXG5cdC5iYy1wcm9kdWN0LXNpbmdsZV9fbWV0YS1sYWJlbCB7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0fVxuXG5cdC5iYy1wcm9kdWN0LWZvcm0ge1xuXHRcdG1hcmdpbi10b3A6IDQwcHg7XG5cdH1cblxuXHQuYmMtYnRuIHtcblx0XHRtYXJnaW4tdG9wOiA0MHB4O1xuXHR9XG5cblx0LmJjLXNpbmdsZS1wcm9kdWN0X19kZXNjcmlwdGlvbiB7XG5cdFx0bWFyZ2luLXRvcDogNjBweDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRwYWRkaW5nOiA1MHB4IDA7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHR9XG5cblx0LmJjLXNpbmdsZS1wcm9kdWN0X19zcGVjaWZpY2F0aW9ucyB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0cGFkZGluZy1ib3R0b206IDUwcHg7XG5cdH1cblxuXHQuYmMtc2luZ2xlLXByb2R1Y3RfX3NlY3Rpb24tdGl0bGUge1xuXHRcdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0fVxuXG5cdC5iYy1zaW5nbGUtcHJvZHVjdF9fc2VjdGlvbi10aXRsZS0tcmVsYXRlZCB7XG5cdFx0Zm9udC1zaXplOiAyNHB4O1xuXHR9XG5cblx0LmJjLXNpbmdsZS1wcm9kdWN0X19yYXRpbmdzIHtcblx0XHRtYXJnaW4tdG9wOiAyMHB4O1xuXHR9XG59XG5cbi5iYy1wcm9kdWN0LWZvcm1fX3F1YW50aXR5IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0bWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLmJjLXByb2R1Y3QtZm9ybV9fcXVhbnRpdHktbGFiZWwge1xuXHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5cbmlucHV0LmJjLXByb2R1Y3QtZm9ybV9fcXVhbnRpdHktaW5wdXRbdHlwZT1udW1iZXJdIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0Zm9udC1zaXplOiAxM3B4O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHdpZHRoOiA0MnB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0d2lkdGg6IDUycHg7XG5cdH1cblxuXHQmOmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdH1cbn1cbiIsIi5iYy1wcm9kdWN0LXF1aWNrLXZpZXdfX292ZXJsYXkge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogMDtcblx0cmlnaHQ6IDA7XG5cdGhlaWdodDogMTAwdmg7XG5cdHdpZHRoOiAxMDB2dztcblx0YmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmxhY2stYS03MCk7XG59XG5cbi5iYy1wcm9kdWN0LXF1aWNrLXZpZXdfX3dyYXBwZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0cmlnaHQ6IDA7XG5cdGhlaWdodDogMTAwdmg7XG5cdHdpZHRoOiAxMDB2dztcblx0ei1pbmRleDogNTA7XG5cblx0JlthcmlhLWhpZGRlbj0ndHJ1ZSddIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbmJ1dHRvbi5iYy1wcm9kdWN0LXF1aWNrLXZpZXdfX2Nsb3NlLWJ1dHRvbiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDA7XG5cdHRvcDogMDtcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWJsYWNrKTtcblx0Zm9udC1zaXplOiAzMHB4O1xuXHR6LWluZGV4OiAyO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0cGFkZGluZzogMTBweDtcblx0b3BhY2l0eTogMC42NTtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cdHdpZHRoOiBhdXRvO1xuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtcXVpY2stdmlld19fY29udGVudCB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogY2FsYygxMDB2dyAtIDIwJSk7XG5cdGhlaWdodDogYXV0bztcblx0bGVmdDogNTAlO1xuXHR0b3A6IDA7XG5cdG1hcmdpbjogNDBweCAwO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdG92ZXJmbG93LXk6IHNjcm9sbDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdGhlaWdodDogY2FsYygxMDB2aCAtIDIwJSk7XG5cdFx0bWF4LXdpZHRoOiAxMTQwcHg7XG5cdFx0bWF4LWhlaWdodDogNjYwcHg7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHRvcDogNTAlO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG5cblx0XHQuYnJvd3Nlci1pZSAmIHtcblx0XHRcdG1pbi1oZWlnaHQ6IDY2MHB4O1xuXHRcdH1cblx0fVxuXG5cdCoge1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdH1cblxuXHQ+IGRpdiB7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG59XG5cbi5iYy1wcm9kdWN0LXF1aWNrLXZpZXdfX2NvbnRlbnQtaW5uZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHBhZGRpbmc6IDYwcHg7XG5cblx0LmJjLXByb2R1Y3QtY2FyZCB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdGhlaWdodDogMTAwJTtcblx0fVxuXG5cdC5iYy1wcm9kdWN0X19nYWxsZXJ5IHtcblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0cGFkZGluZy1ib3R0b206IDYwcHg7XG5cdFx0XHRmbGV4OiAxIDEgMTAwJTtcblx0XHR9XG5cdH1cblxuXHQuYmMtcHJvZHVjdF9fbWV0YSB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiA0MHB4O1xuXHRcdH1cblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0XHR3aWR0aDogY2FsYyg1MCUgLSAzMHB4KTtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHR9XG5cdH1cblxuXHQuYmMtcHJvZHVjdF9fcHJpY2luZyB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0fVxuXG5cdC5iYy1zaW5nbGUtcHJvZHVjdF9fcmF0aW5ncyB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0fVxuXG5cdC5iYy1wcm9kdWN0LXNpbmdsZV9fbWV0YS1sYWJlbCB7XG5cdFx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXHR9XG5cblx0LmJjLXByb2R1Y3RfX2Rlc2NyaXB0aW9uIHtcblx0XHRvcmRlcjogNDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXJnaW4tdG9wOiA0MHB4O1xuXHRcdHBhZGRpbmctdG9wOiAzMHB4O1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0XHR3aWR0aDogY2FsYyg1MCUgLSAzMHB4KTtcblx0XHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdH1cblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1sYXJnZSkge1xuXHRcdFx0ZmxleDogMCAwIGF1dG87XG5cdFx0XHRvcmRlcjogNDtcblx0XHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRcdHdpZHRoOiBjYWxjKDUwJSAtIDMwcHgpO1xuXHRcdH1cblx0fVxufVxuIiwiLmd1dGVuYmVyZyB7XG5cblx0LmJjLXByb2R1Y3QtZ2FsbGVyeS0taGFzLWNhcm91c2VsIHtcblxuXHRcdC5zd2lwZXItc2xpZGUge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdFx0JjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LmJjLXF1aWNrdmlldy10cmlnZ2VyIHtcblx0XHRib3JkZXI6IDA7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxufVxuIl19 */ \ No newline at end of file +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3Bjc3MvYWRtaW4vYmMtZ3V0ZW5iZXJnLnBjc3MiLCIuLi9wY3NzL3V0aWxpdGllcy92YXJpYWJsZXMvX2NvbG9ycy5wY3NzIiwiLi4vcGNzcy91dGlsaXRpZXMvdmFyaWFibGVzL190eXBvZ3JhcGh5LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fYWxsLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fdGl0bGUucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19icmFuZC5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX3ByaWNlLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fZmxhZ3MucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19kZXNjcmlwdGlvbi5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX2dhbGxlcnkucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19mb3JtLWNvbXBvbmVudHMucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19vcHRpb24tZHJvcGRvd24ucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19vcHRpb24tc3dhdGNoLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fb3B0aW9uLXJlY3RhbmdsZS5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX29wdGlvbi1waWNrLWxpc3QucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19vcHRpb24tcmFkaW8ucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19yYXRpbmdzLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fc3BlY3MucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19yZWxhdGVkLXByb2R1Y3RzLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fcmVmaW5lcnkucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19zdWJuYXYucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19hbGVydC5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX3BhZ2luYXRpb24ucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19vcmRlci1wcm9kdWN0LXJvdy5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX2ltYWdlcy5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2J1dHRvbnMvX2RlZmF1bHQucGNzcyIsIi4uL3Bjc3MvY29udGVudC9idXR0b25zL19xdWljay12aWV3LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY2FyZHMvX2RlZmF1bHQucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jYXJkcy9fc2luZ2xlLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvbG9vcC9fZGVmYXVsdC5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2xvb3AvX25vLXJlc3VsdHMucGNzcyIsIi4uL3Bjc3MvY29udGVudC9zaW5nbGUvX3Byb2R1Y3QucGNzcyIsIi4uL3Bjc3MvY29udGVudC9zaW5nbGUvX3Byb2R1Y3QtcXVpY2stdmlldy5wY3NzIiwiLi4vcGNzcy9hZG1pbi9ndXRlbmJlcmcvX2RlZmF1bHQucGNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7O0FBRUgsbUJBQW1CO0FDUm5CO0NBQ0M7O29GQUVtRjs7Q0FnQm5GOztvRkFFbUY7O0NBS25GOztvRkFFbUY7O0NBTW5GOztvRkFFbUY7O0NBTW5GOztvRkFFbUY7O0NBUW5GOztvRkFFbUY7O0NBS25GOztvRkFFbUY7O0NBS25GOztvRkFFbUY7O0NBS25GOztvRkFFbUY7Q0FPbkY7QUNsRkQ7Q0FDQzs7b0ZBRW1GOztDQU9uRjs7b0ZBRW1GOztDQVluRjs7b0ZBRW1GOztDQVFuRjs7b0ZBRW1GOztDQVNuRjs7b0ZBRW1GO0NBSW5GOztBRnBD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a0I7RUFDbEIsa0JBQWtCO0VBQ2xCLFVBQVU7RUFDVixTQUFTO0VBQ1QsOENBQXNDO1VBQXRDLHFDQUFzQztFQWN2QztDQVpDO0VBQ0Msa0JBQWtCO0VBQ2xCO0NBQ0Q7QUFFRDtDQUNDLCtCQUF1QjtTQUF2Qix1QkFBdUI7Q0FDdkI7QUFFRDtDQUNDLGFBQWE7Q0FDYjtBQUdGO0NBQ0MsbUJBQW1CO0NBQ25CLGNBQWM7Q0E4RGQ7QUE1REE7Q0FDQyxVQUFVO0NBQ1YsYUFBYTtDQUNiO0FBR0E7Q0FERDtFQUVFLGFBQWE7RUFDYixxQkFBcUI7RUFDckIsb0JBQWU7TUFBZixtQkFBZTtVQUFmLGNBQWU7RUFFaEI7Q0FEQztBQUdGO0NBQ0MsWUFBWTtDQWFaO0FBWEE7Q0FIRDtFQUlFLG1CQUFvQjtFQVVyQjtDQVRDO0FBRUQ7Q0FQRDtFQVFFLHVCQUF3QjtFQU16QjtDQUxDO0FBRUQ7Q0FYRDtFQVlFLGVBQWdCO0VBRWpCO0NBREM7QUFHRjtDQUNDLG9CQUFvQjtDQUNwQjtBQUVEO0NBQ0Msb0JBQW9CO0NBQ3BCO0FBRUQ7Q0FDQyxpQkFBcUM7Q0FDckM7QUFFRDtDQUNDLDZCQUFTO0tBQVQsa0JBQVM7U0FBVCxTQUFTO0NBQ1QsWUFBWTtDQUNaLGlCQUFpQjtDQUNqQixrQkFBa0I7Q0FDbEIsOEJBQWlEO0NBYWpEO0FBWEE7Q0FQRDtFQVFFLHdCQUF3QjtFQUN4Qix5QkFBcUI7TUFBckIsb0JBQXFCO0VBU3RCO0NBUkM7QUFFRDtDQVpEO0VBYUUsb0JBQWU7TUFBZixtQkFBZTtVQUFmLGVBQWU7RUFDZiw2QkFBUztNQUFULGtCQUFTO1VBQVQsU0FBUztFQUNULGdCQUFnQjtFQUNoQix1QkFBd0I7RUFFekI7Q0FEQzs7QWhDdkdILDhCQUE4QjtBaUM5QjVCO0NBQ0MsY0FBYztDQUtkO0FBSEE7Q0FDQyxlQUFlO0NBQ2Y7QUFJSDtDQUNDLFVBQVU7Q0FDVixjQUFjO0NBQ2QiLCJmaWxlIjoiYmMtZ3V0ZW5iZXJnLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBXb3JkUHJlc3MgR3V0ZW5iZXJnIEJsb2NrIENTU1xuICpcbiAqIFRoaXMgY3NzIGZpbGVzIGluY2x1ZGVzIGFyZSBsb2FkZWQgd2l0aCBHdXRlbmJlcmcgYmxvY2sgc2NyaXB0cyBpbiB0aGUgYWRtaW4uXG4gKiBVc2UgdGhpcyBmb3IgYWxsIGJsb2NrIHNwZWNpZmljIEd1dGVuYmVyZyBlZGl0b3IgY3NzLlxuICpcbiAqL1xuXG4vKiBBZG1pbiBVSSBCYXNlICovXG5AaW1wb3J0IFwiLi4vdXRpbGl0aWVzL3NldHRpbmdzL2dyaWRcIjtcbkBpbXBvcnQgXCIuLi91dGlsaXRpZXMvdmFyaWFibGVzL2NvbG9yc1wiO1xuQGltcG9ydCBcIi4uL3V0aWxpdGllcy92YXJpYWJsZXMvbWVkaWEtcXVlcmllc1wiO1xuQGltcG9ydCBcIi4uL3V0aWxpdGllcy92YXJpYWJsZXMvdHJhbnNpdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi91dGlsaXRpZXMvdmFyaWFibGVzL3R5cG9ncmFwaHlcIjtcblxuLyogQ29tcG9uZW50cyAqL1xuQGltcG9ydCBcIi4uL2NvbnRlbnQvY29tcG9uZW50cy9hbGxcIjtcblxuLyogQnV0dG9ucyAqL1xuQGltcG9ydCBcIi4uL2NvbnRlbnQvYnV0dG9ucy9kZWZhdWx0XCI7XG5AaW1wb3J0IFwiLi4vY29udGVudC9idXR0b25zL3F1aWNrLXZpZXdcIjtcblxuLyogQ2FyZHMgKi9cbkBpbXBvcnQgXCIuLi9jb250ZW50L2NhcmRzL2RlZmF1bHRcIjtcbkBpbXBvcnQgXCIuLi9jb250ZW50L2NhcmRzL3NpbmdsZVwiO1xuXG4vKiBMb29wICovXG5AaW1wb3J0IFwiLi4vY29udGVudC9sb29wL2RlZmF1bHRcIjtcbkBpbXBvcnQgXCIuLi9jb250ZW50L2xvb3Avbm8tcmVzdWx0c1wiO1xuXG4vKiBTaW5nbGUgKi9cbkBpbXBvcnQgXCIuLi9jb250ZW50L3NpbmdsZS9wcm9kdWN0XCI7XG5AaW1wb3J0IFwiLi4vY29udGVudC9zaW5nbGUvcHJvZHVjdC1xdWljay12aWV3XCI7XG5cbi8qIEd1dGVuYmVyZyBDdXN0b21pemF0aW9ucyAqL1xuQGltcG9ydCAnZ3V0ZW5iZXJnL2RlZmF1bHQnO1xuIiwiOnJvb3Qge1xuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBQcmltYXJ5IFBhbGV0dGVcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNvbG9yLXByaW1hcnk6ICM1MjczZjQ7XG5cdC0tY29sb3Itc2Vjb25kYXJ5OiBkYXJrZW4odmFyKC0tY29sb3ItcHJpbWFyeSksIDAuMDgpO1xuXHQtLWNvbG9yLWJjLWdyZWVuOiAjNjVjNjhjO1xuXHQtLWNvbG9yLWJjLWxpZ2h0LWdyZXk6ICNlMGUzZTk7XG5cdC0tY29sb3ItYmMtY29uY3JldGU6ICNjZGNkY2Q7XG5cdC0tY29sb3ItYmMtZ3JleTogIzhiOGI4Yjtcblx0LS1jb2xvci1iYy1ncmV5LW1lZGl1bTogIzVlNWU1ZTtcblx0LS1jb2xvci1iYy1ibGFjazogIzM0MzEzZjtcblx0LS1jb2xvci1iYy1kb2dlci1ibHVlOiAjNGI3MWZjO1xuXHQtLWNvbG9yLWJjLWJsdWUtbGlnaHQ6ICMxNjhmYzA7XG5cdC0tY29sb3ItYmMtYmx1ZS10dXJxdW9pc2U6ICM1M2JhZDE7XG5cdC0tY29sb3ItYmMtcmVkOiAjZDI1NzRhO1xuXHQtLWNvbG9yLWJjLXN1Y2Nlc3M6ICM4MjlkNWY7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogV2hpdGVzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jb2xvci13aGl0ZTogI2ZmZjtcblx0LS1jb2xvci1vZmYtd2hpdGU6ICNmNWY1ZjU7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogR3JleXNcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNvbG9yLWdyZXktbGlnaHQ6IGxpZ2h0ZW4odmFyKC0tY29sb3ItZ3JleSksIDAuMTUpO1xuXHQtLWNvbG9yLWdyZXk6IGdyZXk7XG5cdC0tY29sb3ItZ3JleS1kYXJrOiBkYXJrZW4odmFyKC0tY29sb3ItZ3JleSksIDAuMTUpO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIEJsYWNrc1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY29sb3ItYmxhY2s6ICMwMDA7XG5cdC0tY29sb3ItYmxhY2stYS00MDogcmdiYSgwLCAwLCAwLCAwLjQpO1xuXHQtLWNvbG9yLWJsYWNrLWEtNzA6IHJnYmEoMCwgMCwgMCwgMC43KTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBCYWNrZ3JvdW5kc1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY29sb3ItYmdkOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdC0tY29sb3ItYmdkLWNvbnRlbnQ6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0LS1jb2xvci1iZ2QtbG9naW46ICNmMWYxZjE7XG5cdC0tY29sb3ItYmdkLXNlbGVjdGlvbjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG5cdC0tY29sb3ItYmdkLXBhbmVsLWFjdGl2ZTogIzJjMjkzNTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBMaW5rc1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY29sb3ItbGluazogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG5cdC0tY29sb3ItbGluay1ob3ZlcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBUZXh0XG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jb2xvci10ZXh0OiB2YXIoLS1jb2xvci1ibGFjayk7XG5cdC0tY29sb3ItdGV4dC1zZWxlY3Rpb246IHZhcigtLWNvbG9yLXdoaXRlKTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBCb3JkZXJzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jb2xvci1ib3JkZXI6IHZhcigtLWNvbG9yLWdyZXkpO1xuXHQtLWNvbG9yLWJvcmRlci1mb3JtLWZpZWxkOiAjZTFlNmVhO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIEFsZXJ0IENvbG9yc1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tYWxlcnQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0LS1hbGVydC1iZy1kZWZhdWx0OiB2YXIoLS1jb2xvci1iYy1ibHVlLWxpZ2h0KTtcblx0LS1hbGVydC1zdWNjZXNzOiAjM2VjODg5O1xuXHQtLWFsZXJ0LWVycm9yOiAjZmYwMDEyO1xuXHQtLWFsZXJ0LWJnLWluZm86IHZhcigtLWNvbG9yLWJjLWNvbmNyZXRlKTtcbn1cbiIsIjpyb290IHtcblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogRm9udCBTdGFja3Ncblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWZvbnQtZmFtaWx5LWJpZ2NvbW1lcmNlLWljb25zOiAnYmlnY29tbWVyY2UtaWNvbnMnO1xuXHQtLWZvbnQtZmFtaWx5LXByb3hpbWEtbm92YTogXCJwcm94aW1hLW5vdmFcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXHQtLWZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcblx0LS1mb250LWZhbWlseS1iYXNlOiB2YXIoLS1mb250LWZhbWlseS1wcm94aW1hLW5vdmEpO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIEZvbnQgU2l6aW5nXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb250LXNpemUtYmFzZTogMTZweDtcblx0LS1mb250LXNpemUtY29udGVudDogMWVtO1xuXHQtLWZvbnQtc2l6ZS1jb250ZW50LXh4bDogMS41ZW07XG5cdC0tZm9udC1zaXplLWNvbnRlbnQteGw6IDEuMjVlbTtcblx0LS1mb250LXNpemUtY29udGVudC1sZzogMS4xMjVlbTtcblx0LS1mb250LXNpemUtY29udGVudC1tOiAwLjg3NWVtO1xuXHQtLWZvbnQtc2l6ZS1jb250ZW50LXM6IDAuODEzZW07XG5cdC0tZm9udC1zaXplLWNvbnRlbnQteHM6IDAuNzVlbTtcblx0LS1mb250LXNpemUtY29udGVudC14eHM6IDAuNjI1ZW07XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogRm9udCBXZWlnaHRzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb250LXdlaWdodC1saWdodDogMzAwO1xuXHQtLWZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMDtcblx0LS1mb250LXdlaWdodC1tZWRpdW06IDUwMDtcblx0LS1mb250LXdlaWdodC1zZW1pYm9sZDogNjAwO1xuXHQtLWZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBMaW5lIEhlaWdodHNcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWxpbmUtaGVpZ2h0LWJhc2U6IDEuNTtcblx0LS1saW5lLWhlaWdodC1sOiAxLjY7XG5cdC0tbGluZS1oZWlnaHQtbTogMS4zNzU7XG5cdC0tbGluZS1oZWlnaHQtczogMS4zO1xuXHQtLWxpbmUtaGVpZ2h0LXNzOiAxLjI7XG5cdC0tbGluZS1oZWlnaHQtZXZlbjogMTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBCb3JkZXIgUmFkaXVzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1ib3JkZXItcmFkaXVzLWJhc2U6IDRweDtcblx0LS1ib3JkZXItcmFkaXVzLXJvdW5kOiA1MCU7XG59XG4iLCIvKiBDb21wb25lbnRzICovXG5AaW1wb3J0IFwidGl0bGVcIjtcbkBpbXBvcnQgXCJicmFuZFwiO1xuQGltcG9ydCBcInByaWNlXCI7XG5AaW1wb3J0IFwiZmxhZ3NcIjtcbkBpbXBvcnQgXCJkZXNjcmlwdGlvblwiO1xuQGltcG9ydCBcImdhbGxlcnlcIjtcbkBpbXBvcnQgXCJmb3JtLWNvbXBvbmVudHNcIjtcbkBpbXBvcnQgXCJvcHRpb24tZHJvcGRvd25cIjtcbkBpbXBvcnQgXCJvcHRpb24tc3dhdGNoXCI7XG5AaW1wb3J0IFwib3B0aW9uLXJlY3RhbmdsZVwiO1xuQGltcG9ydCBcIm9wdGlvbi1waWNrLWxpc3RcIjtcbkBpbXBvcnQgXCJvcHRpb24tcmFkaW9cIjtcbkBpbXBvcnQgXCJyYXRpbmdzXCI7XG5AaW1wb3J0IFwic3BlY3NcIjtcbkBpbXBvcnQgXCJyZWxhdGVkLXByb2R1Y3RzXCI7XG5AaW1wb3J0IFwicmVmaW5lcnlcIjtcbkBpbXBvcnQgXCJzdWJuYXZcIjtcbkBpbXBvcnQgXCJhbGVydFwiO1xuQGltcG9ydCBcInBhZ2luYXRpb25cIjtcbkBpbXBvcnQgXCJvcmRlci1wcm9kdWN0LXJvd1wiO1xuQGltcG9ydCBcImltYWdlc1wiO1xuIiwiLmJjLXByb2R1Y3RfX3RpdGxlIHtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC1sZyk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zcyk7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0cGFkZGluZzogMDtcblx0bWFyZ2luOiAwIDAgMThweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC14bCk7XG5cdFx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNzKTtcblx0fVxuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC14eGwpO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjE1O1xuXHR9XG59XG5cbi5iYy1wcm9kdWN0X190aXRsZS1saW5rIHtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ibGFjayk7XG5cdG9wYWNpdHk6IDE7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMge1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ibGFjayk7XG5cdFx0b3BhY2l0eTogMC44O1xuXG5cdFx0LmJjLXByb2R1Y3QtZmxhZy0tZ3JleSB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxufVxuXG4uYmMtcHJvZHVjdF9faW52ZW50b3J5IHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LW0pO1xuXHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtbCk7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1yZWd1bGFyKTtcblx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG5cdC5iYy1wcm9kdWN0LWNhcmQgJiB7XG5cdFx0Zm9udC1zaXplOiAwLjU2M2VtO1xuXHR9XG59XG5cbi5iYy1wcm9kdWN0LXNpbmdsZV9fbWV0YSxcbi5iYy1wcm9kdWN0LWNhcmQtLXNpbmdsZSB7XG5cblx0LmJjLXByb2R1Y3RfX3RpdGxlIHtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXh4bCk7XG5cdFx0bGluZS1oZWlnaHQ6IDEuMTU7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0Zm9udC1zaXplOiAxLjc1ZW07XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdGZvbnQtc2l6ZTogMmVtO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuMTI1O1xuXHRcdH1cblx0fVxuXG5cdC5iYy1wcm9kdWN0X19pbnZlbnRvcnkge1xuXHRcdGZvbnQtc2l6ZTogMC41NjNlbTtcblx0XHRtYXJnaW46IDA7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRmb250LXNpemU6IDAuNTcxZW07XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdGZvbnQtc2l6ZTogMC41ZW07XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1wcm9kdWN0LWNhcmQtLXJlbGF0ZWQge1xuXG5cdC5iYy1wcm9kdWN0X190aXRsZSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcblx0fVxufVxuIiwiLmJjLXByb2R1Y3RfX2JyYW5kIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQtbSk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1ldmVuKTtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxNXB4O1xuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHR9XG59XG5cbi5iYy1wcm9kdWN0LXNpbmdsZSxcbi5iYy1wcm9kdWN0LWNhcmQtLXNpbmdsZSB7XG5cblx0LmJjLXByb2R1Y3RfX2JyYW5kIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50KTtcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHR9XG59XG4iLCIuYmMtcHJvZHVjdF9fcHJpY2luZyB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5iYy1wcm9kdWN0X19wcmljZSB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQpO1xufVxuXG4uYmMtcHJvZHVjdF9fb3JpZ2luYWwtcHJpY2Uge1xuXHR0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcblx0bWFyZ2luLXJpZ2h0OiAxMnB4O1xuXHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWdyZXkpO1xufVxuXG4uYmMtcHJvZHVjdF9fcHJpY2UtLXNhbGUge1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ncmVlbik7XG59XG5cbi5iYy1wcm9kdWN0LWNhcmQtLXNpbmdsZSB7XG5cblx0LmJjLXByb2R1Y3RfX3ByaWNpbmcge1xuXHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDUwcHg7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1wcm9kdWN0LWNhcmQtLXNpbmdsZSxcbi5iYy1wcm9kdWN0LXNpbmdsZSB7XG5cblx0LmJjLXByb2R1Y3RfX29yaWdpbmFsLXByaWNlIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cdH1cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogUHJvZHVjdCBGbGFnc1xuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5iYy1wcm9kdWN0LWZsYWctLXNhbGUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogLTIwcHg7XG5cdHRvcDogLTIwcHg7XG5cdHdpZHRoOiA1MHB4O1xuXHRoZWlnaHQ6IDUwcHg7XG5cdGxpbmUtaGVpZ2h0OiA1MHB4O1xuXHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJjLWdyZWVuKTtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0ei1pbmRleDogMjtcbn1cblxuLmJjLXByb2R1Y3QtZmxhZy0tZ3JleSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0cGFkZGluZzogN3B4IDhweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdGZvbnQtc2l6ZTogMC41MjJlbTtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWV2ZW4pO1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuXG4uYmMtcHJvZHVjdC1zaW5nbGUsXG4uYmMtcHJvZHVjdC1jYXJkLS1zaW5nbGUge1xuXG5cdC5iYy1wcm9kdWN0LWZsYWctLXNhbGUge1xuXHRcdHdpZHRoOiA2MHB4O1xuXHRcdGhlaWdodDogNjBweDtcblx0XHRsaW5lLWhlaWdodDogNjBweDtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcblx0fVxuXG5cdC5iYy1wcm9kdWN0LWZsYWctLWdyZXkge1xuXHRcdGZvbnQtc2l6ZTogMC41ZW07XG5cdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0Zm9udC1zaXplOiAwLjQyOWVtO1xuXHRcdH1cblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0XHRmb250LXNpemU6IDAuMzc1ZW07XG5cdFx0fVxuXHR9XG59XG5cbiIsIi5iYy1wcm9kdWN0X19kZXNjcmlwdGlvbiB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQpO1xuXHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG5cdG1hcmdpbi1ib3R0b206IDMwcHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRtYXJnaW4tYm90dG9tOiA0MHB4O1xuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogNTBweDtcblx0fVxuXG5cdHA6bGFzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuIiwiLmJjLXByb2R1Y3QtZ2FsbGVyeV9faW1hZ2VzIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblx0bWF4LXdpZHRoOiAzNzBweDtcblx0bWFyZ2luOiA2MHB4IGF1dG87XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdG1hcmdpbjogMDtcblx0fVxufVxuXG4uYmMtcHJvZHVjdC1nYWxsZXJ5X19pbWFnZS1zbGlkZSB7XG5cblx0aW1nIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG4uYmMtcHJvZHVjdC1nYWxsZXJ5LS1oYXMtY2Fyb3VzZWwge1xuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4vKiBUaHVtYm5haWwgQ2Fyb3VzZWwgKi9cblxuLyogQ0FTRTogdGh1bWIgY29udHJvbGxlciBvbmx5IHdvcmtzIHdpdGggY2VudGVyZWQgc2xpZGVzLiBUaGlzIG1vdmVzIHRoYXQgY29udGFpbmVyIGJhY2sgdG8gZmx1c2ggbGVmdC4gKi9cbi5zd2lwZXItY29udGFpbmVyW2RhdGEtanM9XCJiYy1nYWxsZXJ5LXRodW1ic1wiXSAuc3dpcGVyLXdyYXBwZXIge1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgIWltcG9ydGFudDtcbn1cblxuLmJjLXByb2R1Y3QtZ2FsbGVyeV9fdGh1bWJzIHtcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuXHQuYmMtcHJvZHVjdC1nYWxsZXJ5X190aHVtYi1zbGlkZSB7XG5cdFx0Ym94LXNoYWRvdzogdW5zZXQ7XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtZ2FsbGVyeV9fdGh1bWItc2xpZGUge1xuXHR3aWR0aDogY2FsYygyNSUgLSAxMHB4KTtcblx0bWFyZ2luOiAwIDEwcHggMTBweCAwO1xuXHRwYWRkaW5nOiAwO1xuXHRib3JkZXI6IDA7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdG9wYWNpdHk6IDAuODtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0Ji5zd2lwZXItc2xpZGUtYWN0aXZlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRm9ybXNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5iYy1wcm9kdWN0LWZvcm1fX2NvbnRyb2wge1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uYmMtcHJvZHVjdC1mb3JtX19vcHRpb24tbGFiZWwsXG4uYmMtcHJvZHVjdC1mb3JtX19tb2RpZmllci1sYWJlbCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50KTtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xufVxuXG4uYmMtcHJvZHVjdC1mb3JtX19vcHRpb24tdmFyaWFudHMge1xuXHRtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uYmMtcHJvZHVjdC12YXJpYW50X19sYWJlbCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uYmMtcHJvZHVjdC1mb3JtX19vcHRpb24tdmFyaWFudHMtLWlubGluZSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cblx0LmJjLXByb2R1Y3QtdmFyaWFudF9fbGFiZWwge1xuXHRcdG1hcmdpbi1yaWdodDogMTBweDtcblxuXHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHR9XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtdmFyaWFudF9fbGFiZWwtLXRpdGxlIHtcblx0ZmxleDogMTtcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWdyZXkpO1xufVxuXG5pbnB1dC5iYy1wcm9kdWN0LXZhcmlhbnRfX3JhZGlvLS1oaWRkZW4ge1xuXHRtYXJnaW46IDA7XG59XG5cbi5iYy1wcm9kdWN0LWZvcm1fX3Byb2R1Y3QtbWVzc2FnZSB7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi5iYy1wcm9kdWN0LWZvcm1fX21lc3NhZ2Uge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cGFkZGluZzogMTJweCAxNnB4O1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXhzKTtcbn1cblxuLmJjLXByb2R1Y3QtZm9ybV9fbW9kaWZpZXItZGVzY3JpcHRpb24ge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC14cyk7XG5cdGxpbmUtaGVpZ2h0OiAxLjE1O1xuXHRwYWRkaW5nOiAwIDEwcHg7XG5cdG1hcmdpbi10b3A6IDRweDtcbn1cbiIsIi5iYy1wcm9kdWN0LWZvcm1fX29wdGlvbi1zZWxlY3Qge1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50KTtcbn1cbiIsIi5iYy1wcm9kdWN0LWZvcm1fX2NvbnRyb2wtLXN3YXRjaCB7XG5cblx0aW5wdXQuYmMtcHJvZHVjdC12YXJpYW50X19yYWRpby0taGlkZGVuIHtcblxuXHRcdCY6Y2hlY2tlZCArIC5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsIC5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsLS1zd2F0Y2gge1xuXHRcdFx0Ym9yZGVyOiAwIHNvbGlkIHZhcigtLWNvbG9yLXdoaXRlKTtcblx0XHRcdGJveC1zaGFkb3c6IDAgMCAxcHggdmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCk7XG5cdFx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWJvcmRlcik7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsLS1zd2F0Y2gge1xuXHRkaXNwbGF5OiBibG9jaztcblx0d2lkdGg6IDM2cHg7XG5cdGhlaWdodDogMzZweDtcblx0Ym9yZGVyOiA1cHggc29saWQgdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRib3gtc2hhZG93OiAwIDAgMXB4IHZhcigtLWNvbG9yLWJjLWdyZXkpO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tYm9yZGVyKTtcbn1cbiIsIi5iYy1wcm9kdWN0LWZvcm1fX2NvbnRyb2wtLXJlY3RhbmdsZSB7XG5cblx0aW5wdXQuYmMtcHJvZHVjdC12YXJpYW50X19yYWRpby0taGlkZGVuIHtcblxuXHRcdCY6Y2hlY2tlZCArIC5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsIC5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsLS1yZWN0YW5nbGUge1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCk7XG5cdFx0XHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdFx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWJvcmRlciksIHZhcigtLXRyYW5zaXRpb24tY29sb3ItZmFzdCk7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsLS1yZWN0YW5nbGUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0aGVpZ2h0OiAzNnB4O1xuXHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG5cdHBhZGRpbmc6IDVweCAxMHB4O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWNvbmNyZXRlKTtcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWdyZXkpO1xuXHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWJvcmRlciksIHZhcigtLXRyYW5zaXRpb24tY29sb3ItZmFzdCk7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cbiIsIi5iYy1wcm9kdWN0LWZvcm1fX2NvbnRyb2wtLXBpY2stbGlzdCB7XG5cblx0aW5wdXQuYmMtcHJvZHVjdC12YXJpYW50X19yYWRpby0taGlkZGVuIHtcblxuXHRcdCY6Y2hlY2tlZCArIC5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsIC5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsLS1waWNrLWxpc3Qge1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCk7XG5cdFx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWJvcmRlcik7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsLS1waWNrLWxpc3Qge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRwYWRkaW5nOiA1cHg7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsLS1pbWcge1xuXHRmbGV4OiAwO1xuXHRtYXJnaW4tcmlnaHQ6IDZweDtcblx0d2lkdGg6IDEwMCU7XG5cdG1heC13aWR0aDogNTBweDtcblx0aGVpZ2h0OiBhdXRvO1xufVxuIiwiLmJjLXByb2R1Y3QtZm9ybV9fY29udHJvbC0tcmFkaW8ge1xuXG5cdC5iYy1wcm9kdWN0LWZvcm1fX29wdGlvbi1sYWJlbCB7XG5cdFx0ZmxleDogMCAwIDEwMCU7XG5cdH1cblxuXHQuYmMtcHJvZHVjdC12YXJpYW50X19sYWJlbCB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0bWFyZ2luLWJvdHRvbTogNnB4O1xuXHR9XG5cblx0LmJjLXByb2R1Y3QtdmFyaWFudF9fcmFkaW8ge1xuXHRcdGZsZXg6IDAgMCBhdXRvO1xuXHR9XG5cblx0LmJjLXByb2R1Y3QtdmFyaWFudF9fbGFiZWwtLXJhZGlvIHtcblx0XHRmbGV4OiAxO1xuXHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1iYXNlKTtcblx0fVxufVxuIiwiLmJjLXNpbmdsZS1wcm9kdWN0X19yYXRpbmcge1xuXHR1bmljb2RlLWJpZGk6IGJpZGktb3ZlcnJpZGU7XG5cdGNvbG9yOiAjOGI4YjhiO1xuXHRmb250LXNpemU6IDE1cHg7XG5cdGhlaWdodDogMjVweDtcblx0d2lkdGg6IDkwcHg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZzogMDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG5cdCYtLW1hc2sge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGhlaWdodDogMjVweDtcblx0XHR6LWluZGV4OiAyO1xuXHR9XG5cblx0Ji0tdG9wIHtcblx0XHRjb2xvcjogI2ZjMDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdHdpZHRoOiA5MHB4O1xuXHRcdHotaW5kZXg6IDE7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdH1cblxuXHQmLS1ib3R0b20ge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0ei1pbmRleDogMDtcblx0XHR3aWR0aDogOTBweDtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0fVxufVxuXG4uYmMtcmF0aW5nLXN0YXIge1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlxcMjYwNVwiO1xuXHRcdGZvbnQtc2l6ZTogMTVweDtcblx0fVxufVxuXG4uYmMtc2luZ2xlLXByb2R1Y3RfX3JhdGluZy1yZXZpZXdzIHtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC14cyk7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0bWFyZ2luLWxlZnQ6IDEwcHg7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbiIsIi5iYy1wcm9kdWN0X19zcGVjLWxpc3Qge1xuXHRsaXN0LXN0eWxlOiBub25lO1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cdGxvc3QtY2VudGVyOiAxMDAlO1xufVxuXG4uYmMtcHJvZHVjdF9fc3BlYyB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQtbSk7XG5cdGxvc3Qtd2FmZmxlOiAxLzI7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGxvc3Qtd2FmZmxlOiAxLzM7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdGxvc3Qtd2FmZmxlOiAxLzQ7XG5cdH1cbn1cbiIsIi5iYy1zaW5nbGUtcHJvZHVjdF9fcmVsYXRlZCB7XG5cdHBhZGRpbmc6IDUwcHggMCAwO1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cblx0LmJjLWZvcm0uYmMtcHJvZHVjdC1mb3JtLFxuXHRidXR0b24uYmMtYnRuIHtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHR9XG59XG5cbi5iYy1zaW5nbGUtcHJvZHVjdF9fc2VjdGlvbi10aXRsZS0tcmVsYXRlZCB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQteHhsKTtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cbiIsIi5iYy1wcm9kdWN0LWFyY2hpdmVfX3JlZmluZXJ5IHtcblx0d2lkdGg6IDEwMCU7XG5cdG1hcmdpbjogNDBweCAwIDgwcHg7XG5cblx0LmJjLWZvcm0ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0XHR9XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtYXJjaGl2ZV9fc2VhcmNoIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRmbGV4OiAxIDEgMTAwJTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0ZmxleDogMCAxIDI3MHB4O1xuXHR9XG59XG5cbi5iYy1wcm9kdWN0LWFyY2hpdmVfX3NlbGVjdCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0bWFyZ2luLXRvcDogMTVweDtcblx0ZmxleDogMSAxIDEwMCU7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LXhzbWFsbCkge1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGZsZXg6IDAgMSBjYWxjKDMzLjMzMzMlIC0gMjBweCk7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdG1hcmdpbi1yaWdodDogMjBweDtcblxuXHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0fVxuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0XHRmbGV4OiAwIDEgYXV0bztcblx0fVxufVxuXG4uYmMtcHJvZHVjdC1hcmNoaXZlX19zZWxlY3QtbGFiZWwge1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXhzKTtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdGZsZXg6IDAgMCAxMDAlO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC14c21hbGwpIHtcblx0XHRmbGV4OiAwIDAgMTUwcHg7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0ZmxleDogMCAwIDEwMCU7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdGZsZXg6IDAgMCBhdXRvO1xuXHR9XG59XG5cbi5iYy1wcm9kdWN0LWFyY2hpdmVfX3NlbGVjdC1maWVsZCB7XG5cdGZsZXg6IDAgMCAxMDAlO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC14c21hbGwpIHtcblx0XHRmbGV4OiAxIDEgMTAwJTtcblx0fVxuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmbGV4OiAwIDAgMTAwJTtcblx0fVxuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0ZmxleDogMCAxIGF1dG87XG5cdH1cblxuXHQuYmMtZm9ybSAmIHtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXhzKTtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtZ3JleSk7XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtYXJjaGl2ZV9fc2VhcmNoLXN1Ym1pdCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDA7XG5cdHRvcDogMDtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cdGhlaWdodDogMTAwJTtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudCk7XG5cblx0Ji5iYy1idG4uYmMtYnRuLS1zbWFsbCB7XG5cdFx0bWF4LXdpZHRoOiBub25lO1xuXHRcdHdpZHRoOiBhdXRvO1xuXHR9XG59XG4iLCIuYmMtc3VibmF2X19saXN0IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtc21hbGwpIHtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHR9XG59XG5cbi5iYy1zdWJuYXZfX2xpc3QtaXRlbSB7XG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdHBhZGRpbmc6IDA7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LXNtYWxsKSB7XG5cblx0XHQrIC5iYy1zdWJuYXZfX2xpc3QtaXRlbSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMzBweDtcblx0XHR9XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcblx0fVxufVxuXG4uYmMtc3VibmF2X19saW5rIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmJjLXN1Ym5hdl9fbGlzdC1pdGVtLS1jdXJyZW50IC5iYy1zdWJuYXZfX2xpbmsge1xuXHRjb2xvcjogY3VycmVudENvbG9yO1xufVxuIiwiLmJjLWFsZXJ0IHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWxlcnQtYmctZGVmYXVsdCk7XG5cdGNvbG9yOiB2YXIoLS1hbGVydC1jb2xvcik7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQpO1xuXHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG5cdHBhZGRpbmc6IDEycHggMTZweDtcblx0bWFyZ2luLWJvdHRvbTogNDBweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogNjBweDtcblx0fVxuXG5cdCYtLXN1Y2Nlc3Mge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFsZXJ0LXN1Y2Nlc3MpO1xuXHR9XG5cblx0Ji0tZXJyb3Ige1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFsZXJ0LWVycm9yKTtcblx0fVxufVxuXG4uYmMtYWxlcnQtZ3JvdXAge1xuXG5cdC5iYy1hbGVydDpub3QoOmxhc3QtY2hpbGQpIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHR9XG5cblx0Ji0taW5mbyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWxlcnQtYmctaW5mbyk7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWJsYWNrKTtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LW0pO1xuXG5cdFx0LmJjLXByb2R1Y3QtZm9ybSAmIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0fVxuXHR9XG5cblx0Ji0tZXJyb3Ige1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXHR9XG5cblx0Ji5iYy1mYWRlLWluLWFsZXJ0LWdyb3VwIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHR9XG59XG5cbi5iYy1mb3JtX19lcnJvci1tZXNzYWdlIHtcblx0Y29sb3I6IHZhcigtLWFsZXJ0LWVycm9yKTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbi10b3A6IDEwcHg7XG5cdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1yZWd1bGFyKTtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC1zKTtcbn1cbiIsIi5iYy1sb2FkLWl0ZW1zIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYmMtbG9hZC1pdGVtcy1jb250YWluZXItLWhhcy1wYWdlcyB7XG5cdHBhZGRpbmctYm90dG9tOiA0MHB4O1xuXG5cdD4gKjpub3QoLmJjLWxvYWQtaXRlbXNfX3RyaWdnZXIpIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tb3BhY2l0eSk7XG5cblx0XHQmLml0ZW0taW5pdGlhbGl6ZWQge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cbn1cblxuLmJjLWxvYWQtaXRlbXNfX2xvYWRlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Ym90dG9tOiAzMHB4O1xuXHRsZWZ0OiA1MCU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0b3BhY2l0eTogMDtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1vcGFjaXR5KTtcblxuXHQmLmFjdGl2ZSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG4uYmMtbG9hZC1tb3JlLWl0ZW1zLFxuLmJjLWxvYWQtaXRlbXNfX3RyaWdnZXIge1xuXHR3aWR0aDogMTAwJTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYmMtbG9hZC1tb3JlLWl0ZW1zIHtcblx0bWFyZ2luLXRvcDogMjBweDtcbn1cblxuLmJjLWxvYWQtaXRlbXNfX3RyaWdnZXItYnRuLFxuLmJjLW5vLXJlc3VsdHNfX2J1dHRvbiB7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQtbSk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1ldmVuKTtcblx0b3V0bGluZTogbm9uZTtcblx0Ym9yZGVyOiAwO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0JltkaXNhYmxlZF0ge1xuXHRcdG9wYWNpdHk6IDAuNTtcblx0XHRjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyB7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLWxpbmstaG92ZXIpO1xuXG5cdFx0JltkaXNhYmxlZF0ge1xuXHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0XHRjb2xvcjogdmFyKC0tY29sb3ItbGluay1ob3Zlcik7XG5cdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0fVxuXHR9XG5cblx0LmJjLWljb24ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbi10b3A6IDE0cHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGZvbnQtc2l6ZTogMThweDtcblx0fVxufVxuXG4vKiBFcnJvciBIYW5kbGluZyAqL1xuLmJjLXBhZ2luYXRpb25fX2Vycm9yLW1lc3NhZ2Uge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC1tKTtcbn1cbiIsIi5iYy1vcmRlci1wcm9kdWN0LXJvdyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdH1cbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19pbWFnZSB7XG5cdGZsZXg6IDAgMCAxMDBweDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXHRtYXgtd2lkdGg6IDEwMHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRtYXJnaW46IDAgMjBweCAwIDA7XG5cdH1cblxuXHRpbWcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogYXV0bztcblx0fVxufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX2JvZHkge1xuXHRmbGV4OiAxIDEgYXV0bztcblx0bWFyZ2luLWJvdHRvbTogMTJweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bWFyZ2luOiAwIDIwcHggMCAwO1xuXHRcdG1heC13aWR0aDogNTUwcHg7XG5cdH1cbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19oZWFkZXIge1xuXG5cdC5iYy1vcmRlci1wcm9kdWN0LXJvd19fdGl0bGUge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQteGwpO1xuXHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zcyk7XG5cdFx0bWFyZ2luOiAwIDEwcHggMCAwO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQteHhsKTtcblx0XHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zKTtcblx0XHR9XG5cdH1cblxuXHQuYmMtcHJvZHVjdC1mbGFnLS1ncmV5IHtcblx0XHRtYXJnaW4tYm90dG9tOiA1cHg7XG5cdH1cbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19icmFuZCxcbi5iYy1vcmRlci1wcm9kdWN0LXJvd19fdW5pdC1wcmljZSxcbi5iYy1vcmRlci1wcm9kdWN0LXJvd19fb3B0aW9uIHtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudCk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1tKTtcblx0bWFyZ2luLWJvdHRvbTogNHB4O1xufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX2JyYW5kIHtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX29wdGlvbnMtbGlzdCxcbi5iYy1vcmRlci1wcm9kdWN0LXJvd19fb3B0aW9uIHtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX29wdGlvbnMtbGlzdCB7XG5cdG1hcmdpbi10b3A6IDhweDtcbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19vcHRpb24ge1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtZ3JleSk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQteHMpO1xuXHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG5cdG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5iYy1vcmRlci1wcm9kdWN0LXJvd19fb3B0aW9uLWxhYmVsIHtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19vcHRpb24tdmFsdWUge1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbGlnaHQpO1xufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX3N0YXR1cyB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQpO1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1tKTtcblx0bWFyZ2luLWJvdHRvbTogMTJweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0YWxpZ24tc2VsZjogY2VudGVyO1xuXHRcdGZsZXg6IDAgMCAxNTBweDtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXhsKTtcblx0XHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc3MpO1xuXHRcdG1hcmdpbjogMCAwIDAgYXV0bztcblx0fVxufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX3F1YW50aXR5IHtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC14cyk7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO1xuXHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmbGV4OiAwIDAgMTAwcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0fVxufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX3RvdGFsIHtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudCk7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LW0pO1xuXHRtYXJnaW4tYm90dG9tOiAyNnB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmbGV4OiAwIDAgMTUwcHg7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC14bCk7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuIiwiLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19pbWFnZSxcbi5iYy1jYXJ0LWl0ZW0taW1hZ2Uge1xuXG5cdC5iYy1wcm9kdWN0X190aHVtYm5haWwtbGluayB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1vcGFjaXR5KTtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRvcGFjaXR5OiAwLjg7XG5cdFx0fVxuXHR9XG59XG4iLCIuYmMtYnRuLFxuYnV0dG9uLmJjLWJ0bixcbmEuYmMtYnRuLFxuLmVudHJ5LWNvbnRlbnQgLmJjLWJ0bixcbi5lbnRyeS1jb250ZW50IGJ1dHRvbi5iYy1idG4sXG4uZW50cnktY29udGVudCBhLmJjLWJ0bixcbi5iYy1hY2NvdW50LWxvZ2luX19mb3JtIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuXHR3aWR0aDogMTAwJTtcblx0cGFkZGluZzogMTVweCAyMHB4O1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuXHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtbCk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQtcyk7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRib3gtc2hhZG93OiBub25lO1xuXHRvcGFjaXR5OiAxO1xuXHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdG1heC13aWR0aDogMjcwcHg7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzIHtcblx0XHRvcGFjaXR5OiAwLjk7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdH1cblxuXHQmW2Rpc2FibGVkXSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtZ3JleS1tZWRpdW0pO1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdFx0cGFkZGluZzogMTVweCAyMHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1sKTtcblx0XHRmb250LWZhbWlseTogc2Fucy1zZXJpZjtcblx0XHRvcGFjaXR5OiAwLjY7XG5cdFx0Y3Vyc29yOiBub3QtYWxsb3dlZDtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYy1ncmV5LW1lZGl1bSk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRcdFx0cGFkZGluZzogMTVweCAyMHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWwpO1xuXHRcdFx0Zm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG5cdFx0XHRvcGFjaXR5OiAwLjY7XG5cdFx0fVxuXHR9XG5cblx0Ji0tc21hbGwge1xuXHRcdHBhZGRpbmc6IDhweCAxNnB4O1xuXHR9XG5cblx0Ji0taW52ZXJzZSB7XG5cdFx0cGFkZGluZzogMTFweCAyMHB4O1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyOiA0cHggc29saWQ7XG5cdH1cbn1cbiIsIi5iYy1xdWlja3ZpZXctdHJpZ2dlcixcbmJ1dHRvbi5iYy1xdWlja3ZpZXctdHJpZ2dlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGNvbG9yOiBpbmhlcml0O1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0cGFkZGluZzogMDtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzIHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLW9wYWNpdHkpO1xuXG5cdFx0LmJjLXF1aWNrdmlldy10cmlnZ2VyLS1ob3ZlciB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxufVxuXG4uYmMtcXVpY2t2aWV3LXRyaWdnZXItLWhvdmVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdG9wYWNpdHk6IDA7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI0LCAyMjcsIDIzMywgMC43Mik7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tb3BhY2l0eSk7XG59XG5cbi5iYy1xdWlja3ZpZXctdHJpZ2dlci0taG92ZXItbGFiZWwge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDUwJTtcblx0dG9wOiA1MCU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG5cdHdpZHRoOiA3MCU7XG5cdHBhZGRpbmc6IDEycHggMTRweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LW0pO1xuXHRib3JkZXItcmFkaXVzOiAyMHB4O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4iLCIuYmMtcHJvZHVjdC1jYXJkIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cblx0LmJjLXF1aWNrdmlldy10cmlnZ2VyIHtcblx0XHRmbGV4OiAwIDAgYXV0bztcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHR9XG5cblx0LmJjLXByb2R1Y3RfX2FjdGlvbnMge1xuXHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGZsZXg6IDAgMCBhdXRvO1xuXHR9XG5cblx0LmJjLWJ0bixcblx0YS5iYy1idG4sXG5cdGJ1dHRvbi5iYy1idG4ge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0fVxufVxuXG4uYmMtcHJvZHVjdC1jYXJkX19mZWF0dXJlZC1pbWFnZSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEwMCU7XG5cblx0aW1nIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdH1cbn1cblxuLmJjLXByb2R1Y3RfX21ldGEge1xuXHRwYWRkaW5nOiAyNXB4IDAgNTBweDtcblx0d2lkdGg6IDEwMCU7XG5cdHdvcmQtd3JhcDogYnJlYWstd29yZDtcblx0aHlwaGVuczogYXV0bztcblx0ZmxleDogMSAxIGF1dG87XG59XG4iLCIuYmMtcHJvZHVjdC1jYXJkLS1zaW5nbGUge1xuXHRtYXgtd2lkdGg6IG5vbmU7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRtYXJnaW46IDYwcHggMDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdH1cblxuXHQuYmMtcHJvZHVjdF9fZ2FsbGVyeSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG9yZGVyOiAyO1xuXHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0d2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0XHRtYXgtd2lkdGg6IDM3MHB4O1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHRvcDogMDtcblx0XHRcdG9yZGVyOiAxO1xuXHRcdH1cblx0fVxuXG5cdC5iYy1wcm9kdWN0X19tZXRhIHtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdG9yZGVyOiAxO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdGZsZXg6IDAgMCBhdXRvO1xuXHRcdFx0b3JkZXI6IDI7XG5cdFx0XHRhbGlnbi1zZWxmOiBmbGV4LWVuZDtcblx0XHRcdHdpZHRoOiBjYWxjKDUwJSAtIDMwcHgpO1xuXHRcdH1cblx0fVxuXG5cdC5iYy1wcm9kdWN0X19hY3Rpb25zIHtcblx0XHRvcmRlcjogMztcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRcdHdpZHRoOiBjYWxjKDUwJSArIDMwcHgpO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiA2MHB4O1xuXHRcdH1cblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0XHRmbGV4OiAwIDAgYXV0bztcblx0XHRcdG9yZGVyOiAzO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdFx0d2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XG5cdFx0fVxuXHR9XG5cblx0LmJjLWJ0biB7XG5cdFx0bWFyZ2luLXRvcDogNDBweDtcblx0fVxufVxuIiwiLmJjLXByb2R1Y3QtZ3JpZCB7XG5cdHdpZHRoOiAxMDAlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IHdyYXA7XG5cdHBhZGRpbmc6IDQwcHggMDtcblxuXHQ+IC5iYy1wcm9kdWN0LWNhcmQge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1heC13aWR0aDogMzcwcHg7XG5cdFx0bWFyZ2luOiAwIGF1dG8gNjBweDtcblx0fVxuXG5cdCYtLTJjb2wgPiAuYmMtcHJvZHVjdC1jYXJkIHtcblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRsb3N0LWNvbHVtbjogMS8yIDIgMzBweDtcblx0XHR9XG5cdH1cblxuXHQmLS0zY29sID4gLmJjLXByb2R1Y3QtY2FyZCB7XG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0bG9zdC1jb2x1bW46IDEvMiAyIDMwcHg7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdGxvc3QtY29sdW1uOiAxLzMgMyAzMHB4O1xuXHRcdFx0bG9zdC1jb2x1bW4tcm91bmRlcjogOTkuOTg7XG5cdFx0fVxuXHR9XG5cblx0Ji0tNGNvbCA+IC5iYy1wcm9kdWN0LWNhcmQge1xuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC14c21hbGwpIHtcblx0XHRcdGxvc3QtY29sdW1uOiAxLzIgMiAzMHB4O1xuXHRcdH1cblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1zbWFsbCkge1xuXHRcdFx0bG9zdC1jb2x1bW46IDEvMyAzIDMwcHg7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdGxvc3QtY29sdW1uOiAxLzQgNCAzMHB4O1xuXHRcdFx0bG9zdC1jb2x1bW4tcm91bmRlcjogOTkuOTg7XG5cdFx0fVxuXHR9XG5cblx0Ji0tNWNvbCA+IC5iYy1wcm9kdWN0LWNhcmQge1xuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC14c21hbGwpIHtcblx0XHRcdGxvc3QtY29sdW1uOiAxLzIgMiAzMHB4O1xuXHRcdH1cblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1zbWFsbCkge1xuXHRcdFx0bG9zdC1jb2x1bW46IDEvMyAzIDMwcHg7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdGxvc3QtY29sdW1uOiAxLzQgNCAzMHB4O1xuXHRcdFx0bG9zdC1jb2x1bW4tcm91bmRlcjogOTkuOTg7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0XHRsb3N0LWNvbHVtbjogMS81IDUgMzBweDtcblx0XHRcdGxvc3QtY29sdW1uLXJvdW5kZXI6IDk5Ljk4O1xuXHRcdH1cblx0fVxuXG5cdCYtLXJlbGF0ZWQge1xuXHRcdHBhZGRpbmctYm90dG9tOiAwO1xuXHR9XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIExvb3A6IE5vIFJlc3VsdHNcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYmMtbm8tcmVzdWx0cyB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi5iYy1uby1yZXN1bHRzX19tZXNzYWdlIHtcblx0Zm9udC1zaXplOiAxLjM3NWVtO1xuXHRsaW5lLWhlaWdodDogMS4xO1xufVxuXG4uYmMtbm8tcmVzdWx0c19fYnV0dG9uIHtcblx0bWFyZ2luOiAwIGF1dG87XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQpO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4iLCIuYmMtcHJvZHVjdC1zaW5nbGUge1xuXHRtYXgtd2lkdGg6IDk3MHB4O1xuXHRwYWRkaW5nOiAwIDIwcHg7XG5cdG1hcmdpbjogMCBhdXRvO1xuXG5cdC5iYy1wcm9kdWN0LXNpbmdsZV9fdG9wIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdH1cblx0fVxuXG5cdC5iYy1wcm9kdWN0X19nYWxsZXJ5IHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0b3JkZXI6IDI7XG5cdFx0ZmxleDogMSAxIDEwMCU7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRvcmRlcjogMTtcblx0XHRcdGZsZXg6IDAgMCAzNzBweDtcblx0XHRcdG1hcmdpbi1yaWdodDogMzBweDtcblx0XHR9XG5cdH1cblxuXHQuYmMtcHJvZHVjdC1zaW5nbGVfX21ldGEge1xuXHRcdGZsZXg6IDEgMSAxMDAlO1xuXHRcdG9yZGVyOiAxO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0b3JkZXI6IDI7XG5cdFx0XHRmbGV4OiAwIDAgYXV0bztcblx0XHRcdHdpZHRoOiBjYWxjKDUwJSAtIDYwcHgpO1xuXHRcdH1cblx0fVxuXG5cdC5iYy1wcm9kdWN0X19za3Uge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC1tKTtcblxuXHRcdC5iYy1wcm9kdWN0LXNpbmdsZV9fbWV0YS1sYWJlbCB7XG5cdFx0XHRmb250LXNpemU6IDEuMTQzZW07XG5cdFx0fVxuXHR9XG5cblx0LmJjLXByb2R1Y3Qtc2luZ2xlX19tZXRhLWxhYmVsIHtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50KTtcblx0XHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdH1cblxuXHQuYmMtcHJvZHVjdC1mb3JtIHtcblx0XHRtYXJnaW4tdG9wOiA0MHB4O1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1vcGFjaXR5KTtcblxuXHRcdCYuYmMtcHJvZHVjdF9faXMtc2V0dGluZy1vcHRpb25zIHtcblx0XHRcdG9wYWNpdHk6IDAuNTtcblx0XHR9XG5cdH1cblxuXHQuYmMtYnRuIHtcblx0XHRtYXJnaW4tdG9wOiA0MHB4O1xuXHR9XG5cblx0LmJjLXNpbmdsZS1wcm9kdWN0X19kZXNjcmlwdGlvbiB7XG5cdFx0bWFyZ2luLXRvcDogNjBweDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRwYWRkaW5nOiA1MHB4IDA7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHR9XG5cblx0LmJjLXNpbmdsZS1wcm9kdWN0X19zcGVjaWZpY2F0aW9ucyB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0cGFkZGluZy1ib3R0b206IDUwcHg7XG5cdH1cblxuXHQuYmMtc2luZ2xlLXByb2R1Y3RfX3NlY3Rpb24tdGl0bGUge1xuXHRcdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQpO1xuXHR9XG5cblx0LmJjLXNpbmdsZS1wcm9kdWN0X19zZWN0aW9uLXRpdGxlLS1yZWxhdGVkIHtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXh4bCk7XG5cdH1cblxuXHQuYmMtc2luZ2xlLXByb2R1Y3RfX3JhdGluZ3Mge1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtZm9ybV9fcXVhbnRpdHkge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uYmMtcHJvZHVjdC1mb3JtX19xdWFudGl0eS1sYWJlbCB7XG5cdG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuaW5wdXQuYmMtcHJvZHVjdC1mb3JtX19xdWFudGl0eS1pbnB1dFt0eXBlPW51bWJlcl0ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXMpO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHBhZGRpbmctbGVmdDogNnB4O1xuXHRwYWRkaW5nLXJpZ2h0OiA2cHg7XG5cdHdpZHRoOiA3MHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50KTtcblx0fVxuXG5cdCY6Zm9jdXMge1xuXHRcdGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0fVxufVxuIiwiLmJjLXByb2R1Y3QtcXVpY2stdmlld19fb3ZlcmxheSB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHRyaWdodDogMDtcblx0aGVpZ2h0OiAxMDB2aDtcblx0d2lkdGg6IDEwMHZ3O1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ibGFjay1hLTcwKTtcbn1cblxuLmJjLXByb2R1Y3QtcXVpY2stdmlld19fd3JhcHBlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRyaWdodDogMDtcblx0aGVpZ2h0OiAxMDB2aDtcblx0d2lkdGg6IDEwMHZ3O1xuXHR6LWluZGV4OiA1MDtcblxuXHQmW2FyaWEtaGlkZGVuPSd0cnVlJ10ge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuYnV0dG9uLmJjLXByb2R1Y3QtcXVpY2stdmlld19fY2xvc2UtYnV0dG9uIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogMDtcblx0dG9wOiAwO1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHRmb250LXNpemU6IDMwcHg7XG5cdHotaW5kZXg6IDI7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRwYWRkaW5nOiAxMHB4O1xuXHRvcGFjaXR5OiAwLjY1O1xuXHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblx0d2lkdGg6IGF1dG87XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0fVxufVxuXG4uYmMtcHJvZHVjdC1xdWljay12aWV3X19jb250ZW50IHtcblx0YmFja2dyb3VuZDogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiBjYWxjKDEwMHZ3IC0gMjAlKTtcblx0aGVpZ2h0OiBhdXRvO1xuXHRsZWZ0OiA1MCU7XG5cdHRvcDogMDtcblx0bWFyZ2luOiA0MHB4IDA7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0b3ZlcmZsb3cteTogc2Nyb2xsO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0aGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjAlKTtcblx0XHRtYXgtd2lkdGg6IDExNDBweDtcblx0XHRtYXgtaGVpZ2h0OiA2NjBweDtcblx0XHRtYXJnaW46IDA7XG5cdFx0dG9wOiA1MCU7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcblxuXHRcdC5icm93c2VyLWllICYge1xuXHRcdFx0bWluLWhlaWdodDogNjYwcHg7XG5cdFx0fVxuXHR9XG5cblx0KiB7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0fVxuXG5cdD4gZGl2IHtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtcXVpY2stdmlld19fY29udGVudC1pbm5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZzogNjBweDtcblxuXHQuYmMtcHJvZHVjdC1jYXJkIHtcblx0XHRtYXJnaW46IDA7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG5cblx0LmJjLXByb2R1Y3RfX2dhbGxlcnkge1xuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogNjBweDtcblx0XHRcdGZsZXg6IDEgMSAxMDAlO1xuXHRcdH1cblx0fVxuXG5cdC5iYy1wcm9kdWN0X19tZXRhIHtcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDQwcHg7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdHdpZHRoOiBjYWxjKDUwJSAtIDMwcHgpO1xuXHRcdH1cblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1sYXJnZSkge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdH1cblx0fVxuXG5cdC5iYy1wcm9kdWN0X19wcmljaW5nIHtcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHR9XG5cblx0LmJjLXNpbmdsZS1wcm9kdWN0X19yYXRpbmdzIHtcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHR9XG5cblx0LmJjLXByb2R1Y3Qtc2luZ2xlX19tZXRhLWxhYmVsIHtcblx0XHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdH1cblxuXHQuYmMtcHJvZHVjdF9fZGVzY3JpcHRpb24ge1xuXHRcdG9yZGVyOiA0O1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1hcmdpbi10b3A6IDQwcHg7XG5cdFx0cGFkZGluZy10b3A6IDMwcHg7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdHdpZHRoOiBjYWxjKDUwJSAtIDMwcHgpO1xuXHRcdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0XHRmbGV4OiAwIDAgYXV0bztcblx0XHRcdG9yZGVyOiA0O1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdFx0d2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XG5cdFx0fVxuXHR9XG59XG4iLCIuZ3V0ZW5iZXJnIHtcblxuXHQuYmMtcHJvZHVjdC1nYWxsZXJ5LS1oYXMtY2Fyb3VzZWwge1xuXG5cdFx0LnN3aXBlci1zbGlkZSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXG5cdFx0XHQmOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuYmMtcXVpY2t2aWV3LXRyaWdnZXIge1xuXHRcdGJvcmRlcjogMDtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG59XG4iXX0= */ \ No newline at end of file diff --git a/assets/css/bc-gutenberg.min.css b/assets/css/bc-gutenberg.min.css index cf1732e5..22561c7c 100644 --- a/assets/css/bc-gutenberg.min.css +++ b/assets/css/bc-gutenberg.min.css @@ -1,2 +1,2 @@ /* BigCommerce: Gutenberg Editor CSS */ -.bc-product__title{font-size:18px;line-height:22px;font-weight:700;padding:0;margin:0 0 18px}@media (min-width:768px){.bc-product__title{font-size:20px;line-height:24px}}@media (min-width:960px){.bc-product__title{font-size:24px;line-height:28px}}.bc-product__title-link{text-decoration:none;box-shadow:none!important;color:#34313f;opacity:1;transition:all .15s ease-in-out}.bc-product__title-link:focus,.bc-product__title-link:hover{color:#34313f;opacity:.8}.bc-product__title-link:focus .bc-product-flag--grey,.bc-product__title-link:hover .bc-product-flag--grey{opacity:1}.bc-product__inventory{display:inline-block;font-size:14px;line-height:22px;font-weight:400;vertical-align:baseline}.bc-product-card--single .bc-product__title,.bc-product-single__meta .bc-product__title{font-size:24px;line-height:28px;margin-top:0;margin-bottom:10px;padding:0;font-weight:700}@media (min-width:768px){.bc-product-card--single .bc-product__title,.bc-product-single__meta .bc-product__title{font-size:28px;line-height:32px}}@media (min-width:960px){.bc-product-card--single .bc-product__title,.bc-product-single__meta .bc-product__title{font-size:32px;line-height:36px}}.bc-product-card--single .bc-product__inventory,.bc-product-single__meta .bc-product__inventory{font-size:16px;margin:0}.bc-product-card--related .bc-product__title{margin-bottom:15px}.bc-product__brand{display:block;font-size:14px;line-height:1;font-weight:700;margin-bottom:10px}@media (min-width:768px){.bc-product__brand{margin-bottom:15px}}@media (min-width:960px){.bc-product__brand{margin-bottom:20px}}.bc-product-card--single .bc-product__brand,.bc-product-single .bc-product__brand{display:block;font-size:16px;margin-bottom:10px}.bc-product__pricing{margin-bottom:0;font-weight:400}.bc-product__price{font-size:16px}.bc-product__original-price{text-decoration:line-through;margin-right:12px;margin-bottom:12px;display:inline-block;font-style:italic;color:#8b8b8b}.bc-product__price--sale{font-weight:700;color:#65c68c}.bc-product-card--single .bc-product__pricing{margin-bottom:30px}@media (min-width:960px){.bc-product-card--single .bc-product__pricing{margin-bottom:40px}}@media (min-width:1200px){.bc-product-card--single .bc-product__pricing{margin-bottom:50px}}.bc-product-card--single .bc-product__original-price,.bc-product-single .bc-product__original-price{margin-right:20px}.bc-product-flag--sale{display:block;position:absolute;right:-20px;top:-20px;width:50px;height:50px;line-height:50px;border-radius:50%;background-color:#65c68c;font-size:12px;font-weight:700;text-transform:uppercase;text-align:center;z-index:2}.bc-product-flag--grey{display:inline-block;vertical-align:middle;padding:7px 8px;background-color:#e0e3e9;font-size:12px;line-height:1;font-weight:600}.bc-product-card--single .bc-product-flag--sale,.bc-product-single .bc-product-flag--sale{width:60px;height:60px;line-height:60px;font-size:16px;font-weight:600}.bc-product-card--single .bc-product-flag--grey,.bc-product-single .bc-product-flag--grey{margin-bottom:5px}.bc-product__description{font-size:16px;line-height:24px;margin-bottom:30px}@media (min-width:960px){.bc-product__description{margin-bottom:40px}}@media (min-width:1200px){.bc-product__description{margin-bottom:50px}}.bc-product__description p:last-child{margin-bottom:0}.bc-product-gallery__images{position:relative;width:100%;max-width:370px;margin:60px auto}@media (min-width:768px){.bc-product-gallery__images{margin:0}}.bc-product-gallery__image-slide img{display:block}.bc-product-gallery--has-carousel{margin-bottom:10px}.swiper-container[data-js=bc-gallery-thumbs] .swiper-wrapper{transform:translateX(0)!important}.bc-product-gallery__thumbs{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}.bc-product-gallery__thumbs .bc-product-gallery__thumb-slide{box-shadow:unset}.bc-product-gallery__thumb-slide{width:calc(25% - 10px);margin:0 10px 10px 0;padding:0;border:0;background:none;opacity:.8;transition:all .15s ease-in-out}.bc-product-gallery__thumb-slide.swiper-slide-active,.bc-product-gallery__thumb-slide:focus,.bc-product-gallery__thumb-slide:hover{opacity:1}.bc-product-form__control{margin-bottom:20px}.bc-product-form__modifier-label,.bc-product-form__option-label{display:block;margin-bottom:10px;font-size:16px;font-weight:700}.bc-product-form__option-variants{margin-top:10px}.bc-product-variant__label{display:block;margin-bottom:10px}.bc-product-form__option-variants--inline{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}.bc-product-form__option-variants--inline .bc-product-variant__label{margin-right:10px}.bc-product-form__option-variants--inline .bc-product-variant__label:last-of-type{margin-right:0}.bc-product-variant__label--title{-ms-flex:1;flex:1;color:#8b8b8b}input.bc-product-variant__radio--hidden{margin:0}.bc-product-form__product-message{padding:0}.bc-product-form__message{display:block;padding:12px 16px;font-size:12px}.bc-product-form__modifier-description{display:block;font-size:12px;line-height:14px;padding:0 10px;margin-top:4px}.bc-product-form__option-select{font-size:16px}.bc-product-form__control--swatch input.bc-product-variant__radio--hidden:checked+.bc-product-variant__label .bc-product-variant__label--swatch{border:0 solid #fff;box-shadow:0 0 1px #168fc0;transition:border 70ms}.bc-product-variant__label--swatch{display:block;width:36px;height:36px;border:5px solid #fff;box-shadow:0 0 1px #8b8b8b;cursor:pointer;transition:border 70ms}.bc-product-form__control--rectangle input.bc-product-variant__radio--hidden:checked+.bc-product-variant__label .bc-product-variant__label--rectangle{border:1px solid #168fc0;color:#168fc0;font-weight:700;transition:border 70ms,color 70ms}.bc-product-variant__label--rectangle{display:block;height:36px;line-height:24px;padding:5px 10px;text-align:center;border:1px solid #cdcdcd;color:#8b8b8b;transition:border 70ms,color 70ms;cursor:pointer}.bc-product-form__control--pick-list input.bc-product-variant__radio--hidden:checked+.bc-product-variant__label .bc-product-variant__label--pick-list{border:1px solid #168fc0;transition:border 70ms}.bc-product-variant__label--pick-list{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:5px;border:1px solid #e0e3e9;cursor:pointer}.bc-product-variant__label--img{-ms-flex:0;flex:0;margin-right:6px;width:100%;max-width:50px;height:auto}.bc-product-form__control--radio .bc-product-form__option-label{-ms-flex:0 0 100%;flex:0 0 100%}.bc-product-form__control--radio .bc-product-variant__label{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:center;align-items:center;margin-bottom:6px}.bc-product-form__control--radio .bc-product-variant__radio{-ms-flex:0 0 auto;flex:0 0 auto}.bc-product-form__control--radio .bc-product-variant__label--radio{-ms-flex:1;flex:1;line-height:24px}.bc-single-product__rating{unicode-bidi:bidi-override;color:#8b8b8b;font-size:15px;height:25px;width:90px;position:relative;padding:0;display:inline-block;vertical-align:middle}.bc-single-product__rating--mask{display:block;position:absolute;top:0;left:0;overflow:hidden;height:25px;z-index:2}.bc-single-product__rating--top{color:#fc0;z-index:1}.bc-single-product__rating--bottom,.bc-single-product__rating--top{padding:0;width:90px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-pack:distribute;justify-content:space-around;-ms-flex-align:center;align-items:center}.bc-single-product__rating--bottom{z-index:0}.bc-rating-star:before{content:"\2605";font-size:15px}.bc-single-product__rating-reviews{font-size:12px;font-weight:700;margin-left:10px;display:inline-block;vertical-align:middle}.bc-product__spec-list{list-style:none;margin:0;padding:0;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;max-width:100%;margin-left:auto;margin-right:auto}.bc-product__spec{font-size:14px;-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 10px);flex-basis:calc(50% - 10px);width:calc(50% - 10px);height:calc(50% - 10px)}.bc-product__spec:nth-child(1n){margin-right:20px;margin-bottom:20px;margin-left:0}.bc-product__spec:last-child{margin-right:0;margin-bottom:0}.bc-product__spec:nth-child(2n){margin-right:0;margin-left:auto}.bc-product__spec:nth-last-child(-n+2){margin-bottom:0}@media (min-width:768px){.bc-product__spec{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.33333% - 13.33333px);flex-basis:calc(33.33333% - 13.33333px);width:calc(33.33333% - 13.33333px);height:calc(33.33333% - 13.33333px)}.bc-product__spec:nth-child(1n){margin-right:20px;margin-bottom:20px;margin-left:0}.bc-product__spec:last-child{margin-right:0;margin-bottom:0}.bc-product__spec:nth-child(3n){margin-right:0;margin-left:auto}.bc-product__spec:nth-last-child(-n+3){margin-bottom:0}}@media (min-width:960px){.bc-product__spec{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(25% - 15px);flex-basis:calc(25% - 15px);width:calc(25% - 15px);height:calc(25% - 15px)}.bc-product__spec:nth-child(1n){margin-right:20px;margin-bottom:20px;margin-left:0}.bc-product__spec:last-child{margin-right:0;margin-bottom:0}.bc-product__spec:nth-child(4n){margin-right:0;margin-left:auto}.bc-product__spec:nth-last-child(-n+4){margin-bottom:0}}.bc-single-product__related{padding:50px 0 0;border-top:1px solid #e0e3e9}.bc-single-product__related .bc-form.bc-product-form,.bc-single-product__related button.bc-btn{margin-top:0}.bc-single-product__section-title--related{font-size:24px;margin-bottom:0}.bc-product-archive__refinery{width:100%;margin:40px 0 80px}.bc-product-archive__refinery .bc-form{width:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}@media (min-width:1200px){.bc-product-archive__refinery .bc-form{-ms-flex-pack:start;justify-content:flex-start}}.bc-product-archive__search{position:relative;-ms-flex:1 1 100%;flex:1 1 100%}@media (min-width:1200px){.bc-product-archive__search{margin-right:auto;-ms-flex:0 1 270px;flex:0 1 270px}}.bc-product-archive__select{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;margin-top:15px;-ms-flex:1 1 100%;flex:1 1 100%}@media (min-width:500px){.bc-product-archive__select{-ms-flex-wrap:nowrap;flex-wrap:nowrap}}@media (min-width:768px){.bc-product-archive__select{-ms-flex:0 1 calc(33.3333% - 20px);flex:0 1 calc(33.3333% - 20px);-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:20px}.bc-product-archive__select:last-child{margin-right:0}}@media (min-width:1200px){.bc-product-archive__select{-ms-flex-wrap:nowrap;flex-wrap:nowrap;margin-top:0;-ms-flex:0 1 auto;flex:0 1 auto}}.bc-product-archive__select-label{font-size:12px;text-transform:uppercase;margin-right:10px;font-weight:700;-ms-flex:0 0 100%;flex:0 0 100%}@media (min-width:500px){.bc-product-archive__select-label{-ms-flex:0 0 150px;flex:0 0 150px}}@media (min-width:768px){.bc-product-archive__select-label{-ms-flex:0 0 100%;flex:0 0 100%}}@media (min-width:960px){.bc-product-archive__select-label{-ms-flex:0 0 auto;flex:0 0 auto}}.bc-product-archive__select-field{-ms-flex:0 0 100%;flex:0 0 100%}@media (min-width:500px){.bc-product-archive__select-field{-ms-flex:1 1 100%;flex:1 1 100%}}@media (min-width:768px){.bc-product-archive__select-field{-ms-flex:0 0 100%;flex:0 0 100%}}@media (min-width:960px){.bc-product-archive__select-field{-ms-flex:0 1 auto;flex:0 1 auto}}.bc-form .bc-product-archive__select-field{font-size:12px;color:#8b8b8b}.bc-product-archive__search-submit{position:absolute;right:0;top:0;transition:all .15s ease-in-out;height:100%;font-size:16px}.bc-product-archive__search-submit.bc-btn.bc-btn--small{max-width:none;width:auto}.bc-subnav__list{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap;list-style:none;margin:0;padding:0}@media (min-width:600px){.bc-subnav__list{-ms-flex-direction:row;flex-direction:row}}.bc-subnav__list-item{margin-bottom:20px;padding:0}@media (min-width:600px){.bc-subnav__list-item+.bc-subnav__list-item{margin-left:30px}}@media (min-width:768px){.bc-subnav__list-item{margin-bottom:40px}}.bc-subnav__link{cursor:pointer;margin:0;padding:0;text-decoration:none}.bc-subnav__list-item--current .bc-subnav__link{color:currentColor}.bc-alert{background-color:#168fc0;color:#fff;font-size:16px;line-height:1.5;padding:12px 16px;margin-bottom:40px}@media (min-width:768px){.bc-alert{margin-bottom:60px}}.bc-alert--success{background-color:#3ec889}.bc-alert--error{background-color:#ff0012}.bc-alert-group .bc-alert:not(:last-child){margin-bottom:10px}.bc-alert-group--info{background-color:#cdcdcd;color:#34313f;font-size:14px}.bc-product-form .bc-alert-group--info{margin-bottom:0}.bc-alert-group--error{opacity:0;height:0;overflow:hidden;visibility:hidden;transition:all .15s ease-in-out}.bc-alert-group.bc-fade-in-alert-group{opacity:1;visibility:visible;height:auto}.bc-form__error-message{color:#ff0012;display:block;margin-top:10px;margin-bottom:10px;font-weight:400;font-size:13px}.bc-load-items{position:relative}.bc-load-items-container--has-pages{padding-bottom:40px}.bc-load-items-container--has-pages>:not(.bc-load-items__trigger){opacity:0;transition:opacity .3s ease}.bc-load-items-container--has-pages>:not(.bc-load-items__trigger).item-initialized{opacity:1}.bc-load-items__loader{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);opacity:0;transition:opacity .3s ease}.bc-load-items__loader.active{opacity:1}.bc-load-items__trigger,.bc-load-more-items{width:100%;text-align:center}.bc-load-more-items{margin-top:20px}.bc-load-items__trigger-btn,.bc-no-results__button{background:transparent;color:#5273f4;font-size:14px;line-height:14px;outline:none;border:0;cursor:pointer}.bc-load-items__trigger-btn[disabled],.bc-no-results__button[disabled]{opacity:.5;cursor:not-allowed}.bc-load-items__trigger-btn:focus,.bc-load-items__trigger-btn:hover,.bc-no-results__button:focus,.bc-no-results__button:hover{background:transparent;color:#4b69e0}.bc-load-items__trigger-btn:focus[disabled],.bc-load-items__trigger-btn:hover[disabled],.bc-no-results__button:focus[disabled],.bc-no-results__button:hover[disabled]{background:transparent;color:#4b69e0;cursor:default}.bc-load-items__trigger-btn .bc-icon,.bc-no-results__button .bc-icon{display:block;margin-top:14px;text-align:center;font-size:18px}.bc-pagination__error-message{display:block;font-size:14px}.bc-order-product-row{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}@media (min-width:768px){.bc-order-product-row{-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap}}.bc-order-product-row__image{-ms-flex:0 0 100px;flex:0 0 100px;position:relative;margin-bottom:12px;max-width:100px}@media (min-width:768px){.bc-order-product-row__image{margin:0 20px 0 0}}.bc-order-product-row__image img{display:block;width:100%;height:auto}.bc-order-product-row__body{-ms-flex:1 1 auto;flex:1 1 auto;margin-bottom:12px}@media (min-width:768px){.bc-order-product-row__body{margin:0 20px 0 0;max-width:550px}}.bc-order-product-row__header .bc-order-product-row__title{font-size:20px;line-height:24px;margin:0 10px 0 0}@media (min-width:960px){.bc-order-product-row__header .bc-order-product-row__title{font-size:24px;line-height:32px}}.bc-order-product-row__header .bc-product-flag--grey{margin-bottom:5px}.bc-order-product-row__brand,.bc-order-product-row__option,.bc-order-product-row__unit-price{font-size:16px;line-height:22px;margin-bottom:4px}.bc-order-product-row__brand{font-weight:700}.bc-order-product-row__option,.bc-order-product-row__options-list{list-style:none;margin:0;padding:0}.bc-order-product-row__options-list{margin-top:8px}.bc-order-product-row__option{color:#8b8b8b;font-size:12px;line-height:18px;margin-top:10px}.bc-order-product-row__option-label{font-weight:600}.bc-order-product-row__option-value{font-weight:300}.bc-order-product-row__status{font-size:16px;font-weight:700;line-height:22px;margin-bottom:12px}@media (min-width:768px){.bc-order-product-row__status{-ms-flex-item-align:center;align-self:center;-ms-flex:0 0 150px;flex:0 0 150px;font-size:20px;line-height:24px;margin:0 0 0 auto}}.bc-order-product-row__quantity{font-size:12px;font-weight:700;line-height:18px;margin-bottom:12px}@media (min-width:768px){.bc-order-product-row__quantity{-ms-flex:0 0 100px;flex:0 0 100px;margin-bottom:0;margin-left:auto}}.bc-order-product-row__total{font-size:16px;font-weight:700;line-height:22px;margin-bottom:26px}@media (min-width:768px){.bc-order-product-row__total{-ms-flex:0 0 150px;flex:0 0 150px;font-size:20px;text-align:right;margin-bottom:0}}.bc-cart-item-image .bc-product__thumbnail-link,.bc-order-product-row__image .bc-product__thumbnail-link{display:block;box-shadow:none;text-decoration:none;border:0;opacity:1;transition:opacity .3s ease}.bc-cart-item-image .bc-product__thumbnail-link:focus,.bc-cart-item-image .bc-product__thumbnail-link:hover,.bc-order-product-row__image .bc-product__thumbnail-link:focus,.bc-order-product-row__image .bc-product__thumbnail-link:hover{opacity:.8}.bc-account-login__form input[type=submit],.bc-btn,.entry-content .bc-btn,.entry-content a.bc-btn,.entry-content button.bc-btn,a.bc-btn,button.bc-btn{display:inline-block;font-family:sans-serif;width:100%;padding:15px 20px;border-radius:0;font-weight:600;line-height:20px;font-size:13px;text-transform:uppercase;text-align:center;text-decoration:none;box-shadow:none;opacity:1;transition:all .15s ease-in-out}@media (min-width:960px){.bc-account-login__form input[type=submit],.bc-btn,.entry-content .bc-btn,.entry-content a.bc-btn,.entry-content button.bc-btn,a.bc-btn,button.bc-btn{max-width:270px}}.bc-account-login__form input[type=submit]:focus,.bc-account-login__form input[type=submit]:hover,.bc-btn:focus,.bc-btn:hover,.entry-content .bc-btn:focus,.entry-content .bc-btn:hover,.entry-content a.bc-btn:focus,.entry-content a.bc-btn:hover,.entry-content button.bc-btn:focus,.entry-content button.bc-btn:hover,a.bc-btn:focus,a.bc-btn:hover,button.bc-btn:focus,button.bc-btn:hover{opacity:.9;text-decoration:none;box-shadow:none}.bc-account-login__form input[type=submit][disabled],.bc-btn[disabled],.entry-content .bc-btn[disabled],.entry-content a.bc-btn[disabled],.entry-content button.bc-btn[disabled],a.bc-btn[disabled],button.bc-btn[disabled]{background-color:#5e5e5e;color:#fff;padding:15px 20px;line-height:20px;font-family:sans-serif;opacity:.6;cursor:not-allowed}.bc-account-login__form input[type=submit][disabled]:focus,.bc-account-login__form input[type=submit][disabled]:hover,.bc-btn[disabled]:focus,.bc-btn[disabled]:hover,.entry-content .bc-btn[disabled]:focus,.entry-content .bc-btn[disabled]:hover,.entry-content a.bc-btn[disabled]:focus,.entry-content a.bc-btn[disabled]:hover,.entry-content button.bc-btn[disabled]:focus,.entry-content button.bc-btn[disabled]:hover,a.bc-btn[disabled]:focus,a.bc-btn[disabled]:hover,button.bc-btn[disabled]:focus,button.bc-btn[disabled]:hover{background-color:#5e5e5e;color:#fff;padding:15px 20px;line-height:20px;font-family:sans-serif;opacity:.6}.bc-account-login__form input[type=submit]--small,.bc-btn--small,.entry-content .bc-btn--small,.entry-content a.bc-btn--small,.entry-content button.bc-btn--small,a.bc-btn--small,button.bc-btn--small{padding:8px 16px}.bc-account-login__form input[type=submit]--inverse,.bc-btn--inverse,.entry-content .bc-btn--inverse,.entry-content a.bc-btn--inverse,.entry-content button.bc-btn--inverse,a.bc-btn--inverse,button.bc-btn--inverse{padding:11px 20px;box-sizing:border-box;background-color:transparent;border:4px solid}.bc-quickview-trigger,button.bc-quickview-trigger{position:relative;background:transparent;color:inherit;text-transform:none;text-align:left;padding:0}.bc-quickview-trigger:focus,.bc-quickview-trigger:hover,button.bc-quickview-trigger:focus,button.bc-quickview-trigger:hover{background:transparent;transition:opacity .3s ease}.bc-quickview-trigger:focus .bc-quickview-trigger--hover,.bc-quickview-trigger:hover .bc-quickview-trigger--hover,button.bc-quickview-trigger:focus .bc-quickview-trigger--hover,button.bc-quickview-trigger:hover .bc-quickview-trigger--hover{opacity:1}.bc-quickview-trigger--hover{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;background-color:rgba(224,227,233,.72);transition:opacity .3s ease}.bc-quickview-trigger--hover-label{position:absolute;left:50%;top:50%;transform:translate3d(-50%,-50%,0);width:70%;padding:12px 14px;background-color:#fff;color:#34313f;font-weight:400;font-size:14px;border-radius:20px;text-align:center}.bc-product-card{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.bc-product-card .bc-quickview-trigger{-ms-flex:0 0 auto;flex:0 0 auto;display:-ms-flexbox;display:flex}.bc-product-card .bc-product__actions{-ms-flex-item-align:end;align-self:flex-end;width:100%;-ms-flex:0 0 auto;flex:0 0 auto}.bc-product-card .bc-btn,.bc-product-card a.bc-btn,.bc-product-card button.bc-btn{max-width:100%}.bc-product-card__featured-image{position:relative;width:100%}.bc-product-card__featured-image img{display:block;width:100%;height:auto}.bc-product__meta{padding:25px 0 50px;width:100%;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;-ms-flex:1 1 auto;flex:1 1 auto}.bc-product-card--single{max-width:none;position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:60px 0}@media (min-width:960px){.bc-product-card--single{-ms-flex-direction:column;flex-direction:column}}.bc-product-card--single .bc-product__gallery{position:relative;-ms-flex-order:2;order:2;width:100%}@media (min-width:768px){.bc-product-card--single .bc-product__gallery{width:calc(50% - 30px)}}@media (min-width:960px){.bc-product-card--single .bc-product__gallery{position:absolute;height:100%;width:50%;max-width:370px;left:0;top:0;-ms-flex-order:1;order:1}}.bc-product-card--single .bc-product__meta{padding:0;-ms-flex-order:1;order:1}@media (min-width:960px){.bc-product-card--single .bc-product__meta{-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-order:2;order:2;-ms-flex-item-align:end;align-self:flex-end;width:calc(50% - 30px)}}.bc-product-card--single .bc-product__actions{-ms-flex-order:3;order:3;width:100%}@media (min-width:768px){.bc-product-card--single .bc-product__actions{width:calc(50% + 30px);padding-left:60px}}@media (min-width:960px){.bc-product-card--single .bc-product__actions{-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-order:3;order:3;padding:0;-ms-flex-item-align:end;align-self:flex-end;width:calc(50% - 30px)}}.bc-product-card--single .bc-btn{margin-top:40px}.bc-product-grid{width:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:40px 0}.bc-product-grid>.bc-product-card{width:100%;max-width:370px;margin:0 auto 60px}@media (min-width:768px){.bc-product-grid--2col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 15px);flex-basis:calc(50% - 15px);max-width:calc(50% - 15px);width:calc(50% - 15px)}.bc-product-grid--2col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--2col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--2col>.bc-product-card:nth-child(2n){margin-right:0;margin-left:auto}}@media (min-width:768px){.bc-product-grid--3col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 15px);flex-basis:calc(50% - 15px);max-width:calc(50% - 15px);width:calc(50% - 15px)}.bc-product-grid--3col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--3col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--3col>.bc-product-card:nth-child(2n){margin-right:0;margin-left:auto}}@media (min-width:960px){.bc-product-grid--3col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.32667% - 20px);flex-basis:calc(33.32667% - 20px);max-width:calc(33.32667% - 20px);width:calc(33.32667% - 20px)}.bc-product-grid--3col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--3col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--3col>.bc-product-card:nth-child(3n){margin-right:0;margin-left:auto}}@media (min-width:500px){.bc-product-grid--4col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 15px);flex-basis:calc(50% - 15px);max-width:calc(50% - 15px);width:calc(50% - 15px)}.bc-product-grid--4col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--4col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--4col>.bc-product-card:nth-child(2n){margin-right:0;margin-left:auto}}@media (min-width:600px){.bc-product-grid--4col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.33333% - 20px);flex-basis:calc(33.33333% - 20px);max-width:calc(33.33333% - 20px);width:calc(33.33333% - 20px)}.bc-product-grid--4col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--4col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--4col>.bc-product-card:nth-child(3n){margin-right:0;margin-left:auto}}@media (min-width:960px){.bc-product-grid--4col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(24.995% - 22.5px);flex-basis:calc(24.995% - 22.5px);max-width:calc(24.995% - 22.5px);width:calc(24.995% - 22.5px)}.bc-product-grid--4col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--4col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--4col>.bc-product-card:nth-child(4n){margin-right:0;margin-left:auto}}@media (min-width:500px){.bc-product-grid--5col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 15px);flex-basis:calc(50% - 15px);max-width:calc(50% - 15px);width:calc(50% - 15px)}.bc-product-grid--5col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--5col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--5col>.bc-product-card:nth-child(2n){margin-right:0;margin-left:auto}}@media (min-width:600px){.bc-product-grid--5col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.33333% - 20px);flex-basis:calc(33.33333% - 20px);max-width:calc(33.33333% - 20px);width:calc(33.33333% - 20px)}.bc-product-grid--5col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--5col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--5col>.bc-product-card:nth-child(3n){margin-right:0;margin-left:auto}}@media (min-width:960px){.bc-product-grid--5col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(24.995% - 22.5px);flex-basis:calc(24.995% - 22.5px);max-width:calc(24.995% - 22.5px);width:calc(24.995% - 22.5px)}.bc-product-grid--5col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--5col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--5col>.bc-product-card:nth-child(4n){margin-right:0;margin-left:auto}}@media (min-width:1200px){.bc-product-grid--5col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(19.996% - 24px);flex-basis:calc(19.996% - 24px);max-width:calc(19.996% - 24px);width:calc(19.996% - 24px)}.bc-product-grid--5col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--5col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--5col>.bc-product-card:nth-child(5n){margin-right:0;margin-left:auto}}.bc-product-grid--related{padding-bottom:0}.bc-no-results{text-align:center;width:100%}.bc-no-results__message{font-size:22px;line-height:24px}.bc-no-results__button{margin:0 auto;font-size:16px;text-decoration:none}.bc-product-single{max-width:970px;padding:0 20px;margin:0 auto}.bc-product-single .bc-product-single__top{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between}@media (min-width:768px){.bc-product-single .bc-product-single__top{-ms-flex-wrap:nowrap;flex-wrap:nowrap}}.bc-product-single .bc-product__gallery{position:relative;-ms-flex-order:2;order:2;-ms-flex:1 1 100%;flex:1 1 100%}@media (min-width:768px){.bc-product-single .bc-product__gallery{-ms-flex-order:1;order:1;-ms-flex:0 0 370px;flex:0 0 370px;margin-right:30px}}.bc-product-single .bc-product-single__meta{-ms-flex:1 1 100%;flex:1 1 100%;-ms-flex-order:1;order:1}@media (min-width:768px){.bc-product-single .bc-product-single__meta{-ms-flex-order:2;order:2;-ms-flex:0 0 auto;flex:0 0 auto;width:calc(50% - 60px)}}.bc-product-single .bc-product__sku{display:block;margin-top:20px;font-size:14px}.bc-product-single .bc-product-single__meta-label{font-size:16px;font-weight:700}.bc-product-single .bc-btn,.bc-product-single .bc-product-form{margin-top:40px}.bc-product-single .bc-single-product__description{margin-top:60px;width:100%;padding:50px 0;border-top:1px solid #e0e3e9}.bc-product-single .bc-single-product__specifications{width:100%;padding-bottom:50px}.bc-product-single .bc-single-product__section-title{font-weight:700;margin-bottom:20px;font-size:16px}.bc-product-single .bc-single-product__section-title--related{font-size:24px}.bc-product-single .bc-single-product__ratings{margin-top:20px}.bc-product-form__quantity{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;margin-bottom:20px}.bc-product-form__quantity-label{margin-right:10px}input.bc-product-form__quantity-input[type=number]{background:#fff;border:1px solid #e0e3e9;font-size:13px;text-align:center;width:42px}@media (min-width:768px){input.bc-product-form__quantity-input[type=number]{font-size:16px;width:52px}}input.bc-product-form__quantity-input[type=number]:focus{box-shadow:0 0 0 1px #e0e3e9}.bc-product-quick-view__overlay{position:fixed;top:0;right:0;height:100vh;width:100vw;background:rgba(0,0,0,.7)}.bc-product-quick-view__wrapper{position:absolute;top:0;right:0;height:100vh;width:100vw;z-index:50}.bc-product-quick-view__wrapper[aria-hidden=true]{display:none}button.bc-product-quick-view__close-button{position:absolute;right:0;top:0;color:#34313f;font-size:30px;z-index:2;background:transparent;padding:10px;opacity:.65;transition:all .15s ease-in-out;width:auto}button.bc-product-quick-view__close-button:focus,button.bc-product-quick-view__close-button:hover{opacity:1;background:transparent}.bc-product-quick-view__content{background:#fff;position:absolute;width:calc(100vw - 20%);height:auto;left:50%;top:0;margin:40px 0;transform:translateX(-50%);overflow-y:scroll}@media (min-width:960px){.bc-product-quick-view__content{height:calc(100vh - 20%);max-width:1140px;max-height:660px;margin:0;top:50%;transform:translate3d(-50%,-50%,0)}.browser-ie .bc-product-quick-view__content{min-height:660px}}.bc-product-quick-view__content *{box-sizing:border-box}.bc-product-quick-view__content>div{height:100%}.bc-product-quick-view__content-inner{position:relative;padding:60px}.bc-product-quick-view__content-inner .bc-product-card{margin:0;height:100%}@media (min-width:960px){.bc-product-quick-view__content-inner .bc-product__gallery{height:auto;padding-bottom:60px;-ms-flex:1 1 100%;flex:1 1 100%}}.bc-product-quick-view__content-inner .bc-product__meta{width:100%}@media (min-width:768px){.bc-product-quick-view__content-inner .bc-product__meta{margin-bottom:40px}}@media (min-width:960px){.bc-product-quick-view__content-inner .bc-product__meta{width:calc(50% - 30px)}}@media (min-width:1200px){.bc-product-quick-view__content-inner .bc-product__meta{padding-left:0}}.bc-product-quick-view__content-inner .bc-product__pricing,.bc-product-quick-view__content-inner .bc-single-product__ratings{margin-bottom:20px}.bc-product-quick-view__content-inner .bc-product-single__meta-label{font-weight:700}.bc-product-quick-view__content-inner .bc-product__description{-ms-flex-order:4;order:4;width:100%;margin-top:40px;padding-top:30px;border-top:1px solid #e0e3e9}@media (min-width:960px){.bc-product-quick-view__content-inner .bc-product__description{width:calc(50% - 30px);-ms-flex-item-align:end;align-self:flex-end}}@media (min-width:1200px){.bc-product-quick-view__content-inner .bc-product__description{-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-order:4;order:4;padding-left:0;width:calc(50% - 30px)}}.gutenberg .bc-product-gallery--has-carousel .swiper-slide{display:none}.gutenberg .bc-product-gallery--has-carousel .swiper-slide:first-of-type{display:block}.gutenberg .bc-quickview-trigger{border:0;outline:none} \ No newline at end of file +.bc-product__title{font-size:1.125em;line-height:1.2;font-weight:700;padding:0;margin:0 0 18px}@media (min-width:768px){.bc-product__title{font-size:1.25em;line-height:1.2}}@media (min-width:960px){.bc-product__title{font-size:1.5em;line-height:1.15}}.bc-product__title-link{text-decoration:none;box-shadow:none!important;color:#34313f;opacity:1;transition:all .15s ease-in-out}.bc-product__title-link:focus,.bc-product__title-link:hover{color:#34313f;opacity:.8}.bc-product__title-link:focus .bc-product-flag--grey,.bc-product__title-link:hover .bc-product-flag--grey{opacity:1}.bc-product__inventory{display:inline-block;font-size:.875em;line-height:1.6;font-weight:400;vertical-align:baseline}.bc-product-card .bc-product__inventory{font-size:.563em}.bc-product-card--single .bc-product__title,.bc-product-single__meta .bc-product__title{font-size:1.5em;line-height:1.15;margin-top:0;margin-bottom:10px;padding:0;font-weight:700}@media (min-width:768px){.bc-product-card--single .bc-product__title,.bc-product-single__meta .bc-product__title{font-size:1.75em}}@media (min-width:960px){.bc-product-card--single .bc-product__title,.bc-product-single__meta .bc-product__title{font-size:2em;line-height:1.125}}.bc-product-card--single .bc-product__inventory,.bc-product-single__meta .bc-product__inventory{font-size:.563em;margin:0}@media (min-width:768px){.bc-product-card--single .bc-product__inventory,.bc-product-single__meta .bc-product__inventory{font-size:.571em}}@media (min-width:960px){.bc-product-card--single .bc-product__inventory,.bc-product-single__meta .bc-product__inventory{font-size:.5em}}.bc-product-card--related .bc-product__title{margin-bottom:15px}.bc-product__brand{display:block;font-size:.875em;line-height:1;font-weight:700;margin-bottom:10px}@media (min-width:768px){.bc-product__brand{margin-bottom:15px}}@media (min-width:960px){.bc-product__brand{margin-bottom:20px}}.bc-product-card--single .bc-product__brand,.bc-product-single .bc-product__brand{display:block;font-size:1em;margin-bottom:10px}.bc-product__pricing{margin-bottom:0;font-weight:400}.bc-product__price{font-size:1em}.bc-product__original-price{text-decoration:line-through;margin-right:12px;margin-bottom:12px;display:inline-block;font-style:italic;color:#8b8b8b}.bc-product__price--sale{font-weight:700;color:#65c68c}.bc-product-card--single .bc-product__pricing{margin-bottom:30px}@media (min-width:960px){.bc-product-card--single .bc-product__pricing{margin-bottom:40px}}@media (min-width:1200px){.bc-product-card--single .bc-product__pricing{margin-bottom:50px}}.bc-product-card--single .bc-product__original-price,.bc-product-single .bc-product__original-price{margin-right:20px}.bc-product-flag--sale{display:block;position:absolute;right:-20px;top:-20px;width:50px;height:50px;line-height:50px;border-radius:50%;background-color:#65c68c;font-size:12px;font-weight:700;text-transform:uppercase;text-align:center;z-index:2}.bc-product-flag--grey{display:inline-block;vertical-align:middle;padding:7px 8px;background-color:#e0e3e9;font-size:.522em;line-height:1;font-weight:600}.bc-product-card--single .bc-product-flag--sale,.bc-product-single .bc-product-flag--sale{width:60px;height:60px;line-height:60px;font-size:16px;font-weight:600}.bc-product-card--single .bc-product-flag--grey,.bc-product-single .bc-product-flag--grey{font-size:.5em;margin-bottom:5px}@media (min-width:768px){.bc-product-card--single .bc-product-flag--grey,.bc-product-single .bc-product-flag--grey{font-size:.429em}}@media (min-width:960px){.bc-product-card--single .bc-product-flag--grey,.bc-product-single .bc-product-flag--grey{font-size:.375em}}.bc-product__description{font-size:1em;line-height:1.5;margin-bottom:30px}@media (min-width:960px){.bc-product__description{margin-bottom:40px}}@media (min-width:1200px){.bc-product__description{margin-bottom:50px}}.bc-product__description p:last-child{margin-bottom:0}.bc-product-gallery__images{position:relative;width:100%;max-width:370px;margin:60px auto}@media (min-width:768px){.bc-product-gallery__images{margin:0}}.bc-product-gallery__image-slide img{display:block}.bc-product-gallery--has-carousel{margin-bottom:10px}.swiper-container[data-js=bc-gallery-thumbs] .swiper-wrapper{transform:translateX(0)!important}.bc-product-gallery__thumbs{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}.bc-product-gallery__thumbs .bc-product-gallery__thumb-slide{box-shadow:unset}.bc-product-gallery__thumb-slide{width:calc(25% - 10px);margin:0 10px 10px 0;padding:0;border:0;background:none;opacity:.8;transition:all .15s ease-in-out}.bc-product-gallery__thumb-slide.swiper-slide-active,.bc-product-gallery__thumb-slide:focus,.bc-product-gallery__thumb-slide:hover{opacity:1}.bc-product-form__control{margin-bottom:20px}.bc-product-form__modifier-label,.bc-product-form__option-label{display:block;margin-bottom:10px;font-size:1em;font-weight:700}.bc-product-form__option-variants{margin-top:10px}.bc-product-variant__label{display:block;margin-bottom:10px}.bc-product-form__option-variants--inline{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}.bc-product-form__option-variants--inline .bc-product-variant__label{margin-right:10px}.bc-product-form__option-variants--inline .bc-product-variant__label:last-of-type{margin-right:0}.bc-product-variant__label--title{-ms-flex:1;flex:1;color:#8b8b8b}input.bc-product-variant__radio--hidden{margin:0}.bc-product-form__product-message{padding:0}.bc-product-form__message{display:block;padding:12px 16px;font-size:.75em}.bc-product-form__modifier-description{display:block;font-size:.75em;line-height:1.15;padding:0 10px;margin-top:4px}.bc-product-form__option-select{font-size:1em}.bc-product-form__control--swatch input.bc-product-variant__radio--hidden:checked+.bc-product-variant__label .bc-product-variant__label--swatch{border:0 solid #fff;box-shadow:0 0 1px #168fc0;transition:border 70ms}.bc-product-variant__label--swatch{display:block;width:36px;height:36px;border:5px solid #fff;box-shadow:0 0 1px #8b8b8b;cursor:pointer;transition:border 70ms}.bc-product-form__control--rectangle input.bc-product-variant__radio--hidden:checked+.bc-product-variant__label .bc-product-variant__label--rectangle{border:1px solid #168fc0;color:#168fc0;font-weight:700;transition:border 70ms,color 70ms}.bc-product-variant__label--rectangle{display:block;height:36px;line-height:1.5;padding:5px 10px;text-align:center;border:1px solid #cdcdcd;color:#8b8b8b;transition:border 70ms,color 70ms;cursor:pointer}.bc-product-form__control--pick-list input.bc-product-variant__radio--hidden:checked+.bc-product-variant__label .bc-product-variant__label--pick-list{border:1px solid #168fc0;transition:border 70ms}.bc-product-variant__label--pick-list{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:5px;border:1px solid #e0e3e9;cursor:pointer}.bc-product-variant__label--img{-ms-flex:0;flex:0;margin-right:6px;width:100%;max-width:50px;height:auto}.bc-product-form__control--radio .bc-product-form__option-label{-ms-flex:0 0 100%;flex:0 0 100%}.bc-product-form__control--radio .bc-product-variant__label{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:center;align-items:center;margin-bottom:6px}.bc-product-form__control--radio .bc-product-variant__radio{-ms-flex:0 0 auto;flex:0 0 auto}.bc-product-form__control--radio .bc-product-variant__label--radio{-ms-flex:1;flex:1;line-height:1.5}.bc-single-product__rating{unicode-bidi:bidi-override;color:#8b8b8b;font-size:15px;height:25px;width:90px;position:relative;padding:0;display:inline-block;vertical-align:middle}.bc-single-product__rating--mask{display:block;position:absolute;top:0;left:0;overflow:hidden;height:25px;z-index:2}.bc-single-product__rating--top{color:#fc0;z-index:1}.bc-single-product__rating--bottom,.bc-single-product__rating--top{padding:0;width:90px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-pack:distribute;justify-content:space-around;-ms-flex-align:center;align-items:center}.bc-single-product__rating--bottom{z-index:0}.bc-rating-star:before{content:"\2605";font-size:15px}.bc-single-product__rating-reviews{font-size:.75em;font-weight:700;margin-left:10px;display:inline-block;vertical-align:middle}.bc-product__spec-list{list-style:none;margin:0;padding:0;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;max-width:100%;margin-left:auto;margin-right:auto}.bc-product__spec{font-size:.875em;-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 10px);flex-basis:calc(50% - 10px);width:calc(50% - 10px);height:calc(50% - 10px)}.bc-product__spec:nth-child(1n){margin-right:20px;margin-bottom:20px;margin-left:0}.bc-product__spec:last-child{margin-right:0;margin-bottom:0}.bc-product__spec:nth-child(2n){margin-right:0;margin-left:auto}.bc-product__spec:nth-last-child(-n+2){margin-bottom:0}@media (min-width:768px){.bc-product__spec{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.33333% - 13.33333px);flex-basis:calc(33.33333% - 13.33333px);width:calc(33.33333% - 13.33333px);height:calc(33.33333% - 13.33333px)}.bc-product__spec:nth-child(1n){margin-right:20px;margin-bottom:20px;margin-left:0}.bc-product__spec:last-child{margin-right:0;margin-bottom:0}.bc-product__spec:nth-child(3n){margin-right:0;margin-left:auto}.bc-product__spec:nth-last-child(-n+3){margin-bottom:0}}@media (min-width:960px){.bc-product__spec{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(25% - 15px);flex-basis:calc(25% - 15px);width:calc(25% - 15px);height:calc(25% - 15px)}.bc-product__spec:nth-child(1n){margin-right:20px;margin-bottom:20px;margin-left:0}.bc-product__spec:last-child{margin-right:0;margin-bottom:0}.bc-product__spec:nth-child(4n){margin-right:0;margin-left:auto}.bc-product__spec:nth-last-child(-n+4){margin-bottom:0}}.bc-single-product__related{padding:50px 0 0;border-top:1px solid #e0e3e9}.bc-single-product__related .bc-form.bc-product-form,.bc-single-product__related button.bc-btn{margin-top:0}.bc-single-product__section-title--related{font-size:1.5em;margin-bottom:0}.bc-product-archive__refinery{width:100%;margin:40px 0 80px}.bc-product-archive__refinery .bc-form{width:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}@media (min-width:1200px){.bc-product-archive__refinery .bc-form{-ms-flex-pack:start;justify-content:flex-start}}.bc-product-archive__search{position:relative;-ms-flex:1 1 100%;flex:1 1 100%}@media (min-width:1200px){.bc-product-archive__search{margin-right:auto;-ms-flex:0 1 270px;flex:0 1 270px}}.bc-product-archive__select{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;margin-top:15px;-ms-flex:1 1 100%;flex:1 1 100%}@media (min-width:500px){.bc-product-archive__select{-ms-flex-wrap:nowrap;flex-wrap:nowrap}}@media (min-width:768px){.bc-product-archive__select{-ms-flex:0 1 calc(33.3333% - 20px);flex:0 1 calc(33.3333% - 20px);-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:20px}.bc-product-archive__select:last-child{margin-right:0}}@media (min-width:1200px){.bc-product-archive__select{-ms-flex-wrap:nowrap;flex-wrap:nowrap;margin-top:0;-ms-flex:0 1 auto;flex:0 1 auto}}.bc-product-archive__select-label{font-size:.75em;text-transform:uppercase;margin-right:10px;font-weight:700;-ms-flex:0 0 100%;flex:0 0 100%}@media (min-width:500px){.bc-product-archive__select-label{-ms-flex:0 0 150px;flex:0 0 150px}}@media (min-width:768px){.bc-product-archive__select-label{-ms-flex:0 0 100%;flex:0 0 100%}}@media (min-width:960px){.bc-product-archive__select-label{-ms-flex:0 0 auto;flex:0 0 auto}}.bc-product-archive__select-field{-ms-flex:0 0 100%;flex:0 0 100%}@media (min-width:500px){.bc-product-archive__select-field{-ms-flex:1 1 100%;flex:1 1 100%}}@media (min-width:768px){.bc-product-archive__select-field{-ms-flex:0 0 100%;flex:0 0 100%}}@media (min-width:960px){.bc-product-archive__select-field{-ms-flex:0 1 auto;flex:0 1 auto}}.bc-form .bc-product-archive__select-field{font-size:.75em;color:#8b8b8b}.bc-product-archive__search-submit{position:absolute;right:0;top:0;transition:all .15s ease-in-out;height:100%;font-size:1em}.bc-product-archive__search-submit.bc-btn.bc-btn--small{max-width:none;width:auto}.bc-subnav__list{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap;list-style:none;margin:0;padding:0}@media (min-width:600px){.bc-subnav__list{-ms-flex-direction:row;flex-direction:row}}.bc-subnav__list-item{margin-bottom:20px;padding:0}@media (min-width:600px){.bc-subnav__list-item+.bc-subnav__list-item{margin-left:30px}}@media (min-width:768px){.bc-subnav__list-item{margin-bottom:40px}}.bc-subnav__link{cursor:pointer;margin:0;padding:0;text-decoration:none}.bc-subnav__list-item--current .bc-subnav__link{color:currentColor}.bc-alert{background-color:#168fc0;color:#fff;font-size:1em;line-height:1.5;padding:12px 16px;margin-bottom:40px}@media (min-width:768px){.bc-alert{margin-bottom:60px}}.bc-alert--success{background-color:#3ec889}.bc-alert--error{background-color:#ff0012}.bc-alert-group .bc-alert:not(:last-child){margin-bottom:10px}.bc-alert-group--info{background-color:#cdcdcd;color:#34313f;font-size:.875em}.bc-product-form .bc-alert-group--info{margin-bottom:0}.bc-alert-group--error{opacity:0;height:0;overflow:hidden;visibility:hidden;transition:all .15s ease-in-out}.bc-alert-group.bc-fade-in-alert-group{opacity:1;visibility:visible;height:auto}.bc-form__error-message{color:#ff0012;display:block;margin-top:10px;margin-bottom:10px;font-weight:400;font-size:.813em}.bc-load-items{position:relative}.bc-load-items-container--has-pages{padding-bottom:40px}.bc-load-items-container--has-pages>:not(.bc-load-items__trigger){opacity:0;transition:opacity .3s ease}.bc-load-items-container--has-pages>:not(.bc-load-items__trigger).item-initialized{opacity:1}.bc-load-items__loader{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);opacity:0;transition:opacity .3s ease}.bc-load-items__loader.active{opacity:1}.bc-load-items__trigger,.bc-load-more-items{width:100%;text-align:center}.bc-load-more-items{margin-top:20px}.bc-load-items__trigger-btn,.bc-no-results__button{background:transparent;color:#5273f4;font-size:.875em;line-height:1;outline:none;border:0;cursor:pointer}.bc-load-items__trigger-btn[disabled],.bc-no-results__button[disabled]{opacity:.5;cursor:not-allowed}.bc-load-items__trigger-btn:focus,.bc-load-items__trigger-btn:hover,.bc-no-results__button:focus,.bc-no-results__button:hover{background:transparent;color:#4b69e0}.bc-load-items__trigger-btn:focus[disabled],.bc-load-items__trigger-btn:hover[disabled],.bc-no-results__button:focus[disabled],.bc-no-results__button:hover[disabled]{background:transparent;color:#4b69e0;cursor:default}.bc-load-items__trigger-btn .bc-icon,.bc-no-results__button .bc-icon{display:block;margin-top:14px;text-align:center;font-size:18px}.bc-pagination__error-message{display:block;font-size:.875em}.bc-order-product-row{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}@media (min-width:768px){.bc-order-product-row{-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap}}.bc-order-product-row__image{-ms-flex:0 0 100px;flex:0 0 100px;position:relative;margin-bottom:12px;max-width:100px}@media (min-width:768px){.bc-order-product-row__image{margin:0 20px 0 0}}.bc-order-product-row__image img{display:block;width:100%;height:auto}.bc-order-product-row__body{-ms-flex:1 1 auto;flex:1 1 auto;margin-bottom:12px}@media (min-width:768px){.bc-order-product-row__body{margin:0 20px 0 0;max-width:550px}}.bc-order-product-row__header .bc-order-product-row__title{font-size:1.25em;line-height:1.2;margin:0 10px 0 0}@media (min-width:960px){.bc-order-product-row__header .bc-order-product-row__title{font-size:1.5em;line-height:1.3}}.bc-order-product-row__header .bc-product-flag--grey{margin-bottom:5px}.bc-order-product-row__brand,.bc-order-product-row__option,.bc-order-product-row__unit-price{font-size:1em;line-height:1.375;margin-bottom:4px}.bc-order-product-row__brand{font-weight:700}.bc-order-product-row__option,.bc-order-product-row__options-list{list-style:none;margin:0;padding:0}.bc-order-product-row__options-list{margin-top:8px}.bc-order-product-row__option{color:#8b8b8b;font-size:.75em;line-height:1.5;margin-top:10px}.bc-order-product-row__option-label{font-weight:600}.bc-order-product-row__option-value{font-weight:300}.bc-order-product-row__status{font-size:1em;font-weight:700;line-height:1.375;margin-bottom:12px}@media (min-width:768px){.bc-order-product-row__status{-ms-flex-item-align:center;align-self:center;-ms-flex:0 0 150px;flex:0 0 150px;font-size:1.25em;line-height:1.2;margin:0 0 0 auto}}.bc-order-product-row__quantity{font-size:.75em;font-weight:700;line-height:1.5;margin-bottom:12px}@media (min-width:768px){.bc-order-product-row__quantity{-ms-flex:0 0 100px;flex:0 0 100px;margin-bottom:0;margin-left:auto}}.bc-order-product-row__total{font-size:1em;font-weight:700;line-height:1.375;margin-bottom:26px}@media (min-width:768px){.bc-order-product-row__total{-ms-flex:0 0 150px;flex:0 0 150px;font-size:1.25em;text-align:right;margin-bottom:0}}.bc-cart-item-image .bc-product__thumbnail-link,.bc-order-product-row__image .bc-product__thumbnail-link{display:block;box-shadow:none;text-decoration:none;border:0;opacity:1;transition:opacity .3s ease}.bc-cart-item-image .bc-product__thumbnail-link:focus,.bc-cart-item-image .bc-product__thumbnail-link:hover,.bc-order-product-row__image .bc-product__thumbnail-link:focus,.bc-order-product-row__image .bc-product__thumbnail-link:hover{opacity:.8}.bc-account-login__form input[type=submit],.bc-btn,.entry-content .bc-btn,.entry-content a.bc-btn,.entry-content button.bc-btn,a.bc-btn,button.bc-btn{display:inline-block;font-family:sans-serif;width:100%;padding:15px 20px;border-radius:0;font-weight:600;line-height:1.6;font-size:.813em;text-transform:uppercase;text-align:center;text-decoration:none;box-shadow:none;opacity:1;transition:all .15s ease-in-out}@media (min-width:960px){.bc-account-login__form input[type=submit],.bc-btn,.entry-content .bc-btn,.entry-content a.bc-btn,.entry-content button.bc-btn,a.bc-btn,button.bc-btn{max-width:270px}}.bc-account-login__form input[type=submit]:focus,.bc-account-login__form input[type=submit]:hover,.bc-btn:focus,.bc-btn:hover,.entry-content .bc-btn:focus,.entry-content .bc-btn:hover,.entry-content a.bc-btn:focus,.entry-content a.bc-btn:hover,.entry-content button.bc-btn:focus,.entry-content button.bc-btn:hover,a.bc-btn:focus,a.bc-btn:hover,button.bc-btn:focus,button.bc-btn:hover{opacity:.9;text-decoration:none;box-shadow:none}.bc-account-login__form input[type=submit][disabled],.bc-btn[disabled],.entry-content .bc-btn[disabled],.entry-content a.bc-btn[disabled],.entry-content button.bc-btn[disabled],a.bc-btn[disabled],button.bc-btn[disabled]{background-color:#5e5e5e;color:#fff;padding:15px 20px;line-height:1.6;font-family:sans-serif;opacity:.6;cursor:not-allowed}.bc-account-login__form input[type=submit][disabled]:focus,.bc-account-login__form input[type=submit][disabled]:hover,.bc-btn[disabled]:focus,.bc-btn[disabled]:hover,.entry-content .bc-btn[disabled]:focus,.entry-content .bc-btn[disabled]:hover,.entry-content a.bc-btn[disabled]:focus,.entry-content a.bc-btn[disabled]:hover,.entry-content button.bc-btn[disabled]:focus,.entry-content button.bc-btn[disabled]:hover,a.bc-btn[disabled]:focus,a.bc-btn[disabled]:hover,button.bc-btn[disabled]:focus,button.bc-btn[disabled]:hover{background-color:#5e5e5e;color:#fff;padding:15px 20px;line-height:1.6;font-family:sans-serif;opacity:.6}.bc-account-login__form input[type=submit]--small,.bc-btn--small,.entry-content .bc-btn--small,.entry-content a.bc-btn--small,.entry-content button.bc-btn--small,a.bc-btn--small,button.bc-btn--small{padding:8px 16px}.bc-account-login__form input[type=submit]--inverse,.bc-btn--inverse,.entry-content .bc-btn--inverse,.entry-content a.bc-btn--inverse,.entry-content button.bc-btn--inverse,a.bc-btn--inverse,button.bc-btn--inverse{padding:11px 20px;box-sizing:border-box;background-color:transparent;border:4px solid}.bc-quickview-trigger,button.bc-quickview-trigger{position:relative;background:transparent;color:inherit;text-transform:none;text-align:left;padding:0}.bc-quickview-trigger:focus,.bc-quickview-trigger:hover,button.bc-quickview-trigger:focus,button.bc-quickview-trigger:hover{background:transparent;transition:opacity .3s ease}.bc-quickview-trigger:focus .bc-quickview-trigger--hover,.bc-quickview-trigger:hover .bc-quickview-trigger--hover,button.bc-quickview-trigger:focus .bc-quickview-trigger--hover,button.bc-quickview-trigger:hover .bc-quickview-trigger--hover{opacity:1}.bc-quickview-trigger--hover{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;background-color:rgba(224,227,233,.72);transition:opacity .3s ease}.bc-quickview-trigger--hover-label{position:absolute;left:50%;top:50%;transform:translate3d(-50%,-50%,0);width:70%;padding:12px 14px;background-color:#fff;color:#34313f;font-weight:400;font-size:.875em;border-radius:20px;text-align:center}.bc-product-card{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.bc-product-card .bc-quickview-trigger{-ms-flex:0 0 auto;flex:0 0 auto;display:-ms-flexbox;display:flex}.bc-product-card .bc-product__actions{-ms-flex-item-align:end;align-self:flex-end;width:100%;-ms-flex:0 0 auto;flex:0 0 auto}.bc-product-card .bc-btn,.bc-product-card a.bc-btn,.bc-product-card button.bc-btn{max-width:100%}.bc-product-card__featured-image{position:relative;width:100%}.bc-product-card__featured-image img{display:block;width:100%;height:auto}.bc-product__meta{padding:25px 0 50px;width:100%;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;-ms-flex:1 1 auto;flex:1 1 auto}.bc-product-card--single{max-width:none;position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:60px 0}@media (min-width:960px){.bc-product-card--single{-ms-flex-direction:column;flex-direction:column}}.bc-product-card--single .bc-product__gallery{position:relative;-ms-flex-order:2;order:2;width:100%}@media (min-width:768px){.bc-product-card--single .bc-product__gallery{width:calc(50% - 30px)}}@media (min-width:960px){.bc-product-card--single .bc-product__gallery{position:absolute;height:100%;width:50%;max-width:370px;left:0;top:0;-ms-flex-order:1;order:1}}.bc-product-card--single .bc-product__meta{padding:0;-ms-flex-order:1;order:1}@media (min-width:960px){.bc-product-card--single .bc-product__meta{-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-order:2;order:2;-ms-flex-item-align:end;align-self:flex-end;width:calc(50% - 30px)}}.bc-product-card--single .bc-product__actions{-ms-flex-order:3;order:3;width:100%}@media (min-width:768px){.bc-product-card--single .bc-product__actions{width:calc(50% + 30px);padding-left:60px}}@media (min-width:960px){.bc-product-card--single .bc-product__actions{-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-order:3;order:3;padding:0;-ms-flex-item-align:end;align-self:flex-end;width:calc(50% - 30px)}}.bc-product-card--single .bc-btn{margin-top:40px}.bc-product-grid{width:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:40px 0}.bc-product-grid>.bc-product-card{width:100%;max-width:370px;margin:0 auto 60px}@media (min-width:768px){.bc-product-grid--2col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 15px);flex-basis:calc(50% - 15px);max-width:calc(50% - 15px);width:calc(50% - 15px)}.bc-product-grid--2col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--2col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--2col>.bc-product-card:nth-child(2n){margin-right:0;margin-left:auto}}@media (min-width:768px){.bc-product-grid--3col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 15px);flex-basis:calc(50% - 15px);max-width:calc(50% - 15px);width:calc(50% - 15px)}.bc-product-grid--3col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--3col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--3col>.bc-product-card:nth-child(2n){margin-right:0;margin-left:auto}}@media (min-width:960px){.bc-product-grid--3col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.32667% - 20px);flex-basis:calc(33.32667% - 20px);max-width:calc(33.32667% - 20px);width:calc(33.32667% - 20px)}.bc-product-grid--3col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--3col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--3col>.bc-product-card:nth-child(3n){margin-right:0;margin-left:auto}}@media (min-width:500px){.bc-product-grid--4col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 15px);flex-basis:calc(50% - 15px);max-width:calc(50% - 15px);width:calc(50% - 15px)}.bc-product-grid--4col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--4col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--4col>.bc-product-card:nth-child(2n){margin-right:0;margin-left:auto}}@media (min-width:600px){.bc-product-grid--4col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.33333% - 20px);flex-basis:calc(33.33333% - 20px);max-width:calc(33.33333% - 20px);width:calc(33.33333% - 20px)}.bc-product-grid--4col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--4col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--4col>.bc-product-card:nth-child(3n){margin-right:0;margin-left:auto}}@media (min-width:960px){.bc-product-grid--4col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(24.995% - 22.5px);flex-basis:calc(24.995% - 22.5px);max-width:calc(24.995% - 22.5px);width:calc(24.995% - 22.5px)}.bc-product-grid--4col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--4col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--4col>.bc-product-card:nth-child(4n){margin-right:0;margin-left:auto}}@media (min-width:500px){.bc-product-grid--5col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 15px);flex-basis:calc(50% - 15px);max-width:calc(50% - 15px);width:calc(50% - 15px)}.bc-product-grid--5col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--5col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--5col>.bc-product-card:nth-child(2n){margin-right:0;margin-left:auto}}@media (min-width:600px){.bc-product-grid--5col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.33333% - 20px);flex-basis:calc(33.33333% - 20px);max-width:calc(33.33333% - 20px);width:calc(33.33333% - 20px)}.bc-product-grid--5col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--5col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--5col>.bc-product-card:nth-child(3n){margin-right:0;margin-left:auto}}@media (min-width:960px){.bc-product-grid--5col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(24.995% - 22.5px);flex-basis:calc(24.995% - 22.5px);max-width:calc(24.995% - 22.5px);width:calc(24.995% - 22.5px)}.bc-product-grid--5col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--5col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--5col>.bc-product-card:nth-child(4n){margin-right:0;margin-left:auto}}@media (min-width:1200px){.bc-product-grid--5col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(19.996% - 24px);flex-basis:calc(19.996% - 24px);max-width:calc(19.996% - 24px);width:calc(19.996% - 24px)}.bc-product-grid--5col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--5col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--5col>.bc-product-card:nth-child(5n){margin-right:0;margin-left:auto}}.bc-product-grid--related{padding-bottom:0}.bc-no-results{text-align:center;width:100%}.bc-no-results__message{font-size:1.375em;line-height:1.1}.bc-no-results__button{margin:0 auto;font-size:1em;text-decoration:none}.bc-product-single{max-width:970px;padding:0 20px;margin:0 auto}.bc-product-single .bc-product-single__top{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between}@media (min-width:768px){.bc-product-single .bc-product-single__top{-ms-flex-wrap:nowrap;flex-wrap:nowrap}}.bc-product-single .bc-product__gallery{position:relative;-ms-flex-order:2;order:2;-ms-flex:1 1 100%;flex:1 1 100%}@media (min-width:768px){.bc-product-single .bc-product__gallery{-ms-flex-order:1;order:1;-ms-flex:0 0 370px;flex:0 0 370px;margin-right:30px}}.bc-product-single .bc-product-single__meta{-ms-flex:1 1 100%;flex:1 1 100%;-ms-flex-order:1;order:1}@media (min-width:768px){.bc-product-single .bc-product-single__meta{-ms-flex-order:2;order:2;-ms-flex:0 0 auto;flex:0 0 auto;width:calc(50% - 60px)}}.bc-product-single .bc-product__sku{display:block;margin-top:20px;font-size:.875em}.bc-product-single .bc-product__sku .bc-product-single__meta-label{font-size:1.143em}.bc-product-single .bc-product-single__meta-label{font-size:1em;font-weight:700}.bc-product-single .bc-product-form{margin-top:40px;opacity:1;transition:opacity .3s ease}.bc-product-single .bc-product-form.bc-product__is-setting-options{opacity:.5}.bc-product-single .bc-btn{margin-top:40px}.bc-product-single .bc-single-product__description{margin-top:60px;width:100%;padding:50px 0;border-top:1px solid #e0e3e9}.bc-product-single .bc-single-product__specifications{width:100%;padding-bottom:50px}.bc-product-single .bc-single-product__section-title{font-weight:700;margin-bottom:20px;font-size:1em}.bc-product-single .bc-single-product__section-title--related{font-size:1.5em}.bc-product-single .bc-single-product__ratings{margin-top:20px}.bc-product-form__quantity{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;margin-bottom:20px}.bc-product-form__quantity-label{margin-right:10px}input.bc-product-form__quantity-input[type=number]{background:#fff;border:1px solid #e0e3e9;font-size:.813em;text-align:center;padding-left:6px;padding-right:6px;width:70px}@media (min-width:768px){input.bc-product-form__quantity-input[type=number]{font-size:1em}}input.bc-product-form__quantity-input[type=number]:focus{box-shadow:0 0 0 1px #e0e3e9}.bc-product-quick-view__overlay{position:fixed;top:0;right:0;height:100vh;width:100vw;background:rgba(0,0,0,.7)}.bc-product-quick-view__wrapper{position:absolute;top:0;right:0;height:100vh;width:100vw;z-index:50}.bc-product-quick-view__wrapper[aria-hidden=true]{display:none}button.bc-product-quick-view__close-button{position:absolute;right:0;top:0;color:#34313f;font-size:30px;z-index:2;background:transparent;padding:10px;opacity:.65;transition:all .15s ease-in-out;width:auto}button.bc-product-quick-view__close-button:focus,button.bc-product-quick-view__close-button:hover{opacity:1;background:transparent}.bc-product-quick-view__content{background:#fff;position:absolute;width:calc(100vw - 20%);height:auto;left:50%;top:0;margin:40px 0;transform:translateX(-50%);overflow-y:scroll}@media (min-width:960px){.bc-product-quick-view__content{height:calc(100vh - 20%);max-width:1140px;max-height:660px;margin:0;top:50%;transform:translate3d(-50%,-50%,0)}.browser-ie .bc-product-quick-view__content{min-height:660px}}.bc-product-quick-view__content *{box-sizing:border-box}.bc-product-quick-view__content>div{height:100%}.bc-product-quick-view__content-inner{position:relative;padding:60px}.bc-product-quick-view__content-inner .bc-product-card{margin:0;height:100%}@media (min-width:960px){.bc-product-quick-view__content-inner .bc-product__gallery{height:auto;padding-bottom:60px;-ms-flex:1 1 100%;flex:1 1 100%}}.bc-product-quick-view__content-inner .bc-product__meta{width:100%}@media (min-width:768px){.bc-product-quick-view__content-inner .bc-product__meta{margin-bottom:40px}}@media (min-width:960px){.bc-product-quick-view__content-inner .bc-product__meta{width:calc(50% - 30px)}}@media (min-width:1200px){.bc-product-quick-view__content-inner .bc-product__meta{padding-left:0}}.bc-product-quick-view__content-inner .bc-product__pricing,.bc-product-quick-view__content-inner .bc-single-product__ratings{margin-bottom:20px}.bc-product-quick-view__content-inner .bc-product-single__meta-label{font-weight:700}.bc-product-quick-view__content-inner .bc-product__description{-ms-flex-order:4;order:4;width:100%;margin-top:40px;padding-top:30px;border-top:1px solid #e0e3e9}@media (min-width:960px){.bc-product-quick-view__content-inner .bc-product__description{width:calc(50% - 30px);-ms-flex-item-align:end;align-self:flex-end}}@media (min-width:1200px){.bc-product-quick-view__content-inner .bc-product__description{-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-order:4;order:4;padding-left:0;width:calc(50% - 30px)}}.gutenberg .bc-product-gallery--has-carousel .swiper-slide{display:none}.gutenberg .bc-product-gallery--has-carousel .swiper-slide:first-of-type{display:block}.gutenberg .bc-quickview-trigger{border:0;outline:none} \ No newline at end of file diff --git a/assets/css/master.css b/assets/css/master.css index 30c14157..1088d68f 100644 --- a/assets/css/master.css +++ b/assets/css/master.css @@ -730,7 +730,7 @@ color: #000; letter-spacing: normal; text-transform: none; - font: normal 400 16px / 1.5 "proxima-nova", "Helvetica Neue", Helvetica, Arial, sans-serif; + font: normal 400 1em / 1.5 "proxima-nova", "Helvetica Neue", Helvetica, Arial, sans-serif; } /* ----------------------------------------------------------------------------- * @@ -762,7 +762,7 @@ line-height: 45px; text-align: center; z-index: 1; - font-size: 20px; + font-size: 1.25em; } .bc-form .bc-form__control input[type="text"], .bc-form .bc-form__control input[type="email"], @@ -773,7 +773,7 @@ border: 1px solid #e0e3e9; -webkit-box-sizing: border-box; box-sizing: border-box; - font-size: 16px; + font-size: 1em; line-height: 1.5; height: 45px; padding-left: 10px; @@ -791,8 +791,8 @@ color: #000; letter-spacing: normal; text-transform: none; - font: normal 400 16px / 1.5 "proxima-nova", "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 16px; + font: normal 400 1em / 1.5 "proxima-nova", "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 1em; height: auto; padding: 20px 20px; line-height: 1; @@ -815,7 +815,7 @@ display: inline-block; letter-spacing: normal; text-transform: none; - font: normal 400 14px / 1 "proxima-nova", "Helvetica Neue", Helvetica, Arial, sans-serif; + font: normal 400 0.875em / 1 "proxima-nova", "Helvetica Neue", Helvetica, Arial, sans-serif; } .bc-form input[type="radio"], .bc-form input[type="checkbox"] { @@ -938,13 +938,13 @@ color: #000; letter-spacing: normal; text-transform: none; - font: normal 400 16px / 1.5 "proxima-nova", "Helvetica Neue", Helvetica, Arial, sans-serif; + font: normal 400 1em / 1.5 "proxima-nova", "Helvetica Neue", Helvetica, Arial, sans-serif; padding-right: 0; cursor: pointer; } /* CASE: multiple */ .bc-form select[multiple] { - font-size: 16px; + font-size: 1em; height: 100px; padding: 20px 20px; } @@ -959,7 +959,7 @@ color: #000; letter-spacing: normal; text-transform: none; - font: normal 400 16px / 1.5 "proxima-nova", "Helvetica Neue", Helvetica, Arial, sans-serif; + font: normal 400 1em / 1.5 "proxima-nova", "Helvetica Neue", Helvetica, Arial, sans-serif; resize: none; padding: 14px 20px; height: 225px; @@ -2269,22 +2269,22 @@ span.flatpickr-weekday { /* Components */ /* Components */ .bc-product__title { - font-size: 18px; - line-height: 22px; + font-size: 1.125em; + line-height: 1.2; font-weight: 700; padding: 0; margin: 0 0 18px; } @media (min-width: 768px) { .bc-product__title { - font-size: 20px; - line-height: 24px; + font-size: 1.25em; + line-height: 1.2; } } @media (min-width: 960px) { .bc-product__title { - font-size: 24px; - line-height: 28px; + font-size: 1.5em; + line-height: 1.15; } } .bc-product__title-link { @@ -2306,14 +2306,17 @@ span.flatpickr-weekday { } .bc-product__inventory { display: inline-block; - font-size: 14px; - line-height: 22px; + font-size: 0.875em; + line-height: 1.6; font-weight: 400; vertical-align: baseline; } +.bc-product-card .bc-product__inventory { + font-size: 0.563em; +} .bc-product-single__meta .bc-product__title, .bc-product-card--single .bc-product__title { - font-size: 24px; - line-height: 28px; + font-size: 1.5em; + line-height: 1.15; margin-top: 0; margin-bottom: 10px; padding: 0; @@ -2321,26 +2324,35 @@ span.flatpickr-weekday { } @media (min-width: 768px) { .bc-product-single__meta .bc-product__title, .bc-product-card--single .bc-product__title { - font-size: 28px; - line-height: 32px; + font-size: 1.75em; } } @media (min-width: 960px) { .bc-product-single__meta .bc-product__title, .bc-product-card--single .bc-product__title { - font-size: 32px; - line-height: 36px; + font-size: 2em; + line-height: 1.125; } } .bc-product-single__meta .bc-product__inventory, .bc-product-card--single .bc-product__inventory { - font-size: 16px; + font-size: 0.563em; margin: 0; } +@media (min-width: 768px) { + .bc-product-single__meta .bc-product__inventory, .bc-product-card--single .bc-product__inventory { + font-size: 0.571em; + } +} +@media (min-width: 960px) { + .bc-product-single__meta .bc-product__inventory, .bc-product-card--single .bc-product__inventory { + font-size: 0.5em; + } +} .bc-product-card--related .bc-product__title { margin-bottom: 15px; } .bc-product__brand { display: block; - font-size: 14px; + font-size: 0.875em; line-height: 1; font-weight: 700; margin-bottom: 10px; @@ -2357,7 +2369,7 @@ span.flatpickr-weekday { } .bc-product-single .bc-product__brand, .bc-product-card--single .bc-product__brand { display: block; - font-size: 16px; + font-size: 1em; margin-bottom: 10px; } .bc-product__pricing { @@ -2365,7 +2377,7 @@ span.flatpickr-weekday { font-weight: normal; } .bc-product__price { - font-size: 16px; + font-size: 1em; } .bc-product__original-price { text-decoration: line-through; @@ -2421,7 +2433,7 @@ span.flatpickr-weekday { vertical-align: middle; padding: 7px 8px; background-color: #e0e3e9; - font-size: 12px; + font-size: 0.522em; line-height: 1; font-weight: 600; } @@ -2433,11 +2445,22 @@ span.flatpickr-weekday { font-weight: 600; } .bc-product-single .bc-product-flag--grey, .bc-product-card--single .bc-product-flag--grey { + font-size: 0.5em; margin-bottom: 5px; } +@media (min-width: 768px) { + .bc-product-single .bc-product-flag--grey, .bc-product-card--single .bc-product-flag--grey { + font-size: 0.429em; + } +} +@media (min-width: 960px) { + .bc-product-single .bc-product-flag--grey, .bc-product-card--single .bc-product-flag--grey { + font-size: 0.375em; + } +} .bc-product__description { - font-size: 16px; - line-height: 24px; + font-size: 1em; + line-height: 1.5; margin-bottom: 30px; } @media (min-width: 960px) { @@ -2512,7 +2535,7 @@ span.flatpickr-weekday { .bc-product-form__modifier-label { display: block; margin-bottom: 10px; - font-size: 16px; + font-size: 1em; font-weight: 700; } .bc-product-form__option-variants { @@ -2557,17 +2580,17 @@ input.bc-product-variant__radio--hidden { .bc-product-form__message { display: block; padding: 12px 16px; - font-size: 12px; + font-size: 0.75em; } .bc-product-form__modifier-description { display: block; - font-size: 12px; - line-height: 14px; + font-size: 0.75em; + line-height: 1.15; padding: 0 10px; margin-top: 4px; } .bc-product-form__option-select { - font-size: 16px; + font-size: 1em; } .bc-product-form__control--swatch input.bc-product-variant__radio--hidden:checked + .bc-product-variant__label .bc-product-variant__label--swatch { border: 0 solid #fff; @@ -2597,7 +2620,7 @@ input.bc-product-variant__radio--hidden { .bc-product-variant__label--rectangle { display: block; height: 36px; - line-height: 24px; + line-height: 1.5; padding: 5px 10px; text-align: center; border: 1px solid #cdcdcd; @@ -2660,7 +2683,7 @@ input.bc-product-variant__radio--hidden { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; - line-height: 24px; + line-height: 1.5; } .bc-single-product__rating { unicode-bidi: bidi-override; @@ -2726,7 +2749,7 @@ input.bc-product-variant__radio--hidden { font-size: 15px; } .bc-single-product__rating-reviews { - font-size: 12px; + font-size: 0.75em; font-weight: 700; margin-left: 10px; display: inline-block; @@ -2748,7 +2771,7 @@ input.bc-product-variant__radio--hidden { margin-right: auto; } .bc-product__spec { - font-size: 14px; + font-size: 0.875em; -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; @@ -2842,7 +2865,7 @@ input.bc-product-variant__radio--hidden { margin-top: 0; } .bc-single-product__section-title--related { - font-size: 24px; + font-size: 1.5em; margin-bottom: 0; } .bc-product-archive__refinery { @@ -2936,7 +2959,7 @@ input.bc-product-variant__radio--hidden { } } .bc-product-archive__select-label { - font-size: 12px; + font-size: 0.75em; text-transform: uppercase; margin-right: 10px; font-weight: 700; @@ -2992,7 +3015,7 @@ input.bc-product-variant__radio--hidden { } } .bc-form .bc-product-archive__select-field { - font-size: 12px; + font-size: 0.75em; color: #8b8b8b; } .bc-product-archive__search-submit { @@ -3002,7 +3025,7 @@ input.bc-product-variant__radio--hidden { -webkit-transition: all 0.15s ease-in-out; transition: all 0.15s ease-in-out; height: 100%; - font-size: 16px; + font-size: 1em; } .bc-product-archive__search-submit.bc-btn.bc-btn--small { max-width: none; @@ -3056,7 +3079,7 @@ input.bc-product-variant__radio--hidden { .bc-alert { background-color: #168fc0; color: #fff; - font-size: 16px; + font-size: 1em; line-height: 1.5; padding: 12px 16px; margin-bottom: 40px; @@ -3078,7 +3101,7 @@ input.bc-product-variant__radio--hidden { .bc-alert-group--info { background-color: #cdcdcd; color: #34313f; - font-size: 14px; + font-size: 0.875em; } .bc-product-form .bc-alert-group--info { margin-bottom: 0; @@ -3102,7 +3125,7 @@ input.bc-product-variant__radio--hidden { margin-top: 10px; margin-bottom: 10px; font-weight: 400; - font-size: 13px; + font-size: 0.813em; } .bc-load-items { position: relative; @@ -3143,8 +3166,8 @@ input.bc-product-variant__radio--hidden { .bc-no-results__button { background: transparent; color: #5273f4; - font-size: 14px; - line-height: 14px; + font-size: 0.875em; + line-height: 1; outline: none; border: 0; cursor: pointer; @@ -3174,7 +3197,7 @@ input.bc-product-variant__radio--hidden { /* Error Handling */ .bc-pagination__error-message { display: block; - font-size: 14px; + font-size: 0.875em; } .bc-order-product-row { display: -webkit-box; @@ -3226,14 +3249,14 @@ input.bc-product-variant__radio--hidden { } } .bc-order-product-row__header .bc-order-product-row__title { - font-size: 20px; - line-height: 24px; + font-size: 1.25em; + line-height: 1.2; margin: 0 10px 0 0; } @media (min-width: 960px) { .bc-order-product-row__header .bc-order-product-row__title { - font-size: 24px; - line-height: 32px; + font-size: 1.5em; + line-height: 1.3; } } .bc-order-product-row__header .bc-product-flag--grey { @@ -3242,8 +3265,8 @@ input.bc-product-variant__radio--hidden { .bc-order-product-row__brand, .bc-order-product-row__unit-price, .bc-order-product-row__option { - font-size: 16px; - line-height: 22px; + font-size: 1em; + line-height: 1.375; margin-bottom: 4px; } .bc-order-product-row__brand { @@ -3260,8 +3283,8 @@ input.bc-product-variant__radio--hidden { } .bc-order-product-row__option { color: #8b8b8b; - font-size: 12px; - line-height: 18px; + font-size: 0.75em; + line-height: 1.5; margin-top: 10px; } .bc-order-product-row__option-label { @@ -3271,9 +3294,9 @@ input.bc-product-variant__radio--hidden { font-weight: 300; } .bc-order-product-row__status { - font-size: 16px; + font-size: 1em; font-weight: 700; - line-height: 22px; + line-height: 1.375; margin-bottom: 12px; } @media (min-width: 768px) { @@ -3283,15 +3306,15 @@ input.bc-product-variant__radio--hidden { -webkit-box-flex: 0; -ms-flex: 0 0 150px; flex: 0 0 150px; - font-size: 20px; - line-height: 24px; + font-size: 1.25em; + line-height: 1.2; margin: 0 0 0 auto; } } .bc-order-product-row__quantity { - font-size: 12px; + font-size: 0.75em; font-weight: 700; - line-height: 18px; + line-height: 1.5; margin-bottom: 12px; } @media (min-width: 768px) { @@ -3304,9 +3327,9 @@ input.bc-product-variant__radio--hidden { } } .bc-order-product-row__total { - font-size: 16px; + font-size: 1em; font-weight: 700; - line-height: 22px; + line-height: 1.375; margin-bottom: 26px; } @media (min-width: 768px) { @@ -3314,7 +3337,7 @@ input.bc-product-variant__radio--hidden { -webkit-box-flex: 0; -ms-flex: 0 0 150px; flex: 0 0 150px; - font-size: 20px; + font-size: 1.25em; text-align: right; margin-bottom: 0; } @@ -3349,8 +3372,8 @@ a.bc-btn, padding: 15px 20px; border-radius: 0; font-weight: 600; - line-height: 20px; - font-size: 13px; + line-height: 1.6; + font-size: 0.813em; text-transform: uppercase; text-align: center; text-decoration: none; @@ -3394,7 +3417,7 @@ a.bc-btn, background-color: #5e5e5e; color: #fff; padding: 15px 20px; - line-height: 20px; + line-height: 1.6; font-family: sans-serif; opacity: 0.6; cursor: not-allowed; @@ -3416,7 +3439,7 @@ a.bc-btn, background-color: #5e5e5e; color: #fff; padding: 15px 20px; - line-height: 20px; + line-height: 1.6; font-family: sans-serif; opacity: 0.6; } @@ -3472,7 +3495,7 @@ button.bc-quickview-trigger { background-color: #fff; color: #34313f; font-weight: normal; - font-size: 14px; + font-size: 0.875em; border-radius: 20px; text-align: center; } @@ -3687,20 +3710,20 @@ button.bc-quickview-trigger { margin-bottom: 12px; } .bc-order-card__title .bc-order-card__order-title { - font-size: 20px; - line-height: 24px; + font-size: 1.25em; + line-height: 1.2; margin: 0; } @media (min-width: 960px) { .bc-order-card__title .bc-order-card__order-title { - font-size: 24px; - line-height: 32px; + font-size: 1.5em; + line-height: 1.3; } } @media (min-width: 1200px) { .bc-order-card__title .bc-order-card__order-title { - font-size: 24px; - line-height: 32px; + font-size: 1.5em; + line-height: 1.3; } } .bc-order-card__order-title .bc-order-card__title-link { @@ -3718,14 +3741,14 @@ button.bc-quickview-trigger { opacity: 0.8; } .bc-order-card__total { - font-size: 16px; + font-size: 1em; font-weight: 700; - line-height: 22px; + line-height: 1.375; margin-bottom: 26px; } @media (min-width: 768px) { .bc-order-card__total { - font-size: 20px; + font-size: 1.25em; margin-bottom: 20px; } } @@ -3760,9 +3783,9 @@ button.bc-quickview-trigger { } } .bc-order-card__status { - font-size: 16px; + font-size: 1em; font-weight: 700; - line-height: 22px; + line-height: 1.375; margin-bottom: 12px; } @media (min-width: 768px) { @@ -3772,8 +3795,8 @@ button.bc-quickview-trigger { -webkit-box-flex: 0; -ms-flex: 0 0 150px; flex: 0 0 150px; - font-size: 20px; - line-height: 24px; + font-size: 1.25em; + line-height: 1.2; margin: 0 0 0 auto; } } @@ -4051,12 +4074,12 @@ button.bc-quickview-trigger { width: 100%; } .bc-no-results__message { - font-size: 22px; - line-height: 24px; + font-size: 1.375em; + line-height: 1.1; } .bc-no-results__button { margin: 0 auto; - font-size: 16px; + font-size: 1em; text-decoration: none; } /* Single */ @@ -4130,14 +4153,23 @@ button.bc-quickview-trigger { .bc-product-single .bc-product__sku { display: block; margin-top: 20px; - font-size: 14px; + font-size: 0.875em; +} +.bc-product-single .bc-product__sku .bc-product-single__meta-label { + font-size: 1.143em; } .bc-product-single .bc-product-single__meta-label { - font-size: 16px; + font-size: 1em; font-weight: 700; } .bc-product-single .bc-product-form { margin-top: 40px; + opacity: 1; + -webkit-transition: opacity 0.3s ease; + transition: opacity 0.3s ease; +} +.bc-product-single .bc-product-form.bc-product__is-setting-options { + opacity: 0.5; } .bc-product-single .bc-btn { margin-top: 40px; @@ -4155,10 +4187,10 @@ button.bc-quickview-trigger { .bc-product-single .bc-single-product__section-title { font-weight: 700; margin-bottom: 20px; - font-size: 16px; + font-size: 1em; } .bc-product-single .bc-single-product__section-title--related { - font-size: 24px; + font-size: 1.5em; } .bc-product-single .bc-single-product__ratings { margin-top: 20px; @@ -4182,14 +4214,15 @@ button.bc-quickview-trigger { input.bc-product-form__quantity-input[type=number] { background: #fff; border: 1px solid #e0e3e9; - font-size: 13px; + font-size: 0.813em; text-align: center; - width: 42px; + padding-left: 6px; + padding-right: 6px; + width: 70px; } @media (min-width: 768px) { input.bc-product-form__quantity-input[type=number] { - font-size: 16px; - width: 52px; + font-size: 1em; } } input.bc-product-form__quantity-input[type=number]:focus { @@ -4475,13 +4508,13 @@ button.bc-product-quick-view__close-button:hover, vertical-align: middle; } .bc-product-review__meta { - font-size: 14px; - line-height: 18px; + font-size: 0.875em; + line-height: 1.3; margin-bottom: 15px; } .bc-product-review__content { - font-size: 16px; - line-height: 24px; + font-size: 1em; + line-height: 1.5; } @media (min-width: 768px) { .bc-product-review__content { @@ -4528,7 +4561,7 @@ button.bc-product-quick-view__close-button:hover, } .bc-cart-header > div { padding: 20px 0; - font-size: 14px; + font-size: 0.875em; font-weight: 700; } @media (min-width: 768px) { @@ -4623,7 +4656,7 @@ button.bc-product-quick-view__close-button:hover, } @media (min-width: 768px) { .bc-cart-item { - font-size: 16px; + font-size: 1em; } } @media (min-width: 960px) { @@ -4638,14 +4671,14 @@ button.bc-product-quick-view__close-button:hover, display: block; background: transparent; color: #5273f4; - font-size: 10px; + font-size: 0.625em; text-transform: none; padding: 5px 0; font-weight: 700; } @media (min-width: 768px) { .bc-cart-item__remove-button { - font-size: 16px; + font-size: 1em; margin: 0 auto; } } @@ -4697,37 +4730,36 @@ button.bc-product-quick-view__close-button:hover, } .bc-cart-item-meta .bc-cart-item__product-title { margin: 0; - font-size: 16px; - line-height: 18px; + font-size: 1em; + line-height: 1.125; } @media (min-width: 768px) { .bc-cart-item-meta .bc-cart-item__product-title { - font-size: 18px; - line-height: 22px; + font-size: 1.125em; + line-height: 1.2; } } @media (min-width: 960px) { .bc-cart-item-meta .bc-cart-item__product-title { - font-size: 20px; - line-height: 24px; + font-size: 1.25em; } } @media (min-width: 1200px) { .bc-cart-item-meta .bc-cart-item__product-title { - font-size: 24px; - line-height: 32px; + font-size: 1.5em; + line-height: 1.3; } } .bc-cart-item__product-brand { display: block; font-weight: 700; margin-top: 10px; - font-size: 14px; + font-size: 0.875em; } .bc-cart-item__product-option { display: block; - font-size: 12px; - line-height: 18px; + font-size: 0.75em; + line-height: 1.5; margin-top: 10px; color: #8b8b8b; } @@ -4739,15 +4771,8 @@ button.bc-product-quick-view__close-button:hover, } .bc-cart-item-quantity { -webkit-box-flex: 0; - -ms-flex: 0 0 42px; - flex: 0 0 42px; -} -@media (min-width: 768px) { - .bc-cart-item-quantity { - -webkit-box-flex: 0; - -ms-flex: 0 0 70px; - flex: 0 0 70px; - } + -ms-flex: 0 0 70px; + flex: 0 0 70px; } @media (min-width: 960px) { .bc-cart-item-quantity { @@ -4760,13 +4785,12 @@ button.bc-product-quick-view__close-button:hover, text-align: center; background: #fff; border: 1px solid #e0e3e9; - font-size: 13px; - width: 42px; + font-size: 0.813em; + width: 70px; } @media (min-width: 768px) { .bc-cart-item-quantity input.bc-cart-item__quantity-input { - font-size: 16px; - width: 52px; + font-size: 1em; } } .bc-cart-item-quantity input.bc-cart-item__quantity-input:focus { @@ -4779,14 +4803,14 @@ button.bc-product-quick-view__close-button:hover, flex: 0 0 70px; margin-left: 10px; font-weight: 700; - font-size: 14px; + font-size: 0.875em; } @media (min-width: 960px) { .bc-cart-item-total-price { -webkit-box-flex: 0; -ms-flex: 0 0 120px; flex: 0 0 120px; - font-size: 20px; + font-size: 1.25em; } } .bc-cart-footer { @@ -4812,7 +4836,7 @@ button.bc-product-quick-view__close-button:hover, } .bc-cart-subtotal__label, .bc-cart-tax__label { - font-size: 13px; + font-size: 0.813em; margin-right: 14px; text-align: right; padding-right: 15px; @@ -4831,14 +4855,14 @@ button.bc-product-quick-view__close-button:hover, @media (min-width: 960px) { .bc-cart-subtotal__amount, .bc-cart-tax__amount { - font-size: 20px; + font-size: 1.25em; -webkit-box-flex: 0; -ms-flex: 0 0 120px; flex: 0 0 120px; } } .bc-cart-tax__amount { - font-size: 16px; + font-size: 1em; } .bc-cart-actions { text-align: right; @@ -4853,7 +4877,7 @@ button.bc-product-quick-view__close-button:hover, } .bc-cart-error__message { background: #ff8383; - font-size: 12px; + font-size: 0.75em; margin: 0; } .message-active .bc-cart-error__message { @@ -4956,12 +4980,12 @@ button.bc-product-quick-view__close-button:hover, } .bc-account-address__meta > span { display: block; - font-size: 14px; + font-size: 0.875em; } span.bc-account-address__name { font-weight: 700; - font-size: 20px; - line-height: 24px; + font-size: 1.25em; + line-height: 1.2; margin-bottom: 12px; } .bc-account-address__phone { @@ -4981,7 +5005,7 @@ a.bc-account-address__delete { letter-spacing: normal; font-weight: normal; font-family: inherit; - font-size: 14px; + font-size: 0.875em; text-decoration: none; -webkit-box-shadow: none !important; box-shadow: none !important; @@ -5030,7 +5054,7 @@ a.bc-account-addresses__add-button { transition: all 0.15s ease-in-out; width: 100%; padding: 40px 10px; - font-size: 20px; + font-size: 1.25em; line-height: 1; text-transform: none; letter-spacing: normal; @@ -5046,7 +5070,7 @@ a.bc-account-addresses__add-button { } .bc-account-addresses__add-button .bc-icon, button.bc-account-addresses__add-button .bc-icon, a.bc-account-addresses__add-button .bc-icon { display: block; - font-size: 16px; + font-size: 1em; margin-bottom: 18px; } .bc-account-addresses__add-button .bc-icon:before, button.bc-account-addresses__add-button .bc-icon:before, a.bc-account-addresses__add-button .bc-icon:before { @@ -5226,7 +5250,7 @@ a.bc-account-addresses__add-button { } } .bc-order__header { - font-size: 12px; + font-size: 0.75em; margin-bottom: 20px; display: -webkit-box; display: -ms-flexbox; @@ -5246,8 +5270,8 @@ a.bc-account-addresses__add-button { } .bc-order-meta__label, .bc-order-meta__value { - font-size: 12px; - line-height: 18px; + font-size: 0.75em; + line-height: 1.5; margin: 0; padding: 0; } @@ -5439,9 +5463,9 @@ a.bc-account-addresses__add-button { } } .bc-order-shipment .bc-order-meta__label { - font-size: 12px; + font-size: 0.75em; fonot-weight: 700; - line-height: 18px; + line-height: 1.5; letter-spacing: 0; text-transform: none; margin: 0; @@ -5538,15 +5562,15 @@ a.bc-account-addresses__add-button { } .bc-order-detail-totals__label, .bc-order-detail-totals__value { - font-size: 16px; - line-height: 24px; + font-size: 1em; + line-height: 1.5; font-weight: 700; margin: 0; padding: 0; } .bc-order-detail-totals__label--lg, .bc-order-detail-totals__value--lg { - font-size: 20px; - line-height: 22px; + font-size: 1.25em; + line-height: 1.1; } .bc-order-detail-totals__label { color: #8b8b8b; @@ -5673,16 +5697,16 @@ a.bc-account-addresses__add-button { line-height: 1; } .bc-gift-balance__title { - font-size: 16px; + font-size: 1em; margin-bottom: 34px; } .bc-gift-balance__amount { - font-size: 48px; + font-size: 3em; margin-bottom: 34px; } .bc-gift-balance__code { - font-size: 16px; + font-size: 1em; text-transform: uppercase; } -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3Bjc3MvbWFzdGVyLnBjc3MiLCIuLi9wY3NzL2Jhc2UvX2ljb25zLnBjc3MiLCIuLi9wY3NzL3V0aWxpdGllcy9fYWxsLnBjc3MiLCIuLi9wY3NzL3V0aWxpdGllcy92YXJpYWJsZXMvX2NvbG9ycy5wY3NzIiwiLi4vcGNzcy91dGlsaXRpZXMvdmFyaWFibGVzL19lYXNpbmcucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL3ZhcmlhYmxlcy9fZm9ybXMucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL3ZhcmlhYmxlcy9mb3Jtcy9fbGFiZWwucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL3ZhcmlhYmxlcy9mb3Jtcy9fbGVnZW5kLnBjc3MiLCIuLi9wY3NzL3V0aWxpdGllcy92YXJpYWJsZXMvZm9ybXMvX2NvbnRyb2xzLnBjc3MiLCIuLi9wY3NzL3V0aWxpdGllcy92YXJpYWJsZXMvZm9ybXMvX2F0dHJpYnV0ZXMucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL3ZhcmlhYmxlcy9faWNvbnMucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL3ZhcmlhYmxlcy9fdHlwb2dyYXBoeS5wY3NzIiwiLi4vcGNzcy91dGlsaXRpZXMvdmFyaWFibGVzL19zcGFjZXJzLnBjc3MiLCIuLi9wY3NzL3V0aWxpdGllcy9taXhpbnMvX2J1dHRvbnMucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL21peGlucy9fZm9ybXMucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL21peGlucy9fdGV4dC1oZWxwZXJzLnBjc3MiLCIuLi9wY3NzL3V0aWxpdGllcy9taXhpbnMvX3R5cG9ncmFwaHkucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL21peGlucy9fdXRpbGl0aWVzLnBjc3MiLCIuLi9wY3NzL3V0aWxpdGllcy9taXhpbnMvX3Zpc2liaWxpdHkucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL2hlbHBlci1jbGFzc2VzL192aXNpYmlsaXR5LnBjc3MiLCIuLi9wY3NzL3V0aWxpdGllcy9oZWxwZXItY2xhc3Nlcy9fY29sb3JzLnBjc3MiLCIuLi9wY3NzL2Jhc2UvX2FsbC5wY3NzIiwiLi4vcGNzcy9iYXNlL2Zvcm1zL19kZWZhdWx0LnBjc3MiLCIuLi9wY3NzL2Jhc2UvZm9ybXMvX3ZhbGlkYXRpb24ucGNzcyIsIi4uL3Bjc3MvYmFzZS9mb3Jtcy9jb250cm9scy9fZGVmYXVsdC5wY3NzIiwiLi4vcGNzcy9iYXNlL2Zvcm1zL2NvbnRyb2xzL19maWxlLnBjc3MiLCIuLi9wY3NzL2Jhc2UvZm9ybXMvY29udHJvbHMvX3JhZGlvLWNoZWNrYm94LnBjc3MiLCIuLi9wY3NzL2Jhc2UvZm9ybXMvY29udHJvbHMvX3NlbGVjdC5wY3NzIiwiLi4vcGNzcy9iYXNlL2Zvcm1zL2NvbnRyb2xzL190ZXh0YXJlYS5wY3NzIiwiLi4vcGNzcy92ZW5kb3IvX2FsbC5wY3NzIiwiLi4vcGNzcy92ZW5kb3Ivc3dpcGVyL19hbGwucGNzcyIsIi4uL3Bjc3MvdmVuZG9yL3N3aXBlci9fZGVmYXVsdC5wY3NzIiwiPG5vIHNvdXJjZT4iLCIuLi9wY3NzL3ZlbmRvci9mbGF0cGlja3IvX2FsbC5wY3NzIiwiLi4vcGNzcy92ZW5kb3IvZmxhdHBpY2tyL19kZWZhdWx0LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvX2FsbC5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX2FsbC5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX3RpdGxlLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fYnJhbmQucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19wcmljZS5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX2ZsYWdzLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fZGVzY3JpcHRpb24ucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19nYWxsZXJ5LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fZm9ybS1jb21wb25lbnRzLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fb3B0aW9uLWRyb3Bkb3duLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fb3B0aW9uLXN3YXRjaC5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX29wdGlvbi1yZWN0YW5nbGUucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19vcHRpb24tcGljay1saXN0LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fb3B0aW9uLXJhZGlvLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fcmF0aW5ncy5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX3NwZWNzLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fcmVsYXRlZC1wcm9kdWN0cy5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX3JlZmluZXJ5LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fc3VibmF2LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fYWxlcnQucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19wYWdpbmF0aW9uLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fb3JkZXItcHJvZHVjdC1yb3cucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19pbWFnZXMucGNzcyIsIi4uL3Bjc3MvY29udGVudC9idXR0b25zL19kZWZhdWx0LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvYnV0dG9ucy9fcXVpY2stdmlldy5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NhcmRzL19kZWZhdWx0LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY2FyZHMvX3NpbmdsZS5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NhcmRzL19vcmRlci5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2xvb3AvX2RlZmF1bHQucGNzcyIsIi4uL3Bjc3MvY29udGVudC9sb29wL19wcm9kdWN0cy5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2xvb3AvX25vLXJlc3VsdHMucGNzcyIsIi4uL3Bjc3MvY29udGVudC9zaW5nbGUvX3Byb2R1Y3QucGNzcyIsIi4uL3Bjc3MvY29udGVudC9zaW5nbGUvX3Byb2R1Y3QtcXVpY2stdmlldy5wY3NzIiwiLi4vcGNzcy9jb250ZW50L3NpbmdsZS9fcHJvZHVjdC1yZXZpZXdzLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY2FydC9fY2FydC1wYWdlLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY2FydC9fY2FydC1tZW51LWl0ZW0ucGNzcyIsIi4uL3Bjc3MvY29udGVudC9wYWdlL19hZGRyZXNzLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvcGFnZS9fYWNjb3VudC1kZWZhdWx0LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvcGFnZS9fYWNjb3VudC1sb2dpbi5wY3NzIiwiLi4vcGNzcy9jb250ZW50L3BhZ2UvX2FjY291bnQtcmVnaXN0ZXIucGNzcyIsIi4uL3Bjc3MvY29udGVudC9wYWdlL29yZGVycy9fZGVmYXVsdC5wY3NzIiwiLi4vcGNzcy9jb250ZW50L3BhZ2Uvb3JkZXJzL19vcmRlci1oaXN0b3J5LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvcGFnZS9vcmRlcnMvX29yZGVyLWRldGFpbC5wY3NzIiwiLi4vcGNzcy9jb250ZW50L3BhZ2UvX2xvc3QtcGFzc3dvcmQucGNzcyIsIi4uL3Bjc3MvY29udGVudC9wYWdlL19naWZ0LWNlcnRpZmljYXRlLnBjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7O0FBRUgsV0FBVztBQ1ZYOzs7O21GQUltRjtBQUVuRix1QkFBdUI7QUFFdkI7RUFDRSxpQ0FBaUM7RUFDakM7Ozs7bUdBSTBHO0VBQzFHLG9CQUFvQjtFQUNwQixtQkFBbUI7Q0FDcEI7QUFFRDtFQUNFLGdGQUFnRjtFQUNoRiw0Q0FBNEM7RUFDNUMsWUFBWTtFQUNaLG1CQUFtQjtFQUNuQixv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RWY7Q0FEQztBQUdGOzs7RUFHQyxlQUFlO0VBQ2YsaUJBQXFDO0VBQ3JDLGVBQWU7Q0FDZjtBQUVEO0VBQ0MsZ0JBQWdCO0VBQ2hCLG9CQUFvQjtDQUNwQjtBQUVEO0VBQ0MsZ0JBQWdCO0VBQ2hCLG9CQUFvQjtDQUNwQjtBQUVEO0VBQ0MsZ0JBQWdCO0VBQ2hCLDBCQUEwQjtDQUMxQiIsImZpbGUiOiJtYXN0ZXIuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIEdsb2JhbCBDU1NcbiAqXG4gKiBETyBOT1QgRURJVCBUSElTIENTUyBGSUxFIERJUkVDVExZLiBJVCBJUyBHRU5FUkFURUQgQlkgR1JVTlQuXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUaGlzIGZpbGUgaXMganVzdCBhIGNsZWFyaW5nLWhvdXNlLCBzZWUgdGhlIHBjc3MgZGlyZWN0b3J5XG4gKiBhbmQgZWRpdCB0aGUgc291cmNlIGZpbGVzIGZvdW5kIHRoZXJlLlxuICpcbiAqL1xuXG4vKiBSZXNldCAqL1xuQGltcG9ydCBcImJhc2UvaWNvbnNcIjtcblxuLyogVXRpbGl0aWVzICovXG5AaW1wb3J0IFwidXRpbGl0aWVzL2FsbFwiO1xuXG4vKiBCYXNlICovXG5AaW1wb3J0IFwiYmFzZS9hbGxcIjtcblxuLyogVmVuZG9yICovXG5AaW1wb3J0IFwidmVuZG9yL2FsbFwiO1xuXG4vKiBDb250ZW50ICovXG5AaW1wb3J0IFwiY29udGVudC9hbGxcIjtcbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogRm9udCBJY29uczogSWNvbnMgKHZpYSBJY29Nb29uKVxuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2JpZ2NvbW1lcmNlLWljb25zJztcbiAgc3JjOlxuICAgIHVybCgndmFyKC0tcGF0aC1mb250cykvaWNvbnMtYmlnY29tbWVyY2UvYmlnY29tbWVyY2UtaWNvbnMud29mZjI/bW5oZXBkJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgIHVybCgndmFyKC0tcGF0aC1mb250cykvaWNvbnMtYmlnY29tbWVyY2UvYmlnY29tbWVyY2UtaWNvbnMudHRmP21uaGVwZCcpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICB1cmwoJ3ZhcigtLXBhdGgtZm9udHMpL2ljb25zLWJpZ2NvbW1lcmNlL2JpZ2NvbW1lcmNlLWljb25zLndvZmY/bW5oZXBkJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgdXJsKCd2YXIoLS1wYXRoLWZvbnRzKS9pY29ucy1iaWdjb21tZXJjZS9iaWdjb21tZXJjZS1pY29ucy5zdmc/bW5oZXBkI2JpZ2NvbW1lcmNlLWljb25zJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4uYmMtaWNvbiB7XG4gIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gIGZvbnQtZmFtaWx5OiAnYmlnY29tbWVyY2UtaWNvbnMnICFpbXBvcnRhbnQ7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4uaWNvbi1iYy1iaWdjb21tZXJjZV9kaWFnbm9zdGljczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxMlwiO1xufVxuLmljb24tYmMtY2hhbm5lbF9zZWxlY3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MTFcIjtcbn1cbi5pY29uLWJjLWNoYW5uZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MTFcIjtcbn1cbi5pY29uLWJjLWNyZWRlbnRpYWxzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTEwXCI7XG59XG4uaWNvbi1iYy1zeW5jOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBmXCI7XG59XG4uaWNvbi1iYy1hY2NvdW50czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwNlwiO1xufVxuLmljb24tYmMtYW5hbHl0aWNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA3XCI7XG59XG4uaWNvbi1iYy1jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA4XCI7XG59XG4uaWNvbi1iYy1jdXJyZW5jeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwOVwiO1xufVxuLmljb24tYmMtZ2lmdF9jZXJ0aWZpY2F0ZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MGFcIjtcbn1cbi5pY29uLWJjLWltcG9ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwYlwiO1xufVxuLmljb24tYmMtb3JkZXJfY29uZmlybWF0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBjXCI7XG59XG4uaWNvbi1iYy1wcm9kdWN0X3Jldmlld3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MGRcIjtcbn1cbi5pY29uLWJjLXNoaXBwaW5nX3JldHVybnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MGVcIjtcbn1cbi5pY29uLWJjLWItbG9nbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwMVwiO1xufVxuLmRhc2hpY29ucy1iaWdjb21tZXJjZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwMVwiO1xufVxuLmljb24tYmMtYXJyb3ctc29saWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDJcIjtcbn1cbi5pY29uLWJjLXNlbGVjdGVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTAzXCI7XG59XG4uaWNvbi1iYy1hcnJvdy10b2dnbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDVcIjtcbn1cbi5pY29uLWJjLWFycm93LWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTRcIjtcbn1cbi5pY29uLWJjLWFycm93LXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDk1XCI7XG59XG4uaWNvbi1iYy1hcnJvdy11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5NlwiO1xufVxuLmljb24tYmMtYXJyb3ctZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5N1wiO1xufVxuLmljb24tYmMtcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExNFwiO1xufVxuLmljb24tYmMtbWludXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTVcIjtcbn1cbi5pY29uLWJjLWNoZWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTE2XCI7XG59XG4uaWNvbi1iYy1jcm9zczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExN1wiO1xufVxuLmljb24tYmMtc2VhcmNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDM2XCI7XG59XG4uaWNvbi1iYy1jaGV2cm9uLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDBcIjtcbn1cbi5pY29uLWJjLWNoZXZyb24tbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxYVwiO1xufVxuLmljb24tYmMtY2hldnJvbi1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxOVwiO1xufVxuLmljb24tYmMtY2hldnJvbi11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwNFwiO1xufVxuIiwiXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIFV0aWxpdGllc1xuICpcbiAqIFRoaXMgZmlsZSBpcyBqdXN0IGEgY2xlYXJpbmctaG91c2UuXG4gKiBNYWtlIHBhcnRpYWxzIChzdGFydCB3aXRoIGFuIHVuZGVyc2NvcmUpIGZvciBhbnkgYWN0dWFsIGNzcyBjb2RlLlxuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIFZhcmlhYmxlcyAqL1xuQGltcG9ydCBcInZhcmlhYmxlcy9jb2xvcnNcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXMvZWFzaW5nXCI7XG5AaW1wb3J0IFwidmFyaWFibGVzL2Zvcm1zXCI7XG5AaW1wb3J0IFwidmFyaWFibGVzL2Zvcm1zL2xhYmVsXCI7XG5AaW1wb3J0IFwidmFyaWFibGVzL2Zvcm1zL2xlZ2VuZFwiO1xuQGltcG9ydCBcInZhcmlhYmxlcy9mb3Jtcy9maWVsZHNldFwiO1xuQGltcG9ydCBcInZhcmlhYmxlcy9mb3Jtcy9jb250cm9sc1wiO1xuQGltcG9ydCBcInZhcmlhYmxlcy9mb3Jtcy9hdHRyaWJ1dGVzXCI7XG5AaW1wb3J0IFwidmFyaWFibGVzL2Zvcm1zL3ZhbGlkYXRpb25cIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXMvaWNvbnNcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXMvbWVkaWEtcXVlcmllc1wiO1xuQGltcG9ydCBcInZhcmlhYmxlcy9wYXRoc1wiO1xuQGltcG9ydCBcInZhcmlhYmxlcy90cmFuc2l0aW9uc1wiO1xuQGltcG9ydCBcInZhcmlhYmxlcy90eXBvZ3JhcGh5XCI7XG5AaW1wb3J0IFwidmFyaWFibGVzL3NwYWNlcnNcIjtcblxuLyogU2V0dGluZ3MgKi9cbkBpbXBvcnQgXCJzZXR0aW5ncy9ncmlkXCI7XG5cbi8qIE1peGlucyAqL1xuQGltcG9ydCBcIm1peGlucy9idXR0b25zXCI7XG5AaW1wb3J0IFwibWl4aW5zL2Zvcm1zXCI7XG5AaW1wb3J0IFwibWl4aW5zL3RleHQtaGVscGVyc1wiO1xuQGltcG9ydCBcIm1peGlucy90eXBvZ3JhcGh5XCI7XG5AaW1wb3J0IFwibWl4aW5zL3V0aWxpdGllc1wiO1xuQGltcG9ydCBcIm1peGlucy92aXNpYmlsaXR5XCI7XG5cbi8qIEhlbHBlciBDbGFzc2VzICovXG5AaW1wb3J0IFwiaGVscGVyLWNsYXNzZXMvdmlzaWJpbGl0eVwiO1xuQGltcG9ydCBcImhlbHBlci1jbGFzc2VzL2NvbG9yc1wiO1xuIiwiOnJvb3Qge1xuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBQcmltYXJ5IFBhbGV0dGVcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNvbG9yLXByaW1hcnk6ICM1MjczZjQ7XG5cdC0tY29sb3Itc2Vjb25kYXJ5OiBkYXJrZW4odmFyKC0tY29sb3ItcHJpbWFyeSksIDAuMDgpO1xuXHQtLWNvbG9yLWJjLWdyZWVuOiAjNjVjNjhjO1xuXHQtLWNvbG9yLWJjLWxpZ2h0LWdyZXk6ICNlMGUzZTk7XG5cdC0tY29sb3ItYmMtY29uY3JldGU6ICNjZGNkY2Q7XG5cdC0tY29sb3ItYmMtZ3JleTogIzhiOGI4Yjtcblx0LS1jb2xvci1iYy1ncmV5LW1lZGl1bTogIzVlNWU1ZTtcblx0LS1jb2xvci1iYy1ibGFjazogIzM0MzEzZjtcblx0LS1jb2xvci1iYy1kb2dlci1ibHVlOiAjNGI3MWZjO1xuXHQtLWNvbG9yLWJjLWJsdWUtbGlnaHQ6ICMxNjhmYzA7XG5cdC0tY29sb3ItYmMtYmx1ZS10dXJxdW9pc2U6ICM1M2JhZDE7XG5cdC0tY29sb3ItYmMtcmVkOiAjZDI1NzRhO1xuXHQtLWNvbG9yLWJjLXN1Y2Nlc3M6ICM4MjlkNWY7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogV2hpdGVzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jb2xvci13aGl0ZTogI2ZmZjtcblx0LS1jb2xvci1vZmYtd2hpdGU6ICNmNWY1ZjU7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogR3JleXNcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNvbG9yLWdyZXktbGlnaHQ6IGxpZ2h0ZW4odmFyKC0tY29sb3ItZ3JleSksIDAuMTUpO1xuXHQtLWNvbG9yLWdyZXk6IGdyZXk7XG5cdC0tY29sb3ItZ3JleS1kYXJrOiBkYXJrZW4odmFyKC0tY29sb3ItZ3JleSksIDAuMTUpO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIEJsYWNrc1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY29sb3ItYmxhY2s6ICMwMDA7XG5cdC0tY29sb3ItYmxhY2stYS00MDogcmdiYSgwLCAwLCAwLCAwLjQpO1xuXHQtLWNvbG9yLWJsYWNrLWEtNzA6IHJnYmEoMCwgMCwgMCwgMC43KTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBCYWNrZ3JvdW5kc1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY29sb3ItYmdkOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdC0tY29sb3ItYmdkLWNvbnRlbnQ6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0LS1jb2xvci1iZ2QtbG9naW46ICNmMWYxZjE7XG5cdC0tY29sb3ItYmdkLXNlbGVjdGlvbjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG5cdC0tY29sb3ItYmdkLXBhbmVsLWFjdGl2ZTogIzJjMjkzNTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBMaW5rc1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY29sb3ItbGluazogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG5cdC0tY29sb3ItbGluay1ob3ZlcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBUZXh0XG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jb2xvci10ZXh0OiB2YXIoLS1jb2xvci1ibGFjayk7XG5cdC0tY29sb3ItdGV4dC1zZWxlY3Rpb246IHZhcigtLWNvbG9yLXdoaXRlKTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBCb3JkZXJzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jb2xvci1ib3JkZXI6IHZhcigtLWNvbG9yLWdyZXkpO1xuXHQtLWNvbG9yLWJvcmRlci1mb3JtLWZpZWxkOiAjZTFlNmVhO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIEFsZXJ0IENvbG9yc1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tYWxlcnQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0LS1hbGVydC1iZy1kZWZhdWx0OiB2YXIoLS1jb2xvci1iYy1ibHVlLWxpZ2h0KTtcblx0LS1hbGVydC1zdWNjZXNzOiAjM2VjODg5O1xuXHQtLWFsZXJ0LWVycm9yOiAjZmYwMDEyO1xuXHQtLWFsZXJ0LWJnLWluZm86IHZhcigtLWNvbG9yLWJjLWNvbmNyZXRlKTtcbn1cbiIsIjpyb290IHtcblx0LyogRWFzaW5nOiBTaW5lICovXG5cdC0tZWFzZS1pbi1zaW5lOiBjdWJpYy1iZXppZXIoMC40NywgMCwgMC43NDUsIDAuNzE1KTtcblx0LS1lYXNlLW91dC1zaW5lOiBjdWJpYy1iZXppZXIoMC4zOSwgMC41NzUsIDAuNTY1LCAxKTtcblx0LS1lYXNlLWluLW91dC1zaW5lOiBjdWJpYy1iZXppZXIoMC40NDUsIDAuMDUsIDAuNTUsIDAuOTUpO1xuXG5cdC8qIEVhc2luZzogUXVhZCAqL1xuXHQtLWVhc2UtaW4tcXVhZDogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDg1LCAwLjY4LCAwLjUzKTtcblx0LS1lYXNlLW91dC1xdWFkOiBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG5cdC0tZWFzZS1pbi1vdXQtcXVhZDogY3ViaWMtYmV6aWVyKDAuNDU1LCAwLjAzLCAwLjUxNSwgMC45NTUpO1xuXG5cdC8qIEVhc2luZzogQ3ViaWMgKi9cblx0LS1lYXNlLWluLWN1YmljOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTtcblx0LS1lYXNlLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG5cdC0tZWFzZS1pbi1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTtcblxuXHQvKiBFYXNpbmc6IFF1YXJ0ICovXG5cdC0tZWFzZS1pbi1xdWFydDogY3ViaWMtYmV6aWVyKDAuODk1LCAwLjAzLCAwLjY4NSwgMC4yMik7XG5cdC0tZWFzZS1vdXQtcXVhcnQ6IGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7XG5cdC0tZWFzZS1pbi1vdXQtcXVhcnQ6IGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7XG5cblx0LyogRWFzaW5nOiBRdWludCAqL1xuXHQtLWVhc2UtaW4tcXVpbnQ6IGN1YmljLWJlemllcigwLjc1NSwgMC4wNSwgMC44NTUsIDAuMDYpO1xuXHQtLWVhc2Utb3V0LXF1aW50OiBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XG5cdC0tZWFzZS1pbi1vdXQtcXVpbnQ6IGN1YmljLWJlemllcigwLjg2LCAwLCAwLjA3LCAxKTtcblxuXHQvKiBFYXNpbmc6IEV4cG8gKi9cblx0LS1lYXNlLWluLWV4cG86IGN1YmljLWJlemllcigwLjk1LCAwLjA1LCAwLjc5NSwgMC4wMzUpO1xuXHQtLWVhc2Utb3V0LWV4cG86IGN1YmljLWJlemllcigwLjE5LCAxLCAwLjIyLCAxKTtcblx0LS1lYXNlLWluLW91dC1leHBvOiBjdWJpYy1iZXppZXIoMSwgMCwgMCwgMSk7XG5cblx0LyogRWFzaW5nOiBDaXJjICovXG5cdC0tZWFzZS1pbi1jaXJjOiBjdWJpYy1iZXppZXIoMC42LCAwLjA0LCAwLjk4LCAwLjMzNSk7XG5cdC0tZWFzZS1vdXQtY2lyYzogY3ViaWMtYmV6aWVyKDAuMDc1LCAwLjgyLCAwLjE2NSwgMSk7XG5cdC0tZWFzZS1pbi1vdXQtY2lyYzogY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44Nik7XG5cblx0LyogRWFzaW5nOiBCYWNrICovXG5cdC0tZWFzZS1pbi1iYWNrOiBjdWJpYy1iZXppZXIoMC42LCAtMC4yOCwgMC43MzUsIDAuMDQ1KTtcblx0LS1lYXNlLW91dC1iYWNrOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7XG5cdC0tZWFzZS1pbi1vdXQtYmFjazogY3ViaWMtYmV6aWVyKDAuNjgsIC0wLjU1LCAwLjI2NSwgMS41NSk7XG59XG4iLCI6cm9vdCB7XG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIEJvcmRlcnNcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWZvcm0tYm9yZGVyLWNvbG9yOiBsaWdodGdyZXk7XG5cdC0tZm9ybS1ib3JkZXItY29sb3ItZm9jdXM6IGRhcmtlbih2YXIoLS1mb3JtLWJvcmRlci1jb2xvciksIDAuMjUpO1xuXHQtLWZvcm0tYm9yZGVyLXNpemU6IDFweDtcblx0LS1mb3JtLWJvcmRlci1zaXplLWZvY3VzOiB2YXIoLS1mb3JtLWJvcmRlci1zaXplKTtcblx0LS1mb3JtLWJvcmRlci1yYWRpdXM6IDA7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogQ29sb3JzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb3JtLWNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcblx0LS1mb3JtLWNvbG9yLXNlY29uZGFyeTogdmFyKC0tY29sb3ItZ3JleS1saWdodCk7XG5cdC0tZm9ybS1jb2xvci1lcnJvcjogbGlnaHRlbihyZWQsIDAuMSk7XG5cdC0tZm9ybS1jb2xvci1yZXF1aXJlZDogdmFyKC0tZm9ybS1jb2xvci1lcnJvcik7XG5cdC0tZm9ybS1jb2xvci1zdWNjZXNzOiBsaWdodGVuKGdyZWVuLCAwLjEpO1xuXHQtLWZvcm0tY29sb3ItcGxhY2Vob2xkZXI6IGdyZXk7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogVUlcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWZvcm0tdWktaWNvbi1jb2xvcjogbGlnaHRncmV5OyAvKiBDb250cm9sIGljb25zICovXG5cdC0tZm9ybS11aS1pY29uLWZvbnQtc2l6ZTogMjBweDsgLyogQ29udHJvbCBpY29ucyAqL1xuXHQtLWZvcm0tdWktY29sb3I6IHZhcigtLWNvbG9yLWdyZXktZGFyayk7IC8qIFNlbGVjdCBpY29uICovXG5cdC0tZm9ybS11aS1iZ2QtY29sb3I6IHZhcigtLWZvcm0tYm9yZGVyLWNvbG9yKTsgIC8qIFNlbGVjdCwgQ2hlY2tib3gsICYgUmFkaW8gKi9cblx0LS1mb3JtLXVpLWJnZC1jb2xvci1mb2N1czogdmFyKC0tZm9ybS1ib3JkZXItY29sb3ItZm9jdXMpOyAgLyogU2VsZWN0ICovXG5cdC0tZm9ybS11aS1pY29uLXNlbGVjdDogJ1xcZTkwMCc7IC8qIFNlbGVjdCAqL1xuXHQtLWZvcm0tdWktaWNvbi1zZWxlY3QtZm9udC1zaXplOiAyNXB4OyAvKiBTZWxlY3QgKi9cblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBGb250c1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tZm9ybS1mb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktYmFzZSk7XG5cdC0tZm9ybS1mb250LXNpemU6IDE2cHg7XG5cdC0tZm9ybS1mb250LXNpemUtc2Vjb25kYXJ5OiAxNHB4OyAvKiBMYWJlbCAqL1xuXHQtLWZvcm0tZm9udC13ZWlnaHQtc2Vjb25kYXJ5OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTsgLyogTGFiZWwgKi9cblx0LS1mb3JtLWZvbnQtc2l6ZS10ZXJ0aWFyeTogMTNweDsgLyogSGVscGVyIFRleHQgJiBEZXNjcmlwdGlvbnMgKi9cblx0LS1mb3JtLWZvbnQtd2VpZ2h0LXRlcnRpYXJ5OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7IC8qIEhlbHBlciBUZXh0ICYgRGVzY3JpcHRpb25zICovXG5cdC0tZm9ybS1sZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuXHQtLWZvcm0tdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdC0tZm9ybS1jb250cm9sLWhlaWdodDogNDVweDtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBTcGFjaW5nXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb3JtLW1hcmdpbjogMjhweDtcblx0LS1mb3JtLW1hcmdpbi1zbWFsbDogdmFyKC0tc3BhY2VyLXhzKTtcblx0LS1mb3JtLXBhZGRpbmctaG9yaXpvbnRhbDogMjBweDtcblx0LS1mb3JtLXBhZGRpbmctdmVydGljYWw6IDIwcHg7XG59XG4iLCI6cm9vdCB7XG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIExhYmVsXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb3JtLWxhYmVsLWNvbG9yOiB2YXIoLS1mb3JtLWNvbG9yKTtcblx0LS1mb3JtLWxhYmVsLWZvbnQtc3R5bGU6IG5vcm1hbDtcblx0LS1mb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiB2YXIoLS1mb3JtLWZvbnQtd2VpZ2h0LXNlY29uZGFyeSk7XG5cdC0tZm9ybS1sYWJlbC1mb250LXNpemU6IHZhcigtLWZvcm0tZm9udC1zaXplLXNlY29uZGFyeSk7XG5cdC0tZm9ybS1sYWJlbC1mb250LWxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1ldmVuKTtcblx0LS1mb3JtLWxhYmVsLWZvbnQtZmFtaWx5OiB2YXIoLS1mb3JtLWZvbnQtZmFtaWx5KTtcblx0LS1mb3JtLWxhYmVsLWxldHRlci1zcGFjaW5nOiB2YXIoLS1mb3JtLWxldHRlci1zcGFjaW5nKTtcblx0LS1mb3JtLWxhYmVsLW1hcmdpbi1ib3R0b206IHZhcigtLWZvcm0tbWFyZ2luLXNtYWxsKTtcblx0LS1mb3JtLWxhYmVsLXRleHQtdHJhbnNmb3JtOiB2YXIoLS1mb3JtLXRleHQtdHJhbnNmb3JtKTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBDb250cm9sIEhlbHBlciBUZXh0XG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb3JtLWNvbnRyb2wtaGVscGVyLWNvbG9yOiB2YXIoLS1mb3JtLWNvbG9yLXNlY29uZGFyeSk7XG5cdC0tZm9ybS1jb250cm9sLWhlbHBlci1mb250LXN0eWxlOiBub3JtYWw7XG5cdC0tZm9ybS1jb250cm9sLWhlbHBlci1mb250LXdlaWdodDogdmFyKC0tZm9ybS1mb250LXdlaWdodC10ZXJ0aWFyeSk7XG5cdC0tZm9ybS1jb250cm9sLWhlbHBlci1mb250LXNpemU6IHZhcigtLWZvcm0tZm9udC1zaXplLXRlcnRpYXJ5KTtcblx0LS1mb3JtLWNvbnRyb2wtaGVscGVyLWZvbnQtbGluZS1oZWlnaHQ6IDEuMTU7XG5cdC0tZm9ybS1jb250cm9sLWhlbHBlci1mb250LWZhbWlseTogdmFyKC0tZm9ybS1mb250LWZhbWlseSk7XG5cdC0tZm9ybS1jb250cm9sLWhlbHBlci1sZXR0ZXItc3BhY2luZzogdmFyKC0tZm9ybS1sZXR0ZXItc3BhY2luZyk7XG5cdC0tZm9ybS1jb250cm9sLWhlbHBlci1tYXJnaW4tdG9wOiA4cHg7XG5cdC0tZm9ybS1jb250cm9sLWhlbHBlci1wYWRkaW5nOiAwIDhweDtcblx0LS1mb3JtLWNvbnRyb2wtaGVscGVyLXRleHQtdHJhbnNmb3JtOiB2YXIoLS1mb3JtLXRleHQtdHJhbnNmb3JtKTtcbn1cbiIsIjpyb290IHtcblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogTGVnZW5kXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb3JtLWxlZ2VuZC1jb2xvcjogdmFyKC0tZm9ybS1jb2xvcik7XG5cdC0tZm9ybS1sZWdlbmQtZm9udC1zdHlsZTogbm9ybWFsO1xuXHQtLWZvcm0tbGVnZW5kLWZvbnQtd2VpZ2h0OiB2YXIoLS1mb3JtLWZvbnQtd2VpZ2h0LXNlY29uZGFyeSk7XG5cdC0tZm9ybS1sZWdlbmQtZm9udC1zaXplOiB2YXIoLS1mb3JtLWZvbnQtc2l6ZS1zZWNvbmRhcnkpO1xuXHQtLWZvcm0tbGVnZW5kLWZvbnQtbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWV2ZW4pO1xuXHQtLWZvcm0tbGVnZW5kLWZvbnQtZmFtaWx5OiB2YXIoLS1mb3JtLWZvbnQtZmFtaWx5KTtcblx0LS1mb3JtLWxlZ2VuZC1sZXR0ZXItc3BhY2luZzogdmFyKC0tZm9ybS1sZXR0ZXItc3BhY2luZyk7XG5cdC0tZm9ybS1sZWdlbmQtbWFyZ2luLWJvdHRvbTogdmFyKC0tZm9ybS1tYXJnaW4tc21hbGwpO1xuXHQtLWZvcm0tbGVnZW5kLXRleHQtdHJhbnNmb3JtOiB2YXIoLS1mb3JtLXRleHQtdHJhbnNmb3JtKTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBMZWdlbmQsIHN0eWxlZFxuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tZm9ybS1sZWdlbmQtc3R5bGVkLWNvbG9yOiB2YXIoLS1mb3JtLWNvbG9yKTtcblx0LS1mb3JtLWxlZ2VuZC1zdHlsZWQtZm9udC1zdHlsZTogbm9ybWFsO1xuXHQtLWZvcm0tbGVnZW5kLXN0eWxlZC1mb250LXdlaWdodDogdmFyKC0tZm9ybS1mb250LXdlaWdodC1zZWNvbmRhcnkpO1xuXHQtLWZvcm0tbGVnZW5kLXN0eWxlZC1mb250LXNpemU6IHZhcigtLWZvcm0tZm9udC1zaXplLXNlY29uZGFyeSk7XG5cdC0tZm9ybS1sZWdlbmQtc3R5bGVkLWZvbnQtbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWV2ZW4pO1xuXHQtLWZvcm0tbGVnZW5kLXN0eWxlZC1mb250LWZhbWlseTogdmFyKC0tZm9ybS1mb250LWZhbWlseSk7XG5cdC0tZm9ybS1sZWdlbmQtc3R5bGVkLWxldHRlci1zcGFjaW5nOiB2YXIoLS1mb3JtLWxldHRlci1zcGFjaW5nKTtcblx0LS1mb3JtLWxlZ2VuZC1zdHlsZWQtbWFyZ2luLWJvdHRvbTogdmFyKC0tZm9ybS1tYXJnaW4tc21hbGwpO1xuXHQtLWZvcm0tbGVnZW5kLXN0eWxlZC1wYWRkaW5nOiAwIDhweDtcblx0LS1mb3JtLWxlZ2VuZC1zdHlsZWQtdGV4dC1hbGlnbjogbGVmdDtcblx0LS1mb3JtLWxlZ2VuZC1zdHlsZWQtdGV4dC10cmFuc2Zvcm06IHZhcigtLWZvcm0tdGV4dC10cmFuc2Zvcm0pO1xufVxuIiwiOnJvb3Qge1xuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBDb250cm9sc1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tZm9ybS1jb250cm9sLWJnZC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHQtLWZvcm0tY29udHJvbC1ib3JkZXItY29sb3I6IHZhcigtLWZvcm0tYm9yZGVyLWNvbG9yKTtcblx0LS1mb3JtLWNvbnRyb2wtYm9yZGVyLWNvbG9yLWZvY3VzOiB2YXIoLS1mb3JtLWJvcmRlci1jb2xvci1mb2N1cyk7XG5cdC0tZm9ybS1jb250cm9sLWJvcmRlci1yYWRpdXM6IHZhcigtLWZvcm0tYm9yZGVyLXJhZGl1cyk7XG5cdC0tZm9ybS1jb250cm9sLWJvcmRlci1zaXplOiB2YXIoLS1mb3JtLWJvcmRlci1zaXplKTtcblx0LS1mb3JtLWNvbnRyb2wtYm9yZGVyLXNpemUtZm9jdXM6IHZhcigtLWZvcm0tYm9yZGVyLXNpemUtZm9jdXMpO1xuXHQtLWZvcm0tY29udHJvbC1jb2xvcjogdmFyKC0tZm9ybS1jb2xvcik7XG5cdC0tZm9ybS1jb250cm9sLWZvbnQtc3R5bGU6IG5vcm1hbDtcblx0LS1mb3JtLWNvbnRyb2wtZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpO1xuXHQtLWZvcm0tY29udHJvbC1mb250LXNpemU6IHZhcigtLWZvcm0tZm9udC1zaXplKTtcblx0LS1mb3JtLWNvbnRyb2wtZm9udC1saW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG5cdC0tZm9ybS1jb250cm9sLWZvbnQtZmFtaWx5OiB2YXIoLS1mb3JtLWZvbnQtZmFtaWx5KTtcblx0LS1mb3JtLWNvbnRyb2wtbGV0dGVyLXNwYWNpbmc6IHZhcigtLWZvcm0tbGV0dGVyLXNwYWNpbmcpO1xuXHQtLWZvcm0tY29udHJvbC1tYXJnaW4tYm90dG9tOiB2YXIoLS1mb3JtLW1hcmdpbik7XG5cdC0tZm9ybS1jb250cm9sLXBhZGRpbmc6IDAgdmFyKC0tZm9ybS1wYWRkaW5nLWhvcml6b250YWwpO1xuXHQtLWZvcm0tY29udHJvbC10ZXh0LXRyYW5zZm9ybTogdmFyKC0tZm9ybS10ZXh0LXRyYW5zZm9ybSk7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogQ29udHJvbCBJY29uXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb3JtLWNvbnRyb2wtaWNvbi1jb2xvcjogdmFyKC0tZm9ybS11aS1pY29uLWNvbG9yKTtcblx0LS1mb3JtLWNvbnRyb2wtaWNvbi1mb250LXNpemU6IHZhcigtLWZvcm0tdWktaWNvbi1mb250LXNpemUpO1xuXHQtLWZvcm0tY29udHJvbC1pY29uLWxpbmUtaGVpZ2h0OiB2YXIoLS1mb3JtLWNvbnRyb2wtaGVpZ2h0KTtcblx0LS1mb3JtLWNvbnRyb2wtaWNvbi13aWR0aDogdmFyKC0tZm9ybS1jb250cm9sLWhlaWdodCk7XG5cdC0tZm9ybS1jb250cm9sLWljb24tcGFkZGluZy1yaWdodDogdmFyKC0tZm9ybS1jb250cm9sLWljb24td2lkdGgpO1xuXHQtLWZvcm0tY29udHJvbC1pY29uLXBvc2l0aW9uLXJpZ2h0OiAwO1xuXHQtLWZvcm0tY29udHJvbC1pY29uLXBvc2l0aW9uLXRvcDogMDtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBDb250cm9sOiBUZXh0YXJlYVxuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tZm9ybS1jb250cm9sLXRleHRhcmVhLWhlaWdodDogMjI1cHg7XG5cdC0tZm9ybS1jb250cm9sLXRleHRhcmVhLXBhZGRpbmc6IDE0cHggdmFyKC0tZm9ybS1wYWRkaW5nLWhvcml6b250YWwpO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIENvbnRyb2w6IFNlbGVjdFxuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tZm9ybS1jb250cm9sLXNlbGVjdC1tdWx0aXBsZS1oZWlnaHQ6IDEwMHB4O1xuXHQtLWZvcm0tY29udHJvbC1zZWxlY3QtbXVsdGlwbGUtcGFkZGluZzogdmFyKC0tZm9ybS1wYWRkaW5nLXZlcnRpY2FsKSB2YXIoLS1mb3JtLXBhZGRpbmctaG9yaXpvbnRhbCk7XG5cdC0tZm9ybS1jb250cm9sLXNlbGVjdC1wYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktd2lkdGgpICsgdmFyKC0tZm9ybS1wYWRkaW5nLWhvcml6b250YWwpKTtcblx0LS1mb3JtLWNvbnRyb2wtc2VsZWN0LXVpLWJnZC1jb2xvcjogdmFyKC0tZm9ybS11aS1iZ2QtY29sb3IpO1xuXHQtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktYmdkLWNvbG9yLWhvdmVyOiB2YXIoLS1mb3JtLXVpLWJnZC1jb2xvci1mb2N1cyk7XG5cdC0tZm9ybS1jb250cm9sLXNlbGVjdC11aS1ib3JkZXItcmFkaXVzLXRvcC1yaWdodDogdmFyKC0tZm9ybS1jb250cm9sLWJvcmRlci1yYWRpdXMpO1xuXHQtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktYm9yZGVyLXJhZGl1cy1ib3R0b20tcmlnaHQ6IHZhcigtLWZvcm0tY29udHJvbC1ib3JkZXItcmFkaXVzKTtcblx0LS1mb3JtLWNvbnRyb2wtc2VsZWN0LXVpLWNvbG9yOiB2YXIoLS1mb3JtLXVpLWNvbG9yKTtcblx0LS1mb3JtLWNvbnRyb2wtc2VsZWN0LXVpLWZvbnQtc2l6ZTogdmFyKC0tZm9ybS11aS1pY29uLXNlbGVjdC1mb250LXNpemUpO1xuXHQtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktaGVpZ2h0OiBjYWxjKHZhcigtLWZvcm0tY29udHJvbC1oZWlnaHQpIC0gMnB4KTtcblx0LS1mb3JtLWNvbnRyb2wtc2VsZWN0LXVpLWljb246IHZhcigtLWZvcm0tdWktaWNvbi1zZWxlY3QpO1xuXHQtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktbGluZS1oZWlnaHQ6IHZhcigtLWZvcm0tY29udHJvbC1oZWlnaHQpO1xuXHQtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktcG9zaXRpb24tcmlnaHQ6IDFweDtcblx0LS1mb3JtLWNvbnRyb2wtc2VsZWN0LXVpLXBvc2l0aW9uLXRvcDogMXB4O1xuXHQtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktd2lkdGg6IHZhcigtLWZvcm0tY29udHJvbC1oZWlnaHQpO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIENvbnRyb2w6IFJhZGlvICYgQ2hlY2tib3hcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWZvcm0tY29udHJvbC1ncm91cC1yYWRpby1jaGVja2JveC1wYWRkaW5nLXRvcDogOHB4O1xuXHQtLWZvcm0tY29udHJvbC1ncm91cC1yYWRpby1jaGVja2JveC1wYWRkaW5nLWJvdHRvbTogNHB4O1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC1sYWJlbC1jb2xvcjogdmFyKC0tZm9ybS1jb2xvcik7XG5cdC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWxhYmVsLWNvbG9yLWNoZWNrZWQ6IHZhcigtLWZvcm0tY29udHJvbC1jb2xvcik7XG5cdC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWxhYmVsLWZvbnQtc3R5bGU6IG5vcm1hbDtcblx0LS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtbGFiZWwtZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpO1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC1sYWJlbC1mb250LXNpemU6IHZhcigtLWZvcm0tZm9udC1zaXplLXNlY29uZGFyeSk7XG5cdC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWxhYmVsLWZvbnQtbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWV2ZW4pO1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC1sYWJlbC1mb250LWZhbWlseTogdmFyKC0tZm9ybS1mb250LWZhbWlseSk7XG5cdC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWxhYmVsLWxldHRlci1zcGFjaW5nOiB2YXIoLS1mb3JtLWxldHRlci1zcGFjaW5nKTtcblx0LS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtbGFiZWwtbWF4LXdpZHRoOiA2MDBweDtcblx0LS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtbGFiZWwtdGV4dC10cmFuc2Zvcm06IHZhcigtLWZvcm0tdGV4dC10cmFuc2Zvcm0pO1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC1wdXNoLWxhYmVsLXJpZ2h0OiAxMHB4O1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC1tYXJnaW4tdG9wOiB2YXIoLS1mb3JtLW1hcmdpbi1zbWFsbCk7XG5cdC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWhpZGUtYnJvd3Nlci11aS1mb250LXNpemU6IDEycHg7XG5cdC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWhpZGUtYnJvd3Nlci11aS1wb3NpdGlvbi1sZWZ0OiA2cHg7XG5cdC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWhpZGUtYnJvd3Nlci11aS1wb3NpdGlvbi10b3A6IDJweDtcblx0LS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWNvbnRyb2wtYm9yZGVyLWNvbG9yKTtcblx0LS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktYm9yZGVyLWNvbG9yLWZvY3VzOiB2YXIoLS1mb3JtLWJvcmRlci1jb2xvci1mb2N1cyk7XG5cdC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LXVpLWJvcmRlci1zaXplOiB2YXIoLS1mb3JtLWNvbnRyb2wtYm9yZGVyLXNpemUpO1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC11aS1ib3JkZXItc2l6ZS1mb2N1czogdmFyKC0tZm9ybS1jb250cm9sLWJvcmRlci1zaXplLWZvY3VzKTtcblx0LS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktYmdkLWNvbG9yOiB2YXIoLS1mb3JtLWNvbnRyb2wtYmdkLWNvbG9yKTtcblx0LS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktY29sb3I6IHZhcigtLWZvcm0tdWktY29sb3IpO1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC11aS1oZWlnaHQ6IGNhbGModmFyKC0tZm9ybS1jb250cm9sLWhlaWdodCkgLyAyKTtcblx0LS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktcG9zaXRpb24tbGVmdDogMDtcblx0LS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktcG9zaXRpb24tdG9wOiAtMnB4O1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC11aS1wdXNoLWxhYmVsLXJpZ2h0OiAzNHB4O1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC11aS13aWR0aDogY2FsYyh2YXIoLS1mb3JtLWNvbnRyb2wtaGVpZ2h0KSAvIDIpO1xuXHQtLWZvcm0tY29udHJvbC1jaGVja2JveC11aS1ib3JkZXItc2l6ZTogMnB4O1xuXHQtLWZvcm0tY29udHJvbC1jaGVja2JveC11aS1ib3JkZXItcmFkaXVzOiB2YXIoLS1mb3JtLWNvbnRyb2wtYm9yZGVyLXJhZGl1cyk7XG5cdC0tZm9ybS1jb250cm9sLWNoZWNrYm94LXVpLWhlaWdodDogNXB4O1xuXHQtLWZvcm0tY29udHJvbC1jaGVja2JveC11aS1wb3NpdGlvbi1sZWZ0OiA3cHg7XG5cdC0tZm9ybS1jb250cm9sLWNoZWNrYm94LXVpLXBvc2l0aW9uLXRvcDogNXB4O1xuXHQtLWZvcm0tY29udHJvbC1jaGVja2JveC11aS13aWR0aDogOXB4O1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby11aS1wb3NpdGlvbi1sZWZ0OiA4cHg7XG5cdC0tZm9ybS1jb250cm9sLXJhZGlvLXVpLXBvc2l0aW9uLXRvcDogNnB4O1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby11aS13aWR0aDogOHB4O1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby11aS1oZWlnaHQ6IDhweDtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBDb250cm9sOiBGaWxlXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb3JtLWNvbnRyb2wtZmlsZS1mb250LXNpemU6IHZhcigtLWZvcm0tZm9udC1zaXplKTtcblx0LS1mb3JtLWNvbnRyb2wtZmlsZS1wYWRkaW5nOiB2YXIoLS1mb3JtLXBhZGRpbmctdmVydGljYWwpIHZhcigtLWZvcm0tcGFkZGluZy1ob3Jpem9udGFsKTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBDb250cm9sOiBTdWJtaXQgJiBCdXR0b25zXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb3JtLWNvbnRyb2wtYnV0dG9uLW1hcmdpbi10b3A6IHZhcigtLWZvcm0tbWFyZ2luKTtcbn1cbiIsIjpyb290IHtcblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogUGxhY2Vob2xkZXJcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWZvcm0tcGxhY2Vob2xkZXItY29sb3I6IHZhcigtLWZvcm0tY29sb3ItcGxhY2Vob2xkZXIpO1xuXHQtLWZvcm0tcGxhY2Vob2xkZXItY29sb3ItZm9jdXM6IGxpZ2h0ZW4odmFyKC0tZm9ybS1jb2xvci1wbGFjZWhvbGRlciksIDAuMjUpO1xuXHQtLWZvcm0tcGxhY2Vob2xkZXItZm9udC1zdHlsZTogbm9ybWFsO1xuXHQtLWZvcm0tcGxhY2Vob2xkZXItZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpO1xuXHQtLWZvcm0tcGxhY2Vob2xkZXItZm9udC1zaXplOiB2YXIoLS1mb3JtLWZvbnQtc2l6ZSk7XG5cdC0tZm9ybS1wbGFjZWhvbGRlci1mb250LWxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuXHQtLWZvcm0tcGxhY2Vob2xkZXItZm9udC1mYW1pbHk6IHZhcigtLWZvcm0tZm9udC1mYW1pbHkpO1xuXHQtLWZvcm0tcGxhY2Vob2xkZXItbGV0dGVyLXNwYWNpbmc6IHZhcigtLWZvcm0tbGV0dGVyLXNwYWNpbmcpO1xuXHQtLWZvcm0tcGxhY2Vob2xkZXItdGV4dC10cmFuc2Zvcm06IHZhcigtLWZvcm0tdGV4dC10cmFuc2Zvcm0pO1xufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEZvbnQgSWNvbnMgKHZpYSBJY29Nb29uKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cblxuOnJvb3Qge1xuLS1pY29tb29uLWZvbnQtZmFtaWx5OiBcImJpZ2NvbW1lcmNlLWljb25zXCIgIWRlZmF1bHQ7XG5cblxuLS1pY29uLWJjLWJpZ2NvbW1lcmNlX2RpYWdub3N0aWNzOiBcIlxcZTkxMlwiO1xuLS1pY29uLWJjLWNoYW5uZWxfc2VsZWN0OiBcIlxcZTkxMVwiO1xuLS1pY29uLWJjLWNoYW5uZWw6IFwiXFxlOTExXCI7XG4tLWljb24tYmMtY3JlZGVudGlhbHM6IFwiXFxlOTEwXCI7XG4tLWljb24tYmMtc3luYzogXCJcXGU5MGZcIjtcbi0taWNvbi1iYy1hY2NvdW50czogXCJcXGU5MDZcIjtcbi0taWNvbi1iYy1hbmFseXRpY3M6IFwiXFxlOTA3XCI7XG4tLWljb24tYmMtY2FydDogXCJcXGU5MDhcIjtcbi0taWNvbi1iYy1jdXJyZW5jeTogXCJcXGU5MDlcIjtcbi0taWNvbi1iYy1naWZ0X2NlcnRpZmljYXRlczogXCJcXGU5MGFcIjtcbi0taWNvbi1iYy1pbXBvcnQ6IFwiXFxlOTBiXCI7XG4tLWljb24tYmMtb3JkZXJfY29uZmlybWF0aW9uOiBcIlxcZTkwY1wiO1xuLS1pY29uLWJjLXByb2R1Y3RfcmV2aWV3czogXCJcXGU5MGRcIjtcbi0taWNvbi1iYy1zaGlwcGluZ19yZXR1cm5zOiBcIlxcZTkwZVwiO1xuLS1pY29uLWJjLWItbG9nbzogXCJcXGU5MDFcIjtcbi0tZGFzaGljb25zLWJpZ2NvbW1lcmNlOiBcIlxcZTkwMVwiO1xuLS1pY29uLWJjLWFycm93LXNvbGlkOiBcIlxcZTkwMlwiO1xuLS1pY29uLWJjLXNlbGVjdGVkOiBcIlxcZTkwM1wiO1xuLS1pY29uLWJjLWFycm93LXRvZ2dsZTogXCJcXGU5MDVcIjtcbi0taWNvbi1iYy1hcnJvdy1sZWZ0OiBcIlxcZTA5NFwiO1xuLS1pY29uLWJjLWFycm93LXJpZ2h0OiBcIlxcZTA5NVwiO1xuLS1pY29uLWJjLWFycm93LXVwOiBcIlxcZTA5NlwiO1xuLS1pY29uLWJjLWFycm93LWRvd246IFwiXFxlMDk3XCI7XG4tLWljb24tYmMtcGx1czogXCJcXGUxMTRcIjtcbi0taWNvbi1iYy1taW51czogXCJcXGUxMTVcIjtcbi0taWNvbi1iYy1jaGVjazogXCJcXGUxMTZcIjtcbi0taWNvbi1iYy1jcm9zczogXCJcXGUxMTdcIjtcbi0taWNvbi1iYy1zZWFyY2g6IFwiXFxlMDM2XCI7XG4tLWljb24tYmMtY2hldnJvbi1kb3duOiBcIlxcZTkwMFwiO1xuLS1pY29uLWJjLWNoZXZyb24tbGVmdDogXCJcXGU5MWFcIjtcbi0taWNvbi1iYy1jaGV2cm9uLXJpZ2h0OiBcIlxcZTkxOVwiO1xuLS1pY29uLWJjLWNoZXZyb24tdXA6IFwiXFxlOTA0XCI7XG5cblxufSIsIjpyb290IHtcblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogRm9udCBTdGFja3Ncblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWZvbnQtZmFtaWx5LWJpZ2NvbW1lcmNlLWljb25zOiAnYmlnY29tbWVyY2UtaWNvbnMnO1xuXHQtLWZvbnQtZmFtaWx5LXByb3hpbWEtbm92YTogXCJwcm94aW1hLW5vdmFcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXHQtLWZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcblx0LS1mb250LWZhbWlseS1iYXNlOiB2YXIoLS1mb250LWZhbWlseS1wcm94aW1hLW5vdmEpO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIEZvbnQgU2l6aW5nXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb250LXNpemUtYmFzZTogMThweDtcblx0LS1mb250LXNpemUtY29udGVudDogMThweDtcblx0LS1mb250LXNpemUtY29udGVudC1zOiAxNnB4O1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIEZvbnQgV2VpZ2h0c1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tZm9udC13ZWlnaHQtbGlnaHQ6IDMwMDtcblx0LS1mb250LXdlaWdodC1yZWd1bGFyOiA0MDA7XG5cdC0tZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7XG5cdC0tZm9udC13ZWlnaHQtc2VtaWJvbGQ6IDYwMDtcblx0LS1mb250LXdlaWdodC1ib2xkOiA3MDA7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogTGluZSBIZWlnaHRzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1saW5lLWhlaWdodC1iYXNlOiAxLjU7XG5cdC0tbGluZS1oZWlnaHQtbTogMS4zMztcblx0LS1saW5lLWhlaWdodC1zOiAxLjI1O1xuXHQtLWxpbmUtaGVpZ2h0LXNzOiAxLjE1O1xuXHQtLWxpbmUtaGVpZ2h0LWV2ZW46IDE7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogQm9yZGVyIFJhZGl1c1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tYm9yZGVyLXJhZGl1cy1iYXNlOiA0cHg7XG5cdC0tYm9yZGVyLXJhZGl1cy1yb3VuZDogNTAlO1xufVxuIiwiOnJvb3Qge1xuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBTcGFjZXJzIChtYXJnaW4gJiBwYWRkaW5nKVxuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tc3BhY2VyOiAzMHB4O1xuXHQtLXNwYWNlci14czogMTVweDtcblx0LS1zcGFjZXItczogMjBweDtcblx0LS1zcGFjZXItbTogMzVweDtcblx0LS1zcGFjZXItbGc6IDYwcHg7XG5cdC0tc3BhY2VyLXh4bGc6IDE2MHB4O1xufVxuIiwiXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEdsb2JhbCBCdXR0b24gUmVzZXRzXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGRlZmluZS1taXhpbiBidXR0b24tZ2xvYmFsIHtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cdHdpZHRoOiBhdXRvO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1ldmVuKTtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXHRoZWlnaHQ6IGF1dG87XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRib3JkZXI6IDA7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQnV0dG9uIFN1Ym1pdFxuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBkZWZpbmUtbWl4aW4gYnV0dG9uLXN1Ym1pdCB7XG5cdEBtaXhpbiBidXR0b24tZ2xvYmFsO1xuXG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJsYWNrKTtcblx0cGFkZGluZzogMWVtO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cblx0Jjp2aXNpdGVkIHtcblx0XHRjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JleS1kYXJrKTtcblx0fVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEJ1dHRvbiBQaWxsXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGRlZmluZS1taXhpbiBidXR0b24tcGlsbCB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJjLWRvZ2VyLWJsdWUpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1kb2dlci1ibHVlKTtcblx0Ym9yZGVyLXJhZGl1czogMTlweDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym94LXNoYWRvdzogdW5zZXQ7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0Y29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwYWRkaW5nOiAxM3B4IDIwcHggMTJweDtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcblx0bGV0dGVyLXNwYWNpbmc6IDFweDtcblx0bGluZS1oZWlnaHQ6IDEycHg7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJjLWJsdWUtdHVycXVvaXNlKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJjLWJsdWUtdHVycXVvaXNlKTtcblx0fVxuXG5cdCY6ZGlzYWJsZWQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpICFpbXBvcnRhbnQ7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KSAhaW1wb3J0YW50O1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ncmV5KSAhaW1wb3J0YW50O1xuXHRcdGN1cnNvcjogZGVmYXVsdCAhaW1wb3J0YW50O1xuXHR9XG59XG4iLCJcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogRm9ybTogQ29udHJvbCBHcm91cCAvIFdyYXBwZXIsIHJhZGlvICYgY2hlY2tib3ggc3BlY2lmaWNcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZGVmaW5lLW1peGluIGZvcm0tY29udHJvbC1ncm91cC1yYWRpby1jaGVja2JveCB7XG5cdHBhZGRpbmctdG9wOiB2YXIoLS1mb3JtLWNvbnRyb2wtZ3JvdXAtcmFkaW8tY2hlY2tib3gtcGFkZGluZy10b3ApO1xuXHRwYWRkaW5nLWJvdHRvbTogdmFyKC0tZm9ybS1jb250cm9sLWdyb3VwLXJhZGlvLWNoZWNrYm94LXBhZGRpbmctYm90dG9tKTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBGb3JtIEhlbHBlclxuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBkZWZpbmUtbWl4aW4gZm9ybS1jb250cm9sLWhlbHBlciB7XG5cdG1hcmdpbi10b3A6IHZhcigtLWZvcm0tY29udHJvbC1oZWxwZXItbWFyZ2luLXRvcCk7XG5cdHBhZGRpbmc6IHZhcigtLWZvcm0tY29udHJvbC1oZWxwZXItcGFkZGluZyk7XG5cdGNvbG9yOiB2YXIoLS1mb3JtLWNvbnRyb2wtaGVscGVyLWNvbG9yKTtcblx0bGV0dGVyLXNwYWNpbmc6IHZhcigtLWZvcm0tY29udHJvbC1oZWxwZXItbGV0dGVyLXNwYWNpbmcpO1xuXHR0ZXh0LXRyYW5zZm9ybTogdmFyKC0tZm9ybS1jb250cm9sLWhlbHBlci10ZXh0LXRyYW5zZm9ybSk7XG5cdGZvbnQ6IHZhcigtLWZvcm0tY29udHJvbC1oZWxwZXItZm9udC1zdHlsZSkgdmFyKC0tZm9ybS1jb250cm9sLWhlbHBlci1mb250LXdlaWdodCkgdmFyKC0tZm9ybS1jb250cm9sLWhlbHBlci1mb250LXNpemUpIC8gdmFyKC0tZm9ybS1jb250cm9sLWhlbHBlci1mb250LWxpbmUtaGVpZ2h0KSB2YXIoLS1mb3JtLWNvbnRyb2wtaGVscGVyLWZvbnQtZmFtaWx5KTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBSZXF1aXJlZCBGaWVsZHNcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZGVmaW5lLW1peGluIHJlcXVpcmVkIHtcblx0cGFkZGluZy1sZWZ0OiA0cHg7XG5cdGNvbG9yOiB2YXIoLS1mb3JtLXN0YXRlLWNvbG9yLXJlcXVpcmVkKTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBGb3JtIFBsYWNlaG9sZGVyc1xuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBkZWZpbmUtbWl4aW4gZm9ybS1jb250cm9sLXBsYWNlaG9sZGVyIHtcblxuXHQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuXHRcdEBtaXhpbi1jb250ZW50O1xuXHR9XG5cblx0Oi1tb3otcGxhY2Vob2xkZXIge1xuXHRcdEBtaXhpbi1jb250ZW50O1xuXHR9XG5cblx0OjotbW96LXBsYWNlaG9sZGVyIHtcblx0XHRAbWl4aW4tY29udGVudDtcblx0fVxuXG5cdDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuXHRcdEBtaXhpbi1jb250ZW50O1xuXHR9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogRm9ybSBXaWRnZXRzL0NvbnRyb2xzXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGRlZmluZS1taXhpbiBmb3JtLWNvbnRyb2wge1xuXHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblx0cGFkZGluZzogdmFyKC0tZm9ybS1jb250cm9sLXBhZGRpbmcpO1xuXHRib3JkZXI6IHZhcigtLWZvcm0tY29udHJvbC1ib3JkZXItc2l6ZSkgc29saWQgdmFyKC0tZm9ybS1jb250cm9sLWJvcmRlci1jb2xvcik7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiB2YXIoLS1mb3JtLWNvbnRyb2wtaGVpZ2h0KTtcblx0Y29sb3I6IHZhcigtLWZvcm0tY29udHJvbC1jb2xvcik7XG5cdGxldHRlci1zcGFjaW5nOiB2YXIoLS1mb3JtLWNvbnRyb2wtbGV0dGVyLXNwYWNpbmcpO1xuXHR0ZXh0LXRyYW5zZm9ybTogdmFyKC0tZm9ybS1jb250cm9sLXRleHQtdHJhbnNmb3JtKTtcblx0Zm9udDogdmFyKC0tZm9ybS1jb250cm9sLWZvbnQtc3R5bGUpIHZhcigtLWZvcm0tY29udHJvbC1mb250LXdlaWdodCkgdmFyKC0tZm9ybS1jb250cm9sLWZvbnQtc2l6ZSkgLyB2YXIoLS1mb3JtLWNvbnRyb2wtZm9udC1saW5lLWhlaWdodCkgdmFyKC0tZm9ybS1jb250cm9sLWZvbnQtZmFtaWx5KTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBGb3JtIENvbnRyb2w6IFNlbGVjdFxuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBkZWZpbmUtbWl4aW4gZm9ybS1jb250cm9sLXNlbGVjdCB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZm9ybS1jb250cm9sLXNlbGVjdC11aS1iZ2QtY29sb3ItaG92ZXIpO1xuXHRcdH1cblx0fVxuXG5cdCY6YWZ0ZXIge1xuXHRcdEBtaXhpbiBpY29uO1xuXG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cdFx0Y29udGVudDogdmFyKC0tZm9ybS1jb250cm9sLXNlbGVjdC11aS1pY29uKTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0aGVpZ2h0OiB2YXIoLS1mb3JtLWNvbnRyb2wtc2VsZWN0LXVpLWhlaWdodCk7XG5cdFx0d2lkdGg6IHZhcigtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktd2lkdGgpO1xuXHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1mb3JtLWNvbnRyb2wtc2VsZWN0LXVpLWxpbmUtaGVpZ2h0KTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mb3JtLWNvbnRyb2wtc2VsZWN0LXVpLWJnZC1jb2xvcik7XG5cdFx0Y29sb3I6IHZhcigtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktY29sb3IpO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRmb250LXNpemU6IHZhcigtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktZm9udC1zaXplKTtcblx0XHRyaWdodDogdmFyKC0tZm9ybS1jb250cm9sLXNlbGVjdC11aS1wb3NpdGlvbi1yaWdodCk7XG5cdFx0dG9wOiB2YXIoLS1mb3JtLWNvbnRyb2wtc2VsZWN0LXVpLXBvc2l0aW9uLXRvcCk7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktYm9yZGVyLXJhZGl1cy10b3AtcmlnaHQpO1xuXHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1mb3JtLWNvbnRyb2wtc2VsZWN0LXVpLWJvcmRlci1yYWRpdXMtYm90dG9tLXJpZ2h0KTtcblx0fVxuXG5cdHNlbGVjdCB7XG5cdFx0YXBwZWFyYW5jZTogbm9uZTtcblx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1mb3JtLWNvbnRyb2wtc2VsZWN0LXBhZGRpbmctcmlnaHQpO1xuXHR9XG5cblx0c2VsZWN0OjotbXMtZXhwYW5kIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogRm9ybSBDb250cm9sOiBSYWRpbyAmIENoZWNrYm94LCBjdXN0b20gc3R5bGVkXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGRlZmluZS1taXhpbiBmb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtYmFzZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXG5cdGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcblx0aW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdGxhYmVsIHtcblx0XHRjb2xvcjogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWxhYmVsLWNvbG9yKTtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IHZhcigtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC1sYWJlbC1sZXR0ZXItc3BhY2luZyk7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHZhcigtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC1sYWJlbC10ZXh0LXRyYW5zZm9ybSk7XG5cdFx0Zm9udDogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWxhYmVsLWZvbnQtc3R5bGUpIHZhcigtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC1sYWJlbC1mb250LXdlaWdodCkgdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWxhYmVsLWZvbnQtc2l6ZSkgLyB2YXIoLS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtbGFiZWwtZm9udC1saW5lLWhlaWdodCkgdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWxhYmVsLWZvbnQtZmFtaWx5KTtcblx0fVxufVxuXG5AZGVmaW5lLW1peGluIGZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveCB7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHBhZGRpbmctbGVmdDogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LXVpLXB1c2gtbGFiZWwtcmlnaHQpO1xuXG5cdGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcblx0aW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWhpZGUtYnJvd3Nlci11aS1wb3NpdGlvbi1sZWZ0KTtcblx0XHR0b3A6IHZhcigtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC1oaWRlLWJyb3dzZXItdWktcG9zaXRpb24tdG9wKTtcblx0XHRmb250LXNpemU6IHZhcigtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC1oaWRlLWJyb3dzZXItdWktZm9udC1zaXplKTtcblx0fVxuXG5cdGxhYmVsIHtcblx0XHRtYXgtd2lkdGg6IHZhcigtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC1sYWJlbC1tYXgtd2lkdGgpO1xuXG5cdFx0JjpiZWZvcmUsXG5cdFx0JjphZnRlciB7XG5cdFx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdH1cblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC11aS1iZ2QtY29sb3IpO1xuXHRcdFx0d2lkdGg6IHZhcigtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC11aS13aWR0aCk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC11aS1oZWlnaHQpO1xuXHRcdFx0dG9wOiB2YXIoLS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktcG9zaXRpb24tdG9wKTtcblx0XHRcdGxlZnQ6IHZhcigtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC11aS1wb3NpdGlvbi1sZWZ0KTtcblx0XHRcdGJvcmRlcjogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LXVpLWJvcmRlci1zaXplKSBzb2xpZCB2YXIoLS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktYm9yZGVyLWNvbG9yKTtcblx0XHR9XG5cblx0XHQmOmFmdGVyIHtcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0fVxuXHR9XG5cblx0aW5wdXQ6Zm9jdXMgKyBsYWJlbDpiZWZvcmUge1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LXVpLWJvcmRlci1jb2xvci1mb2N1cyk7XG5cdFx0Ym94LXNoYWRvdzogMCAwIDAgdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LXVpLWJvcmRlci1zaXplLWZvY3VzKSB2YXIoLS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktYm9yZGVyLWNvbG9yLWZvY3VzKTtcblx0fVxuXG5cdGlucHV0OmNoZWNrZWQgKyBsYWJlbCB7XG5cdFx0Y29sb3I6IHZhcigtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC1sYWJlbC1jb2xvci1jaGVja2VkKTtcblxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBGb3JtIENvbnRyb2w6IENoZWNrYm94LCBjdXN0b20gc3R5bGVkXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGRlZmluZS1taXhpbiBmb3JtLWNvbnRyb2wtY2hlY2tib3gge1xuXG5cdGxhYmVsIHtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWZvcm0tY29udHJvbC1jaGVja2JveC11aS1ib3JkZXItcmFkaXVzKTtcblx0XHR9XG5cblx0XHQmOmFmdGVyIHtcblx0XHRcdGxlZnQ6IHZhcigtLWZvcm0tY29udHJvbC1jaGVja2JveC11aS1wb3NpdGlvbi1sZWZ0KTtcblx0XHRcdHRvcDogdmFyKC0tZm9ybS1jb250cm9sLWNoZWNrYm94LXVpLXBvc2l0aW9uLXRvcCk7XG5cdFx0XHR3aWR0aDogdmFyKC0tZm9ybS1jb250cm9sLWNoZWNrYm94LXVpLXdpZHRoKTtcblx0XHRcdGhlaWdodDogdmFyKC0tZm9ybS1jb250cm9sLWNoZWNrYm94LXVpLWhlaWdodCk7XG5cdFx0XHRib3JkZXI6IHZhcigtLWZvcm0tY29udHJvbC1jaGVja2JveC11aS1ib3JkZXItc2l6ZSkgc29saWQgdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LXVpLWNvbG9yKTtcblx0XHRcdGJvcmRlci10b3A6IG5vbmU7XG5cdFx0XHRib3JkZXItcmlnaHQ6IG5vbmU7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtNTBkZWcpO1xuXHRcdH1cblx0fVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEZvcm0gQ29udHJvbDogUmFkaW8sIGN1c3RvbSBzdHlsZWRcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZGVmaW5lLW1peGluIGZvcm0tY29udHJvbC1yYWRpbyB7XG5cblx0bGFiZWwge1xuXG5cdFx0JjpiZWZvcmUsXG5cdFx0JjphZnRlciB7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0fVxuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRsZWZ0OiB2YXIoLS1mb3JtLWNvbnRyb2wtcmFkaW8tdWktcG9zaXRpb24tbGVmdCk7XG5cdFx0XHR0b3A6IHZhcigtLWZvcm0tY29udHJvbC1yYWRpby11aS1wb3NpdGlvbi10b3ApO1xuXHRcdFx0d2lkdGg6IHZhcigtLWZvcm0tY29udHJvbC1yYWRpby11aS13aWR0aCk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWZvcm0tY29udHJvbC1yYWRpby11aS1oZWlnaHQpO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LXVpLWNvbG9yKTtcblx0XHR9XG5cdH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBGb3JtIENvbnRyb2w6IEljb25zXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGRlZmluZS1taXhpbiBmb3JtLWNvbnRyb2wtaWNvbiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRpbnB1dCB7XG5cdFx0cGFkZGluZy1yaWdodDogdmFyKC0tZm9ybS1jb250cm9sLWljb24tcGFkZGluZy1yaWdodCk7XG5cdH1cblxuXHQmOmJlZm9yZSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiB2YXIoLS1mb3JtLWNvbnRyb2wtaWNvbi1wb3NpdGlvbi1yaWdodCk7XG5cdFx0dG9wOiB2YXIoLS1mb3JtLWNvbnRyb2wtaWNvbi1wb3NpdGlvbi10b3ApO1xuXHRcdGNvbG9yOiB2YXIoLS1mb3JtLWNvbnRyb2wtaWNvbi1jb2xvcik7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdHdpZHRoOiB2YXIoLS1mb3JtLWNvbnRyb2wtaWNvbi13aWR0aCk7XG5cdFx0bGluZS1oZWlnaHQ6IHZhcigtLWZvcm0tY29udHJvbC1pY29uLWxpbmUtaGVpZ2h0KTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0ei1pbmRleDogMTtcblx0XHRmb250LXNpemU6IHZhcigtLWZvcm0tY29udHJvbC1pY29uLWZvbnQtc2l6ZSk7XG5cdH1cbn1cbiIsIlxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBTcGxpdCBsb25nIHdvcmRzIGludG8gbXVsdGlwbGUgbGluZXNcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZGVmaW5lLW1peGluIHdyYXAtdGV4dCB7XG5cdHdvcmQtd3JhcDogYnJlYWstd29yZDtcblx0aHlwaGVuczogYXV0bztcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBUcnVuY2F0ZSB0ZXh0IHRvIGEgc2luZ2xlIGxpbmUsIHdpdGggYW4gZWxsaXBzaXNcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZGVmaW5lLW1peGluIHRydW5jYXRlLXRleHQge1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgYW50aWFsaWFzZWQgZm9udC1zbW9vdGhpbmdcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZGVmaW5lLW1peGluIHN1YnBpeGVsLXRleHQge1xuXHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBzdWJwaXhlbC1hbnRpYWxpYXNlZDtcblx0LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGF1dG87XG5cdGZvbnQtc21vb3RoaW5nOiBzdWJwaXhlbC1hbnRpYWxpYXNlZDtcbn1cbiIsIlxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBJY29uc1xuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBkZWZpbmUtbWl4aW4gaWNvbiB7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1iaWdjb21tZXJjZS1pY29ucyk7XG5cdHNwZWFrOiBub25lO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtdmFyaWFudDogbm9ybWFsO1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0bGluZS1oZWlnaHQ6IDE7XG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXHR0ZXh0LXJlbmRlcmluZzogYXV0bztcbn1cbiIsIlxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDbGVhcmZpeFxuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBkZWZpbmUtbWl4aW4gY2xlYXJmaXgge1xuXG5cdCY6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdGRpc3BsYXk6IHRhYmxlO1xuXHRcdGNsZWFyOiBib3RoO1xuXHR9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogVG91Y2ggJiBQb2ludGVyIEJ1ZyBGaXhcbiAqXG4gKiArIERpc2FibGUgdGV4dCBzZWxlY3Qgb24gY2xpY2thYmxlIGVsZW1lbnRzIGZvciBwb2ludGVyICYgdG91Y2ggZXZlbnRzXG4gKlxuICogTk9URTpcbiAqIFRoaXMgc2hvdWxkIGJlIHV0aWxpemVkIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgYSBKU1xuICogdG91Y2hzdGFydCBvciBwb2ludGVyZG93biBldmVudCBib3VuZCB0byB0aGVtXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGRlZmluZS1taXhpbiB0b3VjaCB7XG5cdC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG59XG4iLCJcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogSGlkZSBmcm9tIGJvdGggc2NyZWVucmVhZGVycyBhbmQgYnJvd3NlcnNcbiAqXG4gKiBAYXV0aG9yOiBoNWJwLmNvbS91XG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGRlZmluZS1taXhpbiBoaWRkZW4ge1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVucmVhZGVyc1xuICpcbiAqIEBhdXRob3I6IGg1YnAuY29tL3ZcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZGVmaW5lLW1peGluIHZpc3VhbGx5LWhpZGUge1xuXHRib3JkZXI6IDA7XG5cdGNsaXA6IHJlY3QoMCAwIDAgMCk7XG5cdGhlaWdodDogMXB4O1xuXHRtYXJnaW46IC0xcHg7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHBhZGRpbmc6IDA7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IDFweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBTaG93IGVsZW1lbnQgYWZ0ZXIgaGFzIGJlZW4gaGlkZGVuIHdpdGggJXZpc3VhbGx5LWhpZGVcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZGVmaW5lLW1peGluIHZpc3VhbGx5LXNob3cge1xuXHRjbGlwOiBhdXRvO1xuXHR3aWR0aDogYXV0bztcblx0aGVpZ2h0OiBhdXRvO1xuXHRtYXJnaW46IDA7XG5cdHBvc2l0aW9uOiBzdGF0aWM7XG59XG4iLCJcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogSGlkZSBmcm9tIHNjcmVlbnJlYWRlcnMgJiBicm93c2Vyc1xuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi51LWJjLWhpZGRlbiB7XG5cdEBtaXhpbiBoaWRkZW47XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogSGlkZSBmcm9tIGJyb3dzZXJzICYgc2hvdyBmb3Igc2NyZWVucmVhZGVyc1xuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi51LWJjLXZpc3VhbC1oaWRlLFxuLnUtYmMtc2NyZWVuLXJlYWRlci10ZXh0IHtcblx0QG1peGluIHZpc3VhbGx5LWhpZGU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogU2hvdyBmb3IgYnJvd3NlcnMgJiBzY3JlZW5yZWFkZXJzXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnUtYmMtdmlzdWFsLXNob3cge1xuXHRAbWl4aW4gdmlzdWFsbHktaGlkZTtcbn1cbiIsIi51LWJjLXRleHQtbGlnaHQge1xuXHRjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXG5cdCYuYmMtYnRuIHtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRcdH1cblx0fVxufVxuXG4udS1iYy10ZXh0LWRhcmsge1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXG5cdCYuYmMtYnRuIHtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHRcdH1cblx0fVxufVxuIiwiXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEJhc2VcbiAqXG4gKiBUaGlzIGZpbGUgaXMganVzdCBhIGNsZWFyaW5nLWhvdXNlLlxuICogTWFrZSBwYXJ0aWFscyAoc3RhcnQgd2l0aCBhbiB1bmRlcnNjb3JlKSBmb3IgYW55IGFjdHVhbCBjc3MgY29kZS5cbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AaW1wb3J0IFwiaWNvbnNcIjtcblxuLyogRm9ybXMgKi9cblxuLmJjLWZvcm0ge1xuXHRAaW1wb3J0IFwiZm9ybXMvZGVmYXVsdFwiO1xuXHRAaW1wb3J0IFwiZm9ybXMvdmFsaWRhdGlvblwiO1xuXHRAaW1wb3J0IFwiZm9ybXMvY29udHJvbHMvZGVmYXVsdFwiO1xuXHRAaW1wb3J0IFwiZm9ybXMvY29udHJvbHMvZmlsZVwiO1xuXHRAaW1wb3J0IFwiZm9ybXMvY29udHJvbHMvcmFkaW8tY2hlY2tib3hcIjtcblx0QGltcG9ydCBcImZvcm1zL2NvbnRyb2xzL3NlbGVjdFwiO1xuXHRAaW1wb3J0IFwiZm9ybXMvY29udHJvbHMvdGV4dGFyZWFcIjtcbn1cbiIsIi5iYy1mb3JtX19yb3cge1xuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdG1hcmdpbi1ib3R0b206IDU2cHg7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbn1cblxuLmJjLWZvcm1fX2NvbCB7XG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmbGV4OiAxIDEgYXV0bztcblxuXHRcdC5iYy1mb3JtX19jb250cm9sOmxhc3QtY2hpbGQge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHR9XG5cdH1cbn1cblxuJi5iYy1mb3JtLTJjb2wge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IHdyYXA7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4mLmJjLXByb2R1Y3QtZm9ybSB7XG5cdG1hcmdpbjogMDtcblxuXHRidXR0b24uYmMtYnRuLS1mb3JtLXN1Ym1pdCB7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG59XG5cbi5iYy1mb3JtX19maWVsZC1ncm91cCB7XG5cdGJvcmRlcjogdW5zZXQ7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblxuXHQrIC5iYy1mb3JtX19maWVsZC1ncm91cCB7XG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0bWFyZ2luLXRvcDogNjBweDtcblx0XHR9XG5cdH1cbn1cblxuLmJjLWZvcm0tMmNvbF9fY29udHJvbCB7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW4tYm90dG9tOiAzMHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxNHB4O1xuXG5cdFx0Jjpub3QoLmJjLWZvcm0tMmNvbF9fY29udHJvbC0tZnVsbCkge1xuXHRcdFx0d2lkdGg6IDUwJTtcblx0XHR9XG5cblx0XHQmLS1sZWZ0IHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDE1cHg7XG5cdFx0fVxuXG5cdFx0Ji0tcmlnaHQge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAxNXB4O1xuXHRcdH1cblxuXHRcdCYtLWZ1bGwge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1mb3JtX19jb250cm9sIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbi1ib3R0b206IDMwcHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdG1hcmdpbi1ib3R0b206IDE0cHg7XG5cdH1cbn1cblxuLmJjLWZvcm1fX2xhYmVsIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbi1ib3R0b206IDZweDtcblxuXHQmLmJjLWZvcm0tY29udHJvbC1yZXF1aXJlZCB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHQmOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6ICcqJztcblx0XHRcdGZvbnQtc2l6ZTogODAlO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAycHg7XG5cdFx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtcmVkKTtcblx0XHR9XG5cdH1cbn1cblxuLmJjLWZvcm0tdGVybXMge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0bWFyZ2luLWJvdHRvbTogMTRweDtcblx0cGFkZGluZzogMTJweCAxNnB4IDExcHg7XG5cblx0LmJjLWZvcm1fX2NvbnRyb2wtLWNoZWNrYm94IHtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cblx0XHQ+ICoge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHR9XG5cdH1cblxuXHQuYmMtZm9ybV9fbGFiZWwge1xuXHRcdG1hcmdpbi1yaWdodDogYXV0bztcblxuXHRcdCYuYmMtZm9ybS1jb250cm9sLXJlcXVpcmVkOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cdH1cblxuXHQuYmMtZm9ybV9fZXJyb3ItbWVzc2FnZSB7XG5cdFx0bWFyZ2luLXJpZ2h0OiAyMnB4O1xuXHR9XG59XG5cbi5iYy1mb3JtX19hY3Rpb25zIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0bWFyZ2luLXRvcDogMTZweDtcblx0d2lkdGg6IDEwMCU7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdG1hcmdpbi10b3A6IDQ2cHg7XG5cdH1cblxuXHQmLS1sZWZ0IHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdH1cbn1cbiIsIiYuYmMtZm9ybS0taGFzLWVycm9ycyB7XG5cblx0LmJjLWZvcm1fX2NvbnRyb2wtLWVycm9yIHtcblxuXHRcdGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuXHRcdGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcblx0XHRpbnB1dFt0eXBlPVwidGVsXCJdLFxuXHRcdGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG5cdFx0aW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuXHRcdHNlbGVjdCxcblx0XHR0ZXh0YXJlYSB7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hbGVydC1lcnJvcik7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEZvcm06IENvbnRyb2wgLyBXaWRnZXRcbiAqXG4gKiBOb3RlOiBhcHBsaWVzIGJ5IGRlZmF1bHQgdG8gdGV4dGFyZWEsIHR5cGU9XCJmaWxlXCIsICYgc2VsZWN0XG4gKlxuICogRXhhbXBsZTpcbiAqIDxpbnB1dCBuYW1lPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sLWJjXCIgdHlwZT1cInRleHRcIiAvPlxuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5mb3JtLWNvbnRyb2wtYmMge1xuXHRAbWl4aW4gZm9ybS1jb250cm9sO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEZvcm06IENvbnRyb2wgSWNvblxuICpcbiAqIEV4YW1wbGU6XG4gKiA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZC1ncm91cFwiPlxuICogICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wtbGFiZWxcIiBmb3I9XCJ0ZXh0RmllbGRFeGFtcGxlXCI+TGFiZWw8L2xhYmVsPlxuICogICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sLWJjLWljb24gYmMtaWNvbiBpY29uLXBob25lXCI+XG4gKlx0ICAgPGlucHV0IGlkPVwidGV4dEZpZWxkRXhhbXBsZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbmFtZT1cInRleHRGaWVsZEV4YW1wbGVcIiBhcmlhLWRlc2NyaWJlZGJ5PVwidGV4dEZpZWxkRXhhbXBsZUhlbHBlclwiIHR5cGU9XCJ0ZXh0XCIgLz5cbiAqICAgPC9kaXY+XG4gKiAgIDxwIGlkPVwidGV4dEZpZWxkRXhhbXBsZUhlbHBlclwiIGNsYXNzPVwiZm9ybS1jb250cm9sLWhlbHBlclwiPkhlbHBlciB0ZXh0PC9wPlxuICogPC9kaXY+XG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmZvcm0tY29udHJvbC1iYy1pY29uIHtcblx0QG1peGluIGZvcm0tY29udHJvbC1pY29uO1xufVxuXG4uYmMtZm9ybV9fY29udHJvbCB7XG5cblx0aW5wdXRbdHlwZT1cInRleHRcIl0sXG5cdGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcblx0aW5wdXRbdHlwZT1cInVybFwiXSxcblx0aW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuXHRpbnB1dFt0eXBlPVwidGVsXCJdLFxuXHRpbnB1dFt0eXBlPVwibnVtYmVyXCJdIHtcblx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRsaW5lLWhlaWdodDogMS41O1xuXHRcdGhlaWdodDogNDVweDtcblx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdFx0cGFkZGluZy1yaWdodDogMTBweDtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuIiwiaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuXHRAbWl4aW4gZm9ybS1jb250cm9sO1xuXG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1jb250cm9sLWZpbGUtZm9udC1zaXplKTtcblx0aGVpZ2h0OiBhdXRvO1xuXHRwYWRkaW5nOiB2YXIoLS1mb3JtLWNvbnRyb2wtZmlsZS1wYWRkaW5nKTtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWV2ZW4pO1xufVxuIiwiaW5wdXQge1xuXHRAbWl4aW4gZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWJhc2U7XG5cblx0Jlt0eXBlPVwicmFkaW9cIl0sXG5cdCZbdHlwZT1cImNoZWNrYm94XCJdIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LXB1c2gtbGFiZWwtcmlnaHQpO1xuXG5cdFx0Ji5mb3JtLWNvbnRyb2wtY3VzdG9tLWJjLXN0eWxlIHtcblx0XHRcdEBtaXhpbiBmb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3g7XG5cdFx0fVxuXHR9XG5cblx0Jlt0eXBlPVwicmFkaW9cIl0gfiBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5cdCZbdHlwZT1cImNoZWNrYm94XCJdIH4gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtbWFyZ2luLXRvcCk7XG5cdH1cblxuXHQmW3R5cGU9XCJjaGVja2JveFwiXSB7XG5cdFx0LyogQ0FTRTogQ3VzdG9tIFN0eWxlZCAqL1xuXHRcdCYuZm9ybS1jb250cm9sLWN1c3RvbS1iYy1zdHlsZSB7XG5cdFx0XHRAbWl4aW4gZm9ybS1jb250cm9sLWNoZWNrYm94O1xuXHRcdH1cblx0fVxuXG5cdCZbdHlwZT1cInJhZGlvXCJdIHtcblx0XHQvKiBDQVNFOiBDdXN0b20gU3R5bGVkICovXG5cdFx0Ji5mb3JtLWNvbnRyb2wtY3VzdG9tLWJjLXN0eWxlIHtcblx0XHRcdEBtaXhpbiBmb3JtLWNvbnRyb2wtcmFkaW87XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1wcm9kdWN0LWZvcm1fX2NvbnRyb2wtLWNoZWNrYm94IHtcblxuXHQuYmMtcHJvZHVjdC1tb2RpZmllcl9fbGFiZWwge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHR9XG5cblx0aW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuXHRpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuXHRcdGZsZXg6IDAgMSBhdXRvO1xuXHR9XG5cblx0LmJjLXByb2R1Y3QtbW9kaWZpZXJfX2xhYmVsLS1jaGVja2JveCB7XG5cdFx0ZmxleDogMTtcblx0fVxufVxuIiwic2VsZWN0IHtcblx0QG1peGluIGZvcm0tY29udHJvbDtcblxuXHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0LyogQ0FTRTogbXVsdGlwbGUgKi9cblx0JlttdWx0aXBsZV0ge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1jb250cm9sLWZvbnQtc2l6ZSk7XG5cdFx0aGVpZ2h0OiB2YXIoLS1mb3JtLWNvbnRyb2wtc2VsZWN0LW11bHRpcGxlLWhlaWdodCk7XG5cdFx0cGFkZGluZzogdmFyKC0tZm9ybS1jb250cm9sLXNlbGVjdC1tdWx0aXBsZS1wYWRkaW5nKTtcblx0fVxufVxuXG4iLCJ0ZXh0YXJlYSB7XG5cdEBtaXhpbiBmb3JtLWNvbnRyb2w7XG5cblx0cmVzaXplOiBub25lO1xuXHRwYWRkaW5nOiB2YXIoLS1mb3JtLWNvbnRyb2wtdGV4dGFyZWEtcGFkZGluZyk7XG5cdGhlaWdodDogdmFyKC0tZm9ybS1jb250cm9sLXRleHRhcmVhLWhlaWdodCk7XG59XG4iLCJcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogVmVuZG9yXG4gKlxuICogVGhpcyBmaWxlIGlzIGp1c3QgYSBjbGVhcmluZy1ob3VzZS5cbiAqIE1ha2UgcGFydGlhbHMgKHN0YXJ0IHdpdGggYW4gdW5kZXJzY29yZSkgZm9yIGFueSBhY3R1YWwgY3NzIGNvZGUuXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyogVmVuZG9yOiBTd2lwZXIuanMgKi9cbkBpbXBvcnQgXCJzd2lwZXIvYWxsXCI7XG5AaW1wb3J0IFwiZmxhdHBpY2tyL2FsbFwiO1xuXG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIFN3aXBlciA0LjAuNVxuICpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2xpbWl0czR3ZWIvU3dpcGVyXG4gKlxuICogVGhpcyBmaWxlIGlzIGp1c3QgYSBjbGVhcmluZy1ob3VzZS5cbiAqIE1ha2UgcGFydGlhbHMgKHN0YXJ0IHdpdGggYW4gdW5kZXJzY29yZSkgZm9yIGFueSBhY3R1YWwgY3NzIGNvZGUuXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcImRlZmF1bHRcIjtcbiIsIi5zd2lwZXItY29udGFpbmVyIHtcblx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdG1hcmdpbi1yaWdodDogYXV0bztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRsaXN0LXN0eWxlOiBub25lO1xuXHRwYWRkaW5nOiAwO1xuXG5cdC8qIEZpeCBvZiBXZWJraXQgZmxpY2tlcmluZyAqL1xuXHR6LWluZGV4OiAxO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1uby1mbGV4Ym94IC5zd2lwZXItc2xpZGUge1xuXHRmbG9hdDogbGVmdDtcbn1cblxuLnN3aXBlci1jb250YWluZXItdmVydGljYWwgPiAuc3dpcGVyLXdyYXBwZXIge1xuXHQtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuXHQtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcblx0LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHQtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLnN3aXBlci13cmFwcGVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR6LWluZGV4OiAxO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHR0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG5cdC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XG5cdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1hbmRyb2lkIC5zd2lwZXItc2xpZGUsXG4uc3dpcGVyLXdyYXBwZXIge1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1tdWx0aXJvdyA+IC5zd2lwZXItd3JhcHBlciB7XG5cdGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnN3aXBlci1jb250YWluZXItZnJlZS1tb2RlID4gLnN3aXBlci13cmFwcGVyIHtcblx0dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuXHRtYXJnaW46IDAgYXV0bztcbn1cblxuLnN3aXBlci1zbGlkZSB7XG5cdGZsZXgtc2hyaW5rOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbn1cblxuLnN3aXBlci1pbnZpc2libGUtYmxhbmstc2xpZGUge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8qIEF1dG8gSGVpZ2h0ICovXG4uc3dpcGVyLWNvbnRhaW5lci1hdXRvaGVpZ2h0LFxuLnN3aXBlci1jb250YWluZXItYXV0b2hlaWdodCAuc3dpcGVyLXNsaWRlIHtcblx0aGVpZ2h0OiBhdXRvO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1hdXRvaGVpZ2h0IC5zd2lwZXItd3JhcHBlciB7XG5cdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHR0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIGhlaWdodDtcbn1cblxuLyogM0QgRWZmZWN0cyAqL1xuLnN3aXBlci1jb250YWluZXItM2Qge1xuXHRwZXJzcGVjdGl2ZTogMTIwMHB4O1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXdyYXBwZXIsXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wLFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1jdWJlLXNoYWRvdyB7XG5cdHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG59XG5cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQsXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0ei1pbmRleDogMTA7XG59XG5cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbn1cblxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG59XG5cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG59XG5cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG59XG5cbi8qIElFMTAgV2luZG93cyBQaG9uZSA4IEZpeGVzICovXG4uc3dpcGVyLWNvbnRhaW5lci13cDgtaG9yaXpvbnRhbCxcbi5zd2lwZXItY29udGFpbmVyLXdwOC1ob3Jpem9udGFsID4gLnN3aXBlci13cmFwcGVyIHtcblx0LW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG5cdHRvdWNoLWFjdGlvbjogcGFuLXk7XG59XG5cbi5zd2lwZXItY29udGFpbmVyLXdwOC12ZXJ0aWNhbCxcbi5zd2lwZXItY29udGFpbmVyLXdwOC12ZXJ0aWNhbCA+IC5zd2lwZXItd3JhcHBlciB7XG5cdC1tcy10b3VjaC1hY3Rpb246IHBhbi14O1xuXHR0b3VjaC1hY3Rpb246IHBhbi14O1xufVxuXG4uc3dpcGVyLWJ1dHRvbi1wcmV2LFxuLnN3aXBlci1idXR0b24tbmV4dCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiA1MCU7XG5cdHdpZHRoOiAyN3B4O1xuXHRoZWlnaHQ6IDQ0cHg7XG5cdG1hcmdpbi10b3A6IC0yMnB4O1xuXHR6LWluZGV4OiAxMDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRiYWNrZ3JvdW5kLXNpemU6IDI3cHggNDRweDtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG4uc3dpcGVyLWJ1dHRvbi1wcmV2LnN3aXBlci1idXR0b24tZGlzYWJsZWQsXG4uc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24tZGlzYWJsZWQge1xuXHRvcGFjaXR5OiAwLjM1O1xuXHRjdXJzb3I6IGF1dG87XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uc3dpcGVyLWJ1dHRvbi1wcmV2LFxuLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItYnV0dG9uLW5leHQge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTAlMkMyMkwyMiUyQzBsMi4xJTJDMi4xTDQuMiUyQzIybDE5LjklMkMxOS45TDIyJTJDNDRMMCUyQzIyTDAlMkMyMkwwJTJDMjJ6JyUyMGZpbGwlM0QnJTIzMDA3YWZmJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcblx0bGVmdDogMTBweDtcblx0cmlnaHQ6IGF1dG87XG59XG5cbi5zd2lwZXItYnV0dG9uLW5leHQsXG4uc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1idXR0b24tcHJldiB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMjclMjA0NCclM0UlM0NwYXRoJTIwZCUzRCdNMjclMkMyMkwyNyUyQzIyTDUlMkM0NGwtMi4xLTIuMUwyMi44JTJDMjJMMi45JTJDMi4xTDUlMkMwTDI3JTJDMjJMMjclMkMyMnonJTIwZmlsbCUzRCclMjMwMDdhZmYnJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xuXHRyaWdodDogMTBweDtcblx0bGVmdDogYXV0bztcbn1cblxuLnN3aXBlci1idXR0b24tcHJldi5zd2lwZXItYnV0dG9uLXdoaXRlLFxuLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItYnV0dG9uLW5leHQuc3dpcGVyLWJ1dHRvbi13aGl0ZSB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMjclMjA0NCclM0UlM0NwYXRoJTIwZCUzRCdNMCUyQzIyTDIyJTJDMGwyLjElMkMyLjFMNC4yJTJDMjJsMTkuOSUyQzE5LjlMMjIlMkM0NEwwJTJDMjJMMCUyQzIyTDAlMkMyMnonJTIwZmlsbCUzRCclMjNmZmZmZmYnJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xufVxuXG4uc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24td2hpdGUsXG4uc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1idXR0b24tcHJldi5zd2lwZXItYnV0dG9uLXdoaXRlIHtcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIweG1sbnMlM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJyUyMHZpZXdCb3glM0QnMCUyMDAlMjAyNyUyMDQ0JyUzRSUzQ3BhdGglMjBkJTNEJ00yNyUyQzIyTDI3JTJDMjJMNSUyQzQ0bC0yLjEtMi4xTDIyLjglMkMyMkwyLjklMkMyLjFMNSUyQzBMMjclMkMyMkwyNyUyQzIyeiclMjBmaWxsJTNEJyUyM2ZmZmZmZiclMkYlM0UlM0MlMkZzdmclM0VcIik7XG59XG5cbi5zd2lwZXItYnV0dG9uLXByZXYuc3dpcGVyLWJ1dHRvbi1ibGFjayxcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24tYmxhY2sge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTAlMkMyMkwyMiUyQzBsMi4xJTJDMi4xTDQuMiUyQzIybDE5LjklMkMxOS45TDIyJTJDNDRMMCUyQzIyTDAlMkMyMkwwJTJDMjJ6JyUyMGZpbGwlM0QnJTIzMDAwMDAwJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cblxuLnN3aXBlci1idXR0b24tbmV4dC5zd2lwZXItYnV0dG9uLWJsYWNrLFxuLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItYnV0dG9uLXByZXYuc3dpcGVyLWJ1dHRvbi1ibGFjayB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMjclMjA0NCclM0UlM0NwYXRoJTIwZCUzRCdNMjclMkMyMkwyNyUyQzIyTDUlMkM0NGwtMi4xLTIuMUwyMi44JTJDMjJMMi45JTJDMi4xTDUlMkMwTDI3JTJDMjJMMjclMkMyMnonJTIwZmlsbCUzRCclMjMwMDAwMDAnJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xufVxuXG4uc3dpcGVyLXBhZ2luYXRpb24ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dHJhbnNpdGlvbjogMzAwbXMgb3BhY2l0eTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcblx0ei1pbmRleDogMTA7XG59XG5cbi5zd2lwZXItcGFnaW5hdGlvbi5zd2lwZXItcGFnaW5hdGlvbi1oaWRkZW4ge1xuXHRvcGFjaXR5OiAwO1xufVxuXG4vKiBDb21tb24gU3R5bGVzICovXG4uc3dpcGVyLXBhZ2luYXRpb24tZnJhY3Rpb24sXG4uc3dpcGVyLXBhZ2luYXRpb24tY3VzdG9tLFxuLnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbCA+IC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzIHtcblx0Ym90dG9tOiAxMHB4O1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLyogQnVsbGV0cyAqL1xuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGZvbnQtc2l6ZTogMDtcbn1cblxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcblx0dHJhbnNmb3JtOiBzY2FsZSgwLjMzKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlIHtcblx0dHJhbnNmb3JtOiBzY2FsZSgxKTtcbn1cblxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZS1wcmV2IHtcblx0dHJhbnNmb3JtOiBzY2FsZSgwLjY2KTtcbn1cblxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZS1wcmV2LXByZXYge1xuXHR0cmFuc2Zvcm06IHNjYWxlKDAuMzMpO1xufVxuXG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlLW5leHQge1xuXHR0cmFuc2Zvcm06IHNjYWxlKDAuNjYpO1xufVxuXG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlLW5leHQtbmV4dCB7XG5cdHRyYW5zZm9ybTogc2NhbGUoMC4zMyk7XG59XG5cbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuXHR3aWR0aDogOHB4O1xuXHRoZWlnaHQ6IDhweDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRib3JkZXItcmFkaXVzOiAxMDAlO1xuXHRiYWNrZ3JvdW5kOiAjMDAwO1xuXHRvcGFjaXR5OiAwLjI7XG59XG5cbmJ1dHRvbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuXHRib3JkZXI6IG5vbmU7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0Ym94LXNoYWRvdzogbm9uZTtcblx0YXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLnN3aXBlci1wYWdpbmF0aW9uLWNsaWNrYWJsZSAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZSB7XG5cdG9wYWNpdHk6IDE7XG5cdGJhY2tncm91bmQ6ICMwMDdhZmY7XG59XG5cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMge1xuXHRyaWdodDogMTBweDtcblx0dG9wOiA1MCU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG59XG5cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG5cdG1hcmdpbjogNnB4IDA7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci12ZXJ0aWNhbCA+IC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyB7XG5cdHRvcDogNTAlO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdHdpZHRoOiA4cHg7XG59XG5cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHRyYW5zaXRpb246IDIwMG1zIHRyYW5zZm9ybSwgMjAwbXMgdG9wO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG5cdG1hcmdpbjogMCA0cHg7XG59XG5cbi5zd2lwZXItY29udGFpbmVyLWhvcml6b250YWwgPiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMge1xuXHRsZWZ0OiA1MCU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbCA+IC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcblx0dHJhbnNpdGlvbjogMjAwbXMgdHJhbnNmb3JtLCAyMDBtcyBsZWZ0O1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsLnN3aXBlci1jb250YWluZXItcnRsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcblx0dHJhbnNpdGlvbjogMjAwbXMgdHJhbnNmb3JtLCAyMDBtcyByaWdodDtcbn1cblxuLyogUHJvZ3Jlc3MgKi9cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhciB7XG5cdGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1maWxsIHtcblx0YmFja2dyb3VuZDogIzAwN2FmZjtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHRyYW5zZm9ybTogc2NhbGUoMCk7XG5cdHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1maWxsIHtcblx0dHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgdG9wO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsID4gLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogNHB4O1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG59XG5cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIHtcblx0d2lkdGg6IDRweDtcblx0aGVpZ2h0OiAxMDAlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG59XG5cbi5zd2lwZXItcGFnaW5hdGlvbi13aGl0ZSAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZSB7XG5cdGJhY2tncm91bmQ6ICNmZmY7XG59XG5cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi13aGl0ZSB7XG5cdGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG59XG5cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi13aGl0ZSAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItZmlsbCB7XG5cdGJhY2tncm91bmQ6ICNmZmY7XG59XG5cbi5zd2lwZXItcGFnaW5hdGlvbi1ibGFjayAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZSB7XG5cdGJhY2tncm91bmQ6ICMwMDA7XG59XG5cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi1ibGFjayB7XG5cdGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG5cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi1ibGFjayAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItZmlsbCB7XG5cdGJhY2tncm91bmQ6ICMwMDA7XG59XG5cbi8qIFNjcm9sbGJhciAqL1xuLnN3aXBlci1zY3JvbGxiYXIge1xuXHRib3JkZXItcmFkaXVzOiAxMHB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XG5cdGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbCA+IC5zd2lwZXItc2Nyb2xsYmFyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAxJTtcblx0Ym90dG9tOiAzcHg7XG5cdHotaW5kZXg6IDUwO1xuXHRoZWlnaHQ6IDVweDtcblx0d2lkdGg6IDk4JTtcbn1cblxuLnN3aXBlci1jb250YWluZXItdmVydGljYWwgPiAuc3dpcGVyLXNjcm9sbGJhciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDNweDtcblx0dG9wOiAxJTtcblx0ei1pbmRleDogNTA7XG5cdHdpZHRoOiA1cHg7XG5cdGhlaWdodDogOTglO1xufVxuXG4uc3dpcGVyLXNjcm9sbGJhci1kcmFnIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHR3aWR0aDogMTAwJTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG5cdGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cdGxlZnQ6IDA7XG5cdHRvcDogMDtcbn1cblxuLnN3aXBlci1zY3JvbGxiYXItY3Vyc29yLWRyYWcge1xuXHRjdXJzb3I6IG1vdmU7XG59XG5cbi5zd2lwZXItem9vbS1jb250YWluZXIge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uc3dpcGVyLXpvb20tY29udGFpbmVyID4gaW1nLFxuLnN3aXBlci16b29tLWNvbnRhaW5lciA+IHN2Zyxcbi5zd2lwZXItem9vbS1jb250YWluZXIgPiBjYW52YXMge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdG1heC1oZWlnaHQ6IDEwMCU7XG5cdC1vLW9iamVjdC1maXQ6IGNvbnRhaW47XG5cdG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi5zd2lwZXItc2xpZGUtem9vbWVkIHtcblx0Y3Vyc29yOiBtb3ZlO1xufVxuXG4vKiBQcmVsb2FkZXIgKi9cbi5zd2lwZXItbGF6eS1wcmVsb2FkZXIge1xuXHR3aWR0aDogNDJweDtcblx0aGVpZ2h0OiA0MnB4O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDUwJTtcblx0dG9wOiA1MCU7XG5cdG1hcmdpbi1sZWZ0OiAtMjFweDtcblx0bWFyZ2luLXRvcDogLTIxcHg7XG5cdHotaW5kZXg6IDEwO1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XG5cdGFuaW1hdGlvbjogc3dpcGVyLXByZWxvYWRlci1zcGluIDFzIHN0ZXBzKDEyLCBlbmQpIGluZmluaXRlO1xufVxuXG4uc3dpcGVyLWxhenktcHJlbG9hZGVyOmFmdGVyIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGNvbnRlbnQ6ICcnO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMTIwJTIwMTIwJyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB4bWxucyUzQXhsaW5rJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJyUzRSUzQ2RlZnMlM0UlM0NsaW5lJTIwaWQlM0QnbCclMjB4MSUzRCc2MCclMjB4MiUzRCc2MCclMjB5MSUzRCc3JyUyMHkyJTNEJzI3JyUyMHN0cm9rZSUzRCclMjM2YzZjNmMnJTIwc3Ryb2tlLXdpZHRoJTNEJzExJyUyMHN0cm9rZS1saW5lY2FwJTNEJ3JvdW5kJyUyRiUzRSUzQyUyRmRlZnMlM0UlM0NnJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoNjAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDkwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgxMjAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDE1MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjM3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMTgwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNDYnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgyMTAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy41NiclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDI0MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjY2JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMjcwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNzUnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMDAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy44NSclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDMzMCUyMDYwJTJDNjApJyUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0VcIik7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IDUwJTtcblx0YmFja2dyb3VuZC1zaXplOiAxMDAlO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG4uc3dpcGVyLWxhenktcHJlbG9hZGVyLXdoaXRlOmFmdGVyIHtcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIwdmlld0JveCUzRCcwJTIwMCUyMDEyMCUyMDEyMCclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIweG1sbnMlM0F4bGluayUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayclM0UlM0NkZWZzJTNFJTNDbGluZSUyMGlkJTNEJ2wnJTIweDElM0QnNjAnJTIweDIlM0QnNjAnJTIweTElM0QnNyclMjB5MiUzRCcyNyclMjBzdHJva2UlM0QnJTIzZmZmJyUyMHN0cm9rZS13aWR0aCUzRCcxMSclMjBzdHJva2UtbGluZWNhcCUzRCdyb3VuZCclMkYlM0UlM0MlMkZkZWZzJTNFJTNDZyUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMzAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDYwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSg5MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMTIwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgxNTAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4zNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDE4MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjQ2JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMjEwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNTYnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgyNDAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy42NiclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDI3MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjc1JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMzAwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuODUnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMzAlMjA2MCUyQzYwKSclMkYlM0UlM0MlMkZnJTNFJTNDJTJGc3ZnJTNFXCIpO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc3dpcGVyLXByZWxvYWRlci1zcGluIHtcblxuXHQxMDAlIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgc3dpcGVyLXByZWxvYWRlci1zcGluIHtcblxuXHQxMDAlIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuXHR9XG59XG5cbi8qIGExMXkgKi9cbi5zd2lwZXItY29udGFpbmVyIC5zd2lwZXItbm90aWZpY2F0aW9uIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRvcGFjaXR5OiAwO1xuXHR6LWluZGV4OiAtMTAwMDtcbn1cblxuLnN3aXBlci1jb250YWluZXItZmFkZS5zd2lwZXItY29udGFpbmVyLWZyZWUtbW9kZSAuc3dpcGVyLXNsaWRlIHtcblx0dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1mYWRlIC5zd2lwZXItc2xpZGUge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0dHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbn1cblxuLnN3aXBlci1jb250YWluZXItZmFkZSAuc3dpcGVyLXNsaWRlIC5zd2lwZXItc2xpZGUge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnN3aXBlci1jb250YWluZXItZmFkZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSxcbi5zd2lwZXItY29udGFpbmVyLWZhZGUgLnN3aXBlci1zbGlkZS1hY3RpdmUgLnN3aXBlci1zbGlkZS1hY3RpdmUge1xuXHRwb2ludGVyLWV2ZW50czogYXV0bztcbn1cblxuLnN3aXBlci1jb250YWluZXItY3ViZSB7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0YmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHR6LWluZGV4OiAxO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn1cblxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlIC5zd2lwZXItc2xpZGUge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnN3aXBlci1jb250YWluZXItY3ViZS5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLXNsaWRlIHtcblx0dHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtYWN0aXZlLFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSB7XG5cdHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtYWN0aXZlLFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLW5leHQsXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtcHJldixcbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1uZXh0ICsgLnN3aXBlci1zbGlkZSB7XG5cdHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCxcbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCB7XG5cdHotaW5kZXg6IDA7XG5cdGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLWN1YmUtc2hhZG93IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHRib3R0b206IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJhY2tncm91bmQ6ICMwMDA7XG5cdG9wYWNpdHk6IDAuNjtcblx0LXdlYmtpdC1maWx0ZXI6IGJsdXIoNTBweCk7XG5cdGZpbHRlcjogYmx1cig1MHB4KTtcblx0ei1pbmRleDogMDtcbn1cblxuLnN3aXBlci1jb250YWluZXItZmxpcCB7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0YmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHR6LWluZGV4OiAxO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUgLnN3aXBlci1zbGlkZSB7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUtYWN0aXZlLFxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlLWFjdGl2ZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSB7XG5cdHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCxcbi5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLFxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LFxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCB7XG5cdHotaW5kZXg6IDA7XG5cdGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnN3aXBlci1jb250YWluZXItY292ZXJmbG93IC5zd2lwZXItd3JhcHBlciB7XG5cdC8qIFdpbmRvd3MgOCBJRSAxMCBmaXggKi9cblx0LW1zLXBlcnNwZWN0aXZlOiAxMjAwcHg7XG59XG4iLG51bGwsIi8qIGZsYXRwaWNrciB2NC41LjEsIEBsaWNlbnNlIE1JVCAqL1xuXG5AaW1wb3J0IFwiZGVmYXVsdFwiO1xuIiwiLyogZXNsaW50LWRpc2FibGUgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG5cbi5mbGF0cGlja3ItY2FsZW5kYXIge1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0b3BhY2l0eTogMDtcblx0ZGlzcGxheTogbm9uZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdHBhZGRpbmc6IDA7XG5cdC13ZWJraXQtYW5pbWF0aW9uOiBub25lO1xuXHRhbmltYXRpb246IG5vbmU7XG5cdGRpcmVjdGlvbjogbHRyO1xuXHRib3JkZXI6IDA7XG5cdGZvbnQtc2l6ZTogMTRweDtcblx0bGluZS1oZWlnaHQ6IDI0cHg7XG5cdGJvcmRlci1yYWRpdXM6IDVweDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogMzA3Ljg3NXB4O1xuXHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdC1tcy10b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcblx0dG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG5cdGJhY2tncm91bmQ6ICNmZmY7XG5cdC13ZWJraXQtYm94LXNoYWRvdzogMXB4IDAgMCAjZTZlNmU2LCAtMXB4IDAgMCAjZTZlNmU2LCAwIDFweCAwICNlNmU2ZTYsIDAgLTFweCAwICNlNmU2ZTYsIDAgM3B4IDEzcHggcmdiYSgwLDAsMCwwLjA4KTtcblx0Ym94LXNoYWRvdzogMXB4IDAgMCAjZTZlNmU2LCAtMXB4IDAgMCAjZTZlNmU2LCAwIDFweCAwICNlNmU2ZTYsIDAgLTFweCAwICNlNmU2ZTYsIDAgM3B4IDEzcHggcmdiYSgwLDAsMCwwLjA4KTtcbn1cbi5mbGF0cGlja3ItY2FsZW5kYXIub3Blbixcbi5mbGF0cGlja3ItY2FsZW5kYXIuaW5saW5lIHtcblx0b3BhY2l0eTogMTtcblx0bWF4LWhlaWdodDogNjQwcHg7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uZmxhdHBpY2tyLWNhbGVuZGFyLm9wZW4ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHotaW5kZXg6IDk5OTk5O1xufVxuLmZsYXRwaWNrci1jYWxlbmRhci5hbmltYXRlLm9wZW4ge1xuXHQtd2Via2l0LWFuaW1hdGlvbjogZnBGYWRlSW5Eb3duIDMwMG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcblx0YW5pbWF0aW9uOiBmcEZhZGVJbkRvd24gMzAwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xufVxuLmZsYXRwaWNrci1jYWxlbmRhci5pbmxpbmUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IDJweDtcbn1cbi5mbGF0cGlja3ItY2FsZW5kYXIuc3RhdGljIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IGNhbGMoMTAwJSArIDJweCk7XG59XG4uZmxhdHBpY2tyLWNhbGVuZGFyLnN0YXRpYy5vcGVuIHtcblx0ei1pbmRleDogOTk5O1xuXHRkaXNwbGF5OiBibG9jaztcbn1cbi5mbGF0cGlja3ItY2FsZW5kYXIubXVsdGlNb250aCAuZmxhdHBpY2tyLWRheXMgLmRheUNvbnRhaW5lcjpudGgtY2hpbGQobisxKSAuZmxhdHBpY2tyLWRheS5pblJhbmdlOm50aC1jaGlsZCg3bis3KSB7XG5cdC13ZWJraXQtYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXHRib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4uZmxhdHBpY2tyLWNhbGVuZGFyLm11bHRpTW9udGggLmZsYXRwaWNrci1kYXlzIC5kYXlDb250YWluZXI6bnRoLWNoaWxkKG4rMikgLmZsYXRwaWNrci1kYXkuaW5SYW5nZTpudGgtY2hpbGQoN24rMSkge1xuXHQtd2Via2l0LWJveC1zaGFkb3c6IC0ycHggMCAwICNlNmU2ZTYsIDVweCAwIDAgI2U2ZTZlNjtcblx0Ym94LXNoYWRvdzogLTJweCAwIDAgI2U2ZTZlNiwgNXB4IDAgMCAjZTZlNmU2O1xufVxuLmZsYXRwaWNrci1jYWxlbmRhciAuaGFzV2Vla3MgLmRheUNvbnRhaW5lcixcbi5mbGF0cGlja3ItY2FsZW5kYXIgLmhhc1RpbWUgLmRheUNvbnRhaW5lciB7XG5cdGJvcmRlci1ib3R0b206IDA7XG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuLmZsYXRwaWNrci1jYWxlbmRhciAuaGFzV2Vla3MgLmRheUNvbnRhaW5lciB7XG5cdGJvcmRlci1sZWZ0OiAwO1xufVxuLmZsYXRwaWNrci1jYWxlbmRhci5zaG93VGltZUlucHV0Lmhhc1RpbWUgLmZsYXRwaWNrci10aW1lIHtcblx0aGVpZ2h0OiA0MHB4O1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgI2U2ZTZlNjtcbn1cbi5mbGF0cGlja3ItY2FsZW5kYXIubm9DYWxlbmRhci5oYXNUaW1lIC5mbGF0cGlja3ItdGltZSB7XG5cdGhlaWdodDogYXV0bztcbn1cbi5mbGF0cGlja3ItY2FsZW5kYXI6YmVmb3JlLFxuLmZsYXRwaWNrci1jYWxlbmRhcjphZnRlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRib3JkZXI6IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRjb250ZW50OiAnJztcblx0aGVpZ2h0OiAwO1xuXHR3aWR0aDogMDtcblx0bGVmdDogMjJweDtcbn1cbi5mbGF0cGlja3ItY2FsZW5kYXIucmlnaHRNb3N0OmJlZm9yZSxcbi5mbGF0cGlja3ItY2FsZW5kYXIucmlnaHRNb3N0OmFmdGVyIHtcblx0bGVmdDogYXV0bztcblx0cmlnaHQ6IDIycHg7XG59XG4uZmxhdHBpY2tyLWNhbGVuZGFyOmJlZm9yZSB7XG5cdGJvcmRlci13aWR0aDogNXB4O1xuXHRtYXJnaW46IDAgLTVweDtcbn1cbi5mbGF0cGlja3ItY2FsZW5kYXI6YWZ0ZXIge1xuXHRib3JkZXItd2lkdGg6IDRweDtcblx0bWFyZ2luOiAwIC00cHg7XG59XG4uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmJlZm9yZSxcbi5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dUb3A6YWZ0ZXIge1xuXHRib3R0b206IDEwMCU7XG59XG4uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmJlZm9yZSB7XG5cdGJvcmRlci1ib3R0b20tY29sb3I6ICNlNmU2ZTY7XG59XG4uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmFmdGVyIHtcblx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogI2ZmZjtcbn1cbi5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dCb3R0b206YmVmb3JlLFxuLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0JvdHRvbTphZnRlciB7XG5cdHRvcDogMTAwJTtcbn1cbi5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dCb3R0b206YmVmb3JlIHtcblx0Ym9yZGVyLXRvcC1jb2xvcjogI2U2ZTZlNjtcbn1cbi5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dCb3R0b206YWZ0ZXIge1xuXHRib3JkZXItdG9wLWNvbG9yOiAjZmZmO1xufVxuLmZsYXRwaWNrci1jYWxlbmRhcjpmb2N1cyB7XG5cdG91dGxpbmU6IDA7XG59XG4uZmxhdHBpY2tyLXdyYXBwZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5mbGF0cGlja3ItbW9udGhzIHtcblx0ZGlzcGxheTogLXdlYmtpdC1ib3g7XG5cdGRpc3BsYXk6IC13ZWJraXQtZmxleDtcblx0ZGlzcGxheTogLW1zLWZsZXhib3g7XG5cdGRpc3BsYXk6IGZsZXg7XG59XG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW1vbnRoIHtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGNvbG9yOiByZ2JhKDAsMCwwLDAuOSk7XG5cdGZpbGw6IHJnYmEoMCwwLDAsMC45KTtcblx0aGVpZ2h0OiAyOHB4O1xuXHRsaW5lLWhlaWdodDogMTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdC13ZWJraXQtYm94LWZsZXg6IDE7XG5cdC13ZWJraXQtZmxleDogMTtcblx0LW1zLWZsZXg6IDE7XG5cdGZsZXg6IDE7XG59XG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGgsXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGgge1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDBweDtcblx0bGluZS1oZWlnaHQ6IDE2cHg7XG5cdGhlaWdodDogMjhweDtcblx0cGFkZGluZzogMTBweDtcblx0ei1pbmRleDogMztcblx0Y29sb3I6IHJnYmEoMCwwLDAsMC45KTtcblx0ZmlsbDogcmdiYSgwLDAsMCwwLjkpO1xufVxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoLmRpc2FibGVkLFxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoLmRpc2FibGVkIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aCBpLFxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoIGkge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGguZmxhdHBpY2tyLXByZXYtbW9udGgsXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGguZmxhdHBpY2tyLXByZXYtbW9udGgge1xuXHQvKlxuXHRcdCAgLypydGw6YmVnaW46aWdub3JlKi9cblx0Lypcblx0XHQgICovXG5cdGxlZnQ6IDA7XG5cdC8qXG5cdFx0ICAvKnJ0bDplbmQ6aWdub3JlKi9cblx0Lypcblx0XHQgICovXG59XG4vKlxuICAgICAgLypydGw6YmVnaW46aWdub3JlKi9cbi8qXG4gICAgICAvKnJ0bDplbmQ6aWdub3JlKi9cbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aC5mbGF0cGlja3ItbmV4dC1tb250aCxcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aC5mbGF0cGlja3ItbmV4dC1tb250aCB7XG5cdC8qXG5cdFx0ICAvKnJ0bDpiZWdpbjppZ25vcmUqL1xuXHQvKlxuXHRcdCAgKi9cblx0cmlnaHQ6IDA7XG5cdC8qXG5cdFx0ICAvKnJ0bDplbmQ6aWdub3JlKi9cblx0Lypcblx0XHQgICovXG59XG4vKlxuICAgICAgLypydGw6YmVnaW46aWdub3JlKi9cbi8qXG4gICAgICAvKnJ0bDplbmQ6aWdub3JlKi9cbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aDpob3Zlcixcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aDpob3ZlciB7XG5cdGNvbG9yOiAjOTU5ZWE5O1xufVxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoOmhvdmVyIHN2Zyxcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aDpob3ZlciBzdmcge1xuXHRmaWxsOiAjZjY0NzQ3O1xufVxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoIHN2Zyxcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aCBzdmcge1xuXHR3aWR0aDogMTRweDtcblx0aGVpZ2h0OiAxNHB4O1xufVxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoIHN2ZyBwYXRoLFxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoIHN2ZyBwYXRoIHtcblx0LXdlYmtpdC10cmFuc2l0aW9uOiBmaWxsIDAuMXM7XG5cdHRyYW5zaXRpb246IGZpbGwgMC4xcztcblx0ZmlsbDogaW5oZXJpdDtcbn1cbi5udW1JbnB1dFdyYXBwZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGhlaWdodDogYXV0bztcbn1cbi5udW1JbnB1dFdyYXBwZXIgaW5wdXQsXG4ubnVtSW5wdXRXcmFwcGVyIHNwYW4ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4ubnVtSW5wdXRXcmFwcGVyIGlucHV0IHtcblx0d2lkdGg6IDEwMCU7XG59XG4ubnVtSW5wdXRXcmFwcGVyIGlucHV0OjotbXMtY2xlYXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuLm51bUlucHV0V3JhcHBlciBzcGFuIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogMDtcblx0d2lkdGg6IDE0cHg7XG5cdHBhZGRpbmc6IDAgNHB4IDAgMnB4O1xuXHRoZWlnaHQ6IDUwJTtcblx0bGluZS1oZWlnaHQ6IDUwJTtcblx0b3BhY2l0eTogMDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKDU3LDU3LDU3LDAuMTUpO1xuXHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubnVtSW5wdXRXcmFwcGVyIHNwYW46aG92ZXIge1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMSk7XG59XG4ubnVtSW5wdXRXcmFwcGVyIHNwYW46YWN0aXZlIHtcblx0YmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjIpO1xufVxuLm51bUlucHV0V3JhcHBlciBzcGFuOmFmdGVyIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGNvbnRlbnQ6IFwiXCI7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd1VwIHtcblx0dG9wOiAwO1xuXHRib3JkZXItYm90dG9tOiAwO1xufVxuLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93VXA6YWZ0ZXIge1xuXHRib3JkZXItbGVmdDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIHJnYmEoNTcsNTcsNTcsMC42KTtcblx0dG9wOiAyNiU7XG59XG4ubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3duIHtcblx0dG9wOiA1MCU7XG59XG4ubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3duOmFmdGVyIHtcblx0Ym9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci10b3A6IDRweCBzb2xpZCByZ2JhKDU3LDU3LDU3LDAuNik7XG5cdHRvcDogNDAlO1xufVxuLm51bUlucHV0V3JhcHBlciBzcGFuIHN2ZyB7XG5cdHdpZHRoOiBpbmhlcml0O1xuXHRoZWlnaHQ6IGF1dG87XG59XG4ubnVtSW5wdXRXcmFwcGVyIHNwYW4gc3ZnIHBhdGgge1xuXHRmaWxsOiByZ2JhKDAsMCwwLDAuNSk7XG59XG4ubnVtSW5wdXRXcmFwcGVyOmhvdmVyIHtcblx0YmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjA1KTtcbn1cbi5udW1JbnB1dFdyYXBwZXI6aG92ZXIgc3BhbiB7XG5cdG9wYWNpdHk6IDE7XG59XG4uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGgge1xuXHRmb250LXNpemU6IDEzNSU7XG5cdGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuXHRmb250LXdlaWdodDogMzAwO1xuXHRjb2xvcjogaW5oZXJpdDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogNzUlO1xuXHRsZWZ0OiAxMi41JTtcblx0cGFkZGluZzogNi4xNnB4IDAgMCAwO1xuXHRsaW5lLWhlaWdodDogMTtcblx0aGVpZ2h0OiAyOHB4O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpO1xufVxuLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIHNwYW4uY3VyLW1vbnRoIHtcblx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdGNvbG9yOiBpbmhlcml0O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdG1hcmdpbi1sZWZ0OiAwLjVjaDtcblx0cGFkZGluZzogMDtcbn1cbi5mbGF0cGlja3ItY3VycmVudC1tb250aCBzcGFuLmN1ci1tb250aDpob3ZlciB7XG5cdGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4wNSk7XG59XG4uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLm51bUlucHV0V3JhcHBlciB7XG5cdHdpZHRoOiA2Y2g7XG5cdHdpZHRoOiA3Y2hcXDA7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5mbGF0cGlja3ItY3VycmVudC1tb250aCAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dVcDphZnRlciB7XG5cdGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwwLDAsMC45KTtcbn1cbi5mbGF0cGlja3ItY3VycmVudC1tb250aCAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3duOmFmdGVyIHtcblx0Ym9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLDAsMCwwLjkpO1xufVxuLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIGlucHV0LmN1ci15ZWFyIHtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0Y29sb3I6IGluaGVyaXQ7XG5cdGN1cnNvcjogdGV4dDtcblx0cGFkZGluZzogMCAwIDAgMC41Y2g7XG5cdG1hcmdpbjogMDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG5cdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRmb250LXdlaWdodDogMzAwO1xuXHRsaW5lLWhlaWdodDogaW5oZXJpdDtcblx0aGVpZ2h0OiBhdXRvO1xuXHRib3JkZXI6IDA7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cdHZlcnRpY2FsLWFsaWduOiBpbml0aWFsO1xufVxuLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIGlucHV0LmN1ci15ZWFyOmZvY3VzIHtcblx0b3V0bGluZTogMDtcbn1cbi5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhcltkaXNhYmxlZF0sXG4uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggaW5wdXQuY3VyLXllYXJbZGlzYWJsZWRdOmhvdmVyIHtcblx0Zm9udC1zaXplOiAxMDAlO1xuXHRjb2xvcjogcmdiYSgwLDAsMCwwLjUpO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uZmxhdHBpY2tyLXdlZWtkYXlzIHtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0d2lkdGg6IDEwMCU7XG5cdGRpc3BsYXk6IC13ZWJraXQtYm94O1xuXHRkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG5cdGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHQtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuXHQtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGhlaWdodDogMjhweDtcbn1cbi5mbGF0cGlja3Itd2Vla2RheXMgLmZsYXRwaWNrci13ZWVrZGF5Y29udGFpbmVyIHtcblx0ZGlzcGxheTogLXdlYmtpdC1ib3g7XG5cdGRpc3BsYXk6IC13ZWJraXQtZmxleDtcblx0ZGlzcGxheTogLW1zLWZsZXhib3g7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdC13ZWJraXQtYm94LWZsZXg6IDE7XG5cdC13ZWJraXQtZmxleDogMTtcblx0LW1zLWZsZXg6IDE7XG5cdGZsZXg6IDE7XG59XG5zcGFuLmZsYXRwaWNrci13ZWVrZGF5IHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRmb250LXNpemU6IDkwJTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGNvbG9yOiByZ2JhKDAsMCwwLDAuNTQpO1xuXHRsaW5lLWhlaWdodDogMTtcblx0bWFyZ2luOiAwO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHQtd2Via2l0LWJveC1mbGV4OiAxO1xuXHQtd2Via2l0LWZsZXg6IDE7XG5cdC1tcy1mbGV4OiAxO1xuXHRmbGV4OiAxO1xuXHRmb250LXdlaWdodDogYm9sZGVyO1xufVxuLmRheUNvbnRhaW5lcixcbi5mbGF0cGlja3Itd2Vla3Mge1xuXHRwYWRkaW5nOiAxcHggMCAwIDA7XG59XG4uZmxhdHBpY2tyLWRheXMge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGRpc3BsYXk6IC13ZWJraXQtYm94O1xuXHRkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG5cdGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHQtd2Via2l0LWJveC1hbGlnbjogc3RhcnQ7XG5cdC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdC1tcy1mbGV4LWFsaWduOiBzdGFydDtcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdHdpZHRoOiAzMDcuODc1cHg7XG59XG4uZmxhdHBpY2tyLWRheXM6Zm9jdXMge1xuXHRvdXRsaW5lOiAwO1xufVxuLmRheUNvbnRhaW5lciB7XG5cdHBhZGRpbmc6IDA7XG5cdG91dGxpbmU6IDA7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdpZHRoOiAzMDcuODc1cHg7XG5cdG1pbi13aWR0aDogMzA3Ljg3NXB4O1xuXHRtYXgtd2lkdGg6IDMwNy44NzVweDtcblx0LXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuXHRkaXNwbGF5OiAtd2Via2l0LWJveDtcblx0ZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHQtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcblx0ZmxleC13cmFwOiB3cmFwO1xuXHQtbXMtZmxleC13cmFwOiB3cmFwO1xuXHQtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xuXHQtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcblx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpO1xuXHRvcGFjaXR5OiAxO1xufVxuLmRheUNvbnRhaW5lciArIC5kYXlDb250YWluZXIge1xuXHQtd2Via2l0LWJveC1zaGFkb3c6IC0xcHggMCAwICNlNmU2ZTY7XG5cdGJveC1zaGFkb3c6IC0xcHggMCAwICNlNmU2ZTY7XG59XG4uZmxhdHBpY2tyLWRheSB7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRib3JkZXItcmFkaXVzOiAxNTBweDtcblx0LXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRjb2xvcjogIzM5MzkzOTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRmb250LXdlaWdodDogNDAwO1xuXHR3aWR0aDogMTQuMjg1NzE0MyU7XG5cdC13ZWJraXQtZmxleC1iYXNpczogMTQuMjg1NzE0MyU7XG5cdC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAxNC4yODU3MTQzJTtcblx0ZmxleC1iYXNpczogMTQuMjg1NzE0MyU7XG5cdG1heC13aWR0aDogMzlweDtcblx0aGVpZ2h0OiAzOXB4O1xuXHRsaW5lLWhlaWdodDogMzlweDtcblx0bWFyZ2luOiAwO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0LXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuXHQtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHQtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uZmxhdHBpY2tyLWRheS5pblJhbmdlLFxuLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5LmluUmFuZ2UsXG4uZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXkuaW5SYW5nZSxcbi5mbGF0cGlja3ItZGF5LnRvZGF5LmluUmFuZ2UsXG4uZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXkudG9kYXkuaW5SYW5nZSxcbi5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheS50b2RheS5pblJhbmdlLFxuLmZsYXRwaWNrci1kYXk6aG92ZXIsXG4uZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXk6aG92ZXIsXG4uZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXk6aG92ZXIsXG4uZmxhdHBpY2tyLWRheTpmb2N1cyxcbi5mbGF0cGlja3ItZGF5LnByZXZNb250aERheTpmb2N1cyxcbi5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheTpmb2N1cyB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0b3V0bGluZTogMDtcblx0YmFja2dyb3VuZDogI2U2ZTZlNjtcblx0Ym9yZGVyLWNvbG9yOiAjZTZlNmU2O1xufVxuLmZsYXRwaWNrci1kYXkudG9kYXkge1xuXHRib3JkZXItY29sb3I6ICM5NTllYTk7XG59XG4uZmxhdHBpY2tyLWRheS50b2RheTpob3Zlcixcbi5mbGF0cGlja3ItZGF5LnRvZGF5OmZvY3VzIHtcblx0Ym9yZGVyLWNvbG9yOiAjOTU5ZWE5O1xuXHRiYWNrZ3JvdW5kOiAjOTU5ZWE5O1xuXHRjb2xvcjogI2ZmZjtcbn1cbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLFxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZSxcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLFxuLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuaW5SYW5nZSxcbi5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UuaW5SYW5nZSxcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLmluUmFuZ2UsXG4uZmxhdHBpY2tyLWRheS5zZWxlY3RlZDpmb2N1cyxcbi5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2U6Zm9jdXMsXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZTpmb2N1cyxcbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkOmhvdmVyLFxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZTpob3Zlcixcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlOmhvdmVyLFxuLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQucHJldk1vbnRoRGF5LFxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5wcmV2TW9udGhEYXksXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5wcmV2TW9udGhEYXksXG4uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5uZXh0TW9udGhEYXksXG4uZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLm5leHRNb250aERheSxcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLm5leHRNb250aERheSB7XG5cdGJhY2tncm91bmQ6ICM1NjlmZjc7XG5cdC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcblx0Ym94LXNoYWRvdzogbm9uZTtcblx0Y29sb3I6ICNmZmY7XG5cdGJvcmRlci1jb2xvcjogIzU2OWZmNztcbn1cbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLnN0YXJ0UmFuZ2UsXG4uZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLnN0YXJ0UmFuZ2UsXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5zdGFydFJhbmdlIHtcblx0Ym9yZGVyLXJhZGl1czogNTBweCAwIDAgNTBweDtcbn1cbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLmVuZFJhbmdlLFxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5lbmRSYW5nZSxcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLmVuZFJhbmdlIHtcblx0Ym9yZGVyLXJhZGl1czogMCA1MHB4IDUwcHggMDtcbn1cbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLnN0YXJ0UmFuZ2UgKyAuZW5kUmFuZ2U6bm90KDpudGgtY2hpbGQoN24rMSkpLFxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5zdGFydFJhbmdlICsgLmVuZFJhbmdlOm5vdCg6bnRoLWNoaWxkKDduKzEpKSxcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLnN0YXJ0UmFuZ2UgKyAuZW5kUmFuZ2U6bm90KDpudGgtY2hpbGQoN24rMSkpIHtcblx0LXdlYmtpdC1ib3gtc2hhZG93OiAtMTBweCAwIDAgIzU2OWZmNztcblx0Ym94LXNoYWRvdzogLTEwcHggMCAwICM1NjlmZjc7XG59XG4uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5zdGFydFJhbmdlLmVuZFJhbmdlLFxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5zdGFydFJhbmdlLmVuZFJhbmdlLFxuLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2Uuc3RhcnRSYW5nZS5lbmRSYW5nZSB7XG5cdGJvcmRlci1yYWRpdXM6IDUwcHg7XG59XG4uZmxhdHBpY2tyLWRheS5pblJhbmdlIHtcblx0Ym9yZGVyLXJhZGl1czogMDtcblx0LXdlYmtpdC1ib3gtc2hhZG93OiAtNXB4IDAgMCAjZTZlNmU2LCA1cHggMCAwICNlNmU2ZTY7XG5cdGJveC1zaGFkb3c6IC01cHggMCAwICNlNmU2ZTYsIDVweCAwIDAgI2U2ZTZlNjtcbn1cbi5mbGF0cGlja3ItZGF5LmRpc2FibGVkLFxuLmZsYXRwaWNrci1kYXkuZGlzYWJsZWQ6aG92ZXIsXG4uZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXksXG4uZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXksXG4uZmxhdHBpY2tyLWRheS5ub3RBbGxvd2VkLFxuLmZsYXRwaWNrci1kYXkubm90QWxsb3dlZC5wcmV2TW9udGhEYXksXG4uZmxhdHBpY2tyLWRheS5ub3RBbGxvd2VkLm5leHRNb250aERheSB7XG5cdGNvbG9yOiByZ2JhKDU3LDU3LDU3LDAuMyk7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG4uZmxhdHBpY2tyLWRheS5kaXNhYmxlZCxcbi5mbGF0cGlja3ItZGF5LmRpc2FibGVkOmhvdmVyIHtcblx0Y3Vyc29yOiBub3QtYWxsb3dlZDtcblx0Y29sb3I6IHJnYmEoNTcsNTcsNTcsMC4xKTtcbn1cbi5mbGF0cGlja3ItZGF5LndlZWsuc2VsZWN0ZWQge1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXHQtd2Via2l0LWJveC1zaGFkb3c6IC01cHggMCAwICM1NjlmZjcsIDVweCAwIDAgIzU2OWZmNztcblx0Ym94LXNoYWRvdzogLTVweCAwIDAgIzU2OWZmNywgNXB4IDAgMCAjNTY5ZmY3O1xufVxuLmZsYXRwaWNrci1kYXkuaGlkZGVuIHtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnJhbmdlTW9kZSAuZmxhdHBpY2tyLWRheSB7XG5cdG1hcmdpbi10b3A6IDFweDtcbn1cbi5mbGF0cGlja3Itd2Vla3dyYXBwZXIge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGZsb2F0OiBsZWZ0O1xufVxuLmZsYXRwaWNrci13ZWVrd3JhcHBlciAuZmxhdHBpY2tyLXdlZWtzIHtcblx0cGFkZGluZzogMCAxMnB4O1xuXHQtd2Via2l0LWJveC1zaGFkb3c6IDFweCAwIDAgI2U2ZTZlNjtcblx0Ym94LXNoYWRvdzogMXB4IDAgMCAjZTZlNmU2O1xufVxuLmZsYXRwaWNrci13ZWVrd3JhcHBlciAuZmxhdHBpY2tyLXdlZWtkYXkge1xuXHRmbG9hdDogbm9uZTtcblx0d2lkdGg6IDEwMCU7XG5cdGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuLmZsYXRwaWNrci13ZWVrd3JhcHBlciBzcGFuLmZsYXRwaWNrci1kYXksXG4uZmxhdHBpY2tyLXdlZWt3cmFwcGVyIHNwYW4uZmxhdHBpY2tyLWRheTpob3ZlciB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogMTAwJTtcblx0bWF4LXdpZHRoOiBub25lO1xuXHRjb2xvcjogcmdiYSg1Nyw1Nyw1NywwLjMpO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRib3JkZXI6IG5vbmU7XG59XG4uZmxhdHBpY2tyLWlubmVyQ29udGFpbmVyIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGRpc3BsYXk6IC13ZWJraXQtYm94O1xuXHRkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG5cdGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG4uZmxhdHBpY2tyLXJDb250YWluZXIge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBhZGRpbmc6IDA7XG5cdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5mbGF0cGlja3ItdGltZSB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0b3V0bGluZTogMDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGhlaWdodDogMDtcblx0bGluZS1oZWlnaHQ6IDQwcHg7XG5cdG1heC1oZWlnaHQ6IDQwcHg7XG5cdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0ZGlzcGxheTogLXdlYmtpdC1ib3g7XG5cdGRpc3BsYXk6IC13ZWJraXQtZmxleDtcblx0ZGlzcGxheTogLW1zLWZsZXhib3g7XG5cdGRpc3BsYXk6IGZsZXg7XG59XG4uZmxhdHBpY2tyLXRpbWU6YWZ0ZXIge1xuXHRjb250ZW50OiBcIlwiO1xuXHRkaXNwbGF5OiB0YWJsZTtcblx0Y2xlYXI6IGJvdGg7XG59XG4uZmxhdHBpY2tyLXRpbWUgLm51bUlucHV0V3JhcHBlciB7XG5cdC13ZWJraXQtYm94LWZsZXg6IDE7XG5cdC13ZWJraXQtZmxleDogMTtcblx0LW1zLWZsZXg6IDE7XG5cdGZsZXg6IDE7XG5cdHdpZHRoOiA0MCU7XG5cdGhlaWdodDogNDBweDtcblx0ZmxvYXQ6IGxlZnQ7XG59XG4uZmxhdHBpY2tyLXRpbWUgLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93VXA6YWZ0ZXIge1xuXHRib3JkZXItYm90dG9tLWNvbG9yOiAjMzkzOTM5O1xufVxuLmZsYXRwaWNrci10aW1lIC5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd0Rvd246YWZ0ZXIge1xuXHRib3JkZXItdG9wLWNvbG9yOiAjMzkzOTM5O1xufVxuLmZsYXRwaWNrci10aW1lLmhhc1NlY29uZHMgLm51bUlucHV0V3JhcHBlciB7XG5cdHdpZHRoOiAyNiU7XG59XG4uZmxhdHBpY2tyLXRpbWUudGltZTI0aHIgLm51bUlucHV0V3JhcHBlciB7XG5cdHdpZHRoOiA0OSU7XG59XG4uZmxhdHBpY2tyLXRpbWUgaW5wdXQge1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0LXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuXHRib3gtc2hhZG93OiBub25lO1xuXHRib3JkZXI6IDA7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRoZWlnaHQ6IGluaGVyaXQ7XG5cdGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuXHRjb2xvcjogIzM5MzkzOTtcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5mbGF0cGlja3ItdGltZSBpbnB1dC5mbGF0cGlja3ItaG91ciB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmZsYXRwaWNrci10aW1lIGlucHV0LmZsYXRwaWNrci1taW51dGUsXG4uZmxhdHBpY2tyLXRpbWUgaW5wdXQuZmxhdHBpY2tyLXNlY29uZCB7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4uZmxhdHBpY2tyLXRpbWUgaW5wdXQ6Zm9jdXMge1xuXHRvdXRsaW5lOiAwO1xuXHRib3JkZXI6IDA7XG59XG4uZmxhdHBpY2tyLXRpbWUgLmZsYXRwaWNrci10aW1lLXNlcGFyYXRvcixcbi5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBtIHtcblx0aGVpZ2h0OiBpbmhlcml0O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGZsb2F0OiBsZWZ0O1xuXHRsaW5lLWhlaWdodDogaW5oZXJpdDtcblx0Y29sb3I6ICMzOTM5Mzk7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHR3aWR0aDogMiU7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdC13ZWJraXQtYWxpZ24tc2VsZjogY2VudGVyO1xuXHQtbXMtZmxleC1pdGVtLWFsaWduOiBjZW50ZXI7XG5cdGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cbi5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBtIHtcblx0b3V0bGluZTogMDtcblx0d2lkdGg6IDE4JTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4uZmxhdHBpY2tyLXRpbWUgaW5wdXQ6aG92ZXIsXG4uZmxhdHBpY2tyLXRpbWUgLmZsYXRwaWNrci1hbS1wbTpob3Zlcixcbi5mbGF0cGlja3ItdGltZSBpbnB1dDpmb2N1cyxcbi5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBtOmZvY3VzIHtcblx0YmFja2dyb3VuZDogI2YzZjNmMztcbn1cbi5mbGF0cGlja3ItaW5wdXRbcmVhZG9ubHldIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIGZwRmFkZUluRG93biB7XG5cdGZyb20ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcblx0fVxuXHR0byB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcblx0fVxufVxuQGtleWZyYW1lcyBmcEZhZGVJbkRvd24ge1xuXHRmcm9tIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG5cdH1cblx0dG8ge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG5cdH1cbn1cbiIsIlxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDb250ZW50XG4gKlxuICogVGhpcyBmaWxlIGlzIGp1c3QgYSBjbGVhcmluZy1ob3VzZS5cbiAqIE1ha2UgcGFydGlhbHMgKHN0YXJ0IHdpdGggYW4gdW5kZXJzY29yZSkgZm9yIGFueSBhY3R1YWwgY3NzIGNvZGUuXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyogQ29tcG9uZW50cyAqL1xuQGltcG9ydCBcImNvbXBvbmVudHMvYWxsXCI7XG5cbi8qIEJ1dHRvbnMgKi9cbkBpbXBvcnQgXCJidXR0b25zL2RlZmF1bHRcIjtcbkBpbXBvcnQgXCJidXR0b25zL3F1aWNrLXZpZXdcIjtcblxuLyogQ2FyZHMgKi9cbkBpbXBvcnQgXCJjYXJkcy9kZWZhdWx0XCI7XG5AaW1wb3J0IFwiY2FyZHMvc2luZ2xlXCI7XG5AaW1wb3J0IFwiY2FyZHMvb3JkZXJcIjtcblxuLyogTG9vcCAqL1xuQGltcG9ydCBcImxvb3AvZGVmYXVsdFwiO1xuQGltcG9ydCBcImxvb3AvcHJvZHVjdHNcIjtcbkBpbXBvcnQgXCJsb29wL25vLXJlc3VsdHNcIjtcblxuLyogU2luZ2xlICovXG5AaW1wb3J0IFwic2luZ2xlL3Byb2R1Y3RcIjtcbkBpbXBvcnQgXCJzaW5nbGUvcHJvZHVjdC1xdWljay12aWV3XCI7XG5AaW1wb3J0IFwic2luZ2xlL3Byb2R1Y3QtcmV2aWV3c1wiO1xuXG4vKiBDYXJ0ICovXG5AaW1wb3J0IFwiY2FydC9jYXJ0LXBhZ2VcIjtcbkBpbXBvcnQgXCJjYXJ0L2NhcnQtbWVudS1pdGVtXCI7XG5cbi8qIFBhZ2UgKi9cbkBpbXBvcnQgXCJwYWdlL2FkZHJlc3NcIjtcbkBpbXBvcnQgXCJwYWdlL2FjY291bnQtZGVmYXVsdFwiO1xuQGltcG9ydCBcInBhZ2UvYWNjb3VudC1sb2dpblwiO1xuQGltcG9ydCBcInBhZ2UvYWNjb3VudC1yZWdpc3RlclwiO1xuQGltcG9ydCBcInBhZ2Uvb3JkZXJzL2RlZmF1bHRcIjtcbkBpbXBvcnQgXCJwYWdlL29yZGVycy9vcmRlci1oaXN0b3J5XCI7XG5AaW1wb3J0IFwicGFnZS9vcmRlcnMvb3JkZXItZGV0YWlsXCI7XG5AaW1wb3J0IFwicGFnZS9sb3N0LXBhc3N3b3JkXCI7XG5AaW1wb3J0IFwicGFnZS9naWZ0LWNlcnRpZmljYXRlXCI7XG4iLCIvKiBDb21wb25lbnRzICovXG5AaW1wb3J0IFwidGl0bGVcIjtcbkBpbXBvcnQgXCJicmFuZFwiO1xuQGltcG9ydCBcInByaWNlXCI7XG5AaW1wb3J0IFwiZmxhZ3NcIjtcbkBpbXBvcnQgXCJkZXNjcmlwdGlvblwiO1xuQGltcG9ydCBcImdhbGxlcnlcIjtcbkBpbXBvcnQgXCJmb3JtLWNvbXBvbmVudHNcIjtcbkBpbXBvcnQgXCJvcHRpb24tZHJvcGRvd25cIjtcbkBpbXBvcnQgXCJvcHRpb24tc3dhdGNoXCI7XG5AaW1wb3J0IFwib3B0aW9uLXJlY3RhbmdsZVwiO1xuQGltcG9ydCBcIm9wdGlvbi1waWNrLWxpc3RcIjtcbkBpbXBvcnQgXCJvcHRpb24tcmFkaW9cIjtcbkBpbXBvcnQgXCJyYXRpbmdzXCI7XG5AaW1wb3J0IFwic3BlY3NcIjtcbkBpbXBvcnQgXCJyZWxhdGVkLXByb2R1Y3RzXCI7XG5AaW1wb3J0IFwicmVmaW5lcnlcIjtcbkBpbXBvcnQgXCJzdWJuYXZcIjtcbkBpbXBvcnQgXCJhbGVydFwiO1xuQGltcG9ydCBcInBhZ2luYXRpb25cIjtcbkBpbXBvcnQgXCJvcmRlci1wcm9kdWN0LXJvd1wiO1xuQGltcG9ydCBcImltYWdlc1wiO1xuIiwiLmJjLXByb2R1Y3RfX3RpdGxlIHtcblx0Zm9udC1zaXplOiAxOHB4O1xuXHRsaW5lLWhlaWdodDogMjJweDtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDAgMCAxOHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDI0cHg7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdGZvbnQtc2l6ZTogMjRweDtcblx0XHRsaW5lLWhlaWdodDogMjhweDtcblx0fVxufVxuXG4uYmMtcHJvZHVjdF9fdGl0bGUtbGluayB7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0Ym94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHRvcGFjaXR5OiAxO1xuXHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzIHtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHRcdG9wYWNpdHk6IDAuODtcblxuXHRcdC5iYy1wcm9kdWN0LWZsYWctLWdyZXkge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cbn1cblxuLmJjLXByb2R1Y3RfX2ludmVudG9yeSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRsaW5lLWhlaWdodDogMjJweDtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpO1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5iYy1wcm9kdWN0LXNpbmdsZV9fbWV0YSxcbi5iYy1wcm9kdWN0LWNhcmQtLXNpbmdsZSB7XG5cblx0LmJjLXByb2R1Y3RfX3RpdGxlIHtcblx0XHRmb250LXNpemU6IDI0cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDI4cHg7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0Zm9udC1zaXplOiAyOHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDMycHg7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdGZvbnQtc2l6ZTogMzJweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAzNnB4O1xuXHRcdH1cblx0fVxuXG5cdC5iYy1wcm9kdWN0X19pbnZlbnRvcnkge1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRtYXJnaW46IDA7XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtY2FyZC0tcmVsYXRlZCB7XG5cblx0LmJjLXByb2R1Y3RfX3RpdGxlIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxNXB4O1xuXHR9XG59XG4iLCIuYmMtcHJvZHVjdF9fYnJhbmQge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtZXZlbik7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0bWFyZ2luLWJvdHRvbTogMTBweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcblx0fVxuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0fVxufVxuXG4uYmMtcHJvZHVjdC1zaW5nbGUsXG4uYmMtcHJvZHVjdC1jYXJkLS1zaW5nbGUge1xuXG5cdC5iYy1wcm9kdWN0X19icmFuZCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdH1cbn1cbiIsIi5iYy1wcm9kdWN0X19wcmljaW5nIHtcblx0bWFyZ2luLWJvdHRvbTogMDtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLmJjLXByb2R1Y3RfX3ByaWNlIHtcblx0Zm9udC1zaXplOiAxNnB4O1xufVxuXG4uYmMtcHJvZHVjdF9fb3JpZ2luYWwtcHJpY2Uge1xuXHR0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcblx0bWFyZ2luLXJpZ2h0OiAxMnB4O1xuXHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWdyZXkpO1xufVxuXG4uYmMtcHJvZHVjdF9fcHJpY2UtLXNhbGUge1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ncmVlbik7XG59XG5cbi5iYy1wcm9kdWN0LWNhcmQtLXNpbmdsZSB7XG5cblx0LmJjLXByb2R1Y3RfX3ByaWNpbmcge1xuXHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDUwcHg7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1wcm9kdWN0LWNhcmQtLXNpbmdsZSxcbi5iYy1wcm9kdWN0LXNpbmdsZSB7XG5cblx0LmJjLXByb2R1Y3RfX29yaWdpbmFsLXByaWNlIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cdH1cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogUHJvZHVjdCBGbGFnc1xuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5iYy1wcm9kdWN0LWZsYWctLXNhbGUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogLTIwcHg7XG5cdHRvcDogLTIwcHg7XG5cdHdpZHRoOiA1MHB4O1xuXHRoZWlnaHQ6IDUwcHg7XG5cdGxpbmUtaGVpZ2h0OiA1MHB4O1xuXHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJjLWdyZWVuKTtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0ei1pbmRleDogMjtcbn1cblxuLmJjLXByb2R1Y3QtZmxhZy0tZ3JleSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0cGFkZGluZzogN3B4IDhweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWV2ZW4pO1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuXG4uYmMtcHJvZHVjdC1zaW5nbGUsXG4uYmMtcHJvZHVjdC1jYXJkLS1zaW5nbGUge1xuXG5cdC5iYy1wcm9kdWN0LWZsYWctLXNhbGUge1xuXHRcdHdpZHRoOiA2MHB4O1xuXHRcdGhlaWdodDogNjBweDtcblx0XHRsaW5lLWhlaWdodDogNjBweDtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcblx0fVxuXG5cdC5iYy1wcm9kdWN0LWZsYWctLWdyZXkge1xuXHRcdG1hcmdpbi1ib3R0b206IDVweDtcblx0fVxufVxuXG4iLCIuYmMtcHJvZHVjdF9fZGVzY3JpcHRpb24ge1xuXHRmb250LXNpemU6IDE2cHg7XG5cdGxpbmUtaGVpZ2h0OiAyNHB4O1xuXHRtYXJnaW4tYm90dG9tOiAzMHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcblx0fVxuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1sYXJnZSkge1xuXHRcdG1hcmdpbi1ib3R0b206IDUwcHg7XG5cdH1cblxuXHRwOmxhc3QtY2hpbGQge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cbn1cbiIsIi5iYy1wcm9kdWN0LWdhbGxlcnlfX2ltYWdlcyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEwMCU7XG5cdG1heC13aWR0aDogMzcwcHg7XG5cdG1hcmdpbjogNjBweCBhdXRvO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRtYXJnaW46IDA7XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtZ2FsbGVyeV9faW1hZ2Utc2xpZGUge1xuXG5cdGltZyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtZ2FsbGVyeS0taGFzLWNhcm91c2VsIHtcblx0bWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLyogVGh1bWJuYWlsIENhcm91c2VsICovXG5cbi8qIENBU0U6IHRodW1iIGNvbnRyb2xsZXIgb25seSB3b3JrcyB3aXRoIGNlbnRlcmVkIHNsaWRlcy4gVGhpcyBtb3ZlcyB0aGF0IGNvbnRhaW5lciBiYWNrIHRvIGZsdXNoIGxlZnQuICovXG4uc3dpcGVyLWNvbnRhaW5lcltkYXRhLWpzPVwiYmMtZ2FsbGVyeS10aHVtYnNcIl0gLnN3aXBlci13cmFwcGVyIHtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApICFpbXBvcnRhbnQ7XG59XG5cbi5iYy1wcm9kdWN0LWdhbGxlcnlfX3RodW1icyB7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cblx0LmJjLXByb2R1Y3QtZ2FsbGVyeV9fdGh1bWItc2xpZGUge1xuXHRcdGJveC1zaGFkb3c6IHVuc2V0O1xuXHR9XG59XG5cbi5iYy1wcm9kdWN0LWdhbGxlcnlfX3RodW1iLXNsaWRlIHtcblx0d2lkdGg6IGNhbGMoMjUlIC0gMTBweCk7XG5cdG1hcmdpbjogMCAxMHB4IDEwcHggMDtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyOiAwO1xuXHRiYWNrZ3JvdW5kOiBub25lO1xuXHRvcGFjaXR5OiAwLjg7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCYuc3dpcGVyLXNsaWRlLWFjdGl2ZSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEZvcm1zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYmMtcHJvZHVjdC1mb3JtX19jb250cm9sIHtcblx0bWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLmJjLXByb2R1Y3QtZm9ybV9fb3B0aW9uLWxhYmVsLFxuLmJjLXByb2R1Y3QtZm9ybV9fbW9kaWZpZXItbGFiZWwge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG59XG5cbi5iYy1wcm9kdWN0LWZvcm1fX29wdGlvbi12YXJpYW50cyB7XG5cdG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5iYy1wcm9kdWN0LWZvcm1fX29wdGlvbi12YXJpYW50cy0taW5saW5lIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuXHQuYmMtcHJvZHVjdC12YXJpYW50X19sYWJlbCB7XG5cdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xuXG5cdFx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdH1cblx0fVxufVxuXG4uYmMtcHJvZHVjdC12YXJpYW50X19sYWJlbC0tdGl0bGUge1xuXHRmbGV4OiAxO1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtZ3JleSk7XG59XG5cbmlucHV0LmJjLXByb2R1Y3QtdmFyaWFudF9fcmFkaW8tLWhpZGRlbiB7XG5cdG1hcmdpbjogMDtcbn1cblxuLmJjLXByb2R1Y3QtZm9ybV9fcHJvZHVjdC1tZXNzYWdlIHtcblx0cGFkZGluZzogMDtcbn1cblxuLmJjLXByb2R1Y3QtZm9ybV9fbWVzc2FnZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nOiAxMnB4IDE2cHg7XG5cdGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmJjLXByb2R1Y3QtZm9ybV9fbW9kaWZpZXItZGVzY3JpcHRpb24ge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRsaW5lLWhlaWdodDogMTRweDtcblx0cGFkZGluZzogMCAxMHB4O1xuXHRtYXJnaW4tdG9wOiA0cHg7XG59XG4iLCIuYmMtcHJvZHVjdC1mb3JtX19vcHRpb24tc2VsZWN0IHtcblx0Zm9udC1zaXplOiAxNnB4O1xufVxuIiwiLmJjLXByb2R1Y3QtZm9ybV9fY29udHJvbC0tc3dhdGNoIHtcblxuXHRpbnB1dC5iYy1wcm9kdWN0LXZhcmlhbnRfX3JhZGlvLS1oaWRkZW4ge1xuXG5cdFx0JjpjaGVja2VkICsgLmJjLXByb2R1Y3QtdmFyaWFudF9fbGFiZWwgLmJjLXByb2R1Y3QtdmFyaWFudF9fbGFiZWwtLXN3YXRjaCB7XG5cdFx0XHRib3JkZXI6IDAgc29saWQgdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRcdFx0Ym94LXNoYWRvdzogMCAwIDFweCB2YXIoLS1jb2xvci1iYy1ibHVlLWxpZ2h0KTtcblx0XHRcdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tYm9yZGVyKTtcblx0XHR9XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtdmFyaWFudF9fbGFiZWwtLXN3YXRjaCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogMzZweDtcblx0aGVpZ2h0OiAzNnB4O1xuXHRib3JkZXI6IDVweCBzb2xpZCB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdGJveC1zaGFkb3c6IDAgMCAxcHggdmFyKC0tY29sb3ItYmMtZ3JleSk7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1ib3JkZXIpO1xufVxuIiwiLmJjLXByb2R1Y3QtZm9ybV9fY29udHJvbC0tcmVjdGFuZ2xlIHtcblxuXHRpbnB1dC5iYy1wcm9kdWN0LXZhcmlhbnRfX3JhZGlvLS1oaWRkZW4ge1xuXG5cdFx0JjpjaGVja2VkICsgLmJjLXByb2R1Y3QtdmFyaWFudF9fbGFiZWwgLmJjLXByb2R1Y3QtdmFyaWFudF9fbGFiZWwtLXJlY3RhbmdsZSB7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1ibHVlLWxpZ2h0KTtcblx0XHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ibHVlLWxpZ2h0KTtcblx0XHRcdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0XHRcdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tYm9yZGVyKSwgdmFyKC0tdHJhbnNpdGlvbi1jb2xvci1mYXN0KTtcblx0XHR9XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtdmFyaWFudF9fbGFiZWwtLXJlY3RhbmdsZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRoZWlnaHQ6IDM2cHg7XG5cdGxpbmUtaGVpZ2h0OiAyNHB4O1xuXHRwYWRkaW5nOiA1cHggMTBweDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1jb25jcmV0ZSk7XG5cdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ncmV5KTtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1ib3JkZXIpLCB2YXIoLS10cmFuc2l0aW9uLWNvbG9yLWZhc3QpO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG4iLCIuYmMtcHJvZHVjdC1mb3JtX19jb250cm9sLS1waWNrLWxpc3Qge1xuXG5cdGlucHV0LmJjLXByb2R1Y3QtdmFyaWFudF9fcmFkaW8tLWhpZGRlbiB7XG5cblx0XHQmOmNoZWNrZWQgKyAuYmMtcHJvZHVjdC12YXJpYW50X19sYWJlbCAuYmMtcHJvZHVjdC12YXJpYW50X19sYWJlbC0tcGljay1saXN0IHtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWJsdWUtbGlnaHQpO1xuXHRcdFx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1ib3JkZXIpO1xuXHRcdH1cblx0fVxufVxuXG4uYmMtcHJvZHVjdC12YXJpYW50X19sYWJlbC0tcGljay1saXN0IHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0cGFkZGluZzogNXB4O1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYmMtcHJvZHVjdC12YXJpYW50X19sYWJlbC0taW1nIHtcblx0ZmxleDogMDtcblx0bWFyZ2luLXJpZ2h0OiA2cHg7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXgtd2lkdGg6IDUwcHg7XG5cdGhlaWdodDogYXV0bztcbn1cbiIsIi5iYy1wcm9kdWN0LWZvcm1fX2NvbnRyb2wtLXJhZGlvIHtcblxuXHQuYmMtcHJvZHVjdC1mb3JtX19vcHRpb24tbGFiZWwge1xuXHRcdGZsZXg6IDAgMCAxMDAlO1xuXHR9XG5cblx0LmJjLXByb2R1Y3QtdmFyaWFudF9fbGFiZWwge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdG1hcmdpbi1ib3R0b206IDZweDtcblx0fVxuXG5cdC5iYy1wcm9kdWN0LXZhcmlhbnRfX3JhZGlvIHtcblx0XHRmbGV4OiAwIDAgYXV0bztcblx0fVxuXG5cdC5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsLS1yYWRpbyB7XG5cdFx0ZmxleDogMTtcblx0XHRsaW5lLWhlaWdodDogMjRweDtcblx0fVxufVxuIiwiLmJjLXNpbmdsZS1wcm9kdWN0X19yYXRpbmcge1xuXHR1bmljb2RlLWJpZGk6IGJpZGktb3ZlcnJpZGU7XG5cdGNvbG9yOiAjOGI4YjhiO1xuXHRmb250LXNpemU6IDE1cHg7XG5cdGhlaWdodDogMjVweDtcblx0d2lkdGg6IDkwcHg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZzogMDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG5cdCYtLW1hc2sge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGhlaWdodDogMjVweDtcblx0XHR6LWluZGV4OiAyO1xuXHR9XG5cblx0Ji0tdG9wIHtcblx0XHRjb2xvcjogI2ZjMDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdHdpZHRoOiA5MHB4O1xuXHRcdHotaW5kZXg6IDE7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdH1cblxuXHQmLS1ib3R0b20ge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0ei1pbmRleDogMDtcblx0XHR3aWR0aDogOTBweDtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0fVxufVxuXG4uYmMtcmF0aW5nLXN0YXIge1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlxcMjYwNVwiO1xuXHRcdGZvbnQtc2l6ZTogMTVweDtcblx0fVxufVxuXG4uYmMtc2luZ2xlLXByb2R1Y3RfX3JhdGluZy1yZXZpZXdzIHtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdG1hcmdpbi1sZWZ0OiAxMHB4O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4iLCIuYmMtcHJvZHVjdF9fc3BlYy1saXN0IHtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRsb3N0LWNlbnRlcjogMTAwJTtcbn1cblxuLmJjLXByb2R1Y3RfX3NwZWMge1xuXHRmb250LXNpemU6IDE0cHg7XG5cdGxvc3Qtd2FmZmxlOiAxLzI7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGxvc3Qtd2FmZmxlOiAxLzM7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdGxvc3Qtd2FmZmxlOiAxLzQ7XG5cdH1cbn1cbiIsIi5iYy1zaW5nbGUtcHJvZHVjdF9fcmVsYXRlZCB7XG5cdHBhZGRpbmc6IDUwcHggMCAwO1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cblx0LmJjLWZvcm0uYmMtcHJvZHVjdC1mb3JtLFxuXHRidXR0b24uYmMtYnRuIHtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHR9XG59XG5cbi5iYy1zaW5nbGUtcHJvZHVjdF9fc2VjdGlvbi10aXRsZS0tcmVsYXRlZCB7XG5cdGZvbnQtc2l6ZTogMjRweDtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cbiIsIi5iYy1wcm9kdWN0LWFyY2hpdmVfX3JlZmluZXJ5IHtcblx0d2lkdGg6IDEwMCU7XG5cdG1hcmdpbjogNDBweCAwIDgwcHg7XG5cblx0LmJjLWZvcm0ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0XHR9XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtYXJjaGl2ZV9fc2VhcmNoIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRmbGV4OiAxIDEgMTAwJTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0ZmxleDogMCAxIDI3MHB4O1xuXHR9XG59XG5cbi5iYy1wcm9kdWN0LWFyY2hpdmVfX3NlbGVjdCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0bWFyZ2luLXRvcDogMTVweDtcblx0ZmxleDogMSAxIDEwMCU7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LXhzbWFsbCkge1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGZsZXg6IDAgMSBjYWxjKDMzLjMzMzMlIC0gMjBweCk7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdG1hcmdpbi1yaWdodDogMjBweDtcblxuXHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0fVxuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0XHRmbGV4OiAwIDEgYXV0bztcblx0fVxufVxuXG4uYmMtcHJvZHVjdC1hcmNoaXZlX19zZWxlY3QtbGFiZWwge1xuXHRmb250LXNpemU6IDEycHg7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdG1hcmdpbi1yaWdodDogMTBweDtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXHRmbGV4OiAwIDAgMTAwJTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQteHNtYWxsKSB7XG5cdFx0ZmxleDogMCAwIDE1MHB4O1xuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGZsZXg6IDAgMCAxMDAlO1xuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRmbGV4OiAwIDAgYXV0bztcblx0fVxufVxuXG4uYmMtcHJvZHVjdC1hcmNoaXZlX19zZWxlY3QtZmllbGQge1xuXHRmbGV4OiAwIDAgMTAwJTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQteHNtYWxsKSB7XG5cdFx0ZmxleDogMSAxIDEwMCU7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0ZmxleDogMCAwIDEwMCU7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdGZsZXg6IDAgMSBhdXRvO1xuXHR9XG5cblx0LmJjLWZvcm0gJiB7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ncmV5KTtcblx0fVxufVxuXG4uYmMtcHJvZHVjdC1hcmNoaXZlX19zZWFyY2gtc3VibWl0IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogMDtcblx0dG9wOiAwO1xuXHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRmb250LXNpemU6IDE2cHg7XG5cblx0Ji5iYy1idG4uYmMtYnRuLS1zbWFsbCB7XG5cdFx0bWF4LXdpZHRoOiBub25lO1xuXHRcdHdpZHRoOiBhdXRvO1xuXHR9XG59XG4iLCIuYmMtc3VibmF2X19saXN0IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtc21hbGwpIHtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHR9XG59XG5cbi5iYy1zdWJuYXZfX2xpc3QtaXRlbSB7XG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdHBhZGRpbmc6IDA7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LXNtYWxsKSB7XG5cblx0XHQrIC5iYy1zdWJuYXZfX2xpc3QtaXRlbSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMzBweDtcblx0XHR9XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcblx0fVxufVxuXG4uYmMtc3VibmF2X19saW5rIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmJjLXN1Ym5hdl9fbGlzdC1pdGVtLS1jdXJyZW50IC5iYy1zdWJuYXZfX2xpbmsge1xuXHRjb2xvcjogY3VycmVudENvbG9yO1xufVxuIiwiLmJjLWFsZXJ0IHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWxlcnQtYmctZGVmYXVsdCk7XG5cdGNvbG9yOiB2YXIoLS1hbGVydC1jb2xvcik7XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0bGluZS1oZWlnaHQ6IDEuNTtcblx0cGFkZGluZzogMTJweCAxNnB4O1xuXHRtYXJnaW4tYm90dG9tOiA0MHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRtYXJnaW4tYm90dG9tOiA2MHB4O1xuXHR9XG5cblx0Ji0tc3VjY2VzcyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWxlcnQtc3VjY2Vzcyk7XG5cdH1cblxuXHQmLS1lcnJvciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWxlcnQtZXJyb3IpO1xuXHR9XG59XG5cbi5iYy1hbGVydC1ncm91cCB7XG5cblx0LmJjLWFsZXJ0Om5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdH1cblxuXHQmLS1pbmZvIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hbGVydC1iZy1pbmZvKTtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHRcdGZvbnQtc2l6ZTogMTRweDtcblxuXHRcdC5iYy1wcm9kdWN0LWZvcm0gJiB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdH1cblx0fVxuXG5cdCYtLWVycm9yIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdGhlaWdodDogMDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblx0fVxuXG5cdCYuYmMtZmFkZS1pbi1hbGVydC1ncm91cCB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHRcdGhlaWdodDogYXV0bztcblx0fVxufVxuXG4uYmMtZm9ybV9fZXJyb3ItbWVzc2FnZSB7XG5cdGNvbG9yOiB2YXIoLS1hbGVydC1lcnJvcik7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtcmVndWxhcik7XG5cdGZvbnQtc2l6ZTogMTNweDtcbn1cbiIsIi5iYy1sb2FkLWl0ZW1zIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYmMtbG9hZC1pdGVtcy1jb250YWluZXItLWhhcy1wYWdlcyB7XG5cdHBhZGRpbmctYm90dG9tOiA0MHB4O1xuXG5cdD4gKjpub3QoLmJjLWxvYWQtaXRlbXNfX3RyaWdnZXIpIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tb3BhY2l0eSk7XG5cblx0XHQmLml0ZW0taW5pdGlhbGl6ZWQge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cbn1cblxuLmJjLWxvYWQtaXRlbXNfX2xvYWRlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Ym90dG9tOiAzMHB4O1xuXHRsZWZ0OiA1MCU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0b3BhY2l0eTogMDtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1vcGFjaXR5KTtcblxuXHQmLmFjdGl2ZSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG4uYmMtbG9hZC1tb3JlLWl0ZW1zLFxuLmJjLWxvYWQtaXRlbXNfX3RyaWdnZXIge1xuXHR3aWR0aDogMTAwJTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYmMtbG9hZC1tb3JlLWl0ZW1zIHtcblx0bWFyZ2luLXRvcDogMjBweDtcbn1cblxuLmJjLWxvYWQtaXRlbXNfX3RyaWdnZXItYnRuLFxuLmJjLW5vLXJlc3VsdHNfX2J1dHRvbiB7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG5cdGZvbnQtc2l6ZTogMTRweDtcblx0bGluZS1oZWlnaHQ6IDE0cHg7XG5cdG91dGxpbmU6IG5vbmU7XG5cdGJvcmRlcjogMDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdCZbZGlzYWJsZWRdIHtcblx0XHRvcGFjaXR5OiAwLjU7XG5cdFx0Y3Vyc29yOiBub3QtYWxsb3dlZDtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMge1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci1saW5rLWhvdmVyKTtcblxuXHRcdCZbZGlzYWJsZWRdIHtcblx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdFx0Y29sb3I6IHZhcigtLWNvbG9yLWxpbmstaG92ZXIpO1xuXHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdH1cblx0fVxuXG5cdC5iYy1pY29uIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRtYXJnaW4tdG9wOiAxNHB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRmb250LXNpemU6IDE4cHg7XG5cdH1cbn1cblxuLyogRXJyb3IgSGFuZGxpbmcgKi9cbi5iYy1wYWdpbmF0aW9uX19lcnJvci1tZXNzYWdlIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGZvbnQtc2l6ZTogMTRweDtcbn1cbiIsIi5iYy1vcmRlci1wcm9kdWN0LXJvdyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdH1cbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19pbWFnZSB7XG5cdGZsZXg6IDAgMCAxMDBweDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXHRtYXgtd2lkdGg6IDEwMHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRtYXJnaW46IDAgMjBweCAwIDA7XG5cdH1cblxuXHRpbWcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogYXV0bztcblx0fVxufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX2JvZHkge1xuXHRmbGV4OiAxIDEgYXV0bztcblx0bWFyZ2luLWJvdHRvbTogMTJweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bWFyZ2luOiAwIDIwcHggMCAwO1xuXHRcdG1heC13aWR0aDogNTUwcHg7XG5cdH1cbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19oZWFkZXIge1xuXG5cdC5iYy1vcmRlci1wcm9kdWN0LXJvd19fdGl0bGUge1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRsaW5lLWhlaWdodDogMjRweDtcblx0XHRtYXJnaW46IDAgMTBweCAwIDA7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0Zm9udC1zaXplOiAyNHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDMycHg7XG5cdFx0fVxuXHR9XG5cblx0LmJjLXByb2R1Y3QtZmxhZy0tZ3JleSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXHR9XG59XG5cbi5iYy1vcmRlci1wcm9kdWN0LXJvd19fYnJhbmQsXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX3VuaXQtcHJpY2UsXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX29wdGlvbiB7XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0bGluZS1oZWlnaHQ6IDIycHg7XG5cdG1hcmdpbi1ib3R0b206IDRweDtcbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19icmFuZCB7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19vcHRpb25zLWxpc3QsXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX29wdGlvbiB7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19vcHRpb25zLWxpc3Qge1xuXHRtYXJnaW4tdG9wOiA4cHg7XG59XG5cbi5iYy1vcmRlci1wcm9kdWN0LXJvd19fb3B0aW9uIHtcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWdyZXkpO1xuXHRmb250LXNpemU6IDEycHg7XG5cdGxpbmUtaGVpZ2h0OiAxOHB4O1xuXHRtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX29wdGlvbi1sYWJlbCB7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG59XG5cbi5iYy1vcmRlci1wcm9kdWN0LXJvd19fb3B0aW9uLXZhbHVlIHtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWxpZ2h0KTtcbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19zdGF0dXMge1xuXHRmb250LXNpemU6IDE2cHg7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0bGluZS1oZWlnaHQ6IDIycHg7XG5cdG1hcmdpbi1ib3R0b206IDEycHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGFsaWduLXNlbGY6IGNlbnRlcjtcblx0XHRmbGV4OiAwIDAgMTUwcHg7XG5cdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAyNHB4O1xuXHRcdG1hcmdpbjogMCAwIDAgYXV0bztcblx0fVxufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX3F1YW50aXR5IHtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdGxpbmUtaGVpZ2h0OiAxOHB4O1xuXHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmbGV4OiAwIDAgMTAwcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0fVxufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX3RvdGFsIHtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdGxpbmUtaGVpZ2h0OiAyMnB4O1xuXHRtYXJnaW4tYm90dG9tOiAyNnB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmbGV4OiAwIDAgMTUwcHg7XG5cdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cbn1cbiIsIi5iYy1vcmRlci1wcm9kdWN0LXJvd19faW1hZ2UsXG4uYmMtY2FydC1pdGVtLWltYWdlIHtcblxuXHQuYmMtcHJvZHVjdF9fdGh1bWJuYWlsLWxpbmsge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdGJvcmRlcjogMDtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tb3BhY2l0eSk7XG5cblx0XHQmOmhvdmVyLFxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0b3BhY2l0eTogMC44O1xuXHRcdH1cblx0fVxufVxuIiwiLmJjLWJ0bixcbmJ1dHRvbi5iYy1idG4sXG5hLmJjLWJ0bixcbi5lbnRyeS1jb250ZW50IC5iYy1idG4sXG4uZW50cnktY29udGVudCBidXR0b24uYmMtYnRuLFxuLmVudHJ5LWNvbnRlbnQgYS5iYy1idG4sXG4uYmMtYWNjb3VudC1sb2dpbl9fZm9ybSBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRmb250LWZhbWlseTogc2Fucy1zZXJpZjtcblx0d2lkdGg6IDEwMCU7XG5cdHBhZGRpbmc6IDE1cHggMjBweDtcblx0Ym9yZGVyLXJhZGl1czogMDtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcblx0bGluZS1oZWlnaHQ6IDIwcHg7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGJveC1zaGFkb3c6IG5vbmU7XG5cdG9wYWNpdHk6IDE7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0bWF4LXdpZHRoOiAyNzBweDtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMge1xuXHRcdG9wYWNpdHk6IDAuOTtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuXG5cdCZbZGlzYWJsZWRdIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYy1ncmV5LW1lZGl1bSk7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0XHRwYWRkaW5nOiAxNXB4IDIwcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDIwcHg7XG5cdFx0Zm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG5cdFx0b3BhY2l0eTogMC42O1xuXHRcdGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cblx0XHQmOmhvdmVyLFxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtZ3JleS1tZWRpdW0pO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0XHRcdHBhZGRpbmc6IDE1cHggMjBweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAyMHB4O1xuXHRcdFx0Zm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG5cdFx0XHRvcGFjaXR5OiAwLjY7XG5cdFx0fVxuXHR9XG5cblx0Ji0tc21hbGwge1xuXHRcdHBhZGRpbmc6IDhweCAxNnB4O1xuXHR9XG5cblx0Ji0taW52ZXJzZSB7XG5cdFx0cGFkZGluZzogMTFweCAyMHB4O1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyOiA0cHggc29saWQ7XG5cdH1cbn1cbiIsIi5iYy1xdWlja3ZpZXctdHJpZ2dlcixcbmJ1dHRvbi5iYy1xdWlja3ZpZXctdHJpZ2dlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGNvbG9yOiBpbmhlcml0O1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0cGFkZGluZzogMDtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzIHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLW9wYWNpdHkpO1xuXG5cdFx0LmJjLXF1aWNrdmlldy10cmlnZ2VyLS1ob3ZlciB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxufVxuXG4uYmMtcXVpY2t2aWV3LXRyaWdnZXItLWhvdmVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdG9wYWNpdHk6IDA7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI0LCAyMjcsIDIzMywgMC43Mik7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tb3BhY2l0eSk7XG59XG5cbi5iYy1xdWlja3ZpZXctdHJpZ2dlci0taG92ZXItbGFiZWwge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDUwJTtcblx0dG9wOiA1MCU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG5cdHdpZHRoOiA3MCU7XG5cdHBhZGRpbmc6IDEycHggMTRweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRmb250LXNpemU6IDE0cHg7XG5cdGJvcmRlci1yYWRpdXM6IDIwcHg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiIsIi5iYy1wcm9kdWN0LWNhcmQge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblxuXHQuYmMtcXVpY2t2aWV3LXRyaWdnZXIge1xuXHRcdGZsZXg6IDAgMCBhdXRvO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdH1cblxuXHQuYmMtcHJvZHVjdF9fYWN0aW9ucyB7XG5cdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0ZmxleDogMCAwIGF1dG87XG5cdH1cblxuXHQuYmMtYnRuLFxuXHRhLmJjLWJ0bixcblx0YnV0dG9uLmJjLWJ0biB7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHR9XG59XG5cbi5iYy1wcm9kdWN0LWNhcmRfX2ZlYXR1cmVkLWltYWdlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblxuXHRpbWcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogYXV0bztcblx0fVxufVxuXG4uYmMtcHJvZHVjdF9fbWV0YSB7XG5cdHBhZGRpbmc6IDI1cHggMCA1MHB4O1xuXHR3aWR0aDogMTAwJTtcblx0d29yZC13cmFwOiBicmVhay13b3JkO1xuXHRoeXBoZW5zOiBhdXRvO1xuXHRmbGV4OiAxIDEgYXV0bztcbn1cbiIsIi5iYy1wcm9kdWN0LWNhcmQtLXNpbmdsZSB7XG5cdG1heC13aWR0aDogbm9uZTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IHdyYXA7XG5cdG1hcmdpbjogNjBweCAwO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0fVxuXG5cdC5iYy1wcm9kdWN0X19nYWxsZXJ5IHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0b3JkZXI6IDI7XG5cdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHR3aWR0aDogY2FsYyg1MCUgLSAzMHB4KTtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdG1heC13aWR0aDogMzcwcHg7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0b3JkZXI6IDE7XG5cdFx0fVxuXHR9XG5cblx0LmJjLXByb2R1Y3RfX21ldGEge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0b3JkZXI6IDE7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0ZmxleDogMCAwIGF1dG87XG5cdFx0XHRvcmRlcjogMjtcblx0XHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdFx0d2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XG5cdFx0fVxuXHR9XG5cblx0LmJjLXByb2R1Y3RfX2FjdGlvbnMge1xuXHRcdG9yZGVyOiAzO1xuXHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0d2lkdGg6IGNhbGMoNTAlICsgMzBweCk7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDYwcHg7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdGZsZXg6IDAgMCBhdXRvO1xuXHRcdFx0b3JkZXI6IDM7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdFx0XHR3aWR0aDogY2FsYyg1MCUgLSAzMHB4KTtcblx0XHR9XG5cdH1cblxuXHQuYmMtYnRuIHtcblx0XHRtYXJnaW4tdG9wOiA0MHB4O1xuXHR9XG59XG4iLCIuYmMtb3JkZXItY2FyZF9fYm9keSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0fVxufVxuXG4uYmMtb3JkZXItY2FyZF9fZmVhdHVyZWQtaW1hZ2Uge1xuXHRmbGV4OiAwIDAgMTAwcHg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0bWF4LXdpZHRoOiAxMDBweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bWFyZ2luLXJpZ2h0OiAyMHB4O1xuXHR9XG5cblx0aW1nIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdH1cblxuXHQuYmMtb3JkZXItY2FyZF9fZmVhdHVyZWQtaW1hZ2UtbGluayB7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXG5cdFx0Jjpob3Zlcixcblx0XHQmOmZvY3VzIHtcblx0XHRcdG9wYWNpdHk6IDAuODtcblx0XHR9XG5cdH1cbn1cblxuLmJjLW9yZGVyLWNhcmRfX21ldGEge1xuXHRmbGV4OiAxIDEgYXV0bztcblxuXHQmLWlubmVyIHtcblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cdFx0XHRtYXgtd2lkdGg6IDU1MHB4O1xuXHRcdH1cblx0fVxufVxuXG4uYmMtb3JkZXItY2FyZF9fdGl0bGUge1xuXHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXG5cdC5iYy1vcmRlci1jYXJkX19vcmRlci10aXRsZSB7XG5cdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAyNHB4O1xuXHRcdG1hcmdpbjogMDtcblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0XHRmb250LXNpemU6IDI0cHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMzJweDtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRcdGZvbnQtc2l6ZTogMjRweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAzMnB4O1xuXHRcdH1cblx0fVxufVxuXG4uYmMtb3JkZXItY2FyZF9fb3JkZXItdGl0bGUge1xuXG5cdC5iYy1vcmRlci1jYXJkX190aXRsZS1saW5rIHtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRjb2xvcjogY3VycmVudENvbG9yO1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cblx0XHQmOmhvdmVyLFxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0Y29sb3I6IGN1cnJlbnRDb2xvcjtcblx0XHRcdG9wYWNpdHk6IDAuODtcblx0XHR9XG5cdH1cbn1cblxuLmJjLW9yZGVyLWNhcmRfX3RvdGFsIHtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdGxpbmUtaGVpZ2h0OiAyMnB4O1xuXHRtYXJnaW4tYm90dG9tOiAyNnB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0fVxufVxuXG4uYmMtb3JkZXItY2FyZC1tZXRhX19saXN0IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRtYXJnaW4tYm90dG9tOiA2cHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdH1cbn1cblxuLmJjLW9yZGVyLWNhcmQtbWV0YV9fbGlzdC1pdGVtIHtcblx0d2lkdGg6IDUwJTtcblx0bWFyZ2luLWJvdHRvbTogMTZweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHR3aWR0aDogYXV0bztcblxuXHRcdCsgLmJjLW9yZGVyLWNhcmQtbWV0YV9fbGlzdC1pdGVtIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAzMHB4O1xuXHRcdH1cblx0fVxufVxuXG4uYmMtb3JkZXItY2FyZF9fc3RhdHVzIHtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdGxpbmUtaGVpZ2h0OiAyMnB4O1xuXHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRhbGlnbi1zZWxmOiBjZW50ZXI7XG5cdFx0ZmxleDogMCAwIDE1MHB4O1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRsaW5lLWhlaWdodDogMjRweDtcblx0XHRtYXJnaW46IDAgMCAwIGF1dG87XG5cdH1cbn1cbiIsIi5iYy1wcm9kdWN0LWdyaWQge1xuXHR3aWR0aDogMTAwJTtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRwYWRkaW5nOiA0MHB4IDA7XG5cblx0PiAuYmMtcHJvZHVjdC1jYXJkIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXgtd2lkdGg6IDM3MHB4O1xuXHRcdG1hcmdpbjogMCBhdXRvIDYwcHg7XG5cdH1cblxuXHQmLS0yY29sID4gLmJjLXByb2R1Y3QtY2FyZCB7XG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0bG9zdC1jb2x1bW46IDEvMiAyIDMwcHg7XG5cdFx0fVxuXHR9XG5cblx0Ji0tM2NvbCA+IC5iYy1wcm9kdWN0LWNhcmQge1xuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRcdGxvc3QtY29sdW1uOiAxLzIgMiAzMHB4O1xuXHRcdH1cblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0XHRsb3N0LWNvbHVtbjogMS8zIDMgMzBweDtcblx0XHRcdGxvc3QtY29sdW1uLXJvdW5kZXI6IDk5Ljk4O1xuXHRcdH1cblx0fVxuXG5cdCYtLTRjb2wgPiAuYmMtcHJvZHVjdC1jYXJkIHtcblx0XHRAbWVkaWEgKC0tdmlld3BvcnQteHNtYWxsKSB7XG5cdFx0XHRsb3N0LWNvbHVtbjogMS8yIDIgMzBweDtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtc21hbGwpIHtcblx0XHRcdGxvc3QtY29sdW1uOiAxLzMgMyAzMHB4O1xuXHRcdH1cblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0XHRsb3N0LWNvbHVtbjogMS80IDQgMzBweDtcblx0XHRcdGxvc3QtY29sdW1uLXJvdW5kZXI6IDk5Ljk4O1xuXHRcdH1cblx0fVxuXG5cdCYtLTVjb2wgPiAuYmMtcHJvZHVjdC1jYXJkIHtcblx0XHRAbWVkaWEgKC0tdmlld3BvcnQteHNtYWxsKSB7XG5cdFx0XHRsb3N0LWNvbHVtbjogMS8yIDIgMzBweDtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtc21hbGwpIHtcblx0XHRcdGxvc3QtY29sdW1uOiAxLzMgMyAzMHB4O1xuXHRcdH1cblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0XHRsb3N0LWNvbHVtbjogMS80IDQgMzBweDtcblx0XHRcdGxvc3QtY29sdW1uLXJvdW5kZXI6IDk5Ljk4O1xuXHRcdH1cblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1sYXJnZSkge1xuXHRcdFx0bG9zdC1jb2x1bW46IDEvNSA1IDMwcHg7XG5cdFx0XHRsb3N0LWNvbHVtbi1yb3VuZGVyOiA5OS45ODtcblx0XHR9XG5cdH1cblxuXHQmLS1yZWxhdGVkIHtcblx0XHRwYWRkaW5nLWJvdHRvbTogMDtcblx0fVxufVxuIiwiLyogUHJvZHVjdCBMb29wIEFyY2hpdmUgKi9cbi5wb3N0LXR5cGUtYXJjaGl2ZS1iaWdjb21tZXJjZV9wcm9kdWN0IHtcblxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBMb29wOiBObyBSZXN1bHRzXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmJjLW5vLXJlc3VsdHMge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4uYmMtbm8tcmVzdWx0c19fbWVzc2FnZSB7XG5cdGZvbnQtc2l6ZTogMjJweDtcblx0bGluZS1oZWlnaHQ6IDI0cHg7XG59XG5cbi5iYy1uby1yZXN1bHRzX19idXR0b24ge1xuXHRtYXJnaW46IDAgYXV0bztcblx0Zm9udC1zaXplOiAxNnB4O1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4iLCIuYmMtcHJvZHVjdC1zaW5nbGUge1xuXHRtYXgtd2lkdGg6IDk3MHB4O1xuXHRwYWRkaW5nOiAwIDIwcHg7XG5cdG1hcmdpbjogMCBhdXRvO1xuXG5cdC5iYy1wcm9kdWN0LXNpbmdsZV9fdG9wIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdH1cblx0fVxuXG5cdC5iYy1wcm9kdWN0X19nYWxsZXJ5IHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0b3JkZXI6IDI7XG5cdFx0ZmxleDogMSAxIDEwMCU7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRvcmRlcjogMTtcblx0XHRcdGZsZXg6IDAgMCAzNzBweDtcblx0XHRcdG1hcmdpbi1yaWdodDogMzBweDtcblx0XHR9XG5cdH1cblxuXHQuYmMtcHJvZHVjdC1zaW5nbGVfX21ldGEge1xuXHRcdGZsZXg6IDEgMSAxMDAlO1xuXHRcdG9yZGVyOiAxO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0b3JkZXI6IDI7XG5cdFx0XHRmbGV4OiAwIDAgYXV0bztcblx0XHRcdHdpZHRoOiBjYWxjKDUwJSAtIDYwcHgpO1xuXHRcdH1cblx0fVxuXG5cdC5iYy1wcm9kdWN0X19za3Uge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdFx0Zm9udC1zaXplOiAxNHB4O1xuXHR9XG5cblx0LmJjLXByb2R1Y3Qtc2luZ2xlX19tZXRhLWxhYmVsIHtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXHR9XG5cblx0LmJjLXByb2R1Y3QtZm9ybSB7XG5cdFx0bWFyZ2luLXRvcDogNDBweDtcblx0fVxuXG5cdC5iYy1idG4ge1xuXHRcdG1hcmdpbi10b3A6IDQwcHg7XG5cdH1cblxuXHQuYmMtc2luZ2xlLXByb2R1Y3RfX2Rlc2NyaXB0aW9uIHtcblx0XHRtYXJnaW4tdG9wOiA2MHB4O1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHBhZGRpbmc6IDUwcHggMDtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdH1cblxuXHQuYmMtc2luZ2xlLXByb2R1Y3RfX3NwZWNpZmljYXRpb25zIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRwYWRkaW5nLWJvdHRvbTogNTBweDtcblx0fVxuXG5cdC5iYy1zaW5nbGUtcHJvZHVjdF9fc2VjdGlvbi10aXRsZSB7XG5cdFx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHR9XG5cblx0LmJjLXNpbmdsZS1wcm9kdWN0X19zZWN0aW9uLXRpdGxlLS1yZWxhdGVkIHtcblx0XHRmb250LXNpemU6IDI0cHg7XG5cdH1cblxuXHQuYmMtc2luZ2xlLXByb2R1Y3RfX3JhdGluZ3Mge1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtZm9ybV9fcXVhbnRpdHkge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uYmMtcHJvZHVjdC1mb3JtX19xdWFudGl0eS1sYWJlbCB7XG5cdG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuaW5wdXQuYmMtcHJvZHVjdC1mb3JtX19xdWFudGl0eS1pbnB1dFt0eXBlPW51bWJlcl0ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRmb250LXNpemU6IDEzcHg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0d2lkdGg6IDQycHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHR3aWR0aDogNTJweDtcblx0fVxuXG5cdCY6Zm9jdXMge1xuXHRcdGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0fVxufVxuIiwiLmJjLXByb2R1Y3QtcXVpY2stdmlld19fb3ZlcmxheSB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHRyaWdodDogMDtcblx0aGVpZ2h0OiAxMDB2aDtcblx0d2lkdGg6IDEwMHZ3O1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ibGFjay1hLTcwKTtcbn1cblxuLmJjLXByb2R1Y3QtcXVpY2stdmlld19fd3JhcHBlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRyaWdodDogMDtcblx0aGVpZ2h0OiAxMDB2aDtcblx0d2lkdGg6IDEwMHZ3O1xuXHR6LWluZGV4OiA1MDtcblxuXHQmW2FyaWEtaGlkZGVuPSd0cnVlJ10ge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuYnV0dG9uLmJjLXByb2R1Y3QtcXVpY2stdmlld19fY2xvc2UtYnV0dG9uIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogMDtcblx0dG9wOiAwO1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHRmb250LXNpemU6IDMwcHg7XG5cdHotaW5kZXg6IDI7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRwYWRkaW5nOiAxMHB4O1xuXHRvcGFjaXR5OiAwLjY1O1xuXHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblx0d2lkdGg6IGF1dG87XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0fVxufVxuXG4uYmMtcHJvZHVjdC1xdWljay12aWV3X19jb250ZW50IHtcblx0YmFja2dyb3VuZDogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiBjYWxjKDEwMHZ3IC0gMjAlKTtcblx0aGVpZ2h0OiBhdXRvO1xuXHRsZWZ0OiA1MCU7XG5cdHRvcDogMDtcblx0bWFyZ2luOiA0MHB4IDA7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0b3ZlcmZsb3cteTogc2Nyb2xsO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0aGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjAlKTtcblx0XHRtYXgtd2lkdGg6IDExNDBweDtcblx0XHRtYXgtaGVpZ2h0OiA2NjBweDtcblx0XHRtYXJnaW46IDA7XG5cdFx0dG9wOiA1MCU7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcblxuXHRcdC5icm93c2VyLWllICYge1xuXHRcdFx0bWluLWhlaWdodDogNjYwcHg7XG5cdFx0fVxuXHR9XG5cblx0KiB7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0fVxuXG5cdD4gZGl2IHtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtcXVpY2stdmlld19fY29udGVudC1pbm5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZzogNjBweDtcblxuXHQuYmMtcHJvZHVjdC1jYXJkIHtcblx0XHRtYXJnaW46IDA7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG5cblx0LmJjLXByb2R1Y3RfX2dhbGxlcnkge1xuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogNjBweDtcblx0XHRcdGZsZXg6IDEgMSAxMDAlO1xuXHRcdH1cblx0fVxuXG5cdC5iYy1wcm9kdWN0X19tZXRhIHtcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDQwcHg7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdHdpZHRoOiBjYWxjKDUwJSAtIDMwcHgpO1xuXHRcdH1cblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1sYXJnZSkge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdH1cblx0fVxuXG5cdC5iYy1wcm9kdWN0X19wcmljaW5nIHtcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHR9XG5cblx0LmJjLXNpbmdsZS1wcm9kdWN0X19yYXRpbmdzIHtcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHR9XG5cblx0LmJjLXByb2R1Y3Qtc2luZ2xlX19tZXRhLWxhYmVsIHtcblx0XHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdH1cblxuXHQuYmMtcHJvZHVjdF9fZGVzY3JpcHRpb24ge1xuXHRcdG9yZGVyOiA0O1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1hcmdpbi10b3A6IDQwcHg7XG5cdFx0cGFkZGluZy10b3A6IDMwcHg7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdHdpZHRoOiBjYWxjKDUwJSAtIDMwcHgpO1xuXHRcdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0XHRmbGV4OiAwIDAgYXV0bztcblx0XHRcdG9yZGVyOiA0O1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdFx0d2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XG5cdFx0fVxuXHR9XG59XG4iLCIuYmMtc2luZ2xlLXByb2R1Y3RfX3Jldmlld3Mge1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdHBhZGRpbmctdG9wOiAzNnB4O1xuXHRwYWRkaW5nLWJvdHRvbTogMzZweDtcblxuXHQuYmMtYWxlcnQtLXN1Y2Nlc3Mge1xuXHRcdG1hcmdpbi10b3A6IDI0cHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjRweDtcblx0fVxufVxuXG4vKiBQcm9kdWN0IFJldmlld3MgSGVhZGVyICovXG4uYmMtcHJvZHVjdC1yZXZpZXdzX190aXRsZSB7XG5cdGRpc3BsYXk6IGlubGluZTtcblx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXHRtYXJnaW4tcmlnaHQ6IDE1cHg7XG59XG5cbi5iYy1wcm9kdWN0LXJldmlld3NfX3JhdGluZ3MtdG90YWwge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyogUHJvZHVjdCBSZXZpZXcgRm9ybSAqL1xuLmJjLXByb2R1Y3QtcmV2aWV3LWZvcm0td3JhcHBlciB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdG1hcmdpbi10b3A6IDA7XG5cdHBhZGRpbmc6IDA7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXG5cdCYuYmMtcHJvZHVjdC1yZXZpZXctZm9ybS0tYWN0aXZlIHtcblx0XHRib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0XHRib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0XHRtYXJnaW4tdG9wOiAzOHB4O1xuXHRcdHBhZGRpbmc6IDQwcHggMDtcblx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRcdHBhZGRpbmc6IDUwcHggMDtcblx0XHR9XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtcmV2aWV3LWZvcm0ge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdG1heC1oZWlnaHQ6IDA7XG5cblx0LmJjLXByb2R1Y3QtcmV2aWV3LWZvcm0tLWFjdGl2ZSAmIHtcblx0XHRtYXgtaGVpZ2h0OiAyMDAwcHg7XG5cdH1cblxuXHQuYmMtYnRuLS1yZXZpZXcge1xuXHRcdG1hcmdpbjogMDtcblx0fVxuXG5cdC5iYy1mb3JtIHtcblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHR3aWR0aDogNzAlO1xuXHRcdH1cblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0XHR3aWR0aDogNTAlO1xuXHRcdH1cblx0fVxufVxuXG4uYmMtZm9ybSAuYmMtZm9ybV9fYWN0aW9ucy0tcmV2aWV3IHtcblx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG4uYmMtcHJvZHVjdC1yZXZpZXdfX3dyaXRlLWJ0bixcbi5iYy1wcm9kdWN0LXJldmlld19fY2FuY2VsLXdyaXRlLWJ0bixcbi5iYy1zaW5nbGUtcHJvZHVjdF9fcmV2aWV3cy1hbmNob3Ige1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0bWFyZ2luOiAwO1xuXHRvcGFjaXR5OiAxO1xuXHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzIHtcblx0XHRvcGFjaXR5OiAwLjk7XG5cdFx0YmFja2dyb3VuZDogdW5zZXQ7XG5cdFx0Ym9yZGVyOiAwO1xuXHR9XG5cblx0JjpkaXNhYmxlZCB7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWJsYWNrKTtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdG9wYWNpdHk6IDE7XG5cblx0XHQmOmhvdmVyLFxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWJsYWNrKTtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRcdH1cblx0fVxufVxuXG4uYmMtcHJvZHVjdC1yZXZpZXdfX3dyaXRlLWJ0biB7XG5cblx0LmJjLXByb2R1Y3QtcmV2aWV3LWZvcm0tLWFjdGl2ZSAmIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbi5iYy1wcm9kdWN0LXJldmlld19fY2FuY2VsLXdyaXRlLWJ0biB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cblx0LmJjLXByb2R1Y3QtcmV2aWV3LWZvcm0tLWFjdGl2ZSAmIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdH1cbn1cblxuLyogUHJvZHVjdCBSZXZpZXdzICovXG4uYmMtcHJvZHVjdC1yZXZpZXctbGlzdCB7XG5cdG1hcmdpbi10b3A6IDQycHg7XG59XG5cbi5iYy1wcm9kdWN0LXJldmlldyB7XG5cdG1hcmdpbi1ib3R0b206IDQycHg7XG59XG5cbi5iYy1wcm9kdWN0LXJldmlld19fdGl0bGUge1xuXHRkaXNwbGF5OiBpbmxpbmU7XG5cdG1hcmdpbi1yaWdodDogMTJweDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmJjLXByb2R1Y3QtcmV2aWV3X19oZWFkZXIge1xuXHRtYXJnaW4tYm90dG9tOiA2cHg7XG59XG5cbi5iYy1wcm9kdWN0LXJldmlld19fcmF0aW5nIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uYmMtcHJvZHVjdC1yZXZpZXdfX21ldGEge1xuXHRmb250LXNpemU6IDE0cHg7XG5cdGxpbmUtaGVpZ2h0OiAxOHB4O1xuXHRtYXJnaW4tYm90dG9tOiAxNXB4O1xufVxuXG4uYmMtcHJvZHVjdC1yZXZpZXdfX2NvbnRlbnQge1xuXHRmb250LXNpemU6IDE2cHg7XG5cdGxpbmUtaGVpZ2h0OiAyNHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHR3aWR0aDogNzAlO1xuXHR9XG59XG4iLCIuYmMtY2FydCB7XG5cdGxvc3QtY2VudGVyOiAxMTQwcHg7XG5cdG9wYWNpdHk6IDE7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXG5cdCYuYmMtdXBkYXRpbmctY2FydCB7XG5cdFx0b3BhY2l0eTogMC40O1xuXHR9XG59XG5cbi5iYy1jYXJ0X19lbXB0eSB7XG5cdHdpZHRoOiAxMDAlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRwYWRkaW5nOiA0MHB4IDA7XG59XG5cbi5iYy1jYXJ0LWhlYWRlciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblxuXHQ+IGRpdiB7XG5cdFx0cGFkZGluZzogMjBweCAwO1xuXHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRwYWRkaW5nOiA0MHB4IDA7XG5cdFx0fVxuXHR9XG5cblx0Jl9faXRlbSB7XG5cdFx0ZmxleDogMSAxIGF1dG87XG5cdH1cblxuXHQmX19xdHkge1xuXHRcdGZsZXg6IDAgMCA0MnB4O1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0ZmxleDogMCAwIDcwcHg7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdGZsZXg6IDAgMCAxMjBweDtcblx0XHR9XG5cdH1cblxuXHQmX19wcmljZSB7XG5cdFx0ZmxleDogMCAwIDcwcHg7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0ZmxleDogMCAwIDEyMHB4O1xuXHRcdH1cblx0fVxufVxuXG4uYmMtY2FydC1ib2R5IHtcblx0d2lkdGg6IDEwMCU7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLmJjLWNhcnQtaXRlbSB7XG5cdGxvc3QtY29sdW1uOiAxLzEgMSAwO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdHBhZGRpbmc6IDMwcHggMDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRwYWRkaW5nOiA0NHB4IDA7XG5cdH1cblxuXHQmOmxhc3QtY2hpbGQge1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0fVxufVxuXG4uYmMtY2FydC1pdGVtX19yZW1vdmUtYnV0dG9uIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG5cdGZvbnQtc2l6ZTogMTBweDtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdHBhZGRpbmc6IDVweCAwO1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRtYXJnaW46IDAgYXV0bztcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMge1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ncmV5LW1lZGl1bSk7XG5cblx0XHQmW2Rpc2FibGVkXSB7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWdyZXktbWVkaXVtKTtcblx0XHRcdHBhZGRpbmc6IDVweDtcblx0XHRcdG9wYWNpdHk6IDAuNDtcblx0XHR9XG5cdH1cbn1cblxuLmJjLWNhcnQtaXRlbS1pbWFnZSB7XG5cdGZsZXg6IDAgMCA2MHB4O1xuXHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRmbGV4OiAwIDAgMTEwcHg7XG5cdFx0bWFyZ2luLXJpZ2h0OiAzMHB4O1xuXHR9XG5cblx0aW1nIHtcblx0XHRtYXgtd2lkdGg6IDUwcHg7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0bWF4LXdpZHRoOiAxMTBweDtcblx0XHR9XG5cdH1cbn1cblxuLmJjLWNhcnQtaXRlbS1tZXRhIHtcblx0ZmxleDogMSAxIGF1dG87XG5cdHBhZGRpbmctcmlnaHQ6IDVweDtcblx0YWxpZ24tc2VsZjogZmxleC1zdGFydDtcblxuXHQuYmMtY2FydC1pdGVtX19wcm9kdWN0LXRpdGxlIHtcblx0XHRtYXJnaW46IDA7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxOHB4O1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDIycHg7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAyNHB4O1xuXHRcdH1cblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1sYXJnZSkge1xuXHRcdFx0Zm9udC1zaXplOiAyNHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDMycHg7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1jYXJ0LWl0ZW1fX3Byb2R1Y3QtYnJhbmQge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRmb250LXNpemU6IDE0cHg7XG59XG5cbi5iYy1jYXJ0LWl0ZW1fX3Byb2R1Y3Qtb3B0aW9uIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0bGluZS1oZWlnaHQ6IDE4cHg7XG5cdG1hcmdpbi10b3A6IDEwcHg7XG5cdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ncmV5KTtcbn1cblxuLmJjLWNhcnQtaXRlbV9fcHJvZHVjdC1vcHRpb24tbGFiZWwge1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuXG4uYmMtY2FydC1pdGVtX19wcm9kdWN0LW9wdGlvbi12YWx1ZSB7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1saWdodCk7XG59XG5cbi5iYy1jYXJ0LWl0ZW0tcXVhbnRpdHkge1xuXHRmbGV4OiAwIDAgNDJweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0ZmxleDogMCAwIDcwcHg7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdGZsZXg6IDAgMCAxMjBweDtcblx0fVxuXG5cdGlucHV0LmJjLWNhcnQtaXRlbV9fcXVhbnRpdHktaW5wdXQge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdHdpZHRoOiA0MnB4O1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0d2lkdGg6IDUycHg7XG5cdFx0fVxuXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1jYXJ0LWl0ZW0tdG90YWwtcHJpY2Uge1xuXHRmbGV4OiAwIDAgNzBweDtcblx0bWFyZ2luLWxlZnQ6IDEwcHg7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0Zm9udC1zaXplOiAxNHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0ZmxleDogMCAwIDEyMHB4O1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0fVxufVxuXG4uYmMtY2FydC1mb290ZXIge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmJjLWNhcnQtc3VidG90YWwsXG4uYmMtY2FydC10YXgge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcblx0cGFkZGluZzogMjVweCAwIDA7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbn1cblxuLmJjLWNhcnQtdGF4IHtcblx0cGFkZGluZy10b3A6IDA7XG59XG5cbi5iYy1jYXJ0LXN1YnRvdGFsX19sYWJlbCxcbi5iYy1jYXJ0LXRheF9fbGFiZWwge1xuXHRmb250LXNpemU6IDEzcHg7XG5cdG1hcmdpbi1yaWdodDogMTRweDtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdHBhZGRpbmctcmlnaHQ6IDE1cHg7XG5cdGZsZXg6IDEgMSBhdXRvO1xufVxuXG4uYmMtY2FydC1zdWJ0b3RhbF9fYW1vdW50LFxuLmJjLWNhcnQtdGF4X19hbW91bnQge1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdGZsZXg6IDAgMCA3MHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdGZsZXg6IDAgMCAxMjBweDtcblx0fVxufVxuXG4uYmMtY2FydC10YXhfX2Ftb3VudCB7XG5cdGZvbnQtc2l6ZTogMTZweDtcbn1cblxuLmJjLWNhcnQtYWN0aW9ucyB7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRtYXJnaW4tdG9wOiAzMHB4O1xufVxuXG4uYmMtY2FydC1lcnJvciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRkaXNwbGF5OiBub25lO1xuXG5cdCYubWVzc2FnZS1hY3RpdmUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbi5iYy1jYXJ0LWVycm9yX19tZXNzYWdlIHtcblx0YmFja2dyb3VuZDogI2ZmODM4Mztcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRtYXJnaW46IDA7XG5cblx0Lm1lc3NhZ2UtYWN0aXZlICYge1xuXHRcdHBhZGRpbmc6IDEwcHg7XG5cdH1cbn1cbiIsIi5iaWdjb21tZXJjZS1jYXJ0X19pdGVtLWNvdW50IHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcblx0Y29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXHRib3JkZXItcmFkaXVzOiAxNXB4O1xuXHR3aWR0aDogMjVweDtcblx0aGVpZ2h0OiAyNXB4O1xuXHRmb250LXNpemU6IDEycHg7XG5cdGxpbmUtaGVpZ2h0OiAyNXB4O1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHRyYW5zZm9ybTogc2NhbGUoMCk7XG5cdHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyB2YXIoLS1lYXNlLWluLW91dC1jdWJpYyk7XG5cblx0Ji5mdWxsIHtcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDEpO1xuXHR9XG59XG4iLCIuYmMtYWNjb3VudC1hZGRyZXNzZXMge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5iYy1hY2NvdW50LWFkZHJlc3Nlc19fbGlzdCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAxO1xuXHRvcGFjaXR5OiAxO1xuXHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLW9wYWNpdHkpO1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDA7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cblx0Ji5iYy1hY2NvdW50LWFkZHJlc3MtLWZvcm0tYWN0aXZlIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cblx0LmJjLWFjY291bnQtYWRkcmVzc2VzX19pdGVtIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cGFkZGluZzogMzBweDtcblx0fVxuXG5cdC5iYy1hY2NvdW50LWFkZHJlc3Nlc19fYWRkLW5ldyB7XG5cdFx0cGFkZGluZzogMDtcblx0fVxufVxuXG4uYmMtYWNjb3VudC1hZGRyZXNzZXNfX2l0ZW0ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW9mZi13aGl0ZSk7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXG5cdCY6bm90KC5iYy1hY2NvdW50LWFkZHJlc3Nlc19fYWRkLW5ldykge1xuXG5cdFx0Jjpob3Zlcixcblx0XHQmOmZvY3VzIHtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTtcblx0XHRcdGJveC1zaGFkb3c6IDAgNHB4IDRweCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0XHR9XG5cdH1cblxuXHR3aWR0aDogMTAwJTtcblx0bWFyZ2luLWJvdHRvbTogMzBweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bG9zdC1jb2x1bW46IDEvMyAzIDMwcHg7XG5cdH1cbn1cblxuLmJjLWFjY291bnQtYWRkcmVzc19fbWV0YSB7XG5cblx0PiBzcGFuIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmb250LXNpemU6IDE0cHg7XG5cdH1cbn1cblxuc3Bhbi5iYy1hY2NvdW50LWFkZHJlc3NfX25hbWUge1xuXHRmb250LXdlaWdodDogNzAwO1xuXHRmb250LXNpemU6IDIwcHg7XG5cdGxpbmUtaGVpZ2h0OiAyNHB4O1xuXHRtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuXG4uYmMtYWNjb3VudC1hZGRyZXNzX19waG9uZSB7XG5cdG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi5iYy1hY2NvdW50LWFkZHJlc3NfX2VkaXQsXG4uYmMtYWNjb3VudC1hZGRyZXNzX19kZWxldGUsXG5idXR0b24uYmMtYWNjb3VudC1hZGRyZXNzX19lZGl0LFxuYnV0dG9uLmJjLWFjY291bnQtYWRkcmVzc19fZGVsZXRlLFxuYS5iYy1hY2NvdW50LWFkZHJlc3NfX2VkaXQsXG5hLmJjLWFjY291bnQtYWRkcmVzc19fZGVsZXRlIHtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlcjogMDtcblx0b3V0bGluZTogbm9uZTtcblx0cGFkZGluZzogMDtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRmb250LXNpemU6IDE0cHg7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0Ym94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXHRvcGFjaXR5OiAxO1xuXHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLW9wYWNpdHkpO1xuXHRtYXJnaW4tdG9wOiAzMHB4O1xuXHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyB7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0b3BhY2l0eTogMC44Mjtcblx0fVxufVxuXG4uYmMtYWNjb3VudC1hZGRyZXNzX19kZWxldGUtZm9ybSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmJjLWFjY291bnQtYWRkcmVzc2VzX19hZGQtbmV3IHtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdHBhZGRpbmc6IDA7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5iYy1hY2NvdW50LWFkZHJlc3Nlc19fYWRkLWJ1dHRvbixcbmJ1dHRvbi5iYy1hY2NvdW50LWFkZHJlc3Nlc19fYWRkLWJ1dHRvbixcbmEuYmMtYWNjb3VudC1hZGRyZXNzZXNfX2FkZC1idXR0b24ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWJsYWNrKTtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cdHdpZHRoOiAxMDAlO1xuXHRwYWRkaW5nOiA0MHB4IDEwcHg7XG5cdGZvbnQtc2l6ZTogMjBweDtcblx0bGluZS1oZWlnaHQ6IDE7XG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuXHRmb250LXdlaWdodDogNzAwO1xuXHRib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jb2xvci1vZmYtd2hpdGUpO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG5cblx0LmJjLWljb24ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRtYXJnaW4tYm90dG9tOiAxOHB4O1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHR9XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1vZmYtd2hpdGUpO1xuXHR9XG59XG5cbi5iYy1hY2NvdW50LWFkZHJlc3MtZm9ybS1hY3Rpb25zIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0bWFyZ2luOiA2MHB4IGF1dG8gMjBweDtcblx0ZmxleDogMSAxIDEwMCU7XG5cblx0PiBidXR0b24ge1xuXHRcdG1hcmdpbjogMCAxMHB4IDIwcHg7XG5cdH1cbn1cblxuLmJjLWFjY291bnQtYWRkcmVzc19fYWN0aW9ucy0tbmV3IHtcblx0ZmxleDogMSAxIDEwMCU7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdG1pbi1oZWlnaHQ6IDI1MHB4O1xufVxuXG4uYmMtYWNjb3VudC1hZGRyZXNzX19kZWxldGUtY29uZmlybWF0aW9uIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdG9wYWNpdHk6IDA7XG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cdHotaW5kZXg6IDA7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0YmFja2dyb3VuZDogdmFyKC0tY29sb3Itb2ZmLXdoaXRlKTtcblx0cGFkZGluZzogMzBweDtcblxuXHQ+IGJ1dHRvbiB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0fVxufVxuXG4uYmMtY29uZmlybWF0aW9uLWFjdGl2ZSB7XG5cdG9wYWNpdHk6IDE7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdHotaW5kZXg6IDI7XG59XG5cbi8qIERpYWxvZyBBZGRyZXNzIFN0eWxlcyAqL1xuLmJjLWFjY291bnQtYWRkcmVzcy1mb3JtX193cmFwcGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAyO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXG5cdCZbYXJpYS1oaWRkZW49J3RydWUnXSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4uYmMtYWNjb3VudC1hZGRyZXNzLWZvcm1fX292ZXJsYXkge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4uYmMtYWNjb3VudC1hZGRyZXNzLWZvcm1fX2NvbnRlbnQge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4iLCIuYmMtYWNjb3VudC1wYWdlIHtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdHBhZGRpbmc6IDQwcHggMDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0cGFkZGluZzogNjBweCAwIDkwcHg7XG5cdH1cbn1cbiIsIi5iYy1hY2NvdW50LWxvZ2luIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiB3cmFwO1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmJjLWFjY291bnQtbG9naW5fX2Zvcm0sXG4uYmMtYWNjb3VudC1sb2dpbl9fcmVnaXN0ZXIge1xuXHRtYXJnaW4tYm90dG9tOiA0MHB4O1xuXHR3aWR0aDogMTAwJTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0d2lkdGg6IDUwJTtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG59XG5cbi5iYy1hY2NvdW50LWxvZ2luX19mb3JtLWlubmVyLFxuLmJjLWFjY291bnQtbG9naW5fX2Zvcm0gZm9ybSB7XG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRtYXgtd2lkdGg6IDM3MHB4O1xuXHR9XG59XG5cbi5iYy1hY2NvdW50LWxvZ2luX19mb3JtIHtcblxuXHRwLmxvZ2luLXVzZXJuYW1lLFxuXHRwLmxvZ2luLXBhc3N3b3JkLFxuXHRwLmxvZ2luLXJlbWVtYmVyIHtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxNHB4O1xuXHRcdFx0cGFkZGluZy1yaWdodDogMjhweDtcblx0XHR9XG5cdH1cblxuXHRsYWJlbCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWFyZ2luLWJvdHRvbTogNnB4O1xuXHR9XG59XG5cbi5iYy1hY2NvdW50LWxvZ2luX19yZWdpc3RlciB7XG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cblx0XHQmLWlubmVyIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAyOHB4O1xuXHRcdFx0bWF4LXdpZHRoOiAzNzBweDtcblx0XHR9XG5cdH1cbn1cblxuLmJjLWFjY291bnQtbG9naW5fX3JlZ2lzdGVyLXRpdGxlIHtcblx0bWFyZ2luLXRvcDogMDtcbn1cblxuLmJjLWFjY291bnQtbG9naW5fX3JlZ2lzdGVyLWxpc3Qge1xuXHRtYXJnaW4tbGVmdDogMjBweDtcbn1cbiIsIi5iYy1hY2NvdW50LXJlZ2lzdGVyLXN1Y2Nlc3Mge1xuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0bWF4LXdpZHRoOiA1NTBweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cbn1cbiIsIi5iYy1vcmRlcl9faGVhZGVyIHtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuXG4uYmMtb3JkZXJfX2xpbmsge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbi1sZWZ0OiAxMHB4O1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiAnXFwwMEI3Jztcblx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdH1cbn1cblxuLmJjLW9yZGVyLW1ldGFfX2xhYmVsLFxuLmJjLW9yZGVyLW1ldGFfX3ZhbHVlIHtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRsaW5lLWhlaWdodDogMThweDtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4uYmMtb3JkZXItbWV0YV9fbGFiZWwge1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG59XG5cbi5iYy1vcmRlci1tZXRhX192YWx1ZSB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG59XG4iLCIuYmMtb3JkZXItbGlzdCxcbi5iYy1vcmRlci1saXN0X19pdGVtIHtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bWFyZ2luOiAwO1xufVxuXG4uYmMtb3JkZXItbGlzdCB7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdHBhZGRpbmctYm90dG9tOiA0MHB4O1xuXG5cdCYuYmMtbG9hZC1pdGVtcy1jb250YWluZXItLWhhcy1wYWdlcyB7XG5cdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0fVxufVxuXG4uYmMtb3JkZXItbGlzdF9faXRlbSB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0cGFkZGluZzogMzJweCAwO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRwYWRkaW5nOiA1MHB4IDA7XG5cdH1cblxuXHQmOmZpcnN0LWNoaWxkIHtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdH1cbn1cblxuLmJjLW9yZGVyLWNhcmRfX2JvZHkge1xuXHRtYXJnaW4tdG9wOiA0MHB4O1xufVxuIiwiLmJjLW9yZGVyLWRldGFpbCB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0cGFkZGluZy10b3A6IDUwcHg7XG59XG5cbi5iYy1vcmRlcl9fcHJvZHVjdC1saXN0LFxuLmJjLW9yZGVyX19wcm9kdWN0LWxpc3QtaXRlbSB7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdG1hcmdpbjogMDtcbn1cblxuLmJjLW9yZGVyX19wcm9kdWN0LWxpc3Qge1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdHBhZGRpbmctYm90dG9tOiA0MHB4O1xuXHRtYXJnaW4tYm90dG9tOiA0NnB4O1xufVxuXG4uYmMtb3JkZXJfX3Byb2R1Y3QtbGlzdC1pdGVtIHtcblxuXHQrIC5iYy1vcmRlcl9fcHJvZHVjdC1saXN0LWl0ZW0ge1xuXHRcdG1hcmdpbi10b3A6IDMwcHg7XG5cdH1cbn1cblxuLmJjLW9yZGVyLWRldGFpbF9fYm9keSB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0cGFkZGluZy1ib3R0b206IDM2cHg7XG5cdG1hcmdpbi1ib3R0b206IDQ4cHg7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHR9XG59XG5cbi5iYy1vcmRlci1kZXRhaWxfX2NvbCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGxvc3QtY29sdW1uOiAxLzIgMiA0MHB4O1xuXHR9XG59XG5cbi5iYy1vcmRlci1kZXRhaWwtbWV0YV9fbGlzdCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4uYmMtb3JkZXItZGV0YWlsLW1ldGFfX2xpc3QtaXRlbSB7XG5cdGxvc3QtY29sdW1uOiAxLzIgMjtcblx0bWFyZ2luLWJvdHRvbTogMjBweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bG9zdC1jb2x1bW46IDEvMyAzIDIwcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMzZweDtcblx0fVxufVxuXG4uYmMtb3JkZXItZGV0YWlsX19zaGlwbWVudHMge1xuXHRtYXJnaW4tdG9wOiAxNnB4O1xufVxuXG4uYmMtb3JkZXItc2hpcG1lbnQge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHR9XG5cblx0LmJjLW9yZGVyLW1ldGFfX2xhYmVsIHtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0Zm9ub3Qtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0XHRsaW5lLWhlaWdodDogMThweDtcblx0XHRsZXR0ZXItc3BhY2luZzogMDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0XHRtYXJnaW46IDA7XG5cdH1cblxuXHQrIC5iYy1vcmRlci1zaGlwbWVudCB7XG5cdFx0bWFyZ2luLXRvcDogMzZweDtcblx0fVxufVxuXG4uYmMtb3JkZXItc2hpcG1lbnRfX2NvbCB7XG5cdG1hcmdpbi1ib3R0b206IDE2cHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGxvc3QtY29sdW1uOiAxLzIgMiAyMHB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cbn1cblxuLmJjLW9yZGVyLXNoaXBtZW50X190cmFja2luZyB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cblx0Ji1tZXRhIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXHR9XG59XG5cbi5iYy1vcmRlci1zaGlwbWVudF9fYWRkcmVzcyB7XG5cblx0PiAqIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG4uYmMtb3JkZXItZGV0YWlsX190b3RhbHMge1xuXHRtYXJnaW4tdG9wOiA1MHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRsb3N0LWNvbHVtbjogMS8zO1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cbn1cblxuLmJjLW9yZGVyLWRldGFpbC10b3RhbHNfX2xpc3QsXG4uYmMtb3JkZXItZGV0YWlsLXRvdGFsc19fbGlzdC1pdGVtIHtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4uYmMtb3JkZXItZGV0YWlsLXRvdGFsc19fbGlzdC1pdGVtIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC13cmFwOiBuby13cmFwO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cblx0KyAuYmMtb3JkZXItZGV0YWlsLXRvdGFsc19fbGlzdC1pdGVtIHtcblx0XHRtYXJnaW4tdG9wOiA0cHg7XG5cdH1cblxuXHQmOmxhc3QtY2hpbGQge1xuXHRcdG1hcmdpbi10b3A6IDM2cHg7XG5cdH1cbn1cblxuLmJjLW9yZGVyLWRldGFpbC10b3RhbHNfX2xhYmVsLFxuLmJjLW9yZGVyLWRldGFpbC10b3RhbHNfX3ZhbHVlIHtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRsaW5lLWhlaWdodDogMjRweDtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cblx0Ji0tbGcge1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRsaW5lLWhlaWdodDogMjJweDtcblx0fVxufVxuXG4uYmMtb3JkZXItZGV0YWlsLXRvdGFsc19fbGFiZWwge1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtZ3JleSk7XG59XG4iLCIuYmMtYWNjb3VudC1sb3N0LXBhc3N3b3JkIHtcblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdG1heC13aWR0aDogNTEwcHg7XG5cdH1cbn1cblxuLmJjLWFjY291bnQtbG9zdC1wYXNzd29yZF9fYWNjb3VudC1hY3Rpb25zIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdG1hcmdpbi10b3A6IDMwcHg7XG59XG5cbi5iYy1hY2NvdW50LWxvc3QtcGFzc3dvcmRfX2FjY291bnQtbGluayB7XG5cblx0KyAuYmMtYWNjb3VudC1sb3N0LXBhc3N3b3JkX19hY2NvdW50LWxpbmsge1xuXHRcdG1hcmdpbi1sZWZ0OiAzMHB4O1xuXHR9XG59XG4iLCIuYmMtZ2lmdC1wYWdlIHtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdHBhZGRpbmc6IDQwcHggMDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0cGFkZGluZzogNjBweCAwIDY4cHg7XG5cdH1cbn1cblxuLmJjLWdpZnQtcHVyY2hhc2Uge1xuXG5cdC5iYy1mb3JtX19yb3cge1xuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR9XG5cdH1cblxuXHQuYmMtZm9ybV9fY29sIHtcblx0XHRmbGV4OiAwIDEgNTAlO1xuXG5cdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiA0MHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogNDBweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmJjLWdpZnQtaW5zdHJ1Y3Rpb25zIHtcblx0bWFyZ2luLXRvcDogNDBweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bWFyZ2luLXRvcDogNzVweDtcblx0fVxuXG5cdG9sID4gbGkgKyBsaSB7XG5cdFx0bWFyZ2luLXRvcDogMTZweDtcblx0fVxufVxuXG4uYmMtZ2lmdC1iYWxhbmNlIHtcblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0fVxufVxuXG4uYmMtZ2lmdC1iYWxhbmNlX19mb3JtLFxuLmJjLWdpZnQtYmFsYW5jZV9fcmVzcG9uc2Uge1xuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0ZmxleDogMCAxIDUwJTtcblx0fVxufVxuXG4uYmMtZ2lmdC1iYWxhbmNlX19yZXNwb25zZSB7XG5cblx0PiAqIHtcblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogODBweDtcblx0XHR9XG5cdH1cbn1cblxuLmJjLWdpZnQtYmFsYW5jZV9fY29udGFpbmVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRtYXJnaW4tdG9wOiA0MHB4O1xuXHRwYWRkaW5nOiA3NHB4IDIwcHggNzJweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0fVxufVxuXG4uYmMtZ2lmdC1iYWxhbmNlX190aXRsZSxcbi5iYy1naWZ0LWJhbGFuY2VfX2Ftb3VudCxcbi5iYy1naWZ0LWJhbGFuY2VfX2NvZGUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXHRsaW5lLWhlaWdodDogMTtcbn1cblxuLmJjLWdpZnQtYmFsYW5jZV9fdGl0bGUge1xuXHRmb250LXNpemU6IDE2cHg7XG5cdG1hcmdpbi1ib3R0b206IDM0cHg7XG59XG5cbi5iYy1naWZ0LWJhbGFuY2VfX2Ftb3VudCB7XG5cdGZvbnQtc2l6ZTogNDhweDtcblx0bWFyZ2luLWJvdHRvbTogMzRweDtcbn1cblxuLmJjLWdpZnQtYmFsYW5jZV9fY29kZSB7XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbiJdfQ== */ \ No newline at end of file +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3Bjc3MvbWFzdGVyLnBjc3MiLCIuLi9wY3NzL2Jhc2UvX2ljb25zLnBjc3MiLCIuLi9wY3NzL3V0aWxpdGllcy9fYWxsLnBjc3MiLCIuLi9wY3NzL3V0aWxpdGllcy92YXJpYWJsZXMvX2NvbG9ycy5wY3NzIiwiLi4vcGNzcy91dGlsaXRpZXMvdmFyaWFibGVzL19lYXNpbmcucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL3ZhcmlhYmxlcy9fZm9ybXMucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL3ZhcmlhYmxlcy9mb3Jtcy9fbGFiZWwucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL3ZhcmlhYmxlcy9mb3Jtcy9fbGVnZW5kLnBjc3MiLCIuLi9wY3NzL3V0aWxpdGllcy92YXJpYWJsZXMvZm9ybXMvX2NvbnRyb2xzLnBjc3MiLCIuLi9wY3NzL3V0aWxpdGllcy92YXJpYWJsZXMvZm9ybXMvX2F0dHJpYnV0ZXMucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL3ZhcmlhYmxlcy9faWNvbnMucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL3ZhcmlhYmxlcy9fdHlwb2dyYXBoeS5wY3NzIiwiLi4vcGNzcy91dGlsaXRpZXMvdmFyaWFibGVzL19zcGFjZXJzLnBjc3MiLCIuLi9wY3NzL3V0aWxpdGllcy9taXhpbnMvX2J1dHRvbnMucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL21peGlucy9fZm9ybXMucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL21peGlucy9fdGV4dC1oZWxwZXJzLnBjc3MiLCIuLi9wY3NzL3V0aWxpdGllcy9taXhpbnMvX3R5cG9ncmFwaHkucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL21peGlucy9fdXRpbGl0aWVzLnBjc3MiLCIuLi9wY3NzL3V0aWxpdGllcy9taXhpbnMvX3Zpc2liaWxpdHkucGNzcyIsIi4uL3Bjc3MvdXRpbGl0aWVzL2hlbHBlci1jbGFzc2VzL192aXNpYmlsaXR5LnBjc3MiLCIuLi9wY3NzL3V0aWxpdGllcy9oZWxwZXItY2xhc3Nlcy9fY29sb3JzLnBjc3MiLCIuLi9wY3NzL2Jhc2UvX2FsbC5wY3NzIiwiLi4vcGNzcy9iYXNlL2Zvcm1zL19kZWZhdWx0LnBjc3MiLCIuLi9wY3NzL2Jhc2UvZm9ybXMvX3ZhbGlkYXRpb24ucGNzcyIsIi4uL3Bjc3MvYmFzZS9mb3Jtcy9jb250cm9scy9fZGVmYXVsdC5wY3NzIiwiLi4vcGNzcy9iYXNlL2Zvcm1zL2NvbnRyb2xzL19maWxlLnBjc3MiLCIuLi9wY3NzL2Jhc2UvZm9ybXMvY29udHJvbHMvX3JhZGlvLWNoZWNrYm94LnBjc3MiLCIuLi9wY3NzL2Jhc2UvZm9ybXMvY29udHJvbHMvX3NlbGVjdC5wY3NzIiwiLi4vcGNzcy9iYXNlL2Zvcm1zL2NvbnRyb2xzL190ZXh0YXJlYS5wY3NzIiwiLi4vcGNzcy92ZW5kb3IvX2FsbC5wY3NzIiwiLi4vcGNzcy92ZW5kb3Ivc3dpcGVyL19hbGwucGNzcyIsIi4uL3Bjc3MvdmVuZG9yL3N3aXBlci9fZGVmYXVsdC5wY3NzIiwiPG5vIHNvdXJjZT4iLCIuLi9wY3NzL3ZlbmRvci9mbGF0cGlja3IvX2FsbC5wY3NzIiwiLi4vcGNzcy92ZW5kb3IvZmxhdHBpY2tyL19kZWZhdWx0LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvX2FsbC5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX2FsbC5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX3RpdGxlLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fYnJhbmQucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19wcmljZS5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX2ZsYWdzLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fZGVzY3JpcHRpb24ucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19nYWxsZXJ5LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fZm9ybS1jb21wb25lbnRzLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fb3B0aW9uLWRyb3Bkb3duLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fb3B0aW9uLXN3YXRjaC5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX29wdGlvbi1yZWN0YW5nbGUucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19vcHRpb24tcGljay1saXN0LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fb3B0aW9uLXJhZGlvLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fcmF0aW5ncy5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX3NwZWNzLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fcmVsYXRlZC1wcm9kdWN0cy5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NvbXBvbmVudHMvX3JlZmluZXJ5LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fc3VibmF2LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fYWxlcnQucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19wYWdpbmF0aW9uLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY29tcG9uZW50cy9fb3JkZXItcHJvZHVjdC1yb3cucGNzcyIsIi4uL3Bjc3MvY29udGVudC9jb21wb25lbnRzL19pbWFnZXMucGNzcyIsIi4uL3Bjc3MvY29udGVudC9idXR0b25zL19kZWZhdWx0LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvYnV0dG9ucy9fcXVpY2stdmlldy5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NhcmRzL19kZWZhdWx0LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY2FyZHMvX3NpbmdsZS5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2NhcmRzL19vcmRlci5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2xvb3AvX2RlZmF1bHQucGNzcyIsIi4uL3Bjc3MvY29udGVudC9sb29wL19wcm9kdWN0cy5wY3NzIiwiLi4vcGNzcy9jb250ZW50L2xvb3AvX25vLXJlc3VsdHMucGNzcyIsIi4uL3Bjc3MvY29udGVudC9zaW5nbGUvX3Byb2R1Y3QucGNzcyIsIi4uL3Bjc3MvY29udGVudC9zaW5nbGUvX3Byb2R1Y3QtcXVpY2stdmlldy5wY3NzIiwiLi4vcGNzcy9jb250ZW50L3NpbmdsZS9fcHJvZHVjdC1yZXZpZXdzLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY2FydC9fY2FydC1wYWdlLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvY2FydC9fY2FydC1tZW51LWl0ZW0ucGNzcyIsIi4uL3Bjc3MvY29udGVudC9wYWdlL19hZGRyZXNzLnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvcGFnZS9fYWNjb3VudC1kZWZhdWx0LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvcGFnZS9fYWNjb3VudC1sb2dpbi5wY3NzIiwiLi4vcGNzcy9jb250ZW50L3BhZ2UvX2FjY291bnQtcmVnaXN0ZXIucGNzcyIsIi4uL3Bjc3MvY29udGVudC9wYWdlL29yZGVycy9fZGVmYXVsdC5wY3NzIiwiLi4vcGNzcy9jb250ZW50L3BhZ2Uvb3JkZXJzL19vcmRlci1oaXN0b3J5LnBjc3MiLCIuLi9wY3NzL2NvbnRlbnQvcGFnZS9vcmRlcnMvX29yZGVyLWRldGFpbC5wY3NzIiwiLi4vcGNzcy9jb250ZW50L3BhZ2UvX2xvc3QtcGFzc3dvcmQucGNzcyIsIi4uL3Bjc3MvY29udGVudC9wYWdlL19naWZ0LWNlcnRpZmljYXRlLnBjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7O0FBRUgsV0FBVztBQ1ZYOzs7O21GQUltRjtBQUVuRix1QkFBdUI7QUFFdkI7RUFDRSxpQ0FBaUM7RUFDakM7Ozs7bUdBSTBHO0VBQzFHLG9CQUFvQjtFQUNwQixtQkFBbUI7Q0FDcEI7QUFFRDtFQUNFLGdGQUFnRjtFQUNoRiw0Q0FBNEM7RUFDNUMsWUFBWTtFQUNaLG1CQUFtQjtFQUNuQixvQkFBb0I7RUFDcEIsc0NBQXFCO1VBQXJCLDhCQUFxQjtFQUFyQixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLGVBQXFDOztFQUVyQyx1Q0FBdUM7RUFDdkMsb0NBQW9DO0VBQ3BDLG1DQUFtQztDQUNwQztBQUVEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7O0FEcEhELGVBQWU7QUVaZjs7Ozs7OzttRkFPbUY7QUFFbkYsZUFBZTtBQ1ZmLE9BQ0M7O29GQUVtRixBQWdCbkY7O29GQUVtRixBQUtuRjs7b0ZBRW1GLEFBTW5GOztvRkFFbUYsQUFNbkY7O29GQUVtRixBQVFuRjs7b0ZBRW1GLEFBS25GOztvRkFFbUYsQUFLbkY7O29GQUVtRixBQUtuRjs7b0ZBRW1GO0NBT25GO0FDbEZELE9BQ0Msa0JBQWtCLEFBS2xCLGtCQUFrQixBQUtsQixtQkFBbUIsQUFLbkIsbUJBQW1CLEFBS25CLG1CQUFtQixBQUtuQixrQkFBa0IsQUFLbEIsa0JBQWtCLEFBS2xCLGtCQUFrQjtDQUlsQjtBQ3hDRCxPQUNDOztvRkFFbUYsQUFRbkY7O29GQUVtRixBQVNuRjs7b0ZBRW1GLEFBRWxELG1CQUFtQixBQUNsQixtQkFBbUIsQUFDWixpQkFBaUIsQUFDViwrQkFBK0IsQUFDbkIsWUFBWSxBQUN4QyxZQUFZLEFBQ0wsWUFBWSxBQUVuRDs7b0ZBRW1GLEFBSTlDLFdBQVcsQUFDTyxXQUFXLEFBQzlCLGdDQUFnQyxBQUNWLGdDQUFnQyxBQUsxRjs7b0ZBRW1GO0NBTW5GO0FDeERELE9BQ0M7O29GQUVtRixBQVluRjs7b0ZBRW1GO0NBWW5GO0FDN0JELE9BQ0M7O29GQUVtRixBQVluRjs7b0ZBRW1GO0NBYW5GO0FDOUJELE9BQ0M7O29GQUVtRixBQW1CbkY7O29GQUVtRixBQVVuRjs7b0ZBRW1GLEFBS25GOztvRkFFbUYsQUFrQm5GOztvRkFFbUYsQUF5Q25GOztvRkFFbUYsQUFLbkY7O29GQUVtRjtDQUduRjtBQ3BIRCxPQUNDOztvRkFFbUY7Q0FXbkY7QUNkRDs7bUZBRW1GO0FBRW5GLHVCQUF1QjtBQ0p2QixPQUNDOztvRkFFbUYsQUFPbkY7O29GQUVtRixBQVluRjs7b0ZBRW1GLEFBUW5GOztvRkFFbUYsQUFTbkY7O29GQUVtRjtDQUluRjtBQ25ERCxPQUNDOztvRkFFbUY7Q0FRbkY7QVZnQkQsY0FBYztBQUdkLFlBQVk7QVc3Qlo7Ozs7bUZBSW1GO0FBZW5GOzs7O21GQUltRjtBQXNCbkY7Ozs7bUZBSW1GO0FDakRuRjs7OzttRkFJbUY7QUFPbkY7Ozs7bUZBSW1GO0FBV25GOzs7O21GQUltRjtBQU9uRjs7OzttRkFJbUY7QUFxQm5GOzs7O21GQUltRjtBQWVuRjs7OzttRkFJbUY7QUE4Q25GOzs7O21GQUltRjtBQTRFbkY7Ozs7bUZBSW1GO0FBdUJuRjs7OzttRkFJbUY7QUFxQm5GOzs7O21GQUltRjtBQzNRbkY7Ozs7bUZBSW1GO0FBT25GOzs7O21GQUltRjtBQVFuRjs7OzttRkFJbUY7QUMzQm5GOzs7O21GQUltRjtBQ0puRjs7OzttRkFJbUY7QUFXbkY7Ozs7Ozs7Ozs7bUZBVW1GO0FDekJuRjs7Ozs7O21GQU1tRjtBQU9uRjs7Ozs7O21GQU1tRjtBQWFuRjs7OzttRkFJbUY7QWhCQ25GLG9CQUFvQjtBaUJyQ3BCOzs7O21GQUltRjtBQUVuRjtFREdDLHlCQUF5QjtFQUN6QixtQkFBbUI7Q0NGbkI7QUFFRDs7OzttRkFJbUY7QUFFbkY7O0VETUMsVUFBVTtFQUNWLG9CQUFvQjtFQUNwQixZQUFZO0VBQ1osYUFBYTtFQUNiLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsbUJBQW1CO0VBQ25CLFdBQVc7Q0NWWDtBQUVEOzs7O21GQUltRjtBQUVuRjtFRExDLFVBQVU7RUFDVixvQkFBb0I7RUFDcEIsWUFBWTtFQUNaLGFBQWE7RUFDYixpQkFBaUI7RUFDakIsV0FBVztFQUNYLG1CQUFtQjtFQUNuQixXQUFXO0NDQVg7QUM5QkQ7RUFDQyxZQUEwQjtDQVMxQjtBQUxDOztFQUVDLFlBQTBCO0NBQzFCO0FBSUg7RUFDQyxlQUE2QjtDQVM3QjtBQUxDOztFQUVDLGVBQTZCO0NBQzdCOztBcEJKSCxVQUFVO0FxQmZWOzs7Ozs7O21GQU9tRjtBcEJSbkY7Ozs7bUZBSW1GO0FBRW5GLHVCQUF1QjtBQUV2QjtFQUNFLGlDQUFpQztFQUNqQzs7O21HQUkwRztFQUMxRyxvQkFBb0I7RUFDcEIsbUJBQW1CO0NBQ3BCO0FBRUQsVUFDRSxnRkFBZ0Y7RUFDaEYsNENBQTRDO0VBQzVDLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsb0JBQW9CO0VBQ3BCLHNDQUFxQjtVQUFyQiw4QkFBcUI7RUFBckIscUJBQXFCO0VBQ3JCLHFCQUFxQjtFQUNyQixlQUFxQyxBQUVyQyx1Q0FBdUM7RUFDdkMsb0NBQW9DO0VBQ3BDLG1DQUFtQztDQUNwQztBQUVEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QW9CckhELFdBQVc7QUNYVjtFQUREO0lBRUUscUJBQWM7SUFBZCxxQkFBYztJQUFkLGNBQWM7SUFDZCwrQkFBb0I7SUFBcEIsOEJBQW9CO1FBQXBCLHdCQUFvQjtZQUFwQixvQkFBb0I7SUFDcEIsc0JBQWtCO1FBQWxCLGtCQUFrQjtJQUNsQixvQkFBb0I7SUFDcEIsWUFBWTtHQUViO0NBREM7QUFJRDtFQUREO0lBRUUsb0JBQWU7UUFBZixtQkFBZTtZQUFmLGVBQWU7R0FNaEI7RUFKQztJQUNDLGlCQUFpQjtHQUNqQjtDQUNEO0FBR0Y7RUFDQyxxQkFBYztFQUFkLHFCQUFjO0VBQWQsY0FBYztFQUNkLCtCQUFvQjtFQUFwQiw4QkFBb0I7TUFBcEIsd0JBQW9CO1VBQXBCLG9CQUFvQjtFQUNwQixvQkFBZ0I7TUFBaEIsZ0JBQWdCO0VBQ2hCLFlBQVk7Q0FDWjtBQUVEO0VBQ0MsVUFBVTtDQUtWO0FBSEE7RUFDQyxVQUFVO0NBQ1Y7QUFHRjtFQUNDLGNBQWM7RUFDZCxVQUFVO0VBQ1YsV0FBVztDQU9YO0FBSkM7RUFERDtJQUVFLGlCQUFpQjtHQUVsQjtDQURDO0FBSUg7RUFDQyxZQUFZO0VBQ1osb0JBQW9CO0NBcUJwQjtBQW5CQTtFQUpEO0lBS0Usb0JBQW9CO0dBa0JyQjtFQWhCQztJQUNDLFdBQVc7R0FDWDtFQUVEO0lBQ0Msb0JBQW9CO0dBQ3BCO0VBRUQ7SUFDQyxtQkFBbUI7R0FDbkI7RUFFRDtJQUNDLFlBQVk7R0FDWjtDQUNEO0FBR0Y7RUFDQywrQkFBdUI7VUFBdkIsdUJBQXVCO0VBQ3ZCLGVBQWU7RUFDZixvQkFBb0I7Q0FLcEI7QUFIQTtFQUxEO0lBTUUsb0JBQW9CO0dBRXJCO0NBREM7QUFHRjtFQUNDLGVBQWU7RUFDZixtQkFBbUI7Q0FhbkI7QUFYQTtFQUNDLHFCQUFjO0VBQWQscUJBQWM7RUFBZCxjQUFjO0VBQ2QsbUJBQW1CO0NBUW5CO0FBTkE7RUFDQyxhQUFhO0VBQ2IsZUFBZTtFQUNmLGtCQUFrQjtFQUNsQixlQUEyQjtDQUMzQjtBQUlIO0VBQ0MsMEJBQTZDO0VBQzdDLG9CQUFvQjtFQUNwQix3QkFBd0I7Q0F5QnhCO0FBdkJBO0VBQ0MsMEJBQW9CO01BQXBCLHVCQUFvQjtVQUFwQixvQkFBb0I7RUFDcEIscUJBQWM7RUFBZCxxQkFBYztFQUFkLGNBQWM7RUFDZCxvQkFBZ0I7TUFBaEIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtDQUtqQjtBQUhBO0VBQ0MsaUJBQWlCO0NBQ2pCO0FBR0Y7RUFDQyxtQkFBbUI7Q0FNbkI7QUFKQTtFQUNDLFlBQVk7RUFDWixXQUFXO0NBQ1g7QUFHRjtFQUNDLG1CQUFtQjtDQUNuQjtBQUdGO0VBQ0MscUJBQWM7RUFBZCxxQkFBYztFQUFkLGNBQWM7RUFDZCwrQkFBb0I7RUFBcEIsOEJBQW9CO01BQXBCLHdCQUFvQjtVQUFwQixvQkFBb0I7RUFDcEIsaUJBQWlCO0VBQ2pCLFlBQVk7Q0FVWjtBQVJBO0VBTkQ7SUFPRSx5QkFBd0I7UUFBeEIsc0JBQXdCO1lBQXhCLHdCQUF3QjtJQUN4QixpQkFBaUI7R0FNbEI7Q0FMQztBQUVEO0VBQ0Msd0JBQTRCO01BQTVCLHFCQUE0QjtVQUE1Qiw0QkFBNEI7Q0FDNUI7QUMxSUE7Ozs7Ozs7RUFPQywwQkFBcUM7Q0FDckM7QUNaSDs7Ozs7Ozs7O21GQVNtRjtBQUVuRjtFVjJEQywwQ0FBOEI7RUFBOUIsa0NBQThCO0VBQzlCLGdCQUFxQztFQUNyQyw0QkFBK0U7RUFDL0UsZUFBZTtFQUNmLFlBQVk7RUFDWixhQUFtQztFQUNuQyxZQUFpQztFQUNqQyx1QkFBbUQ7RUFDbkQscUJBQW1EO0VBQ25ELDBGQUEwSztDVWxFMUs7QUFFRDs7Ozs7Ozs7Ozs7OzttRkFhbUY7QUFFbkY7RVZpUEMsbUJBQW1CO0NVL09uQjtBVmlQQTtFQUNDLG9CQUFzRDtDQUN0RDtBQUVEO0VBQ0MsbUJBQW1CO0VBQ25CLFNBQStDO0VBQy9DLE9BQTJDO0VBQzNDLGlCQUFzQztFQUN0QyxhQUFhO0VBQ2IsWUFBc0M7RUFDdEMsa0JBQWtEO0VBQ2xELG1CQUFtQjtFQUNuQixXQUFXO0VBQ1gsa0JBQThDO0NBQzlDO0FVNVBEOzs7Ozs7RUFNQywwQkFBNkM7RUFDN0MsK0JBQXVCO1VBQXZCLHVCQUF1QjtFQUN2QixlQUFvQztFQUNwQyxpQkFBcUM7RUFDckMsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixvQkFBb0I7RUFDcEIsWUFBWTtDQUNaO0FDbERGO0VYc0VDLDBDQUE4QjtFQUE5QixrQ0FBOEI7RUFDOUIsZ0JBQXFDO0VBQ3JDLDRCQUErRTtFQUMvRSxlQUFlO0VBQ2YsWUFBWTtFQUNaLGFBQW1DO0VBQ25DLFlBQWlDO0VBQ2pDLHVCQUFtRDtFQUNuRCxxQkFBbUQ7RUFDbkQsMEZBQTBLO0VXNUUxSyxlQUE4QztFQUM5QyxhQUFhO0VBQ2IsbUJBQTBDO0VBQzFDLGVBQXFDO0NBQ3JDO0FDUEQ7RVoySUMsZUFBZTtDWTVHZjtBWjhHQTs7RUFFQyxhQUFhO0VBQ2IsWUFBWTtFQUNaLHNCQUFzQjtFQUN0QixvQkFBb0I7RUFDcEIsV0FBVztDQUNYO0FBRUQ7RUFDQyxZQUFzRDtFQUN0RCxnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLHNCQUFzQjtFQUN0Qix1QkFBd0U7RUFDeEUscUJBQXdFO0VBQ3hFLDRGQUFtUjtDQUNuUjtBWTNKRDs7RUFFQyxpQkFBaUI7RUFDakIsbUJBQWtFO0NBS2xFO0FBSEE7RVowSkQsMENBQThCO0VBQTlCLGtDQUE4QjtFQUM5QixtQkFBbUI7RUFDbkIsbUJBQXFFO0NZMUpuRTtBWjRKRjs7OztFQUVDLG1CQUFtQjtFQUNuQixVQUF1RTtFQUN2RSxTQUFxRTtFQUNyRSxnQkFBd0U7Q0FDeEU7QUFFRDtFQUNDLGlCQUE4RDtDQXFCOUQ7QUFuQkE7Ozs7RUFFQywwQ0FBOEI7RUFBOUIsa0NBQThCO0VBQzlCLFlBQVk7RUFDWixtQkFBbUI7Q0FDbkI7QUFFRDtFQUNDLHVCQUFrRTtFQUNsRSxjQUFtRDtFQUNuRCxlQUFxRDtFQUNyRCxVQUF3RDtFQUN4RCxRQUEwRDtFQUMxRCw0QkFBbUg7Q0FDbkg7QUFFRDtFQUNDLFdBQVc7Q0FDWDtBQUdGO0VBQ0Msc0JBQXVFO0VBQ3ZFLHNDQUFtSTtVQUFuSSw4QkFBbUk7Q0FDbkk7QUFFRDtFQUNDLFlBQThEO0NBSzlEO0FBSEE7RUFDQyxXQUFXO0NBQ1g7QVluTUY7O0VBRUMsaUJBQTBEO0NBQzFEO0FBR0EseUJBQXlCO0FaMk16QjtFQUNDLGlCQUE2RDtDQUM3RDtBQUVEO0VBQ0MsVUFBb0Q7RUFDcEQsU0FBa0Q7RUFDbEQsV0FBNkM7RUFDN0MsWUFBK0M7RUFDL0MsMEJBQXNHO0VBQ3RHLGlCQUFpQjtFQUNqQixtQkFBbUI7RUFDbkIsa0NBQTBCO1VBQTFCLDBCQUEwQjtDQUMxQjtBWWpORCx5QkFBeUI7QVorTnpCOztFQUVDLG1CQUFtQjtDQUNuQjtBQUVEO0VBQ0MsVUFBaUQ7RUFDakQsU0FBK0M7RUFDL0MsV0FBMEM7RUFDMUMsWUFBNEM7RUFDNUMsMEJBQThEO0NBQzlEO0FZak9GO0VBQ0MscUJBQWM7RUFBZCxxQkFBYztFQUFkLGNBQWM7RUFDZCwrQkFBb0I7RUFBcEIsOEJBQW9CO01BQXBCLHdCQUFvQjtVQUFwQixvQkFBb0I7RUFDcEIsc0JBQWtCO01BQWxCLGtCQUFrQjtFQUNsQiwwQkFBb0I7TUFBcEIsdUJBQW9CO1VBQXBCLG9CQUFvQjtDQUNwQjtBQUVEOztFQUVDLG9CQUFlO01BQWYsbUJBQWU7VUFBZixlQUFlO0NBQ2Y7QUFFRDtFQUNDLG9CQUFRO01BQVIsWUFBUTtVQUFSLFFBQVE7Q0FDUjtBQ2pERjtFYnNFQywwQ0FBOEI7RUFBOUIsa0NBQThCO0VBQzlCLGdCQUFxQztFQUNyQyw0QkFBK0U7RUFDL0UsZUFBZTtFQUNmLFlBQVk7RUFDWixhQUFtQztFQUNuQyxZQUFpQztFQUNqQyx1QkFBbUQ7RUFDbkQscUJBQW1EO0VBQ25ELDBGQUEwSztFYTVFMUssaUJBQWlCO0VBQ2pCLGdCQUFnQjtDQVFoQjtBQU5BLG9CQUFvQjtBQUNwQjtFQUNDLGVBQXlDO0VBQ3pDLGNBQW1EO0VBQ25ELG1CQUFxRDtDQUNyRDtBQ1hGO0Vkc0VDLDBDQUE4QjtFQUE5QixrQ0FBOEI7RUFDOUIsZ0JBQXFDO0VBQ3JDLDRCQUErRTtFQUMvRSxlQUFlO0VBQ2YsWUFBWTtFQUNaLGFBQW1DO0VBQ25DLFlBQWlDO0VBQ2pDLHVCQUFtRDtFQUNuRCxxQkFBbUQ7RUFDbkQsMEZBQTBLO0VjNUUxSyxhQUFhO0VBQ2IsbUJBQThDO0VBQzlDLGNBQTRDO0NBQzVDOztBNUJhRCxZQUFZO0E2QmxCWjs7Ozs7OzttRkFPbUY7QUFFbkYsdUJBQXVCO0FDVnZCOzs7Ozs7Ozs7bUZBU21GO0FDVG5GO0VBQ0Msa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLGlCQUFpQjtFQUNqQixXQUFXLEFBRVgsOEJBQThCO0VBQzlCLFdBQVc7Q0FDWDtBQUVEO0VBQ0MsWUFBWTtDQUNaO0FBRUQ7RUFDQyw2QkFBNkI7RUFDN0IsOEJBQThCO0VBRTlCLDJCQUEyQjtFQUMzQix1QkFBdUI7Q0FDdkI7QUFFRDtFQUNDLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osYUFBYTtFQUNiLFdBQVc7RUFDWCxxQkFBYztFQUFkLHFCQUFjO0VBQWQsY0FBYztFQUNkLCtDQUErQjtFQUEvQix1Q0FBK0I7RUFBL0IsK0JBQStCO0VBQS9CLGtEQUErQjtFQUMvQixnQ0FBZ0M7RUFDaEMsd0JBQXdCO0NBQ3hCO0FBRUQ7O0VBRUMsd0NBQWdDO1VBQWhDLGdDQUFnQztDQUNoQztBQUVEO0VBQ0Msb0JBQWdCO01BQWhCLGdCQUFnQjtDQUNoQjtBQUVEO0VBQ0MsNkNBQXFDO1VBQXJDLHFDQUFxQztFQUNyQyxlQUFlO0NBQ2Y7QUFFRDtFQUNDLHFCQUFlO01BQWYsZUFBZTtFQUNmLFlBQVk7RUFDWixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLCtDQUErQjtFQUEvQix1Q0FBK0I7RUFBL0IsK0JBQStCO0VBQS9CLGtEQUErQjtDQUMvQjtBQUVEO0VBQ0MsbUJBQW1CO0NBQ25CO0FBRUQsaUJBQWlCO0FBQ2pCOztFQUVDLGFBQWE7Q0FDYjtBQUVEO0VBQ0MseUJBQXdCO01BQXhCLHNCQUF3QjtVQUF4Qix3QkFBd0I7RUFDeEIsdURBQXVDO0VBQXZDLCtDQUF1QztFQUF2Qyx1Q0FBdUM7RUFBdkMsMERBQXVDO0NBQ3ZDO0FBRUQsZ0JBQWdCO0FBQ2hCO0VBQ0MsNEJBQW9CO1VBQXBCLG9CQUFvQjtDQUNwQjtBQUVEOzs7Ozs7O0VBT0MscUNBQTZCO1VBQTdCLDZCQUE2QjtDQUM3QjtBQUVEOzs7O0VBSUMsbUJBQW1CO0VBQ25CLFFBQVE7RUFDUixPQUFPO0VBQ1AsWUFBWTtFQUNaLGFBQWE7RUFDYixxQkFBcUI7RUFDckIsWUFBWTtDQUNaO0FBRUQ7RUFDQywrR0FBaUY7RUFBakYsZ0ZBQWlGO0NBQ2pGO0FBRUQ7RUFDQywrR0FBa0Y7RUFBbEYsaUZBQWtGO0NBQ2xGO0FBRUQ7RUFDQyxpSEFBZ0Y7RUFBaEYsK0VBQWdGO0NBQ2hGO0FBRUQ7RUFDQyxpSEFBbUY7RUFBbkYsa0ZBQW1GO0NBQ25GO0FBRUQsZ0NBQWdDO0FBQ2hDOztFQUVDLHdCQUF3QjtFQUN4QixvQkFBb0I7Q0FDcEI7QUFFRDs7RUFFQyx3QkFBd0I7RUFDeEIsb0JBQW9CO0NBQ3BCO0FBRUQ7O0VBRUMsbUJBQW1CO0VBQ25CLFNBQVM7RUFDVCxZQUFZO0VBQ1osYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLDJCQUEyQjtFQUMzQiw0QkFBNEI7RUFDNUIsNkJBQTZCO0NBQzdCO0FBRUQ7O0VBRUMsY0FBYztFQUNkLGFBQWE7RUFDYixxQkFBcUI7Q0FDckI7QUFFRDs7RUFFQyxxUkFBcVI7RUFDclIsV0FBVztFQUNYLFlBQVk7Q0FDWjtBQUVEOztFQUVDLHFSQUFxUjtFQUNyUixZQUFZO0VBQ1osV0FBVztDQUNYO0FBRUQ7O0VBRUMscVJBQXFSO0NBQ3JSO0FBRUQ7O0VBRUMscVJBQXFSO0NBQ3JSO0FBRUQ7O0VBRUMscVJBQXFSO0NBQ3JSO0FBRUQ7O0VBRUMscVJBQXFSO0NBQ3JSO0FBRUQ7RUFDQyxtQkFBbUI7RUFDbkIsbUJBQW1CO0VBQ25CLGtDQUEwQjtFQUExQiwwQkFBMEI7RUFDMUIsd0NBQWdDO1VBQWhDLGdDQUFnQztFQUNoQyxZQUFZO0NBQ1o7QUFFRDtFQUNDLFdBQVc7Q0FDWDtBQUVELG1CQUFtQjtBQUNuQjs7O0VBR0MsYUFBYTtFQUNiLFFBQVE7RUFDUixZQUFZO0NBQ1o7QUFFRCxhQUFhO0FBQ2I7RUFDQyxpQkFBaUI7RUFDakIsYUFBYTtDQUNiO0FBRUQ7RUFDQywrQkFBdUI7VUFBdkIsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtDQUNuQjtBQUVEO0VBQ0MsNEJBQW9CO1VBQXBCLG9CQUFvQjtDQUNwQjtBQUVEO0VBQ0MsK0JBQXVCO1VBQXZCLHVCQUF1QjtDQUN2QjtBQUVEO0VBQ0MsK0JBQXVCO1VBQXZCLHVCQUF1QjtDQUN2QjtBQUVEO0VBQ0MsK0JBQXVCO1VBQXZCLHVCQUF1QjtDQUN2QjtBQUVEO0VBQ0MsK0JBQXVCO1VBQXZCLHVCQUF1QjtDQUN2QjtBQUVEO0VBQ0MsV0FBVztFQUNYLFlBQVk7RUFDWixzQkFBc0I7RUFDdEIsb0JBQW9CO0VBQ3BCLGlCQUFpQjtFQUNqQixhQUFhO0NBQ2I7QUFFRDtFQUNDLGFBQWE7RUFDYixVQUFVO0VBQ1YsV0FBVztFQUNYLHlCQUFpQjtVQUFqQixpQkFBaUI7RUFDakIseUJBQWlCO0tBQWpCLHNCQUFpQjtVQUFqQixpQkFBaUI7Q0FDakI7QUFFRDtFQUNDLGdCQUFnQjtDQUNoQjtBQUVEO0VBQ0MsV0FBVztFQUNYLG9CQUFvQjtDQUNwQjtBQUVEO0VBQ0MsWUFBWTtFQUNaLFNBQVM7RUFDVCwyQ0FBbUM7VUFBbkMsbUNBQW1DO0NBQ25DO0FBRUQ7RUFDQyxjQUFjO0VBQ2QsZUFBZTtDQUNmO0FBRUQ7RUFDQyxTQUFTO0VBQ1Qsb0NBQTRCO1VBQTVCLDRCQUE0QjtFQUM1QixXQUFXO0NBQ1g7QUFFRDtFQUNDLHNCQUFzQjtFQUN0Qix1REFBdUM7RUFBdkMsK0NBQXVDO0VBQXZDLHVDQUF1QztFQUF2QyxnRUFBdUM7Q0FDdkM7QUFFRDtFQUNDLGNBQWM7Q0FDZDtBQUVEO0VBQ0MsVUFBVTtFQUNWLG9DQUE0QjtVQUE1Qiw0QkFBNEI7RUFDNUIsb0JBQW9CO0NBQ3BCO0FBRUQ7RUFDQyx3REFBd0M7RUFBeEMsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QyxpRUFBd0M7Q0FDeEM7QUFFRDtFQUNDLHlEQUF5QztFQUF6QyxpREFBeUM7RUFBekMseUNBQXlDO0VBQXpDLGtFQUF5QztDQUN6QztBQUVELGNBQWM7QUFDZDtFQUNDLCtCQUFnQztFQUNoQyxtQkFBbUI7Q0FDbkI7QUFFRDtFQUNDLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsUUFBUTtFQUNSLE9BQU87RUFDUCxZQUFZO0VBQ1osYUFBYTtFQUNiLDRCQUFvQjtVQUFwQixvQkFBb0I7RUFDcEIsbUNBQTJCO1VBQTNCLDJCQUEyQjtDQUMzQjtBQUVEO0VBQ0Msb0NBQTRCO1VBQTVCLDRCQUE0QjtDQUM1QjtBQUVEO0VBQ0MsWUFBWTtFQUNaLFlBQVk7RUFDWixRQUFRO0VBQ1IsT0FBTztDQUNQO0FBRUQ7RUFDQyxXQUFXO0VBQ1gsYUFBYTtFQUNiLFFBQVE7RUFDUixPQUFPO0NBQ1A7QUFFRDtFQUNDLGlCQUFpQjtDQUNqQjtBQUVEO0VBQ0MscUNBQXNDO0NBQ3RDO0FBRUQ7RUFDQyxpQkFBaUI7Q0FDakI7QUFFRDtFQUNDLGlCQUFpQjtDQUNqQjtBQUVEO0VBQ0MsK0JBQWdDO0NBQ2hDO0FBRUQ7RUFDQyxpQkFBaUI7Q0FDakI7QUFFRCxlQUFlO0FBQ2Y7RUFDQyxvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2Qiw4QkFBK0I7Q0FDL0I7QUFFRDtFQUNDLG1CQUFtQjtFQUNuQixTQUFTO0VBQ1QsWUFBWTtFQUNaLFlBQVk7RUFDWixZQUFZO0VBQ1osV0FBVztDQUNYO0FBRUQ7RUFDQyxtQkFBbUI7RUFDbkIsV0FBVztFQUNYLFFBQVE7RUFDUixZQUFZO0VBQ1osV0FBVztFQUNYLFlBQVk7Q0FDWjtBQUVEO0VBQ0MsYUFBYTtFQUNiLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsOEJBQStCO0VBQy9CLG9CQUFvQjtFQUNwQixRQUFRO0VBQ1IsT0FBTztDQUNQO0FBRUQ7RUFDQyxhQUFhO0NBQ2I7QUFFRDtFQUNDLFlBQVk7RUFDWixhQUFhO0VBQ2IscUJBQWM7RUFBZCxxQkFBYztFQUFkLGNBQWM7RUFDZCx5QkFBd0I7TUFBeEIsc0JBQXdCO1VBQXhCLHdCQUF3QjtFQUN4QiwwQkFBb0I7TUFBcEIsdUJBQW9CO1VBQXBCLG9CQUFvQjtFQUNwQixtQkFBbUI7Q0FDbkI7QUFFRDs7O0VBR0MsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQix1QkFBdUI7RUFDdkIsb0JBQW9CO0NBQ3BCO0FBRUQ7RUFDQyxhQUFhO0NBQ2I7QUFFRCxlQUFlO0FBQ2Y7RUFDQyxZQUFZO0VBQ1osYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixVQUFVO0VBQ1YsU0FBUztFQUNULG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLDhCQUFzQjtVQUF0QixzQkFBc0I7RUFDdEIsb0VBQTREO1VBQTVELDREQUE0RDtDQUM1RDtBQUVEO0VBQ0MsZUFBZTtFQUNmLFlBQVk7RUFDWixZQUFZO0VBQ1osYUFBYTtFQUNiLDA3Q0FBMDdDO0VBQzE3Qyx5QkFBeUI7RUFDekIsc0JBQXNCO0VBQ3RCLDZCQUE2QjtDQUM3QjtBQUVEO0VBQ0MsdTdDQUF1N0M7Q0FDdjdDO0FBRUQ7RUFFQztJQUNDLGtDQUEwQjtZQUExQiwwQkFBMEI7R0FDMUI7Q0FDRDtBQUVEO0VBRUM7SUFDQyxrQ0FBMEI7WUFBMUIsMEJBQTBCO0dBQzFCO0NBQ0Q7QUFFRCxVQUFVO0FBQ1Y7RUFDQyxtQkFBbUI7RUFDbkIsUUFBUTtFQUNSLE9BQU87RUFDUCxxQkFBcUI7RUFDckIsV0FBVztFQUNYLGVBQWU7Q0FDZjtBQUVEO0VBQ0MsNkNBQXFDO1VBQXJDLHFDQUFxQztDQUNyQztBQUVEO0VBQ0MscUJBQXFCO0VBQ3JCLHFDQUE2QjtFQUE3Qiw2QkFBNkI7Q0FDN0I7QUFFRDtFQUNDLHFCQUFxQjtDQUNyQjtBQUVEOztFQUVDLHFCQUFxQjtDQUNyQjtBQUVEO0VBQ0Msa0JBQWtCO0NBQ2xCO0FBRUQ7RUFDQyxxQkFBcUI7RUFDckIsb0NBQTRCO1VBQTVCLDRCQUE0QjtFQUM1QixXQUFXO0VBQ1gsbUJBQW1CO0VBQ25CLDhCQUFzQjtVQUF0QixzQkFBc0I7RUFDdEIsWUFBWTtFQUNaLGFBQWE7Q0FDYjtBQUVEO0VBQ0MscUJBQXFCO0NBQ3JCO0FBRUQ7RUFDQyxpQ0FBeUI7VUFBekIseUJBQXlCO0NBQ3pCO0FBRUQ7O0VBRUMscUJBQXFCO0NBQ3JCO0FBRUQ7Ozs7RUFJQyxxQkFBcUI7RUFDckIsb0JBQW9CO0NBQ3BCO0FBRUQ7Ozs7RUFJQyxXQUFXO0VBQ1gsb0NBQTRCO1VBQTVCLDRCQUE0QjtDQUM1QjtBQUVEO0VBQ0MsbUJBQW1CO0VBQ25CLFFBQVE7RUFDUixVQUFVO0VBQ1YsWUFBWTtFQUNaLGFBQWE7RUFDYixpQkFBaUI7RUFDakIsYUFBYTtFQUNiLDJCQUEyQjtFQ2ppQjVCLHVLQUFBO0VEa2lCQyxtQkFBbUI7RUFDbkIsV0FBVztDQUNYO0FBRUQ7RUFDQyxrQkFBa0I7Q0FDbEI7QUFFRDtFQUNDLHFCQUFxQjtFQUNyQixvQ0FBNEI7VUFBNUIsNEJBQTRCO0VBQzVCLFdBQVc7Q0FDWDtBQUVEO0VBQ0MscUJBQXFCO0NBQ3JCO0FBRUQ7O0VBRUMscUJBQXFCO0NBQ3JCO0FBRUQ7Ozs7RUFJQyxXQUFXO0VBQ1gsb0NBQTRCO1VBQTVCLDRCQUE0QjtDQUM1QjtBQUVELDZDQUNDLHlCQUF5QjtFQUN6Qix3QkFBd0I7Q0FDeEI7QUVwa0JELG9DQUFvQztBQ0FwQyxvQkFBb0I7QUFDcEIsdUJBQXVCO0FBRXZCO0VBQ0Msd0JBQXdCO0VBQ3hCLFdBQVc7RUFDWCxjQUFjO0VBQ2QsbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQixXQUFXO0VBQ1gsd0JBQXdCO0VBQ3hCLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2YsVUFBVTtFQUNWLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsK0JBQStCO0VBQy9CLHVCQUF1QjtFQUN2QiwrQkFBK0I7RUFDL0IsMkJBQTJCO0VBQzNCLGlCQUFpQjtFQUNqQix3SEFBc0g7RUFDdEgsZ0hBQThHO0NBQzlHO0FBQ0Q7O0VBRUMsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixvQkFBb0I7Q0FDcEI7QUFDRDtFQUNDLHNCQUFzQjtFQUN0QixlQUFlO0NBQ2Y7QUFDRDtFQUNDLHFFQUFxRTtFQUNyRSw2REFBNkQ7Q0FDN0Q7QUFDRDtFQUNDLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsU0FBUztDQUNUO0FBQ0Q7RUFDQyxtQkFBbUI7RUFDbkIsc0JBQXNCO0NBQ3RCO0FBQ0Q7RUFDQyxhQUFhO0VBQ2IsZUFBZTtDQUNmO0FBQ0Q7RUFDQyxvQ0FBb0M7RUFDcEMsNEJBQTRCO0NBQzVCO0FBQ0Q7RUFDQyxzREFBc0Q7RUFDdEQsOENBQThDO0NBQzlDO0FBQ0Q7O0VBRUMsaUJBQWlCO0VBQ2pCLDhCQUE4QjtFQUM5Qiw2QkFBNkI7Q0FDN0I7QUFDRDtFQUNDLGVBQWU7Q0FDZjtBQUNEO0VBQ0MsYUFBYTtFQUNiLDhCQUE4QjtDQUM5QjtBQUNEO0VBQ0MsYUFBYTtDQUNiO0FBQ0Q7O0VBRUMsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixxQkFBcUI7RUFDckIsMEJBQTBCO0VBQzFCLFlBQVk7RUFDWixVQUFVO0VBQ1YsU0FBUztFQUNULFdBQVc7Q0FDWDtBQUNEOztFQUVDLFdBQVc7RUFDWCxZQUFZO0NBQ1o7QUFDRDtFQUNDLGtCQUFrQjtFQUNsQixlQUFlO0NBQ2Y7QUFDRDtFQUNDLGtCQUFrQjtFQUNsQixlQUFlO0NBQ2Y7QUFDRDs7RUFFQyxhQUFhO0NBQ2I7QUFDRDtFQUNDLDZCQUE2QjtDQUM3QjtBQUNEO0VBQ0MsMEJBQTBCO0NBQzFCO0FBQ0Q7O0VBRUMsVUFBVTtDQUNWO0FBQ0Q7RUFDQywwQkFBMEI7Q0FDMUI7QUFDRDtFQUNDLHVCQUF1QjtDQUN2QjtBQUNEO0VBQ0MsV0FBVztDQUNYO0FBQ0Q7RUFDQyxtQkFBbUI7RUFDbkIsc0JBQXNCO0NBQ3RCO0FBQ0Q7RUFDQyxxQkFBcUI7RUFFckIscUJBQXFCO0VBQ3JCLGNBQWM7Q0FDZDtBQUNEO0VBQ0Msd0JBQXdCO0VBQ3hCLHlCQUF1QjtFQUN2Qix3QkFBc0I7RUFDdEIsYUFBYTtFQUNiLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMxQix1QkFBdUI7RUFDdkIsc0JBQXNCO0VBQ3RCLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsb0JBQW9CO0VBRXBCLFlBQVk7RUFDWixRQUFRO0NBQ1I7QUFDRDs7RUFFQyxzQkFBc0I7RUFDdEIsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixTQUFTO0VBQ1Qsa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixjQUFjO0VBQ2QsV0FBVztFQUNYLHlCQUF1QjtFQUN2Qix3QkFBc0I7Q0FDdEI7QUFDRDs7RUFFQyxjQUFjO0NBQ2Q7QUFDRDs7RUFFQyxtQkFBbUI7Q0FDbkI7QUFDRDs4REFFQzt3QkFDdUIsQUFDdkI7TUFDSztFQUNMLFFBQVEsQUFDUjtzQkFDcUIsQUFDckI7TUFDSztDQUNMO0FBQ0Q7MEJBQzBCO0FBQzFCO3dCQUN3QjtBQUN4Qjs4REFFQzt3QkFDdUIsQUFDdkI7TUFDSztFQUNMLFNBQVMsQUFDVDtzQkFDcUIsQUFDckI7TUFDSztDQUNMO0FBQ0Q7MEJBQzBCO0FBQzFCO3dCQUN3QjtBQUN4Qjs7RUFFQyxlQUFlO0NBQ2Y7QUFDRDs7RUFFQyxjQUFjO0NBQ2Q7QUFDRDs7RUFFQyxZQUFZO0VBQ1osYUFBYTtDQUNiO0FBQ0Q7O0VBRUMsOEJBQThCO0VBQzlCLHNCQUFzQjtFQUN0QixjQUFjO0NBQ2Q7QUFDRDtFQUNDLG1CQUFtQjtFQUNuQixhQUFhO0NBQ2I7QUFDRDs7RUFFQyxzQkFBc0I7Q0FDdEI7QUFDRDtFQUNDLFlBQVk7Q0FDWjtBQUNEO0VBQ0MsY0FBYztDQUNkO0FBQ0Q7RUFDQyxtQkFBbUI7RUFDbkIsU0FBUztFQUNULFlBQVk7RUFDWixxQkFBcUI7RUFDckIsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLHdDQUFzQztFQUN0QywrQkFBK0I7RUFDL0IsdUJBQXVCO0NBQ3ZCO0FBQ0Q7RUFDQyw4QkFBNEI7Q0FDNUI7QUFDRDtFQUNDLDhCQUE0QjtDQUM1QjtBQUNEO0VBQ0MsZUFBZTtFQUNmLFlBQVk7RUFDWixtQkFBbUI7Q0FDbkI7QUFDRDtFQUNDLE9BQU87RUFDUCxpQkFBaUI7Q0FDakI7QUFDRDtFQUNDLG1DQUFtQztFQUNuQyxvQ0FBb0M7RUFDcEMsOENBQTRDO0VBQzVDLFNBQVM7Q0FDVDtBQUNEO0VBQ0MsU0FBUztDQUNUO0FBQ0Q7RUFDQyxtQ0FBbUM7RUFDbkMsb0NBQW9DO0VBQ3BDLDJDQUF5QztFQUN6QyxTQUFTO0NBQ1Q7QUFDRDtFQUNDLGVBQWU7RUFDZixhQUFhO0NBQ2I7QUFDRDtFQUNDLHdCQUFzQjtDQUN0QjtBQUNEO0VBQ0MsK0JBQTZCO0NBQzdCO0FBQ0Q7RUFDQyxXQUFXO0NBQ1g7QUFDRDtFQUNDLGdCQUFnQjtFQUNoQixxQkFBcUI7RUFDckIsaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsV0FBVztFQUNYLFlBQVk7RUFDWixzQkFBc0I7RUFDdEIsZUFBZTtFQUNmLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsbUJBQW1CO0VBQ25CLDhDQUE4QztFQUM5QyxzQ0FBc0M7Q0FDdEM7QUFDRDtFQUNDLHFCQUFxQjtFQUNyQixpQkFBaUI7RUFDakIsZUFBZTtFQUNmLHNCQUFzQjtFQUN0QixtQkFBbUI7RUFDbkIsV0FBVztDQUNYO0FBQ0Q7RUFDQywrQkFBNkI7Q0FDN0I7QUFDRDtFQUNDLFdBQVc7RUFDWCxhQUFhO0VBQ2Isc0JBQXNCO0NBQ3RCO0FBQ0Q7RUFDQyx1Q0FBcUM7Q0FDckM7QUFDRDtFQUNDLG9DQUFrQztDQUNsQztBQUNEO0VBQ0Msd0JBQXdCO0VBQ3hCLCtCQUErQjtFQUMvQix1QkFBdUI7RUFDdkIsZUFBZTtFQUNmLGFBQWE7RUFDYixxQkFBcUI7RUFDckIsVUFBVTtFQUNWLHNCQUFzQjtFQUN0QixtQkFBbUI7RUFDbkIscUJBQXFCO0VBQ3JCLGlCQUFpQjtFQUNqQixxQkFBcUI7RUFDckIsYUFBYTtFQUNiLFVBQVU7RUFDVixpQkFBaUI7RUFDakIseUJBQXdCO0VBQXhCLHdCQUF3QjtDQUN4QjtBQUNEO0VBQ0MsV0FBVztDQUNYO0FBQ0Q7O0VBRUMsZ0JBQWdCO0VBQ2hCLHlCQUF1QjtFQUN2Qix3QkFBd0I7RUFDeEIscUJBQXFCO0NBQ3JCO0FBQ0Q7RUFDQyx3QkFBd0I7RUFDeEIsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQixZQUFZO0VBQ1oscUJBQXFCO0VBRXJCLHFCQUFxQjtFQUNyQixjQUFjO0VBQ2QsMEJBQTBCO0VBRTFCLHVCQUF1QjtFQUN2QixvQkFBb0I7RUFDcEIsYUFBYTtDQUNiO0FBQ0Q7RUFDQyxxQkFBcUI7RUFFckIscUJBQXFCO0VBQ3JCLGNBQWM7RUFDZCxvQkFBb0I7RUFFcEIsWUFBWTtFQUNaLFFBQVE7Q0FDUjtBQUNEO0VBQ0MsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZix3QkFBd0I7RUFDeEIsMEJBQXdCO0VBQ3hCLGVBQWU7RUFDZixVQUFVO0VBQ1YsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixvQkFBb0I7RUFFcEIsWUFBWTtFQUNaLFFBQVE7RUFDUixvQkFBb0I7Q0FDcEI7QUFDRDs7RUFFQyxtQkFBbUI7Q0FDbkI7QUFDRDtFQUNDLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIscUJBQXFCO0VBRXJCLHFCQUFxQjtFQUNyQixjQUFjO0VBQ2QseUJBQXlCO0VBRXpCLHNCQUFzQjtFQUN0Qix3QkFBd0I7RUFDeEIsaUJBQWlCO0NBQ2pCO0FBQ0Q7RUFDQyxXQUFXO0NBQ1g7QUFDRDtFQUNDLFdBQVc7RUFDWCxXQUFXO0VBQ1gsaUJBQWlCO0VBQ2pCLGlCQUFpQjtFQUNqQixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLCtCQUErQjtFQUMvQix1QkFBdUI7RUFDdkIsc0JBQXNCO0VBQ3RCLHFCQUFxQjtFQUNyQixxQkFBcUI7RUFFckIsY0FBYztFQUVkLGdCQUFnQjtFQUNoQixvQkFBb0I7RUFDcEIsdUJBQXVCO0VBRXZCLDhCQUE4QjtFQUM5Qiw4Q0FBOEM7RUFDOUMsc0NBQXNDO0VBQ3RDLFdBQVc7Q0FDWDtBQUNEO0VBQ0MscUNBQXFDO0VBQ3JDLDZCQUE2QjtDQUM3QjtBQUNEO0VBQ0MsaUJBQWlCO0VBQ2pCLDhCQUE4QjtFQUM5QixxQkFBcUI7RUFDckIsK0JBQStCO0VBQy9CLHVCQUF1QjtFQUN2QixlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixtQkFBbUI7RUFFbkIscUNBQXFDO0VBQ3JDLHdCQUF3QjtFQUN4QixnQkFBZ0I7RUFDaEIsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1Ysc0JBQXNCO0VBQ3RCLG1CQUFtQjtFQUNuQix5QkFBeUI7RUFFekIsc0JBQXNCO0VBQ3RCLHdCQUF3QjtFQUN4QixtQkFBbUI7Q0FDbkI7QUFDRDs7Ozs7Ozs7Ozs7O0VBWUMsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxvQkFBb0I7RUFDcEIsc0JBQXNCO0NBQ3RCO0FBQ0Q7RUFDQyxzQkFBc0I7Q0FDdEI7QUFDRDs7RUFFQyxzQkFBc0I7RUFDdEIsb0JBQW9CO0VBQ3BCLFlBQVk7Q0FDWjtBQUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFrQkMsb0JBQW9CO0VBQ3BCLHlCQUF5QjtFQUN6QixpQkFBaUI7RUFDakIsWUFBWTtFQUNaLHNCQUFzQjtDQUN0QjtBQUNEOzs7RUFHQyw2QkFBNkI7Q0FDN0I7QUFDRDs7O0VBR0MsNkJBQTZCO0NBQzdCO0FBQ0Q7OztFQUdDLHNDQUFzQztFQUN0Qyw4QkFBOEI7Q0FDOUI7QUFDRDs7O0VBR0Msb0JBQW9CO0NBQ3BCO0FBQ0Q7RUFDQyxpQkFBaUI7RUFDakIsc0RBQXNEO0VBQ3RELDhDQUE4QztDQUM5QztBQUNEOzs7Ozs7O0VBT0MsNEJBQTBCO0VBQzFCLHdCQUF3QjtFQUN4QiwwQkFBMEI7RUFDMUIsZ0JBQWdCO0NBQ2hCO0FBQ0Q7O0VBRUMsb0JBQW9CO0VBQ3BCLDRCQUEwQjtDQUMxQjtBQUNEO0VBQ0MsaUJBQWlCO0VBQ2pCLHNEQUFzRDtFQUN0RCw4Q0FBOEM7Q0FDOUM7QUFDRDtFQUNDLG1CQUFtQjtDQUNuQjtBQUNEO0VBQ0MsZ0JBQWdCO0NBQ2hCO0FBQ0Q7RUFDQyxzQkFBc0I7RUFDdEIsWUFBWTtDQUNaO0FBQ0Q7RUFDQyxnQkFBZ0I7RUFDaEIsb0NBQW9DO0VBQ3BDLDRCQUE0QjtDQUM1QjtBQUNEO0VBQ0MsWUFBWTtFQUNaLFlBQVk7RUFDWixrQkFBa0I7Q0FDbEI7QUFDRDs7RUFFQyxlQUFlO0VBQ2YsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQiw0QkFBMEI7RUFDMUIsd0JBQXdCO0VBQ3hCLGdCQUFnQjtFQUNoQixhQUFhO0NBQ2I7QUFDRDtFQUNDLGVBQWU7RUFDZixxQkFBcUI7RUFFckIscUJBQXFCO0VBQ3JCLGNBQWM7RUFDZCwrQkFBK0I7RUFDL0IsdUJBQXVCO0VBQ3ZCLGlCQUFpQjtDQUNqQjtBQUNEO0VBQ0Msc0JBQXNCO0VBQ3RCLFdBQVc7RUFDWCwrQkFBK0I7RUFDL0IsdUJBQXVCO0NBQ3ZCO0FBQ0Q7RUFDQyxtQkFBbUI7RUFDbkIsV0FBVztFQUNYLGVBQWU7RUFDZixVQUFVO0VBQ1Ysa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQiwrQkFBK0I7RUFDL0IsdUJBQXVCO0VBQ3ZCLGlCQUFpQjtFQUNqQixxQkFBcUI7RUFFckIscUJBQXFCO0VBQ3JCLGNBQWM7Q0FDZDtBQUNEO0VBQ0MsWUFBWTtFQUNaLGVBQWU7RUFDZixZQUFZO0NBQ1o7QUFDRDtFQUNDLG9CQUFvQjtFQUVwQixZQUFZO0VBQ1osUUFBUTtFQUNSLFdBQVc7RUFDWCxhQUFhO0VBQ2IsWUFBWTtDQUNaO0FBQ0Q7RUFDQyw2QkFBNkI7Q0FDN0I7QUFDRDtFQUNDLDBCQUEwQjtDQUMxQjtBQUNEO0VBQ0MsV0FBVztDQUNYO0FBQ0Q7RUFDQyxXQUFXO0NBQ1g7QUFDRDtFQUNDLHdCQUF3QjtFQUN4Qix5QkFBeUI7RUFDekIsaUJBQWlCO0VBQ2pCLFVBQVU7RUFDVixpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLFVBQVU7RUFDVixXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLHFCQUFxQjtFQUNyQixlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQiwrQkFBK0I7RUFDL0IsdUJBQXVCO0NBQ3ZCO0FBQ0Q7RUFDQyxrQkFBa0I7Q0FDbEI7QUFDRDs7RUFFQyxpQkFBaUI7Q0FDakI7QUFDRDtFQUNDLFdBQVc7RUFDWCxVQUFVO0NBQ1Y7QUFDRDs7RUFFQyxnQkFBZ0I7RUFDaEIsc0JBQXNCO0VBQ3RCLFlBQVk7RUFDWixxQkFBcUI7RUFDckIsZUFBZTtFQUNmLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsMEJBQTBCO0VBQzFCLHVCQUF1QjtFQUN2QixzQkFBc0I7RUFDdEIsa0JBQWtCO0VBQ2xCLDJCQUEyQjtFQUMzQiw0QkFBNEI7RUFDNUIsbUJBQW1CO0NBQ25CO0FBQ0Q7RUFDQyxXQUFXO0VBQ1gsV0FBVztFQUNYLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsaUJBQWlCO0NBQ2pCO0FBQ0Q7Ozs7RUFJQyxvQkFBb0I7Q0FDcEI7QUFDRDtFQUNDLGdCQUFnQjtDQUNoQjtBQUNEO0VBQ0M7SUFDQyxXQUFXO0lBQ1gsNENBQTRDO0lBQzVDLG9DQUFvQztHQUNwQztFQUNEO0lBQ0MsV0FBVztJQUNYLHdDQUF3QztJQUN4QyxnQ0FBZ0M7R0FDaEM7Q0FDRDtBQUNEO0VBQ0M7SUFDQyxXQUFXO0lBQ1gsNENBQTRDO0lBQzVDLG9DQUFvQztHQUNwQztFQUNEO0lBQ0MsV0FBVztJQUNYLHdDQUF3QztJQUN4QyxnQ0FBZ0M7R0FDaEM7Q0FDRDs7QWxDanRCRCxhQUFhO0FtQ3JCYjs7Ozs7OzttRkFPbUY7QUFFbkYsZ0JBQWdCO0FDVmhCLGdCQUFnQjtBQ0FoQjtFQUNDLG1CQUF1QztFQUN2QyxpQkFBbUM7RUFDbkMsaUJBQXFDO0VBQ3JDLFdBQVc7RUFDWCxpQkFBaUI7Q0FXakI7QUFUQTtFQVBEO0lBUUUsa0JBQXVDO0lBQ3ZDLGlCQUFtQztHQU9wQztDQU5DO0FBRUQ7RUFaRDtJQWFFLGlCQUF3QztJQUN4QyxrQkFBa0I7R0FFbkI7Q0FEQztBQUdGO0VBQ0Msc0JBQXNCO0VBQ3RCLG9DQUE0QjtVQUE1Qiw0QkFBNEI7RUFDNUIsZUFBNkI7RUFDN0IsV0FBVztFQUNYLDBDQUE4QjtFQUE5QixrQ0FBOEI7Q0FXOUI7QUFUQTs7RUFFQyxlQUE2QjtFQUM3QixhQUFhO0NBS2I7QUFIQTtFQUNDLFdBQVc7Q0FDWDtBQUlIO0VBQ0Msc0JBQXNCO0VBQ3RCLG1CQUFzQztFQUN0QyxpQkFBa0M7RUFDbEMsaUJBQXdDO0VBQ3hDLHlCQUF5QjtDQUt6QjtBQUhBO0VBQ0MsbUJBQW1CO0NBQ25CO0FBTUQ7RUFDQyxpQkFBd0M7RUFDeEMsa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxvQkFBb0I7RUFDcEIsV0FBVztFQUNYLGlCQUFxQztDQVVyQztBQVJBO0VBUkQ7SUFTRSxrQkFBa0I7R0FPbkI7Q0FOQztBQUVEO0VBWkQ7SUFhRSxlQUFlO0lBQ2YsbUJBQW1CO0dBRXBCO0NBREM7QUFHRjtFQUNDLG1CQUFtQjtFQUNuQixVQUFVO0NBU1Y7QUFQQTtFQUpEO0lBS0UsbUJBQW1CO0dBTXBCO0NBTEM7QUFFRDtFQVJEO0lBU0UsaUJBQWlCO0dBRWxCO0NBREM7QUFNRjtFQUNDLG9CQUFvQjtDQUNwQjtBQ3ZGRjtFQUNDLGVBQWU7RUFDZixtQkFBc0M7RUFDdEMsZUFBcUM7RUFDckMsaUJBQXFDO0VBQ3JDLG9CQUFvQjtDQVNwQjtBQVBBO0VBUEQ7SUFRRSxvQkFBb0I7R0FNckI7Q0FMQztBQUVEO0VBWEQ7SUFZRSxvQkFBb0I7R0FFckI7Q0FEQztBQU1EO0VBQ0MsZUFBZTtFQUNmLGVBQW9DO0VBQ3BDLG9CQUFvQjtDQUNwQjtBQ3ZCRjtFQUNDLGlCQUFpQjtFQUNqQixvQkFBb0I7Q0FDcEI7QUFFRDtFQUNDLGVBQW9DO0NBQ3BDO0FBRUQ7RUFDQyw4QkFBOEI7RUFDOUIsbUJBQW1CO0VBQ25CLG9CQUFvQjtFQUNwQixzQkFBc0I7RUFDdEIsbUJBQW1CO0VBQ25CLGVBQTRCO0NBQzVCO0FBRUQ7RUFDQyxpQkFBcUM7RUFDckMsZUFBNkI7Q0FDN0I7QUFJQTtFQUNDLG9CQUFvQjtDQVNwQjtBQVBBO0VBSEQ7SUFJRSxvQkFBb0I7R0FNckI7Q0FMQztBQUVEO0VBUEQ7SUFRRSxvQkFBb0I7R0FFckI7Q0FEQztBQU9GO0VBQ0MsbUJBQW1CO0NBQ25CO0FDM0NGOzs7O21GQUltRjtBQUVuRjtFQUNDLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLFdBQVc7RUFDWCxZQUFZO0VBQ1osYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsMEJBQXdDO0VBQ3hDLGdCQUFnQjtFQUNoQixpQkFBcUM7RUFDckMsMEJBQTBCO0VBQzFCLG1CQUFtQjtFQUNuQixXQUFXO0NBQ1g7QUFFRDtFQUNDLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsaUJBQWlCO0VBQ2pCLDBCQUE2QztFQUM3QyxtQkFBbUI7RUFDbkIsZUFBcUM7RUFDckMsaUJBQXlDO0NBQ3pDO0FBS0E7RUFDQyxZQUFZO0VBQ1osYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsaUJBQXlDO0NBQ3pDO0FBRUQ7RUFDQyxpQkFBaUI7RUFDakIsbUJBQW1CO0NBU25CO0FBUEE7RUFKRDtJQUtFLG1CQUFtQjtHQU1wQjtDQUxDO0FBRUQ7RUFSRDtJQVNFLG1CQUFtQjtHQUVwQjtDQURDO0FDdERIO0VBQ0MsZUFBb0M7RUFDcEMsaUJBQXFDO0VBQ3JDLG9CQUFvQjtDQWFwQjtBQVhBO0VBTEQ7SUFNRSxvQkFBb0I7R0FVckI7Q0FUQztBQUVEO0VBVEQ7SUFVRSxvQkFBb0I7R0FNckI7Q0FMQztBQUVEO0VBQ0MsaUJBQWlCO0NBQ2pCO0FDZkY7RUFDQyxtQkFBbUI7RUFDbkIsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixrQkFBa0I7Q0FLbEI7QUFIQTtFQU5EO0lBT0UsVUFBVTtHQUVYO0NBREM7QUFLRDtFQUNDLGVBQWU7Q0FDZjtBQUdGO0VBQ0Msb0JBQW9CO0NBQ3BCO0FBRUQsd0JBQXdCO0FBRXhCLDJHQUEyRztBQUMzRztFQUNDLDRDQUFvQztVQUFwQyxvQ0FBb0M7Q0FDcEM7QUFFRDtFQUNDLG9CQUFnQjtNQUFoQixnQkFBZ0I7RUFDaEIseUJBQXdCO01BQXhCLHNCQUF3QjtVQUF4Qix3QkFBd0I7Q0FLeEI7QUFIQTtFQUNDLDBCQUFrQjtVQUFsQixrQkFBa0I7Q0FDbEI7QUFHRjtFQUNDLHdCQUF3QjtFQUN4QixzQkFBc0I7RUFDdEIsV0FBVztFQUNYLFVBQVU7RUFDVixpQkFBaUI7RUFDakIsYUFBYTtFQUNiLDBDQUE4QjtFQUE5QixrQ0FBOEI7Q0FPOUI7QUFMQTs7O0VBR0MsV0FBVztDQUNYO0FDbkRGOzttRkFFbUY7QUFFbkY7RUFDQyxvQkFBb0I7Q0FDcEI7QUFFRDs7RUFFQyxlQUFlO0VBQ2Ysb0JBQW9CO0VBQ3BCLGVBQW9DO0VBQ3BDLGlCQUFxQztDQUNyQztBQUVEO0VBQ0MsaUJBQWlCO0NBQ2pCO0FBRUQ7RUFDQyxlQUFlO0VBQ2Ysb0JBQW9CO0NBQ3BCO0FBRUQ7RUFDQyxxQkFBYztFQUFkLHFCQUFjO0VBQWQsY0FBYztFQUNkLCtCQUFvQjtFQUFwQiw4QkFBb0I7TUFBcEIsd0JBQW9CO1VBQXBCLG9CQUFvQjtFQUNwQixvQkFBZ0I7TUFBaEIsZ0JBQWdCO0VBQ2hCLHlCQUF3QjtNQUF4QixzQkFBd0I7VUFBeEIsd0JBQXdCO0NBU3hCO0FBUEE7RUFDQyxtQkFBbUI7Q0FLbkI7QUFIQTtFQUNDLGdCQUFnQjtDQUNoQjtBQUlIO0VBQ0Msb0JBQVE7TUFBUixZQUFRO1VBQVIsUUFBUTtFQUNSLGVBQTRCO0NBQzVCO0FBRUQ7RUFDQyxVQUFVO0NBQ1Y7QUFFRDtFQUNDLFdBQVc7Q0FDWDtBQUVEO0VBQ0MsZUFBZTtFQUNmLG1CQUFtQjtFQUNuQixrQkFBdUM7Q0FDdkM7QUFFRDtFQUNDLGVBQWU7RUFDZixrQkFBdUM7RUFDdkMsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixnQkFBZ0I7Q0FDaEI7QUNqRUQ7RUFDQyxlQUFvQztDQUNwQztBQ0VDO0VBQ0MscUJBQW1DO0VBQ25DLG9DQUErQztVQUEvQyw0QkFBK0M7RUFDL0MsZ0NBQXFDO0VBQXJDLHdCQUFxQztDQUNyQztBQUlIO0VBQ0MsZUFBZTtFQUNmLFlBQVk7RUFDWixhQUFhO0VBQ2IsdUJBQXFDO0VBQ3JDLG9DQUF5QztVQUF6Qyw0QkFBeUM7RUFDekMsZ0JBQWdCO0VBQ2hCLGdDQUFxQztFQUFyQyx3QkFBcUM7Q0FDckM7QUNoQkM7RUFDQywwQkFBNkM7RUFDN0MsZUFBa0M7RUFDbEMsaUJBQXFDO0VBQ3JDLDRDQUFtRTtFQUFuRSxvQ0FBbUU7Q0FDbkU7QUFJSDtFQUNDLGVBQWU7RUFDZixhQUFhO0VBQ2IsaUJBQXFDO0VBQ3JDLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsMEJBQTJDO0VBQzNDLGVBQTRCO0VBQzVCLDRDQUFtRTtFQUFuRSxvQ0FBbUU7RUFDbkUsZ0JBQWdCO0NBQ2hCO0FDbkJDO0VBQ0MsMEJBQTZDO0VBQzdDLGdDQUFxQztFQUFyQyx3QkFBcUM7Q0FDckM7QUFJSDtFQUNDLHFCQUFjO0VBQWQscUJBQWM7RUFBZCxjQUFjO0VBQ2QsMEJBQW9CO01BQXBCLHVCQUFvQjtVQUFwQixvQkFBb0I7RUFDcEIsYUFBYTtFQUNiLDBCQUE2QztFQUM3QyxnQkFBZ0I7Q0FDaEI7QUFFRDtFQUNDLG9CQUFRO01BQVIsWUFBUTtVQUFSLFFBQVE7RUFDUixrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixhQUFhO0NBQ2I7QUN2QkE7RUFDQyxvQkFBZTtNQUFmLG1CQUFlO1VBQWYsZUFBZTtDQUNmO0FBRUQ7RUFDQyxxQkFBYztFQUFkLHFCQUFjO0VBQWQsY0FBYztFQUNkLCtCQUFvQjtFQUFwQiw4QkFBb0I7TUFBcEIsd0JBQW9CO1VBQXBCLG9CQUFvQjtFQUNwQixzQkFBa0I7TUFBbEIsa0JBQWtCO0VBQ2xCLDBCQUFvQjtNQUFwQix1QkFBb0I7VUFBcEIsb0JBQW9CO0VBQ3BCLG1CQUFtQjtDQUNuQjtBQUVEO0VBQ0Msb0JBQWU7TUFBZixtQkFBZTtVQUFmLGVBQWU7Q0FDZjtBQUVEO0VBQ0Msb0JBQVE7TUFBUixZQUFRO1VBQVIsUUFBUTtFQUNSLGlCQUFxQztDQUNyQztBQ3JCRjtFQUNDLDRCQUE0QjtFQUM1QixlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYixZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLFdBQVc7RUFDWCxzQkFBc0I7RUFDdEIsdUJBQXVCO0NBa0N2QjtBQWhDQTtFQUNDLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsT0FBTztFQUNQLFFBQVE7RUFDUixpQkFBaUI7RUFDakIsYUFBYTtFQUNiLFdBQVc7Q0FDWDtBQUVEO0VBQ0MsWUFBWTtFQUNaLFdBQVc7RUFDWCxZQUFZO0VBQ1osV0FBVztFQUNYLHFCQUFjO0VBQWQscUJBQWM7RUFBZCxjQUFjO0VBQ2QsK0JBQW9CO0VBQXBCLDhCQUFvQjtNQUFwQix3QkFBb0I7VUFBcEIsb0JBQW9CO0VBQ3BCLHNCQUFrQjtNQUFsQixrQkFBa0I7RUFDbEIsMEJBQThCO01BQTlCLDhCQUE4QjtFQUM5QiwwQkFBb0I7TUFBcEIsdUJBQW9CO1VBQXBCLG9CQUFvQjtDQUNwQjtBQUVEO0VBQ0MsV0FBVztFQUNYLFdBQVc7RUFDWCxZQUFZO0VBQ1oscUJBQWM7RUFBZCxxQkFBYztFQUFkLGNBQWM7RUFDZCwrQkFBb0I7RUFBcEIsOEJBQW9CO01BQXBCLHdCQUFvQjtVQUFwQixvQkFBb0I7RUFDcEIsc0JBQWtCO01BQWxCLGtCQUFrQjtFQUNsQiwwQkFBOEI7TUFBOUIsOEJBQThCO0VBQzlCLDBCQUFvQjtNQUFwQix1QkFBb0I7VUFBcEIsb0JBQW9CO0NBQ3BCO0FBS0Q7RUFDQyxpQkFBaUI7RUFDakIsZ0JBQWdCO0NBQ2hCO0FBR0Y7RUFDQyxrQkFBdUM7RUFDdkMsaUJBQXFDO0VBQ3JDLGtCQUFrQjtFQUNsQixzQkFBc0I7RUFDdEIsdUJBQXVCO0NBQ3ZCO0FDM0REO0VBQ0MsaUJBQWlCO0VBQ2pCLFVBQVU7RUFDVixXQUFXO0VBQ1gscUJBQWtCO0VBQWxCLHFCQUFrQjtFQUFsQixjQUFrQjtFQUFsQiwrQkFBa0I7RUFBbEIsOEJBQWtCO01BQWxCLHdCQUFrQjtVQUFsQixvQkFBa0I7RUFBbEIsZ0JBQWtCO0VBQWxCLGtCQUFrQjtFQUFsQixtQkFBa0I7Q0FDbEI7QUFFRDtFQUNDLG1CQUFzQztFQUN0QyxvQkFBaUI7TUFBakIscUJBQWlCO1VBQWpCLGFBQWlCO0VBQWpCLHFCQUFpQjtNQUFqQixlQUFpQjtFQUFqQiwwQ0FBaUI7TUFBakIsNkJBQWlCO0VBQWpCLHdCQUFpQjtFQUFqQix5QkFBaUI7Q0FTakI7QUFYRDtFQUVDLG1CQUFpQjtFQUFqQixvQkFBaUI7RUFBakIsZUFBaUI7Q0FTakI7QUFYRDtFQUVDLGdCQUFpQjtFQUFqQixpQkFBaUI7Q0FTakI7QUFYRDtFQUVDLGdCQUFpQjtFQUFqQixrQkFBaUI7Q0FTakI7QUFYRDtFQUVDLGlCQUFpQjtDQVNqQjtBQVBBO0VBSkQ7SUFLRSxvQkFBaUI7UUFBakIscUJBQWlCO1lBQWpCLGFBQWlCO0lBQWpCLHFCQUFpQjtRQUFqQixlQUFpQjtJQUFqQixzREFBaUI7UUFBakIseUNBQWlCO0lBQWpCLG9DQUFpQjtJQUFqQixxQ0FBaUI7R0FNbEI7RUFYRDtJQUtFLG1CQUFpQjtJQUFqQixvQkFBaUI7SUFBakIsZUFBaUI7R0FNbEI7RUFYRDtJQUtFLGdCQUFpQjtJQUFqQixpQkFBaUI7R0FNbEI7RUFYRDtJQUtFLGdCQUFpQjtJQUFqQixrQkFBaUI7R0FNbEI7RUFYRDtJQUtFLGlCQUFpQjtHQU1sQjtDQUxDO0FBRUQ7RUFSRDtJQVNFLG9CQUFpQjtRQUFqQixxQkFBaUI7WUFBakIsYUFBaUI7SUFBakIscUJBQWlCO1FBQWpCLGVBQWlCO0lBQWpCLDBDQUFpQjtRQUFqQiw2QkFBaUI7SUFBakIsd0JBQWlCO0lBQWpCLHlCQUFpQjtHQUVsQjtFQVhEO0lBU0UsbUJBQWlCO0lBQWpCLG9CQUFpQjtJQUFqQixlQUFpQjtHQUVsQjtFQVhEO0lBU0UsZ0JBQWlCO0lBQWpCLGlCQUFpQjtHQUVsQjtFQVhEO0lBU0UsZ0JBQWlCO0lBQWpCLGtCQUFpQjtHQUVsQjtFQVhEO0lBU0UsaUJBQWlCO0dBRWxCO0NBREM7QUNqQkY7RUFDQyxrQkFBa0I7RUFDbEIsOEJBQWlEO0NBTWpEO0FBSkE7O0VBRUMsY0FBYztDQUNkO0FBR0Y7RUFDQyxpQkFBd0M7RUFDeEMsaUJBQWlCO0NBQ2pCO0FDYkQ7RUFDQyxZQUFZO0VBQ1osb0JBQW9CO0NBY3BCO0FBWkE7RUFDQyxZQUFZO0VBQ1oscUJBQWM7RUFBZCxxQkFBYztFQUFkLGNBQWM7RUFDZCwrQkFBb0I7RUFBcEIsOEJBQW9CO01BQXBCLHdCQUFvQjtVQUFwQixvQkFBb0I7RUFDcEIsb0JBQWdCO01BQWhCLGdCQUFnQjtFQUNoQiwwQkFBb0I7TUFBcEIsdUJBQW9CO1VBQXBCLG9CQUFvQjtFQUNwQiwwQkFBK0I7TUFBL0IsdUJBQStCO1VBQS9CLCtCQUErQjtDQUsvQjtBQUhBO0VBUkQ7SUFTRSx3QkFBNEI7UUFBNUIscUJBQTRCO1lBQTVCLDRCQUE0QjtHQUU3QjtDQURDO0FBSUg7RUFDQyxtQkFBbUI7RUFDbkIsb0JBQWU7TUFBZixtQkFBZTtVQUFmLGVBQWU7Q0FNZjtBQUpBO0VBSkQ7SUFLRSxtQkFBbUI7SUFDbkIsb0JBQWdCO1FBQWhCLG9CQUFnQjtZQUFoQixnQkFBZ0I7R0FFakI7Q0FEQztBQUdGO0VBQ0MscUJBQWM7RUFBZCxxQkFBYztFQUFkLGNBQWM7RUFDZCwrQkFBb0I7RUFBcEIsOEJBQW9CO01BQXBCLHdCQUFvQjtVQUFwQixvQkFBb0I7RUFDcEIsb0JBQWdCO01BQWhCLGdCQUFnQjtFQUNoQiwwQkFBb0I7TUFBcEIsdUJBQW9CO1VBQXBCLG9CQUFvQjtFQUNwQixpQkFBaUI7RUFDakIsb0JBQWU7TUFBZixtQkFBZTtVQUFmLGVBQWU7Q0FxQmY7QUFuQkE7RUFSRDtJQVNFLHNCQUFrQjtRQUFsQixrQkFBa0I7R0FrQm5CO0NBakJDO0FBRUQ7RUFaRDtJQWFFLG9CQUFnQztRQUFoQyxvQ0FBZ0M7WUFBaEMsZ0NBQWdDO0lBQ2hDLG9CQUFnQjtRQUFoQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0dBWXBCO0VBVkM7SUFDQyxnQkFBZ0I7R0FDaEI7Q0FDRDtBQUVEO0VBdEJEO0lBdUJFLHNCQUFrQjtRQUFsQixrQkFBa0I7SUFDbEIsY0FBYztJQUNkLG9CQUFlO1FBQWYsbUJBQWU7WUFBZixlQUFlO0dBRWhCO0NBREM7QUFHRjtFQUNDLGtCQUF1QztFQUN2QywwQkFBMEI7RUFDMUIsbUJBQW1CO0VBQ25CLGlCQUFxQztFQUNyQyxvQkFBZTtNQUFmLG1CQUFlO1VBQWYsZUFBZTtDQWFmO0FBWEE7RUFQRDtJQVFFLG9CQUFnQjtRQUFoQixvQkFBZ0I7WUFBaEIsZ0JBQWdCO0dBVWpCO0NBVEM7QUFFRDtFQVhEO0lBWUUsb0JBQWU7UUFBZixtQkFBZTtZQUFmLGVBQWU7R0FNaEI7Q0FMQztBQUVEO0VBZkQ7SUFnQkUsb0JBQWU7UUFBZixtQkFBZTtZQUFmLGVBQWU7R0FFaEI7Q0FEQztBQUdGO0VBQ0Msb0JBQWU7TUFBZixtQkFBZTtVQUFmLGVBQWU7Q0FrQmY7QUFoQkE7RUFIRDtJQUlFLG9CQUFlO1FBQWYsbUJBQWU7WUFBZixlQUFlO0dBZWhCO0NBZEM7QUFFRDtFQVBEO0lBUUUsb0JBQWU7UUFBZixtQkFBZTtZQUFmLGVBQWU7R0FXaEI7Q0FWQztBQUVEO0VBWEQ7SUFZRSxvQkFBZTtRQUFmLG1CQUFlO1lBQWYsZUFBZTtHQU9oQjtDQU5DO0FBRUQ7RUFDQyxrQkFBdUM7RUFDdkMsZUFBNEI7Q0FDNUI7QUFHRjtFQUNDLG1CQUFtQjtFQUNuQixTQUFTO0VBQ1QsT0FBTztFQUNQLDBDQUE4QjtFQUE5QixrQ0FBOEI7RUFDOUIsYUFBYTtFQUNiLGVBQW9DO0NBTXBDO0FBSkE7RUFDQyxnQkFBZ0I7RUFDaEIsWUFBWTtDQUNaO0FDN0dGO0VBQ0MscUJBQWM7RUFBZCxxQkFBYztFQUFkLGNBQWM7RUFDZCw2QkFBdUI7RUFBdkIsOEJBQXVCO01BQXZCLDJCQUF1QjtVQUF2Qix1QkFBdUI7RUFDdkIsc0JBQWtCO01BQWxCLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsVUFBVTtFQUNWLFdBQVc7Q0FLWDtBQUhBO0VBUkQ7SUFTRSwrQkFBb0I7SUFBcEIsOEJBQW9CO1FBQXBCLHdCQUFvQjtZQUFwQixvQkFBb0I7R0FFckI7Q0FEQztBQUdGO0VBQ0Msb0JBQW9CO0VBQ3BCLFdBQVc7Q0FZWDtBQVZBO0VBRUM7SUFDQyxrQkFBa0I7R0FDbEI7Q0FDRDtBQUVEO0VBWEQ7SUFZRSxvQkFBb0I7R0FFckI7Q0FEQztBQUdGO0VBQ0MsZ0JBQWdCO0VBQ2hCLFVBQVU7RUFDVixXQUFXO0VBQ1gsc0JBQXNCO0NBQ3RCO0FBRUQ7RUFDQyxvQkFBb0I7Q0FDcEI7QUN0Q0Q7RUFDQywwQkFBMEM7RUFDMUMsWUFBMEI7RUFDMUIsZUFBb0M7RUFDcEMsaUJBQXFDO0VBQ3JDLG1CQUFtQjtFQUNuQixvQkFBb0I7Q0FhcEI7QUFYQTtFQVJEO0lBU0Usb0JBQW9CO0dBVXJCO0NBVEM7QUFFRDtFQUNDLDBCQUF1QztDQUN2QztBQUVEO0VBQ0MsMEJBQXFDO0NBQ3JDO0FBS0Q7RUFDQyxvQkFBb0I7Q0FDcEI7QUFFRDtFQUNDLDBCQUF1QztFQUN2QyxlQUE2QjtFQUM3QixtQkFBc0M7Q0FLdEM7QUFIQTtFQUNDLGlCQUFpQjtDQUNqQjtBQUdGO0VBQ0MsV0FBVztFQUNYLFVBQVU7RUFDVixpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLDBDQUE4QjtFQUE5QixrQ0FBOEI7Q0FDOUI7QUFFRDtFQUNDLFdBQVc7RUFDWCxvQkFBb0I7RUFDcEIsYUFBYTtDQUNiO0FBR0Y7RUFDQyxlQUEwQjtFQUMxQixlQUFlO0VBQ2YsaUJBQWlCO0VBQ2pCLG9CQUFvQjtFQUNwQixpQkFBd0M7RUFDeEMsbUJBQXNDO0NBQ3RDO0FDM0REO0VBQ0MsbUJBQW1CO0NBQ25CO0FBRUQ7RUFDQyxxQkFBcUI7Q0FVckI7QUFSQTtFQUNDLFdBQVc7RUFDWCxzQ0FBc0M7RUFBdEMsOEJBQXNDO0NBS3RDO0FBSEE7RUFDQyxXQUFXO0NBQ1g7QUFJSDtFQUNDLG1CQUFtQjtFQUNuQixhQUFhO0VBQ2IsVUFBVTtFQUNWLG9DQUE0QjtVQUE1Qiw0QkFBNEI7RUFDNUIsV0FBVztFQUNYLHNDQUFzQztFQUF0Qyw4QkFBc0M7Q0FLdEM7QUFIQTtFQUNDLFdBQVc7Q0FDWDtBQUdGOztFQUVDLFlBQVk7RUFDWixtQkFBbUI7Q0FDbkI7QUFFRDtFQUNDLGlCQUFpQjtDQUNqQjtBQUVEOztFQUVDLHdCQUF3QjtFQUN4QixlQUE0QjtFQUM1QixtQkFBc0M7RUFDdEMsZUFBcUM7RUFDckMsY0FBYztFQUNkLFVBQVU7RUFDVixnQkFBZ0I7Q0F5QmhCO0FBdkJBO0VBQ0MsYUFBYTtFQUNiLG9CQUFvQjtDQUNwQjtBQUVEOzs7O0VBRUMsd0JBQXdCO0VBQ3hCLGVBQStCO0NBTy9CO0FBTEE7RUFDQyx3QkFBd0I7RUFDeEIsZUFBK0I7RUFDL0IsZ0JBQWdCO0NBQ2hCO0FBR0Y7RUFDQyxlQUFlO0VBQ2YsaUJBQWlCO0VBQ2pCLG1CQUFtQjtFQUNuQixnQkFBZ0I7Q0FDaEI7QUFHRixvQkFBb0I7QUFDcEI7RUFDQyxlQUFlO0VBQ2YsbUJBQXNDO0NBQ3RDO0FDL0VEO0VBQ0MscUJBQWM7RUFBZCxxQkFBYztFQUFkLGNBQWM7RUFDZCw2QkFBdUI7RUFBdkIsOEJBQXVCO01BQXZCLDJCQUF1QjtVQUF2Qix1QkFBdUI7Q0FNdkI7QUFKQTtFQUpEO0lBS0UsK0JBQW9CO0lBQXBCLDhCQUFvQjtRQUFwQix3QkFBb0I7WUFBcEIsb0JBQW9CO0lBQ3BCLHNCQUFrQjtRQUFsQixrQkFBa0I7R0FFbkI7Q0FEQztBQUdGO0VBQ0Msb0JBQWdCO01BQWhCLG9CQUFnQjtVQUFoQixnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLG9CQUFvQjtFQUNwQixpQkFBaUI7Q0FXakI7QUFUQTtFQU5EO0lBT0UsbUJBQW1CO0dBUXBCO0NBUEM7QUFFRDtFQUNDLGVBQWU7RUFDZixZQUFZO0VBQ1osYUFBYTtDQUNiO0FBR0Y7RUFDQyxvQkFBZTtNQUFmLG1CQUFlO1VBQWYsZUFBZTtFQUNmLG9CQUFvQjtDQU1wQjtBQUpBO0VBSkQ7SUFLRSxtQkFBbUI7SUFDbkIsaUJBQWlCO0dBRWxCO0NBREM7QUFLRDtFQUNDLGtCQUF1QztFQUN2QyxpQkFBbUM7RUFDbkMsbUJBQW1CO0NBTW5CO0FBSkE7RUFMRDtJQU1FLGlCQUF3QztJQUN4QyxpQkFBa0M7R0FFbkM7Q0FEQztBQUdGO0VBQ0MsbUJBQW1CO0NBQ25CO0FBR0Y7OztFQUdDLGVBQW9DO0VBQ3BDLG1CQUFrQztFQUNsQyxtQkFBbUI7Q0FDbkI7QUFFRDtFQUNDLGlCQUFxQztDQUNyQztBQUVEOztFQUVDLGlCQUFpQjtFQUNqQixVQUFVO0VBQ1YsV0FBVztDQUNYO0FBRUQ7RUFDQyxnQkFBZ0I7Q0FDaEI7QUFFRDtFQUNDLGVBQTRCO0VBQzVCLGtCQUF1QztFQUN2QyxpQkFBcUM7RUFDckMsaUJBQWlCO0NBQ2pCO0FBRUQ7RUFDQyxpQkFBeUM7Q0FDekM7QUFFRDtFQUNDLGlCQUFzQztDQUN0QztBQUVEO0VBQ0MsZUFBb0M7RUFDcEMsaUJBQXFDO0VBQ3JDLG1CQUFrQztFQUNsQyxvQkFBb0I7Q0FTcEI7QUFQQTtFQU5EO0lBT0UsNEJBQW1CO1FBQW5CLG1CQUFtQjtJQUNuQixvQkFBZ0I7UUFBaEIsb0JBQWdCO1lBQWhCLGdCQUFnQjtJQUNoQixrQkFBdUM7SUFDdkMsaUJBQW1DO0lBQ25DLG1CQUFtQjtHQUVwQjtDQURDO0FBR0Y7RUFDQyxrQkFBdUM7RUFDdkMsaUJBQXFDO0VBQ3JDLGlCQUFxQztFQUNyQyxvQkFBb0I7Q0FPcEI7QUFMQTtFQU5EO0lBT0Usb0JBQWdCO1FBQWhCLG9CQUFnQjtZQUFoQixnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtHQUVuQjtDQURDO0FBR0Y7RUFDQyxlQUFvQztFQUNwQyxpQkFBcUM7RUFDckMsbUJBQWtDO0VBQ2xDLG9CQUFvQjtDQVFwQjtBQU5BO0VBTkQ7SUFPRSxvQkFBZ0I7UUFBaEIsb0JBQWdCO1lBQWhCLGdCQUFnQjtJQUNoQixrQkFBdUM7SUFDdkMsa0JBQWtCO0lBQ2xCLGlCQUFpQjtHQUVsQjtDQURDO0FDaklEO0VBQ0MsZUFBZTtFQUNmLHlCQUFpQjtVQUFqQixpQkFBaUI7RUFDakIsc0JBQXNCO0VBQ3RCLFVBQVU7RUFDVixXQUFXO0VBQ1gsc0NBQXNDO0VBQXRDLDhCQUFzQztDQU10QztBQUpBOzs7O0VBRUMsYUFBYTtDQUNiO0F0QkRILGFBQWE7QXVCYmI7Ozs7Ozs7RUFPQyxzQkFBc0I7RUFDdEIsd0JBQXdCO0VBQ3hCLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLGlCQUF5QztFQUN6QyxpQkFBa0M7RUFDbEMsbUJBQXNDO0VBQ3RDLDBCQUEwQjtFQUMxQixtQkFBbUI7RUFDbkIsc0JBQXNCO0VBQ3RCLHlCQUFpQjtVQUFqQixpQkFBaUI7RUFDakIsV0FBVztFQUNYLDBDQUE4QjtFQUE5QixrQ0FBOEI7Q0EyQzlCO0FBekNBO0VBdEJEOzs7Ozs7O0lBdUJFLGlCQUFpQjtHQXdDbEI7Q0F2Q0M7QUFFRDs7Ozs7Ozs7Ozs7Ozs7RUFFQyxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLHlCQUFpQjtVQUFqQixpQkFBaUI7Q0FDakI7QUFFRDtFQUNDLDBCQUE4QztFQUM5QyxZQUEwQjtFQUMxQixtQkFBbUI7RUFDbkIsaUJBQWtDO0VBQ2xDLHdCQUF3QjtFQUN4QixhQUFhO0VBQ2Isb0JBQW9CO0NBV3BCO0FBVEE7Ozs7Ozs7Ozs7Ozs7O0VBRUMsMEJBQThDO0VBQzlDLFlBQTBCO0VBQzFCLG1CQUFtQjtFQUNuQixpQkFBa0M7RUFDbEMsd0JBQXdCO0VBQ3hCLGFBQWE7Q0FDYjtBQUdGO0VBQ0Msa0JBQWtCO0NBQ2xCO0FBRUQ7RUFDQyxtQkFBbUI7RUFDbkIsK0JBQXVCO1VBQXZCLHVCQUF1QjtFQUN2Qiw4QkFBOEI7RUFDOUIsa0JBQWtCO0NBQ2xCO0FDOURGOztFQUVDLG1CQUFtQjtFQUNuQix3QkFBd0I7RUFDeEIsZUFBZTtFQUNmLHFCQUFxQjtFQUNyQixpQkFBaUI7RUFDakIsV0FBVztDQVdYO0FBVEE7Ozs7RUFFQyx3QkFBd0I7RUFDeEIsc0NBQXNDO0VBQXRDLDhCQUFzQztDQUt0QztBQUhBO0VBQ0MsV0FBVztDQUNYO0FBSUg7RUFDQyxtQkFBbUI7RUFDbkIsUUFBUTtFQUNSLE9BQU87RUFDUCxZQUFZO0VBQ1osYUFBYTtFQUNiLFdBQVc7RUFDWCwyQ0FBNEM7RUFDNUMsc0NBQXNDO0VBQXRDLDhCQUFzQztDQUN0QztBQUVEO0VBQ0MsbUJBQW1CO0VBQ25CLFVBQVU7RUFDVixTQUFTO0VBQ1QsOENBQXNDO1VBQXRDLHNDQUFzQztFQUN0QyxXQUFXO0VBQ1gsbUJBQW1CO0VBQ25CLHVCQUFxQztFQUNyQyxlQUE2QjtFQUM3QixvQkFBb0I7RUFDcEIsbUJBQXNDO0VBQ3RDLG9CQUFvQjtFQUNwQixtQkFBbUI7Q0FDbkI7QXhCM0JELFdBQVc7QXlCakJYO0VBQ0MscUJBQWM7RUFBZCxxQkFBYztFQUFkLGNBQWM7RUFDZCw2QkFBdUI7RUFBdkIsOEJBQXVCO01BQXZCLDJCQUF1QjtVQUF2Qix1QkFBdUI7RUFDdkIsc0JBQWtCO01BQWxCLGtCQUFrQjtDQWtCbEI7QUFoQkE7RUFDQyxvQkFBZTtNQUFmLG1CQUFlO1VBQWYsZUFBZTtFQUNmLHFCQUFjO0VBQWQscUJBQWM7RUFBZCxjQUFjO0NBQ2Q7QUFFRDtFQUNDLHlCQUFxQjtNQUFyQixxQkFBcUI7RUFDckIsWUFBWTtFQUNaLG9CQUFlO01BQWYsbUJBQWU7VUFBZixlQUFlO0NBQ2Y7QUFFRDs7O0VBR0MsZ0JBQWdCO0NBQ2hCO0FBR0Y7RUFDQyxtQkFBbUI7RUFDbkIsWUFBWTtDQU9aO0FBTEE7RUFDQyxlQUFlO0VBQ2YsWUFBWTtFQUNaLGFBQWE7Q0FDYjtBQUdGO0VBQ0MscUJBQXFCO0VBQ3JCLFlBQVk7RUFDWixzQkFBc0I7RUFDdEIsc0JBQWM7TUFBZCxrQkFBYztVQUFkLGNBQWM7RUFDZCxvQkFBZTtNQUFmLG1CQUFlO1VBQWYsZUFBZTtDQUNmO0FDeENEO0VBQ0MsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixxQkFBYztFQUFkLHFCQUFjO0VBQWQsY0FBYztFQUNkLCtCQUFvQjtFQUFwQiw4QkFBb0I7TUFBcEIsd0JBQW9CO1VBQXBCLG9CQUFvQjtFQUNwQixvQkFBZ0I7TUFBaEIsZ0JBQWdCO0VBQ2hCLGVBQWU7Q0EyRGY7QUF6REE7RUFSRDtJQVNFLDZCQUF1QjtJQUF2Qiw4QkFBdUI7UUFBdkIsMkJBQXVCO1lBQXZCLHVCQUF1QjtHQXdEeEI7Q0F2REM7QUFFRDtFQUNDLG1CQUFtQjtFQUNuQiw2QkFBUztNQUFULGtCQUFTO1VBQVQsU0FBUztFQUNULFlBQVk7Q0FlWjtBQWJBO0VBTEQ7SUFNRSx3QkFBd0I7R0FZekI7Q0FYQztBQUVEO0VBVEQ7SUFVRSxtQkFBbUI7SUFDbkIsYUFBYTtJQUNiLFdBQVc7SUFDWCxpQkFBaUI7SUFDakIsUUFBUTtJQUNSLE9BQU87SUFDUCw2QkFBUztRQUFULGtCQUFTO1lBQVQsU0FBUztHQUVWO0NBREM7QUFHRjtFQUNDLFdBQVc7RUFDWCw2QkFBUztNQUFULGtCQUFTO1VBQVQsU0FBUztDQVFUO0FBTkE7RUFKRDtJQUtFLG9CQUFlO1FBQWYsbUJBQWU7WUFBZixlQUFlO0lBQ2YsNkJBQVM7UUFBVCxrQkFBUztZQUFULFNBQVM7SUFDVCx5QkFBcUI7UUFBckIscUJBQXFCO0lBQ3JCLHdCQUF3QjtHQUV6QjtDQURDO0FBR0Y7RUFDQyw2QkFBUztNQUFULGtCQUFTO1VBQVQsU0FBUztFQUNULFlBQVk7Q0FjWjtBQVpBO0VBSkQ7SUFLRSx3QkFBd0I7SUFDeEIsbUJBQW1CO0dBVXBCO0NBVEM7QUFFRDtFQVREO0lBVUUsb0JBQWU7UUFBZixtQkFBZTtZQUFmLGVBQWU7SUFDZiw2QkFBUztRQUFULGtCQUFTO1lBQVQsU0FBUztJQUNULFdBQVc7SUFDWCx5QkFBcUI7UUFBckIscUJBQXFCO0lBQ3JCLHdCQUF3QjtHQUV6QjtDQURDO0FBR0Y7RUFDQyxpQkFBaUI7Q0FDakI7QUNoRUY7RUFDQyxxQkFBYztFQUFkLHFCQUFjO0VBQWQsY0FBYztFQUNkLDZCQUErQjtFQUEvQiwrQkFBK0I7TUFBL0IsbUNBQStCO1VBQS9CLCtCQUErQjtDQU0vQjtBQUpBO0VBSkQ7SUFLRSwrQkFBb0I7SUFBcEIsOEJBQW9CO1FBQXBCLHdCQUFvQjtZQUFwQixvQkFBb0I7SUFDcEIsc0JBQWtCO1FBQWxCLGtCQUFrQjtHQUVuQjtDQURDO0FBR0Y7RUFDQyxvQkFBZ0I7TUFBaEIsb0JBQWdCO1VBQWhCLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsaUJBQWlCO0NBdUJqQjtBQXJCQTtFQUxEO0lBTUUsbUJBQW1CO0dBb0JwQjtDQW5CQztBQUVEO0VBQ0MsZUFBZTtFQUNmLFlBQVk7RUFDWixhQUFhO0NBQ2I7QUFFRDtFQUNDLHlCQUFpQjtVQUFqQixpQkFBaUI7RUFDakIsZUFBZTtFQUNmLFdBQVc7RUFDWCwwQ0FBOEI7RUFBOUIsa0NBQThCO0NBTTlCO0FBSkE7O0VBRUMsYUFBYTtDQUNiO0FBSUg7RUFDQyxvQkFBZTtNQUFmLG1CQUFlO1VBQWYsZUFBZTtDQVFmO0FBTEM7RUFERDtJQUVFLG1CQUFtQjtJQUNuQixpQkFBaUI7R0FFbEI7Q0FEQztBQUlIO0VBQ0Msb0JBQW9CO0NBaUJwQjtBQWZBO0VBQ0Msa0JBQXVDO0VBQ3ZDLGlCQUFtQztFQUNuQyxVQUFVO0NBV1Y7QUFUQTtFQUxEO0lBTUUsaUJBQXdDO0lBQ3hDLGlCQUFrQztHQU9uQztDQU5DO0FBRUQ7RUFWRDtJQVdFLGlCQUF3QztJQUN4QyxpQkFBa0M7R0FFbkM7Q0FEQztBQU1GO0VBQ0Msc0JBQXNCO0VBQ3RCLHlCQUFpQjtVQUFqQixpQkFBaUI7RUFDakIsb0JBQW9CO0VBQ3BCLFdBQVc7RUFDWCwwQ0FBOEI7RUFBOUIsa0NBQThCO0NBTzlCO0FBTEE7O0VBRUMsb0JBQW9CO0VBQ3BCLGFBQWE7Q0FDYjtBQUlIO0VBQ0MsZUFBb0M7RUFDcEMsaUJBQXFDO0VBQ3JDLG1CQUFrQztFQUNsQyxvQkFBb0I7Q0FNcEI7QUFKQTtFQU5EO0lBT0Usa0JBQXVDO0lBQ3ZDLG9CQUFvQjtHQUVyQjtDQURDO0FBR0Y7RUFDQyxxQkFBYztFQUFkLHFCQUFjO0VBQWQsY0FBYztFQUNkLCtCQUFvQjtFQUFwQiw4QkFBb0I7TUFBcEIsd0JBQW9CO1VBQXBCLG9CQUFvQjtFQUNwQixvQkFBZ0I7TUFBaEIsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtDQUtuQjtBQUhBO0VBTkQ7SUFPRSxvQkFBb0I7R0FFckI7Q0FEQztBQUdGO0VBQ0MsV0FBVztFQUNYLG9CQUFvQjtDQVVwQjtBQVJBO0VBSkQ7SUFLRSxpQkFBaUI7SUFDakIsWUFBWTtHQU1iO0VBSkM7SUFDQyxrQkFBa0I7R0FDbEI7Q0FDRDtBQUdGO0VBQ0MsZUFBb0M7RUFDcEMsaUJBQXFDO0VBQ3JDLG1CQUFrQztFQUNsQyxvQkFBb0I7Q0FTcEI7QUFQQTtFQU5EO0lBT0UsNEJBQW1CO1FBQW5CLG1CQUFtQjtJQUNuQixvQkFBZ0I7UUFBaEIsb0JBQWdCO1lBQWhCLGdCQUFnQjtJQUNoQixrQkFBdUM7SUFDdkMsaUJBQW1DO0lBQ25DLG1CQUFtQjtHQUVwQjtDQURDO0EzQmpIRixVQUFVO0E0QnRCVjtFQUNDLFlBQVk7RUFDWixxQkFBYztFQUFkLHFCQUFjO0VBQWQsY0FBYztFQUNkLCtCQUFvQjtFQUFwQiw4QkFBb0I7TUFBcEIsd0JBQW9CO1VBQXBCLG9CQUFvQjtFQUNwQixvQkFBZ0I7TUFBaEIsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtDQStEaEI7QUE3REE7RUFDQyxZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLG9CQUFvQjtDQUNwQjtBQUdBO0VBREQ7SUFFRSxvQkFBd0I7UUFBeEIscUJBQXdCO1lBQXhCLGFBQXdCO0lBQXhCLHFCQUF3QjtRQUF4QixlQUF3QjtJQUF4QiwwQ0FBd0I7UUFBeEIsNkJBQXdCO0lBQXhCLDRCQUF3QjtJQUF4Qix3QkFBd0I7R0FFekI7RUFKRDtJQUVFLG1CQUF3QjtJQUF4QixlQUF3QjtHQUV6QjtFQUpEO0lBRUUsZ0JBQXdCO0dBRXpCO0VBSkQ7SUFFRSxnQkFBd0I7SUFBeEIsa0JBQXdCO0dBRXpCO0NBREM7QUFJRDtFQUREO0lBRUUsb0JBQXdCO1FBQXhCLHFCQUF3QjtZQUF4QixhQUF3QjtJQUF4QixxQkFBd0I7UUFBeEIsZUFBd0I7SUFBeEIsMENBQXdCO1FBQXhCLDZCQUF3QjtJQUF4Qiw0QkFBd0I7SUFBeEIsd0JBQXdCO0dBT3pCO0VBVEQ7SUFFRSxtQkFBd0I7SUFBeEIsZUFBd0I7R0FPekI7RUFURDtJQUVFLGdCQUF3QjtHQU96QjtFQVREO0lBRUUsZ0JBQXdCO0lBQXhCLGtCQUF3QjtHQU96QjtDQU5DO0FBRUQ7RUFMRDtJQU1FLG9CQUF3QjtRQUF4QixxQkFBd0I7WUFBeEIsYUFBd0I7SUFBeEIscUJBQXdCO1FBQXhCLGVBQXdCO0lBQXhCLGdEQUF3QjtRQUF4QixtQ0FBd0I7SUFBeEIsa0NBQXdCO0lBQXhCLDhCQUF3QjtHQUd6QjtFQVREO0lBTUUsbUJBQXdCO0lBQXhCLGVBQXdCO0dBR3pCO0VBVEQ7SUFNRSxnQkFBd0I7R0FHekI7RUFURDtJQU1FLGdCQUF3QjtJQUF4QixrQkFBd0I7R0FHekI7Q0FEQztBQUlEO0VBREQ7SUFFRSxvQkFBd0I7UUFBeEIscUJBQXdCO1lBQXhCLGFBQXdCO0lBQXhCLHFCQUF3QjtRQUF4QixlQUF3QjtJQUF4QiwwQ0FBd0I7UUFBeEIsNkJBQXdCO0lBQXhCLDRCQUF3QjtJQUF4Qix3QkFBd0I7R0FXekI7RUFiRDtJQUVFLG1CQUF3QjtJQUF4QixlQUF3QjtHQVd6QjtFQWJEO0lBRUUsZ0JBQXdCO0dBV3pCO0VBYkQ7SUFFRSxnQkFBd0I7SUFBeEIsa0JBQXdCO0dBV3pCO0NBVkM7QUFFRDtFQUxEO0lBTUUsb0JBQXdCO1FBQXhCLHFCQUF3QjtZQUF4QixhQUF3QjtJQUF4QixxQkFBd0I7UUFBeEIsZUFBd0I7SUFBeEIsZ0RBQXdCO1FBQXhCLG1DQUF3QjtJQUF4QixrQ0FBd0I7SUFBeEIsOEJBQXdCO0dBT3pCO0VBYkQ7SUFNRSxtQkFBd0I7SUFBeEIsZUFBd0I7R0FPekI7RUFiRDtJQU1FLGdCQUF3QjtHQU96QjtFQWJEO0lBTUUsZ0JBQXdCO0lBQXhCLGtCQUF3QjtHQU96QjtDQU5DO0FBRUQ7RUFURDtJQVVFLG9CQUF3QjtRQUF4QixxQkFBd0I7WUFBeEIsYUFBd0I7SUFBeEIscUJBQXdCO1FBQXhCLGVBQXdCO0lBQXhCLGdEQUF3QjtRQUF4QixtQ0FBd0I7SUFBeEIsa0NBQXdCO0lBQXhCLDhCQUF3QjtHQUd6QjtFQWJEO0lBVUUsbUJBQXdCO0lBQXhCLGVBQXdCO0dBR3pCO0VBYkQ7SUFVRSxnQkFBd0I7R0FHekI7RUFiRDtJQVVFLGdCQUF3QjtJQUF4QixrQkFBd0I7R0FHekI7Q0FEQztBQUlEO0VBREQ7SUFFRSxvQkFBd0I7UUFBeEIscUJBQXdCO1lBQXhCLGFBQXdCO0lBQXhCLHFCQUF3QjtRQUF4QixlQUF3QjtJQUF4QiwwQ0FBd0I7UUFBeEIsNkJBQXdCO0lBQXhCLDRCQUF3QjtJQUF4Qix3QkFBd0I7R0FnQnpCO0VBbEJEO0lBRUUsbUJBQXdCO0lBQXhCLGVBQXdCO0dBZ0J6QjtFQWxCRDtJQUVFLGdCQUF3QjtHQWdCekI7RUFsQkQ7SUFFRSxnQkFBd0I7SUFBeEIsa0JBQXdCO0dBZ0J6QjtDQWZDO0FBRUQ7RUFMRDtJQU1FLG9CQUF3QjtRQUF4QixxQkFBd0I7WUFBeEIsYUFBd0I7SUFBeEIscUJBQXdCO1FBQXhCLGVBQXdCO0lBQXhCLGdEQUF3QjtRQUF4QixtQ0FBd0I7SUFBeEIsa0NBQXdCO0lBQXhCLDhCQUF3QjtHQVl6QjtFQWxCRDtJQU1FLG1CQUF3QjtJQUF4QixlQUF3QjtHQVl6QjtFQWxCRDtJQU1FLGdCQUF3QjtHQVl6QjtFQWxCRDtJQU1FLGdCQUF3QjtJQUF4QixrQkFBd0I7R0FZekI7Q0FYQztBQUVEO0VBVEQ7SUFVRSxvQkFBd0I7UUFBeEIscUJBQXdCO1lBQXhCLGFBQXdCO0lBQXhCLHFCQUF3QjtRQUF4QixlQUF3QjtJQUF4QixnREFBd0I7UUFBeEIsbUNBQXdCO0lBQXhCLGtDQUF3QjtJQUF4Qiw4QkFBd0I7R0FRekI7RUFsQkQ7SUFVRSxtQkFBd0I7SUFBeEIsZUFBd0I7R0FRekI7RUFsQkQ7SUFVRSxnQkFBd0I7R0FRekI7RUFsQkQ7SUFVRSxnQkFBd0I7SUFBeEIsa0JBQXdCO0dBUXpCO0NBTkM7QUFFRDtFQWREO0lBZUUsb0JBQXdCO1FBQXhCLHFCQUF3QjtZQUF4QixhQUF3QjtJQUF4QixxQkFBd0I7UUFBeEIsZUFBd0I7SUFBeEIsOENBQXdCO1FBQXhCLGlDQUF3QjtJQUF4QixnQ0FBd0I7SUFBeEIsNEJBQXdCO0dBR3pCO0VBbEJEO0lBZUUsbUJBQXdCO0lBQXhCLGVBQXdCO0dBR3pCO0VBbEJEO0lBZUUsZ0JBQXdCO0dBR3pCO0VBbEJEO0lBZUUsZ0JBQXdCO0lBQXhCLGtCQUF3QjtHQUd6QjtDQURDO0FBR0Y7RUFDQyxrQkFBa0I7Q0FDbEI7QUNuRUYsMEJBQTBCO0FBQzFCLHlDQUVDO0FDSEQ7Ozs7bUZBSW1GO0FBRW5GO0VBQ0MsbUJBQW1CO0VBQ25CLFlBQVk7Q0FDWjtBQUVEO0VBQ0MsbUJBQW1CO0VBQ25CLGlCQUFpQjtDQUNqQjtBQUVEO0VBQ0MsZUFBZTtFQUNmLGVBQW9DO0VBQ3BDLHNCQUFzQjtDQUN0QjtBOUJPRCxZQUFZO0ErQjNCWjtFQUNDLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsZUFBZTtDQTJGZjtBQXpGQTtFQUNDLHFCQUFjO0VBQWQscUJBQWM7RUFBZCxjQUFjO0VBQ2QsK0JBQW9CO0VBQXBCLDhCQUFvQjtNQUFwQix3QkFBb0I7VUFBcEIsb0JBQW9CO0VBQ3BCLG9CQUFnQjtNQUFoQixnQkFBZ0I7RUFDaEIseUJBQXdCO01BQXhCLHNCQUF3QjtVQUF4Qix3QkFBd0I7RUFDeEIsMEJBQStCO01BQS9CLHVCQUErQjtVQUEvQiwrQkFBK0I7Q0FLL0I7QUFIQTtFQVBEO0lBUUUsc0JBQWtCO1FBQWxCLGtCQUFrQjtHQUVuQjtDQURDO0FBR0Y7RUFDQyxtQkFBbUI7RUFDbkIsNkJBQVM7TUFBVCxrQkFBUztVQUFULFNBQVM7RUFDVCxvQkFBZTtNQUFmLG1CQUFlO1VBQWYsZUFBZTtDQU9mO0FBTEE7RUFMRDtJQU1FLDZCQUFTO1FBQVQsa0JBQVM7WUFBVCxTQUFTO0lBQ1Qsb0JBQWdCO1FBQWhCLG9CQUFnQjtZQUFoQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0dBRXBCO0NBREM7QUFHRjtFQUNDLG9CQUFlO01BQWYsbUJBQWU7VUFBZixlQUFlO0VBQ2YsNkJBQVM7TUFBVCxrQkFBUztVQUFULFNBQVM7Q0FPVDtBQUxBO0VBSkQ7SUFLRSw2QkFBUztRQUFULGtCQUFTO1lBQVQsU0FBUztJQUNULG9CQUFlO1FBQWYsbUJBQWU7WUFBZixlQUFlO0lBQ2Ysd0JBQXdCO0dBRXpCO0NBREM7QUFHRjtFQUNDLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsbUJBQXNDO0NBS3RDO0FBSEE7RUFDQyxtQkFBbUI7Q0FDbkI7QUFHRjtFQUNDLGVBQW9DO0VBQ3BDLGlCQUFxQztDQUNyQztBQUVEO0VBQ0MsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxzQ0FBc0M7RUFBdEMsOEJBQXNDO0NBS3RDO0FBSEE7RUFDQyxhQUFhO0NBQ2I7QUFHRjtFQUNDLGlCQUFpQjtDQUNqQjtBQUVEO0VBQ0MsaUJBQWlCO0VBQ2pCLFlBQVk7RUFDWixnQkFBZ0I7RUFDaEIsOEJBQWlEO0NBQ2pEO0FBRUQ7RUFDQyxZQUFZO0VBQ1oscUJBQXFCO0NBQ3JCO0FBRUQ7RUFDQyxpQkFBcUM7RUFDckMsb0JBQW9CO0VBQ3BCLGVBQW9DO0NBQ3BDO0FBRUQ7RUFDQyxpQkFBd0M7Q0FDeEM7QUFFRDtFQUNDLGlCQUFpQjtDQUNqQjtBQUdGO0VBQ0MscUJBQWM7RUFBZCxxQkFBYztFQUFkLGNBQWM7RUFDZCwrQkFBb0I7RUFBcEIsOEJBQW9CO01BQXBCLHdCQUFvQjtVQUFwQixvQkFBb0I7RUFDcEIsMEJBQW9CO01BQXBCLHVCQUFvQjtVQUFwQixvQkFBb0I7RUFDcEIsb0JBQW9CO0NBQ3BCO0FBRUQ7RUFDQyxtQkFBbUI7Q0FDbkI7QUFFRDtFQUNDLGlCQUErQjtFQUMvQiwwQkFBNkM7RUFDN0MsbUJBQXNDO0VBQ3RDLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLFlBQVk7Q0FTWjtBQVBBO0VBVEQ7SUFVRSxlQUFvQztHQU1yQztDQUxDO0FBRUQ7RUFDQyxzQ0FBaUQ7VUFBakQsOEJBQWlEO0NBQ2pEO0FDMUhGO0VBQ0MsZ0JBQWdCO0VBQ2hCLE9BQU87RUFDUCxTQUFTO0VBQ1QsY0FBYztFQUNkLGFBQWE7RUFDYiw4QkFBb0M7Q0FDcEM7QUFFRDtFQUNDLG1CQUFtQjtFQUNuQixPQUFPO0VBQ1AsU0FBUztFQUNULGNBQWM7RUFDZCxhQUFhO0VBQ2IsWUFBWTtDQUtaO0FBSEE7RUFDQyxjQUFjO0NBQ2Q7QUFHRjtFQUNDLG1CQUFtQjtFQUNuQixTQUFTO0VBQ1QsT0FBTztFQUNQLGVBQTZCO0VBQzdCLGdCQUFnQjtFQUNoQixXQUFXO0VBQ1gsd0JBQXdCO0VBQ3hCLGNBQWM7RUFDZCxjQUFjO0VBQ2QsMENBQThCO0VBQTlCLGtDQUE4QjtFQUM5QixZQUFZO0NBT1o7QUFMQTs7RUFFQyxXQUFXO0VBQ1gsd0JBQXdCO0NBQ3hCO0FBR0Y7RUFDQyxpQkFBK0I7RUFDL0IsbUJBQW1CO0VBQ25CLHlCQUF5QjtFQUN6QixhQUFhO0VBQ2IsVUFBVTtFQUNWLE9BQU87RUFDUCxlQUFlO0VBQ2Ysb0NBQTRCO1VBQTVCLDRCQUE0QjtFQUM1QixtQkFBbUI7Q0FzQm5CO0FBcEJBO0VBWEQ7SUFZRSwwQkFBMEI7SUFDMUIsa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixVQUFVO0lBQ1YsU0FBUztJQUNULDhDQUFzQztZQUF0QyxzQ0FBc0M7R0FjdkM7RUFaQztJQUNDLGtCQUFrQjtHQUNsQjtDQUNEO0FBRUQ7RUFDQywrQkFBdUI7VUFBdkIsdUJBQXVCO0NBQ3ZCO0FBRUQ7RUFDQyxhQUFhO0NBQ2I7QUFHRjtFQUNDLG1CQUFtQjtFQUNuQixjQUFjO0NBOERkO0FBNURBO0VBQ0MsVUFBVTtFQUNWLGFBQWE7Q0FDYjtBQUdBO0VBREQ7SUFFRSxhQUFhO0lBQ2IscUJBQXFCO0lBQ3JCLG9CQUFlO1FBQWYsbUJBQWU7WUFBZixlQUFlO0dBRWhCO0NBREM7QUFHRjtFQUNDLFlBQVk7Q0FhWjtBQVhBO0VBSEQ7SUFJRSxvQkFBb0I7R0FVckI7Q0FUQztBQUVEO0VBUEQ7SUFRRSx3QkFBd0I7R0FNekI7Q0FMQztBQUVEO0VBWEQ7SUFZRSxnQkFBZ0I7R0FFakI7Q0FEQztBQUdGO0VBQ0Msb0JBQW9CO0NBQ3BCO0FBRUQ7RUFDQyxvQkFBb0I7Q0FDcEI7QUFFRDtFQUNDLGlCQUFxQztDQUNyQztBQUVEO0VBQ0MsNkJBQVM7TUFBVCxrQkFBUztVQUFULFNBQVM7RUFDVCxZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGtCQUFrQjtFQUNsQiw4QkFBaUQ7Q0FhakQ7QUFYQTtFQVBEO0lBUUUsd0JBQXdCO0lBQ3hCLHlCQUFxQjtRQUFyQixxQkFBcUI7R0FTdEI7Q0FSQztBQUVEO0VBWkQ7SUFhRSxvQkFBZTtRQUFmLG1CQUFlO1lBQWYsZUFBZTtJQUNmLDZCQUFTO1FBQVQsa0JBQVM7WUFBVCxTQUFTO0lBQ1QsZ0JBQWdCO0lBQ2hCLHdCQUF3QjtHQUV6QjtDQURDO0FDeklIO0VBQ0MsOEJBQWlEO0VBQ2pELGtCQUFrQjtFQUNsQixxQkFBcUI7Q0FNckI7QUFKQTtFQUNDLGlCQUFpQjtFQUNqQixvQkFBb0I7Q0FDcEI7QUFHRiw0QkFBNEI7QUFDNUI7RUFDQyxnQkFBZ0I7RUFDaEIseUJBQXlCO0VBQ3pCLG1CQUFtQjtDQUNuQjtBQUVEO0VBQ0Msc0JBQXNCO0VBQ3RCLHlCQUF5QjtDQUN6QjtBQUVELHlCQUF5QjtBQUN6QjtFQUNDLDJCQUF5QztFQUN6Qyw4QkFBNEM7RUFDNUMsY0FBYztFQUNkLFdBQVc7RUFDWCwwQ0FBOEI7RUFBOUIsa0NBQThCO0NBYTlCO0FBWEE7RUFDQywwQkFBNkM7RUFDN0MsNkJBQWdEO0VBQ2hELGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsMENBQThCO0VBQTlCLGtDQUE4QjtDQUs5QjtBQUhBO0VBUEQ7SUFRRSxnQkFBZ0I7R0FFakI7Q0FEQztBQUlIO0VBQ0MsYUFBYTtFQUNiLGlCQUFpQjtFQUNqQixjQUFjO0NBbUJkO0FBakJBO0VBQ0MsbUJBQW1CO0NBQ25CO0FBRUQ7RUFDQyxVQUFVO0NBQ1Y7QUFHQTtFQUREO0lBRUUsV0FBVztHQU1aO0NBTEM7QUFFRDtFQUxEO0lBTUUsV0FBVztHQUVaO0NBREM7QUFJSDtFQUNDLHdCQUE0QjtNQUE1QixxQkFBNEI7VUFBNUIsNEJBQTRCO0NBQzVCO0FBRUQ7OztFQUdDLHdCQUF3QjtFQUN4QixVQUFVO0VBQ1YsV0FBVztFQUNYLHFCQUFxQjtFQUNyQixVQUFVO0VBQ1YsV0FBVztFQUNYLDBDQUE4QjtFQUE5QixrQ0FBOEI7Q0F1QjlCO0FBckJBOzs7Ozs7RUFFQyxhQUFhO0VBQ2Isa0JBQWtCO0VBQ2xCLFVBQVU7Q0FDVjtBQUVEO0VBQ0MsZUFBNkI7RUFDN0IsV0FBVztFQUNYLDhCQUE4QjtFQUM5QixXQUFXO0NBU1g7QUFQQTs7Ozs7O0VBRUMsV0FBVztFQUNYLDhCQUE4QjtFQUM5QixlQUE2QjtFQUM3QixxQkFBcUI7Q0FDckI7QUFNRjtFQUNDLGNBQWM7Q0FDZDtBQUdGO0VBQ0MsY0FBYztDQUtkO0FBSEE7RUFDQyxzQkFBc0I7Q0FDdEI7QUFHRixxQkFBcUI7QUFDckI7RUFDQyxpQkFBaUI7Q0FDakI7QUFFRDtFQUNDLG9CQUFvQjtDQUNwQjtBQUVEO0VBQ0MsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsaUJBQWlCO0NBQ2pCO0FBRUQ7RUFDQyxtQkFBbUI7Q0FDbkI7QUFFRDtFQUNDLHNCQUFzQjtFQUN0Qix1QkFBdUI7Q0FDdkI7QUFFRDtFQUNDLG1CQUFzQztFQUN0QyxpQkFBa0M7RUFDbEMsb0JBQW9CO0NBQ3BCO0FBRUQ7RUFDQyxlQUFvQztFQUNwQyxpQkFBcUM7Q0FLckM7QUFIQTtFQUpEO0lBS0UsV0FBVztHQUVaO0NBREM7QWpDOUhGLFVBQVU7QWtDaENWO0VBQ0MscUJBQW9CO0VBQXBCLHFCQUFvQjtFQUFwQixjQUFvQjtFQUFwQiwrQkFBb0I7RUFBcEIsOEJBQW9CO01BQXBCLHdCQUFvQjtVQUFwQixvQkFBb0I7RUFBcEIsa0JBQW9CO0VBQXBCLGtCQUFvQjtFQUFwQixtQkFBb0I7RUFDcEIsV0FBVztFQUNYLDBDQUE4QjtFQUE5QixrQ0FBOEI7Q0FLOUI7QUFIQTtFQUNDLGFBQWE7Q0FDYjtBQUdGO0VBQ0MsWUFBWTtFQUNaLG1CQUFtQjtFQUNuQiw4QkFBaUQ7RUFDakQsaUNBQW9EO0VBQ3BELGdCQUFnQjtDQUNoQjtBQUVEO0VBQ0MsWUFBWTtFQUNaLHFCQUFjO0VBQWQscUJBQWM7RUFBZCxjQUFjO0VBQ2QsK0JBQW9CO0VBQXBCLDhCQUFvQjtNQUFwQix3QkFBb0I7VUFBcEIsb0JBQW9CO0VBQ3BCLHNCQUFrQjtNQUFsQixrQkFBa0I7Q0FtQ2xCO0FBakNBO0VBQ0MsZ0JBQWdCO0VBQ2hCLG1CQUFzQztFQUN0QyxpQkFBcUM7Q0FLckM7QUFIQTtFQUxEO0lBTUUsZ0JBQWdCO0dBRWpCO0NBREM7QUFHRjtFQUNDLG9CQUFlO01BQWYsbUJBQWU7VUFBZixlQUFlO0NBQ2Y7QUFFRDtFQUNDLG9CQUFlO01BQWYsbUJBQWU7VUFBZixlQUFlO0NBU2Y7QUFQQTtFQUhEO0lBSUUsb0JBQWU7UUFBZixtQkFBZTtZQUFmLGVBQWU7R0FNaEI7Q0FMQztBQUVEO0VBUEQ7SUFRRSxvQkFBZ0I7UUFBaEIsb0JBQWdCO1lBQWhCLGdCQUFnQjtHQUVqQjtDQURDO0FBR0Y7RUFDQyxvQkFBZTtNQUFmLG1CQUFlO1VBQWYsZUFBZTtDQUtmO0FBSEE7RUFIRDtJQUlFLG9CQUFnQjtRQUFoQixvQkFBZ0I7WUFBaEIsZ0JBQWdCO0dBRWpCO0NBREM7QUFJSDtFQUNDLFlBQVk7RUFDWixxQkFBYztFQUFkLHFCQUFjO0VBQWQsY0FBYztFQUNkLCtCQUFvQjtFQUFwQiw4QkFBb0I7TUFBcEIsd0JBQW9CO1VBQXBCLG9CQUFvQjtFQUNwQixvQkFBZ0I7TUFBaEIsZ0JBQWdCO0NBQ2hCO0FBRUQ7RUFDQyxvQkFBcUI7TUFBckIscUJBQXFCO1VBQXJCLGFBQXFCO0VBQXJCLHFCQUFxQjtNQUFyQixlQUFxQjtFQUFyQixtQ0FBcUI7TUFBckIsc0JBQXFCO0VBQXJCLHFCQUFxQjtFQUFyQixpQkFBcUI7RUFDckIscUJBQWM7RUFBZCxxQkFBYztFQUFkLGNBQWM7RUFDZCwrQkFBb0I7RUFBcEIsOEJBQW9CO01BQXBCLHdCQUFvQjtVQUFwQixvQkFBb0I7RUFDcEIsc0JBQWtCO01BQWxCLGtCQUFrQjtFQUNsQiwwQkFBb0I7TUFBcEIsdUJBQW9CO1VBQXBCLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsOEJBQWlEO0VBQ2pELGdCQUFnQjtDQWFoQjtBQXJCRDtFQUNDLGdCQUFxQjtFQUFyQixlQUFxQjtDQW9CckI7QUFyQkQ7RUFDQyxnQkFBcUI7Q0FvQnJCO0FBckJEO0VBQ0MsZ0JBQXFCO0VBQXJCLGtCQUFxQjtDQW9CckI7QUFYQTtFQVZEO0lBV0UsZUFBb0M7R0FVckM7Q0FUQztBQUVEO0VBZEQ7SUFlRSxnQkFBZ0I7R0FNakI7Q0FMQztBQUVEO0VBQ0MsaUNBQW9EO0NBQ3BEO0FBR0Y7RUFDQyxlQUFlO0VBQ2Ysd0JBQXdCO0VBQ3hCLGVBQTRCO0VBQzVCLG1CQUF3QztFQUN4QyxxQkFBcUI7RUFDckIsZUFBZTtFQUNmLGlCQUFxQztDQW9CckM7QUFsQkE7RUFURDtJQVVFLGVBQW9DO0lBQ3BDLGVBQWU7R0FnQmhCO0NBZkM7QUFFRDs7RUFFQyx3QkFBd0I7RUFDeEIsZUFBbUM7Q0FTbkM7QUFQQTtFQUNDLHFCQUFxQjtFQUNyQix3QkFBd0I7RUFDeEIsZUFBbUM7RUFDbkMsYUFBYTtFQUNiLGFBQWE7Q0FDYjtBQUlIO0VBQ0Msb0JBQWU7TUFBZixtQkFBZTtVQUFmLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsMkJBQXVCO01BQXZCLHVCQUF1QjtDQWdCdkI7QUFkQTtFQUxEO0lBTUUsb0JBQWdCO1FBQWhCLG9CQUFnQjtZQUFoQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0dBWXBCO0NBWEM7QUFFRDtFQUNDLGdCQUFnQjtFQUNoQixZQUFZO0VBQ1osYUFBYTtDQUtiO0FBSEE7RUFMRDtJQU1FLGlCQUFpQjtHQUVsQjtDQURDO0FBSUg7RUFDQyxvQkFBZTtNQUFmLG1CQUFlO1VBQWYsZUFBZTtFQUNmLG1CQUFtQjtFQUNuQiwyQkFBdUI7TUFBdkIsdUJBQXVCO0NBcUJ2QjtBQW5CQTtFQUNDLFVBQVU7RUFDVixlQUFvQztFQUNwQyxtQkFBbUI7Q0FlbkI7QUFiQTtFQUxEO0lBTUUsbUJBQXVDO0lBQ3ZDLGlCQUFtQztHQVdwQztDQVZDO0FBRUQ7RUFWRDtJQVdFLGtCQUF1QztHQU94QztDQU5DO0FBRUQ7RUFkRDtJQWVFLGlCQUF3QztJQUN4QyxpQkFBa0M7R0FFbkM7Q0FEQztBQUlIO0VBQ0MsZUFBZTtFQUNmLGlCQUFxQztFQUNyQyxpQkFBaUI7RUFDakIsbUJBQXNDO0NBQ3RDO0FBRUQ7RUFDQyxlQUFlO0VBQ2Ysa0JBQXVDO0VBQ3ZDLGlCQUFxQztFQUNyQyxpQkFBaUI7RUFDakIsZUFBNEI7Q0FDNUI7QUFFRDtFQUNDLGlCQUF5QztDQUN6QztBQUVEO0VBQ0MsaUJBQXNDO0NBQ3RDO0FBRUQ7RUFDQyxvQkFBZTtNQUFmLG1CQUFlO1VBQWYsZUFBZTtDQXFCZjtBQW5CQTtFQUhEO0lBSUUsb0JBQWdCO1FBQWhCLG9CQUFnQjtZQUFoQixnQkFBZ0I7R0FrQmpCO0NBakJDO0FBRUQ7RUFDQyxtQkFBbUI7RUFDbkIsaUJBQStCO0VBQy9CLDBCQUE2QztFQUM3QyxtQkFBc0M7RUFDdEMsWUFBWTtDQVNaO0FBUEE7RUFQRDtJQVFFLGVBQW9DO0dBTXJDO0NBTEM7QUFFRDtFQUNDLHNDQUFpRDtVQUFqRCw4QkFBaUQ7Q0FDakQ7QUFJSDtFQUNDLG9CQUFlO01BQWYsbUJBQWU7VUFBZixlQUFlO0VBQ2Ysa0JBQWtCO0VBQ2xCLGlCQUFxQztFQUNyQyxtQkFBc0M7Q0FNdEM7QUFKQTtFQU5EO0lBT0Usb0JBQWdCO1FBQWhCLG9CQUFnQjtZQUFoQixnQkFBZ0I7SUFDaEIsa0JBQXVDO0dBRXhDO0NBREM7QUFHRjtFQUNDLFlBQVk7Q0FDWjtBQUVEOztFQUVDLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIscUJBQWM7RUFBZCxxQkFBYztFQUFkLGNBQWM7RUFDZCwrQkFBb0I7RUFBcEIsOEJBQW9CO01BQXBCLHdCQUFvQjtVQUFwQixvQkFBb0I7RUFDcEIsdUJBQXNCO01BQXRCLG9CQUFzQjtVQUF0QixzQkFBc0I7Q0FDdEI7QUFFRDtFQUNDLGVBQWU7Q0FDZjtBQUVEOztFQUVDLG1CQUFzQztFQUN0QyxtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLG9CQUFvQjtFQUNwQixvQkFBZTtNQUFmLG1CQUFlO1VBQWYsZUFBZTtDQUNmO0FBRUQ7O0VBRUMsaUJBQXFDO0VBQ3JDLGlCQUFpQjtFQUNqQixvQkFBZTtNQUFmLG1CQUFlO1VBQWYsZUFBZTtDQU1mO0FBSkE7RUFORDs7SUFPRSxrQkFBdUM7SUFDdkMsb0JBQWdCO1FBQWhCLG9CQUFnQjtZQUFoQixnQkFBZ0I7R0FFakI7Q0FEQztBQUdGO0VBQ0MsZUFBb0M7Q0FDcEM7QUFFRDtFQUNDLGtCQUFrQjtFQUNsQixpQkFBaUI7Q0FDakI7QUFFRDtFQUNDLFlBQVk7RUFDWixjQUFjO0NBS2Q7QUFIQTtFQUNDLGVBQWU7Q0FDZjtBQUdGO0VBQ0Msb0JBQW9CO0VBQ3BCLGtCQUF1QztFQUN2QyxVQUFVO0NBS1Y7QUFIQTtFQUNDLGNBQWM7Q0FDZDtBQy9SRjtFQUNDLHNCQUFzQjtFQUN0QiwwQkFBdUM7RUFDdkMsWUFBMEI7RUFDMUIsaUJBQXFDO0VBQ3JDLG9CQUFvQjtFQUNwQixZQUFZO0VBQ1osYUFBYTtFQUNiLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtFQUNuQiw0QkFBb0I7VUFBcEIsb0JBQW9CO0VBQ3BCLGlGQUFxRDtFQUFyRCx5RUFBcUQ7RUFBckQsaUVBQXFEO0VBQXJELCtIQUFxRDtDQUtyRDtBQUhBO0VBQ0MsNEJBQW9CO1VBQXBCLG9CQUFvQjtDQUNwQjtBbkNtQkYsVUFBVTtBb0NwQ1Y7RUFDQyxtQkFBbUI7Q0FDbkI7QUFFRDtFQUNDLHFCQUFjO0VBQWQscUJBQWM7RUFBZCxjQUFjO0VBQ2QsK0JBQW9CO0VBQXBCLDhCQUFvQjtNQUFwQix3QkFBb0I7VUFBcEIsb0JBQW9CO0VBQ3BCLG9CQUFnQjtNQUFoQixnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLFdBQVc7RUFDWCxXQUFXO0VBQ1gsc0NBQXNDO0VBQXRDLDhCQUFzQztFQUN0QyxXQUFXO0VBQ1gsVUFBVTtFQUNWLGlCQUFpQjtDQWNqQjtBQVpBO0VBQ0MsV0FBVztDQUNYO0FBRUQ7RUFDQyxtQkFBbUI7RUFDbkIsY0FBYztDQUNkO0FBRUQ7RUFDQyxXQUFXO0NBQ1g7QUFHRjtFQUNDLHNCQUFzQjtFQUN0QiwwQkFBeUM7RUFDekMsMENBQThCO0VBQTlCLGtDQUE4QjtFQVc5QixZQUFZO0VBQ1osb0JBQW9CO0NBS3BCO0FBYkM7O0VBRUMsb0NBQTRCO1VBQTVCLDRCQUE0QjtFQUM1QixzQ0FBaUQ7VUFBakQsOEJBQWlEO0NBQ2pEO0FBTUY7RUFqQkQ7SUFrQkUsb0JBQXdCO1FBQXhCLHFCQUF3QjtZQUF4QixhQUF3QjtJQUF4QixxQkFBd0I7UUFBeEIsZUFBd0I7SUFBeEIsZ0RBQXdCO1FBQXhCLG1DQUF3QjtJQUF4QixrQ0FBd0I7SUFBeEIsOEJBQXdCO0dBRXpCO0VBcEJEO0lBa0JFLG1CQUF3QjtJQUF4QixlQUF3QjtHQUV6QjtFQXBCRDtJQWtCRSxnQkFBd0I7R0FFekI7RUFwQkQ7SUFrQkUsZ0JBQXdCO0lBQXhCLGtCQUF3QjtHQUV6QjtDQURDO0FBS0Q7RUFDQyxlQUFlO0VBQ2YsbUJBQXNDO0NBQ3RDO0FBR0Y7RUFDQyxpQkFBaUI7RUFDakIsa0JBQXVDO0VBQ3ZDLGlCQUFtQztFQUNuQyxvQkFBb0I7Q0FDcEI7QUFFRDtFQUNDLGlCQUFpQjtDQUNqQjtBQUVEOzs7Ozs7RUFNQyx3QkFBd0I7RUFDeEIsVUFBVTtFQUNWLGNBQWM7RUFDZCxXQUFXO0VBQ1gscUJBQXFCO0VBQ3JCLHVCQUF1QjtFQUN2QixvQkFBb0I7RUFDcEIscUJBQXFCO0VBQ3JCLG1CQUFzQztFQUN0QyxzQkFBc0I7RUFDdEIsb0NBQTRCO1VBQTVCLDRCQUE0QjtFQUM1QixXQUFXO0VBQ1gsc0NBQXNDO0VBQXRDLDhCQUFzQztFQUN0QyxpQkFBaUI7RUFDakIsbUJBQW1CO0NBT25CO0FBTEE7Ozs7Ozs7Ozs7OztFQUVDLHdCQUF3QjtFQUN4QixjQUFjO0NBQ2Q7QUFHRjtFQUNDLHNCQUFzQjtDQUN0QjtBQUVEO0VBQ0MsOEJBQThCO0VBQzlCLFdBQVc7RUFDWCxxQkFBYztFQUFkLHFCQUFjO0VBQWQsY0FBYztFQUNkLDJCQUFzQjtNQUF0QixzQkFBc0I7RUFDdEIseUJBQXdCO01BQXhCLHNCQUF3QjtVQUF4Qix3QkFBd0I7Q0FDeEI7QUFFRDs7O0VBR0MsOEJBQThCO0VBQzlCLGVBQTZCO0VBQzdCLDBDQUE4QjtFQUE5QixrQ0FBOEI7RUFDOUIsWUFBWTtFQUNaLG1CQUFtQjtFQUNuQixrQkFBdUM7RUFDdkMsZUFBcUM7RUFDckMscUJBQXFCO0VBQ3JCLHVCQUF1QjtFQUN2QixpQkFBaUI7RUFDakIsMEJBQXlDO0NBb0J6QztBQWxCQTtFQWZEOzs7SUFnQkUsV0FBVztHQWlCWjtDQWhCQztBQUVEO0VBQ0MsZUFBZTtFQUNmLGVBQW9DO0VBQ3BDLG9CQUFvQjtDQUtwQjtBQUhBO0VBQ0MsaUJBQWlCO0NBQ2pCO0FBR0Y7Ozs7OztFQUVDLDBCQUF5QztDQUN6QztBQUdGO0VBQ0MsZUFBZTtFQUNmLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsb0JBQWU7TUFBZixtQkFBZTtVQUFmLGVBQWU7Q0FLZjtBQUhBO0VBQ0Msb0JBQW9CO0NBQ3BCO0FBR0Y7RUFDQyxvQkFBZTtNQUFmLG1CQUFlO1VBQWYsZUFBZTtFQUNmLHFCQUFjO0VBQWQscUJBQWM7RUFBZCxjQUFjO0VBQ2Qsa0JBQWtCO0NBQ2xCO0FBRUQ7RUFDQyxtQkFBbUI7RUFDbkIsT0FBTztFQUNQLFFBQVE7RUFDUixZQUFZO0VBQ1osYUFBYTtFQUNiLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsMENBQThCO0VBQTlCLGtDQUE4QjtFQUM5QixXQUFXO0VBQ1gscUJBQWM7RUFBZCxxQkFBYztFQUFkLGNBQWM7RUFDZCwyQkFBc0I7TUFBdEIsc0JBQXNCO0VBQ3RCLHlCQUF3QjtNQUF4QixzQkFBd0I7VUFBeEIsd0JBQXdCO0VBQ3hCLG9CQUFnQjtNQUFoQixnQkFBZ0I7RUFDaEIsK0JBQW9CO0VBQXBCLDhCQUFvQjtNQUFwQix3QkFBb0I7VUFBcEIsb0JBQW9CO0VBQ3BCLG9CQUFtQztFQUNuQyxjQUFjO0NBS2Q7QUFIQTtFQUNDLG9CQUFvQjtDQUNwQjtBQUdGO0VBQ0MsV0FBVztFQUNYLG9CQUFvQjtFQUNwQixXQUFXO0NBQ1g7QUFFRCwyQkFBMkI7QUFDM0I7RUFDQyxtQkFBbUI7RUFDbkIsV0FBVztFQUNYLE9BQU87RUFDUCxRQUFRO0VBQ1IsWUFBWTtDQUtaO0FBSEE7RUFDQyxjQUFjO0NBQ2Q7QUFHRjtFQUNDLHVCQUFxQztFQUNyQyxtQkFBbUI7RUFDbkIsUUFBUTtFQUNSLE9BQU87RUFDUCxZQUFZO0VBQ1osYUFBYTtDQUNiO0FBRUQ7RUFDQyxtQkFBbUI7Q0FDbkI7QUN6TkQ7RUFDQyw4QkFBaUQ7RUFDakQsaUNBQW9EO0VBQ3BELGdCQUFnQjtDQUtoQjtBQUhBO0VBTEQ7SUFNRSxxQkFBcUI7R0FFdEI7Q0FEQztBQ1BGO0VBQ0MscUJBQWM7RUFBZCxxQkFBYztFQUFkLGNBQWM7RUFDZCwrQkFBb0I7RUFBcEIsOEJBQW9CO01BQXBCLHdCQUFvQjtVQUFwQixvQkFBb0I7RUFDcEIsb0JBQWdCO01BQWhCLGdCQUFnQjtFQUNoQixZQUFZO0NBQ1o7QUFFRDs7RUFFQyxvQkFBb0I7RUFDcEIsWUFBWTtDQU1aO0FBSkE7RUFMRDs7SUFNRSxXQUFXO0lBQ1gsaUJBQWlCO0dBRWxCO0NBREM7QUFLRDtFQUZEOztJQUdFLGlCQUFpQjtHQUVsQjtDQURDO0FBS0Q7OztFQUdDLCtCQUF1QjtVQUF2Qix1QkFBdUI7RUFDdkIsb0JBQW9CO0NBTXBCO0FBSkE7RUFORDs7O0lBT0Usb0JBQW9CO0lBQ3BCLG9CQUFvQjtHQUVyQjtDQURDO0FBR0Y7RUFDQyxlQUFlO0VBQ2YsbUJBQW1CO0NBQ25CO0FBSUQ7RUFERDtJQUVFLCtCQUFrRDtJQUNsRCxxQkFBYztJQUFkLHFCQUFjO0lBQWQsY0FBYztJQUNkLHlCQUF3QjtRQUF4QixzQkFBd0I7WUFBeEIsd0JBQXdCO0dBT3pCO0VBTEM7SUFDQyxrQkFBa0I7SUFDbEIsaUJBQWlCO0dBQ2pCO0NBQ0Q7QUFHRjtFQUNDLGNBQWM7Q0FDZDtBQUVEO0VBQ0Msa0JBQWtCO0NBQ2xCO0FDL0RBO0VBREQ7SUFFRSxlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLG1CQUFtQjtHQUVwQjtDQURDO0FDTEY7RUFDQyxrQkFBdUM7RUFDdkMsb0JBQW9CO0VBQ3BCLHFCQUFjO0VBQWQscUJBQWM7RUFBZCxjQUFjO0VBQ2QsK0JBQW9CO0VBQXBCLDhCQUFvQjtNQUFwQix3QkFBb0I7VUFBcEIsb0JBQW9CO0NBQ3BCO0FBRUQ7RUFDQyxtQkFBbUI7RUFDbkIsa0JBQWtCO0NBTWxCO0FBSkE7RUFDQyxpQkFBaUI7RUFDakIsbUJBQW1CO0NBQ25CO0FBR0Y7O0VBRUMsa0JBQXVDO0VBQ3ZDLGlCQUFxQztFQUNyQyxVQUFVO0VBQ1YsV0FBVztDQUNYO0FBRUQ7RUFDQyxpQkFBcUM7Q0FDckM7QUFFRDtFQUNDLGlCQUFpQjtDQUNqQjtBQy9CRDs7RUFFQyxpQkFBaUI7RUFDakIsVUFBVTtDQUNWO0FBRUQ7RUFDQyxpQkFBaUI7RUFDakIscUJBQXFCO0NBS3JCO0FBSEE7RUFDQyxpQkFBaUI7Q0FDakI7QUFHRjtFQUNDLGlDQUFvRDtFQUNwRCxnQkFBZ0I7Q0FTaEI7QUFQQTtFQUpEO0lBS0UsZ0JBQWdCO0dBTWpCO0NBTEM7QUFFRDtFQUNDLDhCQUFpRDtDQUNqRDtBQUdGO0VBQ0MsaUJBQWlCO0NBQ2pCO0FDOUJEO0VBQ0MsOEJBQWlEO0VBQ2pELGtCQUFrQjtDQUNsQjtBQUVEOztFQUVDLGlCQUFpQjtFQUNqQixVQUFVO0NBQ1Y7QUFFRDtFQUNDLGlDQUFvRDtFQUNwRCxxQkFBcUI7RUFDckIsb0JBQW9CO0NBQ3BCO0FBSUE7RUFDQyxpQkFBaUI7Q0FDakI7QUFHRjtFQUNDLGlDQUFvRDtFQUNwRCxxQkFBcUI7RUFDckIsb0JBQW9CO0VBQ3BCLHFCQUFjO0VBQWQscUJBQWM7RUFBZCxjQUFjO0VBQ2QsNkJBQXVCO0VBQXZCLDhCQUF1QjtNQUF2QiwyQkFBdUI7VUFBdkIsdUJBQXVCO0NBTXZCO0FBSkE7RUFQRDtJQVFFLCtCQUFvQjtJQUFwQiw4QkFBb0I7UUFBcEIsd0JBQW9CO1lBQXBCLG9CQUFvQjtJQUNwQiwwQkFBK0I7UUFBL0IsdUJBQStCO1lBQS9CLCtCQUErQjtHQUVoQztDQURDO0FBR0Y7RUFDQyxxQkFBYztFQUFkLHFCQUFjO0VBQWQsY0FBYztFQUNkLDZCQUF1QjtFQUF2Qiw4QkFBdUI7TUFBdkIsMkJBQXVCO1VBQXZCLHVCQUF1QjtDQUt2QjtBQUhBO0VBSkQ7SUFLRSxvQkFBd0I7UUFBeEIscUJBQXdCO1lBQXhCLGFBQXdCO0lBQXhCLHFCQUF3QjtRQUF4QixlQUF3QjtJQUF4QiwwQ0FBd0I7UUFBeEIsNkJBQXdCO0lBQXhCLDRCQUF3QjtJQUF4Qix3QkFBd0I7R0FFekI7RUFQRDtJQUtFLG1CQUF3QjtJQUF4QixlQUF3QjtHQUV6QjtFQVBEO0lBS0UsZ0JBQXdCO0dBRXpCO0VBUEQ7SUFLRSxnQkFBd0I7SUFBeEIsa0JBQXdCO0dBRXpCO0NBREM7QUFHRjtFQUNDLHFCQUFjO0VBQWQscUJBQWM7RUFBZCxjQUFjO0VBQ2QsK0JBQW9CO0VBQXBCLDhCQUFvQjtNQUFwQix3QkFBb0I7VUFBcEIsb0JBQW9CO0VBQ3BCLG9CQUFnQjtNQUFoQixnQkFBZ0I7RUFDaEIsVUFBVTtFQUNWLFdBQVc7Q0FDWDtBQUVEO0VBQ0Msb0JBQW1CO01BQW5CLHFCQUFtQjtVQUFuQixhQUFtQjtFQUFuQixxQkFBbUI7TUFBbkIsZUFBbUI7RUFBbkIsMENBQW1CO01BQW5CLDZCQUFtQjtFQUFuQiw0QkFBbUI7RUFBbkIsd0JBQW1CO0VBQ25CLG9CQUFvQjtDQU1wQjtBQVJEO0VBQ0MsbUJBQW1CO0VBQW5CLGVBQW1CO0NBT25CO0FBUkQ7RUFDQyxnQkFBbUI7Q0FPbkI7QUFSRDtFQUNDLGdCQUFtQjtFQUFuQixrQkFBbUI7Q0FPbkI7QUFKQTtFQUpEO0lBS0Usb0JBQXdCO1FBQXhCLHFCQUF3QjtZQUF4QixhQUF3QjtJQUF4QixxQkFBd0I7UUFBeEIsZUFBd0I7SUFBeEIsc0RBQXdCO1FBQXhCLHlDQUF3QjtJQUF4Qix3Q0FBd0I7SUFBeEIsb0NBQXdCO0lBQ3hCLG9CQUFvQjtHQUVyQjtFQVJEO0lBS0UsbUJBQXdCO0lBQXhCLGVBQXdCO0dBR3pCO0VBUkQ7SUFLRSxnQkFBd0I7R0FHekI7RUFSRDtJQUtFLGdCQUF3QjtJQUF4QixrQkFBd0I7R0FHekI7Q0FEQztBQUdGO0VBQ0MsaUJBQWlCO0NBQ2pCO0FBRUQ7RUFDQyxxQkFBYztFQUFkLHFCQUFjO0VBQWQsY0FBYztFQUNkLDZCQUF1QjtFQUF2Qiw4QkFBdUI7TUFBdkIsMkJBQXVCO1VBQXZCLHVCQUF1QjtDQWtCdkI7QUFoQkE7RUFKRDtJQUtFLCtCQUFvQjtJQUFwQiw4QkFBb0I7UUFBcEIsd0JBQW9CO1lBQXBCLG9CQUFvQjtHQWVyQjtDQWRDO0FBRUQ7RUFDQyxrQkFBdUM7RUFDdkMsa0JBQXNDO0VBQ3RDLGlCQUFxQztFQUNyQyxrQkFBa0I7RUFDbEIscUJBQXFCO0VBQ3JCLFVBQVU7Q0FDVjtBQUVEO0VBQ0MsaUJBQWlCO0NBQ2pCO0FBR0Y7RUFDQyxvQkFBb0I7Q0FNcEI7QUFKQTtFQUhEO0lBSUUsb0JBQXdCO1FBQXhCLHFCQUF3QjtZQUF4QixhQUF3QjtJQUF4QixxQkFBd0I7UUFBeEIsZUFBd0I7SUFBeEIsMENBQXdCO1FBQXhCLDZCQUF3QjtJQUF4Qiw0QkFBd0I7SUFBeEIsd0JBQXdCO0lBQ3hCLGlCQUFpQjtHQUVsQjtFQVBEO0lBSUUsbUJBQXdCO0lBQXhCLGVBQXdCO0dBR3pCO0VBUEQ7SUFJRSxnQkFBd0I7R0FHekI7RUFQRDtJQUlFLGdCQUF3QjtJQUF4QixrQkFBd0I7R0FHekI7Q0FEQztBQUdGO0VBQ0MsaUJBQWlCO0NBS2pCO0FBSEE7RUFDQyxvQkFBb0I7Q0FDcEI7QUFLRDtFQUNDLGVBQWU7Q0FDZjtBQUdGO0VBQ0MsaUJBQWlCO0NBTWpCO0FBSkE7RUFIRDtJQUlFLG9CQUFpQjtRQUFqQixxQkFBaUI7WUFBakIsYUFBaUI7SUFBakIscUJBQWlCO1FBQWpCLGVBQWlCO0lBQWpCLHNEQUFpQjtRQUFqQix5Q0FBaUI7SUFBakIsd0NBQWlCO0lBQWpCLG9DQUFpQjtJQUNqQixjQUFjO0dBRWY7RUFQRDtJQUlFLG1CQUFpQjtJQUFqQixlQUFpQjtHQUdsQjtFQVBEO0lBSUUsZ0JBQWlCO0dBR2xCO0VBUEQ7SUFJRSxnQkFBaUI7SUFBakIsa0JBQWlCO0dBR2xCO0NBREM7QUFHRjs7RUFFQyxpQkFBaUI7RUFDakIsVUFBVTtFQUNWLFdBQVc7Q0FDWDtBQUVEO0VBQ0MscUJBQWM7RUFBZCxxQkFBYztFQUFkLGNBQWM7RUFDZCx1QkFBbUI7TUFBbkIsbUJBQW1CO0VBQ25CLDBCQUErQjtNQUEvQix1QkFBK0I7VUFBL0IsK0JBQStCO0NBUy9CO0FBUEE7RUFDQyxnQkFBZ0I7Q0FDaEI7QUFFRDtFQUNDLGlCQUFpQjtDQUNqQjtBQUdGOztFQUVDLGVBQW9DO0VBQ3BDLGlCQUFxQztFQUNyQyxpQkFBcUM7RUFDckMsVUFBVTtFQUNWLFdBQVc7Q0FNWDtBQUpBO0VBQ0Msa0JBQXVDO0VBQ3ZDLGlCQUFpQjtDQUNqQjtBQUdGO0VBQ0MsZUFBNEI7Q0FDNUI7QUMvSkE7RUFERDtJQUVFLGVBQWU7SUFDZixpQkFBaUI7R0FFbEI7Q0FEQztBQUdGO0VBQ0MscUJBQWM7RUFBZCxxQkFBYztFQUFkLGNBQWM7RUFDZCwrQkFBb0I7RUFBcEIsOEJBQW9CO01BQXBCLHdCQUFvQjtVQUFwQixvQkFBb0I7RUFDcEIseUJBQXdCO01BQXhCLHNCQUF3QjtVQUF4Qix3QkFBd0I7RUFDeEIsaUJBQWlCO0VBQ2pCLGlCQUFpQjtDQUNqQjtBQUlBO0VBQ0Msa0JBQWtCO0NBQ2xCO0FDbkJGO0VBQ0MsOEJBQWlEO0VBQ2pELGlDQUFvRDtFQUNwRCxnQkFBZ0I7Q0FLaEI7QUFIQTtFQUxEO0lBTUUscUJBQXFCO0dBRXRCO0NBREM7QUFNQTtFQUREO0lBRUUsbUJBQW1CO0dBRXBCO0NBREM7QUFHRjtFQUNDLG9CQUFjO01BQWQsa0JBQWM7VUFBZCxjQUFjO0NBY2Q7QUFYQztFQUREO0lBRUUsZ0NBQW1EO0lBQ25ELG9CQUFvQjtHQUVyQjtDQURDO0FBSUQ7RUFERDtJQUVFLG1CQUFtQjtHQUVwQjtDQURDO0FBS0o7RUFDQyxpQkFBaUI7Q0FTakI7QUFQQTtFQUhEO0lBSUUsaUJBQWlCO0dBTWxCO0NBTEM7QUFFRDtFQUNDLGlCQUFpQjtDQUNqQjtBQUlEO0VBREQ7SUFFRSxxQkFBYztJQUFkLHFCQUFjO0lBQWQsY0FBYztJQUNkLCtCQUFvQjtJQUFwQiw4QkFBb0I7UUFBcEIsd0JBQW9CO1lBQXBCLG9CQUFvQjtJQUNwQixzQkFBa0I7UUFBbEIsa0JBQWtCO0dBRW5CO0NBREM7QUFLRDtFQUZEOztJQUdFLG9CQUFjO1FBQWQsa0JBQWM7WUFBZCxjQUFjO0dBRWY7Q0FEQztBQU1BO0VBREQ7SUFFRSxrQkFBa0I7R0FFbkI7Q0FEQztBQUlIO0VBQ0MsMEJBQTZDO0VBQzdDLHFCQUFjO0VBQWQscUJBQWM7RUFBZCxjQUFjO0VBQ2QsNkJBQXVCO0VBQXZCLDhCQUF1QjtNQUF2QiwyQkFBdUI7VUFBdkIsdUJBQXVCO0VBQ3ZCLDBCQUFvQjtNQUFwQix1QkFBb0I7VUFBcEIsb0JBQW9CO0VBQ3BCLHlCQUF3QjtNQUF4QixzQkFBd0I7VUFBeEIsd0JBQXdCO0VBQ3hCLGlCQUFpQjtFQUNqQix3QkFBd0I7Q0FLeEI7QUFIQTtFQVREO0lBVUUsY0FBYztHQUVmO0NBREM7QUFHRjs7O0VBR0MsZUFBZTtFQUNmLGlCQUFxQztFQUNyQyxlQUFxQztDQUNyQztBQUVEO0VBQ0MsZUFBb0M7RUFDcEMsb0JBQW9CO0NBQ3BCO0FBRUQ7RUFDQyxlQUFlO0VBQ2Ysb0JBQW9CO0NBQ3BCO0FBRUQ7RUFDQyxlQUFvQztFQUNwQywwQkFBMEI7Q0FDMUIiLCJmaWxlIjoibWFzdGVyLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBHbG9iYWwgQ1NTXG4gKlxuICogRE8gTk9UIEVESVQgVEhJUyBDU1MgRklMRSBESVJFQ1RMWS4gSVQgSVMgR0VORVJBVEVEIEJZIEdSVU5ULlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVGhpcyBmaWxlIGlzIGp1c3QgYSBjbGVhcmluZy1ob3VzZSwgc2VlIHRoZSBwY3NzIGRpcmVjdG9yeVxuICogYW5kIGVkaXQgdGhlIHNvdXJjZSBmaWxlcyBmb3VuZCB0aGVyZS5cbiAqXG4gKi9cblxuLyogUmVzZXQgKi9cbkBpbXBvcnQgXCJiYXNlL2ljb25zXCI7XG5cbi8qIFV0aWxpdGllcyAqL1xuQGltcG9ydCBcInV0aWxpdGllcy9hbGxcIjtcblxuLyogQmFzZSAqL1xuQGltcG9ydCBcImJhc2UvYWxsXCI7XG5cbi8qIFZlbmRvciAqL1xuQGltcG9ydCBcInZlbmRvci9hbGxcIjtcblxuLyogQ29udGVudCAqL1xuQGltcG9ydCBcImNvbnRlbnQvYWxsXCI7XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEZvbnQgSWNvbnM6IEljb25zICh2aWEgSWNvTW9vbilcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdiaWdjb21tZXJjZS1pY29ucyc7XG4gIHNyYzpcbiAgICB1cmwoJ3ZhcigtLXBhdGgtZm9udHMpL2ljb25zLWJpZ2NvbW1lcmNlL2JpZ2NvbW1lcmNlLWljb25zLndvZmYyP21uaGVwZCcpIGZvcm1hdCgnd29mZjInKSxcbiAgICB1cmwoJ3ZhcigtLXBhdGgtZm9udHMpL2ljb25zLWJpZ2NvbW1lcmNlL2JpZ2NvbW1lcmNlLWljb25zLnR0Zj9tbmhlcGQnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgdXJsKCd2YXIoLS1wYXRoLWZvbnRzKS9pY29ucy1iaWdjb21tZXJjZS9iaWdjb21tZXJjZS1pY29ucy53b2ZmP21uaGVwZCcpIGZvcm1hdCgnd29mZicpLFxuICAgIHVybCgndmFyKC0tcGF0aC1mb250cykvaWNvbnMtYmlnY29tbWVyY2UvYmlnY29tbWVyY2UtaWNvbnMuc3ZnP21uaGVwZCNiaWdjb21tZXJjZS1pY29ucycpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLmJjLWljb24ge1xuICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICBmb250LWZhbWlseTogJ2JpZ2NvbW1lcmNlLWljb25zJyAhaW1wb3J0YW50O1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1ldmVuKTtcblxuICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi5pY29uLWJjLWJpZ2NvbW1lcmNlX2RpYWdub3N0aWNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTEyXCI7XG59XG4uaWNvbi1iYy1jaGFubmVsX3NlbGVjdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxMVwiO1xufVxuLmljb24tYmMtY2hhbm5lbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxMVwiO1xufVxuLmljb24tYmMtY3JlZGVudGlhbHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MTBcIjtcbn1cbi5pY29uLWJjLXN5bmM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MGZcIjtcbn1cbi5pY29uLWJjLWFjY291bnRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA2XCI7XG59XG4uaWNvbi1iYy1hbmFseXRpY3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDdcIjtcbn1cbi5pY29uLWJjLWNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDhcIjtcbn1cbi5pY29uLWJjLWN1cnJlbmN5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA5XCI7XG59XG4uaWNvbi1iYy1naWZ0X2NlcnRpZmljYXRlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwYVwiO1xufVxuLmljb24tYmMtaW1wb3J0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBiXCI7XG59XG4uaWNvbi1iYy1vcmRlcl9jb25maXJtYXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MGNcIjtcbn1cbi5pY29uLWJjLXByb2R1Y3RfcmV2aWV3czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwZFwiO1xufVxuLmljb24tYmMtc2hpcHBpbmdfcmV0dXJuczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwZVwiO1xufVxuLmljb24tYmMtYi1sb2dvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTAxXCI7XG59XG4uZGFzaGljb25zLWJpZ2NvbW1lcmNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTAxXCI7XG59XG4uaWNvbi1iYy1hcnJvdy1zb2xpZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwMlwiO1xufVxuLmljb24tYmMtc2VsZWN0ZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDNcIjtcbn1cbi5pY29uLWJjLWFycm93LXRvZ2dsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwNVwiO1xufVxuLmljb24tYmMtYXJyb3ctbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5NFwiO1xufVxuLmljb24tYmMtYXJyb3ctcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTVcIjtcbn1cbi5pY29uLWJjLWFycm93LXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDk2XCI7XG59XG4uaWNvbi1iYy1hcnJvdy1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDk3XCI7XG59XG4uaWNvbi1iYy1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTE0XCI7XG59XG4uaWNvbi1iYy1taW51czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExNVwiO1xufVxuLmljb24tYmMtY2hlY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTZcIjtcbn1cbi5pY29uLWJjLWNyb3NzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTE3XCI7XG59XG4uaWNvbi1iYy1zZWFyY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzZcIjtcbn1cbi5pY29uLWJjLWNoZXZyb24tZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwMFwiO1xufVxuLmljb24tYmMtY2hldnJvbi1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTFhXCI7XG59XG4uaWNvbi1iYy1jaGV2cm9uLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTE5XCI7XG59XG4uaWNvbi1iYy1jaGV2cm9uLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA0XCI7XG59XG4iLCJcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogVXRpbGl0aWVzXG4gKlxuICogVGhpcyBmaWxlIGlzIGp1c3QgYSBjbGVhcmluZy1ob3VzZS5cbiAqIE1ha2UgcGFydGlhbHMgKHN0YXJ0IHdpdGggYW4gdW5kZXJzY29yZSkgZm9yIGFueSBhY3R1YWwgY3NzIGNvZGUuXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyogVmFyaWFibGVzICovXG5AaW1wb3J0IFwidmFyaWFibGVzL2NvbG9yc1wiO1xuQGltcG9ydCBcInZhcmlhYmxlcy9lYXNpbmdcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXMvZm9ybXNcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXMvZm9ybXMvbGFiZWxcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXMvZm9ybXMvbGVnZW5kXCI7XG5AaW1wb3J0IFwidmFyaWFibGVzL2Zvcm1zL2ZpZWxkc2V0XCI7XG5AaW1wb3J0IFwidmFyaWFibGVzL2Zvcm1zL2NvbnRyb2xzXCI7XG5AaW1wb3J0IFwidmFyaWFibGVzL2Zvcm1zL2F0dHJpYnV0ZXNcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXMvZm9ybXMvdmFsaWRhdGlvblwiO1xuQGltcG9ydCBcInZhcmlhYmxlcy9pY29uc1wiO1xuQGltcG9ydCBcInZhcmlhYmxlcy9tZWRpYS1xdWVyaWVzXCI7XG5AaW1wb3J0IFwidmFyaWFibGVzL3BhdGhzXCI7XG5AaW1wb3J0IFwidmFyaWFibGVzL3RyYW5zaXRpb25zXCI7XG5AaW1wb3J0IFwidmFyaWFibGVzL3R5cG9ncmFwaHlcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXMvc3BhY2Vyc1wiO1xuXG4vKiBTZXR0aW5ncyAqL1xuQGltcG9ydCBcInNldHRpbmdzL2dyaWRcIjtcblxuLyogTWl4aW5zICovXG5AaW1wb3J0IFwibWl4aW5zL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvZm9ybXNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvdGV4dC1oZWxwZXJzXCI7XG5AaW1wb3J0IFwibWl4aW5zL3R5cG9ncmFwaHlcIjtcbkBpbXBvcnQgXCJtaXhpbnMvdXRpbGl0aWVzXCI7XG5AaW1wb3J0IFwibWl4aW5zL3Zpc2liaWxpdHlcIjtcblxuLyogSGVscGVyIENsYXNzZXMgKi9cbkBpbXBvcnQgXCJoZWxwZXItY2xhc3Nlcy92aXNpYmlsaXR5XCI7XG5AaW1wb3J0IFwiaGVscGVyLWNsYXNzZXMvY29sb3JzXCI7XG4iLCI6cm9vdCB7XG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIFByaW1hcnkgUGFsZXR0ZVxuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY29sb3ItcHJpbWFyeTogIzUyNzNmNDtcblx0LS1jb2xvci1zZWNvbmRhcnk6IGRhcmtlbih2YXIoLS1jb2xvci1wcmltYXJ5KSwgMC4wOCk7XG5cdC0tY29sb3ItYmMtZ3JlZW46ICM2NWM2OGM7XG5cdC0tY29sb3ItYmMtbGlnaHQtZ3JleTogI2UwZTNlOTtcblx0LS1jb2xvci1iYy1jb25jcmV0ZTogI2NkY2RjZDtcblx0LS1jb2xvci1iYy1ncmV5OiAjOGI4YjhiO1xuXHQtLWNvbG9yLWJjLWdyZXktbWVkaXVtOiAjNWU1ZTVlO1xuXHQtLWNvbG9yLWJjLWJsYWNrOiAjMzQzMTNmO1xuXHQtLWNvbG9yLWJjLWRvZ2VyLWJsdWU6ICM0YjcxZmM7XG5cdC0tY29sb3ItYmMtYmx1ZS1saWdodDogIzE2OGZjMDtcblx0LS1jb2xvci1iYy1ibHVlLXR1cnF1b2lzZTogIzUzYmFkMTtcblx0LS1jb2xvci1iYy1yZWQ6ICNkMjU3NGE7XG5cdC0tY29sb3ItYmMtc3VjY2VzczogIzgyOWQ1ZjtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBXaGl0ZXNcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNvbG9yLXdoaXRlOiAjZmZmO1xuXHQtLWNvbG9yLW9mZi13aGl0ZTogI2Y1ZjVmNTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBHcmV5c1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY29sb3ItZ3JleS1saWdodDogbGlnaHRlbih2YXIoLS1jb2xvci1ncmV5KSwgMC4xNSk7XG5cdC0tY29sb3ItZ3JleTogZ3JleTtcblx0LS1jb2xvci1ncmV5LWRhcms6IGRhcmtlbih2YXIoLS1jb2xvci1ncmV5KSwgMC4xNSk7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogQmxhY2tzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jb2xvci1ibGFjazogIzAwMDtcblx0LS1jb2xvci1ibGFjay1hLTQwOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG5cdC0tY29sb3ItYmxhY2stYS03MDogcmdiYSgwLCAwLCAwLCAwLjcpO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIEJhY2tncm91bmRzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jb2xvci1iZ2Q6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0LS1jb2xvci1iZ2QtY29udGVudDogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHQtLWNvbG9yLWJnZC1sb2dpbjogI2YxZjFmMTtcblx0LS1jb2xvci1iZ2Qtc2VsZWN0aW9uOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcblx0LS1jb2xvci1iZ2QtcGFuZWwtYWN0aXZlOiAjMmMyOTM1O1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIExpbmtzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jb2xvci1saW5rOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcblx0LS1jb2xvci1saW5rLWhvdmVyOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIFRleHRcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNvbG9yLXRleHQ6IHZhcigtLWNvbG9yLWJsYWNrKTtcblx0LS1jb2xvci10ZXh0LXNlbGVjdGlvbjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIEJvcmRlcnNcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNvbG9yLWJvcmRlcjogdmFyKC0tY29sb3ItZ3JleSk7XG5cdC0tY29sb3ItYm9yZGVyLWZvcm0tZmllbGQ6ICNlMWU2ZWE7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogQWxlcnQgQ29sb3JzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1hbGVydC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHQtLWFsZXJ0LWJnLWRlZmF1bHQ6IHZhcigtLWNvbG9yLWJjLWJsdWUtbGlnaHQpO1xuXHQtLWFsZXJ0LXN1Y2Nlc3M6ICMzZWM4ODk7XG5cdC0tYWxlcnQtZXJyb3I6ICNmZjAwMTI7XG5cdC0tYWxlcnQtYmctaW5mbzogdmFyKC0tY29sb3ItYmMtY29uY3JldGUpO1xufVxuIiwiOnJvb3Qge1xuXHQvKiBFYXNpbmc6IFNpbmUgKi9cblx0LS1lYXNlLWluLXNpbmU6IGN1YmljLWJlemllcigwLjQ3LCAwLCAwLjc0NSwgMC43MTUpO1xuXHQtLWVhc2Utb3V0LXNpbmU6IGN1YmljLWJlemllcigwLjM5LCAwLjU3NSwgMC41NjUsIDEpO1xuXHQtLWVhc2UtaW4tb3V0LXNpbmU6IGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7XG5cblx0LyogRWFzaW5nOiBRdWFkICovXG5cdC0tZWFzZS1pbi1xdWFkOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wODUsIDAuNjgsIDAuNTMpO1xuXHQtLWVhc2Utb3V0LXF1YWQ6IGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcblx0LS1lYXNlLWluLW91dC1xdWFkOiBjdWJpYy1iZXppZXIoMC40NTUsIDAuMDMsIDAuNTE1LCAwLjk1NSk7XG5cblx0LyogRWFzaW5nOiBDdWJpYyAqL1xuXHQtLWVhc2UtaW4tY3ViaWM6IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuXHQtLWVhc2Utb3V0LWN1YmljOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcblx0LS1lYXNlLWluLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpO1xuXG5cdC8qIEVhc2luZzogUXVhcnQgKi9cblx0LS1lYXNlLWluLXF1YXJ0OiBjdWJpYy1iZXppZXIoMC44OTUsIDAuMDMsIDAuNjg1LCAwLjIyKTtcblx0LS1lYXNlLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKTtcblx0LS1lYXNlLWluLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKTtcblxuXHQvKiBFYXNpbmc6IFF1aW50ICovXG5cdC0tZWFzZS1pbi1xdWludDogY3ViaWMtYmV6aWVyKDAuNzU1LCAwLjA1LCAwLjg1NSwgMC4wNik7XG5cdC0tZWFzZS1vdXQtcXVpbnQ6IGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcblx0LS1lYXNlLWluLW91dC1xdWludDogY3ViaWMtYmV6aWVyKDAuODYsIDAsIDAuMDcsIDEpO1xuXG5cdC8qIEVhc2luZzogRXhwbyAqL1xuXHQtLWVhc2UtaW4tZXhwbzogY3ViaWMtYmV6aWVyKDAuOTUsIDAuMDUsIDAuNzk1LCAwLjAzNSk7XG5cdC0tZWFzZS1vdXQtZXhwbzogY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpO1xuXHQtLWVhc2UtaW4tb3V0LWV4cG86IGN1YmljLWJlemllcigxLCAwLCAwLCAxKTtcblxuXHQvKiBFYXNpbmc6IENpcmMgKi9cblx0LS1lYXNlLWluLWNpcmM6IGN1YmljLWJlemllcigwLjYsIDAuMDQsIDAuOTgsIDAuMzM1KTtcblx0LS1lYXNlLW91dC1jaXJjOiBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTtcblx0LS1lYXNlLWluLW91dC1jaXJjOiBjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KTtcblxuXHQvKiBFYXNpbmc6IEJhY2sgKi9cblx0LS1lYXNlLWluLWJhY2s6IGN1YmljLWJlemllcigwLjYsIC0wLjI4LCAwLjczNSwgMC4wNDUpO1xuXHQtLWVhc2Utb3V0LWJhY2s6IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KTtcblx0LS1lYXNlLWluLW91dC1iYWNrOiBjdWJpYy1iZXppZXIoMC42OCwgLTAuNTUsIDAuMjY1LCAxLjU1KTtcbn1cbiIsIjpyb290IHtcblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogQm9yZGVyc1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tZm9ybS1ib3JkZXItY29sb3I6IGxpZ2h0Z3JleTtcblx0LS1mb3JtLWJvcmRlci1jb2xvci1mb2N1czogZGFya2VuKHZhcigtLWZvcm0tYm9yZGVyLWNvbG9yKSwgMC4yNSk7XG5cdC0tZm9ybS1ib3JkZXItc2l6ZTogMXB4O1xuXHQtLWZvcm0tYm9yZGVyLXNpemUtZm9jdXM6IHZhcigtLWZvcm0tYm9yZGVyLXNpemUpO1xuXHQtLWZvcm0tYm9yZGVyLXJhZGl1czogMDtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBDb2xvcnNcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWZvcm0tY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xuXHQtLWZvcm0tY29sb3Itc2Vjb25kYXJ5OiB2YXIoLS1jb2xvci1ncmV5LWxpZ2h0KTtcblx0LS1mb3JtLWNvbG9yLWVycm9yOiBsaWdodGVuKHJlZCwgMC4xKTtcblx0LS1mb3JtLWNvbG9yLXJlcXVpcmVkOiB2YXIoLS1mb3JtLWNvbG9yLWVycm9yKTtcblx0LS1mb3JtLWNvbG9yLXN1Y2Nlc3M6IGxpZ2h0ZW4oZ3JlZW4sIDAuMSk7XG5cdC0tZm9ybS1jb2xvci1wbGFjZWhvbGRlcjogZ3JleTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBVSVxuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tZm9ybS11aS1pY29uLWNvbG9yOiBsaWdodGdyZXk7IC8qIENvbnRyb2wgaWNvbnMgKi9cblx0LS1mb3JtLXVpLWljb24tZm9udC1zaXplOiAxLjI1ZW07IC8qIENvbnRyb2wgaWNvbnMgKi9cblx0LS1mb3JtLXVpLWNvbG9yOiB2YXIoLS1jb2xvci1ncmV5LWRhcmspOyAvKiBTZWxlY3QgaWNvbiAqL1xuXHQtLWZvcm0tdWktYmdkLWNvbG9yOiB2YXIoLS1mb3JtLWJvcmRlci1jb2xvcik7ICAvKiBTZWxlY3QsIENoZWNrYm94LCAmIFJhZGlvICovXG5cdC0tZm9ybS11aS1iZ2QtY29sb3ItZm9jdXM6IHZhcigtLWZvcm0tYm9yZGVyLWNvbG9yLWZvY3VzKTsgIC8qIFNlbGVjdCAqL1xuXHQtLWZvcm0tdWktaWNvbi1zZWxlY3Q6ICdcXGU5MDAnOyAvKiBTZWxlY3QgKi9cblx0LS1mb3JtLXVpLWljb24tc2VsZWN0LWZvbnQtc2l6ZTogMjVweDsgLyogU2VsZWN0ICovXG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogRm9udHNcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWZvcm0tZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWJhc2UpO1xuXHQtLWZvcm0tZm9udC1zaXplOiAxZW07XG5cdC0tZm9ybS1mb250LXNpemUtc2Vjb25kYXJ5OiAwLjg3NWVtOyAvKiBMYWJlbCAqL1xuXHQtLWZvcm0tZm9udC13ZWlnaHQtc2Vjb25kYXJ5OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTsgLyogTGFiZWwgKi9cblx0LS1mb3JtLWZvbnQtc2l6ZS10ZXJ0aWFyeTogMC44MTNlbTsgLyogSGVscGVyIFRleHQgJiBEZXNjcmlwdGlvbnMgKi9cblx0LS1mb3JtLWZvbnQtd2VpZ2h0LXRlcnRpYXJ5OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7IC8qIEhlbHBlciBUZXh0ICYgRGVzY3JpcHRpb25zICovXG5cdC0tZm9ybS1sZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuXHQtLWZvcm0tdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdC0tZm9ybS1jb250cm9sLWhlaWdodDogNDVweDtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBTcGFjaW5nXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb3JtLW1hcmdpbjogMjhweDtcblx0LS1mb3JtLW1hcmdpbi1zbWFsbDogdmFyKC0tc3BhY2VyLXhzKTtcblx0LS1mb3JtLXBhZGRpbmctaG9yaXpvbnRhbDogMjBweDtcblx0LS1mb3JtLXBhZGRpbmctdmVydGljYWw6IDIwcHg7XG59XG4iLCI6cm9vdCB7XG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIExhYmVsXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb3JtLWxhYmVsLWNvbG9yOiB2YXIoLS1mb3JtLWNvbG9yKTtcblx0LS1mb3JtLWxhYmVsLWZvbnQtc3R5bGU6IG5vcm1hbDtcblx0LS1mb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiB2YXIoLS1mb3JtLWZvbnQtd2VpZ2h0LXNlY29uZGFyeSk7XG5cdC0tZm9ybS1sYWJlbC1mb250LXNpemU6IHZhcigtLWZvcm0tZm9udC1zaXplLXNlY29uZGFyeSk7XG5cdC0tZm9ybS1sYWJlbC1mb250LWxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1ldmVuKTtcblx0LS1mb3JtLWxhYmVsLWZvbnQtZmFtaWx5OiB2YXIoLS1mb3JtLWZvbnQtZmFtaWx5KTtcblx0LS1mb3JtLWxhYmVsLWxldHRlci1zcGFjaW5nOiB2YXIoLS1mb3JtLWxldHRlci1zcGFjaW5nKTtcblx0LS1mb3JtLWxhYmVsLW1hcmdpbi1ib3R0b206IHZhcigtLWZvcm0tbWFyZ2luLXNtYWxsKTtcblx0LS1mb3JtLWxhYmVsLXRleHQtdHJhbnNmb3JtOiB2YXIoLS1mb3JtLXRleHQtdHJhbnNmb3JtKTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBDb250cm9sIEhlbHBlciBUZXh0XG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb3JtLWNvbnRyb2wtaGVscGVyLWNvbG9yOiB2YXIoLS1mb3JtLWNvbG9yLXNlY29uZGFyeSk7XG5cdC0tZm9ybS1jb250cm9sLWhlbHBlci1mb250LXN0eWxlOiBub3JtYWw7XG5cdC0tZm9ybS1jb250cm9sLWhlbHBlci1mb250LXdlaWdodDogdmFyKC0tZm9ybS1mb250LXdlaWdodC10ZXJ0aWFyeSk7XG5cdC0tZm9ybS1jb250cm9sLWhlbHBlci1mb250LXNpemU6IHZhcigtLWZvcm0tZm9udC1zaXplLXRlcnRpYXJ5KTtcblx0LS1mb3JtLWNvbnRyb2wtaGVscGVyLWZvbnQtbGluZS1oZWlnaHQ6IDEuMTU7XG5cdC0tZm9ybS1jb250cm9sLWhlbHBlci1mb250LWZhbWlseTogdmFyKC0tZm9ybS1mb250LWZhbWlseSk7XG5cdC0tZm9ybS1jb250cm9sLWhlbHBlci1sZXR0ZXItc3BhY2luZzogdmFyKC0tZm9ybS1sZXR0ZXItc3BhY2luZyk7XG5cdC0tZm9ybS1jb250cm9sLWhlbHBlci1tYXJnaW4tdG9wOiA4cHg7XG5cdC0tZm9ybS1jb250cm9sLWhlbHBlci1wYWRkaW5nOiAwIDhweDtcblx0LS1mb3JtLWNvbnRyb2wtaGVscGVyLXRleHQtdHJhbnNmb3JtOiB2YXIoLS1mb3JtLXRleHQtdHJhbnNmb3JtKTtcbn1cbiIsIjpyb290IHtcblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogTGVnZW5kXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb3JtLWxlZ2VuZC1jb2xvcjogdmFyKC0tZm9ybS1jb2xvcik7XG5cdC0tZm9ybS1sZWdlbmQtZm9udC1zdHlsZTogbm9ybWFsO1xuXHQtLWZvcm0tbGVnZW5kLWZvbnQtd2VpZ2h0OiB2YXIoLS1mb3JtLWZvbnQtd2VpZ2h0LXNlY29uZGFyeSk7XG5cdC0tZm9ybS1sZWdlbmQtZm9udC1zaXplOiB2YXIoLS1mb3JtLWZvbnQtc2l6ZS1zZWNvbmRhcnkpO1xuXHQtLWZvcm0tbGVnZW5kLWZvbnQtbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWV2ZW4pO1xuXHQtLWZvcm0tbGVnZW5kLWZvbnQtZmFtaWx5OiB2YXIoLS1mb3JtLWZvbnQtZmFtaWx5KTtcblx0LS1mb3JtLWxlZ2VuZC1sZXR0ZXItc3BhY2luZzogdmFyKC0tZm9ybS1sZXR0ZXItc3BhY2luZyk7XG5cdC0tZm9ybS1sZWdlbmQtbWFyZ2luLWJvdHRvbTogdmFyKC0tZm9ybS1tYXJnaW4tc21hbGwpO1xuXHQtLWZvcm0tbGVnZW5kLXRleHQtdHJhbnNmb3JtOiB2YXIoLS1mb3JtLXRleHQtdHJhbnNmb3JtKTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBMZWdlbmQsIHN0eWxlZFxuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tZm9ybS1sZWdlbmQtc3R5bGVkLWNvbG9yOiB2YXIoLS1mb3JtLWNvbG9yKTtcblx0LS1mb3JtLWxlZ2VuZC1zdHlsZWQtZm9udC1zdHlsZTogbm9ybWFsO1xuXHQtLWZvcm0tbGVnZW5kLXN0eWxlZC1mb250LXdlaWdodDogdmFyKC0tZm9ybS1mb250LXdlaWdodC1zZWNvbmRhcnkpO1xuXHQtLWZvcm0tbGVnZW5kLXN0eWxlZC1mb250LXNpemU6IHZhcigtLWZvcm0tZm9udC1zaXplLXNlY29uZGFyeSk7XG5cdC0tZm9ybS1sZWdlbmQtc3R5bGVkLWZvbnQtbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWV2ZW4pO1xuXHQtLWZvcm0tbGVnZW5kLXN0eWxlZC1mb250LWZhbWlseTogdmFyKC0tZm9ybS1mb250LWZhbWlseSk7XG5cdC0tZm9ybS1sZWdlbmQtc3R5bGVkLWxldHRlci1zcGFjaW5nOiB2YXIoLS1mb3JtLWxldHRlci1zcGFjaW5nKTtcblx0LS1mb3JtLWxlZ2VuZC1zdHlsZWQtbWFyZ2luLWJvdHRvbTogdmFyKC0tZm9ybS1tYXJnaW4tc21hbGwpO1xuXHQtLWZvcm0tbGVnZW5kLXN0eWxlZC1wYWRkaW5nOiAwIDhweDtcblx0LS1mb3JtLWxlZ2VuZC1zdHlsZWQtdGV4dC1hbGlnbjogbGVmdDtcblx0LS1mb3JtLWxlZ2VuZC1zdHlsZWQtdGV4dC10cmFuc2Zvcm06IHZhcigtLWZvcm0tdGV4dC10cmFuc2Zvcm0pO1xufVxuIiwiOnJvb3Qge1xuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBDb250cm9sc1xuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tZm9ybS1jb250cm9sLWJnZC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHQtLWZvcm0tY29udHJvbC1ib3JkZXItY29sb3I6IHZhcigtLWZvcm0tYm9yZGVyLWNvbG9yKTtcblx0LS1mb3JtLWNvbnRyb2wtYm9yZGVyLWNvbG9yLWZvY3VzOiB2YXIoLS1mb3JtLWJvcmRlci1jb2xvci1mb2N1cyk7XG5cdC0tZm9ybS1jb250cm9sLWJvcmRlci1yYWRpdXM6IHZhcigtLWZvcm0tYm9yZGVyLXJhZGl1cyk7XG5cdC0tZm9ybS1jb250cm9sLWJvcmRlci1zaXplOiB2YXIoLS1mb3JtLWJvcmRlci1zaXplKTtcblx0LS1mb3JtLWNvbnRyb2wtYm9yZGVyLXNpemUtZm9jdXM6IHZhcigtLWZvcm0tYm9yZGVyLXNpemUtZm9jdXMpO1xuXHQtLWZvcm0tY29udHJvbC1jb2xvcjogdmFyKC0tZm9ybS1jb2xvcik7XG5cdC0tZm9ybS1jb250cm9sLWZvbnQtc3R5bGU6IG5vcm1hbDtcblx0LS1mb3JtLWNvbnRyb2wtZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpO1xuXHQtLWZvcm0tY29udHJvbC1mb250LXNpemU6IHZhcigtLWZvcm0tZm9udC1zaXplKTtcblx0LS1mb3JtLWNvbnRyb2wtZm9udC1saW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG5cdC0tZm9ybS1jb250cm9sLWZvbnQtZmFtaWx5OiB2YXIoLS1mb3JtLWZvbnQtZmFtaWx5KTtcblx0LS1mb3JtLWNvbnRyb2wtbGV0dGVyLXNwYWNpbmc6IHZhcigtLWZvcm0tbGV0dGVyLXNwYWNpbmcpO1xuXHQtLWZvcm0tY29udHJvbC1tYXJnaW4tYm90dG9tOiB2YXIoLS1mb3JtLW1hcmdpbik7XG5cdC0tZm9ybS1jb250cm9sLXBhZGRpbmc6IDAgdmFyKC0tZm9ybS1wYWRkaW5nLWhvcml6b250YWwpO1xuXHQtLWZvcm0tY29udHJvbC10ZXh0LXRyYW5zZm9ybTogdmFyKC0tZm9ybS10ZXh0LXRyYW5zZm9ybSk7XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogQ29udHJvbCBJY29uXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb3JtLWNvbnRyb2wtaWNvbi1jb2xvcjogdmFyKC0tZm9ybS11aS1pY29uLWNvbG9yKTtcblx0LS1mb3JtLWNvbnRyb2wtaWNvbi1mb250LXNpemU6IHZhcigtLWZvcm0tdWktaWNvbi1mb250LXNpemUpO1xuXHQtLWZvcm0tY29udHJvbC1pY29uLWxpbmUtaGVpZ2h0OiB2YXIoLS1mb3JtLWNvbnRyb2wtaGVpZ2h0KTtcblx0LS1mb3JtLWNvbnRyb2wtaWNvbi13aWR0aDogdmFyKC0tZm9ybS1jb250cm9sLWhlaWdodCk7XG5cdC0tZm9ybS1jb250cm9sLWljb24tcGFkZGluZy1yaWdodDogdmFyKC0tZm9ybS1jb250cm9sLWljb24td2lkdGgpO1xuXHQtLWZvcm0tY29udHJvbC1pY29uLXBvc2l0aW9uLXJpZ2h0OiAwO1xuXHQtLWZvcm0tY29udHJvbC1pY29uLXBvc2l0aW9uLXRvcDogMDtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBDb250cm9sOiBUZXh0YXJlYVxuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tZm9ybS1jb250cm9sLXRleHRhcmVhLWhlaWdodDogMjI1cHg7XG5cdC0tZm9ybS1jb250cm9sLXRleHRhcmVhLXBhZGRpbmc6IDE0cHggdmFyKC0tZm9ybS1wYWRkaW5nLWhvcml6b250YWwpO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIENvbnRyb2w6IFNlbGVjdFxuXHQgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tZm9ybS1jb250cm9sLXNlbGVjdC1tdWx0aXBsZS1oZWlnaHQ6IDEwMHB4O1xuXHQtLWZvcm0tY29udHJvbC1zZWxlY3QtbXVsdGlwbGUtcGFkZGluZzogdmFyKC0tZm9ybS1wYWRkaW5nLXZlcnRpY2FsKSB2YXIoLS1mb3JtLXBhZGRpbmctaG9yaXpvbnRhbCk7XG5cdC0tZm9ybS1jb250cm9sLXNlbGVjdC1wYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktd2lkdGgpICsgdmFyKC0tZm9ybS1wYWRkaW5nLWhvcml6b250YWwpKTtcblx0LS1mb3JtLWNvbnRyb2wtc2VsZWN0LXVpLWJnZC1jb2xvcjogdmFyKC0tZm9ybS11aS1iZ2QtY29sb3IpO1xuXHQtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktYmdkLWNvbG9yLWhvdmVyOiB2YXIoLS1mb3JtLXVpLWJnZC1jb2xvci1mb2N1cyk7XG5cdC0tZm9ybS1jb250cm9sLXNlbGVjdC11aS1ib3JkZXItcmFkaXVzLXRvcC1yaWdodDogdmFyKC0tZm9ybS1jb250cm9sLWJvcmRlci1yYWRpdXMpO1xuXHQtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktYm9yZGVyLXJhZGl1cy1ib3R0b20tcmlnaHQ6IHZhcigtLWZvcm0tY29udHJvbC1ib3JkZXItcmFkaXVzKTtcblx0LS1mb3JtLWNvbnRyb2wtc2VsZWN0LXVpLWNvbG9yOiB2YXIoLS1mb3JtLXVpLWNvbG9yKTtcblx0LS1mb3JtLWNvbnRyb2wtc2VsZWN0LXVpLWZvbnQtc2l6ZTogdmFyKC0tZm9ybS11aS1pY29uLXNlbGVjdC1mb250LXNpemUpO1xuXHQtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktaGVpZ2h0OiBjYWxjKHZhcigtLWZvcm0tY29udHJvbC1oZWlnaHQpIC0gMnB4KTtcblx0LS1mb3JtLWNvbnRyb2wtc2VsZWN0LXVpLWljb246IHZhcigtLWZvcm0tdWktaWNvbi1zZWxlY3QpO1xuXHQtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktbGluZS1oZWlnaHQ6IHZhcigtLWZvcm0tY29udHJvbC1oZWlnaHQpO1xuXHQtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktcG9zaXRpb24tcmlnaHQ6IDFweDtcblx0LS1mb3JtLWNvbnRyb2wtc2VsZWN0LXVpLXBvc2l0aW9uLXRvcDogMXB4O1xuXHQtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktd2lkdGg6IHZhcigtLWZvcm0tY29udHJvbC1oZWlnaHQpO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIENvbnRyb2w6IFJhZGlvICYgQ2hlY2tib3hcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWZvcm0tY29udHJvbC1ncm91cC1yYWRpby1jaGVja2JveC1wYWRkaW5nLXRvcDogOHB4O1xuXHQtLWZvcm0tY29udHJvbC1ncm91cC1yYWRpby1jaGVja2JveC1wYWRkaW5nLWJvdHRvbTogNHB4O1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC1sYWJlbC1jb2xvcjogdmFyKC0tZm9ybS1jb2xvcik7XG5cdC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWxhYmVsLWNvbG9yLWNoZWNrZWQ6IHZhcigtLWZvcm0tY29udHJvbC1jb2xvcik7XG5cdC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWxhYmVsLWZvbnQtc3R5bGU6IG5vcm1hbDtcblx0LS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtbGFiZWwtZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpO1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC1sYWJlbC1mb250LXNpemU6IHZhcigtLWZvcm0tZm9udC1zaXplLXNlY29uZGFyeSk7XG5cdC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWxhYmVsLWZvbnQtbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWV2ZW4pO1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC1sYWJlbC1mb250LWZhbWlseTogdmFyKC0tZm9ybS1mb250LWZhbWlseSk7XG5cdC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWxhYmVsLWxldHRlci1zcGFjaW5nOiB2YXIoLS1mb3JtLWxldHRlci1zcGFjaW5nKTtcblx0LS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtbGFiZWwtbWF4LXdpZHRoOiA2MDBweDtcblx0LS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtbGFiZWwtdGV4dC10cmFuc2Zvcm06IHZhcigtLWZvcm0tdGV4dC10cmFuc2Zvcm0pO1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC1wdXNoLWxhYmVsLXJpZ2h0OiAxMHB4O1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC1tYXJnaW4tdG9wOiB2YXIoLS1mb3JtLW1hcmdpbi1zbWFsbCk7XG5cdC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWhpZGUtYnJvd3Nlci11aS1mb250LXNpemU6IDEycHg7XG5cdC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWhpZGUtYnJvd3Nlci11aS1wb3NpdGlvbi1sZWZ0OiA2cHg7XG5cdC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWhpZGUtYnJvd3Nlci11aS1wb3NpdGlvbi10b3A6IDJweDtcblx0LS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWNvbnRyb2wtYm9yZGVyLWNvbG9yKTtcblx0LS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktYm9yZGVyLWNvbG9yLWZvY3VzOiB2YXIoLS1mb3JtLWJvcmRlci1jb2xvci1mb2N1cyk7XG5cdC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LXVpLWJvcmRlci1zaXplOiB2YXIoLS1mb3JtLWNvbnRyb2wtYm9yZGVyLXNpemUpO1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC11aS1ib3JkZXItc2l6ZS1mb2N1czogdmFyKC0tZm9ybS1jb250cm9sLWJvcmRlci1zaXplLWZvY3VzKTtcblx0LS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktYmdkLWNvbG9yOiB2YXIoLS1mb3JtLWNvbnRyb2wtYmdkLWNvbG9yKTtcblx0LS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktY29sb3I6IHZhcigtLWZvcm0tdWktY29sb3IpO1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC11aS1oZWlnaHQ6IGNhbGModmFyKC0tZm9ybS1jb250cm9sLWhlaWdodCkgLyAyKTtcblx0LS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktcG9zaXRpb24tbGVmdDogMDtcblx0LS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktcG9zaXRpb24tdG9wOiAtMnB4O1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC11aS1wdXNoLWxhYmVsLXJpZ2h0OiAzNHB4O1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC11aS13aWR0aDogY2FsYyh2YXIoLS1mb3JtLWNvbnRyb2wtaGVpZ2h0KSAvIDIpO1xuXHQtLWZvcm0tY29udHJvbC1jaGVja2JveC11aS1ib3JkZXItc2l6ZTogMnB4O1xuXHQtLWZvcm0tY29udHJvbC1jaGVja2JveC11aS1ib3JkZXItcmFkaXVzOiB2YXIoLS1mb3JtLWNvbnRyb2wtYm9yZGVyLXJhZGl1cyk7XG5cdC0tZm9ybS1jb250cm9sLWNoZWNrYm94LXVpLWhlaWdodDogNXB4O1xuXHQtLWZvcm0tY29udHJvbC1jaGVja2JveC11aS1wb3NpdGlvbi1sZWZ0OiA3cHg7XG5cdC0tZm9ybS1jb250cm9sLWNoZWNrYm94LXVpLXBvc2l0aW9uLXRvcDogNXB4O1xuXHQtLWZvcm0tY29udHJvbC1jaGVja2JveC11aS13aWR0aDogOXB4O1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby11aS1wb3NpdGlvbi1sZWZ0OiA4cHg7XG5cdC0tZm9ybS1jb250cm9sLXJhZGlvLXVpLXBvc2l0aW9uLXRvcDogNnB4O1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby11aS13aWR0aDogOHB4O1xuXHQtLWZvcm0tY29udHJvbC1yYWRpby11aS1oZWlnaHQ6IDhweDtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBDb250cm9sOiBGaWxlXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb3JtLWNvbnRyb2wtZmlsZS1mb250LXNpemU6IHZhcigtLWZvcm0tZm9udC1zaXplKTtcblx0LS1mb3JtLWNvbnRyb2wtZmlsZS1wYWRkaW5nOiB2YXIoLS1mb3JtLXBhZGRpbmctdmVydGljYWwpIHZhcigtLWZvcm0tcGFkZGluZy1ob3Jpem9udGFsKTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBDb250cm9sOiBTdWJtaXQgJiBCdXR0b25zXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb3JtLWNvbnRyb2wtYnV0dG9uLW1hcmdpbi10b3A6IHZhcigtLWZvcm0tbWFyZ2luKTtcbn1cbiIsIjpyb290IHtcblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogUGxhY2Vob2xkZXJcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWZvcm0tcGxhY2Vob2xkZXItY29sb3I6IHZhcigtLWZvcm0tY29sb3ItcGxhY2Vob2xkZXIpO1xuXHQtLWZvcm0tcGxhY2Vob2xkZXItY29sb3ItZm9jdXM6IGxpZ2h0ZW4odmFyKC0tZm9ybS1jb2xvci1wbGFjZWhvbGRlciksIDAuMjUpO1xuXHQtLWZvcm0tcGxhY2Vob2xkZXItZm9udC1zdHlsZTogbm9ybWFsO1xuXHQtLWZvcm0tcGxhY2Vob2xkZXItZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpO1xuXHQtLWZvcm0tcGxhY2Vob2xkZXItZm9udC1zaXplOiB2YXIoLS1mb3JtLWZvbnQtc2l6ZSk7XG5cdC0tZm9ybS1wbGFjZWhvbGRlci1mb250LWxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuXHQtLWZvcm0tcGxhY2Vob2xkZXItZm9udC1mYW1pbHk6IHZhcigtLWZvcm0tZm9udC1mYW1pbHkpO1xuXHQtLWZvcm0tcGxhY2Vob2xkZXItbGV0dGVyLXNwYWNpbmc6IHZhcigtLWZvcm0tbGV0dGVyLXNwYWNpbmcpO1xuXHQtLWZvcm0tcGxhY2Vob2xkZXItdGV4dC10cmFuc2Zvcm06IHZhcigtLWZvcm0tdGV4dC10cmFuc2Zvcm0pO1xufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEZvbnQgSWNvbnMgKHZpYSBJY29Nb29uKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cblxuOnJvb3Qge1xuLS1pY29tb29uLWZvbnQtZmFtaWx5OiBcImJpZ2NvbW1lcmNlLWljb25zXCIgIWRlZmF1bHQ7XG5cblxuLS1pY29uLWJjLWJpZ2NvbW1lcmNlX2RpYWdub3N0aWNzOiBcIlxcZTkxMlwiO1xuLS1pY29uLWJjLWNoYW5uZWxfc2VsZWN0OiBcIlxcZTkxMVwiO1xuLS1pY29uLWJjLWNoYW5uZWw6IFwiXFxlOTExXCI7XG4tLWljb24tYmMtY3JlZGVudGlhbHM6IFwiXFxlOTEwXCI7XG4tLWljb24tYmMtc3luYzogXCJcXGU5MGZcIjtcbi0taWNvbi1iYy1hY2NvdW50czogXCJcXGU5MDZcIjtcbi0taWNvbi1iYy1hbmFseXRpY3M6IFwiXFxlOTA3XCI7XG4tLWljb24tYmMtY2FydDogXCJcXGU5MDhcIjtcbi0taWNvbi1iYy1jdXJyZW5jeTogXCJcXGU5MDlcIjtcbi0taWNvbi1iYy1naWZ0X2NlcnRpZmljYXRlczogXCJcXGU5MGFcIjtcbi0taWNvbi1iYy1pbXBvcnQ6IFwiXFxlOTBiXCI7XG4tLWljb24tYmMtb3JkZXJfY29uZmlybWF0aW9uOiBcIlxcZTkwY1wiO1xuLS1pY29uLWJjLXByb2R1Y3RfcmV2aWV3czogXCJcXGU5MGRcIjtcbi0taWNvbi1iYy1zaGlwcGluZ19yZXR1cm5zOiBcIlxcZTkwZVwiO1xuLS1pY29uLWJjLWItbG9nbzogXCJcXGU5MDFcIjtcbi0tZGFzaGljb25zLWJpZ2NvbW1lcmNlOiBcIlxcZTkwMVwiO1xuLS1pY29uLWJjLWFycm93LXNvbGlkOiBcIlxcZTkwMlwiO1xuLS1pY29uLWJjLXNlbGVjdGVkOiBcIlxcZTkwM1wiO1xuLS1pY29uLWJjLWFycm93LXRvZ2dsZTogXCJcXGU5MDVcIjtcbi0taWNvbi1iYy1hcnJvdy1sZWZ0OiBcIlxcZTA5NFwiO1xuLS1pY29uLWJjLWFycm93LXJpZ2h0OiBcIlxcZTA5NVwiO1xuLS1pY29uLWJjLWFycm93LXVwOiBcIlxcZTA5NlwiO1xuLS1pY29uLWJjLWFycm93LWRvd246IFwiXFxlMDk3XCI7XG4tLWljb24tYmMtcGx1czogXCJcXGUxMTRcIjtcbi0taWNvbi1iYy1taW51czogXCJcXGUxMTVcIjtcbi0taWNvbi1iYy1jaGVjazogXCJcXGUxMTZcIjtcbi0taWNvbi1iYy1jcm9zczogXCJcXGUxMTdcIjtcbi0taWNvbi1iYy1zZWFyY2g6IFwiXFxlMDM2XCI7XG4tLWljb24tYmMtY2hldnJvbi1kb3duOiBcIlxcZTkwMFwiO1xuLS1pY29uLWJjLWNoZXZyb24tbGVmdDogXCJcXGU5MWFcIjtcbi0taWNvbi1iYy1jaGV2cm9uLXJpZ2h0OiBcIlxcZTkxOVwiO1xuLS1pY29uLWJjLWNoZXZyb24tdXA6IFwiXFxlOTA0XCI7XG5cblxufSIsIjpyb290IHtcblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogRm9udCBTdGFja3Ncblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWZvbnQtZmFtaWx5LWJpZ2NvbW1lcmNlLWljb25zOiAnYmlnY29tbWVyY2UtaWNvbnMnO1xuXHQtLWZvbnQtZmFtaWx5LXByb3hpbWEtbm92YTogXCJwcm94aW1hLW5vdmFcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXHQtLWZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcblx0LS1mb250LWZhbWlseS1iYXNlOiB2YXIoLS1mb250LWZhbWlseS1wcm94aW1hLW5vdmEpO1xuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIEZvbnQgU2l6aW5nXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb250LXNpemUtYmFzZTogMTZweDtcblx0LS1mb250LXNpemUtY29udGVudDogMWVtO1xuXHQtLWZvbnQtc2l6ZS1jb250ZW50LXh4bDogMS41ZW07XG5cdC0tZm9udC1zaXplLWNvbnRlbnQteGw6IDEuMjVlbTtcblx0LS1mb250LXNpemUtY29udGVudC1sZzogMS4xMjVlbTtcblx0LS1mb250LXNpemUtY29udGVudC1tOiAwLjg3NWVtO1xuXHQtLWZvbnQtc2l6ZS1jb250ZW50LXM6IDAuODEzZW07XG5cdC0tZm9udC1zaXplLWNvbnRlbnQteHM6IDAuNzVlbTtcblx0LS1mb250LXNpemUtY29udGVudC14eHM6IDAuNjI1ZW07XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0ICogRm9udCBXZWlnaHRzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1mb250LXdlaWdodC1saWdodDogMzAwO1xuXHQtLWZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMDtcblx0LS1mb250LXdlaWdodC1tZWRpdW06IDUwMDtcblx0LS1mb250LXdlaWdodC1zZW1pYm9sZDogNjAwO1xuXHQtLWZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBMaW5lIEhlaWdodHNcblx0ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWxpbmUtaGVpZ2h0LWJhc2U6IDEuNTtcblx0LS1saW5lLWhlaWdodC1sOiAxLjY7XG5cdC0tbGluZS1oZWlnaHQtbTogMS4zNzU7XG5cdC0tbGluZS1oZWlnaHQtczogMS4zO1xuXHQtLWxpbmUtaGVpZ2h0LXNzOiAxLjI7XG5cdC0tbGluZS1oZWlnaHQtZXZlbjogMTtcblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQgKiBCb3JkZXIgUmFkaXVzXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1ib3JkZXItcmFkaXVzLWJhc2U6IDRweDtcblx0LS1ib3JkZXItcmFkaXVzLXJvdW5kOiA1MCU7XG59XG4iLCI6cm9vdCB7XG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCAqIFNwYWNlcnMgKG1hcmdpbiAmIHBhZGRpbmcpXG5cdCAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1zcGFjZXI6IDMwcHg7XG5cdC0tc3BhY2VyLXhzOiAxNXB4O1xuXHQtLXNwYWNlci1zOiAyMHB4O1xuXHQtLXNwYWNlci1tOiAzNXB4O1xuXHQtLXNwYWNlci1sZzogNjBweDtcblx0LS1zcGFjZXIteHhsZzogMTYwcHg7XG59XG4iLCJcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogR2xvYmFsIEJ1dHRvbiBSZXNldHNcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZGVmaW5lLW1peGluIGJ1dHRvbi1nbG9iYWwge1xuXHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblx0d2lkdGg6IGF1dG87XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWV2ZW4pO1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdGhlaWdodDogYXV0bztcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGJvcmRlcjogMDtcblx0cGFkZGluZzogMDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBCdXR0b24gU3VibWl0XG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGRlZmluZS1taXhpbiBidXR0b24tc3VibWl0IHtcblx0QG1peGluIGJ1dHRvbi1nbG9iYWw7XG5cblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmxhY2spO1xuXHRwYWRkaW5nOiAxZW07XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Y29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblxuXHQmOnZpc2l0ZWQge1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmV5LWRhcmspO1xuXHR9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQnV0dG9uIFBpbGxcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZGVmaW5lLW1peGluIGJ1dHRvbi1waWxsIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmMtZG9nZXItYmx1ZSk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWRvZ2VyLWJsdWUpO1xuXHRib3JkZXItcmFkaXVzOiAxOXB4O1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRib3gtc2hhZG93OiB1bnNldDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBhZGRpbmc6IDEzcHggMjBweCAxMnB4O1xuXHRmb250LXNpemU6IDEycHg7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuXHRsZXR0ZXItc3BhY2luZzogMXB4O1xuXHRsaW5lLWhlaWdodDogMTJweDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR0ZXh0LXNoYWRvdzogbm9uZTtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtYmx1ZS10dXJxdW9pc2UpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYmMtYmx1ZS10dXJxdW9pc2UpO1xuXHR9XG5cblx0JjpkaXNhYmxlZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSkgIWltcG9ydGFudDtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpICFpbXBvcnRhbnQ7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWdyZXkpICFpbXBvcnRhbnQ7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7XG5cdH1cbn1cbiIsIlxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBGb3JtOiBDb250cm9sIEdyb3VwIC8gV3JhcHBlciwgcmFkaW8gJiBjaGVja2JveCBzcGVjaWZpY1xuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBkZWZpbmUtbWl4aW4gZm9ybS1jb250cm9sLWdyb3VwLXJhZGlvLWNoZWNrYm94IHtcblx0cGFkZGluZy10b3A6IHZhcigtLWZvcm0tY29udHJvbC1ncm91cC1yYWRpby1jaGVja2JveC1wYWRkaW5nLXRvcCk7XG5cdHBhZGRpbmctYm90dG9tOiB2YXIoLS1mb3JtLWNvbnRyb2wtZ3JvdXAtcmFkaW8tY2hlY2tib3gtcGFkZGluZy1ib3R0b20pO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEZvcm0gSGVscGVyXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGRlZmluZS1taXhpbiBmb3JtLWNvbnRyb2wtaGVscGVyIHtcblx0bWFyZ2luLXRvcDogdmFyKC0tZm9ybS1jb250cm9sLWhlbHBlci1tYXJnaW4tdG9wKTtcblx0cGFkZGluZzogdmFyKC0tZm9ybS1jb250cm9sLWhlbHBlci1wYWRkaW5nKTtcblx0Y29sb3I6IHZhcigtLWZvcm0tY29udHJvbC1oZWxwZXItY29sb3IpO1xuXHRsZXR0ZXItc3BhY2luZzogdmFyKC0tZm9ybS1jb250cm9sLWhlbHBlci1sZXR0ZXItc3BhY2luZyk7XG5cdHRleHQtdHJhbnNmb3JtOiB2YXIoLS1mb3JtLWNvbnRyb2wtaGVscGVyLXRleHQtdHJhbnNmb3JtKTtcblx0Zm9udDogdmFyKC0tZm9ybS1jb250cm9sLWhlbHBlci1mb250LXN0eWxlKSB2YXIoLS1mb3JtLWNvbnRyb2wtaGVscGVyLWZvbnQtd2VpZ2h0KSB2YXIoLS1mb3JtLWNvbnRyb2wtaGVscGVyLWZvbnQtc2l6ZSkgLyB2YXIoLS1mb3JtLWNvbnRyb2wtaGVscGVyLWZvbnQtbGluZS1oZWlnaHQpIHZhcigtLWZvcm0tY29udHJvbC1oZWxwZXItZm9udC1mYW1pbHkpO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIFJlcXVpcmVkIEZpZWxkc1xuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBkZWZpbmUtbWl4aW4gcmVxdWlyZWQge1xuXHRwYWRkaW5nLWxlZnQ6IDRweDtcblx0Y29sb3I6IHZhcigtLWZvcm0tc3RhdGUtY29sb3ItcmVxdWlyZWQpO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEZvcm0gUGxhY2Vob2xkZXJzXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGRlZmluZS1taXhpbiBmb3JtLWNvbnRyb2wtcGxhY2Vob2xkZXIge1xuXG5cdDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG5cdFx0QG1peGluLWNvbnRlbnQ7XG5cdH1cblxuXHQ6LW1vei1wbGFjZWhvbGRlciB7XG5cdFx0QG1peGluLWNvbnRlbnQ7XG5cdH1cblxuXHQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuXHRcdEBtaXhpbi1jb250ZW50O1xuXHR9XG5cblx0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG5cdFx0QG1peGluLWNvbnRlbnQ7XG5cdH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBGb3JtIFdpZGdldHMvQ29udHJvbHNcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZGVmaW5lLW1peGluIGZvcm0tY29udHJvbCB7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXHRwYWRkaW5nOiB2YXIoLS1mb3JtLWNvbnRyb2wtcGFkZGluZyk7XG5cdGJvcmRlcjogdmFyKC0tZm9ybS1jb250cm9sLWJvcmRlci1zaXplKSBzb2xpZCB2YXIoLS1mb3JtLWNvbnRyb2wtYm9yZGVyLWNvbG9yKTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IHZhcigtLWZvcm0tY29udHJvbC1oZWlnaHQpO1xuXHRjb2xvcjogdmFyKC0tZm9ybS1jb250cm9sLWNvbG9yKTtcblx0bGV0dGVyLXNwYWNpbmc6IHZhcigtLWZvcm0tY29udHJvbC1sZXR0ZXItc3BhY2luZyk7XG5cdHRleHQtdHJhbnNmb3JtOiB2YXIoLS1mb3JtLWNvbnRyb2wtdGV4dC10cmFuc2Zvcm0pO1xuXHRmb250OiB2YXIoLS1mb3JtLWNvbnRyb2wtZm9udC1zdHlsZSkgdmFyKC0tZm9ybS1jb250cm9sLWZvbnQtd2VpZ2h0KSB2YXIoLS1mb3JtLWNvbnRyb2wtZm9udC1zaXplKSAvIHZhcigtLWZvcm0tY29udHJvbC1mb250LWxpbmUtaGVpZ2h0KSB2YXIoLS1mb3JtLWNvbnRyb2wtZm9udC1mYW1pbHkpO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEZvcm0gQ29udHJvbDogU2VsZWN0XG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGRlZmluZS1taXhpbiBmb3JtLWNvbnRyb2wtc2VsZWN0IHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mb3JtLWNvbnRyb2wtc2VsZWN0LXVpLWJnZC1jb2xvci1ob3Zlcik7XG5cdFx0fVxuXHR9XG5cblx0JjphZnRlciB7XG5cdFx0QG1peGluIGljb247XG5cblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblx0XHRjb250ZW50OiB2YXIoLS1mb3JtLWNvbnRyb2wtc2VsZWN0LXVpLWljb24pO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRoZWlnaHQ6IHZhcigtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktaGVpZ2h0KTtcblx0XHR3aWR0aDogdmFyKC0tZm9ybS1jb250cm9sLXNlbGVjdC11aS13aWR0aCk7XG5cdFx0bGluZS1oZWlnaHQ6IHZhcigtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktbGluZS1oZWlnaHQpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktYmdkLWNvbG9yKTtcblx0XHRjb2xvcjogdmFyKC0tZm9ybS1jb250cm9sLXNlbGVjdC11aS1jb2xvcik7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1jb250cm9sLXNlbGVjdC11aS1mb250LXNpemUpO1xuXHRcdHJpZ2h0OiB2YXIoLS1mb3JtLWNvbnRyb2wtc2VsZWN0LXVpLXBvc2l0aW9uLXJpZ2h0KTtcblx0XHR0b3A6IHZhcigtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktcG9zaXRpb24tdG9wKTtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tZm9ybS1jb250cm9sLXNlbGVjdC11aS1ib3JkZXItcmFkaXVzLXRvcC1yaWdodCk7XG5cdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWZvcm0tY29udHJvbC1zZWxlY3QtdWktYm9yZGVyLXJhZGl1cy1ib3R0b20tcmlnaHQpO1xuXHR9XG5cblx0c2VsZWN0IHtcblx0XHRhcHBlYXJhbmNlOiBub25lO1xuXHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWZvcm0tY29udHJvbC1zZWxlY3QtcGFkZGluZy1yaWdodCk7XG5cdH1cblxuXHRzZWxlY3Q6Oi1tcy1leHBhbmQge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBGb3JtIENvbnRyb2w6IFJhZGlvICYgQ2hlY2tib3gsIGN1c3RvbSBzdHlsZWRcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZGVmaW5lLW1peGluIGZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC1iYXNlIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cblx0aW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuXHRpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuXHRcdGhlaWdodDogYXV0bztcblx0XHR3aWR0aDogYXV0bztcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG5cblx0bGFiZWwge1xuXHRcdGNvbG9yOiB2YXIoLS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtbGFiZWwtY29sb3IpO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRsZXR0ZXItc3BhY2luZzogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWxhYmVsLWxldHRlci1zcGFjaW5nKTtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWxhYmVsLXRleHQtdHJhbnNmb3JtKTtcblx0XHRmb250OiB2YXIoLS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtbGFiZWwtZm9udC1zdHlsZSkgdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWxhYmVsLWZvbnQtd2VpZ2h0KSB2YXIoLS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtbGFiZWwtZm9udC1zaXplKSAvIHZhcigtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC1sYWJlbC1mb250LWxpbmUtaGVpZ2h0KSB2YXIoLS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtbGFiZWwtZm9udC1mYW1pbHkpO1xuXHR9XG59XG5cbkBkZWZpbmUtbWl4aW4gZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94IHtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktcHVzaC1sYWJlbC1yaWdodCk7XG5cblx0aW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuXHRpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiB2YXIoLS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtaGlkZS1icm93c2VyLXVpLXBvc2l0aW9uLWxlZnQpO1xuXHRcdHRvcDogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWhpZGUtYnJvd3Nlci11aS1wb3NpdGlvbi10b3ApO1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWhpZGUtYnJvd3Nlci11aS1mb250LXNpemUpO1xuXHR9XG5cblx0bGFiZWwge1xuXHRcdG1heC13aWR0aDogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWxhYmVsLW1heC13aWR0aCk7XG5cblx0XHQmOmJlZm9yZSxcblx0XHQmOmFmdGVyIHtcblx0XHRcdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0fVxuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LXVpLWJnZC1jb2xvcik7XG5cdFx0XHR3aWR0aDogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LXVpLXdpZHRoKTtcblx0XHRcdGhlaWdodDogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LXVpLWhlaWdodCk7XG5cdFx0XHR0b3A6IHZhcigtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC11aS1wb3NpdGlvbi10b3ApO1xuXHRcdFx0bGVmdDogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LXVpLXBvc2l0aW9uLWxlZnQpO1xuXHRcdFx0Ym9yZGVyOiB2YXIoLS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktYm9yZGVyLXNpemUpIHNvbGlkIHZhcigtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC11aS1ib3JkZXItY29sb3IpO1xuXHRcdH1cblxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0b3BhY2l0eTogMDtcblx0XHR9XG5cdH1cblxuXHRpbnB1dDpmb2N1cyArIGxhYmVsOmJlZm9yZSB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktYm9yZGVyLWNvbG9yLWZvY3VzKTtcblx0XHRib3gtc2hhZG93OiAwIDAgMCB2YXIoLS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktYm9yZGVyLXNpemUtZm9jdXMpIHZhcigtLWZvcm0tY29udHJvbC1yYWRpby1jaGVja2JveC11aS1ib3JkZXItY29sb3ItZm9jdXMpO1xuXHR9XG5cblx0aW5wdXQ6Y2hlY2tlZCArIGxhYmVsIHtcblx0XHRjb2xvcjogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWxhYmVsLWNvbG9yLWNoZWNrZWQpO1xuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEZvcm0gQ29udHJvbDogQ2hlY2tib3gsIGN1c3RvbSBzdHlsZWRcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZGVmaW5lLW1peGluIGZvcm0tY29udHJvbC1jaGVja2JveCB7XG5cblx0bGFiZWwge1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tZm9ybS1jb250cm9sLWNoZWNrYm94LXVpLWJvcmRlci1yYWRpdXMpO1xuXHRcdH1cblxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0bGVmdDogdmFyKC0tZm9ybS1jb250cm9sLWNoZWNrYm94LXVpLXBvc2l0aW9uLWxlZnQpO1xuXHRcdFx0dG9wOiB2YXIoLS1mb3JtLWNvbnRyb2wtY2hlY2tib3gtdWktcG9zaXRpb24tdG9wKTtcblx0XHRcdHdpZHRoOiB2YXIoLS1mb3JtLWNvbnRyb2wtY2hlY2tib3gtdWktd2lkdGgpO1xuXHRcdFx0aGVpZ2h0OiB2YXIoLS1mb3JtLWNvbnRyb2wtY2hlY2tib3gtdWktaGVpZ2h0KTtcblx0XHRcdGJvcmRlcjogdmFyKC0tZm9ybS1jb250cm9sLWNoZWNrYm94LXVpLWJvcmRlci1zaXplKSBzb2xpZCB2YXIoLS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktY29sb3IpO1xuXHRcdFx0Ym9yZGVyLXRvcDogbm9uZTtcblx0XHRcdGJvcmRlci1yaWdodDogbm9uZTtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKC01MGRlZyk7XG5cdFx0fVxuXHR9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogRm9ybSBDb250cm9sOiBSYWRpbywgY3VzdG9tIHN0eWxlZFxuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBkZWZpbmUtbWl4aW4gZm9ybS1jb250cm9sLXJhZGlvIHtcblxuXHRsYWJlbCB7XG5cblx0XHQmOmJlZm9yZSxcblx0XHQmOmFmdGVyIHtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHR9XG5cblx0XHQmOmFmdGVyIHtcblx0XHRcdGxlZnQ6IHZhcigtLWZvcm0tY29udHJvbC1yYWRpby11aS1wb3NpdGlvbi1sZWZ0KTtcblx0XHRcdHRvcDogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLXVpLXBvc2l0aW9uLXRvcCk7XG5cdFx0XHR3aWR0aDogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLXVpLXdpZHRoKTtcblx0XHRcdGhlaWdodDogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLXVpLWhlaWdodCk7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtdWktY29sb3IpO1xuXHRcdH1cblx0fVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEZvcm0gQ29udHJvbDogSWNvbnNcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZGVmaW5lLW1peGluIGZvcm0tY29udHJvbC1pY29uIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdGlucHV0IHtcblx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1mb3JtLWNvbnRyb2wtaWNvbi1wYWRkaW5nLXJpZ2h0KTtcblx0fVxuXG5cdCY6YmVmb3JlIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IHZhcigtLWZvcm0tY29udHJvbC1pY29uLXBvc2l0aW9uLXJpZ2h0KTtcblx0XHR0b3A6IHZhcigtLWZvcm0tY29udHJvbC1pY29uLXBvc2l0aW9uLXRvcCk7XG5cdFx0Y29sb3I6IHZhcigtLWZvcm0tY29udHJvbC1pY29uLWNvbG9yKTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0d2lkdGg6IHZhcigtLWZvcm0tY29udHJvbC1pY29uLXdpZHRoKTtcblx0XHRsaW5lLWhlaWdodDogdmFyKC0tZm9ybS1jb250cm9sLWljb24tbGluZS1oZWlnaHQpO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR6LWluZGV4OiAxO1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1jb250cm9sLWljb24tZm9udC1zaXplKTtcblx0fVxufVxuIiwiXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIFNwbGl0IGxvbmcgd29yZHMgaW50byBtdWx0aXBsZSBsaW5lc1xuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBkZWZpbmUtbWl4aW4gd3JhcC10ZXh0IHtcblx0d29yZC13cmFwOiBicmVhay13b3JkO1xuXHRoeXBoZW5zOiBhdXRvO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIFRydW5jYXRlIHRleHQgdG8gYSBzaW5nbGUgbGluZSwgd2l0aCBhbiBlbGxpcHNpc1xuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBkZWZpbmUtbWl4aW4gdHJ1bmNhdGUtdGV4dCB7XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCBhbnRpYWxpYXNlZCBmb250LXNtb290aGluZ1xuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBkZWZpbmUtbWl4aW4gc3VicGl4ZWwtdGV4dCB7XG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IHN1YnBpeGVsLWFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogYXV0bztcblx0Zm9udC1zbW9vdGhpbmc6IHN1YnBpeGVsLWFudGlhbGlhc2VkO1xufVxuIiwiXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEljb25zXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGRlZmluZS1taXhpbiBpY29uIHtcblx0Zm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWJpZ2NvbW1lcmNlLWljb25zKTtcblx0c3BlYWs6IG5vbmU7XG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Zm9udC12YXJpYW50OiBub3JtYWw7XG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRsaW5lLWhlaWdodDogMTtcblx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cdHRleHQtcmVuZGVyaW5nOiBhdXRvO1xufVxuIiwiXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENsZWFyZml4XG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGRlZmluZS1taXhpbiBjbGVhcmZpeCB7XG5cblx0JjphZnRlciB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBUb3VjaCAmIFBvaW50ZXIgQnVnIEZpeFxuICpcbiAqICsgRGlzYWJsZSB0ZXh0IHNlbGVjdCBvbiBjbGlja2FibGUgZWxlbWVudHMgZm9yIHBvaW50ZXIgJiB0b3VjaCBldmVudHNcbiAqXG4gKiBOT1RFOlxuICogVGhpcyBzaG91bGQgYmUgdXRpbGl6ZWQgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIEpTXG4gKiB0b3VjaHN0YXJ0IG9yIHBvaW50ZXJkb3duIGV2ZW50IGJvdW5kIHRvIHRoZW1cbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZGVmaW5lLW1peGluIHRvdWNoIHtcblx0LXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcbn1cbiIsIlxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBIaWRlIGZyb20gYm90aCBzY3JlZW5yZWFkZXJzIGFuZCBicm93c2Vyc1xuICpcbiAqIEBhdXRob3I6IGg1YnAuY29tL3VcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AZGVmaW5lLW1peGluIGhpZGRlbiB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW5yZWFkZXJzXG4gKlxuICogQGF1dGhvcjogaDVicC5jb20vdlxuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBkZWZpbmUtbWl4aW4gdmlzdWFsbHktaGlkZSB7XG5cdGJvcmRlcjogMDtcblx0Y2xpcDogcmVjdCgwIDAgMCAwKTtcblx0aGVpZ2h0OiAxcHg7XG5cdG1hcmdpbjogLTFweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cGFkZGluZzogMDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogMXB4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIFNob3cgZWxlbWVudCBhZnRlciBoYXMgYmVlbiBoaWRkZW4gd2l0aCAldmlzdWFsbHktaGlkZVxuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBkZWZpbmUtbWl4aW4gdmlzdWFsbHktc2hvdyB7XG5cdGNsaXA6IGF1dG87XG5cdHdpZHRoOiBhdXRvO1xuXHRoZWlnaHQ6IGF1dG87XG5cdG1hcmdpbjogMDtcblx0cG9zaXRpb246IHN0YXRpYztcbn1cbiIsIlxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBIaWRlIGZyb20gc2NyZWVucmVhZGVycyAmIGJyb3dzZXJzXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnUtYmMtaGlkZGVuIHtcblx0QG1peGluIGhpZGRlbjtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBIaWRlIGZyb20gYnJvd3NlcnMgJiBzaG93IGZvciBzY3JlZW5yZWFkZXJzXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnUtYmMtdmlzdWFsLWhpZGUsXG4udS1iYy1zY3JlZW4tcmVhZGVyLXRleHQge1xuXHRAbWl4aW4gdmlzdWFsbHktaGlkZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBTaG93IGZvciBicm93c2VycyAmIHNjcmVlbnJlYWRlcnNcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udS1iYy12aXN1YWwtc2hvdyB7XG5cdEBtaXhpbiB2aXN1YWxseS1oaWRlO1xufVxuIiwiLnUtYmMtdGV4dC1saWdodCB7XG5cdGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cblx0Ji5iYy1idG4ge1xuXG5cdFx0Jjpob3Zlcixcblx0XHQmOmZvY3VzIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdFx0fVxuXHR9XG59XG5cbi51LWJjLXRleHQtZGFyayB7XG5cdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ibGFjayk7XG5cblx0Ji5iYy1idG4ge1xuXG5cdFx0Jjpob3Zlcixcblx0XHQmOmZvY3VzIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ibGFjayk7XG5cdFx0fVxuXHR9XG59XG4iLCJcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQmFzZVxuICpcbiAqIFRoaXMgZmlsZSBpcyBqdXN0IGEgY2xlYXJpbmctaG91c2UuXG4gKiBNYWtlIHBhcnRpYWxzIChzdGFydCB3aXRoIGFuIHVuZGVyc2NvcmUpIGZvciBhbnkgYWN0dWFsIGNzcyBjb2RlLlxuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBpbXBvcnQgXCJpY29uc1wiO1xuXG4vKiBGb3JtcyAqL1xuXG4uYmMtZm9ybSB7XG5cdEBpbXBvcnQgXCJmb3Jtcy9kZWZhdWx0XCI7XG5cdEBpbXBvcnQgXCJmb3Jtcy92YWxpZGF0aW9uXCI7XG5cdEBpbXBvcnQgXCJmb3Jtcy9jb250cm9scy9kZWZhdWx0XCI7XG5cdEBpbXBvcnQgXCJmb3Jtcy9jb250cm9scy9maWxlXCI7XG5cdEBpbXBvcnQgXCJmb3Jtcy9jb250cm9scy9yYWRpby1jaGVja2JveFwiO1xuXHRAaW1wb3J0IFwiZm9ybXMvY29udHJvbHMvc2VsZWN0XCI7XG5cdEBpbXBvcnQgXCJmb3Jtcy9jb250cm9scy90ZXh0YXJlYVwiO1xufVxuIiwiLmJjLWZvcm1fX3JvdyB7XG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdFx0bWFyZ2luLWJvdHRvbTogNTZweDtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuXG4uYmMtZm9ybV9fY29sIHtcblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGZsZXg6IDEgMSBhdXRvO1xuXG5cdFx0LmJjLWZvcm1fX2NvbnRyb2w6bGFzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdH1cblx0fVxufVxuXG4mLmJjLWZvcm0tMmNvbCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0d2lkdGg6IDEwMCU7XG59XG5cbiYuYmMtcHJvZHVjdC1mb3JtIHtcblx0bWFyZ2luOiAwO1xuXG5cdGJ1dHRvbi5iYy1idG4tLWZvcm0tc3VibWl0IHtcblx0XHRtYXJnaW46IDA7XG5cdH1cbn1cblxuLmJjLWZvcm1fX2ZpZWxkLWdyb3VwIHtcblx0Ym9yZGVyOiB1bnNldDtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXG5cdCsgLmJjLWZvcm1fX2ZpZWxkLWdyb3VwIHtcblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRtYXJnaW4tdG9wOiA2MHB4O1xuXHRcdH1cblx0fVxufVxuXG4uYmMtZm9ybS0yY29sX19jb250cm9sIHtcblx0d2lkdGg6IDEwMCU7XG5cdG1hcmdpbi1ib3R0b206IDMwcHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdG1hcmdpbi1ib3R0b206IDE0cHg7XG5cblx0XHQmOm5vdCguYmMtZm9ybS0yY29sX19jb250cm9sLS1mdWxsKSB7XG5cdFx0XHR3aWR0aDogNTAlO1xuXHRcdH1cblxuXHRcdCYtLWxlZnQge1xuXHRcdFx0cGFkZGluZy1yaWdodDogMTVweDtcblx0XHR9XG5cblx0XHQmLS1yaWdodCB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDE1cHg7XG5cdFx0fVxuXG5cdFx0Ji0tZnVsbCB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cbn1cblxuLmJjLWZvcm1fX2NvbnRyb2wge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luLWJvdHRvbTogMzBweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTRweDtcblx0fVxufVxuXG4uYmMtZm9ybV9fbGFiZWwge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luLWJvdHRvbTogNnB4O1xuXG5cdCYuYmMtZm9ybS1jb250cm9sLXJlcXVpcmVkIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogJyonO1xuXHRcdFx0Zm9udC1zaXplOiA4MCU7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDJweDtcblx0XHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1yZWQpO1xuXHRcdH1cblx0fVxufVxuXG4uYmMtZm9ybS10ZXJtcyB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRtYXJnaW4tYm90dG9tOiAxNHB4O1xuXHRwYWRkaW5nOiAxMnB4IDE2cHggMTFweDtcblxuXHQuYmMtZm9ybV9fY29udHJvbC0tY2hlY2tib3gge1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblxuXHRcdD4gKiB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdH1cblx0fVxuXG5cdC5iYy1mb3JtX19sYWJlbCB7XG5cdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXG5cdFx0Ji5iYy1mb3JtLWNvbnRyb2wtcmVxdWlyZWQ6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cblx0fVxuXG5cdC5iYy1mb3JtX19lcnJvci1tZXNzYWdlIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDIycHg7XG5cdH1cbn1cblxuLmJjLWZvcm1fX2FjdGlvbnMge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRtYXJnaW4tdG9wOiAxNnB4O1xuXHR3aWR0aDogMTAwJTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0bWFyZ2luLXRvcDogNDZweDtcblx0fVxuXG5cdCYtLWxlZnQge1xuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0fVxufVxuIiwiJi5iYy1mb3JtLS1oYXMtZXJyb3JzIHtcblxuXHQuYmMtZm9ybV9fY29udHJvbC0tZXJyb3Ige1xuXG5cdFx0aW5wdXRbdHlwZT1cInRleHRcIl0sXG5cdFx0aW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuXHRcdGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG5cdFx0aW5wdXRbdHlwZT1cIm51bWJlclwiXSxcblx0XHRpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG5cdFx0c2VsZWN0LFxuXHRcdHRleHRhcmVhIHtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFsZXJ0LWVycm9yKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogRm9ybTogQ29udHJvbCAvIFdpZGdldFxuICpcbiAqIE5vdGU6IGFwcGxpZXMgYnkgZGVmYXVsdCB0byB0ZXh0YXJlYSwgdHlwZT1cImZpbGVcIiwgJiBzZWxlY3RcbiAqXG4gKiBFeGFtcGxlOlxuICogPGlucHV0IG5hbWU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wtYmNcIiB0eXBlPVwidGV4dFwiIC8+XG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmZvcm0tY29udHJvbC1iYyB7XG5cdEBtaXhpbiBmb3JtLWNvbnRyb2w7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogRm9ybTogQ29udHJvbCBJY29uXG4gKlxuICogRXhhbXBsZTpcbiAqIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkLWdyb3VwXCI+XG4gKiAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY29udHJvbC1sYWJlbFwiIGZvcj1cInRleHRGaWVsZEV4YW1wbGVcIj5MYWJlbDwvbGFiZWw+XG4gKiAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2wtYmMtaWNvbiBiYy1pY29uIGljb24tcGhvbmVcIj5cbiAqXHQgICA8aW5wdXQgaWQ9XCJ0ZXh0RmllbGRFeGFtcGxlXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBuYW1lPVwidGV4dEZpZWxkRXhhbXBsZVwiIGFyaWEtZGVzY3JpYmVkYnk9XCJ0ZXh0RmllbGRFeGFtcGxlSGVscGVyXCIgdHlwZT1cInRleHRcIiAvPlxuICogICA8L2Rpdj5cbiAqICAgPHAgaWQ9XCJ0ZXh0RmllbGRFeGFtcGxlSGVscGVyXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wtaGVscGVyXCI+SGVscGVyIHRleHQ8L3A+XG4gKiA8L2Rpdj5cbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uZm9ybS1jb250cm9sLWJjLWljb24ge1xuXHRAbWl4aW4gZm9ybS1jb250cm9sLWljb247XG59XG5cbi5iYy1mb3JtX19jb250cm9sIHtcblxuXHRpbnB1dFt0eXBlPVwidGV4dFwiXSxcblx0aW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuXHRpbnB1dFt0eXBlPVwidXJsXCJdLFxuXHRpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG5cdGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG5cdGlucHV0W3R5cGU9XCJudW1iZXJcIl0ge1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudCk7XG5cdFx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO1xuXHRcdGhlaWdodDogNDVweDtcblx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdFx0cGFkZGluZy1yaWdodDogMTBweDtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuIiwiaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuXHRAbWl4aW4gZm9ybS1jb250cm9sO1xuXG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1jb250cm9sLWZpbGUtZm9udC1zaXplKTtcblx0aGVpZ2h0OiBhdXRvO1xuXHRwYWRkaW5nOiB2YXIoLS1mb3JtLWNvbnRyb2wtZmlsZS1wYWRkaW5nKTtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWV2ZW4pO1xufVxuIiwiaW5wdXQge1xuXHRAbWl4aW4gZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LWJhc2U7XG5cblx0Jlt0eXBlPVwicmFkaW9cIl0sXG5cdCZbdHlwZT1cImNoZWNrYm94XCJdIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tZm9ybS1jb250cm9sLXJhZGlvLWNoZWNrYm94LXB1c2gtbGFiZWwtcmlnaHQpO1xuXG5cdFx0Ji5mb3JtLWNvbnRyb2wtY3VzdG9tLWJjLXN0eWxlIHtcblx0XHRcdEBtaXhpbiBmb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3g7XG5cdFx0fVxuXHR9XG5cblx0Jlt0eXBlPVwicmFkaW9cIl0gfiBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5cdCZbdHlwZT1cImNoZWNrYm94XCJdIH4gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1mb3JtLWNvbnRyb2wtcmFkaW8tY2hlY2tib3gtbWFyZ2luLXRvcCk7XG5cdH1cblxuXHQmW3R5cGU9XCJjaGVja2JveFwiXSB7XG5cdFx0LyogQ0FTRTogQ3VzdG9tIFN0eWxlZCAqL1xuXHRcdCYuZm9ybS1jb250cm9sLWN1c3RvbS1iYy1zdHlsZSB7XG5cdFx0XHRAbWl4aW4gZm9ybS1jb250cm9sLWNoZWNrYm94O1xuXHRcdH1cblx0fVxuXG5cdCZbdHlwZT1cInJhZGlvXCJdIHtcblx0XHQvKiBDQVNFOiBDdXN0b20gU3R5bGVkICovXG5cdFx0Ji5mb3JtLWNvbnRyb2wtY3VzdG9tLWJjLXN0eWxlIHtcblx0XHRcdEBtaXhpbiBmb3JtLWNvbnRyb2wtcmFkaW87XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1wcm9kdWN0LWZvcm1fX2NvbnRyb2wtLWNoZWNrYm94IHtcblxuXHQuYmMtcHJvZHVjdC1tb2RpZmllcl9fbGFiZWwge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHR9XG5cblx0aW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuXHRpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuXHRcdGZsZXg6IDAgMSBhdXRvO1xuXHR9XG5cblx0LmJjLXByb2R1Y3QtbW9kaWZpZXJfX2xhYmVsLS1jaGVja2JveCB7XG5cdFx0ZmxleDogMTtcblx0fVxufVxuIiwic2VsZWN0IHtcblx0QG1peGluIGZvcm0tY29udHJvbDtcblxuXHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0LyogQ0FTRTogbXVsdGlwbGUgKi9cblx0JlttdWx0aXBsZV0ge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1jb250cm9sLWZvbnQtc2l6ZSk7XG5cdFx0aGVpZ2h0OiB2YXIoLS1mb3JtLWNvbnRyb2wtc2VsZWN0LW11bHRpcGxlLWhlaWdodCk7XG5cdFx0cGFkZGluZzogdmFyKC0tZm9ybS1jb250cm9sLXNlbGVjdC1tdWx0aXBsZS1wYWRkaW5nKTtcblx0fVxufVxuXG4iLCJ0ZXh0YXJlYSB7XG5cdEBtaXhpbiBmb3JtLWNvbnRyb2w7XG5cblx0cmVzaXplOiBub25lO1xuXHRwYWRkaW5nOiB2YXIoLS1mb3JtLWNvbnRyb2wtdGV4dGFyZWEtcGFkZGluZyk7XG5cdGhlaWdodDogdmFyKC0tZm9ybS1jb250cm9sLXRleHRhcmVhLWhlaWdodCk7XG59XG4iLCJcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogVmVuZG9yXG4gKlxuICogVGhpcyBmaWxlIGlzIGp1c3QgYSBjbGVhcmluZy1ob3VzZS5cbiAqIE1ha2UgcGFydGlhbHMgKHN0YXJ0IHdpdGggYW4gdW5kZXJzY29yZSkgZm9yIGFueSBhY3R1YWwgY3NzIGNvZGUuXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyogVmVuZG9yOiBTd2lwZXIuanMgKi9cbkBpbXBvcnQgXCJzd2lwZXIvYWxsXCI7XG5AaW1wb3J0IFwiZmxhdHBpY2tyL2FsbFwiO1xuXG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIFN3aXBlciA0LjAuNVxuICpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2xpbWl0czR3ZWIvU3dpcGVyXG4gKlxuICogVGhpcyBmaWxlIGlzIGp1c3QgYSBjbGVhcmluZy1ob3VzZS5cbiAqIE1ha2UgcGFydGlhbHMgKHN0YXJ0IHdpdGggYW4gdW5kZXJzY29yZSkgZm9yIGFueSBhY3R1YWwgY3NzIGNvZGUuXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcImRlZmF1bHRcIjtcbiIsIi5zd2lwZXItY29udGFpbmVyIHtcblx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdG1hcmdpbi1yaWdodDogYXV0bztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRsaXN0LXN0eWxlOiBub25lO1xuXHRwYWRkaW5nOiAwO1xuXG5cdC8qIEZpeCBvZiBXZWJraXQgZmxpY2tlcmluZyAqL1xuXHR6LWluZGV4OiAxO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1uby1mbGV4Ym94IC5zd2lwZXItc2xpZGUge1xuXHRmbG9hdDogbGVmdDtcbn1cblxuLnN3aXBlci1jb250YWluZXItdmVydGljYWwgPiAuc3dpcGVyLXdyYXBwZXIge1xuXHQtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuXHQtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcblx0LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHQtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLnN3aXBlci13cmFwcGVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR6LWluZGV4OiAxO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHR0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG5cdC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XG5cdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1hbmRyb2lkIC5zd2lwZXItc2xpZGUsXG4uc3dpcGVyLXdyYXBwZXIge1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1tdWx0aXJvdyA+IC5zd2lwZXItd3JhcHBlciB7XG5cdGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnN3aXBlci1jb250YWluZXItZnJlZS1tb2RlID4gLnN3aXBlci13cmFwcGVyIHtcblx0dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuXHRtYXJnaW46IDAgYXV0bztcbn1cblxuLnN3aXBlci1zbGlkZSB7XG5cdGZsZXgtc2hyaW5rOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbn1cblxuLnN3aXBlci1pbnZpc2libGUtYmxhbmstc2xpZGUge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8qIEF1dG8gSGVpZ2h0ICovXG4uc3dpcGVyLWNvbnRhaW5lci1hdXRvaGVpZ2h0LFxuLnN3aXBlci1jb250YWluZXItYXV0b2hlaWdodCAuc3dpcGVyLXNsaWRlIHtcblx0aGVpZ2h0OiBhdXRvO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1hdXRvaGVpZ2h0IC5zd2lwZXItd3JhcHBlciB7XG5cdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHR0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIGhlaWdodDtcbn1cblxuLyogM0QgRWZmZWN0cyAqL1xuLnN3aXBlci1jb250YWluZXItM2Qge1xuXHRwZXJzcGVjdGl2ZTogMTIwMHB4O1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXdyYXBwZXIsXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wLFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1jdWJlLXNoYWRvdyB7XG5cdHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG59XG5cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQsXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0ei1pbmRleDogMTA7XG59XG5cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbn1cblxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG59XG5cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG59XG5cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG59XG5cbi8qIElFMTAgV2luZG93cyBQaG9uZSA4IEZpeGVzICovXG4uc3dpcGVyLWNvbnRhaW5lci13cDgtaG9yaXpvbnRhbCxcbi5zd2lwZXItY29udGFpbmVyLXdwOC1ob3Jpem9udGFsID4gLnN3aXBlci13cmFwcGVyIHtcblx0LW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG5cdHRvdWNoLWFjdGlvbjogcGFuLXk7XG59XG5cbi5zd2lwZXItY29udGFpbmVyLXdwOC12ZXJ0aWNhbCxcbi5zd2lwZXItY29udGFpbmVyLXdwOC12ZXJ0aWNhbCA+IC5zd2lwZXItd3JhcHBlciB7XG5cdC1tcy10b3VjaC1hY3Rpb246IHBhbi14O1xuXHR0b3VjaC1hY3Rpb246IHBhbi14O1xufVxuXG4uc3dpcGVyLWJ1dHRvbi1wcmV2LFxuLnN3aXBlci1idXR0b24tbmV4dCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiA1MCU7XG5cdHdpZHRoOiAyN3B4O1xuXHRoZWlnaHQ6IDQ0cHg7XG5cdG1hcmdpbi10b3A6IC0yMnB4O1xuXHR6LWluZGV4OiAxMDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRiYWNrZ3JvdW5kLXNpemU6IDI3cHggNDRweDtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG4uc3dpcGVyLWJ1dHRvbi1wcmV2LnN3aXBlci1idXR0b24tZGlzYWJsZWQsXG4uc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24tZGlzYWJsZWQge1xuXHRvcGFjaXR5OiAwLjM1O1xuXHRjdXJzb3I6IGF1dG87XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uc3dpcGVyLWJ1dHRvbi1wcmV2LFxuLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItYnV0dG9uLW5leHQge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTAlMkMyMkwyMiUyQzBsMi4xJTJDMi4xTDQuMiUyQzIybDE5LjklMkMxOS45TDIyJTJDNDRMMCUyQzIyTDAlMkMyMkwwJTJDMjJ6JyUyMGZpbGwlM0QnJTIzMDA3YWZmJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcblx0bGVmdDogMTBweDtcblx0cmlnaHQ6IGF1dG87XG59XG5cbi5zd2lwZXItYnV0dG9uLW5leHQsXG4uc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1idXR0b24tcHJldiB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMjclMjA0NCclM0UlM0NwYXRoJTIwZCUzRCdNMjclMkMyMkwyNyUyQzIyTDUlMkM0NGwtMi4xLTIuMUwyMi44JTJDMjJMMi45JTJDMi4xTDUlMkMwTDI3JTJDMjJMMjclMkMyMnonJTIwZmlsbCUzRCclMjMwMDdhZmYnJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xuXHRyaWdodDogMTBweDtcblx0bGVmdDogYXV0bztcbn1cblxuLnN3aXBlci1idXR0b24tcHJldi5zd2lwZXItYnV0dG9uLXdoaXRlLFxuLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItYnV0dG9uLW5leHQuc3dpcGVyLWJ1dHRvbi13aGl0ZSB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMjclMjA0NCclM0UlM0NwYXRoJTIwZCUzRCdNMCUyQzIyTDIyJTJDMGwyLjElMkMyLjFMNC4yJTJDMjJsMTkuOSUyQzE5LjlMMjIlMkM0NEwwJTJDMjJMMCUyQzIyTDAlMkMyMnonJTIwZmlsbCUzRCclMjNmZmZmZmYnJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xufVxuXG4uc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24td2hpdGUsXG4uc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1idXR0b24tcHJldi5zd2lwZXItYnV0dG9uLXdoaXRlIHtcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIweG1sbnMlM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJyUyMHZpZXdCb3glM0QnMCUyMDAlMjAyNyUyMDQ0JyUzRSUzQ3BhdGglMjBkJTNEJ00yNyUyQzIyTDI3JTJDMjJMNSUyQzQ0bC0yLjEtMi4xTDIyLjglMkMyMkwyLjklMkMyLjFMNSUyQzBMMjclMkMyMkwyNyUyQzIyeiclMjBmaWxsJTNEJyUyM2ZmZmZmZiclMkYlM0UlM0MlMkZzdmclM0VcIik7XG59XG5cbi5zd2lwZXItYnV0dG9uLXByZXYuc3dpcGVyLWJ1dHRvbi1ibGFjayxcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24tYmxhY2sge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTAlMkMyMkwyMiUyQzBsMi4xJTJDMi4xTDQuMiUyQzIybDE5LjklMkMxOS45TDIyJTJDNDRMMCUyQzIyTDAlMkMyMkwwJTJDMjJ6JyUyMGZpbGwlM0QnJTIzMDAwMDAwJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cblxuLnN3aXBlci1idXR0b24tbmV4dC5zd2lwZXItYnV0dG9uLWJsYWNrLFxuLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItYnV0dG9uLXByZXYuc3dpcGVyLWJ1dHRvbi1ibGFjayB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMjclMjA0NCclM0UlM0NwYXRoJTIwZCUzRCdNMjclMkMyMkwyNyUyQzIyTDUlMkM0NGwtMi4xLTIuMUwyMi44JTJDMjJMMi45JTJDMi4xTDUlMkMwTDI3JTJDMjJMMjclMkMyMnonJTIwZmlsbCUzRCclMjMwMDAwMDAnJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xufVxuXG4uc3dpcGVyLXBhZ2luYXRpb24ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dHJhbnNpdGlvbjogMzAwbXMgb3BhY2l0eTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcblx0ei1pbmRleDogMTA7XG59XG5cbi5zd2lwZXItcGFnaW5hdGlvbi5zd2lwZXItcGFnaW5hdGlvbi1oaWRkZW4ge1xuXHRvcGFjaXR5OiAwO1xufVxuXG4vKiBDb21tb24gU3R5bGVzICovXG4uc3dpcGVyLXBhZ2luYXRpb24tZnJhY3Rpb24sXG4uc3dpcGVyLXBhZ2luYXRpb24tY3VzdG9tLFxuLnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbCA+IC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzIHtcblx0Ym90dG9tOiAxMHB4O1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLyogQnVsbGV0cyAqL1xuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGZvbnQtc2l6ZTogMDtcbn1cblxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcblx0dHJhbnNmb3JtOiBzY2FsZSgwLjMzKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlIHtcblx0dHJhbnNmb3JtOiBzY2FsZSgxKTtcbn1cblxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZS1wcmV2IHtcblx0dHJhbnNmb3JtOiBzY2FsZSgwLjY2KTtcbn1cblxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZS1wcmV2LXByZXYge1xuXHR0cmFuc2Zvcm06IHNjYWxlKDAuMzMpO1xufVxuXG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlLW5leHQge1xuXHR0cmFuc2Zvcm06IHNjYWxlKDAuNjYpO1xufVxuXG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlLW5leHQtbmV4dCB7XG5cdHRyYW5zZm9ybTogc2NhbGUoMC4zMyk7XG59XG5cbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuXHR3aWR0aDogOHB4O1xuXHRoZWlnaHQ6IDhweDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRib3JkZXItcmFkaXVzOiAxMDAlO1xuXHRiYWNrZ3JvdW5kOiAjMDAwO1xuXHRvcGFjaXR5OiAwLjI7XG59XG5cbmJ1dHRvbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuXHRib3JkZXI6IG5vbmU7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0Ym94LXNoYWRvdzogbm9uZTtcblx0YXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLnN3aXBlci1wYWdpbmF0aW9uLWNsaWNrYWJsZSAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZSB7XG5cdG9wYWNpdHk6IDE7XG5cdGJhY2tncm91bmQ6ICMwMDdhZmY7XG59XG5cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMge1xuXHRyaWdodDogMTBweDtcblx0dG9wOiA1MCU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG59XG5cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG5cdG1hcmdpbjogNnB4IDA7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci12ZXJ0aWNhbCA+IC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyB7XG5cdHRvcDogNTAlO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdHdpZHRoOiA4cHg7XG59XG5cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHRyYW5zaXRpb246IDIwMG1zIHRyYW5zZm9ybSwgMjAwbXMgdG9wO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG5cdG1hcmdpbjogMCA0cHg7XG59XG5cbi5zd2lwZXItY29udGFpbmVyLWhvcml6b250YWwgPiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMge1xuXHRsZWZ0OiA1MCU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbCA+IC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcblx0dHJhbnNpdGlvbjogMjAwbXMgdHJhbnNmb3JtLCAyMDBtcyBsZWZ0O1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsLnN3aXBlci1jb250YWluZXItcnRsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcblx0dHJhbnNpdGlvbjogMjAwbXMgdHJhbnNmb3JtLCAyMDBtcyByaWdodDtcbn1cblxuLyogUHJvZ3Jlc3MgKi9cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhciB7XG5cdGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1maWxsIHtcblx0YmFja2dyb3VuZDogIzAwN2FmZjtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHRyYW5zZm9ybTogc2NhbGUoMCk7XG5cdHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1maWxsIHtcblx0dHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgdG9wO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsID4gLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogNHB4O1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG59XG5cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIHtcblx0d2lkdGg6IDRweDtcblx0aGVpZ2h0OiAxMDAlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG59XG5cbi5zd2lwZXItcGFnaW5hdGlvbi13aGl0ZSAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZSB7XG5cdGJhY2tncm91bmQ6ICNmZmY7XG59XG5cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi13aGl0ZSB7XG5cdGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG59XG5cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi13aGl0ZSAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItZmlsbCB7XG5cdGJhY2tncm91bmQ6ICNmZmY7XG59XG5cbi5zd2lwZXItcGFnaW5hdGlvbi1ibGFjayAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZSB7XG5cdGJhY2tncm91bmQ6ICMwMDA7XG59XG5cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi1ibGFjayB7XG5cdGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG5cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi1ibGFjayAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItZmlsbCB7XG5cdGJhY2tncm91bmQ6ICMwMDA7XG59XG5cbi8qIFNjcm9sbGJhciAqL1xuLnN3aXBlci1zY3JvbGxiYXIge1xuXHRib3JkZXItcmFkaXVzOiAxMHB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XG5cdGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbCA+IC5zd2lwZXItc2Nyb2xsYmFyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAxJTtcblx0Ym90dG9tOiAzcHg7XG5cdHotaW5kZXg6IDUwO1xuXHRoZWlnaHQ6IDVweDtcblx0d2lkdGg6IDk4JTtcbn1cblxuLnN3aXBlci1jb250YWluZXItdmVydGljYWwgPiAuc3dpcGVyLXNjcm9sbGJhciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDNweDtcblx0dG9wOiAxJTtcblx0ei1pbmRleDogNTA7XG5cdHdpZHRoOiA1cHg7XG5cdGhlaWdodDogOTglO1xufVxuXG4uc3dpcGVyLXNjcm9sbGJhci1kcmFnIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHR3aWR0aDogMTAwJTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG5cdGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cdGxlZnQ6IDA7XG5cdHRvcDogMDtcbn1cblxuLnN3aXBlci1zY3JvbGxiYXItY3Vyc29yLWRyYWcge1xuXHRjdXJzb3I6IG1vdmU7XG59XG5cbi5zd2lwZXItem9vbS1jb250YWluZXIge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uc3dpcGVyLXpvb20tY29udGFpbmVyID4gaW1nLFxuLnN3aXBlci16b29tLWNvbnRhaW5lciA+IHN2Zyxcbi5zd2lwZXItem9vbS1jb250YWluZXIgPiBjYW52YXMge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdG1heC1oZWlnaHQ6IDEwMCU7XG5cdC1vLW9iamVjdC1maXQ6IGNvbnRhaW47XG5cdG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi5zd2lwZXItc2xpZGUtem9vbWVkIHtcblx0Y3Vyc29yOiBtb3ZlO1xufVxuXG4vKiBQcmVsb2FkZXIgKi9cbi5zd2lwZXItbGF6eS1wcmVsb2FkZXIge1xuXHR3aWR0aDogNDJweDtcblx0aGVpZ2h0OiA0MnB4O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDUwJTtcblx0dG9wOiA1MCU7XG5cdG1hcmdpbi1sZWZ0OiAtMjFweDtcblx0bWFyZ2luLXRvcDogLTIxcHg7XG5cdHotaW5kZXg6IDEwO1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XG5cdGFuaW1hdGlvbjogc3dpcGVyLXByZWxvYWRlci1zcGluIDFzIHN0ZXBzKDEyLCBlbmQpIGluZmluaXRlO1xufVxuXG4uc3dpcGVyLWxhenktcHJlbG9hZGVyOmFmdGVyIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGNvbnRlbnQ6ICcnO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMTIwJTIwMTIwJyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB4bWxucyUzQXhsaW5rJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJyUzRSUzQ2RlZnMlM0UlM0NsaW5lJTIwaWQlM0QnbCclMjB4MSUzRCc2MCclMjB4MiUzRCc2MCclMjB5MSUzRCc3JyUyMHkyJTNEJzI3JyUyMHN0cm9rZSUzRCclMjM2YzZjNmMnJTIwc3Ryb2tlLXdpZHRoJTNEJzExJyUyMHN0cm9rZS1saW5lY2FwJTNEJ3JvdW5kJyUyRiUzRSUzQyUyRmRlZnMlM0UlM0NnJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoNjAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDkwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgxMjAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDE1MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjM3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMTgwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNDYnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgyMTAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy41NiclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDI0MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjY2JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMjcwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNzUnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMDAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy44NSclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDMzMCUyMDYwJTJDNjApJyUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0VcIik7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IDUwJTtcblx0YmFja2dyb3VuZC1zaXplOiAxMDAlO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG4uc3dpcGVyLWxhenktcHJlbG9hZGVyLXdoaXRlOmFmdGVyIHtcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIwdmlld0JveCUzRCcwJTIwMCUyMDEyMCUyMDEyMCclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIweG1sbnMlM0F4bGluayUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayclM0UlM0NkZWZzJTNFJTNDbGluZSUyMGlkJTNEJ2wnJTIweDElM0QnNjAnJTIweDIlM0QnNjAnJTIweTElM0QnNyclMjB5MiUzRCcyNyclMjBzdHJva2UlM0QnJTIzZmZmJyUyMHN0cm9rZS13aWR0aCUzRCcxMSclMjBzdHJva2UtbGluZWNhcCUzRCdyb3VuZCclMkYlM0UlM0MlMkZkZWZzJTNFJTNDZyUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMzAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDYwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSg5MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMTIwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgxNTAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4zNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDE4MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjQ2JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMjEwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNTYnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgyNDAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy42NiclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDI3MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjc1JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMzAwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuODUnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMzAlMjA2MCUyQzYwKSclMkYlM0UlM0MlMkZnJTNFJTNDJTJGc3ZnJTNFXCIpO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc3dpcGVyLXByZWxvYWRlci1zcGluIHtcblxuXHQxMDAlIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgc3dpcGVyLXByZWxvYWRlci1zcGluIHtcblxuXHQxMDAlIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuXHR9XG59XG5cbi8qIGExMXkgKi9cbi5zd2lwZXItY29udGFpbmVyIC5zd2lwZXItbm90aWZpY2F0aW9uIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRvcGFjaXR5OiAwO1xuXHR6LWluZGV4OiAtMTAwMDtcbn1cblxuLnN3aXBlci1jb250YWluZXItZmFkZS5zd2lwZXItY29udGFpbmVyLWZyZWUtbW9kZSAuc3dpcGVyLXNsaWRlIHtcblx0dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1mYWRlIC5zd2lwZXItc2xpZGUge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0dHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbn1cblxuLnN3aXBlci1jb250YWluZXItZmFkZSAuc3dpcGVyLXNsaWRlIC5zd2lwZXItc2xpZGUge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnN3aXBlci1jb250YWluZXItZmFkZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSxcbi5zd2lwZXItY29udGFpbmVyLWZhZGUgLnN3aXBlci1zbGlkZS1hY3RpdmUgLnN3aXBlci1zbGlkZS1hY3RpdmUge1xuXHRwb2ludGVyLWV2ZW50czogYXV0bztcbn1cblxuLnN3aXBlci1jb250YWluZXItY3ViZSB7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0YmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHR6LWluZGV4OiAxO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn1cblxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlIC5zd2lwZXItc2xpZGUge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnN3aXBlci1jb250YWluZXItY3ViZS5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLXNsaWRlIHtcblx0dHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtYWN0aXZlLFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSB7XG5cdHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtYWN0aXZlLFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLW5leHQsXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtcHJldixcbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1uZXh0ICsgLnN3aXBlci1zbGlkZSB7XG5cdHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCxcbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCB7XG5cdHotaW5kZXg6IDA7XG5cdGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLWN1YmUtc2hhZG93IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHRib3R0b206IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJhY2tncm91bmQ6ICMwMDA7XG5cdG9wYWNpdHk6IDAuNjtcblx0LXdlYmtpdC1maWx0ZXI6IGJsdXIoNTBweCk7XG5cdGZpbHRlcjogYmx1cig1MHB4KTtcblx0ei1pbmRleDogMDtcbn1cblxuLnN3aXBlci1jb250YWluZXItZmxpcCB7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0YmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHR6LWluZGV4OiAxO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUgLnN3aXBlci1zbGlkZSB7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUtYWN0aXZlLFxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlLWFjdGl2ZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSB7XG5cdHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCxcbi5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLFxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LFxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCB7XG5cdHotaW5kZXg6IDA7XG5cdGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnN3aXBlci1jb250YWluZXItY292ZXJmbG93IC5zd2lwZXItd3JhcHBlciB7XG5cdC8qIFdpbmRvd3MgOCBJRSAxMCBmaXggKi9cblx0LW1zLXBlcnNwZWN0aXZlOiAxMjAwcHg7XG59XG4iLG51bGwsIi8qIGZsYXRwaWNrciB2NC41LjEsIEBsaWNlbnNlIE1JVCAqL1xuXG5AaW1wb3J0IFwiZGVmYXVsdFwiO1xuIiwiLyogZXNsaW50LWRpc2FibGUgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG5cbi5mbGF0cGlja3ItY2FsZW5kYXIge1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0b3BhY2l0eTogMDtcblx0ZGlzcGxheTogbm9uZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdHBhZGRpbmc6IDA7XG5cdC13ZWJraXQtYW5pbWF0aW9uOiBub25lO1xuXHRhbmltYXRpb246IG5vbmU7XG5cdGRpcmVjdGlvbjogbHRyO1xuXHRib3JkZXI6IDA7XG5cdGZvbnQtc2l6ZTogMTRweDtcblx0bGluZS1oZWlnaHQ6IDI0cHg7XG5cdGJvcmRlci1yYWRpdXM6IDVweDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogMzA3Ljg3NXB4O1xuXHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdC1tcy10b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcblx0dG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG5cdGJhY2tncm91bmQ6ICNmZmY7XG5cdC13ZWJraXQtYm94LXNoYWRvdzogMXB4IDAgMCAjZTZlNmU2LCAtMXB4IDAgMCAjZTZlNmU2LCAwIDFweCAwICNlNmU2ZTYsIDAgLTFweCAwICNlNmU2ZTYsIDAgM3B4IDEzcHggcmdiYSgwLDAsMCwwLjA4KTtcblx0Ym94LXNoYWRvdzogMXB4IDAgMCAjZTZlNmU2LCAtMXB4IDAgMCAjZTZlNmU2LCAwIDFweCAwICNlNmU2ZTYsIDAgLTFweCAwICNlNmU2ZTYsIDAgM3B4IDEzcHggcmdiYSgwLDAsMCwwLjA4KTtcbn1cbi5mbGF0cGlja3ItY2FsZW5kYXIub3Blbixcbi5mbGF0cGlja3ItY2FsZW5kYXIuaW5saW5lIHtcblx0b3BhY2l0eTogMTtcblx0bWF4LWhlaWdodDogNjQwcHg7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uZmxhdHBpY2tyLWNhbGVuZGFyLm9wZW4ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHotaW5kZXg6IDk5OTk5O1xufVxuLmZsYXRwaWNrci1jYWxlbmRhci5hbmltYXRlLm9wZW4ge1xuXHQtd2Via2l0LWFuaW1hdGlvbjogZnBGYWRlSW5Eb3duIDMwMG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcblx0YW5pbWF0aW9uOiBmcEZhZGVJbkRvd24gMzAwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xufVxuLmZsYXRwaWNrci1jYWxlbmRhci5pbmxpbmUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IDJweDtcbn1cbi5mbGF0cGlja3ItY2FsZW5kYXIuc3RhdGljIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IGNhbGMoMTAwJSArIDJweCk7XG59XG4uZmxhdHBpY2tyLWNhbGVuZGFyLnN0YXRpYy5vcGVuIHtcblx0ei1pbmRleDogOTk5O1xuXHRkaXNwbGF5OiBibG9jaztcbn1cbi5mbGF0cGlja3ItY2FsZW5kYXIubXVsdGlNb250aCAuZmxhdHBpY2tyLWRheXMgLmRheUNvbnRhaW5lcjpudGgtY2hpbGQobisxKSAuZmxhdHBpY2tyLWRheS5pblJhbmdlOm50aC1jaGlsZCg3bis3KSB7XG5cdC13ZWJraXQtYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXHRib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4uZmxhdHBpY2tyLWNhbGVuZGFyLm11bHRpTW9udGggLmZsYXRwaWNrci1kYXlzIC5kYXlDb250YWluZXI6bnRoLWNoaWxkKG4rMikgLmZsYXRwaWNrci1kYXkuaW5SYW5nZTpudGgtY2hpbGQoN24rMSkge1xuXHQtd2Via2l0LWJveC1zaGFkb3c6IC0ycHggMCAwICNlNmU2ZTYsIDVweCAwIDAgI2U2ZTZlNjtcblx0Ym94LXNoYWRvdzogLTJweCAwIDAgI2U2ZTZlNiwgNXB4IDAgMCAjZTZlNmU2O1xufVxuLmZsYXRwaWNrci1jYWxlbmRhciAuaGFzV2Vla3MgLmRheUNvbnRhaW5lcixcbi5mbGF0cGlja3ItY2FsZW5kYXIgLmhhc1RpbWUgLmRheUNvbnRhaW5lciB7XG5cdGJvcmRlci1ib3R0b206IDA7XG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuLmZsYXRwaWNrci1jYWxlbmRhciAuaGFzV2Vla3MgLmRheUNvbnRhaW5lciB7XG5cdGJvcmRlci1sZWZ0OiAwO1xufVxuLmZsYXRwaWNrci1jYWxlbmRhci5zaG93VGltZUlucHV0Lmhhc1RpbWUgLmZsYXRwaWNrci10aW1lIHtcblx0aGVpZ2h0OiA0MHB4O1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgI2U2ZTZlNjtcbn1cbi5mbGF0cGlja3ItY2FsZW5kYXIubm9DYWxlbmRhci5oYXNUaW1lIC5mbGF0cGlja3ItdGltZSB7XG5cdGhlaWdodDogYXV0bztcbn1cbi5mbGF0cGlja3ItY2FsZW5kYXI6YmVmb3JlLFxuLmZsYXRwaWNrci1jYWxlbmRhcjphZnRlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRib3JkZXI6IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRjb250ZW50OiAnJztcblx0aGVpZ2h0OiAwO1xuXHR3aWR0aDogMDtcblx0bGVmdDogMjJweDtcbn1cbi5mbGF0cGlja3ItY2FsZW5kYXIucmlnaHRNb3N0OmJlZm9yZSxcbi5mbGF0cGlja3ItY2FsZW5kYXIucmlnaHRNb3N0OmFmdGVyIHtcblx0bGVmdDogYXV0bztcblx0cmlnaHQ6IDIycHg7XG59XG4uZmxhdHBpY2tyLWNhbGVuZGFyOmJlZm9yZSB7XG5cdGJvcmRlci13aWR0aDogNXB4O1xuXHRtYXJnaW46IDAgLTVweDtcbn1cbi5mbGF0cGlja3ItY2FsZW5kYXI6YWZ0ZXIge1xuXHRib3JkZXItd2lkdGg6IDRweDtcblx0bWFyZ2luOiAwIC00cHg7XG59XG4uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmJlZm9yZSxcbi5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dUb3A6YWZ0ZXIge1xuXHRib3R0b206IDEwMCU7XG59XG4uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmJlZm9yZSB7XG5cdGJvcmRlci1ib3R0b20tY29sb3I6ICNlNmU2ZTY7XG59XG4uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmFmdGVyIHtcblx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogI2ZmZjtcbn1cbi5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dCb3R0b206YmVmb3JlLFxuLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0JvdHRvbTphZnRlciB7XG5cdHRvcDogMTAwJTtcbn1cbi5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dCb3R0b206YmVmb3JlIHtcblx0Ym9yZGVyLXRvcC1jb2xvcjogI2U2ZTZlNjtcbn1cbi5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dCb3R0b206YWZ0ZXIge1xuXHRib3JkZXItdG9wLWNvbG9yOiAjZmZmO1xufVxuLmZsYXRwaWNrci1jYWxlbmRhcjpmb2N1cyB7XG5cdG91dGxpbmU6IDA7XG59XG4uZmxhdHBpY2tyLXdyYXBwZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5mbGF0cGlja3ItbW9udGhzIHtcblx0ZGlzcGxheTogLXdlYmtpdC1ib3g7XG5cdGRpc3BsYXk6IC13ZWJraXQtZmxleDtcblx0ZGlzcGxheTogLW1zLWZsZXhib3g7XG5cdGRpc3BsYXk6IGZsZXg7XG59XG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW1vbnRoIHtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGNvbG9yOiByZ2JhKDAsMCwwLDAuOSk7XG5cdGZpbGw6IHJnYmEoMCwwLDAsMC45KTtcblx0aGVpZ2h0OiAyOHB4O1xuXHRsaW5lLWhlaWdodDogMTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdC13ZWJraXQtYm94LWZsZXg6IDE7XG5cdC13ZWJraXQtZmxleDogMTtcblx0LW1zLWZsZXg6IDE7XG5cdGZsZXg6IDE7XG59XG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGgsXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGgge1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDBweDtcblx0bGluZS1oZWlnaHQ6IDE2cHg7XG5cdGhlaWdodDogMjhweDtcblx0cGFkZGluZzogMTBweDtcblx0ei1pbmRleDogMztcblx0Y29sb3I6IHJnYmEoMCwwLDAsMC45KTtcblx0ZmlsbDogcmdiYSgwLDAsMCwwLjkpO1xufVxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoLmRpc2FibGVkLFxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoLmRpc2FibGVkIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aCBpLFxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoIGkge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGguZmxhdHBpY2tyLXByZXYtbW9udGgsXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGguZmxhdHBpY2tyLXByZXYtbW9udGgge1xuXHQvKlxuXHRcdCAgLypydGw6YmVnaW46aWdub3JlKi9cblx0Lypcblx0XHQgICovXG5cdGxlZnQ6IDA7XG5cdC8qXG5cdFx0ICAvKnJ0bDplbmQ6aWdub3JlKi9cblx0Lypcblx0XHQgICovXG59XG4vKlxuICAgICAgLypydGw6YmVnaW46aWdub3JlKi9cbi8qXG4gICAgICAvKnJ0bDplbmQ6aWdub3JlKi9cbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aC5mbGF0cGlja3ItbmV4dC1tb250aCxcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aC5mbGF0cGlja3ItbmV4dC1tb250aCB7XG5cdC8qXG5cdFx0ICAvKnJ0bDpiZWdpbjppZ25vcmUqL1xuXHQvKlxuXHRcdCAgKi9cblx0cmlnaHQ6IDA7XG5cdC8qXG5cdFx0ICAvKnJ0bDplbmQ6aWdub3JlKi9cblx0Lypcblx0XHQgICovXG59XG4vKlxuICAgICAgLypydGw6YmVnaW46aWdub3JlKi9cbi8qXG4gICAgICAvKnJ0bDplbmQ6aWdub3JlKi9cbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aDpob3Zlcixcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aDpob3ZlciB7XG5cdGNvbG9yOiAjOTU5ZWE5O1xufVxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoOmhvdmVyIHN2Zyxcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aDpob3ZlciBzdmcge1xuXHRmaWxsOiAjZjY0NzQ3O1xufVxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoIHN2Zyxcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aCBzdmcge1xuXHR3aWR0aDogMTRweDtcblx0aGVpZ2h0OiAxNHB4O1xufVxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoIHN2ZyBwYXRoLFxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoIHN2ZyBwYXRoIHtcblx0LXdlYmtpdC10cmFuc2l0aW9uOiBmaWxsIDAuMXM7XG5cdHRyYW5zaXRpb246IGZpbGwgMC4xcztcblx0ZmlsbDogaW5oZXJpdDtcbn1cbi5udW1JbnB1dFdyYXBwZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGhlaWdodDogYXV0bztcbn1cbi5udW1JbnB1dFdyYXBwZXIgaW5wdXQsXG4ubnVtSW5wdXRXcmFwcGVyIHNwYW4ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4ubnVtSW5wdXRXcmFwcGVyIGlucHV0IHtcblx0d2lkdGg6IDEwMCU7XG59XG4ubnVtSW5wdXRXcmFwcGVyIGlucHV0OjotbXMtY2xlYXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuLm51bUlucHV0V3JhcHBlciBzcGFuIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogMDtcblx0d2lkdGg6IDE0cHg7XG5cdHBhZGRpbmc6IDAgNHB4IDAgMnB4O1xuXHRoZWlnaHQ6IDUwJTtcblx0bGluZS1oZWlnaHQ6IDUwJTtcblx0b3BhY2l0eTogMDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKDU3LDU3LDU3LDAuMTUpO1xuXHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubnVtSW5wdXRXcmFwcGVyIHNwYW46aG92ZXIge1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMSk7XG59XG4ubnVtSW5wdXRXcmFwcGVyIHNwYW46YWN0aXZlIHtcblx0YmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjIpO1xufVxuLm51bUlucHV0V3JhcHBlciBzcGFuOmFmdGVyIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGNvbnRlbnQ6IFwiXCI7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd1VwIHtcblx0dG9wOiAwO1xuXHRib3JkZXItYm90dG9tOiAwO1xufVxuLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93VXA6YWZ0ZXIge1xuXHRib3JkZXItbGVmdDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIHJnYmEoNTcsNTcsNTcsMC42KTtcblx0dG9wOiAyNiU7XG59XG4ubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3duIHtcblx0dG9wOiA1MCU7XG59XG4ubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3duOmFmdGVyIHtcblx0Ym9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci10b3A6IDRweCBzb2xpZCByZ2JhKDU3LDU3LDU3LDAuNik7XG5cdHRvcDogNDAlO1xufVxuLm51bUlucHV0V3JhcHBlciBzcGFuIHN2ZyB7XG5cdHdpZHRoOiBpbmhlcml0O1xuXHRoZWlnaHQ6IGF1dG87XG59XG4ubnVtSW5wdXRXcmFwcGVyIHNwYW4gc3ZnIHBhdGgge1xuXHRmaWxsOiByZ2JhKDAsMCwwLDAuNSk7XG59XG4ubnVtSW5wdXRXcmFwcGVyOmhvdmVyIHtcblx0YmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjA1KTtcbn1cbi5udW1JbnB1dFdyYXBwZXI6aG92ZXIgc3BhbiB7XG5cdG9wYWNpdHk6IDE7XG59XG4uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGgge1xuXHRmb250LXNpemU6IDEzNSU7XG5cdGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuXHRmb250LXdlaWdodDogMzAwO1xuXHRjb2xvcjogaW5oZXJpdDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogNzUlO1xuXHRsZWZ0OiAxMi41JTtcblx0cGFkZGluZzogNi4xNnB4IDAgMCAwO1xuXHRsaW5lLWhlaWdodDogMTtcblx0aGVpZ2h0OiAyOHB4O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpO1xufVxuLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIHNwYW4uY3VyLW1vbnRoIHtcblx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdGNvbG9yOiBpbmhlcml0O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdG1hcmdpbi1sZWZ0OiAwLjVjaDtcblx0cGFkZGluZzogMDtcbn1cbi5mbGF0cGlja3ItY3VycmVudC1tb250aCBzcGFuLmN1ci1tb250aDpob3ZlciB7XG5cdGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4wNSk7XG59XG4uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLm51bUlucHV0V3JhcHBlciB7XG5cdHdpZHRoOiA2Y2g7XG5cdHdpZHRoOiA3Y2hcXDA7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5mbGF0cGlja3ItY3VycmVudC1tb250aCAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dVcDphZnRlciB7XG5cdGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwwLDAsMC45KTtcbn1cbi5mbGF0cGlja3ItY3VycmVudC1tb250aCAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3duOmFmdGVyIHtcblx0Ym9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLDAsMCwwLjkpO1xufVxuLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIGlucHV0LmN1ci15ZWFyIHtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0Y29sb3I6IGluaGVyaXQ7XG5cdGN1cnNvcjogdGV4dDtcblx0cGFkZGluZzogMCAwIDAgMC41Y2g7XG5cdG1hcmdpbjogMDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG5cdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRmb250LXdlaWdodDogMzAwO1xuXHRsaW5lLWhlaWdodDogaW5oZXJpdDtcblx0aGVpZ2h0OiBhdXRvO1xuXHRib3JkZXI6IDA7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cdHZlcnRpY2FsLWFsaWduOiBpbml0aWFsO1xufVxuLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIGlucHV0LmN1ci15ZWFyOmZvY3VzIHtcblx0b3V0bGluZTogMDtcbn1cbi5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhcltkaXNhYmxlZF0sXG4uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggaW5wdXQuY3VyLXllYXJbZGlzYWJsZWRdOmhvdmVyIHtcblx0Zm9udC1zaXplOiAxMDAlO1xuXHRjb2xvcjogcmdiYSgwLDAsMCwwLjUpO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uZmxhdHBpY2tyLXdlZWtkYXlzIHtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0d2lkdGg6IDEwMCU7XG5cdGRpc3BsYXk6IC13ZWJraXQtYm94O1xuXHRkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG5cdGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHQtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuXHQtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGhlaWdodDogMjhweDtcbn1cbi5mbGF0cGlja3Itd2Vla2RheXMgLmZsYXRwaWNrci13ZWVrZGF5Y29udGFpbmVyIHtcblx0ZGlzcGxheTogLXdlYmtpdC1ib3g7XG5cdGRpc3BsYXk6IC13ZWJraXQtZmxleDtcblx0ZGlzcGxheTogLW1zLWZsZXhib3g7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdC13ZWJraXQtYm94LWZsZXg6IDE7XG5cdC13ZWJraXQtZmxleDogMTtcblx0LW1zLWZsZXg6IDE7XG5cdGZsZXg6IDE7XG59XG5zcGFuLmZsYXRwaWNrci13ZWVrZGF5IHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRmb250LXNpemU6IDkwJTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGNvbG9yOiByZ2JhKDAsMCwwLDAuNTQpO1xuXHRsaW5lLWhlaWdodDogMTtcblx0bWFyZ2luOiAwO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHQtd2Via2l0LWJveC1mbGV4OiAxO1xuXHQtd2Via2l0LWZsZXg6IDE7XG5cdC1tcy1mbGV4OiAxO1xuXHRmbGV4OiAxO1xuXHRmb250LXdlaWdodDogYm9sZGVyO1xufVxuLmRheUNvbnRhaW5lcixcbi5mbGF0cGlja3Itd2Vla3Mge1xuXHRwYWRkaW5nOiAxcHggMCAwIDA7XG59XG4uZmxhdHBpY2tyLWRheXMge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGRpc3BsYXk6IC13ZWJraXQtYm94O1xuXHRkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG5cdGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHQtd2Via2l0LWJveC1hbGlnbjogc3RhcnQ7XG5cdC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdC1tcy1mbGV4LWFsaWduOiBzdGFydDtcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdHdpZHRoOiAzMDcuODc1cHg7XG59XG4uZmxhdHBpY2tyLWRheXM6Zm9jdXMge1xuXHRvdXRsaW5lOiAwO1xufVxuLmRheUNvbnRhaW5lciB7XG5cdHBhZGRpbmc6IDA7XG5cdG91dGxpbmU6IDA7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdpZHRoOiAzMDcuODc1cHg7XG5cdG1pbi13aWR0aDogMzA3Ljg3NXB4O1xuXHRtYXgtd2lkdGg6IDMwNy44NzVweDtcblx0LXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuXHRkaXNwbGF5OiAtd2Via2l0LWJveDtcblx0ZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHQtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcblx0ZmxleC13cmFwOiB3cmFwO1xuXHQtbXMtZmxleC13cmFwOiB3cmFwO1xuXHQtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xuXHQtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcblx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpO1xuXHRvcGFjaXR5OiAxO1xufVxuLmRheUNvbnRhaW5lciArIC5kYXlDb250YWluZXIge1xuXHQtd2Via2l0LWJveC1zaGFkb3c6IC0xcHggMCAwICNlNmU2ZTY7XG5cdGJveC1zaGFkb3c6IC0xcHggMCAwICNlNmU2ZTY7XG59XG4uZmxhdHBpY2tyLWRheSB7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRib3JkZXItcmFkaXVzOiAxNTBweDtcblx0LXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRjb2xvcjogIzM5MzkzOTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRmb250LXdlaWdodDogNDAwO1xuXHR3aWR0aDogMTQuMjg1NzE0MyU7XG5cdC13ZWJraXQtZmxleC1iYXNpczogMTQuMjg1NzE0MyU7XG5cdC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAxNC4yODU3MTQzJTtcblx0ZmxleC1iYXNpczogMTQuMjg1NzE0MyU7XG5cdG1heC13aWR0aDogMzlweDtcblx0aGVpZ2h0OiAzOXB4O1xuXHRsaW5lLWhlaWdodDogMzlweDtcblx0bWFyZ2luOiAwO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0LXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuXHQtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHQtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uZmxhdHBpY2tyLWRheS5pblJhbmdlLFxuLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5LmluUmFuZ2UsXG4uZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXkuaW5SYW5nZSxcbi5mbGF0cGlja3ItZGF5LnRvZGF5LmluUmFuZ2UsXG4uZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXkudG9kYXkuaW5SYW5nZSxcbi5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheS50b2RheS5pblJhbmdlLFxuLmZsYXRwaWNrci1kYXk6aG92ZXIsXG4uZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXk6aG92ZXIsXG4uZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXk6aG92ZXIsXG4uZmxhdHBpY2tyLWRheTpmb2N1cyxcbi5mbGF0cGlja3ItZGF5LnByZXZNb250aERheTpmb2N1cyxcbi5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheTpmb2N1cyB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0b3V0bGluZTogMDtcblx0YmFja2dyb3VuZDogI2U2ZTZlNjtcblx0Ym9yZGVyLWNvbG9yOiAjZTZlNmU2O1xufVxuLmZsYXRwaWNrci1kYXkudG9kYXkge1xuXHRib3JkZXItY29sb3I6ICM5NTllYTk7XG59XG4uZmxhdHBpY2tyLWRheS50b2RheTpob3Zlcixcbi5mbGF0cGlja3ItZGF5LnRvZGF5OmZvY3VzIHtcblx0Ym9yZGVyLWNvbG9yOiAjOTU5ZWE5O1xuXHRiYWNrZ3JvdW5kOiAjOTU5ZWE5O1xuXHRjb2xvcjogI2ZmZjtcbn1cbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLFxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZSxcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLFxuLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuaW5SYW5nZSxcbi5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UuaW5SYW5nZSxcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLmluUmFuZ2UsXG4uZmxhdHBpY2tyLWRheS5zZWxlY3RlZDpmb2N1cyxcbi5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2U6Zm9jdXMsXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZTpmb2N1cyxcbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkOmhvdmVyLFxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZTpob3Zlcixcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlOmhvdmVyLFxuLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQucHJldk1vbnRoRGF5LFxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5wcmV2TW9udGhEYXksXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5wcmV2TW9udGhEYXksXG4uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5uZXh0TW9udGhEYXksXG4uZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLm5leHRNb250aERheSxcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLm5leHRNb250aERheSB7XG5cdGJhY2tncm91bmQ6ICM1NjlmZjc7XG5cdC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcblx0Ym94LXNoYWRvdzogbm9uZTtcblx0Y29sb3I6ICNmZmY7XG5cdGJvcmRlci1jb2xvcjogIzU2OWZmNztcbn1cbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLnN0YXJ0UmFuZ2UsXG4uZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLnN0YXJ0UmFuZ2UsXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5zdGFydFJhbmdlIHtcblx0Ym9yZGVyLXJhZGl1czogNTBweCAwIDAgNTBweDtcbn1cbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLmVuZFJhbmdlLFxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5lbmRSYW5nZSxcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLmVuZFJhbmdlIHtcblx0Ym9yZGVyLXJhZGl1czogMCA1MHB4IDUwcHggMDtcbn1cbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLnN0YXJ0UmFuZ2UgKyAuZW5kUmFuZ2U6bm90KDpudGgtY2hpbGQoN24rMSkpLFxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5zdGFydFJhbmdlICsgLmVuZFJhbmdlOm5vdCg6bnRoLWNoaWxkKDduKzEpKSxcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLnN0YXJ0UmFuZ2UgKyAuZW5kUmFuZ2U6bm90KDpudGgtY2hpbGQoN24rMSkpIHtcblx0LXdlYmtpdC1ib3gtc2hhZG93OiAtMTBweCAwIDAgIzU2OWZmNztcblx0Ym94LXNoYWRvdzogLTEwcHggMCAwICM1NjlmZjc7XG59XG4uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5zdGFydFJhbmdlLmVuZFJhbmdlLFxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5zdGFydFJhbmdlLmVuZFJhbmdlLFxuLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2Uuc3RhcnRSYW5nZS5lbmRSYW5nZSB7XG5cdGJvcmRlci1yYWRpdXM6IDUwcHg7XG59XG4uZmxhdHBpY2tyLWRheS5pblJhbmdlIHtcblx0Ym9yZGVyLXJhZGl1czogMDtcblx0LXdlYmtpdC1ib3gtc2hhZG93OiAtNXB4IDAgMCAjZTZlNmU2LCA1cHggMCAwICNlNmU2ZTY7XG5cdGJveC1zaGFkb3c6IC01cHggMCAwICNlNmU2ZTYsIDVweCAwIDAgI2U2ZTZlNjtcbn1cbi5mbGF0cGlja3ItZGF5LmRpc2FibGVkLFxuLmZsYXRwaWNrci1kYXkuZGlzYWJsZWQ6aG92ZXIsXG4uZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXksXG4uZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXksXG4uZmxhdHBpY2tyLWRheS5ub3RBbGxvd2VkLFxuLmZsYXRwaWNrci1kYXkubm90QWxsb3dlZC5wcmV2TW9udGhEYXksXG4uZmxhdHBpY2tyLWRheS5ub3RBbGxvd2VkLm5leHRNb250aERheSB7XG5cdGNvbG9yOiByZ2JhKDU3LDU3LDU3LDAuMyk7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG4uZmxhdHBpY2tyLWRheS5kaXNhYmxlZCxcbi5mbGF0cGlja3ItZGF5LmRpc2FibGVkOmhvdmVyIHtcblx0Y3Vyc29yOiBub3QtYWxsb3dlZDtcblx0Y29sb3I6IHJnYmEoNTcsNTcsNTcsMC4xKTtcbn1cbi5mbGF0cGlja3ItZGF5LndlZWsuc2VsZWN0ZWQge1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXHQtd2Via2l0LWJveC1zaGFkb3c6IC01cHggMCAwICM1NjlmZjcsIDVweCAwIDAgIzU2OWZmNztcblx0Ym94LXNoYWRvdzogLTVweCAwIDAgIzU2OWZmNywgNXB4IDAgMCAjNTY5ZmY3O1xufVxuLmZsYXRwaWNrci1kYXkuaGlkZGVuIHtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnJhbmdlTW9kZSAuZmxhdHBpY2tyLWRheSB7XG5cdG1hcmdpbi10b3A6IDFweDtcbn1cbi5mbGF0cGlja3Itd2Vla3dyYXBwZXIge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGZsb2F0OiBsZWZ0O1xufVxuLmZsYXRwaWNrci13ZWVrd3JhcHBlciAuZmxhdHBpY2tyLXdlZWtzIHtcblx0cGFkZGluZzogMCAxMnB4O1xuXHQtd2Via2l0LWJveC1zaGFkb3c6IDFweCAwIDAgI2U2ZTZlNjtcblx0Ym94LXNoYWRvdzogMXB4IDAgMCAjZTZlNmU2O1xufVxuLmZsYXRwaWNrci13ZWVrd3JhcHBlciAuZmxhdHBpY2tyLXdlZWtkYXkge1xuXHRmbG9hdDogbm9uZTtcblx0d2lkdGg6IDEwMCU7XG5cdGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuLmZsYXRwaWNrci13ZWVrd3JhcHBlciBzcGFuLmZsYXRwaWNrci1kYXksXG4uZmxhdHBpY2tyLXdlZWt3cmFwcGVyIHNwYW4uZmxhdHBpY2tyLWRheTpob3ZlciB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogMTAwJTtcblx0bWF4LXdpZHRoOiBub25lO1xuXHRjb2xvcjogcmdiYSg1Nyw1Nyw1NywwLjMpO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRib3JkZXI6IG5vbmU7XG59XG4uZmxhdHBpY2tyLWlubmVyQ29udGFpbmVyIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGRpc3BsYXk6IC13ZWJraXQtYm94O1xuXHRkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG5cdGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG4uZmxhdHBpY2tyLXJDb250YWluZXIge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBhZGRpbmc6IDA7XG5cdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5mbGF0cGlja3ItdGltZSB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0b3V0bGluZTogMDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGhlaWdodDogMDtcblx0bGluZS1oZWlnaHQ6IDQwcHg7XG5cdG1heC1oZWlnaHQ6IDQwcHg7XG5cdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0ZGlzcGxheTogLXdlYmtpdC1ib3g7XG5cdGRpc3BsYXk6IC13ZWJraXQtZmxleDtcblx0ZGlzcGxheTogLW1zLWZsZXhib3g7XG5cdGRpc3BsYXk6IGZsZXg7XG59XG4uZmxhdHBpY2tyLXRpbWU6YWZ0ZXIge1xuXHRjb250ZW50OiBcIlwiO1xuXHRkaXNwbGF5OiB0YWJsZTtcblx0Y2xlYXI6IGJvdGg7XG59XG4uZmxhdHBpY2tyLXRpbWUgLm51bUlucHV0V3JhcHBlciB7XG5cdC13ZWJraXQtYm94LWZsZXg6IDE7XG5cdC13ZWJraXQtZmxleDogMTtcblx0LW1zLWZsZXg6IDE7XG5cdGZsZXg6IDE7XG5cdHdpZHRoOiA0MCU7XG5cdGhlaWdodDogNDBweDtcblx0ZmxvYXQ6IGxlZnQ7XG59XG4uZmxhdHBpY2tyLXRpbWUgLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93VXA6YWZ0ZXIge1xuXHRib3JkZXItYm90dG9tLWNvbG9yOiAjMzkzOTM5O1xufVxuLmZsYXRwaWNrci10aW1lIC5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd0Rvd246YWZ0ZXIge1xuXHRib3JkZXItdG9wLWNvbG9yOiAjMzkzOTM5O1xufVxuLmZsYXRwaWNrci10aW1lLmhhc1NlY29uZHMgLm51bUlucHV0V3JhcHBlciB7XG5cdHdpZHRoOiAyNiU7XG59XG4uZmxhdHBpY2tyLXRpbWUudGltZTI0aHIgLm51bUlucHV0V3JhcHBlciB7XG5cdHdpZHRoOiA0OSU7XG59XG4uZmxhdHBpY2tyLXRpbWUgaW5wdXQge1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0LXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuXHRib3gtc2hhZG93OiBub25lO1xuXHRib3JkZXI6IDA7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRoZWlnaHQ6IGluaGVyaXQ7XG5cdGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuXHRjb2xvcjogIzM5MzkzOTtcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5mbGF0cGlja3ItdGltZSBpbnB1dC5mbGF0cGlja3ItaG91ciB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmZsYXRwaWNrci10aW1lIGlucHV0LmZsYXRwaWNrci1taW51dGUsXG4uZmxhdHBpY2tyLXRpbWUgaW5wdXQuZmxhdHBpY2tyLXNlY29uZCB7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4uZmxhdHBpY2tyLXRpbWUgaW5wdXQ6Zm9jdXMge1xuXHRvdXRsaW5lOiAwO1xuXHRib3JkZXI6IDA7XG59XG4uZmxhdHBpY2tyLXRpbWUgLmZsYXRwaWNrci10aW1lLXNlcGFyYXRvcixcbi5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBtIHtcblx0aGVpZ2h0OiBpbmhlcml0O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGZsb2F0OiBsZWZ0O1xuXHRsaW5lLWhlaWdodDogaW5oZXJpdDtcblx0Y29sb3I6ICMzOTM5Mzk7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHR3aWR0aDogMiU7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdC13ZWJraXQtYWxpZ24tc2VsZjogY2VudGVyO1xuXHQtbXMtZmxleC1pdGVtLWFsaWduOiBjZW50ZXI7XG5cdGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cbi5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBtIHtcblx0b3V0bGluZTogMDtcblx0d2lkdGg6IDE4JTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4uZmxhdHBpY2tyLXRpbWUgaW5wdXQ6aG92ZXIsXG4uZmxhdHBpY2tyLXRpbWUgLmZsYXRwaWNrci1hbS1wbTpob3Zlcixcbi5mbGF0cGlja3ItdGltZSBpbnB1dDpmb2N1cyxcbi5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBtOmZvY3VzIHtcblx0YmFja2dyb3VuZDogI2YzZjNmMztcbn1cbi5mbGF0cGlja3ItaW5wdXRbcmVhZG9ubHldIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIGZwRmFkZUluRG93biB7XG5cdGZyb20ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcblx0fVxuXHR0byB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcblx0fVxufVxuQGtleWZyYW1lcyBmcEZhZGVJbkRvd24ge1xuXHRmcm9tIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG5cdH1cblx0dG8ge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG5cdH1cbn1cbiIsIlxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDb250ZW50XG4gKlxuICogVGhpcyBmaWxlIGlzIGp1c3QgYSBjbGVhcmluZy1ob3VzZS5cbiAqIE1ha2UgcGFydGlhbHMgKHN0YXJ0IHdpdGggYW4gdW5kZXJzY29yZSkgZm9yIGFueSBhY3R1YWwgY3NzIGNvZGUuXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyogQ29tcG9uZW50cyAqL1xuQGltcG9ydCBcImNvbXBvbmVudHMvYWxsXCI7XG5cbi8qIEJ1dHRvbnMgKi9cbkBpbXBvcnQgXCJidXR0b25zL2RlZmF1bHRcIjtcbkBpbXBvcnQgXCJidXR0b25zL3F1aWNrLXZpZXdcIjtcblxuLyogQ2FyZHMgKi9cbkBpbXBvcnQgXCJjYXJkcy9kZWZhdWx0XCI7XG5AaW1wb3J0IFwiY2FyZHMvc2luZ2xlXCI7XG5AaW1wb3J0IFwiY2FyZHMvb3JkZXJcIjtcblxuLyogTG9vcCAqL1xuQGltcG9ydCBcImxvb3AvZGVmYXVsdFwiO1xuQGltcG9ydCBcImxvb3AvcHJvZHVjdHNcIjtcbkBpbXBvcnQgXCJsb29wL25vLXJlc3VsdHNcIjtcblxuLyogU2luZ2xlICovXG5AaW1wb3J0IFwic2luZ2xlL3Byb2R1Y3RcIjtcbkBpbXBvcnQgXCJzaW5nbGUvcHJvZHVjdC1xdWljay12aWV3XCI7XG5AaW1wb3J0IFwic2luZ2xlL3Byb2R1Y3QtcmV2aWV3c1wiO1xuXG4vKiBDYXJ0ICovXG5AaW1wb3J0IFwiY2FydC9jYXJ0LXBhZ2VcIjtcbkBpbXBvcnQgXCJjYXJ0L2NhcnQtbWVudS1pdGVtXCI7XG5cbi8qIFBhZ2UgKi9cbkBpbXBvcnQgXCJwYWdlL2FkZHJlc3NcIjtcbkBpbXBvcnQgXCJwYWdlL2FjY291bnQtZGVmYXVsdFwiO1xuQGltcG9ydCBcInBhZ2UvYWNjb3VudC1sb2dpblwiO1xuQGltcG9ydCBcInBhZ2UvYWNjb3VudC1yZWdpc3RlclwiO1xuQGltcG9ydCBcInBhZ2Uvb3JkZXJzL2RlZmF1bHRcIjtcbkBpbXBvcnQgXCJwYWdlL29yZGVycy9vcmRlci1oaXN0b3J5XCI7XG5AaW1wb3J0IFwicGFnZS9vcmRlcnMvb3JkZXItZGV0YWlsXCI7XG5AaW1wb3J0IFwicGFnZS9sb3N0LXBhc3N3b3JkXCI7XG5AaW1wb3J0IFwicGFnZS9naWZ0LWNlcnRpZmljYXRlXCI7XG4iLCIvKiBDb21wb25lbnRzICovXG5AaW1wb3J0IFwidGl0bGVcIjtcbkBpbXBvcnQgXCJicmFuZFwiO1xuQGltcG9ydCBcInByaWNlXCI7XG5AaW1wb3J0IFwiZmxhZ3NcIjtcbkBpbXBvcnQgXCJkZXNjcmlwdGlvblwiO1xuQGltcG9ydCBcImdhbGxlcnlcIjtcbkBpbXBvcnQgXCJmb3JtLWNvbXBvbmVudHNcIjtcbkBpbXBvcnQgXCJvcHRpb24tZHJvcGRvd25cIjtcbkBpbXBvcnQgXCJvcHRpb24tc3dhdGNoXCI7XG5AaW1wb3J0IFwib3B0aW9uLXJlY3RhbmdsZVwiO1xuQGltcG9ydCBcIm9wdGlvbi1waWNrLWxpc3RcIjtcbkBpbXBvcnQgXCJvcHRpb24tcmFkaW9cIjtcbkBpbXBvcnQgXCJyYXRpbmdzXCI7XG5AaW1wb3J0IFwic3BlY3NcIjtcbkBpbXBvcnQgXCJyZWxhdGVkLXByb2R1Y3RzXCI7XG5AaW1wb3J0IFwicmVmaW5lcnlcIjtcbkBpbXBvcnQgXCJzdWJuYXZcIjtcbkBpbXBvcnQgXCJhbGVydFwiO1xuQGltcG9ydCBcInBhZ2luYXRpb25cIjtcbkBpbXBvcnQgXCJvcmRlci1wcm9kdWN0LXJvd1wiO1xuQGltcG9ydCBcImltYWdlc1wiO1xuIiwiLmJjLXByb2R1Y3RfX3RpdGxlIHtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC1sZyk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zcyk7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0cGFkZGluZzogMDtcblx0bWFyZ2luOiAwIDAgMThweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC14bCk7XG5cdFx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNzKTtcblx0fVxuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC14eGwpO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjE1O1xuXHR9XG59XG5cbi5iYy1wcm9kdWN0X190aXRsZS1saW5rIHtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ibGFjayk7XG5cdG9wYWNpdHk6IDE7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMge1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ibGFjayk7XG5cdFx0b3BhY2l0eTogMC44O1xuXG5cdFx0LmJjLXByb2R1Y3QtZmxhZy0tZ3JleSB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxufVxuXG4uYmMtcHJvZHVjdF9faW52ZW50b3J5IHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LW0pO1xuXHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtbCk7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1yZWd1bGFyKTtcblx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG5cdC5iYy1wcm9kdWN0LWNhcmQgJiB7XG5cdFx0Zm9udC1zaXplOiAwLjU2M2VtO1xuXHR9XG59XG5cbi5iYy1wcm9kdWN0LXNpbmdsZV9fbWV0YSxcbi5iYy1wcm9kdWN0LWNhcmQtLXNpbmdsZSB7XG5cblx0LmJjLXByb2R1Y3RfX3RpdGxlIHtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXh4bCk7XG5cdFx0bGluZS1oZWlnaHQ6IDEuMTU7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0Zm9udC1zaXplOiAxLjc1ZW07XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdGZvbnQtc2l6ZTogMmVtO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuMTI1O1xuXHRcdH1cblx0fVxuXG5cdC5iYy1wcm9kdWN0X19pbnZlbnRvcnkge1xuXHRcdGZvbnQtc2l6ZTogMC41NjNlbTtcblx0XHRtYXJnaW46IDA7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRmb250LXNpemU6IDAuNTcxZW07XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdGZvbnQtc2l6ZTogMC41ZW07XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1wcm9kdWN0LWNhcmQtLXJlbGF0ZWQge1xuXG5cdC5iYy1wcm9kdWN0X190aXRsZSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcblx0fVxufVxuIiwiLmJjLXByb2R1Y3RfX2JyYW5kIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQtbSk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1ldmVuKTtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxNXB4O1xuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHR9XG59XG5cbi5iYy1wcm9kdWN0LXNpbmdsZSxcbi5iYy1wcm9kdWN0LWNhcmQtLXNpbmdsZSB7XG5cblx0LmJjLXByb2R1Y3RfX2JyYW5kIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50KTtcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHR9XG59XG4iLCIuYmMtcHJvZHVjdF9fcHJpY2luZyB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5iYy1wcm9kdWN0X19wcmljZSB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQpO1xufVxuXG4uYmMtcHJvZHVjdF9fb3JpZ2luYWwtcHJpY2Uge1xuXHR0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcblx0bWFyZ2luLXJpZ2h0OiAxMnB4O1xuXHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWdyZXkpO1xufVxuXG4uYmMtcHJvZHVjdF9fcHJpY2UtLXNhbGUge1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ncmVlbik7XG59XG5cbi5iYy1wcm9kdWN0LWNhcmQtLXNpbmdsZSB7XG5cblx0LmJjLXByb2R1Y3RfX3ByaWNpbmcge1xuXHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDUwcHg7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1wcm9kdWN0LWNhcmQtLXNpbmdsZSxcbi5iYy1wcm9kdWN0LXNpbmdsZSB7XG5cblx0LmJjLXByb2R1Y3RfX29yaWdpbmFsLXByaWNlIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cdH1cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogUHJvZHVjdCBGbGFnc1xuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5iYy1wcm9kdWN0LWZsYWctLXNhbGUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogLTIwcHg7XG5cdHRvcDogLTIwcHg7XG5cdHdpZHRoOiA1MHB4O1xuXHRoZWlnaHQ6IDUwcHg7XG5cdGxpbmUtaGVpZ2h0OiA1MHB4O1xuXHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJjLWdyZWVuKTtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0ei1pbmRleDogMjtcbn1cblxuLmJjLXByb2R1Y3QtZmxhZy0tZ3JleSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0cGFkZGluZzogN3B4IDhweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdGZvbnQtc2l6ZTogMC41MjJlbTtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWV2ZW4pO1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuXG4uYmMtcHJvZHVjdC1zaW5nbGUsXG4uYmMtcHJvZHVjdC1jYXJkLS1zaW5nbGUge1xuXG5cdC5iYy1wcm9kdWN0LWZsYWctLXNhbGUge1xuXHRcdHdpZHRoOiA2MHB4O1xuXHRcdGhlaWdodDogNjBweDtcblx0XHRsaW5lLWhlaWdodDogNjBweDtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcblx0fVxuXG5cdC5iYy1wcm9kdWN0LWZsYWctLWdyZXkge1xuXHRcdGZvbnQtc2l6ZTogMC41ZW07XG5cdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0Zm9udC1zaXplOiAwLjQyOWVtO1xuXHRcdH1cblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0XHRmb250LXNpemU6IDAuMzc1ZW07XG5cdFx0fVxuXHR9XG59XG5cbiIsIi5iYy1wcm9kdWN0X19kZXNjcmlwdGlvbiB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQpO1xuXHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG5cdG1hcmdpbi1ib3R0b206IDMwcHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRtYXJnaW4tYm90dG9tOiA0MHB4O1xuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogNTBweDtcblx0fVxuXG5cdHA6bGFzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuIiwiLmJjLXByb2R1Y3QtZ2FsbGVyeV9faW1hZ2VzIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblx0bWF4LXdpZHRoOiAzNzBweDtcblx0bWFyZ2luOiA2MHB4IGF1dG87XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdG1hcmdpbjogMDtcblx0fVxufVxuXG4uYmMtcHJvZHVjdC1nYWxsZXJ5X19pbWFnZS1zbGlkZSB7XG5cblx0aW1nIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG4uYmMtcHJvZHVjdC1nYWxsZXJ5LS1oYXMtY2Fyb3VzZWwge1xuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4vKiBUaHVtYm5haWwgQ2Fyb3VzZWwgKi9cblxuLyogQ0FTRTogdGh1bWIgY29udHJvbGxlciBvbmx5IHdvcmtzIHdpdGggY2VudGVyZWQgc2xpZGVzLiBUaGlzIG1vdmVzIHRoYXQgY29udGFpbmVyIGJhY2sgdG8gZmx1c2ggbGVmdC4gKi9cbi5zd2lwZXItY29udGFpbmVyW2RhdGEtanM9XCJiYy1nYWxsZXJ5LXRodW1ic1wiXSAuc3dpcGVyLXdyYXBwZXIge1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgIWltcG9ydGFudDtcbn1cblxuLmJjLXByb2R1Y3QtZ2FsbGVyeV9fdGh1bWJzIHtcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuXHQuYmMtcHJvZHVjdC1nYWxsZXJ5X190aHVtYi1zbGlkZSB7XG5cdFx0Ym94LXNoYWRvdzogdW5zZXQ7XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtZ2FsbGVyeV9fdGh1bWItc2xpZGUge1xuXHR3aWR0aDogY2FsYygyNSUgLSAxMHB4KTtcblx0bWFyZ2luOiAwIDEwcHggMTBweCAwO1xuXHRwYWRkaW5nOiAwO1xuXHRib3JkZXI6IDA7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdG9wYWNpdHk6IDAuODtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0Ji5zd2lwZXItc2xpZGUtYWN0aXZlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRm9ybXNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5iYy1wcm9kdWN0LWZvcm1fX2NvbnRyb2wge1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uYmMtcHJvZHVjdC1mb3JtX19vcHRpb24tbGFiZWwsXG4uYmMtcHJvZHVjdC1mb3JtX19tb2RpZmllci1sYWJlbCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50KTtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xufVxuXG4uYmMtcHJvZHVjdC1mb3JtX19vcHRpb24tdmFyaWFudHMge1xuXHRtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uYmMtcHJvZHVjdC12YXJpYW50X19sYWJlbCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uYmMtcHJvZHVjdC1mb3JtX19vcHRpb24tdmFyaWFudHMtLWlubGluZSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cblx0LmJjLXByb2R1Y3QtdmFyaWFudF9fbGFiZWwge1xuXHRcdG1hcmdpbi1yaWdodDogMTBweDtcblxuXHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHR9XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtdmFyaWFudF9fbGFiZWwtLXRpdGxlIHtcblx0ZmxleDogMTtcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWdyZXkpO1xufVxuXG5pbnB1dC5iYy1wcm9kdWN0LXZhcmlhbnRfX3JhZGlvLS1oaWRkZW4ge1xuXHRtYXJnaW46IDA7XG59XG5cbi5iYy1wcm9kdWN0LWZvcm1fX3Byb2R1Y3QtbWVzc2FnZSB7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi5iYy1wcm9kdWN0LWZvcm1fX21lc3NhZ2Uge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cGFkZGluZzogMTJweCAxNnB4O1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXhzKTtcbn1cblxuLmJjLXByb2R1Y3QtZm9ybV9fbW9kaWZpZXItZGVzY3JpcHRpb24ge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC14cyk7XG5cdGxpbmUtaGVpZ2h0OiAxLjE1O1xuXHRwYWRkaW5nOiAwIDEwcHg7XG5cdG1hcmdpbi10b3A6IDRweDtcbn1cbiIsIi5iYy1wcm9kdWN0LWZvcm1fX29wdGlvbi1zZWxlY3Qge1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50KTtcbn1cbiIsIi5iYy1wcm9kdWN0LWZvcm1fX2NvbnRyb2wtLXN3YXRjaCB7XG5cblx0aW5wdXQuYmMtcHJvZHVjdC12YXJpYW50X19yYWRpby0taGlkZGVuIHtcblxuXHRcdCY6Y2hlY2tlZCArIC5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsIC5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsLS1zd2F0Y2gge1xuXHRcdFx0Ym9yZGVyOiAwIHNvbGlkIHZhcigtLWNvbG9yLXdoaXRlKTtcblx0XHRcdGJveC1zaGFkb3c6IDAgMCAxcHggdmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCk7XG5cdFx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWJvcmRlcik7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsLS1zd2F0Y2gge1xuXHRkaXNwbGF5OiBibG9jaztcblx0d2lkdGg6IDM2cHg7XG5cdGhlaWdodDogMzZweDtcblx0Ym9yZGVyOiA1cHggc29saWQgdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRib3gtc2hhZG93OiAwIDAgMXB4IHZhcigtLWNvbG9yLWJjLWdyZXkpO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tYm9yZGVyKTtcbn1cbiIsIi5iYy1wcm9kdWN0LWZvcm1fX2NvbnRyb2wtLXJlY3RhbmdsZSB7XG5cblx0aW5wdXQuYmMtcHJvZHVjdC12YXJpYW50X19yYWRpby0taGlkZGVuIHtcblxuXHRcdCY6Y2hlY2tlZCArIC5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsIC5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsLS1yZWN0YW5nbGUge1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCk7XG5cdFx0XHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdFx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWJvcmRlciksIHZhcigtLXRyYW5zaXRpb24tY29sb3ItZmFzdCk7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsLS1yZWN0YW5nbGUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0aGVpZ2h0OiAzNnB4O1xuXHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG5cdHBhZGRpbmc6IDVweCAxMHB4O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWNvbmNyZXRlKTtcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWdyZXkpO1xuXHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWJvcmRlciksIHZhcigtLXRyYW5zaXRpb24tY29sb3ItZmFzdCk7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cbiIsIi5iYy1wcm9kdWN0LWZvcm1fX2NvbnRyb2wtLXBpY2stbGlzdCB7XG5cblx0aW5wdXQuYmMtcHJvZHVjdC12YXJpYW50X19yYWRpby0taGlkZGVuIHtcblxuXHRcdCY6Y2hlY2tlZCArIC5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsIC5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsLS1waWNrLWxpc3Qge1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtYmx1ZS1saWdodCk7XG5cdFx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWJvcmRlcik7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsLS1waWNrLWxpc3Qge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRwYWRkaW5nOiA1cHg7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5iYy1wcm9kdWN0LXZhcmlhbnRfX2xhYmVsLS1pbWcge1xuXHRmbGV4OiAwO1xuXHRtYXJnaW4tcmlnaHQ6IDZweDtcblx0d2lkdGg6IDEwMCU7XG5cdG1heC13aWR0aDogNTBweDtcblx0aGVpZ2h0OiBhdXRvO1xufVxuIiwiLmJjLXByb2R1Y3QtZm9ybV9fY29udHJvbC0tcmFkaW8ge1xuXG5cdC5iYy1wcm9kdWN0LWZvcm1fX29wdGlvbi1sYWJlbCB7XG5cdFx0ZmxleDogMCAwIDEwMCU7XG5cdH1cblxuXHQuYmMtcHJvZHVjdC12YXJpYW50X19sYWJlbCB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0bWFyZ2luLWJvdHRvbTogNnB4O1xuXHR9XG5cblx0LmJjLXByb2R1Y3QtdmFyaWFudF9fcmFkaW8ge1xuXHRcdGZsZXg6IDAgMCBhdXRvO1xuXHR9XG5cblx0LmJjLXByb2R1Y3QtdmFyaWFudF9fbGFiZWwtLXJhZGlvIHtcblx0XHRmbGV4OiAxO1xuXHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1iYXNlKTtcblx0fVxufVxuIiwiLmJjLXNpbmdsZS1wcm9kdWN0X19yYXRpbmcge1xuXHR1bmljb2RlLWJpZGk6IGJpZGktb3ZlcnJpZGU7XG5cdGNvbG9yOiAjOGI4YjhiO1xuXHRmb250LXNpemU6IDE1cHg7XG5cdGhlaWdodDogMjVweDtcblx0d2lkdGg6IDkwcHg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZzogMDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG5cdCYtLW1hc2sge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGhlaWdodDogMjVweDtcblx0XHR6LWluZGV4OiAyO1xuXHR9XG5cblx0Ji0tdG9wIHtcblx0XHRjb2xvcjogI2ZjMDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdHdpZHRoOiA5MHB4O1xuXHRcdHotaW5kZXg6IDE7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdH1cblxuXHQmLS1ib3R0b20ge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0ei1pbmRleDogMDtcblx0XHR3aWR0aDogOTBweDtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0fVxufVxuXG4uYmMtcmF0aW5nLXN0YXIge1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlxcMjYwNVwiO1xuXHRcdGZvbnQtc2l6ZTogMTVweDtcblx0fVxufVxuXG4uYmMtc2luZ2xlLXByb2R1Y3RfX3JhdGluZy1yZXZpZXdzIHtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC14cyk7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0bWFyZ2luLWxlZnQ6IDEwcHg7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbiIsIi5iYy1wcm9kdWN0X19zcGVjLWxpc3Qge1xuXHRsaXN0LXN0eWxlOiBub25lO1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cdGxvc3QtY2VudGVyOiAxMDAlO1xufVxuXG4uYmMtcHJvZHVjdF9fc3BlYyB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQtbSk7XG5cdGxvc3Qtd2FmZmxlOiAxLzI7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGxvc3Qtd2FmZmxlOiAxLzM7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdGxvc3Qtd2FmZmxlOiAxLzQ7XG5cdH1cbn1cbiIsIi5iYy1zaW5nbGUtcHJvZHVjdF9fcmVsYXRlZCB7XG5cdHBhZGRpbmc6IDUwcHggMCAwO1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cblx0LmJjLWZvcm0uYmMtcHJvZHVjdC1mb3JtLFxuXHRidXR0b24uYmMtYnRuIHtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHR9XG59XG5cbi5iYy1zaW5nbGUtcHJvZHVjdF9fc2VjdGlvbi10aXRsZS0tcmVsYXRlZCB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQteHhsKTtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cbiIsIi5iYy1wcm9kdWN0LWFyY2hpdmVfX3JlZmluZXJ5IHtcblx0d2lkdGg6IDEwMCU7XG5cdG1hcmdpbjogNDBweCAwIDgwcHg7XG5cblx0LmJjLWZvcm0ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0XHR9XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtYXJjaGl2ZV9fc2VhcmNoIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRmbGV4OiAxIDEgMTAwJTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0ZmxleDogMCAxIDI3MHB4O1xuXHR9XG59XG5cbi5iYy1wcm9kdWN0LWFyY2hpdmVfX3NlbGVjdCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0bWFyZ2luLXRvcDogMTVweDtcblx0ZmxleDogMSAxIDEwMCU7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LXhzbWFsbCkge1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGZsZXg6IDAgMSBjYWxjKDMzLjMzMzMlIC0gMjBweCk7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdG1hcmdpbi1yaWdodDogMjBweDtcblxuXHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0fVxuXHR9XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0XHRmbGV4OiAwIDEgYXV0bztcblx0fVxufVxuXG4uYmMtcHJvZHVjdC1hcmNoaXZlX19zZWxlY3QtbGFiZWwge1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXhzKTtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdGZsZXg6IDAgMCAxMDAlO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC14c21hbGwpIHtcblx0XHRmbGV4OiAwIDAgMTUwcHg7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0ZmxleDogMCAwIDEwMCU7XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdGZsZXg6IDAgMCBhdXRvO1xuXHR9XG59XG5cbi5iYy1wcm9kdWN0LWFyY2hpdmVfX3NlbGVjdC1maWVsZCB7XG5cdGZsZXg6IDAgMCAxMDAlO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC14c21hbGwpIHtcblx0XHRmbGV4OiAxIDEgMTAwJTtcblx0fVxuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmbGV4OiAwIDAgMTAwJTtcblx0fVxuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0ZmxleDogMCAxIGF1dG87XG5cdH1cblxuXHQuYmMtZm9ybSAmIHtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXhzKTtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtZ3JleSk7XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtYXJjaGl2ZV9fc2VhcmNoLXN1Ym1pdCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDA7XG5cdHRvcDogMDtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cdGhlaWdodDogMTAwJTtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudCk7XG5cblx0Ji5iYy1idG4uYmMtYnRuLS1zbWFsbCB7XG5cdFx0bWF4LXdpZHRoOiBub25lO1xuXHRcdHdpZHRoOiBhdXRvO1xuXHR9XG59XG4iLCIuYmMtc3VibmF2X19saXN0IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtc21hbGwpIHtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHR9XG59XG5cbi5iYy1zdWJuYXZfX2xpc3QtaXRlbSB7XG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdHBhZGRpbmc6IDA7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LXNtYWxsKSB7XG5cblx0XHQrIC5iYy1zdWJuYXZfX2xpc3QtaXRlbSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMzBweDtcblx0XHR9XG5cdH1cblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcblx0fVxufVxuXG4uYmMtc3VibmF2X19saW5rIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmJjLXN1Ym5hdl9fbGlzdC1pdGVtLS1jdXJyZW50IC5iYy1zdWJuYXZfX2xpbmsge1xuXHRjb2xvcjogY3VycmVudENvbG9yO1xufVxuIiwiLmJjLWFsZXJ0IHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWxlcnQtYmctZGVmYXVsdCk7XG5cdGNvbG9yOiB2YXIoLS1hbGVydC1jb2xvcik7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQpO1xuXHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG5cdHBhZGRpbmc6IDEycHggMTZweDtcblx0bWFyZ2luLWJvdHRvbTogNDBweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogNjBweDtcblx0fVxuXG5cdCYtLXN1Y2Nlc3Mge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFsZXJ0LXN1Y2Nlc3MpO1xuXHR9XG5cblx0Ji0tZXJyb3Ige1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFsZXJ0LWVycm9yKTtcblx0fVxufVxuXG4uYmMtYWxlcnQtZ3JvdXAge1xuXG5cdC5iYy1hbGVydDpub3QoOmxhc3QtY2hpbGQpIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHR9XG5cblx0Ji0taW5mbyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWxlcnQtYmctaW5mbyk7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWJsYWNrKTtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LW0pO1xuXG5cdFx0LmJjLXByb2R1Y3QtZm9ybSAmIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0fVxuXHR9XG5cblx0Ji0tZXJyb3Ige1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXHR9XG5cblx0Ji5iYy1mYWRlLWluLWFsZXJ0LWdyb3VwIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHR9XG59XG5cbi5iYy1mb3JtX19lcnJvci1tZXNzYWdlIHtcblx0Y29sb3I6IHZhcigtLWFsZXJ0LWVycm9yKTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbi10b3A6IDEwcHg7XG5cdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1yZWd1bGFyKTtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC1zKTtcbn1cbiIsIi5iYy1sb2FkLWl0ZW1zIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYmMtbG9hZC1pdGVtcy1jb250YWluZXItLWhhcy1wYWdlcyB7XG5cdHBhZGRpbmctYm90dG9tOiA0MHB4O1xuXG5cdD4gKjpub3QoLmJjLWxvYWQtaXRlbXNfX3RyaWdnZXIpIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tb3BhY2l0eSk7XG5cblx0XHQmLml0ZW0taW5pdGlhbGl6ZWQge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cbn1cblxuLmJjLWxvYWQtaXRlbXNfX2xvYWRlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Ym90dG9tOiAzMHB4O1xuXHRsZWZ0OiA1MCU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0b3BhY2l0eTogMDtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1vcGFjaXR5KTtcblxuXHQmLmFjdGl2ZSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG4uYmMtbG9hZC1tb3JlLWl0ZW1zLFxuLmJjLWxvYWQtaXRlbXNfX3RyaWdnZXIge1xuXHR3aWR0aDogMTAwJTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYmMtbG9hZC1tb3JlLWl0ZW1zIHtcblx0bWFyZ2luLXRvcDogMjBweDtcbn1cblxuLmJjLWxvYWQtaXRlbXNfX3RyaWdnZXItYnRuLFxuLmJjLW5vLXJlc3VsdHNfX2J1dHRvbiB7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQtbSk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1ldmVuKTtcblx0b3V0bGluZTogbm9uZTtcblx0Ym9yZGVyOiAwO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0JltkaXNhYmxlZF0ge1xuXHRcdG9wYWNpdHk6IDAuNTtcblx0XHRjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyB7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLWxpbmstaG92ZXIpO1xuXG5cdFx0JltkaXNhYmxlZF0ge1xuXHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0XHRjb2xvcjogdmFyKC0tY29sb3ItbGluay1ob3Zlcik7XG5cdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0fVxuXHR9XG5cblx0LmJjLWljb24ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbi10b3A6IDE0cHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGZvbnQtc2l6ZTogMThweDtcblx0fVxufVxuXG4vKiBFcnJvciBIYW5kbGluZyAqL1xuLmJjLXBhZ2luYXRpb25fX2Vycm9yLW1lc3NhZ2Uge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC1tKTtcbn1cbiIsIi5iYy1vcmRlci1wcm9kdWN0LXJvdyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdH1cbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19pbWFnZSB7XG5cdGZsZXg6IDAgMCAxMDBweDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXHRtYXgtd2lkdGg6IDEwMHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRtYXJnaW46IDAgMjBweCAwIDA7XG5cdH1cblxuXHRpbWcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogYXV0bztcblx0fVxufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX2JvZHkge1xuXHRmbGV4OiAxIDEgYXV0bztcblx0bWFyZ2luLWJvdHRvbTogMTJweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bWFyZ2luOiAwIDIwcHggMCAwO1xuXHRcdG1heC13aWR0aDogNTUwcHg7XG5cdH1cbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19oZWFkZXIge1xuXG5cdC5iYy1vcmRlci1wcm9kdWN0LXJvd19fdGl0bGUge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQteGwpO1xuXHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zcyk7XG5cdFx0bWFyZ2luOiAwIDEwcHggMCAwO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQteHhsKTtcblx0XHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zKTtcblx0XHR9XG5cdH1cblxuXHQuYmMtcHJvZHVjdC1mbGFnLS1ncmV5IHtcblx0XHRtYXJnaW4tYm90dG9tOiA1cHg7XG5cdH1cbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19icmFuZCxcbi5iYy1vcmRlci1wcm9kdWN0LXJvd19fdW5pdC1wcmljZSxcbi5iYy1vcmRlci1wcm9kdWN0LXJvd19fb3B0aW9uIHtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudCk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1tKTtcblx0bWFyZ2luLWJvdHRvbTogNHB4O1xufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX2JyYW5kIHtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX29wdGlvbnMtbGlzdCxcbi5iYy1vcmRlci1wcm9kdWN0LXJvd19fb3B0aW9uIHtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX29wdGlvbnMtbGlzdCB7XG5cdG1hcmdpbi10b3A6IDhweDtcbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19vcHRpb24ge1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtZ3JleSk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQteHMpO1xuXHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG5cdG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5iYy1vcmRlci1wcm9kdWN0LXJvd19fb3B0aW9uLWxhYmVsIHtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbn1cblxuLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19vcHRpb24tdmFsdWUge1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbGlnaHQpO1xufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX3N0YXR1cyB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQpO1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1tKTtcblx0bWFyZ2luLWJvdHRvbTogMTJweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0YWxpZ24tc2VsZjogY2VudGVyO1xuXHRcdGZsZXg6IDAgMCAxNTBweDtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXhsKTtcblx0XHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc3MpO1xuXHRcdG1hcmdpbjogMCAwIDAgYXV0bztcblx0fVxufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX3F1YW50aXR5IHtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC14cyk7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO1xuXHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmbGV4OiAwIDAgMTAwcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0fVxufVxuXG4uYmMtb3JkZXItcHJvZHVjdC1yb3dfX3RvdGFsIHtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudCk7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LW0pO1xuXHRtYXJnaW4tYm90dG9tOiAyNnB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmbGV4OiAwIDAgMTUwcHg7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC14bCk7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuIiwiLmJjLW9yZGVyLXByb2R1Y3Qtcm93X19pbWFnZSxcbi5iYy1jYXJ0LWl0ZW0taW1hZ2Uge1xuXG5cdC5iYy1wcm9kdWN0X190aHVtYm5haWwtbGluayB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1vcGFjaXR5KTtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRvcGFjaXR5OiAwLjg7XG5cdFx0fVxuXHR9XG59XG4iLCIuYmMtYnRuLFxuYnV0dG9uLmJjLWJ0bixcbmEuYmMtYnRuLFxuLmVudHJ5LWNvbnRlbnQgLmJjLWJ0bixcbi5lbnRyeS1jb250ZW50IGJ1dHRvbi5iYy1idG4sXG4uZW50cnktY29udGVudCBhLmJjLWJ0bixcbi5iYy1hY2NvdW50LWxvZ2luX19mb3JtIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuXHR3aWR0aDogMTAwJTtcblx0cGFkZGluZzogMTVweCAyMHB4O1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuXHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtbCk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQtcyk7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRib3gtc2hhZG93OiBub25lO1xuXHRvcGFjaXR5OiAxO1xuXHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdG1heC13aWR0aDogMjcwcHg7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzIHtcblx0XHRvcGFjaXR5OiAwLjk7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdH1cblxuXHQmW2Rpc2FibGVkXSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmMtZ3JleS1tZWRpdW0pO1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdFx0cGFkZGluZzogMTVweCAyMHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1sKTtcblx0XHRmb250LWZhbWlseTogc2Fucy1zZXJpZjtcblx0XHRvcGFjaXR5OiAwLjY7XG5cdFx0Y3Vyc29yOiBub3QtYWxsb3dlZDtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYy1ncmV5LW1lZGl1bSk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRcdFx0cGFkZGluZzogMTVweCAyMHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWwpO1xuXHRcdFx0Zm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG5cdFx0XHRvcGFjaXR5OiAwLjY7XG5cdFx0fVxuXHR9XG5cblx0Ji0tc21hbGwge1xuXHRcdHBhZGRpbmc6IDhweCAxNnB4O1xuXHR9XG5cblx0Ji0taW52ZXJzZSB7XG5cdFx0cGFkZGluZzogMTFweCAyMHB4O1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyOiA0cHggc29saWQ7XG5cdH1cbn1cbiIsIi5iYy1xdWlja3ZpZXctdHJpZ2dlcixcbmJ1dHRvbi5iYy1xdWlja3ZpZXctdHJpZ2dlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGNvbG9yOiBpbmhlcml0O1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0cGFkZGluZzogMDtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzIHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLW9wYWNpdHkpO1xuXG5cdFx0LmJjLXF1aWNrdmlldy10cmlnZ2VyLS1ob3ZlciB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxufVxuXG4uYmMtcXVpY2t2aWV3LXRyaWdnZXItLWhvdmVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdG9wYWNpdHk6IDA7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI0LCAyMjcsIDIzMywgMC43Mik7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tb3BhY2l0eSk7XG59XG5cbi5iYy1xdWlja3ZpZXctdHJpZ2dlci0taG92ZXItbGFiZWwge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDUwJTtcblx0dG9wOiA1MCU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG5cdHdpZHRoOiA3MCU7XG5cdHBhZGRpbmc6IDEycHggMTRweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LW0pO1xuXHRib3JkZXItcmFkaXVzOiAyMHB4O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4iLCIuYmMtcHJvZHVjdC1jYXJkIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cblx0LmJjLXF1aWNrdmlldy10cmlnZ2VyIHtcblx0XHRmbGV4OiAwIDAgYXV0bztcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHR9XG5cblx0LmJjLXByb2R1Y3RfX2FjdGlvbnMge1xuXHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGZsZXg6IDAgMCBhdXRvO1xuXHR9XG5cblx0LmJjLWJ0bixcblx0YS5iYy1idG4sXG5cdGJ1dHRvbi5iYy1idG4ge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0fVxufVxuXG4uYmMtcHJvZHVjdC1jYXJkX19mZWF0dXJlZC1pbWFnZSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEwMCU7XG5cblx0aW1nIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdH1cbn1cblxuLmJjLXByb2R1Y3RfX21ldGEge1xuXHRwYWRkaW5nOiAyNXB4IDAgNTBweDtcblx0d2lkdGg6IDEwMCU7XG5cdHdvcmQtd3JhcDogYnJlYWstd29yZDtcblx0aHlwaGVuczogYXV0bztcblx0ZmxleDogMSAxIGF1dG87XG59XG4iLCIuYmMtcHJvZHVjdC1jYXJkLS1zaW5nbGUge1xuXHRtYXgtd2lkdGg6IG5vbmU7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRtYXJnaW46IDYwcHggMDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdH1cblxuXHQuYmMtcHJvZHVjdF9fZ2FsbGVyeSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG9yZGVyOiAyO1xuXHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0d2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0XHRtYXgtd2lkdGg6IDM3MHB4O1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHRvcDogMDtcblx0XHRcdG9yZGVyOiAxO1xuXHRcdH1cblx0fVxuXG5cdC5iYy1wcm9kdWN0X19tZXRhIHtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdG9yZGVyOiAxO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdGZsZXg6IDAgMCBhdXRvO1xuXHRcdFx0b3JkZXI6IDI7XG5cdFx0XHRhbGlnbi1zZWxmOiBmbGV4LWVuZDtcblx0XHRcdHdpZHRoOiBjYWxjKDUwJSAtIDMwcHgpO1xuXHRcdH1cblx0fVxuXG5cdC5iYy1wcm9kdWN0X19hY3Rpb25zIHtcblx0XHRvcmRlcjogMztcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRcdHdpZHRoOiBjYWxjKDUwJSArIDMwcHgpO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiA2MHB4O1xuXHRcdH1cblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0XHRmbGV4OiAwIDAgYXV0bztcblx0XHRcdG9yZGVyOiAzO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdFx0d2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XG5cdFx0fVxuXHR9XG5cblx0LmJjLWJ0biB7XG5cdFx0bWFyZ2luLXRvcDogNDBweDtcblx0fVxufVxuIiwiLmJjLW9yZGVyLWNhcmRfX2JvZHkge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdH1cbn1cblxuLmJjLW9yZGVyLWNhcmRfX2ZlYXR1cmVkLWltYWdlIHtcblx0ZmxleDogMCAwIDEwMHB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1heC13aWR0aDogMTAwcHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdG1hcmdpbi1yaWdodDogMjBweDtcblx0fVxuXG5cdGltZyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHR9XG5cblx0LmJjLW9yZGVyLWNhcmRfX2ZlYXR1cmVkLWltYWdlLWxpbmsge1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRvcGFjaXR5OiAwLjg7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1vcmRlci1jYXJkX19tZXRhIHtcblx0ZmxleDogMSAxIGF1dG87XG5cblx0Ji1pbm5lciB7XG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAyMHB4O1xuXHRcdFx0bWF4LXdpZHRoOiA1NTBweDtcblx0XHR9XG5cdH1cbn1cblxuLmJjLW9yZGVyLWNhcmRfX3RpdGxlIHtcblx0bWFyZ2luLWJvdHRvbTogMTJweDtcblxuXHQuYmMtb3JkZXItY2FyZF9fb3JkZXItdGl0bGUge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQteGwpO1xuXHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zcyk7XG5cdFx0bWFyZ2luOiAwO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQteHhsKTtcblx0XHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zKTtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQteHhsKTtcblx0XHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zKTtcblx0XHR9XG5cdH1cbn1cblxuLmJjLW9yZGVyLWNhcmRfX29yZGVyLXRpdGxlIHtcblxuXHQuYmMtb3JkZXItY2FyZF9fdGl0bGUtbGluayB7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0Y29sb3I6IGN1cnJlbnRDb2xvcjtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXG5cdFx0Jjpob3Zlcixcblx0XHQmOmZvY3VzIHtcblx0XHRcdGNvbG9yOiBjdXJyZW50Q29sb3I7XG5cdFx0XHRvcGFjaXR5OiAwLjg7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1vcmRlci1jYXJkX190b3RhbCB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQpO1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1tKTtcblx0bWFyZ2luLWJvdHRvbTogMjZweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC14bCk7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0fVxufVxuXG4uYmMtb3JkZXItY2FyZC1tZXRhX19saXN0IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRtYXJnaW4tYm90dG9tOiA2cHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdH1cbn1cblxuLmJjLW9yZGVyLWNhcmQtbWV0YV9fbGlzdC1pdGVtIHtcblx0d2lkdGg6IDUwJTtcblx0bWFyZ2luLWJvdHRvbTogMTZweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHR3aWR0aDogYXV0bztcblxuXHRcdCsgLmJjLW9yZGVyLWNhcmQtbWV0YV9fbGlzdC1pdGVtIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAzMHB4O1xuXHRcdH1cblx0fVxufVxuXG4uYmMtb3JkZXItY2FyZF9fc3RhdHVzIHtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudCk7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LW0pO1xuXHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRhbGlnbi1zZWxmOiBjZW50ZXI7XG5cdFx0ZmxleDogMCAwIDE1MHB4O1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQteGwpO1xuXHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zcyk7XG5cdFx0bWFyZ2luOiAwIDAgMCBhdXRvO1xuXHR9XG59XG4iLCIuYmMtcHJvZHVjdC1ncmlkIHtcblx0d2lkdGg6IDEwMCU7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0cGFkZGluZzogNDBweCAwO1xuXG5cdD4gLmJjLXByb2R1Y3QtY2FyZCB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWF4LXdpZHRoOiAzNzBweDtcblx0XHRtYXJnaW46IDAgYXV0byA2MHB4O1xuXHR9XG5cblx0Ji0tMmNvbCA+IC5iYy1wcm9kdWN0LWNhcmQge1xuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRcdGxvc3QtY29sdW1uOiAxLzIgMiAzMHB4O1xuXHRcdH1cblx0fVxuXG5cdCYtLTNjb2wgPiAuYmMtcHJvZHVjdC1jYXJkIHtcblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRsb3N0LWNvbHVtbjogMS8yIDIgMzBweDtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0bG9zdC1jb2x1bW46IDEvMyAzIDMwcHg7XG5cdFx0XHRsb3N0LWNvbHVtbi1yb3VuZGVyOiA5OS45ODtcblx0XHR9XG5cdH1cblxuXHQmLS00Y29sID4gLmJjLXByb2R1Y3QtY2FyZCB7XG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LXhzbWFsbCkge1xuXHRcdFx0bG9zdC1jb2x1bW46IDEvMiAyIDMwcHg7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LXNtYWxsKSB7XG5cdFx0XHRsb3N0LWNvbHVtbjogMS8zIDMgMzBweDtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0bG9zdC1jb2x1bW46IDEvNCA0IDMwcHg7XG5cdFx0XHRsb3N0LWNvbHVtbi1yb3VuZGVyOiA5OS45ODtcblx0XHR9XG5cdH1cblxuXHQmLS01Y29sID4gLmJjLXByb2R1Y3QtY2FyZCB7XG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LXhzbWFsbCkge1xuXHRcdFx0bG9zdC1jb2x1bW46IDEvMiAyIDMwcHg7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LXNtYWxsKSB7XG5cdFx0XHRsb3N0LWNvbHVtbjogMS8zIDMgMzBweDtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0bG9zdC1jb2x1bW46IDEvNCA0IDMwcHg7XG5cdFx0XHRsb3N0LWNvbHVtbi1yb3VuZGVyOiA5OS45ODtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRcdGxvc3QtY29sdW1uOiAxLzUgNSAzMHB4O1xuXHRcdFx0bG9zdC1jb2x1bW4tcm91bmRlcjogOTkuOTg7XG5cdFx0fVxuXHR9XG5cblx0Ji0tcmVsYXRlZCB7XG5cdFx0cGFkZGluZy1ib3R0b206IDA7XG5cdH1cbn1cbiIsIi8qIFByb2R1Y3QgTG9vcCBBcmNoaXZlICovXG4ucG9zdC10eXBlLWFyY2hpdmUtYmlnY29tbWVyY2VfcHJvZHVjdCB7XG5cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogTG9vcDogTm8gUmVzdWx0c1xuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5iYy1uby1yZXN1bHRzIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmJjLW5vLXJlc3VsdHNfX21lc3NhZ2Uge1xuXHRmb250LXNpemU6IDEuMzc1ZW07XG5cdGxpbmUtaGVpZ2h0OiAxLjE7XG59XG5cbi5iYy1uby1yZXN1bHRzX19idXR0b24ge1xuXHRtYXJnaW46IDAgYXV0bztcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudCk7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbiIsIi5iYy1wcm9kdWN0LXNpbmdsZSB7XG5cdG1heC13aWR0aDogOTcwcHg7XG5cdHBhZGRpbmc6IDAgMjBweDtcblx0bWFyZ2luOiAwIGF1dG87XG5cblx0LmJjLXByb2R1Y3Qtc2luZ2xlX190b3Age1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdFx0fVxuXHR9XG5cblx0LmJjLXByb2R1Y3RfX2dhbGxlcnkge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRvcmRlcjogMjtcblx0XHRmbGV4OiAxIDEgMTAwJTtcblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRcdG9yZGVyOiAxO1xuXHRcdFx0ZmxleDogMCAwIDM3MHB4O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAzMHB4O1xuXHRcdH1cblx0fVxuXG5cdC5iYy1wcm9kdWN0LXNpbmdsZV9fbWV0YSB7XG5cdFx0ZmxleDogMSAxIDEwMCU7XG5cdFx0b3JkZXI6IDE7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRvcmRlcjogMjtcblx0XHRcdGZsZXg6IDAgMCBhdXRvO1xuXHRcdFx0d2lkdGg6IGNhbGMoNTAlIC0gNjBweCk7XG5cdFx0fVxuXHR9XG5cblx0LmJjLXByb2R1Y3RfX3NrdSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWFyZ2luLXRvcDogMjBweDtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LW0pO1xuXG5cdFx0LmJjLXByb2R1Y3Qtc2luZ2xlX19tZXRhLWxhYmVsIHtcblx0XHRcdGZvbnQtc2l6ZTogMS4xNDNlbTtcblx0XHR9XG5cdH1cblxuXHQuYmMtcHJvZHVjdC1zaW5nbGVfX21ldGEtbGFiZWwge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQpO1xuXHRcdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0fVxuXG5cdC5iYy1wcm9kdWN0LWZvcm0ge1xuXHRcdG1hcmdpbi10b3A6IDQwcHg7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLW9wYWNpdHkpO1xuXG5cdFx0Ji5iYy1wcm9kdWN0X19pcy1zZXR0aW5nLW9wdGlvbnMge1xuXHRcdFx0b3BhY2l0eTogMC41O1xuXHRcdH1cblx0fVxuXG5cdC5iYy1idG4ge1xuXHRcdG1hcmdpbi10b3A6IDQwcHg7XG5cdH1cblxuXHQuYmMtc2luZ2xlLXByb2R1Y3RfX2Rlc2NyaXB0aW9uIHtcblx0XHRtYXJnaW4tdG9wOiA2MHB4O1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHBhZGRpbmc6IDUwcHggMDtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdH1cblxuXHQuYmMtc2luZ2xlLXByb2R1Y3RfX3NwZWNpZmljYXRpb25zIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRwYWRkaW5nLWJvdHRvbTogNTBweDtcblx0fVxuXG5cdC5iYy1zaW5nbGUtcHJvZHVjdF9fc2VjdGlvbi10aXRsZSB7XG5cdFx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudCk7XG5cdH1cblxuXHQuYmMtc2luZ2xlLXByb2R1Y3RfX3NlY3Rpb24tdGl0bGUtLXJlbGF0ZWQge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQteHhsKTtcblx0fVxuXG5cdC5iYy1zaW5nbGUtcHJvZHVjdF9fcmF0aW5ncyB7XG5cdFx0bWFyZ2luLXRvcDogMjBweDtcblx0fVxufVxuXG4uYmMtcHJvZHVjdC1mb3JtX19xdWFudGl0eSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5iYy1wcm9kdWN0LWZvcm1fX3F1YW50aXR5LWxhYmVsIHtcblx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuXG5pbnB1dC5iYy1wcm9kdWN0LWZvcm1fX3F1YW50aXR5LWlucHV0W3R5cGU9bnVtYmVyXSB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXdoaXRlKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQtcyk7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0cGFkZGluZy1sZWZ0OiA2cHg7XG5cdHBhZGRpbmctcmlnaHQ6IDZweDtcblx0d2lkdGg6IDcwcHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQpO1xuXHR9XG5cblx0Jjpmb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHR9XG59XG4iLCIuYmMtcHJvZHVjdC1xdWljay12aWV3X19vdmVybGF5IHtcblx0cG9zaXRpb246IGZpeGVkO1xuXHR0b3A6IDA7XG5cdHJpZ2h0OiAwO1xuXHRoZWlnaHQ6IDEwMHZoO1xuXHR3aWR0aDogMTAwdnc7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJsYWNrLWEtNzApO1xufVxuXG4uYmMtcHJvZHVjdC1xdWljay12aWV3X193cmFwcGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdHJpZ2h0OiAwO1xuXHRoZWlnaHQ6IDEwMHZoO1xuXHR3aWR0aDogMTAwdnc7XG5cdHotaW5kZXg6IDUwO1xuXG5cdCZbYXJpYS1oaWRkZW49J3RydWUnXSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG5idXR0b24uYmMtcHJvZHVjdC1xdWljay12aWV3X19jbG9zZS1idXR0b24ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAwO1xuXHR0b3A6IDA7XG5cdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ibGFjayk7XG5cdGZvbnQtc2l6ZTogMzBweDtcblx0ei1pbmRleDogMjtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdHBhZGRpbmc6IDEwcHg7XG5cdG9wYWNpdHk6IDAuNjU7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXHR3aWR0aDogYXV0bztcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHR9XG59XG5cbi5iYy1wcm9kdWN0LXF1aWNrLXZpZXdfX2NvbnRlbnQge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IGNhbGMoMTAwdncgLSAyMCUpO1xuXHRoZWlnaHQ6IGF1dG87XG5cdGxlZnQ6IDUwJTtcblx0dG9wOiAwO1xuXHRtYXJnaW46IDQwcHggMDtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXHRvdmVyZmxvdy15OiBzY3JvbGw7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRoZWlnaHQ6IGNhbGMoMTAwdmggLSAyMCUpO1xuXHRcdG1heC13aWR0aDogMTE0MHB4O1xuXHRcdG1heC1oZWlnaHQ6IDY2MHB4O1xuXHRcdG1hcmdpbjogMDtcblx0XHR0b3A6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuXG5cdFx0LmJyb3dzZXItaWUgJiB7XG5cdFx0XHRtaW4taGVpZ2h0OiA2NjBweDtcblx0XHR9XG5cdH1cblxuXHQqIHtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR9XG5cblx0PiBkaXYge1xuXHRcdGhlaWdodDogMTAwJTtcblx0fVxufVxuXG4uYmMtcHJvZHVjdC1xdWljay12aWV3X19jb250ZW50LWlubmVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nOiA2MHB4O1xuXG5cdC5iYy1wcm9kdWN0LWNhcmQge1xuXHRcdG1hcmdpbjogMDtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdH1cblxuXHQuYmMtcHJvZHVjdF9fZ2FsbGVyeSB7XG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdGhlaWdodDogYXV0bztcblx0XHRcdHBhZGRpbmctYm90dG9tOiA2MHB4O1xuXHRcdFx0ZmxleDogMSAxIDEwMCU7XG5cdFx0fVxuXHR9XG5cblx0LmJjLXByb2R1Y3RfX21ldGEge1xuXHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0d2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWxhcmdlKSB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0fVxuXHR9XG5cblx0LmJjLXByb2R1Y3RfX3ByaWNpbmcge1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdH1cblxuXHQuYmMtc2luZ2xlLXByb2R1Y3RfX3JhdGluZ3Mge1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdH1cblxuXHQuYmMtcHJvZHVjdC1zaW5nbGVfX21ldGEtbGFiZWwge1xuXHRcdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0fVxuXG5cdC5iYy1wcm9kdWN0X19kZXNjcmlwdGlvbiB7XG5cdFx0b3JkZXI6IDQ7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWFyZ2luLXRvcDogNDBweDtcblx0XHRwYWRkaW5nLXRvcDogMzBweDtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0d2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XG5cdFx0XHRhbGlnbi1zZWxmOiBmbGV4LWVuZDtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRcdGZsZXg6IDAgMCBhdXRvO1xuXHRcdFx0b3JkZXI6IDQ7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0XHR3aWR0aDogY2FsYyg1MCUgLSAzMHB4KTtcblx0XHR9XG5cdH1cbn1cbiIsIi5iYy1zaW5nbGUtcHJvZHVjdF9fcmV2aWV3cyB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0cGFkZGluZy10b3A6IDM2cHg7XG5cdHBhZGRpbmctYm90dG9tOiAzNnB4O1xuXG5cdC5iYy1hbGVydC0tc3VjY2VzcyB7XG5cdFx0bWFyZ2luLXRvcDogMjRweDtcblx0XHRtYXJnaW4tYm90dG9tOiAyNHB4O1xuXHR9XG59XG5cbi8qIFByb2R1Y3QgUmV2aWV3cyBIZWFkZXIgKi9cbi5iYy1wcm9kdWN0LXJldmlld3NfX3RpdGxlIHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cdG1hcmdpbi1yaWdodDogMTVweDtcbn1cblxuLmJjLXByb2R1Y3QtcmV2aWV3c19fcmF0aW5ncy10b3RhbCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKiBQcm9kdWN0IFJldmlldyBGb3JtICovXG4uYmMtcHJvZHVjdC1yZXZpZXctZm9ybS13cmFwcGVyIHtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXdoaXRlKTtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXdoaXRlKTtcblx0bWFyZ2luLXRvcDogMDtcblx0cGFkZGluZzogMDtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cblx0Ji5iYy1wcm9kdWN0LXJldmlldy1mb3JtLS1hY3RpdmUge1xuXHRcdGJvcmRlci10b3AtY29sb3I6IHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRcdGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRcdG1hcmdpbi10b3A6IDM4cHg7XG5cdFx0cGFkZGluZzogNDBweCAwO1xuXHRcdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0cGFkZGluZzogNTBweCAwO1xuXHRcdH1cblx0fVxufVxuXG4uYmMtcHJvZHVjdC1yZXZpZXctZm9ybSB7XG5cdGhlaWdodDogMTAwJTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0bWF4LWhlaWdodDogMDtcblxuXHQuYmMtcHJvZHVjdC1yZXZpZXctZm9ybS0tYWN0aXZlICYge1xuXHRcdG1heC1oZWlnaHQ6IDIwMDBweDtcblx0fVxuXG5cdC5iYy1idG4tLXJldmlldyB7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cblx0LmJjLWZvcm0ge1xuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRcdHdpZHRoOiA3MCU7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1mb3JtIC5iYy1mb3JtX19hY3Rpb25zLS1yZXZpZXcge1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi5iYy1wcm9kdWN0LXJldmlld19fd3JpdGUtYnRuLFxuLmJjLXByb2R1Y3QtcmV2aWV3X19jYW5jZWwtd3JpdGUtYnRuLFxuLmJjLXNpbmdsZS1wcm9kdWN0X19yZXZpZXdzLWFuY2hvciB7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRib3JkZXI6IDA7XG5cdHBhZGRpbmc6IDA7XG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRtYXJnaW46IDA7XG5cdG9wYWNpdHk6IDE7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMge1xuXHRcdG9wYWNpdHk6IDAuOTtcblx0XHRiYWNrZ3JvdW5kOiB1bnNldDtcblx0XHRib3JkZXI6IDA7XG5cdH1cblxuXHQmOmRpc2FibGVkIHtcblx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0b3BhY2l0eTogMTtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1wcm9kdWN0LXJldmlld19fd3JpdGUtYnRuIHtcblxuXHQuYmMtcHJvZHVjdC1yZXZpZXctZm9ybS0tYWN0aXZlICYge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLmJjLXByb2R1Y3QtcmV2aWV3X19jYW5jZWwtd3JpdGUtYnRuIHtcblx0ZGlzcGxheTogbm9uZTtcblxuXHQuYmMtcHJvZHVjdC1yZXZpZXctZm9ybS0tYWN0aXZlICYge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxufVxuXG4vKiBQcm9kdWN0IFJldmlld3MgKi9cbi5iYy1wcm9kdWN0LXJldmlldy1saXN0IHtcblx0bWFyZ2luLXRvcDogNDJweDtcbn1cblxuLmJjLXByb2R1Y3QtcmV2aWV3IHtcblx0bWFyZ2luLWJvdHRvbTogNDJweDtcbn1cblxuLmJjLXByb2R1Y3QtcmV2aWV3X190aXRsZSB7XG5cdGRpc3BsYXk6IGlubGluZTtcblx0bWFyZ2luLXJpZ2h0OiAxMnB4O1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYmMtcHJvZHVjdC1yZXZpZXdfX2hlYWRlciB7XG5cdG1hcmdpbi1ib3R0b206IDZweDtcbn1cblxuLmJjLXByb2R1Y3QtcmV2aWV3X19yYXRpbmcge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5iYy1wcm9kdWN0LXJldmlld19fbWV0YSB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQtbSk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zKTtcblx0bWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuLmJjLXByb2R1Y3QtcmV2aWV3X19jb250ZW50IHtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudCk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1iYXNlKTtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0d2lkdGg6IDcwJTtcblx0fVxufVxuIiwiLmJjLWNhcnQge1xuXHRsb3N0LWNlbnRlcjogMTE0MHB4O1xuXHRvcGFjaXR5OiAxO1xuXHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblxuXHQmLmJjLXVwZGF0aW5nLWNhcnQge1xuXHRcdG9wYWNpdHk6IDAuNDtcblx0fVxufVxuXG4uYmMtY2FydF9fZW1wdHkge1xuXHR3aWR0aDogMTAwJTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0cGFkZGluZzogNDBweCAwO1xufVxuXG4uYmMtY2FydC1oZWFkZXIge1xuXHR3aWR0aDogMTAwJTtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cblx0PiBkaXYge1xuXHRcdHBhZGRpbmc6IDIwcHggMDtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LW0pO1xuXHRcdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRcdHBhZGRpbmc6IDQwcHggMDtcblx0XHR9XG5cdH1cblxuXHQmX19pdGVtIHtcblx0XHRmbGV4OiAxIDEgYXV0bztcblx0fVxuXG5cdCZfX3F0eSB7XG5cdFx0ZmxleDogMCAwIDQycHg7XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRmbGV4OiAwIDAgNzBweDtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdFx0ZmxleDogMCAwIDEyMHB4O1xuXHRcdH1cblx0fVxuXG5cdCZfX3ByaWNlIHtcblx0XHRmbGV4OiAwIDAgNzBweDtcblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0XHRmbGV4OiAwIDAgMTIwcHg7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1jYXJ0LWJvZHkge1xuXHR3aWR0aDogMTAwJTtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiB3cmFwO1xufVxuXG4uYmMtY2FydC1pdGVtIHtcblx0bG9zdC1jb2x1bW46IDEvMSAxIDA7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0cGFkZGluZzogMzBweCAwO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50KTtcblx0fVxuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0cGFkZGluZzogNDRweCAwO1xuXHR9XG5cblx0JjpsYXN0LWNoaWxkIHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdH1cbn1cblxuLmJjLWNhcnQtaXRlbV9fcmVtb3ZlLWJ1dHRvbiB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0Y29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXh4cyk7XG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRwYWRkaW5nOiA1cHggMDtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50KTtcblx0XHRtYXJnaW46IDAgYXV0bztcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMge1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ncmV5LW1lZGl1bSk7XG5cblx0XHQmW2Rpc2FibGVkXSB7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdFx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWdyZXktbWVkaXVtKTtcblx0XHRcdHBhZGRpbmc6IDVweDtcblx0XHRcdG9wYWNpdHk6IDAuNDtcblx0XHR9XG5cdH1cbn1cblxuLmJjLWNhcnQtaXRlbS1pbWFnZSB7XG5cdGZsZXg6IDAgMCA2MHB4O1xuXHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRmbGV4OiAwIDAgMTEwcHg7XG5cdFx0bWFyZ2luLXJpZ2h0OiAzMHB4O1xuXHR9XG5cblx0aW1nIHtcblx0XHRtYXgtd2lkdGg6IDUwcHg7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0bWF4LXdpZHRoOiAxMTBweDtcblx0XHR9XG5cdH1cbn1cblxuLmJjLWNhcnQtaXRlbS1tZXRhIHtcblx0ZmxleDogMSAxIGF1dG87XG5cdHBhZGRpbmctcmlnaHQ6IDVweDtcblx0YWxpZ24tc2VsZjogZmxleC1zdGFydDtcblxuXHQuYmMtY2FydC1pdGVtX19wcm9kdWN0LXRpdGxlIHtcblx0XHRtYXJnaW46IDA7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudCk7XG5cdFx0bGluZS1oZWlnaHQ6IDEuMTI1O1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC1sZyk7XG5cdFx0XHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc3MpO1xuXHRcdH1cblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1mdWxsKSB7XG5cdFx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXhsKTtcblx0XHR9XG5cblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbGFyZ2UpIHtcblx0XHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQteHhsKTtcblx0XHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zKTtcblx0XHR9XG5cdH1cbn1cblxuLmJjLWNhcnQtaXRlbV9fcHJvZHVjdC1icmFuZCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdG1hcmdpbi10b3A6IDEwcHg7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQtbSk7XG59XG5cbi5iYy1jYXJ0LWl0ZW1fX3Byb2R1Y3Qtb3B0aW9uIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQteHMpO1xuXHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG5cdG1hcmdpbi10b3A6IDEwcHg7XG5cdGNvbG9yOiB2YXIoLS1jb2xvci1iYy1ncmV5KTtcbn1cblxuLmJjLWNhcnQtaXRlbV9fcHJvZHVjdC1vcHRpb24tbGFiZWwge1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuXG4uYmMtY2FydC1pdGVtX19wcm9kdWN0LW9wdGlvbi12YWx1ZSB7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1saWdodCk7XG59XG5cbi5iYy1jYXJ0LWl0ZW0tcXVhbnRpdHkge1xuXHRmbGV4OiAwIDAgNzBweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtZnVsbCkge1xuXHRcdGZsZXg6IDAgMCAxMjBweDtcblx0fVxuXG5cdGlucHV0LmJjLWNhcnQtaXRlbV9fcXVhbnRpdHktaW5wdXQge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC1zKTtcblx0XHR3aWR0aDogNzBweDtcblxuXHRcdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQpO1xuXHRcdH1cblxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0Ym94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRcdH1cblx0fVxufVxuXG4uYmMtY2FydC1pdGVtLXRvdGFsLXByaWNlIHtcblx0ZmxleDogMCAwIDcwcHg7XG5cdG1hcmdpbi1sZWZ0OiAxMHB4O1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQtbSk7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRmbGV4OiAwIDAgMTIwcHg7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC14bCk7XG5cdH1cbn1cblxuLmJjLWNhcnQtZm9vdGVyIHtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi5iYy1jYXJ0LXN1YnRvdGFsLFxuLmJjLWNhcnQtdGF4IHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdHBhZGRpbmc6IDI1cHggMCAwO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRhbGlnbi1pdGVtczogZmxleC1lbmQ7XG59XG5cbi5iYy1jYXJ0LXRheCB7XG5cdHBhZGRpbmctdG9wOiAwO1xufVxuXG4uYmMtY2FydC1zdWJ0b3RhbF9fbGFiZWwsXG4uYmMtY2FydC10YXhfX2xhYmVsIHtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC1zKTtcblx0bWFyZ2luLXJpZ2h0OiAxNHB4O1xuXHR0ZXh0LWFsaWduOiByaWdodDtcblx0cGFkZGluZy1yaWdodDogMTVweDtcblx0ZmxleDogMSAxIGF1dG87XG59XG5cbi5iYy1jYXJ0LXN1YnRvdGFsX19hbW91bnQsXG4uYmMtY2FydC10YXhfX2Ftb3VudCB7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0ZmxleDogMCAwIDcwcHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LWZ1bGwpIHtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXhsKTtcblx0XHRmbGV4OiAwIDAgMTIwcHg7XG5cdH1cbn1cblxuLmJjLWNhcnQtdGF4X19hbW91bnQge1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50KTtcbn1cblxuLmJjLWNhcnQtYWN0aW9ucyB7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRtYXJnaW4tdG9wOiAzMHB4O1xufVxuXG4uYmMtY2FydC1lcnJvciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRkaXNwbGF5OiBub25lO1xuXG5cdCYubWVzc2FnZS1hY3RpdmUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbi5iYy1jYXJ0LWVycm9yX19tZXNzYWdlIHtcblx0YmFja2dyb3VuZDogI2ZmODM4Mztcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC14cyk7XG5cdG1hcmdpbjogMDtcblxuXHQubWVzc2FnZS1hY3RpdmUgJiB7XG5cdFx0cGFkZGluZzogMTBweDtcblx0fVxufVxuIiwiLmJpZ2NvbW1lcmNlLWNhcnRfX2l0ZW0tY291bnQge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuXHRjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cdGJvcmRlci1yYWRpdXM6IDE1cHg7XG5cdHdpZHRoOiAyNXB4O1xuXHRoZWlnaHQ6IDI1cHg7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0bGluZS1oZWlnaHQ6IDI1cHg7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dHJhbnNmb3JtOiBzY2FsZSgwKTtcblx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIHZhcigtLWVhc2UtaW4tb3V0LWN1YmljKTtcblxuXHQmLmZ1bGwge1xuXHRcdHRyYW5zZm9ybTogc2NhbGUoMSk7XG5cdH1cbn1cbiIsIi5iYy1hY2NvdW50LWFkZHJlc3NlcyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmJjLWFjY291bnQtYWRkcmVzc2VzX19saXN0IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHotaW5kZXg6IDE7XG5cdG9wYWNpdHk6IDE7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tb3BhY2l0eSk7XG5cdHBhZGRpbmc6IDA7XG5cdG1hcmdpbjogMDtcblx0bGlzdC1zdHlsZTogbm9uZTtcblxuXHQmLmJjLWFjY291bnQtYWRkcmVzcy0tZm9ybS1hY3RpdmUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblxuXHQuYmMtYWNjb3VudC1hZGRyZXNzZXNfX2l0ZW0ge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRwYWRkaW5nOiAzMHB4O1xuXHR9XG5cblx0LmJjLWFjY291bnQtYWRkcmVzc2VzX19hZGQtbmV3IHtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG59XG5cbi5iYy1hY2NvdW50LWFkZHJlc3Nlc19faXRlbSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itb2ZmLXdoaXRlKTtcblx0dHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cblx0Jjpub3QoLmJjLWFjY291bnQtYWRkcmVzc2VzX19hZGQtbmV3KSB7XG5cblx0XHQmOmhvdmVyLFxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpO1xuXHRcdFx0Ym94LXNoYWRvdzogMCA0cHggNHB4IHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRcdH1cblx0fVxuXG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW4tYm90dG9tOiAzMHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRsb3N0LWNvbHVtbjogMS8zIDMgMzBweDtcblx0fVxufVxuXG4uYmMtYWNjb3VudC1hZGRyZXNzX19tZXRhIHtcblxuXHQ+IHNwYW4ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQtbSk7XG5cdH1cbn1cblxuc3Bhbi5iYy1hY2NvdW50LWFkZHJlc3NfX25hbWUge1xuXHRmb250LXdlaWdodDogNzAwO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXhsKTtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNzKTtcblx0bWFyZ2luLWJvdHRvbTogMTJweDtcbn1cblxuLmJjLWFjY291bnQtYWRkcmVzc19fcGhvbmUge1xuXHRtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4uYmMtYWNjb3VudC1hZGRyZXNzX19lZGl0LFxuLmJjLWFjY291bnQtYWRkcmVzc19fZGVsZXRlLFxuYnV0dG9uLmJjLWFjY291bnQtYWRkcmVzc19fZWRpdCxcbmJ1dHRvbi5iYy1hY2NvdW50LWFkZHJlc3NfX2RlbGV0ZSxcbmEuYmMtYWNjb3VudC1hZGRyZXNzX19lZGl0LFxuYS5iYy1hY2NvdW50LWFkZHJlc3NfX2RlbGV0ZSB7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRib3JkZXI6IDA7XG5cdG91dGxpbmU6IG5vbmU7XG5cdHBhZGRpbmc6IDA7XG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRmb250LWZhbWlseTogaW5oZXJpdDtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC1tKTtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG5cdG9wYWNpdHk6IDE7XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tb3BhY2l0eSk7XG5cdG1hcmdpbi10b3A6IDMwcHg7XG5cdG1hcmdpbi1yaWdodDogMTBweDtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzIHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRvcGFjaXR5OiAwLjgyO1xuXHR9XG59XG5cbi5iYy1hY2NvdW50LWFkZHJlc3NfX2RlbGV0ZS1mb3JtIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uYmMtYWNjb3VudC1hZGRyZXNzZXNfX2FkZC1uZXcge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0cGFkZGluZzogMDtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24tY29udGVudDogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmJjLWFjY291bnQtYWRkcmVzc2VzX19hZGQtYnV0dG9uLFxuYnV0dG9uLmJjLWFjY291bnQtYWRkcmVzc2VzX19hZGQtYnV0dG9uLFxuYS5iYy1hY2NvdW50LWFkZHJlc3Nlc19fYWRkLWJ1dHRvbiB7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRjb2xvcjogdmFyKC0tY29sb3ItYmMtYmxhY2spO1xuXHR0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblx0d2lkdGg6IDEwMCU7XG5cdHBhZGRpbmc6IDQwcHggMTBweDtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC14bCk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1ldmVuKTtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG5cdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNvbG9yLW9mZi13aGl0ZSk7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblxuXHQuYmMtaWNvbiB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudCk7XG5cdFx0bWFyZ2luLWJvdHRvbTogMThweDtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0fVxuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itb2ZmLXdoaXRlKTtcblx0fVxufVxuXG4uYmMtYWNjb3VudC1hZGRyZXNzLWZvcm0tYWN0aW9ucyB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdG1hcmdpbjogNjBweCBhdXRvIDIwcHg7XG5cdGZsZXg6IDEgMSAxMDAlO1xuXG5cdD4gYnV0dG9uIHtcblx0XHRtYXJnaW46IDAgMTBweCAyMHB4O1xuXHR9XG59XG5cbi5iYy1hY2NvdW50LWFkZHJlc3NfX2FjdGlvbnMtLW5ldyB7XG5cdGZsZXg6IDEgMSAxMDAlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRtaW4taGVpZ2h0OiAyNTBweDtcbn1cblxuLmJjLWFjY291bnQtYWRkcmVzc19fZGVsZXRlLWNvbmZpcm1hdGlvbiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRvcGFjaXR5OiAwO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXHR6LWluZGV4OiAwO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1jb250ZW50OiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRmbGV4LXdyYXA6IHdyYXA7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW9mZi13aGl0ZSk7XG5cdHBhZGRpbmc6IDMwcHg7XG5cblx0PiBidXR0b24ge1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdH1cbn1cblxuLmJjLWNvbmZpcm1hdGlvbi1hY3RpdmUge1xuXHRvcGFjaXR5OiAxO1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHR6LWluZGV4OiAyO1xufVxuXG4vKiBEaWFsb2cgQWRkcmVzcyBTdHlsZXMgKi9cbi5iYy1hY2NvdW50LWFkZHJlc3MtZm9ybV9fd3JhcHBlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ei1pbmRleDogMjtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcblxuXHQmW2FyaWEtaGlkZGVuPSd0cnVlJ10ge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLmJjLWFjY291bnQtYWRkcmVzcy1mb3JtX19vdmVybGF5IHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDA7XG5cdHRvcDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn1cblxuLmJjLWFjY291bnQtYWRkcmVzcy1mb3JtX19jb250ZW50IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuIiwiLmJjLWFjY291bnQtcGFnZSB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRwYWRkaW5nOiA0MHB4IDA7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdHBhZGRpbmc6IDYwcHggMCA5MHB4O1xuXHR9XG59XG4iLCIuYmMtYWNjb3VudC1sb2dpbiB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi5iYy1hY2NvdW50LWxvZ2luX19mb3JtLFxuLmJjLWFjY291bnQtbG9naW5fX3JlZ2lzdGVyIHtcblx0bWFyZ2luLWJvdHRvbTogNDBweDtcblx0d2lkdGg6IDEwMCU7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdHdpZHRoOiA1MCU7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuXG4uYmMtYWNjb3VudC1sb2dpbl9fZm9ybS1pbm5lcixcbi5iYy1hY2NvdW50LWxvZ2luX19mb3JtIGZvcm0ge1xuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bWF4LXdpZHRoOiAzNzBweDtcblx0fVxufVxuXG4uYmMtYWNjb3VudC1sb2dpbl9fZm9ybSB7XG5cblx0cC5sb2dpbi11c2VybmFtZSxcblx0cC5sb2dpbi1wYXNzd29yZCxcblx0cC5sb2dpbi1yZW1lbWJlciB7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRtYXJnaW4tYm90dG9tOiAzMHB4O1xuXG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMTRweDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDI4cHg7XG5cdFx0fVxuXHR9XG5cblx0bGFiZWwge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbi1ib3R0b206IDZweDtcblx0fVxufVxuXG4uYmMtYWNjb3VudC1sb2dpbl9fcmVnaXN0ZXIge1xuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG5cdFx0Ji1pbm5lciB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMjhweDtcblx0XHRcdG1heC13aWR0aDogMzcwcHg7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1hY2NvdW50LWxvZ2luX19yZWdpc3Rlci10aXRsZSB7XG5cdG1hcmdpbi10b3A6IDA7XG59XG5cbi5iYy1hY2NvdW50LWxvZ2luX19yZWdpc3Rlci1saXN0IHtcblx0bWFyZ2luLWxlZnQ6IDIwcHg7XG59XG4iLCIuYmMtYWNjb3VudC1yZWdpc3Rlci1zdWNjZXNzIHtcblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdG1heC13aWR0aDogNTUwcHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG59XG4iLCIuYmMtb3JkZXJfX2hlYWRlciB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQteHMpO1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuXG4uYmMtb3JkZXJfX2xpbmsge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbi1sZWZ0OiAxMHB4O1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiAnXFwwMEI3Jztcblx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdH1cbn1cblxuLmJjLW9yZGVyLW1ldGFfX2xhYmVsLFxuLmJjLW9yZGVyLW1ldGFfX3ZhbHVlIHtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudC14cyk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1iYXNlKTtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4uYmMtb3JkZXItbWV0YV9fbGFiZWwge1xuXHRmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG59XG5cbi5iYy1vcmRlci1tZXRhX192YWx1ZSB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG59XG4iLCIuYmMtb3JkZXItbGlzdCxcbi5iYy1vcmRlci1saXN0X19pdGVtIHtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bWFyZ2luOiAwO1xufVxuXG4uYmMtb3JkZXItbGlzdCB7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdHBhZGRpbmctYm90dG9tOiA0MHB4O1xuXG5cdCYuYmMtbG9hZC1pdGVtcy1jb250YWluZXItLWhhcy1wYWdlcyB7XG5cdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0fVxufVxuXG4uYmMtb3JkZXItbGlzdF9faXRlbSB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0cGFkZGluZzogMzJweCAwO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRwYWRkaW5nOiA1MHB4IDA7XG5cdH1cblxuXHQmOmZpcnN0LWNoaWxkIHtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdH1cbn1cblxuLmJjLW9yZGVyLWNhcmRfX2JvZHkge1xuXHRtYXJnaW4tdG9wOiA0MHB4O1xufVxuIiwiLmJjLW9yZGVyLWRldGFpbCB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0cGFkZGluZy10b3A6IDUwcHg7XG59XG5cbi5iYy1vcmRlcl9fcHJvZHVjdC1saXN0LFxuLmJjLW9yZGVyX19wcm9kdWN0LWxpc3QtaXRlbSB7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdG1hcmdpbjogMDtcbn1cblxuLmJjLW9yZGVyX19wcm9kdWN0LWxpc3Qge1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYmMtbGlnaHQtZ3JleSk7XG5cdHBhZGRpbmctYm90dG9tOiA0MHB4O1xuXHRtYXJnaW4tYm90dG9tOiA0NnB4O1xufVxuXG4uYmMtb3JkZXJfX3Byb2R1Y3QtbGlzdC1pdGVtIHtcblxuXHQrIC5iYy1vcmRlcl9fcHJvZHVjdC1saXN0LWl0ZW0ge1xuXHRcdG1hcmdpbi10b3A6IDMwcHg7XG5cdH1cbn1cblxuLmJjLW9yZGVyLWRldGFpbF9fYm9keSB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0cGFkZGluZy1ib3R0b206IDM2cHg7XG5cdG1hcmdpbi1ib3R0b206IDQ4cHg7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHR9XG59XG5cbi5iYy1vcmRlci1kZXRhaWxfX2NvbCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGxvc3QtY29sdW1uOiAxLzIgMiA0MHB4O1xuXHR9XG59XG5cbi5iYy1vcmRlci1kZXRhaWwtbWV0YV9fbGlzdCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4uYmMtb3JkZXItZGV0YWlsLW1ldGFfX2xpc3QtaXRlbSB7XG5cdGxvc3QtY29sdW1uOiAxLzIgMjtcblx0bWFyZ2luLWJvdHRvbTogMjBweDtcblxuXHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0bG9zdC1jb2x1bW46IDEvMyAzIDIwcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMzZweDtcblx0fVxufVxuXG4uYmMtb3JkZXItZGV0YWlsX19zaGlwbWVudHMge1xuXHRtYXJnaW4tdG9wOiAxNnB4O1xufVxuXG4uYmMtb3JkZXItc2hpcG1lbnQge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHR9XG5cblx0LmJjLW9yZGVyLW1ldGFfX2xhYmVsIHtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1jb250ZW50LXhzKTtcblx0XHRmb25vdC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1iYXNlKTtcblx0XHRsZXR0ZXItc3BhY2luZzogMDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0XHRtYXJnaW46IDA7XG5cdH1cblxuXHQrIC5iYy1vcmRlci1zaGlwbWVudCB7XG5cdFx0bWFyZ2luLXRvcDogMzZweDtcblx0fVxufVxuXG4uYmMtb3JkZXItc2hpcG1lbnRfX2NvbCB7XG5cdG1hcmdpbi1ib3R0b206IDE2cHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGxvc3QtY29sdW1uOiAxLzIgMiAyMHB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cbn1cblxuLmJjLW9yZGVyLXNoaXBtZW50X190cmFja2luZyB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cblx0Ji1tZXRhIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXHR9XG59XG5cbi5iYy1vcmRlci1zaGlwbWVudF9fYWRkcmVzcyB7XG5cblx0PiAqIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG4uYmMtb3JkZXItZGV0YWlsX190b3RhbHMge1xuXHRtYXJnaW4tdG9wOiA1MHB4O1xuXG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRsb3N0LWNvbHVtbjogMS8zO1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cbn1cblxuLmJjLW9yZGVyLWRldGFpbC10b3RhbHNfX2xpc3QsXG4uYmMtb3JkZXItZGV0YWlsLXRvdGFsc19fbGlzdC1pdGVtIHtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4uYmMtb3JkZXItZGV0YWlsLXRvdGFsc19fbGlzdC1pdGVtIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC13cmFwOiBuby13cmFwO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cblx0KyAuYmMtb3JkZXItZGV0YWlsLXRvdGFsc19fbGlzdC1pdGVtIHtcblx0XHRtYXJnaW4tdG9wOiA0cHg7XG5cdH1cblxuXHQmOmxhc3QtY2hpbGQge1xuXHRcdG1hcmdpbi10b3A6IDM2cHg7XG5cdH1cbn1cblxuLmJjLW9yZGVyLWRldGFpbC10b3RhbHNfX2xhYmVsLFxuLmJjLW9yZGVyLWRldGFpbC10b3RhbHNfX3ZhbHVlIHtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtY29udGVudCk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1iYXNlKTtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cblx0Ji0tbGcge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQteGwpO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjE7XG5cdH1cbn1cblxuLmJjLW9yZGVyLWRldGFpbC10b3RhbHNfX2xhYmVsIHtcblx0Y29sb3I6IHZhcigtLWNvbG9yLWJjLWdyZXkpO1xufVxuIiwiLmJjLWFjY291bnQtbG9zdC1wYXNzd29yZCB7XG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRtYXgtd2lkdGg6IDUxMHB4O1xuXHR9XG59XG5cbi5iYy1hY2NvdW50LWxvc3QtcGFzc3dvcmRfX2FjY291bnQtYWN0aW9ucyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRsaXN0LXN0eWxlOiBub25lO1xuXHRtYXJnaW4tdG9wOiAzMHB4O1xufVxuXG4uYmMtYWNjb3VudC1sb3N0LXBhc3N3b3JkX19hY2NvdW50LWxpbmsge1xuXG5cdCsgLmJjLWFjY291bnQtbG9zdC1wYXNzd29yZF9fYWNjb3VudC1saW5rIHtcblx0XHRtYXJnaW4tbGVmdDogMzBweDtcblx0fVxufVxuIiwiLmJjLWdpZnQtcGFnZSB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRwYWRkaW5nOiA0MHB4IDA7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdHBhZGRpbmc6IDYwcHggMCA2OHB4O1xuXHR9XG59XG5cbi5iYy1naWZ0LXB1cmNoYXNlIHtcblxuXHQuYmMtZm9ybV9fcm93IHtcblx0XHRAbWVkaWEgKC0tdmlld3BvcnQtbWVkaXVtKSB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0fVxuXHR9XG5cblx0LmJjLWZvcm1fX2NvbCB7XG5cdFx0ZmxleDogMCAxIDUwJTtcblxuXHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYy1saWdodC1ncmV5KTtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogNDBweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDQwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1naWZ0LWluc3RydWN0aW9ucyB7XG5cdG1hcmdpbi10b3A6IDQwcHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdG1hcmdpbi10b3A6IDc1cHg7XG5cdH1cblxuXHRvbCA+IGxpICsgbGkge1xuXHRcdG1hcmdpbi10b3A6IDE2cHg7XG5cdH1cbn1cblxuLmJjLWdpZnQtYmFsYW5jZSB7XG5cdEBtZWRpYSAoLS12aWV3cG9ydC1tZWRpdW0pIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdH1cbn1cblxuLmJjLWdpZnQtYmFsYW5jZV9fZm9ybSxcbi5iYy1naWZ0LWJhbGFuY2VfX3Jlc3BvbnNlIHtcblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdGZsZXg6IDAgMSA1MCU7XG5cdH1cbn1cblxuLmJjLWdpZnQtYmFsYW5jZV9fcmVzcG9uc2Uge1xuXG5cdD4gKiB7XG5cdFx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDgwcHg7XG5cdFx0fVxuXHR9XG59XG5cbi5iYy1naWZ0LWJhbGFuY2VfX2NvbnRhaW5lciB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJjLWxpZ2h0LWdyZXkpO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0bWFyZ2luLXRvcDogNDBweDtcblx0cGFkZGluZzogNzRweCAyMHB4IDcycHg7XG5cblx0QG1lZGlhICgtLXZpZXdwb3J0LW1lZGl1bSkge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cbn1cblxuLmJjLWdpZnQtYmFsYW5jZV9fdGl0bGUsXG4uYmMtZ2lmdC1iYWxhbmNlX19hbW91bnQsXG4uYmMtZ2lmdC1iYWxhbmNlX19jb2RlIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWV2ZW4pO1xufVxuXG4uYmMtZ2lmdC1iYWxhbmNlX190aXRsZSB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQpO1xuXHRtYXJnaW4tYm90dG9tOiAzNHB4O1xufVxuXG4uYmMtZ2lmdC1iYWxhbmNlX19hbW91bnQge1xuXHRmb250LXNpemU6IDNlbTtcblx0bWFyZ2luLWJvdHRvbTogMzRweDtcbn1cblxuLmJjLWdpZnQtYmFsYW5jZV9fY29kZSB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWNvbnRlbnQpO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuIl19 */ \ No newline at end of file diff --git a/assets/css/master.min.css b/assets/css/master.min.css index 13c17a09..c4128eac 100644 --- a/assets/css/master.min.css +++ b/assets/css/master.min.css @@ -1,2 +1,2 @@ /* BigCommerce: Global CSS */ -.u-bc-hidden{display:none!important;visibility:hidden}.u-bc-screen-reader-text,.u-bc-visual-hide,.u-bc-visual-show{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.u-bc-text-light,.u-bc-text-light.bc-btn:focus,.u-bc-text-light.bc-btn:hover{color:#fff}.u-bc-text-dark,.u-bc-text-dark.bc-btn:focus,.u-bc-text-dark.bc-btn:hover{color:#34313f}@font-face{font-family:bigcommerce-icons;src:url(../fonts/icons-bigcommerce/bigcommerce-icons.woff2?mnhepd) format("woff2"),url(../fonts/icons-bigcommerce/bigcommerce-icons.ttf?mnhepd) format("truetype"),url(../fonts/icons-bigcommerce/bigcommerce-icons.woff?mnhepd) format("woff"),url(../fonts/icons-bigcommerce/bigcommerce-icons.svg?mnhepd#bigcommerce-icons) format("svg");font-weight:400;font-style:normal}.bc-icon{font-family:bigcommerce-icons!important;speak:none;font-style:normal;font-weight:400;-webkit-font-feature-settings:normal;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-bc-bigcommerce_diagnostics:before{content:"\e912"}.icon-bc-channel:before,.icon-bc-channel_select:before{content:"\e911"}.icon-bc-credentials:before{content:"\e910"}.icon-bc-sync:before{content:"\e90f"}.icon-bc-accounts:before{content:"\e906"}.icon-bc-analytics:before{content:"\e907"}.icon-bc-cart:before{content:"\e908"}.icon-bc-currency:before{content:"\e909"}.icon-bc-gift_certificates:before{content:"\e90a"}.icon-bc-import:before{content:"\e90b"}.icon-bc-order_confirmation:before{content:"\e90c"}.icon-bc-product_reviews:before{content:"\e90d"}.icon-bc-shipping_returns:before{content:"\e90e"}.dashicons-bigcommerce:before,.icon-bc-b-logo:before{content:"\e901"}.icon-bc-arrow-solid:before{content:"\e902"}.icon-bc-selected:before{content:"\e903"}.icon-bc-arrow-toggle:before{content:"\e905"}.icon-bc-arrow-left:before{content:"\e094"}.icon-bc-arrow-right:before{content:"\e095"}.icon-bc-arrow-up:before{content:"\e096"}.icon-bc-arrow-down:before{content:"\e097"}.icon-bc-plus:before{content:"\e114"}.icon-bc-minus:before{content:"\e115"}.icon-bc-check:before{content:"\e116"}.icon-bc-cross:before{content:"\e117"}.icon-bc-search:before{content:"\e036"}.icon-bc-chevron-down:before{content:"\e900"}.icon-bc-chevron-left:before{content:"\e91a"}.icon-bc-chevron-right:before{content:"\e919"}.icon-bc-chevron-up:before{content:"\e904"}@media (min-width:768px){.bc-form .bc-form__row{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;margin-bottom:56px;width:100%}}@media (min-width:768px){.bc-form .bc-form__col{-ms-flex:1 1 auto;flex:1 1 auto}.bc-form .bc-form__col .bc-form__control:last-child{margin-bottom:0}}.bc-form.bc-form-2col{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%}.bc-form.bc-product-form,.bc-form.bc-product-form button.bc-btn--form-submit{margin:0}.bc-form .bc-form__field-group{border:unset;margin:0;padding:0}@media (min-width:768px){.bc-form .bc-form__field-group+.bc-form__field-group{margin-top:60px}}.bc-form .bc-form-2col__control{width:100%;margin-bottom:30px}@media (min-width:768px){.bc-form .bc-form-2col__control{margin-bottom:14px}.bc-form .bc-form-2col__control:not(.bc-form-2col__control--full){width:50%}.bc-form .bc-form-2col__control--left{padding-right:15px}.bc-form .bc-form-2col__control--right{padding-left:15px}.bc-form .bc-form-2col__control--full{width:100%}}.bc-form .bc-form__control{box-sizing:border-box;display:block;margin-bottom:30px}@media (min-width:768px){.bc-form .bc-form__control{margin-bottom:14px}}.bc-form .bc-form__label{display:block;margin-bottom:6px}.bc-form .bc-form__label.bc-form-control-required{display:-ms-flexbox;display:flex;position:relative}.bc-form .bc-form__label.bc-form-control-required:after{content:"*";font-size:80%;padding-left:2px;color:#d2574a}.bc-form .bc-form-terms{background-color:#e0e3e9;margin-bottom:14px;padding:12px 16px 11px}.bc-form .bc-form-terms .bc-form__control--checkbox{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:0}.bc-form .bc-form-terms .bc-form__control--checkbox>*{margin-bottom:0}.bc-form .bc-form-terms .bc-form__label{margin-right:auto}.bc-form .bc-form-terms .bc-form__label.bc-form-control-required:after{content:"";padding:0}.bc-form .bc-form-terms .bc-form__error-message{margin-right:22px}.bc-form .bc-form__actions{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;margin-top:16px;width:100%}@media (min-width:768px){.bc-form .bc-form__actions{-ms-flex-pack:center;justify-content:center;margin-top:46px}}.bc-form .bc-form__actions--left{-ms-flex-pack:start;justify-content:flex-start}.bc-form.bc-form--has-errors .bc-form__control--error input[type=email],.bc-form.bc-form--has-errors .bc-form__control--error input[type=number],.bc-form.bc-form--has-errors .bc-form__control--error input[type=password],.bc-form.bc-form--has-errors .bc-form__control--error input[type=tel],.bc-form.bc-form--has-errors .bc-form__control--error input[type=text],.bc-form.bc-form--has-errors .bc-form__control--error select,.bc-form.bc-form--has-errors .bc-form__control--error textarea{border:1px solid #ff0012}.bc-form .form-control-bc{transition:all .15s ease-in-out;padding:0 20px;border:1px solid #d3d3d3;display:block;width:100%;height:45px;color:#000;letter-spacing:normal;text-transform:none;font:normal 400 16px/1.5 proxima-nova,Helvetica Neue,Helvetica,Arial,sans-serif}.bc-form .form-control-bc-icon{position:relative}.bc-form .form-control-bc-icon input{padding-right:45px}.bc-form .form-control-bc-icon:before{position:absolute;right:0;top:0;color:#d3d3d3;height:100%;width:45px;line-height:45px;text-align:center;z-index:1;font-size:20px}.bc-form .bc-form__control input[type=email],.bc-form .bc-form__control input[type=number],.bc-form .bc-form__control input[type=password],.bc-form .bc-form__control input[type=tel],.bc-form .bc-form__control input[type=text],.bc-form .bc-form__control input[type=url]{border:1px solid #e0e3e9;box-sizing:border-box;font-size:16px;line-height:1.5;height:45px;padding-left:10px;padding-right:10px;width:100%}.bc-form input[type=file]{transition:all .15s ease-in-out;padding:0 20px;border:1px solid #d3d3d3;display:block;width:100%;height:45px;color:#000;letter-spacing:normal;text-transform:none;font:normal 400 16px/1.5 proxima-nova,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:16px;height:auto;padding:20px;line-height:1}.bc-form input{display:block}.bc-form input input[type=checkbox],.bc-form input input[type=radio]{height:auto;width:auto;display:inline-block;line-height:normal;padding:0}.bc-form input label{color:#000;cursor:pointer;margin-bottom:0;display:inline-block;letter-spacing:normal;text-transform:none;font:normal 400 14px/1 proxima-nova,Helvetica Neue,Helvetica,Arial,sans-serif}.bc-form input[type=checkbox],.bc-form input[type=radio]{margin-bottom:0;margin-right:10px}.bc-form input[type=checkbox].form-control-custom-bc-style,.bc-form input[type=radio].form-control-custom-bc-style{transition:all .15s ease-in-out;position:relative;padding-left:34px}.bc-form input[type=checkbox].form-control-custom-bc-style input[type=checkbox],.bc-form input[type=checkbox].form-control-custom-bc-style input[type=radio],.bc-form input[type=radio].form-control-custom-bc-style input[type=checkbox],.bc-form input[type=radio].form-control-custom-bc-style input[type=radio]{position:absolute;left:6px;top:2px;font-size:12px}.bc-form input[type=checkbox].form-control-custom-bc-style label,.bc-form input[type=radio].form-control-custom-bc-style label{max-width:600px}.bc-form input[type=checkbox].form-control-custom-bc-style label:after,.bc-form input[type=checkbox].form-control-custom-bc-style label:before,.bc-form input[type=radio].form-control-custom-bc-style label:after,.bc-form input[type=radio].form-control-custom-bc-style label:before{transition:all .15s ease-in-out;content:"";position:absolute}.bc-form input[type=checkbox].form-control-custom-bc-style label:before,.bc-form input[type=radio].form-control-custom-bc-style label:before{background-color:#fff;width:22.5px;height:22.5px;top:-2px;left:0;border:1px solid #d3d3d3}.bc-form input[type=checkbox].form-control-custom-bc-style label:after,.bc-form input[type=radio].form-control-custom-bc-style label:after{opacity:0}.bc-form input[type=checkbox].form-control-custom-bc-style input:focus+label:before,.bc-form input[type=radio].form-control-custom-bc-style input:focus+label:before{border-color:#9e9e9e;box-shadow:0 0 0 1px #9e9e9e}.bc-form input[type=checkbox].form-control-custom-bc-style input:checked+label,.bc-form input[type=radio].form-control-custom-bc-style input:checked+label{color:#000}.bc-form input[type=checkbox].form-control-custom-bc-style input:checked+label:after,.bc-form input[type=radio].form-control-custom-bc-style input:checked+label:after{opacity:1}.bc-form input[type=checkbox]~input[type=checkbox],.bc-form input[type=radio]~input[type=radio]{margin-top:15px}.bc-form input[type=checkbox].form-control-custom-bc-style label:before{border-radius:0}.bc-form input[type=checkbox].form-control-custom-bc-style label:after{left:7px;top:5px;width:9px;height:5px;border:2px solid #6c6c6c;border-top:none;border-right:none;transform:rotate(-50deg)}.bc-form input[type=radio].form-control-custom-bc-style label:after,.bc-form input[type=radio].form-control-custom-bc-style label:before{border-radius:50%}.bc-form input[type=radio].form-control-custom-bc-style label:after{left:8px;top:6px;width:8px;height:8px;background-color:#6c6c6c}.bc-form .bc-product-form__control--checkbox .bc-product-modifier__label{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:center;align-items:center}.bc-form .bc-product-form__control--checkbox input[type=checkbox],.bc-form .bc-product-form__control--checkbox input[type=radio]{-ms-flex:0 1 auto;flex:0 1 auto}.bc-form .bc-product-form__control--checkbox .bc-product-modifier__label--checkbox{-ms-flex:1;flex:1}.bc-form select{transition:all .15s ease-in-out;padding:0 20px;border:1px solid #d3d3d3;display:block;width:100%;height:45px;color:#000;letter-spacing:normal;text-transform:none;font:normal 400 16px/1.5 proxima-nova,Helvetica Neue,Helvetica,Arial,sans-serif;padding-right:0;cursor:pointer}.bc-form select[multiple]{font-size:16px;height:100px;padding:20px}.bc-form textarea{transition:all .15s ease-in-out;padding:0 20px;border:1px solid #d3d3d3;display:block;width:100%;height:45px;color:#000;letter-spacing:normal;text-transform:none;font:normal 400 16px/1.5 proxima-nova,Helvetica Neue,Helvetica,Arial,sans-serif;resize:none;padding:14px 20px;height:225px}.swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-container-no-flexbox .swiper-slide{float:left}.swiper-container-vertical>.swiper-wrapper{-ms-flex-direction:column;flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:-ms-flexbox;display:flex;transition-property:transform;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-container-multirow>.swiper-wrapper{-ms-flex-wrap:wrap;flex-wrap:wrap}.swiper-container-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-slide{-ms-flex-negative:0;flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-invisible-blank-slide{visibility:hidden}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{-ms-flex-align:start;align-items:flex-start;transition-property:transform,height}.swiper-container-3d{perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:linear-gradient(270deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-right{background-image:linear-gradient(90deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-top{background-image:linear-gradient(0deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(180deg,rgba(0,0,0,.5),transparent)}.swiper-container-wp8-horizontal,.swiper-container-wp8-horizontal>.swiper-wrapper{-ms-touch-action:pan-y;touch-action:pan-y}.swiper-container-wp8-vertical,.swiper-container-wp8-vertical>.swiper-wrapper{-ms-touch-action:pan-x;touch-action:pan-x}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:27px;height:44px;margin-top:-22px;z-index:10;cursor:pointer;background-size:27px 44px;background-position:50%;background-repeat:no-repeat}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath d='M0 22L22 0l2.1 2.1L4.2 22l19.9 19.9L22 44 0 22z' fill='%23007aff'/%3E%3C/svg%3E");left:10px;right:auto}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath d='M27 22L5 44l-2.1-2.1L22.8 22 2.9 2.1 5 0l22 22z' fill='%23007aff'/%3E%3C/svg%3E");right:10px;left:auto}.swiper-button-prev.swiper-button-white,.swiper-container-rtl .swiper-button-next.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath d='M0 22L22 0l2.1 2.1L4.2 22l19.9 19.9L22 44 0 22z' fill='%23fff'/%3E%3C/svg%3E")}.swiper-button-next.swiper-button-white,.swiper-container-rtl .swiper-button-prev.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath d='M27 22L5 44l-2.1-2.1L22.8 22 2.9 2.1 5 0l22 22z' fill='%23fff'/%3E%3C/svg%3E")}.swiper-button-prev.swiper-button-black,.swiper-container-rtl .swiper-button-next.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath d='M0 22L22 0l2.1 2.1L4.2 22l19.9 19.9L22 44 0 22z'/%3E%3C/svg%3E")}.swiper-button-next.swiper-button-black,.swiper-container-rtl .swiper-button-prev.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath d='M27 22L5 44l-2.1-2.1L22.8 22 2.9 2.1 5 0l22 22z'/%3E%3C/svg%3E")}.swiper-pagination{position:absolute;text-align:center;transition:opacity .3s;transform:translateZ(0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-container-horizontal>.swiper-pagination-bullets,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet-active{opacity:1;background:#007aff}.swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0,-50%,0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:6px 0;display:block}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:transform .2s,top .2s}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 4px}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,left .2s}.swiper-container-horizontal.swiper-container-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,right .2s}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:#007aff;position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-container-horizontal>.swiper-pagination-progressbar{width:100%;height:4px;left:0;top:0}.swiper-container-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-white .swiper-pagination-bullet-active{background:#fff}.swiper-pagination-progressbar.swiper-pagination-white{background:hsla(0,0%,100%,.25)}.swiper-pagination-progressbar.swiper-pagination-white .swiper-pagination-progressbar-fill{background:#fff}.swiper-pagination-black .swiper-pagination-bullet-active{background:#000}.swiper-pagination-progressbar.swiper-pagination-black{background:rgba(0,0,0,.25)}.swiper-pagination-progressbar.swiper-pagination-black .swiper-pagination-progressbar-fill{background:#000}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-zoom-container{width:100%;height:100%;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;animation:a 1s steps(12) infinite}.swiper-lazy-preloader:after{display:block;content:"";width:100%;height:100%;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath id='a' stroke='%236c6c6c' stroke-width='11' stroke-linecap='round' d='M60 7v20'/%3E%3C/defs%3E%3Cuse xlink:href='%23a' opacity='.27'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(30 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(60 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(90 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(120 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(150 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.37' transform='rotate(180 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.46' transform='rotate(210 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.56' transform='rotate(240 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.66' transform='rotate(270 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.75' transform='rotate(300 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.85' transform='rotate(330 60 60)'/%3E%3C/svg%3E");background-position:50%;background-size:100%;background-repeat:no-repeat}.swiper-lazy-preloader-white:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath id='a' stroke='%23fff' stroke-width='11' stroke-linecap='round' d='M60 7v20'/%3E%3C/defs%3E%3Cuse xlink:href='%23a' opacity='.27'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(30 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(60 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(90 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(120 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(150 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.37' transform='rotate(180 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.46' transform='rotate(210 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.56' transform='rotate(240 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.66' transform='rotate(270 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.75' transform='rotate(300 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.85' transform='rotate(330 60 60)'/%3E%3C/svg%3E")}@keyframes a{to{transform:rotate(1turn)}}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-container-fade.swiper-container-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube{overflow:visible}.swiper-container-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-container-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube.swiper-container-rtl .swiper-slide{transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;background:#000;opacity:.6;-webkit-filter:blur(50px);filter:url('data:image/svg+xml;charset=utf-8,#filter');filter:blur(50px);z-index:0}.swiper-container-flip{overflow:visible}.swiper-container-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right,.swiper-container-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-coverflow .swiper-wrapper{-ms-perspective:1200px}.flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08)}.flatpickr-calendar.inline,.flatpickr-calendar.open{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{animation:b .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasTime .dayContainer,.flatpickr-calendar .hasWeeks .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:after,.flatpickr-calendar:before{position:absolute;display:block;pointer-events:none;border:solid transparent;content:"";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:after,.flatpickr-calendar.rightMost:before{left:auto;right:22px}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9);height:28px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{text-decoration:none;cursor:pointer;position:absolute;top:0;line-height:16px;height:28px;padding:10px;z-index:3;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9)}.flatpickr-months .flatpickr-next-month.disabled,.flatpickr-months .flatpickr-prev-month.disabled{display:none}.flatpickr-months .flatpickr-next-month i,.flatpickr-months .flatpickr-prev-month i{position:relative}.flatpickr-months .flatpickr-next-month.flatpickr-prev-month,.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-next-month.flatpickr-next-month,.flatpickr-months .flatpickr-prev-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-next-month:hover,.flatpickr-months .flatpickr-prev-month:hover{color:#959ea9}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-next-month svg,.flatpickr-months .flatpickr-prev-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-next-month svg path,.flatpickr-months .flatpickr-prev-month svg path{transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,.5)}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:6.16px 0 0;line-height:1;height:28px;display:inline-block;text-align:center;transform:translateZ(0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,.9)}.flatpickr-current-month input.cur-year{background:transparent;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:baseline;vertical-align:initial}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,.5);background:transparent;pointer-events:none}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,.54);line-height:1;margin:0;text-align:center;display:block;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:flex;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-around;transform:translateZ(0);opacity:1}.dayContainer+.dayContainer{box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:focus,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:focus,.flatpickr-day:hover{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:focus,.flatpickr-day.today:hover{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:#569ff7;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.endRange.startRange,.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.endRange.endRange,.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 0 #569ff7}.flatpickr-day.endRange.startRange.endRange,.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.disabled,.flatpickr-day.disabled:hover,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{color:rgba(57,57,57,.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.disabled,.flatpickr-day.disabled:hover{cursor:not-allowed;color:rgba(57,57,57,.1)}.flatpickr-day.week.selected{border-radius:0;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{display:inline-block;float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,.3);background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-ms-flexbox;display:flex;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;box-sizing:border-box;overflow:hidden;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;box-sizing:border-box}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator{height:inherit;display:inline-block;float:left;line-height:inherit;color:#393939;font-weight:700;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time .flatpickr-am-pm:focus,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time input:hover{background:#f3f3f3}.flatpickr-input[readonly]{cursor:pointer}@keyframes b{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}.bc-product__title{font-size:18px;line-height:22px;font-weight:700;padding:0;margin:0 0 18px}@media (min-width:768px){.bc-product__title{font-size:20px;line-height:24px}}@media (min-width:960px){.bc-product__title{font-size:24px;line-height:28px}}.bc-product__title-link{text-decoration:none;box-shadow:none!important;color:#34313f;opacity:1;transition:all .15s ease-in-out}.bc-product__title-link:focus,.bc-product__title-link:hover{color:#34313f;opacity:.8}.bc-product__title-link:focus .bc-product-flag--grey,.bc-product__title-link:hover .bc-product-flag--grey{opacity:1}.bc-product__inventory{display:inline-block;font-size:14px;line-height:22px;font-weight:400;vertical-align:baseline}.bc-product-card--single .bc-product__title,.bc-product-single__meta .bc-product__title{font-size:24px;line-height:28px;margin-top:0;margin-bottom:10px;padding:0;font-weight:700}@media (min-width:768px){.bc-product-card--single .bc-product__title,.bc-product-single__meta .bc-product__title{font-size:28px;line-height:32px}}@media (min-width:960px){.bc-product-card--single .bc-product__title,.bc-product-single__meta .bc-product__title{font-size:32px;line-height:36px}}.bc-product-card--single .bc-product__inventory,.bc-product-single__meta .bc-product__inventory{font-size:16px;margin:0}.bc-product-card--related .bc-product__title{margin-bottom:15px}.bc-product__brand{display:block;font-size:14px;line-height:1;font-weight:700;margin-bottom:10px}@media (min-width:768px){.bc-product__brand{margin-bottom:15px}}@media (min-width:960px){.bc-product__brand{margin-bottom:20px}}.bc-product-card--single .bc-product__brand,.bc-product-single .bc-product__brand{display:block;font-size:16px;margin-bottom:10px}.bc-product__pricing{margin-bottom:0;font-weight:400}.bc-product__price{font-size:16px}.bc-product__original-price{text-decoration:line-through;margin-right:12px;margin-bottom:12px;display:inline-block;font-style:italic;color:#8b8b8b}.bc-product__price--sale{font-weight:700;color:#65c68c}.bc-product-card--single .bc-product__pricing{margin-bottom:30px}@media (min-width:960px){.bc-product-card--single .bc-product__pricing{margin-bottom:40px}}@media (min-width:1200px){.bc-product-card--single .bc-product__pricing{margin-bottom:50px}}.bc-product-card--single .bc-product__original-price,.bc-product-single .bc-product__original-price{margin-right:20px}.bc-product-flag--sale{display:block;position:absolute;right:-20px;top:-20px;width:50px;height:50px;line-height:50px;border-radius:50%;background-color:#65c68c;font-size:12px;font-weight:700;text-transform:uppercase;text-align:center;z-index:2}.bc-product-flag--grey{display:inline-block;vertical-align:middle;padding:7px 8px;background-color:#e0e3e9;font-size:12px;line-height:1;font-weight:600}.bc-product-card--single .bc-product-flag--sale,.bc-product-single .bc-product-flag--sale{width:60px;height:60px;line-height:60px;font-size:16px;font-weight:600}.bc-product-card--single .bc-product-flag--grey,.bc-product-single .bc-product-flag--grey{margin-bottom:5px}.bc-product__description{font-size:16px;line-height:24px;margin-bottom:30px}@media (min-width:960px){.bc-product__description{margin-bottom:40px}}@media (min-width:1200px){.bc-product__description{margin-bottom:50px}}.bc-product__description p:last-child{margin-bottom:0}.bc-product-gallery__images{position:relative;width:100%;max-width:370px;margin:60px auto}@media (min-width:768px){.bc-product-gallery__images{margin:0}}.bc-product-gallery__image-slide img{display:block}.bc-product-gallery--has-carousel{margin-bottom:10px}.swiper-container[data-js=bc-gallery-thumbs] .swiper-wrapper{transform:translateX(0)!important}.bc-product-gallery__thumbs{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}.bc-product-gallery__thumbs .bc-product-gallery__thumb-slide{box-shadow:unset}.bc-product-gallery__thumb-slide{width:calc(25% - 10px);margin:0 10px 10px 0;padding:0;border:0;background:none;opacity:.8;transition:all .15s ease-in-out}.bc-product-gallery__thumb-slide.swiper-slide-active,.bc-product-gallery__thumb-slide:focus,.bc-product-gallery__thumb-slide:hover{opacity:1}.bc-product-form__control{margin-bottom:20px}.bc-product-form__modifier-label,.bc-product-form__option-label{display:block;margin-bottom:10px;font-size:16px;font-weight:700}.bc-product-form__option-variants{margin-top:10px}.bc-product-variant__label{display:block;margin-bottom:10px}.bc-product-form__option-variants--inline{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}.bc-product-form__option-variants--inline .bc-product-variant__label{margin-right:10px}.bc-product-form__option-variants--inline .bc-product-variant__label:last-of-type{margin-right:0}.bc-product-variant__label--title{-ms-flex:1;flex:1;color:#8b8b8b}input.bc-product-variant__radio--hidden{margin:0}.bc-product-form__product-message{padding:0}.bc-product-form__message{display:block;padding:12px 16px;font-size:12px}.bc-product-form__modifier-description{display:block;font-size:12px;line-height:14px;padding:0 10px;margin-top:4px}.bc-product-form__option-select{font-size:16px}.bc-product-form__control--swatch input.bc-product-variant__radio--hidden:checked+.bc-product-variant__label .bc-product-variant__label--swatch{border:0 solid #fff;box-shadow:0 0 1px #168fc0;transition:border 70ms}.bc-product-variant__label--swatch{display:block;width:36px;height:36px;border:5px solid #fff;box-shadow:0 0 1px #8b8b8b;cursor:pointer;transition:border 70ms}.bc-product-form__control--rectangle input.bc-product-variant__radio--hidden:checked+.bc-product-variant__label .bc-product-variant__label--rectangle{border:1px solid #168fc0;color:#168fc0;font-weight:700;transition:border 70ms,color 70ms}.bc-product-variant__label--rectangle{display:block;height:36px;line-height:24px;padding:5px 10px;text-align:center;border:1px solid #cdcdcd;color:#8b8b8b;transition:border 70ms,color 70ms;cursor:pointer}.bc-product-form__control--pick-list input.bc-product-variant__radio--hidden:checked+.bc-product-variant__label .bc-product-variant__label--pick-list{border:1px solid #168fc0;transition:border 70ms}.bc-product-variant__label--pick-list{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:5px;border:1px solid #e0e3e9;cursor:pointer}.bc-product-variant__label--img{-ms-flex:0;flex:0;margin-right:6px;width:100%;max-width:50px;height:auto}.bc-product-form__control--radio .bc-product-form__option-label{-ms-flex:0 0 100%;flex:0 0 100%}.bc-product-form__control--radio .bc-product-variant__label{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:center;align-items:center;margin-bottom:6px}.bc-product-form__control--radio .bc-product-variant__radio{-ms-flex:0 0 auto;flex:0 0 auto}.bc-product-form__control--radio .bc-product-variant__label--radio{-ms-flex:1;flex:1;line-height:24px}.bc-single-product__rating{unicode-bidi:bidi-override;color:#8b8b8b;font-size:15px;height:25px;width:90px;position:relative;padding:0;display:inline-block;vertical-align:middle}.bc-single-product__rating--mask{display:block;position:absolute;top:0;left:0;overflow:hidden;height:25px;z-index:2}.bc-single-product__rating--top{color:#fc0;z-index:1}.bc-single-product__rating--bottom,.bc-single-product__rating--top{padding:0;width:90px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-pack:distribute;justify-content:space-around;-ms-flex-align:center;align-items:center}.bc-single-product__rating--bottom{z-index:0}.bc-rating-star:before{content:"\2605";font-size:15px}.bc-single-product__rating-reviews{font-size:12px;font-weight:700;margin-left:10px;display:inline-block;vertical-align:middle}.bc-product__spec-list{list-style:none;margin:0;padding:0;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;max-width:100%;margin-left:auto;margin-right:auto}.bc-product__spec{font-size:14px;-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 10px);flex-basis:calc(50% - 10px);width:calc(50% - 10px);height:calc(50% - 10px)}.bc-product__spec:nth-child(1n){margin-right:20px;margin-bottom:20px;margin-left:0}.bc-product__spec:last-child{margin-right:0;margin-bottom:0}.bc-product__spec:nth-child(2n){margin-right:0;margin-left:auto}.bc-product__spec:nth-last-child(-n+2){margin-bottom:0}@media (min-width:768px){.bc-product__spec{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.33333% - 13.33333px);flex-basis:calc(33.33333% - 13.33333px);width:calc(33.33333% - 13.33333px);height:calc(33.33333% - 13.33333px)}.bc-product__spec:nth-child(1n){margin-right:20px;margin-bottom:20px;margin-left:0}.bc-product__spec:last-child{margin-right:0;margin-bottom:0}.bc-product__spec:nth-child(3n){margin-right:0;margin-left:auto}.bc-product__spec:nth-last-child(-n+3){margin-bottom:0}}@media (min-width:960px){.bc-product__spec{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(25% - 15px);flex-basis:calc(25% - 15px);width:calc(25% - 15px);height:calc(25% - 15px)}.bc-product__spec:nth-child(1n){margin-right:20px;margin-bottom:20px;margin-left:0}.bc-product__spec:last-child{margin-right:0;margin-bottom:0}.bc-product__spec:nth-child(4n){margin-right:0;margin-left:auto}.bc-product__spec:nth-last-child(-n+4){margin-bottom:0}}.bc-single-product__related{padding:50px 0 0;border-top:1px solid #e0e3e9}.bc-single-product__related .bc-form.bc-product-form,.bc-single-product__related button.bc-btn{margin-top:0}.bc-single-product__section-title--related{font-size:24px;margin-bottom:0}.bc-product-archive__refinery{width:100%;margin:40px 0 80px}.bc-product-archive__refinery .bc-form{width:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}@media (min-width:1200px){.bc-product-archive__refinery .bc-form{-ms-flex-pack:start;justify-content:flex-start}}.bc-product-archive__search{position:relative;-ms-flex:1 1 100%;flex:1 1 100%}@media (min-width:1200px){.bc-product-archive__search{margin-right:auto;-ms-flex:0 1 270px;flex:0 1 270px}}.bc-product-archive__select{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;margin-top:15px;-ms-flex:1 1 100%;flex:1 1 100%}@media (min-width:500px){.bc-product-archive__select{-ms-flex-wrap:nowrap;flex-wrap:nowrap}}@media (min-width:768px){.bc-product-archive__select{-ms-flex:0 1 calc(33.3333% - 20px);flex:0 1 calc(33.3333% - 20px);-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:20px}.bc-product-archive__select:last-child{margin-right:0}}@media (min-width:1200px){.bc-product-archive__select{-ms-flex-wrap:nowrap;flex-wrap:nowrap;margin-top:0;-ms-flex:0 1 auto;flex:0 1 auto}}.bc-product-archive__select-label{font-size:12px;text-transform:uppercase;margin-right:10px;font-weight:700;-ms-flex:0 0 100%;flex:0 0 100%}@media (min-width:500px){.bc-product-archive__select-label{-ms-flex:0 0 150px;flex:0 0 150px}}@media (min-width:768px){.bc-product-archive__select-label{-ms-flex:0 0 100%;flex:0 0 100%}}@media (min-width:960px){.bc-product-archive__select-label{-ms-flex:0 0 auto;flex:0 0 auto}}.bc-product-archive__select-field{-ms-flex:0 0 100%;flex:0 0 100%}@media (min-width:500px){.bc-product-archive__select-field{-ms-flex:1 1 100%;flex:1 1 100%}}@media (min-width:768px){.bc-product-archive__select-field{-ms-flex:0 0 100%;flex:0 0 100%}}@media (min-width:960px){.bc-product-archive__select-field{-ms-flex:0 1 auto;flex:0 1 auto}}.bc-form .bc-product-archive__select-field{font-size:12px;color:#8b8b8b}.bc-product-archive__search-submit{position:absolute;right:0;top:0;transition:all .15s ease-in-out;height:100%;font-size:16px}.bc-product-archive__search-submit.bc-btn.bc-btn--small{max-width:none;width:auto}.bc-subnav__list{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap;list-style:none;margin:0;padding:0}@media (min-width:600px){.bc-subnav__list{-ms-flex-direction:row;flex-direction:row}}.bc-subnav__list-item{margin-bottom:20px;padding:0}@media (min-width:600px){.bc-subnav__list-item+.bc-subnav__list-item{margin-left:30px}}@media (min-width:768px){.bc-subnav__list-item{margin-bottom:40px}}.bc-subnav__link{cursor:pointer;margin:0;padding:0;text-decoration:none}.bc-subnav__list-item--current .bc-subnav__link{color:currentColor}.bc-alert{background-color:#168fc0;color:#fff;font-size:16px;line-height:1.5;padding:12px 16px;margin-bottom:40px}@media (min-width:768px){.bc-alert{margin-bottom:60px}}.bc-alert--success{background-color:#3ec889}.bc-alert--error{background-color:#ff0012}.bc-alert-group .bc-alert:not(:last-child){margin-bottom:10px}.bc-alert-group--info{background-color:#cdcdcd;color:#34313f;font-size:14px}.bc-product-form .bc-alert-group--info{margin-bottom:0}.bc-alert-group--error{opacity:0;height:0;overflow:hidden;visibility:hidden;transition:all .15s ease-in-out}.bc-alert-group.bc-fade-in-alert-group{opacity:1;visibility:visible;height:auto}.bc-form__error-message{color:#ff0012;display:block;margin-top:10px;margin-bottom:10px;font-weight:400;font-size:13px}.bc-load-items{position:relative}.bc-load-items-container--has-pages{padding-bottom:40px}.bc-load-items-container--has-pages>:not(.bc-load-items__trigger){opacity:0;transition:opacity .3s ease}.bc-load-items-container--has-pages>:not(.bc-load-items__trigger).item-initialized{opacity:1}.bc-load-items__loader{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);opacity:0;transition:opacity .3s ease}.bc-load-items__loader.active{opacity:1}.bc-load-items__trigger,.bc-load-more-items{width:100%;text-align:center}.bc-load-more-items{margin-top:20px}.bc-load-items__trigger-btn,.bc-no-results__button{background:transparent;color:#5273f4;font-size:14px;line-height:14px;outline:none;border:0;cursor:pointer}.bc-load-items__trigger-btn[disabled],.bc-no-results__button[disabled]{opacity:.5;cursor:not-allowed}.bc-load-items__trigger-btn:focus,.bc-load-items__trigger-btn:hover,.bc-no-results__button:focus,.bc-no-results__button:hover{background:transparent;color:#4b69e0}.bc-load-items__trigger-btn:focus[disabled],.bc-load-items__trigger-btn:hover[disabled],.bc-no-results__button:focus[disabled],.bc-no-results__button:hover[disabled]{background:transparent;color:#4b69e0;cursor:default}.bc-load-items__trigger-btn .bc-icon,.bc-no-results__button .bc-icon{display:block;margin-top:14px;text-align:center;font-size:18px}.bc-pagination__error-message{display:block;font-size:14px}.bc-order-product-row{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}@media (min-width:768px){.bc-order-product-row{-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap}}.bc-order-product-row__image{-ms-flex:0 0 100px;flex:0 0 100px;position:relative;margin-bottom:12px;max-width:100px}@media (min-width:768px){.bc-order-product-row__image{margin:0 20px 0 0}}.bc-order-product-row__image img{display:block;width:100%;height:auto}.bc-order-product-row__body{-ms-flex:1 1 auto;flex:1 1 auto;margin-bottom:12px}@media (min-width:768px){.bc-order-product-row__body{margin:0 20px 0 0;max-width:550px}}.bc-order-product-row__header .bc-order-product-row__title{font-size:20px;line-height:24px;margin:0 10px 0 0}@media (min-width:960px){.bc-order-product-row__header .bc-order-product-row__title{font-size:24px;line-height:32px}}.bc-order-product-row__header .bc-product-flag--grey{margin-bottom:5px}.bc-order-product-row__brand,.bc-order-product-row__option,.bc-order-product-row__unit-price{font-size:16px;line-height:22px;margin-bottom:4px}.bc-order-product-row__brand{font-weight:700}.bc-order-product-row__option,.bc-order-product-row__options-list{list-style:none;margin:0;padding:0}.bc-order-product-row__options-list{margin-top:8px}.bc-order-product-row__option{color:#8b8b8b;font-size:12px;line-height:18px;margin-top:10px}.bc-order-product-row__option-label{font-weight:600}.bc-order-product-row__option-value{font-weight:300}.bc-order-product-row__status{font-size:16px;font-weight:700;line-height:22px;margin-bottom:12px}@media (min-width:768px){.bc-order-product-row__status{-ms-flex-item-align:center;align-self:center;-ms-flex:0 0 150px;flex:0 0 150px;font-size:20px;line-height:24px;margin:0 0 0 auto}}.bc-order-product-row__quantity{font-size:12px;font-weight:700;line-height:18px;margin-bottom:12px}@media (min-width:768px){.bc-order-product-row__quantity{-ms-flex:0 0 100px;flex:0 0 100px;margin-bottom:0;margin-left:auto}}.bc-order-product-row__total{font-size:16px;font-weight:700;line-height:22px;margin-bottom:26px}@media (min-width:768px){.bc-order-product-row__total{-ms-flex:0 0 150px;flex:0 0 150px;font-size:20px;text-align:right;margin-bottom:0}}.bc-cart-item-image .bc-product__thumbnail-link,.bc-order-product-row__image .bc-product__thumbnail-link{display:block;box-shadow:none;text-decoration:none;border:0;opacity:1;transition:opacity .3s ease}.bc-cart-item-image .bc-product__thumbnail-link:focus,.bc-cart-item-image .bc-product__thumbnail-link:hover,.bc-order-product-row__image .bc-product__thumbnail-link:focus,.bc-order-product-row__image .bc-product__thumbnail-link:hover{opacity:.8}.bc-account-login__form input[type=submit],.bc-btn,.entry-content .bc-btn,.entry-content a.bc-btn,.entry-content button.bc-btn,a.bc-btn,button.bc-btn{display:inline-block;font-family:sans-serif;width:100%;padding:15px 20px;border-radius:0;font-weight:600;line-height:20px;font-size:13px;text-transform:uppercase;text-align:center;text-decoration:none;box-shadow:none;opacity:1;transition:all .15s ease-in-out}@media (min-width:960px){.bc-account-login__form input[type=submit],.bc-btn,.entry-content .bc-btn,.entry-content a.bc-btn,.entry-content button.bc-btn,a.bc-btn,button.bc-btn{max-width:270px}}.bc-account-login__form input[type=submit]:focus,.bc-account-login__form input[type=submit]:hover,.bc-btn:focus,.bc-btn:hover,.entry-content .bc-btn:focus,.entry-content .bc-btn:hover,.entry-content a.bc-btn:focus,.entry-content a.bc-btn:hover,.entry-content button.bc-btn:focus,.entry-content button.bc-btn:hover,a.bc-btn:focus,a.bc-btn:hover,button.bc-btn:focus,button.bc-btn:hover{opacity:.9;text-decoration:none;box-shadow:none}.bc-account-login__form input[type=submit][disabled],.bc-btn[disabled],.entry-content .bc-btn[disabled],.entry-content a.bc-btn[disabled],.entry-content button.bc-btn[disabled],a.bc-btn[disabled],button.bc-btn[disabled]{background-color:#5e5e5e;color:#fff;padding:15px 20px;line-height:20px;font-family:sans-serif;opacity:.6;cursor:not-allowed}.bc-account-login__form input[type=submit][disabled]:focus,.bc-account-login__form input[type=submit][disabled]:hover,.bc-btn[disabled]:focus,.bc-btn[disabled]:hover,.entry-content .bc-btn[disabled]:focus,.entry-content .bc-btn[disabled]:hover,.entry-content a.bc-btn[disabled]:focus,.entry-content a.bc-btn[disabled]:hover,.entry-content button.bc-btn[disabled]:focus,.entry-content button.bc-btn[disabled]:hover,a.bc-btn[disabled]:focus,a.bc-btn[disabled]:hover,button.bc-btn[disabled]:focus,button.bc-btn[disabled]:hover{background-color:#5e5e5e;color:#fff;padding:15px 20px;line-height:20px;font-family:sans-serif;opacity:.6}.bc-account-login__form input[type=submit]--small,.bc-btn--small,.entry-content .bc-btn--small,.entry-content a.bc-btn--small,.entry-content button.bc-btn--small,a.bc-btn--small,button.bc-btn--small{padding:8px 16px}.bc-account-login__form input[type=submit]--inverse,.bc-btn--inverse,.entry-content .bc-btn--inverse,.entry-content a.bc-btn--inverse,.entry-content button.bc-btn--inverse,a.bc-btn--inverse,button.bc-btn--inverse{padding:11px 20px;box-sizing:border-box;background-color:transparent;border:4px solid}.bc-quickview-trigger,button.bc-quickview-trigger{position:relative;background:transparent;color:inherit;text-transform:none;text-align:left;padding:0}.bc-quickview-trigger:focus,.bc-quickview-trigger:hover,button.bc-quickview-trigger:focus,button.bc-quickview-trigger:hover{background:transparent;transition:opacity .3s ease}.bc-quickview-trigger:focus .bc-quickview-trigger--hover,.bc-quickview-trigger:hover .bc-quickview-trigger--hover,button.bc-quickview-trigger:focus .bc-quickview-trigger--hover,button.bc-quickview-trigger:hover .bc-quickview-trigger--hover{opacity:1}.bc-quickview-trigger--hover{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;background-color:rgba(224,227,233,.72);transition:opacity .3s ease}.bc-quickview-trigger--hover-label{position:absolute;left:50%;top:50%;transform:translate3d(-50%,-50%,0);width:70%;padding:12px 14px;background-color:#fff;color:#34313f;font-weight:400;font-size:14px;border-radius:20px;text-align:center}.bc-product-card{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.bc-product-card .bc-quickview-trigger{-ms-flex:0 0 auto;flex:0 0 auto;display:-ms-flexbox;display:flex}.bc-product-card .bc-product__actions{-ms-flex-item-align:end;align-self:flex-end;width:100%;-ms-flex:0 0 auto;flex:0 0 auto}.bc-product-card .bc-btn,.bc-product-card a.bc-btn,.bc-product-card button.bc-btn{max-width:100%}.bc-product-card__featured-image{position:relative;width:100%}.bc-product-card__featured-image img{display:block;width:100%;height:auto}.bc-product__meta{padding:25px 0 50px;width:100%;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;-ms-flex:1 1 auto;flex:1 1 auto}.bc-product-card--single{max-width:none;position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:60px 0}@media (min-width:960px){.bc-product-card--single{-ms-flex-direction:column;flex-direction:column}}.bc-product-card--single .bc-product__gallery{position:relative;-ms-flex-order:2;order:2;width:100%}@media (min-width:768px){.bc-product-card--single .bc-product__gallery{width:calc(50% - 30px)}}@media (min-width:960px){.bc-product-card--single .bc-product__gallery{position:absolute;height:100%;width:50%;max-width:370px;left:0;top:0;-ms-flex-order:1;order:1}}.bc-product-card--single .bc-product__meta{padding:0;-ms-flex-order:1;order:1}@media (min-width:960px){.bc-product-card--single .bc-product__meta{-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-order:2;order:2;-ms-flex-item-align:end;align-self:flex-end;width:calc(50% - 30px)}}.bc-product-card--single .bc-product__actions{-ms-flex-order:3;order:3;width:100%}@media (min-width:768px){.bc-product-card--single .bc-product__actions{width:calc(50% + 30px);padding-left:60px}}@media (min-width:960px){.bc-product-card--single .bc-product__actions{-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-order:3;order:3;padding:0;-ms-flex-item-align:end;align-self:flex-end;width:calc(50% - 30px)}}.bc-product-card--single .bc-btn{margin-top:40px}.bc-order-card__body{display:-ms-flexbox;display:flex;-ms-flex-direction:column-reverse;flex-direction:column-reverse}@media (min-width:768px){.bc-order-card__body{-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap}}.bc-order-card__featured-image{-ms-flex:0 0 100px;flex:0 0 100px;position:relative;max-width:100px}@media (min-width:768px){.bc-order-card__featured-image{margin-right:20px}}.bc-order-card__featured-image img{display:block;width:100%;height:auto}.bc-order-card__featured-image .bc-order-card__featured-image-link{box-shadow:none;display:block;opacity:1;transition:all .15s ease-in-out}.bc-order-card__featured-image .bc-order-card__featured-image-link:focus,.bc-order-card__featured-image .bc-order-card__featured-image-link:hover{opacity:.8}.bc-order-card__meta{-ms-flex:1 1 auto;flex:1 1 auto}@media (min-width:768px){.bc-order-card__meta-inner{margin-right:20px;max-width:550px}}.bc-order-card__title{margin-bottom:12px}.bc-order-card__title .bc-order-card__order-title{font-size:20px;line-height:24px;margin:0}@media (min-width:960px){.bc-order-card__title .bc-order-card__order-title{font-size:24px;line-height:32px}}@media (min-width:1200px){.bc-order-card__title .bc-order-card__order-title{font-size:24px;line-height:32px}}.bc-order-card__order-title .bc-order-card__title-link{text-decoration:none;box-shadow:none;color:currentColor;opacity:1;transition:all .15s ease-in-out}.bc-order-card__order-title .bc-order-card__title-link:focus,.bc-order-card__order-title .bc-order-card__title-link:hover{color:currentColor;opacity:.8}.bc-order-card__total{font-size:16px;font-weight:700;line-height:22px;margin-bottom:26px}@media (min-width:768px){.bc-order-card__total{font-size:20px;margin-bottom:20px}}.bc-order-card-meta__list{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:6px}@media (min-width:768px){.bc-order-card-meta__list{margin-bottom:20px}}.bc-order-card-meta__list-item{width:50%;margin-bottom:16px}@media (min-width:768px){.bc-order-card-meta__list-item{margin-bottom:0;width:auto}.bc-order-card-meta__list-item+.bc-order-card-meta__list-item{margin-left:30px}}.bc-order-card__status{font-size:16px;font-weight:700;line-height:22px;margin-bottom:12px}@media (min-width:768px){.bc-order-card__status{-ms-flex-item-align:center;align-self:center;-ms-flex:0 0 150px;flex:0 0 150px;font-size:20px;line-height:24px;margin:0 0 0 auto}}.bc-product-grid{width:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:40px 0}.bc-product-grid>.bc-product-card{width:100%;max-width:370px;margin:0 auto 60px}@media (min-width:768px){.bc-product-grid--2col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 15px);flex-basis:calc(50% - 15px);max-width:calc(50% - 15px);width:calc(50% - 15px)}.bc-product-grid--2col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--2col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--2col>.bc-product-card:nth-child(2n){margin-right:0;margin-left:auto}}@media (min-width:768px){.bc-product-grid--3col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 15px);flex-basis:calc(50% - 15px);max-width:calc(50% - 15px);width:calc(50% - 15px)}.bc-product-grid--3col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--3col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--3col>.bc-product-card:nth-child(2n){margin-right:0;margin-left:auto}}@media (min-width:960px){.bc-product-grid--3col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.32667% - 20px);flex-basis:calc(33.32667% - 20px);max-width:calc(33.32667% - 20px);width:calc(33.32667% - 20px)}.bc-product-grid--3col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--3col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--3col>.bc-product-card:nth-child(3n){margin-right:0;margin-left:auto}}@media (min-width:500px){.bc-product-grid--4col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 15px);flex-basis:calc(50% - 15px);max-width:calc(50% - 15px);width:calc(50% - 15px)}.bc-product-grid--4col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--4col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--4col>.bc-product-card:nth-child(2n){margin-right:0;margin-left:auto}}@media (min-width:600px){.bc-product-grid--4col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.33333% - 20px);flex-basis:calc(33.33333% - 20px);max-width:calc(33.33333% - 20px);width:calc(33.33333% - 20px)}.bc-product-grid--4col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--4col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--4col>.bc-product-card:nth-child(3n){margin-right:0;margin-left:auto}}@media (min-width:960px){.bc-product-grid--4col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(24.995% - 22.5px);flex-basis:calc(24.995% - 22.5px);max-width:calc(24.995% - 22.5px);width:calc(24.995% - 22.5px)}.bc-product-grid--4col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--4col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--4col>.bc-product-card:nth-child(4n){margin-right:0;margin-left:auto}}@media (min-width:500px){.bc-product-grid--5col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 15px);flex-basis:calc(50% - 15px);max-width:calc(50% - 15px);width:calc(50% - 15px)}.bc-product-grid--5col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--5col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--5col>.bc-product-card:nth-child(2n){margin-right:0;margin-left:auto}}@media (min-width:600px){.bc-product-grid--5col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.33333% - 20px);flex-basis:calc(33.33333% - 20px);max-width:calc(33.33333% - 20px);width:calc(33.33333% - 20px)}.bc-product-grid--5col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--5col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--5col>.bc-product-card:nth-child(3n){margin-right:0;margin-left:auto}}@media (min-width:960px){.bc-product-grid--5col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(24.995% - 22.5px);flex-basis:calc(24.995% - 22.5px);max-width:calc(24.995% - 22.5px);width:calc(24.995% - 22.5px)}.bc-product-grid--5col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--5col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--5col>.bc-product-card:nth-child(4n){margin-right:0;margin-left:auto}}@media (min-width:1200px){.bc-product-grid--5col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(19.996% - 24px);flex-basis:calc(19.996% - 24px);max-width:calc(19.996% - 24px);width:calc(19.996% - 24px)}.bc-product-grid--5col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--5col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--5col>.bc-product-card:nth-child(5n){margin-right:0;margin-left:auto}}.bc-product-grid--related{padding-bottom:0}.bc-no-results{text-align:center;width:100%}.bc-no-results__message{font-size:22px;line-height:24px}.bc-no-results__button{margin:0 auto;font-size:16px;text-decoration:none}.bc-product-single{max-width:970px;padding:0 20px;margin:0 auto}.bc-product-single .bc-product-single__top{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between}@media (min-width:768px){.bc-product-single .bc-product-single__top{-ms-flex-wrap:nowrap;flex-wrap:nowrap}}.bc-product-single .bc-product__gallery{position:relative;-ms-flex-order:2;order:2;-ms-flex:1 1 100%;flex:1 1 100%}@media (min-width:768px){.bc-product-single .bc-product__gallery{-ms-flex-order:1;order:1;-ms-flex:0 0 370px;flex:0 0 370px;margin-right:30px}}.bc-product-single .bc-product-single__meta{-ms-flex:1 1 100%;flex:1 1 100%;-ms-flex-order:1;order:1}@media (min-width:768px){.bc-product-single .bc-product-single__meta{-ms-flex-order:2;order:2;-ms-flex:0 0 auto;flex:0 0 auto;width:calc(50% - 60px)}}.bc-product-single .bc-product__sku{display:block;margin-top:20px;font-size:14px}.bc-product-single .bc-product-single__meta-label{font-size:16px;font-weight:700}.bc-product-single .bc-btn,.bc-product-single .bc-product-form{margin-top:40px}.bc-product-single .bc-single-product__description{margin-top:60px;width:100%;padding:50px 0;border-top:1px solid #e0e3e9}.bc-product-single .bc-single-product__specifications{width:100%;padding-bottom:50px}.bc-product-single .bc-single-product__section-title{font-weight:700;margin-bottom:20px;font-size:16px}.bc-product-single .bc-single-product__section-title--related{font-size:24px}.bc-product-single .bc-single-product__ratings{margin-top:20px}.bc-product-form__quantity{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;margin-bottom:20px}.bc-product-form__quantity-label{margin-right:10px}input.bc-product-form__quantity-input[type=number]{background:#fff;border:1px solid #e0e3e9;font-size:13px;text-align:center;width:42px}@media (min-width:768px){input.bc-product-form__quantity-input[type=number]{font-size:16px;width:52px}}input.bc-product-form__quantity-input[type=number]:focus{box-shadow:0 0 0 1px #e0e3e9}.bc-product-quick-view__overlay{position:fixed;top:0;right:0;height:100vh;width:100vw;background:rgba(0,0,0,.7)}.bc-product-quick-view__wrapper{position:absolute;top:0;right:0;height:100vh;width:100vw;z-index:50}.bc-product-quick-view__wrapper[aria-hidden=true]{display:none}button.bc-product-quick-view__close-button{position:absolute;right:0;top:0;color:#34313f;font-size:30px;z-index:2;background:transparent;padding:10px;opacity:.65;transition:all .15s ease-in-out;width:auto}button.bc-product-quick-view__close-button:focus,button.bc-product-quick-view__close-button:hover{opacity:1;background:transparent}.bc-product-quick-view__content{background:#fff;position:absolute;width:calc(100vw - 20%);height:auto;left:50%;top:0;margin:40px 0;transform:translateX(-50%);overflow-y:scroll}@media (min-width:960px){.bc-product-quick-view__content{height:calc(100vh - 20%);max-width:1140px;max-height:660px;margin:0;top:50%;transform:translate3d(-50%,-50%,0)}.browser-ie .bc-product-quick-view__content{min-height:660px}}.bc-product-quick-view__content *{box-sizing:border-box}.bc-product-quick-view__content>div{height:100%}.bc-product-quick-view__content-inner{position:relative;padding:60px}.bc-product-quick-view__content-inner .bc-product-card{margin:0;height:100%}@media (min-width:960px){.bc-product-quick-view__content-inner .bc-product__gallery{height:auto;padding-bottom:60px;-ms-flex:1 1 100%;flex:1 1 100%}}.bc-product-quick-view__content-inner .bc-product__meta{width:100%}@media (min-width:768px){.bc-product-quick-view__content-inner .bc-product__meta{margin-bottom:40px}}@media (min-width:960px){.bc-product-quick-view__content-inner .bc-product__meta{width:calc(50% - 30px)}}@media (min-width:1200px){.bc-product-quick-view__content-inner .bc-product__meta{padding-left:0}}.bc-product-quick-view__content-inner .bc-product__pricing,.bc-product-quick-view__content-inner .bc-single-product__ratings{margin-bottom:20px}.bc-product-quick-view__content-inner .bc-product-single__meta-label{font-weight:700}.bc-product-quick-view__content-inner .bc-product__description{-ms-flex-order:4;order:4;width:100%;margin-top:40px;padding-top:30px;border-top:1px solid #e0e3e9}@media (min-width:960px){.bc-product-quick-view__content-inner .bc-product__description{width:calc(50% - 30px);-ms-flex-item-align:end;align-self:flex-end}}@media (min-width:1200px){.bc-product-quick-view__content-inner .bc-product__description{-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-order:4;order:4;padding-left:0;width:calc(50% - 30px)}}.bc-single-product__reviews{border-top:1px solid #e0e3e9;padding-top:36px;padding-bottom:36px}.bc-single-product__reviews .bc-alert--success{margin-top:24px;margin-bottom:24px}.bc-product-reviews__title{display:inline;vertical-align:baseline;margin-right:15px}.bc-product-reviews__ratings-total{display:inline-block;vertical-align:baseline}.bc-product-review-form-wrapper{border-top:1px solid #fff;border-bottom:1px solid #fff;margin-top:0;padding:0;transition:all .15s ease-in-out}.bc-product-review-form-wrapper.bc-product-review-form--active{border-top-color:#e0e3e9;border-bottom-color:#e0e3e9;margin-top:38px;padding:40px 0;transition:all .15s ease-in-out}@media (min-width:768px){.bc-product-review-form-wrapper.bc-product-review-form--active{padding:50px 0}}.bc-product-review-form{height:100%;overflow:hidden;max-height:0}.bc-product-review-form--active .bc-product-review-form{max-height:2000px}.bc-product-review-form .bc-btn--review{margin:0}@media (min-width:768px){.bc-product-review-form .bc-form{width:70%}}@media (min-width:960px){.bc-product-review-form .bc-form{width:50%}}.bc-form .bc-form__actions--review{-ms-flex-pack:start;justify-content:flex-start}.bc-product-review__cancel-write-btn,.bc-product-review__write-btn,.bc-single-product__reviews-anchor{background:transparent;border:0;padding:0;text-transform:none;margin:0;opacity:1;transition:all .15s ease-in-out}.bc-product-review__cancel-write-btn:focus,.bc-product-review__cancel-write-btn:hover,.bc-product-review__write-btn:focus,.bc-product-review__write-btn:hover,.bc-single-product__reviews-anchor:focus,.bc-single-product__reviews-anchor:hover{opacity:.9;background:unset;border:0}.bc-product-review__cancel-write-btn:disabled,.bc-product-review__write-btn:disabled,.bc-single-product__reviews-anchor:disabled{color:#34313f;padding:0;background-color:transparent;opacity:1}.bc-product-review__cancel-write-btn:disabled:focus,.bc-product-review__cancel-write-btn:disabled:hover,.bc-product-review__write-btn:disabled:focus,.bc-product-review__write-btn:disabled:hover,.bc-single-product__reviews-anchor:disabled:focus,.bc-single-product__reviews-anchor:disabled:hover{padding:0;background-color:transparent;color:#34313f;text-transform:none}.bc-product-review-form--active .bc-product-review__write-btn,.bc-product-review__cancel-write-btn{display:none}.bc-product-review-form--active .bc-product-review__cancel-write-btn{display:inline-block}.bc-product-review-list{margin-top:42px}.bc-product-review{margin-bottom:42px}.bc-product-review__title{display:inline;margin-right:12px;vertical-align:middle;margin-bottom:0}.bc-product-review__header{margin-bottom:6px}.bc-product-review__rating{display:inline-block;vertical-align:middle}.bc-product-review__meta{font-size:14px;line-height:18px;margin-bottom:15px}.bc-product-review__content{font-size:16px;line-height:24px}@media (min-width:768px){.bc-product-review__content{width:70%}}.bc-cart{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;max-width:1140px;margin-left:auto;margin-right:auto;opacity:1;transition:all .15s ease-in-out}.bc-cart.bc-updating-cart{opacity:.4}.bc-cart__empty{width:100%;text-align:center;border-top:1px solid #e0e3e9;border-bottom:1px solid #e0e3e9;padding:40px 0}.bc-cart-header{width:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.bc-cart-header>div{padding:20px 0;font-size:14px;font-weight:700}@media (min-width:768px){.bc-cart-header>div{padding:40px 0}}.bc-cart-header__item{-ms-flex:1 1 auto;flex:1 1 auto}.bc-cart-header__qty{-ms-flex:0 0 42px;flex:0 0 42px}@media (min-width:768px){.bc-cart-header__qty{-ms-flex:0 0 70px;flex:0 0 70px}}@media (min-width:960px){.bc-cart-header__qty{-ms-flex:0 0 120px;flex:0 0 120px}}.bc-cart-header__price{-ms-flex:0 0 70px;flex:0 0 70px}@media (min-width:960px){.bc-cart-header__price{-ms-flex:0 0 120px;flex:0 0 120px}}.bc-cart-body{width:100%;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.bc-cart-body,.bc-cart-item{display:-ms-flexbox;display:flex}.bc-cart-item{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:99.99999%;flex-basis:99.99999%;max-width:99.99999%;width:99.99999%;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:center;align-items:center;position:relative;border-top:1px solid #e0e3e9;padding:30px 0}.bc-cart-item:nth-child(1n){margin-left:0}.bc-cart-item:last-child{margin-right:0}.bc-cart-item:nth-child(1n){margin-right:0;margin-left:auto}@media (min-width:768px){.bc-cart-item{font-size:16px}}@media (min-width:960px){.bc-cart-item{padding:44px 0}}.bc-cart-item:last-child{border-bottom:1px solid #e0e3e9}.bc-cart-item__remove-button{display:block;background:transparent;color:#5273f4;font-size:10px;text-transform:none;padding:5px 0;font-weight:700}@media (min-width:768px){.bc-cart-item__remove-button{font-size:16px;margin:0 auto}}.bc-cart-item__remove-button:focus,.bc-cart-item__remove-button:hover{background:transparent;color:#5e5e5e}.bc-cart-item__remove-button:focus[disabled],.bc-cart-item__remove-button:hover[disabled]{text-transform:none;background:transparent;color:#5e5e5e;padding:5px;opacity:.4}.bc-cart-item-image{-ms-flex:0 0 60px;flex:0 0 60px;margin-right:10px;-ms-flex-item-align:start;align-self:flex-start}@media (min-width:960px){.bc-cart-item-image{-ms-flex:0 0 110px;flex:0 0 110px;margin-right:30px}}.bc-cart-item-image img{max-width:50px;width:100%;height:auto}@media (min-width:768px){.bc-cart-item-image img{max-width:110px}}.bc-cart-item-meta{-ms-flex:1 1 auto;flex:1 1 auto;padding-right:5px;-ms-flex-item-align:start;align-self:flex-start}.bc-cart-item-meta .bc-cart-item__product-title{margin:0;font-size:16px;line-height:18px}@media (min-width:768px){.bc-cart-item-meta .bc-cart-item__product-title{font-size:18px;line-height:22px}}@media (min-width:960px){.bc-cart-item-meta .bc-cart-item__product-title{font-size:20px;line-height:24px}}@media (min-width:1200px){.bc-cart-item-meta .bc-cart-item__product-title{font-size:24px;line-height:32px}}.bc-cart-item__product-brand{display:block;font-weight:700;margin-top:10px;font-size:14px}.bc-cart-item__product-option{display:block;font-size:12px;line-height:18px;margin-top:10px;color:#8b8b8b}.bc-cart-item__product-option-label{font-weight:600}.bc-cart-item__product-option-value{font-weight:300}.bc-cart-item-quantity{-ms-flex:0 0 42px;flex:0 0 42px}@media (min-width:768px){.bc-cart-item-quantity{-ms-flex:0 0 70px;flex:0 0 70px}}@media (min-width:960px){.bc-cart-item-quantity{-ms-flex:0 0 120px;flex:0 0 120px}}.bc-cart-item-quantity input.bc-cart-item__quantity-input{text-align:center;background:#fff;border:1px solid #e0e3e9;font-size:13px;width:42px}@media (min-width:768px){.bc-cart-item-quantity input.bc-cart-item__quantity-input{font-size:16px;width:52px}}.bc-cart-item-quantity input.bc-cart-item__quantity-input:focus{box-shadow:0 0 0 1px #e0e3e9}.bc-cart-item-total-price{-ms-flex:0 0 70px;flex:0 0 70px;margin-left:10px;font-weight:700;font-size:14px}@media (min-width:960px){.bc-cart-item-total-price{-ms-flex:0 0 120px;flex:0 0 120px;font-size:20px}}.bc-cart-footer{width:100%}.bc-cart-subtotal,.bc-cart-tax{text-align:right;padding:25px 0 0;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:end;align-items:flex-end}.bc-cart-tax{padding-top:0}.bc-cart-subtotal__label,.bc-cart-tax__label{font-size:13px;margin-right:14px;text-align:right;padding-right:15px;-ms-flex:1 1 auto;flex:1 1 auto}.bc-cart-subtotal__amount,.bc-cart-tax__amount{font-weight:700;text-align:left;-ms-flex:0 0 70px;flex:0 0 70px}@media (min-width:960px){.bc-cart-subtotal__amount,.bc-cart-tax__amount{font-size:20px;-ms-flex:0 0 120px;flex:0 0 120px}}.bc-cart-tax__amount{font-size:16px}.bc-cart-actions{text-align:right;margin-top:30px}.bc-cart-error{width:100%;display:none}.bc-cart-error.message-active{display:block}.bc-cart-error__message{background:#ff8383;font-size:12px;margin:0}.message-active .bc-cart-error__message{padding:10px}.bigcommerce-cart__item-count{display:inline-block;background-color:#5273f4;color:#fff;font-weight:700;border-radius:15px;width:25px;height:25px;font-size:12px;line-height:25px;vertical-align:middle;text-align:center;transform:scale(0);transition:transform .15s cubic-bezier(.645,.045,.355,1)}.bigcommerce-cart__item-count.full{transform:scale(1)}.bc-account-addresses{position:relative}.bc-account-addresses__list{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;position:relative;z-index:1;opacity:1;transition:opacity .3s ease;padding:0;margin:0;list-style:none}.bc-account-addresses__list.bc-account-address--form-active{opacity:0}.bc-account-addresses__list .bc-account-addresses__item{position:relative;padding:30px}.bc-account-addresses__list .bc-account-addresses__add-new{padding:0}.bc-account-addresses__item{display:inline-block;background-color:#f5f5f5;transition:all .15s ease-in-out;width:100%;margin-bottom:30px}.bc-account-addresses__item:not(.bc-account-addresses__add-new):focus,.bc-account-addresses__item:not(.bc-account-addresses__add-new):hover{transform:translateY(-5px);box-shadow:0 4px 4px #e0e3e9}@media (min-width:768px){.bc-account-addresses__item{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.33333% - 20px);flex-basis:calc(33.33333% - 20px);max-width:calc(33.33333% - 20px);width:calc(33.33333% - 20px)}.bc-account-addresses__item:nth-child(1n){margin-right:30px;margin-left:0}.bc-account-addresses__item:last-child{margin-right:0}.bc-account-addresses__item:nth-child(3n){margin-right:0;margin-left:auto}}.bc-account-address__meta>span{display:block;font-size:14px}span.bc-account-address__name{font-weight:700;font-size:20px;line-height:24px;margin-bottom:12px}.bc-account-address__phone{margin-top:20px}.bc-account-address__delete,.bc-account-address__edit,a.bc-account-address__delete,a.bc-account-address__edit,button.bc-account-address__delete,button.bc-account-address__edit{background:transparent;border:0;outline:none;padding:0;text-transform:none;letter-spacing:normal;font-weight:400;font-family:inherit;font-size:14px;text-decoration:none;box-shadow:none!important;opacity:1;transition:opacity .3s ease;margin-top:30px;margin-right:10px}.bc-account-address__delete:focus,.bc-account-address__delete:hover,.bc-account-address__edit:focus,.bc-account-address__edit:hover,a.bc-account-address__delete:focus,a.bc-account-address__delete:hover,a.bc-account-address__edit:focus,a.bc-account-address__edit:hover,button.bc-account-address__delete:focus,button.bc-account-address__delete:hover,button.bc-account-address__edit:focus,button.bc-account-address__edit:hover{background:transparent;opacity:.82}.bc-account-address__delete-form{display:inline-block}.bc-account-addresses__add-new{background-color:transparent;padding:0;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:center;justify-content:center}.bc-account-addresses__add-button,a.bc-account-addresses__add-button,button.bc-account-addresses__add-button{background-color:transparent;color:#34313f;transition:all .15s ease-in-out;width:100%;padding:40px 10px;font-size:20px;line-height:1;text-transform:none;letter-spacing:normal;font-weight:700;border:2px solid #f5f5f5}@media (min-width:768px){.bc-account-addresses__add-button,a.bc-account-addresses__add-button,button.bc-account-addresses__add-button{padding:0}}.bc-account-addresses__add-button .bc-icon,a.bc-account-addresses__add-button .bc-icon,button.bc-account-addresses__add-button .bc-icon{display:block;font-size:16px;margin-bottom:18px}.bc-account-addresses__add-button .bc-icon:before,a.bc-account-addresses__add-button .bc-icon:before,button.bc-account-addresses__add-button .bc-icon:before{font-weight:700}.bc-account-addresses__add-button:focus,.bc-account-addresses__add-button:hover,a.bc-account-addresses__add-button:focus,a.bc-account-addresses__add-button:hover,button.bc-account-addresses__add-button:focus,button.bc-account-addresses__add-button:hover{background-color:#f5f5f5}.bc-account-address-form-actions{display:block;text-align:center;margin:60px auto 20px;-ms-flex:1 1 100%;flex:1 1 100%}.bc-account-address-form-actions>button{margin:0 10px 20px}.bc-account-address__actions--new{-ms-flex:1 1 100%;flex:1 1 100%;display:-ms-flexbox;display:flex;min-height:250px}.bc-account-address__delete-confirmation{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;visibility:hidden;transition:all .15s ease-in-out;z-index:0;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:center;justify-content:center;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-direction:row;flex-direction:row;background:#f5f5f5;padding:30px}.bc-account-address__delete-confirmation>button{margin-bottom:10px}.bc-confirmation-active{opacity:1;visibility:visible;z-index:2}.bc-account-address-form__wrapper{position:absolute;z-index:2;top:0;left:0;width:100%}.bc-account-address-form__wrapper[aria-hidden=true]{display:none}.bc-account-address-form__overlay{background-color:#fff;position:absolute;left:0;top:0;width:100%;height:100%}.bc-account-address-form__content{position:relative}.bc-account-page{border-top:1px solid #e0e3e9;border-bottom:1px solid #e0e3e9;padding:40px 0}@media (min-width:768px){.bc-account-page{padding:60px 0 90px}}.bc-account-login{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%}.bc-account-login__form,.bc-account-login__register{margin-bottom:40px;width:100%}@media (min-width:768px){.bc-account-login__form,.bc-account-login__register{width:50%;margin-bottom:0}}@media (min-width:768px){.bc-account-login__form-inner,.bc-account-login__form form{max-width:370px}}.bc-account-login__form p.login-password,.bc-account-login__form p.login-remember,.bc-account-login__form p.login-username{box-sizing:border-box;margin-bottom:30px}@media (min-width:768px){.bc-account-login__form p.login-password,.bc-account-login__form p.login-remember,.bc-account-login__form p.login-username{margin-bottom:14px;padding-right:28px}}.bc-account-login__form label{display:block;margin-bottom:6px}@media (min-width:768px){.bc-account-login__register{border-left:1px solid #e0e3e9;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.bc-account-login__register-inner{margin-left:28px;max-width:370px}}.bc-account-login__register-title{margin-top:0}.bc-account-login__register-list{margin-left:20px}@media (min-width:768px){.bc-account-register-success{margin:0 auto;max-width:550px;text-align:center}}.bc-order__header{font-size:12px;margin-bottom:20px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.bc-order__link{position:relative;margin-left:10px}.bc-order__link:before{content:"\00B7";margin-right:10px}.bc-order-meta__label,.bc-order-meta__value{font-size:12px;line-height:18px;margin:0;padding:0}.bc-order-meta__label{font-weight:700}.bc-order-meta__value{margin-bottom:0}.bc-order-list,.bc-order-list__item{list-style:none;margin:0}.bc-order-list{padding-bottom:40px}.bc-order-list,.bc-order-list.bc-load-items-container--has-pages{list-style:none}.bc-order-list__item{border-bottom:1px solid #e0e3e9;padding:32px 0}@media (min-width:768px){.bc-order-list__item{padding:50px 0}}.bc-order-list__item:first-child{border-top:1px solid #e0e3e9}.bc-order-card__body{margin-top:40px}.bc-order-detail{border-top:1px solid #e0e3e9;padding-top:50px}.bc-order__product-list,.bc-order__product-list-item{list-style:none;margin:0}.bc-order__product-list{border-bottom:1px solid #e0e3e9;padding-bottom:40px;margin-bottom:46px}.bc-order__product-list-item+.bc-order__product-list-item{margin-top:30px}.bc-order-detail__body{border-bottom:1px solid #e0e3e9;padding-bottom:36px;margin-bottom:48px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}@media (min-width:768px){.bc-order-detail__body{-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:justify;justify-content:space-between}}.bc-order-detail__col{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}@media (min-width:768px){.bc-order-detail__col{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 20px);flex-basis:calc(50% - 20px);max-width:calc(50% - 20px);width:calc(50% - 20px)}.bc-order-detail__col:nth-child(1n){margin-right:40px;margin-left:0}.bc-order-detail__col:last-child{margin-right:0}.bc-order-detail__col:nth-child(2n){margin-right:0;margin-left:auto}}.bc-order-detail-meta__list{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0}.bc-order-detail-meta__list-item{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 10px);flex-basis:calc(50% - 10px);max-width:calc(50% - 10px);width:calc(50% - 10px);margin-bottom:20px}.bc-order-detail-meta__list-item:nth-child(1n){margin-right:20px;margin-left:0}.bc-order-detail-meta__list-item:last-child{margin-right:0}.bc-order-detail-meta__list-item:nth-child(2n){margin-right:0;margin-left:auto}@media (min-width:768px){.bc-order-detail-meta__list-item{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.33333% - 13.33333px);flex-basis:calc(33.33333% - 13.33333px);max-width:calc(33.33333% - 13.33333px);width:calc(33.33333% - 13.33333px);margin-bottom:36px}.bc-order-detail-meta__list-item:nth-child(1n){margin-right:20px;margin-left:0}.bc-order-detail-meta__list-item:last-child{margin-right:0}.bc-order-detail-meta__list-item:nth-child(3n){margin-right:0;margin-left:auto}}.bc-order-detail__shipments{margin-top:16px}.bc-order-shipment{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}@media (min-width:768px){.bc-order-shipment{-ms-flex-direction:row;flex-direction:row}}.bc-order-shipment .bc-order-meta__label{font-size:12px;fonot-weight:700;line-height:18px;letter-spacing:0;text-transform:none;margin:0}.bc-order-shipment+.bc-order-shipment{margin-top:36px}.bc-order-shipment__col{margin-bottom:16px}@media (min-width:768px){.bc-order-shipment__col{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 10px);flex-basis:calc(50% - 10px);max-width:calc(50% - 10px);width:calc(50% - 10px);margin-bottom:0}.bc-order-shipment__col:nth-child(1n){margin-right:20px;margin-left:0}.bc-order-shipment__col:last-child{margin-right:0}.bc-order-shipment__col:nth-child(2n){margin-right:0;margin-left:auto}}.bc-order-shipment__tracking{margin-bottom:0}.bc-order-shipment__tracking-meta{margin-bottom:12px}.bc-order-shipment__address>*{display:block}.bc-order-detail__totals{margin-top:50px}@media (min-width:768px){.bc-order-detail__totals{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.33333% - 13.33333px);flex-basis:calc(33.33333% - 13.33333px);max-width:calc(33.33333% - 13.33333px);width:calc(33.33333% - 13.33333px);margin-top:0}.bc-order-detail__totals:nth-child(1n){margin-right:20px;margin-left:0}.bc-order-detail__totals:last-child{margin-right:0}.bc-order-detail__totals:nth-child(3n){margin-right:0;margin-left:auto}}.bc-order-detail-totals__list,.bc-order-detail-totals__list-item{list-style:none;margin:0;padding:0}.bc-order-detail-totals__list-item{display:-ms-flexbox;display:flex;-ms-flex-wrap:no-wrap;flex-wrap:no-wrap;-ms-flex-pack:justify;justify-content:space-between}.bc-order-detail-totals__list-item+.bc-order-detail-totals__list-item{margin-top:4px}.bc-order-detail-totals__list-item:last-child{margin-top:36px}.bc-order-detail-totals__label,.bc-order-detail-totals__value{font-size:16px;line-height:24px;font-weight:700;margin:0;padding:0}.bc-order-detail-totals__label--lg,.bc-order-detail-totals__value--lg{font-size:20px;line-height:22px}.bc-order-detail-totals__label{color:#8b8b8b}@media (min-width:768px){.bc-account-lost-password{margin:0 auto;max-width:510px}}.bc-account-lost-password__account-actions{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:center;justify-content:center;list-style:none;margin-top:30px}.bc-account-lost-password__account-link+.bc-account-lost-password__account-link{margin-left:30px}.bc-gift-page{border-top:1px solid #e0e3e9;border-bottom:1px solid #e0e3e9;padding:40px 0}@media (min-width:768px){.bc-gift-page{padding:60px 0 68px}}@media (min-width:768px){.bc-gift-purchase .bc-form__row{position:relative}}.bc-gift-purchase .bc-form__col{-ms-flex:0 1 50%;flex:0 1 50%}@media (min-width:768px){.bc-gift-purchase .bc-form__col:first-child{border-right:1px solid #e0e3e9;padding-right:40px}}@media (min-width:768px){.bc-gift-purchase .bc-form__col:last-child{padding-left:40px}}.bc-gift-instructions{margin-top:40px}@media (min-width:768px){.bc-gift-instructions{margin-top:75px}}.bc-gift-instructions ol>li+li{margin-top:16px}@media (min-width:768px){.bc-gift-balance{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap}}@media (min-width:768px){.bc-gift-balance__form,.bc-gift-balance__response{-ms-flex:0 1 50%;flex:0 1 50%}}@media (min-width:768px){.bc-gift-balance__response>*{margin-left:80px}}.bc-gift-balance__container{background-color:#e0e3e9;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-top:40px;padding:74px 20px 72px}@media (min-width:768px){.bc-gift-balance__container{margin-top:0}}.bc-gift-balance__amount,.bc-gift-balance__code,.bc-gift-balance__title{display:block;font-weight:700;line-height:1}.bc-gift-balance__title{font-size:16px;margin-bottom:34px}.bc-gift-balance__amount{font-size:48px;margin-bottom:34px}.bc-gift-balance__code{font-size:16px;text-transform:uppercase} \ No newline at end of file +.u-bc-hidden{display:none!important;visibility:hidden}.u-bc-screen-reader-text,.u-bc-visual-hide,.u-bc-visual-show{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.u-bc-text-light,.u-bc-text-light.bc-btn:focus,.u-bc-text-light.bc-btn:hover{color:#fff}.u-bc-text-dark,.u-bc-text-dark.bc-btn:focus,.u-bc-text-dark.bc-btn:hover{color:#34313f}@font-face{font-family:bigcommerce-icons;src:url(../fonts/icons-bigcommerce/bigcommerce-icons.woff2?mnhepd) format("woff2"),url(../fonts/icons-bigcommerce/bigcommerce-icons.ttf?mnhepd) format("truetype"),url(../fonts/icons-bigcommerce/bigcommerce-icons.woff?mnhepd) format("woff"),url(../fonts/icons-bigcommerce/bigcommerce-icons.svg?mnhepd#bigcommerce-icons) format("svg");font-weight:400;font-style:normal}.bc-icon{font-family:bigcommerce-icons!important;speak:none;font-style:normal;font-weight:400;-webkit-font-feature-settings:normal;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-bc-bigcommerce_diagnostics:before{content:"\e912"}.icon-bc-channel:before,.icon-bc-channel_select:before{content:"\e911"}.icon-bc-credentials:before{content:"\e910"}.icon-bc-sync:before{content:"\e90f"}.icon-bc-accounts:before{content:"\e906"}.icon-bc-analytics:before{content:"\e907"}.icon-bc-cart:before{content:"\e908"}.icon-bc-currency:before{content:"\e909"}.icon-bc-gift_certificates:before{content:"\e90a"}.icon-bc-import:before{content:"\e90b"}.icon-bc-order_confirmation:before{content:"\e90c"}.icon-bc-product_reviews:before{content:"\e90d"}.icon-bc-shipping_returns:before{content:"\e90e"}.dashicons-bigcommerce:before,.icon-bc-b-logo:before{content:"\e901"}.icon-bc-arrow-solid:before{content:"\e902"}.icon-bc-selected:before{content:"\e903"}.icon-bc-arrow-toggle:before{content:"\e905"}.icon-bc-arrow-left:before{content:"\e094"}.icon-bc-arrow-right:before{content:"\e095"}.icon-bc-arrow-up:before{content:"\e096"}.icon-bc-arrow-down:before{content:"\e097"}.icon-bc-plus:before{content:"\e114"}.icon-bc-minus:before{content:"\e115"}.icon-bc-check:before{content:"\e116"}.icon-bc-cross:before{content:"\e117"}.icon-bc-search:before{content:"\e036"}.icon-bc-chevron-down:before{content:"\e900"}.icon-bc-chevron-left:before{content:"\e91a"}.icon-bc-chevron-right:before{content:"\e919"}.icon-bc-chevron-up:before{content:"\e904"}@media (min-width:768px){.bc-form .bc-form__row{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;margin-bottom:56px;width:100%}}@media (min-width:768px){.bc-form .bc-form__col{-ms-flex:1 1 auto;flex:1 1 auto}.bc-form .bc-form__col .bc-form__control:last-child{margin-bottom:0}}.bc-form.bc-form-2col{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%}.bc-form.bc-product-form,.bc-form.bc-product-form button.bc-btn--form-submit{margin:0}.bc-form .bc-form__field-group{border:unset;margin:0;padding:0}@media (min-width:768px){.bc-form .bc-form__field-group+.bc-form__field-group{margin-top:60px}}.bc-form .bc-form-2col__control{width:100%;margin-bottom:30px}@media (min-width:768px){.bc-form .bc-form-2col__control{margin-bottom:14px}.bc-form .bc-form-2col__control:not(.bc-form-2col__control--full){width:50%}.bc-form .bc-form-2col__control--left{padding-right:15px}.bc-form .bc-form-2col__control--right{padding-left:15px}.bc-form .bc-form-2col__control--full{width:100%}}.bc-form .bc-form__control{box-sizing:border-box;display:block;margin-bottom:30px}@media (min-width:768px){.bc-form .bc-form__control{margin-bottom:14px}}.bc-form .bc-form__label{display:block;margin-bottom:6px}.bc-form .bc-form__label.bc-form-control-required{display:-ms-flexbox;display:flex;position:relative}.bc-form .bc-form__label.bc-form-control-required:after{content:"*";font-size:80%;padding-left:2px;color:#d2574a}.bc-form .bc-form-terms{background-color:#e0e3e9;margin-bottom:14px;padding:12px 16px 11px}.bc-form .bc-form-terms .bc-form__control--checkbox{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:0}.bc-form .bc-form-terms .bc-form__control--checkbox>*{margin-bottom:0}.bc-form .bc-form-terms .bc-form__label{margin-right:auto}.bc-form .bc-form-terms .bc-form__label.bc-form-control-required:after{content:"";padding:0}.bc-form .bc-form-terms .bc-form__error-message{margin-right:22px}.bc-form .bc-form__actions{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;margin-top:16px;width:100%}@media (min-width:768px){.bc-form .bc-form__actions{-ms-flex-pack:center;justify-content:center;margin-top:46px}}.bc-form .bc-form__actions--left{-ms-flex-pack:start;justify-content:flex-start}.bc-form.bc-form--has-errors .bc-form__control--error input[type=email],.bc-form.bc-form--has-errors .bc-form__control--error input[type=number],.bc-form.bc-form--has-errors .bc-form__control--error input[type=password],.bc-form.bc-form--has-errors .bc-form__control--error input[type=tel],.bc-form.bc-form--has-errors .bc-form__control--error input[type=text],.bc-form.bc-form--has-errors .bc-form__control--error select,.bc-form.bc-form--has-errors .bc-form__control--error textarea{border:1px solid #ff0012}.bc-form .form-control-bc{transition:all .15s ease-in-out;padding:0 20px;border:1px solid #d3d3d3;display:block;width:100%;height:45px;color:#000;letter-spacing:normal;text-transform:none;font:normal 400 1em/1.5 proxima-nova,Helvetica Neue,Helvetica,Arial,sans-serif}.bc-form .form-control-bc-icon{position:relative}.bc-form .form-control-bc-icon input{padding-right:45px}.bc-form .form-control-bc-icon:before{position:absolute;right:0;top:0;color:#d3d3d3;height:100%;width:45px;line-height:45px;text-align:center;z-index:1;font-size:1.25em}.bc-form .bc-form__control input[type=email],.bc-form .bc-form__control input[type=number],.bc-form .bc-form__control input[type=password],.bc-form .bc-form__control input[type=tel],.bc-form .bc-form__control input[type=text],.bc-form .bc-form__control input[type=url]{border:1px solid #e0e3e9;box-sizing:border-box;font-size:1em;line-height:1.5;height:45px;padding-left:10px;padding-right:10px;width:100%}.bc-form input[type=file]{transition:all .15s ease-in-out;padding:0 20px;border:1px solid #d3d3d3;display:block;width:100%;height:45px;color:#000;letter-spacing:normal;text-transform:none;font:normal 400 1em/1.5 proxima-nova,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1em;height:auto;padding:20px;line-height:1}.bc-form input{display:block}.bc-form input input[type=checkbox],.bc-form input input[type=radio]{height:auto;width:auto;display:inline-block;line-height:normal;padding:0}.bc-form input label{color:#000;cursor:pointer;margin-bottom:0;display:inline-block;letter-spacing:normal;text-transform:none;font:normal 400 .875em/1 proxima-nova,Helvetica Neue,Helvetica,Arial,sans-serif}.bc-form input[type=checkbox],.bc-form input[type=radio]{margin-bottom:0;margin-right:10px}.bc-form input[type=checkbox].form-control-custom-bc-style,.bc-form input[type=radio].form-control-custom-bc-style{transition:all .15s ease-in-out;position:relative;padding-left:34px}.bc-form input[type=checkbox].form-control-custom-bc-style input[type=checkbox],.bc-form input[type=checkbox].form-control-custom-bc-style input[type=radio],.bc-form input[type=radio].form-control-custom-bc-style input[type=checkbox],.bc-form input[type=radio].form-control-custom-bc-style input[type=radio]{position:absolute;left:6px;top:2px;font-size:12px}.bc-form input[type=checkbox].form-control-custom-bc-style label,.bc-form input[type=radio].form-control-custom-bc-style label{max-width:600px}.bc-form input[type=checkbox].form-control-custom-bc-style label:after,.bc-form input[type=checkbox].form-control-custom-bc-style label:before,.bc-form input[type=radio].form-control-custom-bc-style label:after,.bc-form input[type=radio].form-control-custom-bc-style label:before{transition:all .15s ease-in-out;content:"";position:absolute}.bc-form input[type=checkbox].form-control-custom-bc-style label:before,.bc-form input[type=radio].form-control-custom-bc-style label:before{background-color:#fff;width:22.5px;height:22.5px;top:-2px;left:0;border:1px solid #d3d3d3}.bc-form input[type=checkbox].form-control-custom-bc-style label:after,.bc-form input[type=radio].form-control-custom-bc-style label:after{opacity:0}.bc-form input[type=checkbox].form-control-custom-bc-style input:focus+label:before,.bc-form input[type=radio].form-control-custom-bc-style input:focus+label:before{border-color:#9e9e9e;box-shadow:0 0 0 1px #9e9e9e}.bc-form input[type=checkbox].form-control-custom-bc-style input:checked+label,.bc-form input[type=radio].form-control-custom-bc-style input:checked+label{color:#000}.bc-form input[type=checkbox].form-control-custom-bc-style input:checked+label:after,.bc-form input[type=radio].form-control-custom-bc-style input:checked+label:after{opacity:1}.bc-form input[type=checkbox]~input[type=checkbox],.bc-form input[type=radio]~input[type=radio]{margin-top:15px}.bc-form input[type=checkbox].form-control-custom-bc-style label:before{border-radius:0}.bc-form input[type=checkbox].form-control-custom-bc-style label:after{left:7px;top:5px;width:9px;height:5px;border:2px solid #6c6c6c;border-top:none;border-right:none;transform:rotate(-50deg)}.bc-form input[type=radio].form-control-custom-bc-style label:after,.bc-form input[type=radio].form-control-custom-bc-style label:before{border-radius:50%}.bc-form input[type=radio].form-control-custom-bc-style label:after{left:8px;top:6px;width:8px;height:8px;background-color:#6c6c6c}.bc-form .bc-product-form__control--checkbox .bc-product-modifier__label{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:center;align-items:center}.bc-form .bc-product-form__control--checkbox input[type=checkbox],.bc-form .bc-product-form__control--checkbox input[type=radio]{-ms-flex:0 1 auto;flex:0 1 auto}.bc-form .bc-product-form__control--checkbox .bc-product-modifier__label--checkbox{-ms-flex:1;flex:1}.bc-form select{transition:all .15s ease-in-out;padding:0 20px;border:1px solid #d3d3d3;display:block;width:100%;height:45px;color:#000;letter-spacing:normal;text-transform:none;font:normal 400 1em/1.5 proxima-nova,Helvetica Neue,Helvetica,Arial,sans-serif;padding-right:0;cursor:pointer}.bc-form select[multiple]{font-size:1em;height:100px;padding:20px}.bc-form textarea{transition:all .15s ease-in-out;padding:0 20px;border:1px solid #d3d3d3;display:block;width:100%;height:45px;color:#000;letter-spacing:normal;text-transform:none;font:normal 400 1em/1.5 proxima-nova,Helvetica Neue,Helvetica,Arial,sans-serif;resize:none;padding:14px 20px;height:225px}.swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-container-no-flexbox .swiper-slide{float:left}.swiper-container-vertical>.swiper-wrapper{-ms-flex-direction:column;flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:-ms-flexbox;display:flex;transition-property:transform;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-container-multirow>.swiper-wrapper{-ms-flex-wrap:wrap;flex-wrap:wrap}.swiper-container-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-slide{-ms-flex-negative:0;flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-invisible-blank-slide{visibility:hidden}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{-ms-flex-align:start;align-items:flex-start;transition-property:transform,height}.swiper-container-3d{perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:linear-gradient(270deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-right{background-image:linear-gradient(90deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-top{background-image:linear-gradient(0deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(180deg,rgba(0,0,0,.5),transparent)}.swiper-container-wp8-horizontal,.swiper-container-wp8-horizontal>.swiper-wrapper{-ms-touch-action:pan-y;touch-action:pan-y}.swiper-container-wp8-vertical,.swiper-container-wp8-vertical>.swiper-wrapper{-ms-touch-action:pan-x;touch-action:pan-x}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:27px;height:44px;margin-top:-22px;z-index:10;cursor:pointer;background-size:27px 44px;background-position:50%;background-repeat:no-repeat}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath d='M0 22L22 0l2.1 2.1L4.2 22l19.9 19.9L22 44 0 22z' fill='%23007aff'/%3E%3C/svg%3E");left:10px;right:auto}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath d='M27 22L5 44l-2.1-2.1L22.8 22 2.9 2.1 5 0l22 22z' fill='%23007aff'/%3E%3C/svg%3E");right:10px;left:auto}.swiper-button-prev.swiper-button-white,.swiper-container-rtl .swiper-button-next.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath d='M0 22L22 0l2.1 2.1L4.2 22l19.9 19.9L22 44 0 22z' fill='%23fff'/%3E%3C/svg%3E")}.swiper-button-next.swiper-button-white,.swiper-container-rtl .swiper-button-prev.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath d='M27 22L5 44l-2.1-2.1L22.8 22 2.9 2.1 5 0l22 22z' fill='%23fff'/%3E%3C/svg%3E")}.swiper-button-prev.swiper-button-black,.swiper-container-rtl .swiper-button-next.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath d='M0 22L22 0l2.1 2.1L4.2 22l19.9 19.9L22 44 0 22z'/%3E%3C/svg%3E")}.swiper-button-next.swiper-button-black,.swiper-container-rtl .swiper-button-prev.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath d='M27 22L5 44l-2.1-2.1L22.8 22 2.9 2.1 5 0l22 22z'/%3E%3C/svg%3E")}.swiper-pagination{position:absolute;text-align:center;transition:opacity .3s;transform:translateZ(0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-container-horizontal>.swiper-pagination-bullets,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet-active{opacity:1;background:#007aff}.swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0,-50%,0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:6px 0;display:block}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:transform .2s,top .2s}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 4px}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,left .2s}.swiper-container-horizontal.swiper-container-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,right .2s}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:#007aff;position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-container-horizontal>.swiper-pagination-progressbar{width:100%;height:4px;left:0;top:0}.swiper-container-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-white .swiper-pagination-bullet-active{background:#fff}.swiper-pagination-progressbar.swiper-pagination-white{background:hsla(0,0%,100%,.25)}.swiper-pagination-progressbar.swiper-pagination-white .swiper-pagination-progressbar-fill{background:#fff}.swiper-pagination-black .swiper-pagination-bullet-active{background:#000}.swiper-pagination-progressbar.swiper-pagination-black{background:rgba(0,0,0,.25)}.swiper-pagination-progressbar.swiper-pagination-black .swiper-pagination-progressbar-fill{background:#000}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-zoom-container{width:100%;height:100%;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;animation:a 1s steps(12) infinite}.swiper-lazy-preloader:after{display:block;content:"";width:100%;height:100%;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath id='a' stroke='%236c6c6c' stroke-width='11' stroke-linecap='round' d='M60 7v20'/%3E%3C/defs%3E%3Cuse xlink:href='%23a' opacity='.27'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(30 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(60 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(90 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(120 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(150 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.37' transform='rotate(180 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.46' transform='rotate(210 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.56' transform='rotate(240 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.66' transform='rotate(270 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.75' transform='rotate(300 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.85' transform='rotate(330 60 60)'/%3E%3C/svg%3E");background-position:50%;background-size:100%;background-repeat:no-repeat}.swiper-lazy-preloader-white:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath id='a' stroke='%23fff' stroke-width='11' stroke-linecap='round' d='M60 7v20'/%3E%3C/defs%3E%3Cuse xlink:href='%23a' opacity='.27'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(30 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(60 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(90 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(120 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.27' transform='rotate(150 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.37' transform='rotate(180 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.46' transform='rotate(210 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.56' transform='rotate(240 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.66' transform='rotate(270 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.75' transform='rotate(300 60 60)'/%3E%3Cuse xlink:href='%23a' opacity='.85' transform='rotate(330 60 60)'/%3E%3C/svg%3E")}@keyframes a{to{transform:rotate(1turn)}}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-container-fade.swiper-container-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube{overflow:visible}.swiper-container-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-container-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube.swiper-container-rtl .swiper-slide{transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;background:#000;opacity:.6;-webkit-filter:blur(50px);filter:url('data:image/svg+xml;charset=utf-8,#filter');filter:blur(50px);z-index:0}.swiper-container-flip{overflow:visible}.swiper-container-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right,.swiper-container-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-coverflow .swiper-wrapper{-ms-perspective:1200px}.flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08)}.flatpickr-calendar.inline,.flatpickr-calendar.open{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{animation:b .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasTime .dayContainer,.flatpickr-calendar .hasWeeks .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:after,.flatpickr-calendar:before{position:absolute;display:block;pointer-events:none;border:solid transparent;content:"";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:after,.flatpickr-calendar.rightMost:before{left:auto;right:22px}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9);height:28px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{text-decoration:none;cursor:pointer;position:absolute;top:0;line-height:16px;height:28px;padding:10px;z-index:3;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9)}.flatpickr-months .flatpickr-next-month.disabled,.flatpickr-months .flatpickr-prev-month.disabled{display:none}.flatpickr-months .flatpickr-next-month i,.flatpickr-months .flatpickr-prev-month i{position:relative}.flatpickr-months .flatpickr-next-month.flatpickr-prev-month,.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-next-month.flatpickr-next-month,.flatpickr-months .flatpickr-prev-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-next-month:hover,.flatpickr-months .flatpickr-prev-month:hover{color:#959ea9}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-next-month svg,.flatpickr-months .flatpickr-prev-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-next-month svg path,.flatpickr-months .flatpickr-prev-month svg path{transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,.5)}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:6.16px 0 0;line-height:1;height:28px;display:inline-block;text-align:center;transform:translateZ(0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,.9)}.flatpickr-current-month input.cur-year{background:transparent;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:baseline;vertical-align:initial}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,.5);background:transparent;pointer-events:none}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,.54);line-height:1;margin:0;text-align:center;display:block;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:flex;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-around;transform:translateZ(0);opacity:1}.dayContainer+.dayContainer{box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:focus,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:focus,.flatpickr-day:hover{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:focus,.flatpickr-day.today:hover{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:#569ff7;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.endRange.startRange,.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.endRange.endRange,.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 0 #569ff7}.flatpickr-day.endRange.startRange.endRange,.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.disabled,.flatpickr-day.disabled:hover,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{color:rgba(57,57,57,.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.disabled,.flatpickr-day.disabled:hover{cursor:not-allowed;color:rgba(57,57,57,.1)}.flatpickr-day.week.selected{border-radius:0;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{display:inline-block;float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,.3);background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-ms-flexbox;display:flex;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;box-sizing:border-box;overflow:hidden;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;box-sizing:border-box}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator{height:inherit;display:inline-block;float:left;line-height:inherit;color:#393939;font-weight:700;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time .flatpickr-am-pm:focus,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time input:hover{background:#f3f3f3}.flatpickr-input[readonly]{cursor:pointer}@keyframes b{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}.bc-product__title{font-size:1.125em;line-height:1.2;font-weight:700;padding:0;margin:0 0 18px}@media (min-width:768px){.bc-product__title{font-size:1.25em;line-height:1.2}}@media (min-width:960px){.bc-product__title{font-size:1.5em;line-height:1.15}}.bc-product__title-link{text-decoration:none;box-shadow:none!important;color:#34313f;opacity:1;transition:all .15s ease-in-out}.bc-product__title-link:focus,.bc-product__title-link:hover{color:#34313f;opacity:.8}.bc-product__title-link:focus .bc-product-flag--grey,.bc-product__title-link:hover .bc-product-flag--grey{opacity:1}.bc-product__inventory{display:inline-block;font-size:.875em;line-height:1.6;font-weight:400;vertical-align:baseline}.bc-product-card .bc-product__inventory{font-size:.563em}.bc-product-card--single .bc-product__title,.bc-product-single__meta .bc-product__title{font-size:1.5em;line-height:1.15;margin-top:0;margin-bottom:10px;padding:0;font-weight:700}@media (min-width:768px){.bc-product-card--single .bc-product__title,.bc-product-single__meta .bc-product__title{font-size:1.75em}}@media (min-width:960px){.bc-product-card--single .bc-product__title,.bc-product-single__meta .bc-product__title{font-size:2em;line-height:1.125}}.bc-product-card--single .bc-product__inventory,.bc-product-single__meta .bc-product__inventory{font-size:.563em;margin:0}@media (min-width:768px){.bc-product-card--single .bc-product__inventory,.bc-product-single__meta .bc-product__inventory{font-size:.571em}}@media (min-width:960px){.bc-product-card--single .bc-product__inventory,.bc-product-single__meta .bc-product__inventory{font-size:.5em}}.bc-product-card--related .bc-product__title{margin-bottom:15px}.bc-product__brand{display:block;font-size:.875em;line-height:1;font-weight:700;margin-bottom:10px}@media (min-width:768px){.bc-product__brand{margin-bottom:15px}}@media (min-width:960px){.bc-product__brand{margin-bottom:20px}}.bc-product-card--single .bc-product__brand,.bc-product-single .bc-product__brand{display:block;font-size:1em;margin-bottom:10px}.bc-product__pricing{margin-bottom:0;font-weight:400}.bc-product__price{font-size:1em}.bc-product__original-price{text-decoration:line-through;margin-right:12px;margin-bottom:12px;display:inline-block;font-style:italic;color:#8b8b8b}.bc-product__price--sale{font-weight:700;color:#65c68c}.bc-product-card--single .bc-product__pricing{margin-bottom:30px}@media (min-width:960px){.bc-product-card--single .bc-product__pricing{margin-bottom:40px}}@media (min-width:1200px){.bc-product-card--single .bc-product__pricing{margin-bottom:50px}}.bc-product-card--single .bc-product__original-price,.bc-product-single .bc-product__original-price{margin-right:20px}.bc-product-flag--sale{display:block;position:absolute;right:-20px;top:-20px;width:50px;height:50px;line-height:50px;border-radius:50%;background-color:#65c68c;font-size:12px;font-weight:700;text-transform:uppercase;text-align:center;z-index:2}.bc-product-flag--grey{display:inline-block;vertical-align:middle;padding:7px 8px;background-color:#e0e3e9;font-size:.522em;line-height:1;font-weight:600}.bc-product-card--single .bc-product-flag--sale,.bc-product-single .bc-product-flag--sale{width:60px;height:60px;line-height:60px;font-size:16px;font-weight:600}.bc-product-card--single .bc-product-flag--grey,.bc-product-single .bc-product-flag--grey{font-size:.5em;margin-bottom:5px}@media (min-width:768px){.bc-product-card--single .bc-product-flag--grey,.bc-product-single .bc-product-flag--grey{font-size:.429em}}@media (min-width:960px){.bc-product-card--single .bc-product-flag--grey,.bc-product-single .bc-product-flag--grey{font-size:.375em}}.bc-product__description{font-size:1em;line-height:1.5;margin-bottom:30px}@media (min-width:960px){.bc-product__description{margin-bottom:40px}}@media (min-width:1200px){.bc-product__description{margin-bottom:50px}}.bc-product__description p:last-child{margin-bottom:0}.bc-product-gallery__images{position:relative;width:100%;max-width:370px;margin:60px auto}@media (min-width:768px){.bc-product-gallery__images{margin:0}}.bc-product-gallery__image-slide img{display:block}.bc-product-gallery--has-carousel{margin-bottom:10px}.swiper-container[data-js=bc-gallery-thumbs] .swiper-wrapper{transform:translateX(0)!important}.bc-product-gallery__thumbs{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}.bc-product-gallery__thumbs .bc-product-gallery__thumb-slide{box-shadow:unset}.bc-product-gallery__thumb-slide{width:calc(25% - 10px);margin:0 10px 10px 0;padding:0;border:0;background:none;opacity:.8;transition:all .15s ease-in-out}.bc-product-gallery__thumb-slide.swiper-slide-active,.bc-product-gallery__thumb-slide:focus,.bc-product-gallery__thumb-slide:hover{opacity:1}.bc-product-form__control{margin-bottom:20px}.bc-product-form__modifier-label,.bc-product-form__option-label{display:block;margin-bottom:10px;font-size:1em;font-weight:700}.bc-product-form__option-variants{margin-top:10px}.bc-product-variant__label{display:block;margin-bottom:10px}.bc-product-form__option-variants--inline{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}.bc-product-form__option-variants--inline .bc-product-variant__label{margin-right:10px}.bc-product-form__option-variants--inline .bc-product-variant__label:last-of-type{margin-right:0}.bc-product-variant__label--title{-ms-flex:1;flex:1;color:#8b8b8b}input.bc-product-variant__radio--hidden{margin:0}.bc-product-form__product-message{padding:0}.bc-product-form__message{display:block;padding:12px 16px;font-size:.75em}.bc-product-form__modifier-description{display:block;font-size:.75em;line-height:1.15;padding:0 10px;margin-top:4px}.bc-product-form__option-select{font-size:1em}.bc-product-form__control--swatch input.bc-product-variant__radio--hidden:checked+.bc-product-variant__label .bc-product-variant__label--swatch{border:0 solid #fff;box-shadow:0 0 1px #168fc0;transition:border 70ms}.bc-product-variant__label--swatch{display:block;width:36px;height:36px;border:5px solid #fff;box-shadow:0 0 1px #8b8b8b;cursor:pointer;transition:border 70ms}.bc-product-form__control--rectangle input.bc-product-variant__radio--hidden:checked+.bc-product-variant__label .bc-product-variant__label--rectangle{border:1px solid #168fc0;color:#168fc0;font-weight:700;transition:border 70ms,color 70ms}.bc-product-variant__label--rectangle{display:block;height:36px;line-height:1.5;padding:5px 10px;text-align:center;border:1px solid #cdcdcd;color:#8b8b8b;transition:border 70ms,color 70ms;cursor:pointer}.bc-product-form__control--pick-list input.bc-product-variant__radio--hidden:checked+.bc-product-variant__label .bc-product-variant__label--pick-list{border:1px solid #168fc0;transition:border 70ms}.bc-product-variant__label--pick-list{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:5px;border:1px solid #e0e3e9;cursor:pointer}.bc-product-variant__label--img{-ms-flex:0;flex:0;margin-right:6px;width:100%;max-width:50px;height:auto}.bc-product-form__control--radio .bc-product-form__option-label{-ms-flex:0 0 100%;flex:0 0 100%}.bc-product-form__control--radio .bc-product-variant__label{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:center;align-items:center;margin-bottom:6px}.bc-product-form__control--radio .bc-product-variant__radio{-ms-flex:0 0 auto;flex:0 0 auto}.bc-product-form__control--radio .bc-product-variant__label--radio{-ms-flex:1;flex:1;line-height:1.5}.bc-single-product__rating{unicode-bidi:bidi-override;color:#8b8b8b;font-size:15px;height:25px;width:90px;position:relative;padding:0;display:inline-block;vertical-align:middle}.bc-single-product__rating--mask{display:block;position:absolute;top:0;left:0;overflow:hidden;height:25px;z-index:2}.bc-single-product__rating--top{color:#fc0;z-index:1}.bc-single-product__rating--bottom,.bc-single-product__rating--top{padding:0;width:90px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-pack:distribute;justify-content:space-around;-ms-flex-align:center;align-items:center}.bc-single-product__rating--bottom{z-index:0}.bc-rating-star:before{content:"\2605";font-size:15px}.bc-single-product__rating-reviews{font-size:.75em;font-weight:700;margin-left:10px;display:inline-block;vertical-align:middle}.bc-product__spec-list{list-style:none;margin:0;padding:0;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;max-width:100%;margin-left:auto;margin-right:auto}.bc-product__spec{font-size:.875em;-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 10px);flex-basis:calc(50% - 10px);width:calc(50% - 10px);height:calc(50% - 10px)}.bc-product__spec:nth-child(1n){margin-right:20px;margin-bottom:20px;margin-left:0}.bc-product__spec:last-child{margin-right:0;margin-bottom:0}.bc-product__spec:nth-child(2n){margin-right:0;margin-left:auto}.bc-product__spec:nth-last-child(-n+2){margin-bottom:0}@media (min-width:768px){.bc-product__spec{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.33333% - 13.33333px);flex-basis:calc(33.33333% - 13.33333px);width:calc(33.33333% - 13.33333px);height:calc(33.33333% - 13.33333px)}.bc-product__spec:nth-child(1n){margin-right:20px;margin-bottom:20px;margin-left:0}.bc-product__spec:last-child{margin-right:0;margin-bottom:0}.bc-product__spec:nth-child(3n){margin-right:0;margin-left:auto}.bc-product__spec:nth-last-child(-n+3){margin-bottom:0}}@media (min-width:960px){.bc-product__spec{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(25% - 15px);flex-basis:calc(25% - 15px);width:calc(25% - 15px);height:calc(25% - 15px)}.bc-product__spec:nth-child(1n){margin-right:20px;margin-bottom:20px;margin-left:0}.bc-product__spec:last-child{margin-right:0;margin-bottom:0}.bc-product__spec:nth-child(4n){margin-right:0;margin-left:auto}.bc-product__spec:nth-last-child(-n+4){margin-bottom:0}}.bc-single-product__related{padding:50px 0 0;border-top:1px solid #e0e3e9}.bc-single-product__related .bc-form.bc-product-form,.bc-single-product__related button.bc-btn{margin-top:0}.bc-single-product__section-title--related{font-size:1.5em;margin-bottom:0}.bc-product-archive__refinery{width:100%;margin:40px 0 80px}.bc-product-archive__refinery .bc-form{width:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}@media (min-width:1200px){.bc-product-archive__refinery .bc-form{-ms-flex-pack:start;justify-content:flex-start}}.bc-product-archive__search{position:relative;-ms-flex:1 1 100%;flex:1 1 100%}@media (min-width:1200px){.bc-product-archive__search{margin-right:auto;-ms-flex:0 1 270px;flex:0 1 270px}}.bc-product-archive__select{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;margin-top:15px;-ms-flex:1 1 100%;flex:1 1 100%}@media (min-width:500px){.bc-product-archive__select{-ms-flex-wrap:nowrap;flex-wrap:nowrap}}@media (min-width:768px){.bc-product-archive__select{-ms-flex:0 1 calc(33.3333% - 20px);flex:0 1 calc(33.3333% - 20px);-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:20px}.bc-product-archive__select:last-child{margin-right:0}}@media (min-width:1200px){.bc-product-archive__select{-ms-flex-wrap:nowrap;flex-wrap:nowrap;margin-top:0;-ms-flex:0 1 auto;flex:0 1 auto}}.bc-product-archive__select-label{font-size:.75em;text-transform:uppercase;margin-right:10px;font-weight:700;-ms-flex:0 0 100%;flex:0 0 100%}@media (min-width:500px){.bc-product-archive__select-label{-ms-flex:0 0 150px;flex:0 0 150px}}@media (min-width:768px){.bc-product-archive__select-label{-ms-flex:0 0 100%;flex:0 0 100%}}@media (min-width:960px){.bc-product-archive__select-label{-ms-flex:0 0 auto;flex:0 0 auto}}.bc-product-archive__select-field{-ms-flex:0 0 100%;flex:0 0 100%}@media (min-width:500px){.bc-product-archive__select-field{-ms-flex:1 1 100%;flex:1 1 100%}}@media (min-width:768px){.bc-product-archive__select-field{-ms-flex:0 0 100%;flex:0 0 100%}}@media (min-width:960px){.bc-product-archive__select-field{-ms-flex:0 1 auto;flex:0 1 auto}}.bc-form .bc-product-archive__select-field{font-size:.75em;color:#8b8b8b}.bc-product-archive__search-submit{position:absolute;right:0;top:0;transition:all .15s ease-in-out;height:100%;font-size:1em}.bc-product-archive__search-submit.bc-btn.bc-btn--small{max-width:none;width:auto}.bc-subnav__list{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap;list-style:none;margin:0;padding:0}@media (min-width:600px){.bc-subnav__list{-ms-flex-direction:row;flex-direction:row}}.bc-subnav__list-item{margin-bottom:20px;padding:0}@media (min-width:600px){.bc-subnav__list-item+.bc-subnav__list-item{margin-left:30px}}@media (min-width:768px){.bc-subnav__list-item{margin-bottom:40px}}.bc-subnav__link{cursor:pointer;margin:0;padding:0;text-decoration:none}.bc-subnav__list-item--current .bc-subnav__link{color:currentColor}.bc-alert{background-color:#168fc0;color:#fff;font-size:1em;line-height:1.5;padding:12px 16px;margin-bottom:40px}@media (min-width:768px){.bc-alert{margin-bottom:60px}}.bc-alert--success{background-color:#3ec889}.bc-alert--error{background-color:#ff0012}.bc-alert-group .bc-alert:not(:last-child){margin-bottom:10px}.bc-alert-group--info{background-color:#cdcdcd;color:#34313f;font-size:.875em}.bc-product-form .bc-alert-group--info{margin-bottom:0}.bc-alert-group--error{opacity:0;height:0;overflow:hidden;visibility:hidden;transition:all .15s ease-in-out}.bc-alert-group.bc-fade-in-alert-group{opacity:1;visibility:visible;height:auto}.bc-form__error-message{color:#ff0012;display:block;margin-top:10px;margin-bottom:10px;font-weight:400;font-size:.813em}.bc-load-items{position:relative}.bc-load-items-container--has-pages{padding-bottom:40px}.bc-load-items-container--has-pages>:not(.bc-load-items__trigger){opacity:0;transition:opacity .3s ease}.bc-load-items-container--has-pages>:not(.bc-load-items__trigger).item-initialized{opacity:1}.bc-load-items__loader{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);opacity:0;transition:opacity .3s ease}.bc-load-items__loader.active{opacity:1}.bc-load-items__trigger,.bc-load-more-items{width:100%;text-align:center}.bc-load-more-items{margin-top:20px}.bc-load-items__trigger-btn,.bc-no-results__button{background:transparent;color:#5273f4;font-size:.875em;line-height:1;outline:none;border:0;cursor:pointer}.bc-load-items__trigger-btn[disabled],.bc-no-results__button[disabled]{opacity:.5;cursor:not-allowed}.bc-load-items__trigger-btn:focus,.bc-load-items__trigger-btn:hover,.bc-no-results__button:focus,.bc-no-results__button:hover{background:transparent;color:#4b69e0}.bc-load-items__trigger-btn:focus[disabled],.bc-load-items__trigger-btn:hover[disabled],.bc-no-results__button:focus[disabled],.bc-no-results__button:hover[disabled]{background:transparent;color:#4b69e0;cursor:default}.bc-load-items__trigger-btn .bc-icon,.bc-no-results__button .bc-icon{display:block;margin-top:14px;text-align:center;font-size:18px}.bc-pagination__error-message{display:block;font-size:.875em}.bc-order-product-row{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}@media (min-width:768px){.bc-order-product-row{-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap}}.bc-order-product-row__image{-ms-flex:0 0 100px;flex:0 0 100px;position:relative;margin-bottom:12px;max-width:100px}@media (min-width:768px){.bc-order-product-row__image{margin:0 20px 0 0}}.bc-order-product-row__image img{display:block;width:100%;height:auto}.bc-order-product-row__body{-ms-flex:1 1 auto;flex:1 1 auto;margin-bottom:12px}@media (min-width:768px){.bc-order-product-row__body{margin:0 20px 0 0;max-width:550px}}.bc-order-product-row__header .bc-order-product-row__title{font-size:1.25em;line-height:1.2;margin:0 10px 0 0}@media (min-width:960px){.bc-order-product-row__header .bc-order-product-row__title{font-size:1.5em;line-height:1.3}}.bc-order-product-row__header .bc-product-flag--grey{margin-bottom:5px}.bc-order-product-row__brand,.bc-order-product-row__option,.bc-order-product-row__unit-price{font-size:1em;line-height:1.375;margin-bottom:4px}.bc-order-product-row__brand{font-weight:700}.bc-order-product-row__option,.bc-order-product-row__options-list{list-style:none;margin:0;padding:0}.bc-order-product-row__options-list{margin-top:8px}.bc-order-product-row__option{color:#8b8b8b;font-size:.75em;line-height:1.5;margin-top:10px}.bc-order-product-row__option-label{font-weight:600}.bc-order-product-row__option-value{font-weight:300}.bc-order-product-row__status{font-size:1em;font-weight:700;line-height:1.375;margin-bottom:12px}@media (min-width:768px){.bc-order-product-row__status{-ms-flex-item-align:center;align-self:center;-ms-flex:0 0 150px;flex:0 0 150px;font-size:1.25em;line-height:1.2;margin:0 0 0 auto}}.bc-order-product-row__quantity{font-size:.75em;font-weight:700;line-height:1.5;margin-bottom:12px}@media (min-width:768px){.bc-order-product-row__quantity{-ms-flex:0 0 100px;flex:0 0 100px;margin-bottom:0;margin-left:auto}}.bc-order-product-row__total{font-size:1em;font-weight:700;line-height:1.375;margin-bottom:26px}@media (min-width:768px){.bc-order-product-row__total{-ms-flex:0 0 150px;flex:0 0 150px;font-size:1.25em;text-align:right;margin-bottom:0}}.bc-cart-item-image .bc-product__thumbnail-link,.bc-order-product-row__image .bc-product__thumbnail-link{display:block;box-shadow:none;text-decoration:none;border:0;opacity:1;transition:opacity .3s ease}.bc-cart-item-image .bc-product__thumbnail-link:focus,.bc-cart-item-image .bc-product__thumbnail-link:hover,.bc-order-product-row__image .bc-product__thumbnail-link:focus,.bc-order-product-row__image .bc-product__thumbnail-link:hover{opacity:.8}.bc-account-login__form input[type=submit],.bc-btn,.entry-content .bc-btn,.entry-content a.bc-btn,.entry-content button.bc-btn,a.bc-btn,button.bc-btn{display:inline-block;font-family:sans-serif;width:100%;padding:15px 20px;border-radius:0;font-weight:600;line-height:1.6;font-size:.813em;text-transform:uppercase;text-align:center;text-decoration:none;box-shadow:none;opacity:1;transition:all .15s ease-in-out}@media (min-width:960px){.bc-account-login__form input[type=submit],.bc-btn,.entry-content .bc-btn,.entry-content a.bc-btn,.entry-content button.bc-btn,a.bc-btn,button.bc-btn{max-width:270px}}.bc-account-login__form input[type=submit]:focus,.bc-account-login__form input[type=submit]:hover,.bc-btn:focus,.bc-btn:hover,.entry-content .bc-btn:focus,.entry-content .bc-btn:hover,.entry-content a.bc-btn:focus,.entry-content a.bc-btn:hover,.entry-content button.bc-btn:focus,.entry-content button.bc-btn:hover,a.bc-btn:focus,a.bc-btn:hover,button.bc-btn:focus,button.bc-btn:hover{opacity:.9;text-decoration:none;box-shadow:none}.bc-account-login__form input[type=submit][disabled],.bc-btn[disabled],.entry-content .bc-btn[disabled],.entry-content a.bc-btn[disabled],.entry-content button.bc-btn[disabled],a.bc-btn[disabled],button.bc-btn[disabled]{background-color:#5e5e5e;color:#fff;padding:15px 20px;line-height:1.6;font-family:sans-serif;opacity:.6;cursor:not-allowed}.bc-account-login__form input[type=submit][disabled]:focus,.bc-account-login__form input[type=submit][disabled]:hover,.bc-btn[disabled]:focus,.bc-btn[disabled]:hover,.entry-content .bc-btn[disabled]:focus,.entry-content .bc-btn[disabled]:hover,.entry-content a.bc-btn[disabled]:focus,.entry-content a.bc-btn[disabled]:hover,.entry-content button.bc-btn[disabled]:focus,.entry-content button.bc-btn[disabled]:hover,a.bc-btn[disabled]:focus,a.bc-btn[disabled]:hover,button.bc-btn[disabled]:focus,button.bc-btn[disabled]:hover{background-color:#5e5e5e;color:#fff;padding:15px 20px;line-height:1.6;font-family:sans-serif;opacity:.6}.bc-account-login__form input[type=submit]--small,.bc-btn--small,.entry-content .bc-btn--small,.entry-content a.bc-btn--small,.entry-content button.bc-btn--small,a.bc-btn--small,button.bc-btn--small{padding:8px 16px}.bc-account-login__form input[type=submit]--inverse,.bc-btn--inverse,.entry-content .bc-btn--inverse,.entry-content a.bc-btn--inverse,.entry-content button.bc-btn--inverse,a.bc-btn--inverse,button.bc-btn--inverse{padding:11px 20px;box-sizing:border-box;background-color:transparent;border:4px solid}.bc-quickview-trigger,button.bc-quickview-trigger{position:relative;background:transparent;color:inherit;text-transform:none;text-align:left;padding:0}.bc-quickview-trigger:focus,.bc-quickview-trigger:hover,button.bc-quickview-trigger:focus,button.bc-quickview-trigger:hover{background:transparent;transition:opacity .3s ease}.bc-quickview-trigger:focus .bc-quickview-trigger--hover,.bc-quickview-trigger:hover .bc-quickview-trigger--hover,button.bc-quickview-trigger:focus .bc-quickview-trigger--hover,button.bc-quickview-trigger:hover .bc-quickview-trigger--hover{opacity:1}.bc-quickview-trigger--hover{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;background-color:rgba(224,227,233,.72);transition:opacity .3s ease}.bc-quickview-trigger--hover-label{position:absolute;left:50%;top:50%;transform:translate3d(-50%,-50%,0);width:70%;padding:12px 14px;background-color:#fff;color:#34313f;font-weight:400;font-size:.875em;border-radius:20px;text-align:center}.bc-product-card{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.bc-product-card .bc-quickview-trigger{-ms-flex:0 0 auto;flex:0 0 auto;display:-ms-flexbox;display:flex}.bc-product-card .bc-product__actions{-ms-flex-item-align:end;align-self:flex-end;width:100%;-ms-flex:0 0 auto;flex:0 0 auto}.bc-product-card .bc-btn,.bc-product-card a.bc-btn,.bc-product-card button.bc-btn{max-width:100%}.bc-product-card__featured-image{position:relative;width:100%}.bc-product-card__featured-image img{display:block;width:100%;height:auto}.bc-product__meta{padding:25px 0 50px;width:100%;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;-ms-flex:1 1 auto;flex:1 1 auto}.bc-product-card--single{max-width:none;position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:60px 0}@media (min-width:960px){.bc-product-card--single{-ms-flex-direction:column;flex-direction:column}}.bc-product-card--single .bc-product__gallery{position:relative;-ms-flex-order:2;order:2;width:100%}@media (min-width:768px){.bc-product-card--single .bc-product__gallery{width:calc(50% - 30px)}}@media (min-width:960px){.bc-product-card--single .bc-product__gallery{position:absolute;height:100%;width:50%;max-width:370px;left:0;top:0;-ms-flex-order:1;order:1}}.bc-product-card--single .bc-product__meta{padding:0;-ms-flex-order:1;order:1}@media (min-width:960px){.bc-product-card--single .bc-product__meta{-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-order:2;order:2;-ms-flex-item-align:end;align-self:flex-end;width:calc(50% - 30px)}}.bc-product-card--single .bc-product__actions{-ms-flex-order:3;order:3;width:100%}@media (min-width:768px){.bc-product-card--single .bc-product__actions{width:calc(50% + 30px);padding-left:60px}}@media (min-width:960px){.bc-product-card--single .bc-product__actions{-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-order:3;order:3;padding:0;-ms-flex-item-align:end;align-self:flex-end;width:calc(50% - 30px)}}.bc-product-card--single .bc-btn{margin-top:40px}.bc-order-card__body{display:-ms-flexbox;display:flex;-ms-flex-direction:column-reverse;flex-direction:column-reverse}@media (min-width:768px){.bc-order-card__body{-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap}}.bc-order-card__featured-image{-ms-flex:0 0 100px;flex:0 0 100px;position:relative;max-width:100px}@media (min-width:768px){.bc-order-card__featured-image{margin-right:20px}}.bc-order-card__featured-image img{display:block;width:100%;height:auto}.bc-order-card__featured-image .bc-order-card__featured-image-link{box-shadow:none;display:block;opacity:1;transition:all .15s ease-in-out}.bc-order-card__featured-image .bc-order-card__featured-image-link:focus,.bc-order-card__featured-image .bc-order-card__featured-image-link:hover{opacity:.8}.bc-order-card__meta{-ms-flex:1 1 auto;flex:1 1 auto}@media (min-width:768px){.bc-order-card__meta-inner{margin-right:20px;max-width:550px}}.bc-order-card__title{margin-bottom:12px}.bc-order-card__title .bc-order-card__order-title{font-size:1.25em;line-height:1.2;margin:0}@media (min-width:960px){.bc-order-card__title .bc-order-card__order-title{font-size:1.5em;line-height:1.3}}@media (min-width:1200px){.bc-order-card__title .bc-order-card__order-title{font-size:1.5em;line-height:1.3}}.bc-order-card__order-title .bc-order-card__title-link{text-decoration:none;box-shadow:none;color:currentColor;opacity:1;transition:all .15s ease-in-out}.bc-order-card__order-title .bc-order-card__title-link:focus,.bc-order-card__order-title .bc-order-card__title-link:hover{color:currentColor;opacity:.8}.bc-order-card__total{font-size:1em;font-weight:700;line-height:1.375;margin-bottom:26px}@media (min-width:768px){.bc-order-card__total{font-size:1.25em;margin-bottom:20px}}.bc-order-card-meta__list{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:6px}@media (min-width:768px){.bc-order-card-meta__list{margin-bottom:20px}}.bc-order-card-meta__list-item{width:50%;margin-bottom:16px}@media (min-width:768px){.bc-order-card-meta__list-item{margin-bottom:0;width:auto}.bc-order-card-meta__list-item+.bc-order-card-meta__list-item{margin-left:30px}}.bc-order-card__status{font-size:1em;font-weight:700;line-height:1.375;margin-bottom:12px}@media (min-width:768px){.bc-order-card__status{-ms-flex-item-align:center;align-self:center;-ms-flex:0 0 150px;flex:0 0 150px;font-size:1.25em;line-height:1.2;margin:0 0 0 auto}}.bc-product-grid{width:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:40px 0}.bc-product-grid>.bc-product-card{width:100%;max-width:370px;margin:0 auto 60px}@media (min-width:768px){.bc-product-grid--2col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 15px);flex-basis:calc(50% - 15px);max-width:calc(50% - 15px);width:calc(50% - 15px)}.bc-product-grid--2col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--2col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--2col>.bc-product-card:nth-child(2n){margin-right:0;margin-left:auto}}@media (min-width:768px){.bc-product-grid--3col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 15px);flex-basis:calc(50% - 15px);max-width:calc(50% - 15px);width:calc(50% - 15px)}.bc-product-grid--3col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--3col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--3col>.bc-product-card:nth-child(2n){margin-right:0;margin-left:auto}}@media (min-width:960px){.bc-product-grid--3col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.32667% - 20px);flex-basis:calc(33.32667% - 20px);max-width:calc(33.32667% - 20px);width:calc(33.32667% - 20px)}.bc-product-grid--3col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--3col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--3col>.bc-product-card:nth-child(3n){margin-right:0;margin-left:auto}}@media (min-width:500px){.bc-product-grid--4col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 15px);flex-basis:calc(50% - 15px);max-width:calc(50% - 15px);width:calc(50% - 15px)}.bc-product-grid--4col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--4col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--4col>.bc-product-card:nth-child(2n){margin-right:0;margin-left:auto}}@media (min-width:600px){.bc-product-grid--4col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.33333% - 20px);flex-basis:calc(33.33333% - 20px);max-width:calc(33.33333% - 20px);width:calc(33.33333% - 20px)}.bc-product-grid--4col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--4col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--4col>.bc-product-card:nth-child(3n){margin-right:0;margin-left:auto}}@media (min-width:960px){.bc-product-grid--4col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(24.995% - 22.5px);flex-basis:calc(24.995% - 22.5px);max-width:calc(24.995% - 22.5px);width:calc(24.995% - 22.5px)}.bc-product-grid--4col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--4col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--4col>.bc-product-card:nth-child(4n){margin-right:0;margin-left:auto}}@media (min-width:500px){.bc-product-grid--5col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 15px);flex-basis:calc(50% - 15px);max-width:calc(50% - 15px);width:calc(50% - 15px)}.bc-product-grid--5col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--5col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--5col>.bc-product-card:nth-child(2n){margin-right:0;margin-left:auto}}@media (min-width:600px){.bc-product-grid--5col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.33333% - 20px);flex-basis:calc(33.33333% - 20px);max-width:calc(33.33333% - 20px);width:calc(33.33333% - 20px)}.bc-product-grid--5col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--5col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--5col>.bc-product-card:nth-child(3n){margin-right:0;margin-left:auto}}@media (min-width:960px){.bc-product-grid--5col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(24.995% - 22.5px);flex-basis:calc(24.995% - 22.5px);max-width:calc(24.995% - 22.5px);width:calc(24.995% - 22.5px)}.bc-product-grid--5col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--5col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--5col>.bc-product-card:nth-child(4n){margin-right:0;margin-left:auto}}@media (min-width:1200px){.bc-product-grid--5col>.bc-product-card{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(19.996% - 24px);flex-basis:calc(19.996% - 24px);max-width:calc(19.996% - 24px);width:calc(19.996% - 24px)}.bc-product-grid--5col>.bc-product-card:nth-child(1n){margin-right:30px;margin-left:0}.bc-product-grid--5col>.bc-product-card:last-child{margin-right:0}.bc-product-grid--5col>.bc-product-card:nth-child(5n){margin-right:0;margin-left:auto}}.bc-product-grid--related{padding-bottom:0}.bc-no-results{text-align:center;width:100%}.bc-no-results__message{font-size:1.375em;line-height:1.1}.bc-no-results__button{margin:0 auto;font-size:1em;text-decoration:none}.bc-product-single{max-width:970px;padding:0 20px;margin:0 auto}.bc-product-single .bc-product-single__top{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between}@media (min-width:768px){.bc-product-single .bc-product-single__top{-ms-flex-wrap:nowrap;flex-wrap:nowrap}}.bc-product-single .bc-product__gallery{position:relative;-ms-flex-order:2;order:2;-ms-flex:1 1 100%;flex:1 1 100%}@media (min-width:768px){.bc-product-single .bc-product__gallery{-ms-flex-order:1;order:1;-ms-flex:0 0 370px;flex:0 0 370px;margin-right:30px}}.bc-product-single .bc-product-single__meta{-ms-flex:1 1 100%;flex:1 1 100%;-ms-flex-order:1;order:1}@media (min-width:768px){.bc-product-single .bc-product-single__meta{-ms-flex-order:2;order:2;-ms-flex:0 0 auto;flex:0 0 auto;width:calc(50% - 60px)}}.bc-product-single .bc-product__sku{display:block;margin-top:20px;font-size:.875em}.bc-product-single .bc-product__sku .bc-product-single__meta-label{font-size:1.143em}.bc-product-single .bc-product-single__meta-label{font-size:1em;font-weight:700}.bc-product-single .bc-product-form{margin-top:40px;opacity:1;transition:opacity .3s ease}.bc-product-single .bc-product-form.bc-product__is-setting-options{opacity:.5}.bc-product-single .bc-btn{margin-top:40px}.bc-product-single .bc-single-product__description{margin-top:60px;width:100%;padding:50px 0;border-top:1px solid #e0e3e9}.bc-product-single .bc-single-product__specifications{width:100%;padding-bottom:50px}.bc-product-single .bc-single-product__section-title{font-weight:700;margin-bottom:20px;font-size:1em}.bc-product-single .bc-single-product__section-title--related{font-size:1.5em}.bc-product-single .bc-single-product__ratings{margin-top:20px}.bc-product-form__quantity{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;margin-bottom:20px}.bc-product-form__quantity-label{margin-right:10px}input.bc-product-form__quantity-input[type=number]{background:#fff;border:1px solid #e0e3e9;font-size:.813em;text-align:center;padding-left:6px;padding-right:6px;width:70px}@media (min-width:768px){input.bc-product-form__quantity-input[type=number]{font-size:1em}}input.bc-product-form__quantity-input[type=number]:focus{box-shadow:0 0 0 1px #e0e3e9}.bc-product-quick-view__overlay{position:fixed;top:0;right:0;height:100vh;width:100vw;background:rgba(0,0,0,.7)}.bc-product-quick-view__wrapper{position:absolute;top:0;right:0;height:100vh;width:100vw;z-index:50}.bc-product-quick-view__wrapper[aria-hidden=true]{display:none}button.bc-product-quick-view__close-button{position:absolute;right:0;top:0;color:#34313f;font-size:30px;z-index:2;background:transparent;padding:10px;opacity:.65;transition:all .15s ease-in-out;width:auto}button.bc-product-quick-view__close-button:focus,button.bc-product-quick-view__close-button:hover{opacity:1;background:transparent}.bc-product-quick-view__content{background:#fff;position:absolute;width:calc(100vw - 20%);height:auto;left:50%;top:0;margin:40px 0;transform:translateX(-50%);overflow-y:scroll}@media (min-width:960px){.bc-product-quick-view__content{height:calc(100vh - 20%);max-width:1140px;max-height:660px;margin:0;top:50%;transform:translate3d(-50%,-50%,0)}.browser-ie .bc-product-quick-view__content{min-height:660px}}.bc-product-quick-view__content *{box-sizing:border-box}.bc-product-quick-view__content>div{height:100%}.bc-product-quick-view__content-inner{position:relative;padding:60px}.bc-product-quick-view__content-inner .bc-product-card{margin:0;height:100%}@media (min-width:960px){.bc-product-quick-view__content-inner .bc-product__gallery{height:auto;padding-bottom:60px;-ms-flex:1 1 100%;flex:1 1 100%}}.bc-product-quick-view__content-inner .bc-product__meta{width:100%}@media (min-width:768px){.bc-product-quick-view__content-inner .bc-product__meta{margin-bottom:40px}}@media (min-width:960px){.bc-product-quick-view__content-inner .bc-product__meta{width:calc(50% - 30px)}}@media (min-width:1200px){.bc-product-quick-view__content-inner .bc-product__meta{padding-left:0}}.bc-product-quick-view__content-inner .bc-product__pricing,.bc-product-quick-view__content-inner .bc-single-product__ratings{margin-bottom:20px}.bc-product-quick-view__content-inner .bc-product-single__meta-label{font-weight:700}.bc-product-quick-view__content-inner .bc-product__description{-ms-flex-order:4;order:4;width:100%;margin-top:40px;padding-top:30px;border-top:1px solid #e0e3e9}@media (min-width:960px){.bc-product-quick-view__content-inner .bc-product__description{width:calc(50% - 30px);-ms-flex-item-align:end;align-self:flex-end}}@media (min-width:1200px){.bc-product-quick-view__content-inner .bc-product__description{-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-order:4;order:4;padding-left:0;width:calc(50% - 30px)}}.bc-single-product__reviews{border-top:1px solid #e0e3e9;padding-top:36px;padding-bottom:36px}.bc-single-product__reviews .bc-alert--success{margin-top:24px;margin-bottom:24px}.bc-product-reviews__title{display:inline;vertical-align:baseline;margin-right:15px}.bc-product-reviews__ratings-total{display:inline-block;vertical-align:baseline}.bc-product-review-form-wrapper{border-top:1px solid #fff;border-bottom:1px solid #fff;margin-top:0;padding:0;transition:all .15s ease-in-out}.bc-product-review-form-wrapper.bc-product-review-form--active{border-top-color:#e0e3e9;border-bottom-color:#e0e3e9;margin-top:38px;padding:40px 0;transition:all .15s ease-in-out}@media (min-width:768px){.bc-product-review-form-wrapper.bc-product-review-form--active{padding:50px 0}}.bc-product-review-form{height:100%;overflow:hidden;max-height:0}.bc-product-review-form--active .bc-product-review-form{max-height:2000px}.bc-product-review-form .bc-btn--review{margin:0}@media (min-width:768px){.bc-product-review-form .bc-form{width:70%}}@media (min-width:960px){.bc-product-review-form .bc-form{width:50%}}.bc-form .bc-form__actions--review{-ms-flex-pack:start;justify-content:flex-start}.bc-product-review__cancel-write-btn,.bc-product-review__write-btn,.bc-single-product__reviews-anchor{background:transparent;border:0;padding:0;text-transform:none;margin:0;opacity:1;transition:all .15s ease-in-out}.bc-product-review__cancel-write-btn:focus,.bc-product-review__cancel-write-btn:hover,.bc-product-review__write-btn:focus,.bc-product-review__write-btn:hover,.bc-single-product__reviews-anchor:focus,.bc-single-product__reviews-anchor:hover{opacity:.9;background:unset;border:0}.bc-product-review__cancel-write-btn:disabled,.bc-product-review__write-btn:disabled,.bc-single-product__reviews-anchor:disabled{color:#34313f;padding:0;background-color:transparent;opacity:1}.bc-product-review__cancel-write-btn:disabled:focus,.bc-product-review__cancel-write-btn:disabled:hover,.bc-product-review__write-btn:disabled:focus,.bc-product-review__write-btn:disabled:hover,.bc-single-product__reviews-anchor:disabled:focus,.bc-single-product__reviews-anchor:disabled:hover{padding:0;background-color:transparent;color:#34313f;text-transform:none}.bc-product-review-form--active .bc-product-review__write-btn,.bc-product-review__cancel-write-btn{display:none}.bc-product-review-form--active .bc-product-review__cancel-write-btn{display:inline-block}.bc-product-review-list{margin-top:42px}.bc-product-review{margin-bottom:42px}.bc-product-review__title{display:inline;margin-right:12px;vertical-align:middle;margin-bottom:0}.bc-product-review__header{margin-bottom:6px}.bc-product-review__rating{display:inline-block;vertical-align:middle}.bc-product-review__meta{font-size:.875em;line-height:1.3;margin-bottom:15px}.bc-product-review__content{font-size:1em;line-height:1.5}@media (min-width:768px){.bc-product-review__content{width:70%}}.bc-cart{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;max-width:1140px;margin-left:auto;margin-right:auto;opacity:1;transition:all .15s ease-in-out}.bc-cart.bc-updating-cart{opacity:.4}.bc-cart__empty{width:100%;text-align:center;border-top:1px solid #e0e3e9;border-bottom:1px solid #e0e3e9;padding:40px 0}.bc-cart-header{width:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.bc-cart-header>div{padding:20px 0;font-size:.875em;font-weight:700}@media (min-width:768px){.bc-cart-header>div{padding:40px 0}}.bc-cart-header__item{-ms-flex:1 1 auto;flex:1 1 auto}.bc-cart-header__qty{-ms-flex:0 0 42px;flex:0 0 42px}@media (min-width:768px){.bc-cart-header__qty{-ms-flex:0 0 70px;flex:0 0 70px}}@media (min-width:960px){.bc-cart-header__qty{-ms-flex:0 0 120px;flex:0 0 120px}}.bc-cart-header__price{-ms-flex:0 0 70px;flex:0 0 70px}@media (min-width:960px){.bc-cart-header__price{-ms-flex:0 0 120px;flex:0 0 120px}}.bc-cart-body{width:100%;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.bc-cart-body,.bc-cart-item{display:-ms-flexbox;display:flex}.bc-cart-item{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:99.99999%;flex-basis:99.99999%;max-width:99.99999%;width:99.99999%;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:center;align-items:center;position:relative;border-top:1px solid #e0e3e9;padding:30px 0}.bc-cart-item:nth-child(1n){margin-left:0}.bc-cart-item:last-child{margin-right:0}.bc-cart-item:nth-child(1n){margin-right:0;margin-left:auto}@media (min-width:768px){.bc-cart-item{font-size:1em}}@media (min-width:960px){.bc-cart-item{padding:44px 0}}.bc-cart-item:last-child{border-bottom:1px solid #e0e3e9}.bc-cart-item__remove-button{display:block;background:transparent;color:#5273f4;font-size:.625em;text-transform:none;padding:5px 0;font-weight:700}@media (min-width:768px){.bc-cart-item__remove-button{font-size:1em;margin:0 auto}}.bc-cart-item__remove-button:focus,.bc-cart-item__remove-button:hover{background:transparent;color:#5e5e5e}.bc-cart-item__remove-button:focus[disabled],.bc-cart-item__remove-button:hover[disabled]{text-transform:none;background:transparent;color:#5e5e5e;padding:5px;opacity:.4}.bc-cart-item-image{-ms-flex:0 0 60px;flex:0 0 60px;margin-right:10px;-ms-flex-item-align:start;align-self:flex-start}@media (min-width:960px){.bc-cart-item-image{-ms-flex:0 0 110px;flex:0 0 110px;margin-right:30px}}.bc-cart-item-image img{max-width:50px;width:100%;height:auto}@media (min-width:768px){.bc-cart-item-image img{max-width:110px}}.bc-cart-item-meta{-ms-flex:1 1 auto;flex:1 1 auto;padding-right:5px;-ms-flex-item-align:start;align-self:flex-start}.bc-cart-item-meta .bc-cart-item__product-title{margin:0;font-size:1em;line-height:1.125}@media (min-width:768px){.bc-cart-item-meta .bc-cart-item__product-title{font-size:1.125em;line-height:1.2}}@media (min-width:960px){.bc-cart-item-meta .bc-cart-item__product-title{font-size:1.25em}}@media (min-width:1200px){.bc-cart-item-meta .bc-cart-item__product-title{font-size:1.5em;line-height:1.3}}.bc-cart-item__product-brand{display:block;font-weight:700;margin-top:10px;font-size:.875em}.bc-cart-item__product-option{display:block;font-size:.75em;line-height:1.5;margin-top:10px;color:#8b8b8b}.bc-cart-item__product-option-label{font-weight:600}.bc-cart-item__product-option-value{font-weight:300}.bc-cart-item-quantity{-ms-flex:0 0 70px;flex:0 0 70px}@media (min-width:960px){.bc-cart-item-quantity{-ms-flex:0 0 120px;flex:0 0 120px}}.bc-cart-item-quantity input.bc-cart-item__quantity-input{text-align:center;background:#fff;border:1px solid #e0e3e9;font-size:.813em;width:70px}@media (min-width:768px){.bc-cart-item-quantity input.bc-cart-item__quantity-input{font-size:1em}}.bc-cart-item-quantity input.bc-cart-item__quantity-input:focus{box-shadow:0 0 0 1px #e0e3e9}.bc-cart-item-total-price{-ms-flex:0 0 70px;flex:0 0 70px;margin-left:10px;font-weight:700;font-size:.875em}@media (min-width:960px){.bc-cart-item-total-price{-ms-flex:0 0 120px;flex:0 0 120px;font-size:1.25em}}.bc-cart-footer{width:100%}.bc-cart-subtotal,.bc-cart-tax{text-align:right;padding:25px 0 0;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:end;align-items:flex-end}.bc-cart-tax{padding-top:0}.bc-cart-subtotal__label,.bc-cart-tax__label{font-size:.813em;margin-right:14px;text-align:right;padding-right:15px;-ms-flex:1 1 auto;flex:1 1 auto}.bc-cart-subtotal__amount,.bc-cart-tax__amount{font-weight:700;text-align:left;-ms-flex:0 0 70px;flex:0 0 70px}@media (min-width:960px){.bc-cart-subtotal__amount,.bc-cart-tax__amount{font-size:1.25em;-ms-flex:0 0 120px;flex:0 0 120px}}.bc-cart-tax__amount{font-size:1em}.bc-cart-actions{text-align:right;margin-top:30px}.bc-cart-error{width:100%;display:none}.bc-cart-error.message-active{display:block}.bc-cart-error__message{background:#ff8383;font-size:.75em;margin:0}.message-active .bc-cart-error__message{padding:10px}.bigcommerce-cart__item-count{display:inline-block;background-color:#5273f4;color:#fff;font-weight:700;border-radius:15px;width:25px;height:25px;font-size:12px;line-height:25px;vertical-align:middle;text-align:center;transform:scale(0);transition:transform .15s cubic-bezier(.645,.045,.355,1)}.bigcommerce-cart__item-count.full{transform:scale(1)}.bc-account-addresses{position:relative}.bc-account-addresses__list{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;position:relative;z-index:1;opacity:1;transition:opacity .3s ease;padding:0;margin:0;list-style:none}.bc-account-addresses__list.bc-account-address--form-active{opacity:0}.bc-account-addresses__list .bc-account-addresses__item{position:relative;padding:30px}.bc-account-addresses__list .bc-account-addresses__add-new{padding:0}.bc-account-addresses__item{display:inline-block;background-color:#f5f5f5;transition:all .15s ease-in-out;width:100%;margin-bottom:30px}.bc-account-addresses__item:not(.bc-account-addresses__add-new):focus,.bc-account-addresses__item:not(.bc-account-addresses__add-new):hover{transform:translateY(-5px);box-shadow:0 4px 4px #e0e3e9}@media (min-width:768px){.bc-account-addresses__item{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.33333% - 20px);flex-basis:calc(33.33333% - 20px);max-width:calc(33.33333% - 20px);width:calc(33.33333% - 20px)}.bc-account-addresses__item:nth-child(1n){margin-right:30px;margin-left:0}.bc-account-addresses__item:last-child{margin-right:0}.bc-account-addresses__item:nth-child(3n){margin-right:0;margin-left:auto}}.bc-account-address__meta>span{display:block;font-size:.875em}span.bc-account-address__name{font-weight:700;font-size:1.25em;line-height:1.2;margin-bottom:12px}.bc-account-address__phone{margin-top:20px}.bc-account-address__delete,.bc-account-address__edit,a.bc-account-address__delete,a.bc-account-address__edit,button.bc-account-address__delete,button.bc-account-address__edit{background:transparent;border:0;outline:none;padding:0;text-transform:none;letter-spacing:normal;font-weight:400;font-family:inherit;font-size:.875em;text-decoration:none;box-shadow:none!important;opacity:1;transition:opacity .3s ease;margin-top:30px;margin-right:10px}.bc-account-address__delete:focus,.bc-account-address__delete:hover,.bc-account-address__edit:focus,.bc-account-address__edit:hover,a.bc-account-address__delete:focus,a.bc-account-address__delete:hover,a.bc-account-address__edit:focus,a.bc-account-address__edit:hover,button.bc-account-address__delete:focus,button.bc-account-address__delete:hover,button.bc-account-address__edit:focus,button.bc-account-address__edit:hover{background:transparent;opacity:.82}.bc-account-address__delete-form{display:inline-block}.bc-account-addresses__add-new{background-color:transparent;padding:0;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:center;justify-content:center}.bc-account-addresses__add-button,a.bc-account-addresses__add-button,button.bc-account-addresses__add-button{background-color:transparent;color:#34313f;transition:all .15s ease-in-out;width:100%;padding:40px 10px;font-size:1.25em;line-height:1;text-transform:none;letter-spacing:normal;font-weight:700;border:2px solid #f5f5f5}@media (min-width:768px){.bc-account-addresses__add-button,a.bc-account-addresses__add-button,button.bc-account-addresses__add-button{padding:0}}.bc-account-addresses__add-button .bc-icon,a.bc-account-addresses__add-button .bc-icon,button.bc-account-addresses__add-button .bc-icon{display:block;font-size:1em;margin-bottom:18px}.bc-account-addresses__add-button .bc-icon:before,a.bc-account-addresses__add-button .bc-icon:before,button.bc-account-addresses__add-button .bc-icon:before{font-weight:700}.bc-account-addresses__add-button:focus,.bc-account-addresses__add-button:hover,a.bc-account-addresses__add-button:focus,a.bc-account-addresses__add-button:hover,button.bc-account-addresses__add-button:focus,button.bc-account-addresses__add-button:hover{background-color:#f5f5f5}.bc-account-address-form-actions{display:block;text-align:center;margin:60px auto 20px;-ms-flex:1 1 100%;flex:1 1 100%}.bc-account-address-form-actions>button{margin:0 10px 20px}.bc-account-address__actions--new{-ms-flex:1 1 100%;flex:1 1 100%;display:-ms-flexbox;display:flex;min-height:250px}.bc-account-address__delete-confirmation{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;visibility:hidden;transition:all .15s ease-in-out;z-index:0;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:center;justify-content:center;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-direction:row;flex-direction:row;background:#f5f5f5;padding:30px}.bc-account-address__delete-confirmation>button{margin-bottom:10px}.bc-confirmation-active{opacity:1;visibility:visible;z-index:2}.bc-account-address-form__wrapper{position:absolute;z-index:2;top:0;left:0;width:100%}.bc-account-address-form__wrapper[aria-hidden=true]{display:none}.bc-account-address-form__overlay{background-color:#fff;position:absolute;left:0;top:0;width:100%;height:100%}.bc-account-address-form__content{position:relative}.bc-account-page{border-top:1px solid #e0e3e9;border-bottom:1px solid #e0e3e9;padding:40px 0}@media (min-width:768px){.bc-account-page{padding:60px 0 90px}}.bc-account-login{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%}.bc-account-login__form,.bc-account-login__register{margin-bottom:40px;width:100%}@media (min-width:768px){.bc-account-login__form,.bc-account-login__register{width:50%;margin-bottom:0}}@media (min-width:768px){.bc-account-login__form-inner,.bc-account-login__form form{max-width:370px}}.bc-account-login__form p.login-password,.bc-account-login__form p.login-remember,.bc-account-login__form p.login-username{box-sizing:border-box;margin-bottom:30px}@media (min-width:768px){.bc-account-login__form p.login-password,.bc-account-login__form p.login-remember,.bc-account-login__form p.login-username{margin-bottom:14px;padding-right:28px}}.bc-account-login__form label{display:block;margin-bottom:6px}@media (min-width:768px){.bc-account-login__register{border-left:1px solid #e0e3e9;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.bc-account-login__register-inner{margin-left:28px;max-width:370px}}.bc-account-login__register-title{margin-top:0}.bc-account-login__register-list{margin-left:20px}@media (min-width:768px){.bc-account-register-success{margin:0 auto;max-width:550px;text-align:center}}.bc-order__header{font-size:.75em;margin-bottom:20px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.bc-order__link{position:relative;margin-left:10px}.bc-order__link:before{content:"\00B7";margin-right:10px}.bc-order-meta__label,.bc-order-meta__value{font-size:.75em;line-height:1.5;margin:0;padding:0}.bc-order-meta__label{font-weight:700}.bc-order-meta__value{margin-bottom:0}.bc-order-list,.bc-order-list__item{list-style:none;margin:0}.bc-order-list{padding-bottom:40px}.bc-order-list,.bc-order-list.bc-load-items-container--has-pages{list-style:none}.bc-order-list__item{border-bottom:1px solid #e0e3e9;padding:32px 0}@media (min-width:768px){.bc-order-list__item{padding:50px 0}}.bc-order-list__item:first-child{border-top:1px solid #e0e3e9}.bc-order-card__body{margin-top:40px}.bc-order-detail{border-top:1px solid #e0e3e9;padding-top:50px}.bc-order__product-list,.bc-order__product-list-item{list-style:none;margin:0}.bc-order__product-list{border-bottom:1px solid #e0e3e9;padding-bottom:40px;margin-bottom:46px}.bc-order__product-list-item+.bc-order__product-list-item{margin-top:30px}.bc-order-detail__body{border-bottom:1px solid #e0e3e9;padding-bottom:36px;margin-bottom:48px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}@media (min-width:768px){.bc-order-detail__body{-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:justify;justify-content:space-between}}.bc-order-detail__col{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}@media (min-width:768px){.bc-order-detail__col{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 20px);flex-basis:calc(50% - 20px);max-width:calc(50% - 20px);width:calc(50% - 20px)}.bc-order-detail__col:nth-child(1n){margin-right:40px;margin-left:0}.bc-order-detail__col:last-child{margin-right:0}.bc-order-detail__col:nth-child(2n){margin-right:0;margin-left:auto}}.bc-order-detail-meta__list{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0}.bc-order-detail-meta__list-item{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 10px);flex-basis:calc(50% - 10px);max-width:calc(50% - 10px);width:calc(50% - 10px);margin-bottom:20px}.bc-order-detail-meta__list-item:nth-child(1n){margin-right:20px;margin-left:0}.bc-order-detail-meta__list-item:last-child{margin-right:0}.bc-order-detail-meta__list-item:nth-child(2n){margin-right:0;margin-left:auto}@media (min-width:768px){.bc-order-detail-meta__list-item{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.33333% - 13.33333px);flex-basis:calc(33.33333% - 13.33333px);max-width:calc(33.33333% - 13.33333px);width:calc(33.33333% - 13.33333px);margin-bottom:36px}.bc-order-detail-meta__list-item:nth-child(1n){margin-right:20px;margin-left:0}.bc-order-detail-meta__list-item:last-child{margin-right:0}.bc-order-detail-meta__list-item:nth-child(3n){margin-right:0;margin-left:auto}}.bc-order-detail__shipments{margin-top:16px}.bc-order-shipment{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}@media (min-width:768px){.bc-order-shipment{-ms-flex-direction:row;flex-direction:row}}.bc-order-shipment .bc-order-meta__label{font-size:.75em;fonot-weight:700;line-height:1.5;letter-spacing:0;text-transform:none;margin:0}.bc-order-shipment+.bc-order-shipment{margin-top:36px}.bc-order-shipment__col{margin-bottom:16px}@media (min-width:768px){.bc-order-shipment__col{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(50% - 10px);flex-basis:calc(50% - 10px);max-width:calc(50% - 10px);width:calc(50% - 10px);margin-bottom:0}.bc-order-shipment__col:nth-child(1n){margin-right:20px;margin-left:0}.bc-order-shipment__col:last-child{margin-right:0}.bc-order-shipment__col:nth-child(2n){margin-right:0;margin-left:auto}}.bc-order-shipment__tracking{margin-bottom:0}.bc-order-shipment__tracking-meta{margin-bottom:12px}.bc-order-shipment__address>*{display:block}.bc-order-detail__totals{margin-top:50px}@media (min-width:768px){.bc-order-detail__totals{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:calc(33.33333% - 13.33333px);flex-basis:calc(33.33333% - 13.33333px);max-width:calc(33.33333% - 13.33333px);width:calc(33.33333% - 13.33333px);margin-top:0}.bc-order-detail__totals:nth-child(1n){margin-right:20px;margin-left:0}.bc-order-detail__totals:last-child{margin-right:0}.bc-order-detail__totals:nth-child(3n){margin-right:0;margin-left:auto}}.bc-order-detail-totals__list,.bc-order-detail-totals__list-item{list-style:none;margin:0;padding:0}.bc-order-detail-totals__list-item{display:-ms-flexbox;display:flex;-ms-flex-wrap:no-wrap;flex-wrap:no-wrap;-ms-flex-pack:justify;justify-content:space-between}.bc-order-detail-totals__list-item+.bc-order-detail-totals__list-item{margin-top:4px}.bc-order-detail-totals__list-item:last-child{margin-top:36px}.bc-order-detail-totals__label,.bc-order-detail-totals__value{font-size:1em;line-height:1.5;font-weight:700;margin:0;padding:0}.bc-order-detail-totals__label--lg,.bc-order-detail-totals__value--lg{font-size:1.25em;line-height:1.1}.bc-order-detail-totals__label{color:#8b8b8b}@media (min-width:768px){.bc-account-lost-password{margin:0 auto;max-width:510px}}.bc-account-lost-password__account-actions{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:center;justify-content:center;list-style:none;margin-top:30px}.bc-account-lost-password__account-link+.bc-account-lost-password__account-link{margin-left:30px}.bc-gift-page{border-top:1px solid #e0e3e9;border-bottom:1px solid #e0e3e9;padding:40px 0}@media (min-width:768px){.bc-gift-page{padding:60px 0 68px}}@media (min-width:768px){.bc-gift-purchase .bc-form__row{position:relative}}.bc-gift-purchase .bc-form__col{-ms-flex:0 1 50%;flex:0 1 50%}@media (min-width:768px){.bc-gift-purchase .bc-form__col:first-child{border-right:1px solid #e0e3e9;padding-right:40px}}@media (min-width:768px){.bc-gift-purchase .bc-form__col:last-child{padding-left:40px}}.bc-gift-instructions{margin-top:40px}@media (min-width:768px){.bc-gift-instructions{margin-top:75px}}.bc-gift-instructions ol>li+li{margin-top:16px}@media (min-width:768px){.bc-gift-balance{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap}}@media (min-width:768px){.bc-gift-balance__form,.bc-gift-balance__response{-ms-flex:0 1 50%;flex:0 1 50%}}@media (min-width:768px){.bc-gift-balance__response>*{margin-left:80px}}.bc-gift-balance__container{background-color:#e0e3e9;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-top:40px;padding:74px 20px 72px}@media (min-width:768px){.bc-gift-balance__container{margin-top:0}}.bc-gift-balance__amount,.bc-gift-balance__code,.bc-gift-balance__title{display:block;font-weight:700;line-height:1}.bc-gift-balance__title{font-size:1em;margin-bottom:34px}.bc-gift-balance__amount{font-size:3em;margin-bottom:34px}.bc-gift-balance__code{font-size:1em;text-transform:uppercase} \ No newline at end of file diff --git a/assets/js/dist/admin/gutenberg/scripts.js b/assets/js/dist/admin/gutenberg/scripts.js index d29210cb..dd1bd1a0 100644 --- a/assets/js/dist/admin/gutenberg/scripts.js +++ b/assets/js/dist/admin/gutenberg/scripts.js @@ -71,609 +71,610 @@ eval("function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? o /***/ }), /* 1 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GUTENBERG_STORE_LINK = exports.GUTENBERG_PRODUCT_REVIEWS = exports.GUTENBERG_GIFT_CERTIFICATE_BALANCE = exports.GUTENBERG_GIFT_CERTIFICATE_FORM = exports.GUTENBERG_REGISTER = exports.GUTENBERG_LOGIN = exports.GUTENBERG_ORDERS = exports.GUTENBERG_ADDRESS = exports.GUTENBERG_ACCOUNT = exports.GUTENBERG_CHECKOUT = exports.GUTENBERG_CART = exports.GUTENBERG_PRODUCTS = exports.GUTENBERG_BLOCKS = exports.gutenbergconfig = void 0;\nvar gutenbergconfig = window.bigcommerce_gutenberg_config || {};\nexports.gutenbergconfig = gutenbergconfig;\nvar GUTENBERG_BLOCKS = gutenbergconfig.blocks || {};\nexports.GUTENBERG_BLOCKS = GUTENBERG_BLOCKS;\nvar GUTENBERG_PRODUCTS = GUTENBERG_BLOCKS['bigcommerce/products'] || {};\nexports.GUTENBERG_PRODUCTS = GUTENBERG_PRODUCTS;\nvar GUTENBERG_CART = GUTENBERG_BLOCKS['bigcommerce/cart'] || {};\nexports.GUTENBERG_CART = GUTENBERG_CART;\nvar GUTENBERG_CHECKOUT = GUTENBERG_BLOCKS['bigcommerce/checkout'] || {};\nexports.GUTENBERG_CHECKOUT = GUTENBERG_CHECKOUT;\nvar GUTENBERG_ACCOUNT = GUTENBERG_BLOCKS['bigcommerce/account-profile'] || {};\nexports.GUTENBERG_ACCOUNT = GUTENBERG_ACCOUNT;\nvar GUTENBERG_ADDRESS = GUTENBERG_BLOCKS['bigcommerce/address-list'] || {};\nexports.GUTENBERG_ADDRESS = GUTENBERG_ADDRESS;\nvar GUTENBERG_ORDERS = GUTENBERG_BLOCKS['bigcommerce/order-history'] || {};\nexports.GUTENBERG_ORDERS = GUTENBERG_ORDERS;\nvar GUTENBERG_LOGIN = GUTENBERG_BLOCKS['bigcommerce/login-form'] || {};\nexports.GUTENBERG_LOGIN = GUTENBERG_LOGIN;\nvar GUTENBERG_REGISTER = GUTENBERG_BLOCKS['bigcommerce/registration-form'] || {};\nexports.GUTENBERG_REGISTER = GUTENBERG_REGISTER;\nvar GUTENBERG_GIFT_CERTIFICATE_FORM = GUTENBERG_BLOCKS['bigcommerce/gift-certificate-form'] || {};\nexports.GUTENBERG_GIFT_CERTIFICATE_FORM = GUTENBERG_GIFT_CERTIFICATE_FORM;\nvar GUTENBERG_GIFT_CERTIFICATE_BALANCE = GUTENBERG_BLOCKS['bigcommerce/gift-certificate-balance'] || {};\nexports.GUTENBERG_GIFT_CERTIFICATE_BALANCE = GUTENBERG_GIFT_CERTIFICATE_BALANCE;\nvar GUTENBERG_PRODUCT_REVIEWS = GUTENBERG_BLOCKS['bigcommerce/product-reviews'] || {};\nexports.GUTENBERG_PRODUCT_REVIEWS = GUTENBERG_PRODUCT_REVIEWS;\nvar GUTENBERG_STORE_LINK = gutenbergconfig.store_link || '';\nexports.GUTENBERG_STORE_LINK = GUTENBERG_STORE_LINK;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9jb25maWcvZ3V0ZW5iZXJnLXNldHRpbmdzLmpzPzE4OGUiXSwibmFtZXMiOlsiZ3V0ZW5iZXJnY29uZmlnIiwid2luZG93IiwiYmlnY29tbWVyY2VfZ3V0ZW5iZXJnX2NvbmZpZyIsIkdVVEVOQkVSR19CTE9DS1MiLCJibG9ja3MiLCJHVVRFTkJFUkdfUFJPRFVDVFMiLCJHVVRFTkJFUkdfQ0FSVCIsIkdVVEVOQkVSR19DSEVDS09VVCIsIkdVVEVOQkVSR19BQ0NPVU5UIiwiR1VURU5CRVJHX0FERFJFU1MiLCJHVVRFTkJFUkdfT1JERVJTIiwiR1VURU5CRVJHX0xPR0lOIiwiR1VURU5CRVJHX1JFR0lTVEVSIiwiR1VURU5CRVJHX0dJRlRfQ0VSVElGSUNBVEVfRk9STSIsIkdVVEVOQkVSR19HSUZUX0NFUlRJRklDQVRFX0JBTEFOQ0UiLCJHVVRFTkJFUkdfUFJPRFVDVF9SRVZJRVdTIiwiR1VURU5CRVJHX1NUT1JFX0xJTksiLCJzdG9yZV9saW5rIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBTyxJQUFNQSxrQkFBa0JDLE9BQU9DLDRCQUFQLElBQXVDLEVBQS9EOztBQUVBLElBQU1DLG1CQUFtQkgsZ0JBQWdCSSxNQUFoQixJQUEwQixFQUFuRDs7QUFDQSxJQUFNQyxxQkFBcUJGLGlCQUFpQixzQkFBakIsS0FBNEMsRUFBdkU7O0FBQ0EsSUFBTUcsaUJBQWlCSCxpQkFBaUIsa0JBQWpCLEtBQXdDLEVBQS9EOztBQUNBLElBQU1JLHFCQUFxQkosaUJBQWlCLHNCQUFqQixLQUE0QyxFQUF2RTs7QUFDQSxJQUFNSyxvQkFBb0JMLGlCQUFpQiw2QkFBakIsS0FBbUQsRUFBN0U7O0FBQ0EsSUFBTU0sb0JBQW9CTixpQkFBaUIsMEJBQWpCLEtBQWdELEVBQTFFOztBQUNBLElBQU1PLG1CQUFtQlAsaUJBQWlCLDJCQUFqQixLQUFpRCxFQUExRTs7QUFDQSxJQUFNUSxrQkFBa0JSLGlCQUFpQix3QkFBakIsS0FBOEMsRUFBdEU7O0FBQ0EsSUFBTVMscUJBQXFCVCxpQkFBaUIsK0JBQWpCLEtBQXFELEVBQWhGOztBQUNBLElBQU1VLGtDQUFrQ1YsaUJBQWlCLG1DQUFqQixLQUF5RCxFQUFqRzs7QUFDQSxJQUFNVyxxQ0FBcUNYLGlCQUFpQixzQ0FBakIsS0FBNEQsRUFBdkc7O0FBQ0EsSUFBTVksNEJBQTRCWixpQkFBaUIsNkJBQWpCLEtBQW1ELEVBQXJGOztBQUNBLElBQU1hLHVCQUF1QmhCLGdCQUFnQmlCLFVBQWhCLElBQThCLEVBQTNEIiwiZmlsZSI6IjEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZ3V0ZW5iZXJnY29uZmlnID0gd2luZG93LmJpZ2NvbW1lcmNlX2d1dGVuYmVyZ19jb25maWcgfHwge307XG5cbmV4cG9ydCBjb25zdCBHVVRFTkJFUkdfQkxPQ0tTID0gZ3V0ZW5iZXJnY29uZmlnLmJsb2NrcyB8fCB7fTtcbmV4cG9ydCBjb25zdCBHVVRFTkJFUkdfUFJPRFVDVFMgPSBHVVRFTkJFUkdfQkxPQ0tTWydiaWdjb21tZXJjZS9wcm9kdWN0cyddIHx8IHt9O1xuZXhwb3J0IGNvbnN0IEdVVEVOQkVSR19DQVJUID0gR1VURU5CRVJHX0JMT0NLU1snYmlnY29tbWVyY2UvY2FydCddIHx8IHt9O1xuZXhwb3J0IGNvbnN0IEdVVEVOQkVSR19DSEVDS09VVCA9IEdVVEVOQkVSR19CTE9DS1NbJ2JpZ2NvbW1lcmNlL2NoZWNrb3V0J10gfHwge307XG5leHBvcnQgY29uc3QgR1VURU5CRVJHX0FDQ09VTlQgPSBHVVRFTkJFUkdfQkxPQ0tTWydiaWdjb21tZXJjZS9hY2NvdW50LXByb2ZpbGUnXSB8fCB7fTtcbmV4cG9ydCBjb25zdCBHVVRFTkJFUkdfQUREUkVTUyA9IEdVVEVOQkVSR19CTE9DS1NbJ2JpZ2NvbW1lcmNlL2FkZHJlc3MtbGlzdCddIHx8IHt9O1xuZXhwb3J0IGNvbnN0IEdVVEVOQkVSR19PUkRFUlMgPSBHVVRFTkJFUkdfQkxPQ0tTWydiaWdjb21tZXJjZS9vcmRlci1oaXN0b3J5J10gfHwge307XG5leHBvcnQgY29uc3QgR1VURU5CRVJHX0xPR0lOID0gR1VURU5CRVJHX0JMT0NLU1snYmlnY29tbWVyY2UvbG9naW4tZm9ybSddIHx8IHt9O1xuZXhwb3J0IGNvbnN0IEdVVEVOQkVSR19SRUdJU1RFUiA9IEdVVEVOQkVSR19CTE9DS1NbJ2JpZ2NvbW1lcmNlL3JlZ2lzdHJhdGlvbi1mb3JtJ10gfHwge307XG5leHBvcnQgY29uc3QgR1VURU5CRVJHX0dJRlRfQ0VSVElGSUNBVEVfRk9STSA9IEdVVEVOQkVSR19CTE9DS1NbJ2JpZ2NvbW1lcmNlL2dpZnQtY2VydGlmaWNhdGUtZm9ybSddIHx8IHt9O1xuZXhwb3J0IGNvbnN0IEdVVEVOQkVSR19HSUZUX0NFUlRJRklDQVRFX0JBTEFOQ0UgPSBHVVRFTkJFUkdfQkxPQ0tTWydiaWdjb21tZXJjZS9naWZ0LWNlcnRpZmljYXRlLWJhbGFuY2UnXSB8fCB7fTtcbmV4cG9ydCBjb25zdCBHVVRFTkJFUkdfUFJPRFVDVF9SRVZJRVdTID0gR1VURU5CRVJHX0JMT0NLU1snYmlnY29tbWVyY2UvcHJvZHVjdC1yZXZpZXdzJ10gfHwge307XG5leHBvcnQgY29uc3QgR1VURU5CRVJHX1NUT1JFX0xJTksgPSBndXRlbmJlcmdjb25maWcuc3RvcmVfbGluayB8fCAnJztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vZ3V0ZW5iZXJnL2NvbmZpZy9ndXRlbmJlcmctc2V0dGluZ3MuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///1\n"); +eval("var core = module.exports = { version: '2.5.3' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NvcmUuanM/MTVlMCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2QkFBNkI7QUFDN0IsdUNBQXVDIiwiZmlsZSI6IjEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgY29yZSA9IG1vZHVsZS5leHBvcnRzID0geyB2ZXJzaW9uOiAnMi41LjMnIH07XG5pZiAodHlwZW9mIF9fZSA9PSAnbnVtYmVyJykgX19lID0gY29yZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NvcmUuanNcbi8vIG1vZHVsZSBpZCA9IDFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///1\n"); /***/ }), /* 2 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("var core = module.exports = { version: '2.5.3' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NvcmUuanM/MTVlMCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2QkFBNkI7QUFDN0IsdUNBQXVDIiwiZmlsZSI6IjIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgY29yZSA9IG1vZHVsZS5leHBvcnRzID0geyB2ZXJzaW9uOiAnMi41LjMnIH07XG5pZiAodHlwZW9mIF9fZSA9PSAnbnVtYmVyJykgX19lID0gY29yZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NvcmUuanNcbi8vIG1vZHVsZSBpZCA9IDJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///2\n"); +eval("var store = __webpack_require__(51)('wks');\nvar uid = __webpack_require__(33);\nvar Symbol = __webpack_require__(6).Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy5qcz83NTJjIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgc3RvcmUgPSByZXF1aXJlKCcuL19zaGFyZWQnKSgnd2tzJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi9fdWlkJyk7XG52YXIgU3ltYm9sID0gcmVxdWlyZSgnLi9fZ2xvYmFsJykuU3ltYm9sO1xudmFyIFVTRV9TWU1CT0wgPSB0eXBlb2YgU3ltYm9sID09ICdmdW5jdGlvbic7XG5cbnZhciAkZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgcmV0dXJuIHN0b3JlW25hbWVdIHx8IChzdG9yZVtuYW1lXSA9XG4gICAgVVNFX1NZTUJPTCAmJiBTeW1ib2xbbmFtZV0gfHwgKFVTRV9TWU1CT0wgPyBTeW1ib2wgOiB1aWQpKCdTeW1ib2wuJyArIG5hbWUpKTtcbn07XG5cbiRleHBvcnRzLnN0b3JlID0gc3RvcmU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fd2tzLmpzXG4vLyBtb2R1bGUgaWQgPSAyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2\n"); /***/ }), /* 3 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DIAGNOSTICS_SECTION = exports.DIAGNOSTICS_ACTION = exports.DIAGNOSTICS_NONCE = exports.COUNTRIES_OBJ = exports.ACCOUNT_ACTION = exports.ACCOUNT_NONCE = exports.ADMIN_AJAX = exports.PRODUCTS_ORDER = exports.PRODUCTS_RECENT = exports.PRODUCTS_SEARCH = exports.PRODUCTS_BRAND = exports.PRODUCTS_FLAG = exports.PRODUCTS_CATEGORY = exports.ADMIN_ICONS = exports.ADMIN_IMAGES = exports.SHORTCODE_ENDPOINT = exports.PRODUCTS_ENDPOINT = void 0;\n\n__webpack_require__(83);\n\n__webpack_require__(197);\n\nvar wpadmin = window.bigcommerce_admin_config || {};\nvar editorDialog = wpadmin.editor_dialog || {};\nvar PRODUCTS_ENDPOINT = editorDialog.product_api_url || '';\nexports.PRODUCTS_ENDPOINT = PRODUCTS_ENDPOINT;\nvar SHORTCODE_ENDPOINT = editorDialog.shortcode_api_url || '';\nexports.SHORTCODE_ENDPOINT = SHORTCODE_ENDPOINT;\nvar ADMIN_IMAGES = wpadmin.images_url || '';\nexports.ADMIN_IMAGES = ADMIN_IMAGES;\nvar ADMIN_ICONS = wpadmin.icons_url || '';\nexports.ADMIN_ICONS = ADMIN_ICONS;\nvar PRODUCTS_CATEGORY = wpadmin.categories;\nexports.PRODUCTS_CATEGORY = PRODUCTS_CATEGORY;\nvar PRODUCTS_FLAG = wpadmin.flags;\nexports.PRODUCTS_FLAG = PRODUCTS_FLAG;\nvar PRODUCTS_BRAND = wpadmin.brands;\nexports.PRODUCTS_BRAND = PRODUCTS_BRAND;\nvar PRODUCTS_SEARCH = wpadmin.search;\nexports.PRODUCTS_SEARCH = PRODUCTS_SEARCH;\nvar PRODUCTS_RECENT = wpadmin.recent;\nexports.PRODUCTS_RECENT = PRODUCTS_RECENT;\nvar PRODUCTS_ORDER = wpadmin.sort_order;\nexports.PRODUCTS_ORDER = PRODUCTS_ORDER;\nvar ADMIN_AJAX = wpadmin.admin_ajax;\nexports.ADMIN_AJAX = ADMIN_AJAX;\nvar ACCOUNT_NONCE = wpadmin.account_rest_nonce;\nexports.ACCOUNT_NONCE = ACCOUNT_NONCE;\nvar ACCOUNT_ACTION = wpadmin.account_rest_action;\nexports.ACCOUNT_ACTION = ACCOUNT_ACTION;\nvar COUNTRIES_OBJ = wpadmin.countries;\nexports.COUNTRIES_OBJ = COUNTRIES_OBJ;\nvar DIAGNOSTICS_NONCE = wpadmin.diagnostics_rest_nonce;\nexports.DIAGNOSTICS_NONCE = DIAGNOSTICS_NONCE;\nvar DIAGNOSTICS_ACTION = wpadmin.diagnostics_rest_action;\nexports.DIAGNOSTICS_ACTION = DIAGNOSTICS_ACTION;\nvar DIAGNOSTICS_SECTION = wpadmin.diagnostics_section;\nexports.DIAGNOSTICS_SECTION = DIAGNOSTICS_SECTION;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2NvbmZpZy93cC1zZXR0aW5ncy5qcz8xNjAwIl0sIm5hbWVzIjpbIndwYWRtaW4iLCJ3aW5kb3ciLCJiaWdjb21tZXJjZV9hZG1pbl9jb25maWciLCJlZGl0b3JEaWFsb2ciLCJlZGl0b3JfZGlhbG9nIiwiUFJPRFVDVFNfRU5EUE9JTlQiLCJwcm9kdWN0X2FwaV91cmwiLCJTSE9SVENPREVfRU5EUE9JTlQiLCJzaG9ydGNvZGVfYXBpX3VybCIsIkFETUlOX0lNQUdFUyIsImltYWdlc191cmwiLCJBRE1JTl9JQ09OUyIsImljb25zX3VybCIsIlBST0RVQ1RTX0NBVEVHT1JZIiwiY2F0ZWdvcmllcyIsIlBST0RVQ1RTX0ZMQUciLCJmbGFncyIsIlBST0RVQ1RTX0JSQU5EIiwiYnJhbmRzIiwiUFJPRFVDVFNfU0VBUkNIIiwic2VhcmNoIiwiUFJPRFVDVFNfUkVDRU5UIiwicmVjZW50IiwiUFJPRFVDVFNfT1JERVIiLCJzb3J0X29yZGVyIiwiQURNSU5fQUpBWCIsImFkbWluX2FqYXgiLCJBQ0NPVU5UX05PTkNFIiwiYWNjb3VudF9yZXN0X25vbmNlIiwiQUNDT1VOVF9BQ1RJT04iLCJhY2NvdW50X3Jlc3RfYWN0aW9uIiwiQ09VTlRSSUVTX09CSiIsImNvdW50cmllcyIsIkRJQUdOT1NUSUNTX05PTkNFIiwiZGlhZ25vc3RpY3NfcmVzdF9ub25jZSIsIkRJQUdOT1NUSUNTX0FDVElPTiIsImRpYWdub3N0aWNzX3Jlc3RfYWN0aW9uIiwiRElBR05PU1RJQ1NfU0VDVElPTiIsImRpYWdub3N0aWNzX3NlY3Rpb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsSUFBTUEsVUFBVUMsT0FBT0Msd0JBQVAsSUFBbUMsRUFBbkQ7QUFDQSxJQUFNQyxlQUFlSCxRQUFRSSxhQUFSLElBQXlCLEVBQTlDO0FBRU8sSUFBTUMsb0JBQW9CRixhQUFhRyxlQUFiLElBQWdDLEVBQTFEOztBQUNBLElBQU1DLHFCQUFxQkosYUFBYUssaUJBQWIsSUFBa0MsRUFBN0Q7O0FBQ0EsSUFBTUMsZUFBZVQsUUFBUVUsVUFBUixJQUFzQixFQUEzQzs7QUFDQSxJQUFNQyxjQUFjWCxRQUFRWSxTQUFSLElBQXFCLEVBQXpDOztBQUNBLElBQU1DLG9CQUFvQmIsUUFBUWMsVUFBbEM7O0FBQ0EsSUFBTUMsZ0JBQWdCZixRQUFRZ0IsS0FBOUI7O0FBQ0EsSUFBTUMsaUJBQWlCakIsUUFBUWtCLE1BQS9COztBQUNBLElBQU1DLGtCQUFrQm5CLFFBQVFvQixNQUFoQzs7QUFDQSxJQUFNQyxrQkFBa0JyQixRQUFRc0IsTUFBaEM7O0FBQ0EsSUFBTUMsaUJBQWlCdkIsUUFBUXdCLFVBQS9COztBQUNBLElBQU1DLGFBQWF6QixRQUFRMEIsVUFBM0I7O0FBQ0EsSUFBTUMsZ0JBQWdCM0IsUUFBUTRCLGtCQUE5Qjs7QUFDQSxJQUFNQyxpQkFBaUI3QixRQUFROEIsbUJBQS9COztBQUNBLElBQU1DLGdCQUFnQi9CLFFBQVFnQyxTQUE5Qjs7QUFDQSxJQUFNQyxvQkFBb0JqQyxRQUFRa0Msc0JBQWxDOztBQUNBLElBQU1DLHFCQUFxQm5DLFFBQVFvQyx1QkFBbkM7O0FBQ0EsSUFBTUMsc0JBQXNCckMsUUFBUXNDLG1CQUFwQyIsImZpbGUiOiIzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgd3BhZG1pbiA9IHdpbmRvdy5iaWdjb21tZXJjZV9hZG1pbl9jb25maWcgfHwge307XG5jb25zdCBlZGl0b3JEaWFsb2cgPSB3cGFkbWluLmVkaXRvcl9kaWFsb2cgfHwge307XG5cbmV4cG9ydCBjb25zdCBQUk9EVUNUU19FTkRQT0lOVCA9IGVkaXRvckRpYWxvZy5wcm9kdWN0X2FwaV91cmwgfHwgJyc7XG5leHBvcnQgY29uc3QgU0hPUlRDT0RFX0VORFBPSU5UID0gZWRpdG9yRGlhbG9nLnNob3J0Y29kZV9hcGlfdXJsIHx8ICcnO1xuZXhwb3J0IGNvbnN0IEFETUlOX0lNQUdFUyA9IHdwYWRtaW4uaW1hZ2VzX3VybCB8fCAnJztcbmV4cG9ydCBjb25zdCBBRE1JTl9JQ09OUyA9IHdwYWRtaW4uaWNvbnNfdXJsIHx8ICcnO1xuZXhwb3J0IGNvbnN0IFBST0RVQ1RTX0NBVEVHT1JZID0gd3BhZG1pbi5jYXRlZ29yaWVzO1xuZXhwb3J0IGNvbnN0IFBST0RVQ1RTX0ZMQUcgPSB3cGFkbWluLmZsYWdzO1xuZXhwb3J0IGNvbnN0IFBST0RVQ1RTX0JSQU5EID0gd3BhZG1pbi5icmFuZHM7XG5leHBvcnQgY29uc3QgUFJPRFVDVFNfU0VBUkNIID0gd3BhZG1pbi5zZWFyY2g7XG5leHBvcnQgY29uc3QgUFJPRFVDVFNfUkVDRU5UID0gd3BhZG1pbi5yZWNlbnQ7XG5leHBvcnQgY29uc3QgUFJPRFVDVFNfT1JERVIgPSB3cGFkbWluLnNvcnRfb3JkZXI7XG5leHBvcnQgY29uc3QgQURNSU5fQUpBWCA9IHdwYWRtaW4uYWRtaW5fYWpheDtcbmV4cG9ydCBjb25zdCBBQ0NPVU5UX05PTkNFID0gd3BhZG1pbi5hY2NvdW50X3Jlc3Rfbm9uY2U7XG5leHBvcnQgY29uc3QgQUNDT1VOVF9BQ1RJT04gPSB3cGFkbWluLmFjY291bnRfcmVzdF9hY3Rpb247XG5leHBvcnQgY29uc3QgQ09VTlRSSUVTX09CSiA9IHdwYWRtaW4uY291bnRyaWVzO1xuZXhwb3J0IGNvbnN0IERJQUdOT1NUSUNTX05PTkNFID0gd3BhZG1pbi5kaWFnbm9zdGljc19yZXN0X25vbmNlO1xuZXhwb3J0IGNvbnN0IERJQUdOT1NUSUNTX0FDVElPTiA9IHdwYWRtaW4uZGlhZ25vc3RpY3NfcmVzdF9hY3Rpb247XG5leHBvcnQgY29uc3QgRElBR05PU1RJQ1NfU0VDVElPTiA9IHdwYWRtaW4uZGlhZ25vc3RpY3Nfc2VjdGlvbjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vY29uZmlnL3dwLXNldHRpbmdzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///3\n"); +eval("var global = __webpack_require__(6);\nvar core = __webpack_require__(1);\nvar ctx = __webpack_require__(43);\nvar hide = __webpack_require__(16);\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && key in exports) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2V4cG9ydC5qcz85MGNkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpRUFBaUU7QUFDakU7QUFDQSxrRkFBa0Y7QUFDbEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWCxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLCtDQUErQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2QsY0FBYztBQUNkLGNBQWM7QUFDZCxjQUFjO0FBQ2QsZUFBZTtBQUNmLGVBQWU7QUFDZixlQUFlO0FBQ2YsZ0JBQWdCO0FBQ2hCIiwiZmlsZSI6IjMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJy4vX2NvcmUnKTtcbnZhciBjdHggPSByZXF1aXJlKCcuL19jdHgnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi9faGlkZScpO1xudmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnO1xuXG52YXIgJGV4cG9ydCA9IGZ1bmN0aW9uICh0eXBlLCBuYW1lLCBzb3VyY2UpIHtcbiAgdmFyIElTX0ZPUkNFRCA9IHR5cGUgJiAkZXhwb3J0LkY7XG4gIHZhciBJU19HTE9CQUwgPSB0eXBlICYgJGV4cG9ydC5HO1xuICB2YXIgSVNfU1RBVElDID0gdHlwZSAmICRleHBvcnQuUztcbiAgdmFyIElTX1BST1RPID0gdHlwZSAmICRleHBvcnQuUDtcbiAgdmFyIElTX0JJTkQgPSB0eXBlICYgJGV4cG9ydC5CO1xuICB2YXIgSVNfV1JBUCA9IHR5cGUgJiAkZXhwb3J0Llc7XG4gIHZhciBleHBvcnRzID0gSVNfR0xPQkFMID8gY29yZSA6IGNvcmVbbmFtZV0gfHwgKGNvcmVbbmFtZV0gPSB7fSk7XG4gIHZhciBleHBQcm90byA9IGV4cG9ydHNbUFJPVE9UWVBFXTtcbiAgdmFyIHRhcmdldCA9IElTX0dMT0JBTCA/IGdsb2JhbCA6IElTX1NUQVRJQyA/IGdsb2JhbFtuYW1lXSA6IChnbG9iYWxbbmFtZV0gfHwge30pW1BST1RPVFlQRV07XG4gIHZhciBrZXksIG93biwgb3V0O1xuICBpZiAoSVNfR0xPQkFMKSBzb3VyY2UgPSBuYW1lO1xuICBmb3IgKGtleSBpbiBzb3VyY2UpIHtcbiAgICAvLyBjb250YWlucyBpbiBuYXRpdmVcbiAgICBvd24gPSAhSVNfRk9SQ0VEICYmIHRhcmdldCAmJiB0YXJnZXRba2V5XSAhPT0gdW5kZWZpbmVkO1xuICAgIGlmIChvd24gJiYga2V5IGluIGV4cG9ydHMpIGNvbnRpbnVlO1xuICAgIC8vIGV4cG9ydCBuYXRpdmUgb3IgcGFzc2VkXG4gICAgb3V0ID0gb3duID8gdGFyZ2V0W2tleV0gOiBzb3VyY2Vba2V5XTtcbiAgICAvLyBwcmV2ZW50IGdsb2JhbCBwb2xsdXRpb24gZm9yIG5hbWVzcGFjZXNcbiAgICBleHBvcnRzW2tleV0gPSBJU19HTE9CQUwgJiYgdHlwZW9mIHRhcmdldFtrZXldICE9ICdmdW5jdGlvbicgPyBzb3VyY2Vba2V5XVxuICAgIC8vIGJpbmQgdGltZXJzIHRvIGdsb2JhbCBmb3IgY2FsbCBmcm9tIGV4cG9ydCBjb250ZXh0XG4gICAgOiBJU19CSU5EICYmIG93biA/IGN0eChvdXQsIGdsb2JhbClcbiAgICAvLyB3cmFwIGdsb2JhbCBjb25zdHJ1Y3RvcnMgZm9yIHByZXZlbnQgY2hhbmdlIHRoZW0gaW4gbGlicmFyeVxuICAgIDogSVNfV1JBUCAmJiB0YXJnZXRba2V5XSA9PSBvdXQgPyAoZnVuY3Rpb24gKEMpIHtcbiAgICAgIHZhciBGID0gZnVuY3Rpb24gKGEsIGIsIGMpIHtcbiAgICAgICAgaWYgKHRoaXMgaW5zdGFuY2VvZiBDKSB7XG4gICAgICAgICAgc3dpdGNoIChhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjYXNlIDA6IHJldHVybiBuZXcgQygpO1xuICAgICAgICAgICAgY2FzZSAxOiByZXR1cm4gbmV3IEMoYSk7XG4gICAgICAgICAgICBjYXNlIDI6IHJldHVybiBuZXcgQyhhLCBiKTtcbiAgICAgICAgICB9IHJldHVybiBuZXcgQyhhLCBiLCBjKTtcbiAgICAgICAgfSByZXR1cm4gQy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgfTtcbiAgICAgIEZbUFJPVE9UWVBFXSA9IENbUFJPVE9UWVBFXTtcbiAgICAgIHJldHVybiBGO1xuICAgIC8vIG1ha2Ugc3RhdGljIHZlcnNpb25zIGZvciBwcm90b3R5cGUgbWV0aG9kc1xuICAgIH0pKG91dCkgOiBJU19QUk9UTyAmJiB0eXBlb2Ygb3V0ID09ICdmdW5jdGlvbicgPyBjdHgoRnVuY3Rpb24uY2FsbCwgb3V0KSA6IG91dDtcbiAgICAvLyBleHBvcnQgcHJvdG8gbWV0aG9kcyB0byBjb3JlLiVDT05TVFJVQ1RPUiUubWV0aG9kcy4lTkFNRSVcbiAgICBpZiAoSVNfUFJPVE8pIHtcbiAgICAgIChleHBvcnRzLnZpcnR1YWwgfHwgKGV4cG9ydHMudmlydHVhbCA9IHt9KSlba2V5XSA9IG91dDtcbiAgICAgIC8vIGV4cG9ydCBwcm90byBtZXRob2RzIHRvIGNvcmUuJUNPTlNUUlVDVE9SJS5wcm90b3R5cGUuJU5BTUUlXG4gICAgICBpZiAodHlwZSAmICRleHBvcnQuUiAmJiBleHBQcm90byAmJiAhZXhwUHJvdG9ba2V5XSkgaGlkZShleHBQcm90bywga2V5LCBvdXQpO1xuICAgIH1cbiAgfVxufTtcbi8vIHR5cGUgYml0bWFwXG4kZXhwb3J0LkYgPSAxOyAgIC8vIGZvcmNlZFxuJGV4cG9ydC5HID0gMjsgICAvLyBnbG9iYWxcbiRleHBvcnQuUyA9IDQ7ICAgLy8gc3RhdGljXG4kZXhwb3J0LlAgPSA4OyAgIC8vIHByb3RvXG4kZXhwb3J0LkIgPSAxNjsgIC8vIGJpbmRcbiRleHBvcnQuVyA9IDMyOyAgLy8gd3JhcFxuJGV4cG9ydC5VID0gNjQ7ICAvLyBzYWZlXG4kZXhwb3J0LlIgPSAxMjg7IC8vIHJlYWwgcHJvdG8gbWV0aG9kIGZvciBgbGlicmFyeWBcbm1vZHVsZS5leHBvcnRzID0gJGV4cG9ydDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19leHBvcnQuanNcbi8vIG1vZHVsZSBpZCA9IDNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///3\n"); /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { -eval("var store = __webpack_require__(49)('wks');\nvar uid = __webpack_require__(34);\nvar Symbol = __webpack_require__(9).Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy5qcz83NTJjIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgc3RvcmUgPSByZXF1aXJlKCcuL19zaGFyZWQnKSgnd2tzJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi9fdWlkJyk7XG52YXIgU3ltYm9sID0gcmVxdWlyZSgnLi9fZ2xvYmFsJykuU3ltYm9sO1xudmFyIFVTRV9TWU1CT0wgPSB0eXBlb2YgU3ltYm9sID09ICdmdW5jdGlvbic7XG5cbnZhciAkZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgcmV0dXJuIHN0b3JlW25hbWVdIHx8IChzdG9yZVtuYW1lXSA9XG4gICAgVVNFX1NZTUJPTCAmJiBTeW1ib2xbbmFtZV0gfHwgKFVTRV9TWU1CT0wgPyBTeW1ib2wgOiB1aWQpKCdTeW1ib2wuJyArIG5hbWUpKTtcbn07XG5cbiRleHBvcnRzLnN0b3JlID0gc3RvcmU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fd2tzLmpzXG4vLyBtb2R1bGUgaWQgPSA0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///4\n"); +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n isFetching: false,\n isGutenberg: false,\n currentEditor: '',\n productHTML: '',\n wpAPIDisplaySettings: {\n order: '',\n orderby: '',\n per_page: ''\n },\n wpAPIQueryObj: {\n bigcommerce_flag: [],\n bigcommerce_brand: [],\n bigcommerce_category: [],\n recent: [],\n search: []\n },\n selectedProducts: {\n post_id: []\n },\n insertCallback: false\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2NvbmZpZy9zaG9ydGNvZGUtc3RhdGUuanM/NzRlMiJdLCJuYW1lcyI6WyJpc0ZldGNoaW5nIiwiaXNHdXRlbmJlcmciLCJjdXJyZW50RWRpdG9yIiwicHJvZHVjdEhUTUwiLCJ3cEFQSURpc3BsYXlTZXR0aW5ncyIsIm9yZGVyIiwib3JkZXJieSIsInBlcl9wYWdlIiwid3BBUElRdWVyeU9iaiIsImJpZ2NvbW1lcmNlX2ZsYWciLCJiaWdjb21tZXJjZV9icmFuZCIsImJpZ2NvbW1lcmNlX2NhdGVnb3J5IiwicmVjZW50Iiwic2VhcmNoIiwic2VsZWN0ZWRQcm9kdWN0cyIsInBvc3RfaWQiLCJpbnNlcnRDYWxsYmFjayJdLCJtYXBwaW5ncyI6Ijs7Ozs7O2VBQ2U7QUFDZEEsY0FBWSxLQURFO0FBRWRDLGVBQWEsS0FGQztBQUdkQyxpQkFBZSxFQUhEO0FBSWRDLGVBQWEsRUFKQztBQUtkQyx3QkFBc0I7QUFDckJDLFdBQU8sRUFEYztBQUVyQkMsYUFBUyxFQUZZO0FBR3JCQyxjQUFVO0FBSFcsR0FMUjtBQVVkQyxpQkFBZTtBQUNkQyxzQkFBa0IsRUFESjtBQUVkQyx1QkFBbUIsRUFGTDtBQUdkQywwQkFBc0IsRUFIUjtBQUlkQyxZQUFRLEVBSk07QUFLZEMsWUFBUTtBQUxNLEdBVkQ7QUFpQmRDLG9CQUFrQjtBQUNqQkMsYUFBUztBQURRLEdBakJKO0FBb0JkQyxrQkFBZ0I7QUFwQkYsQyIsImZpbGUiOiI0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgZGVmYXVsdCB7XG5cdGlzRmV0Y2hpbmc6IGZhbHNlLFxuXHRpc0d1dGVuYmVyZzogZmFsc2UsXG5cdGN1cnJlbnRFZGl0b3I6ICcnLFxuXHRwcm9kdWN0SFRNTDogJycsXG5cdHdwQVBJRGlzcGxheVNldHRpbmdzOiB7XG5cdFx0b3JkZXI6ICcnLFxuXHRcdG9yZGVyYnk6ICcnLFxuXHRcdHBlcl9wYWdlOiAnJyxcblx0fSxcblx0d3BBUElRdWVyeU9iajoge1xuXHRcdGJpZ2NvbW1lcmNlX2ZsYWc6IFtdLFxuXHRcdGJpZ2NvbW1lcmNlX2JyYW5kOiBbXSxcblx0XHRiaWdjb21tZXJjZV9jYXRlZ29yeTogW10sXG5cdFx0cmVjZW50OiBbXSxcblx0XHRzZWFyY2g6IFtdLFxuXHR9LFxuXHRzZWxlY3RlZFByb2R1Y3RzOiB7XG5cdFx0cG9zdF9pZDogW10sXG5cdH0sXG5cdGluc2VydENhbGxiYWNrOiBmYWxzZSxcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2NvbmZpZy9zaG9ydGNvZGUtc3RhdGUuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4\n"); /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { -eval("var dP = __webpack_require__(43).f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || __webpack_require__(23) && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5mdW5jdGlvbi5uYW1lLmpzPzEyZTUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUMiLCJmaWxlIjoiNS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBkUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG52YXIgRlByb3RvID0gRnVuY3Rpb24ucHJvdG90eXBlO1xudmFyIG5hbWVSRSA9IC9eXFxzKmZ1bmN0aW9uIChbXiAoXSopLztcbnZhciBOQU1FID0gJ25hbWUnO1xuXG4vLyAxOS4yLjQuMiBuYW1lXG5OQU1FIGluIEZQcm90byB8fCByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpICYmIGRQKEZQcm90bywgTkFNRSwge1xuICBjb25maWd1cmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24gKCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gKCcnICsgdGhpcykubWF0Y2gobmFtZVJFKVsxXTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG59KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuZnVuY3Rpb24ubmFtZS5qc1xuLy8gbW9kdWxlIGlkID0gNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///5\n"); +eval("// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(63);\nvar defined = __webpack_require__(40);\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWlvYmplY3QuanM/NGRjNCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRvIGluZGV4ZWQgb2JqZWN0LCB0b09iamVjdCB3aXRoIGZhbGxiYWNrIGZvciBub24tYXJyYXktbGlrZSBFUzMgc3RyaW5nc1xudmFyIElPYmplY3QgPSByZXF1aXJlKCcuL19pb2JqZWN0Jyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBJT2JqZWN0KGRlZmluZWQoaXQpKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8taW9iamVjdC5qc1xuLy8gbW9kdWxlIGlkID0gNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///5\n"); /***/ }), /* 6 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -eval("var global = __webpack_require__(9);\nvar core = __webpack_require__(2);\nvar ctx = __webpack_require__(41);\nvar hide = __webpack_require__(19);\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && key in exports) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2V4cG9ydC5qcz85MGNkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpRUFBaUU7QUFDakU7QUFDQSxrRkFBa0Y7QUFDbEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWCxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLCtDQUErQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2QsY0FBYztBQUNkLGNBQWM7QUFDZCxjQUFjO0FBQ2QsZUFBZTtBQUNmLGVBQWU7QUFDZixlQUFlO0FBQ2YsZ0JBQWdCO0FBQ2hCIiwiZmlsZSI6IjYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJy4vX2NvcmUnKTtcbnZhciBjdHggPSByZXF1aXJlKCcuL19jdHgnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi9faGlkZScpO1xudmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnO1xuXG52YXIgJGV4cG9ydCA9IGZ1bmN0aW9uICh0eXBlLCBuYW1lLCBzb3VyY2UpIHtcbiAgdmFyIElTX0ZPUkNFRCA9IHR5cGUgJiAkZXhwb3J0LkY7XG4gIHZhciBJU19HTE9CQUwgPSB0eXBlICYgJGV4cG9ydC5HO1xuICB2YXIgSVNfU1RBVElDID0gdHlwZSAmICRleHBvcnQuUztcbiAgdmFyIElTX1BST1RPID0gdHlwZSAmICRleHBvcnQuUDtcbiAgdmFyIElTX0JJTkQgPSB0eXBlICYgJGV4cG9ydC5CO1xuICB2YXIgSVNfV1JBUCA9IHR5cGUgJiAkZXhwb3J0Llc7XG4gIHZhciBleHBvcnRzID0gSVNfR0xPQkFMID8gY29yZSA6IGNvcmVbbmFtZV0gfHwgKGNvcmVbbmFtZV0gPSB7fSk7XG4gIHZhciBleHBQcm90byA9IGV4cG9ydHNbUFJPVE9UWVBFXTtcbiAgdmFyIHRhcmdldCA9IElTX0dMT0JBTCA/IGdsb2JhbCA6IElTX1NUQVRJQyA/IGdsb2JhbFtuYW1lXSA6IChnbG9iYWxbbmFtZV0gfHwge30pW1BST1RPVFlQRV07XG4gIHZhciBrZXksIG93biwgb3V0O1xuICBpZiAoSVNfR0xPQkFMKSBzb3VyY2UgPSBuYW1lO1xuICBmb3IgKGtleSBpbiBzb3VyY2UpIHtcbiAgICAvLyBjb250YWlucyBpbiBuYXRpdmVcbiAgICBvd24gPSAhSVNfRk9SQ0VEICYmIHRhcmdldCAmJiB0YXJnZXRba2V5XSAhPT0gdW5kZWZpbmVkO1xuICAgIGlmIChvd24gJiYga2V5IGluIGV4cG9ydHMpIGNvbnRpbnVlO1xuICAgIC8vIGV4cG9ydCBuYXRpdmUgb3IgcGFzc2VkXG4gICAgb3V0ID0gb3duID8gdGFyZ2V0W2tleV0gOiBzb3VyY2Vba2V5XTtcbiAgICAvLyBwcmV2ZW50IGdsb2JhbCBwb2xsdXRpb24gZm9yIG5hbWVzcGFjZXNcbiAgICBleHBvcnRzW2tleV0gPSBJU19HTE9CQUwgJiYgdHlwZW9mIHRhcmdldFtrZXldICE9ICdmdW5jdGlvbicgPyBzb3VyY2Vba2V5XVxuICAgIC8vIGJpbmQgdGltZXJzIHRvIGdsb2JhbCBmb3IgY2FsbCBmcm9tIGV4cG9ydCBjb250ZXh0XG4gICAgOiBJU19CSU5EICYmIG93biA/IGN0eChvdXQsIGdsb2JhbClcbiAgICAvLyB3cmFwIGdsb2JhbCBjb25zdHJ1Y3RvcnMgZm9yIHByZXZlbnQgY2hhbmdlIHRoZW0gaW4gbGlicmFyeVxuICAgIDogSVNfV1JBUCAmJiB0YXJnZXRba2V5XSA9PSBvdXQgPyAoZnVuY3Rpb24gKEMpIHtcbiAgICAgIHZhciBGID0gZnVuY3Rpb24gKGEsIGIsIGMpIHtcbiAgICAgICAgaWYgKHRoaXMgaW5zdGFuY2VvZiBDKSB7XG4gICAgICAgICAgc3dpdGNoIChhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjYXNlIDA6IHJldHVybiBuZXcgQygpO1xuICAgICAgICAgICAgY2FzZSAxOiByZXR1cm4gbmV3IEMoYSk7XG4gICAgICAgICAgICBjYXNlIDI6IHJldHVybiBuZXcgQyhhLCBiKTtcbiAgICAgICAgICB9IHJldHVybiBuZXcgQyhhLCBiLCBjKTtcbiAgICAgICAgfSByZXR1cm4gQy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgfTtcbiAgICAgIEZbUFJPVE9UWVBFXSA9IENbUFJPVE9UWVBFXTtcbiAgICAgIHJldHVybiBGO1xuICAgIC8vIG1ha2Ugc3RhdGljIHZlcnNpb25zIGZvciBwcm90b3R5cGUgbWV0aG9kc1xuICAgIH0pKG91dCkgOiBJU19QUk9UTyAmJiB0eXBlb2Ygb3V0ID09ICdmdW5jdGlvbicgPyBjdHgoRnVuY3Rpb24uY2FsbCwgb3V0KSA6IG91dDtcbiAgICAvLyBleHBvcnQgcHJvdG8gbWV0aG9kcyB0byBjb3JlLiVDT05TVFJVQ1RPUiUubWV0aG9kcy4lTkFNRSVcbiAgICBpZiAoSVNfUFJPVE8pIHtcbiAgICAgIChleHBvcnRzLnZpcnR1YWwgfHwgKGV4cG9ydHMudmlydHVhbCA9IHt9KSlba2V5XSA9IG91dDtcbiAgICAgIC8vIGV4cG9ydCBwcm90byBtZXRob2RzIHRvIGNvcmUuJUNPTlNUUlVDVE9SJS5wcm90b3R5cGUuJU5BTUUlXG4gICAgICBpZiAodHlwZSAmICRleHBvcnQuUiAmJiBleHBQcm90byAmJiAhZXhwUHJvdG9ba2V5XSkgaGlkZShleHBQcm90bywga2V5LCBvdXQpO1xuICAgIH1cbiAgfVxufTtcbi8vIHR5cGUgYml0bWFwXG4kZXhwb3J0LkYgPSAxOyAgIC8vIGZvcmNlZFxuJGV4cG9ydC5HID0gMjsgICAvLyBnbG9iYWxcbiRleHBvcnQuUyA9IDQ7ICAgLy8gc3RhdGljXG4kZXhwb3J0LlAgPSA4OyAgIC8vIHByb3RvXG4kZXhwb3J0LkIgPSAxNjsgIC8vIGJpbmRcbiRleHBvcnQuVyA9IDMyOyAgLy8gd3JhcFxuJGV4cG9ydC5VID0gNjQ7ICAvLyBzYWZlXG4kZXhwb3J0LlIgPSAxMjg7IC8vIHJlYWwgcHJvdG8gbWV0aG9kIGZvciBgbGlicmFyeWBcbm1vZHVsZS5leHBvcnRzID0gJGV4cG9ydDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19leHBvcnQuanNcbi8vIG1vZHVsZSBpZCA9IDZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///6\n"); +eval("// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2dsb2JhbC5qcz9lY2FiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUMiLCJmaWxlIjoiNi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy84NiNpc3N1ZWNvbW1lbnQtMTE1NzU5MDI4XG52YXIgZ2xvYmFsID0gbW9kdWxlLmV4cG9ydHMgPSB0eXBlb2Ygd2luZG93ICE9ICd1bmRlZmluZWQnICYmIHdpbmRvdy5NYXRoID09IE1hdGhcbiAgPyB3aW5kb3cgOiB0eXBlb2Ygc2VsZiAhPSAndW5kZWZpbmVkJyAmJiBzZWxmLk1hdGggPT0gTWF0aCA/IHNlbGZcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5ldy1mdW5jXG4gIDogRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcbmlmICh0eXBlb2YgX19nID09ICdudW1iZXInKSBfX2cgPSBnbG9iYWw7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19nbG9iYWwuanNcbi8vIG1vZHVsZSBpZCA9IDZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///6\n"); /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n isFetching: false,\n isGutenberg: false,\n currentEditor: '',\n productHTML: '',\n wpAPIDisplaySettings: {\n order: '',\n orderby: '',\n per_page: ''\n },\n wpAPIQueryObj: {\n bigcommerce_flag: [],\n bigcommerce_brand: [],\n bigcommerce_category: [],\n recent: [],\n search: []\n },\n selectedProducts: {\n post_id: []\n },\n insertCallback: false\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2NvbmZpZy9zaG9ydGNvZGUtc3RhdGUuanM/NzRlMiJdLCJuYW1lcyI6WyJpc0ZldGNoaW5nIiwiaXNHdXRlbmJlcmciLCJjdXJyZW50RWRpdG9yIiwicHJvZHVjdEhUTUwiLCJ3cEFQSURpc3BsYXlTZXR0aW5ncyIsIm9yZGVyIiwib3JkZXJieSIsInBlcl9wYWdlIiwid3BBUElRdWVyeU9iaiIsImJpZ2NvbW1lcmNlX2ZsYWciLCJiaWdjb21tZXJjZV9icmFuZCIsImJpZ2NvbW1lcmNlX2NhdGVnb3J5IiwicmVjZW50Iiwic2VhcmNoIiwic2VsZWN0ZWRQcm9kdWN0cyIsInBvc3RfaWQiLCJpbnNlcnRDYWxsYmFjayJdLCJtYXBwaW5ncyI6Ijs7Ozs7O2VBQ2U7QUFDZEEsY0FBWSxLQURFO0FBRWRDLGVBQWEsS0FGQztBQUdkQyxpQkFBZSxFQUhEO0FBSWRDLGVBQWEsRUFKQztBQUtkQyx3QkFBc0I7QUFDckJDLFdBQU8sRUFEYztBQUVyQkMsYUFBUyxFQUZZO0FBR3JCQyxjQUFVO0FBSFcsR0FMUjtBQVVkQyxpQkFBZTtBQUNkQyxzQkFBa0IsRUFESjtBQUVkQyx1QkFBbUIsRUFGTDtBQUdkQywwQkFBc0IsRUFIUjtBQUlkQyxZQUFRLEVBSk07QUFLZEMsWUFBUTtBQUxNLEdBVkQ7QUFpQmRDLG9CQUFrQjtBQUNqQkMsYUFBUztBQURRLEdBakJKO0FBb0JkQyxrQkFBZ0I7QUFwQkYsQyIsImZpbGUiOiI3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgZGVmYXVsdCB7XG5cdGlzRmV0Y2hpbmc6IGZhbHNlLFxuXHRpc0d1dGVuYmVyZzogZmFsc2UsXG5cdGN1cnJlbnRFZGl0b3I6ICcnLFxuXHRwcm9kdWN0SFRNTDogJycsXG5cdHdwQVBJRGlzcGxheVNldHRpbmdzOiB7XG5cdFx0b3JkZXI6ICcnLFxuXHRcdG9yZGVyYnk6ICcnLFxuXHRcdHBlcl9wYWdlOiAnJyxcblx0fSxcblx0d3BBUElRdWVyeU9iajoge1xuXHRcdGJpZ2NvbW1lcmNlX2ZsYWc6IFtdLFxuXHRcdGJpZ2NvbW1lcmNlX2JyYW5kOiBbXSxcblx0XHRiaWdjb21tZXJjZV9jYXRlZ29yeTogW10sXG5cdFx0cmVjZW50OiBbXSxcblx0XHRzZWFyY2g6IFtdLFxuXHR9LFxuXHRzZWxlY3RlZFByb2R1Y3RzOiB7XG5cdFx0cG9zdF9pZDogW10sXG5cdH0sXG5cdGluc2VydENhbGxiYWNrOiBmYWxzZSxcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2NvbmZpZy9zaG9ydGNvZGUtc3RhdGUuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///7\n"); +eval("var anObject = __webpack_require__(11);\nvar IE8_DOM_DEFINE = __webpack_require__(64);\nvar toPrimitive = __webpack_require__(42);\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(10) ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1kcC5qcz83YWYwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsWUFBWTtBQUNmO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4vX2llOC1kb20tZGVmaW5lJyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuL190by1wcmltaXRpdmUnKTtcbnZhciBkUCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcblxuZXhwb3J0cy5mID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIFAgPSB0b1ByaW1pdGl2ZShQLCB0cnVlKTtcbiAgYW5PYmplY3QoQXR0cmlidXRlcyk7XG4gIGlmIChJRThfRE9NX0RFRklORSkgdHJ5IHtcbiAgICByZXR1cm4gZFAoTywgUCwgQXR0cmlidXRlcyk7XG4gIH0gY2F0Y2ggKGUpIHsgLyogZW1wdHkgKi8gfVxuICBpZiAoJ2dldCcgaW4gQXR0cmlidXRlcyB8fCAnc2V0JyBpbiBBdHRyaWJ1dGVzKSB0aHJvdyBUeXBlRXJyb3IoJ0FjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIScpO1xuICBpZiAoJ3ZhbHVlJyBpbiBBdHRyaWJ1dGVzKSBPW1BdID0gQXR0cmlidXRlcy52YWx1ZTtcbiAgcmV0dXJuIE87XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1kcC5qc1xuLy8gbW9kdWxlIGlkID0gN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///7\n"); /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { -eval("// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(59);\nvar defined = __webpack_require__(38);\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWlvYmplY3QuanM/NGRjNCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiOC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRvIGluZGV4ZWQgb2JqZWN0LCB0b09iamVjdCB3aXRoIGZhbGxiYWNrIGZvciBub24tYXJyYXktbGlrZSBFUzMgc3RyaW5nc1xudmFyIElPYmplY3QgPSByZXF1aXJlKCcuL19pb2JqZWN0Jyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBJT2JqZWN0KGRlZmluZWQoaXQpKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8taW9iamVjdC5qc1xuLy8gbW9kdWxlIGlkID0gOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8\n"); +eval("var _Object$getOwnPropertyDescriptor = __webpack_require__(103);\n\nvar _Object$defineProperty = __webpack_require__(67);\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = _Object$defineProperty && _Object$getOwnPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n _Object$defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nmodule.exports = _interopRequireWildcard;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkLmpzPzIxZjEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiI4LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9PYmplY3QkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZShcIi4uL2NvcmUtanMvb2JqZWN0L2dldC1vd24tcHJvcGVydHktZGVzY3JpcHRvclwiKTtcblxudmFyIF9PYmplY3QkZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9vYmplY3QvZGVmaW5lLXByb3BlcnR5XCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHtcbiAgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgIHJldHVybiBvYmo7XG4gIH0gZWxzZSB7XG4gICAgdmFyIG5ld09iaiA9IHt9O1xuXG4gICAgaWYgKG9iaiAhPSBudWxsKSB7XG4gICAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgdmFyIGRlc2MgPSBfT2JqZWN0JGRlZmluZVByb3BlcnR5ICYmIF9PYmplY3QkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID8gX09iamVjdCRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDoge307XG5cbiAgICAgICAgICBpZiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpIHtcbiAgICAgICAgICAgIF9PYmplY3QkZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdPYmpba2V5XSA9IG9ialtrZXldO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIG5ld09iai5kZWZhdWx0ID0gb2JqO1xuICAgIHJldHVybiBuZXdPYmo7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlV2lsZGNhcmQuanNcbi8vIG1vZHVsZSBpZCA9IDhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///8\n"); /***/ }), /* 9 */ /***/ (function(module, exports) { -eval("// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2dsb2JhbC5qcz9lY2FiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUMiLCJmaWxlIjoiOS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy84NiNpc3N1ZWNvbW1lbnQtMTE1NzU5MDI4XG52YXIgZ2xvYmFsID0gbW9kdWxlLmV4cG9ydHMgPSB0eXBlb2Ygd2luZG93ICE9ICd1bmRlZmluZWQnICYmIHdpbmRvdy5NYXRoID09IE1hdGhcbiAgPyB3aW5kb3cgOiB0eXBlb2Ygc2VsZiAhPSAndW5kZWZpbmVkJyAmJiBzZWxmLk1hdGggPT0gTWF0aCA/IHNlbGZcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5ldy1mdW5jXG4gIDogRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcbmlmICh0eXBlb2YgX19nID09ICdudW1iZXInKSBfX2cgPSBnbG9iYWw7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19nbG9iYWwuanNcbi8vIG1vZHVsZSBpZCA9IDlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///9\n"); +eval("var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2hhcy5qcz8wZjYyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0EiLCJmaWxlIjoiOS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBoYXNPd25Qcm9wZXJ0eSA9IHt9Lmhhc093blByb3BlcnR5O1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIGtleSkge1xuICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChpdCwga2V5KTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faGFzLmpzXG4vLyBtb2R1bGUgaWQgPSA5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///9\n"); /***/ }), /* 10 */ /***/ (function(module, exports, __webpack_require__) { -eval("var anObject = __webpack_require__(14);\nvar IE8_DOM_DEFINE = __webpack_require__(60);\nvar toPrimitive = __webpack_require__(40);\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(13) ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1kcC5qcz83YWYwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsWUFBWTtBQUNmO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjEwLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuL19pZTgtZG9tLWRlZmluZScpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi9fdG8tcHJpbWl0aXZlJyk7XG52YXIgZFAgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG5cbmV4cG9ydHMuZiA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBQID0gdG9QcmltaXRpdmUoUCwgdHJ1ZSk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuIGRQKE8sIFAsIEF0dHJpYnV0ZXMpO1xuICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKCdnZXQnIGluIEF0dHJpYnV0ZXMgfHwgJ3NldCcgaW4gQXR0cmlidXRlcykgdGhyb3cgVHlwZUVycm9yKCdBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCEnKTtcbiAgaWYgKCd2YWx1ZScgaW4gQXR0cmlidXRlcykgT1tQXSA9IEF0dHJpYnV0ZXMudmFsdWU7XG4gIHJldHVybiBPO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZHAuanNcbi8vIG1vZHVsZSBpZCA9IDEwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///10\n"); +eval("// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(15)(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2Rlc2NyaXB0b3JzLmpzP2Y4NGQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBLGlDQUFpQyxRQUFRLG1CQUFtQixVQUFVLEVBQUUsRUFBRTtBQUMxRSxDQUFDIiwiZmlsZSI6IjEwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhhbmsncyBJRTggZm9yIGhpcyBmdW5ueSBkZWZpbmVQcm9wZXJ0eVxubW9kdWxlLmV4cG9ydHMgPSAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xufSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZGVzY3JpcHRvcnMuanNcbi8vIG1vZHVsZSBpZCA9IDEwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///10\n"); /***/ }), /* 11 */ /***/ (function(module, exports, __webpack_require__) { -eval("var _Object$getOwnPropertyDescriptor = __webpack_require__(103);\n\nvar _Object$defineProperty = __webpack_require__(63);\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = _Object$defineProperty && _Object$getOwnPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n _Object$defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nmodule.exports = _interopRequireWildcard;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkLmpzPzIxZjEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIxMS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfT2JqZWN0JGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoXCIuLi9jb3JlLWpzL29iamVjdC9nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3JcIik7XG5cbnZhciBfT2JqZWN0JGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZShcIi4uL2NvcmUtanMvb2JqZWN0L2RlZmluZS1wcm9wZXJ0eVwiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7XG4gIGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9IGVsc2Uge1xuICAgIHZhciBuZXdPYmogPSB7fTtcblxuICAgIGlmIChvYmogIT0gbnVsbCkge1xuICAgICAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgIHZhciBkZXNjID0gX09iamVjdCRkZWZpbmVQcm9wZXJ0eSAmJiBfT2JqZWN0JGdldE93blByb3BlcnR5RGVzY3JpcHRvciA/IF9PYmplY3QkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IHt9O1xuXG4gICAgICAgICAgaWYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSB7XG4gICAgICAgICAgICBfT2JqZWN0JGRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICByZXR1cm4gbmV3T2JqO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQ7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkLmpzXG4vLyBtb2R1bGUgaWQgPSAxMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///11\n"); +eval("var isObject = __webpack_require__(14);\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FuLW9iamVjdC5qcz9lZmIzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmICghaXNPYmplY3QoaXQpKSB0aHJvdyBUeXBlRXJyb3IoaXQgKyAnIGlzIG5vdCBhbiBvYmplY3QhJyk7XG4gIHJldHVybiBpdDtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fYW4tb2JqZWN0LmpzXG4vLyBtb2R1bGUgaWQgPSAxMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///11\n"); /***/ }), /* 12 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2hhcy5qcz8wZjYyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0EiLCJmaWxlIjoiMTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaGFzT3duUHJvcGVydHkgPSB7fS5oYXNPd25Qcm9wZXJ0eTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBrZXkpIHtcbiAgcmV0dXJuIGhhc093blByb3BlcnR5LmNhbGwoaXQsIGtleSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2hhcy5qc1xuLy8gbW9kdWxlIGlkID0gMTJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///12\n"); +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.insertBefore = exports.insertAfter = exports.closest = exports.getNodes = exports.convertElements = exports.hasClassFromArray = exports.removeClassThatContains = exports.removeClass = exports.hasClass = exports.getChildren = exports.addClass = void 0;\n\n/**\n * @module\n * @description Some vanilla js cross browser utils\n */\n\n/**\n * Add a class to a dom element or exit safely if not set\n *\n * @param el Node\n * @param className Class string\n * @returns {*} Node or false\n */\nvar addClass = function addClass(el) {\n var className = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var element = el;\n\n if (!element) {\n return false;\n }\n\n element.classList.add(className);\n return element;\n};\n/**\n *\n * Get immediate child nodes and return an array of them\n *\n * @param el\n * @returns {Array} Iterable array of dom nodes\n */\n\n\nexports.addClass = addClass;\n\nvar getChildren = function getChildren(el) {\n var children = [];\n var i = el.children.length;\n\n for (i; i--;) {\n // eslint-disable-line\n if (el.children[i].nodeType !== 8) {\n children.unshift(el.children[i]);\n }\n }\n\n return children;\n};\n/**\n *\n * Test if a dom node has a class or returns false if el not defined\n *\n * @param el\n * @param className\n * @returns {boolean}\n */\n\n\nexports.getChildren = getChildren;\n\nvar hasClass = function hasClass(el) {\n var className = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n if (!el) {\n return false;\n }\n\n return el.classList.contains(className);\n};\n/**\n * Removes a class from the dom node\n *\n * @param el\n * @param className\n * @returns {*} returns false or el if passed\n */\n\n\nexports.hasClass = hasClass;\n\nvar removeClass = function removeClass(el, className) {\n var element = el;\n\n if (!element) {\n return false;\n }\n\n element.classList.remove(className);\n return element;\n};\n/**\n * Remove a class from an element that contains a string\n *\n * @param el\n * @param string\n */\n\n\nexports.removeClass = removeClass;\n\nvar removeClassThatContains = function removeClassThatContains(el) {\n var string = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n for (var i = 0; i < el.classList.length; i++) {\n if (el.classList.item(i).indexOf(string) !== -1) {\n el.classList.remove(el.classList.item(i));\n }\n }\n};\n/**\n * Compares an els classList against an array of strings to see if any match\n * @param el the element to check against\n * @param arr The array of classes as strings to test against\n * @param prefix optional prefix string applied to all test strings\n * @param suffix optional suffix string\n */\n\n\nexports.removeClassThatContains = removeClassThatContains;\n\nvar hasClassFromArray = function hasClassFromArray(el) {\n var arr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n var suffix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n return arr.some(function (c) {\n return el.classList.contains(\"\".concat(prefix).concat(c).concat(suffix));\n });\n};\n/**\n * Highly efficient function to convert a nodelist into a standard array. Allows you to run Array.forEach\n *\n * @param {Element|NodeList} elements to convert\n * @returns {Array} Of converted elements\n */\n\n\nexports.hasClassFromArray = hasClassFromArray;\n\nvar convertElements = function convertElements() {\n var elements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var converted = [];\n var i = elements.length;\n\n for (i; i--; converted.unshift(elements[i])) {\n ;\n } // eslint-disable-line\n\n\n return converted;\n};\n/**\n * Should be used at all times for getting nodes throughout our app. Please use the data-js attribute whenever possible\n *\n * @param selector The selector string to search for. If arg 4 is false (default) then we search for [data-js=\"selector\"]\n * @param convert Convert the NodeList to an array? Then we can Array.forEach directly. Uses convertElements from above\n * @param node Parent node to search from. Defaults to document\n * @param custom Is this a custom selector where we don't want to use the data-js attribute?\n * @returns {NodeList}\n */\n\n\nexports.convertElements = convertElements;\n\nvar getNodes = function getNodes() {\n var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var convert = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var node = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : document;\n var custom = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var selectorString = custom ? selector : \"[data-js=\\\"\".concat(selector, \"\\\"]\");\n var nodes = node.querySelectorAll(selectorString);\n\n if (convert) {\n nodes = convertElements(nodes);\n }\n\n return nodes;\n};\n/**\n * Gets the closest ancestor that matches a selector string\n *\n * @param el\n * @param selector\n * @returns {*}\n */\n\n\nexports.getNodes = getNodes;\n\nvar closest = function closest(el, selector) {\n var matchesFn;\n var parent;\n ['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'].some(function (fn) {\n if (typeof document.body[fn] === 'function') {\n matchesFn = fn;\n return true;\n }\n /* istanbul ignore next */\n\n\n return false;\n });\n\n while (el) {\n parent = el.parentElement;\n\n if (parent && parent[matchesFn](selector)) {\n return parent;\n }\n\n el = parent; // eslint-disable-line\n }\n\n return null;\n};\n/**\n * Insert a node after another node\n *\n * @param newNode {Element|NodeList}\n * @param referenceNode {Element|NodeList}\n */\n\n\nexports.closest = closest;\n\nvar insertAfter = function insertAfter(newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode.nextElementSibling);\n};\n/**\n * Insert a node before another node\n *\n * @param newNode {Element|NodeList}\n * @param referenceNode {Element|NodeList}\n */\n\n\nexports.insertAfter = insertAfter;\n\nvar insertBefore = function insertBefore(newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode);\n};\n\nexports.insertBefore = insertBefore;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL3V0aWxzL3Rvb2xzLmpzP2VmNGUiXSwibmFtZXMiOlsiYWRkQ2xhc3MiLCJlbCIsImNsYXNzTmFtZSIsImVsZW1lbnQiLCJjbGFzc0xpc3QiLCJhZGQiLCJnZXRDaGlsZHJlbiIsImNoaWxkcmVuIiwiaSIsImxlbmd0aCIsIm5vZGVUeXBlIiwidW5zaGlmdCIsImhhc0NsYXNzIiwiY29udGFpbnMiLCJyZW1vdmVDbGFzcyIsInJlbW92ZSIsInJlbW92ZUNsYXNzVGhhdENvbnRhaW5zIiwic3RyaW5nIiwiaXRlbSIsImluZGV4T2YiLCJoYXNDbGFzc0Zyb21BcnJheSIsImFyciIsInByZWZpeCIsInN1ZmZpeCIsInNvbWUiLCJjIiwiY29udmVydEVsZW1lbnRzIiwiZWxlbWVudHMiLCJjb252ZXJ0ZWQiLCJnZXROb2RlcyIsInNlbGVjdG9yIiwiY29udmVydCIsIm5vZGUiLCJkb2N1bWVudCIsImN1c3RvbSIsInNlbGVjdG9yU3RyaW5nIiwibm9kZXMiLCJxdWVyeVNlbGVjdG9yQWxsIiwiY2xvc2VzdCIsIm1hdGNoZXNGbiIsInBhcmVudCIsImZuIiwiYm9keSIsInBhcmVudEVsZW1lbnQiLCJpbnNlcnRBZnRlciIsIm5ld05vZGUiLCJyZWZlcmVuY2VOb2RlIiwicGFyZW50Tm9kZSIsImluc2VydEJlZm9yZSIsIm5leHRFbGVtZW50U2libGluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7OztBQUtBOzs7Ozs7O0FBUU8sSUFBTUEsV0FBVyxTQUFYQSxRQUFXLENBQUNDLEVBQUQsRUFBd0I7QUFBQSxNQUFuQkMsU0FBbUIsdUVBQVAsRUFBTztBQUMvQyxNQUFNQyxVQUFVRixFQUFoQjs7QUFDQSxNQUFJLENBQUNFLE9BQUwsRUFBYztBQUNiLFdBQU8sS0FBUDtBQUNBOztBQUVEQSxVQUFRQyxTQUFSLENBQWtCQyxHQUFsQixDQUFzQkgsU0FBdEI7QUFDQSxTQUFPQyxPQUFQO0FBQ0EsQ0FSTTtBQVVQ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LENBQUNILE9BQUQsRUFBVUMsYUFBVixFQUE0QjtBQUN2REEsZ0JBQWNDLFVBQWQsQ0FBeUJDLFlBQXpCLENBQXNDSCxPQUF0QyxFQUErQ0MsYUFBL0M7QUFDQSxDQUZNIiwiZmlsZSI6IjEyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlXG4gKiBAZGVzY3JpcHRpb24gU29tZSB2YW5pbGxhIGpzIGNyb3NzIGJyb3dzZXIgdXRpbHNcbiAqL1xuXG4vKipcbiAqIEFkZCBhIGNsYXNzIHRvIGEgZG9tIGVsZW1lbnQgb3IgZXhpdCBzYWZlbHkgaWYgbm90IHNldFxuICpcbiAqIEBwYXJhbSBlbCBOb2RlXG4gKiBAcGFyYW0gY2xhc3NOYW1lIENsYXNzIHN0cmluZ1xuICogQHJldHVybnMgeyp9IE5vZGUgb3IgZmFsc2VcbiAqL1xuXG5leHBvcnQgY29uc3QgYWRkQ2xhc3MgPSAoZWwsIGNsYXNzTmFtZSA9ICcnKSA9PiB7XG5cdGNvbnN0IGVsZW1lbnQgPSBlbDtcblx0aWYgKCFlbGVtZW50KSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0ZWxlbWVudC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7XG5cdHJldHVybiBlbGVtZW50O1xufTtcblxuLyoqXG4gKlxuICogR2V0IGltbWVkaWF0ZSBjaGlsZCBub2RlcyBhbmQgcmV0dXJuIGFuIGFycmF5IG9mIHRoZW1cbiAqXG4gKiBAcGFyYW0gZWxcbiAqIEByZXR1cm5zIHtBcnJheX0gSXRlcmFibGUgYXJyYXkgb2YgZG9tIG5vZGVzXG4gKi9cblxuZXhwb3J0IGNvbnN0IGdldENoaWxkcmVuID0gKGVsKSA9PiB7XG5cdGNvbnN0IGNoaWxkcmVuID0gW107XG5cdGxldCBpID0gZWwuY2hpbGRyZW4ubGVuZ3RoO1xuXHRmb3IgKGk7IGktLTspIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXHRcdGlmIChlbC5jaGlsZHJlbltpXS5ub2RlVHlwZSAhPT0gOCkge1xuXHRcdFx0Y2hpbGRyZW4udW5zaGlmdChlbC5jaGlsZHJlbltpXSk7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGNoaWxkcmVuO1xufTtcblxuLyoqXG4gKlxuICogVGVzdCBpZiBhIGRvbSBub2RlIGhhcyBhIGNsYXNzIG9yIHJldHVybnMgZmFsc2UgaWYgZWwgbm90IGRlZmluZWRcbiAqXG4gKiBAcGFyYW0gZWxcbiAqIEBwYXJhbSBjbGFzc05hbWVcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5cbmV4cG9ydCBjb25zdCBoYXNDbGFzcyA9IChlbCwgY2xhc3NOYW1lID0gJycpID0+IHtcblx0aWYgKCFlbCkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdHJldHVybiBlbC5jbGFzc0xpc3QuY29udGFpbnMoY2xhc3NOYW1lKTtcbn07XG5cbi8qKlxuICogUmVtb3ZlcyBhIGNsYXNzIGZyb20gdGhlIGRvbSBub2RlXG4gKlxuICogQHBhcmFtIGVsXG4gKiBAcGFyYW0gY2xhc3NOYW1lXG4gKiBAcmV0dXJucyB7Kn0gcmV0dXJucyBmYWxzZSBvciBlbCBpZiBwYXNzZWRcbiAqL1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlQ2xhc3MgPSAoZWwsIGNsYXNzTmFtZSkgPT4ge1xuXHRjb25zdCBlbGVtZW50ID0gZWw7XG5cdGlmICghZWxlbWVudCkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShjbGFzc05hbWUpO1xuXHRyZXR1cm4gZWxlbWVudDtcbn07XG5cbi8qKlxuICogUmVtb3ZlIGEgY2xhc3MgZnJvbSBhbiBlbGVtZW50IHRoYXQgY29udGFpbnMgYSBzdHJpbmdcbiAqXG4gKiBAcGFyYW0gZWxcbiAqIEBwYXJhbSBzdHJpbmdcbiAqL1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlQ2xhc3NUaGF0Q29udGFpbnMgPSAoZWwsIHN0cmluZyA9ICcnKSA9PiB7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgZWwuY2xhc3NMaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0aWYgKGVsLmNsYXNzTGlzdC5pdGVtKGkpLmluZGV4T2Yoc3RyaW5nKSAhPT0gLTEpIHtcblx0XHRcdGVsLmNsYXNzTGlzdC5yZW1vdmUoZWwuY2xhc3NMaXN0Lml0ZW0oaSkpO1xuXHRcdH1cblx0fVxufTtcblxuLyoqXG4gKiBDb21wYXJlcyBhbiBlbHMgY2xhc3NMaXN0IGFnYWluc3QgYW4gYXJyYXkgb2Ygc3RyaW5ncyB0byBzZWUgaWYgYW55IG1hdGNoXG4gKiBAcGFyYW0gZWwgdGhlIGVsZW1lbnQgdG8gY2hlY2sgYWdhaW5zdFxuICogQHBhcmFtIGFyciBUaGUgYXJyYXkgb2YgY2xhc3NlcyBhcyBzdHJpbmdzIHRvIHRlc3QgYWdhaW5zdFxuICogQHBhcmFtIHByZWZpeCBvcHRpb25hbCBwcmVmaXggc3RyaW5nIGFwcGxpZWQgdG8gYWxsIHRlc3Qgc3RyaW5nc1xuICogQHBhcmFtIHN1ZmZpeCBvcHRpb25hbCBzdWZmaXggc3RyaW5nXG4gKi9cblxuZXhwb3J0IGNvbnN0IGhhc0NsYXNzRnJvbUFycmF5ID0gKGVsLCBhcnIgPSBbXSwgcHJlZml4ID0gJycsIHN1ZmZpeCA9ICcnKSA9PiBhcnIuc29tZShjID0+IGVsLmNsYXNzTGlzdC5jb250YWlucyhgJHtwcmVmaXh9JHtjfSR7c3VmZml4fWApKTtcblxuLyoqXG4gKiBIaWdobHkgZWZmaWNpZW50IGZ1bmN0aW9uIHRvIGNvbnZlcnQgYSBub2RlbGlzdCBpbnRvIGEgc3RhbmRhcmQgYXJyYXkuIEFsbG93cyB5b3UgdG8gcnVuIEFycmF5LmZvckVhY2hcbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR8Tm9kZUxpc3R9IGVsZW1lbnRzIHRvIGNvbnZlcnRcbiAqIEByZXR1cm5zIHtBcnJheX0gT2YgY29udmVydGVkIGVsZW1lbnRzXG4gKi9cblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRFbGVtZW50cyA9IChlbGVtZW50cyA9IFtdKSA9PiB7XG5cdGNvbnN0IGNvbnZlcnRlZCA9IFtdO1xuXHRsZXQgaSA9IGVsZW1lbnRzLmxlbmd0aDtcblx0Zm9yIChpOyBpLS07IGNvbnZlcnRlZC51bnNoaWZ0KGVsZW1lbnRzW2ldKSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuXHRyZXR1cm4gY29udmVydGVkO1xufTtcblxuLyoqXG4gKiBTaG91bGQgYmUgdXNlZCBhdCBhbGwgdGltZXMgZm9yIGdldHRpbmcgbm9kZXMgdGhyb3VnaG91dCBvdXIgYXBwLiBQbGVhc2UgdXNlIHRoZSBkYXRhLWpzIGF0dHJpYnV0ZSB3aGVuZXZlciBwb3NzaWJsZVxuICpcbiAqIEBwYXJhbSBzZWxlY3RvciBUaGUgc2VsZWN0b3Igc3RyaW5nIHRvIHNlYXJjaCBmb3IuIElmIGFyZyA0IGlzIGZhbHNlIChkZWZhdWx0KSB0aGVuIHdlIHNlYXJjaCBmb3IgW2RhdGEtanM9XCJzZWxlY3RvclwiXVxuICogQHBhcmFtIGNvbnZlcnQgQ29udmVydCB0aGUgTm9kZUxpc3QgdG8gYW4gYXJyYXk/IFRoZW4gd2UgY2FuIEFycmF5LmZvckVhY2ggZGlyZWN0bHkuIFVzZXMgY29udmVydEVsZW1lbnRzIGZyb20gYWJvdmVcbiAqIEBwYXJhbSBub2RlIFBhcmVudCBub2RlIHRvIHNlYXJjaCBmcm9tLiBEZWZhdWx0cyB0byBkb2N1bWVudFxuICogQHBhcmFtIGN1c3RvbSBJcyB0aGlzIGEgY3VzdG9tIHNlbGVjdG9yIHdoZXJlIHdlIGRvbid0IHdhbnQgdG8gdXNlIHRoZSBkYXRhLWpzIGF0dHJpYnV0ZT9cbiAqIEByZXR1cm5zIHtOb2RlTGlzdH1cbiAqL1xuXG5leHBvcnQgY29uc3QgZ2V0Tm9kZXMgPSAoc2VsZWN0b3IgPSAnJywgY29udmVydCA9IGZhbHNlLCBub2RlID0gZG9jdW1lbnQsIGN1c3RvbSA9IGZhbHNlKSA9PiB7XG5cdGNvbnN0IHNlbGVjdG9yU3RyaW5nID0gY3VzdG9tID8gc2VsZWN0b3IgOiBgW2RhdGEtanM9XCIke3NlbGVjdG9yfVwiXWA7XG5cdGxldCBub2RlcyA9IG5vZGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3RvclN0cmluZyk7XG5cdGlmIChjb252ZXJ0KSB7XG5cdFx0bm9kZXMgPSBjb252ZXJ0RWxlbWVudHMobm9kZXMpO1xuXHR9XG5cdHJldHVybiBub2Rlcztcbn07XG5cbi8qKlxuICogR2V0cyB0aGUgY2xvc2VzdCBhbmNlc3RvciB0aGF0IG1hdGNoZXMgYSBzZWxlY3RvciBzdHJpbmdcbiAqXG4gKiBAcGFyYW0gZWxcbiAqIEBwYXJhbSBzZWxlY3RvclxuICogQHJldHVybnMgeyp9XG4gKi9cblxuZXhwb3J0IGNvbnN0IGNsb3Nlc3QgPSAoZWwsIHNlbGVjdG9yKSA9PiB7XG5cdGxldCBtYXRjaGVzRm47XG5cdGxldCBwYXJlbnQ7XG5cblx0WydtYXRjaGVzJywgJ3dlYmtpdE1hdGNoZXNTZWxlY3RvcicsICdtb3pNYXRjaGVzU2VsZWN0b3InLCAnbXNNYXRjaGVzU2VsZWN0b3InLCAnb01hdGNoZXNTZWxlY3RvciddLnNvbWUoKGZuKSA9PiB7XG5cdFx0aWYgKHR5cGVvZiBkb2N1bWVudC5ib2R5W2ZuXSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0bWF0Y2hlc0ZuID0gZm47XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdFx0LyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH0pO1xuXG5cdHdoaWxlIChlbCkge1xuXHRcdHBhcmVudCA9IGVsLnBhcmVudEVsZW1lbnQ7XG5cdFx0aWYgKHBhcmVudCAmJiBwYXJlbnRbbWF0Y2hlc0ZuXShzZWxlY3RvcikpIHtcblx0XHRcdHJldHVybiBwYXJlbnQ7XG5cdFx0fVxuXG5cdFx0ZWwgPSBwYXJlbnQ7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblx0fVxuXG5cdHJldHVybiBudWxsO1xufTtcblxuLyoqXG4gKiBJbnNlcnQgYSBub2RlIGFmdGVyIGFub3RoZXIgbm9kZVxuICpcbiAqIEBwYXJhbSBuZXdOb2RlIHtFbGVtZW50fE5vZGVMaXN0fVxuICogQHBhcmFtIHJlZmVyZW5jZU5vZGUge0VsZW1lbnR8Tm9kZUxpc3R9XG4gKi9cbmV4cG9ydCBjb25zdCBpbnNlcnRBZnRlciA9IChuZXdOb2RlLCByZWZlcmVuY2VOb2RlKSA9PiB7XG5cdHJlZmVyZW5jZU5vZGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobmV3Tm9kZSwgcmVmZXJlbmNlTm9kZS5uZXh0RWxlbWVudFNpYmxpbmcpO1xufTtcblxuLyoqXG4gKiBJbnNlcnQgYSBub2RlIGJlZm9yZSBhbm90aGVyIG5vZGVcbiAqXG4gKiBAcGFyYW0gbmV3Tm9kZSB7RWxlbWVudHxOb2RlTGlzdH1cbiAqIEBwYXJhbSByZWZlcmVuY2VOb2RlIHtFbGVtZW50fE5vZGVMaXN0fVxuICovXG5cbmV4cG9ydCBjb25zdCBpbnNlcnRCZWZvcmUgPSAobmV3Tm9kZSwgcmVmZXJlbmNlTm9kZSkgPT4ge1xuXHRyZWZlcmVuY2VOb2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG5ld05vZGUsIHJlZmVyZW5jZU5vZGUpO1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvdXRpbHMvdG9vbHMuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///12\n"); /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { -eval("// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(18)(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2Rlc2NyaXB0b3JzLmpzP2Y4NGQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBLGlDQUFpQyxRQUFRLG1CQUFtQixVQUFVLEVBQUUsRUFBRTtBQUMxRSxDQUFDIiwiZmlsZSI6IjEzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhhbmsncyBJRTggZm9yIGhpcyBmdW5ueSBkZWZpbmVQcm9wZXJ0eVxubW9kdWxlLmV4cG9ydHMgPSAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xufSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZGVzY3JpcHRvcnMuanNcbi8vIG1vZHVsZSBpZCA9IDEzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///13\n"); +"use strict"; +eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.trigger = exports.ready = exports.on = void 0;\n\nvar _assign2 = _interopRequireDefault(__webpack_require__(171));\n\nvar on = function on(el, name, handler) {\n if (el.addEventListener) {\n el.addEventListener(name, handler);\n } else {\n el.attachEvent(\"on\".concat(name), function () {\n handler.call(el);\n });\n }\n};\n\nexports.on = on;\n\nvar ready = function ready(fn) {\n if (document.readyState !== 'loading') {\n fn();\n } else if (document.addEventListener) {\n document.addEventListener('DOMContentLoaded', fn);\n } else {\n document.attachEvent('onreadystatechange', function () {\n if (document.readyState !== 'loading') {\n fn();\n }\n });\n }\n};\n\nexports.ready = ready;\n\nvar trigger = function trigger(opts) {\n var event;\n var options = (0, _assign2.default)({\n data: {},\n el: document,\n event: '',\n native: true\n }, opts);\n\n if (options.native) {\n event = document.createEvent('HTMLEvents');\n event.initEvent(options.event, true, false);\n } else {\n try {\n event = new CustomEvent(options.event, {\n detail: options.data\n });\n } catch (e) {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(options.event, true, true, options.data);\n }\n }\n\n options.el.dispatchEvent(event);\n};\n\nexports.trigger = trigger;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL3V0aWxzL2V2ZW50cy5qcz9mNDFjIl0sIm5hbWVzIjpbIm9uIiwiZWwiLCJuYW1lIiwiaGFuZGxlciIsImFkZEV2ZW50TGlzdGVuZXIiLCJhdHRhY2hFdmVudCIsImNhbGwiLCJyZWFkeSIsImZuIiwiZG9jdW1lbnQiLCJyZWFkeVN0YXRlIiwidHJpZ2dlciIsIm9wdHMiLCJldmVudCIsIm9wdGlvbnMiLCJkYXRhIiwibmF0aXZlIiwiY3JlYXRlRXZlbnQiLCJpbml0RXZlbnQiLCJDdXN0b21FdmVudCIsImRldGFpbCIsImUiLCJpbml0Q3VzdG9tRXZlbnQiLCJkaXNwYXRjaEV2ZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQU9BLElBQU1BLEtBQUssU0FBTEEsRUFBSyxDQUFDQyxFQUFELEVBQUtDLElBQUwsRUFBV0MsT0FBWCxFQUF1QjtBQUNqQyxNQUFJRixHQUFHRyxnQkFBUCxFQUF5QjtBQUN4QkgsT0FBR0csZ0JBQUgsQ0FBb0JGLElBQXBCLEVBQTBCQyxPQUExQjtBQUNBLEdBRkQsTUFFTztBQUNORixPQUFHSSxXQUFILGFBQW9CSCxJQUFwQixHQUE0QixZQUFNO0FBQ2pDQyxjQUFRRyxJQUFSLENBQWFMLEVBQWI7QUFDQSxLQUZEO0FBR0E7QUFDRCxDQVJEOzs7O0FBVUEsSUFBTU0sUUFBUSxTQUFSQSxLQUFRLENBQUNDLEVBQUQsRUFBUTtBQUNyQixNQUFJQyxTQUFTQyxVQUFULEtBQXdCLFNBQTVCLEVBQXVDO0FBQ3RDRjtBQUNBLEdBRkQsTUFFTyxJQUFJQyxTQUFTTCxnQkFBYixFQUErQjtBQUNyQ0ssYUFBU0wsZ0JBQVQsQ0FBMEIsa0JBQTFCLEVBQThDSSxFQUE5QztBQUNBLEdBRk0sTUFFQTtBQUNOQyxhQUFTSixXQUFULENBQXFCLG9CQUFyQixFQUEyQyxZQUFNO0FBQ2hELFVBQUlJLFNBQVNDLFVBQVQsS0FBd0IsU0FBNUIsRUFBdUM7QUFDdENGO0FBQ0E7QUFDRCxLQUpEO0FBS0E7QUFDRCxDQVpEOzs7O0FBY0EsSUFBTUcsVUFBVSxTQUFWQSxPQUFVLENBQUNDLElBQUQsRUFBVTtBQUN6QixNQUFJQyxLQUFKO0FBQ0EsTUFBTUMsVUFBVSxzQkFBUztBQUN4QkMsVUFBTSxFQURrQjtBQUV4QmQsUUFBSVEsUUFGb0I7QUFHeEJJLFdBQU8sRUFIaUI7QUFJeEJHLFlBQVE7QUFKZ0IsR0FBVCxFQUtiSixJQUxhLENBQWhCOztBQU9BLE1BQUlFLFFBQVFFLE1BQVosRUFBb0I7QUFDbkJILFlBQVFKLFNBQVNRLFdBQVQsQ0FBcUIsWUFBckIsQ0FBUjtBQUNBSixVQUFNSyxTQUFOLENBQWdCSixRQUFRRCxLQUF4QixFQUErQixJQUEvQixFQUFxQyxLQUFyQztBQUNBLEdBSEQsTUFHTztBQUNOLFFBQUk7QUFDSEEsY0FBUSxJQUFJTSxXQUFKLENBQWdCTCxRQUFRRCxLQUF4QixFQUErQjtBQUFFTyxnQkFBUU4sUUFBUUM7QUFBbEIsT0FBL0IsQ0FBUjtBQUNBLEtBRkQsQ0FFRSxPQUFPTSxDQUFQLEVBQVU7QUFDWFIsY0FBUUosU0FBU1EsV0FBVCxDQUFxQixhQUFyQixDQUFSO0FBQ0FKLFlBQU1TLGVBQU4sQ0FBc0JSLFFBQVFELEtBQTlCLEVBQXFDLElBQXJDLEVBQTJDLElBQTNDLEVBQWlEQyxRQUFRQyxJQUF6RDtBQUNBO0FBQ0Q7O0FBRURELFVBQVFiLEVBQVIsQ0FBV3NCLGFBQVgsQ0FBeUJWLEtBQXpCO0FBQ0EsQ0F0QkQiLCJmaWxlIjoiMTMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGVcbiAqIEBkZXNjcmlwdGlvbiBTb21lIGV2ZW50IGZ1bmN0aW9ucyBmb3IgdXNlIGluIG90aGVyIG1vZHVsZXNcbiAqL1xuXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5jb25zdCBvbiA9IChlbCwgbmFtZSwgaGFuZGxlcikgPT4ge1xuXHRpZiAoZWwuYWRkRXZlbnRMaXN0ZW5lcikge1xuXHRcdGVsLmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgaGFuZGxlcik7XG5cdH0gZWxzZSB7XG5cdFx0ZWwuYXR0YWNoRXZlbnQoYG9uJHtuYW1lfWAsICgpID0+IHtcblx0XHRcdGhhbmRsZXIuY2FsbChlbCk7XG5cdFx0fSk7XG5cdH1cbn07XG5cbmNvbnN0IHJlYWR5ID0gKGZuKSA9PiB7XG5cdGlmIChkb2N1bWVudC5yZWFkeVN0YXRlICE9PSAnbG9hZGluZycpIHtcblx0XHRmbigpO1xuXHR9IGVsc2UgaWYgKGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIpIHtcblx0XHRkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZm4pO1xuXHR9IGVsc2Uge1xuXHRcdGRvY3VtZW50LmF0dGFjaEV2ZW50KCdvbnJlYWR5c3RhdGVjaGFuZ2UnLCAoKSA9PiB7XG5cdFx0XHRpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSAhPT0gJ2xvYWRpbmcnKSB7XG5cdFx0XHRcdGZuKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn07XG5cbmNvbnN0IHRyaWdnZXIgPSAob3B0cykgPT4ge1xuXHRsZXQgZXZlbnQ7XG5cdGNvbnN0IG9wdGlvbnMgPSBfLmFzc2lnbih7XG5cdFx0ZGF0YToge30sXG5cdFx0ZWw6IGRvY3VtZW50LFxuXHRcdGV2ZW50OiAnJyxcblx0XHRuYXRpdmU6IHRydWUsXG5cdH0sIG9wdHMpO1xuXG5cdGlmIChvcHRpb25zLm5hdGl2ZSkge1xuXHRcdGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0hUTUxFdmVudHMnKTtcblx0XHRldmVudC5pbml0RXZlbnQob3B0aW9ucy5ldmVudCwgdHJ1ZSwgZmFsc2UpO1xuXHR9IGVsc2Uge1xuXHRcdHRyeSB7XG5cdFx0XHRldmVudCA9IG5ldyBDdXN0b21FdmVudChvcHRpb25zLmV2ZW50LCB7IGRldGFpbDogb3B0aW9ucy5kYXRhIH0pO1xuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0N1c3RvbUV2ZW50Jyk7XG5cdFx0XHRldmVudC5pbml0Q3VzdG9tRXZlbnQob3B0aW9ucy5ldmVudCwgdHJ1ZSwgdHJ1ZSwgb3B0aW9ucy5kYXRhKTtcblx0XHR9XG5cdH1cblxuXHRvcHRpb25zLmVsLmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xufTtcblxuZXhwb3J0IHsgb24sIHJlYWR5LCB0cmlnZ2VyIH07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL3V0aWxzL2V2ZW50cy5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///13\n"); /***/ }), /* 14 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -eval("var isObject = __webpack_require__(17);\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FuLW9iamVjdC5qcz9lZmIzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMTQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmICghaXNPYmplY3QoaXQpKSB0aHJvdyBUeXBlRXJyb3IoaXQgKyAnIGlzIG5vdCBhbiBvYmplY3QhJyk7XG4gIHJldHVybiBpdDtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fYW4tb2JqZWN0LmpzXG4vLyBtb2R1bGUgaWQgPSAxNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///14\n"); +eval("module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lzLW9iamVjdC5qcz8xMmE4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSIsImZpbGUiOiIxNC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0eXBlb2YgaXQgPT09ICdvYmplY3QnID8gaXQgIT09IG51bGwgOiB0eXBlb2YgaXQgPT09ICdmdW5jdGlvbic7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lzLW9iamVjdC5qc1xuLy8gbW9kdWxlIGlkID0gMTRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///14\n"); /***/ }), /* 15 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.insertBefore = exports.insertAfter = exports.closest = exports.getNodes = exports.convertElements = exports.hasClassFromArray = exports.removeClassThatContains = exports.removeClass = exports.hasClass = exports.getChildren = exports.addClass = void 0;\n\n/**\n * @module\n * @description Some vanilla js cross browser utils\n */\n\n/**\n * Add a class to a dom element or exit safely if not set\n *\n * @param el Node\n * @param className Class string\n * @returns {*} Node or false\n */\nvar addClass = function addClass(el) {\n var className = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var element = el;\n\n if (!element) {\n return false;\n }\n\n element.classList.add(className);\n return element;\n};\n/**\n *\n * Get immediate child nodes and return an array of them\n *\n * @param el\n * @returns {Array} Iterable array of dom nodes\n */\n\n\nexports.addClass = addClass;\n\nvar getChildren = function getChildren(el) {\n var children = [];\n var i = el.children.length;\n\n for (i; i--;) {\n // eslint-disable-line\n if (el.children[i].nodeType !== 8) {\n children.unshift(el.children[i]);\n }\n }\n\n return children;\n};\n/**\n *\n * Test if a dom node has a class or returns false if el not defined\n *\n * @param el\n * @param className\n * @returns {boolean}\n */\n\n\nexports.getChildren = getChildren;\n\nvar hasClass = function hasClass(el) {\n var className = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n if (!el) {\n return false;\n }\n\n return el.classList.contains(className);\n};\n/**\n * Removes a class from the dom node\n *\n * @param el\n * @param className\n * @returns {*} returns false or el if passed\n */\n\n\nexports.hasClass = hasClass;\n\nvar removeClass = function removeClass(el, className) {\n var element = el;\n\n if (!element) {\n return false;\n }\n\n element.classList.remove(className);\n return element;\n};\n/**\n * Remove a class from an element that contains a string\n *\n * @param el\n * @param string\n */\n\n\nexports.removeClass = removeClass;\n\nvar removeClassThatContains = function removeClassThatContains(el) {\n var string = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n for (var i = 0; i < el.classList.length; i++) {\n if (el.classList.item(i).indexOf(string) !== -1) {\n el.classList.remove(el.classList.item(i));\n }\n }\n};\n/**\n * Compares an els classList against an array of strings to see if any match\n * @param el the element to check against\n * @param arr The array of classes as strings to test against\n * @param prefix optional prefix string applied to all test strings\n * @param suffix optional suffix string\n */\n\n\nexports.removeClassThatContains = removeClassThatContains;\n\nvar hasClassFromArray = function hasClassFromArray(el) {\n var arr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n var suffix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n return arr.some(function (c) {\n return el.classList.contains(\"\".concat(prefix).concat(c).concat(suffix));\n });\n};\n/**\n * Highly efficient function to convert a nodelist into a standard array. Allows you to run Array.forEach\n *\n * @param {Element|NodeList} elements to convert\n * @returns {Array} Of converted elements\n */\n\n\nexports.hasClassFromArray = hasClassFromArray;\n\nvar convertElements = function convertElements() {\n var elements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var converted = [];\n var i = elements.length;\n\n for (i; i--; converted.unshift(elements[i])) {\n ;\n } // eslint-disable-line\n\n\n return converted;\n};\n/**\n * Should be used at all times for getting nodes throughout our app. Please use the data-js attribute whenever possible\n *\n * @param selector The selector string to search for. If arg 4 is false (default) then we search for [data-js=\"selector\"]\n * @param convert Convert the NodeList to an array? Then we can Array.forEach directly. Uses convertElements from above\n * @param node Parent node to search from. Defaults to document\n * @param custom Is this a custom selector where we don't want to use the data-js attribute?\n * @returns {NodeList}\n */\n\n\nexports.convertElements = convertElements;\n\nvar getNodes = function getNodes() {\n var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var convert = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var node = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : document;\n var custom = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var selectorString = custom ? selector : \"[data-js=\\\"\".concat(selector, \"\\\"]\");\n var nodes = node.querySelectorAll(selectorString);\n\n if (convert) {\n nodes = convertElements(nodes);\n }\n\n return nodes;\n};\n/**\n * Gets the closest ancestor that matches a selector string\n *\n * @param el\n * @param selector\n * @returns {*}\n */\n\n\nexports.getNodes = getNodes;\n\nvar closest = function closest(el, selector) {\n var matchesFn;\n var parent;\n ['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'].some(function (fn) {\n if (typeof document.body[fn] === 'function') {\n matchesFn = fn;\n return true;\n }\n /* istanbul ignore next */\n\n\n return false;\n });\n\n while (el) {\n parent = el.parentElement;\n\n if (parent && parent[matchesFn](selector)) {\n return parent;\n }\n\n el = parent; // eslint-disable-line\n }\n\n return null;\n};\n/**\n * Insert a node after another node\n *\n * @param newNode {Element|NodeList}\n * @param referenceNode {Element|NodeList}\n */\n\n\nexports.closest = closest;\n\nvar insertAfter = function insertAfter(newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode.nextElementSibling);\n};\n/**\n * Insert a node before another node\n *\n * @param newNode {Element|NodeList}\n * @param referenceNode {Element|NodeList}\n */\n\n\nexports.insertAfter = insertAfter;\n\nvar insertBefore = function insertBefore(newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode);\n};\n\nexports.insertBefore = insertBefore;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL3V0aWxzL3Rvb2xzLmpzP2VmNGUiXSwibmFtZXMiOlsiYWRkQ2xhc3MiLCJlbCIsImNsYXNzTmFtZSIsImVsZW1lbnQiLCJjbGFzc0xpc3QiLCJhZGQiLCJnZXRDaGlsZHJlbiIsImNoaWxkcmVuIiwiaSIsImxlbmd0aCIsIm5vZGVUeXBlIiwidW5zaGlmdCIsImhhc0NsYXNzIiwiY29udGFpbnMiLCJyZW1vdmVDbGFzcyIsInJlbW92ZSIsInJlbW92ZUNsYXNzVGhhdENvbnRhaW5zIiwic3RyaW5nIiwiaXRlbSIsImluZGV4T2YiLCJoYXNDbGFzc0Zyb21BcnJheSIsImFyciIsInByZWZpeCIsInN1ZmZpeCIsInNvbWUiLCJjIiwiY29udmVydEVsZW1lbnRzIiwiZWxlbWVudHMiLCJjb252ZXJ0ZWQiLCJnZXROb2RlcyIsInNlbGVjdG9yIiwiY29udmVydCIsIm5vZGUiLCJkb2N1bWVudCIsImN1c3RvbSIsInNlbGVjdG9yU3RyaW5nIiwibm9kZXMiLCJxdWVyeVNlbGVjdG9yQWxsIiwiY2xvc2VzdCIsIm1hdGNoZXNGbiIsInBhcmVudCIsImZuIiwiYm9keSIsInBhcmVudEVsZW1lbnQiLCJpbnNlcnRBZnRlciIsIm5ld05vZGUiLCJyZWZlcmVuY2VOb2RlIiwicGFyZW50Tm9kZSIsImluc2VydEJlZm9yZSIsIm5leHRFbGVtZW50U2libGluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7OztBQUtBOzs7Ozs7O0FBUU8sSUFBTUEsV0FBVyxTQUFYQSxRQUFXLENBQUNDLEVBQUQsRUFBd0I7QUFBQSxNQUFuQkMsU0FBbUIsdUVBQVAsRUFBTztBQUMvQyxNQUFNQyxVQUFVRixFQUFoQjs7QUFDQSxNQUFJLENBQUNFLE9BQUwsRUFBYztBQUNiLFdBQU8sS0FBUDtBQUNBOztBQUVEQSxVQUFRQyxTQUFSLENBQWtCQyxHQUFsQixDQUFzQkgsU0FBdEI7QUFDQSxTQUFPQyxPQUFQO0FBQ0EsQ0FSTTtBQVVQ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LENBQUNILE9BQUQsRUFBVUMsYUFBVixFQUE0QjtBQUN2REEsZ0JBQWNDLFVBQWQsQ0FBeUJDLFlBQXpCLENBQXNDSCxPQUF0QyxFQUErQ0MsYUFBL0M7QUFDQSxDQUZNIiwiZmlsZSI6IjE1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlXG4gKiBAZGVzY3JpcHRpb24gU29tZSB2YW5pbGxhIGpzIGNyb3NzIGJyb3dzZXIgdXRpbHNcbiAqL1xuXG4vKipcbiAqIEFkZCBhIGNsYXNzIHRvIGEgZG9tIGVsZW1lbnQgb3IgZXhpdCBzYWZlbHkgaWYgbm90IHNldFxuICpcbiAqIEBwYXJhbSBlbCBOb2RlXG4gKiBAcGFyYW0gY2xhc3NOYW1lIENsYXNzIHN0cmluZ1xuICogQHJldHVybnMgeyp9IE5vZGUgb3IgZmFsc2VcbiAqL1xuXG5leHBvcnQgY29uc3QgYWRkQ2xhc3MgPSAoZWwsIGNsYXNzTmFtZSA9ICcnKSA9PiB7XG5cdGNvbnN0IGVsZW1lbnQgPSBlbDtcblx0aWYgKCFlbGVtZW50KSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0ZWxlbWVudC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7XG5cdHJldHVybiBlbGVtZW50O1xufTtcblxuLyoqXG4gKlxuICogR2V0IGltbWVkaWF0ZSBjaGlsZCBub2RlcyBhbmQgcmV0dXJuIGFuIGFycmF5IG9mIHRoZW1cbiAqXG4gKiBAcGFyYW0gZWxcbiAqIEByZXR1cm5zIHtBcnJheX0gSXRlcmFibGUgYXJyYXkgb2YgZG9tIG5vZGVzXG4gKi9cblxuZXhwb3J0IGNvbnN0IGdldENoaWxkcmVuID0gKGVsKSA9PiB7XG5cdGNvbnN0IGNoaWxkcmVuID0gW107XG5cdGxldCBpID0gZWwuY2hpbGRyZW4ubGVuZ3RoO1xuXHRmb3IgKGk7IGktLTspIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXHRcdGlmIChlbC5jaGlsZHJlbltpXS5ub2RlVHlwZSAhPT0gOCkge1xuXHRcdFx0Y2hpbGRyZW4udW5zaGlmdChlbC5jaGlsZHJlbltpXSk7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGNoaWxkcmVuO1xufTtcblxuLyoqXG4gKlxuICogVGVzdCBpZiBhIGRvbSBub2RlIGhhcyBhIGNsYXNzIG9yIHJldHVybnMgZmFsc2UgaWYgZWwgbm90IGRlZmluZWRcbiAqXG4gKiBAcGFyYW0gZWxcbiAqIEBwYXJhbSBjbGFzc05hbWVcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5cbmV4cG9ydCBjb25zdCBoYXNDbGFzcyA9IChlbCwgY2xhc3NOYW1lID0gJycpID0+IHtcblx0aWYgKCFlbCkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdHJldHVybiBlbC5jbGFzc0xpc3QuY29udGFpbnMoY2xhc3NOYW1lKTtcbn07XG5cbi8qKlxuICogUmVtb3ZlcyBhIGNsYXNzIGZyb20gdGhlIGRvbSBub2RlXG4gKlxuICogQHBhcmFtIGVsXG4gKiBAcGFyYW0gY2xhc3NOYW1lXG4gKiBAcmV0dXJucyB7Kn0gcmV0dXJucyBmYWxzZSBvciBlbCBpZiBwYXNzZWRcbiAqL1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlQ2xhc3MgPSAoZWwsIGNsYXNzTmFtZSkgPT4ge1xuXHRjb25zdCBlbGVtZW50ID0gZWw7XG5cdGlmICghZWxlbWVudCkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShjbGFzc05hbWUpO1xuXHRyZXR1cm4gZWxlbWVudDtcbn07XG5cbi8qKlxuICogUmVtb3ZlIGEgY2xhc3MgZnJvbSBhbiBlbGVtZW50IHRoYXQgY29udGFpbnMgYSBzdHJpbmdcbiAqXG4gKiBAcGFyYW0gZWxcbiAqIEBwYXJhbSBzdHJpbmdcbiAqL1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlQ2xhc3NUaGF0Q29udGFpbnMgPSAoZWwsIHN0cmluZyA9ICcnKSA9PiB7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgZWwuY2xhc3NMaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0aWYgKGVsLmNsYXNzTGlzdC5pdGVtKGkpLmluZGV4T2Yoc3RyaW5nKSAhPT0gLTEpIHtcblx0XHRcdGVsLmNsYXNzTGlzdC5yZW1vdmUoZWwuY2xhc3NMaXN0Lml0ZW0oaSkpO1xuXHRcdH1cblx0fVxufTtcblxuLyoqXG4gKiBDb21wYXJlcyBhbiBlbHMgY2xhc3NMaXN0IGFnYWluc3QgYW4gYXJyYXkgb2Ygc3RyaW5ncyB0byBzZWUgaWYgYW55IG1hdGNoXG4gKiBAcGFyYW0gZWwgdGhlIGVsZW1lbnQgdG8gY2hlY2sgYWdhaW5zdFxuICogQHBhcmFtIGFyciBUaGUgYXJyYXkgb2YgY2xhc3NlcyBhcyBzdHJpbmdzIHRvIHRlc3QgYWdhaW5zdFxuICogQHBhcmFtIHByZWZpeCBvcHRpb25hbCBwcmVmaXggc3RyaW5nIGFwcGxpZWQgdG8gYWxsIHRlc3Qgc3RyaW5nc1xuICogQHBhcmFtIHN1ZmZpeCBvcHRpb25hbCBzdWZmaXggc3RyaW5nXG4gKi9cblxuZXhwb3J0IGNvbnN0IGhhc0NsYXNzRnJvbUFycmF5ID0gKGVsLCBhcnIgPSBbXSwgcHJlZml4ID0gJycsIHN1ZmZpeCA9ICcnKSA9PiBhcnIuc29tZShjID0+IGVsLmNsYXNzTGlzdC5jb250YWlucyhgJHtwcmVmaXh9JHtjfSR7c3VmZml4fWApKTtcblxuLyoqXG4gKiBIaWdobHkgZWZmaWNpZW50IGZ1bmN0aW9uIHRvIGNvbnZlcnQgYSBub2RlbGlzdCBpbnRvIGEgc3RhbmRhcmQgYXJyYXkuIEFsbG93cyB5b3UgdG8gcnVuIEFycmF5LmZvckVhY2hcbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR8Tm9kZUxpc3R9IGVsZW1lbnRzIHRvIGNvbnZlcnRcbiAqIEByZXR1cm5zIHtBcnJheX0gT2YgY29udmVydGVkIGVsZW1lbnRzXG4gKi9cblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRFbGVtZW50cyA9IChlbGVtZW50cyA9IFtdKSA9PiB7XG5cdGNvbnN0IGNvbnZlcnRlZCA9IFtdO1xuXHRsZXQgaSA9IGVsZW1lbnRzLmxlbmd0aDtcblx0Zm9yIChpOyBpLS07IGNvbnZlcnRlZC51bnNoaWZ0KGVsZW1lbnRzW2ldKSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuXHRyZXR1cm4gY29udmVydGVkO1xufTtcblxuLyoqXG4gKiBTaG91bGQgYmUgdXNlZCBhdCBhbGwgdGltZXMgZm9yIGdldHRpbmcgbm9kZXMgdGhyb3VnaG91dCBvdXIgYXBwLiBQbGVhc2UgdXNlIHRoZSBkYXRhLWpzIGF0dHJpYnV0ZSB3aGVuZXZlciBwb3NzaWJsZVxuICpcbiAqIEBwYXJhbSBzZWxlY3RvciBUaGUgc2VsZWN0b3Igc3RyaW5nIHRvIHNlYXJjaCBmb3IuIElmIGFyZyA0IGlzIGZhbHNlIChkZWZhdWx0KSB0aGVuIHdlIHNlYXJjaCBmb3IgW2RhdGEtanM9XCJzZWxlY3RvclwiXVxuICogQHBhcmFtIGNvbnZlcnQgQ29udmVydCB0aGUgTm9kZUxpc3QgdG8gYW4gYXJyYXk/IFRoZW4gd2UgY2FuIEFycmF5LmZvckVhY2ggZGlyZWN0bHkuIFVzZXMgY29udmVydEVsZW1lbnRzIGZyb20gYWJvdmVcbiAqIEBwYXJhbSBub2RlIFBhcmVudCBub2RlIHRvIHNlYXJjaCBmcm9tLiBEZWZhdWx0cyB0byBkb2N1bWVudFxuICogQHBhcmFtIGN1c3RvbSBJcyB0aGlzIGEgY3VzdG9tIHNlbGVjdG9yIHdoZXJlIHdlIGRvbid0IHdhbnQgdG8gdXNlIHRoZSBkYXRhLWpzIGF0dHJpYnV0ZT9cbiAqIEByZXR1cm5zIHtOb2RlTGlzdH1cbiAqL1xuXG5leHBvcnQgY29uc3QgZ2V0Tm9kZXMgPSAoc2VsZWN0b3IgPSAnJywgY29udmVydCA9IGZhbHNlLCBub2RlID0gZG9jdW1lbnQsIGN1c3RvbSA9IGZhbHNlKSA9PiB7XG5cdGNvbnN0IHNlbGVjdG9yU3RyaW5nID0gY3VzdG9tID8gc2VsZWN0b3IgOiBgW2RhdGEtanM9XCIke3NlbGVjdG9yfVwiXWA7XG5cdGxldCBub2RlcyA9IG5vZGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3RvclN0cmluZyk7XG5cdGlmIChjb252ZXJ0KSB7XG5cdFx0bm9kZXMgPSBjb252ZXJ0RWxlbWVudHMobm9kZXMpO1xuXHR9XG5cdHJldHVybiBub2Rlcztcbn07XG5cbi8qKlxuICogR2V0cyB0aGUgY2xvc2VzdCBhbmNlc3RvciB0aGF0IG1hdGNoZXMgYSBzZWxlY3RvciBzdHJpbmdcbiAqXG4gKiBAcGFyYW0gZWxcbiAqIEBwYXJhbSBzZWxlY3RvclxuICogQHJldHVybnMgeyp9XG4gKi9cblxuZXhwb3J0IGNvbnN0IGNsb3Nlc3QgPSAoZWwsIHNlbGVjdG9yKSA9PiB7XG5cdGxldCBtYXRjaGVzRm47XG5cdGxldCBwYXJlbnQ7XG5cblx0WydtYXRjaGVzJywgJ3dlYmtpdE1hdGNoZXNTZWxlY3RvcicsICdtb3pNYXRjaGVzU2VsZWN0b3InLCAnbXNNYXRjaGVzU2VsZWN0b3InLCAnb01hdGNoZXNTZWxlY3RvciddLnNvbWUoKGZuKSA9PiB7XG5cdFx0aWYgKHR5cGVvZiBkb2N1bWVudC5ib2R5W2ZuXSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0bWF0Y2hlc0ZuID0gZm47XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdFx0LyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH0pO1xuXG5cdHdoaWxlIChlbCkge1xuXHRcdHBhcmVudCA9IGVsLnBhcmVudEVsZW1lbnQ7XG5cdFx0aWYgKHBhcmVudCAmJiBwYXJlbnRbbWF0Y2hlc0ZuXShzZWxlY3RvcikpIHtcblx0XHRcdHJldHVybiBwYXJlbnQ7XG5cdFx0fVxuXG5cdFx0ZWwgPSBwYXJlbnQ7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblx0fVxuXG5cdHJldHVybiBudWxsO1xufTtcblxuLyoqXG4gKiBJbnNlcnQgYSBub2RlIGFmdGVyIGFub3RoZXIgbm9kZVxuICpcbiAqIEBwYXJhbSBuZXdOb2RlIHtFbGVtZW50fE5vZGVMaXN0fVxuICogQHBhcmFtIHJlZmVyZW5jZU5vZGUge0VsZW1lbnR8Tm9kZUxpc3R9XG4gKi9cbmV4cG9ydCBjb25zdCBpbnNlcnRBZnRlciA9IChuZXdOb2RlLCByZWZlcmVuY2VOb2RlKSA9PiB7XG5cdHJlZmVyZW5jZU5vZGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobmV3Tm9kZSwgcmVmZXJlbmNlTm9kZS5uZXh0RWxlbWVudFNpYmxpbmcpO1xufTtcblxuLyoqXG4gKiBJbnNlcnQgYSBub2RlIGJlZm9yZSBhbm90aGVyIG5vZGVcbiAqXG4gKiBAcGFyYW0gbmV3Tm9kZSB7RWxlbWVudHxOb2RlTGlzdH1cbiAqIEBwYXJhbSByZWZlcmVuY2VOb2RlIHtFbGVtZW50fE5vZGVMaXN0fVxuICovXG5cbmV4cG9ydCBjb25zdCBpbnNlcnRCZWZvcmUgPSAobmV3Tm9kZSwgcmVmZXJlbmNlTm9kZSkgPT4ge1xuXHRyZWZlcmVuY2VOb2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG5ld05vZGUsIHJlZmVyZW5jZU5vZGUpO1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvdXRpbHMvdG9vbHMuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///15\n"); +eval("module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2ZhaWxzLmpzPzRiY2QiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSIsImZpbGUiOiIxNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gISFleGVjKCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19mYWlscy5qc1xuLy8gbW9kdWxlIGlkID0gMTVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///15\n"); /***/ }), /* 16 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.trigger = exports.ready = exports.on = void 0;\n\nvar _assign2 = _interopRequireDefault(__webpack_require__(171));\n\nvar on = function on(el, name, handler) {\n if (el.addEventListener) {\n el.addEventListener(name, handler);\n } else {\n el.attachEvent(\"on\".concat(name), function () {\n handler.call(el);\n });\n }\n};\n\nexports.on = on;\n\nvar ready = function ready(fn) {\n if (document.readyState !== 'loading') {\n fn();\n } else if (document.addEventListener) {\n document.addEventListener('DOMContentLoaded', fn);\n } else {\n document.attachEvent('onreadystatechange', function () {\n if (document.readyState !== 'loading') {\n fn();\n }\n });\n }\n};\n\nexports.ready = ready;\n\nvar trigger = function trigger(opts) {\n var event;\n var options = (0, _assign2.default)({\n data: {},\n el: document,\n event: '',\n native: true\n }, opts);\n\n if (options.native) {\n event = document.createEvent('HTMLEvents');\n event.initEvent(options.event, true, false);\n } else {\n try {\n event = new CustomEvent(options.event, {\n detail: options.data\n });\n } catch (e) {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(options.event, true, true, options.data);\n }\n }\n\n options.el.dispatchEvent(event);\n};\n\nexports.trigger = trigger;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL3V0aWxzL2V2ZW50cy5qcz9mNDFjIl0sIm5hbWVzIjpbIm9uIiwiZWwiLCJuYW1lIiwiaGFuZGxlciIsImFkZEV2ZW50TGlzdGVuZXIiLCJhdHRhY2hFdmVudCIsImNhbGwiLCJyZWFkeSIsImZuIiwiZG9jdW1lbnQiLCJyZWFkeVN0YXRlIiwidHJpZ2dlciIsIm9wdHMiLCJldmVudCIsIm9wdGlvbnMiLCJkYXRhIiwibmF0aXZlIiwiY3JlYXRlRXZlbnQiLCJpbml0RXZlbnQiLCJDdXN0b21FdmVudCIsImRldGFpbCIsImUiLCJpbml0Q3VzdG9tRXZlbnQiLCJkaXNwYXRjaEV2ZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQU9BLElBQU1BLEtBQUssU0FBTEEsRUFBSyxDQUFDQyxFQUFELEVBQUtDLElBQUwsRUFBV0MsT0FBWCxFQUF1QjtBQUNqQyxNQUFJRixHQUFHRyxnQkFBUCxFQUF5QjtBQUN4QkgsT0FBR0csZ0JBQUgsQ0FBb0JGLElBQXBCLEVBQTBCQyxPQUExQjtBQUNBLEdBRkQsTUFFTztBQUNORixPQUFHSSxXQUFILGFBQW9CSCxJQUFwQixHQUE0QixZQUFNO0FBQ2pDQyxjQUFRRyxJQUFSLENBQWFMLEVBQWI7QUFDQSxLQUZEO0FBR0E7QUFDRCxDQVJEOzs7O0FBVUEsSUFBTU0sUUFBUSxTQUFSQSxLQUFRLENBQUNDLEVBQUQsRUFBUTtBQUNyQixNQUFJQyxTQUFTQyxVQUFULEtBQXdCLFNBQTVCLEVBQXVDO0FBQ3RDRjtBQUNBLEdBRkQsTUFFTyxJQUFJQyxTQUFTTCxnQkFBYixFQUErQjtBQUNyQ0ssYUFBU0wsZ0JBQVQsQ0FBMEIsa0JBQTFCLEVBQThDSSxFQUE5QztBQUNBLEdBRk0sTUFFQTtBQUNOQyxhQUFTSixXQUFULENBQXFCLG9CQUFyQixFQUEyQyxZQUFNO0FBQ2hELFVBQUlJLFNBQVNDLFVBQVQsS0FBd0IsU0FBNUIsRUFBdUM7QUFDdENGO0FBQ0E7QUFDRCxLQUpEO0FBS0E7QUFDRCxDQVpEOzs7O0FBY0EsSUFBTUcsVUFBVSxTQUFWQSxPQUFVLENBQUNDLElBQUQsRUFBVTtBQUN6QixNQUFJQyxLQUFKO0FBQ0EsTUFBTUMsVUFBVSxzQkFBUztBQUN4QkMsVUFBTSxFQURrQjtBQUV4QmQsUUFBSVEsUUFGb0I7QUFHeEJJLFdBQU8sRUFIaUI7QUFJeEJHLFlBQVE7QUFKZ0IsR0FBVCxFQUtiSixJQUxhLENBQWhCOztBQU9BLE1BQUlFLFFBQVFFLE1BQVosRUFBb0I7QUFDbkJILFlBQVFKLFNBQVNRLFdBQVQsQ0FBcUIsWUFBckIsQ0FBUjtBQUNBSixVQUFNSyxTQUFOLENBQWdCSixRQUFRRCxLQUF4QixFQUErQixJQUEvQixFQUFxQyxLQUFyQztBQUNBLEdBSEQsTUFHTztBQUNOLFFBQUk7QUFDSEEsY0FBUSxJQUFJTSxXQUFKLENBQWdCTCxRQUFRRCxLQUF4QixFQUErQjtBQUFFTyxnQkFBUU4sUUFBUUM7QUFBbEIsT0FBL0IsQ0FBUjtBQUNBLEtBRkQsQ0FFRSxPQUFPTSxDQUFQLEVBQVU7QUFDWFIsY0FBUUosU0FBU1EsV0FBVCxDQUFxQixhQUFyQixDQUFSO0FBQ0FKLFlBQU1TLGVBQU4sQ0FBc0JSLFFBQVFELEtBQTlCLEVBQXFDLElBQXJDLEVBQTJDLElBQTNDLEVBQWlEQyxRQUFRQyxJQUF6RDtBQUNBO0FBQ0Q7O0FBRURELFVBQVFiLEVBQVIsQ0FBV3NCLGFBQVgsQ0FBeUJWLEtBQXpCO0FBQ0EsQ0F0QkQiLCJmaWxlIjoiMTYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGVcbiAqIEBkZXNjcmlwdGlvbiBTb21lIGV2ZW50IGZ1bmN0aW9ucyBmb3IgdXNlIGluIG90aGVyIG1vZHVsZXNcbiAqL1xuXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5jb25zdCBvbiA9IChlbCwgbmFtZSwgaGFuZGxlcikgPT4ge1xuXHRpZiAoZWwuYWRkRXZlbnRMaXN0ZW5lcikge1xuXHRcdGVsLmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgaGFuZGxlcik7XG5cdH0gZWxzZSB7XG5cdFx0ZWwuYXR0YWNoRXZlbnQoYG9uJHtuYW1lfWAsICgpID0+IHtcblx0XHRcdGhhbmRsZXIuY2FsbChlbCk7XG5cdFx0fSk7XG5cdH1cbn07XG5cbmNvbnN0IHJlYWR5ID0gKGZuKSA9PiB7XG5cdGlmIChkb2N1bWVudC5yZWFkeVN0YXRlICE9PSAnbG9hZGluZycpIHtcblx0XHRmbigpO1xuXHR9IGVsc2UgaWYgKGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIpIHtcblx0XHRkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZm4pO1xuXHR9IGVsc2Uge1xuXHRcdGRvY3VtZW50LmF0dGFjaEV2ZW50KCdvbnJlYWR5c3RhdGVjaGFuZ2UnLCAoKSA9PiB7XG5cdFx0XHRpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSAhPT0gJ2xvYWRpbmcnKSB7XG5cdFx0XHRcdGZuKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn07XG5cbmNvbnN0IHRyaWdnZXIgPSAob3B0cykgPT4ge1xuXHRsZXQgZXZlbnQ7XG5cdGNvbnN0IG9wdGlvbnMgPSBfLmFzc2lnbih7XG5cdFx0ZGF0YToge30sXG5cdFx0ZWw6IGRvY3VtZW50LFxuXHRcdGV2ZW50OiAnJyxcblx0XHRuYXRpdmU6IHRydWUsXG5cdH0sIG9wdHMpO1xuXG5cdGlmIChvcHRpb25zLm5hdGl2ZSkge1xuXHRcdGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0hUTUxFdmVudHMnKTtcblx0XHRldmVudC5pbml0RXZlbnQob3B0aW9ucy5ldmVudCwgdHJ1ZSwgZmFsc2UpO1xuXHR9IGVsc2Uge1xuXHRcdHRyeSB7XG5cdFx0XHRldmVudCA9IG5ldyBDdXN0b21FdmVudChvcHRpb25zLmV2ZW50LCB7IGRldGFpbDogb3B0aW9ucy5kYXRhIH0pO1xuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0N1c3RvbUV2ZW50Jyk7XG5cdFx0XHRldmVudC5pbml0Q3VzdG9tRXZlbnQob3B0aW9ucy5ldmVudCwgdHJ1ZSwgdHJ1ZSwgb3B0aW9ucy5kYXRhKTtcblx0XHR9XG5cdH1cblxuXHRvcHRpb25zLmVsLmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xufTtcblxuZXhwb3J0IHsgb24sIHJlYWR5LCB0cmlnZ2VyIH07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL3V0aWxzL2V2ZW50cy5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///16\n"); +eval("var dP = __webpack_require__(7);\nvar createDesc = __webpack_require__(20);\nmodule.exports = __webpack_require__(10) ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2hpZGUuanM/ODQ5YyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EiLCJmaWxlIjoiMTYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZFAgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKTtcbnZhciBjcmVhdGVEZXNjID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpID8gZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICByZXR1cm4gZFAuZihvYmplY3QsIGtleSwgY3JlYXRlRGVzYygxLCB2YWx1ZSkpO1xufSA6IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgcmV0dXJuIG9iamVjdDtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faGlkZS5qc1xuLy8gbW9kdWxlIGlkID0gMTZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///16\n"); /***/ }), /* 17 */ /***/ (function(module, exports) { -eval("module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lzLW9iamVjdC5qcz8xMmE4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSIsImZpbGUiOiIxNy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0eXBlb2YgaXQgPT09ICdvYmplY3QnID8gaXQgIT09IG51bGwgOiB0eXBlb2YgaXQgPT09ICdmdW5jdGlvbic7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lzLW9iamVjdC5qc1xuLy8gbW9kdWxlIGlkID0gMTdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///17\n"); +eval("module.exports = {};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXJhdG9ycy5qcz9mZGI0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjE3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB7fTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pdGVyYXRvcnMuanNcbi8vIG1vZHVsZSBpZCA9IDE3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///17\n"); /***/ }), /* 18 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2ZhaWxzLmpzPzRiY2QiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSIsImZpbGUiOiIxOC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gISFleGVjKCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19mYWlscy5qc1xuLy8gbW9kdWxlIGlkID0gMThcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///18\n"); +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GUTENBERG_STORE_LINK = exports.GUTENBERG_PRODUCT_REVIEWS = exports.GUTENBERG_GIFT_CERTIFICATE_BALANCE = exports.GUTENBERG_GIFT_CERTIFICATE_FORM = exports.GUTENBERG_REGISTER = exports.GUTENBERG_LOGIN = exports.GUTENBERG_ORDERS = exports.GUTENBERG_ADDRESS = exports.GUTENBERG_ACCOUNT = exports.GUTENBERG_CHECKOUT = exports.GUTENBERG_CART = exports.GUTENBERG_PRODUCTS = exports.GUTENBERG_BLOCKS = exports.gutenbergconfig = void 0;\nvar gutenbergconfig = window.bigcommerce_gutenberg_config || {};\nexports.gutenbergconfig = gutenbergconfig;\nvar GUTENBERG_BLOCKS = gutenbergconfig.blocks || {};\nexports.GUTENBERG_BLOCKS = GUTENBERG_BLOCKS;\nvar GUTENBERG_PRODUCTS = GUTENBERG_BLOCKS['bigcommerce/products'] || {};\nexports.GUTENBERG_PRODUCTS = GUTENBERG_PRODUCTS;\nvar GUTENBERG_CART = GUTENBERG_BLOCKS['bigcommerce/cart'] || {};\nexports.GUTENBERG_CART = GUTENBERG_CART;\nvar GUTENBERG_CHECKOUT = GUTENBERG_BLOCKS['bigcommerce/checkout'] || {};\nexports.GUTENBERG_CHECKOUT = GUTENBERG_CHECKOUT;\nvar GUTENBERG_ACCOUNT = GUTENBERG_BLOCKS['bigcommerce/account-profile'] || {};\nexports.GUTENBERG_ACCOUNT = GUTENBERG_ACCOUNT;\nvar GUTENBERG_ADDRESS = GUTENBERG_BLOCKS['bigcommerce/address-list'] || {};\nexports.GUTENBERG_ADDRESS = GUTENBERG_ADDRESS;\nvar GUTENBERG_ORDERS = GUTENBERG_BLOCKS['bigcommerce/order-history'] || {};\nexports.GUTENBERG_ORDERS = GUTENBERG_ORDERS;\nvar GUTENBERG_LOGIN = GUTENBERG_BLOCKS['bigcommerce/login-form'] || {};\nexports.GUTENBERG_LOGIN = GUTENBERG_LOGIN;\nvar GUTENBERG_REGISTER = GUTENBERG_BLOCKS['bigcommerce/registration-form'] || {};\nexports.GUTENBERG_REGISTER = GUTENBERG_REGISTER;\nvar GUTENBERG_GIFT_CERTIFICATE_FORM = GUTENBERG_BLOCKS['bigcommerce/gift-certificate-form'] || {};\nexports.GUTENBERG_GIFT_CERTIFICATE_FORM = GUTENBERG_GIFT_CERTIFICATE_FORM;\nvar GUTENBERG_GIFT_CERTIFICATE_BALANCE = GUTENBERG_BLOCKS['bigcommerce/gift-certificate-balance'] || {};\nexports.GUTENBERG_GIFT_CERTIFICATE_BALANCE = GUTENBERG_GIFT_CERTIFICATE_BALANCE;\nvar GUTENBERG_PRODUCT_REVIEWS = GUTENBERG_BLOCKS['bigcommerce/product-reviews'] || {};\nexports.GUTENBERG_PRODUCT_REVIEWS = GUTENBERG_PRODUCT_REVIEWS;\nvar GUTENBERG_STORE_LINK = gutenbergconfig.store_link || '';\nexports.GUTENBERG_STORE_LINK = GUTENBERG_STORE_LINK;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9jb25maWcvZ3V0ZW5iZXJnLXNldHRpbmdzLmpzPzE4OGUiXSwibmFtZXMiOlsiZ3V0ZW5iZXJnY29uZmlnIiwid2luZG93IiwiYmlnY29tbWVyY2VfZ3V0ZW5iZXJnX2NvbmZpZyIsIkdVVEVOQkVSR19CTE9DS1MiLCJibG9ja3MiLCJHVVRFTkJFUkdfUFJPRFVDVFMiLCJHVVRFTkJFUkdfQ0FSVCIsIkdVVEVOQkVSR19DSEVDS09VVCIsIkdVVEVOQkVSR19BQ0NPVU5UIiwiR1VURU5CRVJHX0FERFJFU1MiLCJHVVRFTkJFUkdfT1JERVJTIiwiR1VURU5CRVJHX0xPR0lOIiwiR1VURU5CRVJHX1JFR0lTVEVSIiwiR1VURU5CRVJHX0dJRlRfQ0VSVElGSUNBVEVfRk9STSIsIkdVVEVOQkVSR19HSUZUX0NFUlRJRklDQVRFX0JBTEFOQ0UiLCJHVVRFTkJFUkdfUFJPRFVDVF9SRVZJRVdTIiwiR1VURU5CRVJHX1NUT1JFX0xJTksiLCJzdG9yZV9saW5rIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBTyxJQUFNQSxrQkFBa0JDLE9BQU9DLDRCQUFQLElBQXVDLEVBQS9EOztBQUVBLElBQU1DLG1CQUFtQkgsZ0JBQWdCSSxNQUFoQixJQUEwQixFQUFuRDs7QUFDQSxJQUFNQyxxQkFBcUJGLGlCQUFpQixzQkFBakIsS0FBNEMsRUFBdkU7O0FBQ0EsSUFBTUcsaUJBQWlCSCxpQkFBaUIsa0JBQWpCLEtBQXdDLEVBQS9EOztBQUNBLElBQU1JLHFCQUFxQkosaUJBQWlCLHNCQUFqQixLQUE0QyxFQUF2RTs7QUFDQSxJQUFNSyxvQkFBb0JMLGlCQUFpQiw2QkFBakIsS0FBbUQsRUFBN0U7O0FBQ0EsSUFBTU0sb0JBQW9CTixpQkFBaUIsMEJBQWpCLEtBQWdELEVBQTFFOztBQUNBLElBQU1PLG1CQUFtQlAsaUJBQWlCLDJCQUFqQixLQUFpRCxFQUExRTs7QUFDQSxJQUFNUSxrQkFBa0JSLGlCQUFpQix3QkFBakIsS0FBOEMsRUFBdEU7O0FBQ0EsSUFBTVMscUJBQXFCVCxpQkFBaUIsK0JBQWpCLEtBQXFELEVBQWhGOztBQUNBLElBQU1VLGtDQUFrQ1YsaUJBQWlCLG1DQUFqQixLQUF5RCxFQUFqRzs7QUFDQSxJQUFNVyxxQ0FBcUNYLGlCQUFpQixzQ0FBakIsS0FBNEQsRUFBdkc7O0FBQ0EsSUFBTVksNEJBQTRCWixpQkFBaUIsNkJBQWpCLEtBQW1ELEVBQXJGOztBQUNBLElBQU1hLHVCQUF1QmhCLGdCQUFnQmlCLFVBQWhCLElBQThCLEVBQTNEIiwiZmlsZSI6IjE4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGd1dGVuYmVyZ2NvbmZpZyA9IHdpbmRvdy5iaWdjb21tZXJjZV9ndXRlbmJlcmdfY29uZmlnIHx8IHt9O1xuXG5leHBvcnQgY29uc3QgR1VURU5CRVJHX0JMT0NLUyA9IGd1dGVuYmVyZ2NvbmZpZy5ibG9ja3MgfHwge307XG5leHBvcnQgY29uc3QgR1VURU5CRVJHX1BST0RVQ1RTID0gR1VURU5CRVJHX0JMT0NLU1snYmlnY29tbWVyY2UvcHJvZHVjdHMnXSB8fCB7fTtcbmV4cG9ydCBjb25zdCBHVVRFTkJFUkdfQ0FSVCA9IEdVVEVOQkVSR19CTE9DS1NbJ2JpZ2NvbW1lcmNlL2NhcnQnXSB8fCB7fTtcbmV4cG9ydCBjb25zdCBHVVRFTkJFUkdfQ0hFQ0tPVVQgPSBHVVRFTkJFUkdfQkxPQ0tTWydiaWdjb21tZXJjZS9jaGVja291dCddIHx8IHt9O1xuZXhwb3J0IGNvbnN0IEdVVEVOQkVSR19BQ0NPVU5UID0gR1VURU5CRVJHX0JMT0NLU1snYmlnY29tbWVyY2UvYWNjb3VudC1wcm9maWxlJ10gfHwge307XG5leHBvcnQgY29uc3QgR1VURU5CRVJHX0FERFJFU1MgPSBHVVRFTkJFUkdfQkxPQ0tTWydiaWdjb21tZXJjZS9hZGRyZXNzLWxpc3QnXSB8fCB7fTtcbmV4cG9ydCBjb25zdCBHVVRFTkJFUkdfT1JERVJTID0gR1VURU5CRVJHX0JMT0NLU1snYmlnY29tbWVyY2Uvb3JkZXItaGlzdG9yeSddIHx8IHt9O1xuZXhwb3J0IGNvbnN0IEdVVEVOQkVSR19MT0dJTiA9IEdVVEVOQkVSR19CTE9DS1NbJ2JpZ2NvbW1lcmNlL2xvZ2luLWZvcm0nXSB8fCB7fTtcbmV4cG9ydCBjb25zdCBHVVRFTkJFUkdfUkVHSVNURVIgPSBHVVRFTkJFUkdfQkxPQ0tTWydiaWdjb21tZXJjZS9yZWdpc3RyYXRpb24tZm9ybSddIHx8IHt9O1xuZXhwb3J0IGNvbnN0IEdVVEVOQkVSR19HSUZUX0NFUlRJRklDQVRFX0ZPUk0gPSBHVVRFTkJFUkdfQkxPQ0tTWydiaWdjb21tZXJjZS9naWZ0LWNlcnRpZmljYXRlLWZvcm0nXSB8fCB7fTtcbmV4cG9ydCBjb25zdCBHVVRFTkJFUkdfR0lGVF9DRVJUSUZJQ0FURV9CQUxBTkNFID0gR1VURU5CRVJHX0JMT0NLU1snYmlnY29tbWVyY2UvZ2lmdC1jZXJ0aWZpY2F0ZS1iYWxhbmNlJ10gfHwge307XG5leHBvcnQgY29uc3QgR1VURU5CRVJHX1BST0RVQ1RfUkVWSUVXUyA9IEdVVEVOQkVSR19CTE9DS1NbJ2JpZ2NvbW1lcmNlL3Byb2R1Y3QtcmV2aWV3cyddIHx8IHt9O1xuZXhwb3J0IGNvbnN0IEdVVEVOQkVSR19TVE9SRV9MSU5LID0gZ3V0ZW5iZXJnY29uZmlnLnN0b3JlX2xpbmsgfHwgJyc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9jb25maWcvZ3V0ZW5iZXJnLXNldHRpbmdzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///18\n"); /***/ }), /* 19 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -eval("var dP = __webpack_require__(10);\nvar createDesc = __webpack_require__(22);\nmodule.exports = __webpack_require__(13) ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2hpZGUuanM/ODQ5YyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EiLCJmaWxlIjoiMTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZFAgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKTtcbnZhciBjcmVhdGVEZXNjID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpID8gZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICByZXR1cm4gZFAuZihvYmplY3QsIGtleSwgY3JlYXRlRGVzYygxLCB2YWx1ZSkpO1xufSA6IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgcmV0dXJuIG9iamVjdDtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faGlkZS5qc1xuLy8gbW9kdWxlIGlkID0gMTlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///19\n"); +eval("exports.f = {}.propertyIsEnumerable;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1waWUuanM/MzY5MiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjIiwiZmlsZSI6IjE5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0cy5mID0ge30ucHJvcGVydHlJc0VudW1lcmFibGU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LXBpZS5qc1xuLy8gbW9kdWxlIGlkID0gMTlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///19\n"); /***/ }), /* 20 */ /***/ (function(module, exports) { -eval("module.exports = {};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXJhdG9ycy5qcz9mZGI0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjIwLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB7fTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pdGVyYXRvcnMuanNcbi8vIG1vZHVsZSBpZCA9IDIwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///20\n"); +eval("module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3Byb3BlcnR5LWRlc2MuanM/NWZjMCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjIwLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYml0bWFwLCB2YWx1ZSkge1xuICByZXR1cm4ge1xuICAgIGVudW1lcmFibGU6ICEoYml0bWFwICYgMSksXG4gICAgY29uZmlndXJhYmxlOiAhKGJpdG1hcCAmIDIpLFxuICAgIHdyaXRhYmxlOiAhKGJpdG1hcCAmIDQpLFxuICAgIHZhbHVlOiB2YWx1ZVxuICB9O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19wcm9wZXJ0eS1kZXNjLmpzXG4vLyBtb2R1bGUgaWQgPSAyMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///20\n"); /***/ }), /* 21 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("exports.f = {}.propertyIsEnumerable;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1waWUuanM/MzY5MiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjIiwiZmlsZSI6IjIxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0cy5mID0ge30ucHJvcGVydHlJc0VudW1lcmFibGU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LXBpZS5qc1xuLy8gbW9kdWxlIGlkID0gMjFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///21\n"); +eval("// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(46)(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19kZXNjcmlwdG9ycy5qcz82ZDRhIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxpQ0FBaUMsUUFBUSxtQkFBbUIsVUFBVSxFQUFFLEVBQUU7QUFDMUUsQ0FBQyIsImZpbGUiOiIyMS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoYW5rJ3MgSUU4IGZvciBoaXMgZnVubnkgZGVmaW5lUHJvcGVydHlcbm1vZHVsZS5leHBvcnRzID0gIXJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnYScsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9IH0pLmEgIT0gNztcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19kZXNjcmlwdG9ycy5qc1xuLy8gbW9kdWxlIGlkID0gMjFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///21\n"); /***/ }), /* 22 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3Byb3BlcnR5LWRlc2MuanM/NWZjMCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjIyLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYml0bWFwLCB2YWx1ZSkge1xuICByZXR1cm4ge1xuICAgIGVudW1lcmFibGU6ICEoYml0bWFwICYgMSksXG4gICAgY29uZmlndXJhYmxlOiAhKGJpdG1hcCAmIDIpLFxuICAgIHdyaXRhYmxlOiAhKGJpdG1hcCAmIDQpLFxuICAgIHZhbHVlOiB2YWx1ZVxuICB9O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19wcm9wZXJ0eS1kZXNjLmpzXG4vLyBtb2R1bGUgaWQgPSAyMlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///22\n"); +eval("// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(82);\nvar enumBugKeys = __webpack_require__(52);\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1rZXlzLmpzPzk2NGIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSIsImZpbGUiOiIyMi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIDE5LjEuMi4xNCAvIDE1LjIuMy4xNCBPYmplY3Qua2V5cyhPKVxudmFyICRrZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0tYnVnLWtleXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3Qua2V5cyB8fCBmdW5jdGlvbiBrZXlzKE8pIHtcbiAgcmV0dXJuICRrZXlzKE8sIGVudW1CdWdLZXlzKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWtleXMuanNcbi8vIG1vZHVsZSBpZCA9IDIyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///22\n"); /***/ }), /* 23 */ /***/ (function(module, exports, __webpack_require__) { -eval("// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(44)(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19kZXNjcmlwdG9ycy5qcz82ZDRhIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxpQ0FBaUMsUUFBUSxtQkFBbUIsVUFBVSxFQUFFLEVBQUU7QUFDMUUsQ0FBQyIsImZpbGUiOiIyMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoYW5rJ3MgSUU4IGZvciBoaXMgZnVubnkgZGVmaW5lUHJvcGVydHlcbm1vZHVsZS5leHBvcnRzID0gIXJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnYScsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9IH0pLmEgIT0gNztcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19kZXNjcmlwdG9ycy5qc1xuLy8gbW9kdWxlIGlkID0gMjNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///23\n"); +eval("var closest = __webpack_require__(166);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZGVsZWdhdGUvc3JjL2RlbGVnYXRlLmpzPzY0NGUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsT0FBTztBQUNsQixXQUFXLE9BQU87QUFDbEIsV0FBVyxTQUFTO0FBQ3BCLFdBQVcsUUFBUTtBQUNuQixZQUFZO0FBQ1o7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLHFCQUFxQjtBQUNoQyxXQUFXLE9BQU87QUFDbEIsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsU0FBUztBQUNwQixXQUFXLFFBQVE7QUFDbkIsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLE9BQU87QUFDbEIsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsU0FBUztBQUNwQixZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIyMy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBjbG9zZXN0ID0gcmVxdWlyZSgnLi9jbG9zZXN0Jyk7XG5cbi8qKlxuICogRGVsZWdhdGVzIGV2ZW50IHRvIGEgc2VsZWN0b3IuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBlbGVtZW50XG4gKiBAcGFyYW0ge1N0cmluZ30gc2VsZWN0b3JcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHBhcmFtIHtCb29sZWFufSB1c2VDYXB0dXJlXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKi9cbmZ1bmN0aW9uIF9kZWxlZ2F0ZShlbGVtZW50LCBzZWxlY3RvciwgdHlwZSwgY2FsbGJhY2ssIHVzZUNhcHR1cmUpIHtcbiAgICB2YXIgbGlzdGVuZXJGbiA9IGxpc3RlbmVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodHlwZSwgbGlzdGVuZXJGbiwgdXNlQ2FwdHVyZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBkZXN0cm95OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lckZuLCB1c2VDYXB0dXJlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBEZWxlZ2F0ZXMgZXZlbnQgdG8gYSBzZWxlY3Rvci5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR8U3RyaW5nfEFycmF5fSBbZWxlbWVudHNdXG4gKiBAcGFyYW0ge1N0cmluZ30gc2VsZWN0b3JcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHBhcmFtIHtCb29sZWFufSB1c2VDYXB0dXJlXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKi9cbmZ1bmN0aW9uIGRlbGVnYXRlKGVsZW1lbnRzLCBzZWxlY3RvciwgdHlwZSwgY2FsbGJhY2ssIHVzZUNhcHR1cmUpIHtcbiAgICAvLyBIYW5kbGUgdGhlIHJlZ3VsYXIgRWxlbWVudCB1c2FnZVxuICAgIGlmICh0eXBlb2YgZWxlbWVudHMuYWRkRXZlbnRMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gX2RlbGVnYXRlLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIEVsZW1lbnQtbGVzcyB1c2FnZSwgaXQgZGVmYXVsdHMgdG8gZ2xvYmFsIGRlbGVnYXRpb25cbiAgICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gVXNlIGBkb2N1bWVudGAgYXMgdGhlIGZpcnN0IHBhcmFtZXRlciwgdGhlbiBhcHBseSBhcmd1bWVudHNcbiAgICAgICAgLy8gVGhpcyBpcyBhIHNob3J0IHdheSB0byAudW5zaGlmdCBgYXJndW1lbnRzYCB3aXRob3V0IHJ1bm5pbmcgaW50byBkZW9wdGltaXphdGlvbnNcbiAgICAgICAgcmV0dXJuIF9kZWxlZ2F0ZS5iaW5kKG51bGwsIGRvY3VtZW50KS5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBTZWxlY3Rvci1iYXNlZCB1c2FnZVxuICAgIGlmICh0eXBlb2YgZWxlbWVudHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChlbGVtZW50cyk7XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIEFycmF5LWxpa2UgYmFzZWQgdXNhZ2VcbiAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGVsZW1lbnRzLCBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gX2RlbGVnYXRlKGVsZW1lbnQsIHNlbGVjdG9yLCB0eXBlLCBjYWxsYmFjaywgdXNlQ2FwdHVyZSk7XG4gICAgfSk7XG59XG5cbi8qKlxuICogRmluZHMgY2xvc2VzdCBtYXRjaCBhbmQgaW52b2tlcyBjYWxsYmFjay5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IGVsZW1lbnRcbiAqIEBwYXJhbSB7U3RyaW5nfSBzZWxlY3RvclxuICogQHBhcmFtIHtTdHJpbmd9IHR5cGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn1cbiAqL1xuZnVuY3Rpb24gbGlzdGVuZXIoZWxlbWVudCwgc2VsZWN0b3IsIHR5cGUsIGNhbGxiYWNrKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgZS5kZWxlZ2F0ZVRhcmdldCA9IGNsb3Nlc3QoZS50YXJnZXQsIHNlbGVjdG9yKTtcblxuICAgICAgICBpZiAoZS5kZWxlZ2F0ZVRhcmdldCkge1xuICAgICAgICAgICAgY2FsbGJhY2suY2FsbChlbGVtZW50LCBlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBkZWxlZ2F0ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2RlbGVnYXRlL3NyYy9kZWxlZ2F0ZS5qc1xuLy8gbW9kdWxlIGlkID0gMjNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///23\n"); /***/ }), /* 24 */ /***/ (function(module, exports, __webpack_require__) { -eval("// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(78);\nvar enumBugKeys = __webpack_require__(50);\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1rZXlzLmpzPzk2NGIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSIsImZpbGUiOiIyNC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIDE5LjEuMi4xNCAvIDE1LjIuMy4xNCBPYmplY3Qua2V5cyhPKVxudmFyICRrZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0tYnVnLWtleXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3Qua2V5cyB8fCBmdW5jdGlvbiBrZXlzKE8pIHtcbiAgcmV0dXJuICRrZXlzKE8sIGVudW1CdWdLZXlzKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWtleXMuanNcbi8vIG1vZHVsZSBpZCA9IDI0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///24\n"); +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.I18N = void 0;\nvar I18N = window.bigcommerce_admin_i18n || {};\nexports.I18N = I18N;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2NvbmZpZy9pMThuLmpzPzY3OGQiXSwibmFtZXMiOlsiSTE4TiIsIndpbmRvdyIsImJpZ2NvbW1lcmNlX2FkbWluX2kxOG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLElBQU1BLE9BQU9DLE9BQU9DLHNCQUFQLElBQWlDLEVBQTlDIiwiZmlsZSI6IjI0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEkxOE4gPSB3aW5kb3cuYmlnY29tbWVyY2VfYWRtaW5faTE4biB8fCB7fTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vY29uZmlnL2kxOG4uanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///24\n"); /***/ }), /* 25 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -eval("var closest = __webpack_require__(166);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZGVsZWdhdGUvc3JjL2RlbGVnYXRlLmpzPzY0NGUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsT0FBTztBQUNsQixXQUFXLE9BQU87QUFDbEIsV0FBVyxTQUFTO0FBQ3BCLFdBQVcsUUFBUTtBQUNuQixZQUFZO0FBQ1o7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLHFCQUFxQjtBQUNoQyxXQUFXLE9BQU87QUFDbEIsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsU0FBUztBQUNwQixXQUFXLFFBQVE7QUFDbkIsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLE9BQU87QUFDbEIsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsU0FBUztBQUNwQixZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIyNS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBjbG9zZXN0ID0gcmVxdWlyZSgnLi9jbG9zZXN0Jyk7XG5cbi8qKlxuICogRGVsZWdhdGVzIGV2ZW50IHRvIGEgc2VsZWN0b3IuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBlbGVtZW50XG4gKiBAcGFyYW0ge1N0cmluZ30gc2VsZWN0b3JcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHBhcmFtIHtCb29sZWFufSB1c2VDYXB0dXJlXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKi9cbmZ1bmN0aW9uIF9kZWxlZ2F0ZShlbGVtZW50LCBzZWxlY3RvciwgdHlwZSwgY2FsbGJhY2ssIHVzZUNhcHR1cmUpIHtcbiAgICB2YXIgbGlzdGVuZXJGbiA9IGxpc3RlbmVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodHlwZSwgbGlzdGVuZXJGbiwgdXNlQ2FwdHVyZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBkZXN0cm95OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lckZuLCB1c2VDYXB0dXJlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBEZWxlZ2F0ZXMgZXZlbnQgdG8gYSBzZWxlY3Rvci5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR8U3RyaW5nfEFycmF5fSBbZWxlbWVudHNdXG4gKiBAcGFyYW0ge1N0cmluZ30gc2VsZWN0b3JcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHBhcmFtIHtCb29sZWFufSB1c2VDYXB0dXJlXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKi9cbmZ1bmN0aW9uIGRlbGVnYXRlKGVsZW1lbnRzLCBzZWxlY3RvciwgdHlwZSwgY2FsbGJhY2ssIHVzZUNhcHR1cmUpIHtcbiAgICAvLyBIYW5kbGUgdGhlIHJlZ3VsYXIgRWxlbWVudCB1c2FnZVxuICAgIGlmICh0eXBlb2YgZWxlbWVudHMuYWRkRXZlbnRMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gX2RlbGVnYXRlLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIEVsZW1lbnQtbGVzcyB1c2FnZSwgaXQgZGVmYXVsdHMgdG8gZ2xvYmFsIGRlbGVnYXRpb25cbiAgICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gVXNlIGBkb2N1bWVudGAgYXMgdGhlIGZpcnN0IHBhcmFtZXRlciwgdGhlbiBhcHBseSBhcmd1bWVudHNcbiAgICAgICAgLy8gVGhpcyBpcyBhIHNob3J0IHdheSB0byAudW5zaGlmdCBgYXJndW1lbnRzYCB3aXRob3V0IHJ1bm5pbmcgaW50byBkZW9wdGltaXphdGlvbnNcbiAgICAgICAgcmV0dXJuIF9kZWxlZ2F0ZS5iaW5kKG51bGwsIGRvY3VtZW50KS5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBTZWxlY3Rvci1iYXNlZCB1c2FnZVxuICAgIGlmICh0eXBlb2YgZWxlbWVudHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChlbGVtZW50cyk7XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIEFycmF5LWxpa2UgYmFzZWQgdXNhZ2VcbiAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGVsZW1lbnRzLCBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gX2RlbGVnYXRlKGVsZW1lbnQsIHNlbGVjdG9yLCB0eXBlLCBjYWxsYmFjaywgdXNlQ2FwdHVyZSk7XG4gICAgfSk7XG59XG5cbi8qKlxuICogRmluZHMgY2xvc2VzdCBtYXRjaCBhbmQgaW52b2tlcyBjYWxsYmFjay5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IGVsZW1lbnRcbiAqIEBwYXJhbSB7U3RyaW5nfSBzZWxlY3RvclxuICogQHBhcmFtIHtTdHJpbmd9IHR5cGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn1cbiAqL1xuZnVuY3Rpb24gbGlzdGVuZXIoZWxlbWVudCwgc2VsZWN0b3IsIHR5cGUsIGNhbGxiYWNrKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgZS5kZWxlZ2F0ZVRhcmdldCA9IGNsb3Nlc3QoZS50YXJnZXQsIHNlbGVjdG9yKTtcblxuICAgICAgICBpZiAoZS5kZWxlZ2F0ZVRhcmdldCkge1xuICAgICAgICAgICAgY2FsbGJhY2suY2FsbChlbGVtZW50LCBlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBkZWxlZ2F0ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2RlbGVnYXRlL3NyYy9kZWxlZ2F0ZS5qc1xuLy8gbW9kdWxlIGlkID0gMjVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///25\n"); +eval("function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjay5qcz82N2FkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiMjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9jbGFzc0NhbGxDaGVjaztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrLmpzXG4vLyBtb2R1bGUgaWQgPSAyNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///25\n"); /***/ }), /* 26 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.I18N = void 0;\nvar I18N = window.bigcommerce_admin_i18n || {};\nexports.I18N = I18N;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2NvbmZpZy9pMThuLmpzPzY3OGQiXSwibmFtZXMiOlsiSTE4TiIsIndpbmRvdyIsImJpZ2NvbW1lcmNlX2FkbWluX2kxOG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLElBQU1BLE9BQU9DLE9BQU9DLHNCQUFQLElBQWlDLEVBQTlDIiwiZmlsZSI6IjI2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEkxOE4gPSB3aW5kb3cuYmlnY29tbWVyY2VfYWRtaW5faTE4biB8fCB7fTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vY29uZmlnL2kxOG4uanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///26\n"); +eval("var baseDelay = __webpack_require__(109),\n baseRest = __webpack_require__(68),\n toNumber = __webpack_require__(124);\n\n/**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\nvar delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n});\n\nmodule.exports = delay;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2RlbGF5LmpzP2NmNWYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFNBQVM7QUFDcEIsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsS0FBSztBQUNoQixhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEIiwiZmlsZSI6IjI2LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGJhc2VEZWxheSA9IHJlcXVpcmUoJy4vX2Jhc2VEZWxheScpLFxuICAgIGJhc2VSZXN0ID0gcmVxdWlyZSgnLi9fYmFzZVJlc3QnKSxcbiAgICB0b051bWJlciA9IHJlcXVpcmUoJy4vdG9OdW1iZXInKTtcblxuLyoqXG4gKiBJbnZva2VzIGBmdW5jYCBhZnRlciBgd2FpdGAgbWlsbGlzZWNvbmRzLiBBbnkgYWRkaXRpb25hbCBhcmd1bWVudHMgYXJlXG4gKiBwcm92aWRlZCB0byBgZnVuY2Agd2hlbiBpdCdzIGludm9rZWQuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWxheS5cbiAqIEBwYXJhbSB7bnVtYmVyfSB3YWl0IFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIGRlbGF5IGludm9jYXRpb24uXG4gKiBAcGFyYW0gey4uLip9IFthcmdzXSBUaGUgYXJndW1lbnRzIHRvIGludm9rZSBgZnVuY2Agd2l0aC5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVyIGlkLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmRlbGF5KGZ1bmN0aW9uKHRleHQpIHtcbiAqICAgY29uc29sZS5sb2codGV4dCk7XG4gKiB9LCAxMDAwLCAnbGF0ZXInKTtcbiAqIC8vID0+IExvZ3MgJ2xhdGVyJyBhZnRlciBvbmUgc2Vjb25kLlxuICovXG52YXIgZGVsYXkgPSBiYXNlUmVzdChmdW5jdGlvbihmdW5jLCB3YWl0LCBhcmdzKSB7XG4gIHJldHVybiBiYXNlRGVsYXkoZnVuYywgdG9OdW1iZXIod2FpdCkgfHwgMCwgYXJncyk7XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBkZWxheTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9kZWxheS5qc1xuLy8gbW9kdWxlIGlkID0gMjZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///26\n"); /***/ }), /* 27 */ /***/ (function(module, exports, __webpack_require__) { -eval("var baseDelay = __webpack_require__(109),\n baseRest = __webpack_require__(64),\n toNumber = __webpack_require__(124);\n\n/**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\nvar delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n});\n\nmodule.exports = delay;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2RlbGF5LmpzP2NmNWYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFNBQVM7QUFDcEIsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsS0FBSztBQUNoQixhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEIiwiZmlsZSI6IjI3LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGJhc2VEZWxheSA9IHJlcXVpcmUoJy4vX2Jhc2VEZWxheScpLFxuICAgIGJhc2VSZXN0ID0gcmVxdWlyZSgnLi9fYmFzZVJlc3QnKSxcbiAgICB0b051bWJlciA9IHJlcXVpcmUoJy4vdG9OdW1iZXInKTtcblxuLyoqXG4gKiBJbnZva2VzIGBmdW5jYCBhZnRlciBgd2FpdGAgbWlsbGlzZWNvbmRzLiBBbnkgYWRkaXRpb25hbCBhcmd1bWVudHMgYXJlXG4gKiBwcm92aWRlZCB0byBgZnVuY2Agd2hlbiBpdCdzIGludm9rZWQuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWxheS5cbiAqIEBwYXJhbSB7bnVtYmVyfSB3YWl0IFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIGRlbGF5IGludm9jYXRpb24uXG4gKiBAcGFyYW0gey4uLip9IFthcmdzXSBUaGUgYXJndW1lbnRzIHRvIGludm9rZSBgZnVuY2Agd2l0aC5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVyIGlkLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmRlbGF5KGZ1bmN0aW9uKHRleHQpIHtcbiAqICAgY29uc29sZS5sb2codGV4dCk7XG4gKiB9LCAxMDAwLCAnbGF0ZXInKTtcbiAqIC8vID0+IExvZ3MgJ2xhdGVyJyBhZnRlciBvbmUgc2Vjb25kLlxuICovXG52YXIgZGVsYXkgPSBiYXNlUmVzdChmdW5jdGlvbihmdW5jLCB3YWl0LCBhcmdzKSB7XG4gIHJldHVybiBiYXNlRGVsYXkoZnVuYywgdG9OdW1iZXIod2FpdCkgfHwgMCwgYXJncyk7XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBkZWxheTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9kZWxheS5qc1xuLy8gbW9kdWxlIGlkID0gMjdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///27\n"); +eval("var Symbol = __webpack_require__(72),\n getRawTag = __webpack_require__(117),\n objectToString = __webpack_require__(118);\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlR2V0VGFnLmpzPzY4MjMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxFQUFFO0FBQ2IsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIyNy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19TeW1ib2wnKSxcbiAgICBnZXRSYXdUYWcgPSByZXF1aXJlKCcuL19nZXRSYXdUYWcnKSxcbiAgICBvYmplY3RUb1N0cmluZyA9IHJlcXVpcmUoJy4vX29iamVjdFRvU3RyaW5nJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBudWxsVGFnID0gJ1tvYmplY3QgTnVsbF0nLFxuICAgIHVuZGVmaW5lZFRhZyA9ICdbb2JqZWN0IFVuZGVmaW5lZF0nO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBzeW1Ub1N0cmluZ1RhZyA9IFN5bWJvbCA/IFN5bWJvbC50b1N0cmluZ1RhZyA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2V0VGFnYCB3aXRob3V0IGZhbGxiYWNrcyBmb3IgYnVnZ3kgZW52aXJvbm1lbnRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGB0b1N0cmluZ1RhZ2AuXG4gKi9cbmZ1bmN0aW9uIGJhc2VHZXRUYWcodmFsdWUpIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZFRhZyA6IG51bGxUYWc7XG4gIH1cbiAgcmV0dXJuIChzeW1Ub1N0cmluZ1RhZyAmJiBzeW1Ub1N0cmluZ1RhZyBpbiBPYmplY3QodmFsdWUpKVxuICAgID8gZ2V0UmF3VGFnKHZhbHVlKVxuICAgIDogb2JqZWN0VG9TdHJpbmcodmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VHZXRUYWc7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VHZXRUYWcuanNcbi8vIG1vZHVsZSBpZCA9IDI3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///27\n"); /***/ }), /* 28 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -eval("var Symbol = __webpack_require__(68),\n getRawTag = __webpack_require__(117),\n objectToString = __webpack_require__(118);\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlR2V0VGFnLmpzPzY4MjMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxFQUFFO0FBQ2IsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIyOC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19TeW1ib2wnKSxcbiAgICBnZXRSYXdUYWcgPSByZXF1aXJlKCcuL19nZXRSYXdUYWcnKSxcbiAgICBvYmplY3RUb1N0cmluZyA9IHJlcXVpcmUoJy4vX29iamVjdFRvU3RyaW5nJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBudWxsVGFnID0gJ1tvYmplY3QgTnVsbF0nLFxuICAgIHVuZGVmaW5lZFRhZyA9ICdbb2JqZWN0IFVuZGVmaW5lZF0nO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBzeW1Ub1N0cmluZ1RhZyA9IFN5bWJvbCA/IFN5bWJvbC50b1N0cmluZ1RhZyA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2V0VGFnYCB3aXRob3V0IGZhbGxiYWNrcyBmb3IgYnVnZ3kgZW52aXJvbm1lbnRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGB0b1N0cmluZ1RhZ2AuXG4gKi9cbmZ1bmN0aW9uIGJhc2VHZXRUYWcodmFsdWUpIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZFRhZyA6IG51bGxUYWc7XG4gIH1cbiAgcmV0dXJuIChzeW1Ub1N0cmluZ1RhZyAmJiBzeW1Ub1N0cmluZ1RhZyBpbiBPYmplY3QodmFsdWUpKVxuICAgID8gZ2V0UmF3VGFnKHZhbHVlKVxuICAgIDogb2JqZWN0VG9TdHJpbmcodmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VHZXRUYWc7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VHZXRUYWcuanNcbi8vIG1vZHVsZSBpZCA9IDI4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///28\n"); +eval("/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzT2JqZWN0LmpzP2M4MjMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxFQUFFO0FBQ2IsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjI4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGVcbiAqIFtsYW5ndWFnZSB0eXBlXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcylcbiAqIG9mIGBPYmplY3RgLiAoZS5nLiBhcnJheXMsIGZ1bmN0aW9ucywgb2JqZWN0cywgcmVnZXhlcywgYG5ldyBOdW1iZXIoMClgLCBhbmQgYG5ldyBTdHJpbmcoJycpYClcbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdCh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoXy5ub29wKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmICh0eXBlID09ICdvYmplY3QnIHx8IHR5cGUgPT0gJ2Z1bmN0aW9uJyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNPYmplY3Q7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNPYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDI4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///28\n"); /***/ }), /* 29 */ /***/ (function(module, exports) { -eval("/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzT2JqZWN0LmpzP2M4MjMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxFQUFFO0FBQ2IsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjI5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGVcbiAqIFtsYW5ndWFnZSB0eXBlXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcylcbiAqIG9mIGBPYmplY3RgLiAoZS5nLiBhcnJheXMsIGZ1bmN0aW9ucywgb2JqZWN0cywgcmVnZXhlcywgYG5ldyBOdW1iZXIoMClgLCBhbmQgYG5ldyBTdHJpbmcoJycpYClcbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdCh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoXy5ub29wKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmICh0eXBlID09ICdvYmplY3QnIHx8IHR5cGUgPT0gJ2Z1bmN0aW9uJyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNPYmplY3Q7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNPYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDI5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///29\n"); +eval("/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzT2JqZWN0TGlrZS5qcz81MjcxIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjI5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZS4gQSB2YWx1ZSBpcyBvYmplY3QtbGlrZSBpZiBpdCdzIG5vdCBgbnVsbGBcbiAqIGFuZCBoYXMgYSBgdHlwZW9mYCByZXN1bHQgb2YgXCJvYmplY3RcIi5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZSh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNPYmplY3RMaWtlO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzT2JqZWN0TGlrZS5qc1xuLy8gbW9kdWxlIGlkID0gMjlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///29\n"); /***/ }), /* 30 */ /***/ (function(module, exports) { -eval("/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzT2JqZWN0TGlrZS5qcz81MjcxIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjMwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZS4gQSB2YWx1ZSBpcyBvYmplY3QtbGlrZSBpZiBpdCdzIG5vdCBgbnVsbGBcbiAqIGFuZCBoYXMgYSBgdHlwZW9mYCByZXN1bHQgb2YgXCJvYmplY3RcIi5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZSh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNPYmplY3RMaWtlO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzT2JqZWN0TGlrZS5qc1xuLy8gbW9kdWxlIGlkID0gMzBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///30\n"); +eval("module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pcy1vYmplY3QuanM/NTBhMyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMzAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09PSAnb2JqZWN0JyA/IGl0ICE9PSBudWxsIDogdHlwZW9mIGl0ID09PSAnZnVuY3Rpb24nO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXMtb2JqZWN0LmpzXG4vLyBtb2R1bGUgaWQgPSAzMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///30\n"); /***/ }), /* 31 */ /***/ (function(module, exports) { -eval("module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pcy1vYmplY3QuanM/NTBhMyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMzEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09PSAnb2JqZWN0JyA/IGl0ICE9PSBudWxsIDogdHlwZW9mIGl0ID09PSAnZnVuY3Rpb24nO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXMtb2JqZWN0LmpzXG4vLyBtb2R1bGUgaWQgPSAzMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///31\n"); +eval("// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19nbG9iYWwuanM/M2IzMiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDIiwiZmlsZSI6IjMxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjhcbnZhciBnbG9iYWwgPSBtb2R1bGUuZXhwb3J0cyA9IHR5cGVvZiB3aW5kb3cgIT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lk1hdGggPT0gTWF0aFxuICA/IHdpbmRvdyA6IHR5cGVvZiBzZWxmICE9ICd1bmRlZmluZWQnICYmIHNlbGYuTWF0aCA9PSBNYXRoID8gc2VsZlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcbiAgOiBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuaWYgKHR5cGVvZiBfX2cgPT0gJ251bWJlcicpIF9fZyA9IGdsb2JhbDsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19nbG9iYWwuanNcbi8vIG1vZHVsZSBpZCA9IDMxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///31\n"); /***/ }), /* 32 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19nbG9iYWwuanM/M2IzMiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDIiwiZmlsZSI6IjMyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjhcbnZhciBnbG9iYWwgPSBtb2R1bGUuZXhwb3J0cyA9IHR5cGVvZiB3aW5kb3cgIT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lk1hdGggPT0gTWF0aFxuICA/IHdpbmRvdyA6IHR5cGVvZiBzZWxmICE9ICd1bmRlZmluZWQnICYmIHNlbGYuTWF0aCA9PSBNYXRoID8gc2VsZlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcbiAgOiBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuaWYgKHR5cGVvZiBfX2cgPT0gJ251bWJlcicpIF9fZyA9IGdsb2JhbDsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19nbG9iYWwuanNcbi8vIG1vZHVsZSBpZCA9IDMyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///32\n"); +"use strict"; +eval("\nvar $at = __webpack_require__(143)(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n__webpack_require__(80)(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvci5qcz9jZDA0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QixjQUFjO0FBQ2Q7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQSxVQUFVO0FBQ1YsQ0FBQyIsImZpbGUiOiIzMi5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcbnZhciAkYXQgPSByZXF1aXJlKCcuL19zdHJpbmctYXQnKSh0cnVlKTtcblxuLy8gMjEuMS4zLjI3IFN0cmluZy5wcm90b3R5cGVbQEBpdGVyYXRvcl0oKVxucmVxdWlyZSgnLi9faXRlci1kZWZpbmUnKShTdHJpbmcsICdTdHJpbmcnLCBmdW5jdGlvbiAoaXRlcmF0ZWQpIHtcbiAgdGhpcy5fdCA9IFN0cmluZyhpdGVyYXRlZCk7IC8vIHRhcmdldFxuICB0aGlzLl9pID0gMDsgICAgICAgICAgICAgICAgLy8gbmV4dCBpbmRleFxuLy8gMjEuMS41LjIuMSAlU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUlLm5leHQoKVxufSwgZnVuY3Rpb24gKCkge1xuICB2YXIgTyA9IHRoaXMuX3Q7XG4gIHZhciBpbmRleCA9IHRoaXMuX2k7XG4gIHZhciBwb2ludDtcbiAgaWYgKGluZGV4ID49IE8ubGVuZ3RoKSByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIHBvaW50ID0gJGF0KE8sIGluZGV4KTtcbiAgdGhpcy5faSArPSBwb2ludC5sZW5ndGg7XG4gIHJldHVybiB7IHZhbHVlOiBwb2ludCwgZG9uZTogZmFsc2UgfTtcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gMzJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///32\n"); /***/ }), /* 33 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -"use strict"; -eval("\nvar $at = __webpack_require__(143)(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n__webpack_require__(76)(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvci5qcz9jZDA0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QixjQUFjO0FBQ2Q7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQSxVQUFVO0FBQ1YsQ0FBQyIsImZpbGUiOiIzMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcbnZhciAkYXQgPSByZXF1aXJlKCcuL19zdHJpbmctYXQnKSh0cnVlKTtcblxuLy8gMjEuMS4zLjI3IFN0cmluZy5wcm90b3R5cGVbQEBpdGVyYXRvcl0oKVxucmVxdWlyZSgnLi9faXRlci1kZWZpbmUnKShTdHJpbmcsICdTdHJpbmcnLCBmdW5jdGlvbiAoaXRlcmF0ZWQpIHtcbiAgdGhpcy5fdCA9IFN0cmluZyhpdGVyYXRlZCk7IC8vIHRhcmdldFxuICB0aGlzLl9pID0gMDsgICAgICAgICAgICAgICAgLy8gbmV4dCBpbmRleFxuLy8gMjEuMS41LjIuMSAlU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUlLm5leHQoKVxufSwgZnVuY3Rpb24gKCkge1xuICB2YXIgTyA9IHRoaXMuX3Q7XG4gIHZhciBpbmRleCA9IHRoaXMuX2k7XG4gIHZhciBwb2ludDtcbiAgaWYgKGluZGV4ID49IE8ubGVuZ3RoKSByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIHBvaW50ID0gJGF0KE8sIGluZGV4KTtcbiAgdGhpcy5faSArPSBwb2ludC5sZW5ndGg7XG4gIHJldHVybiB7IHZhbHVlOiBwb2ludCwgZG9uZTogZmFsc2UgfTtcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gMzNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///33\n"); +eval("var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3VpZC5qcz9kYzRhIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMzMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaWQgPSAwO1xudmFyIHB4ID0gTWF0aC5yYW5kb20oKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gJ1N5bWJvbCgnLmNvbmNhdChrZXkgPT09IHVuZGVmaW5lZCA/ICcnIDoga2V5LCAnKV8nLCAoKytpZCArIHB4KS50b1N0cmluZygzNikpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL191aWQuanNcbi8vIG1vZHVsZSBpZCA9IDMzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///33\n"); /***/ }), /* 34 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3VpZC5qcz9kYzRhIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMzQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaWQgPSAwO1xudmFyIHB4ID0gTWF0aC5yYW5kb20oKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gJ1N5bWJvbCgnLmNvbmNhdChrZXkgPT09IHVuZGVmaW5lZCA/ICcnIDoga2V5LCAnKV8nLCAoKytpZCArIHB4KS50b1N0cmluZygzNikpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL191aWQuanNcbi8vIG1vZHVsZSBpZCA9IDM0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///34\n"); +eval("// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(40);\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLW9iamVjdC5qcz9iMDFkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMzQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA3LjEuMTMgVG9PYmplY3QoYXJndW1lbnQpXG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBPYmplY3QoZGVmaW5lZChpdCkpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1vYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDM0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///34\n"); /***/ }), /* 35 */ /***/ (function(module, exports, __webpack_require__) { -eval("// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(38);\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLW9iamVjdC5qcz9iMDFkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMzUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA3LjEuMTMgVG9PYmplY3QoYXJndW1lbnQpXG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBPYmplY3QoZGVmaW5lZChpdCkpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1vYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDM1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///35\n"); +"use strict"; +eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wpAdminAjax = exports.wpAPIProductsPreview = exports.wpAPICartDelete = exports.wpAPICartUpdate = exports.wpAPIShortcodeBuilder = exports.wpAPIProductLookup = void 0;\n\nvar _superagent = _interopRequireDefault(__webpack_require__(191));\n\nvar _wpSettings = __webpack_require__(97);\n\nvar _gutenbergSettings = __webpack_require__(18);\n\n/**\n * @module Ajax request functions.\n * @description Setup ajax requests via Super Agent and export for modular usage.\n */\nvar wpAPIProductLookup = function wpAPIProductLookup() {\n var queryString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return _superagent.default.get(_wpSettings.PRODUCTS_ENDPOINT).query(queryString);\n};\n\nexports.wpAPIProductLookup = wpAPIProductLookup;\n\nvar wpAPIShortcodeBuilder = function wpAPIShortcodeBuilder() {\n var queryString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return _superagent.default.get(_wpSettings.SHORTCODE_ENDPOINT).query(queryString);\n};\n\nexports.wpAPIShortcodeBuilder = wpAPIShortcodeBuilder;\n\nvar wpAPICartUpdate = function wpAPICartUpdate(cartURL) {\n var querySrting = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return _superagent.default.put(cartURL).query(querySrting);\n};\n\nexports.wpAPICartUpdate = wpAPICartUpdate;\n\nvar wpAPICartDelete = function wpAPICartDelete(cartURL) {\n return _superagent.default.del(cartURL);\n};\n\nexports.wpAPICartDelete = wpAPICartDelete;\n\nvar wpAPIProductsPreview = function wpAPIProductsPreview() {\n var queryObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return _superagent.default.get(_gutenbergSettings.GUTENBERG_PRODUCTS.preview_url).query(queryObj);\n};\n\nexports.wpAPIProductsPreview = wpAPIProductsPreview;\n\nvar wpAdminAjax = function wpAdminAjax() {\n var queryObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return _superagent.default.get(_wpSettings.ADMIN_AJAX).query(queryObj).timeout({\n response: 20000,\n // Wait 5 seconds for the server to start sending,\n deadline: 60000 // but allow 1 minute for the file to finish loading.\n\n });\n};\n\nexports.wpAdminAjax = wpAdminAjax;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL3V0aWxzL2FqYXguanM/NDEwMSJdLCJuYW1lcyI6WyJ3cEFQSVByb2R1Y3RMb29rdXAiLCJxdWVyeVN0cmluZyIsImdldCIsInF1ZXJ5Iiwid3BBUElTaG9ydGNvZGVCdWlsZGVyIiwid3BBUElDYXJ0VXBkYXRlIiwiY2FydFVSTCIsInF1ZXJ5U3J0aW5nIiwicHV0Iiwid3BBUElDYXJ0RGVsZXRlIiwiZGVsIiwid3BBUElQcm9kdWN0c1ByZXZpZXciLCJxdWVyeU9iaiIsInByZXZpZXdfdXJsIiwid3BBZG1pbkFqYXgiLCJ0aW1lb3V0IiwicmVzcG9uc2UiLCJkZWFkbGluZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBS0E7O0FBQ0E7O0FBRUE7O0FBUkE7Ozs7QUFVTyxJQUFNQSxxQkFBcUIsU0FBckJBLGtCQUFxQjtBQUFBLE1BQUNDLFdBQUQsdUVBQWUsRUFBZjtBQUFBLFNBQXNCLG9CQUN0REMsR0FEc0QsZ0NBRXREQyxLQUZzRCxDQUVoREYsV0FGZ0QsQ0FBdEI7QUFBQSxDQUEzQjs7OztBQUlBLElBQU1HLHdCQUF3QixTQUF4QkEscUJBQXdCO0FBQUEsTUFBQ0gsV0FBRCx1RUFBZSxFQUFmO0FBQUEsU0FBc0Isb0JBQ3pEQyxHQUR5RCxpQ0FFekRDLEtBRnlELENBRW5ERixXQUZtRCxDQUF0QjtBQUFBLENBQTlCOzs7O0FBSUEsSUFBTUksa0JBQWtCLFNBQWxCQSxlQUFrQixDQUFDQyxPQUFEO0FBQUEsTUFBVUMsV0FBVix1RUFBd0IsRUFBeEI7QUFBQSxTQUErQixvQkFDNURDLEdBRDRELENBQ3hERixPQUR3RCxFQUU1REgsS0FGNEQsQ0FFdERJLFdBRnNELENBQS9CO0FBQUEsQ0FBeEI7Ozs7QUFJQSxJQUFNRSxrQkFBa0IsU0FBbEJBLGVBQWtCO0FBQUEsU0FBVyxvQkFDeENDLEdBRHdDLENBQ3BDSixPQURvQyxDQUFYO0FBQUEsQ0FBeEI7Ozs7QUFHQSxJQUFNSyx1QkFBdUIsU0FBdkJBLG9CQUF1QjtBQUFBLE1BQUNDLFFBQUQsdUVBQVksRUFBWjtBQUFBLFNBQW1CLG9CQUNyRFYsR0FEcUQsQ0FDakQsc0NBQW1CVyxXQUQ4QixFQUVyRFYsS0FGcUQsQ0FFL0NTLFFBRitDLENBQW5CO0FBQUEsQ0FBN0I7Ozs7QUFJQSxJQUFNRSxjQUFjLFNBQWRBLFdBQWM7QUFBQSxNQUFDRixRQUFELHVFQUFZLEVBQVo7QUFBQSxTQUFtQixvQkFDNUNWLEdBRDRDLHlCQUU1Q0MsS0FGNEMsQ0FFdENTLFFBRnNDLEVBRzVDRyxPQUg0QyxDQUdwQztBQUNSQyxjQUFVLEtBREY7QUFDVTtBQUNsQkMsY0FBVSxLQUZGLENBRVM7O0FBRlQsR0FIb0MsQ0FBbkI7QUFBQSxDQUFwQiIsImZpbGUiOiIzNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBBamF4IHJlcXVlc3QgZnVuY3Rpb25zLlxuICogQGRlc2NyaXB0aW9uIFNldHVwIGFqYXggcmVxdWVzdHMgdmlhIFN1cGVyIEFnZW50IGFuZCBleHBvcnQgZm9yIG1vZHVsYXIgdXNhZ2UuXG4gKi9cblxuaW1wb3J0IHJlcXVlc3QgZnJvbSAnc3VwZXJhZ2VudCc7XG5pbXBvcnQgeyBQUk9EVUNUU19FTkRQT0lOVCwgU0hPUlRDT0RFX0VORFBPSU5UIH0gZnJvbSAnLi4vYWRtaW4vY29uZmlnL3dwLXNldHRpbmdzJztcbmltcG9ydCB7IEFETUlOX0FKQVggfSBmcm9tICcuLi9hZG1pbi9jb25maWcvd3Atc2V0dGluZ3MnO1xuaW1wb3J0IHsgR1VURU5CRVJHX1BST0RVQ1RTIH0gZnJvbSAnLi4vYWRtaW4vZ3V0ZW5iZXJnL2NvbmZpZy9ndXRlbmJlcmctc2V0dGluZ3MnO1xuXG5leHBvcnQgY29uc3Qgd3BBUElQcm9kdWN0TG9va3VwID0gKHF1ZXJ5U3RyaW5nID0gJycpID0+IHJlcXVlc3Rcblx0LmdldChQUk9EVUNUU19FTkRQT0lOVClcblx0LnF1ZXJ5KHF1ZXJ5U3RyaW5nKTtcblxuZXhwb3J0IGNvbnN0IHdwQVBJU2hvcnRjb2RlQnVpbGRlciA9IChxdWVyeVN0cmluZyA9ICcnKSA9PiByZXF1ZXN0XG5cdC5nZXQoU0hPUlRDT0RFX0VORFBPSU5UKVxuXHQucXVlcnkocXVlcnlTdHJpbmcpO1xuXG5leHBvcnQgY29uc3Qgd3BBUElDYXJ0VXBkYXRlID0gKGNhcnRVUkwsIHF1ZXJ5U3J0aW5nID0gJycpID0+IHJlcXVlc3Rcblx0LnB1dChjYXJ0VVJMKVxuXHQucXVlcnkocXVlcnlTcnRpbmcpO1xuXG5leHBvcnQgY29uc3Qgd3BBUElDYXJ0RGVsZXRlID0gY2FydFVSTCA9PiByZXF1ZXN0XG5cdC5kZWwoY2FydFVSTCk7XG5cbmV4cG9ydCBjb25zdCB3cEFQSVByb2R1Y3RzUHJldmlldyA9IChxdWVyeU9iaiA9IHt9KSA9PiByZXF1ZXN0XG5cdC5nZXQoR1VURU5CRVJHX1BST0RVQ1RTLnByZXZpZXdfdXJsKVxuXHQucXVlcnkocXVlcnlPYmopO1xuXG5leHBvcnQgY29uc3Qgd3BBZG1pbkFqYXggPSAocXVlcnlPYmogPSB7fSkgPT4gcmVxdWVzdFxuXHQuZ2V0KEFETUlOX0FKQVgpXG5cdC5xdWVyeShxdWVyeU9iailcblx0LnRpbWVvdXQoe1xuXHRcdHJlc3BvbnNlOiAyMDAwMCwgIC8vIFdhaXQgNSBzZWNvbmRzIGZvciB0aGUgc2VydmVyIHRvIHN0YXJ0IHNlbmRpbmcsXG5cdFx0ZGVhZGxpbmU6IDYwMDAwLCAvLyBidXQgYWxsb3cgMSBtaW51dGUgZm9yIHRoZSBmaWxlIHRvIGZpbmlzaCBsb2FkaW5nLlxuXHR9KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvdXRpbHMvYWpheC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///35\n"); /***/ }), /* 36 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wpAdminAjax = exports.wpAPIProductsPreview = exports.wpAPICartDelete = exports.wpAPICartUpdate = exports.wpAPIShortcodeBuilder = exports.wpAPIProductLookup = void 0;\n\nvar _superagent = _interopRequireDefault(__webpack_require__(191));\n\nvar _wpSettings = __webpack_require__(3);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\n/**\n * @module Ajax request functions.\n * @description Setup ajax requests via Super Agent and export for modular usage.\n */\nvar wpAPIProductLookup = function wpAPIProductLookup() {\n var queryString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return _superagent.default.get(_wpSettings.PRODUCTS_ENDPOINT).query(queryString);\n};\n\nexports.wpAPIProductLookup = wpAPIProductLookup;\n\nvar wpAPIShortcodeBuilder = function wpAPIShortcodeBuilder() {\n var queryString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return _superagent.default.get(_wpSettings.SHORTCODE_ENDPOINT).query(queryString);\n};\n\nexports.wpAPIShortcodeBuilder = wpAPIShortcodeBuilder;\n\nvar wpAPICartUpdate = function wpAPICartUpdate(cartURL) {\n var querySrting = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return _superagent.default.put(cartURL).query(querySrting);\n};\n\nexports.wpAPICartUpdate = wpAPICartUpdate;\n\nvar wpAPICartDelete = function wpAPICartDelete(cartURL) {\n return _superagent.default.del(cartURL);\n};\n\nexports.wpAPICartDelete = wpAPICartDelete;\n\nvar wpAPIProductsPreview = function wpAPIProductsPreview() {\n var queryObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return _superagent.default.get(_gutenbergSettings.GUTENBERG_PRODUCTS.preview_url).query(queryObj);\n};\n\nexports.wpAPIProductsPreview = wpAPIProductsPreview;\n\nvar wpAdminAjax = function wpAdminAjax() {\n var queryObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return _superagent.default.get(_wpSettings.ADMIN_AJAX).query(queryObj).timeout({\n response: 20000,\n // Wait 5 seconds for the server to start sending,\n deadline: 60000 // but allow 1 minute for the file to finish loading.\n\n });\n};\n\nexports.wpAdminAjax = wpAdminAjax;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL3V0aWxzL2FqYXguanM/NDEwMSJdLCJuYW1lcyI6WyJ3cEFQSVByb2R1Y3RMb29rdXAiLCJxdWVyeVN0cmluZyIsImdldCIsInF1ZXJ5Iiwid3BBUElTaG9ydGNvZGVCdWlsZGVyIiwid3BBUElDYXJ0VXBkYXRlIiwiY2FydFVSTCIsInF1ZXJ5U3J0aW5nIiwicHV0Iiwid3BBUElDYXJ0RGVsZXRlIiwiZGVsIiwid3BBUElQcm9kdWN0c1ByZXZpZXciLCJxdWVyeU9iaiIsInByZXZpZXdfdXJsIiwid3BBZG1pbkFqYXgiLCJ0aW1lb3V0IiwicmVzcG9uc2UiLCJkZWFkbGluZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBS0E7O0FBQ0E7O0FBRUE7O0FBUkE7Ozs7QUFVTyxJQUFNQSxxQkFBcUIsU0FBckJBLGtCQUFxQjtBQUFBLE1BQUNDLFdBQUQsdUVBQWUsRUFBZjtBQUFBLFNBQXNCLG9CQUN0REMsR0FEc0QsZ0NBRXREQyxLQUZzRCxDQUVoREYsV0FGZ0QsQ0FBdEI7QUFBQSxDQUEzQjs7OztBQUlBLElBQU1HLHdCQUF3QixTQUF4QkEscUJBQXdCO0FBQUEsTUFBQ0gsV0FBRCx1RUFBZSxFQUFmO0FBQUEsU0FBc0Isb0JBQ3pEQyxHQUR5RCxpQ0FFekRDLEtBRnlELENBRW5ERixXQUZtRCxDQUF0QjtBQUFBLENBQTlCOzs7O0FBSUEsSUFBTUksa0JBQWtCLFNBQWxCQSxlQUFrQixDQUFDQyxPQUFEO0FBQUEsTUFBVUMsV0FBVix1RUFBd0IsRUFBeEI7QUFBQSxTQUErQixvQkFDNURDLEdBRDRELENBQ3hERixPQUR3RCxFQUU1REgsS0FGNEQsQ0FFdERJLFdBRnNELENBQS9CO0FBQUEsQ0FBeEI7Ozs7QUFJQSxJQUFNRSxrQkFBa0IsU0FBbEJBLGVBQWtCO0FBQUEsU0FBVyxvQkFDeENDLEdBRHdDLENBQ3BDSixPQURvQyxDQUFYO0FBQUEsQ0FBeEI7Ozs7QUFHQSxJQUFNSyx1QkFBdUIsU0FBdkJBLG9CQUF1QjtBQUFBLE1BQUNDLFFBQUQsdUVBQVksRUFBWjtBQUFBLFNBQW1CLG9CQUNyRFYsR0FEcUQsQ0FDakQsc0NBQW1CVyxXQUQ4QixFQUVyRFYsS0FGcUQsQ0FFL0NTLFFBRitDLENBQW5CO0FBQUEsQ0FBN0I7Ozs7QUFJQSxJQUFNRSxjQUFjLFNBQWRBLFdBQWM7QUFBQSxNQUFDRixRQUFELHVFQUFZLEVBQVo7QUFBQSxTQUFtQixvQkFDNUNWLEdBRDRDLHlCQUU1Q0MsS0FGNEMsQ0FFdENTLFFBRnNDLEVBRzVDRyxPQUg0QyxDQUdwQztBQUNSQyxjQUFVLEtBREY7QUFDVTtBQUNsQkMsY0FBVSxLQUZGLENBRVM7O0FBRlQsR0FIb0MsQ0FBbkI7QUFBQSxDQUFwQiIsImZpbGUiOiIzNi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBBamF4IHJlcXVlc3QgZnVuY3Rpb25zLlxuICogQGRlc2NyaXB0aW9uIFNldHVwIGFqYXggcmVxdWVzdHMgdmlhIFN1cGVyIEFnZW50IGFuZCBleHBvcnQgZm9yIG1vZHVsYXIgdXNhZ2UuXG4gKi9cblxuaW1wb3J0IHJlcXVlc3QgZnJvbSAnc3VwZXJhZ2VudCc7XG5pbXBvcnQgeyBQUk9EVUNUU19FTkRQT0lOVCwgU0hPUlRDT0RFX0VORFBPSU5UIH0gZnJvbSAnLi4vYWRtaW4vY29uZmlnL3dwLXNldHRpbmdzJztcbmltcG9ydCB7IEFETUlOX0FKQVggfSBmcm9tICcuLi9hZG1pbi9jb25maWcvd3Atc2V0dGluZ3MnO1xuaW1wb3J0IHsgR1VURU5CRVJHX1BST0RVQ1RTIH0gZnJvbSAnLi4vYWRtaW4vZ3V0ZW5iZXJnL2NvbmZpZy9ndXRlbmJlcmctc2V0dGluZ3MnO1xuXG5leHBvcnQgY29uc3Qgd3BBUElQcm9kdWN0TG9va3VwID0gKHF1ZXJ5U3RyaW5nID0gJycpID0+IHJlcXVlc3Rcblx0LmdldChQUk9EVUNUU19FTkRQT0lOVClcblx0LnF1ZXJ5KHF1ZXJ5U3RyaW5nKTtcblxuZXhwb3J0IGNvbnN0IHdwQVBJU2hvcnRjb2RlQnVpbGRlciA9IChxdWVyeVN0cmluZyA9ICcnKSA9PiByZXF1ZXN0XG5cdC5nZXQoU0hPUlRDT0RFX0VORFBPSU5UKVxuXHQucXVlcnkocXVlcnlTdHJpbmcpO1xuXG5leHBvcnQgY29uc3Qgd3BBUElDYXJ0VXBkYXRlID0gKGNhcnRVUkwsIHF1ZXJ5U3J0aW5nID0gJycpID0+IHJlcXVlc3Rcblx0LnB1dChjYXJ0VVJMKVxuXHQucXVlcnkocXVlcnlTcnRpbmcpO1xuXG5leHBvcnQgY29uc3Qgd3BBUElDYXJ0RGVsZXRlID0gY2FydFVSTCA9PiByZXF1ZXN0XG5cdC5kZWwoY2FydFVSTCk7XG5cbmV4cG9ydCBjb25zdCB3cEFQSVByb2R1Y3RzUHJldmlldyA9IChxdWVyeU9iaiA9IHt9KSA9PiByZXF1ZXN0XG5cdC5nZXQoR1VURU5CRVJHX1BST0RVQ1RTLnByZXZpZXdfdXJsKVxuXHQucXVlcnkocXVlcnlPYmopO1xuXG5leHBvcnQgY29uc3Qgd3BBZG1pbkFqYXggPSAocXVlcnlPYmogPSB7fSkgPT4gcmVxdWVzdFxuXHQuZ2V0KEFETUlOX0FKQVgpXG5cdC5xdWVyeShxdWVyeU9iailcblx0LnRpbWVvdXQoe1xuXHRcdHJlc3BvbnNlOiAyMDAwMCwgIC8vIFdhaXQgNSBzZWNvbmRzIGZvciB0aGUgc2VydmVyIHRvIHN0YXJ0IHNlbmRpbmcsXG5cdFx0ZGVhZGxpbmU6IDYwMDAwLCAvLyBidXQgYWxsb3cgMSBtaW51dGUgZm9yIHRoZSBmaWxlIHRvIGZpbmlzaCBsb2FkaW5nLlxuXHR9KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvdXRpbHMvYWpheC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///36\n"); +eval("module.exports = __webpack_require__(209);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvY29yZS1qcy9vYmplY3QvZ2V0LXByb3RvdHlwZS1vZi5qcz9kMmE5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjM2LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9nZXQtcHJvdG90eXBlLW9mXCIpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2NvcmUtanMvb2JqZWN0L2dldC1wcm90b3R5cGUtb2YuanNcbi8vIG1vZHVsZSBpZCA9IDM2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///36\n"); /***/ }), /* 37 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NvZi5qcz80N2QzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjs7QUFFakI7QUFDQTtBQUNBIiwiZmlsZSI6IjM3LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHRvU3RyaW5nID0ge30udG9TdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0b1N0cmluZy5jYWxsKGl0KS5zbGljZSg4LCAtMSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NvZi5qc1xuLy8gbW9kdWxlIGlkID0gMzdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///37\n"); +eval("var _typeof = __webpack_require__(211);\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _possibleConstructorReturn;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzPzRmZmIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiMzcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX3R5cGVvZiA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL3R5cGVvZlwiKTtcblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkge1xuICBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkge1xuICAgIHJldHVybiBjYWxsO1xuICB9XG5cbiAgaWYgKHNlbGYgPT09IHZvaWQgMCkge1xuICAgIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtcbiAgfVxuXG4gIHJldHVybiBzZWxmO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybi5qc1xuLy8gbW9kdWxlIGlkID0gMzdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///37\n"); /***/ }), /* 38 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RlZmluZWQuanM/ZTc2OCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjM4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gNy4yLjEgUmVxdWlyZU9iamVjdENvZXJjaWJsZShhcmd1bWVudClcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmIChpdCA9PSB1bmRlZmluZWQpIHRocm93IFR5cGVFcnJvcihcIkNhbid0IGNhbGwgbWV0aG9kIG9uICBcIiArIGl0KTtcbiAgcmV0dXJuIGl0O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19kZWZpbmVkLmpzXG4vLyBtb2R1bGUgaWQgPSAzOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///38\n"); +eval("var _Object$setPrototypeOf = __webpack_require__(224);\n\nvar _Object$create = __webpack_require__(228);\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = _Object$create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _Object$setPrototypeOf ? _Object$setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inherits;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbmhlcml0cy5qcz84ZmZhIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUEiLCJmaWxlIjoiMzguanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX09iamVjdCRzZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoXCIuLi9jb3JlLWpzL29iamVjdC9zZXQtcHJvdG90eXBlLW9mXCIpO1xuXG52YXIgX09iamVjdCRjcmVhdGUgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9vYmplY3QvY3JlYXRlXCIpO1xuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHtcbiAgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTtcbiAgfVxuXG4gIHN1YkNsYXNzLnByb3RvdHlwZSA9IF9PYmplY3QkY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHtcbiAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgdmFsdWU6IHN1YkNsYXNzLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH1cbiAgfSk7XG4gIGlmIChzdXBlckNsYXNzKSBfT2JqZWN0JHNldFByb3RvdHlwZU9mID8gX09iamVjdCRzZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pbmhlcml0cztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2luaGVyaXRzLmpzXG4vLyBtb2R1bGUgaWQgPSAzOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///38\n"); /***/ }), /* 39 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -eval("var pIE = __webpack_require__(21);\nvar createDesc = __webpack_require__(22);\nvar toIObject = __webpack_require__(8);\nvar toPrimitive = __webpack_require__(40);\nvar has = __webpack_require__(12);\nvar IE8_DOM_DEFINE = __webpack_require__(60);\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = __webpack_require__(13) ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BkLmpzPzJjYTYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsWUFBWTtBQUNmO0FBQ0EiLCJmaWxlIjoiMzkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcElFID0gcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi9fdG8tcHJpbWl0aXZlJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuL19pZTgtZG9tLWRlZmluZScpO1xudmFyIGdPUEQgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuXG5leHBvcnRzLmYgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpID8gZ09QRCA6IGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihPLCBQKSB7XG4gIE8gPSB0b0lPYmplY3QoTyk7XG4gIFAgPSB0b1ByaW1pdGl2ZShQLCB0cnVlKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiBnT1BEKE8sIFApO1xuICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKGhhcyhPLCBQKSkgcmV0dXJuIGNyZWF0ZURlc2MoIXBJRS5mLmNhbGwoTywgUCksIE9bUF0pO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ29wZC5qc1xuLy8gbW9kdWxlIGlkID0gMzlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///39\n"); +eval("var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NvZi5qcz80N2QzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjs7QUFFakI7QUFDQTtBQUNBIiwiZmlsZSI6IjM5LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHRvU3RyaW5nID0ge30udG9TdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0b1N0cmluZy5jYWxsKGl0KS5zbGljZSg4LCAtMSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NvZi5qc1xuLy8gbW9kdWxlIGlkID0gMzlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///39\n"); /***/ }), /* 40 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -eval("// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(17);\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLXByaW1pdGl2ZS5qcz8zMjYzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiI0MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIDcuMS4xIFRvUHJpbWl0aXZlKGlucHV0IFssIFByZWZlcnJlZFR5cGVdKVxudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG4vLyBpbnN0ZWFkIG9mIHRoZSBFUzYgc3BlYyB2ZXJzaW9uLCB3ZSBkaWRuJ3QgaW1wbGVtZW50IEBAdG9QcmltaXRpdmUgY2FzZVxuLy8gYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgLSBmbGFnIC0gcHJlZmVycmVkIHR5cGUgaXMgYSBzdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBTKSB7XG4gIGlmICghaXNPYmplY3QoaXQpKSByZXR1cm4gaXQ7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAoUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHR5cGVvZiAoZm4gPSBpdC52YWx1ZU9mKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHJldHVybiB2YWw7XG4gIGlmICghUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1wcmltaXRpdmUuanNcbi8vIG1vZHVsZSBpZCA9IDQwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///40\n"); +eval("// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RlZmluZWQuanM/ZTc2OCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjQwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gNy4yLjEgUmVxdWlyZU9iamVjdENvZXJjaWJsZShhcmd1bWVudClcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmIChpdCA9PSB1bmRlZmluZWQpIHRocm93IFR5cGVFcnJvcihcIkNhbid0IGNhbGwgbWV0aG9kIG9uICBcIiArIGl0KTtcbiAgcmV0dXJuIGl0O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19kZWZpbmVkLmpzXG4vLyBtb2R1bGUgaWQgPSA0MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///40\n"); /***/ }), /* 41 */ /***/ (function(module, exports, __webpack_require__) { -eval("// optional / simple context binding\nvar aFunction = __webpack_require__(106);\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2N0eC5qcz9mOTkzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiNDEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBvcHRpb25hbCAvIHNpbXBsZSBjb250ZXh0IGJpbmRpbmdcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuL19hLWZ1bmN0aW9uJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChmbiwgdGhhdCwgbGVuZ3RoKSB7XG4gIGFGdW5jdGlvbihmbik7XG4gIGlmICh0aGF0ID09PSB1bmRlZmluZWQpIHJldHVybiBmbjtcbiAgc3dpdGNoIChsZW5ndGgpIHtcbiAgICBjYXNlIDE6IHJldHVybiBmdW5jdGlvbiAoYSkge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSk7XG4gICAgfTtcbiAgICBjYXNlIDI6IHJldHVybiBmdW5jdGlvbiAoYSwgYikge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYik7XG4gICAgfTtcbiAgICBjYXNlIDM6IHJldHVybiBmdW5jdGlvbiAoYSwgYiwgYykge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYiwgYyk7XG4gICAgfTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24gKC8qIC4uLmFyZ3MgKi8pIHtcbiAgICByZXR1cm4gZm4uYXBwbHkodGhhdCwgYXJndW1lbnRzKTtcbiAgfTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY3R4LmpzXG4vLyBtb2R1bGUgaWQgPSA0MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///41\n"); +eval("var pIE = __webpack_require__(19);\nvar createDesc = __webpack_require__(20);\nvar toIObject = __webpack_require__(5);\nvar toPrimitive = __webpack_require__(42);\nvar has = __webpack_require__(9);\nvar IE8_DOM_DEFINE = __webpack_require__(64);\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = __webpack_require__(10) ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BkLmpzPzJjYTYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsWUFBWTtBQUNmO0FBQ0EiLCJmaWxlIjoiNDEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcElFID0gcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi9fdG8tcHJpbWl0aXZlJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuL19pZTgtZG9tLWRlZmluZScpO1xudmFyIGdPUEQgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuXG5leHBvcnRzLmYgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpID8gZ09QRCA6IGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihPLCBQKSB7XG4gIE8gPSB0b0lPYmplY3QoTyk7XG4gIFAgPSB0b1ByaW1pdGl2ZShQLCB0cnVlKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiBnT1BEKE8sIFApO1xuICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKGhhcyhPLCBQKSkgcmV0dXJuIGNyZWF0ZURlc2MoIXBJRS5mLmNhbGwoTywgUCksIE9bUF0pO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ29wZC5qc1xuLy8gbW9kdWxlIGlkID0gNDFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///41\n"); /***/ }), /* 42 */ /***/ (function(module, exports, __webpack_require__) { -eval("var freeGlobal = __webpack_require__(69);\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19yb290LmpzPzRkMGQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBIiwiZmlsZSI6IjQyLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGZyZWVHbG9iYWwgPSByZXF1aXJlKCcuL19mcmVlR2xvYmFsJyk7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgc2VsZmAuICovXG52YXIgZnJlZVNlbGYgPSB0eXBlb2Ygc2VsZiA9PSAnb2JqZWN0JyAmJiBzZWxmICYmIHNlbGYuT2JqZWN0ID09PSBPYmplY3QgJiYgc2VsZjtcblxuLyoqIFVzZWQgYXMgYSByZWZlcmVuY2UgdG8gdGhlIGdsb2JhbCBvYmplY3QuICovXG52YXIgcm9vdCA9IGZyZWVHbG9iYWwgfHwgZnJlZVNlbGYgfHwgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblxubW9kdWxlLmV4cG9ydHMgPSByb290O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoL19yb290LmpzXG4vLyBtb2R1bGUgaWQgPSA0MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///42\n"); +eval("// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(14);\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLXByaW1pdGl2ZS5qcz8zMjYzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiI0Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIDcuMS4xIFRvUHJpbWl0aXZlKGlucHV0IFssIFByZWZlcnJlZFR5cGVdKVxudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG4vLyBpbnN0ZWFkIG9mIHRoZSBFUzYgc3BlYyB2ZXJzaW9uLCB3ZSBkaWRuJ3QgaW1wbGVtZW50IEBAdG9QcmltaXRpdmUgY2FzZVxuLy8gYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgLSBmbGFnIC0gcHJlZmVycmVkIHR5cGUgaXMgYSBzdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBTKSB7XG4gIGlmICghaXNPYmplY3QoaXQpKSByZXR1cm4gaXQ7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAoUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHR5cGVvZiAoZm4gPSBpdC52YWx1ZU9mKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHJldHVybiB2YWw7XG4gIGlmICghUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1wcmltaXRpdmUuanNcbi8vIG1vZHVsZSBpZCA9IDQyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///42\n"); /***/ }), /* 43 */ /***/ (function(module, exports, __webpack_require__) { -eval("var anObject = __webpack_require__(73);\nvar IE8_DOM_DEFINE = __webpack_require__(129);\nvar toPrimitive = __webpack_require__(131);\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(23) ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19vYmplY3QtZHAuanM/OTQzMiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLFlBQVk7QUFDZjtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiI0My5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIElFOF9ET01fREVGSU5FID0gcmVxdWlyZSgnLi9faWU4LWRvbS1kZWZpbmUnKTtcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4vX3RvLXByaW1pdGl2ZScpO1xudmFyIGRQID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xuXG5leHBvcnRzLmYgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpID8gT2JqZWN0LmRlZmluZVByb3BlcnR5IDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuICBhbk9iamVjdChPKTtcbiAgUCA9IHRvUHJpbWl0aXZlKFAsIHRydWUpO1xuICBhbk9iamVjdChBdHRyaWJ1dGVzKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiBkUChPLCBQLCBBdHRyaWJ1dGVzKTtcbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG4gIGlmICgnZ2V0JyBpbiBBdHRyaWJ1dGVzIHx8ICdzZXQnIGluIEF0dHJpYnV0ZXMpIHRocm93IFR5cGVFcnJvcignQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQhJyk7XG4gIGlmICgndmFsdWUnIGluIEF0dHJpYnV0ZXMpIE9bUF0gPSBBdHRyaWJ1dGVzLnZhbHVlO1xuICByZXR1cm4gTztcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX29iamVjdC1kcC5qc1xuLy8gbW9kdWxlIGlkID0gNDNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///43\n"); +eval("// optional / simple context binding\nvar aFunction = __webpack_require__(106);\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2N0eC5qcz9mOTkzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiNDMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBvcHRpb25hbCAvIHNpbXBsZSBjb250ZXh0IGJpbmRpbmdcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuL19hLWZ1bmN0aW9uJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChmbiwgdGhhdCwgbGVuZ3RoKSB7XG4gIGFGdW5jdGlvbihmbik7XG4gIGlmICh0aGF0ID09PSB1bmRlZmluZWQpIHJldHVybiBmbjtcbiAgc3dpdGNoIChsZW5ndGgpIHtcbiAgICBjYXNlIDE6IHJldHVybiBmdW5jdGlvbiAoYSkge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSk7XG4gICAgfTtcbiAgICBjYXNlIDI6IHJldHVybiBmdW5jdGlvbiAoYSwgYikge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYik7XG4gICAgfTtcbiAgICBjYXNlIDM6IHJldHVybiBmdW5jdGlvbiAoYSwgYiwgYykge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYiwgYyk7XG4gICAgfTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24gKC8qIC4uLmFyZ3MgKi8pIHtcbiAgICByZXR1cm4gZm4uYXBwbHkodGhhdCwgYXJndW1lbnRzKTtcbiAgfTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY3R4LmpzXG4vLyBtb2R1bGUgaWQgPSA0M1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///43\n"); /***/ }), /* 44 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19mYWlscy5qcz9jZTAyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EiLCJmaWxlIjoiNDQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChleGVjKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICEhZXhlYygpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2ZhaWxzLmpzXG4vLyBtb2R1bGUgaWQgPSA0NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///44\n"); +eval("var freeGlobal = __webpack_require__(73);\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19yb290LmpzPzRkMGQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBIiwiZmlsZSI6IjQ0LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGZyZWVHbG9iYWwgPSByZXF1aXJlKCcuL19mcmVlR2xvYmFsJyk7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgc2VsZmAuICovXG52YXIgZnJlZVNlbGYgPSB0eXBlb2Ygc2VsZiA9PSAnb2JqZWN0JyAmJiBzZWxmICYmIHNlbGYuT2JqZWN0ID09PSBPYmplY3QgJiYgc2VsZjtcblxuLyoqIFVzZWQgYXMgYSByZWZlcmVuY2UgdG8gdGhlIGdsb2JhbCBvYmplY3QuICovXG52YXIgcm9vdCA9IGZyZWVHbG9iYWwgfHwgZnJlZVNlbGYgfHwgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblxubW9kdWxlLmV4cG9ydHMgPSByb290O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoL19yb290LmpzXG4vLyBtb2R1bGUgaWQgPSA0NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///44\n"); /***/ }), /* 45 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWludGVnZXIuanM/NTJlMSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiNDUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA3LjEuNCBUb0ludGVnZXJcbnZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpc05hTihpdCA9ICtpdCkgPyAwIDogKGl0ID4gMCA/IGZsb29yIDogY2VpbCkoaXQpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1pbnRlZ2VyLmpzXG4vLyBtb2R1bGUgaWQgPSA0NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///45\n"); +eval("var anObject = __webpack_require__(77);\nvar IE8_DOM_DEFINE = __webpack_require__(129);\nvar toPrimitive = __webpack_require__(131);\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(21) ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19vYmplY3QtZHAuanM/OTQzMiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLFlBQVk7QUFDZjtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiI0NS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIElFOF9ET01fREVGSU5FID0gcmVxdWlyZSgnLi9faWU4LWRvbS1kZWZpbmUnKTtcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4vX3RvLXByaW1pdGl2ZScpO1xudmFyIGRQID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xuXG5leHBvcnRzLmYgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpID8gT2JqZWN0LmRlZmluZVByb3BlcnR5IDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuICBhbk9iamVjdChPKTtcbiAgUCA9IHRvUHJpbWl0aXZlKFAsIHRydWUpO1xuICBhbk9iamVjdChBdHRyaWJ1dGVzKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiBkUChPLCBQLCBBdHRyaWJ1dGVzKTtcbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG4gIGlmICgnZ2V0JyBpbiBBdHRyaWJ1dGVzIHx8ICdzZXQnIGluIEF0dHJpYnV0ZXMpIHRocm93IFR5cGVFcnJvcignQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQhJyk7XG4gIGlmICgndmFsdWUnIGluIEF0dHJpYnV0ZXMpIE9bUF0gPSBBdHRyaWJ1dGVzLnZhbHVlO1xuICByZXR1cm4gTztcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX29iamVjdC1kcC5qc1xuLy8gbW9kdWxlIGlkID0gNDVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///45\n"); /***/ }), /* 46 */ /***/ (function(module, exports) { -eval("module.exports = true;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2xpYnJhcnkuanM/M2I4OCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiI0Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gdHJ1ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19saWJyYXJ5LmpzXG4vLyBtb2R1bGUgaWQgPSA0NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///46\n"); +eval("module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19mYWlscy5qcz9jZTAyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EiLCJmaWxlIjoiNDYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChleGVjKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICEhZXhlYygpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2ZhaWxzLmpzXG4vLyBtb2R1bGUgaWQgPSA0NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///46\n"); /***/ }), /* 47 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -eval("// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(14);\nvar dPs = __webpack_require__(145);\nvar enumBugKeys = __webpack_require__(50);\nvar IE_PROTO = __webpack_require__(48)('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(61)('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(148).appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1jcmVhdGUuanM/NjI4NiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSIsImZpbGUiOiI0Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIDE5LjEuMi4yIC8gMTUuMi4zLjUgT2JqZWN0LmNyZWF0ZShPIFssIFByb3BlcnRpZXNdKVxudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgZFBzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwcycpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi9fZW51bS1idWcta2V5cycpO1xudmFyIElFX1BST1RPID0gcmVxdWlyZSgnLi9fc2hhcmVkLWtleScpKCdJRV9QUk9UTycpO1xudmFyIEVtcHR5ID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xudmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnO1xuXG4vLyBDcmVhdGUgb2JqZWN0IHdpdGggZmFrZSBgbnVsbGAgcHJvdG90eXBlOiB1c2UgaWZyYW1lIE9iamVjdCB3aXRoIGNsZWFyZWQgcHJvdG90eXBlXG52YXIgY3JlYXRlRGljdCA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gVGhyYXNoLCB3YXN0ZSBhbmQgc29kb215OiBJRSBHQyBidWdcbiAgdmFyIGlmcmFtZSA9IHJlcXVpcmUoJy4vX2RvbS1jcmVhdGUnKSgnaWZyYW1lJyk7XG4gIHZhciBpID0gZW51bUJ1Z0tleXMubGVuZ3RoO1xuICB2YXIgbHQgPSAnPCc7XG4gIHZhciBndCA9ICc+JztcbiAgdmFyIGlmcmFtZURvY3VtZW50O1xuICBpZnJhbWUuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgcmVxdWlyZSgnLi9faHRtbCcpLmFwcGVuZENoaWxkKGlmcmFtZSk7XG4gIGlmcmFtZS5zcmMgPSAnamF2YXNjcmlwdDonOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXNjcmlwdC11cmxcbiAgLy8gY3JlYXRlRGljdCA9IGlmcmFtZS5jb250ZW50V2luZG93Lk9iamVjdDtcbiAgLy8gaHRtbC5yZW1vdmVDaGlsZChpZnJhbWUpO1xuICBpZnJhbWVEb2N1bWVudCA9IGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50O1xuICBpZnJhbWVEb2N1bWVudC5vcGVuKCk7XG4gIGlmcmFtZURvY3VtZW50LndyaXRlKGx0ICsgJ3NjcmlwdCcgKyBndCArICdkb2N1bWVudC5GPU9iamVjdCcgKyBsdCArICcvc2NyaXB0JyArIGd0KTtcbiAgaWZyYW1lRG9jdW1lbnQuY2xvc2UoKTtcbiAgY3JlYXRlRGljdCA9IGlmcmFtZURvY3VtZW50LkY7XG4gIHdoaWxlIChpLS0pIGRlbGV0ZSBjcmVhdGVEaWN0W1BST1RPVFlQRV1bZW51bUJ1Z0tleXNbaV1dO1xuICByZXR1cm4gY3JlYXRlRGljdCgpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuY3JlYXRlIHx8IGZ1bmN0aW9uIGNyZWF0ZShPLCBQcm9wZXJ0aWVzKSB7XG4gIHZhciByZXN1bHQ7XG4gIGlmIChPICE9PSBudWxsKSB7XG4gICAgRW1wdHlbUFJPVE9UWVBFXSA9IGFuT2JqZWN0KE8pO1xuICAgIHJlc3VsdCA9IG5ldyBFbXB0eSgpO1xuICAgIEVtcHR5W1BST1RPVFlQRV0gPSBudWxsO1xuICAgIC8vIGFkZCBcIl9fcHJvdG9fX1wiIGZvciBPYmplY3QuZ2V0UHJvdG90eXBlT2YgcG9seWZpbGxcbiAgICByZXN1bHRbSUVfUFJPVE9dID0gTztcbiAgfSBlbHNlIHJlc3VsdCA9IGNyZWF0ZURpY3QoKTtcbiAgcmV0dXJuIFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCA/IHJlc3VsdCA6IGRQcyhyZXN1bHQsIFByb3BlcnRpZXMpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtY3JlYXRlLmpzXG4vLyBtb2R1bGUgaWQgPSA0N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///47\n"); +eval("// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWludGVnZXIuanM/NTJlMSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiNDcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA3LjEuNCBUb0ludGVnZXJcbnZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpc05hTihpdCA9ICtpdCkgPyAwIDogKGl0ID4gMCA/IGZsb29yIDogY2VpbCkoaXQpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1pbnRlZ2VyLmpzXG4vLyBtb2R1bGUgaWQgPSA0N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///47\n"); /***/ }), /* 48 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -eval("var shared = __webpack_require__(49)('keys');\nvar uid = __webpack_require__(34);\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC1rZXkuanM/NmIxZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjQ4LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4vX3NoYXJlZCcpKCdrZXlzJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi9fdWlkJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuIHNoYXJlZFtrZXldIHx8IChzaGFyZWRba2V5XSA9IHVpZChrZXkpKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc2hhcmVkLWtleS5qc1xuLy8gbW9kdWxlIGlkID0gNDhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///48\n"); +eval("module.exports = true;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2xpYnJhcnkuanM/M2I4OCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiI0OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gdHJ1ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19saWJyYXJ5LmpzXG4vLyBtb2R1bGUgaWQgPSA0OFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///48\n"); /***/ }), /* 49 */ /***/ (function(module, exports, __webpack_require__) { -eval("var global = __webpack_require__(9);\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function (key) {\n return store[key] || (store[key] = {});\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC5qcz83YmMwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxrREFBa0Q7QUFDbEQ7QUFDQSx1Q0FBdUM7QUFDdkMiLCJmaWxlIjoiNDkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgU0hBUkVEID0gJ19fY29yZS1qc19zaGFyZWRfXyc7XG52YXIgc3RvcmUgPSBnbG9iYWxbU0hBUkVEXSB8fCAoZ2xvYmFsW1NIQVJFRF0gPSB7fSk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuIHN0b3JlW2tleV0gfHwgKHN0b3JlW2tleV0gPSB7fSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC5qc1xuLy8gbW9kdWxlIGlkID0gNDlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///49\n"); +eval("// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(11);\nvar dPs = __webpack_require__(145);\nvar enumBugKeys = __webpack_require__(52);\nvar IE_PROTO = __webpack_require__(50)('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(65)('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(148).appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1jcmVhdGUuanM/NjI4NiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSIsImZpbGUiOiI0OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIDE5LjEuMi4yIC8gMTUuMi4zLjUgT2JqZWN0LmNyZWF0ZShPIFssIFByb3BlcnRpZXNdKVxudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgZFBzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwcycpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi9fZW51bS1idWcta2V5cycpO1xudmFyIElFX1BST1RPID0gcmVxdWlyZSgnLi9fc2hhcmVkLWtleScpKCdJRV9QUk9UTycpO1xudmFyIEVtcHR5ID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xudmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnO1xuXG4vLyBDcmVhdGUgb2JqZWN0IHdpdGggZmFrZSBgbnVsbGAgcHJvdG90eXBlOiB1c2UgaWZyYW1lIE9iamVjdCB3aXRoIGNsZWFyZWQgcHJvdG90eXBlXG52YXIgY3JlYXRlRGljdCA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gVGhyYXNoLCB3YXN0ZSBhbmQgc29kb215OiBJRSBHQyBidWdcbiAgdmFyIGlmcmFtZSA9IHJlcXVpcmUoJy4vX2RvbS1jcmVhdGUnKSgnaWZyYW1lJyk7XG4gIHZhciBpID0gZW51bUJ1Z0tleXMubGVuZ3RoO1xuICB2YXIgbHQgPSAnPCc7XG4gIHZhciBndCA9ICc+JztcbiAgdmFyIGlmcmFtZURvY3VtZW50O1xuICBpZnJhbWUuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgcmVxdWlyZSgnLi9faHRtbCcpLmFwcGVuZENoaWxkKGlmcmFtZSk7XG4gIGlmcmFtZS5zcmMgPSAnamF2YXNjcmlwdDonOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXNjcmlwdC11cmxcbiAgLy8gY3JlYXRlRGljdCA9IGlmcmFtZS5jb250ZW50V2luZG93Lk9iamVjdDtcbiAgLy8gaHRtbC5yZW1vdmVDaGlsZChpZnJhbWUpO1xuICBpZnJhbWVEb2N1bWVudCA9IGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50O1xuICBpZnJhbWVEb2N1bWVudC5vcGVuKCk7XG4gIGlmcmFtZURvY3VtZW50LndyaXRlKGx0ICsgJ3NjcmlwdCcgKyBndCArICdkb2N1bWVudC5GPU9iamVjdCcgKyBsdCArICcvc2NyaXB0JyArIGd0KTtcbiAgaWZyYW1lRG9jdW1lbnQuY2xvc2UoKTtcbiAgY3JlYXRlRGljdCA9IGlmcmFtZURvY3VtZW50LkY7XG4gIHdoaWxlIChpLS0pIGRlbGV0ZSBjcmVhdGVEaWN0W1BST1RPVFlQRV1bZW51bUJ1Z0tleXNbaV1dO1xuICByZXR1cm4gY3JlYXRlRGljdCgpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuY3JlYXRlIHx8IGZ1bmN0aW9uIGNyZWF0ZShPLCBQcm9wZXJ0aWVzKSB7XG4gIHZhciByZXN1bHQ7XG4gIGlmIChPICE9PSBudWxsKSB7XG4gICAgRW1wdHlbUFJPVE9UWVBFXSA9IGFuT2JqZWN0KE8pO1xuICAgIHJlc3VsdCA9IG5ldyBFbXB0eSgpO1xuICAgIEVtcHR5W1BST1RPVFlQRV0gPSBudWxsO1xuICAgIC8vIGFkZCBcIl9fcHJvdG9fX1wiIGZvciBPYmplY3QuZ2V0UHJvdG90eXBlT2YgcG9seWZpbGxcbiAgICByZXN1bHRbSUVfUFJPVE9dID0gTztcbiAgfSBlbHNlIHJlc3VsdCA9IGNyZWF0ZURpY3QoKTtcbiAgcmV0dXJuIFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCA/IHJlc3VsdCA6IGRQcyhyZXN1bHQsIFByb3BlcnRpZXMpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtY3JlYXRlLmpzXG4vLyBtb2R1bGUgaWQgPSA0OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///49\n"); /***/ }), /* 50 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0tYnVnLWtleXMuanM/YzY3NyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiI1MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIElFIDgtIGRvbid0IGVudW0gYnVnIGtleXNcbm1vZHVsZS5leHBvcnRzID0gKFxuICAnY29uc3RydWN0b3IsaGFzT3duUHJvcGVydHksaXNQcm90b3R5cGVPZixwcm9wZXJ0eUlzRW51bWVyYWJsZSx0b0xvY2FsZVN0cmluZyx0b1N0cmluZyx2YWx1ZU9mJ1xuKS5zcGxpdCgnLCcpO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0tYnVnLWtleXMuanNcbi8vIG1vZHVsZSBpZCA9IDUwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///50\n"); +eval("var shared = __webpack_require__(51)('keys');\nvar uid = __webpack_require__(33);\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC1rZXkuanM/NmIxZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjUwLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4vX3NoYXJlZCcpKCdrZXlzJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi9fdWlkJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuIHNoYXJlZFtrZXldIHx8IChzaGFyZWRba2V5XSA9IHVpZChrZXkpKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc2hhcmVkLWtleS5qc1xuLy8gbW9kdWxlIGlkID0gNTBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///50\n"); /***/ }), /* 51 */ /***/ (function(module, exports, __webpack_require__) { -eval("var def = __webpack_require__(10).f;\nvar has = __webpack_require__(12);\nvar TAG = __webpack_require__(4)('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NldC10by1zdHJpbmctdGFnLmpzPzdiYTkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0VBQW9FLGlDQUFpQztBQUNyRyIsImZpbGUiOiI1MS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBkZWYgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKS5mO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIFRBRyA9IHJlcXVpcmUoJy4vX3drcycpKCd0b1N0cmluZ1RhZycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwgdGFnLCBzdGF0KSB7XG4gIGlmIChpdCAmJiAhaGFzKGl0ID0gc3RhdCA/IGl0IDogaXQucHJvdG90eXBlLCBUQUcpKSBkZWYoaXQsIFRBRywgeyBjb25maWd1cmFibGU6IHRydWUsIHZhbHVlOiB0YWcgfSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NldC10by1zdHJpbmctdGFnLmpzXG4vLyBtb2R1bGUgaWQgPSA1MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///51\n"); +eval("var global = __webpack_require__(6);\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function (key) {\n return store[key] || (store[key] = {});\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC5qcz83YmMwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxrREFBa0Q7QUFDbEQ7QUFDQSx1Q0FBdUM7QUFDdkMiLCJmaWxlIjoiNTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgU0hBUkVEID0gJ19fY29yZS1qc19zaGFyZWRfXyc7XG52YXIgc3RvcmUgPSBnbG9iYWxbU0hBUkVEXSB8fCAoZ2xvYmFsW1NIQVJFRF0gPSB7fSk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuIHN0b3JlW2tleV0gfHwgKHN0b3JlW2tleV0gPSB7fSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC5qc1xuLy8gbW9kdWxlIGlkID0gNTFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///51\n"); /***/ }), /* 52 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -eval("var _isIterable = __webpack_require__(154);\n\nvar _getIterator = __webpack_require__(160);\n\nfunction _sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = _getIterator(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _slicedToArray(arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (_isIterable(Object(arr))) {\n return _sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n}\n\nmodule.exports = _slicedToArray;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zbGljZWRUb0FycmF5LmpzPzM0Y2YiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHdDQUF3QywrQkFBK0I7QUFDdkU7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiI1Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfaXNJdGVyYWJsZSA9IHJlcXVpcmUoXCIuLi9jb3JlLWpzL2lzLWl0ZXJhYmxlXCIpO1xuXG52YXIgX2dldEl0ZXJhdG9yID0gcmVxdWlyZShcIi4uL2NvcmUtanMvZ2V0LWl0ZXJhdG9yXCIpO1xuXG5mdW5jdGlvbiBfc2xpY2VJdGVyYXRvcihhcnIsIGkpIHtcbiAgdmFyIF9hcnIgPSBbXTtcbiAgdmFyIF9uID0gdHJ1ZTtcbiAgdmFyIF9kID0gZmFsc2U7XG4gIHZhciBfZSA9IHVuZGVmaW5lZDtcblxuICB0cnkge1xuICAgIGZvciAodmFyIF9pID0gX2dldEl0ZXJhdG9yKGFyciksIF9zOyAhKF9uID0gKF9zID0gX2kubmV4dCgpKS5kb25lKTsgX24gPSB0cnVlKSB7XG4gICAgICBfYXJyLnB1c2goX3MudmFsdWUpO1xuXG4gICAgICBpZiAoaSAmJiBfYXJyLmxlbmd0aCA9PT0gaSkgYnJlYWs7XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBfZCA9IHRydWU7XG4gICAgX2UgPSBlcnI7XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghX24gJiYgX2lbXCJyZXR1cm5cIl0gIT0gbnVsbCkgX2lbXCJyZXR1cm5cIl0oKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKF9kKSB0aHJvdyBfZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gX2Fycjtcbn1cblxuZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkoYXJyLCBpKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHtcbiAgICByZXR1cm4gYXJyO1xuICB9IGVsc2UgaWYgKF9pc0l0ZXJhYmxlKE9iamVjdChhcnIpKSkge1xuICAgIHJldHVybiBfc2xpY2VJdGVyYXRvcihhcnIsIGkpO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlXCIpO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX3NsaWNlZFRvQXJyYXk7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zbGljZWRUb0FycmF5LmpzXG4vLyBtb2R1bGUgaWQgPSA1MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///52\n"); +eval("// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0tYnVnLWtleXMuanM/YzY3NyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiI1Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIElFIDgtIGRvbid0IGVudW0gYnVnIGtleXNcbm1vZHVsZS5leHBvcnRzID0gKFxuICAnY29uc3RydWN0b3IsaGFzT3duUHJvcGVydHksaXNQcm90b3R5cGVPZixwcm9wZXJ0eUlzRW51bWVyYWJsZSx0b0xvY2FsZVN0cmluZyx0b1N0cmluZyx2YWx1ZU9mJ1xuKS5zcGxpdCgnLCcpO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0tYnVnLWtleXMuanNcbi8vIG1vZHVsZSBpZCA9IDUyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///52\n"); /***/ }), /* 53 */ /***/ (function(module, exports, __webpack_require__) { -eval("__webpack_require__(156);\nvar global = __webpack_require__(9);\nvar hide = __webpack_require__(19);\nvar Iterators = __webpack_require__(20);\nvar TO_STRING_TAG = __webpack_require__(4)('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvd2ViLmRvbS5pdGVyYWJsZS5qcz9mYWQzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxlQUFlLHlCQUF5QjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiNTMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuL2VzNi5hcnJheS5pdGVyYXRvcicpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuL19oaWRlJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG52YXIgVE9fU1RSSU5HX1RBRyA9IHJlcXVpcmUoJy4vX3drcycpKCd0b1N0cmluZ1RhZycpO1xuXG52YXIgRE9NSXRlcmFibGVzID0gKCdDU1NSdWxlTGlzdCxDU1NTdHlsZURlY2xhcmF0aW9uLENTU1ZhbHVlTGlzdCxDbGllbnRSZWN0TGlzdCxET01SZWN0TGlzdCxET01TdHJpbmdMaXN0LCcgK1xuICAnRE9NVG9rZW5MaXN0LERhdGFUcmFuc2Zlckl0ZW1MaXN0LEZpbGVMaXN0LEhUTUxBbGxDb2xsZWN0aW9uLEhUTUxDb2xsZWN0aW9uLEhUTUxGb3JtRWxlbWVudCxIVE1MU2VsZWN0RWxlbWVudCwnICtcbiAgJ01lZGlhTGlzdCxNaW1lVHlwZUFycmF5LE5hbWVkTm9kZU1hcCxOb2RlTGlzdCxQYWludFJlcXVlc3RMaXN0LFBsdWdpbixQbHVnaW5BcnJheSxTVkdMZW5ndGhMaXN0LFNWR051bWJlckxpc3QsJyArXG4gICdTVkdQYXRoU2VnTGlzdCxTVkdQb2ludExpc3QsU1ZHU3RyaW5nTGlzdCxTVkdUcmFuc2Zvcm1MaXN0LFNvdXJjZUJ1ZmZlckxpc3QsU3R5bGVTaGVldExpc3QsVGV4dFRyYWNrQ3VlTGlzdCwnICtcbiAgJ1RleHRUcmFja0xpc3QsVG91Y2hMaXN0Jykuc3BsaXQoJywnKTtcblxuZm9yICh2YXIgaSA9IDA7IGkgPCBET01JdGVyYWJsZXMubGVuZ3RoOyBpKyspIHtcbiAgdmFyIE5BTUUgPSBET01JdGVyYWJsZXNbaV07XG4gIHZhciBDb2xsZWN0aW9uID0gZ2xvYmFsW05BTUVdO1xuICB2YXIgcHJvdG8gPSBDb2xsZWN0aW9uICYmIENvbGxlY3Rpb24ucHJvdG90eXBlO1xuICBpZiAocHJvdG8gJiYgIXByb3RvW1RPX1NUUklOR19UQUddKSBoaWRlKHByb3RvLCBUT19TVFJJTkdfVEFHLCBOQU1FKTtcbiAgSXRlcmF0b3JzW05BTUVdID0gSXRlcmF0b3JzLkFycmF5O1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvd2ViLmRvbS5pdGVyYWJsZS5qc1xuLy8gbW9kdWxlIGlkID0gNTNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///53\n"); +eval("var def = __webpack_require__(7).f;\nvar has = __webpack_require__(9);\nvar TAG = __webpack_require__(2)('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NldC10by1zdHJpbmctdGFnLmpzPzdiYTkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0VBQW9FLGlDQUFpQztBQUNyRyIsImZpbGUiOiI1My5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBkZWYgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKS5mO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIFRBRyA9IHJlcXVpcmUoJy4vX3drcycpKCd0b1N0cmluZ1RhZycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwgdGFnLCBzdGF0KSB7XG4gIGlmIChpdCAmJiAhaGFzKGl0ID0gc3RhdCA/IGl0IDogaXQucHJvdG90eXBlLCBUQUcpKSBkZWYoaXQsIFRBRywgeyBjb25maWd1cmFibGU6IHRydWUsIHZhbHVlOiB0YWcgfSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NldC10by1zdHJpbmctdGFnLmpzXG4vLyBtb2R1bGUgaWQgPSA1M1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///53\n"); /***/ }), /* 54 */ /***/ (function(module, exports, __webpack_require__) { -eval("module.exports = __webpack_require__(163);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvY29yZS1qcy9vYmplY3QvZW50cmllcy5qcz8yZjEzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjU0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9lbnRyaWVzXCIpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2NvcmUtanMvb2JqZWN0L2VudHJpZXMuanNcbi8vIG1vZHVsZSBpZCA9IDU0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///54\n"); +eval("var _isIterable = __webpack_require__(154);\n\nvar _getIterator = __webpack_require__(160);\n\nfunction _sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = _getIterator(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _slicedToArray(arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (_isIterable(Object(arr))) {\n return _sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n}\n\nmodule.exports = _slicedToArray;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zbGljZWRUb0FycmF5LmpzPzM0Y2YiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHdDQUF3QywrQkFBK0I7QUFDdkU7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiI1NC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfaXNJdGVyYWJsZSA9IHJlcXVpcmUoXCIuLi9jb3JlLWpzL2lzLWl0ZXJhYmxlXCIpO1xuXG52YXIgX2dldEl0ZXJhdG9yID0gcmVxdWlyZShcIi4uL2NvcmUtanMvZ2V0LWl0ZXJhdG9yXCIpO1xuXG5mdW5jdGlvbiBfc2xpY2VJdGVyYXRvcihhcnIsIGkpIHtcbiAgdmFyIF9hcnIgPSBbXTtcbiAgdmFyIF9uID0gdHJ1ZTtcbiAgdmFyIF9kID0gZmFsc2U7XG4gIHZhciBfZSA9IHVuZGVmaW5lZDtcblxuICB0cnkge1xuICAgIGZvciAodmFyIF9pID0gX2dldEl0ZXJhdG9yKGFyciksIF9zOyAhKF9uID0gKF9zID0gX2kubmV4dCgpKS5kb25lKTsgX24gPSB0cnVlKSB7XG4gICAgICBfYXJyLnB1c2goX3MudmFsdWUpO1xuXG4gICAgICBpZiAoaSAmJiBfYXJyLmxlbmd0aCA9PT0gaSkgYnJlYWs7XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBfZCA9IHRydWU7XG4gICAgX2UgPSBlcnI7XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghX24gJiYgX2lbXCJyZXR1cm5cIl0gIT0gbnVsbCkgX2lbXCJyZXR1cm5cIl0oKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKF9kKSB0aHJvdyBfZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gX2Fycjtcbn1cblxuZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkoYXJyLCBpKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHtcbiAgICByZXR1cm4gYXJyO1xuICB9IGVsc2UgaWYgKF9pc0l0ZXJhYmxlKE9iamVjdChhcnIpKSkge1xuICAgIHJldHVybiBfc2xpY2VJdGVyYXRvcihhcnIsIGkpO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlXCIpO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX3NsaWNlZFRvQXJyYXk7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zbGljZWRUb0FycmF5LmpzXG4vLyBtb2R1bGUgaWQgPSA1NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///54\n"); /***/ }), /* 55 */ /***/ (function(module, exports, __webpack_require__) { -eval("var isFunction = __webpack_require__(67),\n isLength = __webpack_require__(87);\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzQXJyYXlMaWtlLmpzPzZjNjciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiI1NS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBpc0Z1bmN0aW9uID0gcmVxdWlyZSgnLi9pc0Z1bmN0aW9uJyksXG4gICAgaXNMZW5ndGggPSByZXF1aXJlKCcuL2lzTGVuZ3RoJyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYXJyYXktbGlrZS4gQSB2YWx1ZSBpcyBjb25zaWRlcmVkIGFycmF5LWxpa2UgaWYgaXQnc1xuICogbm90IGEgZnVuY3Rpb24gYW5kIGhhcyBhIGB2YWx1ZS5sZW5ndGhgIHRoYXQncyBhbiBpbnRlZ2VyIGdyZWF0ZXIgdGhhbiBvclxuICogZXF1YWwgdG8gYDBgIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gYE51bWJlci5NQVhfU0FGRV9JTlRFR0VSYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhcnJheS1saWtlLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJyYXlMaWtlKGRvY3VtZW50LmJvZHkuY2hpbGRyZW4pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoJ2FiYycpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXlMaWtlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgIWlzRnVuY3Rpb24odmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzQXJyYXlMaWtlO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzQXJyYXlMaWtlLmpzXG4vLyBtb2R1bGUgaWQgPSA1NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///55\n"); +eval("__webpack_require__(156);\nvar global = __webpack_require__(6);\nvar hide = __webpack_require__(16);\nvar Iterators = __webpack_require__(17);\nvar TO_STRING_TAG = __webpack_require__(2)('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvd2ViLmRvbS5pdGVyYWJsZS5qcz9mYWQzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxlQUFlLHlCQUF5QjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiNTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuL2VzNi5hcnJheS5pdGVyYXRvcicpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuL19oaWRlJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG52YXIgVE9fU1RSSU5HX1RBRyA9IHJlcXVpcmUoJy4vX3drcycpKCd0b1N0cmluZ1RhZycpO1xuXG52YXIgRE9NSXRlcmFibGVzID0gKCdDU1NSdWxlTGlzdCxDU1NTdHlsZURlY2xhcmF0aW9uLENTU1ZhbHVlTGlzdCxDbGllbnRSZWN0TGlzdCxET01SZWN0TGlzdCxET01TdHJpbmdMaXN0LCcgK1xuICAnRE9NVG9rZW5MaXN0LERhdGFUcmFuc2Zlckl0ZW1MaXN0LEZpbGVMaXN0LEhUTUxBbGxDb2xsZWN0aW9uLEhUTUxDb2xsZWN0aW9uLEhUTUxGb3JtRWxlbWVudCxIVE1MU2VsZWN0RWxlbWVudCwnICtcbiAgJ01lZGlhTGlzdCxNaW1lVHlwZUFycmF5LE5hbWVkTm9kZU1hcCxOb2RlTGlzdCxQYWludFJlcXVlc3RMaXN0LFBsdWdpbixQbHVnaW5BcnJheSxTVkdMZW5ndGhMaXN0LFNWR051bWJlckxpc3QsJyArXG4gICdTVkdQYXRoU2VnTGlzdCxTVkdQb2ludExpc3QsU1ZHU3RyaW5nTGlzdCxTVkdUcmFuc2Zvcm1MaXN0LFNvdXJjZUJ1ZmZlckxpc3QsU3R5bGVTaGVldExpc3QsVGV4dFRyYWNrQ3VlTGlzdCwnICtcbiAgJ1RleHRUcmFja0xpc3QsVG91Y2hMaXN0Jykuc3BsaXQoJywnKTtcblxuZm9yICh2YXIgaSA9IDA7IGkgPCBET01JdGVyYWJsZXMubGVuZ3RoOyBpKyspIHtcbiAgdmFyIE5BTUUgPSBET01JdGVyYWJsZXNbaV07XG4gIHZhciBDb2xsZWN0aW9uID0gZ2xvYmFsW05BTUVdO1xuICB2YXIgcHJvdG8gPSBDb2xsZWN0aW9uICYmIENvbGxlY3Rpb24ucHJvdG90eXBlO1xuICBpZiAocHJvdG8gJiYgIXByb3RvW1RPX1NUUklOR19UQUddKSBoaWRlKHByb3RvLCBUT19TVFJJTkdfVEFHLCBOQU1FKTtcbiAgSXRlcmF0b3JzW05BTUVdID0gSXRlcmF0b3JzLkFycmF5O1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvd2ViLmRvbS5pdGVyYWJsZS5qc1xuLy8gbW9kdWxlIGlkID0gNTVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///55\n"); /***/ }), /* 56 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("exports.f = Object.getOwnPropertySymbols;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BzLmpzP2Q2NDQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiNTYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnRzLmYgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BzLmpzXG4vLyBtb2R1bGUgaWQgPSA1NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///56\n"); +eval("module.exports = __webpack_require__(163);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvY29yZS1qcy9vYmplY3QvZW50cmllcy5qcz8yZjEzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjU2LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9lbnRyaWVzXCIpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2NvcmUtanMvb2JqZWN0L2VudHJpZXMuanNcbi8vIG1vZHVsZSBpZCA9IDU2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///56\n"); /***/ }), /* 57 */ /***/ (function(module, exports, __webpack_require__) { -eval("exports.f = __webpack_require__(4);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy1leHQuanM/MmExZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiI1Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydHMuZiA9IHJlcXVpcmUoJy4vX3drcycpO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy1leHQuanNcbi8vIG1vZHVsZSBpZCA9IDU3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///57\n"); +eval("var isFunction = __webpack_require__(71),\n isLength = __webpack_require__(91);\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzQXJyYXlMaWtlLmpzPzZjNjciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiI1Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBpc0Z1bmN0aW9uID0gcmVxdWlyZSgnLi9pc0Z1bmN0aW9uJyksXG4gICAgaXNMZW5ndGggPSByZXF1aXJlKCcuL2lzTGVuZ3RoJyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYXJyYXktbGlrZS4gQSB2YWx1ZSBpcyBjb25zaWRlcmVkIGFycmF5LWxpa2UgaWYgaXQnc1xuICogbm90IGEgZnVuY3Rpb24gYW5kIGhhcyBhIGB2YWx1ZS5sZW5ndGhgIHRoYXQncyBhbiBpbnRlZ2VyIGdyZWF0ZXIgdGhhbiBvclxuICogZXF1YWwgdG8gYDBgIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gYE51bWJlci5NQVhfU0FGRV9JTlRFR0VSYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhcnJheS1saWtlLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJyYXlMaWtlKGRvY3VtZW50LmJvZHkuY2hpbGRyZW4pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoJ2FiYycpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXlMaWtlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgIWlzRnVuY3Rpb24odmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzQXJyYXlMaWtlO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzQXJyYXlMaWtlLmpzXG4vLyBtb2R1bGUgaWQgPSA1N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///57\n"); /***/ }), /* 58 */ /***/ (function(module, exports, __webpack_require__) { -eval("var global = __webpack_require__(9);\nvar core = __webpack_require__(2);\nvar LIBRARY = __webpack_require__(46);\nvar wksExt = __webpack_require__(57);\nvar defineProperty = __webpack_require__(10).f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy1kZWZpbmUuanM/NzJiOSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQsc0JBQXNCO0FBQ2hGLGtGQUFrRix3QkFBd0I7QUFDMUciLCJmaWxlIjoiNTguanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJy4vX2NvcmUnKTtcbnZhciBMSUJSQVJZID0gcmVxdWlyZSgnLi9fbGlicmFyeScpO1xudmFyIHdrc0V4dCA9IHJlcXVpcmUoJy4vX3drcy1leHQnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHZhciAkU3ltYm9sID0gY29yZS5TeW1ib2wgfHwgKGNvcmUuU3ltYm9sID0gTElCUkFSWSA/IHt9IDogZ2xvYmFsLlN5bWJvbCB8fCB7fSk7XG4gIGlmIChuYW1lLmNoYXJBdCgwKSAhPSAnXycgJiYgIShuYW1lIGluICRTeW1ib2wpKSBkZWZpbmVQcm9wZXJ0eSgkU3ltYm9sLCBuYW1lLCB7IHZhbHVlOiB3a3NFeHQuZihuYW1lKSB9KTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fd2tzLWRlZmluZS5qc1xuLy8gbW9kdWxlIGlkID0gNThcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///58\n"); +"use strict"; +eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(207);\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(25));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(59));\n\n/**\n * @module Gutenberg\n * @description The Gutenberg block for a shortcode placeholder\n */\nvar ShortcodeBlock =\n/*#__PURE__*/\nfunction () {\n function ShortcodeBlock(config) {\n (0, _classCallCheck2.default)(this, ShortcodeBlock);\n this.config = config;\n this.id = this.config.name;\n this.title = this.config.title;\n /**\n * An icon property should be specified to make it easier to identify a block.\n * These can be any of WordPress’ Dashicons, or a custom svg element.\n * @see https://developer.wordpress.org/resource/dashicons/\n */\n\n this.icon = this.config.icon;\n /**\n * Blocks are grouped into categories to help with browsing and discovery.\n * The categories provided by core are common, embed, formatting, layout, and widgets.\n */\n\n this.category = this.config.category;\n /**\n * Additional keywords to surface this block via search input. Limited to 3.\n */\n\n this.keywords = this.config.keywords;\n this.supports = {\n html: false\n };\n this.attributes = {\n shortcode: {\n type: 'string',\n default: \"[\".concat(this.config.shortcode, \"]\")\n }\n };\n this.edit = this.edit.bind(this);\n this.save = this.save.bind(this);\n }\n /**\n * The edit function describes the structure of the block in the context of the editor.\n * This represents what the editor will render when the block is used.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#edit\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n\n\n (0, _createClass2.default)(ShortcodeBlock, [{\n key: \"edit\",\n value: function edit(props) {\n var setAttributes = props.setAttributes;\n var titleKey = \"\".concat(this.id, \"-shortcode-title\");\n var imgKey = \"\".concat(this.id, \"-shortcode-preview\");\n setAttributes({\n shortcode: \"[\".concat(this.config.shortcode, \"]\")\n });\n return [wp.element.createElement(\"h2\", {\n className: props.className,\n key: titleKey\n }, this.config.block_html.title), wp.element.createElement(\"img\", {\n src: this.config.block_html.image,\n alt: this.title,\n className: props.className,\n key: imgKey\n })];\n }\n /**\n * The save function defines the way in which the different attributes should be combined\n * into the final markup, which is then serialized by Gutenberg into `post_content`.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#save\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n\n }, {\n key: \"save\",\n value: function save(props) {\n return props.attributes.shortcode;\n }\n }]);\n return ShortcodeBlock;\n}();\n\nexports.default = ShortcodeBlock;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3Mvc2hvcnRjb2RlLWJsb2NrL3Nob3J0Y29kZS1ibG9jay5qcz85MjhmIl0sIm5hbWVzIjpbIlNob3J0Y29kZUJsb2NrIiwiY29uZmlnIiwiaWQiLCJuYW1lIiwidGl0bGUiLCJpY29uIiwiY2F0ZWdvcnkiLCJrZXl3b3JkcyIsInN1cHBvcnRzIiwiaHRtbCIsImF0dHJpYnV0ZXMiLCJzaG9ydGNvZGUiLCJ0eXBlIiwiZGVmYXVsdCIsImVkaXQiLCJiaW5kIiwic2F2ZSIsInByb3BzIiwic2V0QXR0cmlidXRlcyIsInRpdGxlS2V5IiwiaW1nS2V5IiwiY2xhc3NOYW1lIiwiYmxvY2tfaHRtbCIsImltYWdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7OztJQUtxQkEsYzs7O0FBRXBCLDBCQUFZQyxNQUFaLEVBQW9CO0FBQUE7QUFDbkIsU0FBS0EsTUFBTCxHQUFjQSxNQUFkO0FBQ0EsU0FBS0MsRUFBTCxHQUFVLEtBQUtELE1BQUwsQ0FBWUUsSUFBdEI7QUFDQSxTQUFLQyxLQUFMLEdBQWEsS0FBS0gsTUFBTCxDQUFZRyxLQUF6QjtBQUVBOzs7Ozs7QUFLQSxTQUFLQyxJQUFMLEdBQVksS0FBS0osTUFBTCxDQUFZSSxJQUF4QjtBQUVBOzs7OztBQUlBLFNBQUtDLFFBQUwsR0FBZ0IsS0FBS0wsTUFBTCxDQUFZSyxRQUE1QjtBQUVBOzs7O0FBR0EsU0FBS0MsUUFBTCxHQUFnQixLQUFLTixNQUFMLENBQVlNLFFBQTVCO0FBRUEsU0FBS0MsUUFBTCxHQUFnQjtBQUNmQyxZQUFNO0FBRFMsS0FBaEI7QUFJQSxTQUFLQyxVQUFMLEdBQWtCO0FBQ2pCQyxpQkFBVztBQUNWQyxjQUFNLFFBREk7QUFFVkMsNEJBQWEsS0FBS1osTUFBTCxDQUFZVSxTQUF6QjtBQUZVO0FBRE0sS0FBbEI7QUFPQSxTQUFLRyxJQUFMLEdBQVksS0FBS0EsSUFBTCxDQUFVQyxJQUFWLENBQWUsSUFBZixDQUFaO0FBQ0EsU0FBS0MsSUFBTCxHQUFZLEtBQUtBLElBQUwsQ0FBVUQsSUFBVixDQUFlLElBQWYsQ0FBWjtBQUNBO0FBRUQ7Ozs7Ozs7Ozs7Ozt5QkFRS0UsSyxFQUFPO0FBQUEsVUFDSEMsYUFERyxHQUNlRCxLQURmLENBQ0hDLGFBREc7QUFFWCxVQUFNQyxxQkFBYyxLQUFLakIsRUFBbkIscUJBQU47QUFDQSxVQUFNa0IsbUJBQVksS0FBS2xCLEVBQWpCLHVCQUFOO0FBRUFnQixvQkFBYztBQUNiUCw4QkFBZSxLQUFLVixNQUFMLENBQVlVLFNBQTNCO0FBRGEsT0FBZDtBQUlBLGFBQU8sQ0FDTjtBQUNDLG1CQUFXTSxNQUFNSSxTQURsQjtBQUVDLGFBQUtGO0FBRk4sU0FJRSxLQUFLbEIsTUFBTCxDQUFZcUIsVUFBWixDQUF1QmxCLEtBSnpCLENBRE0sRUFPTjtBQUNDLGFBQUssS0FBS0gsTUFBTCxDQUFZcUIsVUFBWixDQUF1QkMsS0FEN0I7QUFFQyxhQUFLLEtBQUtuQixLQUZYO0FBR0MsbUJBQVdhLE1BQU1JLFNBSGxCO0FBSUMsYUFBS0Q7QUFKTixRQVBNLENBQVA7QUFjQTtBQUVEOzs7Ozs7Ozs7Ozt5QkFRS0gsSyxFQUFPO0FBQ1gsYUFBT0EsTUFBTVAsVUFBTixDQUFpQkMsU0FBeEI7QUFDQSIsImZpbGUiOiI1OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBHdXRlbmJlcmdcbiAqIEBkZXNjcmlwdGlvbiBUaGUgR3V0ZW5iZXJnIGJsb2NrIGZvciBhIHNob3J0Y29kZSBwbGFjZWhvbGRlclxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNob3J0Y29kZUJsb2NrIHtcblxuXHRjb25zdHJ1Y3Rvcihjb25maWcpIHtcblx0XHR0aGlzLmNvbmZpZyA9IGNvbmZpZztcblx0XHR0aGlzLmlkID0gdGhpcy5jb25maWcubmFtZTtcblx0XHR0aGlzLnRpdGxlID0gdGhpcy5jb25maWcudGl0bGU7XG5cblx0XHQvKipcblx0XHQgKiBBbiBpY29uIHByb3BlcnR5IHNob3VsZCBiZSBzcGVjaWZpZWQgdG8gbWFrZSBpdCBlYXNpZXIgdG8gaWRlbnRpZnkgYSBibG9jay5cblx0XHQgKiBUaGVzZSBjYW4gYmUgYW55IG9mIFdvcmRQcmVzc+KAmSBEYXNoaWNvbnMsIG9yIGEgY3VzdG9tIHN2ZyBlbGVtZW50LlxuXHRcdCAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIud29yZHByZXNzLm9yZy9yZXNvdXJjZS9kYXNoaWNvbnMvXG5cdFx0ICovXG5cdFx0dGhpcy5pY29uID0gdGhpcy5jb25maWcuaWNvbjtcblxuXHRcdC8qKlxuXHRcdCAqIEJsb2NrcyBhcmUgZ3JvdXBlZCBpbnRvIGNhdGVnb3JpZXMgdG8gaGVscCB3aXRoIGJyb3dzaW5nIGFuZCBkaXNjb3ZlcnkuXG5cdFx0ICogVGhlIGNhdGVnb3JpZXMgcHJvdmlkZWQgYnkgY29yZSBhcmUgY29tbW9uLCBlbWJlZCwgZm9ybWF0dGluZywgbGF5b3V0LCBhbmQgd2lkZ2V0cy5cblx0XHQgKi9cblx0XHR0aGlzLmNhdGVnb3J5ID0gdGhpcy5jb25maWcuY2F0ZWdvcnk7XG5cblx0XHQvKipcblx0XHQgKiBBZGRpdGlvbmFsIGtleXdvcmRzIHRvIHN1cmZhY2UgdGhpcyBibG9jayB2aWEgc2VhcmNoIGlucHV0LiBMaW1pdGVkIHRvIDMuXG5cdFx0ICovXG5cdFx0dGhpcy5rZXl3b3JkcyA9IHRoaXMuY29uZmlnLmtleXdvcmRzO1xuXG5cdFx0dGhpcy5zdXBwb3J0cyA9IHtcblx0XHRcdGh0bWw6IGZhbHNlLFxuXHRcdH07XG5cblx0XHR0aGlzLmF0dHJpYnV0ZXMgPSB7XG5cdFx0XHRzaG9ydGNvZGU6IHtcblx0XHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHRcdGRlZmF1bHQ6IGBbJHt0aGlzLmNvbmZpZy5zaG9ydGNvZGV9XWAsXG5cdFx0XHR9LFxuXHRcdH07XG5cblx0XHR0aGlzLmVkaXQgPSB0aGlzLmVkaXQuYmluZCh0aGlzKTtcblx0XHR0aGlzLnNhdmUgPSB0aGlzLnNhdmUuYmluZCh0aGlzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgZWRpdCBmdW5jdGlvbiBkZXNjcmliZXMgdGhlIHN0cnVjdHVyZSBvZiB0aGUgYmxvY2sgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGVkaXRvci5cblx0ICogVGhpcyByZXByZXNlbnRzIHdoYXQgdGhlIGVkaXRvciB3aWxsIHJlbmRlciB3aGVuIHRoZSBibG9jayBpcyB1c2VkLlxuXHQgKiBAc2VlIGh0dHBzOi8vd29yZHByZXNzLm9yZy9ndXRlbmJlcmcvaGFuZGJvb2svYmxvY2stZWRpdC1zYXZlLyNlZGl0XG5cdCAqXG5cdCAqIEBwYXJhbSAge09iamVjdH0gW3Byb3BzXSBQcm9wZXJ0aWVzIHBhc3NlZCBmcm9tIHRoZSBlZGl0b3IuXG5cdCAqIEByZXR1cm4ge0VsZW1lbnR9ICAgICAgICBFbGVtZW50IHRvIHJlbmRlci5cblx0ICovXG5cdGVkaXQocHJvcHMpIHtcblx0XHRjb25zdCB7IHNldEF0dHJpYnV0ZXMgfSA9IHByb3BzO1xuXHRcdGNvbnN0IHRpdGxlS2V5ID0gYCR7dGhpcy5pZH0tc2hvcnRjb2RlLXRpdGxlYDtcblx0XHRjb25zdCBpbWdLZXkgPSBgJHt0aGlzLmlkfS1zaG9ydGNvZGUtcHJldmlld2A7XG5cblx0XHRzZXRBdHRyaWJ1dGVzKHtcblx0XHRcdHNob3J0Y29kZTogYFske3RoaXMuY29uZmlnLnNob3J0Y29kZX1dYCxcblx0XHR9KTtcblxuXHRcdHJldHVybiBbXG5cdFx0XHQ8aDJcblx0XHRcdFx0Y2xhc3NOYW1lPXtwcm9wcy5jbGFzc05hbWV9XG5cdFx0XHRcdGtleT17dGl0bGVLZXl9XG5cdFx0XHQ+XG5cdFx0XHRcdHt0aGlzLmNvbmZpZy5ibG9ja19odG1sLnRpdGxlfVxuXHRcdFx0PC9oMj4sXG5cdFx0XHQ8aW1nXG5cdFx0XHRcdHNyYz17dGhpcy5jb25maWcuYmxvY2tfaHRtbC5pbWFnZX1cblx0XHRcdFx0YWx0PXt0aGlzLnRpdGxlfVxuXHRcdFx0XHRjbGFzc05hbWU9e3Byb3BzLmNsYXNzTmFtZX1cblx0XHRcdFx0a2V5PXtpbWdLZXl9XG5cdFx0XHQvPixcblx0XHRdO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBzYXZlIGZ1bmN0aW9uIGRlZmluZXMgdGhlIHdheSBpbiB3aGljaCB0aGUgZGlmZmVyZW50IGF0dHJpYnV0ZXMgc2hvdWxkIGJlIGNvbWJpbmVkXG5cdCAqIGludG8gdGhlIGZpbmFsIG1hcmt1cCwgd2hpY2ggaXMgdGhlbiBzZXJpYWxpemVkIGJ5IEd1dGVuYmVyZyBpbnRvIGBwb3N0X2NvbnRlbnRgLlxuXHQgKiBAc2VlIGh0dHBzOi8vd29yZHByZXNzLm9yZy9ndXRlbmJlcmcvaGFuZGJvb2svYmxvY2stZWRpdC1zYXZlLyNzYXZlXG5cdCAqXG5cdCAqIEBwYXJhbSAge09iamVjdH0gW3Byb3BzXSBQcm9wZXJ0aWVzIHBhc3NlZCBmcm9tIHRoZSBlZGl0b3IuXG5cdCAqIEByZXR1cm4ge0VsZW1lbnR9IEVsZW1lbnQgdG8gcmVuZGVyLlxuXHQgKi9cblx0c2F2ZShwcm9wcykge1xuXHRcdHJldHVybiBwcm9wcy5hdHRyaWJ1dGVzLnNob3J0Y29kZTtcblx0fVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL2pzL3NyYy9hZG1pbi9ndXRlbmJlcmcvYmxvY2tzL3Nob3J0Y29kZS1ibG9jay9zaG9ydGNvZGUtYmxvY2suanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///58\n"); /***/ }), /* 59 */ /***/ (function(module, exports, __webpack_require__) { -eval("// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(37);\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lvYmplY3QuanM/MzE0ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiNTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIGFuZCBub24tZW51bWVyYWJsZSBvbGQgVjggc3RyaW5nc1xudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QoJ3onKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKSA/IE9iamVjdCA6IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gY29mKGl0KSA9PSAnU3RyaW5nJyA/IGl0LnNwbGl0KCcnKSA6IE9iamVjdChpdCk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lvYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDU5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///59\n"); +eval("var _Object$defineProperty = __webpack_require__(67);\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n\n _Object$defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcy5qcz8wYmRiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0EsaUJBQWlCLGtCQUFrQjtBQUNuQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiI1OS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfT2JqZWN0JGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZShcIi4uL2NvcmUtanMvb2JqZWN0L2RlZmluZS1wcm9wZXJ0eVwiKTtcblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG5cbiAgICBfT2JqZWN0JGRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gIGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgcmV0dXJuIENvbnN0cnVjdG9yO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9jcmVhdGVDbGFzcztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzLmpzXG4vLyBtb2R1bGUgaWQgPSA1OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///59\n"); /***/ }), /* 60 */ /***/ (function(module, exports, __webpack_require__) { -eval("module.exports = !__webpack_require__(13) && !__webpack_require__(18)(function () {\n return Object.defineProperty(__webpack_require__(61)('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2llOC1kb20tZGVmaW5lLmpzPzQ5ZjAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSxxRUFBc0UsbUJBQW1CLFVBQVUsRUFBRSxFQUFFO0FBQ3ZHLENBQUMiLCJmaWxlIjoiNjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9ICFyZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpICYmICFyZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZXF1aXJlKCcuL19kb20tY3JlYXRlJykoJ2RpdicpLCAnYScsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9IH0pLmEgIT0gNztcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2llOC1kb20tZGVmaW5lLmpzXG4vLyBtb2R1bGUgaWQgPSA2MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///60\n"); +eval("exports.f = __webpack_require__(2);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy1leHQuanM/MmExZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiI2MC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydHMuZiA9IHJlcXVpcmUoJy4vX3drcycpO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy1leHQuanNcbi8vIG1vZHVsZSBpZCA9IDYwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///60\n"); /***/ }), /* 61 */ /***/ (function(module, exports, __webpack_require__) { -eval("var isObject = __webpack_require__(17);\nvar document = __webpack_require__(9).document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RvbS1jcmVhdGUuanM/MzhkZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiI2MS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIGRvY3VtZW50ID0gcmVxdWlyZSgnLi9fZ2xvYmFsJykuZG9jdW1lbnQ7XG4vLyB0eXBlb2YgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBpcyAnb2JqZWN0JyBpbiBvbGQgSUVcbnZhciBpcyA9IGlzT2JqZWN0KGRvY3VtZW50KSAmJiBpc09iamVjdChkb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpcyA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoaXQpIDoge307XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RvbS1jcmVhdGUuanNcbi8vIG1vZHVsZSBpZCA9IDYxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///61\n"); +eval("var global = __webpack_require__(6);\nvar core = __webpack_require__(1);\nvar LIBRARY = __webpack_require__(48);\nvar wksExt = __webpack_require__(60);\nvar defineProperty = __webpack_require__(7).f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy1kZWZpbmUuanM/NzJiOSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQsc0JBQXNCO0FBQ2hGLGtGQUFrRix3QkFBd0I7QUFDMUciLCJmaWxlIjoiNjEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJy4vX2NvcmUnKTtcbnZhciBMSUJSQVJZID0gcmVxdWlyZSgnLi9fbGlicmFyeScpO1xudmFyIHdrc0V4dCA9IHJlcXVpcmUoJy4vX3drcy1leHQnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHZhciAkU3ltYm9sID0gY29yZS5TeW1ib2wgfHwgKGNvcmUuU3ltYm9sID0gTElCUkFSWSA/IHt9IDogZ2xvYmFsLlN5bWJvbCB8fCB7fSk7XG4gIGlmIChuYW1lLmNoYXJBdCgwKSAhPSAnXycgJiYgIShuYW1lIGluICRTeW1ib2wpKSBkZWZpbmVQcm9wZXJ0eSgkU3ltYm9sLCBuYW1lLCB7IHZhbHVlOiB3a3NFeHQuZihuYW1lKSB9KTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fd2tzLWRlZmluZS5qc1xuLy8gbW9kdWxlIGlkID0gNjFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///61\n"); /***/ }), /* 62 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -eval("// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(6);\nvar core = __webpack_require__(2);\nvar fails = __webpack_require__(18);\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1zYXAuanM/YmFhNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQSxxREFBcUQsT0FBTyxFQUFFO0FBQzlEIiwiZmlsZSI6IjYyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gbW9zdCBPYmplY3QgbWV0aG9kcyBieSBFUzYgc2hvdWxkIGFjY2VwdCBwcmltaXRpdmVzXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIGNvcmUgPSByZXF1aXJlKCcuL19jb3JlJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuL19mYWlscycpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoS0VZLCBleGVjKSB7XG4gIHZhciBmbiA9IChjb3JlLk9iamVjdCB8fCB7fSlbS0VZXSB8fCBPYmplY3RbS0VZXTtcbiAgdmFyIGV4cCA9IHt9O1xuICBleHBbS0VZXSA9IGV4ZWMoZm4pO1xuICAkZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqIGZhaWxzKGZ1bmN0aW9uICgpIHsgZm4oMSk7IH0pLCAnT2JqZWN0JywgZXhwKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LXNhcC5qc1xuLy8gbW9kdWxlIGlkID0gNjJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///62\n"); +eval("exports.f = Object.getOwnPropertySymbols;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BzLmpzP2Q2NDQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiNjIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnRzLmYgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BzLmpzXG4vLyBtb2R1bGUgaWQgPSA2MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///62\n"); /***/ }), /* 63 */ /***/ (function(module, exports, __webpack_require__) { -eval("module.exports = __webpack_require__(107);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvY29yZS1qcy9vYmplY3QvZGVmaW5lLXByb3BlcnR5LmpzPzQzNDAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiNjMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2RlZmluZS1wcm9wZXJ0eVwiKTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9jb3JlLWpzL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanNcbi8vIG1vZHVsZSBpZCA9IDYzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///63\n"); +eval("// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(39);\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lvYmplY3QuanM/MzE0ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiNjMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIGFuZCBub24tZW51bWVyYWJsZSBvbGQgVjggc3RyaW5nc1xudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QoJ3onKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKSA/IE9iamVjdCA6IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gY29mKGl0KSA9PSAnU3RyaW5nJyA/IGl0LnNwbGl0KCcnKSA6IE9iamVjdChpdCk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lvYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDYzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///63\n"); /***/ }), /* 64 */ /***/ (function(module, exports, __webpack_require__) { -eval("var identity = __webpack_require__(65),\n overRest = __webpack_require__(110),\n setToString = __webpack_require__(112);\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlUmVzdC5qcz82MjRjIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsU0FBUztBQUNwQixXQUFXLE9BQU87QUFDbEIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjY0LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGlkZW50aXR5ID0gcmVxdWlyZSgnLi9pZGVudGl0eScpLFxuICAgIG92ZXJSZXN0ID0gcmVxdWlyZSgnLi9fb3ZlclJlc3QnKSxcbiAgICBzZXRUb1N0cmluZyA9IHJlcXVpcmUoJy4vX3NldFRvU3RyaW5nJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucmVzdGAgd2hpY2ggZG9lc24ndCB2YWxpZGF0ZSBvciBjb2VyY2UgYXJndW1lbnRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhcHBseSBhIHJlc3QgcGFyYW1ldGVyIHRvLlxuICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD1mdW5jLmxlbmd0aC0xXSBUaGUgc3RhcnQgcG9zaXRpb24gb2YgdGhlIHJlc3QgcGFyYW1ldGVyLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGJhc2VSZXN0KGZ1bmMsIHN0YXJ0KSB7XG4gIHJldHVybiBzZXRUb1N0cmluZyhvdmVyUmVzdChmdW5jLCBzdGFydCwgaWRlbnRpdHkpLCBmdW5jICsgJycpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VSZXN0O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlUmVzdC5qc1xuLy8gbW9kdWxlIGlkID0gNjRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///64\n"); +eval("module.exports = !__webpack_require__(10) && !__webpack_require__(15)(function () {\n return Object.defineProperty(__webpack_require__(65)('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2llOC1kb20tZGVmaW5lLmpzPzQ5ZjAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSxxRUFBc0UsbUJBQW1CLFVBQVUsRUFBRSxFQUFFO0FBQ3ZHLENBQUMiLCJmaWxlIjoiNjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9ICFyZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpICYmICFyZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZXF1aXJlKCcuL19kb20tY3JlYXRlJykoJ2RpdicpLCAnYScsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9IH0pLmEgIT0gNztcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2llOC1kb20tZGVmaW5lLmpzXG4vLyBtb2R1bGUgaWQgPSA2NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///64\n"); /***/ }), /* 65 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lkZW50aXR5LmpzP2MxMjIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLEVBQUU7QUFDZjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjY1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBmaXJzdCBhcmd1bWVudCBpdCByZWNlaXZlcy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHBhcmFtIHsqfSB2YWx1ZSBBbnkgdmFsdWUuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyBgdmFsdWVgLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEgfTtcbiAqXG4gKiBjb25zb2xlLmxvZyhfLmlkZW50aXR5KG9iamVjdCkgPT09IG9iamVjdCk7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGlkZW50aXR5KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpZGVudGl0eTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pZGVudGl0eS5qc1xuLy8gbW9kdWxlIGlkID0gNjVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///65\n"); +eval("var isObject = __webpack_require__(14);\nvar document = __webpack_require__(6).document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RvbS1jcmVhdGUuanM/MzhkZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiI2NS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIGRvY3VtZW50ID0gcmVxdWlyZSgnLi9fZ2xvYmFsJykuZG9jdW1lbnQ7XG4vLyB0eXBlb2YgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBpcyAnb2JqZWN0JyBpbiBvbGQgSUVcbnZhciBpcyA9IGlzT2JqZWN0KGRvY3VtZW50KSAmJiBpc09iamVjdChkb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpcyA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoaXQpIDoge307XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RvbS1jcmVhdGUuanNcbi8vIG1vZHVsZSBpZCA9IDY1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///65\n"); /***/ }), /* 66 */ /***/ (function(module, exports, __webpack_require__) { -eval("var getNative = __webpack_require__(115);\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19kZWZpbmVQcm9wZXJ0eS5qcz9hNzQ2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBLEdBQUc7QUFDSCxDQUFDOztBQUVEIiwiZmlsZSI6IjY2LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGdldE5hdGl2ZSA9IHJlcXVpcmUoJy4vX2dldE5hdGl2ZScpO1xuXG52YXIgZGVmaW5lUHJvcGVydHkgPSAoZnVuY3Rpb24oKSB7XG4gIHRyeSB7XG4gICAgdmFyIGZ1bmMgPSBnZXROYXRpdmUoT2JqZWN0LCAnZGVmaW5lUHJvcGVydHknKTtcbiAgICBmdW5jKHt9LCAnJywge30pO1xuICAgIHJldHVybiBmdW5jO1xuICB9IGNhdGNoIChlKSB7fVxufSgpKTtcblxubW9kdWxlLmV4cG9ydHMgPSBkZWZpbmVQcm9wZXJ0eTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZGVmaW5lUHJvcGVydHkuanNcbi8vIG1vZHVsZSBpZCA9IDY2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///66\n"); +eval("// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(3);\nvar core = __webpack_require__(1);\nvar fails = __webpack_require__(15);\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1zYXAuanM/YmFhNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQSxxREFBcUQsT0FBTyxFQUFFO0FBQzlEIiwiZmlsZSI6IjY2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gbW9zdCBPYmplY3QgbWV0aG9kcyBieSBFUzYgc2hvdWxkIGFjY2VwdCBwcmltaXRpdmVzXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIGNvcmUgPSByZXF1aXJlKCcuL19jb3JlJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuL19mYWlscycpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoS0VZLCBleGVjKSB7XG4gIHZhciBmbiA9IChjb3JlLk9iamVjdCB8fCB7fSlbS0VZXSB8fCBPYmplY3RbS0VZXTtcbiAgdmFyIGV4cCA9IHt9O1xuICBleHBbS0VZXSA9IGV4ZWMoZm4pO1xuICAkZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqIGZhaWxzKGZ1bmN0aW9uICgpIHsgZm4oMSk7IH0pLCAnT2JqZWN0JywgZXhwKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LXNhcC5qc1xuLy8gbW9kdWxlIGlkID0gNjZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///66\n"); /***/ }), /* 67 */ /***/ (function(module, exports, __webpack_require__) { -eval("var baseGetTag = __webpack_require__(28),\n isObject = __webpack_require__(29);\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzRnVuY3Rpb24uanM/ODA2YSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiI2Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBiYXNlR2V0VGFnID0gcmVxdWlyZSgnLi9fYmFzZUdldFRhZycpLFxuICAgIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXN5bmNUYWcgPSAnW29iamVjdCBBc3luY0Z1bmN0aW9uXScsXG4gICAgZnVuY1RhZyA9ICdbb2JqZWN0IEZ1bmN0aW9uXScsXG4gICAgZ2VuVGFnID0gJ1tvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dJyxcbiAgICBwcm94eVRhZyA9ICdbb2JqZWN0IFByb3h5XSc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBGdW5jdGlvbmAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgZnVuY3Rpb24sIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0Z1bmN0aW9uKF8pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNGdW5jdGlvbigvYWJjLyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlKSB7XG4gIGlmICghaXNPYmplY3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIFRoZSB1c2Ugb2YgYE9iamVjdCN0b1N0cmluZ2AgYXZvaWRzIGlzc3VlcyB3aXRoIHRoZSBgdHlwZW9mYCBvcGVyYXRvclxuICAvLyBpbiBTYWZhcmkgOSB3aGljaCByZXR1cm5zICdvYmplY3QnIGZvciB0eXBlZCBhcnJheXMgYW5kIG90aGVyIGNvbnN0cnVjdG9ycy5cbiAgdmFyIHRhZyA9IGJhc2VHZXRUYWcodmFsdWUpO1xuICByZXR1cm4gdGFnID09IGZ1bmNUYWcgfHwgdGFnID09IGdlblRhZyB8fCB0YWcgPT0gYXN5bmNUYWcgfHwgdGFnID09IHByb3h5VGFnO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzRnVuY3Rpb247XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNGdW5jdGlvbi5qc1xuLy8gbW9kdWxlIGlkID0gNjdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///67\n"); +eval("module.exports = __webpack_require__(107);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvY29yZS1qcy9vYmplY3QvZGVmaW5lLXByb3BlcnR5LmpzPzQzNDAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiNjcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2RlZmluZS1wcm9wZXJ0eVwiKTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9jb3JlLWpzL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanNcbi8vIG1vZHVsZSBpZCA9IDY3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///67\n"); /***/ }), /* 68 */ /***/ (function(module, exports, __webpack_require__) { -eval("var root = __webpack_require__(42);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19TeW1ib2wuanM/MzY0NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTtBQUNBOztBQUVBIiwiZmlsZSI6IjY4LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHJvb3QgPSByZXF1aXJlKCcuL19yb290Jyk7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIFN5bWJvbCA9IHJvb3QuU3ltYm9sO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFN5bWJvbDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fU3ltYm9sLmpzXG4vLyBtb2R1bGUgaWQgPSA2OFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///68\n"); +eval("var identity = __webpack_require__(69),\n overRest = __webpack_require__(110),\n setToString = __webpack_require__(112);\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlUmVzdC5qcz82MjRjIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsU0FBUztBQUNwQixXQUFXLE9BQU87QUFDbEIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjY4LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGlkZW50aXR5ID0gcmVxdWlyZSgnLi9pZGVudGl0eScpLFxuICAgIG92ZXJSZXN0ID0gcmVxdWlyZSgnLi9fb3ZlclJlc3QnKSxcbiAgICBzZXRUb1N0cmluZyA9IHJlcXVpcmUoJy4vX3NldFRvU3RyaW5nJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucmVzdGAgd2hpY2ggZG9lc24ndCB2YWxpZGF0ZSBvciBjb2VyY2UgYXJndW1lbnRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhcHBseSBhIHJlc3QgcGFyYW1ldGVyIHRvLlxuICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD1mdW5jLmxlbmd0aC0xXSBUaGUgc3RhcnQgcG9zaXRpb24gb2YgdGhlIHJlc3QgcGFyYW1ldGVyLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGJhc2VSZXN0KGZ1bmMsIHN0YXJ0KSB7XG4gIHJldHVybiBzZXRUb1N0cmluZyhvdmVyUmVzdChmdW5jLCBzdGFydCwgaWRlbnRpdHkpLCBmdW5jICsgJycpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VSZXN0O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlUmVzdC5qc1xuLy8gbW9kdWxlIGlkID0gNjhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///68\n"); /***/ }), /* 69 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -eval("/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(70)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19mcmVlR2xvYmFsLmpzPzZlNTYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQSIsImZpbGUiOiI2OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZ2xvYmFsYCBmcm9tIE5vZGUuanMuICovXG52YXIgZnJlZUdsb2JhbCA9IHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsICYmIGdsb2JhbC5PYmplY3QgPT09IE9iamVjdCAmJiBnbG9iYWw7XG5cbm1vZHVsZS5leHBvcnRzID0gZnJlZUdsb2JhbDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZnJlZUdsb2JhbC5qc1xuLy8gbW9kdWxlIGlkID0gNjlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///69\n"); +eval("/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lkZW50aXR5LmpzP2MxMjIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLEVBQUU7QUFDZjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjY5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBmaXJzdCBhcmd1bWVudCBpdCByZWNlaXZlcy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHBhcmFtIHsqfSB2YWx1ZSBBbnkgdmFsdWUuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyBgdmFsdWVgLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEgfTtcbiAqXG4gKiBjb25zb2xlLmxvZyhfLmlkZW50aXR5KG9iamVjdCkgPT09IG9iamVjdCk7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGlkZW50aXR5KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpZGVudGl0eTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pZGVudGl0eS5qc1xuLy8gbW9kdWxlIGlkID0gNjlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///69\n"); /***/ }), /* 70 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vKHdlYnBhY2spL2J1aWxkaW4vZ2xvYmFsLmpzPzM2OTgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDRDQUE0Qzs7QUFFNUMiLCJmaWxlIjoiNzAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZztcclxuXHJcbi8vIFRoaXMgd29ya3MgaW4gbm9uLXN0cmljdCBtb2RlXHJcbmcgPSAoZnVuY3Rpb24oKSB7XHJcblx0cmV0dXJuIHRoaXM7XHJcbn0pKCk7XHJcblxyXG50cnkge1xyXG5cdC8vIFRoaXMgd29ya3MgaWYgZXZhbCBpcyBhbGxvd2VkIChzZWUgQ1NQKVxyXG5cdGcgPSBnIHx8IEZ1bmN0aW9uKFwicmV0dXJuIHRoaXNcIikoKSB8fCAoMSxldmFsKShcInRoaXNcIik7XHJcbn0gY2F0Y2goZSkge1xyXG5cdC8vIFRoaXMgd29ya3MgaWYgdGhlIHdpbmRvdyByZWZlcmVuY2UgaXMgYXZhaWxhYmxlXHJcblx0aWYodHlwZW9mIHdpbmRvdyA9PT0gXCJvYmplY3RcIilcclxuXHRcdGcgPSB3aW5kb3c7XHJcbn1cclxuXHJcbi8vIGcgY2FuIHN0aWxsIGJlIHVuZGVmaW5lZCwgYnV0IG5vdGhpbmcgdG8gZG8gYWJvdXQgaXQuLi5cclxuLy8gV2UgcmV0dXJuIHVuZGVmaW5lZCwgaW5zdGVhZCBvZiBub3RoaW5nIGhlcmUsIHNvIGl0J3NcclxuLy8gZWFzaWVyIHRvIGhhbmRsZSB0aGlzIGNhc2UuIGlmKCFnbG9iYWwpIHsgLi4ufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBnO1xyXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAod2VicGFjaykvYnVpbGRpbi9nbG9iYWwuanNcbi8vIG1vZHVsZSBpZCA9IDcwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///70\n"); +eval("var getNative = __webpack_require__(115);\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19kZWZpbmVQcm9wZXJ0eS5qcz9hNzQ2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBLEdBQUc7QUFDSCxDQUFDOztBQUVEIiwiZmlsZSI6IjcwLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGdldE5hdGl2ZSA9IHJlcXVpcmUoJy4vX2dldE5hdGl2ZScpO1xuXG52YXIgZGVmaW5lUHJvcGVydHkgPSAoZnVuY3Rpb24oKSB7XG4gIHRyeSB7XG4gICAgdmFyIGZ1bmMgPSBnZXROYXRpdmUoT2JqZWN0LCAnZGVmaW5lUHJvcGVydHknKTtcbiAgICBmdW5jKHt9LCAnJywge30pO1xuICAgIHJldHVybiBmdW5jO1xuICB9IGNhdGNoIChlKSB7fVxufSgpKTtcblxubW9kdWxlLmV4cG9ydHMgPSBkZWZpbmVQcm9wZXJ0eTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZGVmaW5lUHJvcGVydHkuanNcbi8vIG1vZHVsZSBpZCA9IDcwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///70\n"); /***/ }), /* 71 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; -eval("\nvar hide = __webpack_require__(72);\nvar redefine = __webpack_require__(133);\nvar fails = __webpack_require__(44);\nvar defined = __webpack_require__(136);\nvar wks = __webpack_require__(75);\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n var fns = exec(defined, SYMBOL, ''[KEY]);\n var strfn = fns[0];\n var rxfn = fns[1];\n if (fails(function () {\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n })) {\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19maXgtcmUtd2tzLmpzPzU2MGQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLFVBQVU7QUFDdkM7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MscUNBQXFDO0FBQ3JFO0FBQ0E7QUFDQSwyQkFBMkIsZ0NBQWdDO0FBQzNEO0FBQ0E7QUFDQSIsImZpbGUiOiI3MS5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcbnZhciBoaWRlID0gcmVxdWlyZSgnLi9faGlkZScpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi9fcmVkZWZpbmUnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4vX2ZhaWxzJyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbnZhciB3a3MgPSByZXF1aXJlKCcuL193a3MnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoS0VZLCBsZW5ndGgsIGV4ZWMpIHtcbiAgdmFyIFNZTUJPTCA9IHdrcyhLRVkpO1xuICB2YXIgZm5zID0gZXhlYyhkZWZpbmVkLCBTWU1CT0wsICcnW0tFWV0pO1xuICB2YXIgc3RyZm4gPSBmbnNbMF07XG4gIHZhciByeGZuID0gZm5zWzFdO1xuICBpZiAoZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIHZhciBPID0ge307XG4gICAgT1tTWU1CT0xdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfTtcbiAgICByZXR1cm4gJydbS0VZXShPKSAhPSA3O1xuICB9KSkge1xuICAgIHJlZGVmaW5lKFN0cmluZy5wcm90b3R5cGUsIEtFWSwgc3RyZm4pO1xuICAgIGhpZGUoUmVnRXhwLnByb3RvdHlwZSwgU1lNQk9MLCBsZW5ndGggPT0gMlxuICAgICAgLy8gMjEuMi41LjggUmVnRXhwLnByb3RvdHlwZVtAQHJlcGxhY2VdKHN0cmluZywgcmVwbGFjZVZhbHVlKVxuICAgICAgLy8gMjEuMi41LjExIFJlZ0V4cC5wcm90b3R5cGVbQEBzcGxpdF0oc3RyaW5nLCBsaW1pdClcbiAgICAgID8gZnVuY3Rpb24gKHN0cmluZywgYXJnKSB7IHJldHVybiByeGZuLmNhbGwoc3RyaW5nLCB0aGlzLCBhcmcpOyB9XG4gICAgICAvLyAyMS4yLjUuNiBSZWdFeHAucHJvdG90eXBlW0BAbWF0Y2hdKHN0cmluZylcbiAgICAgIC8vIDIxLjIuNS45IFJlZ0V4cC5wcm90b3R5cGVbQEBzZWFyY2hdKHN0cmluZylcbiAgICAgIDogZnVuY3Rpb24gKHN0cmluZykgeyByZXR1cm4gcnhmbi5jYWxsKHN0cmluZywgdGhpcyk7IH1cbiAgICApO1xuICB9XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19maXgtcmUtd2tzLmpzXG4vLyBtb2R1bGUgaWQgPSA3MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///71\n"); +eval("var baseGetTag = __webpack_require__(27),\n isObject = __webpack_require__(28);\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzRnVuY3Rpb24uanM/ODA2YSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiI3MS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBiYXNlR2V0VGFnID0gcmVxdWlyZSgnLi9fYmFzZUdldFRhZycpLFxuICAgIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXN5bmNUYWcgPSAnW29iamVjdCBBc3luY0Z1bmN0aW9uXScsXG4gICAgZnVuY1RhZyA9ICdbb2JqZWN0IEZ1bmN0aW9uXScsXG4gICAgZ2VuVGFnID0gJ1tvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dJyxcbiAgICBwcm94eVRhZyA9ICdbb2JqZWN0IFByb3h5XSc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBGdW5jdGlvbmAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgZnVuY3Rpb24sIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0Z1bmN0aW9uKF8pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNGdW5jdGlvbigvYWJjLyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlKSB7XG4gIGlmICghaXNPYmplY3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIFRoZSB1c2Ugb2YgYE9iamVjdCN0b1N0cmluZ2AgYXZvaWRzIGlzc3VlcyB3aXRoIHRoZSBgdHlwZW9mYCBvcGVyYXRvclxuICAvLyBpbiBTYWZhcmkgOSB3aGljaCByZXR1cm5zICdvYmplY3QnIGZvciB0eXBlZCBhcnJheXMgYW5kIG90aGVyIGNvbnN0cnVjdG9ycy5cbiAgdmFyIHRhZyA9IGJhc2VHZXRUYWcodmFsdWUpO1xuICByZXR1cm4gdGFnID09IGZ1bmNUYWcgfHwgdGFnID09IGdlblRhZyB8fCB0YWcgPT0gYXN5bmNUYWcgfHwgdGFnID09IHByb3h5VGFnO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzRnVuY3Rpb247XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNGdW5jdGlvbi5qc1xuLy8gbW9kdWxlIGlkID0gNzFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///71\n"); /***/ }), /* 72 */ /***/ (function(module, exports, __webpack_require__) { -eval("var dP = __webpack_require__(43);\nvar createDesc = __webpack_require__(132);\nmodule.exports = __webpack_require__(23) ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19oaWRlLmpzP2RhOWQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBIiwiZmlsZSI6IjcyLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgY3JlYXRlRGVzYyA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIGRQLmYob2JqZWN0LCBrZXksIGNyZWF0ZURlc2MoMSwgdmFsdWUpKTtcbn0gOiBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIG9iamVjdFtrZXldID0gdmFsdWU7XG4gIHJldHVybiBvYmplY3Q7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19oaWRlLmpzXG4vLyBtb2R1bGUgaWQgPSA3MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///72\n"); +eval("var root = __webpack_require__(44);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19TeW1ib2wuanM/MzY0NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTtBQUNBOztBQUVBIiwiZmlsZSI6IjcyLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHJvb3QgPSByZXF1aXJlKCcuL19yb290Jyk7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIFN5bWJvbCA9IHJvb3QuU3ltYm9sO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFN5bWJvbDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fU3ltYm9sLmpzXG4vLyBtb2R1bGUgaWQgPSA3MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///72\n"); /***/ }), /* 73 */ /***/ (function(module, exports, __webpack_require__) { -eval("var isObject = __webpack_require__(31);\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hbi1vYmplY3QuanM/MGM4NSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjczLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoIWlzT2JqZWN0KGl0KSkgdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgYW4gb2JqZWN0IScpO1xuICByZXR1cm4gaXQ7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hbi1vYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDczXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///73\n"); +eval("/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(74)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19mcmVlR2xvYmFsLmpzPzZlNTYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQSIsImZpbGUiOiI3My5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZ2xvYmFsYCBmcm9tIE5vZGUuanMuICovXG52YXIgZnJlZUdsb2JhbCA9IHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsICYmIGdsb2JhbC5PYmplY3QgPT09IE9iamVjdCAmJiBnbG9iYWw7XG5cbm1vZHVsZS5leHBvcnRzID0gZnJlZUdsb2JhbDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZnJlZUdsb2JhbC5qc1xuLy8gbW9kdWxlIGlkID0gNzNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///73\n"); /***/ }), /* 74 */ /***/ (function(module, exports) { -eval("var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL191aWQuanM/YmE1NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ijc0LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGlkID0gMDtcbnZhciBweCA9IE1hdGgucmFuZG9tKCk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuICdTeW1ib2woJy5jb25jYXQoa2V5ID09PSB1bmRlZmluZWQgPyAnJyA6IGtleSwgJylfJywgKCsraWQgKyBweCkudG9TdHJpbmcoMzYpKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3VpZC5qc1xuLy8gbW9kdWxlIGlkID0gNzRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///74\n"); +eval("var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vKHdlYnBhY2spL2J1aWxkaW4vZ2xvYmFsLmpzPzM2OTgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDRDQUE0Qzs7QUFFNUMiLCJmaWxlIjoiNzQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZztcclxuXHJcbi8vIFRoaXMgd29ya3MgaW4gbm9uLXN0cmljdCBtb2RlXHJcbmcgPSAoZnVuY3Rpb24oKSB7XHJcblx0cmV0dXJuIHRoaXM7XHJcbn0pKCk7XHJcblxyXG50cnkge1xyXG5cdC8vIFRoaXMgd29ya3MgaWYgZXZhbCBpcyBhbGxvd2VkIChzZWUgQ1NQKVxyXG5cdGcgPSBnIHx8IEZ1bmN0aW9uKFwicmV0dXJuIHRoaXNcIikoKSB8fCAoMSxldmFsKShcInRoaXNcIik7XHJcbn0gY2F0Y2goZSkge1xyXG5cdC8vIFRoaXMgd29ya3MgaWYgdGhlIHdpbmRvdyByZWZlcmVuY2UgaXMgYXZhaWxhYmxlXHJcblx0aWYodHlwZW9mIHdpbmRvdyA9PT0gXCJvYmplY3RcIilcclxuXHRcdGcgPSB3aW5kb3c7XHJcbn1cclxuXHJcbi8vIGcgY2FuIHN0aWxsIGJlIHVuZGVmaW5lZCwgYnV0IG5vdGhpbmcgdG8gZG8gYWJvdXQgaXQuLi5cclxuLy8gV2UgcmV0dXJuIHVuZGVmaW5lZCwgaW5zdGVhZCBvZiBub3RoaW5nIGhlcmUsIHNvIGl0J3NcclxuLy8gZWFzaWVyIHRvIGhhbmRsZSB0aGlzIGNhc2UuIGlmKCFnbG9iYWwpIHsgLi4ufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBnO1xyXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAod2VicGFjaykvYnVpbGRpbi9nbG9iYWwuanNcbi8vIG1vZHVsZSBpZCA9IDc0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///74\n"); /***/ }), /* 75 */ /***/ (function(module, exports, __webpack_require__) { -eval("var store = __webpack_require__(137)('wks');\nvar uid = __webpack_require__(74);\nvar Symbol = __webpack_require__(32).Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL193a3MuanM/OTI0MCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiI3NS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBzdG9yZSA9IHJlcXVpcmUoJy4vX3NoYXJlZCcpKCd3a3MnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbnZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19nbG9iYWwnKS5TeW1ib2w7XG52YXIgVVNFX1NZTUJPTCA9IHR5cGVvZiBTeW1ib2wgPT0gJ2Z1bmN0aW9uJztcblxudmFyICRleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobmFtZSkge1xuICByZXR1cm4gc3RvcmVbbmFtZV0gfHwgKHN0b3JlW25hbWVdID1cbiAgICBVU0VfU1lNQk9MICYmIFN5bWJvbFtuYW1lXSB8fCAoVVNFX1NZTUJPTCA/IFN5bWJvbCA6IHVpZCkoJ1N5bWJvbC4nICsgbmFtZSkpO1xufTtcblxuJGV4cG9ydHMuc3RvcmUgPSBzdG9yZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fd2tzLmpzXG4vLyBtb2R1bGUgaWQgPSA3NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///75\n"); +"use strict"; +eval("\nvar hide = __webpack_require__(76);\nvar redefine = __webpack_require__(133);\nvar fails = __webpack_require__(46);\nvar defined = __webpack_require__(136);\nvar wks = __webpack_require__(79);\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n var fns = exec(defined, SYMBOL, ''[KEY]);\n var strfn = fns[0];\n var rxfn = fns[1];\n if (fails(function () {\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n })) {\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19maXgtcmUtd2tzLmpzPzU2MGQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLFVBQVU7QUFDdkM7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MscUNBQXFDO0FBQ3JFO0FBQ0E7QUFDQSwyQkFBMkIsZ0NBQWdDO0FBQzNEO0FBQ0E7QUFDQSIsImZpbGUiOiI3NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcbnZhciBoaWRlID0gcmVxdWlyZSgnLi9faGlkZScpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi9fcmVkZWZpbmUnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4vX2ZhaWxzJyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbnZhciB3a3MgPSByZXF1aXJlKCcuL193a3MnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoS0VZLCBsZW5ndGgsIGV4ZWMpIHtcbiAgdmFyIFNZTUJPTCA9IHdrcyhLRVkpO1xuICB2YXIgZm5zID0gZXhlYyhkZWZpbmVkLCBTWU1CT0wsICcnW0tFWV0pO1xuICB2YXIgc3RyZm4gPSBmbnNbMF07XG4gIHZhciByeGZuID0gZm5zWzFdO1xuICBpZiAoZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIHZhciBPID0ge307XG4gICAgT1tTWU1CT0xdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfTtcbiAgICByZXR1cm4gJydbS0VZXShPKSAhPSA3O1xuICB9KSkge1xuICAgIHJlZGVmaW5lKFN0cmluZy5wcm90b3R5cGUsIEtFWSwgc3RyZm4pO1xuICAgIGhpZGUoUmVnRXhwLnByb3RvdHlwZSwgU1lNQk9MLCBsZW5ndGggPT0gMlxuICAgICAgLy8gMjEuMi41LjggUmVnRXhwLnByb3RvdHlwZVtAQHJlcGxhY2VdKHN0cmluZywgcmVwbGFjZVZhbHVlKVxuICAgICAgLy8gMjEuMi41LjExIFJlZ0V4cC5wcm90b3R5cGVbQEBzcGxpdF0oc3RyaW5nLCBsaW1pdClcbiAgICAgID8gZnVuY3Rpb24gKHN0cmluZywgYXJnKSB7IHJldHVybiByeGZuLmNhbGwoc3RyaW5nLCB0aGlzLCBhcmcpOyB9XG4gICAgICAvLyAyMS4yLjUuNiBSZWdFeHAucHJvdG90eXBlW0BAbWF0Y2hdKHN0cmluZylcbiAgICAgIC8vIDIxLjIuNS45IFJlZ0V4cC5wcm90b3R5cGVbQEBzZWFyY2hdKHN0cmluZylcbiAgICAgIDogZnVuY3Rpb24gKHN0cmluZykgeyByZXR1cm4gcnhmbi5jYWxsKHN0cmluZywgdGhpcyk7IH1cbiAgICApO1xuICB9XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19maXgtcmUtd2tzLmpzXG4vLyBtb2R1bGUgaWQgPSA3NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///75\n"); /***/ }), /* 76 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; -eval("\nvar LIBRARY = __webpack_require__(46);\nvar $export = __webpack_require__(6);\nvar redefine = __webpack_require__(77);\nvar hide = __webpack_require__(19);\nvar has = __webpack_require__(12);\nvar Iterators = __webpack_require__(20);\nvar $iterCreate = __webpack_require__(144);\nvar setToStringTag = __webpack_require__(51);\nvar getPrototypeOf = __webpack_require__(80);\nvar ITERATOR = __webpack_require__(4)('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = (!BUGGY && $native) || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItZGVmaW5lLmpzP2JjODAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QztBQUM5QztBQUNBO0FBQ0E7O0FBRUEsOEJBQThCLGFBQWE7O0FBRTNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUMsb0NBQW9DO0FBQzdFLDZDQUE2QyxvQ0FBb0M7QUFDakYsS0FBSyw0QkFBNEIsb0NBQW9DO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbUJBQW1CO0FBQ25DO0FBQ0E7QUFDQSxrQ0FBa0MsMkJBQTJCO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSIsImZpbGUiOiI3Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcbnZhciBMSUJSQVJZID0gcmVxdWlyZSgnLi9fbGlicmFyeScpO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4vX3JlZGVmaW5lJyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuL19pdGVyYXRvcnMnKTtcbnZhciAkaXRlckNyZWF0ZSA9IHJlcXVpcmUoJy4vX2l0ZXItY3JlYXRlJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuL19zZXQtdG8tc3RyaW5nLXRhZycpO1xudmFyIGdldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdwbycpO1xudmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgQlVHR1kgPSAhKFtdLmtleXMgJiYgJ25leHQnIGluIFtdLmtleXMoKSk7IC8vIFNhZmFyaSBoYXMgYnVnZ3kgaXRlcmF0b3JzIHcvbyBgbmV4dGBcbnZhciBGRl9JVEVSQVRPUiA9ICdAQGl0ZXJhdG9yJztcbnZhciBLRVlTID0gJ2tleXMnO1xudmFyIFZBTFVFUyA9ICd2YWx1ZXMnO1xuXG52YXIgcmV0dXJuVGhpcyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKEJhc2UsIE5BTUUsIENvbnN0cnVjdG9yLCBuZXh0LCBERUZBVUxULCBJU19TRVQsIEZPUkNFRCkge1xuICAkaXRlckNyZWF0ZShDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCk7XG4gIHZhciBnZXRNZXRob2QgPSBmdW5jdGlvbiAoa2luZCkge1xuICAgIGlmICghQlVHR1kgJiYga2luZCBpbiBwcm90bykgcmV0dXJuIHByb3RvW2tpbmRdO1xuICAgIHN3aXRjaCAoa2luZCkge1xuICAgICAgY2FzZSBLRVlTOiByZXR1cm4gZnVuY3Rpb24ga2V5cygpIHsgcmV0dXJuIG5ldyBDb25zdHJ1Y3Rvcih0aGlzLCBraW5kKTsgfTtcbiAgICAgIGNhc2UgVkFMVUVTOiByZXR1cm4gZnVuY3Rpb24gdmFsdWVzKCkgeyByZXR1cm4gbmV3IENvbnN0cnVjdG9yKHRoaXMsIGtpbmQpOyB9O1xuICAgIH0gcmV0dXJuIGZ1bmN0aW9uIGVudHJpZXMoKSB7IHJldHVybiBuZXcgQ29uc3RydWN0b3IodGhpcywga2luZCk7IH07XG4gIH07XG4gIHZhciBUQUcgPSBOQU1FICsgJyBJdGVyYXRvcic7XG4gIHZhciBERUZfVkFMVUVTID0gREVGQVVMVCA9PSBWQUxVRVM7XG4gIHZhciBWQUxVRVNfQlVHID0gZmFsc2U7XG4gIHZhciBwcm90byA9IEJhc2UucHJvdG90eXBlO1xuICB2YXIgJG5hdGl2ZSA9IHByb3RvW0lURVJBVE9SXSB8fCBwcm90b1tGRl9JVEVSQVRPUl0gfHwgREVGQVVMVCAmJiBwcm90b1tERUZBVUxUXTtcbiAgdmFyICRkZWZhdWx0ID0gKCFCVUdHWSAmJiAkbmF0aXZlKSB8fCBnZXRNZXRob2QoREVGQVVMVCk7XG4gIHZhciAkZW50cmllcyA9IERFRkFVTFQgPyAhREVGX1ZBTFVFUyA/ICRkZWZhdWx0IDogZ2V0TWV0aG9kKCdlbnRyaWVzJykgOiB1bmRlZmluZWQ7XG4gIHZhciAkYW55TmF0aXZlID0gTkFNRSA9PSAnQXJyYXknID8gcHJvdG8uZW50cmllcyB8fCAkbmF0aXZlIDogJG5hdGl2ZTtcbiAgdmFyIG1ldGhvZHMsIGtleSwgSXRlcmF0b3JQcm90b3R5cGU7XG4gIC8vIEZpeCBuYXRpdmVcbiAgaWYgKCRhbnlOYXRpdmUpIHtcbiAgICBJdGVyYXRvclByb3RvdHlwZSA9IGdldFByb3RvdHlwZU9mKCRhbnlOYXRpdmUuY2FsbChuZXcgQmFzZSgpKSk7XG4gICAgaWYgKEl0ZXJhdG9yUHJvdG90eXBlICE9PSBPYmplY3QucHJvdG90eXBlICYmIEl0ZXJhdG9yUHJvdG90eXBlLm5leHQpIHtcbiAgICAgIC8vIFNldCBAQHRvU3RyaW5nVGFnIHRvIG5hdGl2ZSBpdGVyYXRvcnNcbiAgICAgIHNldFRvU3RyaW5nVGFnKEl0ZXJhdG9yUHJvdG90eXBlLCBUQUcsIHRydWUpO1xuICAgICAgLy8gZml4IGZvciBzb21lIG9sZCBlbmdpbmVzXG4gICAgICBpZiAoIUxJQlJBUlkgJiYgIWhhcyhJdGVyYXRvclByb3RvdHlwZSwgSVRFUkFUT1IpKSBoaWRlKEl0ZXJhdG9yUHJvdG90eXBlLCBJVEVSQVRPUiwgcmV0dXJuVGhpcyk7XG4gICAgfVxuICB9XG4gIC8vIGZpeCBBcnJheSN7dmFsdWVzLCBAQGl0ZXJhdG9yfS5uYW1lIGluIFY4IC8gRkZcbiAgaWYgKERFRl9WQUxVRVMgJiYgJG5hdGl2ZSAmJiAkbmF0aXZlLm5hbWUgIT09IFZBTFVFUykge1xuICAgIFZBTFVFU19CVUcgPSB0cnVlO1xuICAgICRkZWZhdWx0ID0gZnVuY3Rpb24gdmFsdWVzKCkgeyByZXR1cm4gJG5hdGl2ZS5jYWxsKHRoaXMpOyB9O1xuICB9XG4gIC8vIERlZmluZSBpdGVyYXRvclxuICBpZiAoKCFMSUJSQVJZIHx8IEZPUkNFRCkgJiYgKEJVR0dZIHx8IFZBTFVFU19CVUcgfHwgIXByb3RvW0lURVJBVE9SXSkpIHtcbiAgICBoaWRlKHByb3RvLCBJVEVSQVRPUiwgJGRlZmF1bHQpO1xuICB9XG4gIC8vIFBsdWcgZm9yIGxpYnJhcnlcbiAgSXRlcmF0b3JzW05BTUVdID0gJGRlZmF1bHQ7XG4gIEl0ZXJhdG9yc1tUQUddID0gcmV0dXJuVGhpcztcbiAgaWYgKERFRkFVTFQpIHtcbiAgICBtZXRob2RzID0ge1xuICAgICAgdmFsdWVzOiBERUZfVkFMVUVTID8gJGRlZmF1bHQgOiBnZXRNZXRob2QoVkFMVUVTKSxcbiAgICAgIGtleXM6IElTX1NFVCA/ICRkZWZhdWx0IDogZ2V0TWV0aG9kKEtFWVMpLFxuICAgICAgZW50cmllczogJGVudHJpZXNcbiAgICB9O1xuICAgIGlmIChGT1JDRUQpIGZvciAoa2V5IGluIG1ldGhvZHMpIHtcbiAgICAgIGlmICghKGtleSBpbiBwcm90bykpIHJlZGVmaW5lKHByb3RvLCBrZXksIG1ldGhvZHNba2V5XSk7XG4gICAgfSBlbHNlICRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogKEJVR0dZIHx8IFZBTFVFU19CVUcpLCBOQU1FLCBtZXRob2RzKTtcbiAgfVxuICByZXR1cm4gbWV0aG9kcztcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXRlci1kZWZpbmUuanNcbi8vIG1vZHVsZSBpZCA9IDc2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///76\n"); +eval("var dP = __webpack_require__(45);\nvar createDesc = __webpack_require__(132);\nmodule.exports = __webpack_require__(21) ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19oaWRlLmpzP2RhOWQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBIiwiZmlsZSI6Ijc2LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgY3JlYXRlRGVzYyA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIGRQLmYob2JqZWN0LCBrZXksIGNyZWF0ZURlc2MoMSwgdmFsdWUpKTtcbn0gOiBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIG9iamVjdFtrZXldID0gdmFsdWU7XG4gIHJldHVybiBvYmplY3Q7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19oaWRlLmpzXG4vLyBtb2R1bGUgaWQgPSA3NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///76\n"); /***/ }), /* 77 */ /***/ (function(module, exports, __webpack_require__) { -eval("module.exports = __webpack_require__(19);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3JlZGVmaW5lLmpzP2YzY2QiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiNzcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19yZWRlZmluZS5qc1xuLy8gbW9kdWxlIGlkID0gNzdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///77\n"); +eval("var isObject = __webpack_require__(30);\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hbi1vYmplY3QuanM/MGM4NSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ijc3LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoIWlzT2JqZWN0KGl0KSkgdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgYW4gb2JqZWN0IScpO1xuICByZXR1cm4gaXQ7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hbi1vYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDc3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///77\n"); /***/ }), /* 78 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -eval("var has = __webpack_require__(12);\nvar toIObject = __webpack_require__(8);\nvar arrayIndexOf = __webpack_require__(146)(false);\nvar IE_PROTO = __webpack_require__(48)('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1rZXlzLWludGVybmFsLmpzPzIxYjgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ijc4LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciBhcnJheUluZGV4T2YgPSByZXF1aXJlKCcuL19hcnJheS1pbmNsdWRlcycpKGZhbHNlKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSU9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgaWYgKGtleSAhPSBJRV9QUk9UTykgaGFzKE8sIGtleSkgJiYgcmVzdWx0LnB1c2goa2V5KTtcbiAgLy8gRG9uJ3QgZW51bSBidWcgJiBoaWRkZW4ga2V5c1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkgaWYgKGhhcyhPLCBrZXkgPSBuYW1lc1tpKytdKSkge1xuICAgIH5hcnJheUluZGV4T2YocmVzdWx0LCBrZXkpIHx8IHJlc3VsdC5wdXNoKGtleSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWtleXMtaW50ZXJuYWwuanNcbi8vIG1vZHVsZSBpZCA9IDc4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///78\n"); +eval("var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL191aWQuanM/YmE1NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ijc4LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGlkID0gMDtcbnZhciBweCA9IE1hdGgucmFuZG9tKCk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuICdTeW1ib2woJy5jb25jYXQoa2V5ID09PSB1bmRlZmluZWQgPyAnJyA6IGtleSwgJylfJywgKCsraWQgKyBweCkudG9TdHJpbmcoMzYpKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3VpZC5qc1xuLy8gbW9kdWxlIGlkID0gNzhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///78\n"); /***/ }), /* 79 */ /***/ (function(module, exports, __webpack_require__) { -eval("// 7.1.15 ToLength\nvar toInteger = __webpack_require__(45);\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWxlbmd0aC5qcz80MTExIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkRBQTJEO0FBQzNEIiwiZmlsZSI6Ijc5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gNy4xLjE1IFRvTGVuZ3RoXG52YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi9fdG8taW50ZWdlcicpO1xudmFyIG1pbiA9IE1hdGgubWluO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ID4gMCA/IG1pbih0b0ludGVnZXIoaXQpLCAweDFmZmZmZmZmZmZmZmZmKSA6IDA7IC8vIHBvdygyLCA1MykgLSAxID09IDkwMDcxOTkyNTQ3NDA5OTFcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8tbGVuZ3RoLmpzXG4vLyBtb2R1bGUgaWQgPSA3OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///79\n"); +eval("var store = __webpack_require__(137)('wks');\nvar uid = __webpack_require__(78);\nvar Symbol = __webpack_require__(31).Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL193a3MuanM/OTI0MCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiI3OS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBzdG9yZSA9IHJlcXVpcmUoJy4vX3NoYXJlZCcpKCd3a3MnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbnZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19nbG9iYWwnKS5TeW1ib2w7XG52YXIgVVNFX1NZTUJPTCA9IHR5cGVvZiBTeW1ib2wgPT0gJ2Z1bmN0aW9uJztcblxudmFyICRleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobmFtZSkge1xuICByZXR1cm4gc3RvcmVbbmFtZV0gfHwgKHN0b3JlW25hbWVdID1cbiAgICBVU0VfU1lNQk9MICYmIFN5bWJvbFtuYW1lXSB8fCAoVVNFX1NZTUJPTCA/IFN5bWJvbCA6IHVpZCkoJ1N5bWJvbC4nICsgbmFtZSkpO1xufTtcblxuJGV4cG9ydHMuc3RvcmUgPSBzdG9yZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fd2tzLmpzXG4vLyBtb2R1bGUgaWQgPSA3OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///79\n"); /***/ }), /* 80 */ /***/ (function(module, exports, __webpack_require__) { -eval("// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(12);\nvar toObject = __webpack_require__(35);\nvar IE_PROTO = __webpack_require__(48)('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1ncG8uanM/M2YzYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0giLCJmaWxlIjoiODAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAxOS4xLjIuOSAvIDE1LjIuMy4yIE9iamVjdC5nZXRQcm90b3R5cGVPZihPKVxudmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgSUVfUFJPVE8gPSByZXF1aXJlKCcuL19zaGFyZWQta2V5JykoJ0lFX1BST1RPJyk7XG52YXIgT2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiAoTykge1xuICBPID0gdG9PYmplY3QoTyk7XG4gIGlmIChoYXMoTywgSUVfUFJPVE8pKSByZXR1cm4gT1tJRV9QUk9UT107XG4gIGlmICh0eXBlb2YgTy5jb25zdHJ1Y3RvciA9PSAnZnVuY3Rpb24nICYmIE8gaW5zdGFuY2VvZiBPLmNvbnN0cnVjdG9yKSB7XG4gICAgcmV0dXJuIE8uY29uc3RydWN0b3IucHJvdG90eXBlO1xuICB9IHJldHVybiBPIGluc3RhbmNlb2YgT2JqZWN0ID8gT2JqZWN0UHJvdG8gOiBudWxsO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ3BvLmpzXG4vLyBtb2R1bGUgaWQgPSA4MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///80\n"); +"use strict"; +eval("\nvar LIBRARY = __webpack_require__(48);\nvar $export = __webpack_require__(3);\nvar redefine = __webpack_require__(81);\nvar hide = __webpack_require__(16);\nvar has = __webpack_require__(9);\nvar Iterators = __webpack_require__(17);\nvar $iterCreate = __webpack_require__(144);\nvar setToStringTag = __webpack_require__(53);\nvar getPrototypeOf = __webpack_require__(84);\nvar ITERATOR = __webpack_require__(2)('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = (!BUGGY && $native) || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItZGVmaW5lLmpzP2JjODAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QztBQUM5QztBQUNBO0FBQ0E7O0FBRUEsOEJBQThCLGFBQWE7O0FBRTNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUMsb0NBQW9DO0FBQzdFLDZDQUE2QyxvQ0FBb0M7QUFDakYsS0FBSyw0QkFBNEIsb0NBQW9DO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbUJBQW1CO0FBQ25DO0FBQ0E7QUFDQSxrQ0FBa0MsMkJBQTJCO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSIsImZpbGUiOiI4MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcbnZhciBMSUJSQVJZID0gcmVxdWlyZSgnLi9fbGlicmFyeScpO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4vX3JlZGVmaW5lJyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuL19pdGVyYXRvcnMnKTtcbnZhciAkaXRlckNyZWF0ZSA9IHJlcXVpcmUoJy4vX2l0ZXItY3JlYXRlJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuL19zZXQtdG8tc3RyaW5nLXRhZycpO1xudmFyIGdldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdwbycpO1xudmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgQlVHR1kgPSAhKFtdLmtleXMgJiYgJ25leHQnIGluIFtdLmtleXMoKSk7IC8vIFNhZmFyaSBoYXMgYnVnZ3kgaXRlcmF0b3JzIHcvbyBgbmV4dGBcbnZhciBGRl9JVEVSQVRPUiA9ICdAQGl0ZXJhdG9yJztcbnZhciBLRVlTID0gJ2tleXMnO1xudmFyIFZBTFVFUyA9ICd2YWx1ZXMnO1xuXG52YXIgcmV0dXJuVGhpcyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKEJhc2UsIE5BTUUsIENvbnN0cnVjdG9yLCBuZXh0LCBERUZBVUxULCBJU19TRVQsIEZPUkNFRCkge1xuICAkaXRlckNyZWF0ZShDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCk7XG4gIHZhciBnZXRNZXRob2QgPSBmdW5jdGlvbiAoa2luZCkge1xuICAgIGlmICghQlVHR1kgJiYga2luZCBpbiBwcm90bykgcmV0dXJuIHByb3RvW2tpbmRdO1xuICAgIHN3aXRjaCAoa2luZCkge1xuICAgICAgY2FzZSBLRVlTOiByZXR1cm4gZnVuY3Rpb24ga2V5cygpIHsgcmV0dXJuIG5ldyBDb25zdHJ1Y3Rvcih0aGlzLCBraW5kKTsgfTtcbiAgICAgIGNhc2UgVkFMVUVTOiByZXR1cm4gZnVuY3Rpb24gdmFsdWVzKCkgeyByZXR1cm4gbmV3IENvbnN0cnVjdG9yKHRoaXMsIGtpbmQpOyB9O1xuICAgIH0gcmV0dXJuIGZ1bmN0aW9uIGVudHJpZXMoKSB7IHJldHVybiBuZXcgQ29uc3RydWN0b3IodGhpcywga2luZCk7IH07XG4gIH07XG4gIHZhciBUQUcgPSBOQU1FICsgJyBJdGVyYXRvcic7XG4gIHZhciBERUZfVkFMVUVTID0gREVGQVVMVCA9PSBWQUxVRVM7XG4gIHZhciBWQUxVRVNfQlVHID0gZmFsc2U7XG4gIHZhciBwcm90byA9IEJhc2UucHJvdG90eXBlO1xuICB2YXIgJG5hdGl2ZSA9IHByb3RvW0lURVJBVE9SXSB8fCBwcm90b1tGRl9JVEVSQVRPUl0gfHwgREVGQVVMVCAmJiBwcm90b1tERUZBVUxUXTtcbiAgdmFyICRkZWZhdWx0ID0gKCFCVUdHWSAmJiAkbmF0aXZlKSB8fCBnZXRNZXRob2QoREVGQVVMVCk7XG4gIHZhciAkZW50cmllcyA9IERFRkFVTFQgPyAhREVGX1ZBTFVFUyA/ICRkZWZhdWx0IDogZ2V0TWV0aG9kKCdlbnRyaWVzJykgOiB1bmRlZmluZWQ7XG4gIHZhciAkYW55TmF0aXZlID0gTkFNRSA9PSAnQXJyYXknID8gcHJvdG8uZW50cmllcyB8fCAkbmF0aXZlIDogJG5hdGl2ZTtcbiAgdmFyIG1ldGhvZHMsIGtleSwgSXRlcmF0b3JQcm90b3R5cGU7XG4gIC8vIEZpeCBuYXRpdmVcbiAgaWYgKCRhbnlOYXRpdmUpIHtcbiAgICBJdGVyYXRvclByb3RvdHlwZSA9IGdldFByb3RvdHlwZU9mKCRhbnlOYXRpdmUuY2FsbChuZXcgQmFzZSgpKSk7XG4gICAgaWYgKEl0ZXJhdG9yUHJvdG90eXBlICE9PSBPYmplY3QucHJvdG90eXBlICYmIEl0ZXJhdG9yUHJvdG90eXBlLm5leHQpIHtcbiAgICAgIC8vIFNldCBAQHRvU3RyaW5nVGFnIHRvIG5hdGl2ZSBpdGVyYXRvcnNcbiAgICAgIHNldFRvU3RyaW5nVGFnKEl0ZXJhdG9yUHJvdG90eXBlLCBUQUcsIHRydWUpO1xuICAgICAgLy8gZml4IGZvciBzb21lIG9sZCBlbmdpbmVzXG4gICAgICBpZiAoIUxJQlJBUlkgJiYgIWhhcyhJdGVyYXRvclByb3RvdHlwZSwgSVRFUkFUT1IpKSBoaWRlKEl0ZXJhdG9yUHJvdG90eXBlLCBJVEVSQVRPUiwgcmV0dXJuVGhpcyk7XG4gICAgfVxuICB9XG4gIC8vIGZpeCBBcnJheSN7dmFsdWVzLCBAQGl0ZXJhdG9yfS5uYW1lIGluIFY4IC8gRkZcbiAgaWYgKERFRl9WQUxVRVMgJiYgJG5hdGl2ZSAmJiAkbmF0aXZlLm5hbWUgIT09IFZBTFVFUykge1xuICAgIFZBTFVFU19CVUcgPSB0cnVlO1xuICAgICRkZWZhdWx0ID0gZnVuY3Rpb24gdmFsdWVzKCkgeyByZXR1cm4gJG5hdGl2ZS5jYWxsKHRoaXMpOyB9O1xuICB9XG4gIC8vIERlZmluZSBpdGVyYXRvclxuICBpZiAoKCFMSUJSQVJZIHx8IEZPUkNFRCkgJiYgKEJVR0dZIHx8IFZBTFVFU19CVUcgfHwgIXByb3RvW0lURVJBVE9SXSkpIHtcbiAgICBoaWRlKHByb3RvLCBJVEVSQVRPUiwgJGRlZmF1bHQpO1xuICB9XG4gIC8vIFBsdWcgZm9yIGxpYnJhcnlcbiAgSXRlcmF0b3JzW05BTUVdID0gJGRlZmF1bHQ7XG4gIEl0ZXJhdG9yc1tUQUddID0gcmV0dXJuVGhpcztcbiAgaWYgKERFRkFVTFQpIHtcbiAgICBtZXRob2RzID0ge1xuICAgICAgdmFsdWVzOiBERUZfVkFMVUVTID8gJGRlZmF1bHQgOiBnZXRNZXRob2QoVkFMVUVTKSxcbiAgICAgIGtleXM6IElTX1NFVCA/ICRkZWZhdWx0IDogZ2V0TWV0aG9kKEtFWVMpLFxuICAgICAgZW50cmllczogJGVudHJpZXNcbiAgICB9O1xuICAgIGlmIChGT1JDRUQpIGZvciAoa2V5IGluIG1ldGhvZHMpIHtcbiAgICAgIGlmICghKGtleSBpbiBwcm90bykpIHJlZGVmaW5lKHByb3RvLCBrZXksIG1ldGhvZHNba2V5XSk7XG4gICAgfSBlbHNlICRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogKEJVR0dZIHx8IFZBTFVFU19CVUcpLCBOQU1FLCBtZXRob2RzKTtcbiAgfVxuICByZXR1cm4gbWV0aG9kcztcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXRlci1kZWZpbmUuanNcbi8vIG1vZHVsZSBpZCA9IDgwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///80\n"); /***/ }), /* 81 */ /***/ (function(module, exports, __webpack_require__) { -eval("var classof = __webpack_require__(82);\nvar ITERATOR = __webpack_require__(4)('iterator');\nvar Iterators = __webpack_require__(20);\nmodule.exports = __webpack_require__(2).getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvY29yZS5nZXQtaXRlcmF0b3ItbWV0aG9kLmpzP2RkZmIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiI4MS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBjbGFzc29mID0gcmVxdWlyZSgnLi9fY2xhc3NvZicpO1xudmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2NvcmUnKS5nZXRJdGVyYXRvck1ldGhvZCA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXQgIT0gdW5kZWZpbmVkKSByZXR1cm4gaXRbSVRFUkFUT1JdXG4gICAgfHwgaXRbJ0BAaXRlcmF0b3InXVxuICAgIHx8IEl0ZXJhdG9yc1tjbGFzc29mKGl0KV07XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvY29yZS5nZXQtaXRlcmF0b3ItbWV0aG9kLmpzXG4vLyBtb2R1bGUgaWQgPSA4MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///81\n"); +eval("module.exports = __webpack_require__(16);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3JlZGVmaW5lLmpzP2YzY2QiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiODEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19yZWRlZmluZS5qc1xuLy8gbW9kdWxlIGlkID0gODFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///81\n"); /***/ }), /* 82 */ /***/ (function(module, exports, __webpack_require__) { -eval("// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(37);\nvar TAG = __webpack_require__(4)('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NsYXNzb2YuanM/NDU4ZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQixrQkFBa0IsRUFBRTs7QUFFL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLFlBQVk7QUFDZjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiI4Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGdldHRpbmcgdGFnIGZyb20gMTkuMS4zLjYgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZygpXG52YXIgY29mID0gcmVxdWlyZSgnLi9fY29mJyk7XG52YXIgVEFHID0gcmVxdWlyZSgnLi9fd2tzJykoJ3RvU3RyaW5nVGFnJyk7XG4vLyBFUzMgd3JvbmcgaGVyZVxudmFyIEFSRyA9IGNvZihmdW5jdGlvbiAoKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSkgPT0gJ0FyZ3VtZW50cyc7XG5cbi8vIGZhbGxiYWNrIGZvciBJRTExIFNjcmlwdCBBY2Nlc3MgRGVuaWVkIGVycm9yXG52YXIgdHJ5R2V0ID0gZnVuY3Rpb24gKGl0LCBrZXkpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gaXRba2V5XTtcbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgTywgVCwgQjtcbiAgcmV0dXJuIGl0ID09PSB1bmRlZmluZWQgPyAnVW5kZWZpbmVkJyA6IGl0ID09PSBudWxsID8gJ051bGwnXG4gICAgLy8gQEB0b1N0cmluZ1RhZyBjYXNlXG4gICAgOiB0eXBlb2YgKFQgPSB0cnlHZXQoTyA9IE9iamVjdChpdCksIFRBRykpID09ICdzdHJpbmcnID8gVFxuICAgIC8vIGJ1aWx0aW5UYWcgY2FzZVxuICAgIDogQVJHID8gY29mKE8pXG4gICAgLy8gRVMzIGFyZ3VtZW50cyBmYWxsYmFja1xuICAgIDogKEIgPSBjb2YoTykpID09ICdPYmplY3QnICYmIHR5cGVvZiBPLmNhbGxlZSA9PSAnZnVuY3Rpb24nID8gJ0FyZ3VtZW50cycgOiBCO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jbGFzc29mLmpzXG4vLyBtb2R1bGUgaWQgPSA4MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///82\n"); +eval("var has = __webpack_require__(9);\nvar toIObject = __webpack_require__(5);\nvar arrayIndexOf = __webpack_require__(146)(false);\nvar IE_PROTO = __webpack_require__(50)('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1rZXlzLWludGVybmFsLmpzPzIxYjgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjgyLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciBhcnJheUluZGV4T2YgPSByZXF1aXJlKCcuL19hcnJheS1pbmNsdWRlcycpKGZhbHNlKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSU9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgaWYgKGtleSAhPSBJRV9QUk9UTykgaGFzKE8sIGtleSkgJiYgcmVzdWx0LnB1c2goa2V5KTtcbiAgLy8gRG9uJ3QgZW51bSBidWcgJiBoaWRkZW4ga2V5c1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkgaWYgKGhhcyhPLCBrZXkgPSBuYW1lc1tpKytdKSkge1xuICAgIH5hcnJheUluZGV4T2YocmVzdWx0LCBrZXkpIHx8IHJlc3VsdC5wdXNoKGtleSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWtleXMtaW50ZXJuYWwuanNcbi8vIG1vZHVsZSBpZCA9IDgyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///82\n"); /***/ }), /* 83 */ /***/ (function(module, exports, __webpack_require__) { -eval("// @@search logic\n__webpack_require__(71)('search', 1, function (defined, SEARCH, $search) {\n // 21.1.3.15 String.prototype.search(regexp)\n return [function search(regexp) {\n 'use strict';\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n }, $search];\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5yZWdleHAuc2VhcmNoLmpzP2FiMDQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxDQUFDIiwiZmlsZSI6IjgzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQEBzZWFyY2ggbG9naWNcbnJlcXVpcmUoJy4vX2ZpeC1yZS13a3MnKSgnc2VhcmNoJywgMSwgZnVuY3Rpb24gKGRlZmluZWQsIFNFQVJDSCwgJHNlYXJjaCkge1xuICAvLyAyMS4xLjMuMTUgU3RyaW5nLnByb3RvdHlwZS5zZWFyY2gocmVnZXhwKVxuICByZXR1cm4gW2Z1bmN0aW9uIHNlYXJjaChyZWdleHApIHtcbiAgICAndXNlIHN0cmljdCc7XG4gICAgdmFyIE8gPSBkZWZpbmVkKHRoaXMpO1xuICAgIHZhciBmbiA9IHJlZ2V4cCA9PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiByZWdleHBbU0VBUkNIXTtcbiAgICByZXR1cm4gZm4gIT09IHVuZGVmaW5lZCA/IGZuLmNhbGwocmVnZXhwLCBPKSA6IG5ldyBSZWdFeHAocmVnZXhwKVtTRUFSQ0hdKFN0cmluZyhPKSk7XG4gIH0sICRzZWFyY2hdO1xufSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnJlZ2V4cC5zZWFyY2guanNcbi8vIG1vZHVsZSBpZCA9IDgzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///83\n"); +eval("// 7.1.15 ToLength\nvar toInteger = __webpack_require__(47);\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWxlbmd0aC5qcz80MTExIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkRBQTJEO0FBQzNEIiwiZmlsZSI6IjgzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gNy4xLjE1IFRvTGVuZ3RoXG52YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi9fdG8taW50ZWdlcicpO1xudmFyIG1pbiA9IE1hdGgubWluO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ID4gMCA/IG1pbih0b0ludGVnZXIoaXQpLCAweDFmZmZmZmZmZmZmZmZmKSA6IDA7IC8vIHBvdygyLCA1MykgLSAxID09IDkwMDcxOTkyNTQ3NDA5OTFcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8tbGVuZ3RoLmpzXG4vLyBtb2R1bGUgaWQgPSA4M1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///83\n"); /***/ }), /* 84 */ /***/ (function(module, exports, __webpack_require__) { -eval("var baseAssignValue = __webpack_require__(85),\n eq = __webpack_require__(86);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hc3NpZ25WYWx1ZS5qcz84YjgzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLE9BQU87QUFDbEIsV0FBVyxFQUFFO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiI4NC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBiYXNlQXNzaWduVmFsdWUgPSByZXF1aXJlKCcuL19iYXNlQXNzaWduVmFsdWUnKSxcbiAgICBlcSA9IHJlcXVpcmUoJy4vZXEnKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBBc3NpZ25zIGB2YWx1ZWAgdG8gYGtleWAgb2YgYG9iamVjdGAgaWYgdGhlIGV4aXN0aW5nIHZhbHVlIGlzIG5vdCBlcXVpdmFsZW50XG4gKiB1c2luZyBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NpZ24uXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gKi9cbmZ1bmN0aW9uIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XTtcbiAgaWYgKCEoaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgJiYgZXEob2JqVmFsdWUsIHZhbHVlKSkgfHxcbiAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpKSB7XG4gICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSk7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhc3NpZ25WYWx1ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXNzaWduVmFsdWUuanNcbi8vIG1vZHVsZSBpZCA9IDg0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///84\n"); +eval("// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(9);\nvar toObject = __webpack_require__(34);\nvar IE_PROTO = __webpack_require__(50)('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1ncG8uanM/M2YzYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0giLCJmaWxlIjoiODQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAxOS4xLjIuOSAvIDE1LjIuMy4yIE9iamVjdC5nZXRQcm90b3R5cGVPZihPKVxudmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgSUVfUFJPVE8gPSByZXF1aXJlKCcuL19zaGFyZWQta2V5JykoJ0lFX1BST1RPJyk7XG52YXIgT2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiAoTykge1xuICBPID0gdG9PYmplY3QoTyk7XG4gIGlmIChoYXMoTywgSUVfUFJPVE8pKSByZXR1cm4gT1tJRV9QUk9UT107XG4gIGlmICh0eXBlb2YgTy5jb25zdHJ1Y3RvciA9PSAnZnVuY3Rpb24nICYmIE8gaW5zdGFuY2VvZiBPLmNvbnN0cnVjdG9yKSB7XG4gICAgcmV0dXJuIE8uY29uc3RydWN0b3IucHJvdG90eXBlO1xuICB9IHJldHVybiBPIGluc3RhbmNlb2YgT2JqZWN0ID8gT2JqZWN0UHJvdG8gOiBudWxsO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ3BvLmpzXG4vLyBtb2R1bGUgaWQgPSA4NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///84\n"); /***/ }), /* 85 */ /***/ (function(module, exports, __webpack_require__) { -eval("var defineProperty = __webpack_require__(66);\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlQXNzaWduVmFsdWUuanM/OWYwZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsT0FBTztBQUNsQixXQUFXLEVBQUU7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiODUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuL19kZWZpbmVQcm9wZXJ0eScpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBhc3NpZ25WYWx1ZWAgYW5kIGBhc3NpZ25NZXJnZVZhbHVlYCB3aXRob3V0XG4gKiB2YWx1ZSBjaGVja3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGFzc2lnbi5cbiAqL1xuZnVuY3Rpb24gYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5ID09ICdfX3Byb3RvX18nICYmIGRlZmluZVByb3BlcnR5KSB7XG4gICAgZGVmaW5lUHJvcGVydHkob2JqZWN0LCBrZXksIHtcbiAgICAgICdjb25maWd1cmFibGUnOiB0cnVlLFxuICAgICAgJ2VudW1lcmFibGUnOiB0cnVlLFxuICAgICAgJ3ZhbHVlJzogdmFsdWUsXG4gICAgICAnd3JpdGFibGUnOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VBc3NpZ25WYWx1ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUFzc2lnblZhbHVlLmpzXG4vLyBtb2R1bGUgaWQgPSA4NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///85\n"); +eval("var classof = __webpack_require__(86);\nvar ITERATOR = __webpack_require__(2)('iterator');\nvar Iterators = __webpack_require__(17);\nmodule.exports = __webpack_require__(1).getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvY29yZS5nZXQtaXRlcmF0b3ItbWV0aG9kLmpzP2RkZmIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiI4NS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBjbGFzc29mID0gcmVxdWlyZSgnLi9fY2xhc3NvZicpO1xudmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2NvcmUnKS5nZXRJdGVyYXRvck1ldGhvZCA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXQgIT0gdW5kZWZpbmVkKSByZXR1cm4gaXRbSVRFUkFUT1JdXG4gICAgfHwgaXRbJ0BAaXRlcmF0b3InXVxuICAgIHx8IEl0ZXJhdG9yc1tjbGFzc29mKGl0KV07XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvY29yZS5nZXQtaXRlcmF0b3ItbWV0aG9kLmpzXG4vLyBtb2R1bGUgaWQgPSA4NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///85\n"); /***/ }), /* 86 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2VxLmpzP2RiNjAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxFQUFFO0FBQ2IsV0FBVyxFQUFFO0FBQ2IsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakIsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6Ijg2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQZXJmb3JtcyBhXG4gKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogY29tcGFyaXNvbiBiZXR3ZWVuIHR3byB2YWx1ZXMgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgYXJlIGVxdWl2YWxlbnQuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxIH07XG4gKiB2YXIgb3RoZXIgPSB7ICdhJzogMSB9O1xuICpcbiAqIF8uZXEob2JqZWN0LCBvYmplY3QpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uZXEob2JqZWN0LCBvdGhlcik7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uZXEoJ2EnLCAnYScpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uZXEoJ2EnLCBPYmplY3QoJ2EnKSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uZXEoTmFOLCBOYU4pO1xuICogLy8gPT4gdHJ1ZVxuICovXG5mdW5jdGlvbiBlcSh2YWx1ZSwgb3RoZXIpIHtcbiAgcmV0dXJuIHZhbHVlID09PSBvdGhlciB8fCAodmFsdWUgIT09IHZhbHVlICYmIG90aGVyICE9PSBvdGhlcik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZXE7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvZXEuanNcbi8vIG1vZHVsZSBpZCA9IDg2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///86\n"); +eval("// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(39);\nvar TAG = __webpack_require__(2)('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NsYXNzb2YuanM/NDU4ZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQixrQkFBa0IsRUFBRTs7QUFFL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLFlBQVk7QUFDZjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiI4Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGdldHRpbmcgdGFnIGZyb20gMTkuMS4zLjYgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZygpXG52YXIgY29mID0gcmVxdWlyZSgnLi9fY29mJyk7XG52YXIgVEFHID0gcmVxdWlyZSgnLi9fd2tzJykoJ3RvU3RyaW5nVGFnJyk7XG4vLyBFUzMgd3JvbmcgaGVyZVxudmFyIEFSRyA9IGNvZihmdW5jdGlvbiAoKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSkgPT0gJ0FyZ3VtZW50cyc7XG5cbi8vIGZhbGxiYWNrIGZvciBJRTExIFNjcmlwdCBBY2Nlc3MgRGVuaWVkIGVycm9yXG52YXIgdHJ5R2V0ID0gZnVuY3Rpb24gKGl0LCBrZXkpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gaXRba2V5XTtcbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgTywgVCwgQjtcbiAgcmV0dXJuIGl0ID09PSB1bmRlZmluZWQgPyAnVW5kZWZpbmVkJyA6IGl0ID09PSBudWxsID8gJ051bGwnXG4gICAgLy8gQEB0b1N0cmluZ1RhZyBjYXNlXG4gICAgOiB0eXBlb2YgKFQgPSB0cnlHZXQoTyA9IE9iamVjdChpdCksIFRBRykpID09ICdzdHJpbmcnID8gVFxuICAgIC8vIGJ1aWx0aW5UYWcgY2FzZVxuICAgIDogQVJHID8gY29mKE8pXG4gICAgLy8gRVMzIGFyZ3VtZW50cyBmYWxsYmFja1xuICAgIDogKEIgPSBjb2YoTykpID09ICdPYmplY3QnICYmIHR5cGVvZiBPLmNhbGxlZSA9PSAnZnVuY3Rpb24nID8gJ0FyZ3VtZW50cycgOiBCO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jbGFzc29mLmpzXG4vLyBtb2R1bGUgaWQgPSA4NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///86\n"); /***/ }), /* 87 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzTGVuZ3RoLmpzPzQ2MWQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsRUFBRTtBQUNiLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiODcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgbGVuZ3RoLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBsb29zZWx5IGJhc2VkIG9uXG4gKiBbYFRvTGVuZ3RoYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtdG9sZW5ndGgpLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgbGVuZ3RoLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNMZW5ndGgoMyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0xlbmd0aChOdW1iZXIuTUlOX1ZBTFVFKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0xlbmd0aChJbmZpbml0eSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNMZW5ndGgoJzMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzTGVuZ3RoKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiZcbiAgICB2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDw9IE1BWF9TQUZFX0lOVEVHRVI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNMZW5ndGg7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNMZW5ndGguanNcbi8vIG1vZHVsZSBpZCA9IDg3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///87\n"); +eval("// @@search logic\n__webpack_require__(75)('search', 1, function (defined, SEARCH, $search) {\n // 21.1.3.15 String.prototype.search(regexp)\n return [function search(regexp) {\n 'use strict';\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n }, $search];\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5yZWdleHAuc2VhcmNoLmpzP2FiMDQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxDQUFDIiwiZmlsZSI6Ijg3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQEBzZWFyY2ggbG9naWNcbnJlcXVpcmUoJy4vX2ZpeC1yZS13a3MnKSgnc2VhcmNoJywgMSwgZnVuY3Rpb24gKGRlZmluZWQsIFNFQVJDSCwgJHNlYXJjaCkge1xuICAvLyAyMS4xLjMuMTUgU3RyaW5nLnByb3RvdHlwZS5zZWFyY2gocmVnZXhwKVxuICByZXR1cm4gW2Z1bmN0aW9uIHNlYXJjaChyZWdleHApIHtcbiAgICAndXNlIHN0cmljdCc7XG4gICAgdmFyIE8gPSBkZWZpbmVkKHRoaXMpO1xuICAgIHZhciBmbiA9IHJlZ2V4cCA9PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiByZWdleHBbU0VBUkNIXTtcbiAgICByZXR1cm4gZm4gIT09IHVuZGVmaW5lZCA/IGZuLmNhbGwocmVnZXhwLCBPKSA6IG5ldyBSZWdFeHAocmVnZXhwKVtTRUFSQ0hdKFN0cmluZyhPKSk7XG4gIH0sICRzZWFyY2hdO1xufSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnJlZ2V4cC5zZWFyY2guanNcbi8vIG1vZHVsZSBpZCA9IDg3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///87\n"); /***/ }), /* 88 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19pc0luZGV4LmpzPzY0NjgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxFQUFFO0FBQ2IsV0FBVyxPQUFPO0FBQ2xCLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6Ijg4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgTUFYX1NBRkVfSU5URUdFUiA9IDkwMDcxOTkyNTQ3NDA5OTE7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlcy4gKi9cbnZhciByZUlzVWludCA9IC9eKD86MHxbMS05XVxcZCopJC87XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBhcnJheS1saWtlIGluZGV4LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPU1BWF9TQUZFX0lOVEVHRVJdIFRoZSB1cHBlciBib3VuZHMgb2YgYSB2YWxpZCBpbmRleC5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgaW5kZXgsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNJbmRleCh2YWx1ZSwgbGVuZ3RoKSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICBsZW5ndGggPSBsZW5ndGggPT0gbnVsbCA/IE1BWF9TQUZFX0lOVEVHRVIgOiBsZW5ndGg7XG5cbiAgcmV0dXJuICEhbGVuZ3RoICYmXG4gICAgKHR5cGUgPT0gJ251bWJlcicgfHxcbiAgICAgICh0eXBlICE9ICdzeW1ib2wnICYmIHJlSXNVaW50LnRlc3QodmFsdWUpKSkgJiZcbiAgICAgICAgKHZhbHVlID4gLTEgJiYgdmFsdWUgJSAxID09IDAgJiYgdmFsdWUgPCBsZW5ndGgpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzSW5kZXg7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2lzSW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDg4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///88\n"); +eval("var baseAssignValue = __webpack_require__(89),\n eq = __webpack_require__(90);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hc3NpZ25WYWx1ZS5qcz84YjgzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLE9BQU87QUFDbEIsV0FBVyxFQUFFO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiI4OC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBiYXNlQXNzaWduVmFsdWUgPSByZXF1aXJlKCcuL19iYXNlQXNzaWduVmFsdWUnKSxcbiAgICBlcSA9IHJlcXVpcmUoJy4vZXEnKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBBc3NpZ25zIGB2YWx1ZWAgdG8gYGtleWAgb2YgYG9iamVjdGAgaWYgdGhlIGV4aXN0aW5nIHZhbHVlIGlzIG5vdCBlcXVpdmFsZW50XG4gKiB1c2luZyBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NpZ24uXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gKi9cbmZ1bmN0aW9uIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XTtcbiAgaWYgKCEoaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgJiYgZXEob2JqVmFsdWUsIHZhbHVlKSkgfHxcbiAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpKSB7XG4gICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSk7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhc3NpZ25WYWx1ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXNzaWduVmFsdWUuanNcbi8vIG1vZHVsZSBpZCA9IDg4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///88\n"); /***/ }), /* 89 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19pc1Byb3RvdHlwZS5qcz8xZDNlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSIsImZpbGUiOiI4OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGlrZWx5IGEgcHJvdG90eXBlIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHByb3RvdHlwZSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc1Byb3RvdHlwZSh2YWx1ZSkge1xuICB2YXIgQ3RvciA9IHZhbHVlICYmIHZhbHVlLmNvbnN0cnVjdG9yLFxuICAgICAgcHJvdG8gPSAodHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yLnByb3RvdHlwZSkgfHwgb2JqZWN0UHJvdG87XG5cbiAgcmV0dXJuIHZhbHVlID09PSBwcm90bztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc1Byb3RvdHlwZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faXNQcm90b3R5cGUuanNcbi8vIG1vZHVsZSBpZCA9IDg5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///89\n"); +eval("var defineProperty = __webpack_require__(70);\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlQXNzaWduVmFsdWUuanM/OWYwZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsT0FBTztBQUNsQixXQUFXLEVBQUU7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiODkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuL19kZWZpbmVQcm9wZXJ0eScpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBhc3NpZ25WYWx1ZWAgYW5kIGBhc3NpZ25NZXJnZVZhbHVlYCB3aXRob3V0XG4gKiB2YWx1ZSBjaGVja3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGFzc2lnbi5cbiAqL1xuZnVuY3Rpb24gYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5ID09ICdfX3Byb3RvX18nICYmIGRlZmluZVByb3BlcnR5KSB7XG4gICAgZGVmaW5lUHJvcGVydHkob2JqZWN0LCBrZXksIHtcbiAgICAgICdjb25maWd1cmFibGUnOiB0cnVlLFxuICAgICAgJ2VudW1lcmFibGUnOiB0cnVlLFxuICAgICAgJ3ZhbHVlJzogdmFsdWUsXG4gICAgICAnd3JpdGFibGUnOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VBc3NpZ25WYWx1ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUFzc2lnblZhbHVlLmpzXG4vLyBtb2R1bGUgaWQgPSA4OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///89\n"); /***/ }), /* 90 */ /***/ (function(module, exports) { -eval("module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vKHdlYnBhY2spL2J1aWxkaW4vbW9kdWxlLmpzP2MzYzIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjkwLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihtb2R1bGUpIHtcclxuXHRpZighbW9kdWxlLndlYnBhY2tQb2x5ZmlsbCkge1xyXG5cdFx0bW9kdWxlLmRlcHJlY2F0ZSA9IGZ1bmN0aW9uKCkge307XHJcblx0XHRtb2R1bGUucGF0aHMgPSBbXTtcclxuXHRcdC8vIG1vZHVsZS5wYXJlbnQgPSB1bmRlZmluZWQgYnkgZGVmYXVsdFxyXG5cdFx0aWYoIW1vZHVsZS5jaGlsZHJlbikgbW9kdWxlLmNoaWxkcmVuID0gW107XHJcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCBcImxvYWRlZFwiLCB7XHJcblx0XHRcdGVudW1lcmFibGU6IHRydWUsXHJcblx0XHRcdGdldDogZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0cmV0dXJuIG1vZHVsZS5sO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtb2R1bGUsIFwiaWRcIiwge1xyXG5cdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxyXG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdHJldHVybiBtb2R1bGUuaTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHRtb2R1bGUud2VicGFja1BvbHlmaWxsID0gMTtcclxuXHR9XHJcblx0cmV0dXJuIG1vZHVsZTtcclxufTtcclxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gKHdlYnBhY2spL2J1aWxkaW4vbW9kdWxlLmpzXG4vLyBtb2R1bGUgaWQgPSA5MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///90\n"); +eval("/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2VxLmpzP2RiNjAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxFQUFFO0FBQ2IsV0FBVyxFQUFFO0FBQ2IsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakIsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjkwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQZXJmb3JtcyBhXG4gKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogY29tcGFyaXNvbiBiZXR3ZWVuIHR3byB2YWx1ZXMgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgYXJlIGVxdWl2YWxlbnQuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxIH07XG4gKiB2YXIgb3RoZXIgPSB7ICdhJzogMSB9O1xuICpcbiAqIF8uZXEob2JqZWN0LCBvYmplY3QpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uZXEob2JqZWN0LCBvdGhlcik7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uZXEoJ2EnLCAnYScpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uZXEoJ2EnLCBPYmplY3QoJ2EnKSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uZXEoTmFOLCBOYU4pO1xuICogLy8gPT4gdHJ1ZVxuICovXG5mdW5jdGlvbiBlcSh2YWx1ZSwgb3RoZXIpIHtcbiAgcmV0dXJuIHZhbHVlID09PSBvdGhlciB8fCAodmFsdWUgIT09IHZhbHVlICYmIG90aGVyICE9PSBvdGhlcik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZXE7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvZXEuanNcbi8vIG1vZHVsZSBpZCA9IDkwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///90\n"); /***/ }), /* 91 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.selectedProduct = exports.productTemplate = void 0;\n\nvar _i18n = __webpack_require__(26);\n\n/**\n * @module Product Template\n * @description Return product HTML from json results.\n */\n\n/**\n * @function productTemplate\n * @description Render the product card html with json response data.\n * @param productData json obj\n * @returns {string}\n */\nvar productTemplate = function productTemplate(productData) {\n return \"\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t

\").concat(productData.title, \"

\\n\\t\\t\\t\\t\\t\").concat(productData.price, \"\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\").concat(productData.desc, \"
\\n\\t\\t\\t\\t\\n\\t\\t\\t
\\n\\t\\t\\t\\n\\t\\t
\\n\\t\");\n};\n\nexports.productTemplate = productTemplate;\n\nvar selectedProduct = function selectedProduct(productData) {\n return \"\\n\\t\\t
  • \\n\\t\\t\\t
    \").concat(productData.title, \" \").concat(productData.price, \"
    \\n\\t\\t\\t\").concat(_i18n.I18N.text.id_prefix, \" \").concat(productData.bcid, \"\\n\\t\\t\\t\\n\\t\\t
  • \\n\\t\");\n};\n\nexports.selectedProduct = selectedProduct;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL3Nob3J0Y29kZS11aS9wcm9kdWN0LXRlbXBsYXRlLmpzPzIzOGUiXSwibmFtZXMiOlsicHJvZHVjdFRlbXBsYXRlIiwicHJvZHVjdERhdGEiLCJzZWxlY3RlZCIsImJjaWQiLCJjbGFzc2VzIiwiaW1hZ2UiLCJ0aXRsZSIsInByaWNlIiwiZGVzYyIsImlkIiwiYnV0dG9uX3RleHQiLCJzZWxlY3RlZFByb2R1Y3QiLCJ0ZXh0IiwiaWRfcHJlZml4IiwiYnV0dG9ucyIsInJlbW92ZV9zZWxlY3RlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUtBOztBQUxBOzs7OztBQU9BOzs7Ozs7QUFNTyxJQUFNQSxrQkFBa0IsU0FBbEJBLGVBQWtCO0FBQUEsOERBRVNDLFlBQVlDLFFBRnJCLCtCQUVnREQsWUFBWUUsSUFGNUQsK0hBSXFCRixZQUFZRyxPQUpqQyw4Q0FJMEVILFlBQVlJLEtBSnRGLDJJQU1tQkosWUFBWUssS0FOL0IsNkVBT3FCTCxZQUFZTSxLQVBqQyxrR0FTeUJOLFlBQVlPLElBVHJDLDRNQVk4RVAsWUFBWVEsRUFaMUYsNEJBWTRHUixZQUFZRSxJQVp4SCw2QkFZNklGLFlBQVlLLEtBWnpKLDZCQVkrS0wsWUFBWU0sS0FaM0wsaUZBYTRCTixZQUFZUyxXQWJ4QztBQUFBLENBQXhCOzs7O0FBbUJBLElBQU1DLGtCQUFrQixTQUFsQkEsZUFBa0I7QUFBQSx3RkFFaUNWLFlBQVlFLElBRjdDLDhCQUVtRUYsWUFBWVEsRUFGL0UsOEVBRzBCUixZQUFZSyxLQUh0QyxjQUcrQ0wsWUFBWU0sS0FIM0QsMkZBSW9DTixZQUFZRSxJQUpoRCxnQkFJeUQsV0FBS1MsSUFBTCxDQUFVQyxTQUpuRSxjQUlnRlosWUFBWUUsSUFKNUYsc0lBS3lFRixZQUFZRSxJQUxyRiw4QkFLMkdGLFlBQVlRLEVBTHZILGdCQUs4SCxXQUFLSyxPQUFMLENBQWFDLGVBTDNJO0FBQUEsQ0FBeEIiLCJmaWxlIjoiOTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgUHJvZHVjdCBUZW1wbGF0ZVxuICogQGRlc2NyaXB0aW9uIFJldHVybiBwcm9kdWN0IEhUTUwgZnJvbSBqc29uIHJlc3VsdHMuXG4gKi9cblxuaW1wb3J0IHsgSTE4TiB9IGZyb20gJy4uL2NvbmZpZy9pMThuJztcblxuLyoqXG4gKiBAZnVuY3Rpb24gcHJvZHVjdFRlbXBsYXRlXG4gKiBAZGVzY3JpcHRpb24gUmVuZGVyIHRoZSBwcm9kdWN0IGNhcmQgaHRtbCB3aXRoIGpzb24gcmVzcG9uc2UgZGF0YS5cbiAqIEBwYXJhbSBwcm9kdWN0RGF0YSBqc29uIG9ialxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGNvbnN0IHByb2R1Y3RUZW1wbGF0ZSA9IHByb2R1Y3REYXRhID0+IChcblx0YFxuXHRcdDxkaXYgY2xhc3M9XCJiYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3Qke3Byb2R1Y3REYXRhLnNlbGVjdGVkfVwiIGRhdGEtcHJvZHVjdD1cIiR7cHJvZHVjdERhdGEuYmNpZH1cIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJiYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtaW5uZXJcIj5cblx0XHRcdFx0PGZpZ3VyZSBjbGFzcz1cImJjLXNob3J0Y29kZS11aV9fcHJvZHVjdC1pbWFnZSAke3Byb2R1Y3REYXRhLmNsYXNzZXN9XCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHtwcm9kdWN0RGF0YS5pbWFnZX0pO1wiPjwvZmlndXJlPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LW1ldGFcIj5cblx0XHRcdFx0XHQ8aDMgY2xhc3M9XCJiYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtdGl0bGVcIj4ke3Byb2R1Y3REYXRhLnRpdGxlfTwvaDM+XG5cdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJiYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtcHJpY2VcIj4ke3Byb2R1Y3REYXRhLnByaWNlfTwvc3Bhbj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJiYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtZGVzY3JpcHRpb25cIj4ke3Byb2R1Y3REYXRhLmRlc2N9PC9kaXY+XG5cdFx0XHRcdDxpIGNsYXNzPVwiYmMtaWNvbiBpY29uLWJjLXNlbGVjdGVkXCI+PC9pPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJjLXNob3J0Y29kZS11aV9fcHJvZHVjdC1hbmNob3JcIiBkYXRhLWpzPVwiYWRkLXJlbW92ZS1wcm9kdWN0XCIgZGF0YS1wb3N0aWQ9XCIke3Byb2R1Y3REYXRhLmlkfVwiIGRhdGEtYmNpZD1cIiR7cHJvZHVjdERhdGEuYmNpZH1cIiBkYXRhLXRpdGxlPVwiJHtwcm9kdWN0RGF0YS50aXRsZX1cIiBkYXRhLXByaWNlPVwiJHtwcm9kdWN0RGF0YS5wcmljZX1cIj5cblx0XHRcdFx0PHNwYW4gY2xhc3M9XCJiYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtYW5jaG9yLXN0YXR1c1wiPiR7cHJvZHVjdERhdGEuYnV0dG9uX3RleHR9PC9zcGFuPlxuXHRcdFx0PC9idXR0b24+XG5cdFx0PC9kaXY+XG5cdGBcbik7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RlZFByb2R1Y3QgPSBwcm9kdWN0RGF0YSA9PiAoXG5cdGBcblx0XHQ8bGkgY2xhc3M9XCJiYy1zaG9ydGNvZGUtdWlfX3NlbGVjdGVkLXByb2R1Y3RcIiBkYXRhLXByb2R1Y3Q9XCIke3Byb2R1Y3REYXRhLmJjaWR9XCIgZGF0YS1wb3N0aWQ9XCIke3Byb2R1Y3REYXRhLmlkfVwiPlxuXHRcdFx0PGg1IGNsYXNzPVwiYmMtc2hvcnRjb2RlLXVpX19zZWxlY3RlZC1wcm9kdWN0LXRpdGxlXCI+JHtwcm9kdWN0RGF0YS50aXRsZX0gJHtwcm9kdWN0RGF0YS5wcmljZX08L2g1PlxuXHRcdFx0PHNwYW4gY2xhc3M9XCJiYy1zaG9ydGNvZGUtdWlfX3NlbGVjdGVkLXByb2R1Y3QtaWRcIiBkYXRhLWJjaWQ9XCIke3Byb2R1Y3REYXRhLmJjaWR9XCI+JHtJMThOLnRleHQuaWRfcHJlZml4fSAke3Byb2R1Y3REYXRhLmJjaWR9PC9zcGFuPlxuXHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJiYy1zaG9ydGNvZGUtdWlfX3JlbW92ZS1zZWxlY3RlZFwiIGRhdGEtanM9XCJyZW1vdmUtcHJvZHVjdFwiIGRhdGEtYmNpZD1cIiR7cHJvZHVjdERhdGEuYmNpZH1cIiBkYXRhLXBvc3RpZD1cIiR7cHJvZHVjdERhdGEuaWR9XCI+JHtJMThOLmJ1dHRvbnMucmVtb3ZlX3NlbGVjdGVkfTwvYnV0dG9uPlxuXHRcdDwvbGk+XG5cdGBcbik7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL3Nob3J0Y29kZS11aS9wcm9kdWN0LXRlbXBsYXRlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///91\n"); +eval("/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzTGVuZ3RoLmpzPzQ2MWQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsRUFBRTtBQUNiLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiOTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgbGVuZ3RoLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBsb29zZWx5IGJhc2VkIG9uXG4gKiBbYFRvTGVuZ3RoYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtdG9sZW5ndGgpLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgbGVuZ3RoLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNMZW5ndGgoMyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0xlbmd0aChOdW1iZXIuTUlOX1ZBTFVFKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0xlbmd0aChJbmZpbml0eSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNMZW5ndGgoJzMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzTGVuZ3RoKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiZcbiAgICB2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDw9IE1BWF9TQUZFX0lOVEVHRVI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNMZW5ndGg7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNMZW5ndGguanNcbi8vIG1vZHVsZSBpZCA9IDkxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///91\n"); /***/ }), /* 92 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -"use strict"; -eval("\n\n/**\n * Check if `obj` is an object.\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\n\nfunction isObject(obj) {\n return null !== obj && 'object' === typeof obj;\n}\n\nmodule.exports = isObject;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvc3VwZXJhZ2VudC9saWIvaXMtb2JqZWN0LmpzPzE0ODAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiI5Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBDaGVjayBpZiBgb2JqYCBpcyBhbiBvYmplY3QuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGlzT2JqZWN0KG9iaikge1xuICByZXR1cm4gbnVsbCAhPT0gb2JqICYmICdvYmplY3QnID09PSB0eXBlb2Ygb2JqO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzT2JqZWN0O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvc3VwZXJhZ2VudC9saWIvaXMtb2JqZWN0LmpzXG4vLyBtb2R1bGUgaWQgPSA5MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///92\n"); +eval("/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19pc0luZGV4LmpzPzY0NjgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxFQUFFO0FBQ2IsV0FBVyxPQUFPO0FBQ2xCLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjkyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgTUFYX1NBRkVfSU5URUdFUiA9IDkwMDcxOTkyNTQ3NDA5OTE7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlcy4gKi9cbnZhciByZUlzVWludCA9IC9eKD86MHxbMS05XVxcZCopJC87XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBhcnJheS1saWtlIGluZGV4LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPU1BWF9TQUZFX0lOVEVHRVJdIFRoZSB1cHBlciBib3VuZHMgb2YgYSB2YWxpZCBpbmRleC5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgaW5kZXgsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNJbmRleCh2YWx1ZSwgbGVuZ3RoKSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICBsZW5ndGggPSBsZW5ndGggPT0gbnVsbCA/IE1BWF9TQUZFX0lOVEVHRVIgOiBsZW5ndGg7XG5cbiAgcmV0dXJuICEhbGVuZ3RoICYmXG4gICAgKHR5cGUgPT0gJ251bWJlcicgfHxcbiAgICAgICh0eXBlICE9ICdzeW1ib2wnICYmIHJlSXNVaW50LnRlc3QodmFsdWUpKSkgJiZcbiAgICAgICAgKHZhbHVlID4gLTEgJiYgdmFsdWUgJSAxID09IDAgJiYgdmFsdWUgPCBsZW5ndGgpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzSW5kZXg7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2lzSW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDkyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///92\n"); /***/ }), /* 93 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -eval("var _Object$assign = __webpack_require__(210);\n\nfunction _extends() {\n module.exports = _extends = _Object$assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9leHRlbmRzLmpzPzk2ZGYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBLG1CQUFtQixzQkFBc0I7QUFDekM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSIsImZpbGUiOiI5My5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfT2JqZWN0JGFzc2lnbiA9IHJlcXVpcmUoXCIuLi9jb3JlLWpzL29iamVjdC9hc3NpZ25cIik7XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkge1xuICBtb2R1bGUuZXhwb3J0cyA9IF9leHRlbmRzID0gX09iamVjdCRhc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkge1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldO1xuXG4gICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH07XG5cbiAgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2V4dGVuZHM7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9leHRlbmRzLmpzXG4vLyBtb2R1bGUgaWQgPSA5M1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///93\n"); +eval("/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19pc1Byb3RvdHlwZS5qcz8xZDNlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSIsImZpbGUiOiI5My5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGlrZWx5IGEgcHJvdG90eXBlIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHByb3RvdHlwZSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc1Byb3RvdHlwZSh2YWx1ZSkge1xuICB2YXIgQ3RvciA9IHZhbHVlICYmIHZhbHVlLmNvbnN0cnVjdG9yLFxuICAgICAgcHJvdG8gPSAodHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yLnByb3RvdHlwZSkgfHwgb2JqZWN0UHJvdG87XG5cbiAgcmV0dXJuIHZhbHVlID09PSBwcm90bztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc1Byb3RvdHlwZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faXNQcm90b3R5cGUuanNcbi8vIG1vZHVsZSBpZCA9IDkzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///93\n"); /***/ }), /* 94 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -eval("module.exports = __webpack_require__(215);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvY29yZS1qcy9vYmplY3QvZ2V0LXByb3RvdHlwZS1vZi5qcz9kMmE5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ijk0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9nZXQtcHJvdG90eXBlLW9mXCIpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2NvcmUtanMvb2JqZWN0L2dldC1wcm90b3R5cGUtb2YuanNcbi8vIG1vZHVsZSBpZCA9IDk0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///94\n"); +eval("module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vKHdlYnBhY2spL2J1aWxkaW4vbW9kdWxlLmpzP2MzYzIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ijk0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihtb2R1bGUpIHtcclxuXHRpZighbW9kdWxlLndlYnBhY2tQb2x5ZmlsbCkge1xyXG5cdFx0bW9kdWxlLmRlcHJlY2F0ZSA9IGZ1bmN0aW9uKCkge307XHJcblx0XHRtb2R1bGUucGF0aHMgPSBbXTtcclxuXHRcdC8vIG1vZHVsZS5wYXJlbnQgPSB1bmRlZmluZWQgYnkgZGVmYXVsdFxyXG5cdFx0aWYoIW1vZHVsZS5jaGlsZHJlbikgbW9kdWxlLmNoaWxkcmVuID0gW107XHJcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCBcImxvYWRlZFwiLCB7XHJcblx0XHRcdGVudW1lcmFibGU6IHRydWUsXHJcblx0XHRcdGdldDogZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0cmV0dXJuIG1vZHVsZS5sO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtb2R1bGUsIFwiaWRcIiwge1xyXG5cdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxyXG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdHJldHVybiBtb2R1bGUuaTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHRtb2R1bGUud2VicGFja1BvbHlmaWxsID0gMTtcclxuXHR9XHJcblx0cmV0dXJuIG1vZHVsZTtcclxufTtcclxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gKHdlYnBhY2spL2J1aWxkaW4vbW9kdWxlLmpzXG4vLyBtb2R1bGUgaWQgPSA5NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///94\n"); /***/ }), /* 95 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjay5qcz82N2FkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiOTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9jbGFzc0NhbGxDaGVjaztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrLmpzXG4vLyBtb2R1bGUgaWQgPSA5NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///95\n"); +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.selectedProduct = exports.productTemplate = void 0;\n\nvar _i18n = __webpack_require__(24);\n\n/**\n * @module Product Template\n * @description Return product HTML from json results.\n */\n\n/**\n * @function productTemplate\n * @description Render the product card html with json response data.\n * @param productData json obj\n * @returns {string}\n */\nvar productTemplate = function productTemplate(productData) {\n return \"\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t

    \").concat(productData.title, \"

    \\n\\t\\t\\t\\t\\t\").concat(productData.price, \"\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t
    \").concat(productData.desc, \"
    \\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\t\");\n};\n\nexports.productTemplate = productTemplate;\n\nvar selectedProduct = function selectedProduct(productData) {\n return \"\\n\\t\\t
  • \\n\\t\\t\\t
    \").concat(productData.title, \" \").concat(productData.price, \"
    \\n\\t\\t\\t\").concat(_i18n.I18N.text.id_prefix, \" \").concat(productData.bcid, \"\\n\\t\\t\\t\\n\\t\\t
  • \\n\\t\");\n};\n\nexports.selectedProduct = selectedProduct;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL3Nob3J0Y29kZS11aS9wcm9kdWN0LXRlbXBsYXRlLmpzPzIzOGUiXSwibmFtZXMiOlsicHJvZHVjdFRlbXBsYXRlIiwicHJvZHVjdERhdGEiLCJzZWxlY3RlZCIsImJjaWQiLCJjbGFzc2VzIiwiaW1hZ2UiLCJ0aXRsZSIsInByaWNlIiwiZGVzYyIsImlkIiwiYnV0dG9uX3RleHQiLCJzZWxlY3RlZFByb2R1Y3QiLCJ0ZXh0IiwiaWRfcHJlZml4IiwiYnV0dG9ucyIsInJlbW92ZV9zZWxlY3RlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUtBOztBQUxBOzs7OztBQU9BOzs7Ozs7QUFNTyxJQUFNQSxrQkFBa0IsU0FBbEJBLGVBQWtCO0FBQUEsOERBRVNDLFlBQVlDLFFBRnJCLCtCQUVnREQsWUFBWUUsSUFGNUQsK0hBSXFCRixZQUFZRyxPQUpqQyw4Q0FJMEVILFlBQVlJLEtBSnRGLDJJQU1tQkosWUFBWUssS0FOL0IsNkVBT3FCTCxZQUFZTSxLQVBqQyxrR0FTeUJOLFlBQVlPLElBVHJDLDRNQVk4RVAsWUFBWVEsRUFaMUYsNEJBWTRHUixZQUFZRSxJQVp4SCw2QkFZNklGLFlBQVlLLEtBWnpKLDZCQVkrS0wsWUFBWU0sS0FaM0wsaUZBYTRCTixZQUFZUyxXQWJ4QztBQUFBLENBQXhCOzs7O0FBbUJBLElBQU1DLGtCQUFrQixTQUFsQkEsZUFBa0I7QUFBQSx3RkFFaUNWLFlBQVlFLElBRjdDLDhCQUVtRUYsWUFBWVEsRUFGL0UsOEVBRzBCUixZQUFZSyxLQUh0QyxjQUcrQ0wsWUFBWU0sS0FIM0QsMkZBSW9DTixZQUFZRSxJQUpoRCxnQkFJeUQsV0FBS1MsSUFBTCxDQUFVQyxTQUpuRSxjQUlnRlosWUFBWUUsSUFKNUYsc0lBS3lFRixZQUFZRSxJQUxyRiw4QkFLMkdGLFlBQVlRLEVBTHZILGdCQUs4SCxXQUFLSyxPQUFMLENBQWFDLGVBTDNJO0FBQUEsQ0FBeEIiLCJmaWxlIjoiOTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgUHJvZHVjdCBUZW1wbGF0ZVxuICogQGRlc2NyaXB0aW9uIFJldHVybiBwcm9kdWN0IEhUTUwgZnJvbSBqc29uIHJlc3VsdHMuXG4gKi9cblxuaW1wb3J0IHsgSTE4TiB9IGZyb20gJy4uL2NvbmZpZy9pMThuJztcblxuLyoqXG4gKiBAZnVuY3Rpb24gcHJvZHVjdFRlbXBsYXRlXG4gKiBAZGVzY3JpcHRpb24gUmVuZGVyIHRoZSBwcm9kdWN0IGNhcmQgaHRtbCB3aXRoIGpzb24gcmVzcG9uc2UgZGF0YS5cbiAqIEBwYXJhbSBwcm9kdWN0RGF0YSBqc29uIG9ialxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGNvbnN0IHByb2R1Y3RUZW1wbGF0ZSA9IHByb2R1Y3REYXRhID0+IChcblx0YFxuXHRcdDxkaXYgY2xhc3M9XCJiYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3Qke3Byb2R1Y3REYXRhLnNlbGVjdGVkfVwiIGRhdGEtcHJvZHVjdD1cIiR7cHJvZHVjdERhdGEuYmNpZH1cIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJiYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtaW5uZXJcIj5cblx0XHRcdFx0PGZpZ3VyZSBjbGFzcz1cImJjLXNob3J0Y29kZS11aV9fcHJvZHVjdC1pbWFnZSAke3Byb2R1Y3REYXRhLmNsYXNzZXN9XCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHtwcm9kdWN0RGF0YS5pbWFnZX0pO1wiPjwvZmlndXJlPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LW1ldGFcIj5cblx0XHRcdFx0XHQ8aDMgY2xhc3M9XCJiYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtdGl0bGVcIj4ke3Byb2R1Y3REYXRhLnRpdGxlfTwvaDM+XG5cdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJiYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtcHJpY2VcIj4ke3Byb2R1Y3REYXRhLnByaWNlfTwvc3Bhbj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJiYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtZGVzY3JpcHRpb25cIj4ke3Byb2R1Y3REYXRhLmRlc2N9PC9kaXY+XG5cdFx0XHRcdDxpIGNsYXNzPVwiYmMtaWNvbiBpY29uLWJjLXNlbGVjdGVkXCI+PC9pPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJjLXNob3J0Y29kZS11aV9fcHJvZHVjdC1hbmNob3JcIiBkYXRhLWpzPVwiYWRkLXJlbW92ZS1wcm9kdWN0XCIgZGF0YS1wb3N0aWQ9XCIke3Byb2R1Y3REYXRhLmlkfVwiIGRhdGEtYmNpZD1cIiR7cHJvZHVjdERhdGEuYmNpZH1cIiBkYXRhLXRpdGxlPVwiJHtwcm9kdWN0RGF0YS50aXRsZX1cIiBkYXRhLXByaWNlPVwiJHtwcm9kdWN0RGF0YS5wcmljZX1cIj5cblx0XHRcdFx0PHNwYW4gY2xhc3M9XCJiYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtYW5jaG9yLXN0YXR1c1wiPiR7cHJvZHVjdERhdGEuYnV0dG9uX3RleHR9PC9zcGFuPlxuXHRcdFx0PC9idXR0b24+XG5cdFx0PC9kaXY+XG5cdGBcbik7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RlZFByb2R1Y3QgPSBwcm9kdWN0RGF0YSA9PiAoXG5cdGBcblx0XHQ8bGkgY2xhc3M9XCJiYy1zaG9ydGNvZGUtdWlfX3NlbGVjdGVkLXByb2R1Y3RcIiBkYXRhLXByb2R1Y3Q9XCIke3Byb2R1Y3REYXRhLmJjaWR9XCIgZGF0YS1wb3N0aWQ9XCIke3Byb2R1Y3REYXRhLmlkfVwiPlxuXHRcdFx0PGg1IGNsYXNzPVwiYmMtc2hvcnRjb2RlLXVpX19zZWxlY3RlZC1wcm9kdWN0LXRpdGxlXCI+JHtwcm9kdWN0RGF0YS50aXRsZX0gJHtwcm9kdWN0RGF0YS5wcmljZX08L2g1PlxuXHRcdFx0PHNwYW4gY2xhc3M9XCJiYy1zaG9ydGNvZGUtdWlfX3NlbGVjdGVkLXByb2R1Y3QtaWRcIiBkYXRhLWJjaWQ9XCIke3Byb2R1Y3REYXRhLmJjaWR9XCI+JHtJMThOLnRleHQuaWRfcHJlZml4fSAke3Byb2R1Y3REYXRhLmJjaWR9PC9zcGFuPlxuXHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJiYy1zaG9ydGNvZGUtdWlfX3JlbW92ZS1zZWxlY3RlZFwiIGRhdGEtanM9XCJyZW1vdmUtcHJvZHVjdFwiIGRhdGEtYmNpZD1cIiR7cHJvZHVjdERhdGEuYmNpZH1cIiBkYXRhLXBvc3RpZD1cIiR7cHJvZHVjdERhdGEuaWR9XCI+JHtJMThOLmJ1dHRvbnMucmVtb3ZlX3NlbGVjdGVkfTwvYnV0dG9uPlxuXHRcdDwvbGk+XG5cdGBcbik7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL3Nob3J0Y29kZS11aS9wcm9kdWN0LXRlbXBsYXRlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///95\n"); /***/ }), /* 96 */ /***/ (function(module, exports, __webpack_require__) { -eval("var _Object$defineProperty = __webpack_require__(63);\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n\n _Object$defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcy5qcz8wYmRiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0EsaUJBQWlCLGtCQUFrQjtBQUNuQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiI5Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfT2JqZWN0JGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZShcIi4uL2NvcmUtanMvb2JqZWN0L2RlZmluZS1wcm9wZXJ0eVwiKTtcblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG5cbiAgICBfT2JqZWN0JGRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gIGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgcmV0dXJuIENvbnN0cnVjdG9yO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9jcmVhdGVDbGFzcztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzLmpzXG4vLyBtb2R1bGUgaWQgPSA5NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///96\n"); +"use strict"; +eval("\n\n/**\n * Check if `obj` is an object.\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\n\nfunction isObject(obj) {\n return null !== obj && 'object' === typeof obj;\n}\n\nmodule.exports = isObject;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvc3VwZXJhZ2VudC9saWIvaXMtb2JqZWN0LmpzPzE0ODAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiI5Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBDaGVjayBpZiBgb2JqYCBpcyBhbiBvYmplY3QuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGlzT2JqZWN0KG9iaikge1xuICByZXR1cm4gbnVsbCAhPT0gb2JqICYmICdvYmplY3QnID09PSB0eXBlb2Ygb2JqO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzT2JqZWN0O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvc3VwZXJhZ2VudC9saWIvaXMtb2JqZWN0LmpzXG4vLyBtb2R1bGUgaWQgPSA5NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///96\n"); /***/ }), /* 97 */ /***/ (function(module, exports, __webpack_require__) { -eval("var _typeof = __webpack_require__(217);\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _possibleConstructorReturn;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzPzRmZmIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiOTcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX3R5cGVvZiA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL3R5cGVvZlwiKTtcblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkge1xuICBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkge1xuICAgIHJldHVybiBjYWxsO1xuICB9XG5cbiAgaWYgKHNlbGYgPT09IHZvaWQgMCkge1xuICAgIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtcbiAgfVxuXG4gIHJldHVybiBzZWxmO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybi5qc1xuLy8gbW9kdWxlIGlkID0gOTdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///97\n"); +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IMPORT_PROGRESS_NONCE = exports.IMPORT_PROGRESS_ACTION = exports.DIAGNOSTICS_SECTION = exports.DIAGNOSTICS_ACTION = exports.DIAGNOSTICS_NONCE = exports.COUNTRIES_OBJ = exports.ACCOUNT_ACTION = exports.ACCOUNT_NONCE = exports.ADMIN_AJAX = exports.PRODUCTS_ORDER = exports.PRODUCTS_RECENT = exports.PRODUCTS_SEARCH = exports.PRODUCTS_BRAND = exports.PRODUCTS_FLAG = exports.PRODUCTS_CATEGORY = exports.ADMIN_ICONS = exports.ADMIN_IMAGES = exports.SHORTCODE_ENDPOINT = exports.PRODUCTS_ENDPOINT = void 0;\n\n__webpack_require__(87);\n\n__webpack_require__(197);\n\nvar wpadmin = window.bigcommerce_admin_config || {};\nvar editorDialog = wpadmin.editor_dialog || {};\nvar PRODUCTS_ENDPOINT = editorDialog.product_api_url || '';\nexports.PRODUCTS_ENDPOINT = PRODUCTS_ENDPOINT;\nvar SHORTCODE_ENDPOINT = editorDialog.shortcode_api_url || '';\nexports.SHORTCODE_ENDPOINT = SHORTCODE_ENDPOINT;\nvar ADMIN_IMAGES = wpadmin.images_url || '';\nexports.ADMIN_IMAGES = ADMIN_IMAGES;\nvar ADMIN_ICONS = wpadmin.icons_url || '';\nexports.ADMIN_ICONS = ADMIN_ICONS;\nvar PRODUCTS_CATEGORY = wpadmin.categories;\nexports.PRODUCTS_CATEGORY = PRODUCTS_CATEGORY;\nvar PRODUCTS_FLAG = wpadmin.flags;\nexports.PRODUCTS_FLAG = PRODUCTS_FLAG;\nvar PRODUCTS_BRAND = wpadmin.brands;\nexports.PRODUCTS_BRAND = PRODUCTS_BRAND;\nvar PRODUCTS_SEARCH = wpadmin.search;\nexports.PRODUCTS_SEARCH = PRODUCTS_SEARCH;\nvar PRODUCTS_RECENT = wpadmin.recent;\nexports.PRODUCTS_RECENT = PRODUCTS_RECENT;\nvar PRODUCTS_ORDER = wpadmin.sort_order;\nexports.PRODUCTS_ORDER = PRODUCTS_ORDER;\nvar ADMIN_AJAX = wpadmin.admin_ajax;\nexports.ADMIN_AJAX = ADMIN_AJAX;\nvar ACCOUNT_NONCE = wpadmin.account_rest_nonce;\nexports.ACCOUNT_NONCE = ACCOUNT_NONCE;\nvar ACCOUNT_ACTION = wpadmin.account_rest_action;\nexports.ACCOUNT_ACTION = ACCOUNT_ACTION;\nvar COUNTRIES_OBJ = wpadmin.countries;\nexports.COUNTRIES_OBJ = COUNTRIES_OBJ;\nvar DIAGNOSTICS_NONCE = wpadmin.diagnostics_ajax_nonce;\nexports.DIAGNOSTICS_NONCE = DIAGNOSTICS_NONCE;\nvar DIAGNOSTICS_ACTION = wpadmin.diagnostics_ajax_action;\nexports.DIAGNOSTICS_ACTION = DIAGNOSTICS_ACTION;\nvar DIAGNOSTICS_SECTION = wpadmin.diagnostics_section;\nexports.DIAGNOSTICS_SECTION = DIAGNOSTICS_SECTION;\nvar IMPORT_PROGRESS_ACTION = wpadmin.product_import_ajax_action;\nexports.IMPORT_PROGRESS_ACTION = IMPORT_PROGRESS_ACTION;\nvar IMPORT_PROGRESS_NONCE = wpadmin.product_import_ajax_nonce;\nexports.IMPORT_PROGRESS_NONCE = IMPORT_PROGRESS_NONCE;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2NvbmZpZy93cC1zZXR0aW5ncy5qcz8xNjAwIl0sIm5hbWVzIjpbIndwYWRtaW4iLCJ3aW5kb3ciLCJiaWdjb21tZXJjZV9hZG1pbl9jb25maWciLCJlZGl0b3JEaWFsb2ciLCJlZGl0b3JfZGlhbG9nIiwiUFJPRFVDVFNfRU5EUE9JTlQiLCJwcm9kdWN0X2FwaV91cmwiLCJTSE9SVENPREVfRU5EUE9JTlQiLCJzaG9ydGNvZGVfYXBpX3VybCIsIkFETUlOX0lNQUdFUyIsImltYWdlc191cmwiLCJBRE1JTl9JQ09OUyIsImljb25zX3VybCIsIlBST0RVQ1RTX0NBVEVHT1JZIiwiY2F0ZWdvcmllcyIsIlBST0RVQ1RTX0ZMQUciLCJmbGFncyIsIlBST0RVQ1RTX0JSQU5EIiwiYnJhbmRzIiwiUFJPRFVDVFNfU0VBUkNIIiwic2VhcmNoIiwiUFJPRFVDVFNfUkVDRU5UIiwicmVjZW50IiwiUFJPRFVDVFNfT1JERVIiLCJzb3J0X29yZGVyIiwiQURNSU5fQUpBWCIsImFkbWluX2FqYXgiLCJBQ0NPVU5UX05PTkNFIiwiYWNjb3VudF9yZXN0X25vbmNlIiwiQUNDT1VOVF9BQ1RJT04iLCJhY2NvdW50X3Jlc3RfYWN0aW9uIiwiQ09VTlRSSUVTX09CSiIsImNvdW50cmllcyIsIkRJQUdOT1NUSUNTX05PTkNFIiwiZGlhZ25vc3RpY3NfYWpheF9ub25jZSIsIkRJQUdOT1NUSUNTX0FDVElPTiIsImRpYWdub3N0aWNzX2FqYXhfYWN0aW9uIiwiRElBR05PU1RJQ1NfU0VDVElPTiIsImRpYWdub3N0aWNzX3NlY3Rpb24iLCJJTVBPUlRfUFJPR1JFU1NfQUNUSU9OIiwicHJvZHVjdF9pbXBvcnRfYWpheF9hY3Rpb24iLCJJTVBPUlRfUFJPR1JFU1NfTk9OQ0UiLCJwcm9kdWN0X2ltcG9ydF9hamF4X25vbmNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLElBQU1BLFVBQVVDLE9BQU9DLHdCQUFQLElBQW1DLEVBQW5EO0FBQ0EsSUFBTUMsZUFBZUgsUUFBUUksYUFBUixJQUF5QixFQUE5QztBQUVPLElBQU1DLG9CQUFvQkYsYUFBYUcsZUFBYixJQUFnQyxFQUExRDs7QUFDQSxJQUFNQyxxQkFBcUJKLGFBQWFLLGlCQUFiLElBQWtDLEVBQTdEOztBQUNBLElBQU1DLGVBQWVULFFBQVFVLFVBQVIsSUFBc0IsRUFBM0M7O0FBQ0EsSUFBTUMsY0FBY1gsUUFBUVksU0FBUixJQUFxQixFQUF6Qzs7QUFDQSxJQUFNQyxvQkFBb0JiLFFBQVFjLFVBQWxDOztBQUNBLElBQU1DLGdCQUFnQmYsUUFBUWdCLEtBQTlCOztBQUNBLElBQU1DLGlCQUFpQmpCLFFBQVFrQixNQUEvQjs7QUFDQSxJQUFNQyxrQkFBa0JuQixRQUFRb0IsTUFBaEM7O0FBQ0EsSUFBTUMsa0JBQWtCckIsUUFBUXNCLE1BQWhDOztBQUNBLElBQU1DLGlCQUFpQnZCLFFBQVF3QixVQUEvQjs7QUFDQSxJQUFNQyxhQUFhekIsUUFBUTBCLFVBQTNCOztBQUNBLElBQU1DLGdCQUFnQjNCLFFBQVE0QixrQkFBOUI7O0FBQ0EsSUFBTUMsaUJBQWlCN0IsUUFBUThCLG1CQUEvQjs7QUFDQSxJQUFNQyxnQkFBZ0IvQixRQUFRZ0MsU0FBOUI7O0FBQ0EsSUFBTUMsb0JBQW9CakMsUUFBUWtDLHNCQUFsQzs7QUFDQSxJQUFNQyxxQkFBcUJuQyxRQUFRb0MsdUJBQW5DOztBQUNBLElBQU1DLHNCQUFzQnJDLFFBQVFzQyxtQkFBcEM7O0FBQ0EsSUFBTUMseUJBQXlCdkMsUUFBUXdDLDBCQUF2Qzs7QUFDQSxJQUFNQyx3QkFBd0J6QyxRQUFRMEMseUJBQXRDIiwiZmlsZSI6Ijk3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgd3BhZG1pbiA9IHdpbmRvdy5iaWdjb21tZXJjZV9hZG1pbl9jb25maWcgfHwge307XG5jb25zdCBlZGl0b3JEaWFsb2cgPSB3cGFkbWluLmVkaXRvcl9kaWFsb2cgfHwge307XG5cbmV4cG9ydCBjb25zdCBQUk9EVUNUU19FTkRQT0lOVCA9IGVkaXRvckRpYWxvZy5wcm9kdWN0X2FwaV91cmwgfHwgJyc7XG5leHBvcnQgY29uc3QgU0hPUlRDT0RFX0VORFBPSU5UID0gZWRpdG9yRGlhbG9nLnNob3J0Y29kZV9hcGlfdXJsIHx8ICcnO1xuZXhwb3J0IGNvbnN0IEFETUlOX0lNQUdFUyA9IHdwYWRtaW4uaW1hZ2VzX3VybCB8fCAnJztcbmV4cG9ydCBjb25zdCBBRE1JTl9JQ09OUyA9IHdwYWRtaW4uaWNvbnNfdXJsIHx8ICcnO1xuZXhwb3J0IGNvbnN0IFBST0RVQ1RTX0NBVEVHT1JZID0gd3BhZG1pbi5jYXRlZ29yaWVzO1xuZXhwb3J0IGNvbnN0IFBST0RVQ1RTX0ZMQUcgPSB3cGFkbWluLmZsYWdzO1xuZXhwb3J0IGNvbnN0IFBST0RVQ1RTX0JSQU5EID0gd3BhZG1pbi5icmFuZHM7XG5leHBvcnQgY29uc3QgUFJPRFVDVFNfU0VBUkNIID0gd3BhZG1pbi5zZWFyY2g7XG5leHBvcnQgY29uc3QgUFJPRFVDVFNfUkVDRU5UID0gd3BhZG1pbi5yZWNlbnQ7XG5leHBvcnQgY29uc3QgUFJPRFVDVFNfT1JERVIgPSB3cGFkbWluLnNvcnRfb3JkZXI7XG5leHBvcnQgY29uc3QgQURNSU5fQUpBWCA9IHdwYWRtaW4uYWRtaW5fYWpheDtcbmV4cG9ydCBjb25zdCBBQ0NPVU5UX05PTkNFID0gd3BhZG1pbi5hY2NvdW50X3Jlc3Rfbm9uY2U7XG5leHBvcnQgY29uc3QgQUNDT1VOVF9BQ1RJT04gPSB3cGFkbWluLmFjY291bnRfcmVzdF9hY3Rpb247XG5leHBvcnQgY29uc3QgQ09VTlRSSUVTX09CSiA9IHdwYWRtaW4uY291bnRyaWVzO1xuZXhwb3J0IGNvbnN0IERJQUdOT1NUSUNTX05PTkNFID0gd3BhZG1pbi5kaWFnbm9zdGljc19hamF4X25vbmNlO1xuZXhwb3J0IGNvbnN0IERJQUdOT1NUSUNTX0FDVElPTiA9IHdwYWRtaW4uZGlhZ25vc3RpY3NfYWpheF9hY3Rpb247XG5leHBvcnQgY29uc3QgRElBR05PU1RJQ1NfU0VDVElPTiA9IHdwYWRtaW4uZGlhZ25vc3RpY3Nfc2VjdGlvbjtcbmV4cG9ydCBjb25zdCBJTVBPUlRfUFJPR1JFU1NfQUNUSU9OID0gd3BhZG1pbi5wcm9kdWN0X2ltcG9ydF9hamF4X2FjdGlvbjtcbmV4cG9ydCBjb25zdCBJTVBPUlRfUFJPR1JFU1NfTk9OQ0UgPSB3cGFkbWluLnByb2R1Y3RfaW1wb3J0X2FqYXhfbm9uY2U7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2NvbmZpZy93cC1zZXR0aW5ncy5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///97\n"); /***/ }), /* 98 */ /***/ (function(module, exports, __webpack_require__) { -eval("// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = __webpack_require__(78);\nvar hiddenKeys = __webpack_require__(50).concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BuLmpzPzlmNDQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSIsImZpbGUiOiI5OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIDE5LjEuMi43IC8gMTUuMi4zLjQgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoTylcbnZhciAka2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzLWludGVybmFsJyk7XG52YXIgaGlkZGVuS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0tYnVnLWtleXMnKS5jb25jYXQoJ2xlbmd0aCcsICdwcm90b3R5cGUnKTtcblxuZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhPKSB7XG4gIHJldHVybiAka2V5cyhPLCBoaWRkZW5LZXlzKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWdvcG4uanNcbi8vIG1vZHVsZSBpZCA9IDk4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///98\n"); +eval("// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = __webpack_require__(82);\nvar hiddenKeys = __webpack_require__(52).concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BuLmpzPzlmNDQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSIsImZpbGUiOiI5OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIDE5LjEuMi43IC8gMTUuMi4zLjQgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoTylcbnZhciAka2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzLWludGVybmFsJyk7XG52YXIgaGlkZGVuS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0tYnVnLWtleXMnKS5jb25jYXQoJ2xlbmd0aCcsICdwcm90b3R5cGUnKTtcblxuZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhPKSB7XG4gIHJldHVybiAka2V5cyhPLCBoaWRkZW5LZXlzKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWdvcG4uanNcbi8vIG1vZHVsZSBpZCA9IDk4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///98\n"); /***/ }), /* 99 */ /***/ (function(module, exports, __webpack_require__) { -eval("var _Object$setPrototypeOf = __webpack_require__(230);\n\nvar _Object$create = __webpack_require__(234);\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = _Object$create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _Object$setPrototypeOf ? _Object$setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inherits;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbmhlcml0cy5qcz84ZmZhIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUEiLCJmaWxlIjoiOTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX09iamVjdCRzZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoXCIuLi9jb3JlLWpzL29iamVjdC9zZXQtcHJvdG90eXBlLW9mXCIpO1xuXG52YXIgX09iamVjdCRjcmVhdGUgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9vYmplY3QvY3JlYXRlXCIpO1xuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHtcbiAgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTtcbiAgfVxuXG4gIHN1YkNsYXNzLnByb3RvdHlwZSA9IF9PYmplY3QkY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHtcbiAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgdmFsdWU6IHN1YkNsYXNzLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH1cbiAgfSk7XG4gIGlmIChzdXBlckNsYXNzKSBfT2JqZWN0JHNldFByb3RvdHlwZU9mID8gX09iamVjdCRzZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pbmhlcml0cztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2luaGVyaXRzLmpzXG4vLyBtb2R1bGUgaWQgPSA5OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///99\n"); +eval("var _Object$assign = __webpack_require__(233);\n\nfunction _extends() {\n module.exports = _extends = _Object$assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9leHRlbmRzLmpzPzk2ZGYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBLG1CQUFtQixzQkFBc0I7QUFDekM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSIsImZpbGUiOiI5OS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfT2JqZWN0JGFzc2lnbiA9IHJlcXVpcmUoXCIuLi9jb3JlLWpzL29iamVjdC9hc3NpZ25cIik7XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkge1xuICBtb2R1bGUuZXhwb3J0cyA9IF9leHRlbmRzID0gX09iamVjdCRhc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkge1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldO1xuXG4gICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH07XG5cbiAgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2V4dGVuZHM7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9leHRlbmRzLmpzXG4vLyBtb2R1bGUgaWQgPSA5OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///99\n"); /***/ }), /* 100 */ @@ -686,14 +687,14 @@ eval("function _assertThisInitialized(self) {\n if (self === void 0) {\n thr /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nvar _dialogUi = _interopRequireDefault(__webpack_require__(102));\n\nvar _index = _interopRequireDefault(__webpack_require__(204));\n\nvar _index2 = _interopRequireDefault(__webpack_require__(206));\n\nvar _shortcodeState = _interopRequireDefault(__webpack_require__(7));\n\n/**\n * @module Gutenberg\n * @description Clearinghouse for loading all Gutenberg scripts.\n */\nvar initGutenbergScripts = function initGutenbergScripts() {\n _shortcodeState.default.isGutenberg = true;\n (0, _index.default)();\n (0, _dialogUi.default)();\n (0, _index2.default)();\n};\n\ninitGutenbergScripts();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9pbmRleC5qcz9hZjY3Il0sIm5hbWVzIjpbImluaXRHdXRlbmJlcmdTY3JpcHRzIiwiaXNHdXRlbmJlcmciXSwibWFwcGluZ3MiOiI7Ozs7QUFLQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFSQTs7OztBQVVBLElBQU1BLHVCQUF1QixTQUF2QkEsb0JBQXVCLEdBQU07QUFDbEMsMEJBQWVDLFdBQWYsR0FBNkIsSUFBN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUxEOztBQU9BRCIsImZpbGUiOiIxMDEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgR3V0ZW5iZXJnXG4gKiBAZGVzY3JpcHRpb24gQ2xlYXJpbmdob3VzZSBmb3IgbG9hZGluZyBhbGwgR3V0ZW5iZXJnIHNjcmlwdHMuXG4gKi9cblxuaW1wb3J0IGRpYWxvZyBmcm9tICcuLi9zaG9ydGNvZGUtdWkvZGlhbG9nLXVpJztcbmltcG9ydCBwbHVnaW5zIGZyb20gJy4vcGx1Z2lucy9pbmRleCc7XG5pbXBvcnQgaW5pdEJsb2NrcyBmcm9tICcuL2Jsb2Nrcy9pbmRleCc7XG5pbXBvcnQgc2hvcnRjb2RlU3RhdGUgZnJvbSAnLi4vY29uZmlnL3Nob3J0Y29kZS1zdGF0ZSc7XG5cbmNvbnN0IGluaXRHdXRlbmJlcmdTY3JpcHRzID0gKCkgPT4ge1xuXHRzaG9ydGNvZGVTdGF0ZS5pc0d1dGVuYmVyZyA9IHRydWU7XG5cdHBsdWdpbnMoKTtcblx0ZGlhbG9nKCk7XG5cdGluaXRCbG9ja3MoKTtcbn07XG5cbmluaXRHdXRlbmJlcmdTY3JpcHRzKCk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9pbmRleC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///101\n"); +eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nvar _dialogUi = _interopRequireDefault(__webpack_require__(102));\n\nvar _index = _interopRequireDefault(__webpack_require__(204));\n\nvar _index2 = _interopRequireDefault(__webpack_require__(206));\n\nvar _shortcodeState = _interopRequireDefault(__webpack_require__(4));\n\n/**\n * @module Gutenberg\n * @description Clearinghouse for loading all Gutenberg scripts.\n */\nvar initGutenbergScripts = function initGutenbergScripts() {\n _shortcodeState.default.isGutenberg = true;\n (0, _index.default)();\n (0, _dialogUi.default)();\n (0, _index2.default)();\n};\n\ninitGutenbergScripts();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9pbmRleC5qcz9hZjY3Il0sIm5hbWVzIjpbImluaXRHdXRlbmJlcmdTY3JpcHRzIiwiaXNHdXRlbmJlcmciXSwibWFwcGluZ3MiOiI7Ozs7QUFLQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFSQTs7OztBQVVBLElBQU1BLHVCQUF1QixTQUF2QkEsb0JBQXVCLEdBQU07QUFDbEMsMEJBQWVDLFdBQWYsR0FBNkIsSUFBN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUxEOztBQU9BRCIsImZpbGUiOiIxMDEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgR3V0ZW5iZXJnXG4gKiBAZGVzY3JpcHRpb24gQ2xlYXJpbmdob3VzZSBmb3IgbG9hZGluZyBhbGwgR3V0ZW5iZXJnIHNjcmlwdHMuXG4gKi9cblxuaW1wb3J0IGRpYWxvZyBmcm9tICcuLi9zaG9ydGNvZGUtdWkvZGlhbG9nLXVpJztcbmltcG9ydCBwbHVnaW5zIGZyb20gJy4vcGx1Z2lucy9pbmRleCc7XG5pbXBvcnQgaW5pdEJsb2NrcyBmcm9tICcuL2Jsb2Nrcy9pbmRleCc7XG5pbXBvcnQgc2hvcnRjb2RlU3RhdGUgZnJvbSAnLi4vY29uZmlnL3Nob3J0Y29kZS1zdGF0ZSc7XG5cbmNvbnN0IGluaXRHdXRlbmJlcmdTY3JpcHRzID0gKCkgPT4ge1xuXHRzaG9ydGNvZGVTdGF0ZS5pc0d1dGVuYmVyZyA9IHRydWU7XG5cdHBsdWdpbnMoKTtcblx0ZGlhbG9nKCk7XG5cdGluaXRCbG9ja3MoKTtcbn07XG5cbmluaXRHdXRlbmJlcmdTY3JpcHRzKCk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9pbmRleC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///101\n"); /***/ }), /* 102 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _interopRequireWildcard = __webpack_require__(11);\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _delay2 = _interopRequireDefault(__webpack_require__(27));\n\nvar _mtA11yDialog = _interopRequireDefault(__webpack_require__(126));\n\nvar tools = _interopRequireWildcard(__webpack_require__(15));\n\nvar _queryBuilder = _interopRequireDefault(__webpack_require__(127));\n\nvar _productSelection = _interopRequireDefault(__webpack_require__(190));\n\nvar _displaySettings = _interopRequireDefault(__webpack_require__(199));\n\nvar _createShortcode = _interopRequireDefault(__webpack_require__(201));\n\nvar _ajaxQuery = _interopRequireDefault(__webpack_require__(202));\n\nvar _shortcodeState = _interopRequireDefault(__webpack_require__(7));\n\nvar _events = __webpack_require__(16);\n\nvar el = {\n container: tools.getNodes('bc-shortcode-ui')[0]\n};\nvar instances = {};\nvar state = {\n rendered: false,\n delaySpeed: 50\n};\n\nvar hideDialog = function hideDialog() {\n instances.dialog.hide();\n};\n\nvar showDialog = function showDialog() {\n instances.dialog.show();\n\n if (!_shortcodeState.default.isGutenberg) {\n (0, _delay2.default)(function () {\n return (0, _events.trigger)({\n event: 'bigcommerce/shortcode_ui_state_ready',\n native: false\n });\n }, state.delaySpeed);\n }\n};\n\nvar setQueryParams = function setQueryParams(params) {\n if (!params) {\n (0, _events.trigger)({\n event: 'bigcommerce/set_shortcode_ui_state',\n native: false\n });\n return;\n }\n\n (0, _events.trigger)({\n event: 'bigcommerce/set_shortcode_ui_state',\n data: {\n params: params\n },\n native: false\n });\n};\n/**\n * @function initDialogUI\n * @description initialize the dialog box.\n * @param target\n */\n\n\nvar initDialogUI = function initDialogUI(target, params) {\n var options = {\n appendTarget: '#wpwrap',\n trigger: target,\n bodyLock: true,\n effect: 'fade',\n effectSpeed: 200,\n effectEasing: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)',\n overlayClasses: 'bc-shortcode-ui__overlay',\n contentClasses: 'bc-shortcode-ui__content',\n wrapperClasses: 'bc-shortcode-ui__wrapper',\n closeButtonClasses: 'bc-shortcode-ui__close-button bc-icon icon-bc-cross'\n };\n instances.dialog = new _mtA11yDialog.default(options);\n state.rendered = true;\n instances.dialog.on('render', function (dialogEl, e) {\n (0, _delay2.default)(function () {\n (0, _productSelection.default)();\n (0, _displaySettings.default)();\n (0, _queryBuilder.default)();\n (0, _ajaxQuery.default)();\n (0, _createShortcode.default)();\n setQueryParams(params);\n }, state.delaySpeed);\n var button = !e ? target : e.target;\n _shortcodeState.default.currentEditor = tools.closest(button, '.wp-editor-wrap');\n });\n instances.dialog.on('show', function (dialogEl, e) {\n var button = !e ? target : e.target;\n _shortcodeState.default.currentEditor = tools.closest(button, '.wp-editor-wrap');\n });\n instances.dialog.on('hide', function () {\n _shortcodeState.default.currentEditor = '';\n });\n showDialog();\n};\n/**\n * @function dialogPostRender\n * @description create a new A11yDialog and set dialog state functions after dialog renders.\n */\n\n\nvar toggleShortcodeUIDialog = function toggleShortcodeUIDialog(event) {\n var target = event.detail.target;\n var params = event.detail.queryParams;\n\n if (state.rendered && event.detail.hide) {\n hideDialog();\n return;\n }\n\n if (state.rendered) {\n setQueryParams(params);\n showDialog();\n return;\n }\n\n initDialogUI(target, params);\n};\n\nvar init = function init() {\n if (!el.container) {\n return;\n }\n\n (0, _events.on)(document, 'bigcommerce/init_shortcode_ui', toggleShortcodeUIDialog);\n};\n\nvar _default = init;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL3Nob3J0Y29kZS11aS9kaWFsb2ctdWkuanM/NzU5NSJdLCJuYW1lcyI6WyJlbCIsImNvbnRhaW5lciIsInRvb2xzIiwiZ2V0Tm9kZXMiLCJpbnN0YW5jZXMiLCJzdGF0ZSIsInJlbmRlcmVkIiwiZGVsYXlTcGVlZCIsImhpZGVEaWFsb2ciLCJkaWFsb2ciLCJoaWRlIiwic2hvd0RpYWxvZyIsInNob3ciLCJpc0d1dGVuYmVyZyIsImV2ZW50IiwibmF0aXZlIiwic2V0UXVlcnlQYXJhbXMiLCJwYXJhbXMiLCJkYXRhIiwiaW5pdERpYWxvZ1VJIiwidGFyZ2V0Iiwib3B0aW9ucyIsImFwcGVuZFRhcmdldCIsInRyaWdnZXIiLCJib2R5TG9jayIsImVmZmVjdCIsImVmZmVjdFNwZWVkIiwiZWZmZWN0RWFzaW5nIiwib3ZlcmxheUNsYXNzZXMiLCJjb250ZW50Q2xhc3NlcyIsIndyYXBwZXJDbGFzc2VzIiwiY2xvc2VCdXR0b25DbGFzc2VzIiwib24iLCJkaWFsb2dFbCIsImUiLCJidXR0b24iLCJjdXJyZW50RWRpdG9yIiwiY2xvc2VzdCIsInRvZ2dsZVNob3J0Y29kZVVJRGlhbG9nIiwiZGV0YWlsIiwicXVlcnlQYXJhbXMiLCJpbml0IiwiZG9jdW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFNQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxJQUFNQSxLQUFLO0FBQ1ZDLGFBQVdDLE1BQU1DLFFBQU4sQ0FBZSxpQkFBZixFQUFrQyxDQUFsQztBQURELENBQVg7QUFJQSxJQUFNQyxZQUFZLEVBQWxCO0FBRUEsSUFBTUMsUUFBUTtBQUNiQyxZQUFVLEtBREc7QUFFYkMsY0FBWTtBQUZDLENBQWQ7O0FBS0EsSUFBTUMsYUFBYSxTQUFiQSxVQUFhLEdBQU07QUFDeEJKLFlBQVVLLE1BQVYsQ0FBaUJDLElBQWpCO0FBQ0EsQ0FGRDs7QUFJ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bUI7QUFDbEI7QUFDQTs7QUFFRCxrQkFBR3lDLFFBQUgsRUFBYSwrQkFBYixFQUE4Q0osdUJBQTlDO0FBQ0EsQ0FORDs7ZUFRZUcsSSIsImZpbGUiOiIxMDIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgU2hvcnRjb2RlIFVJIERpYWxvZyBCb3hcbiAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplIHRoZSBkaWFsb2cgYm94IGZvciB0aGUgU2hvcnRjb2RlIFVJLlxuICovXG5cbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgQTExeURpYWxvZyBmcm9tICdtdC1hMTF5LWRpYWxvZyc7XG5pbXBvcnQgKiBhcyB0b29scyBmcm9tICcuLi8uLi91dGlscy90b29scyc7XG5cbmltcG9ydCBxdWVyeUJ1aWxkZXIgZnJvbSAnLi9xdWVyeS1idWlsZGVyJztcbmltcG9ydCBwcm9kdWN0U2VsZWN0aW9uIGZyb20gJy4vcHJvZHVjdC1zZWxlY3Rpb24nO1xuaW1wb3J0IGRpc3BsYXlTZXR0aW5ncyBmcm9tICcuL2Rpc3BsYXktc2V0dGluZ3MnO1xuaW1wb3J0IGNyZWF0ZVNob3J0Y29kZSBmcm9tICcuL2NyZWF0ZS1zaG9ydGNvZGUnO1xuaW1wb3J0IGFqYXhRdWVyeSBmcm9tICcuL2FqYXgtcXVlcnknO1xuaW1wb3J0IHNob3J0Y29kZVN0YXRlIGZyb20gJy4uL2NvbmZpZy9zaG9ydGNvZGUtc3RhdGUnO1xuaW1wb3J0IHsgb24sIHRyaWdnZXIgfSBmcm9tICcuLi8uLi91dGlscy9ldmVudHMnO1xuXG5jb25zdCBlbCA9IHtcblx0Y29udGFpbmVyOiB0b29scy5nZXROb2RlcygnYmMtc2hvcnRjb2RlLXVpJylbMF0sXG59O1xuXG5jb25zdCBpbnN0YW5jZXMgPSB7fTtcblxuY29uc3Qgc3RhdGUgPSB7XG5cdHJlbmRlcmVkOiBmYWxzZSxcblx0ZGVsYXlTcGVlZDogNTAsXG59O1xuXG5jb25zdCBoaWRlRGlhbG9nID0gKCkgPT4ge1xuXHRpbnN0YW5jZXMuZGlhbG9nLmhpZGUoKTtcbn07XG5cbmNvbnN0IHNob3dEaWFsb2cgPSAoKSA9PiB7XG5cdGluc3RhbmNlcy5kaWFsb2cuc2hvdygpO1xuXG5cdGlmICghc2hvcnRjb2RlU3RhdGUuaXNHdXRlbmJlcmcpIHtcblx0XHRfLmRlbGF5KCgpID0+IHRyaWdnZXIoeyBldmVudDogJ2JpZ2NvbW1lcmNlL3Nob3J0Y29kZV91aV9zdGF0ZV9yZWFkeScsIG5hdGl2ZTogZmFsc2UgfSksIHN0YXRlLmRlbGF5U3BlZWQpO1xuXHR9XG59O1xuXG5jb25zdCBzZXRRdWVyeVBhcmFtcyA9IChwYXJhbXMpID0+IHtcblx0aWYgKCFwYXJhbXMpIHtcblx0XHR0cmlnZ2VyKHsgZXZlbnQ6ICdiaWdjb21tZXJjZS9zZXRfc2hvcnRjb2RlX3VpX3N0YXRlJywgbmF0aXZlOiBmYWxzZSB9KTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHR0cmlnZ2VyKHsgZXZlbnQ6ICdiaWdjb21tZXJjZS9zZXRfc2hvcnRjb2RlX3VpX3N0YXRlJywgZGF0YTogeyBwYXJhbXMgfSwgbmF0aXZlOiBmYWxzZSB9KTtcbn07XG5cbi8qKlxuICogQGZ1bmN0aW9uIGluaXREaWFsb2dVSVxuICogQGRlc2NyaXB0aW9uIGluaXRpYWxpemUgdGhlIGRpYWxvZyBib3guXG4gKiBAcGFyYW0gdGFyZ2V0XG4gKi9cbmNvbnN0IGluaXREaWFsb2dVSSA9ICh0YXJnZXQsIHBhcmFtcykgPT4ge1xuXHRjb25zdCBvcHRpb25zID0ge1xuXHRcdGFwcGVuZFRhcmdldDogJyN3cHdyYXAnLFxuXHRcdHRyaWdnZXI6IHRhcmdldCxcblx0XHRib2R5TG9jazogdHJ1ZSxcblx0XHRlZmZlY3Q6ICdmYWRlJyxcblx0XHRlZmZlY3RTcGVlZDogMjAwLFxuXHRcdGVmZmVjdEVhc2luZzogJ2N1YmljLWJlemllcigwLjQ0NSwgMC4wNTAsIDAuNTUwLCAwLjk1MCknLFxuXHRcdG92ZXJsYXlDbGFzc2VzOiAnYmMtc2hvcnRjb2RlLXVpX19vdmVybGF5Jyxcblx0XHRjb250ZW50Q2xhc3NlczogJ2JjLXNob3J0Y29kZS11aV9fY29udGVudCcsXG5cdFx0d3JhcHBlckNsYXNzZXM6ICdiYy1zaG9ydGNvZGUtdWlfX3dyYXBwZXInLFxuXHRcdGNsb3NlQnV0dG9uQ2xhc3NlczogJ2JjLXNob3J0Y29kZS11aV9fY2xvc2UtYnV0dG9uIGJjLWljb24gaWNvbi1iYy1jcm9zcycsXG5cdH07XG5cblx0aW5zdGFuY2VzLmRpYWxvZyA9IG5ldyBBMTF5RGlhbG9nKG9wdGlvbnMpO1xuXG5cdHN0YXRlLnJlbmRlcmVkID0gdHJ1ZTtcblxuXHRpbnN0YW5jZXMuZGlhbG9nLm9uKCdyZW5kZXInLCAoZGlhbG9nRWwsIGUpID0+IHtcblx0XHRfLmRlbGF5KCgpID0+IHtcblx0XHRcdHByb2R1Y3RTZWxlY3Rpb24oKTtcblx0XHRcdGRpc3BsYXlTZXR0aW5ncygpO1xuXHRcdFx0cXVlcnlCdWlsZGVyKCk7XG5cdFx0XHRhamF4UXVlcnkoKTtcblx0XHRcdGNyZWF0ZVNob3J0Y29kZSgpO1xuXHRcdFx0c2V0UXVlcnlQYXJhbXMocGFyYW1zKTtcblx0XHR9LCBzdGF0ZS5kZWxheVNwZWVkKTtcblxuXHRcdGNvbnN0IGJ1dHRvbiA9ICFlID8gdGFyZ2V0IDogZS50YXJnZXQ7XG5cdFx0c2hvcnRjb2RlU3RhdGUuY3VycmVudEVkaXRvciA9IHRvb2xzLmNsb3Nlc3QoYnV0dG9uLCAnLndwLWVkaXRvci13cmFwJyk7XG5cdH0pO1xuXG5cdGluc3RhbmNlcy5kaWFsb2cub24oJ3Nob3cnLCAoZGlhbG9nRWwsIGUpID0+IHtcblx0XHRjb25zdCBidXR0b24gPSAhZSA/IHRhcmdldCA6IGUudGFyZ2V0O1xuXHRcdHNob3J0Y29kZVN0YXRlLmN1cnJlbnRFZGl0b3IgPSB0b29scy5jbG9zZXN0KGJ1dHRvbiwgJy53cC1lZGl0b3Itd3JhcCcpO1xuXHR9KTtcblxuXHRpbnN0YW5jZXMuZGlhbG9nLm9uKCdoaWRlJywgKCkgPT4ge1xuXHRcdHNob3J0Y29kZVN0YXRlLmN1cnJlbnRFZGl0b3IgPSAnJztcblx0fSk7XG5cblx0c2hvd0RpYWxvZygpO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gZGlhbG9nUG9zdFJlbmRlclxuICogQGRlc2NyaXB0aW9uIGNyZWF0ZSBhIG5ldyBBMTF5RGlhbG9nIGFuZCBzZXQgZGlhbG9nIHN0YXRlIGZ1bmN0aW9ucyBhZnRlciBkaWFsb2cgcmVuZGVycy5cbiAqL1xuY29uc3QgdG9nZ2xlU2hvcnRjb2RlVUlEaWFsb2cgPSAoZXZlbnQpID0+IHtcblx0Y29uc3QgdGFyZ2V0ID0gZXZlbnQuZGV0YWlsLnRhcmdldDtcblx0Y29uc3QgcGFyYW1zID0gZXZlbnQuZGV0YWlsLnF1ZXJ5UGFyYW1zO1xuXG5cdGlmIChzdGF0ZS5yZW5kZXJlZCAmJiBldmVudC5kZXRhaWwuaGlkZSkge1xuXHRcdGhpZGVEaWFsb2coKTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAoc3RhdGUucmVuZGVyZWQpIHtcblx0XHRzZXRRdWVyeVBhcmFtcyhwYXJhbXMpO1xuXHRcdHNob3dEaWFsb2coKTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpbml0RGlhbG9nVUkodGFyZ2V0LCBwYXJhbXMpO1xufTtcblxuY29uc3QgaW5pdCA9ICgpID0+IHtcblx0aWYgKCFlbC5jb250YWluZXIpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRvbihkb2N1bWVudCwgJ2JpZ2NvbW1lcmNlL2luaXRfc2hvcnRjb2RlX3VpJywgdG9nZ2xlU2hvcnRjb2RlVUlEaWFsb2cpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgaW5pdDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vc2hvcnRjb2RlLXVpL2RpYWxvZy11aS5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///102\n"); +eval("\n\nvar _interopRequireWildcard = __webpack_require__(8);\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _delay2 = _interopRequireDefault(__webpack_require__(26));\n\nvar _mtA11yDialog = _interopRequireDefault(__webpack_require__(126));\n\nvar tools = _interopRequireWildcard(__webpack_require__(12));\n\nvar _queryBuilder = _interopRequireDefault(__webpack_require__(127));\n\nvar _productSelection = _interopRequireDefault(__webpack_require__(190));\n\nvar _displaySettings = _interopRequireDefault(__webpack_require__(199));\n\nvar _createShortcode = _interopRequireDefault(__webpack_require__(201));\n\nvar _ajaxQuery = _interopRequireDefault(__webpack_require__(202));\n\nvar _shortcodeState = _interopRequireDefault(__webpack_require__(4));\n\nvar _events = __webpack_require__(13);\n\nvar el = {\n container: tools.getNodes('bc-shortcode-ui')[0]\n};\nvar instances = {};\nvar state = {\n rendered: false,\n delaySpeed: 50\n};\n\nvar hideDialog = function hideDialog() {\n instances.dialog.hide();\n};\n\nvar showDialog = function showDialog() {\n instances.dialog.show();\n\n if (!_shortcodeState.default.isGutenberg) {\n (0, _delay2.default)(function () {\n return (0, _events.trigger)({\n event: 'bigcommerce/shortcode_ui_state_ready',\n native: false\n });\n }, state.delaySpeed);\n }\n};\n\nvar setQueryParams = function setQueryParams(params) {\n if (!params) {\n (0, _events.trigger)({\n event: 'bigcommerce/set_shortcode_ui_state',\n native: false\n });\n return;\n }\n\n (0, _events.trigger)({\n event: 'bigcommerce/set_shortcode_ui_state',\n data: {\n params: params\n },\n native: false\n });\n};\n/**\n * @function initDialogUI\n * @description initialize the dialog box.\n * @param target\n */\n\n\nvar initDialogUI = function initDialogUI(target, params) {\n var options = {\n appendTarget: '#wpwrap',\n trigger: target,\n bodyLock: true,\n effect: 'fade',\n effectSpeed: 200,\n effectEasing: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)',\n overlayClasses: 'bc-shortcode-ui__overlay',\n contentClasses: 'bc-shortcode-ui__content',\n wrapperClasses: 'bc-shortcode-ui__wrapper',\n closeButtonClasses: 'bc-shortcode-ui__close-button bc-icon icon-bc-cross'\n };\n instances.dialog = new _mtA11yDialog.default(options);\n state.rendered = true;\n instances.dialog.on('render', function (dialogEl, e) {\n (0, _delay2.default)(function () {\n (0, _productSelection.default)();\n (0, _displaySettings.default)();\n (0, _queryBuilder.default)();\n (0, _ajaxQuery.default)();\n (0, _createShortcode.default)();\n setQueryParams(params);\n }, state.delaySpeed);\n var button = !e ? target : e.target;\n _shortcodeState.default.currentEditor = tools.closest(button, '.wp-editor-wrap');\n });\n instances.dialog.on('show', function (dialogEl, e) {\n var button = !e ? target : e.target;\n _shortcodeState.default.currentEditor = tools.closest(button, '.wp-editor-wrap');\n });\n instances.dialog.on('hide', function () {\n _shortcodeState.default.currentEditor = '';\n });\n showDialog();\n};\n/**\n * @function dialogPostRender\n * @description create a new A11yDialog and set dialog state functions after dialog renders.\n */\n\n\nvar toggleShortcodeUIDialog = function toggleShortcodeUIDialog(event) {\n var target = event.detail.target;\n var params = event.detail.queryParams;\n\n if (state.rendered && event.detail.hide) {\n hideDialog();\n return;\n }\n\n if (state.rendered) {\n setQueryParams(params);\n showDialog();\n return;\n }\n\n initDialogUI(target, params);\n};\n\nvar init = function init() {\n if (!el.container) {\n return;\n }\n\n (0, _events.on)(document, 'bigcommerce/init_shortcode_ui', toggleShortcodeUIDialog);\n};\n\nvar _default = init;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL3Nob3J0Y29kZS11aS9kaWFsb2ctdWkuanM/NzU5NSJdLCJuYW1lcyI6WyJlbCIsImNvbnRhaW5lciIsInRvb2xzIiwiZ2V0Tm9kZXMiLCJpbnN0YW5jZXMiLCJzdGF0ZSIsInJlbmRlcmVkIiwiZGVsYXlTcGVlZCIsImhpZGVEaWFsb2ciLCJkaWFsb2ciLCJoaWRlIiwic2hvd0RpYWxvZyIsInNob3ciLCJpc0d1dGVuYmVyZyIsImV2ZW50IiwibmF0aXZlIiwic2V0UXVlcnlQYXJhbXMiLCJwYXJhbXMiLCJkYXRhIiwiaW5pdERpYWxvZ1VJIiwidGFyZ2V0Iiwib3B0aW9ucyIsImFwcGVuZFRhcmdldCIsInRyaWdnZXIiLCJib2R5TG9jayIsImVmZmVjdCIsImVmZmVjdFNwZWVkIiwiZWZmZWN0RWFzaW5nIiwib3ZlcmxheUNsYXNzZXMiLCJjb250ZW50Q2xhc3NlcyIsIndyYXBwZXJDbGFzc2VzIiwiY2xvc2VCdXR0b25DbGFzc2VzIiwib24iLCJkaWFsb2dFbCIsImUiLCJidXR0b24iLCJjdXJyZW50RWRpdG9yIiwiY2xvc2VzdCIsInRvZ2dsZVNob3J0Y29kZVVJRGlhbG9nIiwiZGV0YWlsIiwicXVlcnlQYXJhbXMiLCJpbml0IiwiZG9jdW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFNQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxJQUFNQSxLQUFLO0FBQ1ZDLGFBQVdDLE1BQU1DLFFBQU4sQ0FBZSxpQkFBZixFQUFrQyxDQUFsQztBQURELENBQVg7QUFJQSxJQUFNQyxZQUFZLEVBQWxCO0FBRUEsSUFBTUMsUUFBUTtBQUNiQyxZQUFVLEtBREc7QUFFYkMsY0FBWTtBQUZDLENBQWQ7O0FBS0EsSUFBTUMsYUFBYSxTQUFiQSxVQUFhLEdBQU07QUFDeEJKLFlBQVVLLE1BQVYsQ0FBaUJDLElBQWpCO0FBQ0EsQ0FGRDs7QUFJ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bUI7QUFDbEI7QUFDQTs7QUFFRCxrQkFBR3lDLFFBQUgsRUFBYSwrQkFBYixFQUE4Q0osdUJBQTlDO0FBQ0EsQ0FORDs7ZUFRZUcsSSIsImZpbGUiOiIxMDIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgU2hvcnRjb2RlIFVJIERpYWxvZyBCb3hcbiAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplIHRoZSBkaWFsb2cgYm94IGZvciB0aGUgU2hvcnRjb2RlIFVJLlxuICovXG5cbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgQTExeURpYWxvZyBmcm9tICdtdC1hMTF5LWRpYWxvZyc7XG5pbXBvcnQgKiBhcyB0b29scyBmcm9tICcuLi8uLi91dGlscy90b29scyc7XG5cbmltcG9ydCBxdWVyeUJ1aWxkZXIgZnJvbSAnLi9xdWVyeS1idWlsZGVyJztcbmltcG9ydCBwcm9kdWN0U2VsZWN0aW9uIGZyb20gJy4vcHJvZHVjdC1zZWxlY3Rpb24nO1xuaW1wb3J0IGRpc3BsYXlTZXR0aW5ncyBmcm9tICcuL2Rpc3BsYXktc2V0dGluZ3MnO1xuaW1wb3J0IGNyZWF0ZVNob3J0Y29kZSBmcm9tICcuL2NyZWF0ZS1zaG9ydGNvZGUnO1xuaW1wb3J0IGFqYXhRdWVyeSBmcm9tICcuL2FqYXgtcXVlcnknO1xuaW1wb3J0IHNob3J0Y29kZVN0YXRlIGZyb20gJy4uL2NvbmZpZy9zaG9ydGNvZGUtc3RhdGUnO1xuaW1wb3J0IHsgb24sIHRyaWdnZXIgfSBmcm9tICcuLi8uLi91dGlscy9ldmVudHMnO1xuXG5jb25zdCBlbCA9IHtcblx0Y29udGFpbmVyOiB0b29scy5nZXROb2RlcygnYmMtc2hvcnRjb2RlLXVpJylbMF0sXG59O1xuXG5jb25zdCBpbnN0YW5jZXMgPSB7fTtcblxuY29uc3Qgc3RhdGUgPSB7XG5cdHJlbmRlcmVkOiBmYWxzZSxcblx0ZGVsYXlTcGVlZDogNTAsXG59O1xuXG5jb25zdCBoaWRlRGlhbG9nID0gKCkgPT4ge1xuXHRpbnN0YW5jZXMuZGlhbG9nLmhpZGUoKTtcbn07XG5cbmNvbnN0IHNob3dEaWFsb2cgPSAoKSA9PiB7XG5cdGluc3RhbmNlcy5kaWFsb2cuc2hvdygpO1xuXG5cdGlmICghc2hvcnRjb2RlU3RhdGUuaXNHdXRlbmJlcmcpIHtcblx0XHRfLmRlbGF5KCgpID0+IHRyaWdnZXIoeyBldmVudDogJ2JpZ2NvbW1lcmNlL3Nob3J0Y29kZV91aV9zdGF0ZV9yZWFkeScsIG5hdGl2ZTogZmFsc2UgfSksIHN0YXRlLmRlbGF5U3BlZWQpO1xuXHR9XG59O1xuXG5jb25zdCBzZXRRdWVyeVBhcmFtcyA9IChwYXJhbXMpID0+IHtcblx0aWYgKCFwYXJhbXMpIHtcblx0XHR0cmlnZ2VyKHsgZXZlbnQ6ICdiaWdjb21tZXJjZS9zZXRfc2hvcnRjb2RlX3VpX3N0YXRlJywgbmF0aXZlOiBmYWxzZSB9KTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHR0cmlnZ2VyKHsgZXZlbnQ6ICdiaWdjb21tZXJjZS9zZXRfc2hvcnRjb2RlX3VpX3N0YXRlJywgZGF0YTogeyBwYXJhbXMgfSwgbmF0aXZlOiBmYWxzZSB9KTtcbn07XG5cbi8qKlxuICogQGZ1bmN0aW9uIGluaXREaWFsb2dVSVxuICogQGRlc2NyaXB0aW9uIGluaXRpYWxpemUgdGhlIGRpYWxvZyBib3guXG4gKiBAcGFyYW0gdGFyZ2V0XG4gKi9cbmNvbnN0IGluaXREaWFsb2dVSSA9ICh0YXJnZXQsIHBhcmFtcykgPT4ge1xuXHRjb25zdCBvcHRpb25zID0ge1xuXHRcdGFwcGVuZFRhcmdldDogJyN3cHdyYXAnLFxuXHRcdHRyaWdnZXI6IHRhcmdldCxcblx0XHRib2R5TG9jazogdHJ1ZSxcblx0XHRlZmZlY3Q6ICdmYWRlJyxcblx0XHRlZmZlY3RTcGVlZDogMjAwLFxuXHRcdGVmZmVjdEVhc2luZzogJ2N1YmljLWJlemllcigwLjQ0NSwgMC4wNTAsIDAuNTUwLCAwLjk1MCknLFxuXHRcdG92ZXJsYXlDbGFzc2VzOiAnYmMtc2hvcnRjb2RlLXVpX19vdmVybGF5Jyxcblx0XHRjb250ZW50Q2xhc3NlczogJ2JjLXNob3J0Y29kZS11aV9fY29udGVudCcsXG5cdFx0d3JhcHBlckNsYXNzZXM6ICdiYy1zaG9ydGNvZGUtdWlfX3dyYXBwZXInLFxuXHRcdGNsb3NlQnV0dG9uQ2xhc3NlczogJ2JjLXNob3J0Y29kZS11aV9fY2xvc2UtYnV0dG9uIGJjLWljb24gaWNvbi1iYy1jcm9zcycsXG5cdH07XG5cblx0aW5zdGFuY2VzLmRpYWxvZyA9IG5ldyBBMTF5RGlhbG9nKG9wdGlvbnMpO1xuXG5cdHN0YXRlLnJlbmRlcmVkID0gdHJ1ZTtcblxuXHRpbnN0YW5jZXMuZGlhbG9nLm9uKCdyZW5kZXInLCAoZGlhbG9nRWwsIGUpID0+IHtcblx0XHRfLmRlbGF5KCgpID0+IHtcblx0XHRcdHByb2R1Y3RTZWxlY3Rpb24oKTtcblx0XHRcdGRpc3BsYXlTZXR0aW5ncygpO1xuXHRcdFx0cXVlcnlCdWlsZGVyKCk7XG5cdFx0XHRhamF4UXVlcnkoKTtcblx0XHRcdGNyZWF0ZVNob3J0Y29kZSgpO1xuXHRcdFx0c2V0UXVlcnlQYXJhbXMocGFyYW1zKTtcblx0XHR9LCBzdGF0ZS5kZWxheVNwZWVkKTtcblxuXHRcdGNvbnN0IGJ1dHRvbiA9ICFlID8gdGFyZ2V0IDogZS50YXJnZXQ7XG5cdFx0c2hvcnRjb2RlU3RhdGUuY3VycmVudEVkaXRvciA9IHRvb2xzLmNsb3Nlc3QoYnV0dG9uLCAnLndwLWVkaXRvci13cmFwJyk7XG5cdH0pO1xuXG5cdGluc3RhbmNlcy5kaWFsb2cub24oJ3Nob3cnLCAoZGlhbG9nRWwsIGUpID0+IHtcblx0XHRjb25zdCBidXR0b24gPSAhZSA/IHRhcmdldCA6IGUudGFyZ2V0O1xuXHRcdHNob3J0Y29kZVN0YXRlLmN1cnJlbnRFZGl0b3IgPSB0b29scy5jbG9zZXN0KGJ1dHRvbiwgJy53cC1lZGl0b3Itd3JhcCcpO1xuXHR9KTtcblxuXHRpbnN0YW5jZXMuZGlhbG9nLm9uKCdoaWRlJywgKCkgPT4ge1xuXHRcdHNob3J0Y29kZVN0YXRlLmN1cnJlbnRFZGl0b3IgPSAnJztcblx0fSk7XG5cblx0c2hvd0RpYWxvZygpO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gZGlhbG9nUG9zdFJlbmRlclxuICogQGRlc2NyaXB0aW9uIGNyZWF0ZSBhIG5ldyBBMTF5RGlhbG9nIGFuZCBzZXQgZGlhbG9nIHN0YXRlIGZ1bmN0aW9ucyBhZnRlciBkaWFsb2cgcmVuZGVycy5cbiAqL1xuY29uc3QgdG9nZ2xlU2hvcnRjb2RlVUlEaWFsb2cgPSAoZXZlbnQpID0+IHtcblx0Y29uc3QgdGFyZ2V0ID0gZXZlbnQuZGV0YWlsLnRhcmdldDtcblx0Y29uc3QgcGFyYW1zID0gZXZlbnQuZGV0YWlsLnF1ZXJ5UGFyYW1zO1xuXG5cdGlmIChzdGF0ZS5yZW5kZXJlZCAmJiBldmVudC5kZXRhaWwuaGlkZSkge1xuXHRcdGhpZGVEaWFsb2coKTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAoc3RhdGUucmVuZGVyZWQpIHtcblx0XHRzZXRRdWVyeVBhcmFtcyhwYXJhbXMpO1xuXHRcdHNob3dEaWFsb2coKTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpbml0RGlhbG9nVUkodGFyZ2V0LCBwYXJhbXMpO1xufTtcblxuY29uc3QgaW5pdCA9ICgpID0+IHtcblx0aWYgKCFlbC5jb250YWluZXIpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRvbihkb2N1bWVudCwgJ2JpZ2NvbW1lcmNlL2luaXRfc2hvcnRjb2RlX3VpJywgdG9nZ2xlU2hvcnRjb2RlVUlEaWFsb2cpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgaW5pdDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vc2hvcnRjb2RlLXVpL2RpYWxvZy11aS5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///102\n"); /***/ }), /* 103 */ @@ -705,13 +706,13 @@ eval("module.exports = __webpack_require__(104);//# sourceURL=[module]\n//# sour /* 104 */ /***/ (function(module, exports, __webpack_require__) { -eval("__webpack_require__(105);\nvar $Object = __webpack_require__(2).Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3IuanM/NzI3OSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjEwNC5qcyIsInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2Lm9iamVjdC5nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcbnZhciAkT2JqZWN0ID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLk9iamVjdDtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGl0LCBrZXkpIHtcbiAgcmV0dXJuICRPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGl0LCBrZXkpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9mbi9vYmplY3QvZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzXG4vLyBtb2R1bGUgaWQgPSAxMDRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///104\n"); +eval("__webpack_require__(105);\nvar $Object = __webpack_require__(1).Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3IuanM/NzI3OSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjEwNC5qcyIsInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2Lm9iamVjdC5nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcbnZhciAkT2JqZWN0ID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLk9iamVjdDtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGl0LCBrZXkpIHtcbiAgcmV0dXJuICRPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGl0LCBrZXkpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9mbi9vYmplY3QvZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzXG4vLyBtb2R1bGUgaWQgPSAxMDRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///104\n"); /***/ }), /* 105 */ /***/ (function(module, exports, __webpack_require__) { -eval("// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = __webpack_require__(8);\nvar $getOwnPropertyDescriptor = __webpack_require__(39).f;\n\n__webpack_require__(62)('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3IuanM/ODg4OSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDIiwiZmlsZSI6IjEwNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIDE5LjEuMi42IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUClcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgJGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BkJykuZjtcblxucmVxdWlyZSgnLi9fb2JqZWN0LXNhcCcpKCdnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3InLCBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaXQsIGtleSkge1xuICAgIHJldHVybiAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRvSU9iamVjdChpdCksIGtleSk7XG4gIH07XG59KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNi5vYmplY3QuZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzXG4vLyBtb2R1bGUgaWQgPSAxMDVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///105\n"); +eval("// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = __webpack_require__(5);\nvar $getOwnPropertyDescriptor = __webpack_require__(41).f;\n\n__webpack_require__(66)('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3IuanM/ODg4OSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDIiwiZmlsZSI6IjEwNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIDE5LjEuMi42IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUClcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgJGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BkJykuZjtcblxucmVxdWlyZSgnLi9fb2JqZWN0LXNhcCcpKCdnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3InLCBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaXQsIGtleSkge1xuICAgIHJldHVybiAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRvSU9iamVjdChpdCksIGtleSk7XG4gIH07XG59KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNi5vYmplY3QuZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzXG4vLyBtb2R1bGUgaWQgPSAxMDVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///105\n"); /***/ }), /* 106 */ @@ -723,13 +724,13 @@ eval("module.exports = function (it) {\n if (typeof it != 'function') throw Typ /* 107 */ /***/ (function(module, exports, __webpack_require__) { -eval("__webpack_require__(108);\nvar $Object = __webpack_require__(2).Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanM/ZjViMCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjEwNy5qcyIsInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2Lm9iamVjdC5kZWZpbmUtcHJvcGVydHknKTtcbnZhciAkT2JqZWN0ID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLk9iamVjdDtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoaXQsIGtleSwgZGVzYykge1xuICByZXR1cm4gJE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpdCwga2V5LCBkZXNjKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2RlZmluZS1wcm9wZXJ0eS5qc1xuLy8gbW9kdWxlIGlkID0gMTA3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///107\n"); +eval("__webpack_require__(108);\nvar $Object = __webpack_require__(1).Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanM/ZjViMCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjEwNy5qcyIsInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2Lm9iamVjdC5kZWZpbmUtcHJvcGVydHknKTtcbnZhciAkT2JqZWN0ID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLk9iamVjdDtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoaXQsIGtleSwgZGVzYykge1xuICByZXR1cm4gJE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpdCwga2V5LCBkZXNjKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2RlZmluZS1wcm9wZXJ0eS5qc1xuLy8gbW9kdWxlIGlkID0gMTA3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///107\n"); /***/ }), /* 108 */ /***/ (function(module, exports, __webpack_require__) { -eval("var $export = __webpack_require__(6);\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !__webpack_require__(13), 'Object', { defineProperty: __webpack_require__(10).f });\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5kZWZpbmUtcHJvcGVydHkuanM/OTgyOSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EscUVBQXVFLDRDQUE0QyIsImZpbGUiOiIxMDguanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuLy8gMTkuMS4yLjQgLyAxNS4yLjMuNiBPYmplY3QuZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcylcbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogIXJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJyksICdPYmplY3QnLCB7IGRlZmluZVByb3BlcnR5OiByZXF1aXJlKCcuL19vYmplY3QtZHAnKS5mIH0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5kZWZpbmUtcHJvcGVydHkuanNcbi8vIG1vZHVsZSBpZCA9IDEwOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///108\n"); +eval("var $export = __webpack_require__(3);\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !__webpack_require__(10), 'Object', { defineProperty: __webpack_require__(7).f });\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5kZWZpbmUtcHJvcGVydHkuanM/OTgyOSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EscUVBQXVFLDJDQUE0QyIsImZpbGUiOiIxMDguanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuLy8gMTkuMS4yLjQgLyAxNS4yLjMuNiBPYmplY3QuZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcylcbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogIXJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJyksICdPYmplY3QnLCB7IGRlZmluZVByb3BlcnR5OiByZXF1aXJlKCcuL19vYmplY3QtZHAnKS5mIH0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5kZWZpbmUtcHJvcGVydHkuanNcbi8vIG1vZHVsZSBpZCA9IDEwOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///108\n"); /***/ }), /* 109 */ @@ -759,7 +760,7 @@ eval("var baseSetToString = __webpack_require__(113),\n shortOut = __webpack_ /* 113 */ /***/ (function(module, exports, __webpack_require__) { -eval("var constant = __webpack_require__(114),\n defineProperty = __webpack_require__(66),\n identity = __webpack_require__(65);\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlU2V0VG9TdHJpbmcuanM/ZDM3ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFNBQVM7QUFDcEIsV0FBVyxTQUFTO0FBQ3BCLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQSIsImZpbGUiOiIxMTMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgY29uc3RhbnQgPSByZXF1aXJlKCcuL2NvbnN0YW50JyksXG4gICAgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuL19kZWZpbmVQcm9wZXJ0eScpLFxuICAgIGlkZW50aXR5ID0gcmVxdWlyZSgnLi9pZGVudGl0eScpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBzZXRUb1N0cmluZ2Agd2l0aG91dCBzdXBwb3J0IGZvciBob3QgbG9vcCBzaG9ydGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gc3RyaW5nIFRoZSBgdG9TdHJpbmdgIHJlc3VsdC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgZnVuY2AuXG4gKi9cbnZhciBiYXNlU2V0VG9TdHJpbmcgPSAhZGVmaW5lUHJvcGVydHkgPyBpZGVudGl0eSA6IGZ1bmN0aW9uKGZ1bmMsIHN0cmluZykge1xuICByZXR1cm4gZGVmaW5lUHJvcGVydHkoZnVuYywgJ3RvU3RyaW5nJywge1xuICAgICdjb25maWd1cmFibGUnOiB0cnVlLFxuICAgICdlbnVtZXJhYmxlJzogZmFsc2UsXG4gICAgJ3ZhbHVlJzogY29uc3RhbnQoc3RyaW5nKSxcbiAgICAnd3JpdGFibGUnOiB0cnVlXG4gIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlU2V0VG9TdHJpbmc7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VTZXRUb1N0cmluZy5qc1xuLy8gbW9kdWxlIGlkID0gMTEzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///113\n"); +eval("var constant = __webpack_require__(114),\n defineProperty = __webpack_require__(70),\n identity = __webpack_require__(69);\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlU2V0VG9TdHJpbmcuanM/ZDM3ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFNBQVM7QUFDcEIsV0FBVyxTQUFTO0FBQ3BCLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQSIsImZpbGUiOiIxMTMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgY29uc3RhbnQgPSByZXF1aXJlKCcuL2NvbnN0YW50JyksXG4gICAgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuL19kZWZpbmVQcm9wZXJ0eScpLFxuICAgIGlkZW50aXR5ID0gcmVxdWlyZSgnLi9pZGVudGl0eScpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBzZXRUb1N0cmluZ2Agd2l0aG91dCBzdXBwb3J0IGZvciBob3QgbG9vcCBzaG9ydGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gc3RyaW5nIFRoZSBgdG9TdHJpbmdgIHJlc3VsdC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgZnVuY2AuXG4gKi9cbnZhciBiYXNlU2V0VG9TdHJpbmcgPSAhZGVmaW5lUHJvcGVydHkgPyBpZGVudGl0eSA6IGZ1bmN0aW9uKGZ1bmMsIHN0cmluZykge1xuICByZXR1cm4gZGVmaW5lUHJvcGVydHkoZnVuYywgJ3RvU3RyaW5nJywge1xuICAgICdjb25maWd1cmFibGUnOiB0cnVlLFxuICAgICdlbnVtZXJhYmxlJzogZmFsc2UsXG4gICAgJ3ZhbHVlJzogY29uc3RhbnQoc3RyaW5nKSxcbiAgICAnd3JpdGFibGUnOiB0cnVlXG4gIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlU2V0VG9TdHJpbmc7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VTZXRUb1N0cmluZy5qc1xuLy8gbW9kdWxlIGlkID0gMTEzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///113\n"); /***/ }), /* 114 */ @@ -777,13 +778,13 @@ eval("var baseIsNative = __webpack_require__(116),\n getValue = __webpack_req /* 116 */ /***/ (function(module, exports, __webpack_require__) { -eval("var isFunction = __webpack_require__(67),\n isMasked = __webpack_require__(119),\n isObject = __webpack_require__(29),\n toSource = __webpack_require__(121);\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSXNOYXRpdmUuanM/MjEzYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQzs7QUFFcEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjExNi5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBpc0Z1bmN0aW9uID0gcmVxdWlyZSgnLi9pc0Z1bmN0aW9uJyksXG4gICAgaXNNYXNrZWQgPSByZXF1aXJlKCcuL19pc01hc2tlZCcpLFxuICAgIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpLFxuICAgIHRvU291cmNlID0gcmVxdWlyZSgnLi9fdG9Tb3VyY2UnKTtcblxuLyoqXG4gKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgXG4gKiBbc3ludGF4IGNoYXJhY3RlcnNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXBhdHRlcm5zKS5cbiAqL1xudmFyIHJlUmVnRXhwQ2hhciA9IC9bXFxcXF4kLiorPygpW1xcXXt9fF0vZztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGhvc3QgY29uc3RydWN0b3JzIChTYWZhcmkpLiAqL1xudmFyIHJlSXNIb3N0Q3RvciA9IC9eXFxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXFxdJC87XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKiogVXNlZCB0byBkZXRlY3QgaWYgYSBtZXRob2QgaXMgbmF0aXZlLiAqL1xudmFyIHJlSXNOYXRpdmUgPSBSZWdFeHAoJ14nICtcbiAgZnVuY1RvU3RyaW5nLmNhbGwoaGFzT3duUHJvcGVydHkpLnJlcGxhY2UocmVSZWdFeHBDaGFyLCAnXFxcXCQmJylcbiAgLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFxcXFwoKXwgZm9yIC4rPyg/PVxcXFxcXF0pL2csICckMS4qPycpICsgJyQnXG4pO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTmF0aXZlYCB3aXRob3V0IGJhZCBzaGltIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG5hdGl2ZSBmdW5jdGlvbixcbiAqICBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc05hdGl2ZSh2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSB8fCBpc01hc2tlZCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHBhdHRlcm4gPSBpc0Z1bmN0aW9uKHZhbHVlKSA/IHJlSXNOYXRpdmUgOiByZUlzSG9zdEN0b3I7XG4gIHJldHVybiBwYXR0ZXJuLnRlc3QodG9Tb3VyY2UodmFsdWUpKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSXNOYXRpdmU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc05hdGl2ZS5qc1xuLy8gbW9kdWxlIGlkID0gMTE2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///116\n"); +eval("var isFunction = __webpack_require__(71),\n isMasked = __webpack_require__(119),\n isObject = __webpack_require__(28),\n toSource = __webpack_require__(121);\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSXNOYXRpdmUuanM/MjEzYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQzs7QUFFcEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjExNi5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBpc0Z1bmN0aW9uID0gcmVxdWlyZSgnLi9pc0Z1bmN0aW9uJyksXG4gICAgaXNNYXNrZWQgPSByZXF1aXJlKCcuL19pc01hc2tlZCcpLFxuICAgIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpLFxuICAgIHRvU291cmNlID0gcmVxdWlyZSgnLi9fdG9Tb3VyY2UnKTtcblxuLyoqXG4gKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgXG4gKiBbc3ludGF4IGNoYXJhY3RlcnNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXBhdHRlcm5zKS5cbiAqL1xudmFyIHJlUmVnRXhwQ2hhciA9IC9bXFxcXF4kLiorPygpW1xcXXt9fF0vZztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGhvc3QgY29uc3RydWN0b3JzIChTYWZhcmkpLiAqL1xudmFyIHJlSXNIb3N0Q3RvciA9IC9eXFxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXFxdJC87XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKiogVXNlZCB0byBkZXRlY3QgaWYgYSBtZXRob2QgaXMgbmF0aXZlLiAqL1xudmFyIHJlSXNOYXRpdmUgPSBSZWdFeHAoJ14nICtcbiAgZnVuY1RvU3RyaW5nLmNhbGwoaGFzT3duUHJvcGVydHkpLnJlcGxhY2UocmVSZWdFeHBDaGFyLCAnXFxcXCQmJylcbiAgLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFxcXFwoKXwgZm9yIC4rPyg/PVxcXFxcXF0pL2csICckMS4qPycpICsgJyQnXG4pO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTmF0aXZlYCB3aXRob3V0IGJhZCBzaGltIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG5hdGl2ZSBmdW5jdGlvbixcbiAqICBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc05hdGl2ZSh2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSB8fCBpc01hc2tlZCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHBhdHRlcm4gPSBpc0Z1bmN0aW9uKHZhbHVlKSA/IHJlSXNOYXRpdmUgOiByZUlzSG9zdEN0b3I7XG4gIHJldHVybiBwYXR0ZXJuLnRlc3QodG9Tb3VyY2UodmFsdWUpKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSXNOYXRpdmU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc05hdGl2ZS5qc1xuLy8gbW9kdWxlIGlkID0gMTE2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///116\n"); /***/ }), /* 117 */ /***/ (function(module, exports, __webpack_require__) { -eval("var Symbol = __webpack_require__(68);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRSYXdUYWcuanM/YjhiOCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjExNy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19TeW1ib2wnKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlXG4gKiBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHN5bVRvU3RyaW5nVGFnID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUdldFRhZ2Agd2hpY2ggaWdub3JlcyBgU3ltYm9sLnRvU3RyaW5nVGFnYCB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcmF3IGB0b1N0cmluZ1RhZ2AuXG4gKi9cbmZ1bmN0aW9uIGdldFJhd1RhZyh2YWx1ZSkge1xuICB2YXIgaXNPd24gPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBzeW1Ub1N0cmluZ1RhZyksXG4gICAgICB0YWcgPSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG5cbiAgdHJ5IHtcbiAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB1bmRlZmluZWQ7XG4gICAgdmFyIHVubWFza2VkID0gdHJ1ZTtcbiAgfSBjYXRjaCAoZSkge31cblxuICB2YXIgcmVzdWx0ID0gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gIGlmICh1bm1hc2tlZCkge1xuICAgIGlmIChpc093bikge1xuICAgICAgdmFsdWVbc3ltVG9TdHJpbmdUYWddID0gdGFnO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGUgdmFsdWVbc3ltVG9TdHJpbmdUYWddO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldFJhd1RhZztcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0UmF3VGFnLmpzXG4vLyBtb2R1bGUgaWQgPSAxMTdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///117\n"); +eval("var Symbol = __webpack_require__(72);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRSYXdUYWcuanM/YjhiOCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjExNy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19TeW1ib2wnKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlXG4gKiBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHN5bVRvU3RyaW5nVGFnID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUdldFRhZ2Agd2hpY2ggaWdub3JlcyBgU3ltYm9sLnRvU3RyaW5nVGFnYCB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcmF3IGB0b1N0cmluZ1RhZ2AuXG4gKi9cbmZ1bmN0aW9uIGdldFJhd1RhZyh2YWx1ZSkge1xuICB2YXIgaXNPd24gPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBzeW1Ub1N0cmluZ1RhZyksXG4gICAgICB0YWcgPSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG5cbiAgdHJ5IHtcbiAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB1bmRlZmluZWQ7XG4gICAgdmFyIHVubWFza2VkID0gdHJ1ZTtcbiAgfSBjYXRjaCAoZSkge31cblxuICB2YXIgcmVzdWx0ID0gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gIGlmICh1bm1hc2tlZCkge1xuICAgIGlmIChpc093bikge1xuICAgICAgdmFsdWVbc3ltVG9TdHJpbmdUYWddID0gdGFnO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGUgdmFsdWVbc3ltVG9TdHJpbmdUYWddO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldFJhd1RhZztcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0UmF3VGFnLmpzXG4vLyBtb2R1bGUgaWQgPSAxMTdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///117\n"); /***/ }), /* 118 */ @@ -801,7 +802,7 @@ eval("var coreJsData = __webpack_require__(120);\n\n/** Used to detect methods m /* 120 */ /***/ (function(module, exports, __webpack_require__) { -eval("var root = __webpack_require__(42);\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jb3JlSnNEYXRhLmpzP2ZhMDgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTs7QUFFQSIsImZpbGUiOiIxMjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcm9vdCA9IHJlcXVpcmUoJy4vX3Jvb3QnKTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG92ZXJyZWFjaGluZyBjb3JlLWpzIHNoaW1zLiAqL1xudmFyIGNvcmVKc0RhdGEgPSByb290WydfX2NvcmUtanNfc2hhcmVkX18nXTtcblxubW9kdWxlLmV4cG9ydHMgPSBjb3JlSnNEYXRhO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jb3JlSnNEYXRhLmpzXG4vLyBtb2R1bGUgaWQgPSAxMjBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///120\n"); +eval("var root = __webpack_require__(44);\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jb3JlSnNEYXRhLmpzP2ZhMDgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTs7QUFFQSIsImZpbGUiOiIxMjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcm9vdCA9IHJlcXVpcmUoJy4vX3Jvb3QnKTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG92ZXJyZWFjaGluZyBjb3JlLWpzIHNoaW1zLiAqL1xudmFyIGNvcmVKc0RhdGEgPSByb290WydfX2NvcmUtanNfc2hhcmVkX18nXTtcblxubW9kdWxlLmV4cG9ydHMgPSBjb3JlSnNEYXRhO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jb3JlSnNEYXRhLmpzXG4vLyBtb2R1bGUgaWQgPSAxMjBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///120\n"); /***/ }), /* 121 */ @@ -825,50 +826,50 @@ eval("/** Used to detect hot functions by number of calls within a span of milli /* 124 */ /***/ (function(module, exports, __webpack_require__) { -eval("var isObject = __webpack_require__(29),\n isSymbol = __webpack_require__(125);\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL3RvTnVtYmVyLmpzPzkzMWMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsRUFBRTtBQUNiLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIxMjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzT2JqZWN0JyksXG4gICAgaXNTeW1ib2wgPSByZXF1aXJlKCcuL2lzU3ltYm9sJyk7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIE5BTiA9IDAgLyAwO1xuXG4vKiogVXNlZCB0byBtYXRjaCBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlLiAqL1xudmFyIHJlVHJpbSA9IC9eXFxzK3xcXHMrJC9nO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgYmFkIHNpZ25lZCBoZXhhZGVjaW1hbCBzdHJpbmcgdmFsdWVzLiAqL1xudmFyIHJlSXNCYWRIZXggPSAvXlstK10weFswLTlhLWZdKyQvaTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGJpbmFyeSBzdHJpbmcgdmFsdWVzLiAqL1xudmFyIHJlSXNCaW5hcnkgPSAvXjBiWzAxXSskL2k7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBvY3RhbCBzdHJpbmcgdmFsdWVzLiAqL1xudmFyIHJlSXNPY3RhbCA9IC9eMG9bMC03XSskL2k7XG5cbi8qKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB3aXRob3V0IGEgZGVwZW5kZW5jeSBvbiBgcm9vdGAuICovXG52YXIgZnJlZVBhcnNlSW50ID0gcGFyc2VJbnQ7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIG51bWJlci5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIG51bWJlci5cbiAqIEBleGFtcGxlXG4gKlxuICogXy50b051bWJlcigzLjIpO1xuICogLy8gPT4gMy4yXG4gKlxuICogXy50b051bWJlcihOdW1iZXIuTUlOX1ZBTFVFKTtcbiAqIC8vID0+IDVlLTMyNFxuICpcbiAqIF8udG9OdW1iZXIoSW5maW5pdHkpO1xuICogLy8gPT4gSW5maW5pdHlcbiAqXG4gKiBfLnRvTnVtYmVyKCczLjInKTtcbiAqIC8vID0+IDMuMlxuICovXG5mdW5jdGlvbiB0b051bWJlcih2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmIChpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gTkFOO1xuICB9XG4gIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcbiAgICB2YXIgb3RoZXIgPSB0eXBlb2YgdmFsdWUudmFsdWVPZiA9PSAnZnVuY3Rpb24nID8gdmFsdWUudmFsdWVPZigpIDogdmFsdWU7XG4gICAgdmFsdWUgPSBpc09iamVjdChvdGhlcikgPyAob3RoZXIgKyAnJykgOiBvdGhlcjtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSAwID8gdmFsdWUgOiArdmFsdWU7XG4gIH1cbiAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKHJlVHJpbSwgJycpO1xuICB2YXIgaXNCaW5hcnkgPSByZUlzQmluYXJ5LnRlc3QodmFsdWUpO1xuICByZXR1cm4gKGlzQmluYXJ5IHx8IHJlSXNPY3RhbC50ZXN0KHZhbHVlKSlcbiAgICA/IGZyZWVQYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgaXNCaW5hcnkgPyAyIDogOClcbiAgICA6IChyZUlzQmFkSGV4LnRlc3QodmFsdWUpID8gTkFOIDogK3ZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0b051bWJlcjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC90b051bWJlci5qc1xuLy8gbW9kdWxlIGlkID0gMTI0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///124\n"); +eval("var isObject = __webpack_require__(28),\n isSymbol = __webpack_require__(125);\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL3RvTnVtYmVyLmpzPzkzMWMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsRUFBRTtBQUNiLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIxMjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzT2JqZWN0JyksXG4gICAgaXNTeW1ib2wgPSByZXF1aXJlKCcuL2lzU3ltYm9sJyk7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIE5BTiA9IDAgLyAwO1xuXG4vKiogVXNlZCB0byBtYXRjaCBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlLiAqL1xudmFyIHJlVHJpbSA9IC9eXFxzK3xcXHMrJC9nO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgYmFkIHNpZ25lZCBoZXhhZGVjaW1hbCBzdHJpbmcgdmFsdWVzLiAqL1xudmFyIHJlSXNCYWRIZXggPSAvXlstK10weFswLTlhLWZdKyQvaTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGJpbmFyeSBzdHJpbmcgdmFsdWVzLiAqL1xudmFyIHJlSXNCaW5hcnkgPSAvXjBiWzAxXSskL2k7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBvY3RhbCBzdHJpbmcgdmFsdWVzLiAqL1xudmFyIHJlSXNPY3RhbCA9IC9eMG9bMC03XSskL2k7XG5cbi8qKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB3aXRob3V0IGEgZGVwZW5kZW5jeSBvbiBgcm9vdGAuICovXG52YXIgZnJlZVBhcnNlSW50ID0gcGFyc2VJbnQ7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIG51bWJlci5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIG51bWJlci5cbiAqIEBleGFtcGxlXG4gKlxuICogXy50b051bWJlcigzLjIpO1xuICogLy8gPT4gMy4yXG4gKlxuICogXy50b051bWJlcihOdW1iZXIuTUlOX1ZBTFVFKTtcbiAqIC8vID0+IDVlLTMyNFxuICpcbiAqIF8udG9OdW1iZXIoSW5maW5pdHkpO1xuICogLy8gPT4gSW5maW5pdHlcbiAqXG4gKiBfLnRvTnVtYmVyKCczLjInKTtcbiAqIC8vID0+IDMuMlxuICovXG5mdW5jdGlvbiB0b051bWJlcih2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmIChpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gTkFOO1xuICB9XG4gIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcbiAgICB2YXIgb3RoZXIgPSB0eXBlb2YgdmFsdWUudmFsdWVPZiA9PSAnZnVuY3Rpb24nID8gdmFsdWUudmFsdWVPZigpIDogdmFsdWU7XG4gICAgdmFsdWUgPSBpc09iamVjdChvdGhlcikgPyAob3RoZXIgKyAnJykgOiBvdGhlcjtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSAwID8gdmFsdWUgOiArdmFsdWU7XG4gIH1cbiAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKHJlVHJpbSwgJycpO1xuICB2YXIgaXNCaW5hcnkgPSByZUlzQmluYXJ5LnRlc3QodmFsdWUpO1xuICByZXR1cm4gKGlzQmluYXJ5IHx8IHJlSXNPY3RhbC50ZXN0KHZhbHVlKSlcbiAgICA/IGZyZWVQYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgaXNCaW5hcnkgPyAyIDogOClcbiAgICA6IChyZUlzQmFkSGV4LnRlc3QodmFsdWUpID8gTkFOIDogK3ZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0b051bWJlcjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC90b051bWJlci5qc1xuLy8gbW9kdWxlIGlkID0gMTI0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///124\n"); /***/ }), /* 125 */ /***/ (function(module, exports, __webpack_require__) { -eval("var baseGetTag = __webpack_require__(28),\n isObjectLike = __webpack_require__(30);\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzU3ltYm9sLmpzP2U4YzgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxFQUFFO0FBQ2IsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIxMjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYmFzZUdldFRhZyA9IHJlcXVpcmUoJy4vX2Jhc2VHZXRUYWcnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXSc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBTeW1ib2xgIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzeW1ib2wsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc1N5bWJvbChTeW1ib2wuaXRlcmF0b3IpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNTeW1ib2woJ2FiYycpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNTeW1ib2wodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnc3ltYm9sJyB8fFxuICAgIChpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IHN5bWJvbFRhZyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNTeW1ib2w7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNTeW1ib2wuanNcbi8vIG1vZHVsZSBpZCA9IDEyNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///125\n"); +eval("var baseGetTag = __webpack_require__(27),\n isObjectLike = __webpack_require__(29);\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzU3ltYm9sLmpzP2U4YzgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxFQUFFO0FBQ2IsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIxMjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYmFzZUdldFRhZyA9IHJlcXVpcmUoJy4vX2Jhc2VHZXRUYWcnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXSc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBTeW1ib2xgIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzeW1ib2wsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc1N5bWJvbChTeW1ib2wuaXRlcmF0b3IpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNTeW1ib2woJ2FiYycpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNTeW1ib2wodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnc3ltYm9sJyB8fFxuICAgIChpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IHN5bWJvbFRhZyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNTeW1ib2w7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNTeW1ib2wuanNcbi8vIG1vZHVsZSBpZCA9IDEyNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///125\n"); /***/ }), /* 126 */ /***/ (function(module, exports, __webpack_require__) { -eval("/* WEBPACK VAR INJECTION */(function(global) {var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* global NodeList, Element, define */\r\n\r\n(function (global) {\r\n\t'use strict';\r\n\r\n\tvar FOCUSABLE_ELEMENTS = ['a[href]', 'area[href]', 'input:not([disabled])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'iframe', 'object', 'embed', '[contenteditable]', '[tabindex]:not([tabindex^=\"-\"])'];\r\n\tvar TAB_KEY = 9;\r\n\tvar ESCAPE_KEY = 27;\r\n\tvar focusedBeforeDialog;\r\n\tvar browser = browserTests();\r\n\tvar scroll = 0;\r\n\tvar scroller = browser.ie || browser.firefox || (browser.chrome && !browser.edge) ? document.documentElement : document.body;\r\n\r\n\t/**\r\n\t * Define the constructor to instantiate a dialog\r\n\t *\r\n\t * @constructor\r\n\t * @param {Object} options\r\n\t */\r\n\tfunction A11yDialog(options) {\r\n\t\tthis.options = extend({\r\n\t\t\tappendTarget: '',\r\n\t\t\tbodyLock: true,\r\n\t\t\tcloseButtonAriaLabel: 'Close this dialog window',\r\n\t\t\tcloseButtonClasses: 'a11y-dialog__close-button',\r\n\t\t\tcontentClasses: 'a11y-dialog__content',\r\n\t\t\teffect: 'none',\r\n\t\t\teffectSpeed: 300,\r\n\t\t\teffectEasing: 'ease-in-out',\r\n\t\t\toverlayClasses: 'a11y-dialog__overlay',\r\n\t\t\toverlayClickCloses: true,\r\n\t\t\ttrigger: null,\r\n\t\t\twrapperClasses: 'a11y-dialog',\r\n\t\t}, options);\r\n\t\t// Prebind the functions that will be bound in addEventListener and\r\n\t\t// removeEventListener to avoid losing references\r\n\t\tthis._rendered = false;\r\n\t\tthis._show = this.show.bind(this);\r\n\t\tthis._hide = this.hide.bind(this);\r\n\t\tthis._maintainFocus = this._maintainFocus.bind(this);\r\n\t\tthis._bindKeypress = this._bindKeypress.bind(this);\r\n\r\n\t\tthis.trigger = isString(this.options.trigger) ? getNodes(this.options.trigger, false, document, true)[0] : this.options.trigger;\r\n\t\tthis.node = null;\r\n\r\n\t\tif (!this.trigger) {\r\n\t\t\tconsole.warn('Lookup for a11y target node failed.');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Keep an object of listener types mapped to callback functions\r\n\t\tthis._listeners = {};\r\n\r\n\t\t// Initialise everything needed for the dialog to work properly\r\n\t\tthis.create();\r\n\t}\r\n\r\n\t/**\r\n\t * Set up everything necessary for the dialog to be functioning\r\n\t *\r\n\t * @return {this}\r\n\t */\r\n\tA11yDialog.prototype.create = function () {\r\n\t\tthis.shown = false;\r\n\t\tthis.trigger.addEventListener('click', this._show);\r\n\r\n\t\t// Execute all callbacks registered for the `create` event\r\n\t\tthis._fire('create');\r\n\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * Render the dialog\r\n\t *\r\n\t * @return {this}\r\n\t */\r\n\tA11yDialog.prototype.render = function (event) {\r\n\t\tvar contentNode = getNodes(this.trigger.dataset.content)[0];\r\n\t\tif (!contentNode) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tvar node = document.createElement('div');\r\n\t\tnode.setAttribute('aria-hidden', 'true');\r\n\t\tnode.classList.add(this.options.wrapperClasses);\r\n\t\tnode.innerHTML = '
    \\n' +\r\n\t\t\t'
    \\n' +\r\n\t\t\t'
    \\n' +\r\n\t\t\t' \\n' +\r\n\t\t\t' ' + contentNode.innerHTML +\r\n\t\t\t'
    \\n' +\r\n\t\t\t'
    ';\r\n\r\n\t\tvar appendTarget = this.trigger;\r\n\t\tif (this.options.appendTarget.length) {\r\n\t\t\tappendTarget = document.querySelectorAll(this.options.appendTarget)[0] || this.trigger;\r\n\t\t}\r\n\t\tinsertAfter(node, appendTarget);\r\n\t\tthis.node = node;\r\n\t\tthis.overlay = getNodes('a11y-overlay', false, this.node)[0];\r\n\t\tthis.closeButton = getNodes('a11y-close-button', false, this.node)[0];\r\n\t\tif (this.options.overlayClickCloses) {\r\n\t\t\tthis.overlay.addEventListener('click', this._hide);\r\n\t\t}\r\n\t\tthis.closeButton.addEventListener('click', this._hide);\r\n\t\tthis._rendered = true;\r\n\t\tthis._fire('render', event);\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * Show the dialog element, disable all the targets (siblings), trap the\r\n\t * current focus within it, listen for some specific key presses and fire all\r\n\t * registered callbacks for `show` event\r\n\t *\r\n\t * @param {Event} event\r\n\t * @return {this}\r\n\t */\r\n\tA11yDialog.prototype.show = function (event) {\r\n\t\t// If the dialog is already open, abort\r\n\t\tif (this.shown) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tif (!this._rendered) {\r\n\t\t\tthis.render(event);\r\n\t\t}\r\n\r\n\t\tif (!this._rendered) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tthis.shown = true;\r\n\t\tthis._applyOpenEffect();\r\n\t\tthis.node.setAttribute('aria-hidden', 'false');\r\n\t\tif (this.options.bodyLock) {\r\n\t\t\tlock();\r\n\t\t}\r\n\r\n\t\t// Keep a reference to the currently focused element to be able to restore\r\n\t\t// it later, then set the focus to the first focusable child of the dialog\r\n\t\t// element\r\n\t\tfocusedBeforeDialog = document.activeElement;\r\n\t\tsetFocusToFirstItem(this.node);\r\n\r\n\t\t// Bind a focus event listener to the body element to make sure the focus\r\n\t\t// stays trapped inside the dialog while open, and start listening for some\r\n\t\t// specific key presses (TAB and ESC)\r\n\t\tdocument.body.addEventListener('focus', this._maintainFocus, true);\r\n\t\tdocument.addEventListener('keydown', this._bindKeypress);\r\n\r\n\t\t// Execute all callbacks registered for the `show` event\r\n\t\tthis._fire('show', event);\r\n\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * Hide the dialog element, enable all the targets (siblings), restore the\r\n\t * focus to the previously active element, stop listening for some specific\r\n\t * key presses and fire all registered callbacks for `hide` event\r\n\t *\r\n\t * @param {Event} event\r\n\t * @return {this}\r\n\t */\r\n\tA11yDialog.prototype.hide = function (event) {\r\n\t\t// If the dialog is already closed, abort\r\n\t\tif (!this.shown) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tthis.shown = false;\r\n\t\tthis.node.setAttribute('aria-hidden', 'true');\r\n\t\tthis._applyCloseEffect();\r\n\r\n\t\tif (this.options.bodyLock) {\r\n\t\t\tunlock();\r\n\t\t}\r\n\r\n\t\t// If their was a focused element before the dialog was opened, restore the\r\n\t\t// focus back to it\r\n\t\tif (focusedBeforeDialog) {\r\n\t\t\tfocusedBeforeDialog.focus();\r\n\t\t}\r\n\r\n\t\t// Remove the focus event listener to the body element and stop listening\r\n\t\t// for specific key presses\r\n\t\tdocument.body.removeEventListener('focus', this._maintainFocus, true);\r\n\t\tdocument.removeEventListener('keydown', this._bindKeypress);\r\n\r\n\t\t// Execute all callbacks registered for the `hide` event\r\n\t\tthis._fire('hide', event);\r\n\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * Destroy the current instance (after making sure the dialog has been hidden)\r\n\t * and remove all associated listeners from dialog openers and closers\r\n\t *\r\n\t * @return {this}\r\n\t */\r\n\tA11yDialog.prototype.destroy = function () {\r\n\t\t// Hide the dialog to avoid destroying an open instance\r\n\t\tthis.hide();\r\n\r\n\t\tthis.trigger.removeEventListener('click', this._show);\r\n\t\tif (this.options.overlayClickCloses) {\r\n\t\t\tthis.overlay.removeEventListener('click', this._hide);\r\n\t\t}\r\n\t\tthis.closeButton.removeEventListener('click', this._hide);\r\n\r\n\t\t// Execute all callbacks registered for the `destroy` event\r\n\t\tthis._fire('destroy');\r\n\r\n\t\t// Keep an object of listener types mapped to callback functions\r\n\t\tthis._listeners = {};\r\n\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * Register a new callback for the given event type\r\n\t *\r\n\t * @param {string} type\r\n\t * @param {Function} handler\r\n\t */\r\n\tA11yDialog.prototype.on = function (type, handler) {\r\n\t\tif (typeof this._listeners[type] === 'undefined') {\r\n\t\t\tthis._listeners[type] = [];\r\n\t\t}\r\n\r\n\t\tthis._listeners[type].push(handler);\r\n\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * Unregister an existing callback for the given event type\r\n\t *\r\n\t * @param {string} type\r\n\t * @param {Function} handler\r\n\t */\r\n\tA11yDialog.prototype.off = function (type, handler) {\r\n\t\tvar index = this._listeners[type].indexOf(handler);\r\n\r\n\t\tif (index > -1) {\r\n\t\t\tthis._listeners[type].splice(index, 1);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * Iterate over all registered handlers for given type and call them all with\r\n\t * the dialog element as first argument, event as second argument (if any).\r\n\t *\r\n\t * @access private\r\n\t * @param {string} type\r\n\t * @param {Event} event\r\n\t */\r\n\tA11yDialog.prototype._fire = function (type, event) {\r\n\t\tvar listeners = this._listeners[type] || [];\r\n\r\n\t\tlisteners.forEach(function (listener) {\r\n\t\t\tlistener(this.node, event);\r\n\t\t}.bind(this));\r\n\t};\r\n\r\n\t/**\r\n\t * Private event handler used when listening to some specific key presses\r\n\t * (namely ESCAPE and TAB)\r\n\t *\r\n\t * @access private\r\n\t * @param {Event} event\r\n\t */\r\n\tA11yDialog.prototype._bindKeypress = function (event) {\r\n\t\t// If the dialog is shown and the ESCAPE key is being pressed, prevent any\r\n\t\t// further effects from the ESCAPE key and hide the dialog\r\n\t\tif (this.shown && event.which === ESCAPE_KEY) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tthis.hide();\r\n\t\t}\r\n\r\n\t\t// If the dialog is shown and the TAB key is being pressed, make sure the\r\n\t\t// focus stays trapped within the dialog element\r\n\t\tif (this.shown && event.which === TAB_KEY) {\r\n\t\t\ttrapTabKey(this.node, event);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Private event handler used when making sure the focus stays within the\r\n\t * currently open dialog\r\n\t *\r\n\t * @access private\r\n\t * @param {Event} event\r\n\t */\r\n\tA11yDialog.prototype._maintainFocus = function (event) {\r\n\t\t// If the dialog is shown and the focus is not within the dialog element,\r\n\t\t// move it back to its first focusable child\r\n\t\tif (this.shown && !this.node.contains(event.target)) {\r\n\t\t\tsetFocusToFirstItem(this.node);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Applies effects to the opening of the dialog.\r\n\t *\r\n\t * @access private\r\n\t */\r\n\r\n\tA11yDialog.prototype._applyOpenEffect = function () {\r\n\t\tvar _this = this;\r\n\t\tif (this.options.effect === 'fade') {\r\n\t\t\tthis.node.style.opacity = '0';\r\n\t\t\tthis.node.style.transition = 'opacity ' + this.options.effectSpeed + 'ms ' + this.options.effectEasing;\r\n\t\t\tsetTimeout(function(){\r\n\t\t\t\t_this.node.style.opacity = '1';\r\n\t\t\t}, 50);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Applies effects to the closing of the dialog.\r\n\t *\r\n\t * @access private\r\n\t */\r\n\r\n\tA11yDialog.prototype._applyCloseEffect = function () {\r\n\t\tvar _this = this;\r\n\t\tif (this.options.effect === 'fade') {\r\n\t\t\tthis.node.setAttribute('aria-hidden', 'false');\r\n\t\t\tthis.node.style.opacity = '0';\r\n\t\t\tsetTimeout(function(){\r\n\t\t\t\t_this.node.style.transition = '';\r\n\t\t\t\t_this.node.setAttribute('aria-hidden', 'true');\r\n\t\t\t}, this.options.effectSpeed);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Highly efficient function to convert a nodelist into a standard array. Allows you to run Array.forEach\r\n\t *\r\n\t * @param {Element|NodeList} elements to convert\r\n\t * @returns {Array} Of converted elements\r\n\t */\r\n\r\n\tfunction convertElements(elements) {\r\n\t\tvar converted = [];\r\n\t\tvar i = elements.length;\r\n\t\tfor (i; i--; converted.unshift(elements[i])); // eslint-disable-line\r\n\r\n\t\treturn converted;\r\n\t}\r\n\r\n\t/**\r\n\t * Should be used at all times for getting nodes throughout our app. Please use the data-js attribute whenever possible\r\n\t *\r\n\t * @param selector The selector string to search for. If arg 4 is false (default) then we search for [data-js=\"selector\"]\r\n\t * @param convert Convert the NodeList to an array? Then we can Array.forEach directly. Uses convertElements from above\r\n\t * @param node Parent node to search from. Defaults to document\r\n\t * @param custom Is this a custom selector where we don't want to use the data-js attribute?\r\n\t * @returns {NodeList}\r\n\t */\r\n\r\n\tfunction getNodes(selector, convert, node, custom) {\r\n\t\tif (!node) {\r\n\t\t\tnode = document;\r\n\t\t}\r\n\t\tvar selectorString = custom ? selector : '[data-js=\"' + selector + '\"]';\r\n\t\tvar nodes = node.querySelectorAll(selectorString);\r\n\t\tif (convert) {\r\n\t\t\tnodes = convertElements(nodes);\r\n\t\t}\r\n\t\treturn nodes;\r\n\t}\r\n\r\n\t/**\r\n\t * Query the DOM for nodes matching the given selector, scoped to context (or\r\n\t * the whole document)\r\n\t *\r\n\t * @param {String} selector\r\n\t * @param {Element} [context = document]\r\n\t * @return {Array}\r\n\t */\r\n\tfunction $$(selector, context) {\r\n\t\treturn convertElements((context || document).querySelectorAll(selector));\r\n\t}\r\n\r\n\t/**\r\n\t * Set the focus to the first focusable child of the given element\r\n\t *\r\n\t * @param {Element} node\r\n\t */\r\n\tfunction setFocusToFirstItem(node) {\r\n\t\tvar focusableChildren = getFocusableChildren(node);\r\n\r\n\t\tif (focusableChildren.length) {\r\n\t\t\tfocusableChildren[0].focus();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Insert a node after another node\r\n\t *\r\n\t * @param newNode {Element|NodeList}\r\n\t * @param referenceNode {Element|NodeList}\r\n\t */\r\n\tfunction insertAfter(newNode, referenceNode) {\r\n\t\treferenceNode.parentNode.insertBefore(newNode, referenceNode.nextElementSibling);\r\n\t}\r\n\r\n\t/**\r\n\t * Get the focusable children of the given element\r\n\t *\r\n\t * @param {Element} node\r\n\t * @return {Array}\r\n\t */\r\n\tfunction getFocusableChildren(node) {\r\n\t\treturn $$(FOCUSABLE_ELEMENTS.join(','), node).filter(function (child) {\r\n\t\t\treturn !!(child.offsetWidth || child.offsetHeight || child.getClientRects().length);\r\n\t\t});\r\n\t}\r\n\r\n\tfunction isString(x) {\r\n\t\treturn Object.prototype.toString.call(x) === \"[object String]\"\r\n\t}\r\n\r\n\tfunction extend(obj, src) {\r\n\t\tObject.keys(src).forEach(function(key) { obj[key] = src[key]; });\r\n\t\treturn obj;\r\n\t}\r\n\r\n\t/**\r\n\t * Trap the focus inside the given element\r\n\t *\r\n\t * @param {Element} node\r\n\t * @param {Event} event\r\n\t */\r\n\tfunction trapTabKey(node, event) {\r\n\t\tvar focusableChildren = getFocusableChildren(node);\r\n\t\tvar focusedItemIndex = focusableChildren.indexOf(document.activeElement);\r\n\r\n\t\t// If the SHIFT key is being pressed while tabbing (moving backwards) and\r\n\t\t// the currently focused item is the first one, move the focus to the last\r\n\t\t// focusable item from the dialog element\r\n\t\tif (event.shiftKey && focusedItemIndex === 0) {\r\n\t\t\tfocusableChildren[focusableChildren.length - 1].focus();\r\n\t\t\tevent.preventDefault();\r\n\t\t\t// If the SHIFT key is not being pressed (moving forwards) and the currently\r\n\t\t\t// focused item is the last one, move the focus to the first focusable item\r\n\t\t\t// from the dialog element\r\n\t\t} else if (!event.shiftKey && focusedItemIndex === focusableChildren.length - 1) {\r\n\t\t\tfocusableChildren[0].focus();\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @function lock\r\n\t * @description Lock the body at a particular position and prevent scroll,\r\n\t * use margin to simulate original scroll position.\r\n\t */\r\n\r\n\tfunction lock() {\r\n\t\tscroll = scroller.scrollTop;\r\n\t\tdocument.body.classList.add('a11y-dialog__body-locked');\r\n\t\tdocument.body.style.position = 'fixed';\r\n\t\tdocument.body.style.width = '100%';\r\n\t\tdocument.body.style.marginTop = '-' + scroll + 'px';\r\n\t}\r\n\r\n\t/**\r\n\t * @function unlock\r\n\t * @description Unlock the body and return it to its actual scroll position.\r\n\t */\r\n\r\n\tfunction unlock() {\r\n\t\tdocument.body.style.marginTop = '';\r\n\t\tdocument.body.style.position = '';\r\n\t\tdocument.body.style.width = '';\r\n\t\tscroller.scrollTop = scroll;\r\n\t\tdocument.body.classList.remove('a11y-dialog__body-locked');\r\n\t}\r\n\r\n\tfunction browserTests() {\r\n\t\tvar android = /(android)/i.test(navigator.userAgent);\r\n\t\tvar chrome = !!window.chrome;\r\n\t\tvar firefox = typeof InstallTrigger !== 'undefined';\r\n\t\tvar ie = document.documentMode;\r\n\t\tvar edge = !ie && !!window.StyleMedia;\r\n\t\tvar ios = !!navigator.userAgent.match(/(iPod|iPhone|iPad)/i);\r\n\t\tvar iosMobile = !!navigator.userAgent.match(/(iPod|iPhone)/i);\r\n\t\tvar opera = !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;\r\n\t\tvar safari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0 || !chrome && !opera && window.webkitAudioContext !== 'undefined'; // eslint-disable-line\r\n\t\tvar os = navigator.platform;\r\n\r\n\t\treturn {\r\n\t\t\tandroid: android,\r\n\t\t\tchrome: chrome,\r\n\t\t\tedge: edge,\r\n\t\t\tfirefox: firefox,\r\n\t\t\tie: ie,\r\n\t\t\tios: ios,\r\n\t\t\tiosMobile: iosMobile,\r\n\t\t\topera: opera,\r\n\t\t\tsafari: safari,\r\n\t\t\tos: os,\r\n\t\t}\r\n\t}\r\n\r\n\tif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n\t\tmodule.exports = A11yDialog;\r\n\t} else if (true) {\r\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\r\n\t\t\treturn A11yDialog;\r\n\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t} else if (typeof global === 'object') {\r\n\t\tglobal.A11yDialog = A11yDialog;\r\n\t}\r\n}(typeof global !== 'undefined' ? global : window));\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(70)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbXQtYTExeS1kaWFsb2cvYTExeS1kaWFsb2cuanM/YjM3YyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOENBQUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksT0FBTztBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksTUFBTTtBQUNsQixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7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OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLEdBQUc7QUFBQTtBQUNILEVBQUU7QUFDRjtBQUNBO0FBQ0EsQ0FBQyIsImZpbGUiOiIxMjYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgTm9kZUxpc3QsIEVsZW1lbnQsIGRlZmluZSAqL1xyXG5cclxuKGZ1bmN0aW9uIChnbG9iYWwpIHtcclxuXHQndXNlIHN0cmljdCc7XHJcblxyXG5cdHZhciBGT0NVU0FCTEVfRUxFTUVOVFMgPSBbJ2FbaHJlZl0nLCAnYXJlYVtocmVmXScsICdpbnB1dDpub3QoW2Rpc2FibGVkXSknLCAnc2VsZWN0Om5vdChbZGlzYWJsZWRdKScsICd0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSknLCAnYnV0dG9uOm5vdChbZGlzYWJsZWRdKScsICdpZnJhbWUnLCAnb2JqZWN0JywgJ2VtYmVkJywgJ1tjb250ZW50ZWRpdGFibGVdJywgJ1t0YWJpbmRleF06bm90KFt0YWJpbmRleF49XCItXCJdKSddO1xyXG5cdHZhciBUQUJfS0VZID0gOTtcclxuXHR2YXIgRVNDQVBFX0tFWSA9IDI3O1xyXG5cdHZhciBmb2N1c2VkQmVmb3JlRGlhbG9nO1xyXG5cdHZhciBicm93c2VyID0gYnJvd3NlclRlc3RzKCk7XHJcblx0dmFyIHNjcm9sbCA9IDA7XHJcblx0dmFyIHNjcm9sbGVyID0gYnJvd3Nlci5pZSB8fCBicm93c2VyLmZpcmVmb3ggfHwgKGJyb3dzZXIuY2hyb21lICYmICFicm93c2VyLmVkZ2UpID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50IDogZG9jdW1lbnQuYm9keTtcclxuXHJcblx0LyoqXHJcblx0ICogRGVmaW5lIHRoZSBjb25zdHJ1Y3RvciB0byBpbnN0YW50aWF0ZSBhIGRpYWxvZ1xyXG5cdCAqXHJcblx0ICogQGNvbnN0cnVjdG9yXHJcblx0ICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcclxuXHQgKi9cclxuXHRmdW5jdGlvbiBBMTF5RGlhbG9nKG9wdGlvbnMpIHtcclxuXHRcdHRoaXMub3B0aW9ucyA9IGV4dGVuZCh7XHJcblx0XHRcdGFwcGVuZFRhcmdldDogJycsXHJcblx0XHRcdGJvZHlMb2NrOiB0cnVlLFxyXG5cdFx0XHRjbG9zZUJ1dHRvbkFyaWFMYWJlbDogJ0Nsb3NlIHRoaXMgZGlhbG9nIHdpbmRvdycsXHJcblx0XHRcdGNsb3NlQnV0dG9uQ2xhc3NlczogJ2ExMXktZGlhbG9nX19jbG9zZS1idXR0b24nLFxyXG5cdFx0XHRjb250ZW50Q2xhc3NlczogJ2ExMXktZGlhbG9nX19jb250ZW50JyxcclxuXHRcdFx0ZWZmZWN0OiAnbm9uZScsXHJcblx0XHRcdGVmZmVjdFNwZWVkOiAzMDAsXHJcblx0XHRcdGVmZmVjdEVhc2luZzogJ2Vhc2UtaW4tb3V0JyxcclxuXHRcdFx0b3ZlcmxheUNsYXNzZXM6ICdhMTF5LWRpYWxvZ19fb3ZlcmxheScsXHJcblx0XHRcdG92ZXJsYXlDbGlja0Nsb3NlczogdHJ1ZSxcclxuXHRcdFx0dHJpZ2dlcjogbnVsbCxcclxuXHRcdFx0d3JhcHBlckNsYXNzZXM6ICdhMTF5LWRpYWxvZycsXHJcblx0XHR9LCBvcHRpb25zKTtcclxuXHRcdC8vIFByZWJpbmQgdGhlIGZ1bmN0aW9ucyB0aGF0IHdpbGwgYmUgYm91bmQgaW4gYWRkRXZlbnRMaXN0ZW5lciBhbmRcclxuXHRcdC8vIHJlbW92ZUV2ZW50TGlzdGVuZXIgdG8gYXZvaWQgbG9zaW5nIHJlZmVyZW5jZXNcclxuXHRcdHRoaXMuX3JlbmRlcmVkID0gZmFsc2U7XHJcblx0XHR0aGlzLl9zaG93ID0gdGhpcy5zaG93LmJpbmQodGhpcyk7XHJcblx0XHR0aGlzLl9oaWRlID0gdGhpcy5oaWRlLmJpbmQodGhpcyk7XHJcblx0XHR0aGlzLl9tYWludGFpbkZvY3VzID0gdGhpcy5fbWFpbnRhaW5Gb2N1cy5iaW5kKHRoaXMpO1xyXG5cdFx0dGhpcy5fYmluZEtleXByZXNzID0gdGhpcy5fYmluZEtleXByZXNzLmJpbmQodGhpcyk7XHJcblxyXG5cdFx0dGhpcy50cmlnZ2VyID0gaXNTdHJpbmcodGhpcy5vcHRpb25zLnRyaWdnZXIpID8gZ2V0Tm9kZXModGhpcy5vcHRpb25zLnRyaWdnZXIsIGZhbHNlLCBkb2N1bWVudCwgdHJ1ZSlbMF0gOiB0aGlzLm9wdGlvbnMudHJpZ2dlcjtcclxuXHRcdHRoaXMubm9kZSA9IG51bGw7XHJcblxyXG5cdFx0aWYgKCF0aGlzLnRyaWdnZXIpIHtcclxuXHRcdFx0Y29uc29sZS53YXJuKCdMb29rdXAgZm9yIGExMXkgdGFyZ2V0IG5vZGUgZmFpbGVkLicpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gS2VlcCBhbiBvYmplY3Qgb2YgbGlzdGVuZXIgdHlwZXMgbWFwcGVkIHRvIGNhbGxiYWNrIGZ1bmN0aW9uc1xyXG5cdFx0dGhpcy5fbGlzdGVuZXJzID0ge307XHJcblxyXG5cdFx0Ly8gSW5pdGlhbGlzZSBldmVyeXRoaW5nIG5lZWRlZCBmb3IgdGhlIGRpYWxvZyB0byB3b3JrIHByb3Blcmx5XHJcblx0XHR0aGlzLmNyZWF0ZSgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2V0IHVwIGV2ZXJ5dGhpbmcgbmVjZXNzYXJ5IGZvciB0aGUgZGlhbG9nIHRvIGJlIGZ1bmN0aW9uaW5nXHJcblx0ICpcclxuXHQgKiBAcmV0dXJuIHt0aGlzfVxyXG5cdCAqL1xyXG5cdEExMXlEaWFsb2cucHJvdG90eXBlLmNyZWF0ZSA9IGZ1bmN0aW9uICgpIHtcclxuXHRcdHRoaXMuc2hvd24gPSBmYWxzZTtcclxuXHRcdHRoaXMudHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX3Nob3cpO1xyXG5cclxuXHRcdC8vIEV4ZWN1dGUgYWxsIGNhbGxiYWNrcyByZWdpc3RlcmVkIGZvciB0aGUgYGNyZWF0ZWAgZXZlbnRcclxuXHRcdHRoaXMuX2ZpcmUoJ2NyZWF0ZScpO1xyXG5cclxuXHRcdHJldHVybiB0aGlzO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlbmRlciB0aGUgZGlhbG9nXHJcblx0ICpcclxuXHQgKiBAcmV0dXJuIHt0aGlzfVxyXG5cdCAqL1xyXG5cdEExMXlEaWFsb2cucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIChldmVudCkge1xyXG5cdFx0dmFyIGNvbnRlbnROb2RlID0gZ2V0Tm9kZXModGhpcy50cmlnZ2VyLmRhdGFzZXQuY29udGVudClbMF07XHJcblx0XHRpZiAoIWNvbnRlbnROb2RlKSB7XHJcblx0XHRcdHJldHVybiB0aGlzO1xyXG5cdFx0fVxyXG5cdFx0dmFyIG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuXHRcdG5vZGUuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7XHJcblx0XHRub2RlLmNsYXNzTGlzdC5hZGQodGhpcy5vcHRpb25zLndyYXBwZXJDbGFzc2VzKTtcclxuXHRcdG5vZGUuaW5uZXJIVE1MID0gJzxkaXYgZGF0YS1qcz1cImExMXktb3ZlcmxheVwiIHRhYmluZGV4PVwiLTFcIiBjbGFzcz1cIicgKyB0aGlzLm9wdGlvbnMub3ZlcmxheUNsYXNzZXMgKyAnXCI+PC9kaXY+XFxuJyArXHJcblx0XHRcdCcgIDxkaXYgY2xhc3M9XCInICsgdGhpcy5vcHRpb25zLmNvbnRlbnRDbGFzc2VzICsgJ1wiIHJvbGU9XCJkaWFsb2dcIj5cXG4nICtcclxuXHRcdFx0JyAgICA8ZGl2IHJvbGU9XCJkb2N1bWVudFwiPlxcbicgK1xyXG5cdFx0XHQnICAgICAgPGJ1dHRvbiAnICtcclxuXHRcdFx0JyAgICAgICAgICAgZGF0YS1qcz1cImExMXktY2xvc2UtYnV0dG9uXCInICtcclxuXHRcdFx0JyAgICAgICAgICAgY2xhc3M9XCInICsgdGhpcy5vcHRpb25zLmNsb3NlQnV0dG9uQ2xhc3NlcyArICdcIiAnICtcclxuXHRcdFx0JyAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiICcgK1xyXG5cdFx0XHQnICAgICAgICAgICBhcmlhLWxhYmVsPVwiJyArIHRoaXMub3B0aW9ucy5jbG9zZUJ1dHRvbkFyaWFMYWJlbCArICdcIicgK1xyXG5cdFx0XHQnICAgICAgID48L2J1dHRvbj5cXG4nICtcclxuXHRcdFx0JyAgICAgICcgKyBjb250ZW50Tm9kZS5pbm5lckhUTUwgK1xyXG5cdFx0XHQnICAgIDwvZGl2PlxcbicgK1xyXG5cdFx0XHQnICA8L2Rpdj4nO1xyXG5cclxuXHRcdHZhciBhcHBlbmRUYXJnZXQgPSB0aGlzLnRyaWdnZXI7XHJcblx0XHRpZiAodGhpcy5vcHRpb25zLmFwcGVuZFRhcmdldC5sZW5ndGgpIHtcclxuXHRcdFx0YXBwZW5kVGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh0aGlzLm9wdGlvbnMuYXBwZW5kVGFyZ2V0KVswXSB8fCB0aGlzLnRyaWdnZXI7XHJcblx0XHR9XHJcblx0XHRpbnNlcnRBZnRlcihub2RlLCBhcHBlbmRUYXJnZXQpO1xyXG5cdFx0dGhpcy5ub2RlID0gbm9kZTtcclxuXHRcdHRoaXMub3ZlcmxheSA9IGdldE5vZGVzKCdhMTF5LW92ZXJsYXknLCBmYWxzZSwgdGhpcy5ub2RlKVswXTtcclxuXHRcdHRoaXMuY2xvc2VCdXR0b24gPSBnZXROb2RlcygnYTExeS1jbG9zZS1idXR0b24nLCBmYWxzZSwgdGhpcy5ub2RlKVswXTtcclxuXHRcdGlmICh0aGlzLm9wdGlvbnMub3ZlcmxheUNsaWNrQ2xvc2VzKSB7XHJcblx0XHRcdHRoaXMub3ZlcmxheS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2hpZGUpO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5jbG9zZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2hpZGUpO1xyXG5cdFx0dGhpcy5fcmVuZGVyZWQgPSB0cnVlO1xyXG5cdFx0dGhpcy5fZmlyZSgncmVuZGVyJywgZXZlbnQpO1xyXG5cdFx0cmV0dXJuIHRoaXM7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogU2hvdyB0aGUgZGlhbG9nIGVsZW1lbnQsIGRpc2FibGUgYWxsIHRoZSB0YXJnZXRzIChzaWJsaW5ncyksIHRyYXAgdGhlXHJcblx0ICogY3VycmVudCBmb2N1cyB3aXRoaW4gaXQsIGxpc3RlbiBmb3Igc29tZSBzcGVjaWZpYyBrZXkgcHJlc3NlcyBhbmQgZmlyZSBhbGxcclxuXHQgKiByZWdpc3RlcmVkIGNhbGxiYWNrcyBmb3IgYHNob3dgIGV2ZW50XHJcblx0ICpcclxuXHQgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxyXG5cdCAqIEByZXR1cm4ge3RoaXN9XHJcblx0ICovXHJcblx0QTExeURpYWxvZy5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uIChldmVudCkge1xyXG5cdFx0Ly8gSWYgdGhlIGRpYWxvZyBpcyBhbHJlYWR5IG9wZW4sIGFib3J0XHJcblx0XHRpZiAodGhpcy5zaG93bikge1xyXG5cdFx0XHRyZXR1cm4gdGhpcztcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIXRoaXMuX3JlbmRlcmVkKSB7XHJcblx0XHRcdHRoaXMucmVuZGVyKGV2ZW50KTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIXRoaXMuX3JlbmRlcmVkKSB7XHJcblx0XHRcdHJldHVybiB0aGlzO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuc2hvd24gPSB0cnVlO1xyXG5cdFx0dGhpcy5fYXBwbHlPcGVuRWZmZWN0KCk7XHJcblx0XHR0aGlzLm5vZGUuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICdmYWxzZScpO1xyXG5cdFx0aWYgKHRoaXMub3B0aW9ucy5ib2R5TG9jaykge1xyXG5cdFx0XHRsb2NrKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gS2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudGx5IGZvY3VzZWQgZWxlbWVudCB0byBiZSBhYmxlIHRvIHJlc3RvcmVcclxuXHRcdC8vIGl0IGxhdGVyLCB0aGVuIHNldCB0aGUgZm9jdXMgdG8gdGhlIGZpcnN0IGZvY3VzYWJsZSBjaGlsZCBvZiB0aGUgZGlhbG9nXHJcblx0XHQvLyBlbGVtZW50XHJcblx0XHRmb2N1c2VkQmVmb3JlRGlhbG9nID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcclxuXHRcdHNldEZvY3VzVG9GaXJzdEl0ZW0odGhpcy5ub2RlKTtcclxuXHJcblx0XHQvLyBCaW5kIGEgZm9jdXMgZXZlbnQgbGlzdGVuZXIgdG8gdGhlIGJvZHkgZWxlbWVudCB0byBtYWtlIHN1cmUgdGhlIGZvY3VzXHJcblx0XHQvLyBzdGF5cyB0cmFwcGVkIGluc2lkZSB0aGUgZGlhbG9nIHdoaWxlIG9wZW4sIGFuZCBzdGFydCBsaXN0ZW5pbmcgZm9yIHNvbWVcclxuXHRcdC8vIHNwZWNpZmljIGtleSBwcmVzc2VzIChUQUIgYW5kIEVTQylcclxuXHRcdGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCB0aGlzLl9tYWludGFpbkZvY3VzLCB0cnVlKTtcclxuXHRcdGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9iaW5kS2V5cHJlc3MpO1xyXG5cclxuXHRcdC8vIEV4ZWN1dGUgYWxsIGNhbGxiYWNrcyByZWdpc3RlcmVkIGZvciB0aGUgYHNob3dgIGV2ZW50XHJcblx0XHR0aGlzLl9maXJlKCdzaG93JywgZXZlbnQpO1xyXG5cclxuXHRcdHJldHVybiB0aGlzO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIEhpZGUgdGhlIGRpYWxvZyBlbGVtZW50LCBlbmFibGUgYWxsIHRoZSB0YXJnZXRzIChzaWJsaW5ncyksIHJlc3RvcmUgdGhlXHJcblx0ICogZm9jdXMgdG8gdGhlIHByZXZpb3VzbHkgYWN0aXZlIGVsZW1lbnQsIHN0b3AgbGlzdGVuaW5nIGZvciBzb21lIHNwZWNpZmljXHJcblx0ICoga2V5IHByZXNzZXMgYW5kIGZpcmUgYWxsIHJlZ2lzdGVyZWQgY2FsbGJhY2tzIGZvciBgaGlkZWAgZXZlbnRcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50XHJcblx0ICogQHJldHVybiB7dGhpc31cclxuXHQgKi9cclxuXHRBMTF5RGlhbG9nLnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24gKGV2ZW50KSB7XHJcblx0XHQvLyBJZiB0aGUgZGlhbG9nIGlzIGFscmVhZHkgY2xvc2VkLCBhYm9ydFxyXG5cdFx0aWYgKCF0aGlzLnNob3duKSB7XHJcblx0XHRcdHJldHVybiB0aGlzO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuc2hvd24gPSBmYWxzZTtcclxuXHRcdHRoaXMubm9kZS5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTtcclxuXHRcdHRoaXMuX2FwcGx5Q2xvc2VFZmZlY3QoKTtcclxuXHJcblx0XHRpZiAodGhpcy5vcHRpb25zLmJvZHlMb2NrKSB7XHJcblx0XHRcdHVubG9jaygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIElmIHRoZWlyIHdhcyBhIGZvY3VzZWQgZWxlbWVudCBiZWZvcmUgdGhlIGRpYWxvZyB3YXMgb3BlbmVkLCByZXN0b3JlIHRoZVxyXG5cdFx0Ly8gZm9jdXMgYmFjayB0byBpdFxyXG5cdFx0aWYgKGZvY3VzZWRCZWZvcmVEaWFsb2cpIHtcclxuXHRcdFx0Zm9jdXNlZEJlZm9yZURpYWxvZy5mb2N1cygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIFJlbW92ZSB0aGUgZm9jdXMgZXZlbnQgbGlzdGVuZXIgdG8gdGhlIGJvZHkgZWxlbWVudCBhbmQgc3RvcCBsaXN0ZW5pbmdcclxuXHRcdC8vIGZvciBzcGVjaWZpYyBrZXkgcHJlc3Nlc1xyXG5cdFx0ZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1cycsIHRoaXMuX21haW50YWluRm9jdXMsIHRydWUpO1xyXG5cdFx0ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuX2JpbmRLZXlwcmVzcyk7XHJcblxyXG5cdFx0Ly8gRXhlY3V0ZSBhbGwgY2FsbGJhY2tzIHJlZ2lzdGVyZWQgZm9yIHRoZSBgaGlkZWAgZXZlbnRcclxuXHRcdHRoaXMuX2ZpcmUoJ2hpZGUnLCBldmVudCk7XHJcblxyXG5cdFx0cmV0dXJuIHRoaXM7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogRGVzdHJveSB0aGUgY3VycmVudCBpbnN0YW5jZSAoYWZ0ZXIgbWFraW5nIHN1cmUgdGhlIGRpYWxvZyBoYXMgYmVlbiBoaWRkZW4pXHJcblx0ICogYW5kIHJlbW92ZSBhbGwgYXNzb2NpYXRlZCBsaXN0ZW5lcnMgZnJvbSBkaWFsb2cgb3BlbmVycyBhbmQgY2xvc2Vyc1xyXG5cdCAqXHJcblx0ICogQHJldHVybiB7dGhpc31cclxuXHQgKi9cclxuXHRBMTF5RGlhbG9nLnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24gKCkge1xyXG5cdFx0Ly8gSGlkZSB0aGUgZGlhbG9nIHRvIGF2b2lkIGRlc3Ryb3lpbmcgYW4gb3BlbiBpbnN0YW5jZVxyXG5cdFx0dGhpcy5oaWRlKCk7XHJcblxyXG5cdFx0dGhpcy50cmlnZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5fc2hvdyk7XHJcblx0XHRpZiAodGhpcy5vcHRpb25zLm92ZXJsYXlDbGlja0Nsb3Nlcykge1xyXG5cdFx0XHR0aGlzLm92ZXJsYXkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9oaWRlKTtcclxuXHRcdH1cclxuXHRcdHRoaXMuY2xvc2VCdXR0b24ucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9oaWRlKTtcclxuXHJcblx0XHQvLyBFeGVjdXRlIGFsbCBjYWxsYmFja3MgcmVnaXN0ZXJlZCBmb3IgdGhlIGBkZXN0cm95YCBldmVudFxyXG5cdFx0dGhpcy5fZmlyZSgnZGVzdHJveScpO1xyXG5cclxuXHRcdC8vIEtlZXAgYW4gb2JqZWN0IG9mIGxpc3RlbmVyIHR5cGVzIG1hcHBlZCB0byBjYWxsYmFjayBmdW5jdGlvbnNcclxuXHRcdHRoaXMuX2xpc3RlbmVycyA9IHt9O1xyXG5cclxuXHRcdHJldHVybiB0aGlzO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlZ2lzdGVyIGEgbmV3IGNhbGxiYWNrIGZvciB0aGUgZ2l2ZW4gZXZlbnQgdHlwZVxyXG5cdCAqXHJcblx0ICogQHBhcmFtIHtzdHJpbmd9IHR5cGVcclxuXHQgKiBAcGFyYW0ge0Z1bmN0aW9ufSBoYW5kbGVyXHJcblx0ICovXHJcblx0QTExeURpYWxvZy5wcm90b3R5cGUub24gPSBmdW5jdGlvbiAodHlwZSwgaGFuZGxlcikge1xyXG5cdFx0aWYgKHR5cGVvZiB0aGlzLl9saXN0ZW5lcnNbdHlwZV0gPT09ICd1bmRlZmluZWQnKSB7XHJcblx0XHRcdHRoaXMuX2xpc3RlbmVyc1t0eXBlXSA9IFtdO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuX2xpc3RlbmVyc1t0eXBlXS5wdXNoKGhhbmRsZXIpO1xyXG5cclxuXHRcdHJldHVybiB0aGlzO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFVucmVnaXN0ZXIgYW4gZXhpc3RpbmcgY2FsbGJhY2sgZm9yIHRoZSBnaXZlbiBldmVudCB0eXBlXHJcblx0ICpcclxuXHQgKiBAcGFyYW0ge3N0cmluZ30gdHlwZVxyXG5cdCAqIEBwYXJhbSB7RnVuY3Rpb259IGhhbmRsZXJcclxuXHQgKi9cclxuXHRBMTF5RGlhbG9nLnByb3RvdHlwZS5vZmYgPSBmdW5jdGlvbiAodHlwZSwgaGFuZGxlcikge1xyXG5cdFx0dmFyIGluZGV4ID0gdGhpcy5fbGlzdGVuZXJzW3R5cGVdLmluZGV4T2YoaGFuZGxlcik7XHJcblxyXG5cdFx0aWYgKGluZGV4ID4gLTEpIHtcclxuXHRcdFx0dGhpcy5fbGlzdGVuZXJzW3R5cGVdLnNwbGljZShpbmRleCwgMSk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRoaXM7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogSXRlcmF0ZSBvdmVyIGFsbCByZWdpc3RlcmVkIGhhbmRsZXJzIGZvciBnaXZlbiB0eXBlIGFuZCBjYWxsIHRoZW0gYWxsIHdpdGhcclxuXHQgKiB0aGUgZGlhbG9nIGVsZW1lbnQgYXMgZmlyc3QgYXJndW1lbnQsIGV2ZW50IGFzIHNlY29uZCBhcmd1bWVudCAoaWYgYW55KS5cclxuXHQgKlxyXG5cdCAqIEBhY2Nlc3MgcHJpdmF0ZVxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlXHJcblx0ICogQHBhcmFtIHtFdmVudH0gZXZlbnRcclxuXHQgKi9cclxuXHRBMTF5RGlhbG9nLnByb3RvdHlwZS5fZmlyZSA9IGZ1bmN0aW9uICh0eXBlLCBldmVudCkge1xyXG5cdFx0dmFyIGxpc3RlbmVycyA9IHRoaXMuX2xpc3RlbmVyc1t0eXBlXSB8fCBbXTtcclxuXHJcblx0XHRsaXN0ZW5lcnMuZm9yRWFjaChmdW5jdGlvbiAobGlzdGVuZXIpIHtcclxuXHRcdFx0bGlzdGVuZXIodGhpcy5ub2RlLCBldmVudCk7XHJcblx0XHR9LmJpbmQodGhpcykpO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFByaXZhdGUgZXZlbnQgaGFuZGxlciB1c2VkIHdoZW4gbGlzdGVuaW5nIHRvIHNvbWUgc3BlY2lmaWMga2V5IHByZXNzZXNcclxuXHQgKiAobmFtZWx5IEVTQ0FQRSBhbmQgVEFCKVxyXG5cdCAqXHJcblx0ICogQGFjY2VzcyBwcml2YXRlXHJcblx0ICogQHBhcmFtIHtFdmVudH0gZXZlbnRcclxuXHQgKi9cclxuXHRBMTF5RGlhbG9nLnByb3RvdHlwZS5fYmluZEtleXByZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7XHJcblx0XHQvLyBJZiB0aGUgZGlhbG9nIGlzIHNob3duIGFuZCB0aGUgRVNDQVBFIGtleSBpcyBiZWluZyBwcmVzc2VkLCBwcmV2ZW50IGFueVxyXG5cdFx0Ly8gZnVydGhlciBlZmZlY3RzIGZyb20gdGhlIEVTQ0FQRSBrZXkgYW5kIGhpZGUgdGhlIGRpYWxvZ1xyXG5cdFx0aWYgKHRoaXMuc2hvd24gJiYgZXZlbnQud2hpY2ggPT09IEVTQ0FQRV9LRVkpIHtcclxuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0dGhpcy5oaWRlKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gSWYgdGhlIGRpYWxvZyBpcyBzaG93biBhbmQgdGhlIFRBQiBrZXkgaXMgYmVpbmcgcHJlc3NlZCwgbWFrZSBzdXJlIHRoZVxyXG5cdFx0Ly8gZm9jdXMgc3RheXMgdHJhcHBlZCB3aXRoaW4gdGhlIGRpYWxvZyBlbGVtZW50XHJcblx0XHRpZiAodGhpcy5zaG93biAmJiBldmVudC53aGljaCA9PT0gVEFCX0tFWSkge1xyXG5cdFx0XHR0cmFwVGFiS2V5KHRoaXMubm9kZSwgZXZlbnQpO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFByaXZhdGUgZXZlbnQgaGFuZGxlciB1c2VkIHdoZW4gbWFraW5nIHN1cmUgdGhlIGZvY3VzIHN0YXlzIHdpdGhpbiB0aGVcclxuXHQgKiBjdXJyZW50bHkgb3BlbiBkaWFsb2dcclxuXHQgKlxyXG5cdCAqIEBhY2Nlc3MgcHJpdmF0ZVxyXG5cdCAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50XHJcblx0ICovXHJcblx0QTExeURpYWxvZy5wcm90b3R5cGUuX21haW50YWluRm9jdXMgPSBmdW5jdGlvbiAoZXZlbnQpIHtcclxuXHRcdC8vIElmIHRoZSBkaWFsb2cgaXMgc2hvd24gYW5kIHRoZSBmb2N1cyBpcyBub3Qgd2l0aGluIHRoZSBkaWFsb2cgZWxlbWVudCxcclxuXHRcdC8vIG1vdmUgaXQgYmFjayB0byBpdHMgZmlyc3QgZm9jdXNhYmxlIGNoaWxkXHJcblx0XHRpZiAodGhpcy5zaG93biAmJiAhdGhpcy5ub2RlLmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcclxuXHRcdFx0c2V0Rm9jdXNUb0ZpcnN0SXRlbSh0aGlzLm5vZGUpO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIEFwcGxpZXMgZWZmZWN0cyB0byB0aGUgb3BlbmluZyBvZiB0aGUgZGlhbG9nLlxyXG5cdCAqXHJcblx0ICogQGFjY2VzcyBwcml2YXRlXHJcblx0ICovXHJcblxyXG5cdEExMXlEaWFsb2cucHJvdG90eXBlLl9hcHBseU9wZW5FZmZlY3QgPSBmdW5jdGlvbiAoKSB7XHJcblx0XHR2YXIgX3RoaXMgPSB0aGlzO1xyXG5cdFx0aWYgKHRoaXMub3B0aW9ucy5lZmZlY3QgPT09ICdmYWRlJykge1xyXG5cdFx0XHR0aGlzLm5vZGUuc3R5bGUub3BhY2l0eSA9ICcwJztcclxuXHRcdFx0dGhpcy5ub2RlLnN0eWxlLnRyYW5zaXRpb24gPSAnb3BhY2l0eSAnICsgdGhpcy5vcHRpb25zLmVmZmVjdFNwZWVkICsgJ21zICcgKyB0aGlzLm9wdGlvbnMuZWZmZWN0RWFzaW5nO1xyXG5cdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XHJcblx0XHRcdFx0X3RoaXMubm9kZS5zdHlsZS5vcGFjaXR5ID0gJzEnO1xyXG5cdFx0XHR9LCA1MCk7XHJcblx0XHR9XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogQXBwbGllcyBlZmZlY3RzIHRvIHRoZSBjbG9zaW5nIG9mIHRoZSBkaWFsb2cuXHJcblx0ICpcclxuXHQgKiBAYWNjZXNzIHByaXZhdGVcclxuXHQgKi9cclxuXHJcblx0QTExeURpYWxvZy5wcm90b3R5cGUuX2FwcGx5Q2xvc2VFZmZlY3QgPSBmdW5jdGlvbiAoKSB7XHJcblx0XHR2YXIgX3RoaXMgPSB0aGlzO1xyXG5cdFx0aWYgKHRoaXMub3B0aW9ucy5lZmZlY3QgPT09ICdmYWRlJykge1xyXG5cdFx0XHR0aGlzLm5vZGUuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICdmYWxzZScpO1xyXG5cdFx0XHR0aGlzLm5vZGUuc3R5bGUub3BhY2l0eSA9ICcwJztcclxuXHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpe1xyXG5cdFx0XHRcdF90aGlzLm5vZGUuc3R5bGUudHJhbnNpdGlvbiA9ICcnO1xyXG5cdFx0XHRcdF90aGlzLm5vZGUuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7XHJcblx0XHRcdH0sIHRoaXMub3B0aW9ucy5lZmZlY3RTcGVlZCk7XHJcblx0XHR9XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogSGlnaGx5IGVmZmljaWVudCBmdW5jdGlvbiB0byBjb252ZXJ0IGEgbm9kZWxpc3QgaW50byBhIHN0YW5kYXJkIGFycmF5LiBBbGxvd3MgeW91IHRvIHJ1biBBcnJheS5mb3JFYWNoXHJcblx0ICpcclxuXHQgKiBAcGFyYW0ge0VsZW1lbnR8Tm9kZUxpc3R9IGVsZW1lbnRzIHRvIGNvbnZlcnRcclxuXHQgKiBAcmV0dXJucyB7QXJyYXl9IE9mIGNvbnZlcnRlZCBlbGVtZW50c1xyXG5cdCAqL1xyXG5cclxuXHRmdW5jdGlvbiBjb252ZXJ0RWxlbWVudHMoZWxlbWVudHMpIHtcclxuXHRcdHZhciBjb252ZXJ0ZWQgPSBbXTtcclxuXHRcdHZhciBpID0gZWxlbWVudHMubGVuZ3RoO1xyXG5cdFx0Zm9yIChpOyBpLS07IGNvbnZlcnRlZC51bnNoaWZ0KGVsZW1lbnRzW2ldKSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcclxuXHJcblx0XHRyZXR1cm4gY29udmVydGVkO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2hvdWxkIGJlIHVzZWQgYXQgYWxsIHRpbWVzIGZvciBnZXR0aW5nIG5vZGVzIHRocm91Z2hvdXQgb3VyIGFwcC4gUGxlYXNlIHVzZSB0aGUgZGF0YS1qcyBhdHRyaWJ1dGUgd2hlbmV2ZXIgcG9zc2libGVcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSBzZWxlY3RvciBUaGUgc2VsZWN0b3Igc3RyaW5nIHRvIHNlYXJjaCBmb3IuIElmIGFyZyA0IGlzIGZhbHNlIChkZWZhdWx0KSB0aGVuIHdlIHNlYXJjaCBmb3IgW2RhdGEtanM9XCJzZWxlY3RvclwiXVxyXG5cdCAqIEBwYXJhbSBjb252ZXJ0IENvbnZlcnQgdGhlIE5vZGVMaXN0IHRvIGFuIGFycmF5PyBUaGVuIHdlIGNhbiBBcnJheS5mb3JFYWNoIGRpcmVjdGx5LiBVc2VzIGNvbnZlcnRFbGVtZW50cyBmcm9tIGFib3ZlXHJcblx0ICogQHBhcmFtIG5vZGUgUGFyZW50IG5vZGUgdG8gc2VhcmNoIGZyb20uIERlZmF1bHRzIHRvIGRvY3VtZW50XHJcblx0ICogQHBhcmFtIGN1c3RvbSBJcyB0aGlzIGEgY3VzdG9tIHNlbGVjdG9yIHdoZXJlIHdlIGRvbid0IHdhbnQgdG8gdXNlIHRoZSBkYXRhLWpzIGF0dHJpYnV0ZT9cclxuXHQgKiBAcmV0dXJucyB7Tm9kZUxpc3R9XHJcblx0ICovXHJcblxyXG5cdGZ1bmN0aW9uIGdldE5vZGVzKHNlbGVjdG9yLCBjb252ZXJ0LCBub2RlLCBjdXN0b20pIHtcclxuXHRcdGlmICghbm9kZSkge1xyXG5cdFx0XHRub2RlID0gZG9jdW1lbnQ7XHJcblx0XHR9XHJcblx0XHR2YXIgc2VsZWN0b3JTdHJpbmcgPSBjdXN0b20gPyBzZWxlY3RvciA6ICdbZGF0YS1qcz1cIicgKyBzZWxlY3RvciArICdcIl0nO1xyXG5cdFx0dmFyIG5vZGVzID0gbm9kZS5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yU3RyaW5nKTtcclxuXHRcdGlmIChjb252ZXJ0KSB7XHJcblx0XHRcdG5vZGVzID0gY29udmVydEVsZW1lbnRzKG5vZGVzKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBub2RlcztcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFF1ZXJ5IHRoZSBET00gZm9yIG5vZGVzIG1hdGNoaW5nIHRoZSBnaXZlbiBzZWxlY3Rvciwgc2NvcGVkIHRvIGNvbnRleHQgKG9yXHJcblx0ICogdGhlIHdob2xlIGRvY3VtZW50KVxyXG5cdCAqXHJcblx0ICogQHBhcmFtIHtTdHJpbmd9IHNlbGVjdG9yXHJcblx0ICogQHBhcmFtIHtFbGVtZW50fSBbY29udGV4dCA9IGRvY3VtZW50XVxyXG5cdCAqIEByZXR1cm4ge0FycmF5PEVsZW1lbnQ+fVxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uICQkKHNlbGVjdG9yLCBjb250ZXh0KSB7XHJcblx0XHRyZXR1cm4gY29udmVydEVsZW1lbnRzKChjb250ZXh0IHx8IGRvY3VtZW50KS5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBTZXQgdGhlIGZvY3VzIHRvIHRoZSBmaXJzdCBmb2N1c2FibGUgY2hpbGQgb2YgdGhlIGdpdmVuIGVsZW1lbnRcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIHNldEZvY3VzVG9GaXJzdEl0ZW0obm9kZSkge1xyXG5cdFx0dmFyIGZvY3VzYWJsZUNoaWxkcmVuID0gZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4obm9kZSk7XHJcblxyXG5cdFx0aWYgKGZvY3VzYWJsZUNoaWxkcmVuLmxlbmd0aCkge1xyXG5cdFx0XHRmb2N1c2FibGVDaGlsZHJlblswXS5mb2N1cygpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogSW5zZXJ0IGEgbm9kZSBhZnRlciBhbm90aGVyIG5vZGVcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSBuZXdOb2RlIHtFbGVtZW50fE5vZGVMaXN0fVxyXG5cdCAqIEBwYXJhbSByZWZlcmVuY2VOb2RlIHtFbGVtZW50fE5vZGVMaXN0fVxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIGluc2VydEFmdGVyKG5ld05vZGUsIHJlZmVyZW5jZU5vZGUpIHtcclxuXHRcdHJlZmVyZW5jZU5vZGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobmV3Tm9kZSwgcmVmZXJlbmNlTm9kZS5uZXh0RWxlbWVudFNpYmxpbmcpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0IHRoZSBmb2N1c2FibGUgY2hpbGRyZW4gb2YgdGhlIGdpdmVuIGVsZW1lbnRcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxyXG5cdCAqIEByZXR1cm4ge0FycmF5PEVsZW1lbnQ+fVxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIGdldEZvY3VzYWJsZUNoaWxkcmVuKG5vZGUpIHtcclxuXHRcdHJldHVybiAkJChGT0NVU0FCTEVfRUxFTUVOVFMuam9pbignLCcpLCBub2RlKS5maWx0ZXIoZnVuY3Rpb24gKGNoaWxkKSB7XHJcblx0XHRcdHJldHVybiAhIShjaGlsZC5vZmZzZXRXaWR0aCB8fCBjaGlsZC5vZmZzZXRIZWlnaHQgfHwgY2hpbGQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBpc1N0cmluZyh4KSB7XHJcblx0XHRyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHgpID09PSBcIltvYmplY3QgU3RyaW5nXVwiXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBleHRlbmQob2JqLCBzcmMpIHtcclxuXHRcdE9iamVjdC5rZXlzKHNyYykuZm9yRWFjaChmdW5jdGlvbihrZXkpIHsgb2JqW2tleV0gPSBzcmNba2V5XTsgfSk7XHJcblx0XHRyZXR1cm4gb2JqO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogVHJhcCB0aGUgZm9jdXMgaW5zaWRlIHRoZSBnaXZlbiBlbGVtZW50XHJcblx0ICpcclxuXHQgKiBAcGFyYW0ge0VsZW1lbnR9IG5vZGVcclxuXHQgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIHRyYXBUYWJLZXkobm9kZSwgZXZlbnQpIHtcclxuXHRcdHZhciBmb2N1c2FibGVDaGlsZHJlbiA9IGdldEZvY3VzYWJsZUNoaWxkcmVuKG5vZGUpO1xyXG5cdFx0dmFyIGZvY3VzZWRJdGVtSW5kZXggPSBmb2N1c2FibGVDaGlsZHJlbi5pbmRleE9mKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpO1xyXG5cclxuXHRcdC8vIElmIHRoZSBTSElGVCBrZXkgaXMgYmVpbmcgcHJlc3NlZCB3aGlsZSB0YWJiaW5nIChtb3ZpbmcgYmFja3dhcmRzKSBhbmRcclxuXHRcdC8vIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBpdGVtIGlzIHRoZSBmaXJzdCBvbmUsIG1vdmUgdGhlIGZvY3VzIHRvIHRoZSBsYXN0XHJcblx0XHQvLyBmb2N1c2FibGUgaXRlbSBmcm9tIHRoZSBkaWFsb2cgZWxlbWVudFxyXG5cdFx0aWYgKGV2ZW50LnNoaWZ0S2V5ICYmIGZvY3VzZWRJdGVtSW5kZXggPT09IDApIHtcclxuXHRcdFx0Zm9jdXNhYmxlQ2hpbGRyZW5bZm9jdXNhYmxlQ2hpbGRyZW4ubGVuZ3RoIC0gMV0uZm9jdXMoKTtcclxuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0Ly8gSWYgdGhlIFNISUZUIGtleSBpcyBub3QgYmVpbmcgcHJlc3NlZCAobW92aW5nIGZvcndhcmRzKSBhbmQgdGhlIGN1cnJlbnRseVxyXG5cdFx0XHQvLyBmb2N1c2VkIGl0ZW0gaXMgdGhlIGxhc3Qgb25lLCBtb3ZlIHRoZSBmb2N1cyB0byB0aGUgZmlyc3QgZm9jdXNhYmxlIGl0ZW1cclxuXHRcdFx0Ly8gZnJvbSB0aGUgZGlhbG9nIGVsZW1lbnRcclxuXHRcdH0gZWxzZSBpZiAoIWV2ZW50LnNoaWZ0S2V5ICYmIGZvY3VzZWRJdGVtSW5kZXggPT09IGZvY3VzYWJsZUNoaWxkcmVuLmxlbmd0aCAtIDEpIHtcclxuXHRcdFx0Zm9jdXNhYmxlQ2hpbGRyZW5bMF0uZm9jdXMoKTtcclxuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBmdW5jdGlvbiBsb2NrXHJcblx0ICogQGRlc2NyaXB0aW9uIExvY2sgdGhlIGJvZHkgYXQgYSBwYXJ0aWN1bGFyIHBvc2l0aW9uIGFuZCBwcmV2ZW50IHNjcm9sbCxcclxuXHQgKiB1c2UgbWFyZ2luIHRvIHNpbXVsYXRlIG9yaWdpbmFsIHNjcm9sbCBwb3NpdGlvbi5cclxuXHQgKi9cclxuXHJcblx0ZnVuY3Rpb24gbG9jaygpIHtcclxuXHRcdHNjcm9sbCA9IHNjcm9sbGVyLnNjcm9sbFRvcDtcclxuXHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnYTExeS1kaWFsb2dfX2JvZHktbG9ja2VkJyk7XHJcblx0XHRkb2N1bWVudC5ib2R5LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcclxuXHRcdGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAnMTAwJSc7XHJcblx0XHRkb2N1bWVudC5ib2R5LnN0eWxlLm1hcmdpblRvcCA9ICctJyArIHNjcm9sbCArICdweCc7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAZnVuY3Rpb24gdW5sb2NrXHJcblx0ICogQGRlc2NyaXB0aW9uIFVubG9jayB0aGUgYm9keSBhbmQgcmV0dXJuIGl0IHRvIGl0cyBhY3R1YWwgc2Nyb2xsIHBvc2l0aW9uLlxyXG5cdCAqL1xyXG5cclxuXHRmdW5jdGlvbiB1bmxvY2soKSB7XHJcblx0XHRkb2N1bWVudC5ib2R5LnN0eWxlLm1hcmdpblRvcCA9ICcnO1xyXG5cdFx0ZG9jdW1lbnQuYm9keS5zdHlsZS5wb3NpdGlvbiA9ICcnO1xyXG5cdFx0ZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICcnO1xyXG5cdFx0c2Nyb2xsZXIuc2Nyb2xsVG9wID0gc2Nyb2xsO1xyXG5cdFx0ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdhMTF5LWRpYWxvZ19fYm9keS1sb2NrZWQnKTtcclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIGJyb3dzZXJUZXN0cygpIHtcclxuXHRcdHZhciBhbmRyb2lkID0gLyhhbmRyb2lkKS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XHJcblx0XHR2YXIgY2hyb21lID0gISF3aW5kb3cuY2hyb21lO1xyXG5cdFx0dmFyIGZpcmVmb3ggPSB0eXBlb2YgSW5zdGFsbFRyaWdnZXIgIT09ICd1bmRlZmluZWQnO1xyXG5cdFx0dmFyIGllID0gZG9jdW1lbnQuZG9jdW1lbnRNb2RlO1xyXG5cdFx0dmFyIGVkZ2UgPSAhaWUgJiYgISF3aW5kb3cuU3R5bGVNZWRpYTtcclxuXHRcdHZhciBpb3MgPSAhIW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goLyhpUG9kfGlQaG9uZXxpUGFkKS9pKTtcclxuXHRcdHZhciBpb3NNb2JpbGUgPSAhIW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goLyhpUG9kfGlQaG9uZSkvaSk7XHJcblx0XHR2YXIgb3BlcmEgPSAhIXdpbmRvdy5vcGVyYSB8fCBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJyBPUFIvJykgPj0gMDtcclxuXHRcdHZhciBzYWZhcmkgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwod2luZG93LkhUTUxFbGVtZW50KS5pbmRleE9mKCdDb25zdHJ1Y3RvcicpID4gMCB8fCAhY2hyb21lICYmICFvcGVyYSAmJiB3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0ICE9PSAndW5kZWZpbmVkJzsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxyXG5cdFx0dmFyIG9zID0gbmF2aWdhdG9yLnBsYXRmb3JtO1xyXG5cclxuXHRcdHJldHVybiB7XHJcblx0XHRcdGFuZHJvaWQ6IGFuZHJvaWQsXHJcblx0XHRcdGNocm9tZTogY2hyb21lLFxyXG5cdFx0XHRlZGdlOiBlZGdlLFxyXG5cdFx0XHRmaXJlZm94OiBmaXJlZm94LFxyXG5cdFx0XHRpZTogaWUsXHJcblx0XHRcdGlvczogaW9zLFxyXG5cdFx0XHRpb3NNb2JpbGU6IGlvc01vYmlsZSxcclxuXHRcdFx0b3BlcmE6IG9wZXJhLFxyXG5cdFx0XHRzYWZhcmk6IHNhZmFyaSxcclxuXHRcdFx0b3M6IG9zLFxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0aWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBtb2R1bGUuZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuXHRcdG1vZHVsZS5leHBvcnRzID0gQTExeURpYWxvZztcclxuXHR9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xyXG5cdFx0ZGVmaW5lKCdBMTF5RGlhbG9nJywgW10sIGZ1bmN0aW9uICgpIHtcclxuXHRcdFx0cmV0dXJuIEExMXlEaWFsb2c7XHJcblx0XHR9KTtcclxuXHR9IGVsc2UgaWYgKHR5cGVvZiBnbG9iYWwgPT09ICdvYmplY3QnKSB7XHJcblx0XHRnbG9iYWwuQTExeURpYWxvZyA9IEExMXlEaWFsb2c7XHJcblx0fVxyXG59KHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogd2luZG93KSk7XHJcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL210LWExMXktZGlhbG9nL2ExMXktZGlhbG9nLmpzXG4vLyBtb2R1bGUgaWQgPSAxMjZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///126\n"); +eval("/* WEBPACK VAR INJECTION */(function(global) {var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* global NodeList, Element, define */\r\n\r\n(function (global) {\r\n\t'use strict';\r\n\r\n\tvar FOCUSABLE_ELEMENTS = ['a[href]', 'area[href]', 'input:not([disabled])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'iframe', 'object', 'embed', '[contenteditable]', '[tabindex]:not([tabindex^=\"-\"])'];\r\n\tvar TAB_KEY = 9;\r\n\tvar ESCAPE_KEY = 27;\r\n\tvar focusedBeforeDialog;\r\n\tvar browser = browserTests();\r\n\tvar scroll = 0;\r\n\tvar scroller = browser.ie || browser.firefox || (browser.chrome && !browser.edge) ? document.documentElement : document.body;\r\n\r\n\t/**\r\n\t * Define the constructor to instantiate a dialog\r\n\t *\r\n\t * @constructor\r\n\t * @param {Object} options\r\n\t */\r\n\tfunction A11yDialog(options) {\r\n\t\tthis.options = extend({\r\n\t\t\tappendTarget: '',\r\n\t\t\tbodyLock: true,\r\n\t\t\tcloseButtonAriaLabel: 'Close this dialog window',\r\n\t\t\tcloseButtonClasses: 'a11y-dialog__close-button',\r\n\t\t\tcontentClasses: 'a11y-dialog__content',\r\n\t\t\teffect: 'none',\r\n\t\t\teffectSpeed: 300,\r\n\t\t\teffectEasing: 'ease-in-out',\r\n\t\t\toverlayClasses: 'a11y-dialog__overlay',\r\n\t\t\toverlayClickCloses: true,\r\n\t\t\ttrigger: null,\r\n\t\t\twrapperClasses: 'a11y-dialog',\r\n\t\t}, options);\r\n\t\t// Prebind the functions that will be bound in addEventListener and\r\n\t\t// removeEventListener to avoid losing references\r\n\t\tthis._rendered = false;\r\n\t\tthis._show = this.show.bind(this);\r\n\t\tthis._hide = this.hide.bind(this);\r\n\t\tthis._maintainFocus = this._maintainFocus.bind(this);\r\n\t\tthis._bindKeypress = this._bindKeypress.bind(this);\r\n\r\n\t\tthis.trigger = isString(this.options.trigger) ? getNodes(this.options.trigger, false, document, true)[0] : this.options.trigger;\r\n\t\tthis.node = null;\r\n\r\n\t\tif (!this.trigger) {\r\n\t\t\tconsole.warn('Lookup for a11y target node failed.');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Keep an object of listener types mapped to callback functions\r\n\t\tthis._listeners = {};\r\n\r\n\t\t// Initialise everything needed for the dialog to work properly\r\n\t\tthis.create();\r\n\t}\r\n\r\n\t/**\r\n\t * Set up everything necessary for the dialog to be functioning\r\n\t *\r\n\t * @return {this}\r\n\t */\r\n\tA11yDialog.prototype.create = function () {\r\n\t\tthis.shown = false;\r\n\t\tthis.trigger.addEventListener('click', this._show);\r\n\r\n\t\t// Execute all callbacks registered for the `create` event\r\n\t\tthis._fire('create');\r\n\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * Render the dialog\r\n\t *\r\n\t * @return {this}\r\n\t */\r\n\tA11yDialog.prototype.render = function (event) {\r\n\t\tvar contentNode = getNodes(this.trigger.dataset.content)[0];\r\n\t\tif (!contentNode) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tvar node = document.createElement('div');\r\n\t\tnode.setAttribute('aria-hidden', 'true');\r\n\t\tnode.classList.add(this.options.wrapperClasses);\r\n\t\tnode.innerHTML = '
    \\n' +\r\n\t\t\t'
    \\n' +\r\n\t\t\t'
    \\n' +\r\n\t\t\t' \\n' +\r\n\t\t\t' ' + contentNode.innerHTML +\r\n\t\t\t'
    \\n' +\r\n\t\t\t'
    ';\r\n\r\n\t\tvar appendTarget = this.trigger;\r\n\t\tif (this.options.appendTarget.length) {\r\n\t\t\tappendTarget = document.querySelectorAll(this.options.appendTarget)[0] || this.trigger;\r\n\t\t}\r\n\t\tinsertAfter(node, appendTarget);\r\n\t\tthis.node = node;\r\n\t\tthis.overlay = getNodes('a11y-overlay', false, this.node)[0];\r\n\t\tthis.closeButton = getNodes('a11y-close-button', false, this.node)[0];\r\n\t\tif (this.options.overlayClickCloses) {\r\n\t\t\tthis.overlay.addEventListener('click', this._hide);\r\n\t\t}\r\n\t\tthis.closeButton.addEventListener('click', this._hide);\r\n\t\tthis._rendered = true;\r\n\t\tthis._fire('render', event);\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * Show the dialog element, disable all the targets (siblings), trap the\r\n\t * current focus within it, listen for some specific key presses and fire all\r\n\t * registered callbacks for `show` event\r\n\t *\r\n\t * @param {Event} event\r\n\t * @return {this}\r\n\t */\r\n\tA11yDialog.prototype.show = function (event) {\r\n\t\t// If the dialog is already open, abort\r\n\t\tif (this.shown) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tif (!this._rendered) {\r\n\t\t\tthis.render(event);\r\n\t\t}\r\n\r\n\t\tif (!this._rendered) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tthis.shown = true;\r\n\t\tthis._applyOpenEffect();\r\n\t\tthis.node.setAttribute('aria-hidden', 'false');\r\n\t\tif (this.options.bodyLock) {\r\n\t\t\tlock();\r\n\t\t}\r\n\r\n\t\t// Keep a reference to the currently focused element to be able to restore\r\n\t\t// it later, then set the focus to the first focusable child of the dialog\r\n\t\t// element\r\n\t\tfocusedBeforeDialog = document.activeElement;\r\n\t\tsetFocusToFirstItem(this.node);\r\n\r\n\t\t// Bind a focus event listener to the body element to make sure the focus\r\n\t\t// stays trapped inside the dialog while open, and start listening for some\r\n\t\t// specific key presses (TAB and ESC)\r\n\t\tdocument.body.addEventListener('focus', this._maintainFocus, true);\r\n\t\tdocument.addEventListener('keydown', this._bindKeypress);\r\n\r\n\t\t// Execute all callbacks registered for the `show` event\r\n\t\tthis._fire('show', event);\r\n\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * Hide the dialog element, enable all the targets (siblings), restore the\r\n\t * focus to the previously active element, stop listening for some specific\r\n\t * key presses and fire all registered callbacks for `hide` event\r\n\t *\r\n\t * @param {Event} event\r\n\t * @return {this}\r\n\t */\r\n\tA11yDialog.prototype.hide = function (event) {\r\n\t\t// If the dialog is already closed, abort\r\n\t\tif (!this.shown) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tthis.shown = false;\r\n\t\tthis.node.setAttribute('aria-hidden', 'true');\r\n\t\tthis._applyCloseEffect();\r\n\r\n\t\tif (this.options.bodyLock) {\r\n\t\t\tunlock();\r\n\t\t}\r\n\r\n\t\t// If their was a focused element before the dialog was opened, restore the\r\n\t\t// focus back to it\r\n\t\tif (focusedBeforeDialog) {\r\n\t\t\tfocusedBeforeDialog.focus();\r\n\t\t}\r\n\r\n\t\t// Remove the focus event listener to the body element and stop listening\r\n\t\t// for specific key presses\r\n\t\tdocument.body.removeEventListener('focus', this._maintainFocus, true);\r\n\t\tdocument.removeEventListener('keydown', this._bindKeypress);\r\n\r\n\t\t// Execute all callbacks registered for the `hide` event\r\n\t\tthis._fire('hide', event);\r\n\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * Destroy the current instance (after making sure the dialog has been hidden)\r\n\t * and remove all associated listeners from dialog openers and closers\r\n\t *\r\n\t * @return {this}\r\n\t */\r\n\tA11yDialog.prototype.destroy = function () {\r\n\t\t// Hide the dialog to avoid destroying an open instance\r\n\t\tthis.hide();\r\n\r\n\t\tthis.trigger.removeEventListener('click', this._show);\r\n\t\tif (this.options.overlayClickCloses) {\r\n\t\t\tthis.overlay.removeEventListener('click', this._hide);\r\n\t\t}\r\n\t\tthis.closeButton.removeEventListener('click', this._hide);\r\n\r\n\t\t// Execute all callbacks registered for the `destroy` event\r\n\t\tthis._fire('destroy');\r\n\r\n\t\t// Keep an object of listener types mapped to callback functions\r\n\t\tthis._listeners = {};\r\n\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * Register a new callback for the given event type\r\n\t *\r\n\t * @param {string} type\r\n\t * @param {Function} handler\r\n\t */\r\n\tA11yDialog.prototype.on = function (type, handler) {\r\n\t\tif (typeof this._listeners[type] === 'undefined') {\r\n\t\t\tthis._listeners[type] = [];\r\n\t\t}\r\n\r\n\t\tthis._listeners[type].push(handler);\r\n\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * Unregister an existing callback for the given event type\r\n\t *\r\n\t * @param {string} type\r\n\t * @param {Function} handler\r\n\t */\r\n\tA11yDialog.prototype.off = function (type, handler) {\r\n\t\tvar index = this._listeners[type].indexOf(handler);\r\n\r\n\t\tif (index > -1) {\r\n\t\t\tthis._listeners[type].splice(index, 1);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/**\r\n\t * Iterate over all registered handlers for given type and call them all with\r\n\t * the dialog element as first argument, event as second argument (if any).\r\n\t *\r\n\t * @access private\r\n\t * @param {string} type\r\n\t * @param {Event} event\r\n\t */\r\n\tA11yDialog.prototype._fire = function (type, event) {\r\n\t\tvar listeners = this._listeners[type] || [];\r\n\r\n\t\tlisteners.forEach(function (listener) {\r\n\t\t\tlistener(this.node, event);\r\n\t\t}.bind(this));\r\n\t};\r\n\r\n\t/**\r\n\t * Private event handler used when listening to some specific key presses\r\n\t * (namely ESCAPE and TAB)\r\n\t *\r\n\t * @access private\r\n\t * @param {Event} event\r\n\t */\r\n\tA11yDialog.prototype._bindKeypress = function (event) {\r\n\t\t// If the dialog is shown and the ESCAPE key is being pressed, prevent any\r\n\t\t// further effects from the ESCAPE key and hide the dialog\r\n\t\tif (this.shown && event.which === ESCAPE_KEY) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tthis.hide();\r\n\t\t}\r\n\r\n\t\t// If the dialog is shown and the TAB key is being pressed, make sure the\r\n\t\t// focus stays trapped within the dialog element\r\n\t\tif (this.shown && event.which === TAB_KEY) {\r\n\t\t\ttrapTabKey(this.node, event);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Private event handler used when making sure the focus stays within the\r\n\t * currently open dialog\r\n\t *\r\n\t * @access private\r\n\t * @param {Event} event\r\n\t */\r\n\tA11yDialog.prototype._maintainFocus = function (event) {\r\n\t\t// If the dialog is shown and the focus is not within the dialog element,\r\n\t\t// move it back to its first focusable child\r\n\t\tif (this.shown && !this.node.contains(event.target)) {\r\n\t\t\tsetFocusToFirstItem(this.node);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Applies effects to the opening of the dialog.\r\n\t *\r\n\t * @access private\r\n\t */\r\n\r\n\tA11yDialog.prototype._applyOpenEffect = function () {\r\n\t\tvar _this = this;\r\n\t\tif (this.options.effect === 'fade') {\r\n\t\t\tthis.node.style.opacity = '0';\r\n\t\t\tthis.node.style.transition = 'opacity ' + this.options.effectSpeed + 'ms ' + this.options.effectEasing;\r\n\t\t\tsetTimeout(function(){\r\n\t\t\t\t_this.node.style.opacity = '1';\r\n\t\t\t}, 50);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Applies effects to the closing of the dialog.\r\n\t *\r\n\t * @access private\r\n\t */\r\n\r\n\tA11yDialog.prototype._applyCloseEffect = function () {\r\n\t\tvar _this = this;\r\n\t\tif (this.options.effect === 'fade') {\r\n\t\t\tthis.node.setAttribute('aria-hidden', 'false');\r\n\t\t\tthis.node.style.opacity = '0';\r\n\t\t\tsetTimeout(function(){\r\n\t\t\t\t_this.node.style.transition = '';\r\n\t\t\t\t_this.node.setAttribute('aria-hidden', 'true');\r\n\t\t\t}, this.options.effectSpeed);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Highly efficient function to convert a nodelist into a standard array. Allows you to run Array.forEach\r\n\t *\r\n\t * @param {Element|NodeList} elements to convert\r\n\t * @returns {Array} Of converted elements\r\n\t */\r\n\r\n\tfunction convertElements(elements) {\r\n\t\tvar converted = [];\r\n\t\tvar i = elements.length;\r\n\t\tfor (i; i--; converted.unshift(elements[i])); // eslint-disable-line\r\n\r\n\t\treturn converted;\r\n\t}\r\n\r\n\t/**\r\n\t * Should be used at all times for getting nodes throughout our app. Please use the data-js attribute whenever possible\r\n\t *\r\n\t * @param selector The selector string to search for. If arg 4 is false (default) then we search for [data-js=\"selector\"]\r\n\t * @param convert Convert the NodeList to an array? Then we can Array.forEach directly. Uses convertElements from above\r\n\t * @param node Parent node to search from. Defaults to document\r\n\t * @param custom Is this a custom selector where we don't want to use the data-js attribute?\r\n\t * @returns {NodeList}\r\n\t */\r\n\r\n\tfunction getNodes(selector, convert, node, custom) {\r\n\t\tif (!node) {\r\n\t\t\tnode = document;\r\n\t\t}\r\n\t\tvar selectorString = custom ? selector : '[data-js=\"' + selector + '\"]';\r\n\t\tvar nodes = node.querySelectorAll(selectorString);\r\n\t\tif (convert) {\r\n\t\t\tnodes = convertElements(nodes);\r\n\t\t}\r\n\t\treturn nodes;\r\n\t}\r\n\r\n\t/**\r\n\t * Query the DOM for nodes matching the given selector, scoped to context (or\r\n\t * the whole document)\r\n\t *\r\n\t * @param {String} selector\r\n\t * @param {Element} [context = document]\r\n\t * @return {Array}\r\n\t */\r\n\tfunction $$(selector, context) {\r\n\t\treturn convertElements((context || document).querySelectorAll(selector));\r\n\t}\r\n\r\n\t/**\r\n\t * Set the focus to the first focusable child of the given element\r\n\t *\r\n\t * @param {Element} node\r\n\t */\r\n\tfunction setFocusToFirstItem(node) {\r\n\t\tvar focusableChildren = getFocusableChildren(node);\r\n\r\n\t\tif (focusableChildren.length) {\r\n\t\t\tfocusableChildren[0].focus();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Insert a node after another node\r\n\t *\r\n\t * @param newNode {Element|NodeList}\r\n\t * @param referenceNode {Element|NodeList}\r\n\t */\r\n\tfunction insertAfter(newNode, referenceNode) {\r\n\t\treferenceNode.parentNode.insertBefore(newNode, referenceNode.nextElementSibling);\r\n\t}\r\n\r\n\t/**\r\n\t * Get the focusable children of the given element\r\n\t *\r\n\t * @param {Element} node\r\n\t * @return {Array}\r\n\t */\r\n\tfunction getFocusableChildren(node) {\r\n\t\treturn $$(FOCUSABLE_ELEMENTS.join(','), node).filter(function (child) {\r\n\t\t\treturn !!(child.offsetWidth || child.offsetHeight || child.getClientRects().length);\r\n\t\t});\r\n\t}\r\n\r\n\tfunction isString(x) {\r\n\t\treturn Object.prototype.toString.call(x) === \"[object String]\"\r\n\t}\r\n\r\n\tfunction extend(obj, src) {\r\n\t\tObject.keys(src).forEach(function(key) { obj[key] = src[key]; });\r\n\t\treturn obj;\r\n\t}\r\n\r\n\t/**\r\n\t * Trap the focus inside the given element\r\n\t *\r\n\t * @param {Element} node\r\n\t * @param {Event} event\r\n\t */\r\n\tfunction trapTabKey(node, event) {\r\n\t\tvar focusableChildren = getFocusableChildren(node);\r\n\t\tvar focusedItemIndex = focusableChildren.indexOf(document.activeElement);\r\n\r\n\t\t// If the SHIFT key is being pressed while tabbing (moving backwards) and\r\n\t\t// the currently focused item is the first one, move the focus to the last\r\n\t\t// focusable item from the dialog element\r\n\t\tif (event.shiftKey && focusedItemIndex === 0) {\r\n\t\t\tfocusableChildren[focusableChildren.length - 1].focus();\r\n\t\t\tevent.preventDefault();\r\n\t\t\t// If the SHIFT key is not being pressed (moving forwards) and the currently\r\n\t\t\t// focused item is the last one, move the focus to the first focusable item\r\n\t\t\t// from the dialog element\r\n\t\t} else if (!event.shiftKey && focusedItemIndex === focusableChildren.length - 1) {\r\n\t\t\tfocusableChildren[0].focus();\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @function lock\r\n\t * @description Lock the body at a particular position and prevent scroll,\r\n\t * use margin to simulate original scroll position.\r\n\t */\r\n\r\n\tfunction lock() {\r\n\t\tscroll = scroller.scrollTop;\r\n\t\tdocument.body.classList.add('a11y-dialog__body-locked');\r\n\t\tdocument.body.style.position = 'fixed';\r\n\t\tdocument.body.style.width = '100%';\r\n\t\tdocument.body.style.marginTop = '-' + scroll + 'px';\r\n\t}\r\n\r\n\t/**\r\n\t * @function unlock\r\n\t * @description Unlock the body and return it to its actual scroll position.\r\n\t */\r\n\r\n\tfunction unlock() {\r\n\t\tdocument.body.style.marginTop = '';\r\n\t\tdocument.body.style.position = '';\r\n\t\tdocument.body.style.width = '';\r\n\t\tscroller.scrollTop = scroll;\r\n\t\tdocument.body.classList.remove('a11y-dialog__body-locked');\r\n\t}\r\n\r\n\tfunction browserTests() {\r\n\t\tvar android = /(android)/i.test(navigator.userAgent);\r\n\t\tvar chrome = !!window.chrome;\r\n\t\tvar firefox = typeof InstallTrigger !== 'undefined';\r\n\t\tvar ie = document.documentMode;\r\n\t\tvar edge = !ie && !!window.StyleMedia;\r\n\t\tvar ios = !!navigator.userAgent.match(/(iPod|iPhone|iPad)/i);\r\n\t\tvar iosMobile = !!navigator.userAgent.match(/(iPod|iPhone)/i);\r\n\t\tvar opera = !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;\r\n\t\tvar safari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0 || !chrome && !opera && window.webkitAudioContext !== 'undefined'; // eslint-disable-line\r\n\t\tvar os = navigator.platform;\r\n\r\n\t\treturn {\r\n\t\t\tandroid: android,\r\n\t\t\tchrome: chrome,\r\n\t\t\tedge: edge,\r\n\t\t\tfirefox: firefox,\r\n\t\t\tie: ie,\r\n\t\t\tios: ios,\r\n\t\t\tiosMobile: iosMobile,\r\n\t\t\topera: opera,\r\n\t\t\tsafari: safari,\r\n\t\t\tos: os,\r\n\t\t}\r\n\t}\r\n\r\n\tif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n\t\tmodule.exports = A11yDialog;\r\n\t} else if (true) {\r\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\r\n\t\t\treturn A11yDialog;\r\n\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t} else if (typeof global === 'object') {\r\n\t\tglobal.A11yDialog = A11yDialog;\r\n\t}\r\n}(typeof global !== 'undefined' ? global : window));\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(74)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbXQtYTExeS1kaWFsb2cvYTExeS1kaWFsb2cuanM/YjM3YyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOENBQUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksT0FBTztBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksTUFBTTtBQUNsQixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksTUFBTTtBQUNsQixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLE9BQU87QUFDbkIsWUFBWSxTQUFTO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLE9BQU87QUFDbkIsWUFBWSxTQUFTO0FBQ3JCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxPQUFPO0FBQ25CLFlBQVksTUFBTTtBQUNsQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxNQUFNO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLE1BQU07QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsWUFBWSxpQkFBaUI7QUFDN0IsY0FBYyxNQUFNO0FBQ3BCOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsS0FBSyxpQ0FBaUM7O0FBRS9DO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksT0FBTztBQUNuQixZQUFZLFFBQVE7QUFDcEIsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVksUUFBUTtBQUNwQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFFBQVE7QUFDcEIsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDBDQUEwQyxxQkFBcUIsRUFBRTtBQUNqRTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVksUUFBUTtBQUNwQixZQUFZLE1BQU07QUFDbEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0pBQStKO0FBQy9KOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLEdBQUc7QUFBQTtBQUNILEVBQUU7QUFDRjtBQUNBO0FBQ0EsQ0FBQyIsImZpbGUiOiIxMjYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgTm9kZUxpc3QsIEVsZW1lbnQsIGRlZmluZSAqL1xyXG5cclxuKGZ1bmN0aW9uIChnbG9iYWwpIHtcclxuXHQndXNlIHN0cmljdCc7XHJcblxyXG5cdHZhciBGT0NVU0FCTEVfRUxFTUVOVFMgPSBbJ2FbaHJlZl0nLCAnYXJlYVtocmVmXScsICdpbnB1dDpub3QoW2Rpc2FibGVkXSknLCAnc2VsZWN0Om5vdChbZGlzYWJsZWRdKScsICd0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSknLCAnYnV0dG9uOm5vdChbZGlzYWJsZWRdKScsICdpZnJhbWUnLCAnb2JqZWN0JywgJ2VtYmVkJywgJ1tjb250ZW50ZWRpdGFibGVdJywgJ1t0YWJpbmRleF06bm90KFt0YWJpbmRleF49XCItXCJdKSddO1xyXG5cdHZhciBUQUJfS0VZID0gOTtcclxuXHR2YXIgRVNDQVBFX0tFWSA9IDI3O1xyXG5cdHZhciBmb2N1c2VkQmVmb3JlRGlhbG9nO1xyXG5cdHZhciBicm93c2VyID0gYnJvd3NlclRlc3RzKCk7XHJcblx0dmFyIHNjcm9sbCA9IDA7XHJcblx0dmFyIHNjcm9sbGVyID0gYnJvd3Nlci5pZSB8fCBicm93c2VyLmZpcmVmb3ggfHwgKGJyb3dzZXIuY2hyb21lICYmICFicm93c2VyLmVkZ2UpID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50IDogZG9jdW1lbnQuYm9keTtcclxuXHJcblx0LyoqXHJcblx0ICogRGVmaW5lIHRoZSBjb25zdHJ1Y3RvciB0byBpbnN0YW50aWF0ZSBhIGRpYWxvZ1xyXG5cdCAqXHJcblx0ICogQGNvbnN0cnVjdG9yXHJcblx0ICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcclxuXHQgKi9cclxuXHRmdW5jdGlvbiBBMTF5RGlhbG9nKG9wdGlvbnMpIHtcclxuXHRcdHRoaXMub3B0aW9ucyA9IGV4dGVuZCh7XHJcblx0XHRcdGFwcGVuZFRhcmdldDogJycsXHJcblx0XHRcdGJvZHlMb2NrOiB0cnVlLFxyXG5cdFx0XHRjbG9zZUJ1dHRvbkFyaWFMYWJlbDogJ0Nsb3NlIHRoaXMgZGlhbG9nIHdpbmRvdycsXHJcblx0XHRcdGNsb3NlQnV0dG9uQ2xhc3NlczogJ2ExMXktZGlhbG9nX19jbG9zZS1idXR0b24nLFxyXG5cdFx0XHRjb250ZW50Q2xhc3NlczogJ2ExMXktZGlhbG9nX19jb250ZW50JyxcclxuXHRcdFx0ZWZmZWN0OiAnbm9uZScsXHJcblx0XHRcdGVmZmVjdFNwZWVkOiAzMDAsXHJcblx0XHRcdGVmZmVjdEVhc2luZzogJ2Vhc2UtaW4tb3V0JyxcclxuXHRcdFx0b3ZlcmxheUNsYXNzZXM6ICdhMTF5LWRpYWxvZ19fb3ZlcmxheScsXHJcblx0XHRcdG92ZXJsYXlDbGlja0Nsb3NlczogdHJ1ZSxcclxuXHRcdFx0dHJpZ2dlcjogbnVsbCxcclxuXHRcdFx0d3JhcHBlckNsYXNzZXM6ICdhMTF5LWRpYWxvZycsXHJcblx0XHR9LCBvcHRpb25zKTtcclxuXHRcdC8vIFByZWJpbmQgdGhlIGZ1bmN0aW9ucyB0aGF0IHdpbGwgYmUgYm91bmQgaW4gYWRkRXZlbnRMaXN0ZW5lciBhbmRcclxuXHRcdC8vIHJlbW92ZUV2ZW50TGlzdGVuZXIgdG8gYXZvaWQgbG9zaW5nIHJlZmVyZW5jZXNcclxuXHRcdHRoaXMuX3JlbmRlcmVkID0gZmFsc2U7XHJcblx0XHR0aGlzLl9zaG93ID0gdGhpcy5zaG93LmJpbmQodGhpcyk7XHJcblx0XHR0aGlzLl9oaWRlID0gdGhpcy5oaWRlLmJpbmQodGhpcyk7XHJcblx0XHR0aGlzLl9tYWludGFpbkZvY3VzID0gdGhpcy5fbWFpbnRhaW5Gb2N1cy5iaW5kKHRoaXMpO1xyXG5cdFx0dGhpcy5fYmluZEtleXByZXNzID0gdGhpcy5fYmluZEtleXByZXNzLmJpbmQodGhpcyk7XHJcblxyXG5cdFx0dGhpcy50cmlnZ2VyID0gaXNTdHJpbmcodGhpcy5vcHRpb25zLnRyaWdnZXIpID8gZ2V0Tm9kZXModGhpcy5vcHRpb25zLnRyaWdnZXIsIGZhbHNlLCBkb2N1bWVudCwgdHJ1ZSlbMF0gOiB0aGlzLm9wdGlvbnMudHJpZ2dlcjtcclxuXHRcdHRoaXMubm9kZSA9IG51bGw7XHJcblxyXG5cdFx0aWYgKCF0aGlzLnRyaWdnZXIpIHtcclxuXHRcdFx0Y29uc29sZS53YXJuKCdMb29rdXAgZm9yIGExMXkgdGFyZ2V0IG5vZGUgZmFpbGVkLicpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gS2VlcCBhbiBvYmplY3Qgb2YgbGlzdGVuZXIgdHlwZXMgbWFwcGVkIHRvIGNhbGxiYWNrIGZ1bmN0aW9uc1xyXG5cdFx0dGhpcy5fbGlzdGVuZXJzID0ge307XHJcblxyXG5cdFx0Ly8gSW5pdGlhbGlzZSBldmVyeXRoaW5nIG5lZWRlZCBmb3IgdGhlIGRpYWxvZyB0byB3b3JrIHByb3Blcmx5XHJcblx0XHR0aGlzLmNyZWF0ZSgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2V0IHVwIGV2ZXJ5dGhpbmcgbmVjZXNzYXJ5IGZvciB0aGUgZGlhbG9nIHRvIGJlIGZ1bmN0aW9uaW5nXHJcblx0ICpcclxuXHQgKiBAcmV0dXJuIHt0aGlzfVxyXG5cdCAqL1xyXG5cdEExMXlEaWFsb2cucHJvdG90eXBlLmNyZWF0ZSA9IGZ1bmN0aW9uICgpIHtcclxuXHRcdHRoaXMuc2hvd24gPSBmYWxzZTtcclxuXHRcdHRoaXMudHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX3Nob3cpO1xyXG5cclxuXHRcdC8vIEV4ZWN1dGUgYWxsIGNhbGxiYWNrcyByZWdpc3RlcmVkIGZvciB0aGUgYGNyZWF0ZWAgZXZlbnRcclxuXHRcdHRoaXMuX2ZpcmUoJ2NyZWF0ZScpO1xyXG5cclxuXHRcdHJldHVybiB0aGlzO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlbmRlciB0aGUgZGlhbG9nXHJcblx0ICpcclxuXHQgKiBAcmV0dXJuIHt0aGlzfVxyXG5cdCAqL1xyXG5cdEExMXlEaWFsb2cucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIChldmVudCkge1xyXG5cdFx0dmFyIGNvbnRlbnROb2RlID0gZ2V0Tm9kZXModGhpcy50cmlnZ2VyLmRhdGFzZXQuY29udGVudClbMF07XHJcblx0XHRpZiAoIWNvbnRlbnROb2RlKSB7XHJcblx0XHRcdHJldHVybiB0aGlzO1xyXG5cdFx0fVxyXG5cdFx0dmFyIG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuXHRcdG5vZGUuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7XHJcblx0XHRub2RlLmNsYXNzTGlzdC5hZGQodGhpcy5vcHRpb25zLndyYXBwZXJDbGFzc2VzKTtcclxuXHRcdG5vZGUuaW5uZXJIVE1MID0gJzxkaXYgZGF0YS1qcz1cImExMXktb3ZlcmxheVwiIHRhYmluZGV4PVwiLTFcIiBjbGFzcz1cIicgKyB0aGlzLm9wdGlvbnMub3ZlcmxheUNsYXNzZXMgKyAnXCI+PC9kaXY+XFxuJyArXHJcblx0XHRcdCcgIDxkaXYgY2xhc3M9XCInICsgdGhpcy5vcHRpb25zLmNvbnRlbnRDbGFzc2VzICsgJ1wiIHJvbGU9XCJkaWFsb2dcIj5cXG4nICtcclxuXHRcdFx0JyAgICA8ZGl2IHJvbGU9XCJkb2N1bWVudFwiPlxcbicgK1xyXG5cdFx0XHQnICAgICAgPGJ1dHRvbiAnICtcclxuXHRcdFx0JyAgICAgICAgICAgZGF0YS1qcz1cImExMXktY2xvc2UtYnV0dG9uXCInICtcclxuXHRcdFx0JyAgICAgICAgICAgY2xhc3M9XCInICsgdGhpcy5vcHRpb25zLmNsb3NlQnV0dG9uQ2xhc3NlcyArICdcIiAnICtcclxuXHRcdFx0JyAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiICcgK1xyXG5cdFx0XHQnICAgICAgICAgICBhcmlhLWxhYmVsPVwiJyArIHRoaXMub3B0aW9ucy5jbG9zZUJ1dHRvbkFyaWFMYWJlbCArICdcIicgK1xyXG5cdFx0XHQnICAgICAgID48L2J1dHRvbj5cXG4nICtcclxuXHRcdFx0JyAgICAgICcgKyBjb250ZW50Tm9kZS5pbm5lckhUTUwgK1xyXG5cdFx0XHQnICAgIDwvZGl2PlxcbicgK1xyXG5cdFx0XHQnICA8L2Rpdj4nO1xyXG5cclxuXHRcdHZhciBhcHBlbmRUYXJnZXQgPSB0aGlzLnRyaWdnZXI7XHJcblx0XHRpZiAodGhpcy5vcHRpb25zLmFwcGVuZFRhcmdldC5sZW5ndGgpIHtcclxuXHRcdFx0YXBwZW5kVGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh0aGlzLm9wdGlvbnMuYXBwZW5kVGFyZ2V0KVswXSB8fCB0aGlzLnRyaWdnZXI7XHJcblx0XHR9XHJcblx0XHRpbnNlcnRBZnRlcihub2RlLCBhcHBlbmRUYXJnZXQpO1xyXG5cdFx0dGhpcy5ub2RlID0gbm9kZTtcclxuXHRcdHRoaXMub3ZlcmxheSA9IGdldE5vZGVzKCdhMTF5LW92ZXJsYXknLCBmYWxzZSwgdGhpcy5ub2RlKVswXTtcclxuXHRcdHRoaXMuY2xvc2VCdXR0b24gPSBnZXROb2RlcygnYTExeS1jbG9zZS1idXR0b24nLCBmYWxzZSwgdGhpcy5ub2RlKVswXTtcclxuXHRcdGlmICh0aGlzLm9wdGlvbnMub3ZlcmxheUNsaWNrQ2xvc2VzKSB7XHJcblx0XHRcdHRoaXMub3ZlcmxheS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2hpZGUpO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5jbG9zZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2hpZGUpO1xyXG5cdFx0dGhpcy5fcmVuZGVyZWQgPSB0cnVlO1xyXG5cdFx0dGhpcy5fZmlyZSgncmVuZGVyJywgZXZlbnQpO1xyXG5cdFx0cmV0dXJuIHRoaXM7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogU2hvdyB0aGUgZGlhbG9nIGVsZW1lbnQsIGRpc2FibGUgYWxsIHRoZSB0YXJnZXRzIChzaWJsaW5ncyksIHRyYXAgdGhlXHJcblx0ICogY3VycmVudCBmb2N1cyB3aXRoaW4gaXQsIGxpc3RlbiBmb3Igc29tZSBzcGVjaWZpYyBrZXkgcHJlc3NlcyBhbmQgZmlyZSBhbGxcclxuXHQgKiByZWdpc3RlcmVkIGNhbGxiYWNrcyBmb3IgYHNob3dgIGV2ZW50XHJcblx0ICpcclxuXHQgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxyXG5cdCAqIEByZXR1cm4ge3RoaXN9XHJcblx0ICovXHJcblx0QTExeURpYWxvZy5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uIChldmVudCkge1xyXG5cdFx0Ly8gSWYgdGhlIGRpYWxvZyBpcyBhbHJlYWR5IG9wZW4sIGFib3J0XHJcblx0XHRpZiAodGhpcy5zaG93bikge1xyXG5cdFx0XHRyZXR1cm4gdGhpcztcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIXRoaXMuX3JlbmRlcmVkKSB7XHJcblx0XHRcdHRoaXMucmVuZGVyKGV2ZW50KTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIXRoaXMuX3JlbmRlcmVkKSB7XHJcblx0XHRcdHJldHVybiB0aGlzO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuc2hvd24gPSB0cnVlO1xyXG5cdFx0dGhpcy5fYXBwbHlPcGVuRWZmZWN0KCk7XHJcblx0XHR0aGlzLm5vZGUuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICdmYWxzZScpO1xyXG5cdFx0aWYgKHRoaXMub3B0aW9ucy5ib2R5TG9jaykge1xyXG5cdFx0XHRsb2NrKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gS2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudGx5IGZvY3VzZWQgZWxlbWVudCB0byBiZSBhYmxlIHRvIHJlc3RvcmVcclxuXHRcdC8vIGl0IGxhdGVyLCB0aGVuIHNldCB0aGUgZm9jdXMgdG8gdGhlIGZpcnN0IGZvY3VzYWJsZSBjaGlsZCBvZiB0aGUgZGlhbG9nXHJcblx0XHQvLyBlbGVtZW50XHJcblx0XHRmb2N1c2VkQmVmb3JlRGlhbG9nID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcclxuXHRcdHNldEZvY3VzVG9GaXJzdEl0ZW0odGhpcy5ub2RlKTtcclxuXHJcblx0XHQvLyBCaW5kIGEgZm9jdXMgZXZlbnQgbGlzdGVuZXIgdG8gdGhlIGJvZHkgZWxlbWVudCB0byBtYWtlIHN1cmUgdGhlIGZvY3VzXHJcblx0XHQvLyBzdGF5cyB0cmFwcGVkIGluc2lkZSB0aGUgZGlhbG9nIHdoaWxlIG9wZW4sIGFuZCBzdGFydCBsaXN0ZW5pbmcgZm9yIHNvbWVcclxuXHRcdC8vIHNwZWNpZmljIGtleSBwcmVzc2VzIChUQUIgYW5kIEVTQylcclxuXHRcdGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCB0aGlzLl9tYWludGFpbkZvY3VzLCB0cnVlKTtcclxuXHRcdGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9iaW5kS2V5cHJlc3MpO1xyXG5cclxuXHRcdC8vIEV4ZWN1dGUgYWxsIGNhbGxiYWNrcyByZWdpc3RlcmVkIGZvciB0aGUgYHNob3dgIGV2ZW50XHJcblx0XHR0aGlzLl9maXJlKCdzaG93JywgZXZlbnQpO1xyXG5cclxuXHRcdHJldHVybiB0aGlzO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIEhpZGUgdGhlIGRpYWxvZyBlbGVtZW50LCBlbmFibGUgYWxsIHRoZSB0YXJnZXRzIChzaWJsaW5ncyksIHJlc3RvcmUgdGhlXHJcblx0ICogZm9jdXMgdG8gdGhlIHByZXZpb3VzbHkgYWN0aXZlIGVsZW1lbnQsIHN0b3AgbGlzdGVuaW5nIGZvciBzb21lIHNwZWNpZmljXHJcblx0ICoga2V5IHByZXNzZXMgYW5kIGZpcmUgYWxsIHJlZ2lzdGVyZWQgY2FsbGJhY2tzIGZvciBgaGlkZWAgZXZlbnRcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50XHJcblx0ICogQHJldHVybiB7dGhpc31cclxuXHQgKi9cclxuXHRBMTF5RGlhbG9nLnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24gKGV2ZW50KSB7XHJcblx0XHQvLyBJZiB0aGUgZGlhbG9nIGlzIGFscmVhZHkgY2xvc2VkLCBhYm9ydFxyXG5cdFx0aWYgKCF0aGlzLnNob3duKSB7XHJcblx0XHRcdHJldHVybiB0aGlzO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuc2hvd24gPSBmYWxzZTtcclxuXHRcdHRoaXMubm9kZS5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTtcclxuXHRcdHRoaXMuX2FwcGx5Q2xvc2VFZmZlY3QoKTtcclxuXHJcblx0XHRpZiAodGhpcy5vcHRpb25zLmJvZHlMb2NrKSB7XHJcblx0XHRcdHVubG9jaygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIElmIHRoZWlyIHdhcyBhIGZvY3VzZWQgZWxlbWVudCBiZWZvcmUgdGhlIGRpYWxvZyB3YXMgb3BlbmVkLCByZXN0b3JlIHRoZVxyXG5cdFx0Ly8gZm9jdXMgYmFjayB0byBpdFxyXG5cdFx0aWYgKGZvY3VzZWRCZWZvcmVEaWFsb2cpIHtcclxuXHRcdFx0Zm9jdXNlZEJlZm9yZURpYWxvZy5mb2N1cygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIFJlbW92ZSB0aGUgZm9jdXMgZXZlbnQgbGlzdGVuZXIgdG8gdGhlIGJvZHkgZWxlbWVudCBhbmQgc3RvcCBsaXN0ZW5pbmdcclxuXHRcdC8vIGZvciBzcGVjaWZpYyBrZXkgcHJlc3Nlc1xyXG5cdFx0ZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1cycsIHRoaXMuX21haW50YWluRm9jdXMsIHRydWUpO1xyXG5cdFx0ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuX2JpbmRLZXlwcmVzcyk7XHJcblxyXG5cdFx0Ly8gRXhlY3V0ZSBhbGwgY2FsbGJhY2tzIHJlZ2lzdGVyZWQgZm9yIHRoZSBgaGlkZWAgZXZlbnRcclxuXHRcdHRoaXMuX2ZpcmUoJ2hpZGUnLCBldmVudCk7XHJcblxyXG5cdFx0cmV0dXJuIHRoaXM7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogRGVzdHJveSB0aGUgY3VycmVudCBpbnN0YW5jZSAoYWZ0ZXIgbWFraW5nIHN1cmUgdGhlIGRpYWxvZyBoYXMgYmVlbiBoaWRkZW4pXHJcblx0ICogYW5kIHJlbW92ZSBhbGwgYXNzb2NpYXRlZCBsaXN0ZW5lcnMgZnJvbSBkaWFsb2cgb3BlbmVycyBhbmQgY2xvc2Vyc1xyXG5cdCAqXHJcblx0ICogQHJldHVybiB7dGhpc31cclxuXHQgKi9cclxuXHRBMTF5RGlhbG9nLnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24gKCkge1xyXG5cdFx0Ly8gSGlkZSB0aGUgZGlhbG9nIHRvIGF2b2lkIGRlc3Ryb3lpbmcgYW4gb3BlbiBpbnN0YW5jZVxyXG5cdFx0dGhpcy5oaWRlKCk7XHJcblxyXG5cdFx0dGhpcy50cmlnZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5fc2hvdyk7XHJcblx0XHRpZiAodGhpcy5vcHRpb25zLm92ZXJsYXlDbGlja0Nsb3Nlcykge1xyXG5cdFx0XHR0aGlzLm92ZXJsYXkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9oaWRlKTtcclxuXHRcdH1cclxuXHRcdHRoaXMuY2xvc2VCdXR0b24ucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9oaWRlKTtcclxuXHJcblx0XHQvLyBFeGVjdXRlIGFsbCBjYWxsYmFja3MgcmVnaXN0ZXJlZCBmb3IgdGhlIGBkZXN0cm95YCBldmVudFxyXG5cdFx0dGhpcy5fZmlyZSgnZGVzdHJveScpO1xyXG5cclxuXHRcdC8vIEtlZXAgYW4gb2JqZWN0IG9mIGxpc3RlbmVyIHR5cGVzIG1hcHBlZCB0byBjYWxsYmFjayBmdW5jdGlvbnNcclxuXHRcdHRoaXMuX2xpc3RlbmVycyA9IHt9O1xyXG5cclxuXHRcdHJldHVybiB0aGlzO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlZ2lzdGVyIGEgbmV3IGNhbGxiYWNrIGZvciB0aGUgZ2l2ZW4gZXZlbnQgdHlwZVxyXG5cdCAqXHJcblx0ICogQHBhcmFtIHtzdHJpbmd9IHR5cGVcclxuXHQgKiBAcGFyYW0ge0Z1bmN0aW9ufSBoYW5kbGVyXHJcblx0ICovXHJcblx0QTExeURpYWxvZy5wcm90b3R5cGUub24gPSBmdW5jdGlvbiAodHlwZSwgaGFuZGxlcikge1xyXG5cdFx0aWYgKHR5cGVvZiB0aGlzLl9saXN0ZW5lcnNbdHlwZV0gPT09ICd1bmRlZmluZWQnKSB7XHJcblx0XHRcdHRoaXMuX2xpc3RlbmVyc1t0eXBlXSA9IFtdO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuX2xpc3RlbmVyc1t0eXBlXS5wdXNoKGhhbmRsZXIpO1xyXG5cclxuXHRcdHJldHVybiB0aGlzO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFVucmVnaXN0ZXIgYW4gZXhpc3RpbmcgY2FsbGJhY2sgZm9yIHRoZSBnaXZlbiBldmVudCB0eXBlXHJcblx0ICpcclxuXHQgKiBAcGFyYW0ge3N0cmluZ30gdHlwZVxyXG5cdCAqIEBwYXJhbSB7RnVuY3Rpb259IGhhbmRsZXJcclxuXHQgKi9cclxuXHRBMTF5RGlhbG9nLnByb3RvdHlwZS5vZmYgPSBmdW5jdGlvbiAodHlwZSwgaGFuZGxlcikge1xyXG5cdFx0dmFyIGluZGV4ID0gdGhpcy5fbGlzdGVuZXJzW3R5cGVdLmluZGV4T2YoaGFuZGxlcik7XHJcblxyXG5cdFx0aWYgKGluZGV4ID4gLTEpIHtcclxuXHRcdFx0dGhpcy5fbGlzdGVuZXJzW3R5cGVdLnNwbGljZShpbmRleCwgMSk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRoaXM7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogSXRlcmF0ZSBvdmVyIGFsbCByZWdpc3RlcmVkIGhhbmRsZXJzIGZvciBnaXZlbiB0eXBlIGFuZCBjYWxsIHRoZW0gYWxsIHdpdGhcclxuXHQgKiB0aGUgZGlhbG9nIGVsZW1lbnQgYXMgZmlyc3QgYXJndW1lbnQsIGV2ZW50IGFzIHNlY29uZCBhcmd1bWVudCAoaWYgYW55KS5cclxuXHQgKlxyXG5cdCAqIEBhY2Nlc3MgcHJpdmF0ZVxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlXHJcblx0ICogQHBhcmFtIHtFdmVudH0gZXZlbnRcclxuXHQgKi9cclxuXHRBMTF5RGlhbG9nLnByb3RvdHlwZS5fZmlyZSA9IGZ1bmN0aW9uICh0eXBlLCBldmVudCkge1xyXG5cdFx0dmFyIGxpc3RlbmVycyA9IHRoaXMuX2xpc3RlbmVyc1t0eXBlXSB8fCBbXTtcclxuXHJcblx0XHRsaXN0ZW5lcnMuZm9yRWFjaChmdW5jdGlvbiAobGlzdGVuZXIpIHtcclxuXHRcdFx0bGlzdGVuZXIodGhpcy5ub2RlLCBldmVudCk7XHJcblx0XHR9LmJpbmQodGhpcykpO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFByaXZhdGUgZXZlbnQgaGFuZGxlciB1c2VkIHdoZW4gbGlzdGVuaW5nIHRvIHNvbWUgc3BlY2lmaWMga2V5IHByZXNzZXNcclxuXHQgKiAobmFtZWx5IEVTQ0FQRSBhbmQgVEFCKVxyXG5cdCAqXHJcblx0ICogQGFjY2VzcyBwcml2YXRlXHJcblx0ICogQHBhcmFtIHtFdmVudH0gZXZlbnRcclxuXHQgKi9cclxuXHRBMTF5RGlhbG9nLnByb3RvdHlwZS5fYmluZEtleXByZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7XHJcblx0XHQvLyBJZiB0aGUgZGlhbG9nIGlzIHNob3duIGFuZCB0aGUgRVNDQVBFIGtleSBpcyBiZWluZyBwcmVzc2VkLCBwcmV2ZW50IGFueVxyXG5cdFx0Ly8gZnVydGhlciBlZmZlY3RzIGZyb20gdGhlIEVTQ0FQRSBrZXkgYW5kIGhpZGUgdGhlIGRpYWxvZ1xyXG5cdFx0aWYgKHRoaXMuc2hvd24gJiYgZXZlbnQud2hpY2ggPT09IEVTQ0FQRV9LRVkpIHtcclxuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0dGhpcy5oaWRlKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gSWYgdGhlIGRpYWxvZyBpcyBzaG93biBhbmQgdGhlIFRBQiBrZXkgaXMgYmVpbmcgcHJlc3NlZCwgbWFrZSBzdXJlIHRoZVxyXG5cdFx0Ly8gZm9jdXMgc3RheXMgdHJhcHBlZCB3aXRoaW4gdGhlIGRpYWxvZyBlbGVtZW50XHJcblx0XHRpZiAodGhpcy5zaG93biAmJiBldmVudC53aGljaCA9PT0gVEFCX0tFWSkge1xyXG5cdFx0XHR0cmFwVGFiS2V5KHRoaXMubm9kZSwgZXZlbnQpO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFByaXZhdGUgZXZlbnQgaGFuZGxlciB1c2VkIHdoZW4gbWFraW5nIHN1cmUgdGhlIGZvY3VzIHN0YXlzIHdpdGhpbiB0aGVcclxuXHQgKiBjdXJyZW50bHkgb3BlbiBkaWFsb2dcclxuXHQgKlxyXG5cdCAqIEBhY2Nlc3MgcHJpdmF0ZVxyXG5cdCAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50XHJcblx0ICovXHJcblx0QTExeURpYWxvZy5wcm90b3R5cGUuX21haW50YWluRm9jdXMgPSBmdW5jdGlvbiAoZXZlbnQpIHtcclxuXHRcdC8vIElmIHRoZSBkaWFsb2cgaXMgc2hvd24gYW5kIHRoZSBmb2N1cyBpcyBub3Qgd2l0aGluIHRoZSBkaWFsb2cgZWxlbWVudCxcclxuXHRcdC8vIG1vdmUgaXQgYmFjayB0byBpdHMgZmlyc3QgZm9jdXNhYmxlIGNoaWxkXHJcblx0XHRpZiAodGhpcy5zaG93biAmJiAhdGhpcy5ub2RlLmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcclxuXHRcdFx0c2V0Rm9jdXNUb0ZpcnN0SXRlbSh0aGlzLm5vZGUpO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIEFwcGxpZXMgZWZmZWN0cyB0byB0aGUgb3BlbmluZyBvZiB0aGUgZGlhbG9nLlxyXG5cdCAqXHJcblx0ICogQGFjY2VzcyBwcml2YXRlXHJcblx0ICovXHJcblxyXG5cdEExMXlEaWFsb2cucHJvdG90eXBlLl9hcHBseU9wZW5FZmZlY3QgPSBmdW5jdGlvbiAoKSB7XHJcblx0XHR2YXIgX3RoaXMgPSB0aGlzO1xyXG5cdFx0aWYgKHRoaXMub3B0aW9ucy5lZmZlY3QgPT09ICdmYWRlJykge1xyXG5cdFx0XHR0aGlzLm5vZGUuc3R5bGUub3BhY2l0eSA9ICcwJztcclxuXHRcdFx0dGhpcy5ub2RlLnN0eWxlLnRyYW5zaXRpb24gPSAnb3BhY2l0eSAnICsgdGhpcy5vcHRpb25zLmVmZmVjdFNwZWVkICsgJ21zICcgKyB0aGlzLm9wdGlvbnMuZWZmZWN0RWFzaW5nO1xyXG5cdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XHJcblx0XHRcdFx0X3RoaXMubm9kZS5zdHlsZS5vcGFjaXR5ID0gJzEnO1xyXG5cdFx0XHR9LCA1MCk7XHJcblx0XHR9XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogQXBwbGllcyBlZmZlY3RzIHRvIHRoZSBjbG9zaW5nIG9mIHRoZSBkaWFsb2cuXHJcblx0ICpcclxuXHQgKiBAYWNjZXNzIHByaXZhdGVcclxuXHQgKi9cclxuXHJcblx0QTExeURpYWxvZy5wcm90b3R5cGUuX2FwcGx5Q2xvc2VFZmZlY3QgPSBmdW5jdGlvbiAoKSB7XHJcblx0XHR2YXIgX3RoaXMgPSB0aGlzO1xyXG5cdFx0aWYgKHRoaXMub3B0aW9ucy5lZmZlY3QgPT09ICdmYWRlJykge1xyXG5cdFx0XHR0aGlzLm5vZGUuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICdmYWxzZScpO1xyXG5cdFx0XHR0aGlzLm5vZGUuc3R5bGUub3BhY2l0eSA9ICcwJztcclxuXHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpe1xyXG5cdFx0XHRcdF90aGlzLm5vZGUuc3R5bGUudHJhbnNpdGlvbiA9ICcnO1xyXG5cdFx0XHRcdF90aGlzLm5vZGUuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7XHJcblx0XHRcdH0sIHRoaXMub3B0aW9ucy5lZmZlY3RTcGVlZCk7XHJcblx0XHR9XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogSGlnaGx5IGVmZmljaWVudCBmdW5jdGlvbiB0byBjb252ZXJ0IGEgbm9kZWxpc3QgaW50byBhIHN0YW5kYXJkIGFycmF5LiBBbGxvd3MgeW91IHRvIHJ1biBBcnJheS5mb3JFYWNoXHJcblx0ICpcclxuXHQgKiBAcGFyYW0ge0VsZW1lbnR8Tm9kZUxpc3R9IGVsZW1lbnRzIHRvIGNvbnZlcnRcclxuXHQgKiBAcmV0dXJucyB7QXJyYXl9IE9mIGNvbnZlcnRlZCBlbGVtZW50c1xyXG5cdCAqL1xyXG5cclxuXHRmdW5jdGlvbiBjb252ZXJ0RWxlbWVudHMoZWxlbWVudHMpIHtcclxuXHRcdHZhciBjb252ZXJ0ZWQgPSBbXTtcclxuXHRcdHZhciBpID0gZWxlbWVudHMubGVuZ3RoO1xyXG5cdFx0Zm9yIChpOyBpLS07IGNvbnZlcnRlZC51bnNoaWZ0KGVsZW1lbnRzW2ldKSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcclxuXHJcblx0XHRyZXR1cm4gY29udmVydGVkO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2hvdWxkIGJlIHVzZWQgYXQgYWxsIHRpbWVzIGZvciBnZXR0aW5nIG5vZGVzIHRocm91Z2hvdXQgb3VyIGFwcC4gUGxlYXNlIHVzZSB0aGUgZGF0YS1qcyBhdHRyaWJ1dGUgd2hlbmV2ZXIgcG9zc2libGVcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSBzZWxlY3RvciBUaGUgc2VsZWN0b3Igc3RyaW5nIHRvIHNlYXJjaCBmb3IuIElmIGFyZyA0IGlzIGZhbHNlIChkZWZhdWx0KSB0aGVuIHdlIHNlYXJjaCBmb3IgW2RhdGEtanM9XCJzZWxlY3RvclwiXVxyXG5cdCAqIEBwYXJhbSBjb252ZXJ0IENvbnZlcnQgdGhlIE5vZGVMaXN0IHRvIGFuIGFycmF5PyBUaGVuIHdlIGNhbiBBcnJheS5mb3JFYWNoIGRpcmVjdGx5LiBVc2VzIGNvbnZlcnRFbGVtZW50cyBmcm9tIGFib3ZlXHJcblx0ICogQHBhcmFtIG5vZGUgUGFyZW50IG5vZGUgdG8gc2VhcmNoIGZyb20uIERlZmF1bHRzIHRvIGRvY3VtZW50XHJcblx0ICogQHBhcmFtIGN1c3RvbSBJcyB0aGlzIGEgY3VzdG9tIHNlbGVjdG9yIHdoZXJlIHdlIGRvbid0IHdhbnQgdG8gdXNlIHRoZSBkYXRhLWpzIGF0dHJpYnV0ZT9cclxuXHQgKiBAcmV0dXJucyB7Tm9kZUxpc3R9XHJcblx0ICovXHJcblxyXG5cdGZ1bmN0aW9uIGdldE5vZGVzKHNlbGVjdG9yLCBjb252ZXJ0LCBub2RlLCBjdXN0b20pIHtcclxuXHRcdGlmICghbm9kZSkge1xyXG5cdFx0XHRub2RlID0gZG9jdW1lbnQ7XHJcblx0XHR9XHJcblx0XHR2YXIgc2VsZWN0b3JTdHJpbmcgPSBjdXN0b20gPyBzZWxlY3RvciA6ICdbZGF0YS1qcz1cIicgKyBzZWxlY3RvciArICdcIl0nO1xyXG5cdFx0dmFyIG5vZGVzID0gbm9kZS5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yU3RyaW5nKTtcclxuXHRcdGlmIChjb252ZXJ0KSB7XHJcblx0XHRcdG5vZGVzID0gY29udmVydEVsZW1lbnRzKG5vZGVzKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBub2RlcztcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFF1ZXJ5IHRoZSBET00gZm9yIG5vZGVzIG1hdGNoaW5nIHRoZSBnaXZlbiBzZWxlY3Rvciwgc2NvcGVkIHRvIGNvbnRleHQgKG9yXHJcblx0ICogdGhlIHdob2xlIGRvY3VtZW50KVxyXG5cdCAqXHJcblx0ICogQHBhcmFtIHtTdHJpbmd9IHNlbGVjdG9yXHJcblx0ICogQHBhcmFtIHtFbGVtZW50fSBbY29udGV4dCA9IGRvY3VtZW50XVxyXG5cdCAqIEByZXR1cm4ge0FycmF5PEVsZW1lbnQ+fVxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uICQkKHNlbGVjdG9yLCBjb250ZXh0KSB7XHJcblx0XHRyZXR1cm4gY29udmVydEVsZW1lbnRzKChjb250ZXh0IHx8IGRvY3VtZW50KS5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBTZXQgdGhlIGZvY3VzIHRvIHRoZSBmaXJzdCBmb2N1c2FibGUgY2hpbGQgb2YgdGhlIGdpdmVuIGVsZW1lbnRcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIHNldEZvY3VzVG9GaXJzdEl0ZW0obm9kZSkge1xyXG5cdFx0dmFyIGZvY3VzYWJsZUNoaWxkcmVuID0gZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4obm9kZSk7XHJcblxyXG5cdFx0aWYgKGZvY3VzYWJsZUNoaWxkcmVuLmxlbmd0aCkge1xyXG5cdFx0XHRmb2N1c2FibGVDaGlsZHJlblswXS5mb2N1cygpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogSW5zZXJ0IGEgbm9kZSBhZnRlciBhbm90aGVyIG5vZGVcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSBuZXdOb2RlIHtFbGVtZW50fE5vZGVMaXN0fVxyXG5cdCAqIEBwYXJhbSByZWZlcmVuY2VOb2RlIHtFbGVtZW50fE5vZGVMaXN0fVxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIGluc2VydEFmdGVyKG5ld05vZGUsIHJlZmVyZW5jZU5vZGUpIHtcclxuXHRcdHJlZmVyZW5jZU5vZGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobmV3Tm9kZSwgcmVmZXJlbmNlTm9kZS5uZXh0RWxlbWVudFNpYmxpbmcpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0IHRoZSBmb2N1c2FibGUgY2hpbGRyZW4gb2YgdGhlIGdpdmVuIGVsZW1lbnRcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxyXG5cdCAqIEByZXR1cm4ge0FycmF5PEVsZW1lbnQ+fVxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIGdldEZvY3VzYWJsZUNoaWxkcmVuKG5vZGUpIHtcclxuXHRcdHJldHVybiAkJChGT0NVU0FCTEVfRUxFTUVOVFMuam9pbignLCcpLCBub2RlKS5maWx0ZXIoZnVuY3Rpb24gKGNoaWxkKSB7XHJcblx0XHRcdHJldHVybiAhIShjaGlsZC5vZmZzZXRXaWR0aCB8fCBjaGlsZC5vZmZzZXRIZWlnaHQgfHwgY2hpbGQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBpc1N0cmluZyh4KSB7XHJcblx0XHRyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHgpID09PSBcIltvYmplY3QgU3RyaW5nXVwiXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBleHRlbmQob2JqLCBzcmMpIHtcclxuXHRcdE9iamVjdC5rZXlzKHNyYykuZm9yRWFjaChmdW5jdGlvbihrZXkpIHsgb2JqW2tleV0gPSBzcmNba2V5XTsgfSk7XHJcblx0XHRyZXR1cm4gb2JqO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogVHJhcCB0aGUgZm9jdXMgaW5zaWRlIHRoZSBnaXZlbiBlbGVtZW50XHJcblx0ICpcclxuXHQgKiBAcGFyYW0ge0VsZW1lbnR9IG5vZGVcclxuXHQgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIHRyYXBUYWJLZXkobm9kZSwgZXZlbnQpIHtcclxuXHRcdHZhciBmb2N1c2FibGVDaGlsZHJlbiA9IGdldEZvY3VzYWJsZUNoaWxkcmVuKG5vZGUpO1xyXG5cdFx0dmFyIGZvY3VzZWRJdGVtSW5kZXggPSBmb2N1c2FibGVDaGlsZHJlbi5pbmRleE9mKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpO1xyXG5cclxuXHRcdC8vIElmIHRoZSBTSElGVCBrZXkgaXMgYmVpbmcgcHJlc3NlZCB3aGlsZSB0YWJiaW5nIChtb3ZpbmcgYmFja3dhcmRzKSBhbmRcclxuXHRcdC8vIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBpdGVtIGlzIHRoZSBmaXJzdCBvbmUsIG1vdmUgdGhlIGZvY3VzIHRvIHRoZSBsYXN0XHJcblx0XHQvLyBmb2N1c2FibGUgaXRlbSBmcm9tIHRoZSBkaWFsb2cgZWxlbWVudFxyXG5cdFx0aWYgKGV2ZW50LnNoaWZ0S2V5ICYmIGZvY3VzZWRJdGVtSW5kZXggPT09IDApIHtcclxuXHRcdFx0Zm9jdXNhYmxlQ2hpbGRyZW5bZm9jdXNhYmxlQ2hpbGRyZW4ubGVuZ3RoIC0gMV0uZm9jdXMoKTtcclxuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0Ly8gSWYgdGhlIFNISUZUIGtleSBpcyBub3QgYmVpbmcgcHJlc3NlZCAobW92aW5nIGZvcndhcmRzKSBhbmQgdGhlIGN1cnJlbnRseVxyXG5cdFx0XHQvLyBmb2N1c2VkIGl0ZW0gaXMgdGhlIGxhc3Qgb25lLCBtb3ZlIHRoZSBmb2N1cyB0byB0aGUgZmlyc3QgZm9jdXNhYmxlIGl0ZW1cclxuXHRcdFx0Ly8gZnJvbSB0aGUgZGlhbG9nIGVsZW1lbnRcclxuXHRcdH0gZWxzZSBpZiAoIWV2ZW50LnNoaWZ0S2V5ICYmIGZvY3VzZWRJdGVtSW5kZXggPT09IGZvY3VzYWJsZUNoaWxkcmVuLmxlbmd0aCAtIDEpIHtcclxuXHRcdFx0Zm9jdXNhYmxlQ2hpbGRyZW5bMF0uZm9jdXMoKTtcclxuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBmdW5jdGlvbiBsb2NrXHJcblx0ICogQGRlc2NyaXB0aW9uIExvY2sgdGhlIGJvZHkgYXQgYSBwYXJ0aWN1bGFyIHBvc2l0aW9uIGFuZCBwcmV2ZW50IHNjcm9sbCxcclxuXHQgKiB1c2UgbWFyZ2luIHRvIHNpbXVsYXRlIG9yaWdpbmFsIHNjcm9sbCBwb3NpdGlvbi5cclxuXHQgKi9cclxuXHJcblx0ZnVuY3Rpb24gbG9jaygpIHtcclxuXHRcdHNjcm9sbCA9IHNjcm9sbGVyLnNjcm9sbFRvcDtcclxuXHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnYTExeS1kaWFsb2dfX2JvZHktbG9ja2VkJyk7XHJcblx0XHRkb2N1bWVudC5ib2R5LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcclxuXHRcdGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAnMTAwJSc7XHJcblx0XHRkb2N1bWVudC5ib2R5LnN0eWxlLm1hcmdpblRvcCA9ICctJyArIHNjcm9sbCArICdweCc7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAZnVuY3Rpb24gdW5sb2NrXHJcblx0ICogQGRlc2NyaXB0aW9uIFVubG9jayB0aGUgYm9keSBhbmQgcmV0dXJuIGl0IHRvIGl0cyBhY3R1YWwgc2Nyb2xsIHBvc2l0aW9uLlxyXG5cdCAqL1xyXG5cclxuXHRmdW5jdGlvbiB1bmxvY2soKSB7XHJcblx0XHRkb2N1bWVudC5ib2R5LnN0eWxlLm1hcmdpblRvcCA9ICcnO1xyXG5cdFx0ZG9jdW1lbnQuYm9keS5zdHlsZS5wb3NpdGlvbiA9ICcnO1xyXG5cdFx0ZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICcnO1xyXG5cdFx0c2Nyb2xsZXIuc2Nyb2xsVG9wID0gc2Nyb2xsO1xyXG5cdFx0ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdhMTF5LWRpYWxvZ19fYm9keS1sb2NrZWQnKTtcclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIGJyb3dzZXJUZXN0cygpIHtcclxuXHRcdHZhciBhbmRyb2lkID0gLyhhbmRyb2lkKS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XHJcblx0XHR2YXIgY2hyb21lID0gISF3aW5kb3cuY2hyb21lO1xyXG5cdFx0dmFyIGZpcmVmb3ggPSB0eXBlb2YgSW5zdGFsbFRyaWdnZXIgIT09ICd1bmRlZmluZWQnO1xyXG5cdFx0dmFyIGllID0gZG9jdW1lbnQuZG9jdW1lbnRNb2RlO1xyXG5cdFx0dmFyIGVkZ2UgPSAhaWUgJiYgISF3aW5kb3cuU3R5bGVNZWRpYTtcclxuXHRcdHZhciBpb3MgPSAhIW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goLyhpUG9kfGlQaG9uZXxpUGFkKS9pKTtcclxuXHRcdHZhciBpb3NNb2JpbGUgPSAhIW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goLyhpUG9kfGlQaG9uZSkvaSk7XHJcblx0XHR2YXIgb3BlcmEgPSAhIXdpbmRvdy5vcGVyYSB8fCBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJyBPUFIvJykgPj0gMDtcclxuXHRcdHZhciBzYWZhcmkgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwod2luZG93LkhUTUxFbGVtZW50KS5pbmRleE9mKCdDb25zdHJ1Y3RvcicpID4gMCB8fCAhY2hyb21lICYmICFvcGVyYSAmJiB3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0ICE9PSAndW5kZWZpbmVkJzsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxyXG5cdFx0dmFyIG9zID0gbmF2aWdhdG9yLnBsYXRmb3JtO1xyXG5cclxuXHRcdHJldHVybiB7XHJcblx0XHRcdGFuZHJvaWQ6IGFuZHJvaWQsXHJcblx0XHRcdGNocm9tZTogY2hyb21lLFxyXG5cdFx0XHRlZGdlOiBlZGdlLFxyXG5cdFx0XHRmaXJlZm94OiBmaXJlZm94LFxyXG5cdFx0XHRpZTogaWUsXHJcblx0XHRcdGlvczogaW9zLFxyXG5cdFx0XHRpb3NNb2JpbGU6IGlvc01vYmlsZSxcclxuXHRcdFx0b3BlcmE6IG9wZXJhLFxyXG5cdFx0XHRzYWZhcmk6IHNhZmFyaSxcclxuXHRcdFx0b3M6IG9zLFxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0aWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBtb2R1bGUuZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuXHRcdG1vZHVsZS5leHBvcnRzID0gQTExeURpYWxvZztcclxuXHR9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xyXG5cdFx0ZGVmaW5lKCdBMTF5RGlhbG9nJywgW10sIGZ1bmN0aW9uICgpIHtcclxuXHRcdFx0cmV0dXJuIEExMXlEaWFsb2c7XHJcblx0XHR9KTtcclxuXHR9IGVsc2UgaWYgKHR5cGVvZiBnbG9iYWwgPT09ICdvYmplY3QnKSB7XHJcblx0XHRnbG9iYWwuQTExeURpYWxvZyA9IEExMXlEaWFsb2c7XHJcblx0fVxyXG59KHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogd2luZG93KSk7XHJcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL210LWExMXktZGlhbG9nL2ExMXktZGlhbG9nLmpzXG4vLyBtb2R1bGUgaWQgPSAxMjZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///126\n"); /***/ }), /* 127 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _interopRequireWildcard = __webpack_require__(11);\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(128);\n\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(140));\n\nvar _slicedToArray2 = _interopRequireDefault(__webpack_require__(52));\n\nvar _entries = _interopRequireDefault(__webpack_require__(54));\n\n__webpack_require__(83);\n\nvar _delay2 = _interopRequireDefault(__webpack_require__(27));\n\nvar _delegate = _interopRequireDefault(__webpack_require__(25));\n\nvar _choices = _interopRequireDefault(__webpack_require__(167));\n\nvar tools = _interopRequireWildcard(__webpack_require__(15));\n\nvar slide = _interopRequireWildcard(__webpack_require__(168));\n\nvar _accessibility = __webpack_require__(170);\n\nvar _shortcodeState = _interopRequireDefault(__webpack_require__(7));\n\nvar _events = __webpack_require__(16);\n\nvar el = {};\nvar state = {\n slideSpeed: 150,\n delaySpeed: 100\n};\n/**\n * @function openChildMenu\n * @description Toggle the accordion open\n */\n\nvar openChildMenu = function openChildMenu(header, content) {\n tools.addClass(header.parentNode, 'active');\n (0, _accessibility.setAccActiveAttributes)(header, content);\n slide.down(content, state.slideSpeed);\n};\n/**\n * @function closeChildMenu\n * @description Toggle the accordion closed\n */\n\n\nvar closeChildMenu = function closeChildMenu(header, content) {\n tools.removeClass(header.parentNode, 'active');\n (0, _accessibility.setAccInactiveAttributes)(header, content);\n slide.up(content, state.slideSpeed);\n};\n/**\n * @function toggleChildMenu\n * @description Toggle child menu lists.\n * @param e event\n */\n\n\nvar toggleChildMenu = function toggleChildMenu(e) {\n var header = e.delegateTarget;\n var content = header.nextElementSibling;\n\n if (tools.hasClass(header.parentNode, 'active')) {\n closeChildMenu(header, content);\n } else {\n openChildMenu(header, content);\n }\n};\n/**\n * @function buildQueryObject\n * @description add new values to the wpAPIQueryObj\n * @param key string\n * @param value string\n */\n\n\nvar buildQueryObject = function buildQueryObject() {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var value = arguments.length > 1 ? arguments[1] : undefined;\n\n if (!key) {\n _shortcodeState.default.wpAPIQueryObj.search.push(value);\n\n return;\n }\n\n _shortcodeState.default.wpAPIQueryObj[key].push(value);\n};\n/**\n * @function reduceQueryObject\n * @description remove existing values from the wpAPIQueryObj\n * @param key string\n * @param value string\n */\n\n\nvar reduceQueryObject = function reduceQueryObject(key, value) {\n var valIndex = '';\n\n if (!key) {\n valIndex = _shortcodeState.default.wpAPIQueryObj.search.indexOf(value);\n\n _shortcodeState.default.wpAPIQueryObj.search.splice(valIndex, 1);\n\n return;\n }\n\n valIndex = _shortcodeState.default.wpAPIQueryObj[key].indexOf(value);\n\n _shortcodeState.default.wpAPIQueryObj[key].splice(valIndex, 1);\n};\n/**\n * @function addChoice\n * @description add a choice to the search query.\n */\n\n\nvar addChoice = function addChoice(value, label) {\n el.searchInput.setValue([{\n value: value,\n label: label\n }]);\n (0, _events.trigger)({\n event: 'bigcommerce/shortcode_query_term_added',\n data: {\n value: value,\n label: label\n },\n native: false\n });\n};\n/**\n * @function removeChoice\n * @description remove a choice from the search query.\n */\n\n\nvar removeChoice = function removeChoice(value) {\n el.searchInput.removeItemsByValue(value);\n (0, _events.trigger)({\n event: 'bigcommerce/shortcode_query_term_removed',\n data: {\n value: value\n },\n native: false\n });\n};\n/**\n * @function handleChoiceAddition\n * @description run special functionality based on addItem event in Choices.js\n * @param e event object created by addItem\n */\n\n\nvar handleChoiceAddition = function handleChoiceAddition(e) {\n if (e.detail.value === e.detail.label) {\n buildQueryObject('', e.detail.value);\n (0, _events.trigger)({\n event: 'bigcommerce/shortcode_query_term_added',\n data: {\n value: e.detail.value,\n label: e.detail.label\n },\n native: false\n });\n }\n};\n/**\n * @function handleChoiceRemoval\n * @description run special functionality based on removeItem event in Choices.js\n * @param e event object created by removeItem\n */\n\n\nvar handleChoiceRemoval = function handleChoiceRemoval(e) {\n var value = e.detail.value;\n var link = tools.getNodes(\"[data-value=\\\"\".concat(value, \"\\\"]\"), false, el.linkList, true)[0];\n (0, _events.trigger)({\n event: 'bigcommerce/shortcode_query_term_removed',\n data: {\n value: value\n },\n native: false\n });\n\n if (e.detail.fromSettings) {\n removeChoice(value);\n }\n\n if (!link) {\n reduceQueryObject('', value);\n return;\n }\n\n if (link && link.classList.contains('bcqb-item-selected')) {\n var key = link.dataset.key;\n link.classList.remove('bcqb-item-selected');\n reduceQueryObject(key, value);\n }\n};\n/**\n * @function handleLinks\n * @description Handle the link click event and add/remove items from the search query.\n * @param e event\n */\n\n\nvar handleLinks = function handleLinks(e) {\n var element = e.delegateTarget ? e.delegateTarget : e;\n var key = e.delegateTarget ? e.delegateTarget.dataset.key : e.dataset.key;\n var value = e.delegateTarget ? e.delegateTarget.dataset.value : e.dataset.value;\n var label = e.delegateTarget ? e.delegateTarget.text : e.text;\n element.classList.toggle('bcqb-item-selected');\n\n if (element.classList.contains('bcqb-item-selected')) {\n addChoice(value, label);\n buildQueryObject(key, value);\n element.setAttribute('aria-selected', 'true');\n return;\n }\n\n element.setAttribute('aria-selected', 'false');\n removeChoice(value);\n reduceQueryObject(key, value);\n};\n/**\n * @function clearSearch\n * @description clear all choices from the search input and reset links and objects.\n */\n\n\nvar clearSearch = function clearSearch() {\n el.searchInput.clearStore();\n _shortcodeState.default.wpAPIQueryObj = {\n bigcommerce_flag: [],\n bigcommerce_brand: [],\n bigcommerce_category: [],\n recent: [],\n search: []\n };\n el.linkList.querySelectorAll('.bcqb-item-selected').forEach(function (link) {\n link.classList.remove('bcqb-item-selected');\n });\n};\n/**\n * @function addSavedUICustomChoices\n * @description Add custom search/query terms to the search field before running the query.\n * @param choices\n */\n\n\nvar addSavedUICustomChoices = function addSavedUICustomChoices(choices) {\n choices.forEach(function (choice) {\n return addChoice(choice, choice);\n });\n};\n/**\n * @function initQueryParamSelections\n * @description If a saved term exists, fire a click event on that item to add it to the search bar and state object.\n * @param terms\n */\n\n\nvar initQueryParamSelections = function initQueryParamSelections(terms) {\n if (!terms) {\n return;\n }\n\n terms.forEach(function (slug) {\n var listLink = tools.getNodes(\"[data-slug=\\\"\".concat(slug, \"\\\"]\"), false, el.linkList, true)[0];\n var listParent = tools.closest(listLink, '[data-js=\"bcqb-parent-list-item\"]:not(.active)');\n handleLinks(listLink);\n\n if (slug[0] && listParent) {\n var header = tools.getNodes('bcqb-has-child-list', false, listParent)[0];\n var content = header.nextElementSibling;\n (0, _delay2.default)(function () {\n return openChildMenu(header, content);\n }, state.delaySpeed);\n }\n });\n};\n/**\n * @function setShortcodeState\n * @description When the UI dialog is triggered, reset the UI and, if applicable, populate it with saved state data.\n * @param event\n */\n\n\nvar setShortcodeState = function setShortcodeState(event) {\n if (!event.detail.params) {\n return;\n }\n\n var currentBlockParams = event.detail.params;\n clearSearch();\n (0, _entries.default)(currentBlockParams).forEach(function (_ref) {\n var _ref2 = (0, _slicedToArray2.default)(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n switch (key) {\n case 'brand':\n case 'category':\n initQueryParamSelections((0, _toConsumableArray2.default)(value.split(',')));\n break;\n\n case 'featured':\n case 'sale':\n case 'recent':\n initQueryParamSelections([key]);\n break;\n\n case 'search':\n addSavedUICustomChoices((0, _toConsumableArray2.default)(value.split(',')));\n break;\n\n default:\n break;\n }\n });\n (0, _delay2.default)(function () {\n return (0, _events.trigger)({\n event: 'bigcommerce/shortcode_ui_state_ready',\n native: false\n });\n }, state.delaySpeed);\n};\n\nvar cacheElements = function cacheElements() {\n el.dialog = tools.getNodes('bc-shortcode-ui-products', false, document, false)[0];\n el.linkList = tools.getNodes('bcqb-list')[0];\n el.searchForm = tools.getNodes('bc-shortcode-ui-search', false, el.dialog, false)[0];\n};\n\nvar bindEvents = function bindEvents() {\n el.searchInput = new _choices.default('.bc-shortcode-ui__search-input', {\n removeItemButton: true,\n duplicateItems: false\n });\n (0, _delegate.default)(el.linkList, '[data-js=\"bcqb-has-child-list\"]', 'click', toggleChildMenu);\n (0, _delegate.default)(el.linkList, '.bc-shortcode-ui__query-builder-anchor', 'click', handleLinks);\n el.searchInput.passedElement.addEventListener('removeItem', handleChoiceRemoval);\n el.searchInput.passedElement.addEventListener('addItem', handleChoiceAddition);\n (0, _delegate.default)('[data-js=\"bcqb-clear\"]', 'click', clearSearch);\n (0, _events.on)(document, 'bigcommerce/set_shortcode_ui_state', setShortcodeState);\n (0, _events.on)(document, 'bigcommerce/remove_query_term', handleChoiceRemoval);\n};\n\nvar init = function init() {\n cacheElements();\n bindEvents();\n};\n\nvar _default = init;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL3Nob3J0Y29kZS11aS9xdWVyeS1idWlsZGVyLmpzP2I0YjAiXSwibmFtZXMiOlsiZWwiLCJzdGF0ZSIsInNsaWRlU3BlZWQiLCJkZWxheVNwZWVkIiwib3BlbkNoaWxkTWVudSIsImhlYWRlciIsImNvbnRlbnQiLCJ0b29scyIsImFkZENsYXNzIiwicGFyZW50Tm9kZSIsInNsaWRlIiwiZG93biIsImNsb3NlQ2hpbGRNZW51IiwicmVtb3ZlQ2xhc3MiLCJ1cCIsInRvZ2dsZUNoaWxkTWVudSIsImUiLCJkZWxlZ2F0ZVRhcmdldCIsIm5leHRFbGVtZW50U2libGluZyIsImhhc0NsYXNzIiwiYnVpbGRRdWVyeU9iamVjdCIsImtleSIsInZhbHVlIiwid3BBUElRdWVyeU9iaiIsInNlYXJjaCIsInB1c2giLCJyZWR1Y2VRdWVyeU9iamVjdCIsInZhbEluZGV4IiwiaW5kZXhPZiIsInNwbGljZSIsImFkZENob2ljZSIsImxhYmVsIiwic2VhcmNoSW5wdXQiLCJzZXRWYWx1ZSIsImV2ZW50IiwiZGF0YSIsIm5hdGl2ZSIsInJlbW92ZUNob2ljZSIsInJlbW92ZUl0ZW1zQnlWYWx1ZSIsImhhbmRsZUNob2ljZUFkZGl0aW9uIiwiZGV0YWlsIiwiaGFuZGxlQ2hvaWNlUmVtb3ZhbCIsImxpbmsiLCJnZXROb2RlcyIsImxpbmtMaXN0IiwiZnJvbVNldHRpbmdzIiwiY2xhc3NMaXN0IiwiY29udGFpbnMiLCJkYXRhc2V0IiwicmVtb3ZlIiwiaGFuZGxlTGlua3MiLCJlbGVtZW50IiwidGV4dCIsInRvZ2dsZSIsInNldEF0dHJpYnV0ZSIsImNsZWFyU2VhcmNoIiwiY2xlYXJTdG9yZSIsImJpZ2NvbW1lcmNlX2ZsYWciLCJiaWdjb21tZXJjZV9icmFuZCIsImJpZ2NvbW1lcmNlX2NhdGVnb3J5IiwicmVjZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJhZGRTYXZlZFVJQ3VzdG9tQ2hvaWNlcyIsImNob2ljZXMiLCJjaG9pY2UiLCJpbml0UXVlcnlQYXJhbVNlbGVjdGlvbnMiLCJ0ZXJtcyIsInNsdWciLCJsaXN0TGluayIsImxpc3RQYXJlbnQiLCJjbG9zZXN0Iiwic2V0U2hvcnRjb2RlU3RhdGUiLCJwYXJhbXMiLCJjdXJyZW50QmxvY2tQYXJhbXMiLCJzcGxpdCIsImNhY2hlRWxlbWVudHMiLCJkaWFsb2ciLCJkb2N1bWVudCIsInNlYXJjaEZvcm0iLCJiaW5kRXZlbnRzIiwicmVtb3ZlSXRlbUJ1dHRvbiIsImR1cGxpY2F0ZUl0ZW1zIiwicGFzc2VkRWxlbWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJpbml0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLElBQU1BLEtBQUssRUFBWDtBQUVBLElBQU1DLFFBQVE7QUFDYkMsY0FBWSxHQURDO0FBRWJDLGNBQVk7QUFGQyxDQUFkO0FBS0E7Ozs7O0FBSUEsSUFBTUMsZ0JBQWdCLFNBQWhCQSxhQUFnQixDQUFDQyxNQUFELEVBQVNDLE9BQVQsRUFBcUI7QUFDMUNDLFFBQU1DLFFBQU4sQ0FBZUgsT0FBT0ksVUFBdEIsRUFBa0MsUUFBbEM7QUFDQSw2Q0FBdUJKLE1BQXZCLEVBQStCQyxPQUEvQjtBQUNBSSxRQUFNQyxJQUFOLENBQVdMLE9BQVgsRUFBb0JMLE1BQU1DLFVBQTFCO0FBQ0EsQ0FKRDtBQU1BOzs7Ozs7QUFJQSxJQUFNVSxpQkFBaUIsU0FBakJBLGNBQWlCLENBQUNQLE1BQUQsRUFBU0MsT0FBVCxFQUFxQjtBQUMzQ0MsUUFBTU0sV0FBTixDQUFrQlIsT0FBT0ksVUFBekIsRUFBcUMsUUFBckM7QUFDQSwrQ0FBeUJKLE1BQXpCLEVBQWlDQyxPQUFqQztBQUNBSSxRQUFNSSxFQUFOLENBQVNSLE9BQVQsRUFBa0JMLE1BQU1DLFVBQXhCO0FBQ0EsQ0FKRDtBQU1BOzs7Ozs7O0FBS0EsSUFBTWEsa0JBQWtCLFNBQWxCQSxlQUFrQixD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Q0FBOEMsWUFBOUMsRUFBNEQzQyxtQkFBNUQ7QUFDQXpDLEtBQUdnQyxXQUFILENBQWVtRCxhQUFmLENBQTZCQyxnQkFBN0IsQ0FBOEMsU0FBOUMsRUFBeUQ3QyxvQkFBekQ7QUFDQSx5QkFBUyx3QkFBVCxFQUFtQyxPQUFuQyxFQUE0Q2dCLFdBQTVDO0FBQ0Esa0JBQUd1QixRQUFILEVBQWEsb0NBQWIsRUFBbUROLGlCQUFuRDtBQUNBLGtCQUFHTSxRQUFILEVBQWEsK0JBQWIsRUFBOENyQyxtQkFBOUM7QUFDQSxDQWJEOztBQWVBLElBQU00QyxPQUFPLFNBQVBBLElBQU8sR0FBTTtBQUNsQlQ7QUFDQUk7QUFDQSxDQUhEOztlQUtlSyxJIiwiZmlsZSI6IjEyNy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBQcm9kdWN0IFF1ZXJ5IEJ1aWxkZXJcbiAqIEBkZXNjcmlwdGlvbiBVc2luZyB0aGUgbGlua3MgbGlzdCwgYW5kIGRpcmVjdCB0ZXh0IGVudHJ5LCBhZGQgcXVlcnkgdmFycyB0byB0aGUgc2VhcmNoIGZpZWxkLlxuICovXG5cbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgZGVsZWdhdGUgZnJvbSAnZGVsZWdhdGUnO1xuaW1wb3J0IENob2ljZXMgZnJvbSAnY2hvaWNlcy5qcyc7XG5pbXBvcnQgKiBhcyB0b29scyBmcm9tICcuLi8uLi91dGlscy90b29scyc7XG5pbXBvcnQgKiBhcyBzbGlkZSBmcm9tICcuLi8uLi91dGlscy9kb20vc2xpZGUnO1xuaW1wb3J0IHsgc2V0QWNjQWN0aXZlQXR0cmlidXRlcywgc2V0QWNjSW5hY3RpdmVBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvZG9tL2FjY2Vzc2liaWxpdHknO1xuaW1wb3J0IHNob3J0Y29kZVN0YXRlIGZyb20gJy4uL2NvbmZpZy9zaG9ydGNvZGUtc3RhdGUnO1xuaW1wb3J0IHsgb24sIHRyaWdnZXIgfSBmcm9tICcuLi8uLi91dGlscy9ldmVudHMnO1xuXG5jb25zdCBlbCA9IHt9O1xuXG5jb25zdCBzdGF0ZSA9IHtcblx0c2xpZGVTcGVlZDogMTUwLFxuXHRkZWxheVNwZWVkOiAxMDAsXG59O1xuXG4vKipcbiAqIEBmdW5jdGlvbiBvcGVuQ2hpbGRNZW51XG4gKiBAZGVzY3JpcHRpb24gVG9nZ2xlIHRoZSBhY2NvcmRpb24gb3BlblxuICovXG5jb25zdCBvcGVuQ2hpbGRNZW51ID0gKGhlYWRlciwgY29udGVudCkgPT4ge1xuXHR0b29scy5hZGRDbGFzcyhoZWFkZXIucGFyZW50Tm9kZSwgJ2FjdGl2ZScpO1xuXHRzZXRBY2NBY3RpdmVBdHRyaWJ1dGVzKGhlYWRlciwgY29udGVudCk7XG5cdHNsaWRlLmRvd24oY29udGVudCwgc3RhdGUuc2xpZGVTcGVlZCk7XG59O1xuXG4vKipcbiAqIEBmdW5jdGlvbiBjbG9zZUNoaWxkTWVudVxuICogQGRlc2NyaXB0aW9uIFRvZ2dsZSB0aGUgYWNjb3JkaW9uIGNsb3NlZFxuICovXG5jb25zdCBjbG9zZUNoaWxkTWVudSA9IChoZWFkZXIsIGNvbnRlbnQpID0+IHtcblx0dG9vbHMucmVtb3ZlQ2xhc3MoaGVhZGVyLnBhcmVudE5vZGUsICdhY3RpdmUnKTtcblx0c2V0QWNjSW5hY3RpdmVBdHRyaWJ1dGVzKGhlYWRlciwgY29udGVudCk7XG5cdHNsaWRlLnVwKGNvbnRlbnQsIHN0YXRlLnNsaWRlU3BlZWQpO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gdG9nZ2xlQ2hpbGRNZW51XG4gKiBAZGVzY3JpcHRpb24gVG9nZ2xlIGNoaWxkIG1lbnUgbGlzdHMuXG4gKiBAcGFyYW0gZSBldmVudFxuICovXG5jb25zdCB0b2dnbGVDaGlsZE1lbnUgPSAoZSkgPT4ge1xuXHRjb25zdCBoZWFkZXIgPSBlLmRlbGVnYXRlVGFyZ2V0O1xuXHRjb25zdCBjb250ZW50ID0gaGVhZGVyLm5leHRFbGVtZW50U2libGluZztcblxuXHRpZiAodG9vbHMuaGFzQ2xhc3MoaGVhZGVyLnBhcmVudE5vZGUsICdhY3RpdmUnKSkge1xuXHRcdGNsb3NlQ2hpbGRNZW51KGhlYWRlciwgY29udGVudCk7XG5cdH0gZWxzZSB7XG5cdFx0b3BlbkNoaWxkTWVudShoZWFkZXIsIGNvbnRlbnQpO1xuXHR9XG59O1xuXG4vKipcbiAqIEBmdW5jdGlvbiBidWlsZFF1ZXJ5T2JqZWN0XG4gKiBAZGVzY3JpcHRpb24gYWRkIG5ldyB2YWx1ZXMgdG8gdGhlIHdwQVBJUXVlcnlPYmpcbiAqIEBwYXJhbSBrZXkgc3RyaW5nXG4gKiBAcGFyYW0gdmFsdWUgc3RyaW5nXG4gKi9cbmNvbnN0IGJ1aWxkUXVlcnlPYmplY3QgPSAoa2V5ID0gJycsIHZhbHVlKSA9PiB7XG5cdGlmICgha2V5KSB7XG5cdFx0c2hvcnRjb2RlU3RhdGUud3BBUElRdWVyeU9iai5zZWFyY2gucHVzaCh2YWx1ZSk7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0c2hvcnRjb2RlU3RhdGUud3BBUElRdWVyeU9ialtrZXldLnB1c2godmFsdWUpO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gcmVkdWNlUXVlcnlPYmplY3RcbiAqIEBkZXNjcmlwdGlvbiByZW1vdmUgZXhpc3RpbmcgdmFsdWVzIGZyb20gdGhlIHdwQVBJUXVlcnlPYmpcbiAqIEBwYXJhbSBrZXkgc3RyaW5nXG4gKiBAcGFyYW0gdmFsdWUgc3RyaW5nXG4gKi9cbmNvbnN0IHJlZHVjZVF1ZXJ5T2JqZWN0ID0gKGtleSwgdmFsdWUpID0+IHtcblx0bGV0IHZhbEluZGV4ID0gJyc7XG5cblx0aWYgKCFrZXkpIHtcblx0XHR2YWxJbmRleCA9IHNob3J0Y29kZVN0YXRlLndwQVBJUXVlcnlPYmouc2VhcmNoLmluZGV4T2YodmFsdWUpO1xuXHRcdHNob3J0Y29kZVN0YXRlLndwQVBJUXVlcnlPYmouc2VhcmNoLnNwbGljZSh2YWxJbmRleCwgMSk7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0dmFsSW5kZXggPSBzaG9ydGNvZGVTdGF0ZS53cEFQSVF1ZXJ5T2JqW2tleV0uaW5kZXhPZih2YWx1ZSk7XG5cdHNob3J0Y29kZVN0YXRlLndwQVBJUXVlcnlPYmpba2V5XS5zcGxpY2UodmFsSW5kZXgsIDEpO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gYWRkQ2hvaWNlXG4gKiBAZGVzY3JpcHRpb24gYWRkIGEgY2hvaWNlIHRvIHRoZSBzZWFyY2ggcXVlcnkuXG4gKi9cbmNvbnN0IGFkZENob2ljZSA9ICh2YWx1ZSwgbGFiZWwpID0+IHtcblx0ZWwuc2VhcmNoSW5wdXQuc2V0VmFsdWUoW1xuXHRcdHtcblx0XHRcdHZhbHVlLFxuXHRcdFx0bGFiZWwsXG5cdFx0fSxcblx0XSk7XG5cblx0dHJpZ2dlcih7IGV2ZW50OiAnYmlnY29tbWVyY2Uvc2hvcnRjb2RlX3F1ZXJ5X3Rlcm1fYWRkZWQnLCBkYXRhOiB7IHZhbHVlLCBsYWJlbCB9LCBuYXRpdmU6IGZhbHNlIH0pO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gcmVtb3ZlQ2hvaWNlXG4gKiBAZGVzY3JpcHRpb24gcmVtb3ZlIGEgY2hvaWNlIGZyb20gdGhlIHNlYXJjaCBxdWVyeS5cbiAqL1xuY29uc3QgcmVtb3ZlQ2hvaWNlID0gKHZhbHVlKSA9PiB7XG5cdGVsLnNlYXJjaElucHV0LnJlbW92ZUl0ZW1zQnlWYWx1ZSh2YWx1ZSk7XG5cdHRyaWdnZXIoeyBldmVudDogJ2JpZ2NvbW1lcmNlL3Nob3J0Y29kZV9xdWVyeV90ZXJtX3JlbW92ZWQnLCBkYXRhOiB7IHZhbHVlIH0sIG5hdGl2ZTogZmFsc2UgfSk7XG59O1xuXG4vKipcbiAqIEBmdW5jdGlvbiBoYW5kbGVDaG9pY2VBZGRpdGlvblxuICogQGRlc2NyaXB0aW9uIHJ1biBzcGVjaWFsIGZ1bmN0aW9uYWxpdHkgYmFzZWQgb24gYWRkSXRlbSBldmVudCBpbiBDaG9pY2VzLmpzXG4gKiBAcGFyYW0gZSBldmVudCBvYmplY3QgY3JlYXRlZCBieSBhZGRJdGVtXG4gKi9cbmNvbnN0IGhhbmRsZUNob2ljZUFkZGl0aW9uID0gKGUpID0+IHtcblx0aWYgKGUuZGV0YWlsLnZhbHVlID09PSBlLmRldGFpbC5sYWJlbCkge1xuXHRcdGJ1aWxkUXVlcnlPYmplY3QoJycsIGUuZGV0YWlsLnZhbHVlKTtcblx0XHR0cmlnZ2VyKHsgZXZlbnQ6ICdiaWdjb21tZXJjZS9zaG9ydGNvZGVfcXVlcnlfdGVybV9hZGRlZCcsIGRhdGE6IHsgdmFsdWU6IGUuZGV0YWlsLnZhbHVlLCBsYWJlbDogZS5kZXRhaWwubGFiZWwgfSwgbmF0aXZlOiBmYWxzZSB9KTtcblx0fVxufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gaGFuZGxlQ2hvaWNlUmVtb3ZhbFxuICogQGRlc2NyaXB0aW9uIHJ1biBzcGVjaWFsIGZ1bmN0aW9uYWxpdHkgYmFzZWQgb24gcmVtb3ZlSXRlbSBldmVudCBpbiBDaG9pY2VzLmpzXG4gKiBAcGFyYW0gZSBldmVudCBvYmplY3QgY3JlYXRlZCBieSByZW1vdmVJdGVtXG4gKi9cbmNvbnN0IGhhbmRsZUNob2ljZVJlbW92YWwgPSAoZSkgPT4ge1xuXHRjb25zdCB2YWx1ZSA9IGUuZGV0YWlsLnZhbHVlO1xuXHRjb25zdCBsaW5rID0gdG9vbHMuZ2V0Tm9kZXMoYFtkYXRhLXZhbHVlPVwiJHt2YWx1ZX1cIl1gLCBmYWxzZSwgZWwubGlua0xpc3QsIHRydWUpWzBdO1xuXHR0cmlnZ2VyKHsgZXZlbnQ6ICdiaWdjb21tZXJjZS9zaG9ydGNvZGVfcXVlcnlfdGVybV9yZW1vdmVkJywgZGF0YTogeyB2YWx1ZSB9LCBuYXRpdmU6IGZhbHNlIH0pO1xuXG5cdGlmIChlLmRldGFpbC5mcm9tU2V0dGluZ3MpIHtcblx0XHRyZW1vdmVDaG9pY2UodmFsdWUpO1xuXHR9XG5cblx0aWYgKCFsaW5rKSB7XG5cdFx0cmVkdWNlUXVlcnlPYmplY3QoJycsIHZhbHVlKTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAobGluayAmJiBsaW5rLmNsYXNzTGlzdC5jb250YWlucygnYmNxYi1pdGVtLXNlbGVjdGVkJykpIHtcblx0XHRjb25zdCBrZXkgPSBsaW5rLmRhdGFzZXQua2V5O1xuXG5cdFx0bGluay5jbGFzc0xpc3QucmVtb3ZlKCdiY3FiLWl0ZW0tc2VsZWN0ZWQnKTtcblx0XHRyZWR1Y2VRdWVyeU9iamVjdChrZXksIHZhbHVlKTtcblx0fVxufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gaGFuZGxlTGlua3NcbiAqIEBkZXNjcmlwdGlvbiBIYW5kbGUgdGhlIGxpbmsgY2xpY2sgZXZlbnQgYW5kIGFkZC9yZW1vdmUgaXRlbXMgZnJvbSB0aGUgc2VhcmNoIHF1ZXJ5LlxuICogQHBhcmFtIGUgZXZlbnRcbiAqL1xuY29uc3QgaGFuZGxlTGlua3MgPSAoZSkgPT4ge1xuXHRjb25zdCBlbGVtZW50ID0gZS5kZWxlZ2F0ZVRhcmdldCA/IGUuZGVsZWdhdGVUYXJnZXQgOiBlO1xuXHRjb25zdCBrZXkgPSBlLmRlbGVnYXRlVGFyZ2V0ID8gZS5kZWxlZ2F0ZVRhcmdldC5kYXRhc2V0LmtleSA6IGUuZGF0YXNldC5rZXk7XG5cdGNvbnN0IHZhbHVlID0gZS5kZWxlZ2F0ZVRhcmdldCA/IGUuZGVsZWdhdGVUYXJnZXQuZGF0YXNldC52YWx1ZSA6IGUuZGF0YXNldC52YWx1ZTtcblx0Y29uc3QgbGFiZWwgPSBlLmRlbGVnYXRlVGFyZ2V0ID8gZS5kZWxlZ2F0ZVRhcmdldC50ZXh0IDogZS50ZXh0O1xuXG5cdGVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgnYmNxYi1pdGVtLXNlbGVjdGVkJyk7XG5cblx0aWYgKGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdiY3FiLWl0ZW0tc2VsZWN0ZWQnKSkge1xuXHRcdGFkZENob2ljZSh2YWx1ZSwgbGFiZWwpO1xuXHRcdGJ1aWxkUXVlcnlPYmplY3Qoa2V5LCB2YWx1ZSk7XG5cdFx0ZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCAndHJ1ZScpO1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLXNlbGVjdGVkJywgJ2ZhbHNlJyk7XG5cdHJlbW92ZUNob2ljZSh2YWx1ZSk7XG5cdHJlZHVjZVF1ZXJ5T2JqZWN0KGtleSwgdmFsdWUpO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gY2xlYXJTZWFyY2hcbiAqIEBkZXNjcmlwdGlvbiBjbGVhciBhbGwgY2hvaWNlcyBmcm9tIHRoZSBzZWFyY2ggaW5wdXQgYW5kIHJlc2V0IGxpbmtzIGFuZCBvYmplY3RzLlxuICovXG5jb25zdCBjbGVhclNlYXJjaCA9ICgpID0+IHtcblx0ZWwuc2VhcmNoSW5wdXQuY2xlYXJTdG9yZSgpO1xuXHRzaG9ydGNvZGVTdGF0ZS53cEFQSVF1ZXJ5T2JqID0ge1xuXHRcdGJpZ2NvbW1lcmNlX2ZsYWc6IFtdLFxuXHRcdGJpZ2NvbW1lcmNlX2JyYW5kOiBbXSxcblx0XHRiaWdjb21tZXJjZV9jYXRlZ29yeTogW10sXG5cdFx0cmVjZW50OiBbXSxcblx0XHRzZWFyY2g6IFtdLFxuXHR9O1xuXG5cdGVsLmxpbmtMaXN0LnF1ZXJ5U2VsZWN0b3JBbGwoJy5iY3FiLWl0ZW0tc2VsZWN0ZWQnKS5mb3JFYWNoKChsaW5rKSA9PiB7XG5cdFx0bGluay5jbGFzc0xpc3QucmVtb3ZlKCdiY3FiLWl0ZW0tc2VsZWN0ZWQnKTtcblx0fSk7XG59O1xuXG4vKipcbiAqIEBmdW5jdGlvbiBhZGRTYXZlZFVJQ3VzdG9tQ2hvaWNlc1xuICogQGRlc2NyaXB0aW9uIEFkZCBjdXN0b20gc2VhcmNoL3F1ZXJ5IHRlcm1zIHRvIHRoZSBzZWFyY2ggZmllbGQgYmVmb3JlIHJ1bm5pbmcgdGhlIHF1ZXJ5LlxuICogQHBhcmFtIGNob2ljZXNcbiAqL1xuY29uc3QgYWRkU2F2ZWRVSUN1c3RvbUNob2ljZXMgPSAoY2hvaWNlcykgPT4ge1xuXHRjaG9pY2VzLmZvckVhY2goY2hvaWNlID0+IGFkZENob2ljZShjaG9pY2UsIGNob2ljZSkpO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gaW5pdFF1ZXJ5UGFyYW1TZWxlY3Rpb25zXG4gKiBAZGVzY3JpcHRpb24gSWYgYSBzYXZlZCB0ZXJtIGV4aXN0cywgZmlyZSBhIGNsaWNrIGV2ZW50IG9uIHRoYXQgaXRlbSB0byBhZGQgaXQgdG8gdGhlIHNlYXJjaCBiYXIgYW5kIHN0YXRlIG9iamVjdC5cbiAqIEBwYXJhbSB0ZXJtc1xuICovXG5jb25zdCBpbml0UXVlcnlQYXJhbVNlbGVjdGlvbnMgPSAodGVybXMpID0+IHtcblx0aWYgKCF0ZXJtcykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHRlcm1zLmZvckVhY2goKHNsdWcpID0+IHtcblx0XHRjb25zdCBsaXN0TGluayA9IHRvb2xzLmdldE5vZGVzKGBbZGF0YS1zbHVnPVwiJHtzbHVnfVwiXWAsIGZhbHNlLCBlbC5saW5rTGlzdCwgdHJ1ZSlbMF07XG5cdFx0Y29uc3QgbGlzdFBhcmVudCA9IHRvb2xzLmNsb3Nlc3QobGlzdExpbmssICdbZGF0YS1qcz1cImJjcWItcGFyZW50LWxpc3QtaXRlbVwiXTpub3QoLmFjdGl2ZSknKTtcblxuXHRcdGhhbmRsZUxpbmtzKGxpc3RMaW5rKTtcblxuXHRcdGlmIChzbHVnWzBdICYmIGxpc3RQYXJlbnQpIHtcblx0XHRcdGNvbnN0IGhlYWRlciA9IHRvb2xzLmdldE5vZGVzKCdiY3FiLWhhcy1jaGlsZC1saXN0JywgZmFsc2UsIGxpc3RQYXJlbnQpWzBdO1xuXHRcdFx0Y29uc3QgY29udGVudCA9IGhlYWRlci5uZXh0RWxlbWVudFNpYmxpbmc7XG5cdFx0XHRfLmRlbGF5KCgpID0+IG9wZW5DaGlsZE1lbnUoaGVhZGVyLCBjb250ZW50KSwgc3RhdGUuZGVsYXlTcGVlZCk7XG5cdFx0fVxuXHR9KTtcbn07XG5cbi8qKlxuICogQGZ1bmN0aW9uIHNldFNob3J0Y29kZVN0YXRlXG4gKiBAZGVzY3JpcHRpb24gV2hlbiB0aGUgVUkgZGlhbG9nIGlzIHRyaWdnZXJlZCwgcmVzZXQgdGhlIFVJIGFuZCwgaWYgYXBwbGljYWJsZSwgcG9wdWxhdGUgaXQgd2l0aCBzYXZlZCBzdGF0ZSBkYXRhLlxuICogQHBhcmFtIGV2ZW50XG4gKi9cbmNvbnN0IHNldFNob3J0Y29kZVN0YXRlID0gKGV2ZW50KSA9PiB7XG5cdGlmICghZXZlbnQuZGV0YWlsLnBhcmFtcykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IGN1cnJlbnRCbG9ja1BhcmFtcyA9IGV2ZW50LmRldGFpbC5wYXJhbXM7XG5cblx0Y2xlYXJTZWFyY2goKTtcblxuXHRPYmplY3QuZW50cmllcyhjdXJyZW50QmxvY2tQYXJhbXMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuXHRcdHN3aXRjaCAoa2V5KSB7XG5cdFx0Y2FzZSAnYnJhbmQnOlxuXHRcdGNhc2UgJ2NhdGVnb3J5Jzpcblx0XHRcdGluaXRRdWVyeVBhcmFtU2VsZWN0aW9ucyhbLi4udmFsdWUuc3BsaXQoJywnKV0pO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSAnZmVhdHVyZWQnOlxuXHRcdGNhc2UgJ3NhbGUnOlxuXHRcdGNhc2UgJ3JlY2VudCc6XG5cdFx0XHRpbml0UXVlcnlQYXJhbVNlbGVjdGlvbnMoW2tleV0pO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSAnc2VhcmNoJzpcblx0XHRcdGFkZFNhdmVkVUlDdXN0b21DaG9pY2VzKFsuLi52YWx1ZS5zcGxpdCgnLCcpXSk7XG5cdFx0XHRicmVhaztcblx0XHRkZWZhdWx0OlxuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9KTtcblxuXHRfLmRlbGF5KCgpID0+IHRyaWdnZXIoeyBldmVudDogJ2JpZ2NvbW1lcmNlL3Nob3J0Y29kZV91aV9zdGF0ZV9yZWFkeScsIG5hdGl2ZTogZmFsc2UgfSksIHN0YXRlLmRlbGF5U3BlZWQpO1xufTtcblxuY29uc3QgY2FjaGVFbGVtZW50cyA9ICgpID0+IHtcblx0ZWwuZGlhbG9nID0gdG9vbHMuZ2V0Tm9kZXMoJ2JjLXNob3J0Y29kZS11aS1wcm9kdWN0cycsIGZhbHNlLCBkb2N1bWVudCwgZmFsc2UpWzBdO1xuXHRlbC5saW5rTGlzdCA9IHRvb2xzLmdldE5vZGVzKCdiY3FiLWxpc3QnKVswXTtcblx0ZWwuc2VhcmNoRm9ybSA9IHRvb2xzLmdldE5vZGVzKCdiYy1zaG9ydGNvZGUtdWktc2VhcmNoJywgZmFsc2UsIGVsLmRpYWxvZywgZmFsc2UpWzBdO1xufTtcblxuY29uc3QgYmluZEV2ZW50cyA9ICgpID0+IHtcblx0ZWwuc2VhcmNoSW5wdXQgPSBuZXcgQ2hvaWNlcygnLmJjLXNob3J0Y29kZS11aV9fc2VhcmNoLWlucHV0Jywge1xuXHRcdHJlbW92ZUl0ZW1CdXR0b246IHRydWUsXG5cdFx0ZHVwbGljYXRlSXRlbXM6IGZhbHNlLFxuXHR9KTtcblxuXHRkZWxlZ2F0ZShlbC5saW5rTGlzdCwgJ1tkYXRhLWpzPVwiYmNxYi1oYXMtY2hpbGQtbGlzdFwiXScsICdjbGljaycsIHRvZ2dsZUNoaWxkTWVudSk7XG5cdGRlbGVnYXRlKGVsLmxpbmtMaXN0LCAnLmJjLXNob3J0Y29kZS11aV9fcXVlcnktYnVpbGRlci1hbmNob3InLCAnY2xpY2snLCBoYW5kbGVMaW5rcyk7XG5cdGVsLnNlYXJjaElucHV0LnBhc3NlZEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncmVtb3ZlSXRlbScsIGhhbmRsZUNob2ljZVJlbW92YWwpO1xuXHRlbC5zZWFyY2hJbnB1dC5wYXNzZWRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2FkZEl0ZW0nLCBoYW5kbGVDaG9pY2VBZGRpdGlvbik7XG5cdGRlbGVnYXRlKCdbZGF0YS1qcz1cImJjcWItY2xlYXJcIl0nLCAnY2xpY2snLCBjbGVhclNlYXJjaCk7XG5cdG9uKGRvY3VtZW50LCAnYmlnY29tbWVyY2Uvc2V0X3Nob3J0Y29kZV91aV9zdGF0ZScsIHNldFNob3J0Y29kZVN0YXRlKTtcblx0b24oZG9jdW1lbnQsICdiaWdjb21tZXJjZS9yZW1vdmVfcXVlcnlfdGVybScsIGhhbmRsZUNob2ljZVJlbW92YWwpO1xufTtcblxuY29uc3QgaW5pdCA9ICgpID0+IHtcblx0Y2FjaGVFbGVtZW50cygpO1xuXHRiaW5kRXZlbnRzKCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBpbml0O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL2pzL3NyYy9hZG1pbi9zaG9ydGNvZGUtdWkvcXVlcnktYnVpbGRlci5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///127\n"); +eval("\n\nvar _interopRequireWildcard = __webpack_require__(8);\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(128);\n\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(140));\n\nvar _slicedToArray2 = _interopRequireDefault(__webpack_require__(54));\n\nvar _entries = _interopRequireDefault(__webpack_require__(56));\n\n__webpack_require__(87);\n\nvar _delay2 = _interopRequireDefault(__webpack_require__(26));\n\nvar _delegate = _interopRequireDefault(__webpack_require__(23));\n\nvar _choices = _interopRequireDefault(__webpack_require__(167));\n\nvar tools = _interopRequireWildcard(__webpack_require__(12));\n\nvar slide = _interopRequireWildcard(__webpack_require__(168));\n\nvar _accessibility = __webpack_require__(170);\n\nvar _shortcodeState = _interopRequireDefault(__webpack_require__(4));\n\nvar _events = __webpack_require__(13);\n\nvar el = {};\nvar state = {\n slideSpeed: 150,\n delaySpeed: 100\n};\n/**\n * @function openChildMenu\n * @description Toggle the accordion open\n */\n\nvar openChildMenu = function openChildMenu(header, content) {\n tools.addClass(header.parentNode, 'active');\n (0, _accessibility.setAccActiveAttributes)(header, content);\n slide.down(content, state.slideSpeed);\n};\n/**\n * @function closeChildMenu\n * @description Toggle the accordion closed\n */\n\n\nvar closeChildMenu = function closeChildMenu(header, content) {\n tools.removeClass(header.parentNode, 'active');\n (0, _accessibility.setAccInactiveAttributes)(header, content);\n slide.up(content, state.slideSpeed);\n};\n/**\n * @function toggleChildMenu\n * @description Toggle child menu lists.\n * @param e event\n */\n\n\nvar toggleChildMenu = function toggleChildMenu(e) {\n var header = e.delegateTarget;\n var content = header.nextElementSibling;\n\n if (tools.hasClass(header.parentNode, 'active')) {\n closeChildMenu(header, content);\n } else {\n openChildMenu(header, content);\n }\n};\n/**\n * @function buildQueryObject\n * @description add new values to the wpAPIQueryObj\n * @param key string\n * @param value string\n */\n\n\nvar buildQueryObject = function buildQueryObject() {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var value = arguments.length > 1 ? arguments[1] : undefined;\n\n if (!key) {\n _shortcodeState.default.wpAPIQueryObj.search.push(value);\n\n return;\n }\n\n _shortcodeState.default.wpAPIQueryObj[key].push(value);\n};\n/**\n * @function reduceQueryObject\n * @description remove existing values from the wpAPIQueryObj\n * @param key string\n * @param value string\n */\n\n\nvar reduceQueryObject = function reduceQueryObject(key, value) {\n var valIndex = '';\n\n if (!key) {\n valIndex = _shortcodeState.default.wpAPIQueryObj.search.indexOf(value);\n\n _shortcodeState.default.wpAPIQueryObj.search.splice(valIndex, 1);\n\n return;\n }\n\n valIndex = _shortcodeState.default.wpAPIQueryObj[key].indexOf(value);\n\n _shortcodeState.default.wpAPIQueryObj[key].splice(valIndex, 1);\n};\n/**\n * @function addChoice\n * @description add a choice to the search query.\n */\n\n\nvar addChoice = function addChoice(value, label) {\n el.searchInput.setValue([{\n value: value,\n label: label\n }]);\n (0, _events.trigger)({\n event: 'bigcommerce/shortcode_query_term_added',\n data: {\n value: value,\n label: label\n },\n native: false\n });\n};\n/**\n * @function removeChoice\n * @description remove a choice from the search query.\n */\n\n\nvar removeChoice = function removeChoice(value) {\n el.searchInput.removeItemsByValue(value);\n (0, _events.trigger)({\n event: 'bigcommerce/shortcode_query_term_removed',\n data: {\n value: value\n },\n native: false\n });\n};\n/**\n * @function handleChoiceAddition\n * @description run special functionality based on addItem event in Choices.js\n * @param e event object created by addItem\n */\n\n\nvar handleChoiceAddition = function handleChoiceAddition(e) {\n if (e.detail.value === e.detail.label) {\n buildQueryObject('', e.detail.value);\n (0, _events.trigger)({\n event: 'bigcommerce/shortcode_query_term_added',\n data: {\n value: e.detail.value,\n label: e.detail.label\n },\n native: false\n });\n }\n};\n/**\n * @function handleChoiceRemoval\n * @description run special functionality based on removeItem event in Choices.js\n * @param e event object created by removeItem\n */\n\n\nvar handleChoiceRemoval = function handleChoiceRemoval(e) {\n var value = e.detail.value;\n var link = tools.getNodes(\"[data-value=\\\"\".concat(value, \"\\\"]\"), false, el.linkList, true)[0];\n (0, _events.trigger)({\n event: 'bigcommerce/shortcode_query_term_removed',\n data: {\n value: value\n },\n native: false\n });\n\n if (e.detail.fromSettings) {\n removeChoice(value);\n }\n\n if (!link) {\n reduceQueryObject('', value);\n return;\n }\n\n if (link && link.classList.contains('bcqb-item-selected')) {\n var key = link.dataset.key;\n link.classList.remove('bcqb-item-selected');\n reduceQueryObject(key, value);\n }\n};\n/**\n * @function handleLinks\n * @description Handle the link click event and add/remove items from the search query.\n * @param e event\n */\n\n\nvar handleLinks = function handleLinks(e) {\n var element = e.delegateTarget ? e.delegateTarget : e;\n var key = e.delegateTarget ? e.delegateTarget.dataset.key : e.dataset.key;\n var value = e.delegateTarget ? e.delegateTarget.dataset.value : e.dataset.value;\n var label = e.delegateTarget ? e.delegateTarget.text : e.text;\n element.classList.toggle('bcqb-item-selected');\n\n if (element.classList.contains('bcqb-item-selected')) {\n addChoice(value, label);\n buildQueryObject(key, value);\n element.setAttribute('aria-selected', 'true');\n return;\n }\n\n element.setAttribute('aria-selected', 'false');\n removeChoice(value);\n reduceQueryObject(key, value);\n};\n/**\n * @function clearSearch\n * @description clear all choices from the search input and reset links and objects.\n */\n\n\nvar clearSearch = function clearSearch() {\n el.searchInput.clearStore();\n _shortcodeState.default.wpAPIQueryObj = {\n bigcommerce_flag: [],\n bigcommerce_brand: [],\n bigcommerce_category: [],\n recent: [],\n search: []\n };\n el.linkList.querySelectorAll('.bcqb-item-selected').forEach(function (link) {\n link.classList.remove('bcqb-item-selected');\n });\n};\n/**\n * @function addSavedUICustomChoices\n * @description Add custom search/query terms to the search field before running the query.\n * @param choices\n */\n\n\nvar addSavedUICustomChoices = function addSavedUICustomChoices(choices) {\n choices.forEach(function (choice) {\n return addChoice(choice, choice);\n });\n};\n/**\n * @function initQueryParamSelections\n * @description If a saved term exists, fire a click event on that item to add it to the search bar and state object.\n * @param terms\n */\n\n\nvar initQueryParamSelections = function initQueryParamSelections(terms) {\n if (!terms) {\n return;\n }\n\n terms.forEach(function (slug) {\n var listLink = tools.getNodes(\"[data-slug=\\\"\".concat(slug, \"\\\"]\"), false, el.linkList, true)[0];\n var listParent = tools.closest(listLink, '[data-js=\"bcqb-parent-list-item\"]:not(.active)');\n handleLinks(listLink);\n\n if (slug[0] && listParent) {\n var header = tools.getNodes('bcqb-has-child-list', false, listParent)[0];\n var content = header.nextElementSibling;\n (0, _delay2.default)(function () {\n return openChildMenu(header, content);\n }, state.delaySpeed);\n }\n });\n};\n/**\n * @function setShortcodeState\n * @description When the UI dialog is triggered, reset the UI and, if applicable, populate it with saved state data.\n * @param event\n */\n\n\nvar setShortcodeState = function setShortcodeState(event) {\n if (!event.detail.params) {\n return;\n }\n\n var currentBlockParams = event.detail.params;\n clearSearch();\n (0, _entries.default)(currentBlockParams).forEach(function (_ref) {\n var _ref2 = (0, _slicedToArray2.default)(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n switch (key) {\n case 'brand':\n case 'category':\n initQueryParamSelections((0, _toConsumableArray2.default)(value.split(',')));\n break;\n\n case 'featured':\n case 'sale':\n case 'recent':\n initQueryParamSelections([key]);\n break;\n\n case 'search':\n addSavedUICustomChoices((0, _toConsumableArray2.default)(value.split(',')));\n break;\n\n default:\n break;\n }\n });\n (0, _delay2.default)(function () {\n return (0, _events.trigger)({\n event: 'bigcommerce/shortcode_ui_state_ready',\n native: false\n });\n }, state.delaySpeed);\n};\n\nvar cacheElements = function cacheElements() {\n el.dialog = tools.getNodes('bc-shortcode-ui-products', false, document, false)[0];\n el.linkList = tools.getNodes('bcqb-list')[0];\n el.searchForm = tools.getNodes('bc-shortcode-ui-search', false, el.dialog, false)[0];\n};\n\nvar bindEvents = function bindEvents() {\n el.searchInput = new _choices.default('.bc-shortcode-ui__search-input', {\n removeItemButton: true,\n duplicateItems: false\n });\n (0, _delegate.default)(el.linkList, '[data-js=\"bcqb-has-child-list\"]', 'click', toggleChildMenu);\n (0, _delegate.default)(el.linkList, '.bc-shortcode-ui__query-builder-anchor', 'click', handleLinks);\n el.searchInput.passedElement.addEventListener('removeItem', handleChoiceRemoval);\n el.searchInput.passedElement.addEventListener('addItem', handleChoiceAddition);\n (0, _delegate.default)('[data-js=\"bcqb-clear\"]', 'click', clearSearch);\n (0, _events.on)(document, 'bigcommerce/set_shortcode_ui_state', setShortcodeState);\n (0, _events.on)(document, 'bigcommerce/remove_query_term', handleChoiceRemoval);\n};\n\nvar init = function init() {\n cacheElements();\n bindEvents();\n};\n\nvar _default = init;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL3Nob3J0Y29kZS11aS9xdWVyeS1idWlsZGVyLmpzP2I0YjAiXSwibmFtZXMiOlsiZWwiLCJzdGF0ZSIsInNsaWRlU3BlZWQiLCJkZWxheVNwZWVkIiwib3BlbkNoaWxkTWVudSIsImhlYWRlciIsImNvbnRlbnQiLCJ0b29scyIsImFkZENsYXNzIiwicGFyZW50Tm9kZSIsInNsaWRlIiwiZG93biIsImNsb3NlQ2hpbGRNZW51IiwicmVtb3ZlQ2xhc3MiLCJ1cCIsInRvZ2dsZUNoaWxkTWVudSIsImUiLCJkZWxlZ2F0ZVRhcmdldCIsIm5leHRFbGVtZW50U2libGluZyIsImhhc0NsYXNzIiwiYnVpbGRRdWVyeU9iamVjdCIsImtleSIsInZhbHVlIiwid3BBUElRdWVyeU9iaiIsInNlYXJjaCIsInB1c2giLCJyZWR1Y2VRdWVyeU9iamVjdCIsInZhbEluZGV4IiwiaW5kZXhPZiIsInNwbGljZSIsImFkZENob2ljZSIsImxhYmVsIiwic2VhcmNoSW5wdXQiLCJzZXRWYWx1ZSIsImV2ZW50IiwiZGF0YSIsIm5hdGl2ZSIsInJlbW92ZUNob2ljZSIsInJlbW92ZUl0ZW1zQnlWYWx1ZSIsImhhbmRsZUNob2ljZUFkZGl0aW9uIiwiZGV0YWlsIiwiaGFuZGxlQ2hvaWNlUmVtb3ZhbCIsImxpbmsiLCJnZXROb2RlcyIsImxpbmtMaXN0IiwiZnJvbVNldHRpbmdzIiwiY2xhc3NMaXN0IiwiY29udGFpbnMiLCJkYXRhc2V0IiwicmVtb3ZlIiwiaGFuZGxlTGlua3MiLCJlbGVtZW50IiwidGV4dCIsInRvZ2dsZSIsInNldEF0dHJpYnV0ZSIsImNsZWFyU2VhcmNoIiwiY2xlYXJTdG9yZSIsImJpZ2NvbW1lcmNlX2ZsYWciLCJiaWdjb21tZXJjZV9icmFuZCIsImJpZ2NvbW1lcmNlX2NhdGVnb3J5IiwicmVjZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJhZGRTYXZlZFVJQ3VzdG9tQ2hvaWNlcyIsImNob2ljZXMiLCJjaG9pY2UiLCJpbml0UXVlcnlQYXJhbVNlbGVjdGlvbnMiLCJ0ZXJtcyIsInNsdWciLCJsaXN0TGluayIsImxpc3RQYXJlbnQiLCJjbG9zZXN0Iiwic2V0U2hvcnRjb2RlU3RhdGUiLCJwYXJhbXMiLCJjdXJyZW50QmxvY2tQYXJhbXMiLCJzcGxpdCIsImNhY2hlRWxlbWVudHMiLCJkaWFsb2ciLCJkb2N1bWVudCIsInNlYXJjaEZvcm0iLCJiaW5kRXZlbnRzIiwicmVtb3ZlSXRlbUJ1dHRvbiIsImR1cGxpY2F0ZUl0ZW1zIiwicGFzc2VkRWxlbWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJpbml0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLElBQU1BLEtBQUssRUFBWDtBQUVBLElBQU1DLFFBQVE7QUFDYkMsY0FBWSxHQURDO0FBRWJDLGNBQVk7QUFGQyxDQUFkO0FBS0E7Ozs7O0FBSUEsSUFBTUMsZ0JBQWdCLFNBQWhCQSxhQUFnQixDQUFDQyxNQUFELEVBQVNDLE9BQVQsRUFBcUI7QUFDMUNDLFFBQU1DLFFBQU4sQ0FBZUgsT0FBT0ksVUFBdEIsRUFBa0MsUUFBbEM7QUFDQSw2Q0FBdUJKLE1BQXZCLEVBQStCQyxPQUEvQjtBQUNBSSxRQUFNQyxJQUFOLENBQVdMLE9BQVgsRUFBb0JMLE1BQU1DLFVBQTFCO0FBQ0EsQ0FKRDtBQU1BOzs7Ozs7QUFJQSxJQUFNVSxpQkFBaUIsU0FBakJBLGNBQWlCLENBQUNQLE1BQUQsRUFBU0MsT0FBVCxFQUFxQjtBQUMzQ0MsUUFBTU0sV0FBTixDQUFrQlIsT0FBT0ksVUFBekIsRUFBcUMsUUFBckM7QUFDQSwrQ0FBeUJKLE1BQXpCLEVBQWlDQyxPQUFqQztBQUNBSSxRQUFNSSxFQUFOLENBQVNSLE9BQVQsRUFBa0JMLE1BQU1DLFVBQXhCO0FBQ0EsQ0FKRDtBQU1BOzs7Ozs7O0FBS0EsSUFBTWEsa0JBQWtCLFNBQWxCQSxlQUFrQixD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Q0FBOEMsWUFBOUMsRUFBNEQzQyxtQkFBNUQ7QUFDQXpDLEtBQUdnQyxXQUFILENBQWVtRCxhQUFmLENBQTZCQyxnQkFBN0IsQ0FBOEMsU0FBOUMsRUFBeUQ3QyxvQkFBekQ7QUFDQSx5QkFBUyx3QkFBVCxFQUFtQyxPQUFuQyxFQUE0Q2dCLFdBQTVDO0FBQ0Esa0JBQUd1QixRQUFILEVBQWEsb0NBQWIsRUFBbUROLGlCQUFuRDtBQUNBLGtCQUFHTSxRQUFILEVBQWEsK0JBQWIsRUFBOENyQyxtQkFBOUM7QUFDQSxDQWJEOztBQWVBLElBQU00QyxPQUFPLFNBQVBBLElBQU8sR0FBTTtBQUNsQlQ7QUFDQUk7QUFDQSxDQUhEOztlQUtlSyxJIiwiZmlsZSI6IjEyNy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBQcm9kdWN0IFF1ZXJ5IEJ1aWxkZXJcbiAqIEBkZXNjcmlwdGlvbiBVc2luZyB0aGUgbGlua3MgbGlzdCwgYW5kIGRpcmVjdCB0ZXh0IGVudHJ5LCBhZGQgcXVlcnkgdmFycyB0byB0aGUgc2VhcmNoIGZpZWxkLlxuICovXG5cbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgZGVsZWdhdGUgZnJvbSAnZGVsZWdhdGUnO1xuaW1wb3J0IENob2ljZXMgZnJvbSAnY2hvaWNlcy5qcyc7XG5pbXBvcnQgKiBhcyB0b29scyBmcm9tICcuLi8uLi91dGlscy90b29scyc7XG5pbXBvcnQgKiBhcyBzbGlkZSBmcm9tICcuLi8uLi91dGlscy9kb20vc2xpZGUnO1xuaW1wb3J0IHsgc2V0QWNjQWN0aXZlQXR0cmlidXRlcywgc2V0QWNjSW5hY3RpdmVBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvZG9tL2FjY2Vzc2liaWxpdHknO1xuaW1wb3J0IHNob3J0Y29kZVN0YXRlIGZyb20gJy4uL2NvbmZpZy9zaG9ydGNvZGUtc3RhdGUnO1xuaW1wb3J0IHsgb24sIHRyaWdnZXIgfSBmcm9tICcuLi8uLi91dGlscy9ldmVudHMnO1xuXG5jb25zdCBlbCA9IHt9O1xuXG5jb25zdCBzdGF0ZSA9IHtcblx0c2xpZGVTcGVlZDogMTUwLFxuXHRkZWxheVNwZWVkOiAxMDAsXG59O1xuXG4vKipcbiAqIEBmdW5jdGlvbiBvcGVuQ2hpbGRNZW51XG4gKiBAZGVzY3JpcHRpb24gVG9nZ2xlIHRoZSBhY2NvcmRpb24gb3BlblxuICovXG5jb25zdCBvcGVuQ2hpbGRNZW51ID0gKGhlYWRlciwgY29udGVudCkgPT4ge1xuXHR0b29scy5hZGRDbGFzcyhoZWFkZXIucGFyZW50Tm9kZSwgJ2FjdGl2ZScpO1xuXHRzZXRBY2NBY3RpdmVBdHRyaWJ1dGVzKGhlYWRlciwgY29udGVudCk7XG5cdHNsaWRlLmRvd24oY29udGVudCwgc3RhdGUuc2xpZGVTcGVlZCk7XG59O1xuXG4vKipcbiAqIEBmdW5jdGlvbiBjbG9zZUNoaWxkTWVudVxuICogQGRlc2NyaXB0aW9uIFRvZ2dsZSB0aGUgYWNjb3JkaW9uIGNsb3NlZFxuICovXG5jb25zdCBjbG9zZUNoaWxkTWVudSA9IChoZWFkZXIsIGNvbnRlbnQpID0+IHtcblx0dG9vbHMucmVtb3ZlQ2xhc3MoaGVhZGVyLnBhcmVudE5vZGUsICdhY3RpdmUnKTtcblx0c2V0QWNjSW5hY3RpdmVBdHRyaWJ1dGVzKGhlYWRlciwgY29udGVudCk7XG5cdHNsaWRlLnVwKGNvbnRlbnQsIHN0YXRlLnNsaWRlU3BlZWQpO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gdG9nZ2xlQ2hpbGRNZW51XG4gKiBAZGVzY3JpcHRpb24gVG9nZ2xlIGNoaWxkIG1lbnUgbGlzdHMuXG4gKiBAcGFyYW0gZSBldmVudFxuICovXG5jb25zdCB0b2dnbGVDaGlsZE1lbnUgPSAoZSkgPT4ge1xuXHRjb25zdCBoZWFkZXIgPSBlLmRlbGVnYXRlVGFyZ2V0O1xuXHRjb25zdCBjb250ZW50ID0gaGVhZGVyLm5leHRFbGVtZW50U2libGluZztcblxuXHRpZiAodG9vbHMuaGFzQ2xhc3MoaGVhZGVyLnBhcmVudE5vZGUsICdhY3RpdmUnKSkge1xuXHRcdGNsb3NlQ2hpbGRNZW51KGhlYWRlciwgY29udGVudCk7XG5cdH0gZWxzZSB7XG5cdFx0b3BlbkNoaWxkTWVudShoZWFkZXIsIGNvbnRlbnQpO1xuXHR9XG59O1xuXG4vKipcbiAqIEBmdW5jdGlvbiBidWlsZFF1ZXJ5T2JqZWN0XG4gKiBAZGVzY3JpcHRpb24gYWRkIG5ldyB2YWx1ZXMgdG8gdGhlIHdwQVBJUXVlcnlPYmpcbiAqIEBwYXJhbSBrZXkgc3RyaW5nXG4gKiBAcGFyYW0gdmFsdWUgc3RyaW5nXG4gKi9cbmNvbnN0IGJ1aWxkUXVlcnlPYmplY3QgPSAoa2V5ID0gJycsIHZhbHVlKSA9PiB7XG5cdGlmICgha2V5KSB7XG5cdFx0c2hvcnRjb2RlU3RhdGUud3BBUElRdWVyeU9iai5zZWFyY2gucHVzaCh2YWx1ZSk7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0c2hvcnRjb2RlU3RhdGUud3BBUElRdWVyeU9ialtrZXldLnB1c2godmFsdWUpO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gcmVkdWNlUXVlcnlPYmplY3RcbiAqIEBkZXNjcmlwdGlvbiByZW1vdmUgZXhpc3RpbmcgdmFsdWVzIGZyb20gdGhlIHdwQVBJUXVlcnlPYmpcbiAqIEBwYXJhbSBrZXkgc3RyaW5nXG4gKiBAcGFyYW0gdmFsdWUgc3RyaW5nXG4gKi9cbmNvbnN0IHJlZHVjZVF1ZXJ5T2JqZWN0ID0gKGtleSwgdmFsdWUpID0+IHtcblx0bGV0IHZhbEluZGV4ID0gJyc7XG5cblx0aWYgKCFrZXkpIHtcblx0XHR2YWxJbmRleCA9IHNob3J0Y29kZVN0YXRlLndwQVBJUXVlcnlPYmouc2VhcmNoLmluZGV4T2YodmFsdWUpO1xuXHRcdHNob3J0Y29kZVN0YXRlLndwQVBJUXVlcnlPYmouc2VhcmNoLnNwbGljZSh2YWxJbmRleCwgMSk7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0dmFsSW5kZXggPSBzaG9ydGNvZGVTdGF0ZS53cEFQSVF1ZXJ5T2JqW2tleV0uaW5kZXhPZih2YWx1ZSk7XG5cdHNob3J0Y29kZVN0YXRlLndwQVBJUXVlcnlPYmpba2V5XS5zcGxpY2UodmFsSW5kZXgsIDEpO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gYWRkQ2hvaWNlXG4gKiBAZGVzY3JpcHRpb24gYWRkIGEgY2hvaWNlIHRvIHRoZSBzZWFyY2ggcXVlcnkuXG4gKi9cbmNvbnN0IGFkZENob2ljZSA9ICh2YWx1ZSwgbGFiZWwpID0+IHtcblx0ZWwuc2VhcmNoSW5wdXQuc2V0VmFsdWUoW1xuXHRcdHtcblx0XHRcdHZhbHVlLFxuXHRcdFx0bGFiZWwsXG5cdFx0fSxcblx0XSk7XG5cblx0dHJpZ2dlcih7IGV2ZW50OiAnYmlnY29tbWVyY2Uvc2hvcnRjb2RlX3F1ZXJ5X3Rlcm1fYWRkZWQnLCBkYXRhOiB7IHZhbHVlLCBsYWJlbCB9LCBuYXRpdmU6IGZhbHNlIH0pO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gcmVtb3ZlQ2hvaWNlXG4gKiBAZGVzY3JpcHRpb24gcmVtb3ZlIGEgY2hvaWNlIGZyb20gdGhlIHNlYXJjaCBxdWVyeS5cbiAqL1xuY29uc3QgcmVtb3ZlQ2hvaWNlID0gKHZhbHVlKSA9PiB7XG5cdGVsLnNlYXJjaElucHV0LnJlbW92ZUl0ZW1zQnlWYWx1ZSh2YWx1ZSk7XG5cdHRyaWdnZXIoeyBldmVudDogJ2JpZ2NvbW1lcmNlL3Nob3J0Y29kZV9xdWVyeV90ZXJtX3JlbW92ZWQnLCBkYXRhOiB7IHZhbHVlIH0sIG5hdGl2ZTogZmFsc2UgfSk7XG59O1xuXG4vKipcbiAqIEBmdW5jdGlvbiBoYW5kbGVDaG9pY2VBZGRpdGlvblxuICogQGRlc2NyaXB0aW9uIHJ1biBzcGVjaWFsIGZ1bmN0aW9uYWxpdHkgYmFzZWQgb24gYWRkSXRlbSBldmVudCBpbiBDaG9pY2VzLmpzXG4gKiBAcGFyYW0gZSBldmVudCBvYmplY3QgY3JlYXRlZCBieSBhZGRJdGVtXG4gKi9cbmNvbnN0IGhhbmRsZUNob2ljZUFkZGl0aW9uID0gKGUpID0+IHtcblx0aWYgKGUuZGV0YWlsLnZhbHVlID09PSBlLmRldGFpbC5sYWJlbCkge1xuXHRcdGJ1aWxkUXVlcnlPYmplY3QoJycsIGUuZGV0YWlsLnZhbHVlKTtcblx0XHR0cmlnZ2VyKHsgZXZlbnQ6ICdiaWdjb21tZXJjZS9zaG9ydGNvZGVfcXVlcnlfdGVybV9hZGRlZCcsIGRhdGE6IHsgdmFsdWU6IGUuZGV0YWlsLnZhbHVlLCBsYWJlbDogZS5kZXRhaWwubGFiZWwgfSwgbmF0aXZlOiBmYWxzZSB9KTtcblx0fVxufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gaGFuZGxlQ2hvaWNlUmVtb3ZhbFxuICogQGRlc2NyaXB0aW9uIHJ1biBzcGVjaWFsIGZ1bmN0aW9uYWxpdHkgYmFzZWQgb24gcmVtb3ZlSXRlbSBldmVudCBpbiBDaG9pY2VzLmpzXG4gKiBAcGFyYW0gZSBldmVudCBvYmplY3QgY3JlYXRlZCBieSByZW1vdmVJdGVtXG4gKi9cbmNvbnN0IGhhbmRsZUNob2ljZVJlbW92YWwgPSAoZSkgPT4ge1xuXHRjb25zdCB2YWx1ZSA9IGUuZGV0YWlsLnZhbHVlO1xuXHRjb25zdCBsaW5rID0gdG9vbHMuZ2V0Tm9kZXMoYFtkYXRhLXZhbHVlPVwiJHt2YWx1ZX1cIl1gLCBmYWxzZSwgZWwubGlua0xpc3QsIHRydWUpWzBdO1xuXHR0cmlnZ2VyKHsgZXZlbnQ6ICdiaWdjb21tZXJjZS9zaG9ydGNvZGVfcXVlcnlfdGVybV9yZW1vdmVkJywgZGF0YTogeyB2YWx1ZSB9LCBuYXRpdmU6IGZhbHNlIH0pO1xuXG5cdGlmIChlLmRldGFpbC5mcm9tU2V0dGluZ3MpIHtcblx0XHRyZW1vdmVDaG9pY2UodmFsdWUpO1xuXHR9XG5cblx0aWYgKCFsaW5rKSB7XG5cdFx0cmVkdWNlUXVlcnlPYmplY3QoJycsIHZhbHVlKTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAobGluayAmJiBsaW5rLmNsYXNzTGlzdC5jb250YWlucygnYmNxYi1pdGVtLXNlbGVjdGVkJykpIHtcblx0XHRjb25zdCBrZXkgPSBsaW5rLmRhdGFzZXQua2V5O1xuXG5cdFx0bGluay5jbGFzc0xpc3QucmVtb3ZlKCdiY3FiLWl0ZW0tc2VsZWN0ZWQnKTtcblx0XHRyZWR1Y2VRdWVyeU9iamVjdChrZXksIHZhbHVlKTtcblx0fVxufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gaGFuZGxlTGlua3NcbiAqIEBkZXNjcmlwdGlvbiBIYW5kbGUgdGhlIGxpbmsgY2xpY2sgZXZlbnQgYW5kIGFkZC9yZW1vdmUgaXRlbXMgZnJvbSB0aGUgc2VhcmNoIHF1ZXJ5LlxuICogQHBhcmFtIGUgZXZlbnRcbiAqL1xuY29uc3QgaGFuZGxlTGlua3MgPSAoZSkgPT4ge1xuXHRjb25zdCBlbGVtZW50ID0gZS5kZWxlZ2F0ZVRhcmdldCA/IGUuZGVsZWdhdGVUYXJnZXQgOiBlO1xuXHRjb25zdCBrZXkgPSBlLmRlbGVnYXRlVGFyZ2V0ID8gZS5kZWxlZ2F0ZVRhcmdldC5kYXRhc2V0LmtleSA6IGUuZGF0YXNldC5rZXk7XG5cdGNvbnN0IHZhbHVlID0gZS5kZWxlZ2F0ZVRhcmdldCA/IGUuZGVsZWdhdGVUYXJnZXQuZGF0YXNldC52YWx1ZSA6IGUuZGF0YXNldC52YWx1ZTtcblx0Y29uc3QgbGFiZWwgPSBlLmRlbGVnYXRlVGFyZ2V0ID8gZS5kZWxlZ2F0ZVRhcmdldC50ZXh0IDogZS50ZXh0O1xuXG5cdGVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgnYmNxYi1pdGVtLXNlbGVjdGVkJyk7XG5cblx0aWYgKGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdiY3FiLWl0ZW0tc2VsZWN0ZWQnKSkge1xuXHRcdGFkZENob2ljZSh2YWx1ZSwgbGFiZWwpO1xuXHRcdGJ1aWxkUXVlcnlPYmplY3Qoa2V5LCB2YWx1ZSk7XG5cdFx0ZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCAndHJ1ZScpO1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLXNlbGVjdGVkJywgJ2ZhbHNlJyk7XG5cdHJlbW92ZUNob2ljZSh2YWx1ZSk7XG5cdHJlZHVjZVF1ZXJ5T2JqZWN0KGtleSwgdmFsdWUpO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gY2xlYXJTZWFyY2hcbiAqIEBkZXNjcmlwdGlvbiBjbGVhciBhbGwgY2hvaWNlcyBmcm9tIHRoZSBzZWFyY2ggaW5wdXQgYW5kIHJlc2V0IGxpbmtzIGFuZCBvYmplY3RzLlxuICovXG5jb25zdCBjbGVhclNlYXJjaCA9ICgpID0+IHtcblx0ZWwuc2VhcmNoSW5wdXQuY2xlYXJTdG9yZSgpO1xuXHRzaG9ydGNvZGVTdGF0ZS53cEFQSVF1ZXJ5T2JqID0ge1xuXHRcdGJpZ2NvbW1lcmNlX2ZsYWc6IFtdLFxuXHRcdGJpZ2NvbW1lcmNlX2JyYW5kOiBbXSxcblx0XHRiaWdjb21tZXJjZV9jYXRlZ29yeTogW10sXG5cdFx0cmVjZW50OiBbXSxcblx0XHRzZWFyY2g6IFtdLFxuXHR9O1xuXG5cdGVsLmxpbmtMaXN0LnF1ZXJ5U2VsZWN0b3JBbGwoJy5iY3FiLWl0ZW0tc2VsZWN0ZWQnKS5mb3JFYWNoKChsaW5rKSA9PiB7XG5cdFx0bGluay5jbGFzc0xpc3QucmVtb3ZlKCdiY3FiLWl0ZW0tc2VsZWN0ZWQnKTtcblx0fSk7XG59O1xuXG4vKipcbiAqIEBmdW5jdGlvbiBhZGRTYXZlZFVJQ3VzdG9tQ2hvaWNlc1xuICogQGRlc2NyaXB0aW9uIEFkZCBjdXN0b20gc2VhcmNoL3F1ZXJ5IHRlcm1zIHRvIHRoZSBzZWFyY2ggZmllbGQgYmVmb3JlIHJ1bm5pbmcgdGhlIHF1ZXJ5LlxuICogQHBhcmFtIGNob2ljZXNcbiAqL1xuY29uc3QgYWRkU2F2ZWRVSUN1c3RvbUNob2ljZXMgPSAoY2hvaWNlcykgPT4ge1xuXHRjaG9pY2VzLmZvckVhY2goY2hvaWNlID0+IGFkZENob2ljZShjaG9pY2UsIGNob2ljZSkpO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gaW5pdFF1ZXJ5UGFyYW1TZWxlY3Rpb25zXG4gKiBAZGVzY3JpcHRpb24gSWYgYSBzYXZlZCB0ZXJtIGV4aXN0cywgZmlyZSBhIGNsaWNrIGV2ZW50IG9uIHRoYXQgaXRlbSB0byBhZGQgaXQgdG8gdGhlIHNlYXJjaCBiYXIgYW5kIHN0YXRlIG9iamVjdC5cbiAqIEBwYXJhbSB0ZXJtc1xuICovXG5jb25zdCBpbml0UXVlcnlQYXJhbVNlbGVjdGlvbnMgPSAodGVybXMpID0+IHtcblx0aWYgKCF0ZXJtcykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHRlcm1zLmZvckVhY2goKHNsdWcpID0+IHtcblx0XHRjb25zdCBsaXN0TGluayA9IHRvb2xzLmdldE5vZGVzKGBbZGF0YS1zbHVnPVwiJHtzbHVnfVwiXWAsIGZhbHNlLCBlbC5saW5rTGlzdCwgdHJ1ZSlbMF07XG5cdFx0Y29uc3QgbGlzdFBhcmVudCA9IHRvb2xzLmNsb3Nlc3QobGlzdExpbmssICdbZGF0YS1qcz1cImJjcWItcGFyZW50LWxpc3QtaXRlbVwiXTpub3QoLmFjdGl2ZSknKTtcblxuXHRcdGhhbmRsZUxpbmtzKGxpc3RMaW5rKTtcblxuXHRcdGlmIChzbHVnWzBdICYmIGxpc3RQYXJlbnQpIHtcblx0XHRcdGNvbnN0IGhlYWRlciA9IHRvb2xzLmdldE5vZGVzKCdiY3FiLWhhcy1jaGlsZC1saXN0JywgZmFsc2UsIGxpc3RQYXJlbnQpWzBdO1xuXHRcdFx0Y29uc3QgY29udGVudCA9IGhlYWRlci5uZXh0RWxlbWVudFNpYmxpbmc7XG5cdFx0XHRfLmRlbGF5KCgpID0+IG9wZW5DaGlsZE1lbnUoaGVhZGVyLCBjb250ZW50KSwgc3RhdGUuZGVsYXlTcGVlZCk7XG5cdFx0fVxuXHR9KTtcbn07XG5cbi8qKlxuICogQGZ1bmN0aW9uIHNldFNob3J0Y29kZVN0YXRlXG4gKiBAZGVzY3JpcHRpb24gV2hlbiB0aGUgVUkgZGlhbG9nIGlzIHRyaWdnZXJlZCwgcmVzZXQgdGhlIFVJIGFuZCwgaWYgYXBwbGljYWJsZSwgcG9wdWxhdGUgaXQgd2l0aCBzYXZlZCBzdGF0ZSBkYXRhLlxuICogQHBhcmFtIGV2ZW50XG4gKi9cbmNvbnN0IHNldFNob3J0Y29kZVN0YXRlID0gKGV2ZW50KSA9PiB7XG5cdGlmICghZXZlbnQuZGV0YWlsLnBhcmFtcykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IGN1cnJlbnRCbG9ja1BhcmFtcyA9IGV2ZW50LmRldGFpbC5wYXJhbXM7XG5cblx0Y2xlYXJTZWFyY2goKTtcblxuXHRPYmplY3QuZW50cmllcyhjdXJyZW50QmxvY2tQYXJhbXMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuXHRcdHN3aXRjaCAoa2V5KSB7XG5cdFx0Y2FzZSAnYnJhbmQnOlxuXHRcdGNhc2UgJ2NhdGVnb3J5Jzpcblx0XHRcdGluaXRRdWVyeVBhcmFtU2VsZWN0aW9ucyhbLi4udmFsdWUuc3BsaXQoJywnKV0pO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSAnZmVhdHVyZWQnOlxuXHRcdGNhc2UgJ3NhbGUnOlxuXHRcdGNhc2UgJ3JlY2VudCc6XG5cdFx0XHRpbml0UXVlcnlQYXJhbVNlbGVjdGlvbnMoW2tleV0pO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSAnc2VhcmNoJzpcblx0XHRcdGFkZFNhdmVkVUlDdXN0b21DaG9pY2VzKFsuLi52YWx1ZS5zcGxpdCgnLCcpXSk7XG5cdFx0XHRicmVhaztcblx0XHRkZWZhdWx0OlxuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9KTtcblxuXHRfLmRlbGF5KCgpID0+IHRyaWdnZXIoeyBldmVudDogJ2JpZ2NvbW1lcmNlL3Nob3J0Y29kZV91aV9zdGF0ZV9yZWFkeScsIG5hdGl2ZTogZmFsc2UgfSksIHN0YXRlLmRlbGF5U3BlZWQpO1xufTtcblxuY29uc3QgY2FjaGVFbGVtZW50cyA9ICgpID0+IHtcblx0ZWwuZGlhbG9nID0gdG9vbHMuZ2V0Tm9kZXMoJ2JjLXNob3J0Y29kZS11aS1wcm9kdWN0cycsIGZhbHNlLCBkb2N1bWVudCwgZmFsc2UpWzBdO1xuXHRlbC5saW5rTGlzdCA9IHRvb2xzLmdldE5vZGVzKCdiY3FiLWxpc3QnKVswXTtcblx0ZWwuc2VhcmNoRm9ybSA9IHRvb2xzLmdldE5vZGVzKCdiYy1zaG9ydGNvZGUtdWktc2VhcmNoJywgZmFsc2UsIGVsLmRpYWxvZywgZmFsc2UpWzBdO1xufTtcblxuY29uc3QgYmluZEV2ZW50cyA9ICgpID0+IHtcblx0ZWwuc2VhcmNoSW5wdXQgPSBuZXcgQ2hvaWNlcygnLmJjLXNob3J0Y29kZS11aV9fc2VhcmNoLWlucHV0Jywge1xuXHRcdHJlbW92ZUl0ZW1CdXR0b246IHRydWUsXG5cdFx0ZHVwbGljYXRlSXRlbXM6IGZhbHNlLFxuXHR9KTtcblxuXHRkZWxlZ2F0ZShlbC5saW5rTGlzdCwgJ1tkYXRhLWpzPVwiYmNxYi1oYXMtY2hpbGQtbGlzdFwiXScsICdjbGljaycsIHRvZ2dsZUNoaWxkTWVudSk7XG5cdGRlbGVnYXRlKGVsLmxpbmtMaXN0LCAnLmJjLXNob3J0Y29kZS11aV9fcXVlcnktYnVpbGRlci1hbmNob3InLCAnY2xpY2snLCBoYW5kbGVMaW5rcyk7XG5cdGVsLnNlYXJjaElucHV0LnBhc3NlZEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncmVtb3ZlSXRlbScsIGhhbmRsZUNob2ljZVJlbW92YWwpO1xuXHRlbC5zZWFyY2hJbnB1dC5wYXNzZWRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2FkZEl0ZW0nLCBoYW5kbGVDaG9pY2VBZGRpdGlvbik7XG5cdGRlbGVnYXRlKCdbZGF0YS1qcz1cImJjcWItY2xlYXJcIl0nLCAnY2xpY2snLCBjbGVhclNlYXJjaCk7XG5cdG9uKGRvY3VtZW50LCAnYmlnY29tbWVyY2Uvc2V0X3Nob3J0Y29kZV91aV9zdGF0ZScsIHNldFNob3J0Y29kZVN0YXRlKTtcblx0b24oZG9jdW1lbnQsICdiaWdjb21tZXJjZS9yZW1vdmVfcXVlcnlfdGVybScsIGhhbmRsZUNob2ljZVJlbW92YWwpO1xufTtcblxuY29uc3QgaW5pdCA9ICgpID0+IHtcblx0Y2FjaGVFbGVtZW50cygpO1xuXHRiaW5kRXZlbnRzKCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBpbml0O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL2pzL3NyYy9hZG1pbi9zaG9ydGNvZGUtdWkvcXVlcnktYnVpbGRlci5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///127\n"); /***/ }), /* 128 */ /***/ (function(module, exports, __webpack_require__) { -eval("// @@split logic\n__webpack_require__(71)('split', 2, function (defined, SPLIT, $split) {\n 'use strict';\n var isRegExp = __webpack_require__(138);\n var _split = $split;\n var $push = [].push;\n var $SPLIT = 'split';\n var LENGTH = 'length';\n var LAST_INDEX = 'lastIndex';\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group\n // based on es5-shim implementation, need to rework it\n $split = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return _split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var separator2, match, lastIndex, lastLength, i;\n // Doesn't need flags gy, but they don't hurt\n if (!NPCG) separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\\\s)', flags);\n while (match = separatorCopy.exec(string)) {\n // `separatorCopy.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0][LENGTH];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG\n // eslint-disable-next-line no-loop-func\n if (!NPCG && match[LENGTH] > 1) match[0].replace(separator2, function () {\n for (i = 1; i < arguments[LENGTH] - 2; i++) if (arguments[i] === undefined) match[i] = undefined;\n });\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n $split = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);\n };\n }\n // 21.1.3.17 String.prototype.split(separator, limit)\n return [function split(separator, limit) {\n var O = defined(this);\n var fn = separator == undefined ? undefined : separator[SPLIT];\n return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);\n }, $split];\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5yZWdleHAuc3BsaXQuanM/OTg5YyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdEO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsMkJBQTJCO0FBQ2xELFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUZBQW1GO0FBQ25GO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILENBQUMiLCJmaWxlIjoiMTI4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQEBzcGxpdCBsb2dpY1xucmVxdWlyZSgnLi9fZml4LXJlLXdrcycpKCdzcGxpdCcsIDIsIGZ1bmN0aW9uIChkZWZpbmVkLCBTUExJVCwgJHNwbGl0KSB7XG4gICd1c2Ugc3RyaWN0JztcbiAgdmFyIGlzUmVnRXhwID0gcmVxdWlyZSgnLi9faXMtcmVnZXhwJyk7XG4gIHZhciBfc3BsaXQgPSAkc3BsaXQ7XG4gIHZhciAkcHVzaCA9IFtdLnB1c2g7XG4gIHZhciAkU1BMSVQgPSAnc3BsaXQnO1xuICB2YXIgTEVOR1RIID0gJ2xlbmd0aCc7XG4gIHZhciBMQVNUX0lOREVYID0gJ2xhc3RJbmRleCc7XG4gIGlmIChcbiAgICAnYWJiYydbJFNQTElUXSgvKGIpKi8pWzFdID09ICdjJyB8fFxuICAgICd0ZXN0J1skU1BMSVRdKC8oPzopLywgLTEpW0xFTkdUSF0gIT0gNCB8fFxuICAgICdhYidbJFNQTElUXSgvKD86YWIpKi8pW0xFTkdUSF0gIT0gMiB8fFxuICAgICcuJ1skU1BMSVRdKC8oLj8pKC4/KS8pW0xFTkdUSF0gIT0gNCB8fFxuICAgICcuJ1skU1BMSVRdKC8oKSgpLylbTEVOR1RIXSA+IDEgfHxcbiAgICAnJ1skU1BMSVRdKC8uPy8pW0xFTkdUSF1cbiAgKSB7XG4gICAgdmFyIE5QQ0cgPSAvKCk/Py8uZXhlYygnJylbMV0gPT09IHVuZGVmaW5lZDsgLy8gbm9ucGFydGljaXBhdGluZyBjYXB0dXJpbmcgZ3JvdXBcbiAgICAvLyBiYXNlZCBvbiBlczUtc2hpbSBpbXBsZW1lbnRhdGlvbiwgbmVlZCB0byByZXdvcmsgaXRcbiAgICAkc3BsaXQgPSBmdW5jdGlvbiAoc2VwYXJhdG9yLCBsaW1pdCkge1xuICAgICAgdmFyIHN0cmluZyA9IFN0cmluZyh0aGlzKTtcbiAgICAgIGlmIChzZXBhcmF0b3IgPT09IHVuZGVmaW5lZCAmJiBsaW1pdCA9PT0gMCkgcmV0dXJuIFtdO1xuICAgICAgLy8gSWYgYHNlcGFyYXRvcmAgaXMgbm90IGEgcmVnZXgsIHVzZSBuYXRpdmUgc3BsaXRcbiAgICAgIGlmICghaXNSZWdFeHAoc2VwYXJhdG9yKSkgcmV0dXJuIF9zcGxpdC5jYWxsKHN0cmluZywgc2VwYXJhdG9yLCBsaW1pdCk7XG4gICAgICB2YXIgb3V0cHV0ID0gW107XG4gICAgICB2YXIgZmxhZ3MgPSAoc2VwYXJhdG9yLmlnbm9yZUNhc2UgPyAnaScgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgKHNlcGFyYXRvci5tdWx0aWxpbmUgPyAnbScgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgKHNlcGFyYXRvci51bmljb2RlID8gJ3UnIDogJycpICtcbiAgICAgICAgICAgICAgICAgIChzZXBhcmF0b3Iuc3RpY2t5ID8gJ3knIDogJycpO1xuICAgICAgdmFyIGxhc3RMYXN0SW5kZXggPSAwO1xuICAgICAgdmFyIHNwbGl0TGltaXQgPSBsaW1pdCA9PT0gdW5kZWZpbmVkID8gNDI5NDk2NzI5NSA6IGxpbWl0ID4+PiAwO1xuICAgICAgLy8gTWFrZSBgZ2xvYmFsYCBhbmQgYXZvaWQgYGxhc3RJbmRleGAgaXNzdWVzIGJ5IHdvcmtpbmcgd2l0aCBhIGNvcHlcbiAgICAgIHZhciBzZXBhcmF0b3JDb3B5ID0gbmV3IFJlZ0V4cChzZXBhcmF0b3Iuc291cmNlLCBmbGFncyArICdnJyk7XG4gICAgICB2YXIgc2VwYXJhdG9yMiwgbWF0Y2gsIGxhc3RJbmRleCwgbGFzdExlbmd0aCwgaTtcbiAgICAgIC8vIERvZXNuJ3QgbmVlZCBmbGFncyBneSwgYnV0IHRoZXkgZG9uJ3QgaHVydFxuICAgICAgaWYgKCFOUENHKSBzZXBhcmF0b3IyID0gbmV3IFJlZ0V4cCgnXicgKyBzZXBhcmF0b3JDb3B5LnNvdXJjZSArICckKD8hXFxcXHMpJywgZmxhZ3MpO1xuICAgICAgd2hpbGUgKG1hdGNoID0gc2VwYXJhdG9yQ29weS5leGVjKHN0cmluZykpIHtcbiAgICAgICAgLy8gYHNlcGFyYXRvckNvcHkubGFzdEluZGV4YCBpcyBub3QgcmVsaWFibGUgY3Jvc3MtYnJvd3NlclxuICAgICAgICBsYXN0SW5kZXggPSBtYXRjaC5pbmRleCArIG1hdGNoWzBdW0xFTkdUSF07XG4gICAgICAgIGlmIChsYXN0SW5kZXggPiBsYXN0TGFzdEluZGV4KSB7XG4gICAgICAgICAgb3V0cHV0LnB1c2goc3RyaW5nLnNsaWNlKGxhc3RMYXN0SW5kZXgsIG1hdGNoLmluZGV4KSk7XG4gICAgICAgICAgLy8gRml4IGJyb3dzZXJzIHdob3NlIGBleGVjYCBtZXRob2RzIGRvbid0IGNvbnNpc3RlbnRseSByZXR1cm4gYHVuZGVmaW5lZGAgZm9yIE5QQ0dcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbG9vcC1mdW5jXG4gICAgICAgICAgaWYgKCFOUENHICYmIG1hdGNoW0xFTkdUSF0gPiAxKSBtYXRjaFswXS5yZXBsYWNlKHNlcGFyYXRvcjIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGZvciAoaSA9IDE7IGkgPCBhcmd1bWVudHNbTEVOR1RIXSAtIDI7IGkrKykgaWYgKGFyZ3VtZW50c1tpXSA9PT0gdW5kZWZpbmVkKSBtYXRjaFtpXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAobWF0Y2hbTEVOR1RIXSA+IDEgJiYgbWF0Y2guaW5kZXggPCBzdHJpbmdbTEVOR1RIXSkgJHB1c2guYXBwbHkob3V0cHV0LCBtYXRjaC5zbGljZSgxKSk7XG4gICAgICAgICAgbGFzdExlbmd0aCA9IG1hdGNoWzBdW0xFTkdUSF07XG4gICAgICAgICAgbGFzdExhc3RJbmRleCA9IGxhc3RJbmRleDtcbiAgICAgICAgICBpZiAob3V0cHV0W0xFTkdUSF0gPj0gc3BsaXRMaW1pdCkgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlcGFyYXRvckNvcHlbTEFTVF9JTkRFWF0gPT09IG1hdGNoLmluZGV4KSBzZXBhcmF0b3JDb3B5W0xBU1RfSU5ERVhdKys7IC8vIEF2b2lkIGFuIGluZmluaXRlIGxvb3BcbiAgICAgIH1cbiAgICAgIGlmIChsYXN0TGFzdEluZGV4ID09PSBzdHJpbmdbTEVOR1RIXSkge1xuICAgICAgICBpZiAobGFzdExlbmd0aCB8fCAhc2VwYXJhdG9yQ29weS50ZXN0KCcnKSkgb3V0cHV0LnB1c2goJycpO1xuICAgICAgfSBlbHNlIG91dHB1dC5wdXNoKHN0cmluZy5zbGljZShsYXN0TGFzdEluZGV4KSk7XG4gICAgICByZXR1cm4gb3V0cHV0W0xFTkdUSF0gPiBzcGxpdExpbWl0ID8gb3V0cHV0LnNsaWNlKDAsIHNwbGl0TGltaXQpIDogb3V0cHV0O1xuICAgIH07XG4gIC8vIENoYWtyYSwgVjhcbiAgfSBlbHNlIGlmICgnMCdbJFNQTElUXSh1bmRlZmluZWQsIDApW0xFTkdUSF0pIHtcbiAgICAkc3BsaXQgPSBmdW5jdGlvbiAoc2VwYXJhdG9yLCBsaW1pdCkge1xuICAgICAgcmV0dXJuIHNlcGFyYXRvciA9PT0gdW5kZWZpbmVkICYmIGxpbWl0ID09PSAwID8gW10gOiBfc3BsaXQuY2FsbCh0aGlzLCBzZXBhcmF0b3IsIGxpbWl0KTtcbiAgICB9O1xuICB9XG4gIC8vIDIxLjEuMy4xNyBTdHJpbmcucHJvdG90eXBlLnNwbGl0KHNlcGFyYXRvciwgbGltaXQpXG4gIHJldHVybiBbZnVuY3Rpb24gc3BsaXQoc2VwYXJhdG9yLCBsaW1pdCkge1xuICAgIHZhciBPID0gZGVmaW5lZCh0aGlzKTtcbiAgICB2YXIgZm4gPSBzZXBhcmF0b3IgPT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogc2VwYXJhdG9yW1NQTElUXTtcbiAgICByZXR1cm4gZm4gIT09IHVuZGVmaW5lZCA/IGZuLmNhbGwoc2VwYXJhdG9yLCBPLCBsaW1pdCkgOiAkc3BsaXQuY2FsbChTdHJpbmcoTyksIHNlcGFyYXRvciwgbGltaXQpO1xuICB9LCAkc3BsaXRdO1xufSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnJlZ2V4cC5zcGxpdC5qc1xuLy8gbW9kdWxlIGlkID0gMTI4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///128\n"); +eval("// @@split logic\n__webpack_require__(75)('split', 2, function (defined, SPLIT, $split) {\n 'use strict';\n var isRegExp = __webpack_require__(138);\n var _split = $split;\n var $push = [].push;\n var $SPLIT = 'split';\n var LENGTH = 'length';\n var LAST_INDEX = 'lastIndex';\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group\n // based on es5-shim implementation, need to rework it\n $split = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return _split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var separator2, match, lastIndex, lastLength, i;\n // Doesn't need flags gy, but they don't hurt\n if (!NPCG) separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\\\s)', flags);\n while (match = separatorCopy.exec(string)) {\n // `separatorCopy.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0][LENGTH];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG\n // eslint-disable-next-line no-loop-func\n if (!NPCG && match[LENGTH] > 1) match[0].replace(separator2, function () {\n for (i = 1; i < arguments[LENGTH] - 2; i++) if (arguments[i] === undefined) match[i] = undefined;\n });\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n $split = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);\n };\n }\n // 21.1.3.17 String.prototype.split(separator, limit)\n return [function split(separator, limit) {\n var O = defined(this);\n var fn = separator == undefined ? undefined : separator[SPLIT];\n return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);\n }, $split];\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5yZWdleHAuc3BsaXQuanM/OTg5YyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdEO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsMkJBQTJCO0FBQ2xELFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUZBQW1GO0FBQ25GO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILENBQUMiLCJmaWxlIjoiMTI4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQEBzcGxpdCBsb2dpY1xucmVxdWlyZSgnLi9fZml4LXJlLXdrcycpKCdzcGxpdCcsIDIsIGZ1bmN0aW9uIChkZWZpbmVkLCBTUExJVCwgJHNwbGl0KSB7XG4gICd1c2Ugc3RyaWN0JztcbiAgdmFyIGlzUmVnRXhwID0gcmVxdWlyZSgnLi9faXMtcmVnZXhwJyk7XG4gIHZhciBfc3BsaXQgPSAkc3BsaXQ7XG4gIHZhciAkcHVzaCA9IFtdLnB1c2g7XG4gIHZhciAkU1BMSVQgPSAnc3BsaXQnO1xuICB2YXIgTEVOR1RIID0gJ2xlbmd0aCc7XG4gIHZhciBMQVNUX0lOREVYID0gJ2xhc3RJbmRleCc7XG4gIGlmIChcbiAgICAnYWJiYydbJFNQTElUXSgvKGIpKi8pWzFdID09ICdjJyB8fFxuICAgICd0ZXN0J1skU1BMSVRdKC8oPzopLywgLTEpW0xFTkdUSF0gIT0gNCB8fFxuICAgICdhYidbJFNQTElUXSgvKD86YWIpKi8pW0xFTkdUSF0gIT0gMiB8fFxuICAgICcuJ1skU1BMSVRdKC8oLj8pKC4/KS8pW0xFTkdUSF0gIT0gNCB8fFxuICAgICcuJ1skU1BMSVRdKC8oKSgpLylbTEVOR1RIXSA+IDEgfHxcbiAgICAnJ1skU1BMSVRdKC8uPy8pW0xFTkdUSF1cbiAgKSB7XG4gICAgdmFyIE5QQ0cgPSAvKCk/Py8uZXhlYygnJylbMV0gPT09IHVuZGVmaW5lZDsgLy8gbm9ucGFydGljaXBhdGluZyBjYXB0dXJpbmcgZ3JvdXBcbiAgICAvLyBiYXNlZCBvbiBlczUtc2hpbSBpbXBsZW1lbnRhdGlvbiwgbmVlZCB0byByZXdvcmsgaXRcbiAgICAkc3BsaXQgPSBmdW5jdGlvbiAoc2VwYXJhdG9yLCBsaW1pdCkge1xuICAgICAgdmFyIHN0cmluZyA9IFN0cmluZyh0aGlzKTtcbiAgICAgIGlmIChzZXBhcmF0b3IgPT09IHVuZGVmaW5lZCAmJiBsaW1pdCA9PT0gMCkgcmV0dXJuIFtdO1xuICAgICAgLy8gSWYgYHNlcGFyYXRvcmAgaXMgbm90IGEgcmVnZXgsIHVzZSBuYXRpdmUgc3BsaXRcbiAgICAgIGlmICghaXNSZWdFeHAoc2VwYXJhdG9yKSkgcmV0dXJuIF9zcGxpdC5jYWxsKHN0cmluZywgc2VwYXJhdG9yLCBsaW1pdCk7XG4gICAgICB2YXIgb3V0cHV0ID0gW107XG4gICAgICB2YXIgZmxhZ3MgPSAoc2VwYXJhdG9yLmlnbm9yZUNhc2UgPyAnaScgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgKHNlcGFyYXRvci5tdWx0aWxpbmUgPyAnbScgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgKHNlcGFyYXRvci51bmljb2RlID8gJ3UnIDogJycpICtcbiAgICAgICAgICAgICAgICAgIChzZXBhcmF0b3Iuc3RpY2t5ID8gJ3knIDogJycpO1xuICAgICAgdmFyIGxhc3RMYXN0SW5kZXggPSAwO1xuICAgICAgdmFyIHNwbGl0TGltaXQgPSBsaW1pdCA9PT0gdW5kZWZpbmVkID8gNDI5NDk2NzI5NSA6IGxpbWl0ID4+PiAwO1xuICAgICAgLy8gTWFrZSBgZ2xvYmFsYCBhbmQgYXZvaWQgYGxhc3RJbmRleGAgaXNzdWVzIGJ5IHdvcmtpbmcgd2l0aCBhIGNvcHlcbiAgICAgIHZhciBzZXBhcmF0b3JDb3B5ID0gbmV3IFJlZ0V4cChzZXBhcmF0b3Iuc291cmNlLCBmbGFncyArICdnJyk7XG4gICAgICB2YXIgc2VwYXJhdG9yMiwgbWF0Y2gsIGxhc3RJbmRleCwgbGFzdExlbmd0aCwgaTtcbiAgICAgIC8vIERvZXNuJ3QgbmVlZCBmbGFncyBneSwgYnV0IHRoZXkgZG9uJ3QgaHVydFxuICAgICAgaWYgKCFOUENHKSBzZXBhcmF0b3IyID0gbmV3IFJlZ0V4cCgnXicgKyBzZXBhcmF0b3JDb3B5LnNvdXJjZSArICckKD8hXFxcXHMpJywgZmxhZ3MpO1xuICAgICAgd2hpbGUgKG1hdGNoID0gc2VwYXJhdG9yQ29weS5leGVjKHN0cmluZykpIHtcbiAgICAgICAgLy8gYHNlcGFyYXRvckNvcHkubGFzdEluZGV4YCBpcyBub3QgcmVsaWFibGUgY3Jvc3MtYnJvd3NlclxuICAgICAgICBsYXN0SW5kZXggPSBtYXRjaC5pbmRleCArIG1hdGNoWzBdW0xFTkdUSF07XG4gICAgICAgIGlmIChsYXN0SW5kZXggPiBsYXN0TGFzdEluZGV4KSB7XG4gICAgICAgICAgb3V0cHV0LnB1c2goc3RyaW5nLnNsaWNlKGxhc3RMYXN0SW5kZXgsIG1hdGNoLmluZGV4KSk7XG4gICAgICAgICAgLy8gRml4IGJyb3dzZXJzIHdob3NlIGBleGVjYCBtZXRob2RzIGRvbid0IGNvbnNpc3RlbnRseSByZXR1cm4gYHVuZGVmaW5lZGAgZm9yIE5QQ0dcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbG9vcC1mdW5jXG4gICAgICAgICAgaWYgKCFOUENHICYmIG1hdGNoW0xFTkdUSF0gPiAxKSBtYXRjaFswXS5yZXBsYWNlKHNlcGFyYXRvcjIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGZvciAoaSA9IDE7IGkgPCBhcmd1bWVudHNbTEVOR1RIXSAtIDI7IGkrKykgaWYgKGFyZ3VtZW50c1tpXSA9PT0gdW5kZWZpbmVkKSBtYXRjaFtpXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAobWF0Y2hbTEVOR1RIXSA+IDEgJiYgbWF0Y2guaW5kZXggPCBzdHJpbmdbTEVOR1RIXSkgJHB1c2guYXBwbHkob3V0cHV0LCBtYXRjaC5zbGljZSgxKSk7XG4gICAgICAgICAgbGFzdExlbmd0aCA9IG1hdGNoWzBdW0xFTkdUSF07XG4gICAgICAgICAgbGFzdExhc3RJbmRleCA9IGxhc3RJbmRleDtcbiAgICAgICAgICBpZiAob3V0cHV0W0xFTkdUSF0gPj0gc3BsaXRMaW1pdCkgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlcGFyYXRvckNvcHlbTEFTVF9JTkRFWF0gPT09IG1hdGNoLmluZGV4KSBzZXBhcmF0b3JDb3B5W0xBU1RfSU5ERVhdKys7IC8vIEF2b2lkIGFuIGluZmluaXRlIGxvb3BcbiAgICAgIH1cbiAgICAgIGlmIChsYXN0TGFzdEluZGV4ID09PSBzdHJpbmdbTEVOR1RIXSkge1xuICAgICAgICBpZiAobGFzdExlbmd0aCB8fCAhc2VwYXJhdG9yQ29weS50ZXN0KCcnKSkgb3V0cHV0LnB1c2goJycpO1xuICAgICAgfSBlbHNlIG91dHB1dC5wdXNoKHN0cmluZy5zbGljZShsYXN0TGFzdEluZGV4KSk7XG4gICAgICByZXR1cm4gb3V0cHV0W0xFTkdUSF0gPiBzcGxpdExpbWl0ID8gb3V0cHV0LnNsaWNlKDAsIHNwbGl0TGltaXQpIDogb3V0cHV0O1xuICAgIH07XG4gIC8vIENoYWtyYSwgVjhcbiAgfSBlbHNlIGlmICgnMCdbJFNQTElUXSh1bmRlZmluZWQsIDApW0xFTkdUSF0pIHtcbiAgICAkc3BsaXQgPSBmdW5jdGlvbiAoc2VwYXJhdG9yLCBsaW1pdCkge1xuICAgICAgcmV0dXJuIHNlcGFyYXRvciA9PT0gdW5kZWZpbmVkICYmIGxpbWl0ID09PSAwID8gW10gOiBfc3BsaXQuY2FsbCh0aGlzLCBzZXBhcmF0b3IsIGxpbWl0KTtcbiAgICB9O1xuICB9XG4gIC8vIDIxLjEuMy4xNyBTdHJpbmcucHJvdG90eXBlLnNwbGl0KHNlcGFyYXRvciwgbGltaXQpXG4gIHJldHVybiBbZnVuY3Rpb24gc3BsaXQoc2VwYXJhdG9yLCBsaW1pdCkge1xuICAgIHZhciBPID0gZGVmaW5lZCh0aGlzKTtcbiAgICB2YXIgZm4gPSBzZXBhcmF0b3IgPT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogc2VwYXJhdG9yW1NQTElUXTtcbiAgICByZXR1cm4gZm4gIT09IHVuZGVmaW5lZCA/IGZuLmNhbGwoc2VwYXJhdG9yLCBPLCBsaW1pdCkgOiAkc3BsaXQuY2FsbChTdHJpbmcoTyksIHNlcGFyYXRvciwgbGltaXQpO1xuICB9LCAkc3BsaXRdO1xufSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnJlZ2V4cC5zcGxpdC5qc1xuLy8gbW9kdWxlIGlkID0gMTI4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///128\n"); /***/ }), /* 129 */ /***/ (function(module, exports, __webpack_require__) { -eval("module.exports = !__webpack_require__(23) && !__webpack_require__(44)(function () {\n return Object.defineProperty(__webpack_require__(130)('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pZTgtZG9tLWRlZmluZS5qcz9jNTk2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0Esc0VBQXNFLG1CQUFtQixVQUFVLEVBQUUsRUFBRTtBQUN2RyxDQUFDIiwiZmlsZSI6IjEyOS5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gIXJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgJiYgIXJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcXVpcmUoJy4vX2RvbS1jcmVhdGUnKSgnZGl2JyksICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xufSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2llOC1kb20tZGVmaW5lLmpzXG4vLyBtb2R1bGUgaWQgPSAxMjlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///129\n"); +eval("module.exports = !__webpack_require__(21) && !__webpack_require__(46)(function () {\n return Object.defineProperty(__webpack_require__(130)('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pZTgtZG9tLWRlZmluZS5qcz9jNTk2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0Esc0VBQXNFLG1CQUFtQixVQUFVLEVBQUUsRUFBRTtBQUN2RyxDQUFDIiwiZmlsZSI6IjEyOS5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gIXJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgJiYgIXJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcXVpcmUoJy4vX2RvbS1jcmVhdGUnKSgnZGl2JyksICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xufSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2llOC1kb20tZGVmaW5lLmpzXG4vLyBtb2R1bGUgaWQgPSAxMjlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///129\n"); /***/ }), /* 130 */ /***/ (function(module, exports, __webpack_require__) { -eval("var isObject = __webpack_require__(31);\nvar document = __webpack_require__(32).document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19kb20tY3JlYXRlLmpzPzhlMWMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMTMwLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgZG9jdW1lbnQgPSByZXF1aXJlKCcuL19nbG9iYWwnKS5kb2N1bWVudDtcbi8vIHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50IGlzICdvYmplY3QnIGluIG9sZCBJRVxudmFyIGlzID0gaXNPYmplY3QoZG9jdW1lbnQpICYmIGlzT2JqZWN0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGlzID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdCkgOiB7fTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2RvbS1jcmVhdGUuanNcbi8vIG1vZHVsZSBpZCA9IDEzMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///130\n"); +eval("var isObject = __webpack_require__(30);\nvar document = __webpack_require__(31).document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19kb20tY3JlYXRlLmpzPzhlMWMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMTMwLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgZG9jdW1lbnQgPSByZXF1aXJlKCcuL19nbG9iYWwnKS5kb2N1bWVudDtcbi8vIHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50IGlzICdvYmplY3QnIGluIG9sZCBJRVxudmFyIGlzID0gaXNPYmplY3QoZG9jdW1lbnQpICYmIGlzT2JqZWN0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGlzID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdCkgOiB7fTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2RvbS1jcmVhdGUuanNcbi8vIG1vZHVsZSBpZCA9IDEzMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///130\n"); /***/ }), /* 131 */ /***/ (function(module, exports, __webpack_require__) { -eval("// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(31);\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL190by1wcmltaXRpdmUuanM/YjM4OCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMTMxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gNy4xLjEgVG9QcmltaXRpdmUoaW5wdXQgWywgUHJlZmVycmVkVHlwZV0pXG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbi8vIGluc3RlYWQgb2YgdGhlIEVTNiBzcGVjIHZlcnNpb24sIHdlIGRpZG4ndCBpbXBsZW1lbnQgQEB0b1ByaW1pdGl2ZSBjYXNlXG4vLyBhbmQgdGhlIHNlY29uZCBhcmd1bWVudCAtIGZsYWcgLSBwcmVmZXJyZWQgdHlwZSBpcyBhIHN0cmluZ1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIFMpIHtcbiAgaWYgKCFpc09iamVjdChpdCkpIHJldHVybiBpdDtcbiAgdmFyIGZuLCB2YWw7XG4gIGlmIChTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSByZXR1cm4gdmFsO1xuICBpZiAodHlwZW9mIChmbiA9IGl0LnZhbHVlT2YpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKCFTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSByZXR1cm4gdmFsO1xuICB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL190by1wcmltaXRpdmUuanNcbi8vIG1vZHVsZSBpZCA9IDEzMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///131\n"); +eval("// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(30);\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL190by1wcmltaXRpdmUuanM/YjM4OCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMTMxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gNy4xLjEgVG9QcmltaXRpdmUoaW5wdXQgWywgUHJlZmVycmVkVHlwZV0pXG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbi8vIGluc3RlYWQgb2YgdGhlIEVTNiBzcGVjIHZlcnNpb24sIHdlIGRpZG4ndCBpbXBsZW1lbnQgQEB0b1ByaW1pdGl2ZSBjYXNlXG4vLyBhbmQgdGhlIHNlY29uZCBhcmd1bWVudCAtIGZsYWcgLSBwcmVmZXJyZWQgdHlwZSBpcyBhIHN0cmluZ1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIFMpIHtcbiAgaWYgKCFpc09iamVjdChpdCkpIHJldHVybiBpdDtcbiAgdmFyIGZuLCB2YWw7XG4gIGlmIChTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSByZXR1cm4gdmFsO1xuICBpZiAodHlwZW9mIChmbiA9IGl0LnZhbHVlT2YpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKCFTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSByZXR1cm4gdmFsO1xuICB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL190by1wcmltaXRpdmUuanNcbi8vIG1vZHVsZSBpZCA9IDEzMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///131\n"); /***/ }), /* 132 */ @@ -880,7 +881,7 @@ eval("module.exports = function (bitmap, value) {\n return {\n enumerable: ! /* 133 */ /***/ (function(module, exports, __webpack_require__) { -eval("var global = __webpack_require__(32);\nvar hide = __webpack_require__(72);\nvar has = __webpack_require__(134);\nvar SRC = __webpack_require__(74)('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(135).inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19yZWRlZmluZS5qcz80NzcwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLENBQUMiLCJmaWxlIjoiMTMzLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuL19oaWRlJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgU1JDID0gcmVxdWlyZSgnLi9fdWlkJykoJ3NyYycpO1xudmFyIFRPX1NUUklORyA9ICd0b1N0cmluZyc7XG52YXIgJHRvU3RyaW5nID0gRnVuY3Rpb25bVE9fU1RSSU5HXTtcbnZhciBUUEwgPSAoJycgKyAkdG9TdHJpbmcpLnNwbGl0KFRPX1NUUklORyk7XG5cbnJlcXVpcmUoJy4vX2NvcmUnKS5pbnNwZWN0U291cmNlID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiAkdG9TdHJpbmcuY2FsbChpdCk7XG59O1xuXG4obW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTywga2V5LCB2YWwsIHNhZmUpIHtcbiAgdmFyIGlzRnVuY3Rpb24gPSB0eXBlb2YgdmFsID09ICdmdW5jdGlvbic7XG4gIGlmIChpc0Z1bmN0aW9uKSBoYXModmFsLCAnbmFtZScpIHx8IGhpZGUodmFsLCAnbmFtZScsIGtleSk7XG4gIGlmIChPW2tleV0gPT09IHZhbCkgcmV0dXJuO1xuICBpZiAoaXNGdW5jdGlvbikgaGFzKHZhbCwgU1JDKSB8fCBoaWRlKHZhbCwgU1JDLCBPW2tleV0gPyAnJyArIE9ba2V5XSA6IFRQTC5qb2luKFN0cmluZyhrZXkpKSk7XG4gIGlmIChPID09PSBnbG9iYWwpIHtcbiAgICBPW2tleV0gPSB2YWw7XG4gIH0gZWxzZSBpZiAoIXNhZmUpIHtcbiAgICBkZWxldGUgT1trZXldO1xuICAgIGhpZGUoTywga2V5LCB2YWwpO1xuICB9IGVsc2UgaWYgKE9ba2V5XSkge1xuICAgIE9ba2V5XSA9IHZhbDtcbiAgfSBlbHNlIHtcbiAgICBoaWRlKE8sIGtleSwgdmFsKTtcbiAgfVxuLy8gYWRkIGZha2UgRnVuY3Rpb24jdG9TdHJpbmcgZm9yIGNvcnJlY3Qgd29yayB3cmFwcGVkIG1ldGhvZHMgLyBjb25zdHJ1Y3RvcnMgd2l0aCBtZXRob2RzIGxpa2UgTG9EYXNoIGlzTmF0aXZlXG59KShGdW5jdGlvbi5wcm90b3R5cGUsIFRPX1NUUklORywgZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gIHJldHVybiB0eXBlb2YgdGhpcyA9PSAnZnVuY3Rpb24nICYmIHRoaXNbU1JDXSB8fCAkdG9TdHJpbmcuY2FsbCh0aGlzKTtcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19yZWRlZmluZS5qc1xuLy8gbW9kdWxlIGlkID0gMTMzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///133\n"); +eval("var global = __webpack_require__(31);\nvar hide = __webpack_require__(76);\nvar has = __webpack_require__(134);\nvar SRC = __webpack_require__(78)('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(135).inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19yZWRlZmluZS5qcz80NzcwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLENBQUMiLCJmaWxlIjoiMTMzLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuL19oaWRlJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgU1JDID0gcmVxdWlyZSgnLi9fdWlkJykoJ3NyYycpO1xudmFyIFRPX1NUUklORyA9ICd0b1N0cmluZyc7XG52YXIgJHRvU3RyaW5nID0gRnVuY3Rpb25bVE9fU1RSSU5HXTtcbnZhciBUUEwgPSAoJycgKyAkdG9TdHJpbmcpLnNwbGl0KFRPX1NUUklORyk7XG5cbnJlcXVpcmUoJy4vX2NvcmUnKS5pbnNwZWN0U291cmNlID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiAkdG9TdHJpbmcuY2FsbChpdCk7XG59O1xuXG4obW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTywga2V5LCB2YWwsIHNhZmUpIHtcbiAgdmFyIGlzRnVuY3Rpb24gPSB0eXBlb2YgdmFsID09ICdmdW5jdGlvbic7XG4gIGlmIChpc0Z1bmN0aW9uKSBoYXModmFsLCAnbmFtZScpIHx8IGhpZGUodmFsLCAnbmFtZScsIGtleSk7XG4gIGlmIChPW2tleV0gPT09IHZhbCkgcmV0dXJuO1xuICBpZiAoaXNGdW5jdGlvbikgaGFzKHZhbCwgU1JDKSB8fCBoaWRlKHZhbCwgU1JDLCBPW2tleV0gPyAnJyArIE9ba2V5XSA6IFRQTC5qb2luKFN0cmluZyhrZXkpKSk7XG4gIGlmIChPID09PSBnbG9iYWwpIHtcbiAgICBPW2tleV0gPSB2YWw7XG4gIH0gZWxzZSBpZiAoIXNhZmUpIHtcbiAgICBkZWxldGUgT1trZXldO1xuICAgIGhpZGUoTywga2V5LCB2YWwpO1xuICB9IGVsc2UgaWYgKE9ba2V5XSkge1xuICAgIE9ba2V5XSA9IHZhbDtcbiAgfSBlbHNlIHtcbiAgICBoaWRlKE8sIGtleSwgdmFsKTtcbiAgfVxuLy8gYWRkIGZha2UgRnVuY3Rpb24jdG9TdHJpbmcgZm9yIGNvcnJlY3Qgd29yayB3cmFwcGVkIG1ldGhvZHMgLyBjb25zdHJ1Y3RvcnMgd2l0aCBtZXRob2RzIGxpa2UgTG9EYXNoIGlzTmF0aXZlXG59KShGdW5jdGlvbi5wcm90b3R5cGUsIFRPX1NUUklORywgZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gIHJldHVybiB0eXBlb2YgdGhpcyA9PSAnZnVuY3Rpb24nICYmIHRoaXNbU1JDXSB8fCAkdG9TdHJpbmcuY2FsbCh0aGlzKTtcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19yZWRlZmluZS5qc1xuLy8gbW9kdWxlIGlkID0gMTMzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///133\n"); /***/ }), /* 134 */ @@ -904,13 +905,13 @@ eval("// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) /* 137 */ /***/ (function(module, exports, __webpack_require__) { -eval("var global = __webpack_require__(32);\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function (key) {\n return store[key] || (store[key] = {});\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19zaGFyZWQuanM/NTU2OCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0Esa0RBQWtEO0FBQ2xEO0FBQ0EsdUNBQXVDO0FBQ3ZDIiwiZmlsZSI6IjEzNy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbnZhciBTSEFSRUQgPSAnX19jb3JlLWpzX3NoYXJlZF9fJztcbnZhciBzdG9yZSA9IGdsb2JhbFtTSEFSRURdIHx8IChnbG9iYWxbU0hBUkVEXSA9IHt9KTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gc3RvcmVba2V5XSB8fCAoc3RvcmVba2V5XSA9IHt9KTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3NoYXJlZC5qc1xuLy8gbW9kdWxlIGlkID0gMTM3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///137\n"); +eval("var global = __webpack_require__(31);\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function (key) {\n return store[key] || (store[key] = {});\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19zaGFyZWQuanM/NTU2OCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0Esa0RBQWtEO0FBQ2xEO0FBQ0EsdUNBQXVDO0FBQ3ZDIiwiZmlsZSI6IjEzNy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbnZhciBTSEFSRUQgPSAnX19jb3JlLWpzX3NoYXJlZF9fJztcbnZhciBzdG9yZSA9IGdsb2JhbFtTSEFSRURdIHx8IChnbG9iYWxbU0hBUkVEXSA9IHt9KTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gc3RvcmVba2V5XSB8fCAoc3RvcmVba2V5XSA9IHt9KTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3NoYXJlZC5qc1xuLy8gbW9kdWxlIGlkID0gMTM3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///137\n"); /***/ }), /* 138 */ /***/ (function(module, exports, __webpack_require__) { -eval("// 7.2.8 IsRegExp(argument)\nvar isObject = __webpack_require__(31);\nvar cof = __webpack_require__(139);\nvar MATCH = __webpack_require__(75)('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pcy1yZWdleHAuanM/YmI0MyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjEzOC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIDcuMi44IElzUmVnRXhwKGFyZ3VtZW50KVxudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgY29mID0gcmVxdWlyZSgnLi9fY29mJyk7XG52YXIgTUFUQ0ggPSByZXF1aXJlKCcuL193a3MnKSgnbWF0Y2gnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBpc1JlZ0V4cDtcbiAgcmV0dXJuIGlzT2JqZWN0KGl0KSAmJiAoKGlzUmVnRXhwID0gaXRbTUFUQ0hdKSAhPT0gdW5kZWZpbmVkID8gISFpc1JlZ0V4cCA6IGNvZihpdCkgPT0gJ1JlZ0V4cCcpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXMtcmVnZXhwLmpzXG4vLyBtb2R1bGUgaWQgPSAxMzhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///138\n"); +eval("// 7.2.8 IsRegExp(argument)\nvar isObject = __webpack_require__(30);\nvar cof = __webpack_require__(139);\nvar MATCH = __webpack_require__(79)('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pcy1yZWdleHAuanM/YmI0MyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjEzOC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIDcuMi44IElzUmVnRXhwKGFyZ3VtZW50KVxudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgY29mID0gcmVxdWlyZSgnLi9fY29mJyk7XG52YXIgTUFUQ0ggPSByZXF1aXJlKCcuL193a3MnKSgnbWF0Y2gnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBpc1JlZ0V4cDtcbiAgcmV0dXJuIGlzT2JqZWN0KGl0KSAmJiAoKGlzUmVnRXhwID0gaXRbTUFUQ0hdKSAhPT0gdW5kZWZpbmVkID8gISFpc1JlZ0V4cCA6IGNvZihpdCkgPT0gJ1JlZ0V4cCcpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXMtcmVnZXhwLmpzXG4vLyBtb2R1bGUgaWQgPSAxMzhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///138\n"); /***/ }), /* 139 */ @@ -934,76 +935,76 @@ eval("module.exports = __webpack_require__(142);//# sourceURL=[module]\n//# sour /* 142 */ /***/ (function(module, exports, __webpack_require__) { -eval("__webpack_require__(33);\n__webpack_require__(149);\nmodule.exports = __webpack_require__(2).Array.from;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL2FycmF5L2Zyb20uanM/ZTczNyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMTQyLmpzIiwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYuc3RyaW5nLml0ZXJhdG9yJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5hcnJheS5mcm9tJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5BcnJheS5mcm9tO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL2FycmF5L2Zyb20uanNcbi8vIG1vZHVsZSBpZCA9IDE0MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///142\n"); +eval("__webpack_require__(32);\n__webpack_require__(149);\nmodule.exports = __webpack_require__(1).Array.from;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL2FycmF5L2Zyb20uanM/ZTczNyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMTQyLmpzIiwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYuc3RyaW5nLml0ZXJhdG9yJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5hcnJheS5mcm9tJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5BcnJheS5mcm9tO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL2FycmF5L2Zyb20uanNcbi8vIG1vZHVsZSBpZCA9IDE0MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///142\n"); /***/ }), /* 143 */ /***/ (function(module, exports, __webpack_require__) { -eval("var toInteger = __webpack_require__(45);\nvar defined = __webpack_require__(38);\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3N0cmluZy1hdC5qcz84N2FlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMTQzLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBkZWZpbmVkID0gcmVxdWlyZSgnLi9fZGVmaW5lZCcpO1xuLy8gdHJ1ZSAgLT4gU3RyaW5nI2F0XG4vLyBmYWxzZSAtPiBTdHJpbmcjY29kZVBvaW50QXRcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKFRPX1NUUklORykge1xuICByZXR1cm4gZnVuY3Rpb24gKHRoYXQsIHBvcykge1xuICAgIHZhciBzID0gU3RyaW5nKGRlZmluZWQodGhhdCkpO1xuICAgIHZhciBpID0gdG9JbnRlZ2VyKHBvcyk7XG4gICAgdmFyIGwgPSBzLmxlbmd0aDtcbiAgICB2YXIgYSwgYjtcbiAgICBpZiAoaSA8IDAgfHwgaSA+PSBsKSByZXR1cm4gVE9fU1RSSU5HID8gJycgOiB1bmRlZmluZWQ7XG4gICAgYSA9IHMuY2hhckNvZGVBdChpKTtcbiAgICByZXR1cm4gYSA8IDB4ZDgwMCB8fCBhID4gMHhkYmZmIHx8IGkgKyAxID09PSBsIHx8IChiID0gcy5jaGFyQ29kZUF0KGkgKyAxKSkgPCAweGRjMDAgfHwgYiA+IDB4ZGZmZlxuICAgICAgPyBUT19TVFJJTkcgPyBzLmNoYXJBdChpKSA6IGFcbiAgICAgIDogVE9fU1RSSU5HID8gcy5zbGljZShpLCBpICsgMikgOiAoYSAtIDB4ZDgwMCA8PCAxMCkgKyAoYiAtIDB4ZGMwMCkgKyAweDEwMDAwO1xuICB9O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19zdHJpbmctYXQuanNcbi8vIG1vZHVsZSBpZCA9IDE0M1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///143\n"); +eval("var toInteger = __webpack_require__(47);\nvar defined = __webpack_require__(40);\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3N0cmluZy1hdC5qcz84N2FlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMTQzLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBkZWZpbmVkID0gcmVxdWlyZSgnLi9fZGVmaW5lZCcpO1xuLy8gdHJ1ZSAgLT4gU3RyaW5nI2F0XG4vLyBmYWxzZSAtPiBTdHJpbmcjY29kZVBvaW50QXRcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKFRPX1NUUklORykge1xuICByZXR1cm4gZnVuY3Rpb24gKHRoYXQsIHBvcykge1xuICAgIHZhciBzID0gU3RyaW5nKGRlZmluZWQodGhhdCkpO1xuICAgIHZhciBpID0gdG9JbnRlZ2VyKHBvcyk7XG4gICAgdmFyIGwgPSBzLmxlbmd0aDtcbiAgICB2YXIgYSwgYjtcbiAgICBpZiAoaSA8IDAgfHwgaSA+PSBsKSByZXR1cm4gVE9fU1RSSU5HID8gJycgOiB1bmRlZmluZWQ7XG4gICAgYSA9IHMuY2hhckNvZGVBdChpKTtcbiAgICByZXR1cm4gYSA8IDB4ZDgwMCB8fCBhID4gMHhkYmZmIHx8IGkgKyAxID09PSBsIHx8IChiID0gcy5jaGFyQ29kZUF0KGkgKyAxKSkgPCAweGRjMDAgfHwgYiA+IDB4ZGZmZlxuICAgICAgPyBUT19TVFJJTkcgPyBzLmNoYXJBdChpKSA6IGFcbiAgICAgIDogVE9fU1RSSU5HID8gcy5zbGljZShpLCBpICsgMikgOiAoYSAtIDB4ZDgwMCA8PCAxMCkgKyAoYiAtIDB4ZGMwMCkgKyAweDEwMDAwO1xuICB9O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19zdHJpbmctYXQuanNcbi8vIG1vZHVsZSBpZCA9IDE0M1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///143\n"); /***/ }), /* 144 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\nvar create = __webpack_require__(47);\nvar descriptor = __webpack_require__(22);\nvar setToStringTag = __webpack_require__(51);\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(19)(IteratorPrototype, __webpack_require__(4)('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY3JlYXRlLmpzP2Y3ODUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDRGQUFrRixhQUFhLEVBQUU7O0FBRWpHO0FBQ0EscURBQXFELDRCQUE0QjtBQUNqRjtBQUNBIiwiZmlsZSI6IjE0NC5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJyk7XG52YXIgZGVzY3JpcHRvciA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4vX3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgSXRlcmF0b3JQcm90b3R5cGUgPSB7fTtcblxuLy8gMjUuMS4yLjEuMSAlSXRlcmF0b3JQcm90b3R5cGUlW0BAaXRlcmF0b3JdKClcbnJlcXVpcmUoJy4vX2hpZGUnKShJdGVyYXRvclByb3RvdHlwZSwgcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyksIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCkge1xuICBDb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBjcmVhdGUoSXRlcmF0b3JQcm90b3R5cGUsIHsgbmV4dDogZGVzY3JpcHRvcigxLCBuZXh0KSB9KTtcbiAgc2V0VG9TdHJpbmdUYWcoQ29uc3RydWN0b3IsIE5BTUUgKyAnIEl0ZXJhdG9yJyk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY3JlYXRlLmpzXG4vLyBtb2R1bGUgaWQgPSAxNDRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///144\n"); +eval("\nvar create = __webpack_require__(49);\nvar descriptor = __webpack_require__(20);\nvar setToStringTag = __webpack_require__(53);\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(16)(IteratorPrototype, __webpack_require__(2)('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY3JlYXRlLmpzP2Y3ODUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDRGQUFrRixhQUFhLEVBQUU7O0FBRWpHO0FBQ0EscURBQXFELDRCQUE0QjtBQUNqRjtBQUNBIiwiZmlsZSI6IjE0NC5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJyk7XG52YXIgZGVzY3JpcHRvciA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4vX3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgSXRlcmF0b3JQcm90b3R5cGUgPSB7fTtcblxuLy8gMjUuMS4yLjEuMSAlSXRlcmF0b3JQcm90b3R5cGUlW0BAaXRlcmF0b3JdKClcbnJlcXVpcmUoJy4vX2hpZGUnKShJdGVyYXRvclByb3RvdHlwZSwgcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyksIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCkge1xuICBDb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBjcmVhdGUoSXRlcmF0b3JQcm90b3R5cGUsIHsgbmV4dDogZGVzY3JpcHRvcigxLCBuZXh0KSB9KTtcbiAgc2V0VG9TdHJpbmdUYWcoQ29uc3RydWN0b3IsIE5BTUUgKyAnIEl0ZXJhdG9yJyk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY3JlYXRlLmpzXG4vLyBtb2R1bGUgaWQgPSAxNDRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///144\n"); /***/ }), /* 145 */ /***/ (function(module, exports, __webpack_require__) { -eval("var dP = __webpack_require__(10);\nvar anObject = __webpack_require__(14);\nvar getKeys = __webpack_require__(24);\n\nmodule.exports = __webpack_require__(13) ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1kcHMuanM/YWEyYSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjE0NS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBkUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgZ2V0S2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzIDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyhPLCBQcm9wZXJ0aWVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICB2YXIga2V5cyA9IGdldEtleXMoUHJvcGVydGllcyk7XG4gIHZhciBsZW5ndGggPSBrZXlzLmxlbmd0aDtcbiAgdmFyIGkgPSAwO1xuICB2YXIgUDtcbiAgd2hpbGUgKGxlbmd0aCA+IGkpIGRQLmYoTywgUCA9IGtleXNbaSsrXSwgUHJvcGVydGllc1tQXSk7XG4gIHJldHVybiBPO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZHBzLmpzXG4vLyBtb2R1bGUgaWQgPSAxNDVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///145\n"); +eval("var dP = __webpack_require__(7);\nvar anObject = __webpack_require__(11);\nvar getKeys = __webpack_require__(22);\n\nmodule.exports = __webpack_require__(10) ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1kcHMuanM/YWEyYSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjE0NS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBkUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgZ2V0S2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzIDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyhPLCBQcm9wZXJ0aWVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICB2YXIga2V5cyA9IGdldEtleXMoUHJvcGVydGllcyk7XG4gIHZhciBsZW5ndGggPSBrZXlzLmxlbmd0aDtcbiAgdmFyIGkgPSAwO1xuICB2YXIgUDtcbiAgd2hpbGUgKGxlbmd0aCA+IGkpIGRQLmYoTywgUCA9IGtleXNbaSsrXSwgUHJvcGVydGllc1tQXSk7XG4gIHJldHVybiBPO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZHBzLmpzXG4vLyBtb2R1bGUgaWQgPSAxNDVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///145\n"); /***/ }), /* 146 */ /***/ (function(module, exports, __webpack_require__) { -eval("// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(8);\nvar toLength = __webpack_require__(79);\nvar toAbsoluteIndex = __webpack_require__(147);\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FycmF5LWluY2x1ZGVzLmpzP2JjNTciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxZQUFZLGVBQWU7QUFDaEM7QUFDQSxLQUFLO0FBQ0w7QUFDQSIsImZpbGUiOiIxNDYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBmYWxzZSAtPiBBcnJheSNpbmRleE9mXG4vLyB0cnVlICAtPiBBcnJheSNpbmNsdWRlc1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4vX3RvLWxlbmd0aCcpO1xudmFyIHRvQWJzb2x1dGVJbmRleCA9IHJlcXVpcmUoJy4vX3RvLWFic29sdXRlLWluZGV4Jyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChJU19JTkNMVURFUykge1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBlbCwgZnJvbUluZGV4KSB7XG4gICAgdmFyIE8gPSB0b0lPYmplY3QoJHRoaXMpO1xuICAgIHZhciBsZW5ndGggPSB0b0xlbmd0aChPLmxlbmd0aCk7XG4gICAgdmFyIGluZGV4ID0gdG9BYnNvbHV0ZUluZGV4KGZyb21JbmRleCwgbGVuZ3RoKTtcbiAgICB2YXIgdmFsdWU7XG4gICAgLy8gQXJyYXkjaW5jbHVkZXMgdXNlcyBTYW1lVmFsdWVaZXJvIGVxdWFsaXR5IGFsZ29yaXRobVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgICBpZiAoSVNfSU5DTFVERVMgJiYgZWwgIT0gZWwpIHdoaWxlIChsZW5ndGggPiBpbmRleCkge1xuICAgICAgdmFsdWUgPSBPW2luZGV4KytdO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuICAgICAgaWYgKHZhbHVlICE9IHZhbHVlKSByZXR1cm4gdHJ1ZTtcbiAgICAvLyBBcnJheSNpbmRleE9mIGlnbm9yZXMgaG9sZXMsIEFycmF5I2luY2x1ZGVzIC0gbm90XG4gICAgfSBlbHNlIGZvciAoO2xlbmd0aCA+IGluZGV4OyBpbmRleCsrKSBpZiAoSVNfSU5DTFVERVMgfHwgaW5kZXggaW4gTykge1xuICAgICAgaWYgKE9baW5kZXhdID09PSBlbCkgcmV0dXJuIElTX0lOQ0xVREVTIHx8IGluZGV4IHx8IDA7XG4gICAgfSByZXR1cm4gIUlTX0lOQ0xVREVTICYmIC0xO1xuICB9O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19hcnJheS1pbmNsdWRlcy5qc1xuLy8gbW9kdWxlIGlkID0gMTQ2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///146\n"); +eval("// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(5);\nvar toLength = __webpack_require__(83);\nvar toAbsoluteIndex = __webpack_require__(147);\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FycmF5LWluY2x1ZGVzLmpzP2JjNTciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxZQUFZLGVBQWU7QUFDaEM7QUFDQSxLQUFLO0FBQ0w7QUFDQSIsImZpbGUiOiIxNDYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBmYWxzZSAtPiBBcnJheSNpbmRleE9mXG4vLyB0cnVlICAtPiBBcnJheSNpbmNsdWRlc1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4vX3RvLWxlbmd0aCcpO1xudmFyIHRvQWJzb2x1dGVJbmRleCA9IHJlcXVpcmUoJy4vX3RvLWFic29sdXRlLWluZGV4Jyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChJU19JTkNMVURFUykge1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBlbCwgZnJvbUluZGV4KSB7XG4gICAgdmFyIE8gPSB0b0lPYmplY3QoJHRoaXMpO1xuICAgIHZhciBsZW5ndGggPSB0b0xlbmd0aChPLmxlbmd0aCk7XG4gICAgdmFyIGluZGV4ID0gdG9BYnNvbHV0ZUluZGV4KGZyb21JbmRleCwgbGVuZ3RoKTtcbiAgICB2YXIgdmFsdWU7XG4gICAgLy8gQXJyYXkjaW5jbHVkZXMgdXNlcyBTYW1lVmFsdWVaZXJvIGVxdWFsaXR5IGFsZ29yaXRobVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgICBpZiAoSVNfSU5DTFVERVMgJiYgZWwgIT0gZWwpIHdoaWxlIChsZW5ndGggPiBpbmRleCkge1xuICAgICAgdmFsdWUgPSBPW2luZGV4KytdO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuICAgICAgaWYgKHZhbHVlICE9IHZhbHVlKSByZXR1cm4gdHJ1ZTtcbiAgICAvLyBBcnJheSNpbmRleE9mIGlnbm9yZXMgaG9sZXMsIEFycmF5I2luY2x1ZGVzIC0gbm90XG4gICAgfSBlbHNlIGZvciAoO2xlbmd0aCA+IGluZGV4OyBpbmRleCsrKSBpZiAoSVNfSU5DTFVERVMgfHwgaW5kZXggaW4gTykge1xuICAgICAgaWYgKE9baW5kZXhdID09PSBlbCkgcmV0dXJuIElTX0lOQ0xVREVTIHx8IGluZGV4IHx8IDA7XG4gICAgfSByZXR1cm4gIUlTX0lOQ0xVREVTICYmIC0xO1xuICB9O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19hcnJheS1pbmNsdWRlcy5qc1xuLy8gbW9kdWxlIGlkID0gMTQ2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///146\n"); /***/ }), /* 147 */ /***/ (function(module, exports, __webpack_require__) { -eval("var toInteger = __webpack_require__(45);\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWFic29sdXRlLWluZGV4LmpzPzdlNDAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMTQ3LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBtYXggPSBNYXRoLm1heDtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGluZGV4LCBsZW5ndGgpIHtcbiAgaW5kZXggPSB0b0ludGVnZXIoaW5kZXgpO1xuICByZXR1cm4gaW5kZXggPCAwID8gbWF4KGluZGV4ICsgbGVuZ3RoLCAwKSA6IG1pbihpbmRleCwgbGVuZ3RoKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8tYWJzb2x1dGUtaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDE0N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///147\n"); +eval("var toInteger = __webpack_require__(47);\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWFic29sdXRlLWluZGV4LmpzPzdlNDAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMTQ3LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBtYXggPSBNYXRoLm1heDtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGluZGV4LCBsZW5ndGgpIHtcbiAgaW5kZXggPSB0b0ludGVnZXIoaW5kZXgpO1xuICByZXR1cm4gaW5kZXggPCAwID8gbWF4KGluZGV4ICsgbGVuZ3RoLCAwKSA6IG1pbihpbmRleCwgbGVuZ3RoKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8tYWJzb2x1dGUtaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDE0N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///147\n"); /***/ }), /* 148 */ /***/ (function(module, exports, __webpack_require__) { -eval("var document = __webpack_require__(9).document;\nmodule.exports = document && document.documentElement;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2h0bWwuanM/NDRmMiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBIiwiZmlsZSI6IjE0OC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBkb2N1bWVudCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLmRvY3VtZW50O1xubW9kdWxlLmV4cG9ydHMgPSBkb2N1bWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faHRtbC5qc1xuLy8gbW9kdWxlIGlkID0gMTQ4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///148\n"); +eval("var document = __webpack_require__(6).document;\nmodule.exports = document && document.documentElement;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2h0bWwuanM/NDRmMiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBIiwiZmlsZSI6IjE0OC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBkb2N1bWVudCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLmRvY3VtZW50O1xubW9kdWxlLmV4cG9ydHMgPSBkb2N1bWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faHRtbC5qc1xuLy8gbW9kdWxlIGlkID0gMTQ4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///148\n"); /***/ }), /* 149 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\nvar ctx = __webpack_require__(41);\nvar $export = __webpack_require__(6);\nvar toObject = __webpack_require__(35);\nvar call = __webpack_require__(150);\nvar isArrayIter = __webpack_require__(151);\nvar toLength = __webpack_require__(79);\nvar createProperty = __webpack_require__(152);\nvar getIterFn = __webpack_require__(81);\n\n$export($export.S + $export.F * !__webpack_require__(153)(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LmFycmF5LmZyb20uanM/YWIyMiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsMkVBQTRFLGtCQUFrQixFQUFFO0FBQ2hHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdURBQXVELGdDQUFnQztBQUN2RjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0Esa0NBQWtDLGdCQUFnQjtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDIiwiZmlsZSI6IjE0OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcbnZhciBjdHggPSByZXF1aXJlKCcuL19jdHgnKTtcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciBjYWxsID0gcmVxdWlyZSgnLi9faXRlci1jYWxsJyk7XG52YXIgaXNBcnJheUl0ZXIgPSByZXF1aXJlKCcuL19pcy1hcnJheS1pdGVyJyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuL190by1sZW5ndGgnKTtcbnZhciBjcmVhdGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vX2NyZWF0ZS1wcm9wZXJ0eScpO1xudmFyIGdldEl0ZXJGbiA9IHJlcXVpcmUoJy4vY29yZS5nZXQtaXRlcmF0b3ItbWV0aG9kJyk7XG5cbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogIXJlcXVpcmUoJy4vX2l0ZXItZGV0ZWN0JykoZnVuY3Rpb24gKGl0ZXIpIHsgQXJyYXkuZnJvbShpdGVyKTsgfSksICdBcnJheScsIHtcbiAgLy8gMjIuMS4yLjEgQXJyYXkuZnJvbShhcnJheUxpa2UsIG1hcGZuID0gdW5kZWZpbmVkLCB0aGlzQXJnID0gdW5kZWZpbmVkKVxuICBmcm9tOiBmdW5jdGlvbiBmcm9tKGFycmF5TGlrZSAvKiAsIG1hcGZuID0gdW5kZWZpbmVkLCB0aGlzQXJnID0gdW5kZWZpbmVkICovKSB7XG4gICAgdmFyIE8gPSB0b09iamVjdChhcnJheUxpa2UpO1xuICAgIHZhciBDID0gdHlwZW9mIHRoaXMgPT0gJ2Z1bmN0aW9uJyA/IHRoaXMgOiBBcnJheTtcbiAgICB2YXIgYUxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyIG1hcGZuID0gYUxlbiA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7XG4gICAgdmFyIG1hcHBpbmcgPSBtYXBmbiAhPT0gdW5kZWZpbmVkO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgdmFyIGl0ZXJGbiA9IGdldEl0ZXJGbihPKTtcbiAgICB2YXIgbGVuZ3RoLCByZXN1bHQsIHN0ZXAsIGl0ZXJhdG9yO1xuICAgIGlmIChtYXBwaW5nKSBtYXBmbiA9IGN0eChtYXBmbiwgYUxlbiA+IDIgPyBhcmd1bWVudHNbMl0gOiB1bmRlZmluZWQsIDIpO1xuICAgIC8vIGlmIG9iamVjdCBpc24ndCBpdGVyYWJsZSBvciBpdCdzIGFycmF5IHdpdGggZGVmYXVsdCBpdGVyYXRvciAtIHVzZSBzaW1wbGUgY2FzZVxuICAgIGlmIChpdGVyRm4gIT0gdW5kZWZpbmVkICYmICEoQyA9PSBBcnJheSAmJiBpc0FycmF5SXRlcihpdGVyRm4pKSkge1xuICAgICAgZm9yIChpdGVyYXRvciA9IGl0ZXJGbi5jYWxsKE8pLCByZXN1bHQgPSBuZXcgQygpOyAhKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmU7IGluZGV4KyspIHtcbiAgICAgICAgY3JlYXRlUHJvcGVydHkocmVzdWx0LCBpbmRleCwgbWFwcGluZyA/IGNhbGwoaXRlcmF0b3IsIG1hcGZuLCBbc3RlcC52YWx1ZSwgaW5kZXhdLCB0cnVlKSA6IHN0ZXAudmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsZW5ndGggPSB0b0xlbmd0aChPLmxlbmd0aCk7XG4gICAgICBmb3IgKHJlc3VsdCA9IG5ldyBDKGxlbmd0aCk7IGxlbmd0aCA+IGluZGV4OyBpbmRleCsrKSB7XG4gICAgICAgIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgaW5kZXgsIG1hcHBpbmcgPyBtYXBmbihPW2luZGV4XSwgaW5kZXgpIDogT1tpbmRleF0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXN1bHQubGVuZ3RoID0gaW5kZXg7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYuYXJyYXkuZnJvbS5qc1xuLy8gbW9kdWxlIGlkID0gMTQ5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///149\n"); +eval("\nvar ctx = __webpack_require__(43);\nvar $export = __webpack_require__(3);\nvar toObject = __webpack_require__(34);\nvar call = __webpack_require__(150);\nvar isArrayIter = __webpack_require__(151);\nvar toLength = __webpack_require__(83);\nvar createProperty = __webpack_require__(152);\nvar getIterFn = __webpack_require__(85);\n\n$export($export.S + $export.F * !__webpack_require__(153)(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LmFycmF5LmZyb20uanM/YWIyMiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsMkVBQTRFLGtCQUFrQixFQUFFO0FBQ2hHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdURBQXVELGdDQUFnQztBQUN2RjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0Esa0NBQWtDLGdCQUFnQjtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDIiwiZmlsZSI6IjE0OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcbnZhciBjdHggPSByZXF1aXJlKCcuL19jdHgnKTtcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciBjYWxsID0gcmVxdWlyZSgnLi9faXRlci1jYWxsJyk7XG52YXIgaXNBcnJheUl0ZXIgPSByZXF1aXJlKCcuL19pcy1hcnJheS1pdGVyJyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuL190by1sZW5ndGgnKTtcbnZhciBjcmVhdGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vX2NyZWF0ZS1wcm9wZXJ0eScpO1xudmFyIGdldEl0ZXJGbiA9IHJlcXVpcmUoJy4vY29yZS5nZXQtaXRlcmF0b3ItbWV0aG9kJyk7XG5cbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogIXJlcXVpcmUoJy4vX2l0ZXItZGV0ZWN0JykoZnVuY3Rpb24gKGl0ZXIpIHsgQXJyYXkuZnJvbShpdGVyKTsgfSksICdBcnJheScsIHtcbiAgLy8gMjIuMS4yLjEgQXJyYXkuZnJvbShhcnJheUxpa2UsIG1hcGZuID0gdW5kZWZpbmVkLCB0aGlzQXJnID0gdW5kZWZpbmVkKVxuICBmcm9tOiBmdW5jdGlvbiBmcm9tKGFycmF5TGlrZSAvKiAsIG1hcGZuID0gdW5kZWZpbmVkLCB0aGlzQXJnID0gdW5kZWZpbmVkICovKSB7XG4gICAgdmFyIE8gPSB0b09iamVjdChhcnJheUxpa2UpO1xuICAgIHZhciBDID0gdHlwZW9mIHRoaXMgPT0gJ2Z1bmN0aW9uJyA/IHRoaXMgOiBBcnJheTtcbiAgICB2YXIgYUxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyIG1hcGZuID0gYUxlbiA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7XG4gICAgdmFyIG1hcHBpbmcgPSBtYXBmbiAhPT0gdW5kZWZpbmVkO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgdmFyIGl0ZXJGbiA9IGdldEl0ZXJGbihPKTtcbiAgICB2YXIgbGVuZ3RoLCByZXN1bHQsIHN0ZXAsIGl0ZXJhdG9yO1xuICAgIGlmIChtYXBwaW5nKSBtYXBmbiA9IGN0eChtYXBmbiwgYUxlbiA+IDIgPyBhcmd1bWVudHNbMl0gOiB1bmRlZmluZWQsIDIpO1xuICAgIC8vIGlmIG9iamVjdCBpc24ndCBpdGVyYWJsZSBvciBpdCdzIGFycmF5IHdpdGggZGVmYXVsdCBpdGVyYXRvciAtIHVzZSBzaW1wbGUgY2FzZVxuICAgIGlmIChpdGVyRm4gIT0gdW5kZWZpbmVkICYmICEoQyA9PSBBcnJheSAmJiBpc0FycmF5SXRlcihpdGVyRm4pKSkge1xuICAgICAgZm9yIChpdGVyYXRvciA9IGl0ZXJGbi5jYWxsKE8pLCByZXN1bHQgPSBuZXcgQygpOyAhKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmU7IGluZGV4KyspIHtcbiAgICAgICAgY3JlYXRlUHJvcGVydHkocmVzdWx0LCBpbmRleCwgbWFwcGluZyA/IGNhbGwoaXRlcmF0b3IsIG1hcGZuLCBbc3RlcC52YWx1ZSwgaW5kZXhdLCB0cnVlKSA6IHN0ZXAudmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsZW5ndGggPSB0b0xlbmd0aChPLmxlbmd0aCk7XG4gICAgICBmb3IgKHJlc3VsdCA9IG5ldyBDKGxlbmd0aCk7IGxlbmd0aCA+IGluZGV4OyBpbmRleCsrKSB7XG4gICAgICAgIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgaW5kZXgsIG1hcHBpbmcgPyBtYXBmbihPW2luZGV4XSwgaW5kZXgpIDogT1tpbmRleF0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXN1bHQubGVuZ3RoID0gaW5kZXg7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYuYXJyYXkuZnJvbS5qc1xuLy8gbW9kdWxlIGlkID0gMTQ5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///149\n"); /***/ }), /* 150 */ /***/ (function(module, exports, __webpack_require__) { -eval("// call something on iterator step with safe closing on error\nvar anObject = __webpack_require__(14);\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY2FsbC5qcz85YWM1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjE1MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGNhbGwgc29tZXRoaW5nIG9uIGl0ZXJhdG9yIHN0ZXAgd2l0aCBzYWZlIGNsb3Npbmcgb24gZXJyb3JcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlcmF0b3IsIGZuLCB2YWx1ZSwgZW50cmllcykge1xuICB0cnkge1xuICAgIHJldHVybiBlbnRyaWVzID8gZm4oYW5PYmplY3QodmFsdWUpWzBdLCB2YWx1ZVsxXSkgOiBmbih2YWx1ZSk7XG4gIC8vIDcuNC42IEl0ZXJhdG9yQ2xvc2UoaXRlcmF0b3IsIGNvbXBsZXRpb24pXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB2YXIgcmV0ID0gaXRlcmF0b3JbJ3JldHVybiddO1xuICAgIGlmIChyZXQgIT09IHVuZGVmaW5lZCkgYW5PYmplY3QocmV0LmNhbGwoaXRlcmF0b3IpKTtcbiAgICB0aHJvdyBlO1xuICB9XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY2FsbC5qc1xuLy8gbW9kdWxlIGlkID0gMTUwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///150\n"); +eval("// call something on iterator step with safe closing on error\nvar anObject = __webpack_require__(11);\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY2FsbC5qcz85YWM1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjE1MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGNhbGwgc29tZXRoaW5nIG9uIGl0ZXJhdG9yIHN0ZXAgd2l0aCBzYWZlIGNsb3Npbmcgb24gZXJyb3JcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlcmF0b3IsIGZuLCB2YWx1ZSwgZW50cmllcykge1xuICB0cnkge1xuICAgIHJldHVybiBlbnRyaWVzID8gZm4oYW5PYmplY3QodmFsdWUpWzBdLCB2YWx1ZVsxXSkgOiBmbih2YWx1ZSk7XG4gIC8vIDcuNC42IEl0ZXJhdG9yQ2xvc2UoaXRlcmF0b3IsIGNvbXBsZXRpb24pXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB2YXIgcmV0ID0gaXRlcmF0b3JbJ3JldHVybiddO1xuICAgIGlmIChyZXQgIT09IHVuZGVmaW5lZCkgYW5PYmplY3QocmV0LmNhbGwoaXRlcmF0b3IpKTtcbiAgICB0aHJvdyBlO1xuICB9XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY2FsbC5qc1xuLy8gbW9kdWxlIGlkID0gMTUwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///150\n"); /***/ }), /* 151 */ /***/ (function(module, exports, __webpack_require__) { -eval("// check on default Array iterator\nvar Iterators = __webpack_require__(20);\nvar ITERATOR = __webpack_require__(4)('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lzLWFycmF5LWl0ZXIuanM/MzIxYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMTUxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gY2hlY2sgb24gZGVmYXVsdCBBcnJheSBpdGVyYXRvclxudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xudmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgQXJyYXlQcm90byA9IEFycmF5LnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ICE9PSB1bmRlZmluZWQgJiYgKEl0ZXJhdG9ycy5BcnJheSA9PT0gaXQgfHwgQXJyYXlQcm90b1tJVEVSQVRPUl0gPT09IGl0KTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXMtYXJyYXktaXRlci5qc1xuLy8gbW9kdWxlIGlkID0gMTUxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///151\n"); +eval("// check on default Array iterator\nvar Iterators = __webpack_require__(17);\nvar ITERATOR = __webpack_require__(2)('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lzLWFycmF5LWl0ZXIuanM/MzIxYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMTUxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gY2hlY2sgb24gZGVmYXVsdCBBcnJheSBpdGVyYXRvclxudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xudmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgQXJyYXlQcm90byA9IEFycmF5LnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ICE9PSB1bmRlZmluZWQgJiYgKEl0ZXJhdG9ycy5BcnJheSA9PT0gaXQgfHwgQXJyYXlQcm90b1tJVEVSQVRPUl0gPT09IGl0KTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXMtYXJyYXktaXRlci5qc1xuLy8gbW9kdWxlIGlkID0gMTUxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///151\n"); /***/ }), /* 152 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\nvar $defineProperty = __webpack_require__(10);\nvar createDesc = __webpack_require__(22);\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NyZWF0ZS1wcm9wZXJ0eS5qcz83YzE0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIxNTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG52YXIgJGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgY3JlYXRlRGVzYyA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBpbmRleCwgdmFsdWUpIHtcbiAgaWYgKGluZGV4IGluIG9iamVjdCkgJGRlZmluZVByb3BlcnR5LmYob2JqZWN0LCBpbmRleCwgY3JlYXRlRGVzYygwLCB2YWx1ZSkpO1xuICBlbHNlIG9iamVjdFtpbmRleF0gPSB2YWx1ZTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY3JlYXRlLXByb3BlcnR5LmpzXG4vLyBtb2R1bGUgaWQgPSAxNTJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///152\n"); +eval("\nvar $defineProperty = __webpack_require__(7);\nvar createDesc = __webpack_require__(20);\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NyZWF0ZS1wcm9wZXJ0eS5qcz83YzE0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIxNTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG52YXIgJGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgY3JlYXRlRGVzYyA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBpbmRleCwgdmFsdWUpIHtcbiAgaWYgKGluZGV4IGluIG9iamVjdCkgJGRlZmluZVByb3BlcnR5LmYob2JqZWN0LCBpbmRleCwgY3JlYXRlRGVzYygwLCB2YWx1ZSkpO1xuICBlbHNlIG9iamVjdFtpbmRleF0gPSB2YWx1ZTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY3JlYXRlLXByb3BlcnR5LmpzXG4vLyBtb2R1bGUgaWQgPSAxNTJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///152\n"); /***/ }), /* 153 */ /***/ (function(module, exports, __webpack_require__) { -eval("var ITERATOR = __webpack_require__(4)('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItZGV0ZWN0LmpzPzc1OGQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsaUNBQWlDLHFCQUFxQjtBQUN0RDtBQUNBLGlDQUFpQyxTQUFTLEVBQUU7QUFDNUMsQ0FBQyxZQUFZOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QixTQUFTLHFCQUFxQjtBQUMzRCxpQ0FBaUMsYUFBYTtBQUM5QztBQUNBLEdBQUcsWUFBWTtBQUNmO0FBQ0EiLCJmaWxlIjoiMTUzLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgU0FGRV9DTE9TSU5HID0gZmFsc2U7XG5cbnRyeSB7XG4gIHZhciByaXRlciA9IFs3XVtJVEVSQVRPUl0oKTtcbiAgcml0ZXJbJ3JldHVybiddID0gZnVuY3Rpb24gKCkgeyBTQUZFX0NMT1NJTkcgPSB0cnVlOyB9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGhyb3ctbGl0ZXJhbFxuICBBcnJheS5mcm9tKHJpdGVyLCBmdW5jdGlvbiAoKSB7IHRocm93IDI7IH0pO1xufSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMsIHNraXBDbG9zaW5nKSB7XG4gIGlmICghc2tpcENsb3NpbmcgJiYgIVNBRkVfQ0xPU0lORykgcmV0dXJuIGZhbHNlO1xuICB2YXIgc2FmZSA9IGZhbHNlO1xuICB0cnkge1xuICAgIHZhciBhcnIgPSBbN107XG4gICAgdmFyIGl0ZXIgPSBhcnJbSVRFUkFUT1JdKCk7XG4gICAgaXRlci5uZXh0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4geyBkb25lOiBzYWZlID0gdHJ1ZSB9OyB9O1xuICAgIGFycltJVEVSQVRPUl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBpdGVyOyB9O1xuICAgIGV4ZWMoYXJyKTtcbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG4gIHJldHVybiBzYWZlO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pdGVyLWRldGVjdC5qc1xuLy8gbW9kdWxlIGlkID0gMTUzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///153\n"); +eval("var ITERATOR = __webpack_require__(2)('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItZGV0ZWN0LmpzPzc1OGQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsaUNBQWlDLHFCQUFxQjtBQUN0RDtBQUNBLGlDQUFpQyxTQUFTLEVBQUU7QUFDNUMsQ0FBQyxZQUFZOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QixTQUFTLHFCQUFxQjtBQUMzRCxpQ0FBaUMsYUFBYTtBQUM5QztBQUNBLEdBQUcsWUFBWTtBQUNmO0FBQ0EiLCJmaWxlIjoiMTUzLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgU0FGRV9DTE9TSU5HID0gZmFsc2U7XG5cbnRyeSB7XG4gIHZhciByaXRlciA9IFs3XVtJVEVSQVRPUl0oKTtcbiAgcml0ZXJbJ3JldHVybiddID0gZnVuY3Rpb24gKCkgeyBTQUZFX0NMT1NJTkcgPSB0cnVlOyB9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGhyb3ctbGl0ZXJhbFxuICBBcnJheS5mcm9tKHJpdGVyLCBmdW5jdGlvbiAoKSB7IHRocm93IDI7IH0pO1xufSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMsIHNraXBDbG9zaW5nKSB7XG4gIGlmICghc2tpcENsb3NpbmcgJiYgIVNBRkVfQ0xPU0lORykgcmV0dXJuIGZhbHNlO1xuICB2YXIgc2FmZSA9IGZhbHNlO1xuICB0cnkge1xuICAgIHZhciBhcnIgPSBbN107XG4gICAgdmFyIGl0ZXIgPSBhcnJbSVRFUkFUT1JdKCk7XG4gICAgaXRlci5uZXh0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4geyBkb25lOiBzYWZlID0gdHJ1ZSB9OyB9O1xuICAgIGFycltJVEVSQVRPUl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBpdGVyOyB9O1xuICAgIGV4ZWMoYXJyKTtcbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG4gIHJldHVybiBzYWZlO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pdGVyLWRldGVjdC5qc1xuLy8gbW9kdWxlIGlkID0gMTUzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///153\n"); /***/ }), /* 154 */ @@ -1015,14 +1016,14 @@ eval("module.exports = __webpack_require__(155);//# sourceURL=[module]\n//# sour /* 155 */ /***/ (function(module, exports, __webpack_require__) { -eval("__webpack_require__(53);\n__webpack_require__(33);\nmodule.exports = __webpack_require__(159);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL2lzLWl0ZXJhYmxlLmpzPzVkZGQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBIiwiZmlsZSI6IjE1NS5qcyIsInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4uL21vZHVsZXMvd2ViLmRvbS5pdGVyYWJsZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYuc3RyaW5nLml0ZXJhdG9yJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uL21vZHVsZXMvY29yZS5pcy1pdGVyYWJsZScpO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL2lzLWl0ZXJhYmxlLmpzXG4vLyBtb2R1bGUgaWQgPSAxNTVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///155\n"); +eval("__webpack_require__(55);\n__webpack_require__(32);\nmodule.exports = __webpack_require__(159);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL2lzLWl0ZXJhYmxlLmpzPzVkZGQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBIiwiZmlsZSI6IjE1NS5qcyIsInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4uL21vZHVsZXMvd2ViLmRvbS5pdGVyYWJsZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lczYuc3RyaW5nLml0ZXJhdG9yJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uL21vZHVsZXMvY29yZS5pcy1pdGVyYWJsZScpO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL2lzLWl0ZXJhYmxlLmpzXG4vLyBtb2R1bGUgaWQgPSAxNTVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///155\n"); /***/ }), /* 156 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\nvar addToUnscopables = __webpack_require__(157);\nvar step = __webpack_require__(158);\nvar Iterators = __webpack_require__(20);\nvar toIObject = __webpack_require__(8);\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(76)(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LmFycmF5Lml0ZXJhdG9yLmpzP2M0NjkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDO0FBQ2hDLGNBQWM7QUFDZCxpQkFBaUI7QUFDakI7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBIiwiZmlsZSI6IjE1Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcbnZhciBhZGRUb1Vuc2NvcGFibGVzID0gcmVxdWlyZSgnLi9fYWRkLXRvLXVuc2NvcGFibGVzJyk7XG52YXIgc3RlcCA9IHJlcXVpcmUoJy4vX2l0ZXItc3RlcCcpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcblxuLy8gMjIuMS4zLjQgQXJyYXkucHJvdG90eXBlLmVudHJpZXMoKVxuLy8gMjIuMS4zLjEzIEFycmF5LnByb3RvdHlwZS5rZXlzKClcbi8vIDIyLjEuMy4yOSBBcnJheS5wcm90b3R5cGUudmFsdWVzKClcbi8vIDIyLjEuMy4zMCBBcnJheS5wcm90b3R5cGVbQEBpdGVyYXRvcl0oKVxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19pdGVyLWRlZmluZScpKEFycmF5LCAnQXJyYXknLCBmdW5jdGlvbiAoaXRlcmF0ZWQsIGtpbmQpIHtcbiAgdGhpcy5fdCA9IHRvSU9iamVjdChpdGVyYXRlZCk7IC8vIHRhcmdldFxuICB0aGlzLl9pID0gMDsgICAgICAgICAgICAgICAgICAgLy8gbmV4dCBpbmRleFxuICB0aGlzLl9rID0ga2luZDsgICAgICAgICAgICAgICAgLy8ga2luZFxuLy8gMjIuMS41LjIuMSAlQXJyYXlJdGVyYXRvclByb3RvdHlwZSUubmV4dCgpXG59LCBmdW5jdGlvbiAoKSB7XG4gIHZhciBPID0gdGhpcy5fdDtcbiAgdmFyIGtpbmQgPSB0aGlzLl9rO1xuICB2YXIgaW5kZXggPSB0aGlzLl9pKys7XG4gIGlmICghTyB8fCBpbmRleCA+PSBPLmxlbmd0aCkge1xuICAgIHRoaXMuX3QgPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHN0ZXAoMSk7XG4gIH1cbiAgaWYgKGtpbmQgPT0gJ2tleXMnKSByZXR1cm4gc3RlcCgwLCBpbmRleCk7XG4gIGlmIChraW5kID09ICd2YWx1ZXMnKSByZXR1cm4gc3RlcCgwLCBPW2luZGV4XSk7XG4gIHJldHVybiBzdGVwKDAsIFtpbmRleCwgT1tpbmRleF1dKTtcbn0sICd2YWx1ZXMnKTtcblxuLy8gYXJndW1lbnRzTGlzdFtAQGl0ZXJhdG9yXSBpcyAlQXJyYXlQcm90b192YWx1ZXMlICg5LjQuNC42LCA5LjQuNC43KVxuSXRlcmF0b3JzLkFyZ3VtZW50cyA9IEl0ZXJhdG9ycy5BcnJheTtcblxuYWRkVG9VbnNjb3BhYmxlcygna2V5cycpO1xuYWRkVG9VbnNjb3BhYmxlcygndmFsdWVzJyk7XG5hZGRUb1Vuc2NvcGFibGVzKCdlbnRyaWVzJyk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYuYXJyYXkuaXRlcmF0b3IuanNcbi8vIG1vZHVsZSBpZCA9IDE1NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///156\n"); +eval("\nvar addToUnscopables = __webpack_require__(157);\nvar step = __webpack_require__(158);\nvar Iterators = __webpack_require__(17);\nvar toIObject = __webpack_require__(5);\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(80)(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LmFycmF5Lml0ZXJhdG9yLmpzP2M0NjkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDO0FBQ2hDLGNBQWM7QUFDZCxpQkFBaUI7QUFDakI7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBIiwiZmlsZSI6IjE1Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcbnZhciBhZGRUb1Vuc2NvcGFibGVzID0gcmVxdWlyZSgnLi9fYWRkLXRvLXVuc2NvcGFibGVzJyk7XG52YXIgc3RlcCA9IHJlcXVpcmUoJy4vX2l0ZXItc3RlcCcpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcblxuLy8gMjIuMS4zLjQgQXJyYXkucHJvdG90eXBlLmVudHJpZXMoKVxuLy8gMjIuMS4zLjEzIEFycmF5LnByb3RvdHlwZS5rZXlzKClcbi8vIDIyLjEuMy4yOSBBcnJheS5wcm90b3R5cGUudmFsdWVzKClcbi8vIDIyLjEuMy4zMCBBcnJheS5wcm90b3R5cGVbQEBpdGVyYXRvcl0oKVxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19pdGVyLWRlZmluZScpKEFycmF5LCAnQXJyYXknLCBmdW5jdGlvbiAoaXRlcmF0ZWQsIGtpbmQpIHtcbiAgdGhpcy5fdCA9IHRvSU9iamVjdChpdGVyYXRlZCk7IC8vIHRhcmdldFxuICB0aGlzLl9pID0gMDsgICAgICAgICAgICAgICAgICAgLy8gbmV4dCBpbmRleFxuICB0aGlzLl9rID0ga2luZDsgICAgICAgICAgICAgICAgLy8ga2luZFxuLy8gMjIuMS41LjIuMSAlQXJyYXlJdGVyYXRvclByb3RvdHlwZSUubmV4dCgpXG59LCBmdW5jdGlvbiAoKSB7XG4gIHZhciBPID0gdGhpcy5fdDtcbiAgdmFyIGtpbmQgPSB0aGlzLl9rO1xuICB2YXIgaW5kZXggPSB0aGlzLl9pKys7XG4gIGlmICghTyB8fCBpbmRleCA+PSBPLmxlbmd0aCkge1xuICAgIHRoaXMuX3QgPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHN0ZXAoMSk7XG4gIH1cbiAgaWYgKGtpbmQgPT0gJ2tleXMnKSByZXR1cm4gc3RlcCgwLCBpbmRleCk7XG4gIGlmIChraW5kID09ICd2YWx1ZXMnKSByZXR1cm4gc3RlcCgwLCBPW2luZGV4XSk7XG4gIHJldHVybiBzdGVwKDAsIFtpbmRleCwgT1tpbmRleF1dKTtcbn0sICd2YWx1ZXMnKTtcblxuLy8gYXJndW1lbnRzTGlzdFtAQGl0ZXJhdG9yXSBpcyAlQXJyYXlQcm90b192YWx1ZXMlICg5LjQuNC42LCA5LjQuNC43KVxuSXRlcmF0b3JzLkFyZ3VtZW50cyA9IEl0ZXJhdG9ycy5BcnJheTtcblxuYWRkVG9VbnNjb3BhYmxlcygna2V5cycpO1xuYWRkVG9VbnNjb3BhYmxlcygndmFsdWVzJyk7XG5hZGRUb1Vuc2NvcGFibGVzKCdlbnRyaWVzJyk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYuYXJyYXkuaXRlcmF0b3IuanNcbi8vIG1vZHVsZSBpZCA9IDE1NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///156\n"); /***/ }), /* 157 */ @@ -1040,7 +1041,7 @@ eval("module.exports = function (done, value) {\n return { value: value, done: /* 159 */ /***/ (function(module, exports, __webpack_require__) { -eval("var classof = __webpack_require__(82);\nvar ITERATOR = __webpack_require__(4)('iterator');\nvar Iterators = __webpack_require__(20);\nmodule.exports = __webpack_require__(2).isIterable = function (it) {\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n // eslint-disable-next-line no-prototype-builtins\n || Iterators.hasOwnProperty(classof(O));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvY29yZS5pcy1pdGVyYWJsZS5qcz9lNGY5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjE1OS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBjbGFzc29mID0gcmVxdWlyZSgnLi9fY2xhc3NvZicpO1xudmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2NvcmUnKS5pc0l0ZXJhYmxlID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBPID0gT2JqZWN0KGl0KTtcbiAgcmV0dXJuIE9bSVRFUkFUT1JdICE9PSB1bmRlZmluZWRcbiAgICB8fCAnQEBpdGVyYXRvcicgaW4gT1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbiAgICB8fCBJdGVyYXRvcnMuaGFzT3duUHJvcGVydHkoY2xhc3NvZihPKSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvY29yZS5pcy1pdGVyYWJsZS5qc1xuLy8gbW9kdWxlIGlkID0gMTU5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///159\n"); +eval("var classof = __webpack_require__(86);\nvar ITERATOR = __webpack_require__(2)('iterator');\nvar Iterators = __webpack_require__(17);\nmodule.exports = __webpack_require__(1).isIterable = function (it) {\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n // eslint-disable-next-line no-prototype-builtins\n || Iterators.hasOwnProperty(classof(O));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvY29yZS5pcy1pdGVyYWJsZS5qcz9lNGY5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjE1OS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBjbGFzc29mID0gcmVxdWlyZSgnLi9fY2xhc3NvZicpO1xudmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2NvcmUnKS5pc0l0ZXJhYmxlID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBPID0gT2JqZWN0KGl0KTtcbiAgcmV0dXJuIE9bSVRFUkFUT1JdICE9PSB1bmRlZmluZWRcbiAgICB8fCAnQEBpdGVyYXRvcicgaW4gT1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbiAgICB8fCBJdGVyYXRvcnMuaGFzT3duUHJvcGVydHkoY2xhc3NvZihPKSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvY29yZS5pcy1pdGVyYWJsZS5qc1xuLy8gbW9kdWxlIGlkID0gMTU5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///159\n"); /***/ }), /* 160 */ @@ -1052,31 +1053,31 @@ eval("module.exports = __webpack_require__(161);//# sourceURL=[module]\n//# sour /* 161 */ /***/ (function(module, exports, __webpack_require__) { -eval("__webpack_require__(53);\n__webpack_require__(33);\nmodule.exports = __webpack_require__(162);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL2dldC1pdGVyYXRvci5qcz83ZjE0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSIsImZpbGUiOiIxNjEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuLi9tb2R1bGVzL3dlYi5kb20uaXRlcmFibGUnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvcicpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi9tb2R1bGVzL2NvcmUuZ2V0LWl0ZXJhdG9yJyk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vZ2V0LWl0ZXJhdG9yLmpzXG4vLyBtb2R1bGUgaWQgPSAxNjFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///161\n"); +eval("__webpack_require__(55);\n__webpack_require__(32);\nmodule.exports = __webpack_require__(162);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL2dldC1pdGVyYXRvci5qcz83ZjE0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSIsImZpbGUiOiIxNjEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuLi9tb2R1bGVzL3dlYi5kb20uaXRlcmFibGUnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvcicpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi9tb2R1bGVzL2NvcmUuZ2V0LWl0ZXJhdG9yJyk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vZ2V0LWl0ZXJhdG9yLmpzXG4vLyBtb2R1bGUgaWQgPSAxNjFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///161\n"); /***/ }), /* 162 */ /***/ (function(module, exports, __webpack_require__) { -eval("var anObject = __webpack_require__(14);\nvar get = __webpack_require__(81);\nmodule.exports = __webpack_require__(2).getIterator = function (it) {\n var iterFn = get(it);\n if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvY29yZS5nZXQtaXRlcmF0b3IuanM/ODNjNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIxNjIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBnZXQgPSByZXF1aXJlKCcuL2NvcmUuZ2V0LWl0ZXJhdG9yLW1ldGhvZCcpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19jb3JlJykuZ2V0SXRlcmF0b3IgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIGl0ZXJGbiA9IGdldChpdCk7XG4gIGlmICh0eXBlb2YgaXRlckZuICE9ICdmdW5jdGlvbicpIHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGl0ZXJhYmxlIScpO1xuICByZXR1cm4gYW5PYmplY3QoaXRlckZuLmNhbGwoaXQpKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9jb3JlLmdldC1pdGVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gMTYyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///162\n"); +eval("var anObject = __webpack_require__(11);\nvar get = __webpack_require__(85);\nmodule.exports = __webpack_require__(1).getIterator = function (it) {\n var iterFn = get(it);\n if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvY29yZS5nZXQtaXRlcmF0b3IuanM/ODNjNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIxNjIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBnZXQgPSByZXF1aXJlKCcuL2NvcmUuZ2V0LWl0ZXJhdG9yLW1ldGhvZCcpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19jb3JlJykuZ2V0SXRlcmF0b3IgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIGl0ZXJGbiA9IGdldChpdCk7XG4gIGlmICh0eXBlb2YgaXRlckZuICE9ICdmdW5jdGlvbicpIHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGl0ZXJhYmxlIScpO1xuICByZXR1cm4gYW5PYmplY3QoaXRlckZuLmNhbGwoaXQpKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9jb3JlLmdldC1pdGVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gMTYyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///162\n"); /***/ }), /* 163 */ /***/ (function(module, exports, __webpack_require__) { -eval("__webpack_require__(164);\nmodule.exports = __webpack_require__(2).Object.entries;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9lbnRyaWVzLmpzP2MwNGIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSIsImZpbGUiOiIxNjMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNy5vYmplY3QuZW50cmllcycpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuT2JqZWN0LmVudHJpZXM7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2VudHJpZXMuanNcbi8vIG1vZHVsZSBpZCA9IDE2M1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///163\n"); +eval("__webpack_require__(164);\nmodule.exports = __webpack_require__(1).Object.entries;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9lbnRyaWVzLmpzP2MwNGIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSIsImZpbGUiOiIxNjMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNy5vYmplY3QuZW50cmllcycpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuT2JqZWN0LmVudHJpZXM7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2VudHJpZXMuanNcbi8vIG1vZHVsZSBpZCA9IDE2M1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///163\n"); /***/ }), /* 164 */ /***/ (function(module, exports, __webpack_require__) { -eval("// https://github.com/tc39/proposal-object-values-entries\nvar $export = __webpack_require__(6);\nvar $entries = __webpack_require__(165)(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it) {\n return $entries(it);\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM3Lm9iamVjdC5lbnRyaWVzLmpzPzgxMmIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyIsImZpbGUiOiIxNjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1vYmplY3QtdmFsdWVzLWVudHJpZXNcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgJGVudHJpZXMgPSByZXF1aXJlKCcuL19vYmplY3QtdG8tYXJyYXknKSh0cnVlKTtcblxuJGV4cG9ydCgkZXhwb3J0LlMsICdPYmplY3QnLCB7XG4gIGVudHJpZXM6IGZ1bmN0aW9uIGVudHJpZXMoaXQpIHtcbiAgICByZXR1cm4gJGVudHJpZXMoaXQpO1xuICB9XG59KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNy5vYmplY3QuZW50cmllcy5qc1xuLy8gbW9kdWxlIGlkID0gMTY0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///164\n"); +eval("// https://github.com/tc39/proposal-object-values-entries\nvar $export = __webpack_require__(3);\nvar $entries = __webpack_require__(165)(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it) {\n return $entries(it);\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM3Lm9iamVjdC5lbnRyaWVzLmpzPzgxMmIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyIsImZpbGUiOiIxNjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1vYmplY3QtdmFsdWVzLWVudHJpZXNcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgJGVudHJpZXMgPSByZXF1aXJlKCcuL19vYmplY3QtdG8tYXJyYXknKSh0cnVlKTtcblxuJGV4cG9ydCgkZXhwb3J0LlMsICdPYmplY3QnLCB7XG4gIGVudHJpZXM6IGZ1bmN0aW9uIGVudHJpZXMoaXQpIHtcbiAgICByZXR1cm4gJGVudHJpZXMoaXQpO1xuICB9XG59KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNy5vYmplY3QuZW50cmllcy5qc1xuLy8gbW9kdWxlIGlkID0gMTY0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///164\n"); /***/ }), /* 165 */ /***/ (function(module, exports, __webpack_require__) { -eval("var getKeys = __webpack_require__(24);\nvar toIObject = __webpack_require__(8);\nvar isEnum = __webpack_require__(21).f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) if (isEnum.call(O, key = keys[i++])) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n } return result;\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC10by1hcnJheS5qcz85OWI3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EiLCJmaWxlIjoiMTY1LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGdldEtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciBpc0VudW0gPSByZXF1aXJlKCcuL19vYmplY3QtcGllJykuZjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGlzRW50cmllcykge1xuICByZXR1cm4gZnVuY3Rpb24gKGl0KSB7XG4gICAgdmFyIE8gPSB0b0lPYmplY3QoaXQpO1xuICAgIHZhciBrZXlzID0gZ2V0S2V5cyhPKTtcbiAgICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gICAgdmFyIGkgPSAwO1xuICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICB2YXIga2V5O1xuICAgIHdoaWxlIChsZW5ndGggPiBpKSBpZiAoaXNFbnVtLmNhbGwoTywga2V5ID0ga2V5c1tpKytdKSkge1xuICAgICAgcmVzdWx0LnB1c2goaXNFbnRyaWVzID8gW2tleSwgT1trZXldXSA6IE9ba2V5XSk7XG4gICAgfSByZXR1cm4gcmVzdWx0O1xuICB9O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtdG8tYXJyYXkuanNcbi8vIG1vZHVsZSBpZCA9IDE2NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///165\n"); +eval("var getKeys = __webpack_require__(22);\nvar toIObject = __webpack_require__(5);\nvar isEnum = __webpack_require__(19).f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) if (isEnum.call(O, key = keys[i++])) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n } return result;\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC10by1hcnJheS5qcz85OWI3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EiLCJmaWxlIjoiMTY1LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGdldEtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciBpc0VudW0gPSByZXF1aXJlKCcuL19vYmplY3QtcGllJykuZjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGlzRW50cmllcykge1xuICByZXR1cm4gZnVuY3Rpb24gKGl0KSB7XG4gICAgdmFyIE8gPSB0b0lPYmplY3QoaXQpO1xuICAgIHZhciBrZXlzID0gZ2V0S2V5cyhPKTtcbiAgICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gICAgdmFyIGkgPSAwO1xuICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICB2YXIga2V5O1xuICAgIHdoaWxlIChsZW5ndGggPiBpKSBpZiAoaXNFbnVtLmNhbGwoTywga2V5ID0ga2V5c1tpKytdKSkge1xuICAgICAgcmVzdWx0LnB1c2goaXNFbnRyaWVzID8gW2tleSwgT1trZXldXSA6IE9ba2V5XSk7XG4gICAgfSByZXR1cm4gcmVzdWx0O1xuICB9O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtdG8tYXJyYXkuanNcbi8vIG1vZHVsZSBpZCA9IDE2NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///165\n"); /***/ }), /* 166 */ @@ -1095,7 +1096,7 @@ eval("/*! choices.js v3.0.3 | (c) 2018 Josh Johnson | https://github.com/jshjohn /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.up = exports.down = void 0;\n\nvar _delay2 = _interopRequireDefault(__webpack_require__(27));\n\nvar _getHiddenHeight = _interopRequireDefault(__webpack_require__(169));\n\nvar options = {\n timeoutDelay: 25\n};\n/**\n * Like jQuery's slideDown function - uses CSS3 transitions\n * @param {Node} elem Element to show and hide\n * @param {int} time Length of animation\n */\n\nvar down = function down(elem) {\n var time = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 400;\n var height = (0, _getHiddenHeight.default)(elem);\n elem.style.transition = \"max-height \".concat(time, \"ms ease 0s\");\n (0, _delay2.default)(function () {\n elem.style.maxHeight = \"\".concat(height, \"px\");\n elem.style.opacity = '1';\n }, options.timeoutDelay);\n (0, _delay2.default)(function () {\n elem.style.maxHeight = 'none';\n }, time + options.timeoutDelay);\n};\n/**\n * Slide element up\n * @param {Node} elem Element\n * @param {int} time Length of animation\n */\n\n\nexports.down = down;\n\nvar up = function up(elem) {\n var time = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 400;\n elem.style.maxHeight = \"\".concat(elem.offsetHeight, \"px\");\n (0, _delay2.default)(function () {\n elem.style.maxHeight = '0';\n }, options.timeoutDelay);\n (0, _delay2.default)(function () {\n elem.style.opacity = '0';\n }, time + options.timeoutDelay);\n};\n\nexports.up = up;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL3V0aWxzL2RvbS9zbGlkZS5qcz83YjNmIl0sIm5hbWVzIjpbIm9wdGlvbnMiLCJ0aW1lb3V0RGVsYXkiLCJkb3duIiwiZWxlbSIsInRpbWUiLCJoZWlnaHQiLCJzdHlsZSIsInRyYW5zaXRpb24iLCJtYXhIZWlnaHQiLCJvcGFjaXR5IiwidXAiLCJvZmZzZXRIZWlnaHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBUUE7O0FBRUEsSUFBTUEsVUFBVTtBQUNmQyxnQkFBYztBQURDLENBQWhCO0FBSUE7Ozs7OztBQUtPLElBQU1DLE9BQU8sU0FBUEEsSUFBTyxDQUFDQyxJQUFELEVBQXNCO0FBQUEsTUFBZkMsSUFBZSx1RUFBUixHQUFRO0FBQ3pDLE1BQU1DLFNBQVMsOEJBQWdCRixJQUFoQixDQUFmO0FBQ0FBLE9BQUtHLEtBQUwsQ0FBV0MsVUFBWCx3QkFBc0NILElBQXRDO0FBQ0EsdUJBQVEsWUFBTTtBQUNiRCxTQUFLRyxLQUFMLENBQVdFLFNBQVgsYUFBMEJILE1BQTFCO0FBQ0FGLFNBQUtHLEtBQUwsQ0FBV0csT0FBWCxHQUFxQixHQUFyQjtBQUNBLEdBSEQsRUFHR1QsUUFBUUMsWUFIWDtBQUlBLHVCQUFRLFlBQU07QUFDYkUsU0FBS0csS0FBTCxDQUFXRSxTQUFYLEdBQXVCLE1BQXZCO0FBQ0EsR0FGRCxFQUVJSixPQUFPSixRQUFRQyxZQUZuQjtBQUdBLENBVk07QUFZUDs7Ozs7Ozs7O0FBS08sSUFBTVMsS0FBSyxTQUFMQSxFQUFLLENBQUNQLElBQUQsRUFBc0I7QUFBQSxNQUFmQyxJQUFlLHVFQUFSLEdBQVE7QUFDdkNELE9BQUtHLEtBQUwsQ0FBV0UsU0FBWCxhQUEwQkwsS0FBS1EsWUFBL0I7QUFDQSx1QkFBUSxZQUFNO0FBQ2JSLFNBQUtHLEtBQUwsQ0FBV0UsU0FBWCxHQUF1QixHQUF2QjtBQUNBLEdBRkQsRUFFR1IsUUFBUUMsWUFGWDtBQUdBLHVCQUFRLFlBQU07QUFDYkUsU0FBS0csS0FBTCxDQUFXRyxPQUFYLEdBQXFCLEdBQXJCO0FBQ0EsR0FGRCxFQUVJTCxPQUFPSixRQUFRQyxZQUZuQjtBQUdBLENBUk0iLCJmaWxlIjoiMTY4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkVsZW1lbnQgdG8gc2xpZGUgZ2V0cyB0aGUgZm9sbG93aW5nIENTUzpcbiAgICBtYXgtaGVpZ2h0OiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiovXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgZ2V0SGlkZGVuSGVpZ2h0IGZyb20gJy4vZ2V0LWhpZGRlbi1oZWlnaHQnO1xuXG5jb25zdCBvcHRpb25zID0ge1xuXHR0aW1lb3V0RGVsYXk6IDI1LFxufTtcblxuLyoqXG4gKiBMaWtlIGpRdWVyeSdzIHNsaWRlRG93biBmdW5jdGlvbiAtIHVzZXMgQ1NTMyB0cmFuc2l0aW9uc1xuICogQHBhcmFtICB7Tm9kZX0gZWxlbSBFbGVtZW50IHRvIHNob3cgYW5kIGhpZGVcbiAqIEBwYXJhbSAge2ludH0gdGltZSBMZW5ndGggb2YgYW5pbWF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBkb3duID0gKGVsZW0sIHRpbWUgPSA0MDApID0+IHtcblx0Y29uc3QgaGVpZ2h0ID0gZ2V0SGlkZGVuSGVpZ2h0KGVsZW0pO1xuXHRlbGVtLnN0eWxlLnRyYW5zaXRpb24gPSBgbWF4LWhlaWdodCAke3RpbWV9bXMgZWFzZSAwc2A7XG5cdF8uZGVsYXkoKCkgPT4ge1xuXHRcdGVsZW0uc3R5bGUubWF4SGVpZ2h0ID0gYCR7aGVpZ2h0fXB4YDtcblx0XHRlbGVtLnN0eWxlLm9wYWNpdHkgPSAnMSc7XG5cdH0sIG9wdGlvbnMudGltZW91dERlbGF5KTtcblx0Xy5kZWxheSgoKSA9PiB7XG5cdFx0ZWxlbS5zdHlsZS5tYXhIZWlnaHQgPSAnbm9uZSc7XG5cdH0sICh0aW1lICsgb3B0aW9ucy50aW1lb3V0RGVsYXkpKTtcbn07XG5cbi8qKlxuICogU2xpZGUgZWxlbWVudCB1cFxuICogQHBhcmFtICB7Tm9kZX0gZWxlbSBFbGVtZW50XG4gKiBAcGFyYW0gIHtpbnR9IHRpbWUgTGVuZ3RoIG9mIGFuaW1hdGlvblxuICovXG5leHBvcnQgY29uc3QgdXAgPSAoZWxlbSwgdGltZSA9IDQwMCkgPT4ge1xuXHRlbGVtLnN0eWxlLm1heEhlaWdodCA9IGAke2VsZW0ub2Zmc2V0SGVpZ2h0fXB4YDtcblx0Xy5kZWxheSgoKSA9PiB7XG5cdFx0ZWxlbS5zdHlsZS5tYXhIZWlnaHQgPSAnMCc7XG5cdH0sIG9wdGlvbnMudGltZW91dERlbGF5KTtcblx0Xy5kZWxheSgoKSA9PiB7XG5cdFx0ZWxlbS5zdHlsZS5vcGFjaXR5ID0gJzAnO1xuXHR9LCAodGltZSArIG9wdGlvbnMudGltZW91dERlbGF5KSk7XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL2pzL3NyYy91dGlscy9kb20vc2xpZGUuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///168\n"); +eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.up = exports.down = void 0;\n\nvar _delay2 = _interopRequireDefault(__webpack_require__(26));\n\nvar _getHiddenHeight = _interopRequireDefault(__webpack_require__(169));\n\nvar options = {\n timeoutDelay: 25\n};\n/**\n * Like jQuery's slideDown function - uses CSS3 transitions\n * @param {Node} elem Element to show and hide\n * @param {int} time Length of animation\n */\n\nvar down = function down(elem) {\n var time = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 400;\n var height = (0, _getHiddenHeight.default)(elem);\n elem.style.transition = \"max-height \".concat(time, \"ms ease 0s\");\n (0, _delay2.default)(function () {\n elem.style.maxHeight = \"\".concat(height, \"px\");\n elem.style.opacity = '1';\n }, options.timeoutDelay);\n (0, _delay2.default)(function () {\n elem.style.maxHeight = 'none';\n }, time + options.timeoutDelay);\n};\n/**\n * Slide element up\n * @param {Node} elem Element\n * @param {int} time Length of animation\n */\n\n\nexports.down = down;\n\nvar up = function up(elem) {\n var time = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 400;\n elem.style.maxHeight = \"\".concat(elem.offsetHeight, \"px\");\n (0, _delay2.default)(function () {\n elem.style.maxHeight = '0';\n }, options.timeoutDelay);\n (0, _delay2.default)(function () {\n elem.style.opacity = '0';\n }, time + options.timeoutDelay);\n};\n\nexports.up = up;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL3V0aWxzL2RvbS9zbGlkZS5qcz83YjNmIl0sIm5hbWVzIjpbIm9wdGlvbnMiLCJ0aW1lb3V0RGVsYXkiLCJkb3duIiwiZWxlbSIsInRpbWUiLCJoZWlnaHQiLCJzdHlsZSIsInRyYW5zaXRpb24iLCJtYXhIZWlnaHQiLCJvcGFjaXR5IiwidXAiLCJvZmZzZXRIZWlnaHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBUUE7O0FBRUEsSUFBTUEsVUFBVTtBQUNmQyxnQkFBYztBQURDLENBQWhCO0FBSUE7Ozs7OztBQUtPLElBQU1DLE9BQU8sU0FBUEEsSUFBTyxDQUFDQyxJQUFELEVBQXNCO0FBQUEsTUFBZkMsSUFBZSx1RUFBUixHQUFRO0FBQ3pDLE1BQU1DLFNBQVMsOEJBQWdCRixJQUFoQixDQUFmO0FBQ0FBLE9BQUtHLEtBQUwsQ0FBV0MsVUFBWCx3QkFBc0NILElBQXRDO0FBQ0EsdUJBQVEsWUFBTTtBQUNiRCxTQUFLRyxLQUFMLENBQVdFLFNBQVgsYUFBMEJILE1BQTFCO0FBQ0FGLFNBQUtHLEtBQUwsQ0FBV0csT0FBWCxHQUFxQixHQUFyQjtBQUNBLEdBSEQsRUFHR1QsUUFBUUMsWUFIWDtBQUlBLHVCQUFRLFlBQU07QUFDYkUsU0FBS0csS0FBTCxDQUFXRSxTQUFYLEdBQXVCLE1BQXZCO0FBQ0EsR0FGRCxFQUVJSixPQUFPSixRQUFRQyxZQUZuQjtBQUdBLENBVk07QUFZUDs7Ozs7Ozs7O0FBS08sSUFBTVMsS0FBSyxTQUFMQSxFQUFLLENBQUNQLElBQUQsRUFBc0I7QUFBQSxNQUFmQyxJQUFlLHVFQUFSLEdBQVE7QUFDdkNELE9BQUtHLEtBQUwsQ0FBV0UsU0FBWCxhQUEwQkwsS0FBS1EsWUFBL0I7QUFDQSx1QkFBUSxZQUFNO0FBQ2JSLFNBQUtHLEtBQUwsQ0FBV0UsU0FBWCxHQUF1QixHQUF2QjtBQUNBLEdBRkQsRUFFR1IsUUFBUUMsWUFGWDtBQUdBLHVCQUFRLFlBQU07QUFDYkUsU0FBS0csS0FBTCxDQUFXRyxPQUFYLEdBQXFCLEdBQXJCO0FBQ0EsR0FGRCxFQUVJTCxPQUFPSixRQUFRQyxZQUZuQjtBQUdBLENBUk0iLCJmaWxlIjoiMTY4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkVsZW1lbnQgdG8gc2xpZGUgZ2V0cyB0aGUgZm9sbG93aW5nIENTUzpcbiAgICBtYXgtaGVpZ2h0OiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiovXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgZ2V0SGlkZGVuSGVpZ2h0IGZyb20gJy4vZ2V0LWhpZGRlbi1oZWlnaHQnO1xuXG5jb25zdCBvcHRpb25zID0ge1xuXHR0aW1lb3V0RGVsYXk6IDI1LFxufTtcblxuLyoqXG4gKiBMaWtlIGpRdWVyeSdzIHNsaWRlRG93biBmdW5jdGlvbiAtIHVzZXMgQ1NTMyB0cmFuc2l0aW9uc1xuICogQHBhcmFtICB7Tm9kZX0gZWxlbSBFbGVtZW50IHRvIHNob3cgYW5kIGhpZGVcbiAqIEBwYXJhbSAge2ludH0gdGltZSBMZW5ndGggb2YgYW5pbWF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBkb3duID0gKGVsZW0sIHRpbWUgPSA0MDApID0+IHtcblx0Y29uc3QgaGVpZ2h0ID0gZ2V0SGlkZGVuSGVpZ2h0KGVsZW0pO1xuXHRlbGVtLnN0eWxlLnRyYW5zaXRpb24gPSBgbWF4LWhlaWdodCAke3RpbWV9bXMgZWFzZSAwc2A7XG5cdF8uZGVsYXkoKCkgPT4ge1xuXHRcdGVsZW0uc3R5bGUubWF4SGVpZ2h0ID0gYCR7aGVpZ2h0fXB4YDtcblx0XHRlbGVtLnN0eWxlLm9wYWNpdHkgPSAnMSc7XG5cdH0sIG9wdGlvbnMudGltZW91dERlbGF5KTtcblx0Xy5kZWxheSgoKSA9PiB7XG5cdFx0ZWxlbS5zdHlsZS5tYXhIZWlnaHQgPSAnbm9uZSc7XG5cdH0sICh0aW1lICsgb3B0aW9ucy50aW1lb3V0RGVsYXkpKTtcbn07XG5cbi8qKlxuICogU2xpZGUgZWxlbWVudCB1cFxuICogQHBhcmFtICB7Tm9kZX0gZWxlbSBFbGVtZW50XG4gKiBAcGFyYW0gIHtpbnR9IHRpbWUgTGVuZ3RoIG9mIGFuaW1hdGlvblxuICovXG5leHBvcnQgY29uc3QgdXAgPSAoZWxlbSwgdGltZSA9IDQwMCkgPT4ge1xuXHRlbGVtLnN0eWxlLm1heEhlaWdodCA9IGAke2VsZW0ub2Zmc2V0SGVpZ2h0fXB4YDtcblx0Xy5kZWxheSgoKSA9PiB7XG5cdFx0ZWxlbS5zdHlsZS5tYXhIZWlnaHQgPSAnMCc7XG5cdH0sIG9wdGlvbnMudGltZW91dERlbGF5KTtcblx0Xy5kZWxheSgoKSA9PiB7XG5cdFx0ZWxlbS5zdHlsZS5vcGFjaXR5ID0gJzAnO1xuXHR9LCAodGltZSArIG9wdGlvbnMudGltZW91dERlbGF5KSk7XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL2pzL3NyYy91dGlscy9kb20vc2xpZGUuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///168\n"); /***/ }), /* 169 */ @@ -1115,37 +1116,37 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n /* 171 */ /***/ (function(module, exports, __webpack_require__) { -eval("var assignValue = __webpack_require__(84),\n copyObject = __webpack_require__(172),\n createAssigner = __webpack_require__(173),\n isArrayLike = __webpack_require__(55),\n isPrototype = __webpack_require__(89),\n keys = __webpack_require__(175);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2Fzc2lnbi5qcz8wNTQwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsVUFBVTtBQUNyQixhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsU0FBUztBQUN0QixVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQiLCJmaWxlIjoiMTcxLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGFzc2lnblZhbHVlID0gcmVxdWlyZSgnLi9fYXNzaWduVmFsdWUnKSxcbiAgICBjb3B5T2JqZWN0ID0gcmVxdWlyZSgnLi9fY29weU9iamVjdCcpLFxuICAgIGNyZWF0ZUFzc2lnbmVyID0gcmVxdWlyZSgnLi9fY3JlYXRlQXNzaWduZXInKSxcbiAgICBpc0FycmF5TGlrZSA9IHJlcXVpcmUoJy4vaXNBcnJheUxpa2UnKSxcbiAgICBpc1Byb3RvdHlwZSA9IHJlcXVpcmUoJy4vX2lzUHJvdG90eXBlJyksXG4gICAga2V5cyA9IHJlcXVpcmUoJy4va2V5cycpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEFzc2lnbnMgb3duIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgb2Ygc291cmNlIG9iamVjdHMgdG8gdGhlXG4gKiBkZXN0aW5hdGlvbiBvYmplY3QuIFNvdXJjZSBvYmplY3RzIGFyZSBhcHBsaWVkIGZyb20gbGVmdCB0byByaWdodC5cbiAqIFN1YnNlcXVlbnQgc291cmNlcyBvdmVyd3JpdGUgcHJvcGVydHkgYXNzaWdubWVudHMgb2YgcHJldmlvdXMgc291cmNlcy5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YCBhbmQgaXMgbG9vc2VseSBiYXNlZCBvblxuICogW2BPYmplY3QuYXNzaWduYF0oaHR0cHM6Ly9tZG4uaW8vT2JqZWN0L2Fzc2lnbikuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEwLjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAqIEBwYXJhbSB7Li4uT2JqZWN0fSBbc291cmNlc10gVGhlIHNvdXJjZSBvYmplY3RzLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqIEBzZWUgXy5hc3NpZ25JblxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiB9XG4gKlxuICogZnVuY3Rpb24gQmFyKCkge1xuICogICB0aGlzLmMgPSAzO1xuICogfVxuICpcbiAqIEZvby5wcm90b3R5cGUuYiA9IDI7XG4gKiBCYXIucHJvdG90eXBlLmQgPSA0O1xuICpcbiAqIF8uYXNzaWduKHsgJ2EnOiAwIH0sIG5ldyBGb28sIG5ldyBCYXIpO1xuICogLy8gPT4geyAnYSc6IDEsICdjJzogMyB9XG4gKi9cbnZhciBhc3NpZ24gPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSkge1xuICBpZiAoaXNQcm90b3R5cGUoc291cmNlKSB8fCBpc0FycmF5TGlrZShzb3VyY2UpKSB7XG4gICAgY29weU9iamVjdChzb3VyY2UsIGtleXMoc291cmNlKSwgb2JqZWN0KTtcbiAgICByZXR1cm47XG4gIH1cbiAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgYXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHNvdXJjZVtrZXldKTtcbiAgICB9XG4gIH1cbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGFzc2lnbjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9hc3NpZ24uanNcbi8vIG1vZHVsZSBpZCA9IDE3MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///171\n"); +eval("var assignValue = __webpack_require__(88),\n copyObject = __webpack_require__(172),\n createAssigner = __webpack_require__(173),\n isArrayLike = __webpack_require__(57),\n isPrototype = __webpack_require__(93),\n keys = __webpack_require__(175);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2Fzc2lnbi5qcz8wNTQwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsVUFBVTtBQUNyQixhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsU0FBUztBQUN0QixVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQiLCJmaWxlIjoiMTcxLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGFzc2lnblZhbHVlID0gcmVxdWlyZSgnLi9fYXNzaWduVmFsdWUnKSxcbiAgICBjb3B5T2JqZWN0ID0gcmVxdWlyZSgnLi9fY29weU9iamVjdCcpLFxuICAgIGNyZWF0ZUFzc2lnbmVyID0gcmVxdWlyZSgnLi9fY3JlYXRlQXNzaWduZXInKSxcbiAgICBpc0FycmF5TGlrZSA9IHJlcXVpcmUoJy4vaXNBcnJheUxpa2UnKSxcbiAgICBpc1Byb3RvdHlwZSA9IHJlcXVpcmUoJy4vX2lzUHJvdG90eXBlJyksXG4gICAga2V5cyA9IHJlcXVpcmUoJy4va2V5cycpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEFzc2lnbnMgb3duIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgb2Ygc291cmNlIG9iamVjdHMgdG8gdGhlXG4gKiBkZXN0aW5hdGlvbiBvYmplY3QuIFNvdXJjZSBvYmplY3RzIGFyZSBhcHBsaWVkIGZyb20gbGVmdCB0byByaWdodC5cbiAqIFN1YnNlcXVlbnQgc291cmNlcyBvdmVyd3JpdGUgcHJvcGVydHkgYXNzaWdubWVudHMgb2YgcHJldmlvdXMgc291cmNlcy5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YCBhbmQgaXMgbG9vc2VseSBiYXNlZCBvblxuICogW2BPYmplY3QuYXNzaWduYF0oaHR0cHM6Ly9tZG4uaW8vT2JqZWN0L2Fzc2lnbikuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEwLjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAqIEBwYXJhbSB7Li4uT2JqZWN0fSBbc291cmNlc10gVGhlIHNvdXJjZSBvYmplY3RzLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqIEBzZWUgXy5hc3NpZ25JblxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiB9XG4gKlxuICogZnVuY3Rpb24gQmFyKCkge1xuICogICB0aGlzLmMgPSAzO1xuICogfVxuICpcbiAqIEZvby5wcm90b3R5cGUuYiA9IDI7XG4gKiBCYXIucHJvdG90eXBlLmQgPSA0O1xuICpcbiAqIF8uYXNzaWduKHsgJ2EnOiAwIH0sIG5ldyBGb28sIG5ldyBCYXIpO1xuICogLy8gPT4geyAnYSc6IDEsICdjJzogMyB9XG4gKi9cbnZhciBhc3NpZ24gPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSkge1xuICBpZiAoaXNQcm90b3R5cGUoc291cmNlKSB8fCBpc0FycmF5TGlrZShzb3VyY2UpKSB7XG4gICAgY29weU9iamVjdChzb3VyY2UsIGtleXMoc291cmNlKSwgb2JqZWN0KTtcbiAgICByZXR1cm47XG4gIH1cbiAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgYXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHNvdXJjZVtrZXldKTtcbiAgICB9XG4gIH1cbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGFzc2lnbjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9hc3NpZ24uanNcbi8vIG1vZHVsZSBpZCA9IDE3MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///171\n"); /***/ }), /* 172 */ /***/ (function(module, exports, __webpack_require__) { -eval("var assignValue = __webpack_require__(84),\n baseAssignValue = __webpack_require__(85);\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jb3B5T2JqZWN0LmpzP2I2ZmQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLE1BQU07QUFDakIsV0FBVyxPQUFPLFdBQVc7QUFDN0IsV0FBVyxTQUFTO0FBQ3BCLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7O0FBRXhCO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjE3Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBhc3NpZ25WYWx1ZSA9IHJlcXVpcmUoJy4vX2Fzc2lnblZhbHVlJyksXG4gICAgYmFzZUFzc2lnblZhbHVlID0gcmVxdWlyZSgnLi9fYmFzZUFzc2lnblZhbHVlJyk7XG5cbi8qKlxuICogQ29waWVzIHByb3BlcnRpZXMgb2YgYHNvdXJjZWAgdG8gYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgZnJvbS5cbiAqIEBwYXJhbSB7QXJyYXl9IHByb3BzIFRoZSBwcm9wZXJ0eSBpZGVudGlmaWVycyB0byBjb3B5LlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3Q9e31dIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIHRvLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29waWVkIHZhbHVlcy5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGNvcHlPYmplY3Qoc291cmNlLCBwcm9wcywgb2JqZWN0LCBjdXN0b21pemVyKSB7XG4gIHZhciBpc05ldyA9ICFvYmplY3Q7XG4gIG9iamVjdCB8fCAob2JqZWN0ID0ge30pO1xuXG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGtleSA9IHByb3BzW2luZGV4XTtcblxuICAgIHZhciBuZXdWYWx1ZSA9IGN1c3RvbWl6ZXJcbiAgICAgID8gY3VzdG9taXplcihvYmplY3Rba2V5XSwgc291cmNlW2tleV0sIGtleSwgb2JqZWN0LCBzb3VyY2UpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGlmIChuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBuZXdWYWx1ZSA9IHNvdXJjZVtrZXldO1xuICAgIH1cbiAgICBpZiAoaXNOZXcpIHtcbiAgICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gb2JqZWN0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvcHlPYmplY3Q7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NvcHlPYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDE3MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///172\n"); +eval("var assignValue = __webpack_require__(88),\n baseAssignValue = __webpack_require__(89);\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jb3B5T2JqZWN0LmpzP2I2ZmQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLE1BQU07QUFDakIsV0FBVyxPQUFPLFdBQVc7QUFDN0IsV0FBVyxTQUFTO0FBQ3BCLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7O0FBRXhCO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjE3Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBhc3NpZ25WYWx1ZSA9IHJlcXVpcmUoJy4vX2Fzc2lnblZhbHVlJyksXG4gICAgYmFzZUFzc2lnblZhbHVlID0gcmVxdWlyZSgnLi9fYmFzZUFzc2lnblZhbHVlJyk7XG5cbi8qKlxuICogQ29waWVzIHByb3BlcnRpZXMgb2YgYHNvdXJjZWAgdG8gYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgZnJvbS5cbiAqIEBwYXJhbSB7QXJyYXl9IHByb3BzIFRoZSBwcm9wZXJ0eSBpZGVudGlmaWVycyB0byBjb3B5LlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3Q9e31dIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIHRvLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29waWVkIHZhbHVlcy5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGNvcHlPYmplY3Qoc291cmNlLCBwcm9wcywgb2JqZWN0LCBjdXN0b21pemVyKSB7XG4gIHZhciBpc05ldyA9ICFvYmplY3Q7XG4gIG9iamVjdCB8fCAob2JqZWN0ID0ge30pO1xuXG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGtleSA9IHByb3BzW2luZGV4XTtcblxuICAgIHZhciBuZXdWYWx1ZSA9IGN1c3RvbWl6ZXJcbiAgICAgID8gY3VzdG9taXplcihvYmplY3Rba2V5XSwgc291cmNlW2tleV0sIGtleSwgb2JqZWN0LCBzb3VyY2UpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGlmIChuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBuZXdWYWx1ZSA9IHNvdXJjZVtrZXldO1xuICAgIH1cbiAgICBpZiAoaXNOZXcpIHtcbiAgICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gb2JqZWN0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvcHlPYmplY3Q7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NvcHlPYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDE3MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///172\n"); /***/ }), /* 173 */ /***/ (function(module, exports, __webpack_require__) { -eval("var baseRest = __webpack_require__(64),\n isIterateeCall = __webpack_require__(174);\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jcmVhdGVBc3NpZ25lci5qcz9kMDM0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFNBQVM7QUFDcEIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUEiLCJmaWxlIjoiMTczLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGJhc2VSZXN0ID0gcmVxdWlyZSgnLi9fYmFzZVJlc3QnKSxcbiAgICBpc0l0ZXJhdGVlQ2FsbCA9IHJlcXVpcmUoJy4vX2lzSXRlcmF0ZWVDYWxsJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8uYXNzaWduYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gYXNzaWduZXIgVGhlIGZ1bmN0aW9uIHRvIGFzc2lnbiB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhc3NpZ25lciBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQXNzaWduZXIoYXNzaWduZXIpIHtcbiAgcmV0dXJuIGJhc2VSZXN0KGZ1bmN0aW9uKG9iamVjdCwgc291cmNlcykge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBzb3VyY2VzLmxlbmd0aCxcbiAgICAgICAgY3VzdG9taXplciA9IGxlbmd0aCA+IDEgPyBzb3VyY2VzW2xlbmd0aCAtIDFdIDogdW5kZWZpbmVkLFxuICAgICAgICBndWFyZCA9IGxlbmd0aCA+IDIgPyBzb3VyY2VzWzJdIDogdW5kZWZpbmVkO1xuXG4gICAgY3VzdG9taXplciA9IChhc3NpZ25lci5sZW5ndGggPiAzICYmIHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicpXG4gICAgICA/IChsZW5ndGgtLSwgY3VzdG9taXplcilcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHNvdXJjZXNbMF0sIHNvdXJjZXNbMV0sIGd1YXJkKSkge1xuICAgICAgY3VzdG9taXplciA9IGxlbmd0aCA8IDMgPyB1bmRlZmluZWQgOiBjdXN0b21pemVyO1xuICAgICAgbGVuZ3RoID0gMTtcbiAgICB9XG4gICAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciBzb3VyY2UgPSBzb3VyY2VzW2luZGV4XTtcbiAgICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgYXNzaWduZXIob2JqZWN0LCBzb3VyY2UsIGluZGV4LCBjdXN0b21pemVyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlQXNzaWduZXI7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NyZWF0ZUFzc2lnbmVyLmpzXG4vLyBtb2R1bGUgaWQgPSAxNzNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///173\n"); +eval("var baseRest = __webpack_require__(68),\n isIterateeCall = __webpack_require__(174);\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jcmVhdGVBc3NpZ25lci5qcz9kMDM0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFNBQVM7QUFDcEIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUEiLCJmaWxlIjoiMTczLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGJhc2VSZXN0ID0gcmVxdWlyZSgnLi9fYmFzZVJlc3QnKSxcbiAgICBpc0l0ZXJhdGVlQ2FsbCA9IHJlcXVpcmUoJy4vX2lzSXRlcmF0ZWVDYWxsJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8uYXNzaWduYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gYXNzaWduZXIgVGhlIGZ1bmN0aW9uIHRvIGFzc2lnbiB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhc3NpZ25lciBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQXNzaWduZXIoYXNzaWduZXIpIHtcbiAgcmV0dXJuIGJhc2VSZXN0KGZ1bmN0aW9uKG9iamVjdCwgc291cmNlcykge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBzb3VyY2VzLmxlbmd0aCxcbiAgICAgICAgY3VzdG9taXplciA9IGxlbmd0aCA+IDEgPyBzb3VyY2VzW2xlbmd0aCAtIDFdIDogdW5kZWZpbmVkLFxuICAgICAgICBndWFyZCA9IGxlbmd0aCA+IDIgPyBzb3VyY2VzWzJdIDogdW5kZWZpbmVkO1xuXG4gICAgY3VzdG9taXplciA9IChhc3NpZ25lci5sZW5ndGggPiAzICYmIHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicpXG4gICAgICA/IChsZW5ndGgtLSwgY3VzdG9taXplcilcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHNvdXJjZXNbMF0sIHNvdXJjZXNbMV0sIGd1YXJkKSkge1xuICAgICAgY3VzdG9taXplciA9IGxlbmd0aCA8IDMgPyB1bmRlZmluZWQgOiBjdXN0b21pemVyO1xuICAgICAgbGVuZ3RoID0gMTtcbiAgICB9XG4gICAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciBzb3VyY2UgPSBzb3VyY2VzW2luZGV4XTtcbiAgICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgYXNzaWduZXIob2JqZWN0LCBzb3VyY2UsIGluZGV4LCBjdXN0b21pemVyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlQXNzaWduZXI7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NyZWF0ZUFzc2lnbmVyLmpzXG4vLyBtb2R1bGUgaWQgPSAxNzNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///173\n"); /***/ }), /* 174 */ /***/ (function(module, exports, __webpack_require__) { -eval("var eq = __webpack_require__(86),\n isArrayLike = __webpack_require__(55),\n isIndex = __webpack_require__(88),\n isObject = __webpack_require__(29);\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19pc0l0ZXJhdGVlQ2FsbC5qcz9jYzEzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxFQUFFO0FBQ2IsV0FBVyxFQUFFO0FBQ2IsV0FBVyxFQUFFO0FBQ2IsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIxNzQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZXEgPSByZXF1aXJlKCcuL2VxJyksXG4gICAgaXNBcnJheUxpa2UgPSByZXF1aXJlKCcuL2lzQXJyYXlMaWtlJyksXG4gICAgaXNJbmRleCA9IHJlcXVpcmUoJy4vX2lzSW5kZXgnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGdpdmVuIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgdmFsdWUgYXJndW1lbnQuXG4gKiBAcGFyYW0geyp9IGluZGV4IFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgaW5kZXggb3Iga2V5IGFyZ3VtZW50LlxuICogQHBhcmFtIHsqfSBvYmplY3QgVGhlIHBvdGVudGlhbCBpdGVyYXRlZSBvYmplY3QgYXJndW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLFxuICogIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNJdGVyYXRlZUNhbGwodmFsdWUsIGluZGV4LCBvYmplY3QpIHtcbiAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciB0eXBlID0gdHlwZW9mIGluZGV4O1xuICBpZiAodHlwZSA9PSAnbnVtYmVyJ1xuICAgICAgICA/IChpc0FycmF5TGlrZShvYmplY3QpICYmIGlzSW5kZXgoaW5kZXgsIG9iamVjdC5sZW5ndGgpKVxuICAgICAgICA6ICh0eXBlID09ICdzdHJpbmcnICYmIGluZGV4IGluIG9iamVjdClcbiAgICAgICkge1xuICAgIHJldHVybiBlcShvYmplY3RbaW5kZXhdLCB2YWx1ZSk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzSXRlcmF0ZWVDYWxsO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoL19pc0l0ZXJhdGVlQ2FsbC5qc1xuLy8gbW9kdWxlIGlkID0gMTc0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///174\n"); +eval("var eq = __webpack_require__(90),\n isArrayLike = __webpack_require__(57),\n isIndex = __webpack_require__(92),\n isObject = __webpack_require__(28);\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19pc0l0ZXJhdGVlQ2FsbC5qcz9jYzEzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxFQUFFO0FBQ2IsV0FBVyxFQUFFO0FBQ2IsV0FBVyxFQUFFO0FBQ2IsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIxNzQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZXEgPSByZXF1aXJlKCcuL2VxJyksXG4gICAgaXNBcnJheUxpa2UgPSByZXF1aXJlKCcuL2lzQXJyYXlMaWtlJyksXG4gICAgaXNJbmRleCA9IHJlcXVpcmUoJy4vX2lzSW5kZXgnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGdpdmVuIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgdmFsdWUgYXJndW1lbnQuXG4gKiBAcGFyYW0geyp9IGluZGV4IFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgaW5kZXggb3Iga2V5IGFyZ3VtZW50LlxuICogQHBhcmFtIHsqfSBvYmplY3QgVGhlIHBvdGVudGlhbCBpdGVyYXRlZSBvYmplY3QgYXJndW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLFxuICogIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNJdGVyYXRlZUNhbGwodmFsdWUsIGluZGV4LCBvYmplY3QpIHtcbiAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciB0eXBlID0gdHlwZW9mIGluZGV4O1xuICBpZiAodHlwZSA9PSAnbnVtYmVyJ1xuICAgICAgICA/IChpc0FycmF5TGlrZShvYmplY3QpICYmIGlzSW5kZXgoaW5kZXgsIG9iamVjdC5sZW5ndGgpKVxuICAgICAgICA6ICh0eXBlID09ICdzdHJpbmcnICYmIGluZGV4IGluIG9iamVjdClcbiAgICAgICkge1xuICAgIHJldHVybiBlcShvYmplY3RbaW5kZXhdLCB2YWx1ZSk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzSXRlcmF0ZWVDYWxsO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoL19pc0l0ZXJhdGVlQ2FsbC5qc1xuLy8gbW9kdWxlIGlkID0gMTc0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///174\n"); /***/ }), /* 175 */ /***/ (function(module, exports, __webpack_require__) { -eval("var arrayLikeKeys = __webpack_require__(176),\n baseKeys = __webpack_require__(187),\n isArrayLike = __webpack_require__(55);\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2tleXMuanM/OTJkNiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixhQUFhLE1BQU07QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjE3NS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBhcnJheUxpa2VLZXlzID0gcmVxdWlyZSgnLi9fYXJyYXlMaWtlS2V5cycpLFxuICAgIGJhc2VLZXlzID0gcmVxdWlyZSgnLi9fYmFzZUtleXMnKSxcbiAgICBpc0FycmF5TGlrZSA9IHJlcXVpcmUoJy4vaXNBcnJheUxpa2UnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAqXG4gKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy4gU2VlIHRoZVxuICogW0VTIHNwZWNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5rZXlzKVxuICogZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmtleXMobmV3IEZvbyk7XG4gKiAvLyA9PiBbJ2EnLCAnYiddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKlxuICogXy5rZXlzKCdoaScpO1xuICogLy8gPT4gWycwJywgJzEnXVxuICovXG5mdW5jdGlvbiBrZXlzKG9iamVjdCkge1xuICByZXR1cm4gaXNBcnJheUxpa2Uob2JqZWN0KSA/IGFycmF5TGlrZUtleXMob2JqZWN0KSA6IGJhc2VLZXlzKG9iamVjdCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ga2V5cztcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9rZXlzLmpzXG4vLyBtb2R1bGUgaWQgPSAxNzVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///175\n"); +eval("var arrayLikeKeys = __webpack_require__(176),\n baseKeys = __webpack_require__(187),\n isArrayLike = __webpack_require__(57);\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2tleXMuanM/OTJkNiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixhQUFhLE1BQU07QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjE3NS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBhcnJheUxpa2VLZXlzID0gcmVxdWlyZSgnLi9fYXJyYXlMaWtlS2V5cycpLFxuICAgIGJhc2VLZXlzID0gcmVxdWlyZSgnLi9fYmFzZUtleXMnKSxcbiAgICBpc0FycmF5TGlrZSA9IHJlcXVpcmUoJy4vaXNBcnJheUxpa2UnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAqXG4gKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy4gU2VlIHRoZVxuICogW0VTIHNwZWNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5rZXlzKVxuICogZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmtleXMobmV3IEZvbyk7XG4gKiAvLyA9PiBbJ2EnLCAnYiddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKlxuICogXy5rZXlzKCdoaScpO1xuICogLy8gPT4gWycwJywgJzEnXVxuICovXG5mdW5jdGlvbiBrZXlzKG9iamVjdCkge1xuICByZXR1cm4gaXNBcnJheUxpa2Uob2JqZWN0KSA/IGFycmF5TGlrZUtleXMob2JqZWN0KSA6IGJhc2VLZXlzKG9iamVjdCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ga2V5cztcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9rZXlzLmpzXG4vLyBtb2R1bGUgaWQgPSAxNzVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///175\n"); /***/ }), /* 176 */ /***/ (function(module, exports, __webpack_require__) { -eval("var baseTimes = __webpack_require__(177),\n isArguments = __webpack_require__(178),\n isArray = __webpack_require__(180),\n isBuffer = __webpack_require__(181),\n isIndex = __webpack_require__(88),\n isTypedArray = __webpack_require__(183);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hcnJheUxpa2VLZXlzLmpzP2VkZWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsRUFBRTtBQUNiLFdBQVcsUUFBUTtBQUNuQixhQUFhLE1BQU07QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiMTc2LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGJhc2VUaW1lcyA9IHJlcXVpcmUoJy4vX2Jhc2VUaW1lcycpLFxuICAgIGlzQXJndW1lbnRzID0gcmVxdWlyZSgnLi9pc0FyZ3VtZW50cycpLFxuICAgIGlzQXJyYXkgPSByZXF1aXJlKCcuL2lzQXJyYXknKSxcbiAgICBpc0J1ZmZlciA9IHJlcXVpcmUoJy4vaXNCdWZmZXInKSxcbiAgICBpc0luZGV4ID0gcmVxdWlyZSgnLi9faXNJbmRleCcpLFxuICAgIGlzVHlwZWRBcnJheSA9IHJlcXVpcmUoJy4vaXNUeXBlZEFycmF5Jyk7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiB0aGUgYXJyYXktbGlrZSBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5oZXJpdGVkIFNwZWNpZnkgcmV0dXJuaW5nIGluaGVyaXRlZCBwcm9wZXJ0eSBuYW1lcy5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIGFycmF5TGlrZUtleXModmFsdWUsIGluaGVyaXRlZCkge1xuICB2YXIgaXNBcnIgPSBpc0FycmF5KHZhbHVlKSxcbiAgICAgIGlzQXJnID0gIWlzQXJyICYmIGlzQXJndW1lbnRzKHZhbHVlKSxcbiAgICAgIGlzQnVmZiA9ICFpc0FyciAmJiAhaXNBcmcgJiYgaXNCdWZmZXIodmFsdWUpLFxuICAgICAgaXNUeXBlID0gIWlzQXJyICYmICFpc0FyZyAmJiAhaXNCdWZmICYmIGlzVHlwZWRBcnJheSh2YWx1ZSksXG4gICAgICBza2lwSW5kZXhlcyA9IGlzQXJyIHx8IGlzQXJnIHx8IGlzQnVmZiB8fCBpc1R5cGUsXG4gICAgICByZXN1bHQgPSBza2lwSW5kZXhlcyA/IGJhc2VUaW1lcyh2YWx1ZS5sZW5ndGgsIFN0cmluZykgOiBbXSxcbiAgICAgIGxlbmd0aCA9IHJlc3VsdC5sZW5ndGg7XG5cbiAgZm9yICh2YXIga2V5IGluIHZhbHVlKSB7XG4gICAgaWYgKChpbmhlcml0ZWQgfHwgaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwga2V5KSkgJiZcbiAgICAgICAgIShza2lwSW5kZXhlcyAmJiAoXG4gICAgICAgICAgIC8vIFNhZmFyaSA5IGhhcyBlbnVtZXJhYmxlIGBhcmd1bWVudHMubGVuZ3RoYCBpbiBzdHJpY3QgbW9kZS5cbiAgICAgICAgICAga2V5ID09ICdsZW5ndGgnIHx8XG4gICAgICAgICAgIC8vIE5vZGUuanMgMC4xMCBoYXMgZW51bWVyYWJsZSBub24taW5kZXggcHJvcGVydGllcyBvbiBidWZmZXJzLlxuICAgICAgICAgICAoaXNCdWZmICYmIChrZXkgPT0gJ29mZnNldCcgfHwga2V5ID09ICdwYXJlbnQnKSkgfHxcbiAgICAgICAgICAgLy8gUGhhbnRvbUpTIDIgaGFzIGVudW1lcmFibGUgbm9uLWluZGV4IHByb3BlcnRpZXMgb24gdHlwZWQgYXJyYXlzLlxuICAgICAgICAgICAoaXNUeXBlICYmIChrZXkgPT0gJ2J1ZmZlcicgfHwga2V5ID09ICdieXRlTGVuZ3RoJyB8fCBrZXkgPT0gJ2J5dGVPZmZzZXQnKSkgfHxcbiAgICAgICAgICAgLy8gU2tpcCBpbmRleCBwcm9wZXJ0aWVzLlxuICAgICAgICAgICBpc0luZGV4KGtleSwgbGVuZ3RoKVxuICAgICAgICApKSkge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhcnJheUxpa2VLZXlzO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hcnJheUxpa2VLZXlzLmpzXG4vLyBtb2R1bGUgaWQgPSAxNzZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///176\n"); +eval("var baseTimes = __webpack_require__(177),\n isArguments = __webpack_require__(178),\n isArray = __webpack_require__(180),\n isBuffer = __webpack_require__(181),\n isIndex = __webpack_require__(92),\n isTypedArray = __webpack_require__(183);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hcnJheUxpa2VLZXlzLmpzP2VkZWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsRUFBRTtBQUNiLFdBQVcsUUFBUTtBQUNuQixhQUFhLE1BQU07QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiMTc2LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGJhc2VUaW1lcyA9IHJlcXVpcmUoJy4vX2Jhc2VUaW1lcycpLFxuICAgIGlzQXJndW1lbnRzID0gcmVxdWlyZSgnLi9pc0FyZ3VtZW50cycpLFxuICAgIGlzQXJyYXkgPSByZXF1aXJlKCcuL2lzQXJyYXknKSxcbiAgICBpc0J1ZmZlciA9IHJlcXVpcmUoJy4vaXNCdWZmZXInKSxcbiAgICBpc0luZGV4ID0gcmVxdWlyZSgnLi9faXNJbmRleCcpLFxuICAgIGlzVHlwZWRBcnJheSA9IHJlcXVpcmUoJy4vaXNUeXBlZEFycmF5Jyk7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiB0aGUgYXJyYXktbGlrZSBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5oZXJpdGVkIFNwZWNpZnkgcmV0dXJuaW5nIGluaGVyaXRlZCBwcm9wZXJ0eSBuYW1lcy5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIGFycmF5TGlrZUtleXModmFsdWUsIGluaGVyaXRlZCkge1xuICB2YXIgaXNBcnIgPSBpc0FycmF5KHZhbHVlKSxcbiAgICAgIGlzQXJnID0gIWlzQXJyICYmIGlzQXJndW1lbnRzKHZhbHVlKSxcbiAgICAgIGlzQnVmZiA9ICFpc0FyciAmJiAhaXNBcmcgJiYgaXNCdWZmZXIodmFsdWUpLFxuICAgICAgaXNUeXBlID0gIWlzQXJyICYmICFpc0FyZyAmJiAhaXNCdWZmICYmIGlzVHlwZWRBcnJheSh2YWx1ZSksXG4gICAgICBza2lwSW5kZXhlcyA9IGlzQXJyIHx8IGlzQXJnIHx8IGlzQnVmZiB8fCBpc1R5cGUsXG4gICAgICByZXN1bHQgPSBza2lwSW5kZXhlcyA/IGJhc2VUaW1lcyh2YWx1ZS5sZW5ndGgsIFN0cmluZykgOiBbXSxcbiAgICAgIGxlbmd0aCA9IHJlc3VsdC5sZW5ndGg7XG5cbiAgZm9yICh2YXIga2V5IGluIHZhbHVlKSB7XG4gICAgaWYgKChpbmhlcml0ZWQgfHwgaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwga2V5KSkgJiZcbiAgICAgICAgIShza2lwSW5kZXhlcyAmJiAoXG4gICAgICAgICAgIC8vIFNhZmFyaSA5IGhhcyBlbnVtZXJhYmxlIGBhcmd1bWVudHMubGVuZ3RoYCBpbiBzdHJpY3QgbW9kZS5cbiAgICAgICAgICAga2V5ID09ICdsZW5ndGgnIHx8XG4gICAgICAgICAgIC8vIE5vZGUuanMgMC4xMCBoYXMgZW51bWVyYWJsZSBub24taW5kZXggcHJvcGVydGllcyBvbiBidWZmZXJzLlxuICAgICAgICAgICAoaXNCdWZmICYmIChrZXkgPT0gJ29mZnNldCcgfHwga2V5ID09ICdwYXJlbnQnKSkgfHxcbiAgICAgICAgICAgLy8gUGhhbnRvbUpTIDIgaGFzIGVudW1lcmFibGUgbm9uLWluZGV4IHByb3BlcnRpZXMgb24gdHlwZWQgYXJyYXlzLlxuICAgICAgICAgICAoaXNUeXBlICYmIChrZXkgPT0gJ2J1ZmZlcicgfHwga2V5ID09ICdieXRlTGVuZ3RoJyB8fCBrZXkgPT0gJ2J5dGVPZmZzZXQnKSkgfHxcbiAgICAgICAgICAgLy8gU2tpcCBpbmRleCBwcm9wZXJ0aWVzLlxuICAgICAgICAgICBpc0luZGV4KGtleSwgbGVuZ3RoKVxuICAgICAgICApKSkge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhcnJheUxpa2VLZXlzO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hcnJheUxpa2VLZXlzLmpzXG4vLyBtb2R1bGUgaWQgPSAxNzZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///176\n"); /***/ }), /* 177 */ @@ -1157,13 +1158,13 @@ eval("/**\n * The base implementation of `_.times` without support for iteratee /* 178 */ /***/ (function(module, exports, __webpack_require__) { -eval("var baseIsArguments = __webpack_require__(179),\n isObjectLike = __webpack_require__(30);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzQXJndW1lbnRzLmpzP2Q1ODYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsRUFBRTtBQUNiLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsa0JBQWtCLEVBQUU7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QyxrQkFBa0IsRUFBRTtBQUNsRTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiMTc4LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGJhc2VJc0FyZ3VtZW50cyA9IHJlcXVpcmUoJy4vX2Jhc2VJc0FyZ3VtZW50cycpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4vaXNPYmplY3RMaWtlJyk7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHByb3BlcnR5SXNFbnVtZXJhYmxlID0gb2JqZWN0UHJvdG8ucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGlrZWx5IGFuIGBhcmd1bWVudHNgIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBgYXJndW1lbnRzYCBvYmplY3QsXG4gKiAgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzQXJndW1lbnRzKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcmd1bWVudHMoWzEsIDIsIDNdKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0FyZ3VtZW50cyA9IGJhc2VJc0FyZ3VtZW50cyhmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgpKSA/IGJhc2VJc0FyZ3VtZW50cyA6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdjYWxsZWUnKSAmJlxuICAgICFwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHZhbHVlLCAnY2FsbGVlJyk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzQXJndW1lbnRzO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzQXJndW1lbnRzLmpzXG4vLyBtb2R1bGUgaWQgPSAxNzhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///178\n"); +eval("var baseIsArguments = __webpack_require__(179),\n isObjectLike = __webpack_require__(29);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzQXJndW1lbnRzLmpzP2Q1ODYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsRUFBRTtBQUNiLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsa0JBQWtCLEVBQUU7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QyxrQkFBa0IsRUFBRTtBQUNsRTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiMTc4LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGJhc2VJc0FyZ3VtZW50cyA9IHJlcXVpcmUoJy4vX2Jhc2VJc0FyZ3VtZW50cycpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4vaXNPYmplY3RMaWtlJyk7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHByb3BlcnR5SXNFbnVtZXJhYmxlID0gb2JqZWN0UHJvdG8ucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGlrZWx5IGFuIGBhcmd1bWVudHNgIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBgYXJndW1lbnRzYCBvYmplY3QsXG4gKiAgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzQXJndW1lbnRzKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcmd1bWVudHMoWzEsIDIsIDNdKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0FyZ3VtZW50cyA9IGJhc2VJc0FyZ3VtZW50cyhmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgpKSA/IGJhc2VJc0FyZ3VtZW50cyA6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdjYWxsZWUnKSAmJlxuICAgICFwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHZhbHVlLCAnY2FsbGVlJyk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzQXJndW1lbnRzO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzQXJndW1lbnRzLmpzXG4vLyBtb2R1bGUgaWQgPSAxNzhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///178\n"); /***/ }), /* 179 */ /***/ (function(module, exports, __webpack_require__) { -eval("var baseGetTag = __webpack_require__(28),\n isObjectLike = __webpack_require__(30);\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSXNBcmd1bWVudHMuanM/OWEwOSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiMTc5LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGJhc2VHZXRUYWcgPSByZXF1aXJlKCcuL19iYXNlR2V0VGFnJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi9pc09iamVjdExpa2UnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc0FyZ3VtZW50c2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LFxuICovXG5mdW5jdGlvbiBiYXNlSXNBcmd1bWVudHModmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYXJnc1RhZztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSXNBcmd1bWVudHM7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc0FyZ3VtZW50cy5qc1xuLy8gbW9kdWxlIGlkID0gMTc5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///179\n"); +eval("var baseGetTag = __webpack_require__(27),\n isObjectLike = __webpack_require__(29);\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSXNBcmd1bWVudHMuanM/OWEwOSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiMTc5LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGJhc2VHZXRUYWcgPSByZXF1aXJlKCcuL19iYXNlR2V0VGFnJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi9pc09iamVjdExpa2UnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc0FyZ3VtZW50c2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LFxuICovXG5mdW5jdGlvbiBiYXNlSXNBcmd1bWVudHModmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYXJnc1RhZztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSXNBcmd1bWVudHM7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc0FyZ3VtZW50cy5qc1xuLy8gbW9kdWxlIGlkID0gMTc5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///179\n"); /***/ }), /* 180 */ @@ -1175,7 +1176,7 @@ eval("/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @sta /* 181 */ /***/ (function(module, exports, __webpack_require__) { -eval("/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(42),\n stubFalse = __webpack_require__(182);\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(90)(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzQnVmZmVyLmpzPzgyMDMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjE4MS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpLFxuICAgIHN0dWJGYWxzZSA9IHJlcXVpcmUoJy4vc3R1YkZhbHNlJyk7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgQnVmZmVyID0gbW9kdWxlRXhwb3J0cyA/IHJvb3QuQnVmZmVyIDogdW5kZWZpbmVkO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlSXNCdWZmZXIgPSBCdWZmZXIgPyBCdWZmZXIuaXNCdWZmZXIgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjMuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0J1ZmZlcihuZXcgQnVmZmVyKDIpKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQnVmZmVyKG5ldyBVaW50OEFycmF5KDIpKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0J1ZmZlciA9IG5hdGl2ZUlzQnVmZmVyIHx8IHN0dWJGYWxzZTtcblxubW9kdWxlLmV4cG9ydHMgPSBpc0J1ZmZlcjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0J1ZmZlci5qc1xuLy8gbW9kdWxlIGlkID0gMTgxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///181\n"); +eval("/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(44),\n stubFalse = __webpack_require__(182);\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(94)(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzQnVmZmVyLmpzPzgyMDMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjE4MS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpLFxuICAgIHN0dWJGYWxzZSA9IHJlcXVpcmUoJy4vc3R1YkZhbHNlJyk7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgQnVmZmVyID0gbW9kdWxlRXhwb3J0cyA/IHJvb3QuQnVmZmVyIDogdW5kZWZpbmVkO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlSXNCdWZmZXIgPSBCdWZmZXIgPyBCdWZmZXIuaXNCdWZmZXIgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjMuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0J1ZmZlcihuZXcgQnVmZmVyKDIpKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQnVmZmVyKG5ldyBVaW50OEFycmF5KDIpKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0J1ZmZlciA9IG5hdGl2ZUlzQnVmZmVyIHx8IHN0dWJGYWxzZTtcblxubW9kdWxlLmV4cG9ydHMgPSBpc0J1ZmZlcjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0J1ZmZlci5qc1xuLy8gbW9kdWxlIGlkID0gMTgxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///181\n"); /***/ }), /* 182 */ @@ -1193,7 +1194,7 @@ eval("var baseIsTypedArray = __webpack_require__(184),\n baseUnary = __webpac /* 184 */ /***/ (function(module, exports, __webpack_require__) { -eval("var baseGetTag = __webpack_require__(28),\n isLength = __webpack_require__(87),\n isObjectLike = __webpack_require__(30);\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSXNUeXBlZEFycmF5LmpzP2NmODgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIxODQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYmFzZUdldFRhZyA9IHJlcXVpcmUoJy4vX2Jhc2VHZXRUYWcnKSxcbiAgICBpc0xlbmd0aCA9IHJlcXVpcmUoJy4vaXNMZW5ndGgnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgIHdlYWtNYXBUYWcgPSAnW29iamVjdCBXZWFrTWFwXSc7XG5cbnZhciBhcnJheUJ1ZmZlclRhZyA9ICdbb2JqZWN0IEFycmF5QnVmZmVyXScsXG4gICAgZGF0YVZpZXdUYWcgPSAnW29iamVjdCBEYXRhVmlld10nLFxuICAgIGZsb2F0MzJUYWcgPSAnW29iamVjdCBGbG9hdDMyQXJyYXldJyxcbiAgICBmbG9hdDY0VGFnID0gJ1tvYmplY3QgRmxvYXQ2NEFycmF5XScsXG4gICAgaW50OFRhZyA9ICdbb2JqZWN0IEludDhBcnJheV0nLFxuICAgIGludDE2VGFnID0gJ1tvYmplY3QgSW50MTZBcnJheV0nLFxuICAgIGludDMyVGFnID0gJ1tvYmplY3QgSW50MzJBcnJheV0nLFxuICAgIHVpbnQ4VGFnID0gJ1tvYmplY3QgVWludDhBcnJheV0nLFxuICAgIHVpbnQ4Q2xhbXBlZFRhZyA9ICdbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XScsXG4gICAgdWludDE2VGFnID0gJ1tvYmplY3QgVWludDE2QXJyYXldJyxcbiAgICB1aW50MzJUYWcgPSAnW29iamVjdCBVaW50MzJBcnJheV0nO1xuXG4vKiogVXNlZCB0byBpZGVudGlmeSBgdG9TdHJpbmdUYWdgIHZhbHVlcyBvZiB0eXBlZCBhcnJheXMuICovXG52YXIgdHlwZWRBcnJheVRhZ3MgPSB7fTtcbnR5cGVkQXJyYXlUYWdzW2Zsb2F0MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbZmxvYXQ2NFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbaW50OFRhZ10gPSB0eXBlZEFycmF5VGFnc1tpbnQxNlRhZ10gPVxudHlwZWRBcnJheVRhZ3NbaW50MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDhUYWddID1cbnR5cGVkQXJyYXlUYWdzW3VpbnQ4Q2xhbXBlZFRhZ10gPSB0eXBlZEFycmF5VGFnc1t1aW50MTZUYWddID1cbnR5cGVkQXJyYXlUYWdzW3VpbnQzMlRhZ10gPSB0cnVlO1xudHlwZWRBcnJheVRhZ3NbYXJnc1RhZ10gPSB0eXBlZEFycmF5VGFnc1thcnJheVRhZ10gPVxudHlwZWRBcnJheVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gdHlwZWRBcnJheVRhZ3NbYm9vbFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbZGF0YVZpZXdUYWddID0gdHlwZWRBcnJheVRhZ3NbZGF0ZVRhZ10gPVxudHlwZWRBcnJheVRhZ3NbZXJyb3JUYWddID0gdHlwZWRBcnJheVRhZ3NbZnVuY1RhZ10gPVxudHlwZWRBcnJheVRhZ3NbbWFwVGFnXSA9IHR5cGVkQXJyYXlUYWdzW251bWJlclRhZ10gPVxudHlwZWRBcnJheVRhZ3Nbb2JqZWN0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3JlZ2V4cFRhZ10gPVxudHlwZWRBcnJheVRhZ3Nbc2V0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3N0cmluZ1RhZ10gPVxudHlwZWRBcnJheVRhZ3Nbd2Vha01hcFRhZ10gPSBmYWxzZTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc1R5cGVkQXJyYXlgIHdpdGhvdXQgTm9kZS5qcyBvcHRpbWl6YXRpb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdHlwZWQgYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzVHlwZWRBcnJheSh2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJlxuICAgIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgISF0eXBlZEFycmF5VGFnc1tiYXNlR2V0VGFnKHZhbHVlKV07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUlzVHlwZWRBcnJheTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzVHlwZWRBcnJheS5qc1xuLy8gbW9kdWxlIGlkID0gMTg0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///184\n"); +eval("var baseGetTag = __webpack_require__(27),\n isLength = __webpack_require__(91),\n isObjectLike = __webpack_require__(29);\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSXNUeXBlZEFycmF5LmpzP2NmODgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIxODQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYmFzZUdldFRhZyA9IHJlcXVpcmUoJy4vX2Jhc2VHZXRUYWcnKSxcbiAgICBpc0xlbmd0aCA9IHJlcXVpcmUoJy4vaXNMZW5ndGgnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgIHdlYWtNYXBUYWcgPSAnW29iamVjdCBXZWFrTWFwXSc7XG5cbnZhciBhcnJheUJ1ZmZlclRhZyA9ICdbb2JqZWN0IEFycmF5QnVmZmVyXScsXG4gICAgZGF0YVZpZXdUYWcgPSAnW29iamVjdCBEYXRhVmlld10nLFxuICAgIGZsb2F0MzJUYWcgPSAnW29iamVjdCBGbG9hdDMyQXJyYXldJyxcbiAgICBmbG9hdDY0VGFnID0gJ1tvYmplY3QgRmxvYXQ2NEFycmF5XScsXG4gICAgaW50OFRhZyA9ICdbb2JqZWN0IEludDhBcnJheV0nLFxuICAgIGludDE2VGFnID0gJ1tvYmplY3QgSW50MTZBcnJheV0nLFxuICAgIGludDMyVGFnID0gJ1tvYmplY3QgSW50MzJBcnJheV0nLFxuICAgIHVpbnQ4VGFnID0gJ1tvYmplY3QgVWludDhBcnJheV0nLFxuICAgIHVpbnQ4Q2xhbXBlZFRhZyA9ICdbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XScsXG4gICAgdWludDE2VGFnID0gJ1tvYmplY3QgVWludDE2QXJyYXldJyxcbiAgICB1aW50MzJUYWcgPSAnW29iamVjdCBVaW50MzJBcnJheV0nO1xuXG4vKiogVXNlZCB0byBpZGVudGlmeSBgdG9TdHJpbmdUYWdgIHZhbHVlcyBvZiB0eXBlZCBhcnJheXMuICovXG52YXIgdHlwZWRBcnJheVRhZ3MgPSB7fTtcbnR5cGVkQXJyYXlUYWdzW2Zsb2F0MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbZmxvYXQ2NFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbaW50OFRhZ10gPSB0eXBlZEFycmF5VGFnc1tpbnQxNlRhZ10gPVxudHlwZWRBcnJheVRhZ3NbaW50MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDhUYWddID1cbnR5cGVkQXJyYXlUYWdzW3VpbnQ4Q2xhbXBlZFRhZ10gPSB0eXBlZEFycmF5VGFnc1t1aW50MTZUYWddID1cbnR5cGVkQXJyYXlUYWdzW3VpbnQzMlRhZ10gPSB0cnVlO1xudHlwZWRBcnJheVRhZ3NbYXJnc1RhZ10gPSB0eXBlZEFycmF5VGFnc1thcnJheVRhZ10gPVxudHlwZWRBcnJheVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gdHlwZWRBcnJheVRhZ3NbYm9vbFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbZGF0YVZpZXdUYWddID0gdHlwZWRBcnJheVRhZ3NbZGF0ZVRhZ10gPVxudHlwZWRBcnJheVRhZ3NbZXJyb3JUYWddID0gdHlwZWRBcnJheVRhZ3NbZnVuY1RhZ10gPVxudHlwZWRBcnJheVRhZ3NbbWFwVGFnXSA9IHR5cGVkQXJyYXlUYWdzW251bWJlclRhZ10gPVxudHlwZWRBcnJheVRhZ3Nbb2JqZWN0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3JlZ2V4cFRhZ10gPVxudHlwZWRBcnJheVRhZ3Nbc2V0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3N0cmluZ1RhZ10gPVxudHlwZWRBcnJheVRhZ3Nbd2Vha01hcFRhZ10gPSBmYWxzZTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc1R5cGVkQXJyYXlgIHdpdGhvdXQgTm9kZS5qcyBvcHRpbWl6YXRpb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdHlwZWQgYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzVHlwZWRBcnJheSh2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJlxuICAgIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgISF0eXBlZEFycmF5VGFnc1tiYXNlR2V0VGFnKHZhbHVlKV07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUlzVHlwZWRBcnJheTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzVHlwZWRBcnJheS5qc1xuLy8gbW9kdWxlIGlkID0gMTg0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///184\n"); /***/ }), /* 185 */ @@ -1205,13 +1206,13 @@ eval("/**\n * The base implementation of `_.unary` without support for storing m /* 186 */ /***/ (function(module, exports, __webpack_require__) { -eval("/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(69);\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(90)(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19ub2RlVXRpbC5qcz8wZGNkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsQ0FBQzs7QUFFRCIsImZpbGUiOiIxODYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZnJlZUdsb2JhbCA9IHJlcXVpcmUoJy4vX2ZyZWVHbG9iYWwnKTtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBleHBvcnRzYC4gKi9cbnZhciBmcmVlRXhwb3J0cyA9IHR5cGVvZiBleHBvcnRzID09ICdvYmplY3QnICYmIGV4cG9ydHMgJiYgIWV4cG9ydHMubm9kZVR5cGUgJiYgZXhwb3J0cztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBtb2R1bGVgLiAqL1xudmFyIGZyZWVNb2R1bGUgPSBmcmVlRXhwb3J0cyAmJiB0eXBlb2YgbW9kdWxlID09ICdvYmplY3QnICYmIG1vZHVsZSAmJiAhbW9kdWxlLm5vZGVUeXBlICYmIG1vZHVsZTtcblxuLyoqIERldGVjdCB0aGUgcG9wdWxhciBDb21tb25KUyBleHRlbnNpb24gYG1vZHVsZS5leHBvcnRzYC4gKi9cbnZhciBtb2R1bGVFeHBvcnRzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLmV4cG9ydHMgPT09IGZyZWVFeHBvcnRzO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYHByb2Nlc3NgIGZyb20gTm9kZS5qcy4gKi9cbnZhciBmcmVlUHJvY2VzcyA9IG1vZHVsZUV4cG9ydHMgJiYgZnJlZUdsb2JhbC5wcm9jZXNzO1xuXG4vKiogVXNlZCB0byBhY2Nlc3MgZmFzdGVyIE5vZGUuanMgaGVscGVycy4gKi9cbnZhciBub2RlVXRpbCA9IChmdW5jdGlvbigpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZnJlZVByb2Nlc3MgJiYgZnJlZVByb2Nlc3MuYmluZGluZyAmJiBmcmVlUHJvY2Vzcy5iaW5kaW5nKCd1dGlsJyk7XG4gIH0gY2F0Y2ggKGUpIHt9XG59KCkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IG5vZGVVdGlsO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoL19ub2RlVXRpbC5qc1xuLy8gbW9kdWxlIGlkID0gMTg2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///186\n"); +eval("/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(73);\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(94)(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19ub2RlVXRpbC5qcz8wZGNkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsQ0FBQzs7QUFFRCIsImZpbGUiOiIxODYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZnJlZUdsb2JhbCA9IHJlcXVpcmUoJy4vX2ZyZWVHbG9iYWwnKTtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBleHBvcnRzYC4gKi9cbnZhciBmcmVlRXhwb3J0cyA9IHR5cGVvZiBleHBvcnRzID09ICdvYmplY3QnICYmIGV4cG9ydHMgJiYgIWV4cG9ydHMubm9kZVR5cGUgJiYgZXhwb3J0cztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBtb2R1bGVgLiAqL1xudmFyIGZyZWVNb2R1bGUgPSBmcmVlRXhwb3J0cyAmJiB0eXBlb2YgbW9kdWxlID09ICdvYmplY3QnICYmIG1vZHVsZSAmJiAhbW9kdWxlLm5vZGVUeXBlICYmIG1vZHVsZTtcblxuLyoqIERldGVjdCB0aGUgcG9wdWxhciBDb21tb25KUyBleHRlbnNpb24gYG1vZHVsZS5leHBvcnRzYC4gKi9cbnZhciBtb2R1bGVFeHBvcnRzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLmV4cG9ydHMgPT09IGZyZWVFeHBvcnRzO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYHByb2Nlc3NgIGZyb20gTm9kZS5qcy4gKi9cbnZhciBmcmVlUHJvY2VzcyA9IG1vZHVsZUV4cG9ydHMgJiYgZnJlZUdsb2JhbC5wcm9jZXNzO1xuXG4vKiogVXNlZCB0byBhY2Nlc3MgZmFzdGVyIE5vZGUuanMgaGVscGVycy4gKi9cbnZhciBub2RlVXRpbCA9IChmdW5jdGlvbigpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZnJlZVByb2Nlc3MgJiYgZnJlZVByb2Nlc3MuYmluZGluZyAmJiBmcmVlUHJvY2Vzcy5iaW5kaW5nKCd1dGlsJyk7XG4gIH0gY2F0Y2ggKGUpIHt9XG59KCkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IG5vZGVVdGlsO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoL19ub2RlVXRpbC5qc1xuLy8gbW9kdWxlIGlkID0gMTg2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///186\n"); /***/ }), /* 187 */ /***/ (function(module, exports, __webpack_require__) { -eval("var isPrototype = __webpack_require__(89),\n nativeKeys = __webpack_require__(188);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlS2V5cy5qcz9mYzY5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLGFBQWEsTUFBTTtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIxODcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaXNQcm90b3R5cGUgPSByZXF1aXJlKCcuL19pc1Byb3RvdHlwZScpLFxuICAgIG5hdGl2ZUtleXMgPSByZXF1aXJlKCcuL19uYXRpdmVLZXlzJyk7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ua2V5c2Agd2hpY2ggZG9lc24ndCB0cmVhdCBzcGFyc2UgYXJyYXlzIGFzIGRlbnNlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBiYXNlS2V5cyhvYmplY3QpIHtcbiAgaWYgKCFpc1Byb3RvdHlwZShvYmplY3QpKSB7XG4gICAgcmV0dXJuIG5hdGl2ZUtleXMob2JqZWN0KTtcbiAgfVxuICB2YXIgcmVzdWx0ID0gW107XG4gIGZvciAodmFyIGtleSBpbiBPYmplY3Qob2JqZWN0KSkge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSAmJiBrZXkgIT0gJ2NvbnN0cnVjdG9yJykge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlS2V5cztcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUtleXMuanNcbi8vIG1vZHVsZSBpZCA9IDE4N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///187\n"); +eval("var isPrototype = __webpack_require__(93),\n nativeKeys = __webpack_require__(188);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlS2V5cy5qcz9mYzY5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLGFBQWEsTUFBTTtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIxODcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaXNQcm90b3R5cGUgPSByZXF1aXJlKCcuL19pc1Byb3RvdHlwZScpLFxuICAgIG5hdGl2ZUtleXMgPSByZXF1aXJlKCcuL19uYXRpdmVLZXlzJyk7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ua2V5c2Agd2hpY2ggZG9lc24ndCB0cmVhdCBzcGFyc2UgYXJyYXlzIGFzIGRlbnNlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBiYXNlS2V5cyhvYmplY3QpIHtcbiAgaWYgKCFpc1Byb3RvdHlwZShvYmplY3QpKSB7XG4gICAgcmV0dXJuIG5hdGl2ZUtleXMob2JqZWN0KTtcbiAgfVxuICB2YXIgcmVzdWx0ID0gW107XG4gIGZvciAodmFyIGtleSBpbiBPYmplY3Qob2JqZWN0KSkge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSAmJiBrZXkgIT0gJ2NvbnN0cnVjdG9yJykge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlS2V5cztcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUtleXMuanNcbi8vIG1vZHVsZSBpZCA9IDE4N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///187\n"); /***/ }), /* 188 */ @@ -1230,13 +1231,13 @@ eval("/**\n * Creates a unary function that invokes `func` with its argument tra /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _interopRequireWildcard = __webpack_require__(11);\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _delay2 = _interopRequireDefault(__webpack_require__(27));\n\nvar _delegate = _interopRequireDefault(__webpack_require__(25));\n\nvar tools = _interopRequireWildcard(__webpack_require__(15));\n\nvar _productTemplate = __webpack_require__(91);\n\nvar _i18n = __webpack_require__(26);\n\nvar _shortcodeState = _interopRequireDefault(__webpack_require__(7));\n\nvar _events = __webpack_require__(16);\n\nvar _ajax = __webpack_require__(36);\n\nvar el = {};\n/**\n * @function addProduct\n * @description add a product to the selected sidebar list.\n * @param e\n */\n\nvar addProduct = function addProduct(e) {\n var product = e.delegateTarget;\n var resultsProduct = tools.getNodes(\"[data-product=\\\"\".concat(e.delegateTarget.dataset.bcid, \"\\\"]\"), false, el.resultsContainer, true)[0];\n var productData = {\n id: product.dataset.postid,\n bcid: product.dataset.bcid,\n title: product.dataset.title,\n price: product.dataset.price\n };\n el.productList.insertAdjacentHTML('beforeend', (0, _productTemplate.selectedProduct)(productData));\n resultsProduct.classList.add('bc-shortcode-ui__selected-result');\n resultsProduct.querySelector('.bc-shortcode-ui__product-anchor-status').textContent = _i18n.I18N.buttons.remove_product;\n\n _shortcodeState.default.selectedProducts.post_id.push(e.delegateTarget.dataset.postid);\n\n (0, _events.trigger)({\n event: 'bigcommerce/shortcode_product_list_event',\n native: false\n });\n};\n/**\n * @function removeProduct\n * @description remove a product from the selected sidebar list.\n * @param e\n */\n\n\nvar removeProduct = function removeProduct(e) {\n var productID = e.delegateTarget.dataset.postid;\n var productBCID = e.delegateTarget.dataset.bcid;\n var product = tools.getNodes(\"[data-product=\\\"\".concat(productBCID, \"\\\"]\"), false, el.productList, true)[0];\n var resultsProduct = tools.getNodes(\"[data-product=\\\"\".concat(productBCID, \"\\\"]\"), false, el.resultsContainer, true)[0];\n\n var valIndex = _shortcodeState.default.selectedProducts.post_id.indexOf(productID);\n\n if (resultsProduct) {\n resultsProduct.classList.remove('bc-shortcode-ui__selected-result');\n resultsProduct.querySelector('.bc-shortcode-ui__product-anchor-status').textContent = _i18n.I18N.buttons.add_product;\n }\n\n el.productList.removeChild(product);\n\n _shortcodeState.default.selectedProducts.post_id.splice(valIndex, 1);\n\n (0, _events.trigger)({\n event: 'bigcommerce/shortcode_product_list_event',\n native: false\n });\n};\n/**\n * @function addRemoveProduct\n * @description set a product in the results section to selected or not based on current state.\n * @param e\n */\n\n\nvar addRemoveProduct = function addRemoveProduct(e) {\n var product = tools.closest(e.delegateTarget, \"[data-product=\\\"\".concat(e.delegateTarget.dataset.bcid, \"\\\"]\"));\n product.classList.toggle('bc-shortcode-ui__selected-result');\n\n if (!product.classList.contains('bc-shortcode-ui__selected-result')) {\n removeProduct(e);\n return;\n }\n\n addProduct(e);\n};\n/**\n * @function resetProductList\n * @description clear the product list selections and state when triggering the bigcommerce/set_shortcode_ui_state event.\n */\n\n\nvar resetProductsList = function resetProductsList() {\n _shortcodeState.default.selectedProducts.post_id = [];\n tools.getNodes('.bc-shortcode-ui__selected-result', true, el.resultsContainer, true).forEach(function (product) {\n tools.removeClass(product, 'bc-shortcode-ui__selected-result');\n });\n el.productList.textContent = '';\n};\n/**\n * @function populateSavedUIProductList\n * @description Add saved UI products to the products list.\n * @param e\n */\n\n\nvar populateSavedUIProductList = function populateSavedUIProductList(e) {\n if (!e.detail.params) {\n return;\n }\n\n var currentBlockBCIDs = e.detail.params.id;\n\n if (!currentBlockBCIDs || currentBlockBCIDs.length <= 0) {\n return;\n }\n\n var k = encodeURIComponent('bcid');\n var v = encodeURIComponent(currentBlockBCIDs);\n var str = [];\n str.push(\"\".concat(k, \"=\").concat(v));\n var queryString = str ? str.join(_i18n.I18N.operations.query_string_separator) : '';\n var selectedProductsNodes = '';\n _shortcodeState.default.isFetching = true;\n (0, _ajax.wpAPIProductLookup)(queryString).end(function (err, res) {\n _shortcodeState.default.isFetching = false;\n\n if (err) {\n // TODO: get debug status and only display if true.\n console.error(err);\n return;\n }\n\n res.body.forEach(function (product) {\n var productData = {\n id: product.post_id,\n bcid: product.bigcommerce_id,\n title: product.title,\n price: product.price_range\n };\n selectedProductsNodes += (0, _productTemplate.selectedProduct)(productData);\n\n _shortcodeState.default.selectedProducts.post_id.push(product.post_id.toString());\n });\n el.productList.insertAdjacentHTML('beforeend', selectedProductsNodes);\n (0, _delay2.default)(function () {\n return (0, _events.trigger)({\n event: 'bigcommerce/shortcode_product_list_event',\n native: false\n });\n }, 100);\n });\n};\n/**\n * @function handleSavedUIProductList\n * @description When a user opens or reopens the UI, reset the UI and check for a saved state.\n * @param e\n */\n\n\nvar handleSavedUIProductList = function handleSavedUIProductList(e) {\n resetProductsList();\n populateSavedUIProductList(e);\n};\n\nvar cacheElements = function cacheElements() {\n el.resultsContainer = tools.getNodes('bc-shortcode-ui-query-results')[0];\n el.selectedContainer = tools.getNodes('bc-shortcode-ui-selected-products')[0];\n el.productList = tools.getNodes('bc-shortcode-ui-product-list', false, el.selectedContainer)[0];\n};\n\nvar bindEvents = function bindEvents() {\n (0, _delegate.default)(el.resultsContainer, '[data-js=\"add-remove-product\"]', 'click', addRemoveProduct);\n (0, _delegate.default)(el.selectedContainer, '[data-js=\"remove-product\"]', 'click', removeProduct);\n (0, _events.on)(document, 'bigcommerce/set_shortcode_ui_state', handleSavedUIProductList);\n};\n\nvar init = function init() {\n cacheElements();\n bindEvents();\n};\n\nvar _default = init;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL3Nob3J0Y29kZS11aS9wcm9kdWN0LXNlbGVjdGlvbi5qcz8zOWRkIl0sIm5hbWVzIjpbImVsIiwiYWRkUHJvZHVjdCIsImUiLCJwcm9kdWN0IiwiZGVsZWdhdGVUYXJnZXQiLCJyZXN1bHRzUHJvZHVjdCIsInRvb2xzIiwiZ2V0Tm9kZXMiLCJkYXRhc2V0IiwiYmNpZCIsInJlc3VsdHNDb250YWluZXIiLCJwcm9kdWN0RGF0YSIsImlkIiwicG9zdGlkIiwidGl0bGUiLCJwcmljZSIsInByb2R1Y3RMaXN0IiwiaW5zZXJ0QWRqYWNlbnRIVE1MIiwiY2xhc3NMaXN0IiwiYWRkIiwicXVlcnlTZWxlY3RvciIsInRleHRDb250ZW50IiwiYnV0dG9ucyIsInJlbW92ZV9wcm9kdWN0Iiwic2VsZWN0ZWRQcm9kdWN0cyIsInBvc3RfaWQiLCJwdXNoIiwiZXZlbnQiLCJuYXRpdmUiLCJyZW1vdmVQcm9kdWN0IiwicHJvZHVjdElEIiwicHJvZHVjdEJDSUQiLCJ2YWxJbmRleCIsImluZGV4T2YiLCJyZW1vdmUiLCJhZGRfcHJvZHVjdCIsInJlbW92ZUNoaWxkIiwic3BsaWNlIiwiYWRkUmVtb3ZlUHJvZHVjdCIsImNsb3Nlc3QiLCJ0b2dnbGUiLCJjb250YWlucyIsInJlc2V0UHJvZHVjdHNMaXN0IiwiZm9yRWFjaCIsInJlbW92ZUNsYXNzIiwicG9wdWxhdGVTYXZlZFVJUHJvZHVjdExpc3QiLCJkZXRhaWwiLCJwYXJhbXMiLCJjdXJyZW50QmxvY2tCQ0lEcyIsImxlbmd0aCIsImsiLCJlbmNvZGVVUklDb21wb25lbnQiLCJ2Iiwic3RyIiwicXVlcnlTdHJpbmciLCJqb2luIiwib3BlcmF0aW9ucyIsInF1ZXJ5X3N0cmluZ19zZXBhcmF0b3IiLCJzZWxlY3RlZFByb2R1Y3RzTm9kZXMiLCJpc0ZldGNoaW5nIiwiZW5kIiwiZXJyIiwicmVzIiwiY29uc29sZSIsImVycm9yIiwiYm9keSIsImJpZ2NvbW1lcmNlX2lkIiwicHJpY2VfcmFuZ2UiLCJ0b1N0cmluZyIsImhhbmRsZVNhdmVkVUlQcm9kdWN0TGlzdCIsImNhY2hlRWxlbWVudHMiLCJzZWxlY3RlZENvbnRhaW5lciIsImJpbmRFdmVudHMiLCJkb2N1bWVudCIsImluaXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFNQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxJQUFNQSxLQUFLLEVBQVg7QUFFQTs7Ozs7O0FBS0EsSUFBTUMsYUFBYSxTQUFiQSxVQUFhLENBQUNDLENBQUQsRUFBTztBQUN6QixNQUFNQyxVQUFVRCxFQUFFRSxjQUFsQjtBQUNBLE1BQU1DLGlCQUFpQkMsTUFBTUMsUUFBTiwyQkFBaUNMLEVBQUVFLGNBQUYsQ0FBaUJJLE9BQWpCLENBQXlCQyxJQUExRCxVQUFvRSxLQUFwRSxFQUEyRVQsR0FBR1UsZ0JBQTlFLEVBQWdHLElBQWhHLEVBQXNHLENBQXRHLENBQXZCO0FBQ0EsTUFBTUMsY0FBYztBQUNuQkMsUUFBSVQsUUFBUUssT0FBUixDQUFnQkssTUFERDtBQUVuQkosVUFBTU4sUUFBUUssT0FBUixDQUFnQkMsSUFGSDtBQUduQkssV0FBT1gsUUFBUUssT0FBUixDQUFnQk0sS0FISjtBQUluQkMsV0FBT1osUUFBUUssT0FBUixDQUFnQk87QUFKSixHQUFwQjtBQU9BZixLQUFHZ0IsV0FBSCxDQUFlQyxrQkFBZixDQUFrQyxXQUFsQyxFQUErQyxzQ0FBZ0JOLFdBQWhCLENBQS9DO0FBQ0FOLGlCQUFlYSxTQUFmLENBQXlCQyxHQUF6QixDQUE2QixrQ0FBN0I7QUFDQWQsaUJBQWVlLGFBQWYsQ0FBNkIseUNBQTdCLEVBQXdFQyxXQUF4RSxHQUFzRixXQUFLQyxPQUFMLENBQWFDLGNBQW5HOztBQUNBLDBCQUFlQyxnQkFBZixDQUFnQ0MsT0FBaEMsQ0FBd0NDLElBQXhDLENBQTZDeEIsRUFBRUUsY0FBRixDQUFpQkksT0FBakIsQ0FBeUJLLE1BQXRFOztBQUNBLHVCQUFRO0FBQUVjLFdBQU8sMENB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Q0FHLDZCQUEyQjNDLENBQTNCO0FBQ0EsQ0FIRDs7QUFLQSxJQUFNb0UsZ0JBQWdCLFNBQWhCQSxhQUFnQixHQUFNO0FBQzNCdEUsS0FBR1UsZ0JBQUgsR0FBc0JKLE1BQU1DLFFBQU4sQ0FBZSwrQkFBZixFQUFnRCxDQUFoRCxDQUF0QjtBQUNBUCxLQUFHdUUsaUJBQUgsR0FBdUJqRSxNQUFNQyxRQUFOLENBQWUsbUNBQWYsRUFBb0QsQ0FBcEQsQ0FBdkI7QUFDQVAsS0FBR2dCLFdBQUgsR0FBaUJWLE1BQU1DLFFBQU4sQ0FBZSw4QkFBZixFQUErQyxLQUEvQyxFQUFzRFAsR0FBR3VFLGlCQUF6RCxFQUE0RSxDQUE1RSxDQUFqQjtBQUNBLENBSkQ7O0FBTUEsSUFBTUMsYUFBYSxTQUFiQSxVQUFhLEdBQU07QUFDeEIseUJBQVN4RSxHQUFHVSxnQkFBWixFQUE4QixnQ0FBOUIsRUFBZ0UsT0FBaEUsRUFBeUU0QixnQkFBekU7QUFDQSx5QkFBU3RDLEdBQUd1RSxpQkFBWixFQUErQiw0QkFBL0IsRUFBNkQsT0FBN0QsRUFBc0UxQyxhQUF0RTtBQUNBLGtCQUFHNEMsUUFBSCxFQUFhLG9DQUFiLEVBQW1ESix3QkFBbkQ7QUFDQSxDQUpEOztBQU1BLElBQU1LLE9BQU8sU0FBUEEsSUFBTyxHQUFNO0FBQ2xCSjtBQUNBRTtBQUNBLENBSEQ7O2VBS2VFLEkiLCJmaWxlIjoiMTkwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIFByb2R1Y3QgUmVzdWx0c1xuICogQGRlc2NyaXB0aW9uIGhhbmRsZSBwcm9kdWN0IHJlc3VsdHMgaW50ZXJhY3Rpb25zLlxuICovXG5cbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgZGVsZWdhdGUgZnJvbSAnZGVsZWdhdGUnO1xuaW1wb3J0ICogYXMgdG9vbHMgZnJvbSAnLi4vLi4vdXRpbHMvdG9vbHMnO1xuaW1wb3J0IHsgc2VsZWN0ZWRQcm9kdWN0IH0gZnJvbSAnLi9wcm9kdWN0LXRlbXBsYXRlJztcbmltcG9ydCB7IEkxOE4gfSBmcm9tICcuLi9jb25maWcvaTE4bic7XG5pbXBvcnQgc2hvcnRjb2RlU3RhdGUgZnJvbSAnLi4vY29uZmlnL3Nob3J0Y29kZS1zdGF0ZSc7XG5pbXBvcnQgeyBvbiwgdHJpZ2dlciB9IGZyb20gJy4uLy4uL3V0aWxzL2V2ZW50cyc7XG5pbXBvcnQgeyB3cEFQSVByb2R1Y3RMb29rdXAgfSBmcm9tICcuLi8uLi91dGlscy9hamF4JztcblxuY29uc3QgZWwgPSB7fTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gYWRkUHJvZHVjdFxuICogQGRlc2NyaXB0aW9uIGFkZCBhIHByb2R1Y3QgdG8gdGhlIHNlbGVjdGVkIHNpZGViYXIgbGlzdC5cbiAqIEBwYXJhbSBlXG4gKi9cbmNvbnN0IGFkZFByb2R1Y3QgPSAoZSkgPT4ge1xuXHRjb25zdCBwcm9kdWN0ID0gZS5kZWxlZ2F0ZVRhcmdldDtcblx0Y29uc3QgcmVzdWx0c1Byb2R1Y3QgPSB0b29scy5nZXROb2RlcyhgW2RhdGEtcHJvZHVjdD1cIiR7ZS5kZWxlZ2F0ZVRhcmdldC5kYXRhc2V0LmJjaWR9XCJdYCwgZmFsc2UsIGVsLnJlc3VsdHNDb250YWluZXIsIHRydWUpWzBdO1xuXHRjb25zdCBwcm9kdWN0RGF0YSA9IHtcblx0XHRpZDogcHJvZHVjdC5kYXRhc2V0LnBvc3RpZCxcblx0XHRiY2lkOiBwcm9kdWN0LmRhdGFzZXQuYmNpZCxcblx0XHR0aXRsZTogcHJvZHVjdC5kYXRhc2V0LnRpdGxlLFxuXHRcdHByaWNlOiBwcm9kdWN0LmRhdGFzZXQucHJpY2UsXG5cdH07XG5cblx0ZWwucHJvZHVjdExpc3QuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmVlbmQnLCBzZWxlY3RlZFByb2R1Y3QocHJvZHVjdERhdGEpKTtcblx0cmVzdWx0c1Byb2R1Y3QuY2xhc3NMaXN0LmFkZCgnYmMtc2hvcnRjb2RlLXVpX19zZWxlY3RlZC1yZXN1bHQnKTtcblx0cmVzdWx0c1Byb2R1Y3QucXVlcnlTZWxlY3RvcignLmJjLXNob3J0Y29kZS11aV9fcHJvZHVjdC1hbmNob3Itc3RhdHVzJykudGV4dENvbnRlbnQgPSBJMThOLmJ1dHRvbnMucmVtb3ZlX3Byb2R1Y3Q7XG5cdHNob3J0Y29kZVN0YXRlLnNlbGVjdGVkUHJvZHVjdHMucG9zdF9pZC5wdXNoKGUuZGVsZWdhdGVUYXJnZXQuZGF0YXNldC5wb3N0aWQpO1xuXHR0cmlnZ2VyKHsgZXZlbnQ6ICdiaWdjb21tZXJjZS9zaG9ydGNvZGVfcHJvZHVjdF9saXN0X2V2ZW50JywgbmF0aXZlOiBmYWxzZSB9KTtcbn07XG5cbi8qKlxuICogQGZ1bmN0aW9uIHJlbW92ZVByb2R1Y3RcbiAqIEBkZXNjcmlwdGlvbiByZW1vdmUgYSBwcm9kdWN0IGZyb20gdGhlIHNlbGVjdGVkIHNpZGViYXIgbGlzdC5cbiAqIEBwYXJhbSBlXG4gKi9cbmNvbnN0IHJlbW92ZVByb2R1Y3QgPSAoZSkgPT4ge1xuXHRjb25zdCBwcm9kdWN0SUQgPSBlLmRlbGVnYXRlVGFyZ2V0LmRhdGFzZXQucG9zdGlkO1xuXHRjb25zdCBwcm9kdWN0QkNJRCA9IGUuZGVsZWdhdGVUYXJnZXQuZGF0YXNldC5iY2lkO1xuXHRjb25zdCBwcm9kdWN0ID0gdG9vbHMuZ2V0Tm9kZXMoYFtkYXRhLXByb2R1Y3Q9XCIke3Byb2R1Y3RCQ0lEfVwiXWAsIGZhbHNlLCBlbC5wcm9kdWN0TGlzdCwgdHJ1ZSlbMF07XG5cdGNvbnN0IHJlc3VsdHNQcm9kdWN0ID0gdG9vbHMuZ2V0Tm9kZXMoYFtkYXRhLXByb2R1Y3Q9XCIke3Byb2R1Y3RCQ0lEfVwiXWAsIGZhbHNlLCBlbC5yZXN1bHRzQ29udGFpbmVyLCB0cnVlKVswXTtcblx0Y29uc3QgdmFsSW5kZXggPSBzaG9ydGNvZGVTdGF0ZS5zZWxlY3RlZFByb2R1Y3RzLnBvc3RfaWQuaW5kZXhPZihwcm9kdWN0SUQpO1xuXG5cdGlmIChyZXN1bHRzUHJvZHVjdCkge1xuXHRcdHJlc3VsdHNQcm9kdWN0LmNsYXNzTGlzdC5yZW1vdmUoJ2JjLXNob3J0Y29kZS11aV9fc2VsZWN0ZWQtcmVzdWx0Jyk7XG5cdFx0cmVzdWx0c1Byb2R1Y3QucXVlcnlTZWxlY3RvcignLmJjLXNob3J0Y29kZS11aV9fcHJvZHVjdC1hbmNob3Itc3RhdHVzJykudGV4dENvbnRlbnQgPSBJMThOLmJ1dHRvbnMuYWRkX3Byb2R1Y3Q7XG5cdH1cblxuXHRlbC5wcm9kdWN0TGlzdC5yZW1vdmVDaGlsZChwcm9kdWN0KTtcblx0c2hvcnRjb2RlU3RhdGUuc2VsZWN0ZWRQcm9kdWN0cy5wb3N0X2lkLnNwbGljZSh2YWxJbmRleCwgMSk7XG5cdHRyaWdnZXIoeyBldmVudDogJ2JpZ2NvbW1lcmNlL3Nob3J0Y29kZV9wcm9kdWN0X2xpc3RfZXZlbnQnLCBuYXRpdmU6IGZhbHNlIH0pO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gYWRkUmVtb3ZlUHJvZHVjdFxuICogQGRlc2NyaXB0aW9uIHNldCBhIHByb2R1Y3QgaW4gdGhlIHJlc3VsdHMgc2VjdGlvbiB0byBzZWxlY3RlZCBvciBub3QgYmFzZWQgb24gY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSBlXG4gKi9cbmNvbnN0IGFkZFJlbW92ZVByb2R1Y3QgPSAoZSkgPT4ge1xuXHRjb25zdCBwcm9kdWN0ID0gdG9vbHMuY2xvc2VzdChlLmRlbGVnYXRlVGFyZ2V0LCBgW2RhdGEtcHJvZHVjdD1cIiR7ZS5kZWxlZ2F0ZVRhcmdldC5kYXRhc2V0LmJjaWR9XCJdYCk7XG5cblx0cHJvZHVjdC5jbGFzc0xpc3QudG9nZ2xlKCdiYy1zaG9ydGNvZGUtdWlfX3NlbGVjdGVkLXJlc3VsdCcpO1xuXHRpZiAoIXByb2R1Y3QuY2xhc3NMaXN0LmNvbnRhaW5zKCdiYy1zaG9ydGNvZGUtdWlfX3NlbGVjdGVkLXJlc3VsdCcpKSB7XG5cdFx0cmVtb3ZlUHJvZHVjdChlKTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRhZGRQcm9kdWN0KGUpO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gcmVzZXRQcm9kdWN0TGlzdFxuICogQGRlc2NyaXB0aW9uIGNsZWFyIHRoZSBwcm9kdWN0IGxpc3Qgc2VsZWN0aW9ucyBhbmQgc3RhdGUgd2hlbiB0cmlnZ2VyaW5nIHRoZSBiaWdjb21tZXJjZS9zZXRfc2hvcnRjb2RlX3VpX3N0YXRlIGV2ZW50LlxuICovXG5jb25zdCByZXNldFByb2R1Y3RzTGlzdCA9ICgpID0+IHtcblx0c2hvcnRjb2RlU3RhdGUuc2VsZWN0ZWRQcm9kdWN0cy5wb3N0X2lkID0gW107XG5cblx0dG9vbHMuZ2V0Tm9kZXMoJy5iYy1zaG9ydGNvZGUtdWlfX3NlbGVjdGVkLXJlc3VsdCcsIHRydWUsIGVsLnJlc3VsdHNDb250YWluZXIsIHRydWUpLmZvckVhY2goKHByb2R1Y3QpID0+IHtcblx0XHR0b29scy5yZW1vdmVDbGFzcyhwcm9kdWN0LCAnYmMtc2hvcnRjb2RlLXVpX19zZWxlY3RlZC1yZXN1bHQnKTtcblx0fSk7XG5cblx0ZWwucHJvZHVjdExpc3QudGV4dENvbnRlbnQgPSAnJztcbn07XG5cbi8qKlxuICogQGZ1bmN0aW9uIHBvcHVsYXRlU2F2ZWRVSVByb2R1Y3RMaXN0XG4gKiBAZGVzY3JpcHRpb24gQWRkIHNhdmVkIFVJIHByb2R1Y3RzIHRvIHRoZSBwcm9kdWN0cyBsaXN0LlxuICogQHBhcmFtIGVcbiAqL1xuY29uc3QgcG9wdWxhdGVTYXZlZFVJUHJvZHVjdExpc3QgPSAoZSkgPT4ge1xuXHRpZiAoIWUuZGV0YWlsLnBhcmFtcykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IGN1cnJlbnRCbG9ja0JDSURzID0gZS5kZXRhaWwucGFyYW1zLmlkO1xuXG5cdGlmICghY3VycmVudEJsb2NrQkNJRHMgfHwgY3VycmVudEJsb2NrQkNJRHMubGVuZ3RoIDw9IDApIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBrID0gZW5jb2RlVVJJQ29tcG9uZW50KCdiY2lkJyk7XG5cdGNvbnN0IHYgPSBlbmNvZGVVUklDb21wb25lbnQoY3VycmVudEJsb2NrQkNJRHMpO1xuXHRjb25zdCBzdHIgPSBbXTtcblx0c3RyLnB1c2goYCR7a309JHt2fWApO1xuXHRjb25zdCBxdWVyeVN0cmluZyA9IHN0ciA/IHN0ci5qb2luKEkxOE4ub3BlcmF0aW9ucy5xdWVyeV9zdHJpbmdfc2VwYXJhdG9yKSA6ICcnO1xuXHRsZXQgc2VsZWN0ZWRQcm9kdWN0c05vZGVzID0gJyc7XG5cblx0c2hvcnRjb2RlU3RhdGUuaXNGZXRjaGluZyA9IHRydWU7XG5cblx0d3BBUElQcm9kdWN0TG9va3VwKHF1ZXJ5U3RyaW5nKVxuXHRcdC5lbmQoKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRzaG9ydGNvZGVTdGF0ZS5pc0ZldGNoaW5nID0gZmFsc2U7XG5cblx0XHRcdGlmIChlcnIpIHtcblx0XHRcdFx0Ly8gVE9ETzogZ2V0IGRlYnVnIHN0YXR1cyBhbmQgb25seSBkaXNwbGF5IGlmIHRydWUuXG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoZXJyKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXMuYm9keS5mb3JFYWNoKChwcm9kdWN0KSA9PiB7XG5cdFx0XHRcdGNvbnN0IHByb2R1Y3REYXRhID0ge1xuXHRcdFx0XHRcdGlkOiBwcm9kdWN0LnBvc3RfaWQsXG5cdFx0XHRcdFx0YmNpZDogcHJvZHVjdC5iaWdjb21tZXJjZV9pZCxcblx0XHRcdFx0XHR0aXRsZTogcHJvZHVjdC50aXRsZSxcblx0XHRcdFx0XHRwcmljZTogcHJvZHVjdC5wcmljZV9yYW5nZSxcblx0XHRcdFx0fTtcblxuXHRcdFx0XHRzZWxlY3RlZFByb2R1Y3RzTm9kZXMgKz0gc2VsZWN0ZWRQcm9kdWN0KHByb2R1Y3REYXRhKTtcblx0XHRcdFx0c2hvcnRjb2RlU3RhdGUuc2VsZWN0ZWRQcm9kdWN0cy5wb3N0X2lkLnB1c2gocHJvZHVjdC5wb3N0X2lkLnRvU3RyaW5nKCkpO1xuXHRcdFx0fSk7XG5cblx0XHRcdGVsLnByb2R1Y3RMaXN0Lmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlZW5kJywgc2VsZWN0ZWRQcm9kdWN0c05vZGVzKTtcblxuXHRcdFx0Xy5kZWxheSgoKSA9PiB0cmlnZ2VyKHsgZXZlbnQ6ICdiaWdjb21tZXJjZS9zaG9ydGNvZGVfcHJvZHVjdF9saXN0X2V2ZW50JywgbmF0aXZlOiBmYWxzZSB9KSwgMTAwKTtcblx0XHR9KTtcbn07XG5cbi8qKlxuICogQGZ1bmN0aW9uIGhhbmRsZVNhdmVkVUlQcm9kdWN0TGlzdFxuICogQGRlc2NyaXB0aW9uIFdoZW4gYSB1c2VyIG9wZW5zIG9yIHJlb3BlbnMgdGhlIFVJLCByZXNldCB0aGUgVUkgYW5kIGNoZWNrIGZvciBhIHNhdmVkIHN0YXRlLlxuICogQHBhcmFtIGVcbiAqL1xuY29uc3QgaGFuZGxlU2F2ZWRVSVByb2R1Y3RMaXN0ID0gKGUpID0+IHtcblx0cmVzZXRQcm9kdWN0c0xpc3QoKTtcblx0cG9wdWxhdGVTYXZlZFVJUHJvZHVjdExpc3QoZSk7XG59O1xuXG5jb25zdCBjYWNoZUVsZW1lbnRzID0gKCkgPT4ge1xuXHRlbC5yZXN1bHRzQ29udGFpbmVyID0gdG9vbHMuZ2V0Tm9kZXMoJ2JjLXNob3J0Y29kZS11aS1xdWVyeS1yZXN1bHRzJylbMF07XG5cdGVsLnNlbGVjdGVkQ29udGFpbmVyID0gdG9vbHMuZ2V0Tm9kZXMoJ2JjLXNob3J0Y29kZS11aS1zZWxlY3RlZC1wcm9kdWN0cycpWzBdO1xuXHRlbC5wcm9kdWN0TGlzdCA9IHRvb2xzLmdldE5vZGVzKCdiYy1zaG9ydGNvZGUtdWktcHJvZHVjdC1saXN0JywgZmFsc2UsIGVsLnNlbGVjdGVkQ29udGFpbmVyKVswXTtcbn07XG5cbmNvbnN0IGJpbmRFdmVudHMgPSAoKSA9PiB7XG5cdGRlbGVnYXRlKGVsLnJlc3VsdHNDb250YWluZXIsICdbZGF0YS1qcz1cImFkZC1yZW1vdmUtcHJvZHVjdFwiXScsICdjbGljaycsIGFkZFJlbW92ZVByb2R1Y3QpO1xuXHRkZWxlZ2F0ZShlbC5zZWxlY3RlZENvbnRhaW5lciwgJ1tkYXRhLWpzPVwicmVtb3ZlLXByb2R1Y3RcIl0nLCAnY2xpY2snLCByZW1vdmVQcm9kdWN0KTtcblx0b24oZG9jdW1lbnQsICdiaWdjb21tZXJjZS9zZXRfc2hvcnRjb2RlX3VpX3N0YXRlJywgaGFuZGxlU2F2ZWRVSVByb2R1Y3RMaXN0KTtcbn07XG5cbmNvbnN0IGluaXQgPSAoKSA9PiB7XG5cdGNhY2hlRWxlbWVudHMoKTtcblx0YmluZEV2ZW50cygpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgaW5pdDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vc2hvcnRjb2RlLXVpL3Byb2R1Y3Qtc2VsZWN0aW9uLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///190\n"); +eval("\n\nvar _interopRequireWildcard = __webpack_require__(8);\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _delay2 = _interopRequireDefault(__webpack_require__(26));\n\nvar _delegate = _interopRequireDefault(__webpack_require__(23));\n\nvar tools = _interopRequireWildcard(__webpack_require__(12));\n\nvar _productTemplate = __webpack_require__(95);\n\nvar _i18n = __webpack_require__(24);\n\nvar _shortcodeState = _interopRequireDefault(__webpack_require__(4));\n\nvar _events = __webpack_require__(13);\n\nvar _ajax = __webpack_require__(35);\n\nvar el = {};\n/**\n * @function addProduct\n * @description add a product to the selected sidebar list.\n * @param e\n */\n\nvar addProduct = function addProduct(e) {\n var product = e.delegateTarget;\n var resultsProduct = tools.getNodes(\"[data-product=\\\"\".concat(e.delegateTarget.dataset.bcid, \"\\\"]\"), false, el.resultsContainer, true)[0];\n var productData = {\n id: product.dataset.postid,\n bcid: product.dataset.bcid,\n title: product.dataset.title,\n price: product.dataset.price\n };\n el.productList.insertAdjacentHTML('beforeend', (0, _productTemplate.selectedProduct)(productData));\n resultsProduct.classList.add('bc-shortcode-ui__selected-result');\n resultsProduct.querySelector('.bc-shortcode-ui__product-anchor-status').textContent = _i18n.I18N.buttons.remove_product;\n\n _shortcodeState.default.selectedProducts.post_id.push(e.delegateTarget.dataset.postid);\n\n (0, _events.trigger)({\n event: 'bigcommerce/shortcode_product_list_event',\n native: false\n });\n};\n/**\n * @function removeProduct\n * @description remove a product from the selected sidebar list.\n * @param e\n */\n\n\nvar removeProduct = function removeProduct(e) {\n var productID = e.delegateTarget.dataset.postid;\n var productBCID = e.delegateTarget.dataset.bcid;\n var product = tools.getNodes(\"[data-product=\\\"\".concat(productBCID, \"\\\"]\"), false, el.productList, true)[0];\n var resultsProduct = tools.getNodes(\"[data-product=\\\"\".concat(productBCID, \"\\\"]\"), false, el.resultsContainer, true)[0];\n\n var valIndex = _shortcodeState.default.selectedProducts.post_id.indexOf(productID);\n\n if (resultsProduct) {\n resultsProduct.classList.remove('bc-shortcode-ui__selected-result');\n resultsProduct.querySelector('.bc-shortcode-ui__product-anchor-status').textContent = _i18n.I18N.buttons.add_product;\n }\n\n el.productList.removeChild(product);\n\n _shortcodeState.default.selectedProducts.post_id.splice(valIndex, 1);\n\n (0, _events.trigger)({\n event: 'bigcommerce/shortcode_product_list_event',\n native: false\n });\n};\n/**\n * @function addRemoveProduct\n * @description set a product in the results section to selected or not based on current state.\n * @param e\n */\n\n\nvar addRemoveProduct = function addRemoveProduct(e) {\n var product = tools.closest(e.delegateTarget, \"[data-product=\\\"\".concat(e.delegateTarget.dataset.bcid, \"\\\"]\"));\n product.classList.toggle('bc-shortcode-ui__selected-result');\n\n if (!product.classList.contains('bc-shortcode-ui__selected-result')) {\n removeProduct(e);\n return;\n }\n\n addProduct(e);\n};\n/**\n * @function resetProductList\n * @description clear the product list selections and state when triggering the bigcommerce/set_shortcode_ui_state event.\n */\n\n\nvar resetProductsList = function resetProductsList() {\n _shortcodeState.default.selectedProducts.post_id = [];\n tools.getNodes('.bc-shortcode-ui__selected-result', true, el.resultsContainer, true).forEach(function (product) {\n tools.removeClass(product, 'bc-shortcode-ui__selected-result');\n });\n el.productList.textContent = '';\n};\n/**\n * @function populateSavedUIProductList\n * @description Add saved UI products to the products list.\n * @param e\n */\n\n\nvar populateSavedUIProductList = function populateSavedUIProductList(e) {\n if (!e.detail.params) {\n return;\n }\n\n var currentBlockBCIDs = e.detail.params.id;\n\n if (!currentBlockBCIDs || currentBlockBCIDs.length <= 0) {\n return;\n }\n\n var k = encodeURIComponent('bcid');\n var v = encodeURIComponent(currentBlockBCIDs);\n var str = [];\n str.push(\"\".concat(k, \"=\").concat(v));\n var queryString = str ? str.join(_i18n.I18N.operations.query_string_separator) : '';\n var selectedProductsNodes = '';\n _shortcodeState.default.isFetching = true;\n (0, _ajax.wpAPIProductLookup)(queryString).end(function (err, res) {\n _shortcodeState.default.isFetching = false;\n\n if (err) {\n // TODO: get debug status and only display if true.\n console.error(err);\n return;\n }\n\n res.body.forEach(function (product) {\n var productData = {\n id: product.post_id,\n bcid: product.bigcommerce_id,\n title: product.title,\n price: product.price_range\n };\n selectedProductsNodes += (0, _productTemplate.selectedProduct)(productData);\n\n _shortcodeState.default.selectedProducts.post_id.push(product.post_id.toString());\n });\n el.productList.insertAdjacentHTML('beforeend', selectedProductsNodes);\n (0, _delay2.default)(function () {\n return (0, _events.trigger)({\n event: 'bigcommerce/shortcode_product_list_event',\n native: false\n });\n }, 100);\n });\n};\n/**\n * @function handleSavedUIProductList\n * @description When a user opens or reopens the UI, reset the UI and check for a saved state.\n * @param e\n */\n\n\nvar handleSavedUIProductList = function handleSavedUIProductList(e) {\n resetProductsList();\n populateSavedUIProductList(e);\n};\n\nvar cacheElements = function cacheElements() {\n el.resultsContainer = tools.getNodes('bc-shortcode-ui-query-results')[0];\n el.selectedContainer = tools.getNodes('bc-shortcode-ui-selected-products')[0];\n el.productList = tools.getNodes('bc-shortcode-ui-product-list', false, el.selectedContainer)[0];\n};\n\nvar bindEvents = function bindEvents() {\n (0, _delegate.default)(el.resultsContainer, '[data-js=\"add-remove-product\"]', 'click', addRemoveProduct);\n (0, _delegate.default)(el.selectedContainer, '[data-js=\"remove-product\"]', 'click', removeProduct);\n (0, _events.on)(document, 'bigcommerce/set_shortcode_ui_state', handleSavedUIProductList);\n};\n\nvar init = function init() {\n cacheElements();\n bindEvents();\n};\n\nvar _default = init;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL3Nob3J0Y29kZS11aS9wcm9kdWN0LXNlbGVjdGlvbi5qcz8zOWRkIl0sIm5hbWVzIjpbImVsIiwiYWRkUHJvZHVjdCIsImUiLCJwcm9kdWN0IiwiZGVsZWdhdGVUYXJnZXQiLCJyZXN1bHRzUHJvZHVjdCIsInRvb2xzIiwiZ2V0Tm9kZXMiLCJkYXRhc2V0IiwiYmNpZCIsInJlc3VsdHNDb250YWluZXIiLCJwcm9kdWN0RGF0YSIsImlkIiwicG9zdGlkIiwidGl0bGUiLCJwcmljZSIsInByb2R1Y3RMaXN0IiwiaW5zZXJ0QWRqYWNlbnRIVE1MIiwiY2xhc3NMaXN0IiwiYWRkIiwicXVlcnlTZWxlY3RvciIsInRleHRDb250ZW50IiwiYnV0dG9ucyIsInJlbW92ZV9wcm9kdWN0Iiwic2VsZWN0ZWRQcm9kdWN0cyIsInBvc3RfaWQiLCJwdXNoIiwiZXZlbnQiLCJuYXRpdmUiLCJyZW1vdmVQcm9kdWN0IiwicHJvZHVjdElEIiwicHJvZHVjdEJDSUQiLCJ2YWxJbmRleCIsImluZGV4T2YiLCJyZW1vdmUiLCJhZGRfcHJvZHVjdCIsInJlbW92ZUNoaWxkIiwic3BsaWNlIiwiYWRkUmVtb3ZlUHJvZHVjdCIsImNsb3Nlc3QiLCJ0b2dnbGUiLCJjb250YWlucyIsInJlc2V0UHJvZHVjdHNMaXN0IiwiZm9yRWFjaCIsInJlbW92ZUNsYXNzIiwicG9wdWxhdGVTYXZlZFVJUHJvZHVjdExpc3QiLCJkZXRhaWwiLCJwYXJhbXMiLCJjdXJyZW50QmxvY2tCQ0lEcyIsImxlbmd0aCIsImsiLCJlbmNvZGVVUklDb21wb25lbnQiLCJ2Iiwic3RyIiwicXVlcnlTdHJpbmciLCJqb2luIiwib3BlcmF0aW9ucyIsInF1ZXJ5X3N0cmluZ19zZXBhcmF0b3IiLCJzZWxlY3RlZFByb2R1Y3RzTm9kZXMiLCJpc0ZldGNoaW5nIiwiZW5kIiwiZXJyIiwicmVzIiwiY29uc29sZSIsImVycm9yIiwiYm9keSIsImJpZ2NvbW1lcmNlX2lkIiwicHJpY2VfcmFuZ2UiLCJ0b1N0cmluZyIsImhhbmRsZVNhdmVkVUlQcm9kdWN0TGlzdCIsImNhY2hlRWxlbWVudHMiLCJzZWxlY3RlZENvbnRhaW5lciIsImJpbmRFdmVudHMiLCJkb2N1bWVudCIsImluaXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFNQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxJQUFNQSxLQUFLLEVBQVg7QUFFQTs7Ozs7O0FBS0EsSUFBTUMsYUFBYSxTQUFiQSxVQUFhLENBQUNDLENBQUQsRUFBTztBQUN6QixNQUFNQyxVQUFVRCxFQUFFRSxjQUFsQjtBQUNBLE1BQU1DLGlCQUFpQkMsTUFBTUMsUUFBTiwyQkFBaUNMLEVBQUVFLGNBQUYsQ0FBaUJJLE9BQWpCLENBQXlCQyxJQUExRCxVQUFvRSxLQUFwRSxFQUEyRVQsR0FBR1UsZ0JBQTlFLEVBQWdHLElBQWhHLEVBQXNHLENBQXRHLENBQXZCO0FBQ0EsTUFBTUMsY0FBYztBQUNuQkMsUUFBSVQsUUFBUUssT0FBUixDQUFnQkssTUFERDtBQUVuQkosVUFBTU4sUUFBUUssT0FBUixDQUFnQkMsSUFGSDtBQUduQkssV0FBT1gsUUFBUUssT0FBUixDQUFnQk0sS0FISjtBQUluQkMsV0FBT1osUUFBUUssT0FBUixDQUFnQk87QUFKSixHQUFwQjtBQU9BZixLQUFHZ0IsV0FBSCxDQUFlQyxrQkFBZixDQUFrQyxXQUFsQyxFQUErQyxzQ0FBZ0JOLFdBQWhCLENBQS9DO0FBQ0FOLGlCQUFlYSxTQUFmLENBQXlCQyxHQUF6QixDQUE2QixrQ0FBN0I7QUFDQWQsaUJBQWVlLGFBQWYsQ0FBNkIseUNBQTdCLEVBQXdFQyxXQUF4RSxHQUFzRixXQUFLQyxPQUFMLENBQWFDLGNBQW5HOztBQUNBLDBCQUFlQyxnQkFBZixDQUFnQ0MsT0FBaEMsQ0FBd0NDLElBQXhDLENBQTZDeEIsRUFBRUUsY0FBRixDQUFpQkksT0FBakIsQ0FBeUJLLE1BQXRFOztBQUNBLHVCQUFRO0FBQUVjLFdBQU8sMENBQVQ7QUFBcURDLFlBQVE7QUFBN0QsR0FBUjtBQUNBLENBZkQ7QUFpQkE7Ozs7Ozs7QUFLQSxJQUFNQyxnQkFBZ0IsU0FBaEJBLGFBQWdCLENBQUMzQixDQUFELEVBQU87QUFDNUIsTUFBTTRCLFlBQVk1QixFQUFFRSxjQUFGLENBQWlCSSxPQUFqQixDQUF5QkssTUFBM0M7QUFDQSxNQUFNa0IsY0FBYzdCLEVBQUVFLGNBQUYsQ0FBaUJJLE9BQWpCLENBQXlCQyxJQUE3QztBQUNBLE1BQU1OLFVBQVVHLE1BQU1DLFFBQU4sMkJBQWlDd0IsV0FBakMsVUFBa0QsS0FBbEQsRUFBeUQvQixHQUFHZ0IsV0FBNUQsRUFBeUUsSUFBekUsRUFBK0UsQ0FBL0UsQ0FBaEI7QUFDQSxNQUFNWCxpQkFBaUJDLE1BQU1DLFFBQU4sMkJBQWlDd0IsV0FBakMsVUFBa0QsS0FBbEQsRUFBeUQvQixHQUFHVSxnQkFBNUQsRUFBOEUsSUFBOUUsRUFBb0YsQ0FBcEYsQ0FBdkI7O0FBQ0EsTUFBTXNCLFdBQVcsd0JBQWVSLGdCQUFmLENBQWdDQyxPQUFoQyxDQUF3Q1EsT0FBeEMsQ0FBZ0RILFNBQWhELENBQWpCOztBQUVBLE1BQUl6QixjQUFKLEVBQW9CO0FBQ25CQSxtQkFBZWEsU0FBZixDQUF5QmdCLE1BQXpCLENBQWdDLGtDQUFoQztBQUNBN0IsbUJBQWVlLGFBQWYsQ0FBNkIseUNBQTdCLEVBQXdFQyxXQUF4RSxHQUFzRixXQUFLQyxPQUFMLENBQWFhLFdBQW5HO0FBQ0E7O0FBRURuQyxLQUFHZ0IsV0FBSCxDQUFlb0IsV0FBZixDQUEyQmpDLE9BQTNCOztBQUNBLDBCQUFlcUIsZ0JBQWYsQ0FBZ0NDLE9BQWhDLENBQXdDWSxNQUF4QyxDQUErQ0wsUUFBL0MsRUFBeUQsQ0FBekQ7O0FBQ0EsdUJBQVE7QUFBRUwsV0FBTywwQ0FBVDtBQUFxREMsWUFBUTtBQUE3RCxHQUFSO0FBQ0EsQ0FmRDtBQWlCQTs7Ozs7OztBQUtBLElBQU1VLG1CQUFtQixTQUFuQkEsZ0JBQW1CLENBQUNwQyxDQUFELEVBQU87QUFDL0IsTUFBTUMsVUFBVUcsTUFBTWlDLE9BQU4sQ0FBY3JDLEVBQUVFLGNBQWhCLDRCQUFrREYsRUFBRUUsY0FBRixDQUFpQkksT0FBakIsQ0FBeUJDLElBQTNFLFNBQWhCO0FBRUFOLFVBQVFlLFNBQVIsQ0FBa0JzQixNQUFsQixDQUF5QixrQ0FBekI7O0FBQ0EsTUFBSSxDQUFDckMsUUFBUWUsU0FBUixDQUFrQnVCLFFBQWxCLENBQTJCLGtDQUEzQixDQUFMLEVBQXFFO0FBQ3BFWixrQkFBYzNCLENBQWQ7QUFDQTtBQUNBOztBQUVERCxhQUFXQyxDQUFYO0FBQ0EsQ0FWRDtBQVlBOzs7Ozs7QUFJQSxJQUFNd0Msb0JBQW9CLFNBQXBCQSxpQkFBb0IsR0FBTTtBQUMvQiwwQkFBZWxCLGdCQUFmLENBQWdDQyxPQUFoQyxHQUEwQyxFQUExQztBQUVBbkIsUUFBTUMsUUFBTixDQUFlLG1DQUFmLEVBQW9ELElBQXBELEVBQTBEUCxHQUFHVSxnQkFBN0QsRUFBK0UsSUFBL0UsRUFBcUZpQyxPQUFyRixDQUE2RixVQUFDeEMsT0FBRCxFQUFhO0FBQ3pHRyxVQUFNc0MsV0FBTixDQUFrQnpDLE9BQWxCLEVBQTJCLGtDQUEzQjtBQUNBLEdBRkQ7QUFJQUgsS0FBR2dCLFdBQUgsQ0FBZUssV0FBZixHQUE2QixFQUE3QjtBQUNBLENBUkQ7QUFVQTs7Ozs7OztBQUtBLElBQU13Qiw2QkFBNkIsU0FBN0JBLDBCQUE2QixDQUFDM0MsQ0FBRCxFQUFPO0FBQ3pDLE1BQUksQ0FBQ0EsRUFBRTRDLE1BQUYsQ0FBU0MsTUFBZCxFQUFzQjtBQUNyQjtBQUNBOztBQUVELE1BQU1DLG9CQUFvQjlDLEVBQUU0QyxNQUFGLENBQVNDLE1BQVQsQ0FBZ0JuQyxFQUExQzs7QUFFQSxNQUFJLENBQUNvQyxpQkFBRCxJQUFzQkEsa0JBQWtCQyxNQUFsQixJQUE0QixDQUF0RCxFQUF5RDtBQUN4RDtBQUNBOztBQUVELE1BQU1DLElBQUlDLG1CQUFtQixNQUFuQixDQUFWO0FBQ0EsTUFBTUMsSUFBSUQsbUJBQW1CSCxpQkFBbkIsQ0FBVjtBQUNBLE1BQU1LLE1BQU0sRUFBWjtBQUNBQSxNQUFJM0IsSUFBSixXQUFZd0IsQ0FBWixjQUFpQkUsQ0FBakI7QUFDQSxNQUFNRSxjQUFjRCxNQUFNQSxJQUFJRSxJQUFKLENBQVMsV0FBS0MsVUFBTCxDQUFnQkMsc0JBQXpCLENBQU4sR0FBeUQsRUFBN0U7QUFDQSxNQUFJQyx3QkFBd0IsRUFBNUI7QUFFQSwwQkFBZUMsVUFBZixHQUE0QixJQUE1QjtBQUVBLGdDQUFtQkwsV0FBbkIsRUFDRU0sR0FERixDQUNNLFVBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFjO0FBQ2xCLDRCQUFlSCxVQUFmLEdBQTRCLEtBQTVCOztBQUVBLFFBQUlFLEdBQUosRUFBUztBQUNSO0FBQ0FFLGNBQVFDLEtBQVIsQ0FBY0gsR0FBZDtBQUNBO0FBQ0E7O0FBRURDLFFBQUlHLElBQUosQ0FBU3RCLE9BQVQsQ0FBaUIsVUFBQ3hDLE9BQUQsRUFBYTtBQUM3QixVQUFNUSxjQUFjO0FBQ25CQyxZQUFJVCxRQUFRc0IsT0FETztBQUVuQmhCLGNBQU1OLFFBQVErRCxjQUZLO0FBR25CcEQsZUFBT1gsUUFBUVcsS0FISTtBQUluQkMsZUFBT1osUUFBUWdFO0FBSkksT0FBcEI7QUFPQVQsK0JBQXlCLHNDQUFnQi9DLFdBQWhCLENBQXpCOztBQUNBLDhCQUFlYSxnQkFBZixDQUFnQ0MsT0FBaEMsQ0FBd0NDLElBQXhDLENBQTZDdkIsUUFBUXNCLE9BQVIsQ0FBZ0IyQyxRQUFoQixFQUE3QztBQUNBLEtBVkQ7QUFZQXBFLE9BQUdnQixXQUFILENBQWVDLGtCQUFmLENBQWtDLFdBQWxDLEVBQStDeUMscUJBQS9DO0FBRUEseUJBQVE7QUFBQSxhQUFNLHFCQUFRO0FBQUUvQixlQUFPLDBDQUFUO0FBQXFEQyxnQkFBUTtBQUE3RCxPQUFSLENBQU47QUFBQSxLQUFSLEVBQTZGLEdBQTdGO0FBQ0EsR0F6QkY7QUEwQkEsQ0E5Q0Q7QUFnREE7Ozs7Ozs7QUFLQSxJQUFNeUMsMkJBQTJCLFNBQTNCQSx3QkFBMkIsQ0FBQ25FLENBQUQsRUFBTztBQUN2Q3dDO0FBQ0FHLDZCQUEyQjNDLENBQTNCO0FBQ0EsQ0FIRDs7QUFLQSxJQUFNb0UsZ0JBQWdCLFNBQWhCQSxhQUFnQixHQUFNO0FBQzNCdEUsS0FBR1UsZ0JBQUgsR0FBc0JKLE1BQU1DLFFBQU4sQ0FBZSwrQkFBZixFQUFnRCxDQUFoRCxDQUF0QjtBQUNBUCxLQUFHdUUsaUJBQUgsR0FBdUJqRSxNQUFNQyxRQUFOLENBQWUsbUNBQWYsRUFBb0QsQ0FBcEQsQ0FBdkI7QUFDQVAsS0FBR2dCLFdBQUgsR0FBaUJWLE1BQU1DLFFBQU4sQ0FBZSw4QkFBZixFQUErQyxLQUEvQyxFQUFzRFAsR0FBR3VFLGlCQUF6RCxFQUE0RSxDQUE1RSxDQUFqQjtBQUNBLENBSkQ7O0FBTUEsSUFBTUMsYUFBYSxTQUFiQSxVQUFhLEdBQU07QUFDeEIseUJBQVN4RSxHQUFHVSxnQkFBWixFQUE4QixnQ0FBOUIsRUFBZ0UsT0FBaEUsRUFBeUU0QixnQkFBekU7QUFDQSx5QkFBU3RDLEdBQUd1RSxpQkFBWixFQUErQiw0QkFBL0IsRUFBNkQsT0FBN0QsRUFBc0UxQyxhQUF0RTtBQUNBLGtCQUFHNEMsUUFBSCxFQUFhLG9DQUFiLEVBQW1ESix3QkFBbkQ7QUFDQSxDQUpEOztBQU1BLElBQU1LLE9BQU8sU0FBUEEsSUFBTyxHQUFNO0FBQ2xCSjtBQUNBRTtBQUNBLENBSEQ7O2VBS2VFLEkiLCJmaWxlIjoiMTkwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIFByb2R1Y3QgUmVzdWx0c1xuICogQGRlc2NyaXB0aW9uIGhhbmRsZSBwcm9kdWN0IHJlc3VsdHMgaW50ZXJhY3Rpb25zLlxuICovXG5cbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgZGVsZWdhdGUgZnJvbSAnZGVsZWdhdGUnO1xuaW1wb3J0ICogYXMgdG9vbHMgZnJvbSAnLi4vLi4vdXRpbHMvdG9vbHMnO1xuaW1wb3J0IHsgc2VsZWN0ZWRQcm9kdWN0IH0gZnJvbSAnLi9wcm9kdWN0LXRlbXBsYXRlJztcbmltcG9ydCB7IEkxOE4gfSBmcm9tICcuLi9jb25maWcvaTE4bic7XG5pbXBvcnQgc2hvcnRjb2RlU3RhdGUgZnJvbSAnLi4vY29uZmlnL3Nob3J0Y29kZS1zdGF0ZSc7XG5pbXBvcnQgeyBvbiwgdHJpZ2dlciB9IGZyb20gJy4uLy4uL3V0aWxzL2V2ZW50cyc7XG5pbXBvcnQgeyB3cEFQSVByb2R1Y3RMb29rdXAgfSBmcm9tICcuLi8uLi91dGlscy9hamF4JztcblxuY29uc3QgZWwgPSB7fTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gYWRkUHJvZHVjdFxuICogQGRlc2NyaXB0aW9uIGFkZCBhIHByb2R1Y3QgdG8gdGhlIHNlbGVjdGVkIHNpZGViYXIgbGlzdC5cbiAqIEBwYXJhbSBlXG4gKi9cbmNvbnN0IGFkZFByb2R1Y3QgPSAoZSkgPT4ge1xuXHRjb25zdCBwcm9kdWN0ID0gZS5kZWxlZ2F0ZVRhcmdldDtcblx0Y29uc3QgcmVzdWx0c1Byb2R1Y3QgPSB0b29scy5nZXROb2RlcyhgW2RhdGEtcHJvZHVjdD1cIiR7ZS5kZWxlZ2F0ZVRhcmdldC5kYXRhc2V0LmJjaWR9XCJdYCwgZmFsc2UsIGVsLnJlc3VsdHNDb250YWluZXIsIHRydWUpWzBdO1xuXHRjb25zdCBwcm9kdWN0RGF0YSA9IHtcblx0XHRpZDogcHJvZHVjdC5kYXRhc2V0LnBvc3RpZCxcblx0XHRiY2lkOiBwcm9kdWN0LmRhdGFzZXQuYmNpZCxcblx0XHR0aXRsZTogcHJvZHVjdC5kYXRhc2V0LnRpdGxlLFxuXHRcdHByaWNlOiBwcm9kdWN0LmRhdGFzZXQucHJpY2UsXG5cdH07XG5cblx0ZWwucHJvZHVjdExpc3QuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmVlbmQnLCBzZWxlY3RlZFByb2R1Y3QocHJvZHVjdERhdGEpKTtcblx0cmVzdWx0c1Byb2R1Y3QuY2xhc3NMaXN0LmFkZCgnYmMtc2hvcnRjb2RlLXVpX19zZWxlY3RlZC1yZXN1bHQnKTtcblx0cmVzdWx0c1Byb2R1Y3QucXVlcnlTZWxlY3RvcignLmJjLXNob3J0Y29kZS11aV9fcHJvZHVjdC1hbmNob3Itc3RhdHVzJykudGV4dENvbnRlbnQgPSBJMThOLmJ1dHRvbnMucmVtb3ZlX3Byb2R1Y3Q7XG5cdHNob3J0Y29kZVN0YXRlLnNlbGVjdGVkUHJvZHVjdHMucG9zdF9pZC5wdXNoKGUuZGVsZWdhdGVUYXJnZXQuZGF0YXNldC5wb3N0aWQpO1xuXHR0cmlnZ2VyKHsgZXZlbnQ6ICdiaWdjb21tZXJjZS9zaG9ydGNvZGVfcHJvZHVjdF9saXN0X2V2ZW50JywgbmF0aXZlOiBmYWxzZSB9KTtcbn07XG5cbi8qKlxuICogQGZ1bmN0aW9uIHJlbW92ZVByb2R1Y3RcbiAqIEBkZXNjcmlwdGlvbiByZW1vdmUgYSBwcm9kdWN0IGZyb20gdGhlIHNlbGVjdGVkIHNpZGViYXIgbGlzdC5cbiAqIEBwYXJhbSBlXG4gKi9cbmNvbnN0IHJlbW92ZVByb2R1Y3QgPSAoZSkgPT4ge1xuXHRjb25zdCBwcm9kdWN0SUQgPSBlLmRlbGVnYXRlVGFyZ2V0LmRhdGFzZXQucG9zdGlkO1xuXHRjb25zdCBwcm9kdWN0QkNJRCA9IGUuZGVsZWdhdGVUYXJnZXQuZGF0YXNldC5iY2lkO1xuXHRjb25zdCBwcm9kdWN0ID0gdG9vbHMuZ2V0Tm9kZXMoYFtkYXRhLXByb2R1Y3Q9XCIke3Byb2R1Y3RCQ0lEfVwiXWAsIGZhbHNlLCBlbC5wcm9kdWN0TGlzdCwgdHJ1ZSlbMF07XG5cdGNvbnN0IHJlc3VsdHNQcm9kdWN0ID0gdG9vbHMuZ2V0Tm9kZXMoYFtkYXRhLXByb2R1Y3Q9XCIke3Byb2R1Y3RCQ0lEfVwiXWAsIGZhbHNlLCBlbC5yZXN1bHRzQ29udGFpbmVyLCB0cnVlKVswXTtcblx0Y29uc3QgdmFsSW5kZXggPSBzaG9ydGNvZGVTdGF0ZS5zZWxlY3RlZFByb2R1Y3RzLnBvc3RfaWQuaW5kZXhPZihwcm9kdWN0SUQpO1xuXG5cdGlmIChyZXN1bHRzUHJvZHVjdCkge1xuXHRcdHJlc3VsdHNQcm9kdWN0LmNsYXNzTGlzdC5yZW1vdmUoJ2JjLXNob3J0Y29kZS11aV9fc2VsZWN0ZWQtcmVzdWx0Jyk7XG5cdFx0cmVzdWx0c1Byb2R1Y3QucXVlcnlTZWxlY3RvcignLmJjLXNob3J0Y29kZS11aV9fcHJvZHVjdC1hbmNob3Itc3RhdHVzJykudGV4dENvbnRlbnQgPSBJMThOLmJ1dHRvbnMuYWRkX3Byb2R1Y3Q7XG5cdH1cblxuXHRlbC5wcm9kdWN0TGlzdC5yZW1vdmVDaGlsZChwcm9kdWN0KTtcblx0c2hvcnRjb2RlU3RhdGUuc2VsZWN0ZWRQcm9kdWN0cy5wb3N0X2lkLnNwbGljZSh2YWxJbmRleCwgMSk7XG5cdHRyaWdnZXIoeyBldmVudDogJ2JpZ2NvbW1lcmNlL3Nob3J0Y29kZV9wcm9kdWN0X2xpc3RfZXZlbnQnLCBuYXRpdmU6IGZhbHNlIH0pO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gYWRkUmVtb3ZlUHJvZHVjdFxuICogQGRlc2NyaXB0aW9uIHNldCBhIHByb2R1Y3QgaW4gdGhlIHJlc3VsdHMgc2VjdGlvbiB0byBzZWxlY3RlZCBvciBub3QgYmFzZWQgb24gY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSBlXG4gKi9cbmNvbnN0IGFkZFJlbW92ZVByb2R1Y3QgPSAoZSkgPT4ge1xuXHRjb25zdCBwcm9kdWN0ID0gdG9vbHMuY2xvc2VzdChlLmRlbGVnYXRlVGFyZ2V0LCBgW2RhdGEtcHJvZHVjdD1cIiR7ZS5kZWxlZ2F0ZVRhcmdldC5kYXRhc2V0LmJjaWR9XCJdYCk7XG5cblx0cHJvZHVjdC5jbGFzc0xpc3QudG9nZ2xlKCdiYy1zaG9ydGNvZGUtdWlfX3NlbGVjdGVkLXJlc3VsdCcpO1xuXHRpZiAoIXByb2R1Y3QuY2xhc3NMaXN0LmNvbnRhaW5zKCdiYy1zaG9ydGNvZGUtdWlfX3NlbGVjdGVkLXJlc3VsdCcpKSB7XG5cdFx0cmVtb3ZlUHJvZHVjdChlKTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRhZGRQcm9kdWN0KGUpO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gcmVzZXRQcm9kdWN0TGlzdFxuICogQGRlc2NyaXB0aW9uIGNsZWFyIHRoZSBwcm9kdWN0IGxpc3Qgc2VsZWN0aW9ucyBhbmQgc3RhdGUgd2hlbiB0cmlnZ2VyaW5nIHRoZSBiaWdjb21tZXJjZS9zZXRfc2hvcnRjb2RlX3VpX3N0YXRlIGV2ZW50LlxuICovXG5jb25zdCByZXNldFByb2R1Y3RzTGlzdCA9ICgpID0+IHtcblx0c2hvcnRjb2RlU3RhdGUuc2VsZWN0ZWRQcm9kdWN0cy5wb3N0X2lkID0gW107XG5cblx0dG9vbHMuZ2V0Tm9kZXMoJy5iYy1zaG9ydGNvZGUtdWlfX3NlbGVjdGVkLXJlc3VsdCcsIHRydWUsIGVsLnJlc3VsdHNDb250YWluZXIsIHRydWUpLmZvckVhY2goKHByb2R1Y3QpID0+IHtcblx0XHR0b29scy5yZW1vdmVDbGFzcyhwcm9kdWN0LCAnYmMtc2hvcnRjb2RlLXVpX19zZWxlY3RlZC1yZXN1bHQnKTtcblx0fSk7XG5cblx0ZWwucHJvZHVjdExpc3QudGV4dENvbnRlbnQgPSAnJztcbn07XG5cbi8qKlxuICogQGZ1bmN0aW9uIHBvcHVsYXRlU2F2ZWRVSVByb2R1Y3RMaXN0XG4gKiBAZGVzY3JpcHRpb24gQWRkIHNhdmVkIFVJIHByb2R1Y3RzIHRvIHRoZSBwcm9kdWN0cyBsaXN0LlxuICogQHBhcmFtIGVcbiAqL1xuY29uc3QgcG9wdWxhdGVTYXZlZFVJUHJvZHVjdExpc3QgPSAoZSkgPT4ge1xuXHRpZiAoIWUuZGV0YWlsLnBhcmFtcykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IGN1cnJlbnRCbG9ja0JDSURzID0gZS5kZXRhaWwucGFyYW1zLmlkO1xuXG5cdGlmICghY3VycmVudEJsb2NrQkNJRHMgfHwgY3VycmVudEJsb2NrQkNJRHMubGVuZ3RoIDw9IDApIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBrID0gZW5jb2RlVVJJQ29tcG9uZW50KCdiY2lkJyk7XG5cdGNvbnN0IHYgPSBlbmNvZGVVUklDb21wb25lbnQoY3VycmVudEJsb2NrQkNJRHMpO1xuXHRjb25zdCBzdHIgPSBbXTtcblx0c3RyLnB1c2goYCR7a309JHt2fWApO1xuXHRjb25zdCBxdWVyeVN0cmluZyA9IHN0ciA/IHN0ci5qb2luKEkxOE4ub3BlcmF0aW9ucy5xdWVyeV9zdHJpbmdfc2VwYXJhdG9yKSA6ICcnO1xuXHRsZXQgc2VsZWN0ZWRQcm9kdWN0c05vZGVzID0gJyc7XG5cblx0c2hvcnRjb2RlU3RhdGUuaXNGZXRjaGluZyA9IHRydWU7XG5cblx0d3BBUElQcm9kdWN0TG9va3VwKHF1ZXJ5U3RyaW5nKVxuXHRcdC5lbmQoKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRzaG9ydGNvZGVTdGF0ZS5pc0ZldGNoaW5nID0gZmFsc2U7XG5cblx0XHRcdGlmIChlcnIpIHtcblx0XHRcdFx0Ly8gVE9ETzogZ2V0IGRlYnVnIHN0YXR1cyBhbmQgb25seSBkaXNwbGF5IGlmIHRydWUuXG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoZXJyKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXMuYm9keS5mb3JFYWNoKChwcm9kdWN0KSA9PiB7XG5cdFx0XHRcdGNvbnN0IHByb2R1Y3REYXRhID0ge1xuXHRcdFx0XHRcdGlkOiBwcm9kdWN0LnBvc3RfaWQsXG5cdFx0XHRcdFx0YmNpZDogcHJvZHVjdC5iaWdjb21tZXJjZV9pZCxcblx0XHRcdFx0XHR0aXRsZTogcHJvZHVjdC50aXRsZSxcblx0XHRcdFx0XHRwcmljZTogcHJvZHVjdC5wcmljZV9yYW5nZSxcblx0XHRcdFx0fTtcblxuXHRcdFx0XHRzZWxlY3RlZFByb2R1Y3RzTm9kZXMgKz0gc2VsZWN0ZWRQcm9kdWN0KHByb2R1Y3REYXRhKTtcblx0XHRcdFx0c2hvcnRjb2RlU3RhdGUuc2VsZWN0ZWRQcm9kdWN0cy5wb3N0X2lkLnB1c2gocHJvZHVjdC5wb3N0X2lkLnRvU3RyaW5nKCkpO1xuXHRcdFx0fSk7XG5cblx0XHRcdGVsLnByb2R1Y3RMaXN0Lmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlZW5kJywgc2VsZWN0ZWRQcm9kdWN0c05vZGVzKTtcblxuXHRcdFx0Xy5kZWxheSgoKSA9PiB0cmlnZ2VyKHsgZXZlbnQ6ICdiaWdjb21tZXJjZS9zaG9ydGNvZGVfcHJvZHVjdF9saXN0X2V2ZW50JywgbmF0aXZlOiBmYWxzZSB9KSwgMTAwKTtcblx0XHR9KTtcbn07XG5cbi8qKlxuICogQGZ1bmN0aW9uIGhhbmRsZVNhdmVkVUlQcm9kdWN0TGlzdFxuICogQGRlc2NyaXB0aW9uIFdoZW4gYSB1c2VyIG9wZW5zIG9yIHJlb3BlbnMgdGhlIFVJLCByZXNldCB0aGUgVUkgYW5kIGNoZWNrIGZvciBhIHNhdmVkIHN0YXRlLlxuICogQHBhcmFtIGVcbiAqL1xuY29uc3QgaGFuZGxlU2F2ZWRVSVByb2R1Y3RMaXN0ID0gKGUpID0+IHtcblx0cmVzZXRQcm9kdWN0c0xpc3QoKTtcblx0cG9wdWxhdGVTYXZlZFVJUHJvZHVjdExpc3QoZSk7XG59O1xuXG5jb25zdCBjYWNoZUVsZW1lbnRzID0gKCkgPT4ge1xuXHRlbC5yZXN1bHRzQ29udGFpbmVyID0gdG9vbHMuZ2V0Tm9kZXMoJ2JjLXNob3J0Y29kZS11aS1xdWVyeS1yZXN1bHRzJylbMF07XG5cdGVsLnNlbGVjdGVkQ29udGFpbmVyID0gdG9vbHMuZ2V0Tm9kZXMoJ2JjLXNob3J0Y29kZS11aS1zZWxlY3RlZC1wcm9kdWN0cycpWzBdO1xuXHRlbC5wcm9kdWN0TGlzdCA9IHRvb2xzLmdldE5vZGVzKCdiYy1zaG9ydGNvZGUtdWktcHJvZHVjdC1saXN0JywgZmFsc2UsIGVsLnNlbGVjdGVkQ29udGFpbmVyKVswXTtcbn07XG5cbmNvbnN0IGJpbmRFdmVudHMgPSAoKSA9PiB7XG5cdGRlbGVnYXRlKGVsLnJlc3VsdHNDb250YWluZXIsICdbZGF0YS1qcz1cImFkZC1yZW1vdmUtcHJvZHVjdFwiXScsICdjbGljaycsIGFkZFJlbW92ZVByb2R1Y3QpO1xuXHRkZWxlZ2F0ZShlbC5zZWxlY3RlZENvbnRhaW5lciwgJ1tkYXRhLWpzPVwicmVtb3ZlLXByb2R1Y3RcIl0nLCAnY2xpY2snLCByZW1vdmVQcm9kdWN0KTtcblx0b24oZG9jdW1lbnQsICdiaWdjb21tZXJjZS9zZXRfc2hvcnRjb2RlX3VpX3N0YXRlJywgaGFuZGxlU2F2ZWRVSVByb2R1Y3RMaXN0KTtcbn07XG5cbmNvbnN0IGluaXQgPSAoKSA9PiB7XG5cdGNhY2hlRWxlbWVudHMoKTtcblx0YmluZEV2ZW50cygpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgaW5pdDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vc2hvcnRjb2RlLXVpL3Byb2R1Y3Qtc2VsZWN0aW9uLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///190\n"); /***/ }), /* 191 */ /***/ (function(module, exports, __webpack_require__) { -eval("/**\n * Root reference for iframes.\n */\n\nvar root;\nif (typeof window !== 'undefined') { // Browser window\n root = window;\n} else if (typeof self !== 'undefined') { // Web Worker\n root = self;\n} else { // Other environments\n console.warn(\"Using browser-only version of superagent in non-browser environment\");\n root = this;\n}\n\nvar Emitter = __webpack_require__(192);\nvar RequestBase = __webpack_require__(193);\nvar isObject = __webpack_require__(92);\nvar ResponseBase = __webpack_require__(194);\nvar Agent = __webpack_require__(196);\n\n/**\n * Noop.\n */\n\nfunction noop(){};\n\n/**\n * Expose `request`.\n */\n\nvar request = exports = module.exports = function(method, url) {\n // callback\n if ('function' == typeof url) {\n return new exports.Request('GET', method).end(url);\n }\n\n // url first\n if (1 == arguments.length) {\n return new exports.Request('GET', method);\n }\n\n return new exports.Request(method, url);\n}\n\nexports.Request = Request;\n\n/**\n * Determine XHR.\n */\n\nrequest.getXHR = function () {\n if (root.XMLHttpRequest\n && (!root.location || 'file:' != root.location.protocol\n || !root.ActiveXObject)) {\n return new XMLHttpRequest;\n } else {\n try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) {}\n try { return new ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch(e) {}\n try { return new ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch(e) {}\n try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch(e) {}\n }\n throw Error(\"Browser-only version of superagent could not find XHR\");\n};\n\n/**\n * Removes leading and trailing whitespace, added to support IE.\n *\n * @param {String} s\n * @return {String}\n * @api private\n */\n\nvar trim = ''.trim\n ? function(s) { return s.trim(); }\n : function(s) { return s.replace(/(^\\s*|\\s*$)/g, ''); };\n\n/**\n * Serialize the given `obj`.\n *\n * @param {Object} obj\n * @return {String}\n * @api private\n */\n\nfunction serialize(obj) {\n if (!isObject(obj)) return obj;\n var pairs = [];\n for (var key in obj) {\n pushEncodedKeyValuePair(pairs, key, obj[key]);\n }\n return pairs.join('&');\n}\n\n/**\n * Helps 'serialize' with serializing arrays.\n * Mutates the pairs array.\n *\n * @param {Array} pairs\n * @param {String} key\n * @param {Mixed} val\n */\n\nfunction pushEncodedKeyValuePair(pairs, key, val) {\n if (val != null) {\n if (Array.isArray(val)) {\n val.forEach(function(v) {\n pushEncodedKeyValuePair(pairs, key, v);\n });\n } else if (isObject(val)) {\n for(var subkey in val) {\n pushEncodedKeyValuePair(pairs, key + '[' + subkey + ']', val[subkey]);\n }\n } else {\n pairs.push(encodeURIComponent(key)\n + '=' + encodeURIComponent(val));\n }\n } else if (val === null) {\n pairs.push(encodeURIComponent(key));\n }\n}\n\n/**\n * Expose serialization method.\n */\n\nrequest.serializeObject = serialize;\n\n/**\n * Parse the given x-www-form-urlencoded `str`.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseString(str) {\n var obj = {};\n var pairs = str.split('&');\n var pair;\n var pos;\n\n for (var i = 0, len = pairs.length; i < len; ++i) {\n pair = pairs[i];\n pos = pair.indexOf('=');\n if (pos == -1) {\n obj[decodeURIComponent(pair)] = '';\n } else {\n obj[decodeURIComponent(pair.slice(0, pos))] =\n decodeURIComponent(pair.slice(pos + 1));\n }\n }\n\n return obj;\n}\n\n/**\n * Expose parser.\n */\n\nrequest.parseString = parseString;\n\n/**\n * Default MIME type map.\n *\n * superagent.types.xml = 'application/xml';\n *\n */\n\nrequest.types = {\n html: 'text/html',\n json: 'application/json',\n xml: 'text/xml',\n urlencoded: 'application/x-www-form-urlencoded',\n 'form': 'application/x-www-form-urlencoded',\n 'form-data': 'application/x-www-form-urlencoded'\n};\n\n/**\n * Default serialization map.\n *\n * superagent.serialize['application/xml'] = function(obj){\n * return 'generated xml here';\n * };\n *\n */\n\nrequest.serialize = {\n 'application/x-www-form-urlencoded': serialize,\n 'application/json': JSON.stringify,\n};\n\n/**\n * Default parsers.\n *\n * superagent.parse['application/xml'] = function(str){\n * return { object parsed from str };\n * };\n *\n */\n\nrequest.parse = {\n 'application/x-www-form-urlencoded': parseString,\n 'application/json': JSON.parse,\n};\n\n/**\n * Parse the given header `str` into\n * an object containing the mapped fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseHeader(str) {\n var lines = str.split(/\\r?\\n/);\n var fields = {};\n var index;\n var line;\n var field;\n var val;\n\n for (var i = 0, len = lines.length; i < len; ++i) {\n line = lines[i];\n index = line.indexOf(':');\n if (index === -1) { // could be empty line, just skip it\n continue;\n }\n field = line.slice(0, index).toLowerCase();\n val = trim(line.slice(index + 1));\n fields[field] = val;\n }\n\n return fields;\n}\n\n/**\n * Check if `mime` is json or has +json structured syntax suffix.\n *\n * @param {String} mime\n * @return {Boolean}\n * @api private\n */\n\nfunction isJSON(mime) {\n // should match /json or +json\n // but not /json-seq\n return /[\\/+]json($|[^-\\w])/.test(mime);\n}\n\n/**\n * Initialize a new `Response` with the given `xhr`.\n *\n * - set flags (.ok, .error, etc)\n * - parse header\n *\n * Examples:\n *\n * Aliasing `superagent` as `request` is nice:\n *\n * request = superagent;\n *\n * We can use the promise-like API, or pass callbacks:\n *\n * request.get('/').end(function(res){});\n * request.get('/', function(res){});\n *\n * Sending data can be chained:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' })\n * .end(function(res){});\n *\n * Or passed to `.send()`:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' }, function(res){});\n *\n * Or passed to `.post()`:\n *\n * request\n * .post('/user', { name: 'tj' })\n * .end(function(res){});\n *\n * Or further reduced to a single call for simple cases:\n *\n * request\n * .post('/user', { name: 'tj' }, function(res){});\n *\n * @param {XMLHTTPRequest} xhr\n * @param {Object} options\n * @api private\n */\n\nfunction Response(req) {\n this.req = req;\n this.xhr = this.req.xhr;\n // responseText is accessible only if responseType is '' or 'text' and on older browsers\n this.text = ((this.req.method !='HEAD' && (this.xhr.responseType === '' || this.xhr.responseType === 'text')) || typeof this.xhr.responseType === 'undefined')\n ? this.xhr.responseText\n : null;\n this.statusText = this.req.xhr.statusText;\n var status = this.xhr.status;\n // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request\n if (status === 1223) {\n status = 204;\n }\n this._setStatusProperties(status);\n this.header = this.headers = parseHeader(this.xhr.getAllResponseHeaders());\n // getAllResponseHeaders sometimes falsely returns \"\" for CORS requests, but\n // getResponseHeader still works. so we get content-type even if getting\n // other headers fails.\n this.header['content-type'] = this.xhr.getResponseHeader('content-type');\n this._setHeaderProperties(this.header);\n\n if (null === this.text && req._responseType) {\n this.body = this.xhr.response;\n } else {\n this.body = this.req.method != 'HEAD'\n ? this._parseBody(this.text ? this.text : this.xhr.response)\n : null;\n }\n}\n\nResponseBase(Response.prototype);\n\n/**\n * Parse the given body `str`.\n *\n * Used for auto-parsing of bodies. Parsers\n * are defined on the `superagent.parse` object.\n *\n * @param {String} str\n * @return {Mixed}\n * @api private\n */\n\nResponse.prototype._parseBody = function(str) {\n var parse = request.parse[this.type];\n if (this.req._parser) {\n return this.req._parser(this, str);\n }\n if (!parse && isJSON(this.type)) {\n parse = request.parse['application/json'];\n }\n return parse && str && (str.length || str instanceof Object)\n ? parse(str)\n : null;\n};\n\n/**\n * Return an `Error` representative of this response.\n *\n * @return {Error}\n * @api public\n */\n\nResponse.prototype.toError = function(){\n var req = this.req;\n var method = req.method;\n var url = req.url;\n\n var msg = 'cannot ' + method + ' ' + url + ' (' + this.status + ')';\n var err = new Error(msg);\n err.status = this.status;\n err.method = method;\n err.url = url;\n\n return err;\n};\n\n/**\n * Expose `Response`.\n */\n\nrequest.Response = Response;\n\n/**\n * Initialize a new `Request` with the given `method` and `url`.\n *\n * @param {String} method\n * @param {String} url\n * @api public\n */\n\nfunction Request(method, url) {\n var self = this;\n this._query = this._query || [];\n this.method = method;\n this.url = url;\n this.header = {}; // preserves header name case\n this._header = {}; // coerces header names to lowercase\n this.on('end', function(){\n var err = null;\n var res = null;\n\n try {\n res = new Response(self);\n } catch(e) {\n err = new Error('Parser is unable to parse the response');\n err.parse = true;\n err.original = e;\n // issue #675: return the raw response if the response parsing fails\n if (self.xhr) {\n // ie9 doesn't have 'response' property\n err.rawResponse = typeof self.xhr.responseType == 'undefined' ? self.xhr.responseText : self.xhr.response;\n // issue #876: return the http status code if the response parsing fails\n err.status = self.xhr.status ? self.xhr.status : null;\n err.statusCode = err.status; // backwards-compat only\n } else {\n err.rawResponse = null;\n err.status = null;\n }\n\n return self.callback(err);\n }\n\n self.emit('response', res);\n\n var new_err;\n try {\n if (!self._isResponseOK(res)) {\n new_err = new Error(res.statusText || 'Unsuccessful HTTP response');\n }\n } catch(custom_err) {\n new_err = custom_err; // ok() callback can throw\n }\n\n // #1000 don't catch errors from the callback to avoid double calling it\n if (new_err) {\n new_err.original = err;\n new_err.response = res;\n new_err.status = res.status;\n self.callback(new_err, res);\n } else {\n self.callback(null, res);\n }\n });\n}\n\n/**\n * Mixin `Emitter` and `RequestBase`.\n */\n\nEmitter(Request.prototype);\nRequestBase(Request.prototype);\n\n/**\n * Set Content-Type to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.xml = 'application/xml';\n *\n * request.post('/')\n * .type('xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * request.post('/')\n * .type('application/xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * @param {String} type\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.type = function(type){\n this.set('Content-Type', request.types[type] || type);\n return this;\n};\n\n/**\n * Set Accept to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.json = 'application/json';\n *\n * request.get('/agent')\n * .accept('json')\n * .end(callback);\n *\n * request.get('/agent')\n * .accept('application/json')\n * .end(callback);\n *\n * @param {String} accept\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.accept = function(type){\n this.set('Accept', request.types[type] || type);\n return this;\n};\n\n/**\n * Set Authorization field value with `user` and `pass`.\n *\n * @param {String} user\n * @param {String} [pass] optional in case of using 'bearer' as type\n * @param {Object} options with 'type' property 'auto', 'basic' or 'bearer' (default 'basic')\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.auth = function(user, pass, options){\n if (1 === arguments.length) pass = '';\n if (typeof pass === 'object' && pass !== null) { // pass is optional and can be replaced with options\n options = pass;\n pass = '';\n }\n if (!options) {\n options = {\n type: 'function' === typeof btoa ? 'basic' : 'auto',\n };\n }\n\n var encoder = function(string) {\n if ('function' === typeof btoa) {\n return btoa(string);\n }\n throw new Error('Cannot use basic auth, btoa is not a function');\n };\n\n return this._auth(user, pass, options, encoder);\n};\n\n/**\n * Add query-string `val`.\n *\n * Examples:\n *\n * request.get('/shoes')\n * .query('size=10')\n * .query({ color: 'blue' })\n *\n * @param {Object|String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.query = function(val){\n if ('string' != typeof val) val = serialize(val);\n if (val) this._query.push(val);\n return this;\n};\n\n/**\n * Queue the given `file` as an attachment to the specified `field`,\n * with optional `options` (or filename).\n *\n * ``` js\n * request.post('/upload')\n * .attach('content', new Blob(['hey!'], { type: \"text/html\"}))\n * .end(callback);\n * ```\n *\n * @param {String} field\n * @param {Blob|File} file\n * @param {String|Object} options\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.attach = function(field, file, options){\n if (file) {\n if (this._data) {\n throw Error(\"superagent can't mix .send() and .attach()\");\n }\n\n this._getFormData().append(field, file, options || file.name);\n }\n return this;\n};\n\nRequest.prototype._getFormData = function(){\n if (!this._formData) {\n this._formData = new root.FormData();\n }\n return this._formData;\n};\n\n/**\n * Invoke the callback with `err` and `res`\n * and handle arity check.\n *\n * @param {Error} err\n * @param {Response} res\n * @api private\n */\n\nRequest.prototype.callback = function(err, res){\n if (this._shouldRetry(err, res)) {\n return this._retry();\n }\n\n var fn = this._callback;\n this.clearTimeout();\n\n if (err) {\n if (this._maxRetries) err.retries = this._retries - 1;\n this.emit('error', err);\n }\n\n fn(err, res);\n};\n\n/**\n * Invoke callback with x-domain error.\n *\n * @api private\n */\n\nRequest.prototype.crossDomainError = function(){\n var err = new Error('Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.');\n err.crossDomain = true;\n\n err.status = this.status;\n err.method = this.method;\n err.url = this.url;\n\n this.callback(err);\n};\n\n// This only warns, because the request is still likely to work\nRequest.prototype.buffer = Request.prototype.ca = Request.prototype.agent = function(){\n console.warn(\"This is not supported in browser version of superagent\");\n return this;\n};\n\n// This throws, because it can't send/receive data as expected\nRequest.prototype.pipe = Request.prototype.write = function(){\n throw Error(\"Streaming is not supported in browser version of superagent\");\n};\n\n/**\n * Check if `obj` is a host object,\n * we don't want to serialize these :)\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\nRequest.prototype._isHost = function _isHost(obj) {\n // Native objects stringify to [object File], [object Blob], [object FormData], etc.\n return obj && 'object' === typeof obj && !Array.isArray(obj) && Object.prototype.toString.call(obj) !== '[object Object]';\n}\n\n/**\n * Initiate request, invoking callback `fn(res)`\n * with an instanceof `Response`.\n *\n * @param {Function} fn\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.end = function(fn){\n if (this._endCalled) {\n console.warn(\"Warning: .end() was called twice. This is not supported in superagent\");\n }\n this._endCalled = true;\n\n // store callback\n this._callback = fn || noop;\n\n // querystring\n this._finalizeQueryString();\n\n return this._end();\n};\n\nRequest.prototype._end = function() {\n var self = this;\n var xhr = (this.xhr = request.getXHR());\n var data = this._formData || this._data;\n\n this._setTimeouts();\n\n // state change\n xhr.onreadystatechange = function(){\n var readyState = xhr.readyState;\n if (readyState >= 2 && self._responseTimeoutTimer) {\n clearTimeout(self._responseTimeoutTimer);\n }\n if (4 != readyState) {\n return;\n }\n\n // In IE9, reads to any property (e.g. status) off of an aborted XHR will\n // result in the error \"Could not complete the operation due to error c00c023f\"\n var status;\n try { status = xhr.status } catch(e) { status = 0; }\n\n if (!status) {\n if (self.timedout || self._aborted) return;\n return self.crossDomainError();\n }\n self.emit('end');\n };\n\n // progress\n var handleProgress = function(direction, e) {\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n }\n e.direction = direction;\n self.emit('progress', e);\n };\n if (this.hasListeners('progress')) {\n try {\n xhr.onprogress = handleProgress.bind(null, 'download');\n if (xhr.upload) {\n xhr.upload.onprogress = handleProgress.bind(null, 'upload');\n }\n } catch(e) {\n // Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.\n // Reported here:\n // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context\n }\n }\n\n // initiate request\n try {\n if (this.username && this.password) {\n xhr.open(this.method, this.url, true, this.username, this.password);\n } else {\n xhr.open(this.method, this.url, true);\n }\n } catch (err) {\n // see #1149\n return this.callback(err);\n }\n\n // CORS\n if (this._withCredentials) xhr.withCredentials = true;\n\n // body\n if (!this._formData && 'GET' != this.method && 'HEAD' != this.method && 'string' != typeof data && !this._isHost(data)) {\n // serialize stuff\n var contentType = this._header['content-type'];\n var serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : ''];\n if (!serialize && isJSON(contentType)) {\n serialize = request.serialize['application/json'];\n }\n if (serialize) data = serialize(data);\n }\n\n // set header fields\n for (var field in this.header) {\n if (null == this.header[field]) continue;\n\n if (this.header.hasOwnProperty(field))\n xhr.setRequestHeader(field, this.header[field]);\n }\n\n if (this._responseType) {\n xhr.responseType = this._responseType;\n }\n\n // send stuff\n this.emit('request', this);\n\n // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing)\n // We need null here if data is undefined\n xhr.send(typeof data !== 'undefined' ? data : null);\n return this;\n};\n\nrequest.agent = function() {\n return new Agent();\n};\n\n[\"GET\", \"POST\", \"OPTIONS\", \"PATCH\", \"PUT\", \"DELETE\"].forEach(function(method) {\n Agent.prototype[method.toLowerCase()] = function(url, fn) {\n var req = new request.Request(method, url);\n this._setDefaults(req);\n if (fn) {\n req.end(fn);\n }\n return req;\n };\n});\n\nAgent.prototype.del = Agent.prototype['delete'];\n\n/**\n * GET `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.get = function(url, data, fn) {\n var req = request('GET', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * HEAD `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.head = function(url, data, fn) {\n var req = request('HEAD', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * OPTIONS query to `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.options = function(url, data, fn) {\n var req = request('OPTIONS', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * DELETE `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nfunction del(url, data, fn) {\n var req = request('DELETE', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n}\n\nrequest['del'] = del;\nrequest['delete'] = del;\n\n/**\n * PATCH `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.patch = function(url, data, fn) {\n var req = request('PATCH', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * POST `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.post = function(url, data, fn) {\n var req = request('POST', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * PUT `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.put = function(url, data, fn) {\n var req = request('PUT', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvc3VwZXJhZ2VudC9saWIvY2xpZW50LmpzPzE4NmYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0NBQW9DO0FBQ3BDO0FBQ0EsQ0FBQyx3Q0FBd0M7QUFDekM7QUFDQSxDQUFDLE9BQU87QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxTQUFTLCtDQUErQyxFQUFFO0FBQzFELFNBQVMsZ0RBQWdELEVBQUU7QUFDM0QsU0FBUyxnREFBZ0QsRUFBRTtBQUMzRCxTQUFTLDRDQUE0QyxFQUFFO0FBQ3ZEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQSxpQkFBaUIsaUJBQWlCO0FBQ2xDLGlCQUFpQixzQ0FBc0M7O0FBRXZEO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxNQUFNO0FBQ2pCLFdBQVcsT0FBTztBQUNsQixXQUFXLE1BQU07QUFDakI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtB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QTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsU0FBUztBQUNwQixZQUFZLFFBQVE7QUFDcEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLHNCQUFzQixXQUFXLFlBQVk7O0FBRXREO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRGQUE0RjtBQUM1RjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsV0FBVyxlQUFlO0FBQzFCLFdBQVcsU0FBUztBQUNwQixZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsV0FBVyxlQUFlO0FBQzFCLFdBQVcsU0FBUztBQUNwQixZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsV0FBVyxlQUFlO0FBQzFCLFdBQVcsU0FBUztBQUNwQixZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsV0FBVyxNQUFNO0FBQ2pCLFdBQVcsU0FBUztBQUNwQixZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLE1BQU07QUFDakIsV0FBVyxTQUFTO0FBQ3BCLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLE1BQU07QUFDakIsV0FBVyxTQUFTO0FBQ3BCLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLGVBQWU7QUFDMUIsV0FBVyxTQUFTO0FBQ3BCLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjE5MS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUm9vdCByZWZlcmVuY2UgZm9yIGlmcmFtZXMuXG4gKi9cblxudmFyIHJvb3Q7XG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHsgLy8gQnJvd3NlciB3aW5kb3dcbiAgcm9vdCA9IHdpbmRvdztcbn0gZWxzZSBpZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnKSB7IC8vIFdlYiBXb3JrZXJcbiAgcm9vdCA9IHNlbGY7XG59IGVsc2UgeyAvLyBPdGhlciBlbnZpcm9ubWVudHNcbiAgY29uc29sZS53YXJuKFwiVXNpbmcgYnJvd3Nlci1vbmx5IHZlcnNpb24gb2Ygc3VwZXJhZ2VudCBpbiBub24tYnJvd3NlciBlbnZpcm9ubWVudFwiKTtcbiAgcm9vdCA9IHRoaXM7XG59XG5cbnZhciBFbWl0dGVyID0gcmVxdWlyZSgnY29tcG9uZW50LWVtaXR0ZXInKTtcbnZhciBSZXF1ZXN0QmFzZSA9IHJlcXVpcmUoJy4vcmVxdWVzdC1iYXNlJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzLW9iamVjdCcpO1xudmFyIFJlc3BvbnNlQmFzZSA9IHJlcXVpcmUoJy4vcmVzcG9uc2UtYmFzZScpO1xudmFyIEFnZW50ID0gcmVxdWlyZSgnLi9hZ2VudC1iYXNlJyk7XG5cbi8qKlxuICogTm9vcC5cbiAqL1xuXG5mdW5jdGlvbiBub29wKCl7fTtcblxuLyoqXG4gKiBFeHBvc2UgYHJlcXVlc3RgLlxuICovXG5cbnZhciByZXF1ZXN0ID0gZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24obWV0aG9kLCB1cmwpIHtcbiAgLy8gY2FsbGJhY2tcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIHVybCkge1xuICAgIHJldHVybiBuZXcgZXhwb3J0cy5SZXF1ZXN0KCdHRVQnLCBtZXRob2QpLmVuZCh1cmwpO1xuICB9XG5cbiAgLy8gdXJsIGZpcnN0XG4gIGlmICgxID09IGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICByZXR1cm4gbmV3IGV4cG9ydHMuUmVxdWVzdCgnR0VUJywgbWV0aG9kKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgZXhwb3J0cy5SZXF1ZXN0KG1ldGhvZCwgdXJsKTtcbn1cblxuZXhwb3J0cy5SZXF1ZXN0ID0gUmVxdWVzdDtcblxuLyoqXG4gKiBEZXRlcm1pbmUgWEhSLlxuICovXG5cbnJlcXVlc3QuZ2V0WEhSID0gZnVuY3Rpb24gKCkge1xuICBpZiAocm9vdC5YTUxIdHRwUmVxdWVzdFxuICAgICAgJiYgKCFyb290LmxvY2F0aW9uIHx8ICdmaWxlOicgIT0gcm9vdC5sb2NhdGlvbi5wcm90b2NvbFxuICAgICAgICAgIHx8ICFyb290LkFjdGl2ZVhPYmplY3QpKSB7XG4gICAgcmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdDtcbiAgfSBlbHNlIHtcbiAgICB0cnkgeyByZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01pY3Jvc29mdC5YTUxIVFRQJyk7IH0gY2F0Y2goZSkge31cbiAgICB0cnkgeyByZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01zeG1sMi5YTUxIVFRQLjYuMCcpOyB9IGNhdGNoKGUpIHt9XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBBY3RpdmVYT2JqZWN0KCdNc3htbDIuWE1MSFRUUC4zLjAnKTsgfSBjYXRjaChlKSB7fVxuICAgIHRyeSB7IHJldHVybiBuZXcgQWN0aXZlWE9iamVjdCgnTXN4bWwyLlhNTEhUVFAnKTsgfSBjYXRjaChlKSB7fVxuICB9XG4gIHRocm93IEVycm9yKFwiQnJvd3Nlci1vbmx5IHZlcnNpb24gb2Ygc3VwZXJhZ2VudCBjb3VsZCBub3QgZmluZCBYSFJcIik7XG59O1xuXG4vKipcbiAqIFJlbW92ZXMgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSwgYWRkZWQgdG8gc3VwcG9ydCBJRS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc1xuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxudmFyIHRyaW0gPSAnJy50cmltXG4gID8gZnVuY3Rpb24ocykgeyByZXR1cm4gcy50cmltKCk7IH1cbiAgOiBmdW5jdGlvbihzKSB7IHJldHVybiBzLnJlcGxhY2UoLyheXFxzKnxcXHMqJCkvZywgJycpOyB9O1xuXG4vKipcbiAqIFNlcmlhbGl6ZSB0aGUgZ2l2ZW4gYG9iamAuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gc2VyaWFsaXplKG9iaikge1xuICBpZiAoIWlzT2JqZWN0KG9iaikpIHJldHVybiBvYmo7XG4gIHZhciBwYWlycyA9IFtdO1xuICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgcHVzaEVuY29kZWRLZXlWYWx1ZVBhaXIocGFpcnMsIGtleSwgb2JqW2tleV0pO1xuICB9XG4gIHJldHVybiBwYWlycy5qb2luKCcmJyk7XG59XG5cbi8qKlxuICogSGVscHMgJ3NlcmlhbGl6ZScgd2l0aCBzZXJpYWxpemluZyBhcnJheXMuXG4gKiBNdXRhdGVzIHRoZSBwYWlycyBhcnJheS5cbiAqXG4gKiBAcGFyYW0ge0FycmF5fSBwYWlyc1xuICogQHBhcmFtIHtTdHJpbmd9IGtleVxuICogQHBhcmFtIHtNaXhlZH0gdmFsXG4gKi9cblxuZnVuY3Rpb24gcHVzaEVuY29kZWRLZXlWYWx1ZVBhaXIocGFpcnMsIGtleSwgdmFsKSB7XG4gIGlmICh2YWwgIT0gbnVsbCkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgIHZhbC5mb3JFYWNoKGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgcHVzaEVuY29kZWRLZXlWYWx1ZVBhaXIocGFpcnMsIGtleSwgdik7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KHZhbCkpIHtcbiAgICAgIGZvcih2YXIgc3Via2V5IGluIHZhbCkge1xuICAgICAgICBwdXNoRW5jb2RlZEtleVZhbHVlUGFpcihwYWlycywga2V5ICsgJ1snICsgc3Via2V5ICsgJ10nLCB2YWxbc3Via2V5XSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhaXJzLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGtleSlcbiAgICAgICAgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQodmFsKSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHZhbCA9PT0gbnVsbCkge1xuICAgIHBhaXJzLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGtleSkpO1xuICB9XG59XG5cbi8qKlxuICogRXhwb3NlIHNlcmlhbGl6YXRpb24gbWV0aG9kLlxuICovXG5cbnJlcXVlc3Quc2VyaWFsaXplT2JqZWN0ID0gc2VyaWFsaXplO1xuXG4vKipcbiAgKiBQYXJzZSB0aGUgZ2l2ZW4geC13d3ctZm9ybS11cmxlbmNvZGVkIGBzdHJgLlxuICAqXG4gICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICAqIEByZXR1cm4ge09iamVjdH1cbiAgKiBAYXBpIHByaXZhdGVcbiAgKi9cblxuZnVuY3Rpb24gcGFyc2VTdHJpbmcoc3RyKSB7XG4gIHZhciBvYmogPSB7fTtcbiAgdmFyIHBhaXJzID0gc3RyLnNwbGl0KCcmJyk7XG4gIHZhciBwYWlyO1xuICB2YXIgcG9zO1xuXG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBwYWlycy5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICAgIHBhaXIgPSBwYWlyc1tpXTtcbiAgICBwb3MgPSBwYWlyLmluZGV4T2YoJz0nKTtcbiAgICBpZiAocG9zID09IC0xKSB7XG4gICAgICBvYmpbZGVjb2RlVVJJQ29tcG9uZW50KHBhaXIpXSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvYmpbZGVjb2RlVVJJQ29tcG9uZW50KHBhaXIuc2xpY2UoMCwgcG9zKSldID1cbiAgICAgICAgZGVjb2RlVVJJQ29tcG9uZW50KHBhaXIuc2xpY2UocG9zICsgMSkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG5cbi8qKlxuICogRXhwb3NlIHBhcnNlci5cbiAqL1xuXG5yZXF1ZXN0LnBhcnNlU3RyaW5nID0gcGFyc2VTdHJpbmc7XG5cbi8qKlxuICogRGVmYXVsdCBNSU1FIHR5cGUgbWFwLlxuICpcbiAqICAgICBzdXBlcmFnZW50LnR5cGVzLnhtbCA9ICdhcHBsaWNhdGlvbi94bWwnO1xuICpcbiAqL1xuXG5yZXF1ZXN0LnR5cGVzID0ge1xuICBodG1sOiAndGV4dC9odG1sJyxcbiAganNvbjogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICB4bWw6ICd0ZXh0L3htbCcsXG4gIHVybGVuY29kZWQ6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAnZm9ybSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAnZm9ybS1kYXRhJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcbn07XG5cbi8qKlxuICogRGVmYXVsdCBzZXJpYWxpemF0aW9uIG1hcC5cbiAqXG4gKiAgICAgc3VwZXJhZ2VudC5zZXJpYWxpemVbJ2FwcGxpY2F0aW9uL3htbCddID0gZnVuY3Rpb24ob2JqKXtcbiAqICAgICAgIHJldHVybiAnZ2VuZXJhdGVkIHhtbCBoZXJlJztcbiAqICAgICB9O1xuICpcbiAqL1xuXG5yZXF1ZXN0LnNlcmlhbGl6ZSA9IHtcbiAgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCc6IHNlcmlhbGl6ZSxcbiAgJ2FwcGxpY2F0aW9uL2pzb24nOiBKU09OLnN0cmluZ2lmeSxcbn07XG5cbi8qKlxuICAqIERlZmF1bHQgcGFyc2Vycy5cbiAgKlxuICAqICAgICBzdXBlcmFnZW50LnBhcnNlWydhcHBsaWNhdGlvbi94bWwnXSA9IGZ1bmN0aW9uKHN0cil7XG4gICogICAgICAgcmV0dXJuIHsgb2JqZWN0IHBhcnNlZCBmcm9tIHN0ciB9O1xuICAqICAgICB9O1xuICAqXG4gICovXG5cbnJlcXVlc3QucGFyc2UgPSB7XG4gICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnOiBwYXJzZVN0cmluZyxcbiAgJ2FwcGxpY2F0aW9uL2pzb24nOiBKU09OLnBhcnNlLFxufTtcblxuLyoqXG4gKiBQYXJzZSB0aGUgZ2l2ZW4gaGVhZGVyIGBzdHJgIGludG9cbiAqIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBtYXBwZWQgZmllbGRzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHBhcnNlSGVhZGVyKHN0cikge1xuICB2YXIgbGluZXMgPSBzdHIuc3BsaXQoL1xccj9cXG4vKTtcbiAgdmFyIGZpZWxkcyA9IHt9O1xuICB2YXIgaW5kZXg7XG4gIHZhciBsaW5lO1xuICB2YXIgZmllbGQ7XG4gIHZhciB2YWw7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGxpbmVzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XG4gICAgbGluZSA9IGxpbmVzW2ldO1xuICAgIGluZGV4ID0gbGluZS5pbmRleE9mKCc6Jyk7XG4gICAgaWYgKGluZGV4ID09PSAtMSkgeyAvLyBjb3VsZCBiZSBlbXB0eSBsaW5lLCBqdXN0IHNraXAgaXRcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBmaWVsZCA9IGxpbmUuc2xpY2UoMCwgaW5kZXgpLnRvTG93ZXJDYXNlKCk7XG4gICAgdmFsID0gdHJpbShsaW5lLnNsaWNlKGluZGV4ICsgMSkpO1xuICAgIGZpZWxkc1tmaWVsZF0gPSB2YWw7XG4gIH1cblxuICByZXR1cm4gZmllbGRzO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGBtaW1lYCBpcyBqc29uIG9yIGhhcyAranNvbiBzdHJ1Y3R1cmVkIHN5bnRheCBzdWZmaXguXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG1pbWVcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBpc0pTT04obWltZSkge1xuICAvLyBzaG91bGQgbWF0Y2ggL2pzb24gb3IgK2pzb25cbiAgLy8gYnV0IG5vdCAvanNvbi1zZXFcbiAgcmV0dXJuIC9bXFwvK11qc29uKCR8W14tXFx3XSkvLnRlc3QobWltZSk7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBhIG5ldyBgUmVzcG9uc2VgIHdpdGggdGhlIGdpdmVuIGB4aHJgLlxuICpcbiAqICAtIHNldCBmbGFncyAoLm9rLCAuZXJyb3IsIGV0YylcbiAqICAtIHBhcnNlIGhlYWRlclxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICBBbGlhc2luZyBgc3VwZXJhZ2VudGAgYXMgYHJlcXVlc3RgIGlzIG5pY2U6XG4gKlxuICogICAgICByZXF1ZXN0ID0gc3VwZXJhZ2VudDtcbiAqXG4gKiAgV2UgY2FuIHVzZSB0aGUgcHJvbWlzZS1saWtlIEFQSSwgb3IgcGFzcyBjYWxsYmFja3M6XG4gKlxuICogICAgICByZXF1ZXN0LmdldCgnLycpLmVuZChmdW5jdGlvbihyZXMpe30pO1xuICogICAgICByZXF1ZXN0LmdldCgnLycsIGZ1bmN0aW9uKHJlcyl7fSk7XG4gKlxuICogIFNlbmRpbmcgZGF0YSBjYW4gYmUgY2hhaW5lZDpcbiAqXG4gKiAgICAgIHJlcXVlc3RcbiAqICAgICAgICAucG9zdCgnL3VzZXInKVxuICogICAgICAgIC5zZW5kKHsgbmFtZTogJ3RqJyB9KVxuICogICAgICAgIC5lbmQoZnVuY3Rpb24ocmVzKXt9KTtcbiAqXG4gKiAgT3IgcGFzc2VkIHRvIGAuc2VuZCgpYDpcbiAqXG4gKiAgICAgIHJlcXVlc3RcbiAqICAgICAgICAucG9zdCgnL3VzZXInKVxuICogICAgICAgIC5zZW5kKHsgbmFtZTogJ3RqJyB9LCBmdW5jdGlvbihyZXMpe30pO1xuICpcbiAqICBPciBwYXNzZWQgdG8gYC5wb3N0KClgOlxuICpcbiAqICAgICAgcmVxdWVzdFxuICogICAgICAgIC5wb3N0KCcvdXNlcicsIHsgbmFtZTogJ3RqJyB9KVxuICogICAgICAgIC5lbmQoZnVuY3Rpb24ocmVzKXt9KTtcbiAqXG4gKiBPciBmdXJ0aGVyIHJlZHVjZWQgdG8gYSBzaW5nbGUgY2FsbCBmb3Igc2ltcGxlIGNhc2VzOlxuICpcbiAqICAgICAgcmVxdWVzdFxuICogICAgICAgIC5wb3N0KCcvdXNlcicsIHsgbmFtZTogJ3RqJyB9LCBmdW5jdGlvbihyZXMpe30pO1xuICpcbiAqIEBwYXJhbSB7WE1MSFRUUFJlcXVlc3R9IHhoclxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIFJlc3BvbnNlKHJlcSkge1xuICB0aGlzLnJlcSA9IHJlcTtcbiAgdGhpcy54aHIgPSB0aGlzLnJlcS54aHI7XG4gIC8vIHJlc3BvbnNlVGV4dCBpcyBhY2Nlc3NpYmxlIG9ubHkgaWYgcmVzcG9uc2VUeXBlIGlzICcnIG9yICd0ZXh0JyBhbmQgb24gb2xkZXIgYnJvd3NlcnNcbiAgdGhpcy50ZXh0ID0gKCh0aGlzLnJlcS5tZXRob2QgIT0nSEVBRCcgJiYgKHRoaXMueGhyLnJlc3BvbnNlVHlwZSA9PT0gJycgfHwgdGhpcy54aHIucmVzcG9uc2VUeXBlID09PSAndGV4dCcpKSB8fCB0eXBlb2YgdGhpcy54aHIucmVzcG9uc2VUeXBlID09PSAndW5kZWZpbmVkJylcbiAgICAgPyB0aGlzLnhoci5yZXNwb25zZVRleHRcbiAgICAgOiBudWxsO1xuICB0aGlzLnN0YXR1c1RleHQgPSB0aGlzLnJlcS54aHIuc3RhdHVzVGV4dDtcbiAgdmFyIHN0YXR1cyA9IHRoaXMueGhyLnN0YXR1cztcbiAgLy8gaGFuZGxlIElFOSBidWc6IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTAwNDY5NzIvbXNpZS1yZXR1cm5zLXN0YXR1cy1jb2RlLW9mLTEyMjMtZm9yLWFqYXgtcmVxdWVzdFxuICBpZiAoc3RhdHVzID09PSAxMjIzKSB7XG4gICAgc3RhdHVzID0gMjA0O1xuICB9XG4gIHRoaXMuX3NldFN0YXR1c1Byb3BlcnRpZXMoc3RhdHVzKTtcbiAgdGhpcy5oZWFkZXIgPSB0aGlzLmhlYWRlcnMgPSBwYXJzZUhlYWRlcih0aGlzLnhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSk7XG4gIC8vIGdldEFsbFJlc3BvbnNlSGVhZGVycyBzb21ldGltZXMgZmFsc2VseSByZXR1cm5zIFwiXCIgZm9yIENPUlMgcmVxdWVzdHMsIGJ1dFxuICAvLyBnZXRSZXNwb25zZUhlYWRlciBzdGlsbCB3b3Jrcy4gc28gd2UgZ2V0IGNvbnRlbnQtdHlwZSBldmVuIGlmIGdldHRpbmdcbiAgLy8gb3RoZXIgaGVhZGVycyBmYWlscy5cbiAgdGhpcy5oZWFkZXJbJ2NvbnRlbnQtdHlwZSddID0gdGhpcy54aHIuZ2V0UmVzcG9uc2VIZWFkZXIoJ2NvbnRlbnQtdHlwZScpO1xuICB0aGlzLl9zZXRIZWFkZXJQcm9wZXJ0aWVzKHRoaXMuaGVhZGVyKTtcblxuICBpZiAobnVsbCA9PT0gdGhpcy50ZXh0ICYmIHJlcS5fcmVzcG9uc2VUeXBlKSB7XG4gICAgdGhpcy5ib2R5ID0gdGhpcy54aHIucmVzcG9uc2U7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5ib2R5ID0gdGhpcy5yZXEubWV0aG9kICE9ICdIRUFEJ1xuICAgICAgPyB0aGlzLl9wYXJzZUJvZHkodGhpcy50ZXh0ID8gdGhpcy50ZXh0IDogdGhpcy54aHIucmVzcG9uc2UpXG4gICAgICA6IG51bGw7XG4gIH1cbn1cblxuUmVzcG9uc2VCYXNlKFJlc3BvbnNlLnByb3RvdHlwZSk7XG5cbi8qKlxuICogUGFyc2UgdGhlIGdpdmVuIGJvZHkgYHN0cmAuXG4gKlxuICogVXNlZCBmb3IgYXV0by1wYXJzaW5nIG9mIGJvZGllcy4gUGFyc2Vyc1xuICogYXJlIGRlZmluZWQgb24gdGhlIGBzdXBlcmFnZW50LnBhcnNlYCBvYmplY3QuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7TWl4ZWR9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXNwb25zZS5wcm90b3R5cGUuX3BhcnNlQm9keSA9IGZ1bmN0aW9uKHN0cikge1xuICB2YXIgcGFyc2UgPSByZXF1ZXN0LnBhcnNlW3RoaXMudHlwZV07XG4gIGlmICh0aGlzLnJlcS5fcGFyc2VyKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxLl9wYXJzZXIodGhpcywgc3RyKTtcbiAgfVxuICBpZiAoIXBhcnNlICYmIGlzSlNPTih0aGlzLnR5cGUpKSB7XG4gICAgcGFyc2UgPSByZXF1ZXN0LnBhcnNlWydhcHBsaWNhdGlvbi9qc29uJ107XG4gIH1cbiAgcmV0dXJuIHBhcnNlICYmIHN0ciAmJiAoc3RyLmxlbmd0aCB8fCBzdHIgaW5zdGFuY2VvZiBPYmplY3QpXG4gICAgPyBwYXJzZShzdHIpXG4gICAgOiBudWxsO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gYW4gYEVycm9yYCByZXByZXNlbnRhdGl2ZSBvZiB0aGlzIHJlc3BvbnNlLlxuICpcbiAqIEByZXR1cm4ge0Vycm9yfVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXNwb25zZS5wcm90b3R5cGUudG9FcnJvciA9IGZ1bmN0aW9uKCl7XG4gIHZhciByZXEgPSB0aGlzLnJlcTtcbiAgdmFyIG1ldGhvZCA9IHJlcS5tZXRob2Q7XG4gIHZhciB1cmwgPSByZXEudXJsO1xuXG4gIHZhciBtc2cgPSAnY2Fubm90ICcgKyBtZXRob2QgKyAnICcgKyB1cmwgKyAnICgnICsgdGhpcy5zdGF0dXMgKyAnKSc7XG4gIHZhciBlcnIgPSBuZXcgRXJyb3IobXNnKTtcbiAgZXJyLnN0YXR1cyA9IHRoaXMuc3RhdHVzO1xuICBlcnIubWV0aG9kID0gbWV0aG9kO1xuICBlcnIudXJsID0gdXJsO1xuXG4gIHJldHVybiBlcnI7XG59O1xuXG4vKipcbiAqIEV4cG9zZSBgUmVzcG9uc2VgLlxuICovXG5cbnJlcXVlc3QuUmVzcG9uc2UgPSBSZXNwb25zZTtcblxuLyoqXG4gKiBJbml0aWFsaXplIGEgbmV3IGBSZXF1ZXN0YCB3aXRoIHRoZSBnaXZlbiBgbWV0aG9kYCBhbmQgYHVybGAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG1ldGhvZFxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBSZXF1ZXN0KG1ldGhvZCwgdXJsKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdGhpcy5fcXVlcnkgPSB0aGlzLl9xdWVyeSB8fCBbXTtcbiAgdGhpcy5tZXRob2QgPSBtZXRob2Q7XG4gIHRoaXMudXJsID0gdXJsO1xuICB0aGlzLmhlYWRlciA9IHt9OyAvLyBwcmVzZXJ2ZXMgaGVhZGVyIG5hbWUgY2FzZVxuICB0aGlzLl9oZWFkZXIgPSB7fTsgLy8gY29lcmNlcyBoZWFkZXIgbmFtZXMgdG8gbG93ZXJjYXNlXG4gIHRoaXMub24oJ2VuZCcsIGZ1bmN0aW9uKCl7XG4gICAgdmFyIGVyciA9IG51bGw7XG4gICAgdmFyIHJlcyA9IG51bGw7XG5cbiAgICB0cnkge1xuICAgICAgcmVzID0gbmV3IFJlc3BvbnNlKHNlbGYpO1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgZXJyID0gbmV3IEVycm9yKCdQYXJzZXIgaXMgdW5hYmxlIHRvIHBhcnNlIHRoZSByZXNwb25zZScpO1xuICAgICAgZXJyLnBhcnNlID0gdHJ1ZTtcbiAgICAgIGVyci5vcmlnaW5hbCA9IGU7XG4gICAgICAvLyBpc3N1ZSAjNjc1OiByZXR1cm4gdGhlIHJhdyByZXNwb25zZSBpZiB0aGUgcmVzcG9uc2UgcGFyc2luZyBmYWlsc1xuICAgICAgaWYgKHNlbGYueGhyKSB7XG4gICAgICAgIC8vIGllOSBkb2Vzbid0IGhhdmUgJ3Jlc3BvbnNlJyBwcm9wZXJ0eVxuICAgICAgICBlcnIucmF3UmVzcG9uc2UgPSB0eXBlb2Ygc2VsZi54aHIucmVzcG9uc2VUeXBlID09ICd1bmRlZmluZWQnID8gc2VsZi54aHIucmVzcG9uc2VUZXh0IDogc2VsZi54aHIucmVzcG9uc2U7XG4gICAgICAgIC8vIGlzc3VlICM4NzY6IHJldHVybiB0aGUgaHR0cCBzdGF0dXMgY29kZSBpZiB0aGUgcmVzcG9uc2UgcGFyc2luZyBmYWlsc1xuICAgICAgICBlcnIuc3RhdHVzID0gc2VsZi54aHIuc3RhdHVzID8gc2VsZi54aHIuc3RhdHVzIDogbnVsbDtcbiAgICAgICAgZXJyLnN0YXR1c0NvZGUgPSBlcnIuc3RhdHVzOyAvLyBiYWNrd2FyZHMtY29tcGF0IG9ubHlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVyci5yYXdSZXNwb25zZSA9IG51bGw7XG4gICAgICAgIGVyci5zdGF0dXMgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gc2VsZi5jYWxsYmFjayhlcnIpO1xuICAgIH1cblxuICAgIHNlbGYuZW1pdCgncmVzcG9uc2UnLCByZXMpO1xuXG4gICAgdmFyIG5ld19lcnI7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghc2VsZi5faXNSZXNwb25zZU9LKHJlcykpIHtcbiAgICAgICAgbmV3X2VyciA9IG5ldyBFcnJvcihyZXMuc3RhdHVzVGV4dCB8fCAnVW5zdWNjZXNzZnVsIEhUVFAgcmVzcG9uc2UnKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoKGN1c3RvbV9lcnIpIHtcbiAgICAgIG5ld19lcnIgPSBjdXN0b21fZXJyOyAvLyBvaygpIGNhbGxiYWNrIGNhbiB0aHJvd1xuICAgIH1cblxuICAgIC8vICMxMDAwIGRvbid0IGNhdGNoIGVycm9ycyBmcm9tIHRoZSBjYWxsYmFjayB0byBhdm9pZCBkb3VibGUgY2FsbGluZyBpdFxuICAgIGlmIChuZXdfZXJyKSB7XG4gICAgICBuZXdfZXJyLm9yaWdpbmFsID0gZXJyO1xuICAgICAgbmV3X2Vyci5yZXNwb25zZSA9IHJlcztcbiAgICAgIG5ld19lcnIuc3RhdHVzID0gcmVzLnN0YXR1cztcbiAgICAgIHNlbGYuY2FsbGJhY2sobmV3X2VyciwgcmVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VsZi5jYWxsYmFjayhudWxsLCByZXMpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogTWl4aW4gYEVtaXR0ZXJgIGFuZCBgUmVxdWVzdEJhc2VgLlxuICovXG5cbkVtaXR0ZXIoUmVxdWVzdC5wcm90b3R5cGUpO1xuUmVxdWVzdEJhc2UoUmVxdWVzdC5wcm90b3R5cGUpO1xuXG4vKipcbiAqIFNldCBDb250ZW50LVR5cGUgdG8gYHR5cGVgLCBtYXBwaW5nIHZhbHVlcyBmcm9tIGByZXF1ZXN0LnR5cGVzYC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgIHN1cGVyYWdlbnQudHlwZXMueG1sID0gJ2FwcGxpY2F0aW9uL3htbCc7XG4gKlxuICogICAgICByZXF1ZXN0LnBvc3QoJy8nKVxuICogICAgICAgIC50eXBlKCd4bWwnKVxuICogICAgICAgIC5zZW5kKHhtbHN0cmluZylcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiAgICAgIHJlcXVlc3QucG9zdCgnLycpXG4gKiAgICAgICAgLnR5cGUoJ2FwcGxpY2F0aW9uL3htbCcpXG4gKiAgICAgICAgLnNlbmQoeG1sc3RyaW5nKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUudHlwZSA9IGZ1bmN0aW9uKHR5cGUpe1xuICB0aGlzLnNldCgnQ29udGVudC1UeXBlJywgcmVxdWVzdC50eXBlc1t0eXBlXSB8fCB0eXBlKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCBBY2NlcHQgdG8gYHR5cGVgLCBtYXBwaW5nIHZhbHVlcyBmcm9tIGByZXF1ZXN0LnR5cGVzYC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgIHN1cGVyYWdlbnQudHlwZXMuanNvbiA9ICdhcHBsaWNhdGlvbi9qc29uJztcbiAqXG4gKiAgICAgIHJlcXVlc3QuZ2V0KCcvYWdlbnQnKVxuICogICAgICAgIC5hY2NlcHQoJ2pzb24nKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqICAgICAgcmVxdWVzdC5nZXQoJy9hZ2VudCcpXG4gKiAgICAgICAgLmFjY2VwdCgnYXBwbGljYXRpb24vanNvbicpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGFjY2VwdFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmFjY2VwdCA9IGZ1bmN0aW9uKHR5cGUpe1xuICB0aGlzLnNldCgnQWNjZXB0JywgcmVxdWVzdC50eXBlc1t0eXBlXSB8fCB0eXBlKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCBBdXRob3JpemF0aW9uIGZpZWxkIHZhbHVlIHdpdGggYHVzZXJgIGFuZCBgcGFzc2AuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVzZXJcbiAqIEBwYXJhbSB7U3RyaW5nfSBbcGFzc10gb3B0aW9uYWwgaW4gY2FzZSBvZiB1c2luZyAnYmVhcmVyJyBhcyB0eXBlXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyB3aXRoICd0eXBlJyBwcm9wZXJ0eSAnYXV0bycsICdiYXNpYycgb3IgJ2JlYXJlcicgKGRlZmF1bHQgJ2Jhc2ljJylcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5hdXRoID0gZnVuY3Rpb24odXNlciwgcGFzcywgb3B0aW9ucyl7XG4gIGlmICgxID09PSBhcmd1bWVudHMubGVuZ3RoKSBwYXNzID0gJyc7XG4gIGlmICh0eXBlb2YgcGFzcyA9PT0gJ29iamVjdCcgJiYgcGFzcyAhPT0gbnVsbCkgeyAvLyBwYXNzIGlzIG9wdGlvbmFsIGFuZCBjYW4gYmUgcmVwbGFjZWQgd2l0aCBvcHRpb25zXG4gICAgb3B0aW9ucyA9IHBhc3M7XG4gICAgcGFzcyA9ICcnO1xuICB9XG4gIGlmICghb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICB0eXBlOiAnZnVuY3Rpb24nID09PSB0eXBlb2YgYnRvYSA/ICdiYXNpYycgOiAnYXV0bycsXG4gICAgfTtcbiAgfVxuXG4gIHZhciBlbmNvZGVyID0gZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgaWYgKCdmdW5jdGlvbicgPT09IHR5cGVvZiBidG9hKSB7XG4gICAgICByZXR1cm4gYnRvYShzdHJpbmcpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1c2UgYmFzaWMgYXV0aCwgYnRvYSBpcyBub3QgYSBmdW5jdGlvbicpO1xuICB9O1xuXG4gIHJldHVybiB0aGlzLl9hdXRoKHVzZXIsIHBhc3MsIG9wdGlvbnMsIGVuY29kZXIpO1xufTtcblxuLyoqXG4gKiBBZGQgcXVlcnktc3RyaW5nIGB2YWxgLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgcmVxdWVzdC5nZXQoJy9zaG9lcycpXG4gKiAgICAgLnF1ZXJ5KCdzaXplPTEwJylcbiAqICAgICAucXVlcnkoeyBjb2xvcjogJ2JsdWUnIH0pXG4gKlxuICogQHBhcmFtIHtPYmplY3R8U3RyaW5nfSB2YWxcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5xdWVyeSA9IGZ1bmN0aW9uKHZhbCl7XG4gIGlmICgnc3RyaW5nJyAhPSB0eXBlb2YgdmFsKSB2YWwgPSBzZXJpYWxpemUodmFsKTtcbiAgaWYgKHZhbCkgdGhpcy5fcXVlcnkucHVzaCh2YWwpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogUXVldWUgdGhlIGdpdmVuIGBmaWxlYCBhcyBhbiBhdHRhY2htZW50IHRvIHRoZSBzcGVjaWZpZWQgYGZpZWxkYCxcbiAqIHdpdGggb3B0aW9uYWwgYG9wdGlvbnNgIChvciBmaWxlbmFtZSkuXG4gKlxuICogYGBgIGpzXG4gKiByZXF1ZXN0LnBvc3QoJy91cGxvYWQnKVxuICogICAuYXR0YWNoKCdjb250ZW50JywgbmV3IEJsb2IoWyc8YSBpZD1cImFcIj48YiBpZD1cImJcIj5oZXkhPC9iPjwvYT4nXSwgeyB0eXBlOiBcInRleHQvaHRtbFwifSkpXG4gKiAgIC5lbmQoY2FsbGJhY2spO1xuICogYGBgXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGZpZWxkXG4gKiBAcGFyYW0ge0Jsb2J8RmlsZX0gZmlsZVxuICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSBvcHRpb25zXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuYXR0YWNoID0gZnVuY3Rpb24oZmllbGQsIGZpbGUsIG9wdGlvbnMpe1xuICBpZiAoZmlsZSkge1xuICAgIGlmICh0aGlzLl9kYXRhKSB7XG4gICAgICB0aHJvdyBFcnJvcihcInN1cGVyYWdlbnQgY2FuJ3QgbWl4IC5zZW5kKCkgYW5kIC5hdHRhY2goKVwiKTtcbiAgICB9XG5cbiAgICB0aGlzLl9nZXRGb3JtRGF0YSgpLmFwcGVuZChmaWVsZCwgZmlsZSwgb3B0aW9ucyB8fCBmaWxlLm5hbWUpO1xuICB9XG4gIHJldHVybiB0aGlzO1xufTtcblxuUmVxdWVzdC5wcm90b3R5cGUuX2dldEZvcm1EYXRhID0gZnVuY3Rpb24oKXtcbiAgaWYgKCF0aGlzLl9mb3JtRGF0YSkge1xuICAgIHRoaXMuX2Zvcm1EYXRhID0gbmV3IHJvb3QuRm9ybURhdGEoKTtcbiAgfVxuICByZXR1cm4gdGhpcy5fZm9ybURhdGE7XG59O1xuXG4vKipcbiAqIEludm9rZSB0aGUgY2FsbGJhY2sgd2l0aCBgZXJyYCBhbmQgYHJlc2BcbiAqIGFuZCBoYW5kbGUgYXJpdHkgY2hlY2suXG4gKlxuICogQHBhcmFtIHtFcnJvcn0gZXJyXG4gKiBAcGFyYW0ge1Jlc3BvbnNlfSByZXNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmNhbGxiYWNrID0gZnVuY3Rpb24oZXJyLCByZXMpe1xuICBpZiAodGhpcy5fc2hvdWxkUmV0cnkoZXJyLCByZXMpKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JldHJ5KCk7XG4gIH1cblxuICB2YXIgZm4gPSB0aGlzLl9jYWxsYmFjaztcbiAgdGhpcy5jbGVhclRpbWVvdXQoKTtcblxuICBpZiAoZXJyKSB7XG4gICAgaWYgKHRoaXMuX21heFJldHJpZXMpIGVyci5yZXRyaWVzID0gdGhpcy5fcmV0cmllcyAtIDE7XG4gICAgdGhpcy5lbWl0KCdlcnJvcicsIGVycik7XG4gIH1cblxuICBmbihlcnIsIHJlcyk7XG59O1xuXG4vKipcbiAqIEludm9rZSBjYWxsYmFjayB3aXRoIHgtZG9tYWluIGVycm9yLlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmNyb3NzRG9tYWluRXJyb3IgPSBmdW5jdGlvbigpe1xuICB2YXIgZXJyID0gbmV3IEVycm9yKCdSZXF1ZXN0IGhhcyBiZWVuIHRlcm1pbmF0ZWRcXG5Qb3NzaWJsZSBjYXVzZXM6IHRoZSBuZXR3b3JrIGlzIG9mZmxpbmUsIE9yaWdpbiBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4sIHRoZSBwYWdlIGlzIGJlaW5nIHVubG9hZGVkLCBldGMuJyk7XG4gIGVyci5jcm9zc0RvbWFpbiA9IHRydWU7XG5cbiAgZXJyLnN0YXR1cyA9IHRoaXMuc3RhdHVzO1xuICBlcnIubWV0aG9kID0gdGhpcy5tZXRob2Q7XG4gIGVyci51cmwgPSB0aGlzLnVybDtcblxuICB0aGlzLmNhbGxiYWNrKGVycik7XG59O1xuXG4vLyBUaGlzIG9ubHkgd2FybnMsIGJlY2F1c2UgdGhlIHJlcXVlc3QgaXMgc3RpbGwgbGlrZWx5IHRvIHdvcmtcblJlcXVlc3QucHJvdG90eXBlLmJ1ZmZlciA9IFJlcXVlc3QucHJvdG90eXBlLmNhID0gUmVxdWVzdC5wcm90b3R5cGUuYWdlbnQgPSBmdW5jdGlvbigpe1xuICBjb25zb2xlLndhcm4oXCJUaGlzIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciB2ZXJzaW9uIG9mIHN1cGVyYWdlbnRcIik7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLy8gVGhpcyB0aHJvd3MsIGJlY2F1c2UgaXQgY2FuJ3Qgc2VuZC9yZWNlaXZlIGRhdGEgYXMgZXhwZWN0ZWRcblJlcXVlc3QucHJvdG90eXBlLnBpcGUgPSBSZXF1ZXN0LnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKCl7XG4gIHRocm93IEVycm9yKFwiU3RyZWFtaW5nIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciB2ZXJzaW9uIG9mIHN1cGVyYWdlbnRcIik7XG59O1xuXG4vKipcbiAqIENoZWNrIGlmIGBvYmpgIGlzIGEgaG9zdCBvYmplY3QsXG4gKiB3ZSBkb24ndCB3YW50IHRvIHNlcmlhbGl6ZSB0aGVzZSA6KVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuUmVxdWVzdC5wcm90b3R5cGUuX2lzSG9zdCA9IGZ1bmN0aW9uIF9pc0hvc3Qob2JqKSB7XG4gIC8vIE5hdGl2ZSBvYmplY3RzIHN0cmluZ2lmeSB0byBbb2JqZWN0IEZpbGVdLCBbb2JqZWN0IEJsb2JdLCBbb2JqZWN0IEZvcm1EYXRhXSwgZXRjLlxuICByZXR1cm4gb2JqICYmICdvYmplY3QnID09PSB0eXBlb2Ygb2JqICYmICFBcnJheS5pc0FycmF5KG9iaikgJiYgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikgIT09ICdbb2JqZWN0IE9iamVjdF0nO1xufVxuXG4vKipcbiAqIEluaXRpYXRlIHJlcXVlc3QsIGludm9raW5nIGNhbGxiYWNrIGBmbihyZXMpYFxuICogd2l0aCBhbiBpbnN0YW5jZW9mIGBSZXNwb25zZWAuXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbihmbil7XG4gIGlmICh0aGlzLl9lbmRDYWxsZWQpIHtcbiAgICBjb25zb2xlLndhcm4oXCJXYXJuaW5nOiAuZW5kKCkgd2FzIGNhbGxlZCB0d2ljZS4gVGhpcyBpcyBub3Qgc3VwcG9ydGVkIGluIHN1cGVyYWdlbnRcIik7XG4gIH1cbiAgdGhpcy5fZW5kQ2FsbGVkID0gdHJ1ZTtcblxuICAvLyBzdG9yZSBjYWxsYmFja1xuICB0aGlzLl9jYWxsYmFjayA9IGZuIHx8IG5vb3A7XG5cbiAgLy8gcXVlcnlzdHJpbmdcbiAgdGhpcy5fZmluYWxpemVRdWVyeVN0cmluZygpO1xuXG4gIHJldHVybiB0aGlzLl9lbmQoKTtcbn07XG5cblJlcXVlc3QucHJvdG90eXBlLl9lbmQgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgeGhyID0gKHRoaXMueGhyID0gcmVxdWVzdC5nZXRYSFIoKSk7XG4gIHZhciBkYXRhID0gdGhpcy5fZm9ybURhdGEgfHwgdGhpcy5fZGF0YTtcblxuICB0aGlzLl9zZXRUaW1lb3V0cygpO1xuXG4gIC8vIHN0YXRlIGNoYW5nZVxuICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKXtcbiAgICB2YXIgcmVhZHlTdGF0ZSA9IHhoci5yZWFkeVN0YXRlO1xuICAgIGlmIChyZWFkeVN0YXRlID49IDIgJiYgc2VsZi5fcmVzcG9uc2VUaW1lb3V0VGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dChzZWxmLl9yZXNwb25zZVRpbWVvdXRUaW1lcik7XG4gICAgfVxuICAgIGlmICg0ICE9IHJlYWR5U3RhdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJbiBJRTksIHJlYWRzIHRvIGFueSBwcm9wZXJ0eSAoZS5nLiBzdGF0dXMpIG9mZiBvZiBhbiBhYm9ydGVkIFhIUiB3aWxsXG4gICAgLy8gcmVzdWx0IGluIHRoZSBlcnJvciBcIkNvdWxkIG5vdCBjb21wbGV0ZSB0aGUgb3BlcmF0aW9uIGR1ZSB0byBlcnJvciBjMDBjMDIzZlwiXG4gICAgdmFyIHN0YXR1cztcbiAgICB0cnkgeyBzdGF0dXMgPSB4aHIuc3RhdHVzIH0gY2F0Y2goZSkgeyBzdGF0dXMgPSAwOyB9XG5cbiAgICBpZiAoIXN0YXR1cykge1xuICAgICAgaWYgKHNlbGYudGltZWRvdXQgfHwgc2VsZi5fYWJvcnRlZCkgcmV0dXJuO1xuICAgICAgcmV0dXJuIHNlbGYuY3Jvc3NEb21haW5FcnJvcigpO1xuICAgIH1cbiAgICBzZWxmLmVtaXQoJ2VuZCcpO1xuICB9O1xuXG4gIC8vIHByb2dyZXNzXG4gIHZhciBoYW5kbGVQcm9ncmVzcyA9IGZ1bmN0aW9uKGRpcmVjdGlvbiwgZSkge1xuICAgIGlmIChlLnRvdGFsID4gMCkge1xuICAgICAgZS5wZXJjZW50ID0gZS5sb2FkZWQgLyBlLnRvdGFsICogMTAwO1xuICAgIH1cbiAgICBlLmRpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICBzZWxmLmVtaXQoJ3Byb2dyZXNzJywgZSk7XG4gIH07XG4gIGlmICh0aGlzLmhhc0xpc3RlbmVycygncHJvZ3Jlc3MnKSkge1xuICAgIHRyeSB7XG4gICAgICB4aHIub25wcm9ncmVzcyA9IGhhbmRsZVByb2dyZXNzLmJpbmQobnVsbCwgJ2Rvd25sb2FkJyk7XG4gICAgICBpZiAoeGhyLnVwbG9hZCkge1xuICAgICAgICB4aHIudXBsb2FkLm9ucHJvZ3Jlc3MgPSBoYW5kbGVQcm9ncmVzcy5iaW5kKG51bGwsICd1cGxvYWQnKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoKGUpIHtcbiAgICAgIC8vIEFjY2Vzc2luZyB4aHIudXBsb2FkIGZhaWxzIGluIElFIGZyb20gYSB3ZWIgd29ya2VyLCBzbyBqdXN0IHByZXRlbmQgaXQgZG9lc24ndCBleGlzdC5cbiAgICAgIC8vIFJlcG9ydGVkIGhlcmU6XG4gICAgICAvLyBodHRwczovL2Nvbm5lY3QubWljcm9zb2Z0LmNvbS9JRS9mZWVkYmFjay9kZXRhaWxzLzgzNzI0NS94bWxodHRwcmVxdWVzdC11cGxvYWQtdGhyb3dzLWludmFsaWQtYXJndW1lbnQtd2hlbi11c2VkLWZyb20td2ViLXdvcmtlci1jb250ZXh0XG4gICAgfVxuICB9XG5cbiAgLy8gaW5pdGlhdGUgcmVxdWVzdFxuICB0cnkge1xuICAgIGlmICh0aGlzLnVzZXJuYW1lICYmIHRoaXMucGFzc3dvcmQpIHtcbiAgICAgIHhoci5vcGVuKHRoaXMubWV0aG9kLCB0aGlzLnVybCwgdHJ1ZSwgdGhpcy51c2VybmFtZSwgdGhpcy5wYXNzd29yZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHhoci5vcGVuKHRoaXMubWV0aG9kLCB0aGlzLnVybCwgdHJ1ZSk7XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBzZWUgIzExNDlcbiAgICByZXR1cm4gdGhpcy5jYWxsYmFjayhlcnIpO1xuICB9XG5cbiAgLy8gQ09SU1xuICBpZiAodGhpcy5fd2l0aENyZWRlbnRpYWxzKSB4aHIud2l0aENyZWRlbnRpYWxzID0gdHJ1ZTtcblxuICAvLyBib2R5XG4gIGlmICghdGhpcy5fZm9ybURhdGEgJiYgJ0dFVCcgIT0gdGhpcy5tZXRob2QgJiYgJ0hFQUQnICE9IHRoaXMubWV0aG9kICYmICdzdHJpbmcnICE9IHR5cGVvZiBkYXRhICYmICF0aGlzLl9pc0hvc3QoZGF0YSkpIHtcbiAgICAvLyBzZXJpYWxpemUgc3R1ZmZcbiAgICB2YXIgY29udGVudFR5cGUgPSB0aGlzLl9oZWFkZXJbJ2NvbnRlbnQtdHlwZSddO1xuICAgIHZhciBzZXJpYWxpemUgPSB0aGlzLl9zZXJpYWxpemVyIHx8IHJlcXVlc3Quc2VyaWFsaXplW2NvbnRlbnRUeXBlID8gY29udGVudFR5cGUuc3BsaXQoJzsnKVswXSA6ICcnXTtcbiAgICBpZiAoIXNlcmlhbGl6ZSAmJiBpc0pTT04oY29udGVudFR5cGUpKSB7XG4gICAgICBzZXJpYWxpemUgPSByZXF1ZXN0LnNlcmlhbGl6ZVsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIH1cbiAgICBpZiAoc2VyaWFsaXplKSBkYXRhID0gc2VyaWFsaXplKGRhdGEpO1xuICB9XG5cbiAgLy8gc2V0IGhlYWRlciBmaWVsZHNcbiAgZm9yICh2YXIgZmllbGQgaW4gdGhpcy5oZWFkZXIpIHtcbiAgICBpZiAobnVsbCA9PSB0aGlzLmhlYWRlcltmaWVsZF0pIGNvbnRpbnVlO1xuXG4gICAgaWYgKHRoaXMuaGVhZGVyLmhhc093blByb3BlcnR5KGZpZWxkKSlcbiAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKGZpZWxkLCB0aGlzLmhlYWRlcltmaWVsZF0pO1xuICB9XG5cbiAgaWYgKHRoaXMuX3Jlc3BvbnNlVHlwZSkge1xuICAgIHhoci5yZXNwb25zZVR5cGUgPSB0aGlzLl9yZXNwb25zZVR5cGU7XG4gIH1cblxuICAvLyBzZW5kIHN0dWZmXG4gIHRoaXMuZW1pdCgncmVxdWVzdCcsIHRoaXMpO1xuXG4gIC8vIElFMTEgeGhyLnNlbmQodW5kZWZpbmVkKSBzZW5kcyAndW5kZWZpbmVkJyBzdHJpbmcgYXMgUE9TVCBwYXlsb2FkIChpbnN0ZWFkIG9mIG5vdGhpbmcpXG4gIC8vIFdlIG5lZWQgbnVsbCBoZXJlIGlmIGRhdGEgaXMgdW5kZWZpbmVkXG4gIHhoci5zZW5kKHR5cGVvZiBkYXRhICE9PSAndW5kZWZpbmVkJyA/IGRhdGEgOiBudWxsKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5yZXF1ZXN0LmFnZW50ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBuZXcgQWdlbnQoKTtcbn07XG5cbltcIkdFVFwiLCBcIlBPU1RcIiwgXCJPUFRJT05TXCIsIFwiUEFUQ0hcIiwgXCJQVVRcIiwgXCJERUxFVEVcIl0uZm9yRWFjaChmdW5jdGlvbihtZXRob2QpIHtcbiAgQWdlbnQucHJvdG90eXBlW21ldGhvZC50b0xvd2VyQ2FzZSgpXSA9IGZ1bmN0aW9uKHVybCwgZm4pIHtcbiAgICB2YXIgcmVxID0gbmV3IHJlcXVlc3QuUmVxdWVzdChtZXRob2QsIHVybCk7XG4gICAgdGhpcy5fc2V0RGVmYXVsdHMocmVxKTtcbiAgICBpZiAoZm4pIHtcbiAgICAgIHJlcS5lbmQoZm4pO1xuICAgIH1cbiAgICByZXR1cm4gcmVxO1xuICB9O1xufSk7XG5cbkFnZW50LnByb3RvdHlwZS5kZWwgPSBBZ2VudC5wcm90b3R5cGVbJ2RlbGV0ZSddO1xuXG4vKipcbiAqIEdFVCBgdXJsYCB3aXRoIG9wdGlvbmFsIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfEZ1bmN0aW9ufSBbZGF0YV0gb3IgZm5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtmbl1cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QuZ2V0ID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbikge1xuICB2YXIgcmVxID0gcmVxdWVzdCgnR0VUJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIChmbiA9IGRhdGEpLCAoZGF0YSA9IG51bGwpO1xuICBpZiAoZGF0YSkgcmVxLnF1ZXJ5KGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBIRUFEIGB1cmxgIHdpdGggb3B0aW9uYWwgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7TWl4ZWR8RnVuY3Rpb259IFtkYXRhXSBvciBmblxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2ZuXVxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5oZWFkID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbikge1xuICB2YXIgcmVxID0gcmVxdWVzdCgnSEVBRCcsIHVybCk7XG4gIGlmICgnZnVuY3Rpb24nID09IHR5cGVvZiBkYXRhKSAoZm4gPSBkYXRhKSwgKGRhdGEgPSBudWxsKTtcbiAgaWYgKGRhdGEpIHJlcS5xdWVyeShkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogT1BUSU9OUyBxdWVyeSB0byBgdXJsYCB3aXRoIG9wdGlvbmFsIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfEZ1bmN0aW9ufSBbZGF0YV0gb3IgZm5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtmbl1cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3Qub3B0aW9ucyA9IGZ1bmN0aW9uKHVybCwgZGF0YSwgZm4pIHtcbiAgdmFyIHJlcSA9IHJlcXVlc3QoJ09QVElPTlMnLCB1cmwpO1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgZGF0YSkgKGZuID0gZGF0YSksIChkYXRhID0gbnVsbCk7XG4gIGlmIChkYXRhKSByZXEuc2VuZChkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogREVMRVRFIGB1cmxgIHdpdGggb3B0aW9uYWwgYGRhdGFgIGFuZCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZH0gW2RhdGFdXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbZm5dXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBkZWwodXJsLCBkYXRhLCBmbikge1xuICB2YXIgcmVxID0gcmVxdWVzdCgnREVMRVRFJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIChmbiA9IGRhdGEpLCAoZGF0YSA9IG51bGwpO1xuICBpZiAoZGF0YSkgcmVxLnNlbmQoZGF0YSk7XG4gIGlmIChmbikgcmVxLmVuZChmbik7XG4gIHJldHVybiByZXE7XG59XG5cbnJlcXVlc3RbJ2RlbCddID0gZGVsO1xucmVxdWVzdFsnZGVsZXRlJ10gPSBkZWw7XG5cbi8qKlxuICogUEFUQ0ggYHVybGAgd2l0aCBvcHRpb25hbCBgZGF0YWAgYW5kIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfSBbZGF0YV1cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtmbl1cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QucGF0Y2ggPSBmdW5jdGlvbih1cmwsIGRhdGEsIGZuKSB7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdQQVRDSCcsIHVybCk7XG4gIGlmICgnZnVuY3Rpb24nID09IHR5cGVvZiBkYXRhKSAoZm4gPSBkYXRhKSwgKGRhdGEgPSBudWxsKTtcbiAgaWYgKGRhdGEpIHJlcS5zZW5kKGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBQT1NUIGB1cmxgIHdpdGggb3B0aW9uYWwgYGRhdGFgIGFuZCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZH0gW2RhdGFdXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbZm5dXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5yZXF1ZXN0LnBvc3QgPSBmdW5jdGlvbih1cmwsIGRhdGEsIGZuKSB7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdQT1NUJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIChmbiA9IGRhdGEpLCAoZGF0YSA9IG51bGwpO1xuICBpZiAoZGF0YSkgcmVxLnNlbmQoZGF0YSk7XG4gIGlmIChmbikgcmVxLmVuZChmbik7XG4gIHJldHVybiByZXE7XG59O1xuXG4vKipcbiAqIFBVVCBgdXJsYCB3aXRoIG9wdGlvbmFsIGBkYXRhYCBhbmQgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7TWl4ZWR8RnVuY3Rpb259IFtkYXRhXSBvciBmblxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2ZuXVxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5wdXQgPSBmdW5jdGlvbih1cmwsIGRhdGEsIGZuKSB7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdQVVQnLCB1cmwpO1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgZGF0YSkgKGZuID0gZGF0YSksIChkYXRhID0gbnVsbCk7XG4gIGlmIChkYXRhKSByZXEuc2VuZChkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9zdXBlcmFnZW50L2xpYi9jbGllbnQuanNcbi8vIG1vZHVsZSBpZCA9IDE5MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///191\n"); +eval("/**\n * Root reference for iframes.\n */\n\nvar root;\nif (typeof window !== 'undefined') { // Browser window\n root = window;\n} else if (typeof self !== 'undefined') { // Web Worker\n root = self;\n} else { // Other environments\n console.warn(\"Using browser-only version of superagent in non-browser environment\");\n root = this;\n}\n\nvar Emitter = __webpack_require__(192);\nvar RequestBase = __webpack_require__(193);\nvar isObject = __webpack_require__(96);\nvar ResponseBase = __webpack_require__(194);\nvar Agent = __webpack_require__(196);\n\n/**\n * Noop.\n */\n\nfunction noop(){};\n\n/**\n * Expose `request`.\n */\n\nvar request = exports = module.exports = function(method, url) {\n // callback\n if ('function' == typeof url) {\n return new exports.Request('GET', method).end(url);\n }\n\n // url first\n if (1 == arguments.length) {\n return new exports.Request('GET', method);\n }\n\n return new exports.Request(method, url);\n}\n\nexports.Request = Request;\n\n/**\n * Determine XHR.\n */\n\nrequest.getXHR = function () {\n if (root.XMLHttpRequest\n && (!root.location || 'file:' != root.location.protocol\n || !root.ActiveXObject)) {\n return new XMLHttpRequest;\n } else {\n try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) {}\n try { return new ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch(e) {}\n try { return new ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch(e) {}\n try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch(e) {}\n }\n throw Error(\"Browser-only version of superagent could not find XHR\");\n};\n\n/**\n * Removes leading and trailing whitespace, added to support IE.\n *\n * @param {String} s\n * @return {String}\n * @api private\n */\n\nvar trim = ''.trim\n ? function(s) { return s.trim(); }\n : function(s) { return s.replace(/(^\\s*|\\s*$)/g, ''); };\n\n/**\n * Serialize the given `obj`.\n *\n * @param {Object} obj\n * @return {String}\n * @api private\n */\n\nfunction serialize(obj) {\n if (!isObject(obj)) return obj;\n var pairs = [];\n for (var key in obj) {\n pushEncodedKeyValuePair(pairs, key, obj[key]);\n }\n return pairs.join('&');\n}\n\n/**\n * Helps 'serialize' with serializing arrays.\n * Mutates the pairs array.\n *\n * @param {Array} pairs\n * @param {String} key\n * @param {Mixed} val\n */\n\nfunction pushEncodedKeyValuePair(pairs, key, val) {\n if (val != null) {\n if (Array.isArray(val)) {\n val.forEach(function(v) {\n pushEncodedKeyValuePair(pairs, key, v);\n });\n } else if (isObject(val)) {\n for(var subkey in val) {\n pushEncodedKeyValuePair(pairs, key + '[' + subkey + ']', val[subkey]);\n }\n } else {\n pairs.push(encodeURIComponent(key)\n + '=' + encodeURIComponent(val));\n }\n } else if (val === null) {\n pairs.push(encodeURIComponent(key));\n }\n}\n\n/**\n * Expose serialization method.\n */\n\nrequest.serializeObject = serialize;\n\n/**\n * Parse the given x-www-form-urlencoded `str`.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseString(str) {\n var obj = {};\n var pairs = str.split('&');\n var pair;\n var pos;\n\n for (var i = 0, len = pairs.length; i < len; ++i) {\n pair = pairs[i];\n pos = pair.indexOf('=');\n if (pos == -1) {\n obj[decodeURIComponent(pair)] = '';\n } else {\n obj[decodeURIComponent(pair.slice(0, pos))] =\n decodeURIComponent(pair.slice(pos + 1));\n }\n }\n\n return obj;\n}\n\n/**\n * Expose parser.\n */\n\nrequest.parseString = parseString;\n\n/**\n * Default MIME type map.\n *\n * superagent.types.xml = 'application/xml';\n *\n */\n\nrequest.types = {\n html: 'text/html',\n json: 'application/json',\n xml: 'text/xml',\n urlencoded: 'application/x-www-form-urlencoded',\n 'form': 'application/x-www-form-urlencoded',\n 'form-data': 'application/x-www-form-urlencoded'\n};\n\n/**\n * Default serialization map.\n *\n * superagent.serialize['application/xml'] = function(obj){\n * return 'generated xml here';\n * };\n *\n */\n\nrequest.serialize = {\n 'application/x-www-form-urlencoded': serialize,\n 'application/json': JSON.stringify,\n};\n\n/**\n * Default parsers.\n *\n * superagent.parse['application/xml'] = function(str){\n * return { object parsed from str };\n * };\n *\n */\n\nrequest.parse = {\n 'application/x-www-form-urlencoded': parseString,\n 'application/json': JSON.parse,\n};\n\n/**\n * Parse the given header `str` into\n * an object containing the mapped fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseHeader(str) {\n var lines = str.split(/\\r?\\n/);\n var fields = {};\n var index;\n var line;\n var field;\n var val;\n\n for (var i = 0, len = lines.length; i < len; ++i) {\n line = lines[i];\n index = line.indexOf(':');\n if (index === -1) { // could be empty line, just skip it\n continue;\n }\n field = line.slice(0, index).toLowerCase();\n val = trim(line.slice(index + 1));\n fields[field] = val;\n }\n\n return fields;\n}\n\n/**\n * Check if `mime` is json or has +json structured syntax suffix.\n *\n * @param {String} mime\n * @return {Boolean}\n * @api private\n */\n\nfunction isJSON(mime) {\n // should match /json or +json\n // but not /json-seq\n return /[\\/+]json($|[^-\\w])/.test(mime);\n}\n\n/**\n * Initialize a new `Response` with the given `xhr`.\n *\n * - set flags (.ok, .error, etc)\n * - parse header\n *\n * Examples:\n *\n * Aliasing `superagent` as `request` is nice:\n *\n * request = superagent;\n *\n * We can use the promise-like API, or pass callbacks:\n *\n * request.get('/').end(function(res){});\n * request.get('/', function(res){});\n *\n * Sending data can be chained:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' })\n * .end(function(res){});\n *\n * Or passed to `.send()`:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' }, function(res){});\n *\n * Or passed to `.post()`:\n *\n * request\n * .post('/user', { name: 'tj' })\n * .end(function(res){});\n *\n * Or further reduced to a single call for simple cases:\n *\n * request\n * .post('/user', { name: 'tj' }, function(res){});\n *\n * @param {XMLHTTPRequest} xhr\n * @param {Object} options\n * @api private\n */\n\nfunction Response(req) {\n this.req = req;\n this.xhr = this.req.xhr;\n // responseText is accessible only if responseType is '' or 'text' and on older browsers\n this.text = ((this.req.method !='HEAD' && (this.xhr.responseType === '' || this.xhr.responseType === 'text')) || typeof this.xhr.responseType === 'undefined')\n ? this.xhr.responseText\n : null;\n this.statusText = this.req.xhr.statusText;\n var status = this.xhr.status;\n // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request\n if (status === 1223) {\n status = 204;\n }\n this._setStatusProperties(status);\n this.header = this.headers = parseHeader(this.xhr.getAllResponseHeaders());\n // getAllResponseHeaders sometimes falsely returns \"\" for CORS requests, but\n // getResponseHeader still works. so we get content-type even if getting\n // other headers fails.\n this.header['content-type'] = this.xhr.getResponseHeader('content-type');\n this._setHeaderProperties(this.header);\n\n if (null === this.text && req._responseType) {\n this.body = this.xhr.response;\n } else {\n this.body = this.req.method != 'HEAD'\n ? this._parseBody(this.text ? this.text : this.xhr.response)\n : null;\n }\n}\n\nResponseBase(Response.prototype);\n\n/**\n * Parse the given body `str`.\n *\n * Used for auto-parsing of bodies. Parsers\n * are defined on the `superagent.parse` object.\n *\n * @param {String} str\n * @return {Mixed}\n * @api private\n */\n\nResponse.prototype._parseBody = function(str) {\n var parse = request.parse[this.type];\n if (this.req._parser) {\n return this.req._parser(this, str);\n }\n if (!parse && isJSON(this.type)) {\n parse = request.parse['application/json'];\n }\n return parse && str && (str.length || str instanceof Object)\n ? parse(str)\n : null;\n};\n\n/**\n * Return an `Error` representative of this response.\n *\n * @return {Error}\n * @api public\n */\n\nResponse.prototype.toError = function(){\n var req = this.req;\n var method = req.method;\n var url = req.url;\n\n var msg = 'cannot ' + method + ' ' + url + ' (' + this.status + ')';\n var err = new Error(msg);\n err.status = this.status;\n err.method = method;\n err.url = url;\n\n return err;\n};\n\n/**\n * Expose `Response`.\n */\n\nrequest.Response = Response;\n\n/**\n * Initialize a new `Request` with the given `method` and `url`.\n *\n * @param {String} method\n * @param {String} url\n * @api public\n */\n\nfunction Request(method, url) {\n var self = this;\n this._query = this._query || [];\n this.method = method;\n this.url = url;\n this.header = {}; // preserves header name case\n this._header = {}; // coerces header names to lowercase\n this.on('end', function(){\n var err = null;\n var res = null;\n\n try {\n res = new Response(self);\n } catch(e) {\n err = new Error('Parser is unable to parse the response');\n err.parse = true;\n err.original = e;\n // issue #675: return the raw response if the response parsing fails\n if (self.xhr) {\n // ie9 doesn't have 'response' property\n err.rawResponse = typeof self.xhr.responseType == 'undefined' ? self.xhr.responseText : self.xhr.response;\n // issue #876: return the http status code if the response parsing fails\n err.status = self.xhr.status ? self.xhr.status : null;\n err.statusCode = err.status; // backwards-compat only\n } else {\n err.rawResponse = null;\n err.status = null;\n }\n\n return self.callback(err);\n }\n\n self.emit('response', res);\n\n var new_err;\n try {\n if (!self._isResponseOK(res)) {\n new_err = new Error(res.statusText || 'Unsuccessful HTTP response');\n }\n } catch(custom_err) {\n new_err = custom_err; // ok() callback can throw\n }\n\n // #1000 don't catch errors from the callback to avoid double calling it\n if (new_err) {\n new_err.original = err;\n new_err.response = res;\n new_err.status = res.status;\n self.callback(new_err, res);\n } else {\n self.callback(null, res);\n }\n });\n}\n\n/**\n * Mixin `Emitter` and `RequestBase`.\n */\n\nEmitter(Request.prototype);\nRequestBase(Request.prototype);\n\n/**\n * Set Content-Type to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.xml = 'application/xml';\n *\n * request.post('/')\n * .type('xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * request.post('/')\n * .type('application/xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * @param {String} type\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.type = function(type){\n this.set('Content-Type', request.types[type] || type);\n return this;\n};\n\n/**\n * Set Accept to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.json = 'application/json';\n *\n * request.get('/agent')\n * .accept('json')\n * .end(callback);\n *\n * request.get('/agent')\n * .accept('application/json')\n * .end(callback);\n *\n * @param {String} accept\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.accept = function(type){\n this.set('Accept', request.types[type] || type);\n return this;\n};\n\n/**\n * Set Authorization field value with `user` and `pass`.\n *\n * @param {String} user\n * @param {String} [pass] optional in case of using 'bearer' as type\n * @param {Object} options with 'type' property 'auto', 'basic' or 'bearer' (default 'basic')\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.auth = function(user, pass, options){\n if (1 === arguments.length) pass = '';\n if (typeof pass === 'object' && pass !== null) { // pass is optional and can be replaced with options\n options = pass;\n pass = '';\n }\n if (!options) {\n options = {\n type: 'function' === typeof btoa ? 'basic' : 'auto',\n };\n }\n\n var encoder = function(string) {\n if ('function' === typeof btoa) {\n return btoa(string);\n }\n throw new Error('Cannot use basic auth, btoa is not a function');\n };\n\n return this._auth(user, pass, options, encoder);\n};\n\n/**\n * Add query-string `val`.\n *\n * Examples:\n *\n * request.get('/shoes')\n * .query('size=10')\n * .query({ color: 'blue' })\n *\n * @param {Object|String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.query = function(val){\n if ('string' != typeof val) val = serialize(val);\n if (val) this._query.push(val);\n return this;\n};\n\n/**\n * Queue the given `file` as an attachment to the specified `field`,\n * with optional `options` (or filename).\n *\n * ``` js\n * request.post('/upload')\n * .attach('content', new Blob(['hey!'], { type: \"text/html\"}))\n * .end(callback);\n * ```\n *\n * @param {String} field\n * @param {Blob|File} file\n * @param {String|Object} options\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.attach = function(field, file, options){\n if (file) {\n if (this._data) {\n throw Error(\"superagent can't mix .send() and .attach()\");\n }\n\n this._getFormData().append(field, file, options || file.name);\n }\n return this;\n};\n\nRequest.prototype._getFormData = function(){\n if (!this._formData) {\n this._formData = new root.FormData();\n }\n return this._formData;\n};\n\n/**\n * Invoke the callback with `err` and `res`\n * and handle arity check.\n *\n * @param {Error} err\n * @param {Response} res\n * @api private\n */\n\nRequest.prototype.callback = function(err, res){\n if (this._shouldRetry(err, res)) {\n return this._retry();\n }\n\n var fn = this._callback;\n this.clearTimeout();\n\n if (err) {\n if (this._maxRetries) err.retries = this._retries - 1;\n this.emit('error', err);\n }\n\n fn(err, res);\n};\n\n/**\n * Invoke callback with x-domain error.\n *\n * @api private\n */\n\nRequest.prototype.crossDomainError = function(){\n var err = new Error('Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.');\n err.crossDomain = true;\n\n err.status = this.status;\n err.method = this.method;\n err.url = this.url;\n\n this.callback(err);\n};\n\n// This only warns, because the request is still likely to work\nRequest.prototype.buffer = Request.prototype.ca = Request.prototype.agent = function(){\n console.warn(\"This is not supported in browser version of superagent\");\n return this;\n};\n\n// This throws, because it can't send/receive data as expected\nRequest.prototype.pipe = Request.prototype.write = function(){\n throw Error(\"Streaming is not supported in browser version of superagent\");\n};\n\n/**\n * Check if `obj` is a host object,\n * we don't want to serialize these :)\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\nRequest.prototype._isHost = function _isHost(obj) {\n // Native objects stringify to [object File], [object Blob], [object FormData], etc.\n return obj && 'object' === typeof obj && !Array.isArray(obj) && Object.prototype.toString.call(obj) !== '[object Object]';\n}\n\n/**\n * Initiate request, invoking callback `fn(res)`\n * with an instanceof `Response`.\n *\n * @param {Function} fn\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.end = function(fn){\n if (this._endCalled) {\n console.warn(\"Warning: .end() was called twice. This is not supported in superagent\");\n }\n this._endCalled = true;\n\n // store callback\n this._callback = fn || noop;\n\n // querystring\n this._finalizeQueryString();\n\n return this._end();\n};\n\nRequest.prototype._end = function() {\n var self = this;\n var xhr = (this.xhr = request.getXHR());\n var data = this._formData || this._data;\n\n this._setTimeouts();\n\n // state change\n xhr.onreadystatechange = function(){\n var readyState = xhr.readyState;\n if (readyState >= 2 && self._responseTimeoutTimer) {\n clearTimeout(self._responseTimeoutTimer);\n }\n if (4 != readyState) {\n return;\n }\n\n // In IE9, reads to any property (e.g. status) off of an aborted XHR will\n // result in the error \"Could not complete the operation due to error c00c023f\"\n var status;\n try { status = xhr.status } catch(e) { status = 0; }\n\n if (!status) {\n if (self.timedout || self._aborted) return;\n return self.crossDomainError();\n }\n self.emit('end');\n };\n\n // progress\n var handleProgress = function(direction, e) {\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n }\n e.direction = direction;\n self.emit('progress', e);\n };\n if (this.hasListeners('progress')) {\n try {\n xhr.onprogress = handleProgress.bind(null, 'download');\n if (xhr.upload) {\n xhr.upload.onprogress = handleProgress.bind(null, 'upload');\n }\n } catch(e) {\n // Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.\n // Reported here:\n // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context\n }\n }\n\n // initiate request\n try {\n if (this.username && this.password) {\n xhr.open(this.method, this.url, true, this.username, this.password);\n } else {\n xhr.open(this.method, this.url, true);\n }\n } catch (err) {\n // see #1149\n return this.callback(err);\n }\n\n // CORS\n if (this._withCredentials) xhr.withCredentials = true;\n\n // body\n if (!this._formData && 'GET' != this.method && 'HEAD' != this.method && 'string' != typeof data && !this._isHost(data)) {\n // serialize stuff\n var contentType = this._header['content-type'];\n var serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : ''];\n if (!serialize && isJSON(contentType)) {\n serialize = request.serialize['application/json'];\n }\n if (serialize) data = serialize(data);\n }\n\n // set header fields\n for (var field in this.header) {\n if (null == this.header[field]) continue;\n\n if (this.header.hasOwnProperty(field))\n xhr.setRequestHeader(field, this.header[field]);\n }\n\n if (this._responseType) {\n xhr.responseType = this._responseType;\n }\n\n // send stuff\n this.emit('request', this);\n\n // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing)\n // We need null here if data is undefined\n xhr.send(typeof data !== 'undefined' ? data : null);\n return this;\n};\n\nrequest.agent = function() {\n return new Agent();\n};\n\n[\"GET\", \"POST\", \"OPTIONS\", \"PATCH\", \"PUT\", \"DELETE\"].forEach(function(method) {\n Agent.prototype[method.toLowerCase()] = function(url, fn) {\n var req = new request.Request(method, url);\n this._setDefaults(req);\n if (fn) {\n req.end(fn);\n }\n return req;\n };\n});\n\nAgent.prototype.del = Agent.prototype['delete'];\n\n/**\n * GET `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.get = function(url, data, fn) {\n var req = request('GET', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * HEAD `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.head = function(url, data, fn) {\n var req = request('HEAD', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * OPTIONS query to `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.options = function(url, data, fn) {\n var req = request('OPTIONS', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * DELETE `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nfunction del(url, data, fn) {\n var req = request('DELETE', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n}\n\nrequest['del'] = del;\nrequest['delete'] = del;\n\n/**\n * PATCH `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.patch = function(url, data, fn) {\n var req = request('PATCH', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * POST `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.post = function(url, data, fn) {\n var req = request('POST', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * PUT `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.put = function(url, data, fn) {\n var req = request('PUT', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvc3VwZXJhZ2VudC9saWIvY2xpZW50LmpzPzE4NmYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0NBQW9DO0FBQ3BDO0FBQ0EsQ0FBQyx3Q0FBd0M7QUFDekM7QUFDQSxDQUFDLE9BQU87QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxTQUFTLCtDQUErQyxFQUFFO0FBQzFELFNBQVMsZ0RBQWdELEVBQUU7QUFDM0QsU0FBUyxnREFBZ0QsRUFBRTtBQUMzRCxTQUFTLDRDQUE0QyxFQUFFO0FBQ3ZEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQSxpQkFBaUIsaUJBQWlCO0FBQ2xDLGlCQUFpQixzQ0FBc0M7O0FBRXZEO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxNQUFNO0FBQ2pCLFdBQVcsT0FBTztBQUNsQixXQUFXLE1BQU07QUFDakI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtB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QTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsU0FBUztBQUNwQixZQUFZLFFBQVE7QUFDcEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLHNCQUFzQixXQUFXLFlBQVk7O0FBRXREO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRGQUE0RjtBQUM1RjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsV0FBVyxlQUFlO0FBQzFCLFdBQVcsU0FBUztBQUNwQixZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsV0FBVyxlQUFlO0FBQzFCLFdBQVcsU0FBUztBQUNwQixZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsV0FBVyxlQUFlO0FBQzFCLFdBQVcsU0FBUztBQUNwQixZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsV0FBVyxNQUFNO0FBQ2pCLFdBQVcsU0FBUztBQUNwQixZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLE1BQU07QUFDakIsV0FBVyxTQUFTO0FBQ3BCLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLE1BQU07QUFDakIsV0FBVyxTQUFTO0FBQ3BCLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLGVBQWU7QUFDMUIsV0FBVyxTQUFTO0FBQ3BCLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjE5MS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUm9vdCByZWZlcmVuY2UgZm9yIGlmcmFtZXMuXG4gKi9cblxudmFyIHJvb3Q7XG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHsgLy8gQnJvd3NlciB3aW5kb3dcbiAgcm9vdCA9IHdpbmRvdztcbn0gZWxzZSBpZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnKSB7IC8vIFdlYiBXb3JrZXJcbiAgcm9vdCA9IHNlbGY7XG59IGVsc2UgeyAvLyBPdGhlciBlbnZpcm9ubWVudHNcbiAgY29uc29sZS53YXJuKFwiVXNpbmcgYnJvd3Nlci1vbmx5IHZlcnNpb24gb2Ygc3VwZXJhZ2VudCBpbiBub24tYnJvd3NlciBlbnZpcm9ubWVudFwiKTtcbiAgcm9vdCA9IHRoaXM7XG59XG5cbnZhciBFbWl0dGVyID0gcmVxdWlyZSgnY29tcG9uZW50LWVtaXR0ZXInKTtcbnZhciBSZXF1ZXN0QmFzZSA9IHJlcXVpcmUoJy4vcmVxdWVzdC1iYXNlJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzLW9iamVjdCcpO1xudmFyIFJlc3BvbnNlQmFzZSA9IHJlcXVpcmUoJy4vcmVzcG9uc2UtYmFzZScpO1xudmFyIEFnZW50ID0gcmVxdWlyZSgnLi9hZ2VudC1iYXNlJyk7XG5cbi8qKlxuICogTm9vcC5cbiAqL1xuXG5mdW5jdGlvbiBub29wKCl7fTtcblxuLyoqXG4gKiBFeHBvc2UgYHJlcXVlc3RgLlxuICovXG5cbnZhciByZXF1ZXN0ID0gZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24obWV0aG9kLCB1cmwpIHtcbiAgLy8gY2FsbGJhY2tcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIHVybCkge1xuICAgIHJldHVybiBuZXcgZXhwb3J0cy5SZXF1ZXN0KCdHRVQnLCBtZXRob2QpLmVuZCh1cmwpO1xuICB9XG5cbiAgLy8gdXJsIGZpcnN0XG4gIGlmICgxID09IGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICByZXR1cm4gbmV3IGV4cG9ydHMuUmVxdWVzdCgnR0VUJywgbWV0aG9kKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgZXhwb3J0cy5SZXF1ZXN0KG1ldGhvZCwgdXJsKTtcbn1cblxuZXhwb3J0cy5SZXF1ZXN0ID0gUmVxdWVzdDtcblxuLyoqXG4gKiBEZXRlcm1pbmUgWEhSLlxuICovXG5cbnJlcXVlc3QuZ2V0WEhSID0gZnVuY3Rpb24gKCkge1xuICBpZiAocm9vdC5YTUxIdHRwUmVxdWVzdFxuICAgICAgJiYgKCFyb290LmxvY2F0aW9uIHx8ICdmaWxlOicgIT0gcm9vdC5sb2NhdGlvbi5wcm90b2NvbFxuICAgICAgICAgIHx8ICFyb290LkFjdGl2ZVhPYmplY3QpKSB7XG4gICAgcmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdDtcbiAgfSBlbHNlIHtcbiAgICB0cnkgeyByZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01pY3Jvc29mdC5YTUxIVFRQJyk7IH0gY2F0Y2goZSkge31cbiAgICB0cnkgeyByZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01zeG1sMi5YTUxIVFRQLjYuMCcpOyB9IGNhdGNoKGUpIHt9XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBBY3RpdmVYT2JqZWN0KCdNc3htbDIuWE1MSFRUUC4zLjAnKTsgfSBjYXRjaChlKSB7fVxuICAgIHRyeSB7IHJldHVybiBuZXcgQWN0aXZlWE9iamVjdCgnTXN4bWwyLlhNTEhUVFAnKTsgfSBjYXRjaChlKSB7fVxuICB9XG4gIHRocm93IEVycm9yKFwiQnJvd3Nlci1vbmx5IHZlcnNpb24gb2Ygc3VwZXJhZ2VudCBjb3VsZCBub3QgZmluZCBYSFJcIik7XG59O1xuXG4vKipcbiAqIFJlbW92ZXMgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSwgYWRkZWQgdG8gc3VwcG9ydCBJRS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc1xuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxudmFyIHRyaW0gPSAnJy50cmltXG4gID8gZnVuY3Rpb24ocykgeyByZXR1cm4gcy50cmltKCk7IH1cbiAgOiBmdW5jdGlvbihzKSB7IHJldHVybiBzLnJlcGxhY2UoLyheXFxzKnxcXHMqJCkvZywgJycpOyB9O1xuXG4vKipcbiAqIFNlcmlhbGl6ZSB0aGUgZ2l2ZW4gYG9iamAuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gc2VyaWFsaXplKG9iaikge1xuICBpZiAoIWlzT2JqZWN0KG9iaikpIHJldHVybiBvYmo7XG4gIHZhciBwYWlycyA9IFtdO1xuICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgcHVzaEVuY29kZWRLZXlWYWx1ZVBhaXIocGFpcnMsIGtleSwgb2JqW2tleV0pO1xuICB9XG4gIHJldHVybiBwYWlycy5qb2luKCcmJyk7XG59XG5cbi8qKlxuICogSGVscHMgJ3NlcmlhbGl6ZScgd2l0aCBzZXJpYWxpemluZyBhcnJheXMuXG4gKiBNdXRhdGVzIHRoZSBwYWlycyBhcnJheS5cbiAqXG4gKiBAcGFyYW0ge0FycmF5fSBwYWlyc1xuICogQHBhcmFtIHtTdHJpbmd9IGtleVxuICogQHBhcmFtIHtNaXhlZH0gdmFsXG4gKi9cblxuZnVuY3Rpb24gcHVzaEVuY29kZWRLZXlWYWx1ZVBhaXIocGFpcnMsIGtleSwgdmFsKSB7XG4gIGlmICh2YWwgIT0gbnVsbCkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgIHZhbC5mb3JFYWNoKGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgcHVzaEVuY29kZWRLZXlWYWx1ZVBhaXIocGFpcnMsIGtleSwgdik7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KHZhbCkpIHtcbiAgICAgIGZvcih2YXIgc3Via2V5IGluIHZhbCkge1xuICAgICAgICBwdXNoRW5jb2RlZEtleVZhbHVlUGFpcihwYWlycywga2V5ICsgJ1snICsgc3Via2V5ICsgJ10nLCB2YWxbc3Via2V5XSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhaXJzLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGtleSlcbiAgICAgICAgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQodmFsKSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHZhbCA9PT0gbnVsbCkge1xuICAgIHBhaXJzLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGtleSkpO1xuICB9XG59XG5cbi8qKlxuICogRXhwb3NlIHNlcmlhbGl6YXRpb24gbWV0aG9kLlxuICovXG5cbnJlcXVlc3Quc2VyaWFsaXplT2JqZWN0ID0gc2VyaWFsaXplO1xuXG4vKipcbiAgKiBQYXJzZSB0aGUgZ2l2ZW4geC13d3ctZm9ybS11cmxlbmNvZGVkIGBzdHJgLlxuICAqXG4gICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICAqIEByZXR1cm4ge09iamVjdH1cbiAgKiBAYXBpIHByaXZhdGVcbiAgKi9cblxuZnVuY3Rpb24gcGFyc2VTdHJpbmcoc3RyKSB7XG4gIHZhciBvYmogPSB7fTtcbiAgdmFyIHBhaXJzID0gc3RyLnNwbGl0KCcmJyk7XG4gIHZhciBwYWlyO1xuICB2YXIgcG9zO1xuXG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBwYWlycy5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICAgIHBhaXIgPSBwYWlyc1tpXTtcbiAgICBwb3MgPSBwYWlyLmluZGV4T2YoJz0nKTtcbiAgICBpZiAocG9zID09IC0xKSB7XG4gICAgICBvYmpbZGVjb2RlVVJJQ29tcG9uZW50KHBhaXIpXSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvYmpbZGVjb2RlVVJJQ29tcG9uZW50KHBhaXIuc2xpY2UoMCwgcG9zKSldID1cbiAgICAgICAgZGVjb2RlVVJJQ29tcG9uZW50KHBhaXIuc2xpY2UocG9zICsgMSkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG5cbi8qKlxuICogRXhwb3NlIHBhcnNlci5cbiAqL1xuXG5yZXF1ZXN0LnBhcnNlU3RyaW5nID0gcGFyc2VTdHJpbmc7XG5cbi8qKlxuICogRGVmYXVsdCBNSU1FIHR5cGUgbWFwLlxuICpcbiAqICAgICBzdXBlcmFnZW50LnR5cGVzLnhtbCA9ICdhcHBsaWNhdGlvbi94bWwnO1xuICpcbiAqL1xuXG5yZXF1ZXN0LnR5cGVzID0ge1xuICBodG1sOiAndGV4dC9odG1sJyxcbiAganNvbjogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICB4bWw6ICd0ZXh0L3htbCcsXG4gIHVybGVuY29kZWQ6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAnZm9ybSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAnZm9ybS1kYXRhJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcbn07XG5cbi8qKlxuICogRGVmYXVsdCBzZXJpYWxpemF0aW9uIG1hcC5cbiAqXG4gKiAgICAgc3VwZXJhZ2VudC5zZXJpYWxpemVbJ2FwcGxpY2F0aW9uL3htbCddID0gZnVuY3Rpb24ob2JqKXtcbiAqICAgICAgIHJldHVybiAnZ2VuZXJhdGVkIHhtbCBoZXJlJztcbiAqICAgICB9O1xuICpcbiAqL1xuXG5yZXF1ZXN0LnNlcmlhbGl6ZSA9IHtcbiAgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCc6IHNlcmlhbGl6ZSxcbiAgJ2FwcGxpY2F0aW9uL2pzb24nOiBKU09OLnN0cmluZ2lmeSxcbn07XG5cbi8qKlxuICAqIERlZmF1bHQgcGFyc2Vycy5cbiAgKlxuICAqICAgICBzdXBlcmFnZW50LnBhcnNlWydhcHBsaWNhdGlvbi94bWwnXSA9IGZ1bmN0aW9uKHN0cil7XG4gICogICAgICAgcmV0dXJuIHsgb2JqZWN0IHBhcnNlZCBmcm9tIHN0ciB9O1xuICAqICAgICB9O1xuICAqXG4gICovXG5cbnJlcXVlc3QucGFyc2UgPSB7XG4gICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnOiBwYXJzZVN0cmluZyxcbiAgJ2FwcGxpY2F0aW9uL2pzb24nOiBKU09OLnBhcnNlLFxufTtcblxuLyoqXG4gKiBQYXJzZSB0aGUgZ2l2ZW4gaGVhZGVyIGBzdHJgIGludG9cbiAqIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBtYXBwZWQgZmllbGRzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHBhcnNlSGVhZGVyKHN0cikge1xuICB2YXIgbGluZXMgPSBzdHIuc3BsaXQoL1xccj9cXG4vKTtcbiAgdmFyIGZpZWxkcyA9IHt9O1xuICB2YXIgaW5kZXg7XG4gIHZhciBsaW5lO1xuICB2YXIgZmllbGQ7XG4gIHZhciB2YWw7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGxpbmVzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XG4gICAgbGluZSA9IGxpbmVzW2ldO1xuICAgIGluZGV4ID0gbGluZS5pbmRleE9mKCc6Jyk7XG4gICAgaWYgKGluZGV4ID09PSAtMSkgeyAvLyBjb3VsZCBiZSBlbXB0eSBsaW5lLCBqdXN0IHNraXAgaXRcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBmaWVsZCA9IGxpbmUuc2xpY2UoMCwgaW5kZXgpLnRvTG93ZXJDYXNlKCk7XG4gICAgdmFsID0gdHJpbShsaW5lLnNsaWNlKGluZGV4ICsgMSkpO1xuICAgIGZpZWxkc1tmaWVsZF0gPSB2YWw7XG4gIH1cblxuICByZXR1cm4gZmllbGRzO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGBtaW1lYCBpcyBqc29uIG9yIGhhcyAranNvbiBzdHJ1Y3R1cmVkIHN5bnRheCBzdWZmaXguXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG1pbWVcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBpc0pTT04obWltZSkge1xuICAvLyBzaG91bGQgbWF0Y2ggL2pzb24gb3IgK2pzb25cbiAgLy8gYnV0IG5vdCAvanNvbi1zZXFcbiAgcmV0dXJuIC9bXFwvK11qc29uKCR8W14tXFx3XSkvLnRlc3QobWltZSk7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBhIG5ldyBgUmVzcG9uc2VgIHdpdGggdGhlIGdpdmVuIGB4aHJgLlxuICpcbiAqICAtIHNldCBmbGFncyAoLm9rLCAuZXJyb3IsIGV0YylcbiAqICAtIHBhcnNlIGhlYWRlclxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICBBbGlhc2luZyBgc3VwZXJhZ2VudGAgYXMgYHJlcXVlc3RgIGlzIG5pY2U6XG4gKlxuICogICAgICByZXF1ZXN0ID0gc3VwZXJhZ2VudDtcbiAqXG4gKiAgV2UgY2FuIHVzZSB0aGUgcHJvbWlzZS1saWtlIEFQSSwgb3IgcGFzcyBjYWxsYmFja3M6XG4gKlxuICogICAgICByZXF1ZXN0LmdldCgnLycpLmVuZChmdW5jdGlvbihyZXMpe30pO1xuICogICAgICByZXF1ZXN0LmdldCgnLycsIGZ1bmN0aW9uKHJlcyl7fSk7XG4gKlxuICogIFNlbmRpbmcgZGF0YSBjYW4gYmUgY2hhaW5lZDpcbiAqXG4gKiAgICAgIHJlcXVlc3RcbiAqICAgICAgICAucG9zdCgnL3VzZXInKVxuICogICAgICAgIC5zZW5kKHsgbmFtZTogJ3RqJyB9KVxuICogICAgICAgIC5lbmQoZnVuY3Rpb24ocmVzKXt9KTtcbiAqXG4gKiAgT3IgcGFzc2VkIHRvIGAuc2VuZCgpYDpcbiAqXG4gKiAgICAgIHJlcXVlc3RcbiAqICAgICAgICAucG9zdCgnL3VzZXInKVxuICogICAgICAgIC5zZW5kKHsgbmFtZTogJ3RqJyB9LCBmdW5jdGlvbihyZXMpe30pO1xuICpcbiAqICBPciBwYXNzZWQgdG8gYC5wb3N0KClgOlxuICpcbiAqICAgICAgcmVxdWVzdFxuICogICAgICAgIC5wb3N0KCcvdXNlcicsIHsgbmFtZTogJ3RqJyB9KVxuICogICAgICAgIC5lbmQoZnVuY3Rpb24ocmVzKXt9KTtcbiAqXG4gKiBPciBmdXJ0aGVyIHJlZHVjZWQgdG8gYSBzaW5nbGUgY2FsbCBmb3Igc2ltcGxlIGNhc2VzOlxuICpcbiAqICAgICAgcmVxdWVzdFxuICogICAgICAgIC5wb3N0KCcvdXNlcicsIHsgbmFtZTogJ3RqJyB9LCBmdW5jdGlvbihyZXMpe30pO1xuICpcbiAqIEBwYXJhbSB7WE1MSFRUUFJlcXVlc3R9IHhoclxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIFJlc3BvbnNlKHJlcSkge1xuICB0aGlzLnJlcSA9IHJlcTtcbiAgdGhpcy54aHIgPSB0aGlzLnJlcS54aHI7XG4gIC8vIHJlc3BvbnNlVGV4dCBpcyBhY2Nlc3NpYmxlIG9ubHkgaWYgcmVzcG9uc2VUeXBlIGlzICcnIG9yICd0ZXh0JyBhbmQgb24gb2xkZXIgYnJvd3NlcnNcbiAgdGhpcy50ZXh0ID0gKCh0aGlzLnJlcS5tZXRob2QgIT0nSEVBRCcgJiYgKHRoaXMueGhyLnJlc3BvbnNlVHlwZSA9PT0gJycgfHwgdGhpcy54aHIucmVzcG9uc2VUeXBlID09PSAndGV4dCcpKSB8fCB0eXBlb2YgdGhpcy54aHIucmVzcG9uc2VUeXBlID09PSAndW5kZWZpbmVkJylcbiAgICAgPyB0aGlzLnhoci5yZXNwb25zZVRleHRcbiAgICAgOiBudWxsO1xuICB0aGlzLnN0YXR1c1RleHQgPSB0aGlzLnJlcS54aHIuc3RhdHVzVGV4dDtcbiAgdmFyIHN0YXR1cyA9IHRoaXMueGhyLnN0YXR1cztcbiAgLy8gaGFuZGxlIElFOSBidWc6IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTAwNDY5NzIvbXNpZS1yZXR1cm5zLXN0YXR1cy1jb2RlLW9mLTEyMjMtZm9yLWFqYXgtcmVxdWVzdFxuICBpZiAoc3RhdHVzID09PSAxMjIzKSB7XG4gICAgc3RhdHVzID0gMjA0O1xuICB9XG4gIHRoaXMuX3NldFN0YXR1c1Byb3BlcnRpZXMoc3RhdHVzKTtcbiAgdGhpcy5oZWFkZXIgPSB0aGlzLmhlYWRlcnMgPSBwYXJzZUhlYWRlcih0aGlzLnhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSk7XG4gIC8vIGdldEFsbFJlc3BvbnNlSGVhZGVycyBzb21ldGltZXMgZmFsc2VseSByZXR1cm5zIFwiXCIgZm9yIENPUlMgcmVxdWVzdHMsIGJ1dFxuICAvLyBnZXRSZXNwb25zZUhlYWRlciBzdGlsbCB3b3Jrcy4gc28gd2UgZ2V0IGNvbnRlbnQtdHlwZSBldmVuIGlmIGdldHRpbmdcbiAgLy8gb3RoZXIgaGVhZGVycyBmYWlscy5cbiAgdGhpcy5oZWFkZXJbJ2NvbnRlbnQtdHlwZSddID0gdGhpcy54aHIuZ2V0UmVzcG9uc2VIZWFkZXIoJ2NvbnRlbnQtdHlwZScpO1xuICB0aGlzLl9zZXRIZWFkZXJQcm9wZXJ0aWVzKHRoaXMuaGVhZGVyKTtcblxuICBpZiAobnVsbCA9PT0gdGhpcy50ZXh0ICYmIHJlcS5fcmVzcG9uc2VUeXBlKSB7XG4gICAgdGhpcy5ib2R5ID0gdGhpcy54aHIucmVzcG9uc2U7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5ib2R5ID0gdGhpcy5yZXEubWV0aG9kICE9ICdIRUFEJ1xuICAgICAgPyB0aGlzLl9wYXJzZUJvZHkodGhpcy50ZXh0ID8gdGhpcy50ZXh0IDogdGhpcy54aHIucmVzcG9uc2UpXG4gICAgICA6IG51bGw7XG4gIH1cbn1cblxuUmVzcG9uc2VCYXNlKFJlc3BvbnNlLnByb3RvdHlwZSk7XG5cbi8qKlxuICogUGFyc2UgdGhlIGdpdmVuIGJvZHkgYHN0cmAuXG4gKlxuICogVXNlZCBmb3IgYXV0by1wYXJzaW5nIG9mIGJvZGllcy4gUGFyc2Vyc1xuICogYXJlIGRlZmluZWQgb24gdGhlIGBzdXBlcmFnZW50LnBhcnNlYCBvYmplY3QuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7TWl4ZWR9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXNwb25zZS5wcm90b3R5cGUuX3BhcnNlQm9keSA9IGZ1bmN0aW9uKHN0cikge1xuICB2YXIgcGFyc2UgPSByZXF1ZXN0LnBhcnNlW3RoaXMudHlwZV07XG4gIGlmICh0aGlzLnJlcS5fcGFyc2VyKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxLl9wYXJzZXIodGhpcywgc3RyKTtcbiAgfVxuICBpZiAoIXBhcnNlICYmIGlzSlNPTih0aGlzLnR5cGUpKSB7XG4gICAgcGFyc2UgPSByZXF1ZXN0LnBhcnNlWydhcHBsaWNhdGlvbi9qc29uJ107XG4gIH1cbiAgcmV0dXJuIHBhcnNlICYmIHN0ciAmJiAoc3RyLmxlbmd0aCB8fCBzdHIgaW5zdGFuY2VvZiBPYmplY3QpXG4gICAgPyBwYXJzZShzdHIpXG4gICAgOiBudWxsO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gYW4gYEVycm9yYCByZXByZXNlbnRhdGl2ZSBvZiB0aGlzIHJlc3BvbnNlLlxuICpcbiAqIEByZXR1cm4ge0Vycm9yfVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXNwb25zZS5wcm90b3R5cGUudG9FcnJvciA9IGZ1bmN0aW9uKCl7XG4gIHZhciByZXEgPSB0aGlzLnJlcTtcbiAgdmFyIG1ldGhvZCA9IHJlcS5tZXRob2Q7XG4gIHZhciB1cmwgPSByZXEudXJsO1xuXG4gIHZhciBtc2cgPSAnY2Fubm90ICcgKyBtZXRob2QgKyAnICcgKyB1cmwgKyAnICgnICsgdGhpcy5zdGF0dXMgKyAnKSc7XG4gIHZhciBlcnIgPSBuZXcgRXJyb3IobXNnKTtcbiAgZXJyLnN0YXR1cyA9IHRoaXMuc3RhdHVzO1xuICBlcnIubWV0aG9kID0gbWV0aG9kO1xuICBlcnIudXJsID0gdXJsO1xuXG4gIHJldHVybiBlcnI7XG59O1xuXG4vKipcbiAqIEV4cG9zZSBgUmVzcG9uc2VgLlxuICovXG5cbnJlcXVlc3QuUmVzcG9uc2UgPSBSZXNwb25zZTtcblxuLyoqXG4gKiBJbml0aWFsaXplIGEgbmV3IGBSZXF1ZXN0YCB3aXRoIHRoZSBnaXZlbiBgbWV0aG9kYCBhbmQgYHVybGAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG1ldGhvZFxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBSZXF1ZXN0KG1ldGhvZCwgdXJsKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdGhpcy5fcXVlcnkgPSB0aGlzLl9xdWVyeSB8fCBbXTtcbiAgdGhpcy5tZXRob2QgPSBtZXRob2Q7XG4gIHRoaXMudXJsID0gdXJsO1xuICB0aGlzLmhlYWRlciA9IHt9OyAvLyBwcmVzZXJ2ZXMgaGVhZGVyIG5hbWUgY2FzZVxuICB0aGlzLl9oZWFkZXIgPSB7fTsgLy8gY29lcmNlcyBoZWFkZXIgbmFtZXMgdG8gbG93ZXJjYXNlXG4gIHRoaXMub24oJ2VuZCcsIGZ1bmN0aW9uKCl7XG4gICAgdmFyIGVyciA9IG51bGw7XG4gICAgdmFyIHJlcyA9IG51bGw7XG5cbiAgICB0cnkge1xuICAgICAgcmVzID0gbmV3IFJlc3BvbnNlKHNlbGYpO1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgZXJyID0gbmV3IEVycm9yKCdQYXJzZXIgaXMgdW5hYmxlIHRvIHBhcnNlIHRoZSByZXNwb25zZScpO1xuICAgICAgZXJyLnBhcnNlID0gdHJ1ZTtcbiAgICAgIGVyci5vcmlnaW5hbCA9IGU7XG4gICAgICAvLyBpc3N1ZSAjNjc1OiByZXR1cm4gdGhlIHJhdyByZXNwb25zZSBpZiB0aGUgcmVzcG9uc2UgcGFyc2luZyBmYWlsc1xuICAgICAgaWYgKHNlbGYueGhyKSB7XG4gICAgICAgIC8vIGllOSBkb2Vzbid0IGhhdmUgJ3Jlc3BvbnNlJyBwcm9wZXJ0eVxuICAgICAgICBlcnIucmF3UmVzcG9uc2UgPSB0eXBlb2Ygc2VsZi54aHIucmVzcG9uc2VUeXBlID09ICd1bmRlZmluZWQnID8gc2VsZi54aHIucmVzcG9uc2VUZXh0IDogc2VsZi54aHIucmVzcG9uc2U7XG4gICAgICAgIC8vIGlzc3VlICM4NzY6IHJldHVybiB0aGUgaHR0cCBzdGF0dXMgY29kZSBpZiB0aGUgcmVzcG9uc2UgcGFyc2luZyBmYWlsc1xuICAgICAgICBlcnIuc3RhdHVzID0gc2VsZi54aHIuc3RhdHVzID8gc2VsZi54aHIuc3RhdHVzIDogbnVsbDtcbiAgICAgICAgZXJyLnN0YXR1c0NvZGUgPSBlcnIuc3RhdHVzOyAvLyBiYWNrd2FyZHMtY29tcGF0IG9ubHlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVyci5yYXdSZXNwb25zZSA9IG51bGw7XG4gICAgICAgIGVyci5zdGF0dXMgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gc2VsZi5jYWxsYmFjayhlcnIpO1xuICAgIH1cblxuICAgIHNlbGYuZW1pdCgncmVzcG9uc2UnLCByZXMpO1xuXG4gICAgdmFyIG5ld19lcnI7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghc2VsZi5faXNSZXNwb25zZU9LKHJlcykpIHtcbiAgICAgICAgbmV3X2VyciA9IG5ldyBFcnJvcihyZXMuc3RhdHVzVGV4dCB8fCAnVW5zdWNjZXNzZnVsIEhUVFAgcmVzcG9uc2UnKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoKGN1c3RvbV9lcnIpIHtcbiAgICAgIG5ld19lcnIgPSBjdXN0b21fZXJyOyAvLyBvaygpIGNhbGxiYWNrIGNhbiB0aHJvd1xuICAgIH1cblxuICAgIC8vICMxMDAwIGRvbid0IGNhdGNoIGVycm9ycyBmcm9tIHRoZSBjYWxsYmFjayB0byBhdm9pZCBkb3VibGUgY2FsbGluZyBpdFxuICAgIGlmIChuZXdfZXJyKSB7XG4gICAgICBuZXdfZXJyLm9yaWdpbmFsID0gZXJyO1xuICAgICAgbmV3X2Vyci5yZXNwb25zZSA9IHJlcztcbiAgICAgIG5ld19lcnIuc3RhdHVzID0gcmVzLnN0YXR1cztcbiAgICAgIHNlbGYuY2FsbGJhY2sobmV3X2VyciwgcmVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VsZi5jYWxsYmFjayhudWxsLCByZXMpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogTWl4aW4gYEVtaXR0ZXJgIGFuZCBgUmVxdWVzdEJhc2VgLlxuICovXG5cbkVtaXR0ZXIoUmVxdWVzdC5wcm90b3R5cGUpO1xuUmVxdWVzdEJhc2UoUmVxdWVzdC5wcm90b3R5cGUpO1xuXG4vKipcbiAqIFNldCBDb250ZW50LVR5cGUgdG8gYHR5cGVgLCBtYXBwaW5nIHZhbHVlcyBmcm9tIGByZXF1ZXN0LnR5cGVzYC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgIHN1cGVyYWdlbnQudHlwZXMueG1sID0gJ2FwcGxpY2F0aW9uL3htbCc7XG4gKlxuICogICAgICByZXF1ZXN0LnBvc3QoJy8nKVxuICogICAgICAgIC50eXBlKCd4bWwnKVxuICogICAgICAgIC5zZW5kKHhtbHN0cmluZylcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiAgICAgIHJlcXVlc3QucG9zdCgnLycpXG4gKiAgICAgICAgLnR5cGUoJ2FwcGxpY2F0aW9uL3htbCcpXG4gKiAgICAgICAgLnNlbmQoeG1sc3RyaW5nKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUudHlwZSA9IGZ1bmN0aW9uKHR5cGUpe1xuICB0aGlzLnNldCgnQ29udGVudC1UeXBlJywgcmVxdWVzdC50eXBlc1t0eXBlXSB8fCB0eXBlKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCBBY2NlcHQgdG8gYHR5cGVgLCBtYXBwaW5nIHZhbHVlcyBmcm9tIGByZXF1ZXN0LnR5cGVzYC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgIHN1cGVyYWdlbnQudHlwZXMuanNvbiA9ICdhcHBsaWNhdGlvbi9qc29uJztcbiAqXG4gKiAgICAgIHJlcXVlc3QuZ2V0KCcvYWdlbnQnKVxuICogICAgICAgIC5hY2NlcHQoJ2pzb24nKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqICAgICAgcmVxdWVzdC5nZXQoJy9hZ2VudCcpXG4gKiAgICAgICAgLmFjY2VwdCgnYXBwbGljYXRpb24vanNvbicpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGFjY2VwdFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmFjY2VwdCA9IGZ1bmN0aW9uKHR5cGUpe1xuICB0aGlzLnNldCgnQWNjZXB0JywgcmVxdWVzdC50eXBlc1t0eXBlXSB8fCB0eXBlKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCBBdXRob3JpemF0aW9uIGZpZWxkIHZhbHVlIHdpdGggYHVzZXJgIGFuZCBgcGFzc2AuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVzZXJcbiAqIEBwYXJhbSB7U3RyaW5nfSBbcGFzc10gb3B0aW9uYWwgaW4gY2FzZSBvZiB1c2luZyAnYmVhcmVyJyBhcyB0eXBlXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyB3aXRoICd0eXBlJyBwcm9wZXJ0eSAnYXV0bycsICdiYXNpYycgb3IgJ2JlYXJlcicgKGRlZmF1bHQgJ2Jhc2ljJylcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5hdXRoID0gZnVuY3Rpb24odXNlciwgcGFzcywgb3B0aW9ucyl7XG4gIGlmICgxID09PSBhcmd1bWVudHMubGVuZ3RoKSBwYXNzID0gJyc7XG4gIGlmICh0eXBlb2YgcGFzcyA9PT0gJ29iamVjdCcgJiYgcGFzcyAhPT0gbnVsbCkgeyAvLyBwYXNzIGlzIG9wdGlvbmFsIGFuZCBjYW4gYmUgcmVwbGFjZWQgd2l0aCBvcHRpb25zXG4gICAgb3B0aW9ucyA9IHBhc3M7XG4gICAgcGFzcyA9ICcnO1xuICB9XG4gIGlmICghb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICB0eXBlOiAnZnVuY3Rpb24nID09PSB0eXBlb2YgYnRvYSA/ICdiYXNpYycgOiAnYXV0bycsXG4gICAgfTtcbiAgfVxuXG4gIHZhciBlbmNvZGVyID0gZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgaWYgKCdmdW5jdGlvbicgPT09IHR5cGVvZiBidG9hKSB7XG4gICAgICByZXR1cm4gYnRvYShzdHJpbmcpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1c2UgYmFzaWMgYXV0aCwgYnRvYSBpcyBub3QgYSBmdW5jdGlvbicpO1xuICB9O1xuXG4gIHJldHVybiB0aGlzLl9hdXRoKHVzZXIsIHBhc3MsIG9wdGlvbnMsIGVuY29kZXIpO1xufTtcblxuLyoqXG4gKiBBZGQgcXVlcnktc3RyaW5nIGB2YWxgLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgcmVxdWVzdC5nZXQoJy9zaG9lcycpXG4gKiAgICAgLnF1ZXJ5KCdzaXplPTEwJylcbiAqICAgICAucXVlcnkoeyBjb2xvcjogJ2JsdWUnIH0pXG4gKlxuICogQHBhcmFtIHtPYmplY3R8U3RyaW5nfSB2YWxcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5xdWVyeSA9IGZ1bmN0aW9uKHZhbCl7XG4gIGlmICgnc3RyaW5nJyAhPSB0eXBlb2YgdmFsKSB2YWwgPSBzZXJpYWxpemUodmFsKTtcbiAgaWYgKHZhbCkgdGhpcy5fcXVlcnkucHVzaCh2YWwpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogUXVldWUgdGhlIGdpdmVuIGBmaWxlYCBhcyBhbiBhdHRhY2htZW50IHRvIHRoZSBzcGVjaWZpZWQgYGZpZWxkYCxcbiAqIHdpdGggb3B0aW9uYWwgYG9wdGlvbnNgIChvciBmaWxlbmFtZSkuXG4gKlxuICogYGBgIGpzXG4gKiByZXF1ZXN0LnBvc3QoJy91cGxvYWQnKVxuICogICAuYXR0YWNoKCdjb250ZW50JywgbmV3IEJsb2IoWyc8YSBpZD1cImFcIj48YiBpZD1cImJcIj5oZXkhPC9iPjwvYT4nXSwgeyB0eXBlOiBcInRleHQvaHRtbFwifSkpXG4gKiAgIC5lbmQoY2FsbGJhY2spO1xuICogYGBgXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGZpZWxkXG4gKiBAcGFyYW0ge0Jsb2J8RmlsZX0gZmlsZVxuICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSBvcHRpb25zXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuYXR0YWNoID0gZnVuY3Rpb24oZmllbGQsIGZpbGUsIG9wdGlvbnMpe1xuICBpZiAoZmlsZSkge1xuICAgIGlmICh0aGlzLl9kYXRhKSB7XG4gICAgICB0aHJvdyBFcnJvcihcInN1cGVyYWdlbnQgY2FuJ3QgbWl4IC5zZW5kKCkgYW5kIC5hdHRhY2goKVwiKTtcbiAgICB9XG5cbiAgICB0aGlzLl9nZXRGb3JtRGF0YSgpLmFwcGVuZChmaWVsZCwgZmlsZSwgb3B0aW9ucyB8fCBmaWxlLm5hbWUpO1xuICB9XG4gIHJldHVybiB0aGlzO1xufTtcblxuUmVxdWVzdC5wcm90b3R5cGUuX2dldEZvcm1EYXRhID0gZnVuY3Rpb24oKXtcbiAgaWYgKCF0aGlzLl9mb3JtRGF0YSkge1xuICAgIHRoaXMuX2Zvcm1EYXRhID0gbmV3IHJvb3QuRm9ybURhdGEoKTtcbiAgfVxuICByZXR1cm4gdGhpcy5fZm9ybURhdGE7XG59O1xuXG4vKipcbiAqIEludm9rZSB0aGUgY2FsbGJhY2sgd2l0aCBgZXJyYCBhbmQgYHJlc2BcbiAqIGFuZCBoYW5kbGUgYXJpdHkgY2hlY2suXG4gKlxuICogQHBhcmFtIHtFcnJvcn0gZXJyXG4gKiBAcGFyYW0ge1Jlc3BvbnNlfSByZXNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmNhbGxiYWNrID0gZnVuY3Rpb24oZXJyLCByZXMpe1xuICBpZiAodGhpcy5fc2hvdWxkUmV0cnkoZXJyLCByZXMpKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JldHJ5KCk7XG4gIH1cblxuICB2YXIgZm4gPSB0aGlzLl9jYWxsYmFjaztcbiAgdGhpcy5jbGVhclRpbWVvdXQoKTtcblxuICBpZiAoZXJyKSB7XG4gICAgaWYgKHRoaXMuX21heFJldHJpZXMpIGVyci5yZXRyaWVzID0gdGhpcy5fcmV0cmllcyAtIDE7XG4gICAgdGhpcy5lbWl0KCdlcnJvcicsIGVycik7XG4gIH1cblxuICBmbihlcnIsIHJlcyk7XG59O1xuXG4vKipcbiAqIEludm9rZSBjYWxsYmFjayB3aXRoIHgtZG9tYWluIGVycm9yLlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmNyb3NzRG9tYWluRXJyb3IgPSBmdW5jdGlvbigpe1xuICB2YXIgZXJyID0gbmV3IEVycm9yKCdSZXF1ZXN0IGhhcyBiZWVuIHRlcm1pbmF0ZWRcXG5Qb3NzaWJsZSBjYXVzZXM6IHRoZSBuZXR3b3JrIGlzIG9mZmxpbmUsIE9yaWdpbiBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4sIHRoZSBwYWdlIGlzIGJlaW5nIHVubG9hZGVkLCBldGMuJyk7XG4gIGVyci5jcm9zc0RvbWFpbiA9IHRydWU7XG5cbiAgZXJyLnN0YXR1cyA9IHRoaXMuc3RhdHVzO1xuICBlcnIubWV0aG9kID0gdGhpcy5tZXRob2Q7XG4gIGVyci51cmwgPSB0aGlzLnVybDtcblxuICB0aGlzLmNhbGxiYWNrKGVycik7XG59O1xuXG4vLyBUaGlzIG9ubHkgd2FybnMsIGJlY2F1c2UgdGhlIHJlcXVlc3QgaXMgc3RpbGwgbGlrZWx5IHRvIHdvcmtcblJlcXVlc3QucHJvdG90eXBlLmJ1ZmZlciA9IFJlcXVlc3QucHJvdG90eXBlLmNhID0gUmVxdWVzdC5wcm90b3R5cGUuYWdlbnQgPSBmdW5jdGlvbigpe1xuICBjb25zb2xlLndhcm4oXCJUaGlzIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciB2ZXJzaW9uIG9mIHN1cGVyYWdlbnRcIik7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLy8gVGhpcyB0aHJvd3MsIGJlY2F1c2UgaXQgY2FuJ3Qgc2VuZC9yZWNlaXZlIGRhdGEgYXMgZXhwZWN0ZWRcblJlcXVlc3QucHJvdG90eXBlLnBpcGUgPSBSZXF1ZXN0LnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKCl7XG4gIHRocm93IEVycm9yKFwiU3RyZWFtaW5nIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciB2ZXJzaW9uIG9mIHN1cGVyYWdlbnRcIik7XG59O1xuXG4vKipcbiAqIENoZWNrIGlmIGBvYmpgIGlzIGEgaG9zdCBvYmplY3QsXG4gKiB3ZSBkb24ndCB3YW50IHRvIHNlcmlhbGl6ZSB0aGVzZSA6KVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuUmVxdWVzdC5wcm90b3R5cGUuX2lzSG9zdCA9IGZ1bmN0aW9uIF9pc0hvc3Qob2JqKSB7XG4gIC8vIE5hdGl2ZSBvYmplY3RzIHN0cmluZ2lmeSB0byBbb2JqZWN0IEZpbGVdLCBbb2JqZWN0IEJsb2JdLCBbb2JqZWN0IEZvcm1EYXRhXSwgZXRjLlxuICByZXR1cm4gb2JqICYmICdvYmplY3QnID09PSB0eXBlb2Ygb2JqICYmICFBcnJheS5pc0FycmF5KG9iaikgJiYgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikgIT09ICdbb2JqZWN0IE9iamVjdF0nO1xufVxuXG4vKipcbiAqIEluaXRpYXRlIHJlcXVlc3QsIGludm9raW5nIGNhbGxiYWNrIGBmbihyZXMpYFxuICogd2l0aCBhbiBpbnN0YW5jZW9mIGBSZXNwb25zZWAuXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbihmbil7XG4gIGlmICh0aGlzLl9lbmRDYWxsZWQpIHtcbiAgICBjb25zb2xlLndhcm4oXCJXYXJuaW5nOiAuZW5kKCkgd2FzIGNhbGxlZCB0d2ljZS4gVGhpcyBpcyBub3Qgc3VwcG9ydGVkIGluIHN1cGVyYWdlbnRcIik7XG4gIH1cbiAgdGhpcy5fZW5kQ2FsbGVkID0gdHJ1ZTtcblxuICAvLyBzdG9yZSBjYWxsYmFja1xuICB0aGlzLl9jYWxsYmFjayA9IGZuIHx8IG5vb3A7XG5cbiAgLy8gcXVlcnlzdHJpbmdcbiAgdGhpcy5fZmluYWxpemVRdWVyeVN0cmluZygpO1xuXG4gIHJldHVybiB0aGlzLl9lbmQoKTtcbn07XG5cblJlcXVlc3QucHJvdG90eXBlLl9lbmQgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgeGhyID0gKHRoaXMueGhyID0gcmVxdWVzdC5nZXRYSFIoKSk7XG4gIHZhciBkYXRhID0gdGhpcy5fZm9ybURhdGEgfHwgdGhpcy5fZGF0YTtcblxuICB0aGlzLl9zZXRUaW1lb3V0cygpO1xuXG4gIC8vIHN0YXRlIGNoYW5nZVxuICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKXtcbiAgICB2YXIgcmVhZHlTdGF0ZSA9IHhoci5yZWFkeVN0YXRlO1xuICAgIGlmIChyZWFkeVN0YXRlID49IDIgJiYgc2VsZi5fcmVzcG9uc2VUaW1lb3V0VGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dChzZWxmLl9yZXNwb25zZVRpbWVvdXRUaW1lcik7XG4gICAgfVxuICAgIGlmICg0ICE9IHJlYWR5U3RhdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJbiBJRTksIHJlYWRzIHRvIGFueSBwcm9wZXJ0eSAoZS5nLiBzdGF0dXMpIG9mZiBvZiBhbiBhYm9ydGVkIFhIUiB3aWxsXG4gICAgLy8gcmVzdWx0IGluIHRoZSBlcnJvciBcIkNvdWxkIG5vdCBjb21wbGV0ZSB0aGUgb3BlcmF0aW9uIGR1ZSB0byBlcnJvciBjMDBjMDIzZlwiXG4gICAgdmFyIHN0YXR1cztcbiAgICB0cnkgeyBzdGF0dXMgPSB4aHIuc3RhdHVzIH0gY2F0Y2goZSkgeyBzdGF0dXMgPSAwOyB9XG5cbiAgICBpZiAoIXN0YXR1cykge1xuICAgICAgaWYgKHNlbGYudGltZWRvdXQgfHwgc2VsZi5fYWJvcnRlZCkgcmV0dXJuO1xuICAgICAgcmV0dXJuIHNlbGYuY3Jvc3NEb21haW5FcnJvcigpO1xuICAgIH1cbiAgICBzZWxmLmVtaXQoJ2VuZCcpO1xuICB9O1xuXG4gIC8vIHByb2dyZXNzXG4gIHZhciBoYW5kbGVQcm9ncmVzcyA9IGZ1bmN0aW9uKGRpcmVjdGlvbiwgZSkge1xuICAgIGlmIChlLnRvdGFsID4gMCkge1xuICAgICAgZS5wZXJjZW50ID0gZS5sb2FkZWQgLyBlLnRvdGFsICogMTAwO1xuICAgIH1cbiAgICBlLmRpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICBzZWxmLmVtaXQoJ3Byb2dyZXNzJywgZSk7XG4gIH07XG4gIGlmICh0aGlzLmhhc0xpc3RlbmVycygncHJvZ3Jlc3MnKSkge1xuICAgIHRyeSB7XG4gICAgICB4aHIub25wcm9ncmVzcyA9IGhhbmRsZVByb2dyZXNzLmJpbmQobnVsbCwgJ2Rvd25sb2FkJyk7XG4gICAgICBpZiAoeGhyLnVwbG9hZCkge1xuICAgICAgICB4aHIudXBsb2FkLm9ucHJvZ3Jlc3MgPSBoYW5kbGVQcm9ncmVzcy5iaW5kKG51bGwsICd1cGxvYWQnKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoKGUpIHtcbiAgICAgIC8vIEFjY2Vzc2luZyB4aHIudXBsb2FkIGZhaWxzIGluIElFIGZyb20gYSB3ZWIgd29ya2VyLCBzbyBqdXN0IHByZXRlbmQgaXQgZG9lc24ndCBleGlzdC5cbiAgICAgIC8vIFJlcG9ydGVkIGhlcmU6XG4gICAgICAvLyBodHRwczovL2Nvbm5lY3QubWljcm9zb2Z0LmNvbS9JRS9mZWVkYmFjay9kZXRhaWxzLzgzNzI0NS94bWxodHRwcmVxdWVzdC11cGxvYWQtdGhyb3dzLWludmFsaWQtYXJndW1lbnQtd2hlbi11c2VkLWZyb20td2ViLXdvcmtlci1jb250ZXh0XG4gICAgfVxuICB9XG5cbiAgLy8gaW5pdGlhdGUgcmVxdWVzdFxuICB0cnkge1xuICAgIGlmICh0aGlzLnVzZXJuYW1lICYmIHRoaXMucGFzc3dvcmQpIHtcbiAgICAgIHhoci5vcGVuKHRoaXMubWV0aG9kLCB0aGlzLnVybCwgdHJ1ZSwgdGhpcy51c2VybmFtZSwgdGhpcy5wYXNzd29yZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHhoci5vcGVuKHRoaXMubWV0aG9kLCB0aGlzLnVybCwgdHJ1ZSk7XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBzZWUgIzExNDlcbiAgICByZXR1cm4gdGhpcy5jYWxsYmFjayhlcnIpO1xuICB9XG5cbiAgLy8gQ09SU1xuICBpZiAodGhpcy5fd2l0aENyZWRlbnRpYWxzKSB4aHIud2l0aENyZWRlbnRpYWxzID0gdHJ1ZTtcblxuICAvLyBib2R5XG4gIGlmICghdGhpcy5fZm9ybURhdGEgJiYgJ0dFVCcgIT0gdGhpcy5tZXRob2QgJiYgJ0hFQUQnICE9IHRoaXMubWV0aG9kICYmICdzdHJpbmcnICE9IHR5cGVvZiBkYXRhICYmICF0aGlzLl9pc0hvc3QoZGF0YSkpIHtcbiAgICAvLyBzZXJpYWxpemUgc3R1ZmZcbiAgICB2YXIgY29udGVudFR5cGUgPSB0aGlzLl9oZWFkZXJbJ2NvbnRlbnQtdHlwZSddO1xuICAgIHZhciBzZXJpYWxpemUgPSB0aGlzLl9zZXJpYWxpemVyIHx8IHJlcXVlc3Quc2VyaWFsaXplW2NvbnRlbnRUeXBlID8gY29udGVudFR5cGUuc3BsaXQoJzsnKVswXSA6ICcnXTtcbiAgICBpZiAoIXNlcmlhbGl6ZSAmJiBpc0pTT04oY29udGVudFR5cGUpKSB7XG4gICAgICBzZXJpYWxpemUgPSByZXF1ZXN0LnNlcmlhbGl6ZVsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIH1cbiAgICBpZiAoc2VyaWFsaXplKSBkYXRhID0gc2VyaWFsaXplKGRhdGEpO1xuICB9XG5cbiAgLy8gc2V0IGhlYWRlciBmaWVsZHNcbiAgZm9yICh2YXIgZmllbGQgaW4gdGhpcy5oZWFkZXIpIHtcbiAgICBpZiAobnVsbCA9PSB0aGlzLmhlYWRlcltmaWVsZF0pIGNvbnRpbnVlO1xuXG4gICAgaWYgKHRoaXMuaGVhZGVyLmhhc093blByb3BlcnR5KGZpZWxkKSlcbiAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKGZpZWxkLCB0aGlzLmhlYWRlcltmaWVsZF0pO1xuICB9XG5cbiAgaWYgKHRoaXMuX3Jlc3BvbnNlVHlwZSkge1xuICAgIHhoci5yZXNwb25zZVR5cGUgPSB0aGlzLl9yZXNwb25zZVR5cGU7XG4gIH1cblxuICAvLyBzZW5kIHN0dWZmXG4gIHRoaXMuZW1pdCgncmVxdWVzdCcsIHRoaXMpO1xuXG4gIC8vIElFMTEgeGhyLnNlbmQodW5kZWZpbmVkKSBzZW5kcyAndW5kZWZpbmVkJyBzdHJpbmcgYXMgUE9TVCBwYXlsb2FkIChpbnN0ZWFkIG9mIG5vdGhpbmcpXG4gIC8vIFdlIG5lZWQgbnVsbCBoZXJlIGlmIGRhdGEgaXMgdW5kZWZpbmVkXG4gIHhoci5zZW5kKHR5cGVvZiBkYXRhICE9PSAndW5kZWZpbmVkJyA/IGRhdGEgOiBudWxsKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5yZXF1ZXN0LmFnZW50ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBuZXcgQWdlbnQoKTtcbn07XG5cbltcIkdFVFwiLCBcIlBPU1RcIiwgXCJPUFRJT05TXCIsIFwiUEFUQ0hcIiwgXCJQVVRcIiwgXCJERUxFVEVcIl0uZm9yRWFjaChmdW5jdGlvbihtZXRob2QpIHtcbiAgQWdlbnQucHJvdG90eXBlW21ldGhvZC50b0xvd2VyQ2FzZSgpXSA9IGZ1bmN0aW9uKHVybCwgZm4pIHtcbiAgICB2YXIgcmVxID0gbmV3IHJlcXVlc3QuUmVxdWVzdChtZXRob2QsIHVybCk7XG4gICAgdGhpcy5fc2V0RGVmYXVsdHMocmVxKTtcbiAgICBpZiAoZm4pIHtcbiAgICAgIHJlcS5lbmQoZm4pO1xuICAgIH1cbiAgICByZXR1cm4gcmVxO1xuICB9O1xufSk7XG5cbkFnZW50LnByb3RvdHlwZS5kZWwgPSBBZ2VudC5wcm90b3R5cGVbJ2RlbGV0ZSddO1xuXG4vKipcbiAqIEdFVCBgdXJsYCB3aXRoIG9wdGlvbmFsIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfEZ1bmN0aW9ufSBbZGF0YV0gb3IgZm5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtmbl1cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QuZ2V0ID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbikge1xuICB2YXIgcmVxID0gcmVxdWVzdCgnR0VUJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIChmbiA9IGRhdGEpLCAoZGF0YSA9IG51bGwpO1xuICBpZiAoZGF0YSkgcmVxLnF1ZXJ5KGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBIRUFEIGB1cmxgIHdpdGggb3B0aW9uYWwgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7TWl4ZWR8RnVuY3Rpb259IFtkYXRhXSBvciBmblxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2ZuXVxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5oZWFkID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbikge1xuICB2YXIgcmVxID0gcmVxdWVzdCgnSEVBRCcsIHVybCk7XG4gIGlmICgnZnVuY3Rpb24nID09IHR5cGVvZiBkYXRhKSAoZm4gPSBkYXRhKSwgKGRhdGEgPSBudWxsKTtcbiAgaWYgKGRhdGEpIHJlcS5xdWVyeShkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogT1BUSU9OUyBxdWVyeSB0byBgdXJsYCB3aXRoIG9wdGlvbmFsIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfEZ1bmN0aW9ufSBbZGF0YV0gb3IgZm5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtmbl1cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3Qub3B0aW9ucyA9IGZ1bmN0aW9uKHVybCwgZGF0YSwgZm4pIHtcbiAgdmFyIHJlcSA9IHJlcXVlc3QoJ09QVElPTlMnLCB1cmwpO1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgZGF0YSkgKGZuID0gZGF0YSksIChkYXRhID0gbnVsbCk7XG4gIGlmIChkYXRhKSByZXEuc2VuZChkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogREVMRVRFIGB1cmxgIHdpdGggb3B0aW9uYWwgYGRhdGFgIGFuZCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZH0gW2RhdGFdXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbZm5dXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBkZWwodXJsLCBkYXRhLCBmbikge1xuICB2YXIgcmVxID0gcmVxdWVzdCgnREVMRVRFJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIChmbiA9IGRhdGEpLCAoZGF0YSA9IG51bGwpO1xuICBpZiAoZGF0YSkgcmVxLnNlbmQoZGF0YSk7XG4gIGlmIChmbikgcmVxLmVuZChmbik7XG4gIHJldHVybiByZXE7XG59XG5cbnJlcXVlc3RbJ2RlbCddID0gZGVsO1xucmVxdWVzdFsnZGVsZXRlJ10gPSBkZWw7XG5cbi8qKlxuICogUEFUQ0ggYHVybGAgd2l0aCBvcHRpb25hbCBgZGF0YWAgYW5kIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfSBbZGF0YV1cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtmbl1cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QucGF0Y2ggPSBmdW5jdGlvbih1cmwsIGRhdGEsIGZuKSB7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdQQVRDSCcsIHVybCk7XG4gIGlmICgnZnVuY3Rpb24nID09IHR5cGVvZiBkYXRhKSAoZm4gPSBkYXRhKSwgKGRhdGEgPSBudWxsKTtcbiAgaWYgKGRhdGEpIHJlcS5zZW5kKGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBQT1NUIGB1cmxgIHdpdGggb3B0aW9uYWwgYGRhdGFgIGFuZCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZH0gW2RhdGFdXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbZm5dXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5yZXF1ZXN0LnBvc3QgPSBmdW5jdGlvbih1cmwsIGRhdGEsIGZuKSB7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdQT1NUJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIChmbiA9IGRhdGEpLCAoZGF0YSA9IG51bGwpO1xuICBpZiAoZGF0YSkgcmVxLnNlbmQoZGF0YSk7XG4gIGlmIChmbikgcmVxLmVuZChmbik7XG4gIHJldHVybiByZXE7XG59O1xuXG4vKipcbiAqIFBVVCBgdXJsYCB3aXRoIG9wdGlvbmFsIGBkYXRhYCBhbmQgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7TWl4ZWR8RnVuY3Rpb259IFtkYXRhXSBvciBmblxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2ZuXVxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5wdXQgPSBmdW5jdGlvbih1cmwsIGRhdGEsIGZuKSB7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdQVVQnLCB1cmwpO1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgZGF0YSkgKGZuID0gZGF0YSksIChkYXRhID0gbnVsbCk7XG4gIGlmIChkYXRhKSByZXEuc2VuZChkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9zdXBlcmFnZW50L2xpYi9jbGllbnQuanNcbi8vIG1vZHVsZSBpZCA9IDE5MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///191\n"); /***/ }), /* 192 */ @@ -1249,7 +1250,7 @@ eval("\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (true) {\r\n module.expo /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\n/**\n * Module of mixed-in functions shared between node and client code\n */\nvar isObject = __webpack_require__(92);\n\n/**\n * Expose `RequestBase`.\n */\n\nmodule.exports = RequestBase;\n\n/**\n * Initialize a new `RequestBase`.\n *\n * @api public\n */\n\nfunction RequestBase(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in RequestBase.prototype) {\n obj[key] = RequestBase.prototype[key];\n }\n return obj;\n}\n\n/**\n * Clear previous timeout.\n *\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.clearTimeout = function _clearTimeout(){\n clearTimeout(this._timer);\n clearTimeout(this._responseTimeoutTimer);\n delete this._timer;\n delete this._responseTimeoutTimer;\n return this;\n};\n\n/**\n * Override default response body parser\n *\n * This function will be called to convert incoming data into request.body\n *\n * @param {Function}\n * @api public\n */\n\nRequestBase.prototype.parse = function parse(fn){\n this._parser = fn;\n return this;\n};\n\n/**\n * Set format of binary response body.\n * In browser valid formats are 'blob' and 'arraybuffer',\n * which return Blob and ArrayBuffer, respectively.\n *\n * In Node all values result in Buffer.\n *\n * Examples:\n *\n * req.get('/')\n * .responseType('blob')\n * .end(callback);\n *\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.responseType = function(val){\n this._responseType = val;\n return this;\n};\n\n/**\n * Override default request body serializer\n *\n * This function will be called to convert data set via .send or .attach into payload to send\n *\n * @param {Function}\n * @api public\n */\n\nRequestBase.prototype.serialize = function serialize(fn){\n this._serializer = fn;\n return this;\n};\n\n/**\n * Set timeouts.\n *\n * - response timeout is time between sending request and receiving the first byte of the response. Includes DNS and connection time.\n * - deadline is the time from start of the request to receiving response body in full. If the deadline is too short large files may not load at all on slow connections.\n *\n * Value of 0 or false means no timeout.\n *\n * @param {Number|Object} ms or {response, deadline}\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.timeout = function timeout(options){\n if (!options || 'object' !== typeof options) {\n this._timeout = options;\n this._responseTimeout = 0;\n return this;\n }\n\n for(var option in options) {\n switch(option) {\n case 'deadline':\n this._timeout = options.deadline;\n break;\n case 'response':\n this._responseTimeout = options.response;\n break;\n default:\n console.warn(\"Unknown timeout option\", option);\n }\n }\n return this;\n};\n\n/**\n * Set number of retry attempts on error.\n *\n * Failed requests will be retried 'count' times if timeout or err.code >= 500.\n *\n * @param {Number} count\n * @param {Function} [fn]\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.retry = function retry(count, fn){\n // Default to 1 if no count passed or true\n if (arguments.length === 0 || count === true) count = 1;\n if (count <= 0) count = 0;\n this._maxRetries = count;\n this._retries = 0;\n this._retryCallback = fn;\n return this;\n};\n\nvar ERROR_CODES = [\n 'ECONNRESET',\n 'ETIMEDOUT',\n 'EADDRINFO',\n 'ESOCKETTIMEDOUT'\n];\n\n/**\n * Determine if a request should be retried.\n * (Borrowed from segmentio/superagent-retry)\n *\n * @param {Error} err\n * @param {Response} [res]\n * @returns {Boolean}\n */\nRequestBase.prototype._shouldRetry = function(err, res) {\n if (!this._maxRetries || this._retries++ >= this._maxRetries) {\n return false;\n }\n if (this._retryCallback) {\n try {\n var override = this._retryCallback(err, res);\n if (override === true) return true;\n if (override === false) return false;\n // undefined falls back to defaults\n } catch(e) {\n console.error(e);\n }\n }\n if (res && res.status && res.status >= 500 && res.status != 501) return true;\n if (err) {\n if (err.code && ~ERROR_CODES.indexOf(err.code)) return true;\n // Superagent timeout\n if (err.timeout && err.code == 'ECONNABORTED') return true;\n if (err.crossDomain) return true;\n }\n return false;\n};\n\n/**\n * Retry request\n *\n * @return {Request} for chaining\n * @api private\n */\n\nRequestBase.prototype._retry = function() {\n\n this.clearTimeout();\n\n // node\n if (this.req) {\n this.req = null;\n this.req = this.request();\n }\n\n this._aborted = false;\n this.timedout = false;\n\n return this._end();\n};\n\n/**\n * Promise support\n *\n * @param {Function} resolve\n * @param {Function} [reject]\n * @return {Request}\n */\n\nRequestBase.prototype.then = function then(resolve, reject) {\n if (!this._fullfilledPromise) {\n var self = this;\n if (this._endCalled) {\n console.warn(\"Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises\");\n }\n this._fullfilledPromise = new Promise(function(innerResolve, innerReject) {\n self.end(function(err, res) {\n if (err) innerReject(err);\n else innerResolve(res);\n });\n });\n }\n return this._fullfilledPromise.then(resolve, reject);\n};\n\nRequestBase.prototype.catch = function(cb) {\n return this.then(undefined, cb);\n};\n\n/**\n * Allow for extension\n */\n\nRequestBase.prototype.use = function use(fn) {\n fn(this);\n return this;\n};\n\nRequestBase.prototype.ok = function(cb) {\n if ('function' !== typeof cb) throw Error(\"Callback required\");\n this._okCallback = cb;\n return this;\n};\n\nRequestBase.prototype._isResponseOK = function(res) {\n if (!res) {\n return false;\n }\n\n if (this._okCallback) {\n return this._okCallback(res);\n }\n\n return res.status >= 200 && res.status < 300;\n};\n\n/**\n * Get request header `field`.\n * Case-insensitive.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\nRequestBase.prototype.get = function(field){\n return this._header[field.toLowerCase()];\n};\n\n/**\n * Get case-insensitive header `field` value.\n * This is a deprecated internal API. Use `.get(field)` instead.\n *\n * (getHeader is no longer used internally by the superagent code base)\n *\n * @param {String} field\n * @return {String}\n * @api private\n * @deprecated\n */\n\nRequestBase.prototype.getHeader = RequestBase.prototype.get;\n\n/**\n * Set header `field` to `val`, or multiple fields with one object.\n * Case-insensitive.\n *\n * Examples:\n *\n * req.get('/')\n * .set('Accept', 'application/json')\n * .set('X-API-Key', 'foobar')\n * .end(callback);\n *\n * req.get('/')\n * .set({ Accept: 'application/json', 'X-API-Key': 'foobar' })\n * .end(callback);\n *\n * @param {String|Object} field\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.set = function(field, val){\n if (isObject(field)) {\n for (var key in field) {\n this.set(key, field[key]);\n }\n return this;\n }\n this._header[field.toLowerCase()] = val;\n this.header[field] = val;\n return this;\n};\n\n/**\n * Remove header `field`.\n * Case-insensitive.\n *\n * Example:\n *\n * req.get('/')\n * .unset('User-Agent')\n * .end(callback);\n *\n * @param {String} field\n */\nRequestBase.prototype.unset = function(field){\n delete this._header[field.toLowerCase()];\n delete this.header[field];\n return this;\n};\n\n/**\n * Write the field `name` and `val`, or multiple fields with one object\n * for \"multipart/form-data\" request bodies.\n *\n * ``` js\n * request.post('/upload')\n * .field('foo', 'bar')\n * .end(callback);\n *\n * request.post('/upload')\n * .field({ foo: 'bar', baz: 'qux' })\n * .end(callback);\n * ```\n *\n * @param {String|Object} name\n * @param {String|Blob|File|Buffer|fs.ReadStream} val\n * @return {Request} for chaining\n * @api public\n */\nRequestBase.prototype.field = function(name, val) {\n // name should be either a string or an object.\n if (null === name || undefined === name) {\n throw new Error('.field(name, val) name can not be empty');\n }\n\n if (this._data) {\n console.error(\".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObject(name)) {\n for (var key in name) {\n this.field(key, name[key]);\n }\n return this;\n }\n\n if (Array.isArray(val)) {\n for (var i in val) {\n this.field(name, val[i]);\n }\n return this;\n }\n\n // val should be defined now\n if (null === val || undefined === val) {\n throw new Error('.field(name, val) val can not be empty');\n }\n if ('boolean' === typeof val) {\n val = '' + val;\n }\n this._getFormData().append(name, val);\n return this;\n};\n\n/**\n * Abort the request, and clear potential timeout.\n *\n * @return {Request}\n * @api public\n */\nRequestBase.prototype.abort = function(){\n if (this._aborted) {\n return this;\n }\n this._aborted = true;\n this.xhr && this.xhr.abort(); // browser\n this.req && this.req.abort(); // node\n this.clearTimeout();\n this.emit('abort');\n return this;\n};\n\nRequestBase.prototype._auth = function(user, pass, options, base64Encoder) {\n switch (options.type) {\n case 'basic':\n this.set('Authorization', 'Basic ' + base64Encoder(user + ':' + pass));\n break;\n\n case 'auto':\n this.username = user;\n this.password = pass;\n break;\n\n case 'bearer': // usage would be .auth(accessToken, { type: 'bearer' })\n this.set('Authorization', 'Bearer ' + user);\n break;\n }\n return this;\n};\n\n/**\n * Enable transmission of cookies with x-domain requests.\n *\n * Note that for this to work the origin must not be\n * using \"Access-Control-Allow-Origin\" with a wildcard,\n * and also must set \"Access-Control-Allow-Credentials\"\n * to \"true\".\n *\n * @api public\n */\n\nRequestBase.prototype.withCredentials = function(on) {\n // This is browser-only functionality. Node side is no-op.\n if (on == undefined) on = true;\n this._withCredentials = on;\n return this;\n};\n\n/**\n * Set the max redirects to `n`. Does noting in browser XHR implementation.\n *\n * @param {Number} n\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.redirects = function(n){\n this._maxRedirects = n;\n return this;\n};\n\n/**\n * Maximum size of buffered response body, in bytes. Counts uncompressed size.\n * Default 200MB.\n *\n * @param {Number} n\n * @return {Request} for chaining\n */\nRequestBase.prototype.maxResponseSize = function(n){\n if ('number' !== typeof n) {\n throw TypeError(\"Invalid argument\");\n }\n this._maxResponseSize = n;\n return this;\n};\n\n/**\n * Convert to a plain javascript object (not JSON string) of scalar properties.\n * Note as this method is designed to return a useful non-this value,\n * it cannot be chained.\n *\n * @return {Object} describing method, url, and data of this request\n * @api public\n */\n\nRequestBase.prototype.toJSON = function() {\n return {\n method: this.method,\n url: this.url,\n data: this._data,\n headers: this._header,\n };\n};\n\n/**\n * Send `data` as the request body, defaulting the `.type()` to \"json\" when\n * an object is given.\n *\n * Examples:\n *\n * // manual json\n * request.post('/user')\n * .type('json')\n * .send('{\"name\":\"tj\"}')\n * .end(callback)\n *\n * // auto json\n * request.post('/user')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // manual x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send('name=tj')\n * .end(callback)\n *\n * // auto x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // defaults to x-www-form-urlencoded\n * request.post('/user')\n * .send('name=tobi')\n * .send('species=ferret')\n * .end(callback)\n *\n * @param {String|Object} data\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.send = function(data){\n var isObj = isObject(data);\n var type = this._header['content-type'];\n\n if (this._formData) {\n console.error(\".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObj && !this._data) {\n if (Array.isArray(data)) {\n this._data = [];\n } else if (!this._isHost(data)) {\n this._data = {};\n }\n } else if (data && this._data && this._isHost(this._data)) {\n throw Error(\"Can't merge these send calls\");\n }\n\n // merge\n if (isObj && isObject(this._data)) {\n for (var key in data) {\n this._data[key] = data[key];\n }\n } else if ('string' == typeof data) {\n // default to x-www-form-urlencoded\n if (!type) this.type('form');\n type = this._header['content-type'];\n if ('application/x-www-form-urlencoded' == type) {\n this._data = this._data\n ? this._data + '&' + data\n : data;\n } else {\n this._data = (this._data || '') + data;\n }\n } else {\n this._data = data;\n }\n\n if (!isObj || this._isHost(data)) {\n return this;\n }\n\n // default to json\n if (!type) this.type('json');\n return this;\n};\n\n/**\n * Sort `querystring` by the sort function\n *\n *\n * Examples:\n *\n * // default order\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery()\n * .end(callback)\n *\n * // customized sort function\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery(function(a, b){\n * return a.length - b.length;\n * })\n * .end(callback)\n *\n *\n * @param {Function} sort\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.sortQuery = function(sort) {\n // _sort default to true but otherwise can be a function or boolean\n this._sort = typeof sort === 'undefined' ? true : sort;\n return this;\n};\n\n/**\n * Compose querystring to append to req.url\n *\n * @api private\n */\nRequestBase.prototype._finalizeQueryString = function(){\n var query = this._query.join('&');\n if (query) {\n this.url += (this.url.indexOf('?') >= 0 ? '&' : '?') + query;\n }\n this._query.length = 0; // Makes the call idempotent\n\n if (this._sort) {\n var index = this.url.indexOf('?');\n if (index >= 0) {\n var queryArr = this.url.substring(index + 1).split('&');\n if ('function' === typeof this._sort) {\n queryArr.sort(this._sort);\n } else {\n queryArr.sort();\n }\n this.url = this.url.substring(0, index) + '?' + queryArr.join('&');\n }\n }\n};\n\n// For backwards compat only\nRequestBase.prototype._appendQueryString = function() {console.trace(\"Unsupported\");}\n\n/**\n * Invoke callback with timeout error.\n *\n * @api private\n */\n\nRequestBase.prototype._timeoutError = function(reason, timeout, errno){\n if (this._aborted) {\n return;\n }\n var err = new Error(reason + timeout + 'ms exceeded');\n err.timeout = timeout;\n err.code = 'ECONNABORTED';\n err.errno = errno;\n this.timedout = true;\n this.abort();\n this.callback(err);\n};\n\nRequestBase.prototype._setTimeouts = function() {\n var self = this;\n\n // deadline\n if (this._timeout && !this._timer) {\n this._timer = setTimeout(function(){\n self._timeoutError('Timeout of ', self._timeout, 'ETIME');\n }, this._timeout);\n }\n // response timeout\n if (this._responseTimeout && !this._responseTimeoutTimer) {\n this._responseTimeoutTimer = setTimeout(function(){\n self._timeoutError('Response timeout of ', self._responseTimeout, 'ETIMEDOUT');\n }, this._responseTimeout);\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvc3VwZXJhZ2VudC9saWIvcmVxdWVzdC1iYXNlLmpzP2EzOTYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFlBQVksUUFBUTtBQUNwQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxjQUFjLFFBQVE7QUFDakMsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLFNBQVM7QUFDcEIsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsdURBQXVEOztBQUV2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSIsImZpbGUiOiIxOTMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogTW9kdWxlIG9mIG1peGVkLWluIGZ1bmN0aW9ucyBzaGFyZWQgYmV0d2VlbiBub2RlIGFuZCBjbGllbnQgY29kZVxuICovXG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzLW9iamVjdCcpO1xuXG4vKipcbiAqIEV4cG9zZSBgUmVxdWVzdEJhc2VgLlxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gUmVxdWVzdEJhc2U7XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBhIG5ldyBgUmVxdWVzdEJhc2VgLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gUmVxdWVzdEJhc2Uob2JqKSB7XG4gIGlmIChvYmopIHJldHVybiBtaXhpbihvYmopO1xufVxuXG4vKipcbiAqIE1peGluIHRoZSBwcm90b3R5cGUgcHJvcGVydGllcy5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBtaXhpbihvYmopIHtcbiAgZm9yICh2YXIga2V5IGluIFJlcXVlc3RCYXNlLnByb3RvdHlwZSkge1xuICAgIG9ialtrZXldID0gUmVxdWVzdEJhc2UucHJvdG90eXBlW2tleV07XG4gIH1cbiAgcmV0dXJuIG9iajtcbn1cblxuLyoqXG4gKiBDbGVhciBwcmV2aW91cyB0aW1lb3V0LlxuICpcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuY2xlYXJUaW1lb3V0ID0gZnVuY3Rpb24gX2NsZWFyVGltZW91dCgpe1xuICBjbGVhclRpbWVvdXQodGhpcy5fdGltZXIpO1xuICBjbGVhclRpbWVvdXQodGhpcy5fcmVzcG9uc2VUaW1lb3V0VGltZXIpO1xuICBkZWxldGUgdGhpcy5fdGltZXI7XG4gIGRlbGV0ZSB0aGlzLl9yZXNwb25zZVRpbWVvdXRUaW1lcjtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIE92ZXJyaWRlIGRlZmF1bHQgcmVzcG9uc2UgYm9keSBwYXJzZXJcbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHRvIGNvbnZlcnQgaW5jb21pbmcgZGF0YSBpbnRvIHJlcXVlc3QuYm9keVxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5wYXJzZSA9IGZ1bmN0aW9uIHBhcnNlKGZuKXtcbiAgdGhpcy5fcGFyc2VyID0gZm47XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXQgZm9ybWF0IG9mIGJpbmFyeSByZXNwb25zZSBib2R5LlxuICogSW4gYnJvd3NlciB2YWxpZCBmb3JtYXRzIGFyZSAnYmxvYicgYW5kICdhcnJheWJ1ZmZlcicsXG4gKiB3aGljaCByZXR1cm4gQmxvYiBhbmQgQXJyYXlCdWZmZXIsIHJlc3BlY3RpdmVseS5cbiAqXG4gKiBJbiBOb2RlIGFsbCB2YWx1ZXMgcmVzdWx0IGluIEJ1ZmZlci5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgIHJlcS5nZXQoJy8nKVxuICogICAgICAgIC5yZXNwb25zZVR5cGUoJ2Jsb2InKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB2YWxcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUucmVzcG9uc2VUeXBlID0gZnVuY3Rpb24odmFsKXtcbiAgdGhpcy5fcmVzcG9uc2VUeXBlID0gdmFsO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogT3ZlcnJpZGUgZGVmYXVsdCByZXF1ZXN0IGJvZHkgc2VyaWFsaXplclxuICpcbiAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgdG8gY29udmVydCBkYXRhIHNldCB2aWEgLnNlbmQgb3IgLmF0dGFjaCBpbnRvIHBheWxvYWQgdG8gc2VuZFxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5zZXJpYWxpemUgPSBmdW5jdGlvbiBzZXJpYWxpemUoZm4pe1xuICB0aGlzLl9zZXJpYWxpemVyID0gZm47XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXQgdGltZW91dHMuXG4gKlxuICogLSByZXNwb25zZSB0aW1lb3V0IGlzIHRpbWUgYmV0d2VlbiBzZW5kaW5nIHJlcXVlc3QgYW5kIHJlY2VpdmluZyB0aGUgZmlyc3QgYnl0ZSBvZiB0aGUgcmVzcG9uc2UuIEluY2x1ZGVzIEROUyBhbmQgY29ubmVjdGlvbiB0aW1lLlxuICogLSBkZWFkbGluZSBpcyB0aGUgdGltZSBmcm9tIHN0YXJ0IG9mIHRoZSByZXF1ZXN0IHRvIHJlY2VpdmluZyByZXNwb25zZSBib2R5IGluIGZ1bGwuIElmIHRoZSBkZWFkbGluZSBpcyB0b28gc2hvcnQgbGFyZ2UgZmlsZXMgbWF5IG5vdCBsb2FkIGF0IGFsbCBvbiBzbG93IGNvbm5lY3Rpb25zLlxuICpcbiAqIFZhbHVlIG9mIDAgb3IgZmFsc2UgbWVhbnMgbm8gdGltZW91dC5cbiAqXG4gKiBAcGFyYW0ge051bWJlcnxPYmplY3R9IG1zIG9yIHtyZXNwb25zZSwgZGVhZGxpbmV9XG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLnRpbWVvdXQgPSBmdW5jdGlvbiB0aW1lb3V0KG9wdGlvbnMpe1xuICBpZiAoIW9wdGlvbnMgfHwgJ29iamVjdCcgIT09IHR5cGVvZiBvcHRpb25zKSB7XG4gICAgdGhpcy5fdGltZW91dCA9IG9wdGlvbnM7XG4gICAgdGhpcy5fcmVzcG9uc2VUaW1lb3V0ID0gMDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGZvcih2YXIgb3B0aW9uIGluIG9wdGlvbnMpIHtcbiAgICBzd2l0Y2gob3B0aW9uKSB7XG4gICAgICBjYXNlICdkZWFkbGluZSc6XG4gICAgICAgIHRoaXMuX3RpbWVvdXQgPSBvcHRpb25zLmRlYWRsaW5lO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Jlc3BvbnNlJzpcbiAgICAgICAgdGhpcy5fcmVzcG9uc2VUaW1lb3V0ID0gb3B0aW9ucy5yZXNwb25zZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zb2xlLndhcm4oXCJVbmtub3duIHRpbWVvdXQgb3B0aW9uXCIsIG9wdGlvbik7XG4gICAgfVxuICB9XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXQgbnVtYmVyIG9mIHJldHJ5IGF0dGVtcHRzIG9uIGVycm9yLlxuICpcbiAqIEZhaWxlZCByZXF1ZXN0cyB3aWxsIGJlIHJldHJpZWQgJ2NvdW50JyB0aW1lcyBpZiB0aW1lb3V0IG9yIGVyci5jb2RlID49IDUwMC5cbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gY291bnRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtmbl1cbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUucmV0cnkgPSBmdW5jdGlvbiByZXRyeShjb3VudCwgZm4pe1xuICAvLyBEZWZhdWx0IHRvIDEgaWYgbm8gY291bnQgcGFzc2VkIG9yIHRydWVcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDAgfHwgY291bnQgPT09IHRydWUpIGNvdW50ID0gMTtcbiAgaWYgKGNvdW50IDw9IDApIGNvdW50ID0gMDtcbiAgdGhpcy5fbWF4UmV0cmllcyA9IGNvdW50O1xuICB0aGlzLl9yZXRyaWVzID0gMDtcbiAgdGhpcy5fcmV0cnlDYWxsYmFjayA9IGZuO1xuICByZXR1cm4gdGhpcztcbn07XG5cbnZhciBFUlJPUl9DT0RFUyA9IFtcbiAgJ0VDT05OUkVTRVQnLFxuICAnRVRJTUVET1VUJyxcbiAgJ0VBRERSSU5GTycsXG4gICdFU09DS0VUVElNRURPVVQnXG5dO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHJlcXVlc3Qgc2hvdWxkIGJlIHJldHJpZWQuXG4gKiAoQm9ycm93ZWQgZnJvbSBzZWdtZW50aW8vc3VwZXJhZ2VudC1yZXRyeSlcbiAqXG4gKiBAcGFyYW0ge0Vycm9yfSBlcnJcbiAqIEBwYXJhbSB7UmVzcG9uc2V9IFtyZXNdXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn1cbiAqL1xuUmVxdWVzdEJhc2UucHJvdG90eXBlLl9zaG91bGRSZXRyeSA9IGZ1bmN0aW9uKGVyciwgcmVzKSB7XG4gIGlmICghdGhpcy5fbWF4UmV0cmllcyB8fCB0aGlzLl9yZXRyaWVzKysgPj0gdGhpcy5fbWF4UmV0cmllcykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAodGhpcy5fcmV0cnlDYWxsYmFjaykge1xuICAgIHRyeSB7XG4gICAgICB2YXIgb3ZlcnJpZGUgPSB0aGlzLl9yZXRyeUNhbGxiYWNrKGVyciwgcmVzKTtcbiAgICAgIGlmIChvdmVycmlkZSA9PT0gdHJ1ZSkgcmV0dXJuIHRydWU7XG4gICAgICBpZiAob3ZlcnJpZGUgPT09IGZhbHNlKSByZXR1cm4gZmFsc2U7XG4gICAgICAvLyB1bmRlZmluZWQgZmFsbHMgYmFjayB0byBkZWZhdWx0c1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICB9XG4gIH1cbiAgaWYgKHJlcyAmJiByZXMuc3RhdHVzICYmIHJlcy5zdGF0dXMgPj0gNTAwICYmIHJlcy5zdGF0dXMgIT0gNTAxKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKGVycikge1xuICAgIGlmIChlcnIuY29kZSAmJiB+RVJST1JfQ09ERVMuaW5kZXhPZihlcnIuY29kZSkpIHJldHVybiB0cnVlO1xuICAgIC8vIFN1cGVyYWdlbnQgdGltZW91dFxuICAgIGlmIChlcnIudGltZW91dCAmJiBlcnIuY29kZSA9PSAnRUNPTk5BQk9SVEVEJykgcmV0dXJuIHRydWU7XG4gICAgaWYgKGVyci5jcm9zc0RvbWFpbikgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufTtcblxuLyoqXG4gKiBSZXRyeSByZXF1ZXN0XG4gKlxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuX3JldHJ5ID0gZnVuY3Rpb24oKSB7XG5cbiAgdGhpcy5jbGVhclRpbWVvdXQoKTtcblxuICAvLyBub2RlXG4gIGlmICh0aGlzLnJlcSkge1xuICAgIHRoaXMucmVxID0gbnVsbDtcbiAgICB0aGlzLnJlcSA9IHRoaXMucmVxdWVzdCgpO1xuICB9XG5cbiAgdGhpcy5fYWJvcnRlZCA9IGZhbHNlO1xuICB0aGlzLnRpbWVkb3V0ID0gZmFsc2U7XG5cbiAgcmV0dXJuIHRoaXMuX2VuZCgpO1xufTtcblxuLyoqXG4gKiBQcm9taXNlIHN1cHBvcnRcbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSByZXNvbHZlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcmVqZWN0XVxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUudGhlbiA9IGZ1bmN0aW9uIHRoZW4ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gIGlmICghdGhpcy5fZnVsbGZpbGxlZFByb21pc2UpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgaWYgKHRoaXMuX2VuZENhbGxlZCkge1xuICAgICAgY29uc29sZS53YXJuKFwiV2FybmluZzogc3VwZXJhZ2VudCByZXF1ZXN0IHdhcyBzZW50IHR3aWNlLCBiZWNhdXNlIGJvdGggLmVuZCgpIGFuZCAudGhlbigpIHdlcmUgY2FsbGVkLiBOZXZlciBjYWxsIC5lbmQoKSBpZiB5b3UgdXNlIHByb21pc2VzXCIpO1xuICAgIH1cbiAgICB0aGlzLl9mdWxsZmlsbGVkUHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKGlubmVyUmVzb2x2ZSwgaW5uZXJSZWplY3QpIHtcbiAgICAgIHNlbGYuZW5kKGZ1bmN0aW9uKGVyciwgcmVzKSB7XG4gICAgICAgIGlmIChlcnIpIGlubmVyUmVqZWN0KGVycik7XG4gICAgICAgIGVsc2UgaW5uZXJSZXNvbHZlKHJlcyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gdGhpcy5fZnVsbGZpbGxlZFByb21pc2UudGhlbihyZXNvbHZlLCByZWplY3QpO1xufTtcblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLmNhdGNoID0gZnVuY3Rpb24oY2IpIHtcbiAgcmV0dXJuIHRoaXMudGhlbih1bmRlZmluZWQsIGNiKTtcbn07XG5cbi8qKlxuICogQWxsb3cgZm9yIGV4dGVuc2lvblxuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS51c2UgPSBmdW5jdGlvbiB1c2UoZm4pIHtcbiAgZm4odGhpcyk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLm9rID0gZnVuY3Rpb24oY2IpIHtcbiAgaWYgKCdmdW5jdGlvbicgIT09IHR5cGVvZiBjYikgdGhyb3cgRXJyb3IoXCJDYWxsYmFjayByZXF1aXJlZFwiKTtcbiAgdGhpcy5fb2tDYWxsYmFjayA9IGNiO1xuICByZXR1cm4gdGhpcztcbn07XG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5faXNSZXNwb25zZU9LID0gZnVuY3Rpb24ocmVzKSB7XG4gIGlmICghcmVzKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKHRoaXMuX29rQ2FsbGJhY2spIHtcbiAgICByZXR1cm4gdGhpcy5fb2tDYWxsYmFjayhyZXMpO1xuICB9XG5cbiAgcmV0dXJuIHJlcy5zdGF0dXMgPj0gMjAwICYmIHJlcy5zdGF0dXMgPCAzMDA7XG59O1xuXG4vKipcbiAqIEdldCByZXF1ZXN0IGhlYWRlciBgZmllbGRgLlxuICogQ2FzZS1pbnNlbnNpdGl2ZS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZmllbGRcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uKGZpZWxkKXtcbiAgcmV0dXJuIHRoaXMuX2hlYWRlcltmaWVsZC50b0xvd2VyQ2FzZSgpXTtcbn07XG5cbi8qKlxuICogR2V0IGNhc2UtaW5zZW5zaXRpdmUgaGVhZGVyIGBmaWVsZGAgdmFsdWUuXG4gKiBUaGlzIGlzIGEgZGVwcmVjYXRlZCBpbnRlcm5hbCBBUEkuIFVzZSBgLmdldChmaWVsZClgIGluc3RlYWQuXG4gKlxuICogKGdldEhlYWRlciBpcyBubyBsb25nZXIgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBzdXBlcmFnZW50IGNvZGUgYmFzZSlcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZmllbGRcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICogQGRlcHJlY2F0ZWRcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuZ2V0SGVhZGVyID0gUmVxdWVzdEJhc2UucHJvdG90eXBlLmdldDtcblxuLyoqXG4gKiBTZXQgaGVhZGVyIGBmaWVsZGAgdG8gYHZhbGAsIG9yIG11bHRpcGxlIGZpZWxkcyB3aXRoIG9uZSBvYmplY3QuXG4gKiBDYXNlLWluc2Vuc2l0aXZlLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgICAgcmVxLmdldCgnLycpXG4gKiAgICAgICAgLnNldCgnQWNjZXB0JywgJ2FwcGxpY2F0aW9uL2pzb24nKVxuICogICAgICAgIC5zZXQoJ1gtQVBJLUtleScsICdmb29iYXInKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqICAgICAgcmVxLmdldCgnLycpXG4gKiAgICAgICAgLnNldCh7IEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLCAnWC1BUEktS2V5JzogJ2Zvb2JhcicgfSlcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGZpZWxkXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uKGZpZWxkLCB2YWwpe1xuICBpZiAoaXNPYmplY3QoZmllbGQpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIGZpZWxkKSB7XG4gICAgICB0aGlzLnNldChrZXksIGZpZWxkW2tleV0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICB0aGlzLl9oZWFkZXJbZmllbGQudG9Mb3dlckNhc2UoKV0gPSB2YWw7XG4gIHRoaXMuaGVhZGVyW2ZpZWxkXSA9IHZhbDtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFJlbW92ZSBoZWFkZXIgYGZpZWxkYC5cbiAqIENhc2UtaW5zZW5zaXRpdmUuXG4gKlxuICogRXhhbXBsZTpcbiAqXG4gKiAgICAgIHJlcS5nZXQoJy8nKVxuICogICAgICAgIC51bnNldCgnVXNlci1BZ2VudCcpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGZpZWxkXG4gKi9cblJlcXVlc3RCYXNlLnByb3RvdHlwZS51bnNldCA9IGZ1bmN0aW9uKGZpZWxkKXtcbiAgZGVsZXRlIHRoaXMuX2hlYWRlcltmaWVsZC50b0xvd2VyQ2FzZSgpXTtcbiAgZGVsZXRlIHRoaXMuaGVhZGVyW2ZpZWxkXTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFdyaXRlIHRoZSBmaWVsZCBgbmFtZWAgYW5kIGB2YWxgLCBvciBtdWx0aXBsZSBmaWVsZHMgd2l0aCBvbmUgb2JqZWN0XG4gKiBmb3IgXCJtdWx0aXBhcnQvZm9ybS1kYXRhXCIgcmVxdWVzdCBib2RpZXMuXG4gKlxuICogYGBgIGpzXG4gKiByZXF1ZXN0LnBvc3QoJy91cGxvYWQnKVxuICogICAuZmllbGQoJ2ZvbycsICdiYXInKVxuICogICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiByZXF1ZXN0LnBvc3QoJy91cGxvYWQnKVxuICogICAuZmllbGQoeyBmb286ICdiYXInLCBiYXo6ICdxdXgnIH0pXG4gKiAgIC5lbmQoY2FsbGJhY2spO1xuICogYGBgXG4gKlxuICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSBuYW1lXG4gKiBAcGFyYW0ge1N0cmluZ3xCbG9ifEZpbGV8QnVmZmVyfGZzLlJlYWRTdHJlYW19IHZhbFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuZmllbGQgPSBmdW5jdGlvbihuYW1lLCB2YWwpIHtcbiAgLy8gbmFtZSBzaG91bGQgYmUgZWl0aGVyIGEgc3RyaW5nIG9yIGFuIG9iamVjdC5cbiAgaWYgKG51bGwgPT09IG5hbWUgfHwgdW5kZWZpbmVkID09PSBuYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCcuZmllbGQobmFtZSwgdmFsKSBuYW1lIGNhbiBub3QgYmUgZW1wdHknKTtcbiAgfVxuXG4gIGlmICh0aGlzLl9kYXRhKSB7XG4gICAgY29uc29sZS5lcnJvcihcIi5maWVsZCgpIGNhbid0IGJlIHVzZWQgaWYgLnNlbmQoKSBpcyB1c2VkLiBQbGVhc2UgdXNlIG9ubHkgLnNlbmQoKSBvciBvbmx5IC5maWVsZCgpICYgLmF0dGFjaCgpXCIpO1xuICB9XG5cbiAgaWYgKGlzT2JqZWN0KG5hbWUpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIG5hbWUpIHtcbiAgICAgIHRoaXMuZmllbGQoa2V5LCBuYW1lW2tleV0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICBmb3IgKHZhciBpIGluIHZhbCkge1xuICAgICAgdGhpcy5maWVsZChuYW1lLCB2YWxbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIHZhbCBzaG91bGQgYmUgZGVmaW5lZCBub3dcbiAgaWYgKG51bGwgPT09IHZhbCB8fCB1bmRlZmluZWQgPT09IHZhbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignLmZpZWxkKG5hbWUsIHZhbCkgdmFsIGNhbiBub3QgYmUgZW1wdHknKTtcbiAgfVxuICBpZiAoJ2Jvb2xlYW4nID09PSB0eXBlb2YgdmFsKSB7XG4gICAgdmFsID0gJycgKyB2YWw7XG4gIH1cbiAgdGhpcy5fZ2V0Rm9ybURhdGEoKS5hcHBlbmQobmFtZSwgdmFsKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIEFib3J0IHRoZSByZXF1ZXN0LCBhbmQgY2xlYXIgcG90ZW50aWFsIHRpbWVvdXQuXG4gKlxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5hYm9ydCA9IGZ1bmN0aW9uKCl7XG4gIGlmICh0aGlzLl9hYm9ydGVkKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgdGhpcy5fYWJvcnRlZCA9IHRydWU7XG4gIHRoaXMueGhyICYmIHRoaXMueGhyLmFib3J0KCk7IC8vIGJyb3dzZXJcbiAgdGhpcy5yZXEgJiYgdGhpcy5yZXEuYWJvcnQoKTsgLy8gbm9kZVxuICB0aGlzLmNsZWFyVGltZW91dCgpO1xuICB0aGlzLmVtaXQoJ2Fib3J0Jyk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLl9hdXRoID0gZnVuY3Rpb24odXNlciwgcGFzcywgb3B0aW9ucywgYmFzZTY0RW5jb2Rlcikge1xuICBzd2l0Y2ggKG9wdGlvbnMudHlwZSkge1xuICAgIGNhc2UgJ2Jhc2ljJzpcbiAgICAgIHRoaXMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0Jhc2ljICcgKyBiYXNlNjRFbmNvZGVyKHVzZXIgKyAnOicgKyBwYXNzKSk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2F1dG8nOlxuICAgICAgdGhpcy51c2VybmFtZSA9IHVzZXI7XG4gICAgICB0aGlzLnBhc3N3b3JkID0gcGFzcztcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnYmVhcmVyJzogLy8gdXNhZ2Ugd291bGQgYmUgLmF1dGgoYWNjZXNzVG9rZW4sIHsgdHlwZTogJ2JlYXJlcicgfSlcbiAgICAgIHRoaXMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0JlYXJlciAnICsgdXNlcik7XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogRW5hYmxlIHRyYW5zbWlzc2lvbiBvZiBjb29raWVzIHdpdGggeC1kb21haW4gcmVxdWVzdHMuXG4gKlxuICogTm90ZSB0aGF0IGZvciB0aGlzIHRvIHdvcmsgdGhlIG9yaWdpbiBtdXN0IG5vdCBiZVxuICogdXNpbmcgXCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW5cIiB3aXRoIGEgd2lsZGNhcmQsXG4gKiBhbmQgYWxzbyBtdXN0IHNldCBcIkFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzXCJcbiAqIHRvIFwidHJ1ZVwiLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLndpdGhDcmVkZW50aWFscyA9IGZ1bmN0aW9uKG9uKSB7XG4gIC8vIFRoaXMgaXMgYnJvd3Nlci1vbmx5IGZ1bmN0aW9uYWxpdHkuIE5vZGUgc2lkZSBpcyBuby1vcC5cbiAgaWYgKG9uID09IHVuZGVmaW5lZCkgb24gPSB0cnVlO1xuICB0aGlzLl93aXRoQ3JlZGVudGlhbHMgPSBvbjtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCB0aGUgbWF4IHJlZGlyZWN0cyB0byBgbmAuIERvZXMgbm90aW5nIGluIGJyb3dzZXIgWEhSIGltcGxlbWVudGF0aW9uLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLnJlZGlyZWN0cyA9IGZ1bmN0aW9uKG4pe1xuICB0aGlzLl9tYXhSZWRpcmVjdHMgPSBuO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogTWF4aW11bSBzaXplIG9mIGJ1ZmZlcmVkIHJlc3BvbnNlIGJvZHksIGluIGJ5dGVzLiBDb3VudHMgdW5jb21wcmVzc2VkIHNpemUuXG4gKiBEZWZhdWx0IDIwME1CLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqL1xuUmVxdWVzdEJhc2UucHJvdG90eXBlLm1heFJlc3BvbnNlU2l6ZSA9IGZ1bmN0aW9uKG4pe1xuICBpZiAoJ251bWJlcicgIT09IHR5cGVvZiBuKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhcmd1bWVudFwiKTtcbiAgfVxuICB0aGlzLl9tYXhSZXNwb25zZVNpemUgPSBuO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQ29udmVydCB0byBhIHBsYWluIGphdmFzY3JpcHQgb2JqZWN0IChub3QgSlNPTiBzdHJpbmcpIG9mIHNjYWxhciBwcm9wZXJ0aWVzLlxuICogTm90ZSBhcyB0aGlzIG1ldGhvZCBpcyBkZXNpZ25lZCB0byByZXR1cm4gYSB1c2VmdWwgbm9uLXRoaXMgdmFsdWUsXG4gKiBpdCBjYW5ub3QgYmUgY2hhaW5lZC5cbiAqXG4gKiBAcmV0dXJuIHtPYmplY3R9IGRlc2NyaWJpbmcgbWV0aG9kLCB1cmwsIGFuZCBkYXRhIG9mIHRoaXMgcmVxdWVzdFxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7XG4gICAgbWV0aG9kOiB0aGlzLm1ldGhvZCxcbiAgICB1cmw6IHRoaXMudXJsLFxuICAgIGRhdGE6IHRoaXMuX2RhdGEsXG4gICAgaGVhZGVyczogdGhpcy5faGVhZGVyLFxuICB9O1xufTtcblxuLyoqXG4gKiBTZW5kIGBkYXRhYCBhcyB0aGUgcmVxdWVzdCBib2R5LCBkZWZhdWx0aW5nIHRoZSBgLnR5cGUoKWAgdG8gXCJqc29uXCIgd2hlblxuICogYW4gb2JqZWN0IGlzIGdpdmVuLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgICAgIC8vIG1hbnVhbCBqc29uXG4gKiAgICAgICByZXF1ZXN0LnBvc3QoJy91c2VyJylcbiAqICAgICAgICAgLnR5cGUoJ2pzb24nKVxuICogICAgICAgICAuc2VuZCgne1wibmFtZVwiOlwidGpcIn0nKVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIGF1dG8ganNvblxuICogICAgICAgcmVxdWVzdC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgIC5zZW5kKHsgbmFtZTogJ3RqJyB9KVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIG1hbnVhbCB4LXd3dy1mb3JtLXVybGVuY29kZWRcbiAqICAgICAgIHJlcXVlc3QucG9zdCgnL3VzZXInKVxuICogICAgICAgICAudHlwZSgnZm9ybScpXG4gKiAgICAgICAgIC5zZW5kKCduYW1lPXRqJylcbiAqICAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKiAgICAgICAvLyBhdXRvIHgtd3d3LWZvcm0tdXJsZW5jb2RlZFxuICogICAgICAgcmVxdWVzdC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgIC50eXBlKCdmb3JtJylcbiAqICAgICAgICAgLnNlbmQoeyBuYW1lOiAndGonIH0pXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICogICAgICAgLy8gZGVmYXVsdHMgdG8geC13d3ctZm9ybS11cmxlbmNvZGVkXG4gKiAgICAgIHJlcXVlc3QucG9zdCgnL3VzZXInKVxuICogICAgICAgIC5zZW5kKCduYW1lPXRvYmknKVxuICogICAgICAgIC5zZW5kKCdzcGVjaWVzPWZlcnJldCcpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGRhdGFcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuc2VuZCA9IGZ1bmN0aW9uKGRhdGEpe1xuICB2YXIgaXNPYmogPSBpc09iamVjdChkYXRhKTtcbiAgdmFyIHR5cGUgPSB0aGlzLl9oZWFkZXJbJ2NvbnRlbnQtdHlwZSddO1xuXG4gIGlmICh0aGlzLl9mb3JtRGF0YSkge1xuICAgIGNvbnNvbGUuZXJyb3IoXCIuc2VuZCgpIGNhbid0IGJlIHVzZWQgaWYgLmF0dGFjaCgpIG9yIC5maWVsZCgpIGlzIHVzZWQuIFBsZWFzZSB1c2Ugb25seSAuc2VuZCgpIG9yIG9ubHkgLmZpZWxkKCkgJiAuYXR0YWNoKClcIik7XG4gIH1cblxuICBpZiAoaXNPYmogJiYgIXRoaXMuX2RhdGEpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgdGhpcy5fZGF0YSA9IFtdO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuX2lzSG9zdChkYXRhKSkge1xuICAgICAgdGhpcy5fZGF0YSA9IHt9O1xuICAgIH1cbiAgfSBlbHNlIGlmIChkYXRhICYmIHRoaXMuX2RhdGEgJiYgdGhpcy5faXNIb3N0KHRoaXMuX2RhdGEpKSB7XG4gICAgdGhyb3cgRXJyb3IoXCJDYW4ndCBtZXJnZSB0aGVzZSBzZW5kIGNhbGxzXCIpO1xuICB9XG5cbiAgLy8gbWVyZ2VcbiAgaWYgKGlzT2JqICYmIGlzT2JqZWN0KHRoaXMuX2RhdGEpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIGRhdGEpIHtcbiAgICAgIHRoaXMuX2RhdGFba2V5XSA9IGRhdGFba2V5XTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoJ3N0cmluZycgPT0gdHlwZW9mIGRhdGEpIHtcbiAgICAvLyBkZWZhdWx0IHRvIHgtd3d3LWZvcm0tdXJsZW5jb2RlZFxuICAgIGlmICghdHlwZSkgdGhpcy50eXBlKCdmb3JtJyk7XG4gICAgdHlwZSA9IHRoaXMuX2hlYWRlclsnY29udGVudC10eXBlJ107XG4gICAgaWYgKCdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnID09IHR5cGUpIHtcbiAgICAgIHRoaXMuX2RhdGEgPSB0aGlzLl9kYXRhXG4gICAgICAgID8gdGhpcy5fZGF0YSArICcmJyArIGRhdGFcbiAgICAgICAgOiBkYXRhO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kYXRhID0gKHRoaXMuX2RhdGEgfHwgJycpICsgZGF0YTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5fZGF0YSA9IGRhdGE7XG4gIH1cblxuICBpZiAoIWlzT2JqIHx8IHRoaXMuX2lzSG9zdChkYXRhKSkge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gZGVmYXVsdCB0byBqc29uXG4gIGlmICghdHlwZSkgdGhpcy50eXBlKCdqc29uJyk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTb3J0IGBxdWVyeXN0cmluZ2AgYnkgdGhlIHNvcnQgZnVuY3Rpb25cbiAqXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgICAgLy8gZGVmYXVsdCBvcmRlclxuICogICAgICAgcmVxdWVzdC5nZXQoJy91c2VyJylcbiAqICAgICAgICAgLnF1ZXJ5KCduYW1lPU5pY2snKVxuICogICAgICAgICAucXVlcnkoJ3NlYXJjaD1NYW5ueScpXG4gKiAgICAgICAgIC5zb3J0UXVlcnkoKVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIGN1c3RvbWl6ZWQgc29ydCBmdW5jdGlvblxuICogICAgICAgcmVxdWVzdC5nZXQoJy91c2VyJylcbiAqICAgICAgICAgLnF1ZXJ5KCduYW1lPU5pY2snKVxuICogICAgICAgICAucXVlcnkoJ3NlYXJjaD1NYW5ueScpXG4gKiAgICAgICAgIC5zb3J0UXVlcnkoZnVuY3Rpb24oYSwgYil7XG4gKiAgICAgICAgICAgcmV0dXJuIGEubGVuZ3RoIC0gYi5sZW5ndGg7XG4gKiAgICAgICAgIH0pXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHNvcnRcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuc29ydFF1ZXJ5ID0gZnVuY3Rpb24oc29ydCkge1xuICAvLyBfc29ydCBkZWZhdWx0IHRvIHRydWUgYnV0IG90aGVyd2lzZSBjYW4gYmUgYSBmdW5jdGlvbiBvciBib29sZWFuXG4gIHRoaXMuX3NvcnQgPSB0eXBlb2Ygc29ydCA9PT0gJ3VuZGVmaW5lZCcgPyB0cnVlIDogc29ydDtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIENvbXBvc2UgcXVlcnlzdHJpbmcgdG8gYXBwZW5kIHRvIHJlcS51cmxcbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuUmVxdWVzdEJhc2UucHJvdG90eXBlLl9maW5hbGl6ZVF1ZXJ5U3RyaW5nID0gZnVuY3Rpb24oKXtcbiAgdmFyIHF1ZXJ5ID0gdGhpcy5fcXVlcnkuam9pbignJicpO1xuICBpZiAocXVlcnkpIHtcbiAgICB0aGlzLnVybCArPSAodGhpcy51cmwuaW5kZXhPZignPycpID49IDAgPyAnJicgOiAnPycpICsgcXVlcnk7XG4gIH1cbiAgdGhpcy5fcXVlcnkubGVuZ3RoID0gMDsgLy8gTWFrZXMgdGhlIGNhbGwgaWRlbXBvdGVudFxuXG4gIGlmICh0aGlzLl9zb3J0KSB7XG4gICAgdmFyIGluZGV4ID0gdGhpcy51cmwuaW5kZXhPZignPycpO1xuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICB2YXIgcXVlcnlBcnIgPSB0aGlzLnVybC5zdWJzdHJpbmcoaW5kZXggKyAxKS5zcGxpdCgnJicpO1xuICAgICAgaWYgKCdmdW5jdGlvbicgPT09IHR5cGVvZiB0aGlzLl9zb3J0KSB7XG4gICAgICAgIHF1ZXJ5QXJyLnNvcnQodGhpcy5fc29ydCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBxdWVyeUFyci5zb3J0KCk7XG4gICAgICB9XG4gICAgICB0aGlzLnVybCA9IHRoaXMudXJsLnN1YnN0cmluZygwLCBpbmRleCkgKyAnPycgKyBxdWVyeUFyci5qb2luKCcmJyk7XG4gICAgfVxuICB9XG59O1xuXG4vLyBGb3IgYmFja3dhcmRzIGNvbXBhdCBvbmx5XG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuX2FwcGVuZFF1ZXJ5U3RyaW5nID0gZnVuY3Rpb24oKSB7Y29uc29sZS50cmFjZShcIlVuc3VwcG9ydGVkXCIpO31cblxuLyoqXG4gKiBJbnZva2UgY2FsbGJhY2sgd2l0aCB0aW1lb3V0IGVycm9yLlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5fdGltZW91dEVycm9yID0gZnVuY3Rpb24ocmVhc29uLCB0aW1lb3V0LCBlcnJubyl7XG4gIGlmICh0aGlzLl9hYm9ydGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciBlcnIgPSBuZXcgRXJyb3IocmVhc29uICsgdGltZW91dCArICdtcyBleGNlZWRlZCcpO1xuICBlcnIudGltZW91dCA9IHRpbWVvdXQ7XG4gIGVyci5jb2RlID0gJ0VDT05OQUJPUlRFRCc7XG4gIGVyci5lcnJubyA9IGVycm5vO1xuICB0aGlzLnRpbWVkb3V0ID0gdHJ1ZTtcbiAgdGhpcy5hYm9ydCgpO1xuICB0aGlzLmNhbGxiYWNrKGVycik7XG59O1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuX3NldFRpbWVvdXRzID0gZnVuY3Rpb24oKSB7XG4gIHZhciBzZWxmID0gdGhpcztcblxuICAvLyBkZWFkbGluZVxuICBpZiAodGhpcy5fdGltZW91dCAmJiAhdGhpcy5fdGltZXIpIHtcbiAgICB0aGlzLl90aW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcbiAgICAgIHNlbGYuX3RpbWVvdXRFcnJvcignVGltZW91dCBvZiAnLCBzZWxmLl90aW1lb3V0LCAnRVRJTUUnKTtcbiAgICB9LCB0aGlzLl90aW1lb3V0KTtcbiAgfVxuICAvLyByZXNwb25zZSB0aW1lb3V0XG4gIGlmICh0aGlzLl9yZXNwb25zZVRpbWVvdXQgJiYgIXRoaXMuX3Jlc3BvbnNlVGltZW91dFRpbWVyKSB7XG4gICAgdGhpcy5fcmVzcG9uc2VUaW1lb3V0VGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XG4gICAgICBzZWxmLl90aW1lb3V0RXJyb3IoJ1Jlc3BvbnNlIHRpbWVvdXQgb2YgJywgc2VsZi5fcmVzcG9uc2VUaW1lb3V0LCAnRVRJTUVET1VUJyk7XG4gICAgfSwgdGhpcy5fcmVzcG9uc2VUaW1lb3V0KTtcbiAgfVxufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3N1cGVyYWdlbnQvbGliL3JlcXVlc3QtYmFzZS5qc1xuLy8gbW9kdWxlIGlkID0gMTkzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///193\n"); +eval("\n\n/**\n * Module of mixed-in functions shared between node and client code\n */\nvar isObject = __webpack_require__(96);\n\n/**\n * Expose `RequestBase`.\n */\n\nmodule.exports = RequestBase;\n\n/**\n * Initialize a new `RequestBase`.\n *\n * @api public\n */\n\nfunction RequestBase(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in RequestBase.prototype) {\n obj[key] = RequestBase.prototype[key];\n }\n return obj;\n}\n\n/**\n * Clear previous timeout.\n *\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.clearTimeout = function _clearTimeout(){\n clearTimeout(this._timer);\n clearTimeout(this._responseTimeoutTimer);\n delete this._timer;\n delete this._responseTimeoutTimer;\n return this;\n};\n\n/**\n * Override default response body parser\n *\n * This function will be called to convert incoming data into request.body\n *\n * @param {Function}\n * @api public\n */\n\nRequestBase.prototype.parse = function parse(fn){\n this._parser = fn;\n return this;\n};\n\n/**\n * Set format of binary response body.\n * In browser valid formats are 'blob' and 'arraybuffer',\n * which return Blob and ArrayBuffer, respectively.\n *\n * In Node all values result in Buffer.\n *\n * Examples:\n *\n * req.get('/')\n * .responseType('blob')\n * .end(callback);\n *\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.responseType = function(val){\n this._responseType = val;\n return this;\n};\n\n/**\n * Override default request body serializer\n *\n * This function will be called to convert data set via .send or .attach into payload to send\n *\n * @param {Function}\n * @api public\n */\n\nRequestBase.prototype.serialize = function serialize(fn){\n this._serializer = fn;\n return this;\n};\n\n/**\n * Set timeouts.\n *\n * - response timeout is time between sending request and receiving the first byte of the response. Includes DNS and connection time.\n * - deadline is the time from start of the request to receiving response body in full. If the deadline is too short large files may not load at all on slow connections.\n *\n * Value of 0 or false means no timeout.\n *\n * @param {Number|Object} ms or {response, deadline}\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.timeout = function timeout(options){\n if (!options || 'object' !== typeof options) {\n this._timeout = options;\n this._responseTimeout = 0;\n return this;\n }\n\n for(var option in options) {\n switch(option) {\n case 'deadline':\n this._timeout = options.deadline;\n break;\n case 'response':\n this._responseTimeout = options.response;\n break;\n default:\n console.warn(\"Unknown timeout option\", option);\n }\n }\n return this;\n};\n\n/**\n * Set number of retry attempts on error.\n *\n * Failed requests will be retried 'count' times if timeout or err.code >= 500.\n *\n * @param {Number} count\n * @param {Function} [fn]\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.retry = function retry(count, fn){\n // Default to 1 if no count passed or true\n if (arguments.length === 0 || count === true) count = 1;\n if (count <= 0) count = 0;\n this._maxRetries = count;\n this._retries = 0;\n this._retryCallback = fn;\n return this;\n};\n\nvar ERROR_CODES = [\n 'ECONNRESET',\n 'ETIMEDOUT',\n 'EADDRINFO',\n 'ESOCKETTIMEDOUT'\n];\n\n/**\n * Determine if a request should be retried.\n * (Borrowed from segmentio/superagent-retry)\n *\n * @param {Error} err\n * @param {Response} [res]\n * @returns {Boolean}\n */\nRequestBase.prototype._shouldRetry = function(err, res) {\n if (!this._maxRetries || this._retries++ >= this._maxRetries) {\n return false;\n }\n if (this._retryCallback) {\n try {\n var override = this._retryCallback(err, res);\n if (override === true) return true;\n if (override === false) return false;\n // undefined falls back to defaults\n } catch(e) {\n console.error(e);\n }\n }\n if (res && res.status && res.status >= 500 && res.status != 501) return true;\n if (err) {\n if (err.code && ~ERROR_CODES.indexOf(err.code)) return true;\n // Superagent timeout\n if (err.timeout && err.code == 'ECONNABORTED') return true;\n if (err.crossDomain) return true;\n }\n return false;\n};\n\n/**\n * Retry request\n *\n * @return {Request} for chaining\n * @api private\n */\n\nRequestBase.prototype._retry = function() {\n\n this.clearTimeout();\n\n // node\n if (this.req) {\n this.req = null;\n this.req = this.request();\n }\n\n this._aborted = false;\n this.timedout = false;\n\n return this._end();\n};\n\n/**\n * Promise support\n *\n * @param {Function} resolve\n * @param {Function} [reject]\n * @return {Request}\n */\n\nRequestBase.prototype.then = function then(resolve, reject) {\n if (!this._fullfilledPromise) {\n var self = this;\n if (this._endCalled) {\n console.warn(\"Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises\");\n }\n this._fullfilledPromise = new Promise(function(innerResolve, innerReject) {\n self.end(function(err, res) {\n if (err) innerReject(err);\n else innerResolve(res);\n });\n });\n }\n return this._fullfilledPromise.then(resolve, reject);\n};\n\nRequestBase.prototype.catch = function(cb) {\n return this.then(undefined, cb);\n};\n\n/**\n * Allow for extension\n */\n\nRequestBase.prototype.use = function use(fn) {\n fn(this);\n return this;\n};\n\nRequestBase.prototype.ok = function(cb) {\n if ('function' !== typeof cb) throw Error(\"Callback required\");\n this._okCallback = cb;\n return this;\n};\n\nRequestBase.prototype._isResponseOK = function(res) {\n if (!res) {\n return false;\n }\n\n if (this._okCallback) {\n return this._okCallback(res);\n }\n\n return res.status >= 200 && res.status < 300;\n};\n\n/**\n * Get request header `field`.\n * Case-insensitive.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\nRequestBase.prototype.get = function(field){\n return this._header[field.toLowerCase()];\n};\n\n/**\n * Get case-insensitive header `field` value.\n * This is a deprecated internal API. Use `.get(field)` instead.\n *\n * (getHeader is no longer used internally by the superagent code base)\n *\n * @param {String} field\n * @return {String}\n * @api private\n * @deprecated\n */\n\nRequestBase.prototype.getHeader = RequestBase.prototype.get;\n\n/**\n * Set header `field` to `val`, or multiple fields with one object.\n * Case-insensitive.\n *\n * Examples:\n *\n * req.get('/')\n * .set('Accept', 'application/json')\n * .set('X-API-Key', 'foobar')\n * .end(callback);\n *\n * req.get('/')\n * .set({ Accept: 'application/json', 'X-API-Key': 'foobar' })\n * .end(callback);\n *\n * @param {String|Object} field\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.set = function(field, val){\n if (isObject(field)) {\n for (var key in field) {\n this.set(key, field[key]);\n }\n return this;\n }\n this._header[field.toLowerCase()] = val;\n this.header[field] = val;\n return this;\n};\n\n/**\n * Remove header `field`.\n * Case-insensitive.\n *\n * Example:\n *\n * req.get('/')\n * .unset('User-Agent')\n * .end(callback);\n *\n * @param {String} field\n */\nRequestBase.prototype.unset = function(field){\n delete this._header[field.toLowerCase()];\n delete this.header[field];\n return this;\n};\n\n/**\n * Write the field `name` and `val`, or multiple fields with one object\n * for \"multipart/form-data\" request bodies.\n *\n * ``` js\n * request.post('/upload')\n * .field('foo', 'bar')\n * .end(callback);\n *\n * request.post('/upload')\n * .field({ foo: 'bar', baz: 'qux' })\n * .end(callback);\n * ```\n *\n * @param {String|Object} name\n * @param {String|Blob|File|Buffer|fs.ReadStream} val\n * @return {Request} for chaining\n * @api public\n */\nRequestBase.prototype.field = function(name, val) {\n // name should be either a string or an object.\n if (null === name || undefined === name) {\n throw new Error('.field(name, val) name can not be empty');\n }\n\n if (this._data) {\n console.error(\".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObject(name)) {\n for (var key in name) {\n this.field(key, name[key]);\n }\n return this;\n }\n\n if (Array.isArray(val)) {\n for (var i in val) {\n this.field(name, val[i]);\n }\n return this;\n }\n\n // val should be defined now\n if (null === val || undefined === val) {\n throw new Error('.field(name, val) val can not be empty');\n }\n if ('boolean' === typeof val) {\n val = '' + val;\n }\n this._getFormData().append(name, val);\n return this;\n};\n\n/**\n * Abort the request, and clear potential timeout.\n *\n * @return {Request}\n * @api public\n */\nRequestBase.prototype.abort = function(){\n if (this._aborted) {\n return this;\n }\n this._aborted = true;\n this.xhr && this.xhr.abort(); // browser\n this.req && this.req.abort(); // node\n this.clearTimeout();\n this.emit('abort');\n return this;\n};\n\nRequestBase.prototype._auth = function(user, pass, options, base64Encoder) {\n switch (options.type) {\n case 'basic':\n this.set('Authorization', 'Basic ' + base64Encoder(user + ':' + pass));\n break;\n\n case 'auto':\n this.username = user;\n this.password = pass;\n break;\n\n case 'bearer': // usage would be .auth(accessToken, { type: 'bearer' })\n this.set('Authorization', 'Bearer ' + user);\n break;\n }\n return this;\n};\n\n/**\n * Enable transmission of cookies with x-domain requests.\n *\n * Note that for this to work the origin must not be\n * using \"Access-Control-Allow-Origin\" with a wildcard,\n * and also must set \"Access-Control-Allow-Credentials\"\n * to \"true\".\n *\n * @api public\n */\n\nRequestBase.prototype.withCredentials = function(on) {\n // This is browser-only functionality. Node side is no-op.\n if (on == undefined) on = true;\n this._withCredentials = on;\n return this;\n};\n\n/**\n * Set the max redirects to `n`. Does noting in browser XHR implementation.\n *\n * @param {Number} n\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.redirects = function(n){\n this._maxRedirects = n;\n return this;\n};\n\n/**\n * Maximum size of buffered response body, in bytes. Counts uncompressed size.\n * Default 200MB.\n *\n * @param {Number} n\n * @return {Request} for chaining\n */\nRequestBase.prototype.maxResponseSize = function(n){\n if ('number' !== typeof n) {\n throw TypeError(\"Invalid argument\");\n }\n this._maxResponseSize = n;\n return this;\n};\n\n/**\n * Convert to a plain javascript object (not JSON string) of scalar properties.\n * Note as this method is designed to return a useful non-this value,\n * it cannot be chained.\n *\n * @return {Object} describing method, url, and data of this request\n * @api public\n */\n\nRequestBase.prototype.toJSON = function() {\n return {\n method: this.method,\n url: this.url,\n data: this._data,\n headers: this._header,\n };\n};\n\n/**\n * Send `data` as the request body, defaulting the `.type()` to \"json\" when\n * an object is given.\n *\n * Examples:\n *\n * // manual json\n * request.post('/user')\n * .type('json')\n * .send('{\"name\":\"tj\"}')\n * .end(callback)\n *\n * // auto json\n * request.post('/user')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // manual x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send('name=tj')\n * .end(callback)\n *\n * // auto x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // defaults to x-www-form-urlencoded\n * request.post('/user')\n * .send('name=tobi')\n * .send('species=ferret')\n * .end(callback)\n *\n * @param {String|Object} data\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.send = function(data){\n var isObj = isObject(data);\n var type = this._header['content-type'];\n\n if (this._formData) {\n console.error(\".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObj && !this._data) {\n if (Array.isArray(data)) {\n this._data = [];\n } else if (!this._isHost(data)) {\n this._data = {};\n }\n } else if (data && this._data && this._isHost(this._data)) {\n throw Error(\"Can't merge these send calls\");\n }\n\n // merge\n if (isObj && isObject(this._data)) {\n for (var key in data) {\n this._data[key] = data[key];\n }\n } else if ('string' == typeof data) {\n // default to x-www-form-urlencoded\n if (!type) this.type('form');\n type = this._header['content-type'];\n if ('application/x-www-form-urlencoded' == type) {\n this._data = this._data\n ? this._data + '&' + data\n : data;\n } else {\n this._data = (this._data || '') + data;\n }\n } else {\n this._data = data;\n }\n\n if (!isObj || this._isHost(data)) {\n return this;\n }\n\n // default to json\n if (!type) this.type('json');\n return this;\n};\n\n/**\n * Sort `querystring` by the sort function\n *\n *\n * Examples:\n *\n * // default order\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery()\n * .end(callback)\n *\n * // customized sort function\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery(function(a, b){\n * return a.length - b.length;\n * })\n * .end(callback)\n *\n *\n * @param {Function} sort\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.sortQuery = function(sort) {\n // _sort default to true but otherwise can be a function or boolean\n this._sort = typeof sort === 'undefined' ? true : sort;\n return this;\n};\n\n/**\n * Compose querystring to append to req.url\n *\n * @api private\n */\nRequestBase.prototype._finalizeQueryString = function(){\n var query = this._query.join('&');\n if (query) {\n this.url += (this.url.indexOf('?') >= 0 ? '&' : '?') + query;\n }\n this._query.length = 0; // Makes the call idempotent\n\n if (this._sort) {\n var index = this.url.indexOf('?');\n if (index >= 0) {\n var queryArr = this.url.substring(index + 1).split('&');\n if ('function' === typeof this._sort) {\n queryArr.sort(this._sort);\n } else {\n queryArr.sort();\n }\n this.url = this.url.substring(0, index) + '?' + queryArr.join('&');\n }\n }\n};\n\n// For backwards compat only\nRequestBase.prototype._appendQueryString = function() {console.trace(\"Unsupported\");}\n\n/**\n * Invoke callback with timeout error.\n *\n * @api private\n */\n\nRequestBase.prototype._timeoutError = function(reason, timeout, errno){\n if (this._aborted) {\n return;\n }\n var err = new Error(reason + timeout + 'ms exceeded');\n err.timeout = timeout;\n err.code = 'ECONNABORTED';\n err.errno = errno;\n this.timedout = true;\n this.abort();\n this.callback(err);\n};\n\nRequestBase.prototype._setTimeouts = function() {\n var self = this;\n\n // deadline\n if (this._timeout && !this._timer) {\n this._timer = setTimeout(function(){\n self._timeoutError('Timeout of ', self._timeout, 'ETIME');\n }, this._timeout);\n }\n // response timeout\n if (this._responseTimeout && !this._responseTimeoutTimer) {\n this._responseTimeoutTimer = setTimeout(function(){\n self._timeoutError('Response timeout of ', self._responseTimeout, 'ETIMEDOUT');\n }, this._responseTimeout);\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvc3VwZXJhZ2VudC9saWIvcmVxdWVzdC1iYXNlLmpzP2EzOTYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFlBQVksUUFBUTtBQUNwQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxjQUFjLFFBQVE7QUFDakMsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLFNBQVM7QUFDcEIsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsdURBQXVEOztBQUV2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSIsImZpbGUiOiIxOTMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogTW9kdWxlIG9mIG1peGVkLWluIGZ1bmN0aW9ucyBzaGFyZWQgYmV0d2VlbiBub2RlIGFuZCBjbGllbnQgY29kZVxuICovXG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzLW9iamVjdCcpO1xuXG4vKipcbiAqIEV4cG9zZSBgUmVxdWVzdEJhc2VgLlxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gUmVxdWVzdEJhc2U7XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBhIG5ldyBgUmVxdWVzdEJhc2VgLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gUmVxdWVzdEJhc2Uob2JqKSB7XG4gIGlmIChvYmopIHJldHVybiBtaXhpbihvYmopO1xufVxuXG4vKipcbiAqIE1peGluIHRoZSBwcm90b3R5cGUgcHJvcGVydGllcy5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBtaXhpbihvYmopIHtcbiAgZm9yICh2YXIga2V5IGluIFJlcXVlc3RCYXNlLnByb3RvdHlwZSkge1xuICAgIG9ialtrZXldID0gUmVxdWVzdEJhc2UucHJvdG90eXBlW2tleV07XG4gIH1cbiAgcmV0dXJuIG9iajtcbn1cblxuLyoqXG4gKiBDbGVhciBwcmV2aW91cyB0aW1lb3V0LlxuICpcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuY2xlYXJUaW1lb3V0ID0gZnVuY3Rpb24gX2NsZWFyVGltZW91dCgpe1xuICBjbGVhclRpbWVvdXQodGhpcy5fdGltZXIpO1xuICBjbGVhclRpbWVvdXQodGhpcy5fcmVzcG9uc2VUaW1lb3V0VGltZXIpO1xuICBkZWxldGUgdGhpcy5fdGltZXI7XG4gIGRlbGV0ZSB0aGlzLl9yZXNwb25zZVRpbWVvdXRUaW1lcjtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIE92ZXJyaWRlIGRlZmF1bHQgcmVzcG9uc2UgYm9keSBwYXJzZXJcbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHRvIGNvbnZlcnQgaW5jb21pbmcgZGF0YSBpbnRvIHJlcXVlc3QuYm9keVxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5wYXJzZSA9IGZ1bmN0aW9uIHBhcnNlKGZuKXtcbiAgdGhpcy5fcGFyc2VyID0gZm47XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXQgZm9ybWF0IG9mIGJpbmFyeSByZXNwb25zZSBib2R5LlxuICogSW4gYnJvd3NlciB2YWxpZCBmb3JtYXRzIGFyZSAnYmxvYicgYW5kICdhcnJheWJ1ZmZlcicsXG4gKiB3aGljaCByZXR1cm4gQmxvYiBhbmQgQXJyYXlCdWZmZXIsIHJlc3BlY3RpdmVseS5cbiAqXG4gKiBJbiBOb2RlIGFsbCB2YWx1ZXMgcmVzdWx0IGluIEJ1ZmZlci5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgIHJlcS5nZXQoJy8nKVxuICogICAgICAgIC5yZXNwb25zZVR5cGUoJ2Jsb2InKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB2YWxcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUucmVzcG9uc2VUeXBlID0gZnVuY3Rpb24odmFsKXtcbiAgdGhpcy5fcmVzcG9uc2VUeXBlID0gdmFsO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogT3ZlcnJpZGUgZGVmYXVsdCByZXF1ZXN0IGJvZHkgc2VyaWFsaXplclxuICpcbiAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgdG8gY29udmVydCBkYXRhIHNldCB2aWEgLnNlbmQgb3IgLmF0dGFjaCBpbnRvIHBheWxvYWQgdG8gc2VuZFxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5zZXJpYWxpemUgPSBmdW5jdGlvbiBzZXJpYWxpemUoZm4pe1xuICB0aGlzLl9zZXJpYWxpemVyID0gZm47XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXQgdGltZW91dHMuXG4gKlxuICogLSByZXNwb25zZSB0aW1lb3V0IGlzIHRpbWUgYmV0d2VlbiBzZW5kaW5nIHJlcXVlc3QgYW5kIHJlY2VpdmluZyB0aGUgZmlyc3QgYnl0ZSBvZiB0aGUgcmVzcG9uc2UuIEluY2x1ZGVzIEROUyBhbmQgY29ubmVjdGlvbiB0aW1lLlxuICogLSBkZWFkbGluZSBpcyB0aGUgdGltZSBmcm9tIHN0YXJ0IG9mIHRoZSByZXF1ZXN0IHRvIHJlY2VpdmluZyByZXNwb25zZSBib2R5IGluIGZ1bGwuIElmIHRoZSBkZWFkbGluZSBpcyB0b28gc2hvcnQgbGFyZ2UgZmlsZXMgbWF5IG5vdCBsb2FkIGF0IGFsbCBvbiBzbG93IGNvbm5lY3Rpb25zLlxuICpcbiAqIFZhbHVlIG9mIDAgb3IgZmFsc2UgbWVhbnMgbm8gdGltZW91dC5cbiAqXG4gKiBAcGFyYW0ge051bWJlcnxPYmplY3R9IG1zIG9yIHtyZXNwb25zZSwgZGVhZGxpbmV9XG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLnRpbWVvdXQgPSBmdW5jdGlvbiB0aW1lb3V0KG9wdGlvbnMpe1xuICBpZiAoIW9wdGlvbnMgfHwgJ29iamVjdCcgIT09IHR5cGVvZiBvcHRpb25zKSB7XG4gICAgdGhpcy5fdGltZW91dCA9IG9wdGlvbnM7XG4gICAgdGhpcy5fcmVzcG9uc2VUaW1lb3V0ID0gMDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGZvcih2YXIgb3B0aW9uIGluIG9wdGlvbnMpIHtcbiAgICBzd2l0Y2gob3B0aW9uKSB7XG4gICAgICBjYXNlICdkZWFkbGluZSc6XG4gICAgICAgIHRoaXMuX3RpbWVvdXQgPSBvcHRpb25zLmRlYWRsaW5lO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Jlc3BvbnNlJzpcbiAgICAgICAgdGhpcy5fcmVzcG9uc2VUaW1lb3V0ID0gb3B0aW9ucy5yZXNwb25zZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zb2xlLndhcm4oXCJVbmtub3duIHRpbWVvdXQgb3B0aW9uXCIsIG9wdGlvbik7XG4gICAgfVxuICB9XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXQgbnVtYmVyIG9mIHJldHJ5IGF0dGVtcHRzIG9uIGVycm9yLlxuICpcbiAqIEZhaWxlZCByZXF1ZXN0cyB3aWxsIGJlIHJldHJpZWQgJ2NvdW50JyB0aW1lcyBpZiB0aW1lb3V0IG9yIGVyci5jb2RlID49IDUwMC5cbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gY291bnRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtmbl1cbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUucmV0cnkgPSBmdW5jdGlvbiByZXRyeShjb3VudCwgZm4pe1xuICAvLyBEZWZhdWx0IHRvIDEgaWYgbm8gY291bnQgcGFzc2VkIG9yIHRydWVcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDAgfHwgY291bnQgPT09IHRydWUpIGNvdW50ID0gMTtcbiAgaWYgKGNvdW50IDw9IDApIGNvdW50ID0gMDtcbiAgdGhpcy5fbWF4UmV0cmllcyA9IGNvdW50O1xuICB0aGlzLl9yZXRyaWVzID0gMDtcbiAgdGhpcy5fcmV0cnlDYWxsYmFjayA9IGZuO1xuICByZXR1cm4gdGhpcztcbn07XG5cbnZhciBFUlJPUl9DT0RFUyA9IFtcbiAgJ0VDT05OUkVTRVQnLFxuICAnRVRJTUVET1VUJyxcbiAgJ0VBRERSSU5GTycsXG4gICdFU09DS0VUVElNRURPVVQnXG5dO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHJlcXVlc3Qgc2hvdWxkIGJlIHJldHJpZWQuXG4gKiAoQm9ycm93ZWQgZnJvbSBzZWdtZW50aW8vc3VwZXJhZ2VudC1yZXRyeSlcbiAqXG4gKiBAcGFyYW0ge0Vycm9yfSBlcnJcbiAqIEBwYXJhbSB7UmVzcG9uc2V9IFtyZXNdXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn1cbiAqL1xuUmVxdWVzdEJhc2UucHJvdG90eXBlLl9zaG91bGRSZXRyeSA9IGZ1bmN0aW9uKGVyciwgcmVzKSB7XG4gIGlmICghdGhpcy5fbWF4UmV0cmllcyB8fCB0aGlzLl9yZXRyaWVzKysgPj0gdGhpcy5fbWF4UmV0cmllcykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAodGhpcy5fcmV0cnlDYWxsYmFjaykge1xuICAgIHRyeSB7XG4gICAgICB2YXIgb3ZlcnJpZGUgPSB0aGlzLl9yZXRyeUNhbGxiYWNrKGVyciwgcmVzKTtcbiAgICAgIGlmIChvdmVycmlkZSA9PT0gdHJ1ZSkgcmV0dXJuIHRydWU7XG4gICAgICBpZiAob3ZlcnJpZGUgPT09IGZhbHNlKSByZXR1cm4gZmFsc2U7XG4gICAgICAvLyB1bmRlZmluZWQgZmFsbHMgYmFjayB0byBkZWZhdWx0c1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICB9XG4gIH1cbiAgaWYgKHJlcyAmJiByZXMuc3RhdHVzICYmIHJlcy5zdGF0dXMgPj0gNTAwICYmIHJlcy5zdGF0dXMgIT0gNTAxKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKGVycikge1xuICAgIGlmIChlcnIuY29kZSAmJiB+RVJST1JfQ09ERVMuaW5kZXhPZihlcnIuY29kZSkpIHJldHVybiB0cnVlO1xuICAgIC8vIFN1cGVyYWdlbnQgdGltZW91dFxuICAgIGlmIChlcnIudGltZW91dCAmJiBlcnIuY29kZSA9PSAnRUNPTk5BQk9SVEVEJykgcmV0dXJuIHRydWU7XG4gICAgaWYgKGVyci5jcm9zc0RvbWFpbikgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufTtcblxuLyoqXG4gKiBSZXRyeSByZXF1ZXN0XG4gKlxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuX3JldHJ5ID0gZnVuY3Rpb24oKSB7XG5cbiAgdGhpcy5jbGVhclRpbWVvdXQoKTtcblxuICAvLyBub2RlXG4gIGlmICh0aGlzLnJlcSkge1xuICAgIHRoaXMucmVxID0gbnVsbDtcbiAgICB0aGlzLnJlcSA9IHRoaXMucmVxdWVzdCgpO1xuICB9XG5cbiAgdGhpcy5fYWJvcnRlZCA9IGZhbHNlO1xuICB0aGlzLnRpbWVkb3V0ID0gZmFsc2U7XG5cbiAgcmV0dXJuIHRoaXMuX2VuZCgpO1xufTtcblxuLyoqXG4gKiBQcm9taXNlIHN1cHBvcnRcbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSByZXNvbHZlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcmVqZWN0XVxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUudGhlbiA9IGZ1bmN0aW9uIHRoZW4ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gIGlmICghdGhpcy5fZnVsbGZpbGxlZFByb21pc2UpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgaWYgKHRoaXMuX2VuZENhbGxlZCkge1xuICAgICAgY29uc29sZS53YXJuKFwiV2FybmluZzogc3VwZXJhZ2VudCByZXF1ZXN0IHdhcyBzZW50IHR3aWNlLCBiZWNhdXNlIGJvdGggLmVuZCgpIGFuZCAudGhlbigpIHdlcmUgY2FsbGVkLiBOZXZlciBjYWxsIC5lbmQoKSBpZiB5b3UgdXNlIHByb21pc2VzXCIpO1xuICAgIH1cbiAgICB0aGlzLl9mdWxsZmlsbGVkUHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKGlubmVyUmVzb2x2ZSwgaW5uZXJSZWplY3QpIHtcbiAgICAgIHNlbGYuZW5kKGZ1bmN0aW9uKGVyciwgcmVzKSB7XG4gICAgICAgIGlmIChlcnIpIGlubmVyUmVqZWN0KGVycik7XG4gICAgICAgIGVsc2UgaW5uZXJSZXNvbHZlKHJlcyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gdGhpcy5fZnVsbGZpbGxlZFByb21pc2UudGhlbihyZXNvbHZlLCByZWplY3QpO1xufTtcblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLmNhdGNoID0gZnVuY3Rpb24oY2IpIHtcbiAgcmV0dXJuIHRoaXMudGhlbih1bmRlZmluZWQsIGNiKTtcbn07XG5cbi8qKlxuICogQWxsb3cgZm9yIGV4dGVuc2lvblxuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS51c2UgPSBmdW5jdGlvbiB1c2UoZm4pIHtcbiAgZm4odGhpcyk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLm9rID0gZnVuY3Rpb24oY2IpIHtcbiAgaWYgKCdmdW5jdGlvbicgIT09IHR5cGVvZiBjYikgdGhyb3cgRXJyb3IoXCJDYWxsYmFjayByZXF1aXJlZFwiKTtcbiAgdGhpcy5fb2tDYWxsYmFjayA9IGNiO1xuICByZXR1cm4gdGhpcztcbn07XG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5faXNSZXNwb25zZU9LID0gZnVuY3Rpb24ocmVzKSB7XG4gIGlmICghcmVzKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKHRoaXMuX29rQ2FsbGJhY2spIHtcbiAgICByZXR1cm4gdGhpcy5fb2tDYWxsYmFjayhyZXMpO1xuICB9XG5cbiAgcmV0dXJuIHJlcy5zdGF0dXMgPj0gMjAwICYmIHJlcy5zdGF0dXMgPCAzMDA7XG59O1xuXG4vKipcbiAqIEdldCByZXF1ZXN0IGhlYWRlciBgZmllbGRgLlxuICogQ2FzZS1pbnNlbnNpdGl2ZS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZmllbGRcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uKGZpZWxkKXtcbiAgcmV0dXJuIHRoaXMuX2hlYWRlcltmaWVsZC50b0xvd2VyQ2FzZSgpXTtcbn07XG5cbi8qKlxuICogR2V0IGNhc2UtaW5zZW5zaXRpdmUgaGVhZGVyIGBmaWVsZGAgdmFsdWUuXG4gKiBUaGlzIGlzIGEgZGVwcmVjYXRlZCBpbnRlcm5hbCBBUEkuIFVzZSBgLmdldChmaWVsZClgIGluc3RlYWQuXG4gKlxuICogKGdldEhlYWRlciBpcyBubyBsb25nZXIgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBzdXBlcmFnZW50IGNvZGUgYmFzZSlcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZmllbGRcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICogQGRlcHJlY2F0ZWRcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuZ2V0SGVhZGVyID0gUmVxdWVzdEJhc2UucHJvdG90eXBlLmdldDtcblxuLyoqXG4gKiBTZXQgaGVhZGVyIGBmaWVsZGAgdG8gYHZhbGAsIG9yIG11bHRpcGxlIGZpZWxkcyB3aXRoIG9uZSBvYmplY3QuXG4gKiBDYXNlLWluc2Vuc2l0aXZlLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgICAgcmVxLmdldCgnLycpXG4gKiAgICAgICAgLnNldCgnQWNjZXB0JywgJ2FwcGxpY2F0aW9uL2pzb24nKVxuICogICAgICAgIC5zZXQoJ1gtQVBJLUtleScsICdmb29iYXInKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqICAgICAgcmVxLmdldCgnLycpXG4gKiAgICAgICAgLnNldCh7IEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLCAnWC1BUEktS2V5JzogJ2Zvb2JhcicgfSlcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGZpZWxkXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uKGZpZWxkLCB2YWwpe1xuICBpZiAoaXNPYmplY3QoZmllbGQpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIGZpZWxkKSB7XG4gICAgICB0aGlzLnNldChrZXksIGZpZWxkW2tleV0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICB0aGlzLl9oZWFkZXJbZmllbGQudG9Mb3dlckNhc2UoKV0gPSB2YWw7XG4gIHRoaXMuaGVhZGVyW2ZpZWxkXSA9IHZhbDtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFJlbW92ZSBoZWFkZXIgYGZpZWxkYC5cbiAqIENhc2UtaW5zZW5zaXRpdmUuXG4gKlxuICogRXhhbXBsZTpcbiAqXG4gKiAgICAgIHJlcS5nZXQoJy8nKVxuICogICAgICAgIC51bnNldCgnVXNlci1BZ2VudCcpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGZpZWxkXG4gKi9cblJlcXVlc3RCYXNlLnByb3RvdHlwZS51bnNldCA9IGZ1bmN0aW9uKGZpZWxkKXtcbiAgZGVsZXRlIHRoaXMuX2hlYWRlcltmaWVsZC50b0xvd2VyQ2FzZSgpXTtcbiAgZGVsZXRlIHRoaXMuaGVhZGVyW2ZpZWxkXTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFdyaXRlIHRoZSBmaWVsZCBgbmFtZWAgYW5kIGB2YWxgLCBvciBtdWx0aXBsZSBmaWVsZHMgd2l0aCBvbmUgb2JqZWN0XG4gKiBmb3IgXCJtdWx0aXBhcnQvZm9ybS1kYXRhXCIgcmVxdWVzdCBib2RpZXMuXG4gKlxuICogYGBgIGpzXG4gKiByZXF1ZXN0LnBvc3QoJy91cGxvYWQnKVxuICogICAuZmllbGQoJ2ZvbycsICdiYXInKVxuICogICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiByZXF1ZXN0LnBvc3QoJy91cGxvYWQnKVxuICogICAuZmllbGQoeyBmb286ICdiYXInLCBiYXo6ICdxdXgnIH0pXG4gKiAgIC5lbmQoY2FsbGJhY2spO1xuICogYGBgXG4gKlxuICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSBuYW1lXG4gKiBAcGFyYW0ge1N0cmluZ3xCbG9ifEZpbGV8QnVmZmVyfGZzLlJlYWRTdHJlYW19IHZhbFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuZmllbGQgPSBmdW5jdGlvbihuYW1lLCB2YWwpIHtcbiAgLy8gbmFtZSBzaG91bGQgYmUgZWl0aGVyIGEgc3RyaW5nIG9yIGFuIG9iamVjdC5cbiAgaWYgKG51bGwgPT09IG5hbWUgfHwgdW5kZWZpbmVkID09PSBuYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCcuZmllbGQobmFtZSwgdmFsKSBuYW1lIGNhbiBub3QgYmUgZW1wdHknKTtcbiAgfVxuXG4gIGlmICh0aGlzLl9kYXRhKSB7XG4gICAgY29uc29sZS5lcnJvcihcIi5maWVsZCgpIGNhbid0IGJlIHVzZWQgaWYgLnNlbmQoKSBpcyB1c2VkLiBQbGVhc2UgdXNlIG9ubHkgLnNlbmQoKSBvciBvbmx5IC5maWVsZCgpICYgLmF0dGFjaCgpXCIpO1xuICB9XG5cbiAgaWYgKGlzT2JqZWN0KG5hbWUpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIG5hbWUpIHtcbiAgICAgIHRoaXMuZmllbGQoa2V5LCBuYW1lW2tleV0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICBmb3IgKHZhciBpIGluIHZhbCkge1xuICAgICAgdGhpcy5maWVsZChuYW1lLCB2YWxbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIHZhbCBzaG91bGQgYmUgZGVmaW5lZCBub3dcbiAgaWYgKG51bGwgPT09IHZhbCB8fCB1bmRlZmluZWQgPT09IHZhbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignLmZpZWxkKG5hbWUsIHZhbCkgdmFsIGNhbiBub3QgYmUgZW1wdHknKTtcbiAgfVxuICBpZiAoJ2Jvb2xlYW4nID09PSB0eXBlb2YgdmFsKSB7XG4gICAgdmFsID0gJycgKyB2YWw7XG4gIH1cbiAgdGhpcy5fZ2V0Rm9ybURhdGEoKS5hcHBlbmQobmFtZSwgdmFsKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIEFib3J0IHRoZSByZXF1ZXN0LCBhbmQgY2xlYXIgcG90ZW50aWFsIHRpbWVvdXQuXG4gKlxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5hYm9ydCA9IGZ1bmN0aW9uKCl7XG4gIGlmICh0aGlzLl9hYm9ydGVkKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgdGhpcy5fYWJvcnRlZCA9IHRydWU7XG4gIHRoaXMueGhyICYmIHRoaXMueGhyLmFib3J0KCk7IC8vIGJyb3dzZXJcbiAgdGhpcy5yZXEgJiYgdGhpcy5yZXEuYWJvcnQoKTsgLy8gbm9kZVxuICB0aGlzLmNsZWFyVGltZW91dCgpO1xuICB0aGlzLmVtaXQoJ2Fib3J0Jyk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLl9hdXRoID0gZnVuY3Rpb24odXNlciwgcGFzcywgb3B0aW9ucywgYmFzZTY0RW5jb2Rlcikge1xuICBzd2l0Y2ggKG9wdGlvbnMudHlwZSkge1xuICAgIGNhc2UgJ2Jhc2ljJzpcbiAgICAgIHRoaXMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0Jhc2ljICcgKyBiYXNlNjRFbmNvZGVyKHVzZXIgKyAnOicgKyBwYXNzKSk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2F1dG8nOlxuICAgICAgdGhpcy51c2VybmFtZSA9IHVzZXI7XG4gICAgICB0aGlzLnBhc3N3b3JkID0gcGFzcztcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnYmVhcmVyJzogLy8gdXNhZ2Ugd291bGQgYmUgLmF1dGgoYWNjZXNzVG9rZW4sIHsgdHlwZTogJ2JlYXJlcicgfSlcbiAgICAgIHRoaXMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0JlYXJlciAnICsgdXNlcik7XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogRW5hYmxlIHRyYW5zbWlzc2lvbiBvZiBjb29raWVzIHdpdGggeC1kb21haW4gcmVxdWVzdHMuXG4gKlxuICogTm90ZSB0aGF0IGZvciB0aGlzIHRvIHdvcmsgdGhlIG9yaWdpbiBtdXN0IG5vdCBiZVxuICogdXNpbmcgXCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW5cIiB3aXRoIGEgd2lsZGNhcmQsXG4gKiBhbmQgYWxzbyBtdXN0IHNldCBcIkFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzXCJcbiAqIHRvIFwidHJ1ZVwiLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLndpdGhDcmVkZW50aWFscyA9IGZ1bmN0aW9uKG9uKSB7XG4gIC8vIFRoaXMgaXMgYnJvd3Nlci1vbmx5IGZ1bmN0aW9uYWxpdHkuIE5vZGUgc2lkZSBpcyBuby1vcC5cbiAgaWYgKG9uID09IHVuZGVmaW5lZCkgb24gPSB0cnVlO1xuICB0aGlzLl93aXRoQ3JlZGVudGlhbHMgPSBvbjtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCB0aGUgbWF4IHJlZGlyZWN0cyB0byBgbmAuIERvZXMgbm90aW5nIGluIGJyb3dzZXIgWEhSIGltcGxlbWVudGF0aW9uLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLnJlZGlyZWN0cyA9IGZ1bmN0aW9uKG4pe1xuICB0aGlzLl9tYXhSZWRpcmVjdHMgPSBuO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogTWF4aW11bSBzaXplIG9mIGJ1ZmZlcmVkIHJlc3BvbnNlIGJvZHksIGluIGJ5dGVzLiBDb3VudHMgdW5jb21wcmVzc2VkIHNpemUuXG4gKiBEZWZhdWx0IDIwME1CLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqL1xuUmVxdWVzdEJhc2UucHJvdG90eXBlLm1heFJlc3BvbnNlU2l6ZSA9IGZ1bmN0aW9uKG4pe1xuICBpZiAoJ251bWJlcicgIT09IHR5cGVvZiBuKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhcmd1bWVudFwiKTtcbiAgfVxuICB0aGlzLl9tYXhSZXNwb25zZVNpemUgPSBuO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQ29udmVydCB0byBhIHBsYWluIGphdmFzY3JpcHQgb2JqZWN0IChub3QgSlNPTiBzdHJpbmcpIG9mIHNjYWxhciBwcm9wZXJ0aWVzLlxuICogTm90ZSBhcyB0aGlzIG1ldGhvZCBpcyBkZXNpZ25lZCB0byByZXR1cm4gYSB1c2VmdWwgbm9uLXRoaXMgdmFsdWUsXG4gKiBpdCBjYW5ub3QgYmUgY2hhaW5lZC5cbiAqXG4gKiBAcmV0dXJuIHtPYmplY3R9IGRlc2NyaWJpbmcgbWV0aG9kLCB1cmwsIGFuZCBkYXRhIG9mIHRoaXMgcmVxdWVzdFxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7XG4gICAgbWV0aG9kOiB0aGlzLm1ldGhvZCxcbiAgICB1cmw6IHRoaXMudXJsLFxuICAgIGRhdGE6IHRoaXMuX2RhdGEsXG4gICAgaGVhZGVyczogdGhpcy5faGVhZGVyLFxuICB9O1xufTtcblxuLyoqXG4gKiBTZW5kIGBkYXRhYCBhcyB0aGUgcmVxdWVzdCBib2R5LCBkZWZhdWx0aW5nIHRoZSBgLnR5cGUoKWAgdG8gXCJqc29uXCIgd2hlblxuICogYW4gb2JqZWN0IGlzIGdpdmVuLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgICAgIC8vIG1hbnVhbCBqc29uXG4gKiAgICAgICByZXF1ZXN0LnBvc3QoJy91c2VyJylcbiAqICAgICAgICAgLnR5cGUoJ2pzb24nKVxuICogICAgICAgICAuc2VuZCgne1wibmFtZVwiOlwidGpcIn0nKVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIGF1dG8ganNvblxuICogICAgICAgcmVxdWVzdC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgIC5zZW5kKHsgbmFtZTogJ3RqJyB9KVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIG1hbnVhbCB4LXd3dy1mb3JtLXVybGVuY29kZWRcbiAqICAgICAgIHJlcXVlc3QucG9zdCgnL3VzZXInKVxuICogICAgICAgICAudHlwZSgnZm9ybScpXG4gKiAgICAgICAgIC5zZW5kKCduYW1lPXRqJylcbiAqICAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKiAgICAgICAvLyBhdXRvIHgtd3d3LWZvcm0tdXJsZW5jb2RlZFxuICogICAgICAgcmVxdWVzdC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgIC50eXBlKCdmb3JtJylcbiAqICAgICAgICAgLnNlbmQoeyBuYW1lOiAndGonIH0pXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICogICAgICAgLy8gZGVmYXVsdHMgdG8geC13d3ctZm9ybS11cmxlbmNvZGVkXG4gKiAgICAgIHJlcXVlc3QucG9zdCgnL3VzZXInKVxuICogICAgICAgIC5zZW5kKCduYW1lPXRvYmknKVxuICogICAgICAgIC5zZW5kKCdzcGVjaWVzPWZlcnJldCcpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGRhdGFcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuc2VuZCA9IGZ1bmN0aW9uKGRhdGEpe1xuICB2YXIgaXNPYmogPSBpc09iamVjdChkYXRhKTtcbiAgdmFyIHR5cGUgPSB0aGlzLl9oZWFkZXJbJ2NvbnRlbnQtdHlwZSddO1xuXG4gIGlmICh0aGlzLl9mb3JtRGF0YSkge1xuICAgIGNvbnNvbGUuZXJyb3IoXCIuc2VuZCgpIGNhbid0IGJlIHVzZWQgaWYgLmF0dGFjaCgpIG9yIC5maWVsZCgpIGlzIHVzZWQuIFBsZWFzZSB1c2Ugb25seSAuc2VuZCgpIG9yIG9ubHkgLmZpZWxkKCkgJiAuYXR0YWNoKClcIik7XG4gIH1cblxuICBpZiAoaXNPYmogJiYgIXRoaXMuX2RhdGEpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgdGhpcy5fZGF0YSA9IFtdO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuX2lzSG9zdChkYXRhKSkge1xuICAgICAgdGhpcy5fZGF0YSA9IHt9O1xuICAgIH1cbiAgfSBlbHNlIGlmIChkYXRhICYmIHRoaXMuX2RhdGEgJiYgdGhpcy5faXNIb3N0KHRoaXMuX2RhdGEpKSB7XG4gICAgdGhyb3cgRXJyb3IoXCJDYW4ndCBtZXJnZSB0aGVzZSBzZW5kIGNhbGxzXCIpO1xuICB9XG5cbiAgLy8gbWVyZ2VcbiAgaWYgKGlzT2JqICYmIGlzT2JqZWN0KHRoaXMuX2RhdGEpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIGRhdGEpIHtcbiAgICAgIHRoaXMuX2RhdGFba2V5XSA9IGRhdGFba2V5XTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoJ3N0cmluZycgPT0gdHlwZW9mIGRhdGEpIHtcbiAgICAvLyBkZWZhdWx0IHRvIHgtd3d3LWZvcm0tdXJsZW5jb2RlZFxuICAgIGlmICghdHlwZSkgdGhpcy50eXBlKCdmb3JtJyk7XG4gICAgdHlwZSA9IHRoaXMuX2hlYWRlclsnY29udGVudC10eXBlJ107XG4gICAgaWYgKCdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnID09IHR5cGUpIHtcbiAgICAgIHRoaXMuX2RhdGEgPSB0aGlzLl9kYXRhXG4gICAgICAgID8gdGhpcy5fZGF0YSArICcmJyArIGRhdGFcbiAgICAgICAgOiBkYXRhO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kYXRhID0gKHRoaXMuX2RhdGEgfHwgJycpICsgZGF0YTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5fZGF0YSA9IGRhdGE7XG4gIH1cblxuICBpZiAoIWlzT2JqIHx8IHRoaXMuX2lzSG9zdChkYXRhKSkge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gZGVmYXVsdCB0byBqc29uXG4gIGlmICghdHlwZSkgdGhpcy50eXBlKCdqc29uJyk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTb3J0IGBxdWVyeXN0cmluZ2AgYnkgdGhlIHNvcnQgZnVuY3Rpb25cbiAqXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgICAgLy8gZGVmYXVsdCBvcmRlclxuICogICAgICAgcmVxdWVzdC5nZXQoJy91c2VyJylcbiAqICAgICAgICAgLnF1ZXJ5KCduYW1lPU5pY2snKVxuICogICAgICAgICAucXVlcnkoJ3NlYXJjaD1NYW5ueScpXG4gKiAgICAgICAgIC5zb3J0UXVlcnkoKVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIGN1c3RvbWl6ZWQgc29ydCBmdW5jdGlvblxuICogICAgICAgcmVxdWVzdC5nZXQoJy91c2VyJylcbiAqICAgICAgICAgLnF1ZXJ5KCduYW1lPU5pY2snKVxuICogICAgICAgICAucXVlcnkoJ3NlYXJjaD1NYW5ueScpXG4gKiAgICAgICAgIC5zb3J0UXVlcnkoZnVuY3Rpb24oYSwgYil7XG4gKiAgICAgICAgICAgcmV0dXJuIGEubGVuZ3RoIC0gYi5sZW5ndGg7XG4gKiAgICAgICAgIH0pXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHNvcnRcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuc29ydFF1ZXJ5ID0gZnVuY3Rpb24oc29ydCkge1xuICAvLyBfc29ydCBkZWZhdWx0IHRvIHRydWUgYnV0IG90aGVyd2lzZSBjYW4gYmUgYSBmdW5jdGlvbiBvciBib29sZWFuXG4gIHRoaXMuX3NvcnQgPSB0eXBlb2Ygc29ydCA9PT0gJ3VuZGVmaW5lZCcgPyB0cnVlIDogc29ydDtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIENvbXBvc2UgcXVlcnlzdHJpbmcgdG8gYXBwZW5kIHRvIHJlcS51cmxcbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuUmVxdWVzdEJhc2UucHJvdG90eXBlLl9maW5hbGl6ZVF1ZXJ5U3RyaW5nID0gZnVuY3Rpb24oKXtcbiAgdmFyIHF1ZXJ5ID0gdGhpcy5fcXVlcnkuam9pbignJicpO1xuICBpZiAocXVlcnkpIHtcbiAgICB0aGlzLnVybCArPSAodGhpcy51cmwuaW5kZXhPZignPycpID49IDAgPyAnJicgOiAnPycpICsgcXVlcnk7XG4gIH1cbiAgdGhpcy5fcXVlcnkubGVuZ3RoID0gMDsgLy8gTWFrZXMgdGhlIGNhbGwgaWRlbXBvdGVudFxuXG4gIGlmICh0aGlzLl9zb3J0KSB7XG4gICAgdmFyIGluZGV4ID0gdGhpcy51cmwuaW5kZXhPZignPycpO1xuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICB2YXIgcXVlcnlBcnIgPSB0aGlzLnVybC5zdWJzdHJpbmcoaW5kZXggKyAxKS5zcGxpdCgnJicpO1xuICAgICAgaWYgKCdmdW5jdGlvbicgPT09IHR5cGVvZiB0aGlzLl9zb3J0KSB7XG4gICAgICAgIHF1ZXJ5QXJyLnNvcnQodGhpcy5fc29ydCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBxdWVyeUFyci5zb3J0KCk7XG4gICAgICB9XG4gICAgICB0aGlzLnVybCA9IHRoaXMudXJsLnN1YnN0cmluZygwLCBpbmRleCkgKyAnPycgKyBxdWVyeUFyci5qb2luKCcmJyk7XG4gICAgfVxuICB9XG59O1xuXG4vLyBGb3IgYmFja3dhcmRzIGNvbXBhdCBvbmx5XG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuX2FwcGVuZFF1ZXJ5U3RyaW5nID0gZnVuY3Rpb24oKSB7Y29uc29sZS50cmFjZShcIlVuc3VwcG9ydGVkXCIpO31cblxuLyoqXG4gKiBJbnZva2UgY2FsbGJhY2sgd2l0aCB0aW1lb3V0IGVycm9yLlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5fdGltZW91dEVycm9yID0gZnVuY3Rpb24ocmVhc29uLCB0aW1lb3V0LCBlcnJubyl7XG4gIGlmICh0aGlzLl9hYm9ydGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciBlcnIgPSBuZXcgRXJyb3IocmVhc29uICsgdGltZW91dCArICdtcyBleGNlZWRlZCcpO1xuICBlcnIudGltZW91dCA9IHRpbWVvdXQ7XG4gIGVyci5jb2RlID0gJ0VDT05OQUJPUlRFRCc7XG4gIGVyci5lcnJubyA9IGVycm5vO1xuICB0aGlzLnRpbWVkb3V0ID0gdHJ1ZTtcbiAgdGhpcy5hYm9ydCgpO1xuICB0aGlzLmNhbGxiYWNrKGVycik7XG59O1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuX3NldFRpbWVvdXRzID0gZnVuY3Rpb24oKSB7XG4gIHZhciBzZWxmID0gdGhpcztcblxuICAvLyBkZWFkbGluZVxuICBpZiAodGhpcy5fdGltZW91dCAmJiAhdGhpcy5fdGltZXIpIHtcbiAgICB0aGlzLl90aW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcbiAgICAgIHNlbGYuX3RpbWVvdXRFcnJvcignVGltZW91dCBvZiAnLCBzZWxmLl90aW1lb3V0LCAnRVRJTUUnKTtcbiAgICB9LCB0aGlzLl90aW1lb3V0KTtcbiAgfVxuICAvLyByZXNwb25zZSB0aW1lb3V0XG4gIGlmICh0aGlzLl9yZXNwb25zZVRpbWVvdXQgJiYgIXRoaXMuX3Jlc3BvbnNlVGltZW91dFRpbWVyKSB7XG4gICAgdGhpcy5fcmVzcG9uc2VUaW1lb3V0VGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XG4gICAgICBzZWxmLl90aW1lb3V0RXJyb3IoJ1Jlc3BvbnNlIHRpbWVvdXQgb2YgJywgc2VsZi5fcmVzcG9uc2VUaW1lb3V0LCAnRVRJTUVET1VUJyk7XG4gICAgfSwgdGhpcy5fcmVzcG9uc2VUaW1lb3V0KTtcbiAgfVxufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3N1cGVyYWdlbnQvbGliL3JlcXVlc3QtYmFzZS5qc1xuLy8gbW9kdWxlIGlkID0gMTkzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///193\n"); /***/ }), /* 194 */ @@ -1275,21 +1276,21 @@ eval("function Agent() {\n this._defaults = [];\n}\n\n[\"use\", \"on\", \"once\ /* 197 */ /***/ (function(module, exports, __webpack_require__) { -eval("// 21.2.5.3 get RegExp.prototype.flags()\nif (__webpack_require__(23) && /./g.flags != 'g') __webpack_require__(43).f(RegExp.prototype, 'flags', {\n configurable: true,\n get: __webpack_require__(198)\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5yZWdleHAuZmxhZ3MuanM/YTVkZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMiLCJmaWxlIjoiMTk3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gMjEuMi41LjMgZ2V0IFJlZ0V4cC5wcm90b3R5cGUuZmxhZ3MoKVxuaWYgKHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgJiYgLy4vZy5mbGFncyAhPSAnZycpIHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmYoUmVnRXhwLnByb3RvdHlwZSwgJ2ZsYWdzJywge1xuICBjb25maWd1cmFibGU6IHRydWUsXG4gIGdldDogcmVxdWlyZSgnLi9fZmxhZ3MnKVxufSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnJlZ2V4cC5mbGFncy5qc1xuLy8gbW9kdWxlIGlkID0gMTk3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///197\n"); +eval("// 21.2.5.3 get RegExp.prototype.flags()\nif (__webpack_require__(21) && /./g.flags != 'g') __webpack_require__(45).f(RegExp.prototype, 'flags', {\n configurable: true,\n get: __webpack_require__(198)\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5yZWdleHAuZmxhZ3MuanM/YTVkZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMiLCJmaWxlIjoiMTk3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gMjEuMi41LjMgZ2V0IFJlZ0V4cC5wcm90b3R5cGUuZmxhZ3MoKVxuaWYgKHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgJiYgLy4vZy5mbGFncyAhPSAnZycpIHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmYoUmVnRXhwLnByb3RvdHlwZSwgJ2ZsYWdzJywge1xuICBjb25maWd1cmFibGU6IHRydWUsXG4gIGdldDogcmVxdWlyZSgnLi9fZmxhZ3MnKVxufSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnJlZ2V4cC5mbGFncy5qc1xuLy8gbW9kdWxlIGlkID0gMTk3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///197\n"); /***/ }), /* 198 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(73);\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19mbGFncy5qcz9kMjkxIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjE5OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0Jztcbi8vIDIxLjIuNS4zIGdldCBSZWdFeHAucHJvdG90eXBlLmZsYWdzXG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xuICB2YXIgdGhhdCA9IGFuT2JqZWN0KHRoaXMpO1xuICB2YXIgcmVzdWx0ID0gJyc7XG4gIGlmICh0aGF0Lmdsb2JhbCkgcmVzdWx0ICs9ICdnJztcbiAgaWYgKHRoYXQuaWdub3JlQ2FzZSkgcmVzdWx0ICs9ICdpJztcbiAgaWYgKHRoYXQubXVsdGlsaW5lKSByZXN1bHQgKz0gJ20nO1xuICBpZiAodGhhdC51bmljb2RlKSByZXN1bHQgKz0gJ3UnO1xuICBpZiAodGhhdC5zdGlja3kpIHJlc3VsdCArPSAneSc7XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19mbGFncy5qc1xuLy8gbW9kdWxlIGlkID0gMTk4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///198\n"); +eval("\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(77);\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19mbGFncy5qcz9kMjkxIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjE5OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0Jztcbi8vIDIxLjIuNS4zIGdldCBSZWdFeHAucHJvdG90eXBlLmZsYWdzXG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xuICB2YXIgdGhhdCA9IGFuT2JqZWN0KHRoaXMpO1xuICB2YXIgcmVzdWx0ID0gJyc7XG4gIGlmICh0aGF0Lmdsb2JhbCkgcmVzdWx0ICs9ICdnJztcbiAgaWYgKHRoYXQuaWdub3JlQ2FzZSkgcmVzdWx0ICs9ICdpJztcbiAgaWYgKHRoYXQubXVsdGlsaW5lKSByZXN1bHQgKz0gJ20nO1xuICBpZiAodGhhdC51bmljb2RlKSByZXN1bHQgKz0gJ3UnO1xuICBpZiAodGhhdC5zdGlja3kpIHJlc3VsdCArPSAneSc7XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19mbGFncy5qc1xuLy8gbW9kdWxlIGlkID0gMTk4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///198\n"); /***/ }), /* 199 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _interopRequireWildcard = __webpack_require__(11);\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _delegate = _interopRequireDefault(__webpack_require__(25));\n\nvar tools = _interopRequireWildcard(__webpack_require__(15));\n\nvar _shortcodeState = _interopRequireDefault(__webpack_require__(7));\n\nvar _events = __webpack_require__(16);\n\nvar _termTemplate = __webpack_require__(200);\n\n/**\n * @module Display Settings\n * @description Scripts for settings additional shortcode parameters for display settings.\n */\nvar el = {};\nvar state = {\n termListActive: false\n};\n\nvar setPostsPerPageIndicator = function setPostsPerPageIndicator(value) {\n if (!value) {\n return;\n }\n\n el.postsPerPageIndicator.textContent = '';\n el.postsPerPageIndicator.textContent = value;\n};\n\nvar setPostsPerPageResetValue = function setPostsPerPageResetValue(value) {\n if (!value) {\n return;\n }\n\n el.resetButton.dataset.resetValue = value;\n};\n\nvar resetPostsPerPage = function resetPostsPerPage(event) {\n if (!event) {\n return;\n }\n\n var value = event.delegateTarget.dataset.resetValue;\n _shortcodeState.default.wpAPIDisplaySettings.per_page = value;\n el.postsPerPageField.value = value;\n setPostsPerPageIndicator(value);\n};\n\nvar setPostsPerPage = function setPostsPerPage(event) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var paramPerPage = '';\n\n if (event) {\n paramPerPage = event.delegateTarget.value;\n _shortcodeState.default.wpAPIDisplaySettings.per_page = paramPerPage;\n setPostsPerPageIndicator(paramPerPage);\n return;\n }\n\n if (!params.per_page) {\n setPostsPerPageIndicator(el.postsPerPageIndicator.dataset.default);\n el.postsPerPageField.value = el.postsPerPageIndicator.dataset.default;\n return;\n }\n\n paramPerPage = params.per_page;\n _shortcodeState.default.wpAPIDisplaySettings.per_page = paramPerPage;\n el.postsPerPageField.value = paramPerPage;\n setPostsPerPageIndicator(paramPerPage);\n setPostsPerPageResetValue(paramPerPage);\n};\n\nvar setOrderParam = function setOrderParam(event) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (event) {\n _shortcodeState.default.wpAPIDisplaySettings.order = event.delegateTarget.value;\n return;\n }\n\n var orderParam = params.order ? params.order.toLowerCase() : 'asc';\n var field = tools.getNodes(\"#bc-shortcode-ui__product-order--\".concat(orderParam), false, el.displaySettings, true);\n\n if (field.length === 0) {\n return;\n }\n\n _shortcodeState.default.wpAPIDisplaySettings.order = orderParam;\n field[0].checked = true;\n};\n\nvar setOrderbyParam = function setOrderbyParam(event) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (event) {\n _shortcodeState.default.wpAPIDisplaySettings.orderby = event.delegateTarget.value;\n return;\n }\n\n var orderByParam = params.orderby ? params.orderby.toLowerCase() : 'date';\n var field = tools.getNodes(\"#bc-shortcode-ui__product-orderby--\".concat(orderByParam), false, el.displaySettings, true);\n\n if (field.length === 0) {\n return;\n }\n\n _shortcodeState.default.wpAPIDisplaySettings.orderby = orderByParam;\n field[0].checked = true;\n};\n\nvar showHideDefaultSettingsHeader = function showHideDefaultSettingsHeader() {\n var active = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var header = tools.getNodes('.bc-shortcode-ui__default-header', false, el.displaySettingsHeader, true)[0];\n\n if (!active) {\n tools.removeClass(header, 'active');\n return;\n }\n\n tools.addClass(header, 'active');\n};\n\nvar showHideTermsList = function showHideTermsList() {\n var active = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var header = tools.getNodes('.bc-shortcode-ui__dynamic-listing-header', false, el.displaySettingsHeader, true)[0];\n\n if (!active) {\n tools.removeClass(header, 'active');\n tools.removeClass(el.termsListWrapper, 'active');\n state.termListActive = false;\n return;\n }\n\n state.termListActive = true;\n tools.addClass(header, 'active');\n tools.addClass(el.termsListWrapper, 'active');\n};\n\nvar showHideProductList = function showHideProductList() {\n var active = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var header = tools.getNodes('.bc-shortcode-ui__manual-listing-header', false, el.displaySettingsHeader, true)[0];\n\n if (!active) {\n tools.removeClass(header, 'active');\n tools.removeClass(el.productListWrapper, 'active');\n return;\n }\n\n tools.addClass(el.productListWrapper, 'active');\n tools.addClass(header, 'active');\n};\n\nvar toggleDisplaySettings = function toggleDisplaySettings() {\n if (tools.getChildren(el.productList).length > 0) {\n showHideDefaultSettingsHeader(false);\n showHideTermsList(false);\n showHideProductList(true);\n return;\n }\n\n if (tools.getChildren(el.productList).length <= 0 && tools.getChildren(el.termsList).length > 0) {\n showHideDefaultSettingsHeader(false);\n showHideProductList(false);\n showHideTermsList(true);\n return;\n }\n\n showHideTermsList(false);\n showHideProductList(false);\n showHideDefaultSettingsHeader(true);\n};\n\nvar handleQueryTermRemoval = function handleQueryTermRemoval() {\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var termID = '';\n\n if (event) {\n termID = event.detail.value;\n } else {\n termID = value;\n }\n\n var term = tools.getNodes(\"[data-value=\\\"\".concat(termID, \"\\\"]\"), false, el.termsList, true)[0];\n\n if (!term) {\n return;\n }\n\n var termItem = tools.closest(term, '.bc-shortcode-ui__terms-list-item');\n termItem.parentNode.removeChild(termItem);\n toggleDisplaySettings();\n};\n\nvar removeTermOnClick = function removeTermOnClick(event) {\n var value = event.delegateTarget.dataset.value;\n handleQueryTermRemoval(null, value);\n (0, _events.trigger)({\n event: 'bigcommerce/remove_query_term',\n data: {\n value: value,\n fromSettings: true\n },\n native: false\n });\n};\n\nvar handleQueryTermAddition = function handleQueryTermAddition(data) {\n var termItem = tools.getNodes(\"[data-value=\\\"\".concat(data.detail.value, \"\\\"]\"), false, el.termsList, true)[0];\n\n if (termItem) {\n return;\n }\n\n el.termsList.insertAdjacentHTML('beforeend', (0, _termTemplate.termTemplate)(data.detail));\n toggleDisplaySettings();\n};\n\nvar resetDisplaySettings = function resetDisplaySettings() {\n setPostsPerPageIndicator(el.resetButton.dataset.resetValue);\n _shortcodeState.default.wpAPIDisplaySettings.per_page = '';\n _shortcodeState.default.wpAPIDisplaySettings.orderby = '';\n _shortcodeState.default.wpAPIDisplaySettings.order = '';\n el.termsList.textContent = '';\n};\n\nvar handleSavedUIDisplaySettings = function handleSavedUIDisplaySettings(event) {\n var params = event.detail.params;\n resetDisplaySettings();\n setOrderbyParam(null, params);\n setOrderParam(null, params);\n setPostsPerPage(null, params);\n toggleDisplaySettings();\n};\n\nvar cacheElements = function cacheElements() {\n el.settingsSidebar = tools.getNodes('bc-shortcode-ui-settings')[0];\n el.displaySettings = tools.getNodes('bc-shortcode-ui-display-settings', false, el.settingsSidebar)[0];\n el.resetButton = tools.getNodes('bc-shortcode-ui-reset-posts-per-page', false, el.displaySettings)[0];\n el.postsPerPageField = tools.getNodes('#bc-shortcode-ui__posts-per-page', false, el.displaySettings, true)[0];\n el.postsPerPageIndicator = tools.getNodes('.bc-shortcode-ui__posts-per-page-value', false, el.displaySettings, true)[0];\n el.displaySettingsHeader = tools.getNodes('bc-shortcode-ui-settings-header', false, el.settingsSidebar)[0];\n el.productListWrapper = tools.getNodes('bc-shortcode-ui-selected-products', false, el.settingsSidebar)[0];\n el.productList = tools.getNodes('bc-shortcode-ui-product-list', false, el.productListWrapper)[0];\n el.termsListWrapper = tools.getNodes('bc-shortcode-ui-selected-terms', false, el.settingsSidebar)[0];\n el.termsList = tools.getNodes('bc-shortcode-ui-terms-list', false, el.termsListWrapper)[0];\n};\n\nvar bindEvents = function bindEvents() {\n (0, _delegate.default)(el.displaySettings, '#bc-shortcode-ui__posts-per-page', 'input', setPostsPerPage);\n (0, _delegate.default)(el.displaySettings, '[name=\"bc-shortcode-ui__product-order\"]', 'click', setOrderParam);\n (0, _delegate.default)(el.displaySettings, '[name=\"bc-shortcode-ui__product-orderby\"]', 'click', setOrderbyParam);\n (0, _delegate.default)(el.displaySettings, '[data-js=\"bc-shortcode-ui-reset-posts-per-page\"]', 'click', resetPostsPerPage);\n (0, _delegate.default)(el.settingsSidebar, '[data-js=\"bc-shortcode-ui-remove-term\"]', 'click', removeTermOnClick);\n (0, _events.on)(document, 'bigcommerce/set_shortcode_ui_state', handleSavedUIDisplaySettings);\n (0, _events.on)(document, 'bigcommerce/shortcode_product_list_event', toggleDisplaySettings);\n (0, _events.on)(document, 'bigcommerce/shortcode_query_term_added', handleQueryTermAddition);\n (0, _events.on)(document, 'bigcommerce/shortcode_query_term_removed', handleQueryTermRemoval);\n};\n\nvar init = function init() {\n cacheElements();\n bindEvents();\n};\n\nvar _default = init;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL3Nob3J0Y29kZS11aS9kaXNwbGF5LXNldHRpbmdzLmpzPzBhOTUiXSwibmFtZXMiOlsiZWwiLCJzdGF0ZSIsInRlcm1MaXN0QWN0aXZlIiwic2V0UG9zdHNQZXJQYWdlSW5kaWNhdG9yIiwidmFsdWUiLCJwb3N0c1BlclBhZ2VJbmRpY2F0b3IiLCJ0ZXh0Q29udGVudCIsInNldFBvc3RzUGVyUGFnZVJlc2V0VmFsdWUiLCJyZXNldEJ1dHRvbiIsImRhdGFzZXQiLCJyZXNldFZhbHVlIiwicmVzZXRQb3N0c1BlclBhZ2UiLCJldmVudCIsImRlbGVnYXRlVGFyZ2V0Iiwid3BBUElEaXNwbGF5U2V0dGluZ3MiLCJwZXJfcGFnZSIsInBvc3RzUGVyUGFnZUZpZWxkIiwic2V0UG9zdHNQZXJQYWdlIiwicGFyYW1zIiwicGFyYW1QZXJQYWdlIiwiZGVmYXVsdCIsInNldE9yZGVyUGFyYW0iLCJvcmRlciIsIm9yZGVyUGFyYW0iLCJ0b0xvd2VyQ2FzZSIsImZpZWxkIiwidG9vbHMiLCJnZXROb2RlcyIsImRpc3BsYXlTZXR0aW5ncyIsImxlbmd0aCIsImNoZWNrZWQiLCJzZXRPcmRlcmJ5UGFyYW0iLCJvcmRlcmJ5Iiwib3JkZXJCeVBhcmFtIiwic2hvd0hpZGVEZWZhdWx0U2V0dGluZ3NIZWFkZXIiLCJhY3RpdmUiLCJoZWFkZXIiLCJkaXNwbGF5U2V0dGluZ3NIZWFkZXIiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwic2hvd0hpZGVUZXJtc0xpc3QiLCJ0ZXJtc0xpc3RXcmFwcGVyIiwic2hvd0hpZGVQcm9kdWN0TGlzdCIsInByb2R1Y3RMaXN0V3JhcHBlciIsInRvZ2dsZURpc3BsYXlTZXR0aW5ncyIsImdldENoaWxkcmVuIiwicHJvZHVjdExpc3QiLCJ0ZXJtc0xpc3QiLCJoYW5kbGVRdWVyeVRlcm1SZW1vdmFsIiwidGVybUlEIiwiZGV0YWlsIiwidGVybSIsInRlcm1JdGVtIiwiY2xvc2VzdCIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsInJlbW92ZVRlcm1PbkNsaWNrIiwiZGF0YSIsImZyb21TZXR0aW5ncyIsIm5hdGl2ZSIsImhhbmRsZVF1ZXJ5VGVybUFkZGl0aW9uIiwiaW5zZXJ0QWRqYWNlbnRIVE1MIiwicmVzZXREaXNwbGF5U2V0dGluZ3MiLCJoYW5kbGVTYXZlZFVJRGlzcGxheVNldHRpbmdzIiwiY2FjaGVFbGVtZW50cyIsInNldHRpbmdzU2lkZWJhciIsImJpbmRFdmVudHMiLCJkb2N1bWVudCIsImluaXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBVEE7Ozs7QUFXQSxJQUFNQSxLQUFLLEVBQVg7QUFFQSxJQUFNQyxRQUFRO0FBQ2JDLGtCQUFnQjtBQURILENBQWQ7O0FBSUEsSUFBTUMsMkJBQTJCLFNBQTNCQSx3QkFBMkIsQ0FBQ0MsS0FBRCxFQUFXO0FBQzNDLE1BQUksQ0FBQ0EsS0FBTCxFQUFZO0FBQ1g7QUFDQTs7QUFFREosS0FBR0sscUJBQUgsQ0FBeUJDLFdBQXpCLEdBQXVDLEVBQXZDO0FBQ0FOLEtBQUdLLHFCQUFILENBQXlCQyxXQUF6QixHQUF1Q0YsS0FBdkM7QUFDQSxDQVBEOztBQVNBLElBQU1HLDRCQUE0QixTQUE1QkEseUJBQTRCLENBQUNILEtBQUQsRUFBVztBQUM1QyxNQUFJLENBQUNBLEtBQUwsRUFBWTtBQUNYO0FBQ0E7O0FBRURKLEtBQUdRLFdBQUgsQ0FBZUMsT0FBZixDQUF1QkMsVUFBdkIsR0FBb0NOLEtBQXBDO0FBQ0EsQ0FORDs7QUFRQSxJQUFNTyxvQkFBb0IsU0FBcEJBLGlCQUFvQixDQUFDQyxLQUFELEVBQVc7QUFDcEMsTUFBSSxDQUFDQSxLQUFMLEVBQVk7QUFDWDtBQUNBOztBQUVELE1BQU1SLFFBQVFRLE1BQU1DLGNBQU4sQ0FBcUJKLE9BQXJCLENBQTZCQyxVQUEzQztBQUNBLDBCQUFlSSxvQkFBZixDQUFvQ0MsUUFBcEMsR0FBK0NYLEtBQS9DO0FBQ0FKLEtBQUdnQixp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Q0Esa0JBQUdPLFFBQUgsRUFBYSwwQ0FBYixFQUF5RG5CLHNCQUF6RDtBQUNBLENBVkQ7O0FBWUEsSUFBTW9CLE9BQU8sU0FBUEEsSUFBTyxHQUFNO0FBQ2xCSjtBQUNBRTtBQUNBLENBSEQ7O2VBS2VFLEkiLCJmaWxlIjoiMTk5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIERpc3BsYXkgU2V0dGluZ3NcbiAqIEBkZXNjcmlwdGlvbiBTY3JpcHRzIGZvciBzZXR0aW5ncyBhZGRpdGlvbmFsIHNob3J0Y29kZSBwYXJhbWV0ZXJzIGZvciBkaXNwbGF5IHNldHRpbmdzLlxuICovXG5cbmltcG9ydCBkZWxlZ2F0ZSBmcm9tICdkZWxlZ2F0ZSc7XG5pbXBvcnQgKiBhcyB0b29scyBmcm9tICcuLi8uLi91dGlscy90b29scyc7XG5pbXBvcnQgc2hvcnRjb2RlU3RhdGUgZnJvbSAnLi4vY29uZmlnL3Nob3J0Y29kZS1zdGF0ZSc7XG5pbXBvcnQgeyBvbiwgdHJpZ2dlciB9IGZyb20gJy4uLy4uL3V0aWxzL2V2ZW50cyc7XG5pbXBvcnQgeyB0ZXJtVGVtcGxhdGUgfSBmcm9tICcuL3Rlcm0tdGVtcGxhdGUnO1xuXG5jb25zdCBlbCA9IHt9O1xuXG5jb25zdCBzdGF0ZSA9IHtcblx0dGVybUxpc3RBY3RpdmU6IGZhbHNlLFxufTtcblxuY29uc3Qgc2V0UG9zdHNQZXJQYWdlSW5kaWNhdG9yID0gKHZhbHVlKSA9PiB7XG5cdGlmICghdmFsdWUpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRlbC5wb3N0c1BlclBhZ2VJbmRpY2F0b3IudGV4dENvbnRlbnQgPSAnJztcblx0ZWwucG9zdHNQZXJQYWdlSW5kaWNhdG9yLnRleHRDb250ZW50ID0gdmFsdWU7XG59O1xuXG5jb25zdCBzZXRQb3N0c1BlclBhZ2VSZXNldFZhbHVlID0gKHZhbHVlKSA9PiB7XG5cdGlmICghdmFsdWUpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRlbC5yZXNldEJ1dHRvbi5kYXRhc2V0LnJlc2V0VmFsdWUgPSB2YWx1ZTtcbn07XG5cbmNvbnN0IHJlc2V0UG9zdHNQZXJQYWdlID0gKGV2ZW50KSA9PiB7XG5cdGlmICghZXZlbnQpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCB2YWx1ZSA9IGV2ZW50LmRlbGVnYXRlVGFyZ2V0LmRhdGFzZXQucmVzZXRWYWx1ZTtcblx0c2hvcnRjb2RlU3RhdGUud3BBUElEaXNwbGF5U2V0dGluZ3MucGVyX3BhZ2UgPSB2YWx1ZTtcblx0ZWwucG9zdHNQZXJQYWdlRmllbGQudmFsdWUgPSB2YWx1ZTtcblx0c2V0UG9zdHNQZXJQYWdlSW5kaWNhdG9yKHZhbHVlKTtcbn07XG5cbmNvbnN0IHNldFBvc3RzUGVyUGFnZSA9IChldmVudCwgcGFyYW1zID0ge30pID0+IHtcblx0bGV0IHBhcmFtUGVyUGFnZSA9ICcnO1xuXHRpZiAoZXZlbnQpIHtcblx0XHRwYXJhbVBlclBhZ2UgPSBldmVudC5kZWxlZ2F0ZVRhcmdldC52YWx1ZTtcblx0XHRzaG9ydGNvZGVTdGF0ZS53cEFQSURpc3BsYXlTZXR0aW5ncy5wZXJfcGFnZSA9IHBhcmFtUGVyUGFnZTtcblx0XHRzZXRQb3N0c1BlclBhZ2VJbmRpY2F0b3IocGFyYW1QZXJQYWdlKTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAoIXBhcmFtcy5wZXJfcGFnZSkge1xuXHRcdHNldFBvc3RzUGVyUGFnZUluZGljYXRvcihlbC5wb3N0c1BlclBhZ2VJbmRpY2F0b3IuZGF0YXNldC5kZWZhdWx0KTtcblx0XHRlbC5wb3N0c1BlclBhZ2VGaWVsZC52YWx1ZSA9IGVsLnBvc3RzUGVyUGFnZUluZGljYXRvci5kYXRhc2V0LmRlZmF1bHQ7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0cGFyYW1QZXJQYWdlID0gcGFyYW1zLnBlcl9wYWdlO1xuXHRzaG9ydGNvZGVTdGF0ZS53cEFQSURpc3BsYXlTZXR0aW5ncy5wZXJfcGFnZSA9IHBhcmFtUGVyUGFnZTtcblx0ZWwucG9zdHNQZXJQYWdlRmllbGQudmFsdWUgPSBwYXJhbVBlclBhZ2U7XG5cdHNldFBvc3RzUGVyUGFnZUluZGljYXRvcihwYXJhbVBlclBhZ2UpO1xuXHRzZXRQb3N0c1BlclBhZ2VSZXNldFZhbHVlKHBhcmFtUGVyUGFnZSk7XG59O1xuXG5jb25zdCBzZXRPcmRlclBhcmFtID0gKGV2ZW50LCBwYXJhbXMgPSB7fSkgPT4ge1xuXHRpZiAoZXZlbnQpIHtcblx0XHRzaG9ydGNvZGVTdGF0ZS53cEFQSURpc3BsYXlTZXR0aW5ncy5vcmRlciA9IGV2ZW50LmRlbGVnYXRlVGFyZ2V0LnZhbHVlO1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IG9yZGVyUGFyYW0gPSBwYXJhbXMub3JkZXIgPyBwYXJhbXMub3JkZXIudG9Mb3dlckNhc2UoKSA6ICdhc2MnO1xuXHRjb25zdCBmaWVsZCA9IHRvb2xzLmdldE5vZGVzKGAjYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LW9yZGVyLS0ke29yZGVyUGFyYW19YCwgZmFsc2UsIGVsLmRpc3BsYXlTZXR0aW5ncywgdHJ1ZSk7XG5cblx0aWYgKGZpZWxkLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHNob3J0Y29kZVN0YXRlLndwQVBJRGlzcGxheVNldHRpbmdzLm9yZGVyID0gb3JkZXJQYXJhbTtcblx0ZmllbGRbMF0uY2hlY2tlZCA9IHRydWU7XG59O1xuXG5jb25zdCBzZXRPcmRlcmJ5UGFyYW0gPSAoZXZlbnQsIHBhcmFtcyA9IHt9KSA9PiB7XG5cdGlmIChldmVudCkge1xuXHRcdHNob3J0Y29kZVN0YXRlLndwQVBJRGlzcGxheVNldHRpbmdzLm9yZGVyYnkgPSBldmVudC5kZWxlZ2F0ZVRhcmdldC52YWx1ZTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBvcmRlckJ5UGFyYW0gPSBwYXJhbXMub3JkZXJieSA/IHBhcmFtcy5vcmRlcmJ5LnRvTG93ZXJDYXNlKCkgOiAnZGF0ZSc7XG5cdGNvbnN0IGZpZWxkID0gdG9vbHMuZ2V0Tm9kZXMoYCNiYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3Qtb3JkZXJieS0tJHtvcmRlckJ5UGFyYW19YCwgZmFsc2UsIGVsLmRpc3BsYXlTZXR0aW5ncywgdHJ1ZSk7XG5cblx0aWYgKGZpZWxkLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHNob3J0Y29kZVN0YXRlLndwQVBJRGlzcGxheVNldHRpbmdzLm9yZGVyYnkgPSBvcmRlckJ5UGFyYW07XG5cdGZpZWxkWzBdLmNoZWNrZWQgPSB0cnVlO1xufTtcblxuY29uc3Qgc2hvd0hpZGVEZWZhdWx0U2V0dGluZ3NIZWFkZXIgPSAoYWN0aXZlID0gZmFsc2UpID0+IHtcblx0Y29uc3QgaGVhZGVyID0gdG9vbHMuZ2V0Tm9kZXMoJy5iYy1zaG9ydGNvZGUtdWlfX2RlZmF1bHQtaGVhZGVyJywgZmFsc2UsIGVsLmRpc3BsYXlTZXR0aW5nc0hlYWRlciwgdHJ1ZSlbMF07XG5cblx0aWYgKCFhY3RpdmUpIHtcblx0XHR0b29scy5yZW1vdmVDbGFzcyhoZWFkZXIsICdhY3RpdmUnKTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHR0b29scy5hZGRDbGFzcyhoZWFkZXIsICdhY3RpdmUnKTtcbn07XG5cbmNvbnN0IHNob3dIaWRlVGVybXNMaXN0ID0gKGFjdGl2ZSA9IGZhbHNlKSA9PiB7XG5cdGNvbnN0IGhlYWRlciA9IHRvb2xzLmdldE5vZGVzKCcuYmMtc2hvcnRjb2RlLXVpX19keW5hbWljLWxpc3RpbmctaGVhZGVyJywgZmFsc2UsIGVsLmRpc3BsYXlTZXR0aW5nc0hlYWRlciwgdHJ1ZSlbMF07XG5cblx0aWYgKCFhY3RpdmUpIHtcblx0XHR0b29scy5yZW1vdmVDbGFzcyhoZWFkZXIsICdhY3RpdmUnKTtcblx0XHR0b29scy5yZW1vdmVDbGFzcyhlbC50ZXJtc0xpc3RXcmFwcGVyLCAnYWN0aXZlJyk7XG5cdFx0c3RhdGUudGVybUxpc3RBY3RpdmUgPSBmYWxzZTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRzdGF0ZS50ZXJtTGlzdEFjdGl2ZSA9IHRydWU7XG5cdHRvb2xzLmFkZENsYXNzKGhlYWRlciwgJ2FjdGl2ZScpO1xuXHR0b29scy5hZGRDbGFzcyhlbC50ZXJtc0xpc3RXcmFwcGVyLCAnYWN0aXZlJyk7XG59O1xuXG5jb25zdCBzaG93SGlkZVByb2R1Y3RMaXN0ID0gKGFjdGl2ZSA9IGZhbHNlKSA9PiB7XG5cdGNvbnN0IGhlYWRlciA9IHRvb2xzLmdldE5vZGVzKCcuYmMtc2hvcnRjb2RlLXVpX19tYW51YWwtbGlzdGluZy1oZWFkZXInLCBmYWxzZSwgZWwuZGlzcGxheVNldHRpbmdzSGVhZGVyLCB0cnVlKVswXTtcblxuXHRpZiAoIWFjdGl2ZSkge1xuXHRcdHRvb2xzLnJlbW92ZUNsYXNzKGhlYWRlciwgJ2FjdGl2ZScpO1xuXHRcdHRvb2xzLnJlbW92ZUNsYXNzKGVsLnByb2R1Y3RMaXN0V3JhcHBlciwgJ2FjdGl2ZScpO1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHRvb2xzLmFkZENsYXNzKGVsLnByb2R1Y3RMaXN0V3JhcHBlciwgJ2FjdGl2ZScpO1xuXHR0b29scy5hZGRDbGFzcyhoZWFkZXIsICdhY3RpdmUnKTtcbn07XG5cbmNvbnN0IHRvZ2dsZURpc3BsYXlTZXR0aW5ncyA9ICgpID0+IHtcblx0aWYgKHRvb2xzLmdldENoaWxkcmVuKGVsLnByb2R1Y3RMaXN0KS5sZW5ndGggPiAwKSB7XG5cdFx0c2hvd0hpZGVEZWZhdWx0U2V0dGluZ3NIZWFkZXIoZmFsc2UpO1xuXHRcdHNob3dIaWRlVGVybXNMaXN0KGZhbHNlKTtcblx0XHRzaG93SGlkZVByb2R1Y3RMaXN0KHRydWUpO1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGlmICh0b29scy5nZXRDaGlsZHJlbihlbC5wcm9kdWN0TGlzdCkubGVuZ3RoIDw9IDAgJiYgdG9vbHMuZ2V0Q2hpbGRyZW4oZWwudGVybXNMaXN0KS5sZW5ndGggPiAwKSB7XG5cdFx0c2hvd0hpZGVEZWZhdWx0U2V0dGluZ3NIZWFkZXIoZmFsc2UpO1xuXHRcdHNob3dIaWRlUHJvZHVjdExpc3QoZmFsc2UpO1xuXHRcdHNob3dIaWRlVGVybXNMaXN0KHRydWUpO1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHNob3dIaWRlVGVybXNMaXN0KGZhbHNlKTtcblx0c2hvd0hpZGVQcm9kdWN0TGlzdChmYWxzZSk7XG5cdHNob3dIaWRlRGVmYXVsdFNldHRpbmdzSGVhZGVyKHRydWUpO1xufTtcblxuY29uc3QgaGFuZGxlUXVlcnlUZXJtUmVtb3ZhbCA9IChldmVudCA9IHt9LCB2YWx1ZSA9ICcnKSA9PiB7XG5cdGxldCB0ZXJtSUQgPSAnJztcblx0aWYgKGV2ZW50KSB7XG5cdFx0dGVybUlEID0gZXZlbnQuZGV0YWlsLnZhbHVlO1xuXHR9IGVsc2Uge1xuXHRcdHRlcm1JRCA9IHZhbHVlO1xuXHR9XG5cblx0Y29uc3QgdGVybSA9IHRvb2xzLmdldE5vZGVzKGBbZGF0YS12YWx1ZT1cIiR7dGVybUlEfVwiXWAsIGZhbHNlLCBlbC50ZXJtc0xpc3QsIHRydWUpWzBdO1xuXHRpZiAoIXRlcm0pIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCB0ZXJtSXRlbSA9IHRvb2xzLmNsb3Nlc3QodGVybSwgJy5iYy1zaG9ydGNvZGUtdWlfX3Rlcm1zLWxpc3QtaXRlbScpO1xuXHR0ZXJtSXRlbS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRlcm1JdGVtKTtcblx0dG9nZ2xlRGlzcGxheVNldHRpbmdzKCk7XG59O1xuXG5jb25zdCByZW1vdmVUZXJtT25DbGljayA9IChldmVudCkgPT4ge1xuXHRjb25zdCB2YWx1ZSA9IGV2ZW50LmRlbGVnYXRlVGFyZ2V0LmRhdGFzZXQudmFsdWU7XG5cdGhhbmRsZVF1ZXJ5VGVybVJlbW92YWwobnVsbCwgdmFsdWUpO1xuXHR0cmlnZ2VyKHsgZXZlbnQ6ICdiaWdjb21tZXJjZS9yZW1vdmVfcXVlcnlfdGVybScsIGRhdGE6IHsgdmFsdWUsIGZyb21TZXR0aW5nczogdHJ1ZSB9LCBuYXRpdmU6IGZhbHNlIH0pO1xufTtcblxuY29uc3QgaGFuZGxlUXVlcnlUZXJtQWRkaXRpb24gPSAoZGF0YSkgPT4ge1xuXHRjb25zdCB0ZXJtSXRlbSA9IHRvb2xzLmdldE5vZGVzKGBbZGF0YS12YWx1ZT1cIiR7ZGF0YS5kZXRhaWwudmFsdWV9XCJdYCwgZmFsc2UsIGVsLnRlcm1zTGlzdCwgdHJ1ZSlbMF07XG5cdGlmICh0ZXJtSXRlbSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGVsLnRlcm1zTGlzdC5pbnNlcnRBZGphY2VudEhUTUwoJ2JlZm9yZWVuZCcsIHRlcm1UZW1wbGF0ZShkYXRhLmRldGFpbCkpO1xuXHR0b2dnbGVEaXNwbGF5U2V0dGluZ3MoKTtcbn07XG5cbmNvbnN0IHJlc2V0RGlzcGxheVNldHRpbmdzID0gKCkgPT4ge1xuXHRzZXRQb3N0c1BlclBhZ2VJbmRpY2F0b3IoZWwucmVzZXRCdXR0b24uZGF0YXNldC5yZXNldFZhbHVlKTtcblx0c2hvcnRjb2RlU3RhdGUud3BBUElEaXNwbGF5U2V0dGluZ3MucGVyX3BhZ2UgPSAnJztcblx0c2hvcnRjb2RlU3RhdGUud3BBUElEaXNwbGF5U2V0dGluZ3Mub3JkZXJieSA9ICcnO1xuXHRzaG9ydGNvZGVTdGF0ZS53cEFQSURpc3BsYXlTZXR0aW5ncy5vcmRlciA9ICcnO1xuXHRlbC50ZXJtc0xpc3QudGV4dENvbnRlbnQgPSAnJztcbn07XG5cbmNvbnN0IGhhbmRsZVNhdmVkVUlEaXNwbGF5U2V0dGluZ3MgPSAoZXZlbnQpID0+IHtcblx0Y29uc3QgcGFyYW1zID0gZXZlbnQuZGV0YWlsLnBhcmFtcztcblxuXHRyZXNldERpc3BsYXlTZXR0aW5ncygpO1xuXHRzZXRPcmRlcmJ5UGFyYW0obnVsbCwgcGFyYW1zKTtcblx0c2V0T3JkZXJQYXJhbShudWxsLCBwYXJhbXMpO1xuXHRzZXRQb3N0c1BlclBhZ2UobnVsbCwgcGFyYW1zKTtcblx0dG9nZ2xlRGlzcGxheVNldHRpbmdzKCk7XG59O1xuXG5jb25zdCBjYWNoZUVsZW1lbnRzID0gKCkgPT4ge1xuXHRlbC5zZXR0aW5nc1NpZGViYXIgPSB0b29scy5nZXROb2RlcygnYmMtc2hvcnRjb2RlLXVpLXNldHRpbmdzJylbMF07XG5cdGVsLmRpc3BsYXlTZXR0aW5ncyA9IHRvb2xzLmdldE5vZGVzKCdiYy1zaG9ydGNvZGUtdWktZGlzcGxheS1zZXR0aW5ncycsIGZhbHNlLCBlbC5zZXR0aW5nc1NpZGViYXIpWzBdO1xuXHRlbC5yZXNldEJ1dHRvbiA9IHRvb2xzLmdldE5vZGVzKCdiYy1zaG9ydGNvZGUtdWktcmVzZXQtcG9zdHMtcGVyLXBhZ2UnLCBmYWxzZSwgZWwuZGlzcGxheVNldHRpbmdzKVswXTtcblx0ZWwucG9zdHNQZXJQYWdlRmllbGQgPSB0b29scy5nZXROb2RlcygnI2JjLXNob3J0Y29kZS11aV9fcG9zdHMtcGVyLXBhZ2UnLCBmYWxzZSwgZWwuZGlzcGxheVNldHRpbmdzLCB0cnVlKVswXTtcblx0ZWwucG9zdHNQZXJQYWdlSW5kaWNhdG9yID0gdG9vbHMuZ2V0Tm9kZXMoJy5iYy1zaG9ydGNvZGUtdWlfX3Bvc3RzLXBlci1wYWdlLXZhbHVlJywgZmFsc2UsIGVsLmRpc3BsYXlTZXR0aW5ncywgdHJ1ZSlbMF07XG5cdGVsLmRpc3BsYXlTZXR0aW5nc0hlYWRlciA9IHRvb2xzLmdldE5vZGVzKCdiYy1zaG9ydGNvZGUtdWktc2V0dGluZ3MtaGVhZGVyJywgZmFsc2UsIGVsLnNldHRpbmdzU2lkZWJhcilbMF07XG5cdGVsLnByb2R1Y3RMaXN0V3JhcHBlciA9IHRvb2xzLmdldE5vZGVzKCdiYy1zaG9ydGNvZGUtdWktc2VsZWN0ZWQtcHJvZHVjdHMnLCBmYWxzZSwgZWwuc2V0dGluZ3NTaWRlYmFyKVswXTtcblx0ZWwucHJvZHVjdExpc3QgPSB0b29scy5nZXROb2RlcygnYmMtc2hvcnRjb2RlLXVpLXByb2R1Y3QtbGlzdCcsIGZhbHNlLCBlbC5wcm9kdWN0TGlzdFdyYXBwZXIpWzBdO1xuXHRlbC50ZXJtc0xpc3RXcmFwcGVyID0gdG9vbHMuZ2V0Tm9kZXMoJ2JjLXNob3J0Y29kZS11aS1zZWxlY3RlZC10ZXJtcycsIGZhbHNlLCBlbC5zZXR0aW5nc1NpZGViYXIpWzBdO1xuXHRlbC50ZXJtc0xpc3QgPSB0b29scy5nZXROb2RlcygnYmMtc2hvcnRjb2RlLXVpLXRlcm1zLWxpc3QnLCBmYWxzZSwgZWwudGVybXNMaXN0V3JhcHBlcilbMF07XG59O1xuXG5jb25zdCBiaW5kRXZlbnRzID0gKCkgPT4ge1xuXHRkZWxlZ2F0ZShlbC5kaXNwbGF5U2V0dGluZ3MsICcjYmMtc2hvcnRjb2RlLXVpX19wb3N0cy1wZXItcGFnZScsICdpbnB1dCcsIHNldFBvc3RzUGVyUGFnZSk7XG5cdGRlbGVnYXRlKGVsLmRpc3BsYXlTZXR0aW5ncywgJ1tuYW1lPVwiYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LW9yZGVyXCJdJywgJ2NsaWNrJywgc2V0T3JkZXJQYXJhbSk7XG5cdGRlbGVnYXRlKGVsLmRpc3BsYXlTZXR0aW5ncywgJ1tuYW1lPVwiYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LW9yZGVyYnlcIl0nLCAnY2xpY2snLCBzZXRPcmRlcmJ5UGFyYW0pO1xuXHRkZWxlZ2F0ZShlbC5kaXNwbGF5U2V0dGluZ3MsICdbZGF0YS1qcz1cImJjLXNob3J0Y29kZS11aS1yZXNldC1wb3N0cy1wZXItcGFnZVwiXScsICdjbGljaycsIHJlc2V0UG9zdHNQZXJQYWdlKTtcblx0ZGVsZWdhdGUoZWwuc2V0dGluZ3NTaWRlYmFyLCAnW2RhdGEtanM9XCJiYy1zaG9ydGNvZGUtdWktcmVtb3ZlLXRlcm1cIl0nLCAnY2xpY2snLCByZW1vdmVUZXJtT25DbGljayk7XG5cdG9uKGRvY3VtZW50LCAnYmlnY29tbWVyY2Uvc2V0X3Nob3J0Y29kZV91aV9zdGF0ZScsIGhhbmRsZVNhdmVkVUlEaXNwbGF5U2V0dGluZ3MpO1xuXHRvbihkb2N1bWVudCwgJ2JpZ2NvbW1lcmNlL3Nob3J0Y29kZV9wcm9kdWN0X2xpc3RfZXZlbnQnLCB0b2dnbGVEaXNwbGF5U2V0dGluZ3MpO1xuXHRvbihkb2N1bWVudCwgJ2JpZ2NvbW1lcmNlL3Nob3J0Y29kZV9xdWVyeV90ZXJtX2FkZGVkJywgaGFuZGxlUXVlcnlUZXJtQWRkaXRpb24pO1xuXHRvbihkb2N1bWVudCwgJ2JpZ2NvbW1lcmNlL3Nob3J0Y29kZV9xdWVyeV90ZXJtX3JlbW92ZWQnLCBoYW5kbGVRdWVyeVRlcm1SZW1vdmFsKTtcbn07XG5cbmNvbnN0IGluaXQgPSAoKSA9PiB7XG5cdGNhY2hlRWxlbWVudHMoKTtcblx0YmluZEV2ZW50cygpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgaW5pdDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vc2hvcnRjb2RlLXVpL2Rpc3BsYXktc2V0dGluZ3MuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///199\n"); +eval("\n\nvar _interopRequireWildcard = __webpack_require__(8);\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _delegate = _interopRequireDefault(__webpack_require__(23));\n\nvar tools = _interopRequireWildcard(__webpack_require__(12));\n\nvar _shortcodeState = _interopRequireDefault(__webpack_require__(4));\n\nvar _events = __webpack_require__(13);\n\nvar _termTemplate = __webpack_require__(200);\n\n/**\n * @module Display Settings\n * @description Scripts for settings additional shortcode parameters for display settings.\n */\nvar el = {};\nvar state = {\n termListActive: false\n};\n\nvar setPostsPerPageIndicator = function setPostsPerPageIndicator(value) {\n if (!value) {\n return;\n }\n\n el.postsPerPageIndicator.textContent = '';\n el.postsPerPageIndicator.textContent = value;\n};\n\nvar setPostsPerPageResetValue = function setPostsPerPageResetValue(value) {\n if (!value) {\n return;\n }\n\n el.resetButton.dataset.resetValue = value;\n};\n\nvar resetPostsPerPage = function resetPostsPerPage(event) {\n if (!event) {\n return;\n }\n\n var value = event.delegateTarget.dataset.resetValue;\n _shortcodeState.default.wpAPIDisplaySettings.per_page = value;\n el.postsPerPageField.value = value;\n setPostsPerPageIndicator(value);\n};\n\nvar setPostsPerPage = function setPostsPerPage(event) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var paramPerPage = '';\n\n if (event) {\n paramPerPage = event.delegateTarget.value;\n _shortcodeState.default.wpAPIDisplaySettings.per_page = paramPerPage;\n setPostsPerPageIndicator(paramPerPage);\n return;\n }\n\n if (!params.per_page) {\n setPostsPerPageIndicator(el.postsPerPageIndicator.dataset.default);\n el.postsPerPageField.value = el.postsPerPageIndicator.dataset.default;\n return;\n }\n\n paramPerPage = params.per_page;\n _shortcodeState.default.wpAPIDisplaySettings.per_page = paramPerPage;\n el.postsPerPageField.value = paramPerPage;\n setPostsPerPageIndicator(paramPerPage);\n setPostsPerPageResetValue(paramPerPage);\n};\n\nvar setOrderParam = function setOrderParam(event) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (event) {\n _shortcodeState.default.wpAPIDisplaySettings.order = event.delegateTarget.value;\n return;\n }\n\n var orderParam = params.order ? params.order.toLowerCase() : 'asc';\n var field = tools.getNodes(\"#bc-shortcode-ui__product-order--\".concat(orderParam), false, el.displaySettings, true);\n\n if (field.length === 0) {\n return;\n }\n\n _shortcodeState.default.wpAPIDisplaySettings.order = orderParam;\n field[0].checked = true;\n};\n\nvar setOrderbyParam = function setOrderbyParam(event) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (event) {\n _shortcodeState.default.wpAPIDisplaySettings.orderby = event.delegateTarget.value;\n return;\n }\n\n var orderByParam = params.orderby ? params.orderby.toLowerCase() : 'date';\n var field = tools.getNodes(\"#bc-shortcode-ui__product-orderby--\".concat(orderByParam), false, el.displaySettings, true);\n\n if (field.length === 0) {\n return;\n }\n\n _shortcodeState.default.wpAPIDisplaySettings.orderby = orderByParam;\n field[0].checked = true;\n};\n\nvar showHideDefaultSettingsHeader = function showHideDefaultSettingsHeader() {\n var active = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var header = tools.getNodes('.bc-shortcode-ui__default-header', false, el.displaySettingsHeader, true)[0];\n\n if (!active) {\n tools.removeClass(header, 'active');\n return;\n }\n\n tools.addClass(header, 'active');\n};\n\nvar showHideTermsList = function showHideTermsList() {\n var active = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var header = tools.getNodes('.bc-shortcode-ui__dynamic-listing-header', false, el.displaySettingsHeader, true)[0];\n\n if (!active) {\n tools.removeClass(header, 'active');\n tools.removeClass(el.termsListWrapper, 'active');\n state.termListActive = false;\n return;\n }\n\n state.termListActive = true;\n tools.addClass(header, 'active');\n tools.addClass(el.termsListWrapper, 'active');\n};\n\nvar showHideProductList = function showHideProductList() {\n var active = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var header = tools.getNodes('.bc-shortcode-ui__manual-listing-header', false, el.displaySettingsHeader, true)[0];\n\n if (!active) {\n tools.removeClass(header, 'active');\n tools.removeClass(el.productListWrapper, 'active');\n return;\n }\n\n tools.addClass(el.productListWrapper, 'active');\n tools.addClass(header, 'active');\n};\n\nvar toggleDisplaySettings = function toggleDisplaySettings() {\n if (tools.getChildren(el.productList).length > 0) {\n showHideDefaultSettingsHeader(false);\n showHideTermsList(false);\n showHideProductList(true);\n return;\n }\n\n if (tools.getChildren(el.productList).length <= 0 && tools.getChildren(el.termsList).length > 0) {\n showHideDefaultSettingsHeader(false);\n showHideProductList(false);\n showHideTermsList(true);\n return;\n }\n\n showHideTermsList(false);\n showHideProductList(false);\n showHideDefaultSettingsHeader(true);\n};\n\nvar handleQueryTermRemoval = function handleQueryTermRemoval() {\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var termID = '';\n\n if (event) {\n termID = event.detail.value;\n } else {\n termID = value;\n }\n\n var term = tools.getNodes(\"[data-value=\\\"\".concat(termID, \"\\\"]\"), false, el.termsList, true)[0];\n\n if (!term) {\n return;\n }\n\n var termItem = tools.closest(term, '.bc-shortcode-ui__terms-list-item');\n termItem.parentNode.removeChild(termItem);\n toggleDisplaySettings();\n};\n\nvar removeTermOnClick = function removeTermOnClick(event) {\n var value = event.delegateTarget.dataset.value;\n handleQueryTermRemoval(null, value);\n (0, _events.trigger)({\n event: 'bigcommerce/remove_query_term',\n data: {\n value: value,\n fromSettings: true\n },\n native: false\n });\n};\n\nvar handleQueryTermAddition = function handleQueryTermAddition(data) {\n var termItem = tools.getNodes(\"[data-value=\\\"\".concat(data.detail.value, \"\\\"]\"), false, el.termsList, true)[0];\n\n if (termItem) {\n return;\n }\n\n el.termsList.insertAdjacentHTML('beforeend', (0, _termTemplate.termTemplate)(data.detail));\n toggleDisplaySettings();\n};\n\nvar resetDisplaySettings = function resetDisplaySettings() {\n setPostsPerPageIndicator(el.resetButton.dataset.resetValue);\n _shortcodeState.default.wpAPIDisplaySettings.per_page = '';\n _shortcodeState.default.wpAPIDisplaySettings.orderby = '';\n _shortcodeState.default.wpAPIDisplaySettings.order = '';\n el.termsList.textContent = '';\n};\n\nvar handleSavedUIDisplaySettings = function handleSavedUIDisplaySettings(event) {\n var params = event.detail.params;\n resetDisplaySettings();\n setOrderbyParam(null, params);\n setOrderParam(null, params);\n setPostsPerPage(null, params);\n toggleDisplaySettings();\n};\n\nvar cacheElements = function cacheElements() {\n el.settingsSidebar = tools.getNodes('bc-shortcode-ui-settings')[0];\n el.displaySettings = tools.getNodes('bc-shortcode-ui-display-settings', false, el.settingsSidebar)[0];\n el.resetButton = tools.getNodes('bc-shortcode-ui-reset-posts-per-page', false, el.displaySettings)[0];\n el.postsPerPageField = tools.getNodes('#bc-shortcode-ui__posts-per-page', false, el.displaySettings, true)[0];\n el.postsPerPageIndicator = tools.getNodes('.bc-shortcode-ui__posts-per-page-value', false, el.displaySettings, true)[0];\n el.displaySettingsHeader = tools.getNodes('bc-shortcode-ui-settings-header', false, el.settingsSidebar)[0];\n el.productListWrapper = tools.getNodes('bc-shortcode-ui-selected-products', false, el.settingsSidebar)[0];\n el.productList = tools.getNodes('bc-shortcode-ui-product-list', false, el.productListWrapper)[0];\n el.termsListWrapper = tools.getNodes('bc-shortcode-ui-selected-terms', false, el.settingsSidebar)[0];\n el.termsList = tools.getNodes('bc-shortcode-ui-terms-list', false, el.termsListWrapper)[0];\n};\n\nvar bindEvents = function bindEvents() {\n (0, _delegate.default)(el.displaySettings, '#bc-shortcode-ui__posts-per-page', 'input', setPostsPerPage);\n (0, _delegate.default)(el.displaySettings, '[name=\"bc-shortcode-ui__product-order\"]', 'click', setOrderParam);\n (0, _delegate.default)(el.displaySettings, '[name=\"bc-shortcode-ui__product-orderby\"]', 'click', setOrderbyParam);\n (0, _delegate.default)(el.displaySettings, '[data-js=\"bc-shortcode-ui-reset-posts-per-page\"]', 'click', resetPostsPerPage);\n (0, _delegate.default)(el.settingsSidebar, '[data-js=\"bc-shortcode-ui-remove-term\"]', 'click', removeTermOnClick);\n (0, _events.on)(document, 'bigcommerce/set_shortcode_ui_state', handleSavedUIDisplaySettings);\n (0, _events.on)(document, 'bigcommerce/shortcode_product_list_event', toggleDisplaySettings);\n (0, _events.on)(document, 'bigcommerce/shortcode_query_term_added', handleQueryTermAddition);\n (0, _events.on)(document, 'bigcommerce/shortcode_query_term_removed', handleQueryTermRemoval);\n};\n\nvar init = function init() {\n cacheElements();\n bindEvents();\n};\n\nvar _default = init;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL3Nob3J0Y29kZS11aS9kaXNwbGF5LXNldHRpbmdzLmpzPzBhOTUiXSwibmFtZXMiOlsiZWwiLCJzdGF0ZSIsInRlcm1MaXN0QWN0aXZlIiwic2V0UG9zdHNQZXJQYWdlSW5kaWNhdG9yIiwidmFsdWUiLCJwb3N0c1BlclBhZ2VJbmRpY2F0b3IiLCJ0ZXh0Q29udGVudCIsInNldFBvc3RzUGVyUGFnZVJlc2V0VmFsdWUiLCJyZXNldEJ1dHRvbiIsImRhdGFzZXQiLCJyZXNldFZhbHVlIiwicmVzZXRQb3N0c1BlclBhZ2UiLCJldmVudCIsImRlbGVnYXRlVGFyZ2V0Iiwid3BBUElEaXNwbGF5U2V0dGluZ3MiLCJwZXJfcGFnZSIsInBvc3RzUGVyUGFnZUZpZWxkIiwic2V0UG9zdHNQZXJQYWdlIiwicGFyYW1zIiwicGFyYW1QZXJQYWdlIiwiZGVmYXVsdCIsInNldE9yZGVyUGFyYW0iLCJvcmRlciIsIm9yZGVyUGFyYW0iLCJ0b0xvd2VyQ2FzZSIsImZpZWxkIiwidG9vbHMiLCJnZXROb2RlcyIsImRpc3BsYXlTZXR0aW5ncyIsImxlbmd0aCIsImNoZWNrZWQiLCJzZXRPcmRlcmJ5UGFyYW0iLCJvcmRlcmJ5Iiwib3JkZXJCeVBhcmFtIiwic2hvd0hpZGVEZWZhdWx0U2V0dGluZ3NIZWFkZXIiLCJhY3RpdmUiLCJoZWFkZXIiLCJkaXNwbGF5U2V0dGluZ3NIZWFkZXIiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwic2hvd0hpZGVUZXJtc0xpc3QiLCJ0ZXJtc0xpc3RXcmFwcGVyIiwic2hvd0hpZGVQcm9kdWN0TGlzdCIsInByb2R1Y3RMaXN0V3JhcHBlciIsInRvZ2dsZURpc3BsYXlTZXR0aW5ncyIsImdldENoaWxkcmVuIiwicHJvZHVjdExpc3QiLCJ0ZXJtc0xpc3QiLCJoYW5kbGVRdWVyeVRlcm1SZW1vdmFsIiwidGVybUlEIiwiZGV0YWlsIiwidGVybSIsInRlcm1JdGVtIiwiY2xvc2VzdCIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsInJlbW92ZVRlcm1PbkNsaWNrIiwiZGF0YSIsImZyb21TZXR0aW5ncyIsIm5hdGl2ZSIsImhhbmRsZVF1ZXJ5VGVybUFkZGl0aW9uIiwiaW5zZXJ0QWRqYWNlbnRIVE1MIiwicmVzZXREaXNwbGF5U2V0dGluZ3MiLCJoYW5kbGVTYXZlZFVJRGlzcGxheVNldHRpbmdzIiwiY2FjaGVFbGVtZW50cyIsInNldHRpbmdzU2lkZWJhciIsImJpbmRFdmVudHMiLCJkb2N1bWVudCIsImluaXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBVEE7Ozs7QUFXQSxJQUFNQSxLQUFLLEVBQVg7QUFFQSxJQUFNQyxRQUFRO0FBQ2JDLGtCQUFnQjtBQURILENBQWQ7O0FBSUEsSUFBTUMsMkJBQTJCLFNBQTNCQSx3QkFBMkIsQ0FBQ0MsS0FBRCxFQUFXO0FBQzNDLE1BQUksQ0FBQ0EsS0FBTCxFQUFZO0FBQ1g7QUFDQTs7QUFFREosS0FBR0sscUJBQUgsQ0FBeUJDLFdBQXpCLEdBQXVDLEVBQXZDO0FBQ0FOLEtBQUdLLHFCQUFILENBQXlCQyxXQUF6QixHQUF1Q0YsS0FBdkM7QUFDQSxDQVBEOztBQVNBLElBQU1HLDRCQUE0QixTQUE1QkEseUJBQTRCLENBQUNILEtBQUQsRUFBVztBQUM1QyxNQUFJLENBQUNBLEtBQUwsRUFBWTtBQUNYO0FBQ0E7O0FBRURKLEtBQUdRLFdBQUgsQ0FBZUMsT0FBZixDQUF1QkMsVUFBdkIsR0FBb0NOLEtBQXBDO0FBQ0EsQ0FORDs7QUFRQSxJQUFNTyxvQkFBb0IsU0FBcEJBLGlCQUFvQixDQUFDQyxLQUFELEVBQVc7QUFDcEMsTUFBSSxDQUFDQSxLQUFMLEVBQVk7QUFDWDtBQUNBOztBQUVELE1BQU1SLFFBQVFRLE1BQU1DLGNBQU4sQ0FBcUJKLE9BQXJCLENBQTZCQyxVQUEzQztBQUNBLDBCQUFlSSxvQkFBZixDQUFvQ0MsUUFBcEMsR0FBK0NYLEtBQS9DO0FBQ0FKLEtBQUdnQixp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Q0Esa0JBQUdPLFFBQUgsRUFBYSwwQ0FBYixFQUF5RG5CLHNCQUF6RDtBQUNBLENBVkQ7O0FBWUEsSUFBTW9CLE9BQU8sU0FBUEEsSUFBTyxHQUFNO0FBQ2xCSjtBQUNBRTtBQUNBLENBSEQ7O2VBS2VFLEkiLCJmaWxlIjoiMTk5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIERpc3BsYXkgU2V0dGluZ3NcbiAqIEBkZXNjcmlwdGlvbiBTY3JpcHRzIGZvciBzZXR0aW5ncyBhZGRpdGlvbmFsIHNob3J0Y29kZSBwYXJhbWV0ZXJzIGZvciBkaXNwbGF5IHNldHRpbmdzLlxuICovXG5cbmltcG9ydCBkZWxlZ2F0ZSBmcm9tICdkZWxlZ2F0ZSc7XG5pbXBvcnQgKiBhcyB0b29scyBmcm9tICcuLi8uLi91dGlscy90b29scyc7XG5pbXBvcnQgc2hvcnRjb2RlU3RhdGUgZnJvbSAnLi4vY29uZmlnL3Nob3J0Y29kZS1zdGF0ZSc7XG5pbXBvcnQgeyBvbiwgdHJpZ2dlciB9IGZyb20gJy4uLy4uL3V0aWxzL2V2ZW50cyc7XG5pbXBvcnQgeyB0ZXJtVGVtcGxhdGUgfSBmcm9tICcuL3Rlcm0tdGVtcGxhdGUnO1xuXG5jb25zdCBlbCA9IHt9O1xuXG5jb25zdCBzdGF0ZSA9IHtcblx0dGVybUxpc3RBY3RpdmU6IGZhbHNlLFxufTtcblxuY29uc3Qgc2V0UG9zdHNQZXJQYWdlSW5kaWNhdG9yID0gKHZhbHVlKSA9PiB7XG5cdGlmICghdmFsdWUpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRlbC5wb3N0c1BlclBhZ2VJbmRpY2F0b3IudGV4dENvbnRlbnQgPSAnJztcblx0ZWwucG9zdHNQZXJQYWdlSW5kaWNhdG9yLnRleHRDb250ZW50ID0gdmFsdWU7XG59O1xuXG5jb25zdCBzZXRQb3N0c1BlclBhZ2VSZXNldFZhbHVlID0gKHZhbHVlKSA9PiB7XG5cdGlmICghdmFsdWUpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRlbC5yZXNldEJ1dHRvbi5kYXRhc2V0LnJlc2V0VmFsdWUgPSB2YWx1ZTtcbn07XG5cbmNvbnN0IHJlc2V0UG9zdHNQZXJQYWdlID0gKGV2ZW50KSA9PiB7XG5cdGlmICghZXZlbnQpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCB2YWx1ZSA9IGV2ZW50LmRlbGVnYXRlVGFyZ2V0LmRhdGFzZXQucmVzZXRWYWx1ZTtcblx0c2hvcnRjb2RlU3RhdGUud3BBUElEaXNwbGF5U2V0dGluZ3MucGVyX3BhZ2UgPSB2YWx1ZTtcblx0ZWwucG9zdHNQZXJQYWdlRmllbGQudmFsdWUgPSB2YWx1ZTtcblx0c2V0UG9zdHNQZXJQYWdlSW5kaWNhdG9yKHZhbHVlKTtcbn07XG5cbmNvbnN0IHNldFBvc3RzUGVyUGFnZSA9IChldmVudCwgcGFyYW1zID0ge30pID0+IHtcblx0bGV0IHBhcmFtUGVyUGFnZSA9ICcnO1xuXHRpZiAoZXZlbnQpIHtcblx0XHRwYXJhbVBlclBhZ2UgPSBldmVudC5kZWxlZ2F0ZVRhcmdldC52YWx1ZTtcblx0XHRzaG9ydGNvZGVTdGF0ZS53cEFQSURpc3BsYXlTZXR0aW5ncy5wZXJfcGFnZSA9IHBhcmFtUGVyUGFnZTtcblx0XHRzZXRQb3N0c1BlclBhZ2VJbmRpY2F0b3IocGFyYW1QZXJQYWdlKTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAoIXBhcmFtcy5wZXJfcGFnZSkge1xuXHRcdHNldFBvc3RzUGVyUGFnZUluZGljYXRvcihlbC5wb3N0c1BlclBhZ2VJbmRpY2F0b3IuZGF0YXNldC5kZWZhdWx0KTtcblx0XHRlbC5wb3N0c1BlclBhZ2VGaWVsZC52YWx1ZSA9IGVsLnBvc3RzUGVyUGFnZUluZGljYXRvci5kYXRhc2V0LmRlZmF1bHQ7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0cGFyYW1QZXJQYWdlID0gcGFyYW1zLnBlcl9wYWdlO1xuXHRzaG9ydGNvZGVTdGF0ZS53cEFQSURpc3BsYXlTZXR0aW5ncy5wZXJfcGFnZSA9IHBhcmFtUGVyUGFnZTtcblx0ZWwucG9zdHNQZXJQYWdlRmllbGQudmFsdWUgPSBwYXJhbVBlclBhZ2U7XG5cdHNldFBvc3RzUGVyUGFnZUluZGljYXRvcihwYXJhbVBlclBhZ2UpO1xuXHRzZXRQb3N0c1BlclBhZ2VSZXNldFZhbHVlKHBhcmFtUGVyUGFnZSk7XG59O1xuXG5jb25zdCBzZXRPcmRlclBhcmFtID0gKGV2ZW50LCBwYXJhbXMgPSB7fSkgPT4ge1xuXHRpZiAoZXZlbnQpIHtcblx0XHRzaG9ydGNvZGVTdGF0ZS53cEFQSURpc3BsYXlTZXR0aW5ncy5vcmRlciA9IGV2ZW50LmRlbGVnYXRlVGFyZ2V0LnZhbHVlO1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IG9yZGVyUGFyYW0gPSBwYXJhbXMub3JkZXIgPyBwYXJhbXMub3JkZXIudG9Mb3dlckNhc2UoKSA6ICdhc2MnO1xuXHRjb25zdCBmaWVsZCA9IHRvb2xzLmdldE5vZGVzKGAjYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LW9yZGVyLS0ke29yZGVyUGFyYW19YCwgZmFsc2UsIGVsLmRpc3BsYXlTZXR0aW5ncywgdHJ1ZSk7XG5cblx0aWYgKGZpZWxkLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHNob3J0Y29kZVN0YXRlLndwQVBJRGlzcGxheVNldHRpbmdzLm9yZGVyID0gb3JkZXJQYXJhbTtcblx0ZmllbGRbMF0uY2hlY2tlZCA9IHRydWU7XG59O1xuXG5jb25zdCBzZXRPcmRlcmJ5UGFyYW0gPSAoZXZlbnQsIHBhcmFtcyA9IHt9KSA9PiB7XG5cdGlmIChldmVudCkge1xuXHRcdHNob3J0Y29kZVN0YXRlLndwQVBJRGlzcGxheVNldHRpbmdzLm9yZGVyYnkgPSBldmVudC5kZWxlZ2F0ZVRhcmdldC52YWx1ZTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBvcmRlckJ5UGFyYW0gPSBwYXJhbXMub3JkZXJieSA/IHBhcmFtcy5vcmRlcmJ5LnRvTG93ZXJDYXNlKCkgOiAnZGF0ZSc7XG5cdGNvbnN0IGZpZWxkID0gdG9vbHMuZ2V0Tm9kZXMoYCNiYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3Qtb3JkZXJieS0tJHtvcmRlckJ5UGFyYW19YCwgZmFsc2UsIGVsLmRpc3BsYXlTZXR0aW5ncywgdHJ1ZSk7XG5cblx0aWYgKGZpZWxkLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHNob3J0Y29kZVN0YXRlLndwQVBJRGlzcGxheVNldHRpbmdzLm9yZGVyYnkgPSBvcmRlckJ5UGFyYW07XG5cdGZpZWxkWzBdLmNoZWNrZWQgPSB0cnVlO1xufTtcblxuY29uc3Qgc2hvd0hpZGVEZWZhdWx0U2V0dGluZ3NIZWFkZXIgPSAoYWN0aXZlID0gZmFsc2UpID0+IHtcblx0Y29uc3QgaGVhZGVyID0gdG9vbHMuZ2V0Tm9kZXMoJy5iYy1zaG9ydGNvZGUtdWlfX2RlZmF1bHQtaGVhZGVyJywgZmFsc2UsIGVsLmRpc3BsYXlTZXR0aW5nc0hlYWRlciwgdHJ1ZSlbMF07XG5cblx0aWYgKCFhY3RpdmUpIHtcblx0XHR0b29scy5yZW1vdmVDbGFzcyhoZWFkZXIsICdhY3RpdmUnKTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHR0b29scy5hZGRDbGFzcyhoZWFkZXIsICdhY3RpdmUnKTtcbn07XG5cbmNvbnN0IHNob3dIaWRlVGVybXNMaXN0ID0gKGFjdGl2ZSA9IGZhbHNlKSA9PiB7XG5cdGNvbnN0IGhlYWRlciA9IHRvb2xzLmdldE5vZGVzKCcuYmMtc2hvcnRjb2RlLXVpX19keW5hbWljLWxpc3RpbmctaGVhZGVyJywgZmFsc2UsIGVsLmRpc3BsYXlTZXR0aW5nc0hlYWRlciwgdHJ1ZSlbMF07XG5cblx0aWYgKCFhY3RpdmUpIHtcblx0XHR0b29scy5yZW1vdmVDbGFzcyhoZWFkZXIsICdhY3RpdmUnKTtcblx0XHR0b29scy5yZW1vdmVDbGFzcyhlbC50ZXJtc0xpc3RXcmFwcGVyLCAnYWN0aXZlJyk7XG5cdFx0c3RhdGUudGVybUxpc3RBY3RpdmUgPSBmYWxzZTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRzdGF0ZS50ZXJtTGlzdEFjdGl2ZSA9IHRydWU7XG5cdHRvb2xzLmFkZENsYXNzKGhlYWRlciwgJ2FjdGl2ZScpO1xuXHR0b29scy5hZGRDbGFzcyhlbC50ZXJtc0xpc3RXcmFwcGVyLCAnYWN0aXZlJyk7XG59O1xuXG5jb25zdCBzaG93SGlkZVByb2R1Y3RMaXN0ID0gKGFjdGl2ZSA9IGZhbHNlKSA9PiB7XG5cdGNvbnN0IGhlYWRlciA9IHRvb2xzLmdldE5vZGVzKCcuYmMtc2hvcnRjb2RlLXVpX19tYW51YWwtbGlzdGluZy1oZWFkZXInLCBmYWxzZSwgZWwuZGlzcGxheVNldHRpbmdzSGVhZGVyLCB0cnVlKVswXTtcblxuXHRpZiAoIWFjdGl2ZSkge1xuXHRcdHRvb2xzLnJlbW92ZUNsYXNzKGhlYWRlciwgJ2FjdGl2ZScpO1xuXHRcdHRvb2xzLnJlbW92ZUNsYXNzKGVsLnByb2R1Y3RMaXN0V3JhcHBlciwgJ2FjdGl2ZScpO1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHRvb2xzLmFkZENsYXNzKGVsLnByb2R1Y3RMaXN0V3JhcHBlciwgJ2FjdGl2ZScpO1xuXHR0b29scy5hZGRDbGFzcyhoZWFkZXIsICdhY3RpdmUnKTtcbn07XG5cbmNvbnN0IHRvZ2dsZURpc3BsYXlTZXR0aW5ncyA9ICgpID0+IHtcblx0aWYgKHRvb2xzLmdldENoaWxkcmVuKGVsLnByb2R1Y3RMaXN0KS5sZW5ndGggPiAwKSB7XG5cdFx0c2hvd0hpZGVEZWZhdWx0U2V0dGluZ3NIZWFkZXIoZmFsc2UpO1xuXHRcdHNob3dIaWRlVGVybXNMaXN0KGZhbHNlKTtcblx0XHRzaG93SGlkZVByb2R1Y3RMaXN0KHRydWUpO1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGlmICh0b29scy5nZXRDaGlsZHJlbihlbC5wcm9kdWN0TGlzdCkubGVuZ3RoIDw9IDAgJiYgdG9vbHMuZ2V0Q2hpbGRyZW4oZWwudGVybXNMaXN0KS5sZW5ndGggPiAwKSB7XG5cdFx0c2hvd0hpZGVEZWZhdWx0U2V0dGluZ3NIZWFkZXIoZmFsc2UpO1xuXHRcdHNob3dIaWRlUHJvZHVjdExpc3QoZmFsc2UpO1xuXHRcdHNob3dIaWRlVGVybXNMaXN0KHRydWUpO1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHNob3dIaWRlVGVybXNMaXN0KGZhbHNlKTtcblx0c2hvd0hpZGVQcm9kdWN0TGlzdChmYWxzZSk7XG5cdHNob3dIaWRlRGVmYXVsdFNldHRpbmdzSGVhZGVyKHRydWUpO1xufTtcblxuY29uc3QgaGFuZGxlUXVlcnlUZXJtUmVtb3ZhbCA9IChldmVudCA9IHt9LCB2YWx1ZSA9ICcnKSA9PiB7XG5cdGxldCB0ZXJtSUQgPSAnJztcblx0aWYgKGV2ZW50KSB7XG5cdFx0dGVybUlEID0gZXZlbnQuZGV0YWlsLnZhbHVlO1xuXHR9IGVsc2Uge1xuXHRcdHRlcm1JRCA9IHZhbHVlO1xuXHR9XG5cblx0Y29uc3QgdGVybSA9IHRvb2xzLmdldE5vZGVzKGBbZGF0YS12YWx1ZT1cIiR7dGVybUlEfVwiXWAsIGZhbHNlLCBlbC50ZXJtc0xpc3QsIHRydWUpWzBdO1xuXHRpZiAoIXRlcm0pIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCB0ZXJtSXRlbSA9IHRvb2xzLmNsb3Nlc3QodGVybSwgJy5iYy1zaG9ydGNvZGUtdWlfX3Rlcm1zLWxpc3QtaXRlbScpO1xuXHR0ZXJtSXRlbS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRlcm1JdGVtKTtcblx0dG9nZ2xlRGlzcGxheVNldHRpbmdzKCk7XG59O1xuXG5jb25zdCByZW1vdmVUZXJtT25DbGljayA9IChldmVudCkgPT4ge1xuXHRjb25zdCB2YWx1ZSA9IGV2ZW50LmRlbGVnYXRlVGFyZ2V0LmRhdGFzZXQudmFsdWU7XG5cdGhhbmRsZVF1ZXJ5VGVybVJlbW92YWwobnVsbCwgdmFsdWUpO1xuXHR0cmlnZ2VyKHsgZXZlbnQ6ICdiaWdjb21tZXJjZS9yZW1vdmVfcXVlcnlfdGVybScsIGRhdGE6IHsgdmFsdWUsIGZyb21TZXR0aW5nczogdHJ1ZSB9LCBuYXRpdmU6IGZhbHNlIH0pO1xufTtcblxuY29uc3QgaGFuZGxlUXVlcnlUZXJtQWRkaXRpb24gPSAoZGF0YSkgPT4ge1xuXHRjb25zdCB0ZXJtSXRlbSA9IHRvb2xzLmdldE5vZGVzKGBbZGF0YS12YWx1ZT1cIiR7ZGF0YS5kZXRhaWwudmFsdWV9XCJdYCwgZmFsc2UsIGVsLnRlcm1zTGlzdCwgdHJ1ZSlbMF07XG5cdGlmICh0ZXJtSXRlbSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGVsLnRlcm1zTGlzdC5pbnNlcnRBZGphY2VudEhUTUwoJ2JlZm9yZWVuZCcsIHRlcm1UZW1wbGF0ZShkYXRhLmRldGFpbCkpO1xuXHR0b2dnbGVEaXNwbGF5U2V0dGluZ3MoKTtcbn07XG5cbmNvbnN0IHJlc2V0RGlzcGxheVNldHRpbmdzID0gKCkgPT4ge1xuXHRzZXRQb3N0c1BlclBhZ2VJbmRpY2F0b3IoZWwucmVzZXRCdXR0b24uZGF0YXNldC5yZXNldFZhbHVlKTtcblx0c2hvcnRjb2RlU3RhdGUud3BBUElEaXNwbGF5U2V0dGluZ3MucGVyX3BhZ2UgPSAnJztcblx0c2hvcnRjb2RlU3RhdGUud3BBUElEaXNwbGF5U2V0dGluZ3Mub3JkZXJieSA9ICcnO1xuXHRzaG9ydGNvZGVTdGF0ZS53cEFQSURpc3BsYXlTZXR0aW5ncy5vcmRlciA9ICcnO1xuXHRlbC50ZXJtc0xpc3QudGV4dENvbnRlbnQgPSAnJztcbn07XG5cbmNvbnN0IGhhbmRsZVNhdmVkVUlEaXNwbGF5U2V0dGluZ3MgPSAoZXZlbnQpID0+IHtcblx0Y29uc3QgcGFyYW1zID0gZXZlbnQuZGV0YWlsLnBhcmFtcztcblxuXHRyZXNldERpc3BsYXlTZXR0aW5ncygpO1xuXHRzZXRPcmRlcmJ5UGFyYW0obnVsbCwgcGFyYW1zKTtcblx0c2V0T3JkZXJQYXJhbShudWxsLCBwYXJhbXMpO1xuXHRzZXRQb3N0c1BlclBhZ2UobnVsbCwgcGFyYW1zKTtcblx0dG9nZ2xlRGlzcGxheVNldHRpbmdzKCk7XG59O1xuXG5jb25zdCBjYWNoZUVsZW1lbnRzID0gKCkgPT4ge1xuXHRlbC5zZXR0aW5nc1NpZGViYXIgPSB0b29scy5nZXROb2RlcygnYmMtc2hvcnRjb2RlLXVpLXNldHRpbmdzJylbMF07XG5cdGVsLmRpc3BsYXlTZXR0aW5ncyA9IHRvb2xzLmdldE5vZGVzKCdiYy1zaG9ydGNvZGUtdWktZGlzcGxheS1zZXR0aW5ncycsIGZhbHNlLCBlbC5zZXR0aW5nc1NpZGViYXIpWzBdO1xuXHRlbC5yZXNldEJ1dHRvbiA9IHRvb2xzLmdldE5vZGVzKCdiYy1zaG9ydGNvZGUtdWktcmVzZXQtcG9zdHMtcGVyLXBhZ2UnLCBmYWxzZSwgZWwuZGlzcGxheVNldHRpbmdzKVswXTtcblx0ZWwucG9zdHNQZXJQYWdlRmllbGQgPSB0b29scy5nZXROb2RlcygnI2JjLXNob3J0Y29kZS11aV9fcG9zdHMtcGVyLXBhZ2UnLCBmYWxzZSwgZWwuZGlzcGxheVNldHRpbmdzLCB0cnVlKVswXTtcblx0ZWwucG9zdHNQZXJQYWdlSW5kaWNhdG9yID0gdG9vbHMuZ2V0Tm9kZXMoJy5iYy1zaG9ydGNvZGUtdWlfX3Bvc3RzLXBlci1wYWdlLXZhbHVlJywgZmFsc2UsIGVsLmRpc3BsYXlTZXR0aW5ncywgdHJ1ZSlbMF07XG5cdGVsLmRpc3BsYXlTZXR0aW5nc0hlYWRlciA9IHRvb2xzLmdldE5vZGVzKCdiYy1zaG9ydGNvZGUtdWktc2V0dGluZ3MtaGVhZGVyJywgZmFsc2UsIGVsLnNldHRpbmdzU2lkZWJhcilbMF07XG5cdGVsLnByb2R1Y3RMaXN0V3JhcHBlciA9IHRvb2xzLmdldE5vZGVzKCdiYy1zaG9ydGNvZGUtdWktc2VsZWN0ZWQtcHJvZHVjdHMnLCBmYWxzZSwgZWwuc2V0dGluZ3NTaWRlYmFyKVswXTtcblx0ZWwucHJvZHVjdExpc3QgPSB0b29scy5nZXROb2RlcygnYmMtc2hvcnRjb2RlLXVpLXByb2R1Y3QtbGlzdCcsIGZhbHNlLCBlbC5wcm9kdWN0TGlzdFdyYXBwZXIpWzBdO1xuXHRlbC50ZXJtc0xpc3RXcmFwcGVyID0gdG9vbHMuZ2V0Tm9kZXMoJ2JjLXNob3J0Y29kZS11aS1zZWxlY3RlZC10ZXJtcycsIGZhbHNlLCBlbC5zZXR0aW5nc1NpZGViYXIpWzBdO1xuXHRlbC50ZXJtc0xpc3QgPSB0b29scy5nZXROb2RlcygnYmMtc2hvcnRjb2RlLXVpLXRlcm1zLWxpc3QnLCBmYWxzZSwgZWwudGVybXNMaXN0V3JhcHBlcilbMF07XG59O1xuXG5jb25zdCBiaW5kRXZlbnRzID0gKCkgPT4ge1xuXHRkZWxlZ2F0ZShlbC5kaXNwbGF5U2V0dGluZ3MsICcjYmMtc2hvcnRjb2RlLXVpX19wb3N0cy1wZXItcGFnZScsICdpbnB1dCcsIHNldFBvc3RzUGVyUGFnZSk7XG5cdGRlbGVnYXRlKGVsLmRpc3BsYXlTZXR0aW5ncywgJ1tuYW1lPVwiYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LW9yZGVyXCJdJywgJ2NsaWNrJywgc2V0T3JkZXJQYXJhbSk7XG5cdGRlbGVnYXRlKGVsLmRpc3BsYXlTZXR0aW5ncywgJ1tuYW1lPVwiYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LW9yZGVyYnlcIl0nLCAnY2xpY2snLCBzZXRPcmRlcmJ5UGFyYW0pO1xuXHRkZWxlZ2F0ZShlbC5kaXNwbGF5U2V0dGluZ3MsICdbZGF0YS1qcz1cImJjLXNob3J0Y29kZS11aS1yZXNldC1wb3N0cy1wZXItcGFnZVwiXScsICdjbGljaycsIHJlc2V0UG9zdHNQZXJQYWdlKTtcblx0ZGVsZWdhdGUoZWwuc2V0dGluZ3NTaWRlYmFyLCAnW2RhdGEtanM9XCJiYy1zaG9ydGNvZGUtdWktcmVtb3ZlLXRlcm1cIl0nLCAnY2xpY2snLCByZW1vdmVUZXJtT25DbGljayk7XG5cdG9uKGRvY3VtZW50LCAnYmlnY29tbWVyY2Uvc2V0X3Nob3J0Y29kZV91aV9zdGF0ZScsIGhhbmRsZVNhdmVkVUlEaXNwbGF5U2V0dGluZ3MpO1xuXHRvbihkb2N1bWVudCwgJ2JpZ2NvbW1lcmNlL3Nob3J0Y29kZV9wcm9kdWN0X2xpc3RfZXZlbnQnLCB0b2dnbGVEaXNwbGF5U2V0dGluZ3MpO1xuXHRvbihkb2N1bWVudCwgJ2JpZ2NvbW1lcmNlL3Nob3J0Y29kZV9xdWVyeV90ZXJtX2FkZGVkJywgaGFuZGxlUXVlcnlUZXJtQWRkaXRpb24pO1xuXHRvbihkb2N1bWVudCwgJ2JpZ2NvbW1lcmNlL3Nob3J0Y29kZV9xdWVyeV90ZXJtX3JlbW92ZWQnLCBoYW5kbGVRdWVyeVRlcm1SZW1vdmFsKTtcbn07XG5cbmNvbnN0IGluaXQgPSAoKSA9PiB7XG5cdGNhY2hlRWxlbWVudHMoKTtcblx0YmluZEV2ZW50cygpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgaW5pdDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vc2hvcnRjb2RlLXVpL2Rpc3BsYXktc2V0dGluZ3MuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///199\n"); /***/ }), /* 200 */ @@ -1303,14 +1304,14 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _interopRequireWildcard = __webpack_require__(11);\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _slicedToArray2 = _interopRequireDefault(__webpack_require__(52));\n\nvar _entries = _interopRequireDefault(__webpack_require__(54));\n\nvar _delegate = _interopRequireDefault(__webpack_require__(25));\n\nvar tools = _interopRequireWildcard(__webpack_require__(15));\n\nvar _shortcodeState = _interopRequireDefault(__webpack_require__(7));\n\nvar _ajax = __webpack_require__(36);\n\nvar _i18n = __webpack_require__(26);\n\nvar _events = __webpack_require__(16);\n\n/**\n * @module Create Shortcode\n * @description create a shortcode based on the selected options and add it to the WYSIWYG;\n */\nvar el = {};\n/**\n * @function queryObjectToString\n * @description iterate over the wpAPIQueryObj object and create a query string.\n * @returns {string}\n */\n\nvar shortcodeObjectToString = function shortcodeObjectToString() {\n var str = [];\n\n if (_shortcodeState.default.selectedProducts.post_id.length > 0) {\n (0, _entries.default)(_shortcodeState.default.selectedProducts).forEach(function (_ref) {\n var _ref2 = (0, _slicedToArray2.default)(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n if (value.length <= 0) {\n return;\n }\n\n var k = encodeURIComponent(key);\n var v = encodeURIComponent(value);\n str.push(\"\".concat(k, \"=\").concat(v));\n });\n } else {\n (0, _entries.default)(_shortcodeState.default.wpAPIQueryObj).forEach(function (_ref3) {\n var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),\n key = _ref4[0],\n value = _ref4[1];\n\n if (value.length <= 0) {\n return;\n }\n\n var k = encodeURIComponent(key);\n var v = encodeURIComponent(value);\n str.push(\"\".concat(k, \"=\").concat(v));\n });\n }\n\n (0, _entries.default)(_shortcodeState.default.wpAPIDisplaySettings).forEach(function (_ref5) {\n var _ref6 = (0, _slicedToArray2.default)(_ref5, 2),\n key = _ref6[0],\n value = _ref6[1];\n\n if (value.length <= 0) {\n return;\n }\n\n var k = encodeURIComponent(key);\n var v = encodeURIComponent(value);\n str.push(\"\".concat(k, \"=\").concat(v));\n });\n return str.length ? str.join(_i18n.I18N.operations.query_string_separator) : '';\n};\n/**\n * @function insertAtCaret\n * @description insert the shortcode at the current caret position in the text field.\n * @param targetField\n * @param shortcode\n */\n\n\nvar insertAtCaret = function insertAtCaret(targetField, shortcode) {\n if (document.selection) {\n //IE support\n targetField.focus();\n var sel = document.selection.createRange();\n sel.text = shortcode;\n } else if (targetField.selectionStart || targetField.selectionStart === 0) {\n var startPos = targetField.selectionStart;\n var endPos = targetField.selectionEnd;\n targetField.value = targetField.value.substring(0, startPos) + shortcode + targetField.value.substring(endPos, targetField.value.length);\n } else {\n targetField.value += shortcode;\n }\n};\n/**\n * @function addShortcodeToTheEditor\n * @description Place the shortcode string in the current editor.\n * @param shortcode\n * @param attributes\n */\n\n\nvar addShortcodeToTheEditor = function addShortcodeToTheEditor(shortcode, attributes) {\n if (_shortcodeState.default.isGutenberg) {\n (0, _events.trigger)({\n event: 'bigcommerce/init_shortcode_ui',\n data: {\n hide: true\n },\n native: false\n });\n (0, _events.trigger)({\n event: 'bigcommerce/reset_shortcode_ui',\n native: false\n });\n\n if (_shortcodeState.default.insertCallback) {\n _shortcodeState.default.insertCallback({\n query_params: attributes,\n shortcode: shortcode\n });\n }\n\n return;\n }\n\n if (tools.hasClass(_shortcodeState.default.currentEditor, 'html-active')) {\n var target = tools.getNodes('.wp-editor-area', false, _shortcodeState.default.currentEditor, true)[0];\n insertAtCaret(target, shortcode);\n (0, _events.trigger)({\n event: 'bigcommerce/init_shortcode_ui',\n data: {\n hide: true\n },\n native: false\n });\n return;\n }\n\n window.tinymce.activeEditor.execCommand('mceInsertContent', false, shortcode);\n (0, _events.trigger)({\n event: 'bigcommerce/init_shortcode_ui',\n data: {\n hide: true\n },\n native: false\n });\n};\n/**\n * @function generateShortcode\n * @description run the WP API query to generate the shortcode output.\n */\n\n\nvar generateShortcode = function generateShortcode() {\n _shortcodeState.default.isFetching = true;\n (0, _ajax.wpAPIShortcodeBuilder)(shortcodeObjectToString()).end(function (err, res) {\n _shortcodeState.default.isFetching = false;\n\n if (err) {\n console.error(err);\n }\n\n addShortcodeToTheEditor(res.body.shortcode, res.body.attributes);\n });\n};\n\nvar cacheElements = function cacheElements() {\n el.container = tools.getNodes('.bc-shortcode-ui__actions', false, document, true)[0];\n el.shortcodeButton = tools.getNodes('bc-shortcode-ui-embed-button', false, el.container, false)[0];\n};\n\nvar bindEvents = function bindEvents() {\n (0, _delegate.default)(el.container, '[data-js=\"bc-shortcode-ui-embed-button\"]', 'click', generateShortcode);\n};\n\nvar init = function init() {\n cacheElements();\n bindEvents();\n};\n\nvar _default = init;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL3Nob3J0Y29kZS11aS9jcmVhdGUtc2hvcnRjb2RlLmpzPzI1ZmIiXSwibmFtZXMiOlsiZWwiLCJzaG9ydGNvZGVPYmplY3RUb1N0cmluZyIsInN0ciIsInNlbGVjdGVkUHJvZHVjdHMiLCJwb3N0X2lkIiwibGVuZ3RoIiwiZm9yRWFjaCIsImtleSIsInZhbHVlIiwiayIsImVuY29kZVVSSUNvbXBvbmVudCIsInYiLCJwdXNoIiwid3BBUElRdWVyeU9iaiIsIndwQVBJRGlzcGxheVNldHRpbmdzIiwiam9pbiIsIm9wZXJhdGlvbnMiLCJxdWVyeV9zdHJpbmdfc2VwYXJhdG9yIiwiaW5zZXJ0QXRDYXJldCIsInRhcmdldEZpZWxkIiwic2hvcnRjb2RlIiwiZG9jdW1lbnQiLCJzZWxlY3Rpb24iLCJmb2N1cyIsInNlbCIsImNyZWF0ZVJhbmdlIiwidGV4dCIsInNlbGVjdGlvblN0YXJ0Iiwic3RhcnRQb3MiLCJlbmRQb3MiLCJzZWxlY3Rpb25FbmQiLCJzdWJzdHJpbmciLCJhZGRTaG9ydGNvZGVUb1RoZUVkaXRvciIsImF0dHJpYnV0ZXMiLCJpc0d1dGVuYmVyZyIsImV2ZW50IiwiZGF0YSIsImhpZGUiLCJuYXRpdmUiLCJpbnNlcnRDYWxsYmFjayIsInF1ZXJ5X3BhcmFtcyIsInRvb2xzIiwiaGFzQ2xhc3MiLCJjdXJyZW50RWRpdG9yIiwidGFyZ2V0IiwiZ2V0Tm9kZXMiLCJ3aW5kb3ciLCJ0aW55bWNlIiwiYWN0aXZlRWRpdG9yIiwiZXhlY0NvbW1hbmQiLCJnZW5lcmF0ZVNob3J0Y29kZSIsImlzRmV0Y2hpbmciLCJlbmQiLCJlcnIiLCJyZXMiLCJjb25zb2xlIiwiZXJyb3IiLCJib2R5IiwiY2FjaGVFbGVtZW50cyIsImNvbnRhaW5lciIsInNob3J0Y29kZUJ1dHRvbiIsImJpbmRFdmVudHMiLCJpbml0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFLQTs7QUFDQTs7QUFDQTs7QUFD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Q0E7O0FBRURyQiw0QkFBd0JzQixJQUFJRyxJQUFKLENBQVNyQyxTQUFqQyxFQUE0Q2tDLElBQUlHLElBQUosQ0FBU3hCLFVBQXJEO0FBQ0EsR0FURjtBQVVBLENBYkQ7O0FBZUEsSUFBTXlCLGdCQUFnQixTQUFoQkEsYUFBZ0IsR0FBTTtBQUMzQjFELEtBQUcyRCxTQUFILEdBQWVsQixNQUFNSSxRQUFOLENBQWUsMkJBQWYsRUFBNEMsS0FBNUMsRUFBbUR4QixRQUFuRCxFQUE2RCxJQUE3RCxFQUFtRSxDQUFuRSxDQUFmO0FBQ0FyQixLQUFHNEQsZUFBSCxHQUFxQm5CLE1BQU1JLFFBQU4sQ0FBZSw4QkFBZixFQUErQyxLQUEvQyxFQUFzRDdDLEdBQUcyRCxTQUF6RCxFQUFvRSxLQUFwRSxFQUEyRSxDQUEzRSxDQUFyQjtBQUNBLENBSEQ7O0FBS0EsSUFBTUUsYUFBYSxTQUFiQSxVQUFhLEdBQU07QUFDeEIseUJBQVM3RCxHQUFHMkQsU0FBWixFQUF1QiwwQ0FBdkIsRUFBbUUsT0FBbkUsRUFBNEVULGlCQUE1RTtBQUNBLENBRkQ7O0FBSUEsSUFBTVksT0FBTyxTQUFQQSxJQUFPLEdBQU07QUFDbEJKO0FBQ0FHO0FBQ0EsQ0FIRDs7ZUFLZUMsSSIsImZpbGUiOiIyMDEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgQ3JlYXRlIFNob3J0Y29kZVxuICogQGRlc2NyaXB0aW9uIGNyZWF0ZSBhIHNob3J0Y29kZSBiYXNlZCBvbiB0aGUgc2VsZWN0ZWQgb3B0aW9ucyBhbmQgYWRkIGl0IHRvIHRoZSBXWVNJV1lHO1xuICovXG5cbmltcG9ydCBkZWxlZ2F0ZSBmcm9tICdkZWxlZ2F0ZSc7XG5pbXBvcnQgKiBhcyB0b29scyBmcm9tICcuLi8uLi91dGlscy90b29scyc7XG5pbXBvcnQgc2hvcnRjb2RlU3RhdGUgZnJvbSAnLi4vY29uZmlnL3Nob3J0Y29kZS1zdGF0ZSc7XG5pbXBvcnQgeyB3cEFQSVNob3J0Y29kZUJ1aWxkZXIgfSBmcm9tICcuLi8uLi91dGlscy9hamF4JztcbmltcG9ydCB7IEkxOE4gfSBmcm9tICcuLi9jb25maWcvaTE4bic7XG5pbXBvcnQgeyB0cmlnZ2VyIH0gZnJvbSAnLi4vLi4vdXRpbHMvZXZlbnRzJztcblxuY29uc3QgZWwgPSB7fTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gcXVlcnlPYmplY3RUb1N0cmluZ1xuICogQGRlc2NyaXB0aW9uIGl0ZXJhdGUgb3ZlciB0aGUgd3BBUElRdWVyeU9iaiBvYmplY3QgYW5kIGNyZWF0ZSBhIHF1ZXJ5IHN0cmluZy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmNvbnN0IHNob3J0Y29kZU9iamVjdFRvU3RyaW5nID0gKCkgPT4ge1xuXHRjb25zdCBzdHIgPSBbXTtcblxuXHRpZiAoc2hvcnRjb2RlU3RhdGUuc2VsZWN0ZWRQcm9kdWN0cy5wb3N0X2lkLmxlbmd0aCA+IDApIHtcblx0XHRPYmplY3QuZW50cmllcyhzaG9ydGNvZGVTdGF0ZS5zZWxlY3RlZFByb2R1Y3RzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcblx0XHRcdGlmICh2YWx1ZS5sZW5ndGggPD0gMCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBrID0gZW5jb2RlVVJJQ29tcG9uZW50KGtleSk7XG5cdFx0XHRjb25zdCB2ID0gZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcblx0XHRcdHN0ci5wdXNoKGAke2t9PSR7dn1gKTtcblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHRPYmplY3QuZW50cmllcyhzaG9ydGNvZGVTdGF0ZS53cEFQSVF1ZXJ5T2JqKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcblx0XHRcdGlmICh2YWx1ZS5sZW5ndGggPD0gMCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBrID0gZW5jb2RlVVJJQ29tcG9uZW50KGtleSk7XG5cdFx0XHRjb25zdCB2ID0gZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcblx0XHRcdHN0ci5wdXNoKGAke2t9PSR7dn1gKTtcblx0XHR9KTtcblx0fVxuXG5cdE9iamVjdC5lbnRyaWVzKHNob3J0Y29kZVN0YXRlLndwQVBJRGlzcGxheVNldHRpbmdzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcblx0XHRpZiAodmFsdWUubGVuZ3RoIDw9IDApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgayA9IGVuY29kZVVSSUNvbXBvbmVudChrZXkpO1xuXHRcdGNvbnN0IHYgPSBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuXHRcdHN0ci5wdXNoKGAke2t9PSR7dn1gKTtcblx0fSk7XG5cblx0cmV0dXJuIHN0ci5sZW5ndGggPyBzdHIuam9pbihJMThOLm9wZXJhdGlvbnMucXVlcnlfc3RyaW5nX3NlcGFyYXRvcikgOiAnJztcbn07XG5cbi8qKlxuICogQGZ1bmN0aW9uIGluc2VydEF0Q2FyZXRcbiAqIEBkZXNjcmlwdGlvbiBpbnNlcnQgdGhlIHNob3J0Y29kZSBhdCB0aGUgY3VycmVudCBjYXJldCBwb3NpdGlvbiBpbiB0aGUgdGV4dCBmaWVsZC5cbiAqIEBwYXJhbSB0YXJnZXRGaWVsZFxuICogQHBhcmFtIHNob3J0Y29kZVxuICovXG5jb25zdCBpbnNlcnRBdENhcmV0ID0gKHRhcmdldEZpZWxkLCBzaG9ydGNvZGUpID0+IHtcblx0aWYgKGRvY3VtZW50LnNlbGVjdGlvbikge1xuXHRcdC8vSUUgc3VwcG9ydFxuXHRcdHRhcmdldEZpZWxkLmZvY3VzKCk7XG5cdFx0Y29uc3Qgc2VsID0gZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCk7XG5cdFx0c2VsLnRleHQgPSBzaG9ydGNvZGU7XG5cdH0gZWxzZSBpZiAodGFyZ2V0RmllbGQuc2VsZWN0aW9uU3RhcnQgfHwgdGFyZ2V0RmllbGQuc2VsZWN0aW9uU3RhcnQgPT09IDApIHtcblx0XHRjb25zdCBzdGFydFBvcyA9IHRhcmdldEZpZWxkLnNlbGVjdGlvblN0YXJ0O1xuXHRcdGNvbnN0IGVuZFBvcyA9IHRhcmdldEZpZWxkLnNlbGVjdGlvbkVuZDtcblx0XHR0YXJnZXRGaWVsZC52YWx1ZSA9IHRhcmdldEZpZWxkLnZhbHVlLnN1YnN0cmluZygwLCBzdGFydFBvcylcblx0XHRcdCsgc2hvcnRjb2RlXG5cdFx0XHQrIHRhcmdldEZpZWxkLnZhbHVlLnN1YnN0cmluZyhlbmRQb3MsIHRhcmdldEZpZWxkLnZhbHVlLmxlbmd0aCk7XG5cdH0gZWxzZSB7XG5cdFx0dGFyZ2V0RmllbGQudmFsdWUgKz0gc2hvcnRjb2RlO1xuXHR9XG59O1xuXG4vKipcbiAqIEBmdW5jdGlvbiBhZGRTaG9ydGNvZGVUb1RoZUVkaXRvclxuICogQGRlc2NyaXB0aW9uIFBsYWNlIHRoZSBzaG9ydGNvZGUgc3RyaW5nIGluIHRoZSBjdXJyZW50IGVkaXRvci5cbiAqIEBwYXJhbSBzaG9ydGNvZGVcbiAqIEBwYXJhbSBhdHRyaWJ1dGVzXG4gKi9cbmNvbnN0IGFkZFNob3J0Y29kZVRvVGhlRWRpdG9yID0gKHNob3J0Y29kZSwgYXR0cmlidXRlcykgPT4ge1xuXHRpZiAoc2hvcnRjb2RlU3RhdGUuaXNHdXRlbmJlcmcpIHtcblx0XHR0cmlnZ2VyKHsgZXZlbnQ6ICdiaWdjb21tZXJjZS9pbml0X3Nob3J0Y29kZV91aScsIGRhdGE6IHsgaGlkZTogdHJ1ZSB9LCBuYXRpdmU6IGZhbHNlIH0pO1xuXHRcdHRyaWdnZXIoeyBldmVudDogJ2JpZ2NvbW1lcmNlL3Jlc2V0X3Nob3J0Y29kZV91aScsIG5hdGl2ZTogZmFsc2UgfSk7XG5cdFx0aWYgKHNob3J0Y29kZVN0YXRlLmluc2VydENhbGxiYWNrKSB7XG5cdFx0XHRzaG9ydGNvZGVTdGF0ZS5pbnNlcnRDYWxsYmFjayh7IHF1ZXJ5X3BhcmFtczogYXR0cmlidXRlcywgc2hvcnRjb2RlIH0pO1xuXHRcdH1cblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAodG9vbHMuaGFzQ2xhc3Moc2hvcnRjb2RlU3RhdGUuY3VycmVudEVkaXRvciwgJ2h0bWwtYWN0aXZlJykpIHtcblx0XHRjb25zdCB0YXJnZXQgPSB0b29scy5nZXROb2RlcygnLndwLWVkaXRvci1hcmVhJywgZmFsc2UsIHNob3J0Y29kZVN0YXRlLmN1cnJlbnRFZGl0b3IsIHRydWUpWzBdO1xuXHRcdGluc2VydEF0Q2FyZXQodGFyZ2V0LCBzaG9ydGNvZGUpO1xuXHRcdHRyaWdnZXIoeyBldmVudDogJ2JpZ2NvbW1lcmNlL2luaXRfc2hvcnRjb2RlX3VpJywgZGF0YTogeyBoaWRlOiB0cnVlIH0sIG5hdGl2ZTogZmFsc2UgfSk7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0d2luZG93LnRpbnltY2UuYWN0aXZlRWRpdG9yLmV4ZWNDb21tYW5kKCdtY2VJbnNlcnRDb250ZW50JywgZmFsc2UsIHNob3J0Y29kZSk7XG5cdHRyaWdnZXIoeyBldmVudDogJ2JpZ2NvbW1lcmNlL2luaXRfc2hvcnRjb2RlX3VpJywgZGF0YTogeyBoaWRlOiB0cnVlIH0sIG5hdGl2ZTogZmFsc2UgfSk7XG59O1xuXG4vKipcbiAqIEBmdW5jdGlvbiBnZW5lcmF0ZVNob3J0Y29kZVxuICogQGRlc2NyaXB0aW9uIHJ1biB0aGUgV1AgQVBJIHF1ZXJ5IHRvIGdlbmVyYXRlIHRoZSBzaG9ydGNvZGUgb3V0cHV0LlxuICovXG5jb25zdCBnZW5lcmF0ZVNob3J0Y29kZSA9ICgpID0+IHtcblx0c2hvcnRjb2RlU3RhdGUuaXNGZXRjaGluZyA9IHRydWU7XG5cblx0d3BBUElTaG9ydGNvZGVCdWlsZGVyKHNob3J0Y29kZU9iamVjdFRvU3RyaW5nKCkpXG5cdFx0LmVuZCgoZXJyLCByZXMpID0+IHtcblx0XHRcdHNob3J0Y29kZVN0YXRlLmlzRmV0Y2hpbmcgPSBmYWxzZTtcblxuXHRcdFx0aWYgKGVycikge1xuXHRcdFx0XHRjb25zb2xlLmVycm9yKGVycik7XG5cdFx0XHR9XG5cblx0XHRcdGFkZFNob3J0Y29kZVRvVGhlRWRpdG9yKHJlcy5ib2R5LnNob3J0Y29kZSwgcmVzLmJvZHkuYXR0cmlidXRlcyk7XG5cdFx0fSk7XG59O1xuXG5jb25zdCBjYWNoZUVsZW1lbnRzID0gKCkgPT4ge1xuXHRlbC5jb250YWluZXIgPSB0b29scy5nZXROb2RlcygnLmJjLXNob3J0Y29kZS11aV9fYWN0aW9ucycsIGZhbHNlLCBkb2N1bWVudCwgdHJ1ZSlbMF07XG5cdGVsLnNob3J0Y29kZUJ1dHRvbiA9IHRvb2xzLmdldE5vZGVzKCdiYy1zaG9ydGNvZGUtdWktZW1iZWQtYnV0dG9uJywgZmFsc2UsIGVsLmNvbnRhaW5lciwgZmFsc2UpWzBdO1xufTtcblxuY29uc3QgYmluZEV2ZW50cyA9ICgpID0+IHtcblx0ZGVsZWdhdGUoZWwuY29udGFpbmVyLCAnW2RhdGEtanM9XCJiYy1zaG9ydGNvZGUtdWktZW1iZWQtYnV0dG9uXCJdJywgJ2NsaWNrJywgZ2VuZXJhdGVTaG9ydGNvZGUpO1xufTtcblxuY29uc3QgaW5pdCA9ICgpID0+IHtcblx0Y2FjaGVFbGVtZW50cygpO1xuXHRiaW5kRXZlbnRzKCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBpbml0O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL2pzL3NyYy9hZG1pbi9zaG9ydGNvZGUtdWkvY3JlYXRlLXNob3J0Y29kZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///201\n"); +eval("\n\nvar _interopRequireWildcard = __webpack_require__(8);\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _slicedToArray2 = _interopRequireDefault(__webpack_require__(54));\n\nvar _entries = _interopRequireDefault(__webpack_require__(56));\n\nvar _delegate = _interopRequireDefault(__webpack_require__(23));\n\nvar tools = _interopRequireWildcard(__webpack_require__(12));\n\nvar _shortcodeState = _interopRequireDefault(__webpack_require__(4));\n\nvar _ajax = __webpack_require__(35);\n\nvar _i18n = __webpack_require__(24);\n\nvar _events = __webpack_require__(13);\n\n/**\n * @module Create Shortcode\n * @description create a shortcode based on the selected options and add it to the WYSIWYG;\n */\nvar el = {};\n/**\n * @function queryObjectToString\n * @description iterate over the wpAPIQueryObj object and create a query string.\n * @returns {string}\n */\n\nvar shortcodeObjectToString = function shortcodeObjectToString() {\n var str = [];\n\n if (_shortcodeState.default.selectedProducts.post_id.length > 0) {\n (0, _entries.default)(_shortcodeState.default.selectedProducts).forEach(function (_ref) {\n var _ref2 = (0, _slicedToArray2.default)(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n if (value.length <= 0) {\n return;\n }\n\n var k = encodeURIComponent(key);\n var v = encodeURIComponent(value);\n str.push(\"\".concat(k, \"=\").concat(v));\n });\n } else {\n (0, _entries.default)(_shortcodeState.default.wpAPIQueryObj).forEach(function (_ref3) {\n var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),\n key = _ref4[0],\n value = _ref4[1];\n\n if (value.length <= 0) {\n return;\n }\n\n var k = encodeURIComponent(key);\n var v = encodeURIComponent(value);\n str.push(\"\".concat(k, \"=\").concat(v));\n });\n }\n\n (0, _entries.default)(_shortcodeState.default.wpAPIDisplaySettings).forEach(function (_ref5) {\n var _ref6 = (0, _slicedToArray2.default)(_ref5, 2),\n key = _ref6[0],\n value = _ref6[1];\n\n if (value.length <= 0) {\n return;\n }\n\n var k = encodeURIComponent(key);\n var v = encodeURIComponent(value);\n str.push(\"\".concat(k, \"=\").concat(v));\n });\n return str.length ? str.join(_i18n.I18N.operations.query_string_separator) : '';\n};\n/**\n * @function insertAtCaret\n * @description insert the shortcode at the current caret position in the text field.\n * @param targetField\n * @param shortcode\n */\n\n\nvar insertAtCaret = function insertAtCaret(targetField, shortcode) {\n if (document.selection) {\n //IE support\n targetField.focus();\n var sel = document.selection.createRange();\n sel.text = shortcode;\n } else if (targetField.selectionStart || targetField.selectionStart === 0) {\n var startPos = targetField.selectionStart;\n var endPos = targetField.selectionEnd;\n targetField.value = targetField.value.substring(0, startPos) + shortcode + targetField.value.substring(endPos, targetField.value.length);\n } else {\n targetField.value += shortcode;\n }\n};\n/**\n * @function addShortcodeToTheEditor\n * @description Place the shortcode string in the current editor.\n * @param shortcode\n * @param attributes\n */\n\n\nvar addShortcodeToTheEditor = function addShortcodeToTheEditor(shortcode, attributes) {\n if (_shortcodeState.default.isGutenberg) {\n (0, _events.trigger)({\n event: 'bigcommerce/init_shortcode_ui',\n data: {\n hide: true\n },\n native: false\n });\n (0, _events.trigger)({\n event: 'bigcommerce/reset_shortcode_ui',\n native: false\n });\n\n if (_shortcodeState.default.insertCallback) {\n _shortcodeState.default.insertCallback({\n query_params: attributes,\n shortcode: shortcode\n });\n }\n\n return;\n }\n\n if (tools.hasClass(_shortcodeState.default.currentEditor, 'html-active')) {\n var target = tools.getNodes('.wp-editor-area', false, _shortcodeState.default.currentEditor, true)[0];\n insertAtCaret(target, shortcode);\n (0, _events.trigger)({\n event: 'bigcommerce/init_shortcode_ui',\n data: {\n hide: true\n },\n native: false\n });\n return;\n }\n\n window.tinymce.activeEditor.execCommand('mceInsertContent', false, shortcode);\n (0, _events.trigger)({\n event: 'bigcommerce/init_shortcode_ui',\n data: {\n hide: true\n },\n native: false\n });\n};\n/**\n * @function generateShortcode\n * @description run the WP API query to generate the shortcode output.\n */\n\n\nvar generateShortcode = function generateShortcode() {\n _shortcodeState.default.isFetching = true;\n (0, _ajax.wpAPIShortcodeBuilder)(shortcodeObjectToString()).end(function (err, res) {\n _shortcodeState.default.isFetching = false;\n\n if (err) {\n console.error(err);\n }\n\n addShortcodeToTheEditor(res.body.shortcode, res.body.attributes);\n });\n};\n\nvar cacheElements = function cacheElements() {\n el.container = tools.getNodes('.bc-shortcode-ui__actions', false, document, true)[0];\n el.shortcodeButton = tools.getNodes('bc-shortcode-ui-embed-button', false, el.container, false)[0];\n};\n\nvar bindEvents = function bindEvents() {\n (0, _delegate.default)(el.container, '[data-js=\"bc-shortcode-ui-embed-button\"]', 'click', generateShortcode);\n};\n\nvar init = function init() {\n cacheElements();\n bindEvents();\n};\n\nvar _default = init;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL3Nob3J0Y29kZS11aS9jcmVhdGUtc2hvcnRjb2RlLmpzPzI1ZmIiXSwibmFtZXMiOlsiZWwiLCJzaG9ydGNvZGVPYmplY3RUb1N0cmluZyIsInN0ciIsInNlbGVjdGVkUHJvZHVjdHMiLCJwb3N0X2lkIiwibGVuZ3RoIiwiZm9yRWFjaCIsImtleSIsInZhbHVlIiwiayIsImVuY29kZVVSSUNvbXBvbmVudCIsInYiLCJwdXNoIiwid3BBUElRdWVyeU9iaiIsIndwQVBJRGlzcGxheVNldHRpbmdzIiwiam9pbiIsIm9wZXJhdGlvbnMiLCJxdWVyeV9zdHJpbmdfc2VwYXJhdG9yIiwiaW5zZXJ0QXRDYXJldCIsInRhcmdldEZpZWxkIiwic2hvcnRjb2RlIiwiZG9jdW1lbnQiLCJzZWxlY3Rpb24iLCJmb2N1cyIsInNlbCIsImNyZWF0ZVJhbmdlIiwidGV4dCIsInNlbGVjdGlvblN0YXJ0Iiwic3RhcnRQb3MiLCJlbmRQb3MiLCJzZWxlY3Rpb25FbmQiLCJzdWJzdHJpbmciLCJhZGRTaG9ydGNvZGVUb1RoZUVkaXRvciIsImF0dHJpYnV0ZXMiLCJpc0d1dGVuYmVyZyIsImV2ZW50IiwiZGF0YSIsImhpZGUiLCJuYXRpdmUiLCJpbnNlcnRDYWxsYmFjayIsInF1ZXJ5X3BhcmFtcyIsInRvb2xzIiwiaGFzQ2xhc3MiLCJjdXJyZW50RWRpdG9yIiwidGFyZ2V0IiwiZ2V0Tm9kZXMiLCJ3aW5kb3ciLCJ0aW55bWNlIiwiYWN0aXZlRWRpdG9yIiwiZXhlY0NvbW1hbmQiLCJnZW5lcmF0ZVNob3J0Y29kZSIsImlzRmV0Y2hpbmciLCJlbmQiLCJlcnIiLCJyZXMiLCJjb25zb2xlIiwiZXJyb3IiLCJib2R5IiwiY2FjaGVFbGVtZW50cyIsImNvbnRhaW5lciIsInNob3J0Y29kZUJ1dHRvbiIsImJpbmRFdmVudHMiLCJpbml0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFLQTs7QUFDQTs7QUFDQTs7QUFD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Q0E7O0FBRURyQiw0QkFBd0JzQixJQUFJRyxJQUFKLENBQVNyQyxTQUFqQyxFQUE0Q2tDLElBQUlHLElBQUosQ0FBU3hCLFVBQXJEO0FBQ0EsR0FURjtBQVVBLENBYkQ7O0FBZUEsSUFBTXlCLGdCQUFnQixTQUFoQkEsYUFBZ0IsR0FBTTtBQUMzQjFELEtBQUcyRCxTQUFILEdBQWVsQixNQUFNSSxRQUFOLENBQWUsMkJBQWYsRUFBNEMsS0FBNUMsRUFBbUR4QixRQUFuRCxFQUE2RCxJQUE3RCxFQUFtRSxDQUFuRSxDQUFmO0FBQ0FyQixLQUFHNEQsZUFBSCxHQUFxQm5CLE1BQU1JLFFBQU4sQ0FBZSw4QkFBZixFQUErQyxLQUEvQyxFQUFzRDdDLEdBQUcyRCxTQUF6RCxFQUFvRSxLQUFwRSxFQUEyRSxDQUEzRSxDQUFyQjtBQUNBLENBSEQ7O0FBS0EsSUFBTUUsYUFBYSxTQUFiQSxVQUFhLEdBQU07QUFDeEIseUJBQVM3RCxHQUFHMkQsU0FBWixFQUF1QiwwQ0FBdkIsRUFBbUUsT0FBbkUsRUFBNEVULGlCQUE1RTtBQUNBLENBRkQ7O0FBSUEsSUFBTVksT0FBTyxTQUFQQSxJQUFPLEdBQU07QUFDbEJKO0FBQ0FHO0FBQ0EsQ0FIRDs7ZUFLZUMsSSIsImZpbGUiOiIyMDEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgQ3JlYXRlIFNob3J0Y29kZVxuICogQGRlc2NyaXB0aW9uIGNyZWF0ZSBhIHNob3J0Y29kZSBiYXNlZCBvbiB0aGUgc2VsZWN0ZWQgb3B0aW9ucyBhbmQgYWRkIGl0IHRvIHRoZSBXWVNJV1lHO1xuICovXG5cbmltcG9ydCBkZWxlZ2F0ZSBmcm9tICdkZWxlZ2F0ZSc7XG5pbXBvcnQgKiBhcyB0b29scyBmcm9tICcuLi8uLi91dGlscy90b29scyc7XG5pbXBvcnQgc2hvcnRjb2RlU3RhdGUgZnJvbSAnLi4vY29uZmlnL3Nob3J0Y29kZS1zdGF0ZSc7XG5pbXBvcnQgeyB3cEFQSVNob3J0Y29kZUJ1aWxkZXIgfSBmcm9tICcuLi8uLi91dGlscy9hamF4JztcbmltcG9ydCB7IEkxOE4gfSBmcm9tICcuLi9jb25maWcvaTE4bic7XG5pbXBvcnQgeyB0cmlnZ2VyIH0gZnJvbSAnLi4vLi4vdXRpbHMvZXZlbnRzJztcblxuY29uc3QgZWwgPSB7fTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gcXVlcnlPYmplY3RUb1N0cmluZ1xuICogQGRlc2NyaXB0aW9uIGl0ZXJhdGUgb3ZlciB0aGUgd3BBUElRdWVyeU9iaiBvYmplY3QgYW5kIGNyZWF0ZSBhIHF1ZXJ5IHN0cmluZy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmNvbnN0IHNob3J0Y29kZU9iamVjdFRvU3RyaW5nID0gKCkgPT4ge1xuXHRjb25zdCBzdHIgPSBbXTtcblxuXHRpZiAoc2hvcnRjb2RlU3RhdGUuc2VsZWN0ZWRQcm9kdWN0cy5wb3N0X2lkLmxlbmd0aCA+IDApIHtcblx0XHRPYmplY3QuZW50cmllcyhzaG9ydGNvZGVTdGF0ZS5zZWxlY3RlZFByb2R1Y3RzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcblx0XHRcdGlmICh2YWx1ZS5sZW5ndGggPD0gMCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBrID0gZW5jb2RlVVJJQ29tcG9uZW50KGtleSk7XG5cdFx0XHRjb25zdCB2ID0gZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcblx0XHRcdHN0ci5wdXNoKGAke2t9PSR7dn1gKTtcblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHRPYmplY3QuZW50cmllcyhzaG9ydGNvZGVTdGF0ZS53cEFQSVF1ZXJ5T2JqKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcblx0XHRcdGlmICh2YWx1ZS5sZW5ndGggPD0gMCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBrID0gZW5jb2RlVVJJQ29tcG9uZW50KGtleSk7XG5cdFx0XHRjb25zdCB2ID0gZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcblx0XHRcdHN0ci5wdXNoKGAke2t9PSR7dn1gKTtcblx0XHR9KTtcblx0fVxuXG5cdE9iamVjdC5lbnRyaWVzKHNob3J0Y29kZVN0YXRlLndwQVBJRGlzcGxheVNldHRpbmdzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcblx0XHRpZiAodmFsdWUubGVuZ3RoIDw9IDApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgayA9IGVuY29kZVVSSUNvbXBvbmVudChrZXkpO1xuXHRcdGNvbnN0IHYgPSBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuXHRcdHN0ci5wdXNoKGAke2t9PSR7dn1gKTtcblx0fSk7XG5cblx0cmV0dXJuIHN0ci5sZW5ndGggPyBzdHIuam9pbihJMThOLm9wZXJhdGlvbnMucXVlcnlfc3RyaW5nX3NlcGFyYXRvcikgOiAnJztcbn07XG5cbi8qKlxuICogQGZ1bmN0aW9uIGluc2VydEF0Q2FyZXRcbiAqIEBkZXNjcmlwdGlvbiBpbnNlcnQgdGhlIHNob3J0Y29kZSBhdCB0aGUgY3VycmVudCBjYXJldCBwb3NpdGlvbiBpbiB0aGUgdGV4dCBmaWVsZC5cbiAqIEBwYXJhbSB0YXJnZXRGaWVsZFxuICogQHBhcmFtIHNob3J0Y29kZVxuICovXG5jb25zdCBpbnNlcnRBdENhcmV0ID0gKHRhcmdldEZpZWxkLCBzaG9ydGNvZGUpID0+IHtcblx0aWYgKGRvY3VtZW50LnNlbGVjdGlvbikge1xuXHRcdC8vSUUgc3VwcG9ydFxuXHRcdHRhcmdldEZpZWxkLmZvY3VzKCk7XG5cdFx0Y29uc3Qgc2VsID0gZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCk7XG5cdFx0c2VsLnRleHQgPSBzaG9ydGNvZGU7XG5cdH0gZWxzZSBpZiAodGFyZ2V0RmllbGQuc2VsZWN0aW9uU3RhcnQgfHwgdGFyZ2V0RmllbGQuc2VsZWN0aW9uU3RhcnQgPT09IDApIHtcblx0XHRjb25zdCBzdGFydFBvcyA9IHRhcmdldEZpZWxkLnNlbGVjdGlvblN0YXJ0O1xuXHRcdGNvbnN0IGVuZFBvcyA9IHRhcmdldEZpZWxkLnNlbGVjdGlvbkVuZDtcblx0XHR0YXJnZXRGaWVsZC52YWx1ZSA9IHRhcmdldEZpZWxkLnZhbHVlLnN1YnN0cmluZygwLCBzdGFydFBvcylcblx0XHRcdCsgc2hvcnRjb2RlXG5cdFx0XHQrIHRhcmdldEZpZWxkLnZhbHVlLnN1YnN0cmluZyhlbmRQb3MsIHRhcmdldEZpZWxkLnZhbHVlLmxlbmd0aCk7XG5cdH0gZWxzZSB7XG5cdFx0dGFyZ2V0RmllbGQudmFsdWUgKz0gc2hvcnRjb2RlO1xuXHR9XG59O1xuXG4vKipcbiAqIEBmdW5jdGlvbiBhZGRTaG9ydGNvZGVUb1RoZUVkaXRvclxuICogQGRlc2NyaXB0aW9uIFBsYWNlIHRoZSBzaG9ydGNvZGUgc3RyaW5nIGluIHRoZSBjdXJyZW50IGVkaXRvci5cbiAqIEBwYXJhbSBzaG9ydGNvZGVcbiAqIEBwYXJhbSBhdHRyaWJ1dGVzXG4gKi9cbmNvbnN0IGFkZFNob3J0Y29kZVRvVGhlRWRpdG9yID0gKHNob3J0Y29kZSwgYXR0cmlidXRlcykgPT4ge1xuXHRpZiAoc2hvcnRjb2RlU3RhdGUuaXNHdXRlbmJlcmcpIHtcblx0XHR0cmlnZ2VyKHsgZXZlbnQ6ICdiaWdjb21tZXJjZS9pbml0X3Nob3J0Y29kZV91aScsIGRhdGE6IHsgaGlkZTogdHJ1ZSB9LCBuYXRpdmU6IGZhbHNlIH0pO1xuXHRcdHRyaWdnZXIoeyBldmVudDogJ2JpZ2NvbW1lcmNlL3Jlc2V0X3Nob3J0Y29kZV91aScsIG5hdGl2ZTogZmFsc2UgfSk7XG5cdFx0aWYgKHNob3J0Y29kZVN0YXRlLmluc2VydENhbGxiYWNrKSB7XG5cdFx0XHRzaG9ydGNvZGVTdGF0ZS5pbnNlcnRDYWxsYmFjayh7IHF1ZXJ5X3BhcmFtczogYXR0cmlidXRlcywgc2hvcnRjb2RlIH0pO1xuXHRcdH1cblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAodG9vbHMuaGFzQ2xhc3Moc2hvcnRjb2RlU3RhdGUuY3VycmVudEVkaXRvciwgJ2h0bWwtYWN0aXZlJykpIHtcblx0XHRjb25zdCB0YXJnZXQgPSB0b29scy5nZXROb2RlcygnLndwLWVkaXRvci1hcmVhJywgZmFsc2UsIHNob3J0Y29kZVN0YXRlLmN1cnJlbnRFZGl0b3IsIHRydWUpWzBdO1xuXHRcdGluc2VydEF0Q2FyZXQodGFyZ2V0LCBzaG9ydGNvZGUpO1xuXHRcdHRyaWdnZXIoeyBldmVudDogJ2JpZ2NvbW1lcmNlL2luaXRfc2hvcnRjb2RlX3VpJywgZGF0YTogeyBoaWRlOiB0cnVlIH0sIG5hdGl2ZTogZmFsc2UgfSk7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0d2luZG93LnRpbnltY2UuYWN0aXZlRWRpdG9yLmV4ZWNDb21tYW5kKCdtY2VJbnNlcnRDb250ZW50JywgZmFsc2UsIHNob3J0Y29kZSk7XG5cdHRyaWdnZXIoeyBldmVudDogJ2JpZ2NvbW1lcmNlL2luaXRfc2hvcnRjb2RlX3VpJywgZGF0YTogeyBoaWRlOiB0cnVlIH0sIG5hdGl2ZTogZmFsc2UgfSk7XG59O1xuXG4vKipcbiAqIEBmdW5jdGlvbiBnZW5lcmF0ZVNob3J0Y29kZVxuICogQGRlc2NyaXB0aW9uIHJ1biB0aGUgV1AgQVBJIHF1ZXJ5IHRvIGdlbmVyYXRlIHRoZSBzaG9ydGNvZGUgb3V0cHV0LlxuICovXG5jb25zdCBnZW5lcmF0ZVNob3J0Y29kZSA9ICgpID0+IHtcblx0c2hvcnRjb2RlU3RhdGUuaXNGZXRjaGluZyA9IHRydWU7XG5cblx0d3BBUElTaG9ydGNvZGVCdWlsZGVyKHNob3J0Y29kZU9iamVjdFRvU3RyaW5nKCkpXG5cdFx0LmVuZCgoZXJyLCByZXMpID0+IHtcblx0XHRcdHNob3J0Y29kZVN0YXRlLmlzRmV0Y2hpbmcgPSBmYWxzZTtcblxuXHRcdFx0aWYgKGVycikge1xuXHRcdFx0XHRjb25zb2xlLmVycm9yKGVycik7XG5cdFx0XHR9XG5cblx0XHRcdGFkZFNob3J0Y29kZVRvVGhlRWRpdG9yKHJlcy5ib2R5LnNob3J0Y29kZSwgcmVzLmJvZHkuYXR0cmlidXRlcyk7XG5cdFx0fSk7XG59O1xuXG5jb25zdCBjYWNoZUVsZW1lbnRzID0gKCkgPT4ge1xuXHRlbC5jb250YWluZXIgPSB0b29scy5nZXROb2RlcygnLmJjLXNob3J0Y29kZS11aV9fYWN0aW9ucycsIGZhbHNlLCBkb2N1bWVudCwgdHJ1ZSlbMF07XG5cdGVsLnNob3J0Y29kZUJ1dHRvbiA9IHRvb2xzLmdldE5vZGVzKCdiYy1zaG9ydGNvZGUtdWktZW1iZWQtYnV0dG9uJywgZmFsc2UsIGVsLmNvbnRhaW5lciwgZmFsc2UpWzBdO1xufTtcblxuY29uc3QgYmluZEV2ZW50cyA9ICgpID0+IHtcblx0ZGVsZWdhdGUoZWwuY29udGFpbmVyLCAnW2RhdGEtanM9XCJiYy1zaG9ydGNvZGUtdWktZW1iZWQtYnV0dG9uXCJdJywgJ2NsaWNrJywgZ2VuZXJhdGVTaG9ydGNvZGUpO1xufTtcblxuY29uc3QgaW5pdCA9ICgpID0+IHtcblx0Y2FjaGVFbGVtZW50cygpO1xuXHRiaW5kRXZlbnRzKCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBpbml0O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL2pzL3NyYy9hZG1pbi9zaG9ydGNvZGUtdWkvY3JlYXRlLXNob3J0Y29kZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///201\n"); /***/ }), /* 202 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _interopRequireWildcard = __webpack_require__(11);\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _slicedToArray2 = _interopRequireDefault(__webpack_require__(52));\n\nvar _entries = _interopRequireDefault(__webpack_require__(54));\n\nvar _delegate = _interopRequireDefault(__webpack_require__(25));\n\nvar _spin = __webpack_require__(203);\n\nvar _shortcodeState = _interopRequireDefault(__webpack_require__(7));\n\nvar tools = _interopRequireWildcard(__webpack_require__(15));\n\nvar _productTemplate = __webpack_require__(91);\n\nvar _i18n = __webpack_require__(26);\n\nvar _ajax = __webpack_require__(36);\n\nvar _wpSettings = __webpack_require__(3);\n\nvar _events = __webpack_require__(16);\n\n/**\n * @module Ajax WP REST API Requests\n * @description Send requests and get responses to the BigCommerce WP REST API endpoint.\n */\nvar el = {};\n/**\n * @function createSpinner\n * @description create a new spinner element.\n * @returns {*}\n */\n\nvar createSpinLoader = function createSpinLoader() {\n var options = {\n opacity: 0.5\n };\n return new _spin.Spinner(options).spin(el.loader);\n};\n/**\n * @function dimTheHouseLights\n * @description enable or disable the loader and dimmer elements depending on the current state of isFetching\n */\n\n\nvar dimTheHouseLights = function dimTheHouseLights() {\n if (_shortcodeState.default.isFetching) {\n el.dimmer.classList.add('active');\n el.loader.classList.add('active');\n return;\n }\n\n el.dimmer.classList.remove('active');\n el.loader.classList.remove('active');\n};\n/**\n * @function selectedProductCheck\n * @param product object data\n * @returns {boolean}\n */\n\n\nvar selectedProductCheck = function selectedProductCheck(product) {\n var selected = false;\n\n _shortcodeState.default.selectedProducts.post_id.forEach(function (int) {\n if (parseInt(int, 10) === product.post_id) {\n selected = true;\n }\n });\n\n return selected;\n};\n/**\n * @function renderProductTemplate\n * @param product json product object\n */\n\n\nvar renderProductTemplate = function renderProductTemplate() {\n var product = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var selected = selectedProductCheck(product);\n var productData = {\n id: product.post_id,\n bcid: product.bigcommerce_id,\n title: product.title,\n image: product.image.sizes['bc-small'].url ? product.image.sizes['bc-small'].url : \"\".concat(_wpSettings.ADMIN_ICONS, \"/placeholder.svg\"),\n price: product.price_range,\n desc: product.content.trimmed,\n classes: product.image.sizes['bc-small'].url ? 'bc-shortcode-ui__product-image--featured' : 'bc-shortcode-ui__product-image--placeholder',\n selected: selected ? ' bc-shortcode-ui__selected-result' : '',\n button_text: selected ? _i18n.I18N.buttons.remove_product : _i18n.I18N.buttons.add_product\n };\n _shortcodeState.default.productHTML += (0, _productTemplate.productTemplate)(productData);\n};\n/**\n * @function queryObjectToString\n * @description iterate over the wpAPIQueryObj object and create a query string.\n * @returns {string}\n */\n\n\nvar queryObjectToString = function queryObjectToString() {\n var str = [];\n (0, _entries.default)(_shortcodeState.default.wpAPIQueryObj).forEach(function (_ref) {\n var _ref2 = (0, _slicedToArray2.default)(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n if (value.length <= 0) {\n return;\n }\n\n var k = encodeURIComponent(key);\n var v = encodeURIComponent(value);\n str.push(\"\".concat(k, \"=\").concat(v));\n });\n return str ? str.join(_i18n.I18N.operations.query_string_separator) : '';\n};\n/**\n * @function handleAjaxResponse\n * @description run the ajax response through a check and render function.\n * @param res\n */\n\n\nvar handleAjaxResponse = function handleAjaxResponse(res) {\n if (!Array.isArray(res)) {\n return;\n }\n\n _shortcodeState.default.isFetching = false;\n dimTheHouseLights();\n\n if (res.length <= 0) {\n var message = document.createElement('h2');\n tools.addClass(message, 'bc-shortcode-ui__no-results');\n message.textContent = _i18n.I18N.messages.no_results;\n el.productGrid.appendChild(message);\n return;\n }\n\n res.forEach(function (product) {\n return renderProductTemplate(product);\n });\n el.productGrid.insertAdjacentHTML('afterbegin', _shortcodeState.default.productHTML);\n _shortcodeState.default.productHTML = '';\n};\n/**\n * @function wpAPIGetRequest\n * @description Send GET to the WP API endpoint and handle the response.\n */\n\n\nvar wpAPIGetRequest = function wpAPIGetRequest() {\n _shortcodeState.default.isFetching = true;\n dimTheHouseLights();\n el.productGrid.textContent = '';\n var queryString = queryObjectToString();\n (0, _ajax.wpAPIProductLookup)(queryString).end(function (err, res) {\n _shortcodeState.default.isFetching = false;\n dimTheHouseLights();\n\n if (err) {\n el.productGrid.innerHTML = _i18n.I18N.messages.ajax_error;\n console.error(err);\n return;\n }\n\n handleAjaxResponse(res.body);\n });\n};\n\nvar cacheElements = function cacheElements() {\n el.dialog = tools.getNodes('bc-shortcode-ui-products', false, document, false)[0];\n el.searchForm = tools.getNodes('bc-shortcode-ui-search', false, el.dialog, false)[0];\n el.productGrid = tools.getNodes('bc-shortcode-ui-query-results', false, el.dialog, false)[0];\n el.dimmer = tools.getNodes('.bc-shortcode-ui__product-query-dimmer', false, el.dialog, true)[0];\n el.loader = tools.getNodes('.bc-shortcode-ui__product-query-loader', false, el.dialog, true)[0];\n};\n\nvar bindEvents = function bindEvents() {\n (0, _delegate.default)(el.searchForm, '[data-js=\"bcqb-submit\"]', 'click', wpAPIGetRequest);\n (0, _events.on)(document, 'bigcommerce/shortcode_ui_state_ready', wpAPIGetRequest);\n};\n\nvar init = function init() {\n cacheElements();\n createSpinLoader();\n bindEvents();\n};\n\nvar _default = init;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL3Nob3J0Y29kZS11aS9hamF4LXF1ZXJ5LmpzPzc2YWUiXSwibmFtZXMiOlsiZWwiLCJjcmVhdGVTcGluTG9hZGVyIiwib3B0aW9ucyIsIm9wYWNpdHkiLCJzcGluIiwibG9hZGVyIiwiZGltVGhlSG91c2VMaWdodHMiLCJpc0ZldGNoaW5nIiwiZGltbWVyIiwiY2xhc3NMaXN0IiwiYWRkIiwicmVtb3ZlIiwic2VsZWN0ZWRQcm9kdWN0Q2hlY2siLCJwcm9kdWN0Iiwic2VsZWN0ZWQiLCJzZWxlY3RlZFByb2R1Y3RzIiwicG9zdF9pZCIsImZvckVhY2giLCJpbnQiLCJwYXJzZUludCIsInJlbmRlclByb2R1Y3RUZW1wbGF0ZSIsInByb2R1Y3REYXRhIiwiaWQiLCJiY2lkIiwiYmlnY29tbWVyY2VfaWQiLCJ0aXRsZSIsImltYWdlIiwic2l6ZXMiLCJ1cmwiLCJwcmljZSIsInByaWNlX3JhbmdlIiwiZGVzYyIsImNvbnRlbnQiLCJ0cmltbWVkIiwiY2xhc3NlcyIsImJ1dHRvbl90ZXh0IiwiYnV0dG9ucyIsInJlbW92ZV9wcm9kdWN0IiwiYWRkX3Byb2R1Y3QiLCJwcm9kdWN0SFRNTCIsInF1ZXJ5T2JqZWN0VG9TdHJpbmciLCJzdHIiLCJ3cEFQSVF1ZXJ5T2JqIiwia2V5IiwidmFsdWUiLCJsZW5ndGgiLCJrIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwidiIsInB1c2giLCJqb2luIiwib3BlcmF0aW9ucyIsInF1ZXJ5X3N0cmluZ19zZXBhcmF0b3IiLCJoYW5kbGVBamF4UmVzcG9uc2UiLCJyZXMiLCJBcnJheSIsImlzQXJyYXkiLCJtZXNzYWdlIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwidG9vbHMiLCJhZGRDbGFzcyIsInRleHRDb250ZW50IiwibWVzc2FnZXMiLCJub19yZXN1bHRzIiwicHJvZHVjdEdyaWQiLCJhcHBlbmRDaGlsZCIsImluc2VydEFkamFjZW50SFRNTCIsIndwQVBJR2V0UmVxdWVzdCIsInF1ZXJ5U3RyaW5nIiwiZW5kIiwiZXJyIiwiaW5uZXJIVE1MIiwiYWpheF9lcnJvciIsImNvbnNvbGUiLCJlcnJvciIsImJvZHkiLCJjYWNoZUVsZW1lbnRzIiwiZGlhbG9nIiwiZ2V0Tm9kZXMiLCJzZWFyY2hGb3JtIiwiYmluZEV2ZW50cyIsImluaXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUtBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQWJBOzs7O0FBZUEsSUFBTUEsS0FBSyxFQUFYO0FBRUE7Ozs7OztBQUtBLElBQU1DLG1CQUFtQixTQUFuQkEsZ0JBQW1CLEdBQU07QUFDOUIsTUFBTUMsVUFBVTtBQUNmQyxhQUFTO0FBRE0sR0FBaEI7QUFJQSxTQUFPLGtCQUFZRCxPQUFaLEVBQXFCRSxJQUFyQixDQUEwQkosR0FBR0ssTUFBN0IsQ0FBUDtBQUNBLENBTkQ7QUFRQTs7Ozs7O0FBSUEsSUFBTUMsb0JBQW9CLFNBQXBCQSxpQkFBb0IsR0FBTTtBQUMvQixNQUFJLHdCQUFlQyxVQUFuQixFQUErQjtBQUM5QlAsT0FBR1EsTUFBSCxDQUFVQyxTQUFWLENBQW9CQyxHQUFwQixDQUF3QixRQUF4QjtBQUNBVixPQUFHSyxNQUFILENBQVVJLFNBQVYsQ0FBb0JDLEdBQXBCLENBQXdCLFFBQXhCO0FBRUE7QUFDQTs7QUFFRFYsS0FBR1EsTUFBSCxDQUFVQyxTQUFWLENBQW9CRSxNQUFwQixDQUEyQixRQUEzQjtBQUNBWCxLQUFHSyxNQUFILENBQVVJLFNBQVYsQ0FBb0JFLE1BQXBCLENBQTJCLFFBQTNCO0FBQ0EsQ0FWRDtBQVlBOzs7Ozs7O0FBS0EsSUFBTUMsdUJBQXVCLFNBQXZCQSxvQkFBdUIsQ0FBQ0MsT0FBRCxFQUFhO0FBQ3pDLE1BQUlDLFdBQVcsS0FBZjs7QUFFQSwwQkFBZUMsZ0JBQWYsQ0FBZ0NDLE9BQWhDLENBQXdDQyxPQUF4QyxDQUFnRCxVQUFDQyxHQUFELEVBQVM7QUFDeEQsUUFBSUMsU0FBU0QsR0FB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QTJFLElBQTNFLEVBQWlGLENBQWpGLENBQVo7QUFDQSxDQU5EOztBQVFBLElBQU1HLGFBQWEsU0FBYkEsVUFBYSxHQUFNO0FBQ3hCLHlCQUFTakYsR0FBR2dGLFVBQVosRUFBd0IseUJBQXhCLEVBQW1ELE9BQW5ELEVBQTREWixlQUE1RDtBQUNBLGtCQUFHVixRQUFILEVBQWEsc0NBQWIsRUFBcURVLGVBQXJEO0FBQ0EsQ0FIRDs7QUFLQSxJQUFNYyxPQUFPLFNBQVBBLElBQU8sR0FBTTtBQUNsQkw7QUFDQTVFO0FBQ0FnRjtBQUNBLENBSkQ7O2VBTWVDLEkiLCJmaWxlIjoiMjAyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIEFqYXggV1AgUkVTVCBBUEkgUmVxdWVzdHNcbiAqIEBkZXNjcmlwdGlvbiBTZW5kIHJlcXVlc3RzIGFuZCBnZXQgcmVzcG9uc2VzIHRvIHRoZSBCaWdDb21tZXJjZSBXUCBSRVNUIEFQSSBlbmRwb2ludC5cbiAqL1xuXG5pbXBvcnQgZGVsZWdhdGUgZnJvbSAnZGVsZWdhdGUnO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJ3NwaW4uanMnO1xuaW1wb3J0IHNob3J0Y29kZVN0YXRlIGZyb20gJy4uL2NvbmZpZy9zaG9ydGNvZGUtc3RhdGUnO1xuaW1wb3J0ICogYXMgdG9vbHMgZnJvbSAnLi4vLi4vdXRpbHMvdG9vbHMnO1xuaW1wb3J0IHsgcHJvZHVjdFRlbXBsYXRlIH0gZnJvbSAnLi9wcm9kdWN0LXRlbXBsYXRlJztcbmltcG9ydCB7IEkxOE4gfSBmcm9tICcuLi9jb25maWcvaTE4bic7XG5pbXBvcnQgeyB3cEFQSVByb2R1Y3RMb29rdXAgfSBmcm9tICcuLi8uLi91dGlscy9hamF4JztcbmltcG9ydCB7IEFETUlOX0lDT05TIH0gZnJvbSAnLi4vY29uZmlnL3dwLXNldHRpbmdzJztcbmltcG9ydCB7IG9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvZXZlbnRzJztcblxuY29uc3QgZWwgPSB7fTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gY3JlYXRlU3Bpbm5lclxuICogQGRlc2NyaXB0aW9uIGNyZWF0ZSBhIG5ldyBzcGlubmVyIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Kn1cbiAqL1xuY29uc3QgY3JlYXRlU3BpbkxvYWRlciA9ICgpID0+IHtcblx0Y29uc3Qgb3B0aW9ucyA9IHtcblx0XHRvcGFjaXR5OiAwLjUsXG5cdH07XG5cblx0cmV0dXJuIG5ldyBTcGlubmVyKG9wdGlvbnMpLnNwaW4oZWwubG9hZGVyKTtcbn07XG5cbi8qKlxuICogQGZ1bmN0aW9uIGRpbVRoZUhvdXNlTGlnaHRzXG4gKiBAZGVzY3JpcHRpb24gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGxvYWRlciBhbmQgZGltbWVyIGVsZW1lbnRzIGRlcGVuZGluZyBvbiB0aGUgY3VycmVudCBzdGF0ZSBvZiBpc0ZldGNoaW5nXG4gKi9cbmNvbnN0IGRpbVRoZUhvdXNlTGlnaHRzID0gKCkgPT4ge1xuXHRpZiAoc2hvcnRjb2RlU3RhdGUuaXNGZXRjaGluZykge1xuXHRcdGVsLmRpbW1lci5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTtcblx0XHRlbC5sb2FkZXIuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7XG5cblx0XHRyZXR1cm47XG5cdH1cblxuXHRlbC5kaW1tZXIuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7XG5cdGVsLmxvYWRlci5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTtcbn07XG5cbi8qKlxuICogQGZ1bmN0aW9uIHNlbGVjdGVkUHJvZHVjdENoZWNrXG4gKiBAcGFyYW0gcHJvZHVjdCBvYmplY3QgZGF0YVxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmNvbnN0IHNlbGVjdGVkUHJvZHVjdENoZWNrID0gKHByb2R1Y3QpID0+IHtcblx0bGV0IHNlbGVjdGVkID0gZmFsc2U7XG5cblx0c2hvcnRjb2RlU3RhdGUuc2VsZWN0ZWRQcm9kdWN0cy5wb3N0X2lkLmZvckVhY2goKGludCkgPT4ge1xuXHRcdGlmIChwYXJzZUludChpbnQsIDEwKSA9PT0gcHJvZHVjdC5wb3N0X2lkKSB7XG5cdFx0XHRzZWxlY3RlZCA9IHRydWU7XG5cdFx0fVxuXHR9KTtcblxuXHRyZXR1cm4gc2VsZWN0ZWQ7XG59O1xuXG4vKipcbiAqIEBmdW5jdGlvbiByZW5kZXJQcm9kdWN0VGVtcGxhdGVcbiAqIEBwYXJhbSBwcm9kdWN0IGpzb24gcHJvZHVjdCBvYmplY3RcbiAqL1xuY29uc3QgcmVuZGVyUHJvZHVjdFRlbXBsYXRlID0gKHByb2R1Y3QgPSB7fSkgPT4ge1xuXHRjb25zdCBzZWxlY3RlZCA9IHNlbGVjdGVkUHJvZHVjdENoZWNrKHByb2R1Y3QpO1xuXHRjb25zdCBwcm9kdWN0RGF0YSA9IHtcblx0XHRpZDogcHJvZHVjdC5wb3N0X2lkLFxuXHRcdGJjaWQ6IHByb2R1Y3QuYmlnY29tbWVyY2VfaWQsXG5cdFx0dGl0bGU6IHByb2R1Y3QudGl0bGUsXG5cdFx0aW1hZ2U6IHByb2R1Y3QuaW1hZ2Uuc2l6ZXNbJ2JjLXNtYWxsJ10udXJsID8gcHJvZHVjdC5pbWFnZS5zaXplc1snYmMtc21hbGwnXS51cmwgOiBgJHtBRE1JTl9JQ09OU30vcGxhY2Vob2xkZXIuc3ZnYCxcblx0XHRwcmljZTogcHJvZHVjdC5wcmljZV9yYW5nZSxcblx0XHRkZXNjOiBwcm9kdWN0LmNvbnRlbnQudHJpbW1lZCxcblx0XHRjbGFzc2VzOiBwcm9kdWN0LmltYWdlLnNpemVzWydiYy1zbWFsbCddLnVybCA/ICdiYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtaW1hZ2UtLWZlYXR1cmVkJyA6ICdiYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtaW1hZ2UtLXBsYWNlaG9sZGVyJyxcblx0XHRzZWxlY3RlZDogc2VsZWN0ZWQgPyAnIGJjLXNob3J0Y29kZS11aV9fc2VsZWN0ZWQtcmVzdWx0JyA6ICcnLFxuXHRcdGJ1dHRvbl90ZXh0OiBzZWxlY3RlZCA/IEkxOE4uYnV0dG9ucy5yZW1vdmVfcHJvZHVjdCA6IEkxOE4uYnV0dG9ucy5hZGRfcHJvZHVjdCxcblx0fTtcblxuXHRzaG9ydGNvZGVTdGF0ZS5wcm9kdWN0SFRNTCArPSBwcm9kdWN0VGVtcGxhdGUocHJvZHVjdERhdGEpO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gcXVlcnlPYmplY3RUb1N0cmluZ1xuICogQGRlc2NyaXB0aW9uIGl0ZXJhdGUgb3ZlciB0aGUgd3BBUElRdWVyeU9iaiBvYmplY3QgYW5kIGNyZWF0ZSBhIHF1ZXJ5IHN0cmluZy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmNvbnN0IHF1ZXJ5T2JqZWN0VG9TdHJpbmcgPSAoKSA9PiB7XG5cdGNvbnN0IHN0ciA9IFtdO1xuXHRPYmplY3QuZW50cmllcyhzaG9ydGNvZGVTdGF0ZS53cEFQSVF1ZXJ5T2JqKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcblx0XHRpZiAodmFsdWUubGVuZ3RoIDw9IDApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgayA9IGVuY29kZVVSSUNvbXBvbmVudChrZXkpO1xuXHRcdGNvbnN0IHYgPSBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuXHRcdHN0ci5wdXNoKGAke2t9PSR7dn1gKTtcblx0fSk7XG5cblx0cmV0dXJuIHN0ciA/IHN0ci5qb2luKEkxOE4ub3BlcmF0aW9ucy5xdWVyeV9zdHJpbmdfc2VwYXJhdG9yKSA6ICcnO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gaGFuZGxlQWpheFJlc3BvbnNlXG4gKiBAZGVzY3JpcHRpb24gcnVuIHRoZSBhamF4IHJlc3BvbnNlIHRocm91Z2ggYSBjaGVjayBhbmQgcmVuZGVyIGZ1bmN0aW9uLlxuICogQHBhcmFtIHJlc1xuICovXG5jb25zdCBoYW5kbGVBamF4UmVzcG9uc2UgPSAocmVzKSA9PiB7XG5cdGlmICghQXJyYXkuaXNBcnJheShyZXMpKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0c2hvcnRjb2RlU3RhdGUuaXNGZXRjaGluZyA9IGZhbHNlO1xuXHRkaW1UaGVIb3VzZUxpZ2h0cygpO1xuXG5cdGlmIChyZXMubGVuZ3RoIDw9IDApIHtcblx0XHRjb25zdCBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaDInKTtcblx0XHR0b29scy5hZGRDbGFzcyhtZXNzYWdlLCAnYmMtc2hvcnRjb2RlLXVpX19uby1yZXN1bHRzJyk7XG5cdFx0bWVzc2FnZS50ZXh0Q29udGVudCA9IEkxOE4ubWVzc2FnZXMubm9fcmVzdWx0cztcblx0XHRlbC5wcm9kdWN0R3JpZC5hcHBlbmRDaGlsZChtZXNzYWdlKTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRyZXMuZm9yRWFjaChwcm9kdWN0ID0+IHJlbmRlclByb2R1Y3RUZW1wbGF0ZShwcm9kdWN0KSk7XG5cdGVsLnByb2R1Y3RHcmlkLmluc2VydEFkamFjZW50SFRNTCgnYWZ0ZXJiZWdpbicsIHNob3J0Y29kZVN0YXRlLnByb2R1Y3RIVE1MKTtcblx0c2hvcnRjb2RlU3RhdGUucHJvZHVjdEhUTUwgPSAnJztcbn07XG5cbi8qKlxuICogQGZ1bmN0aW9uIHdwQVBJR2V0UmVxdWVzdFxuICogQGRlc2NyaXB0aW9uIFNlbmQgR0VUIHRvIHRoZSBXUCBBUEkgZW5kcG9pbnQgYW5kIGhhbmRsZSB0aGUgcmVzcG9uc2UuXG4gKi9cbmNvbnN0IHdwQVBJR2V0UmVxdWVzdCA9ICgpID0+IHtcblx0c2hvcnRjb2RlU3RhdGUuaXNGZXRjaGluZyA9IHRydWU7XG5cdGRpbVRoZUhvdXNlTGlnaHRzKCk7XG5cdGVsLnByb2R1Y3RHcmlkLnRleHRDb250ZW50ID0gJyc7XG5cblx0Y29uc3QgcXVlcnlTdHJpbmcgPSBxdWVyeU9iamVjdFRvU3RyaW5nKCk7XG5cblx0d3BBUElQcm9kdWN0TG9va3VwKHF1ZXJ5U3RyaW5nKVxuXHRcdC5lbmQoKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRzaG9ydGNvZGVTdGF0ZS5pc0ZldGNoaW5nID0gZmFsc2U7XG5cdFx0XHRkaW1UaGVIb3VzZUxpZ2h0cygpO1xuXG5cdFx0XHRpZiAoZXJyKSB7XG5cdFx0XHRcdGVsLnByb2R1Y3RHcmlkLmlubmVySFRNTCA9IEkxOE4ubWVzc2FnZXMuYWpheF9lcnJvcjtcblx0XHRcdFx0Y29uc29sZS5lcnJvcihlcnIpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGhhbmRsZUFqYXhSZXNwb25zZShyZXMuYm9keSk7XG5cdFx0fSk7XG59O1xuXG5jb25zdCBjYWNoZUVsZW1lbnRzID0gKCkgPT4ge1xuXHRlbC5kaWFsb2cgPSB0b29scy5nZXROb2RlcygnYmMtc2hvcnRjb2RlLXVpLXByb2R1Y3RzJywgZmFsc2UsIGRvY3VtZW50LCBmYWxzZSlbMF07XG5cdGVsLnNlYXJjaEZvcm0gPSB0b29scy5nZXROb2RlcygnYmMtc2hvcnRjb2RlLXVpLXNlYXJjaCcsIGZhbHNlLCBlbC5kaWFsb2csIGZhbHNlKVswXTtcblx0ZWwucHJvZHVjdEdyaWQgPSB0b29scy5nZXROb2RlcygnYmMtc2hvcnRjb2RlLXVpLXF1ZXJ5LXJlc3VsdHMnLCBmYWxzZSwgZWwuZGlhbG9nLCBmYWxzZSlbMF07XG5cdGVsLmRpbW1lciA9IHRvb2xzLmdldE5vZGVzKCcuYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LXF1ZXJ5LWRpbW1lcicsIGZhbHNlLCBlbC5kaWFsb2csIHRydWUpWzBdO1xuXHRlbC5sb2FkZXIgPSB0b29scy5nZXROb2RlcygnLmJjLXNob3J0Y29kZS11aV9fcHJvZHVjdC1xdWVyeS1sb2FkZXInLCBmYWxzZSwgZWwuZGlhbG9nLCB0cnVlKVswXTtcbn07XG5cbmNvbnN0IGJpbmRFdmVudHMgPSAoKSA9PiB7XG5cdGRlbGVnYXRlKGVsLnNlYXJjaEZvcm0sICdbZGF0YS1qcz1cImJjcWItc3VibWl0XCJdJywgJ2NsaWNrJywgd3BBUElHZXRSZXF1ZXN0KTtcblx0b24oZG9jdW1lbnQsICdiaWdjb21tZXJjZS9zaG9ydGNvZGVfdWlfc3RhdGVfcmVhZHknLCB3cEFQSUdldFJlcXVlc3QpO1xufTtcblxuY29uc3QgaW5pdCA9ICgpID0+IHtcblx0Y2FjaGVFbGVtZW50cygpO1xuXHRjcmVhdGVTcGluTG9hZGVyKCk7XG5cdGJpbmRFdmVudHMoKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGluaXQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL3Nob3J0Y29kZS11aS9hamF4LXF1ZXJ5LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///202\n"); +eval("\n\nvar _interopRequireWildcard = __webpack_require__(8);\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _slicedToArray2 = _interopRequireDefault(__webpack_require__(54));\n\nvar _entries = _interopRequireDefault(__webpack_require__(56));\n\nvar _delegate = _interopRequireDefault(__webpack_require__(23));\n\nvar _spin = __webpack_require__(203);\n\nvar _shortcodeState = _interopRequireDefault(__webpack_require__(4));\n\nvar tools = _interopRequireWildcard(__webpack_require__(12));\n\nvar _productTemplate = __webpack_require__(95);\n\nvar _i18n = __webpack_require__(24);\n\nvar _ajax = __webpack_require__(35);\n\nvar _wpSettings = __webpack_require__(97);\n\nvar _events = __webpack_require__(13);\n\n/**\n * @module Ajax WP REST API Requests\n * @description Send requests and get responses to the BigCommerce WP REST API endpoint.\n */\nvar el = {};\n/**\n * @function createSpinner\n * @description create a new spinner element.\n * @returns {*}\n */\n\nvar createSpinLoader = function createSpinLoader() {\n var options = {\n opacity: 0.5\n };\n return new _spin.Spinner(options).spin(el.loader);\n};\n/**\n * @function dimTheHouseLights\n * @description enable or disable the loader and dimmer elements depending on the current state of isFetching\n */\n\n\nvar dimTheHouseLights = function dimTheHouseLights() {\n if (_shortcodeState.default.isFetching) {\n el.dimmer.classList.add('active');\n el.loader.classList.add('active');\n return;\n }\n\n el.dimmer.classList.remove('active');\n el.loader.classList.remove('active');\n};\n/**\n * @function selectedProductCheck\n * @param product object data\n * @returns {boolean}\n */\n\n\nvar selectedProductCheck = function selectedProductCheck(product) {\n var selected = false;\n\n _shortcodeState.default.selectedProducts.post_id.forEach(function (int) {\n if (parseInt(int, 10) === product.post_id) {\n selected = true;\n }\n });\n\n return selected;\n};\n/**\n * @function renderProductTemplate\n * @param product json product object\n */\n\n\nvar renderProductTemplate = function renderProductTemplate() {\n var product = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var selected = selectedProductCheck(product);\n var productData = {\n id: product.post_id,\n bcid: product.bigcommerce_id,\n title: product.title,\n image: product.image.sizes['bc-small'].url ? product.image.sizes['bc-small'].url : \"\".concat(_wpSettings.ADMIN_ICONS, \"/placeholder.svg\"),\n price: product.price_range,\n desc: product.content.trimmed,\n classes: product.image.sizes['bc-small'].url ? 'bc-shortcode-ui__product-image--featured' : 'bc-shortcode-ui__product-image--placeholder',\n selected: selected ? ' bc-shortcode-ui__selected-result' : '',\n button_text: selected ? _i18n.I18N.buttons.remove_product : _i18n.I18N.buttons.add_product\n };\n _shortcodeState.default.productHTML += (0, _productTemplate.productTemplate)(productData);\n};\n/**\n * @function queryObjectToString\n * @description iterate over the wpAPIQueryObj object and create a query string.\n * @returns {string}\n */\n\n\nvar queryObjectToString = function queryObjectToString() {\n var str = [];\n (0, _entries.default)(_shortcodeState.default.wpAPIQueryObj).forEach(function (_ref) {\n var _ref2 = (0, _slicedToArray2.default)(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n if (value.length <= 0) {\n return;\n }\n\n var k = encodeURIComponent(key);\n var v = encodeURIComponent(value);\n str.push(\"\".concat(k, \"=\").concat(v));\n });\n return str ? str.join(_i18n.I18N.operations.query_string_separator) : '';\n};\n/**\n * @function handleAjaxResponse\n * @description run the ajax response through a check and render function.\n * @param res\n */\n\n\nvar handleAjaxResponse = function handleAjaxResponse(res) {\n if (!Array.isArray(res)) {\n return;\n }\n\n _shortcodeState.default.isFetching = false;\n dimTheHouseLights();\n\n if (res.length <= 0) {\n var message = document.createElement('h2');\n tools.addClass(message, 'bc-shortcode-ui__no-results');\n message.textContent = _i18n.I18N.messages.no_results;\n el.productGrid.appendChild(message);\n return;\n }\n\n res.forEach(function (product) {\n return renderProductTemplate(product);\n });\n el.productGrid.insertAdjacentHTML('afterbegin', _shortcodeState.default.productHTML);\n _shortcodeState.default.productHTML = '';\n};\n/**\n * @function wpAPIGetRequest\n * @description Send GET to the WP API endpoint and handle the response.\n */\n\n\nvar wpAPIGetRequest = function wpAPIGetRequest() {\n _shortcodeState.default.isFetching = true;\n dimTheHouseLights();\n el.productGrid.textContent = '';\n var queryString = queryObjectToString();\n (0, _ajax.wpAPIProductLookup)(queryString).end(function (err, res) {\n _shortcodeState.default.isFetching = false;\n dimTheHouseLights();\n\n if (err) {\n el.productGrid.innerHTML = _i18n.I18N.messages.ajax_error;\n console.error(err);\n return;\n }\n\n handleAjaxResponse(res.body);\n });\n};\n\nvar cacheElements = function cacheElements() {\n el.dialog = tools.getNodes('bc-shortcode-ui-products', false, document, false)[0];\n el.searchForm = tools.getNodes('bc-shortcode-ui-search', false, el.dialog, false)[0];\n el.productGrid = tools.getNodes('bc-shortcode-ui-query-results', false, el.dialog, false)[0];\n el.dimmer = tools.getNodes('.bc-shortcode-ui__product-query-dimmer', false, el.dialog, true)[0];\n el.loader = tools.getNodes('.bc-shortcode-ui__product-query-loader', false, el.dialog, true)[0];\n};\n\nvar bindEvents = function bindEvents() {\n (0, _delegate.default)(el.searchForm, '[data-js=\"bcqb-submit\"]', 'click', wpAPIGetRequest);\n (0, _events.on)(document, 'bigcommerce/shortcode_ui_state_ready', wpAPIGetRequest);\n};\n\nvar init = function init() {\n cacheElements();\n createSpinLoader();\n bindEvents();\n};\n\nvar _default = init;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL3Nob3J0Y29kZS11aS9hamF4LXF1ZXJ5LmpzPzc2YWUiXSwibmFtZXMiOlsiZWwiLCJjcmVhdGVTcGluTG9hZGVyIiwib3B0aW9ucyIsIm9wYWNpdHkiLCJzcGluIiwibG9hZGVyIiwiZGltVGhlSG91c2VMaWdodHMiLCJpc0ZldGNoaW5nIiwiZGltbWVyIiwiY2xhc3NMaXN0IiwiYWRkIiwicmVtb3ZlIiwic2VsZWN0ZWRQcm9kdWN0Q2hlY2siLCJwcm9kdWN0Iiwic2VsZWN0ZWQiLCJzZWxlY3RlZFByb2R1Y3RzIiwicG9zdF9pZCIsImZvckVhY2giLCJpbnQiLCJwYXJzZUludCIsInJlbmRlclByb2R1Y3RUZW1wbGF0ZSIsInByb2R1Y3REYXRhIiwiaWQiLCJiY2lkIiwiYmlnY29tbWVyY2VfaWQiLCJ0aXRsZSIsImltYWdlIiwic2l6ZXMiLCJ1cmwiLCJwcmljZSIsInByaWNlX3JhbmdlIiwiZGVzYyIsImNvbnRlbnQiLCJ0cmltbWVkIiwiY2xhc3NlcyIsImJ1dHRvbl90ZXh0IiwiYnV0dG9ucyIsInJlbW92ZV9wcm9kdWN0IiwiYWRkX3Byb2R1Y3QiLCJwcm9kdWN0SFRNTCIsInF1ZXJ5T2JqZWN0VG9TdHJpbmciLCJzdHIiLCJ3cEFQSVF1ZXJ5T2JqIiwia2V5IiwidmFsdWUiLCJsZW5ndGgiLCJrIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwidiIsInB1c2giLCJqb2luIiwib3BlcmF0aW9ucyIsInF1ZXJ5X3N0cmluZ19zZXBhcmF0b3IiLCJoYW5kbGVBamF4UmVzcG9uc2UiLCJyZXMiLCJBcnJheSIsImlzQXJyYXkiLCJtZXNzYWdlIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwidG9vbHMiLCJhZGRDbGFzcyIsInRleHRDb250ZW50IiwibWVzc2FnZXMiLCJub19yZXN1bHRzIiwicHJvZHVjdEdyaWQiLCJhcHBlbmRDaGlsZCIsImluc2VydEFkamFjZW50SFRNTCIsIndwQVBJR2V0UmVxdWVzdCIsInF1ZXJ5U3RyaW5nIiwiZW5kIiwiZXJyIiwiaW5uZXJIVE1MIiwiYWpheF9lcnJvciIsImNvbnNvbGUiLCJlcnJvciIsImJvZHkiLCJjYWNoZUVsZW1lbnRzIiwiZGlhbG9nIiwiZ2V0Tm9kZXMiLCJzZWFyY2hGb3JtIiwiYmluZEV2ZW50cyIsImluaXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUtBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQWJBOzs7O0FBZUEsSUFBTUEsS0FBSyxFQUFYO0FBRUE7Ozs7OztBQUtBLElBQU1DLG1CQUFtQixTQUFuQkEsZ0JBQW1CLEdBQU07QUFDOUIsTUFBTUMsVUFBVTtBQUNmQyxhQUFTO0FBRE0sR0FBaEI7QUFJQSxTQUFPLGtCQUFZRCxPQUFaLEVBQXFCRSxJQUFyQixDQUEwQkosR0FBR0ssTUFBN0IsQ0FBUDtBQUNBLENBTkQ7QUFRQTs7Ozs7O0FBSUEsSUFBTUMsb0JBQW9CLFNBQXBCQSxpQkFBb0IsR0FBTTtBQUMvQixNQUFJLHdCQUFlQyxVQUFuQixFQUErQjtBQUM5QlAsT0FBR1EsTUFBSCxDQUFVQyxTQUFWLENBQW9CQyxHQUFwQixDQUF3QixRQUF4QjtBQUNBVixPQUFHSyxNQUFILENBQVVJLFNBQVYsQ0FBb0JDLEdBQXBCLENBQXdCLFFBQXhCO0FBRUE7QUFDQTs7QUFFRFYsS0FBR1EsTUFBSCxDQUFVQyxTQUFWLENBQW9CRSxNQUFwQixDQUEyQixRQUEzQjtBQUNBWCxLQUFHSyxNQUFILENBQVVJLFNBQVYsQ0FBb0JFLE1BQXBCLENBQTJCLFFBQTNCO0FBQ0EsQ0FWRDtBQVlBOzs7Ozs7O0FBS0EsSUFBTUMsdUJBQXVCLFNBQXZCQSxvQkFBdUIsQ0FBQ0MsT0FBRCxFQUFhO0FBQ3pDLE1BQUlDLFdBQVcsS0FBZjs7QUFFQSwwQkFBZUMsZ0JBQWYsQ0FBZ0NDLE9BQWhDLENBQXdDQyxPQUF4QyxDQUFnRCxVQUFDQyxHQUFELEVBQVM7QUFDeEQsUUFBSUMsU0FBU0QsR0FB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QTJFLElBQTNFLEVBQWlGLENBQWpGLENBQVo7QUFDQSxDQU5EOztBQVFBLElBQU1HLGFBQWEsU0FBYkEsVUFBYSxHQUFNO0FBQ3hCLHlCQUFTakYsR0FBR2dGLFVBQVosRUFBd0IseUJBQXhCLEVBQW1ELE9BQW5ELEVBQTREWixlQUE1RDtBQUNBLGtCQUFHVixRQUFILEVBQWEsc0NBQWIsRUFBcURVLGVBQXJEO0FBQ0EsQ0FIRDs7QUFLQSxJQUFNYyxPQUFPLFNBQVBBLElBQU8sR0FBTTtBQUNsQkw7QUFDQTVFO0FBQ0FnRjtBQUNBLENBSkQ7O2VBTWVDLEkiLCJmaWxlIjoiMjAyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIEFqYXggV1AgUkVTVCBBUEkgUmVxdWVzdHNcbiAqIEBkZXNjcmlwdGlvbiBTZW5kIHJlcXVlc3RzIGFuZCBnZXQgcmVzcG9uc2VzIHRvIHRoZSBCaWdDb21tZXJjZSBXUCBSRVNUIEFQSSBlbmRwb2ludC5cbiAqL1xuXG5pbXBvcnQgZGVsZWdhdGUgZnJvbSAnZGVsZWdhdGUnO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJ3NwaW4uanMnO1xuaW1wb3J0IHNob3J0Y29kZVN0YXRlIGZyb20gJy4uL2NvbmZpZy9zaG9ydGNvZGUtc3RhdGUnO1xuaW1wb3J0ICogYXMgdG9vbHMgZnJvbSAnLi4vLi4vdXRpbHMvdG9vbHMnO1xuaW1wb3J0IHsgcHJvZHVjdFRlbXBsYXRlIH0gZnJvbSAnLi9wcm9kdWN0LXRlbXBsYXRlJztcbmltcG9ydCB7IEkxOE4gfSBmcm9tICcuLi9jb25maWcvaTE4bic7XG5pbXBvcnQgeyB3cEFQSVByb2R1Y3RMb29rdXAgfSBmcm9tICcuLi8uLi91dGlscy9hamF4JztcbmltcG9ydCB7IEFETUlOX0lDT05TIH0gZnJvbSAnLi4vY29uZmlnL3dwLXNldHRpbmdzJztcbmltcG9ydCB7IG9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvZXZlbnRzJztcblxuY29uc3QgZWwgPSB7fTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gY3JlYXRlU3Bpbm5lclxuICogQGRlc2NyaXB0aW9uIGNyZWF0ZSBhIG5ldyBzcGlubmVyIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Kn1cbiAqL1xuY29uc3QgY3JlYXRlU3BpbkxvYWRlciA9ICgpID0+IHtcblx0Y29uc3Qgb3B0aW9ucyA9IHtcblx0XHRvcGFjaXR5OiAwLjUsXG5cdH07XG5cblx0cmV0dXJuIG5ldyBTcGlubmVyKG9wdGlvbnMpLnNwaW4oZWwubG9hZGVyKTtcbn07XG5cbi8qKlxuICogQGZ1bmN0aW9uIGRpbVRoZUhvdXNlTGlnaHRzXG4gKiBAZGVzY3JpcHRpb24gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGxvYWRlciBhbmQgZGltbWVyIGVsZW1lbnRzIGRlcGVuZGluZyBvbiB0aGUgY3VycmVudCBzdGF0ZSBvZiBpc0ZldGNoaW5nXG4gKi9cbmNvbnN0IGRpbVRoZUhvdXNlTGlnaHRzID0gKCkgPT4ge1xuXHRpZiAoc2hvcnRjb2RlU3RhdGUuaXNGZXRjaGluZykge1xuXHRcdGVsLmRpbW1lci5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTtcblx0XHRlbC5sb2FkZXIuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7XG5cblx0XHRyZXR1cm47XG5cdH1cblxuXHRlbC5kaW1tZXIuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7XG5cdGVsLmxvYWRlci5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTtcbn07XG5cbi8qKlxuICogQGZ1bmN0aW9uIHNlbGVjdGVkUHJvZHVjdENoZWNrXG4gKiBAcGFyYW0gcHJvZHVjdCBvYmplY3QgZGF0YVxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmNvbnN0IHNlbGVjdGVkUHJvZHVjdENoZWNrID0gKHByb2R1Y3QpID0+IHtcblx0bGV0IHNlbGVjdGVkID0gZmFsc2U7XG5cblx0c2hvcnRjb2RlU3RhdGUuc2VsZWN0ZWRQcm9kdWN0cy5wb3N0X2lkLmZvckVhY2goKGludCkgPT4ge1xuXHRcdGlmIChwYXJzZUludChpbnQsIDEwKSA9PT0gcHJvZHVjdC5wb3N0X2lkKSB7XG5cdFx0XHRzZWxlY3RlZCA9IHRydWU7XG5cdFx0fVxuXHR9KTtcblxuXHRyZXR1cm4gc2VsZWN0ZWQ7XG59O1xuXG4vKipcbiAqIEBmdW5jdGlvbiByZW5kZXJQcm9kdWN0VGVtcGxhdGVcbiAqIEBwYXJhbSBwcm9kdWN0IGpzb24gcHJvZHVjdCBvYmplY3RcbiAqL1xuY29uc3QgcmVuZGVyUHJvZHVjdFRlbXBsYXRlID0gKHByb2R1Y3QgPSB7fSkgPT4ge1xuXHRjb25zdCBzZWxlY3RlZCA9IHNlbGVjdGVkUHJvZHVjdENoZWNrKHByb2R1Y3QpO1xuXHRjb25zdCBwcm9kdWN0RGF0YSA9IHtcblx0XHRpZDogcHJvZHVjdC5wb3N0X2lkLFxuXHRcdGJjaWQ6IHByb2R1Y3QuYmlnY29tbWVyY2VfaWQsXG5cdFx0dGl0bGU6IHByb2R1Y3QudGl0bGUsXG5cdFx0aW1hZ2U6IHByb2R1Y3QuaW1hZ2Uuc2l6ZXNbJ2JjLXNtYWxsJ10udXJsID8gcHJvZHVjdC5pbWFnZS5zaXplc1snYmMtc21hbGwnXS51cmwgOiBgJHtBRE1JTl9JQ09OU30vcGxhY2Vob2xkZXIuc3ZnYCxcblx0XHRwcmljZTogcHJvZHVjdC5wcmljZV9yYW5nZSxcblx0XHRkZXNjOiBwcm9kdWN0LmNvbnRlbnQudHJpbW1lZCxcblx0XHRjbGFzc2VzOiBwcm9kdWN0LmltYWdlLnNpemVzWydiYy1zbWFsbCddLnVybCA/ICdiYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtaW1hZ2UtLWZlYXR1cmVkJyA6ICdiYy1zaG9ydGNvZGUtdWlfX3Byb2R1Y3QtaW1hZ2UtLXBsYWNlaG9sZGVyJyxcblx0XHRzZWxlY3RlZDogc2VsZWN0ZWQgPyAnIGJjLXNob3J0Y29kZS11aV9fc2VsZWN0ZWQtcmVzdWx0JyA6ICcnLFxuXHRcdGJ1dHRvbl90ZXh0OiBzZWxlY3RlZCA/IEkxOE4uYnV0dG9ucy5yZW1vdmVfcHJvZHVjdCA6IEkxOE4uYnV0dG9ucy5hZGRfcHJvZHVjdCxcblx0fTtcblxuXHRzaG9ydGNvZGVTdGF0ZS5wcm9kdWN0SFRNTCArPSBwcm9kdWN0VGVtcGxhdGUocHJvZHVjdERhdGEpO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gcXVlcnlPYmplY3RUb1N0cmluZ1xuICogQGRlc2NyaXB0aW9uIGl0ZXJhdGUgb3ZlciB0aGUgd3BBUElRdWVyeU9iaiBvYmplY3QgYW5kIGNyZWF0ZSBhIHF1ZXJ5IHN0cmluZy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmNvbnN0IHF1ZXJ5T2JqZWN0VG9TdHJpbmcgPSAoKSA9PiB7XG5cdGNvbnN0IHN0ciA9IFtdO1xuXHRPYmplY3QuZW50cmllcyhzaG9ydGNvZGVTdGF0ZS53cEFQSVF1ZXJ5T2JqKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcblx0XHRpZiAodmFsdWUubGVuZ3RoIDw9IDApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgayA9IGVuY29kZVVSSUNvbXBvbmVudChrZXkpO1xuXHRcdGNvbnN0IHYgPSBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuXHRcdHN0ci5wdXNoKGAke2t9PSR7dn1gKTtcblx0fSk7XG5cblx0cmV0dXJuIHN0ciA/IHN0ci5qb2luKEkxOE4ub3BlcmF0aW9ucy5xdWVyeV9zdHJpbmdfc2VwYXJhdG9yKSA6ICcnO1xufTtcblxuLyoqXG4gKiBAZnVuY3Rpb24gaGFuZGxlQWpheFJlc3BvbnNlXG4gKiBAZGVzY3JpcHRpb24gcnVuIHRoZSBhamF4IHJlc3BvbnNlIHRocm91Z2ggYSBjaGVjayBhbmQgcmVuZGVyIGZ1bmN0aW9uLlxuICogQHBhcmFtIHJlc1xuICovXG5jb25zdCBoYW5kbGVBamF4UmVzcG9uc2UgPSAocmVzKSA9PiB7XG5cdGlmICghQXJyYXkuaXNBcnJheShyZXMpKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0c2hvcnRjb2RlU3RhdGUuaXNGZXRjaGluZyA9IGZhbHNlO1xuXHRkaW1UaGVIb3VzZUxpZ2h0cygpO1xuXG5cdGlmIChyZXMubGVuZ3RoIDw9IDApIHtcblx0XHRjb25zdCBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaDInKTtcblx0XHR0b29scy5hZGRDbGFzcyhtZXNzYWdlLCAnYmMtc2hvcnRjb2RlLXVpX19uby1yZXN1bHRzJyk7XG5cdFx0bWVzc2FnZS50ZXh0Q29udGVudCA9IEkxOE4ubWVzc2FnZXMubm9fcmVzdWx0cztcblx0XHRlbC5wcm9kdWN0R3JpZC5hcHBlbmRDaGlsZChtZXNzYWdlKTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRyZXMuZm9yRWFjaChwcm9kdWN0ID0+IHJlbmRlclByb2R1Y3RUZW1wbGF0ZShwcm9kdWN0KSk7XG5cdGVsLnByb2R1Y3RHcmlkLmluc2VydEFkamFjZW50SFRNTCgnYWZ0ZXJiZWdpbicsIHNob3J0Y29kZVN0YXRlLnByb2R1Y3RIVE1MKTtcblx0c2hvcnRjb2RlU3RhdGUucHJvZHVjdEhUTUwgPSAnJztcbn07XG5cbi8qKlxuICogQGZ1bmN0aW9uIHdwQVBJR2V0UmVxdWVzdFxuICogQGRlc2NyaXB0aW9uIFNlbmQgR0VUIHRvIHRoZSBXUCBBUEkgZW5kcG9pbnQgYW5kIGhhbmRsZSB0aGUgcmVzcG9uc2UuXG4gKi9cbmNvbnN0IHdwQVBJR2V0UmVxdWVzdCA9ICgpID0+IHtcblx0c2hvcnRjb2RlU3RhdGUuaXNGZXRjaGluZyA9IHRydWU7XG5cdGRpbVRoZUhvdXNlTGlnaHRzKCk7XG5cdGVsLnByb2R1Y3RHcmlkLnRleHRDb250ZW50ID0gJyc7XG5cblx0Y29uc3QgcXVlcnlTdHJpbmcgPSBxdWVyeU9iamVjdFRvU3RyaW5nKCk7XG5cblx0d3BBUElQcm9kdWN0TG9va3VwKHF1ZXJ5U3RyaW5nKVxuXHRcdC5lbmQoKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRzaG9ydGNvZGVTdGF0ZS5pc0ZldGNoaW5nID0gZmFsc2U7XG5cdFx0XHRkaW1UaGVIb3VzZUxpZ2h0cygpO1xuXG5cdFx0XHRpZiAoZXJyKSB7XG5cdFx0XHRcdGVsLnByb2R1Y3RHcmlkLmlubmVySFRNTCA9IEkxOE4ubWVzc2FnZXMuYWpheF9lcnJvcjtcblx0XHRcdFx0Y29uc29sZS5lcnJvcihlcnIpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGhhbmRsZUFqYXhSZXNwb25zZShyZXMuYm9keSk7XG5cdFx0fSk7XG59O1xuXG5jb25zdCBjYWNoZUVsZW1lbnRzID0gKCkgPT4ge1xuXHRlbC5kaWFsb2cgPSB0b29scy5nZXROb2RlcygnYmMtc2hvcnRjb2RlLXVpLXByb2R1Y3RzJywgZmFsc2UsIGRvY3VtZW50LCBmYWxzZSlbMF07XG5cdGVsLnNlYXJjaEZvcm0gPSB0b29scy5nZXROb2RlcygnYmMtc2hvcnRjb2RlLXVpLXNlYXJjaCcsIGZhbHNlLCBlbC5kaWFsb2csIGZhbHNlKVswXTtcblx0ZWwucHJvZHVjdEdyaWQgPSB0b29scy5nZXROb2RlcygnYmMtc2hvcnRjb2RlLXVpLXF1ZXJ5LXJlc3VsdHMnLCBmYWxzZSwgZWwuZGlhbG9nLCBmYWxzZSlbMF07XG5cdGVsLmRpbW1lciA9IHRvb2xzLmdldE5vZGVzKCcuYmMtc2hvcnRjb2RlLXVpX19wcm9kdWN0LXF1ZXJ5LWRpbW1lcicsIGZhbHNlLCBlbC5kaWFsb2csIHRydWUpWzBdO1xuXHRlbC5sb2FkZXIgPSB0b29scy5nZXROb2RlcygnLmJjLXNob3J0Y29kZS11aV9fcHJvZHVjdC1xdWVyeS1sb2FkZXInLCBmYWxzZSwgZWwuZGlhbG9nLCB0cnVlKVswXTtcbn07XG5cbmNvbnN0IGJpbmRFdmVudHMgPSAoKSA9PiB7XG5cdGRlbGVnYXRlKGVsLnNlYXJjaEZvcm0sICdbZGF0YS1qcz1cImJjcWItc3VibWl0XCJdJywgJ2NsaWNrJywgd3BBUElHZXRSZXF1ZXN0KTtcblx0b24oZG9jdW1lbnQsICdiaWdjb21tZXJjZS9zaG9ydGNvZGVfdWlfc3RhdGVfcmVhZHknLCB3cEFQSUdldFJlcXVlc3QpO1xufTtcblxuY29uc3QgaW5pdCA9ICgpID0+IHtcblx0Y2FjaGVFbGVtZW50cygpO1xuXHRjcmVhdGVTcGluTG9hZGVyKCk7XG5cdGJpbmRFdmVudHMoKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGluaXQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL3Nob3J0Y29kZS11aS9hamF4LXF1ZXJ5LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///202\n"); /***/ }), /* 203 */ @@ -1331,424 +1332,234 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineP /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _gutenbergSettings = __webpack_require__(1);\n\n/* eslint-disable */\n\n/**\n * @module Gutenberg\n * @description Add the \"Open in BigCommerce\" link to the publish meta box\n */\nvar Fragment = wp.element.Fragment;\nvar registerPlugin = wp.plugins.registerPlugin;\n\nvar register = function register() {\n var PluginPostStatusInfo = wp.editPost.PluginPostStatusInfo;\n\n var StoreLink = function StoreLink() {\n return wp.element.createElement(Fragment, null, wp.element.createElement(PluginPostStatusInfo, null, wp.element.createElement(\"div\", {\n className: \"misc-pub-section misc-pub-bigcommerce\"\n }, wp.element.createElement(\"span\", {\n className: \"dashicons dashicons-bigcommerce\"\n }), \" \", wp.element.createElement(\"a\", {\n href: _gutenbergSettings.GUTENBERG_STORE_LINK.url,\n target: \"_blank\"\n }, _gutenbergSettings.GUTENBERG_STORE_LINK.label))));\n };\n\n registerPlugin('bigcommerce-store-link', {\n render: StoreLink\n });\n};\n\nvar init = function init() {\n if (!_gutenbergSettings.GUTENBERG_STORE_LINK.url) {\n return;\n }\n\n register();\n};\n\nvar _default = init;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9wbHVnaW5zL3N0b3JlLWxpbmsuanM/NGI5NCJdLCJuYW1lcyI6WyJGcmFnbWVudCIsIndwIiwiZWxlbWVudCIsInJlZ2lzdGVyUGx1Z2luIiwicGx1Z2lucyIsInJlZ2lzdGVyIiwiUGx1Z2luUG9zdFN0YXR1c0luZm8iLCJlZGl0UG9zdCIsIlN0b3JlTGluayIsInVybCIsImxhYmVsIiwicmVuZGVyIiwiaW5pdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQU1BOztBQU5BOztBQUNBOzs7O0lBT1FBLFEsR0FBYUMsR0FBR0MsTyxDQUFoQkYsUTtJQUNBRyxjLEdBQW1CRixHQUFHRyxPLENBQXRCRCxjOztBQUdSLElBQU1FLFdBQVcsU0FBWEEsUUFBVyxHQUFNO0FBQUEsTUFDZEMsb0JBRGMsR0FDV0wsR0FBR00sUUFEZCxDQUNkRCxvQkFEYzs7QUFFdEIsTUFBTUUsWUFBWSxTQUFaQSxTQUFZO0FBQUEsV0FDakIseUJBQUMsUUFBRCxRQUNDLHlCQUFDLG9CQUFELFFBQ0M7QUFBSyxpQkFBVTtBQUFmLE9BQ0M7QUFBTSxpQkFBVTtBQUFoQixNQURELE9BQ3NEO0FBQUcsWUFBTyx3Q0FBcUJDLEdBQS9CO0FBQXFDLGNBQU87QUFBNUMsT0FBdUQsd0NBQXFCQyxLQUE1RSxDQUR0RCxDQURELENBREQsQ0FEaUI7QUFBQSxHQUFsQjs7QUFVQVAsaUJBQWdCLHdCQUFoQixFQUEwQztBQUN6Q1EsWUFBUUg7QUFEaUMsR0FBMUM7QUFJQSxDQWhCRDs7QUFrQkEsSUFBTUksT0FBTyxTQUFQQSxJQUFPLEdBQU07QUFDbEIsTUFBSSxDQUFDLHdDQUFxQkgsR0FBMUIsRUFBK0I7QUFDOUI7QUFDQTs7QUFDREo7QUFDQSxDQUxEOztlQU9lTyxJIiwiZmlsZSI6IjIwNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG4vKipcbiAqIEBtb2R1bGUgR3V0ZW5iZXJnXG4gKiBAZGVzY3JpcHRpb24gQWRkIHRoZSBcIk9wZW4gaW4gQmlnQ29tbWVyY2VcIiBsaW5rIHRvIHRoZSBwdWJsaXNoIG1ldGEgYm94XG4gKi9cblxuaW1wb3J0IHtHVVRFTkJFUkdfU1RPUkVfTElOS30gZnJvbSAnLi4vY29uZmlnL2d1dGVuYmVyZy1zZXR0aW5ncyc7XG5cbmNvbnN0IHsgRnJhZ21lbnQgfSA9IHdwLmVsZW1lbnQ7XG5jb25zdCB7IHJlZ2lzdGVyUGx1Z2luIH0gPSB3cC5wbHVnaW5zO1xuXG5cbmNvbnN0IHJlZ2lzdGVyID0gKCkgPT4ge1xuXHRjb25zdCB7IFBsdWdpblBvc3RTdGF0dXNJbmZvIH0gPSB3cC5lZGl0UG9zdDtcblx0Y29uc3QgU3RvcmVMaW5rID0gKCkgPT4gKFxuXHRcdDxGcmFnbWVudD5cblx0XHRcdDxQbHVnaW5Qb3N0U3RhdHVzSW5mbz5cblx0XHRcdFx0PGRpdiBjbGFzc05hbWU9XCJtaXNjLXB1Yi1zZWN0aW9uIG1pc2MtcHViLWJpZ2NvbW1lcmNlXCI+XG5cdFx0XHRcdFx0PHNwYW4gY2xhc3NOYW1lPVwiZGFzaGljb25zIGRhc2hpY29ucy1iaWdjb21tZXJjZVwiIC8+IDxhIGhyZWY9eyBHVVRFTkJFUkdfU1RPUkVfTElOSy51cmwgfSB0YXJnZXQ9XCJfYmxhbmtcIj57IEdVVEVOQkVSR19TVE9SRV9MSU5LLmxhYmVsIH08L2E+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9QbHVnaW5Qb3N0U3RhdHVzSW5mbz5cblx0XHQ8L0ZyYWdtZW50PlxuXHQpO1xuXG5cdHJlZ2lzdGVyUGx1Z2luKCAnYmlnY29tbWVyY2Utc3RvcmUtbGluaycsIHtcblx0XHRyZW5kZXI6IFN0b3JlTGluayxcblx0fSApO1xuXG59O1xuXG5jb25zdCBpbml0ID0gKCkgPT4ge1xuXHRpZiAoIUdVVEVOQkVSR19TVE9SRV9MSU5LLnVybCkge1xuXHRcdHJldHVybjtcblx0fVxuXHRyZWdpc3RlcigpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgaW5pdDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9wbHVnaW5zL3N0b3JlLWxpbmsuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///205\n"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _gutenbergSettings = __webpack_require__(18);\n\n/* eslint-disable */\n\n/**\n * @module Gutenberg\n * @description Add the \"Open in BigCommerce\" link to the publish meta box\n */\nvar Fragment = wp.element.Fragment;\nvar registerPlugin = wp.plugins.registerPlugin;\n\nvar register = function register() {\n var PluginPostStatusInfo = wp.editPost.PluginPostStatusInfo;\n\n var StoreLink = function StoreLink() {\n return wp.element.createElement(Fragment, null, wp.element.createElement(PluginPostStatusInfo, null, wp.element.createElement(\"div\", {\n className: \"misc-pub-section misc-pub-bigcommerce\"\n }, wp.element.createElement(\"span\", {\n className: \"dashicons dashicons-bigcommerce\"\n }), \" \", wp.element.createElement(\"a\", {\n href: _gutenbergSettings.GUTENBERG_STORE_LINK.url,\n target: \"_blank\"\n }, _gutenbergSettings.GUTENBERG_STORE_LINK.label))));\n };\n\n registerPlugin('bigcommerce-store-link', {\n render: StoreLink\n });\n};\n\nvar init = function init() {\n if (!_gutenbergSettings.GUTENBERG_STORE_LINK.url) {\n return;\n }\n\n register();\n};\n\nvar _default = init;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9wbHVnaW5zL3N0b3JlLWxpbmsuanM/NGI5NCJdLCJuYW1lcyI6WyJGcmFnbWVudCIsIndwIiwiZWxlbWVudCIsInJlZ2lzdGVyUGx1Z2luIiwicGx1Z2lucyIsInJlZ2lzdGVyIiwiUGx1Z2luUG9zdFN0YXR1c0luZm8iLCJlZGl0UG9zdCIsIlN0b3JlTGluayIsInVybCIsImxhYmVsIiwicmVuZGVyIiwiaW5pdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQU1BOztBQU5BOztBQUNBOzs7O0lBT1FBLFEsR0FBYUMsR0FBR0MsTyxDQUFoQkYsUTtJQUNBRyxjLEdBQW1CRixHQUFHRyxPLENBQXRCRCxjOztBQUdSLElBQU1FLFdBQVcsU0FBWEEsUUFBVyxHQUFNO0FBQUEsTUFDZEMsb0JBRGMsR0FDV0wsR0FBR00sUUFEZCxDQUNkRCxvQkFEYzs7QUFFdEIsTUFBTUUsWUFBWSxTQUFaQSxTQUFZO0FBQUEsV0FDakIseUJBQUMsUUFBRCxRQUNDLHlCQUFDLG9CQUFELFFBQ0M7QUFBSyxpQkFBVTtBQUFmLE9BQ0M7QUFBTSxpQkFBVTtBQUFoQixNQURELE9BQ3NEO0FBQUcsWUFBTyx3Q0FBcUJDLEdBQS9CO0FBQXFDLGNBQU87QUFBNUMsT0FBdUQsd0NBQXFCQyxLQUE1RSxDQUR0RCxDQURELENBREQsQ0FEaUI7QUFBQSxHQUFsQjs7QUFVQVAsaUJBQWdCLHdCQUFoQixFQUEwQztBQUN6Q1EsWUFBUUg7QUFEaUMsR0FBMUM7QUFJQSxDQWhCRDs7QUFrQkEsSUFBTUksT0FBTyxTQUFQQSxJQUFPLEdBQU07QUFDbEIsTUFBSSxDQUFDLHdDQUFxQkgsR0FBMUIsRUFBK0I7QUFDOUI7QUFDQTs7QUFDREo7QUFDQSxDQUxEOztlQU9lTyxJIiwiZmlsZSI6IjIwNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG4vKipcbiAqIEBtb2R1bGUgR3V0ZW5iZXJnXG4gKiBAZGVzY3JpcHRpb24gQWRkIHRoZSBcIk9wZW4gaW4gQmlnQ29tbWVyY2VcIiBsaW5rIHRvIHRoZSBwdWJsaXNoIG1ldGEgYm94XG4gKi9cblxuaW1wb3J0IHtHVVRFTkJFUkdfU1RPUkVfTElOS30gZnJvbSAnLi4vY29uZmlnL2d1dGVuYmVyZy1zZXR0aW5ncyc7XG5cbmNvbnN0IHsgRnJhZ21lbnQgfSA9IHdwLmVsZW1lbnQ7XG5jb25zdCB7IHJlZ2lzdGVyUGx1Z2luIH0gPSB3cC5wbHVnaW5zO1xuXG5cbmNvbnN0IHJlZ2lzdGVyID0gKCkgPT4ge1xuXHRjb25zdCB7IFBsdWdpblBvc3RTdGF0dXNJbmZvIH0gPSB3cC5lZGl0UG9zdDtcblx0Y29uc3QgU3RvcmVMaW5rID0gKCkgPT4gKFxuXHRcdDxGcmFnbWVudD5cblx0XHRcdDxQbHVnaW5Qb3N0U3RhdHVzSW5mbz5cblx0XHRcdFx0PGRpdiBjbGFzc05hbWU9XCJtaXNjLXB1Yi1zZWN0aW9uIG1pc2MtcHViLWJpZ2NvbW1lcmNlXCI+XG5cdFx0XHRcdFx0PHNwYW4gY2xhc3NOYW1lPVwiZGFzaGljb25zIGRhc2hpY29ucy1iaWdjb21tZXJjZVwiIC8+IDxhIGhyZWY9eyBHVVRFTkJFUkdfU1RPUkVfTElOSy51cmwgfSB0YXJnZXQ9XCJfYmxhbmtcIj57IEdVVEVOQkVSR19TVE9SRV9MSU5LLmxhYmVsIH08L2E+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9QbHVnaW5Qb3N0U3RhdHVzSW5mbz5cblx0XHQ8L0ZyYWdtZW50PlxuXHQpO1xuXG5cdHJlZ2lzdGVyUGx1Z2luKCAnYmlnY29tbWVyY2Utc3RvcmUtbGluaycsIHtcblx0XHRyZW5kZXI6IFN0b3JlTGluayxcblx0fSApO1xuXG59O1xuXG5jb25zdCBpbml0ID0gKCkgPT4ge1xuXHRpZiAoIUdVVEVOQkVSR19TVE9SRV9MSU5LLnVybCkge1xuXHRcdHJldHVybjtcblx0fVxuXHRyZWdpc3RlcigpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgaW5pdDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9wbHVnaW5zL3N0b3JlLWxpbmsuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///205\n"); /***/ }), /* 206 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _products = _interopRequireDefault(__webpack_require__(207));\n\nvar _cart = _interopRequireDefault(__webpack_require__(238));\n\nvar _checkout = _interopRequireDefault(__webpack_require__(241));\n\nvar _accountProfile = _interopRequireDefault(__webpack_require__(244));\n\nvar _addressList = _interopRequireDefault(__webpack_require__(247));\n\nvar _orderHistory = _interopRequireDefault(__webpack_require__(250));\n\nvar _loginForm = _interopRequireDefault(__webpack_require__(253));\n\nvar _registrationForm = _interopRequireDefault(__webpack_require__(256));\n\nvar _giftCertificateForm = _interopRequireDefault(__webpack_require__(259));\n\nvar _giftCertificateBalance = _interopRequireDefault(__webpack_require__(262));\n\nvar _productReviews = _interopRequireDefault(__webpack_require__(265));\n\n/**\n * @module Gutenberg Blocks\n * @description Clearinghouse for all Gutenberg blocks.\n */\nvar registerBlockType = wp.blocks.registerBlockType;\nvar blocks = [_products.default, _cart.default, _checkout.default, _accountProfile.default, _addressList.default, _orderHistory.default, _loginForm.default, _registrationForm.default, _giftCertificateForm.default, _giftCertificateBalance.default, _productReviews.default];\n\nvar initBlocks = function initBlocks() {\n blocks.forEach(function (block) {\n var blockName = \"\".concat(block.id);\n registerBlockType(blockName, block);\n });\n};\n\nvar _default = initBlocks;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvaW5kZXguanM/NDY0OCJdLCJuYW1lcyI6WyJyZWdpc3RlckJsb2NrVHlwZSIsIndwIiwiYmxvY2tzIiwiaW5pdEJsb2NrcyIsImZvckVhY2giLCJibG9jayIsImJsb2NrTmFtZSIsImlkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFLQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFmQTs7OztJQWlCUUEsaUIsR0FBc0JDLEdBQUdDLE0sQ0FBekJGLGlCO0FBRVIsSUFBTUUsU0FBVSxrUUFBaEI7O0FBY0EsSUFBTUMsYUFBYSxTQUFiQSxVQUFhLEdBQU07QUFDeEJELFNBQU9FLE9BQVAsQ0FBZSxVQUFDQyxLQUFELEVBQVc7QUFDekIsUUFBTUMsc0JBQWVELE1BQU1FLEVBQXJCLENBQU47QUFDQVAsc0JBQWtCTSxTQUFsQixFQUE2QkQsS0FBN0I7QUFDQSxHQUhEO0FBSUEsQ0FMRDs7ZUFPZUYsVSIsImZpbGUiOiIyMDYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgR3V0ZW5iZXJnIEJsb2Nrc1xuICogQGRlc2NyaXB0aW9uIENsZWFyaW5naG91c2UgZm9yIGFsbCBHdXRlbmJlcmcgYmxvY2tzLlxuICovXG5cbmltcG9ydCBwcm9kdWN0cyBmcm9tICcuL3Byb2R1Y3RzL3Byb2R1Y3RzJztcbmltcG9ydCBjYXJ0IGZyb20gJy4vY2FydC9jYXJ0JztcbmltcG9ydCBjaGVja291dCBmcm9tICcuL2NoZWNrb3V0L2NoZWNrb3V0JztcbmltcG9ydCBhY2NvdW50IGZyb20gJy4vYWNjb3VudC1wcm9maWxlL2FjY291bnQtcHJvZmlsZSc7XG5pbXBvcnQgYWRkcmVzcyBmcm9tICcuL2FkZHJlc3MtbGlzdC9hZGRyZXNzLWxpc3QnO1xuaW1wb3J0IG9yZGVycyBmcm9tICcuL29yZGVyLWhpc3Rvcnkvb3JkZXItaGlzdG9yeSc7XG5pbXBvcnQgbG9naW4gZnJvbSAnLi9sb2dpbi1mb3JtL2xvZ2luLWZvcm0nO1xuaW1wb3J0IHJlZ2lzdGVyIGZyb20gJy4vcmVnaXN0cmF0aW9uLWZvcm0vcmVnaXN0cmF0aW9uLWZvcm0nO1xuaW1wb3J0IGdpZnRGb3JtIGZyb20gJy4vZ2lmdC1jZXJ0aWZpY2F0ZS1mb3JtL2dpZnQtY2VydGlmaWNhdGUtZm9ybSc7XG5pbXBvcnQgZ2lmdEJhbGFuY2UgZnJvbSAnLi9naWZ0LWNlcnRpZmljYXRlLWJhbGFuY2UvZ2lmdC1jZXJ0aWZpY2F0ZS1iYWxhbmNlJztcbmltcG9ydCBwcm9kdWN0UmV2aWV3cyBmcm9tICcuL3Byb2R1Y3QtcmV2aWV3cy9wcm9kdWN0LXJldmlld3MnO1xuXG5jb25zdCB7IHJlZ2lzdGVyQmxvY2tUeXBlIH0gPSB3cC5ibG9ja3M7XG5cbmNvbnN0IGJsb2NrcyA9ICBbXG5cdHByb2R1Y3RzLFxuXHRjYXJ0LFxuXHRjaGVja291dCxcblx0YWNjb3VudCxcblx0YWRkcmVzcyxcblx0b3JkZXJzLFxuXHRsb2dpbixcblx0cmVnaXN0ZXIsXG5cdGdpZnRGb3JtLFxuXHRnaWZ0QmFsYW5jZSxcblx0cHJvZHVjdFJldmlld3MsXG5dO1xuXG5jb25zdCBpbml0QmxvY2tzID0gKCkgPT4ge1xuXHRibG9ja3MuZm9yRWFjaCgoYmxvY2spID0+IHtcblx0XHRjb25zdCBibG9ja05hbWUgPSBgJHtibG9jay5pZH1gO1xuXHRcdHJlZ2lzdGVyQmxvY2tUeXBlKGJsb2NrTmFtZSwgYmxvY2spO1xuXHR9KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGluaXRCbG9ja3M7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvaW5kZXguanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///206\n"); +eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _shortcodeBlock = _interopRequireDefault(__webpack_require__(58));\n\nvar _products = _interopRequireDefault(__webpack_require__(208));\n\nvar _productReviews = _interopRequireDefault(__webpack_require__(239));\n\nvar _gutenbergSettings = __webpack_require__(18);\n\n/**\n * @module Gutenberg Blocks\n * @description Clearinghouse for all Gutenberg blocks.\n */\nvar registerBlockType = wp.blocks.registerBlockType;\nvar blocks = [new _products.default(_gutenbergSettings.GUTENBERG_PRODUCTS), new _shortcodeBlock.default(_gutenbergSettings.GUTENBERG_CART), new _shortcodeBlock.default(_gutenbergSettings.GUTENBERG_CHECKOUT), new _shortcodeBlock.default(_gutenbergSettings.GUTENBERG_ACCOUNT), new _shortcodeBlock.default(_gutenbergSettings.GUTENBERG_ADDRESS), new _shortcodeBlock.default(_gutenbergSettings.GUTENBERG_ORDERS), new _shortcodeBlock.default(_gutenbergSettings.GUTENBERG_LOGIN), new _shortcodeBlock.default(_gutenbergSettings.GUTENBERG_REGISTER), new _shortcodeBlock.default(_gutenbergSettings.GUTENBERG_GIFT_CERTIFICATE_FORM), new _shortcodeBlock.default(_gutenbergSettings.GUTENBERG_GIFT_CERTIFICATE_BALANCE), new _productReviews.default(_gutenbergSettings.GUTENBERG_PRODUCT_REVIEWS)];\n\nvar initBlocks = function initBlocks() {\n blocks.forEach(function (block) {\n var blockName = \"\".concat(block.id);\n\n if (blockName) {\n registerBlockType(blockName, block);\n }\n });\n};\n\nvar _default = initBlocks;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvaW5kZXguanM/NDY0OCJdLCJuYW1lcyI6WyJyZWdpc3RlckJsb2NrVHlwZSIsIndwIiwiYmxvY2tzIiwiaW5pdEJsb2NrcyIsImZvckVhY2giLCJibG9jayIsImJsb2NrTmFtZSIsImlkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFLQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFUQTs7OztJQXVCUUEsaUIsR0FBc0JDLEdBQUdDLE0sQ0FBekJGLGlCO0FBRVIsSUFBTUUsU0FBUyxDQUNkLDREQURjLEVBRWQsOERBRmMsRUFHZCxrRUFIYyxFQUlkLGlFQUpjLEVBS2QsaUVBTGMsRUFNZCxnRUFOYyxFQU9kLCtEQVBjLEVBUWQsa0VBUmMsRUFTZCwrRUFUYyxFQVVkLGtGQVZjLEVBV2QseUVBWGMsQ0FBZjs7QUFjQSxJQUFNQyxhQUFhLFNBQWJBLFVBQWEsR0FBTTtBQUN4QkQsU0FBT0UsT0FBUCxDQUFlLFVBQUNDLEtBQUQsRUFBVztBQUN6QixRQUFNQyxzQkFBZUQsTUFBTUUsRUFBckIsQ0FBTjs7QUFDQSxRQUFJRCxTQUFKLEVBQWU7QUFDZE4sd0JBQWtCTSxTQUFsQixFQUE2QkQsS0FBN0I7QUFDQTtBQUNELEdBTEQ7QUFNQSxDQVBEOztlQVNlRixVIiwiZmlsZSI6IjIwNi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBHdXRlbmJlcmcgQmxvY2tzXG4gKiBAZGVzY3JpcHRpb24gQ2xlYXJpbmdob3VzZSBmb3IgYWxsIEd1dGVuYmVyZyBibG9ja3MuXG4gKi9cblxuaW1wb3J0IFNob3J0Y29kZUJsb2NrIGZyb20gJy4vc2hvcnRjb2RlLWJsb2NrL3Nob3J0Y29kZS1ibG9jayc7XG5pbXBvcnQgUHJvZHVjdHNCbG9jayBmcm9tICcuL3Byb2R1Y3RzL3Byb2R1Y3RzJztcbmltcG9ydCBQcm9kdWN0UmV2aWV3c0Jsb2NrIGZyb20gJy4vcHJvZHVjdC1yZXZpZXdzL3Byb2R1Y3QtcmV2aWV3cyc7XG5cbmltcG9ydCB7XG5cdEdVVEVOQkVSR19BQ0NPVU5ULFxuXHRHVVRFTkJFUkdfQUREUkVTUyxcblx0R1VURU5CRVJHX0NBUlQsXG5cdEdVVEVOQkVSR19DSEVDS09VVCxcblx0R1VURU5CRVJHX0dJRlRfQ0VSVElGSUNBVEVfQkFMQU5DRSxcblx0R1VURU5CRVJHX0dJRlRfQ0VSVElGSUNBVEVfRk9STSxcblx0R1VURU5CRVJHX0xPR0lOLFxuXHRHVVRFTkJFUkdfT1JERVJTLFxuXHRHVVRFTkJFUkdfUFJPRFVDVF9SRVZJRVdTLFxuXHRHVVRFTkJFUkdfUFJPRFVDVFMsXG5cdEdVVEVOQkVSR19SRUdJU1RFUixcbn0gZnJvbSAnLi4vY29uZmlnL2d1dGVuYmVyZy1zZXR0aW5ncyc7XG5cbmNvbnN0IHsgcmVnaXN0ZXJCbG9ja1R5cGUgfSA9IHdwLmJsb2NrcztcblxuY29uc3QgYmxvY2tzID0gW1xuXHRuZXcgUHJvZHVjdHNCbG9jayhHVVRFTkJFUkdfUFJPRFVDVFMpLFxuXHRuZXcgU2hvcnRjb2RlQmxvY2soR1VURU5CRVJHX0NBUlQpLFxuXHRuZXcgU2hvcnRjb2RlQmxvY2soR1VURU5CRVJHX0NIRUNLT1VUKSxcblx0bmV3IFNob3J0Y29kZUJsb2NrKEdVVEVOQkVSR19BQ0NPVU5UKSxcblx0bmV3IFNob3J0Y29kZUJsb2NrKEdVVEVOQkVSR19BRERSRVNTKSxcblx0bmV3IFNob3J0Y29kZUJsb2NrKEdVVEVOQkVSR19PUkRFUlMpLFxuXHRuZXcgU2hvcnRjb2RlQmxvY2soR1VURU5CRVJHX0xPR0lOKSxcblx0bmV3IFNob3J0Y29kZUJsb2NrKEdVVEVOQkVSR19SRUdJU1RFUiksXG5cdG5ldyBTaG9ydGNvZGVCbG9jayhHVVRFTkJFUkdfR0lGVF9DRVJUSUZJQ0FURV9GT1JNKSxcblx0bmV3IFNob3J0Y29kZUJsb2NrKEdVVEVOQkVSR19HSUZUX0NFUlRJRklDQVRFX0JBTEFOQ0UpLFxuXHRuZXcgUHJvZHVjdFJldmlld3NCbG9jayhHVVRFTkJFUkdfUFJPRFVDVF9SRVZJRVdTKSxcbl07XG5cbmNvbnN0IGluaXRCbG9ja3MgPSAoKSA9PiB7XG5cdGJsb2Nrcy5mb3JFYWNoKChibG9jaykgPT4ge1xuXHRcdGNvbnN0IGJsb2NrTmFtZSA9IGAke2Jsb2NrLmlkfWA7XG5cdFx0aWYgKGJsb2NrTmFtZSkge1xuXHRcdFx0cmVnaXN0ZXJCbG9ja1R5cGUoYmxvY2tOYW1lLCBibG9jayk7XG5cdFx0fVxuXHR9KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGluaXRCbG9ja3M7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvaW5kZXguanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///206\n"); /***/ }), /* 207 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(5);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\nvar _icon = __webpack_require__(208);\n\nvar _edit = _interopRequireDefault(__webpack_require__(209));\n\nvar _save = _interopRequireDefault(__webpack_require__(237));\n\n/**\n * @module Gutenberg\n * @description Register the Products Gutenberg block\n */\n\n/**\n * @function registerBlock\n * @description register the block\n */\nvar _default = {\n id: _gutenbergSettings.GUTENBERG_PRODUCTS.name,\n title: _gutenbergSettings.GUTENBERG_PRODUCTS.title,\n\n /**\n * An icon property should be specified to make it easier to identify a block.\n * These can be any of WordPress’ Dashicons, or a custom svg element.\n * @see https://developer.wordpress.org/resource/dashicons/\n */\n icon: _icon.bigCommerceIcon,\n\n /**\n * Blocks are grouped into categories to help with browsing and discovery.\n * The categories provided by core are common, embed, formatting, layout, and widgets.\n */\n category: _gutenbergSettings.GUTENBERG_PRODUCTS.category,\n\n /**\n * Additional keywords to surface this block via search input. Limited to 3.\n */\n keywords: _gutenbergSettings.GUTENBERG_PRODUCTS.keywords,\n\n /**\n * Optional block extended support features.\n */\n supports: {\n // Removes support for an HTML mode.\n html: false\n },\n\n /**\n * Attributes used to save and edit our block.\n */\n attributes: {\n shortcode: {\n type: 'string',\n default: ''\n },\n queryParams: {\n type: 'object',\n default: {\n preview: 1,\n paged: 0\n }\n }\n },\n\n /**\n * The edit function describes the structure of the block in the context of the editor.\n * This represents what the editor will render when the block is used.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#edit\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n edit: _edit.default,\n\n /**\n * The save function defines the way in which the different attributes should be combined\n * into the final markup, which is then serialized by Gutenberg into `post_content`.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#save\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n save: _save.default\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdHMvcHJvZHVjdHMuanM/NzE3ZiJdLCJuYW1lcyI6WyJpZCIsIm5hbWUiLCJ0aXRsZSIsImljb24iLCJjYXRlZ29yeSIsImtleXdvcmRzIiwic3VwcG9ydHMiLCJodG1sIiwiYXR0cmlidXRlcyIsInNob3J0Y29kZSIsInR5cGUiLCJkZWZhdWx0IiwicXVlcnlQYXJhbXMiLCJwcmV2aWV3IiwicGFnZWQiLCJlZGl0Iiwic2F2ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFLQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFSQTs7Ozs7QUFVQTs7OztlQUtlO0FBQ2RBLE1BQUksc0NBQU1DLElBREk7QUFFZEMsU0FBTyxzQ0FBTUEsS0FGQzs7QUFJZDs7Ozs7QUFLQUMsNkJBVGM7O0FBV2Q7Ozs7QUFJQUMsWUFBVSxzQ0FBTUEsUUFmRjs7QUFpQmQ7OztBQUdBQyxZQUFVLHNDQUFNQSxRQXBCRjs7QUFzQmQ7OztBQUdBQyxZQUFVO0FBQ1Q7QUFDQUMsVUFBTTtBQUZHLEdBekJJOztBQThCZDs7O0FBR0FDLGNBQVk7QUFDWEMsZUFBVztBQUNWQyxZQUFNLFFBREk7QUFFVkMsZUFBUztBQUZDLEtBREE7QUFLWEMsaUJBQWE7QUFDWkYsWUFBTSxRQURNO0FBRVpDLGVBQVM7QUFDUkUsaUJBQVMsQ0FERDtBQUVSQyxlQUFPO0FBRkM7QUFGRztBQUxGLEdBakNFOztBQStDZDs7Ozs7Ozs7QUFRQUMscUJBdkRjOztBQXlEZDs7Ozs7Ozs7QUFRQUM7QUFqRWMsQyIsImZpbGUiOiIyMDcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgR3V0ZW5iZXJnXG4gKiBAZGVzY3JpcHRpb24gUmVnaXN0ZXIgdGhlIFByb2R1Y3RzIEd1dGVuYmVyZyBibG9ja1xuICovXG5cbmltcG9ydCB7IEdVVEVOQkVSR19QUk9EVUNUUyBhcyBCTE9DSyB9IGZyb20gJy4uLy4uL2NvbmZpZy9ndXRlbmJlcmctc2V0dGluZ3MnO1xuaW1wb3J0IHsgYmlnQ29tbWVyY2VJY29uIH0gZnJvbSAnLi9pY29uJztcbmltcG9ydCBlZGl0QmxvY2sgZnJvbSAnLi9lZGl0JztcbmltcG9ydCBzYXZlQmxvY2sgZnJvbSAnLi9zYXZlJztcblxuLyoqXG4gKiBAZnVuY3Rpb24gcmVnaXN0ZXJCbG9ja1xuICogQGRlc2NyaXB0aW9uIHJlZ2lzdGVyIHRoZSBibG9ja1xuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcblx0aWQ6IEJMT0NLLm5hbWUsXG5cdHRpdGxlOiBCTE9DSy50aXRsZSxcblxuXHQvKipcblx0ICogQW4gaWNvbiBwcm9wZXJ0eSBzaG91bGQgYmUgc3BlY2lmaWVkIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGlkZW50aWZ5IGEgYmxvY2suXG5cdCAqIFRoZXNlIGNhbiBiZSBhbnkgb2YgV29yZFByZXNz4oCZIERhc2hpY29ucywgb3IgYSBjdXN0b20gc3ZnIGVsZW1lbnQuXG5cdCAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIud29yZHByZXNzLm9yZy9yZXNvdXJjZS9kYXNoaWNvbnMvXG5cdCAqL1xuXHRpY29uOiBiaWdDb21tZXJjZUljb24sXG5cblx0LyoqXG5cdCAqIEJsb2NrcyBhcmUgZ3JvdXBlZCBpbnRvIGNhdGVnb3JpZXMgdG8gaGVscCB3aXRoIGJyb3dzaW5nIGFuZCBkaXNjb3ZlcnkuXG5cdCAqIFRoZSBjYXRlZ29yaWVzIHByb3ZpZGVkIGJ5IGNvcmUgYXJlIGNvbW1vbiwgZW1iZWQsIGZvcm1hdHRpbmcsIGxheW91dCwgYW5kIHdpZGdldHMuXG5cdCAqL1xuXHRjYXRlZ29yeTogQkxPQ0suY2F0ZWdvcnksXG5cblx0LyoqXG5cdCAqIEFkZGl0aW9uYWwga2V5d29yZHMgdG8gc3VyZmFjZSB0aGlzIGJsb2NrIHZpYSBzZWFyY2ggaW5wdXQuIExpbWl0ZWQgdG8gMy5cblx0ICovXG5cdGtleXdvcmRzOiBCTE9DSy5rZXl3b3JkcyxcblxuXHQvKipcblx0ICogT3B0aW9uYWwgYmxvY2sgZXh0ZW5kZWQgc3VwcG9ydCBmZWF0dXJlcy5cblx0ICovXG5cdHN1cHBvcnRzOiB7XG5cdFx0Ly8gUmVtb3ZlcyBzdXBwb3J0IGZvciBhbiBIVE1MIG1vZGUuXG5cdFx0aHRtbDogZmFsc2UsXG5cdH0sXG5cblx0LyoqXG5cdCAqIEF0dHJpYnV0ZXMgdXNlZCB0byBzYXZlIGFuZCBlZGl0IG91ciBibG9jay5cblx0ICovXG5cdGF0dHJpYnV0ZXM6IHtcblx0XHRzaG9ydGNvZGU6IHtcblx0XHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdFx0ZGVmYXVsdDogJycsXG5cdFx0fSxcblx0XHRxdWVyeVBhcmFtczoge1xuXHRcdFx0dHlwZTogJ29iamVjdCcsXG5cdFx0XHRkZWZhdWx0OiB7XG5cdFx0XHRcdHByZXZpZXc6IDEsXG5cdFx0XHRcdHBhZ2VkOiAwLFxuXHRcdFx0fSxcblx0XHR9LFxuXHR9LFxuXG5cdC8qKlxuXHQgKiBUaGUgZWRpdCBmdW5jdGlvbiBkZXNjcmliZXMgdGhlIHN0cnVjdHVyZSBvZiB0aGUgYmxvY2sgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGVkaXRvci5cblx0ICogVGhpcyByZXByZXNlbnRzIHdoYXQgdGhlIGVkaXRvciB3aWxsIHJlbmRlciB3aGVuIHRoZSBibG9jayBpcyB1c2VkLlxuXHQgKiBAc2VlIGh0dHBzOi8vd29yZHByZXNzLm9yZy9ndXRlbmJlcmcvaGFuZGJvb2svYmxvY2stZWRpdC1zYXZlLyNlZGl0XG5cdCAqXG5cdCAqIEBwYXJhbSAge09iamVjdH0gW3Byb3BzXSBQcm9wZXJ0aWVzIHBhc3NlZCBmcm9tIHRoZSBlZGl0b3IuXG5cdCAqIEByZXR1cm4ge0VsZW1lbnR9ICAgICAgICBFbGVtZW50IHRvIHJlbmRlci5cblx0ICovXG5cdGVkaXQ6IGVkaXRCbG9jayxcblxuXHQvKipcblx0ICogVGhlIHNhdmUgZnVuY3Rpb24gZGVmaW5lcyB0aGUgd2F5IGluIHdoaWNoIHRoZSBkaWZmZXJlbnQgYXR0cmlidXRlcyBzaG91bGQgYmUgY29tYmluZWRcblx0ICogaW50byB0aGUgZmluYWwgbWFya3VwLCB3aGljaCBpcyB0aGVuIHNlcmlhbGl6ZWQgYnkgR3V0ZW5iZXJnIGludG8gYHBvc3RfY29udGVudGAuXG5cdCAqIEBzZWUgaHR0cHM6Ly93b3JkcHJlc3Mub3JnL2d1dGVuYmVyZy9oYW5kYm9vay9ibG9jay1lZGl0LXNhdmUvI3NhdmVcblx0ICpcblx0ICogQHBhcmFtICB7T2JqZWN0fSBbcHJvcHNdIFByb3BlcnRpZXMgcGFzc2VkIGZyb20gdGhlIGVkaXRvci5cblx0ICogQHJldHVybiB7RWxlbWVudH0gRWxlbWVudCB0byByZW5kZXIuXG5cdCAqL1xuXHRzYXZlOiBzYXZlQmxvY2ssXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL2pzL3NyYy9hZG1pbi9ndXRlbmJlcmcvYmxvY2tzL3Byb2R1Y3RzL3Byb2R1Y3RzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///207\n"); +eval("var dP = __webpack_require__(45).f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || __webpack_require__(21) && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5mdW5jdGlvbi5uYW1lLmpzPzEyZTUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUMiLCJmaWxlIjoiMjA3LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZjtcbnZhciBGUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGU7XG52YXIgbmFtZVJFID0gL15cXHMqZnVuY3Rpb24gKFteIChdKikvO1xudmFyIE5BTUUgPSAnbmFtZSc7XG5cbi8vIDE5LjIuNC4yIG5hbWVcbk5BTUUgaW4gRlByb3RvIHx8IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgJiYgZFAoRlByb3RvLCBOQU1FLCB7XG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiAoJycgKyB0aGlzKS5tYXRjaChuYW1lUkUpWzFdO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5mdW5jdGlvbi5uYW1lLmpzXG4vLyBtb2R1bGUgaWQgPSAyMDdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///207\n"); /***/ }), /* 208 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bigCommerceIcon = void 0;\n\n/* eslint-disable max-len */\nvar bigCommerceIcon = wp.element.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 1024 1024\"\n}, wp.element.createElement(\"path\", {\n d: \"M614.4 675.84c24.576 0 45.056 0 69.632 0 28.672 0 49.152 16.384 53.248 40.96 8.192 32.768-12.288 65.536-49.152 65.536-12.288 0-24.576 0-36.864 0-32.768 0-69.632 0-102.4 0-12.288 0-12.288 0-12.288-12.288 0-28.672 0-57.344 0-86.016 0-8.192 0-12.288 12.288-12.288 20.48 4.096 45.056 4.096 65.536 4.096 0 0 0 0 0 0z\"\n}), wp.element.createElement(\"path\", {\n d: \"M614.4 483.328c20.48 0 45.056 0 65.536 0 36.864 0 57.344 32.768 49.152 65.536-4.096 20.48-20.48 32.768-45.056 36.864-8.192 0-12.288 0-20.48 0-36.864 0-73.728 0-110.592 0-12.288 0-12.288 0-12.288-12.288 0-24.576 0-53.248 0-77.824 0-8.192 0-12.288 12.288-12.288 16.384 0 36.864 0 61.44 0 0 0 0 0 0 0z\"\n}), wp.element.createElement(\"path\", {\n d: \"M634.88 389.12c4.096 0 8.192 0 8.192 0 20.48 0 36.864 0 57.344 0 32.768 0 61.44 8.192 86.016 24.576 49.152 28.672 69.632 81.92 53.248 135.168-12.288 32.768-32.768 57.344-65.536 73.728-4.096 0-4.096 4.096-8.192 8.192 0 0 4.096 4.096 4.096 8.192 45.056 20.48 69.632 57.344 69.632 110.592s-20.48 94.208-65.536 118.784c-24.576 12.288-53.248 16.384-81.92 16.384-86.016 0-167.936 0-253.952 0-12.288 0-12.288 0-12.288-12.288 0-90.112 0-176.128 0-266.24 0-4.096 0-4.096 0-8.192 0 0 0 0-4.096 0 0 4.096-4.096 4.096-4.096 8.192-16.384 12.288-409.6 409.6-409.6 409.6h16.384c8.192 0 12.288 0 20.48 0 323.584 0 651.264 0 974.848 0 0-331.776 0-671.744 0-1003.52-4.096-4.096-376.832 368.64-385.024 376.832z\"\n}));\nexports.bigCommerceIcon = bigCommerceIcon;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdHMvaWNvbi5qcz8yNmQ0Il0sIm5hbWVzIjpbImJpZ0NvbW1lcmNlSWNvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ08sSUFBTUEsa0JBQ1o7QUFBSyxTQUFNLDRCQUFYO0FBQXdDLFNBQU0sTUFBOUM7QUFBcUQsVUFBTyxNQUE1RDtBQUFtRSxXQUFRO0FBQTNFLEdBQ0M7QUFBTSxLQUFFO0FBQVIsRUFERCxFQUVDO0FBQU0sS0FBRTtBQUFSLEVBRkQsRUFHQztBQUFNLEtBQUU7QUFBUixFQUhELENBRE0iLCJmaWxlIjoiMjA4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuZXhwb3J0IGNvbnN0IGJpZ0NvbW1lcmNlSWNvbiA9IChcblx0PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMHB4XCIgaGVpZ2h0PVwiMjBweFwiIHZpZXdCb3g9XCIwIDAgMTAyNCAxMDI0XCI+XG5cdFx0PHBhdGggZD1cIk02MTQuNCA2NzUuODRjMjQuNTc2IDAgNDUuMDU2IDAgNjkuNjMyIDAgMjguNjcyIDAgNDkuMTUyIDE2LjM4NCA1My4yNDggNDAuOTYgOC4xOTIgMzIuNzY4LTEyLjI4OCA2NS41MzYtNDkuMTUyIDY1LjUzNi0xMi4yODggMC0yNC41NzYgMC0zNi44NjQgMC0zMi43NjggMC02OS42MzIgMC0xMDIuNCAwLTEyLjI4OCAwLTEyLjI4OCAwLTEyLjI4OC0xMi4yODggMC0yOC42NzIgMC01Ny4zNDQgMC04Ni4wMTYgMC04LjE5MiAwLTEyLjI4OCAxMi4yODgtMTIuMjg4IDIwLjQ4IDQuMDk2IDQ1LjA1NiA0LjA5NiA2NS41MzYgNC4wOTYgMCAwIDAgMCAwIDB6XCIgLz5cblx0XHQ8cGF0aCBkPVwiTTYxNC40IDQ4My4zMjhjMjAuNDggMCA0NS4wNTYgMCA2NS41MzYgMCAzNi44NjQgMCA1Ny4zNDQgMzIuNzY4IDQ5LjE1MiA2NS41MzYtNC4wOTYgMjAuNDgtMjAuNDggMzIuNzY4LTQ1LjA1NiAzNi44NjQtOC4xOTIgMC0xMi4yODggMC0yMC40OCAwLTM2Ljg2NCAwLTczLjcyOCAwLTExMC41OTIgMC0xMi4yODggMC0xMi4yODggMC0xMi4yODgtMTIuMjg4IDAtMjQuNTc2IDAtNTMuMjQ4IDAtNzcuODI0IDAtOC4xOTIgMC0xMi4yODggMTIuMjg4LTEyLjI4OCAxNi4zODQgMCAzNi44NjQgMCA2MS40NCAwIDAgMCAwIDAgMCAwelwiIC8+XG5cdFx0PHBhdGggZD1cIk02MzQuODggMzg5LjEyYzQuMDk2IDAgOC4xOTIgMCA4LjE5MiAwIDIwLjQ4IDAgMzYuODY0IDAgNTcuMzQ0IDAgMzIuNzY4IDAgNjEuNDQgOC4xOTIgODYuMDE2IDI0LjU3NiA0OS4xNTIgMjguNjcyIDY5LjYzMiA4MS45MiA1My4yNDggMTM1LjE2OC0xMi4yODggMzIuNzY4LTMyLjc2OCA1Ny4zNDQtNjUuNTM2IDczLjcyOC00LjA5NiAwLTQuMDk2IDQuMDk2LTguMTkyIDguMTkyIDAgMCA0LjA5NiA0LjA5NiA0LjA5NiA4LjE5MiA0NS4wNTYgMjAuNDggNjkuNjMyIDU3LjM0NCA2OS42MzIgMTEwLjU5MnMtMjAuNDggOTQuMjA4LTY1LjUzNiAxMTguNzg0Yy0yNC41NzYgMTIuMjg4LTUzLjI0OCAxNi4zODQtODEuOTIgMTYuMzg0LTg2LjAxNiAwLTE2Ny45MzYgMC0yNTMuOTUyIDAtMTIuMjg4IDAtMTIuMjg4IDAtMTIuMjg4LTEyLjI4OCAwLTkwLjExMiAwLTE3Ni4xMjggMC0yNjYuMjQgMC00LjA5NiAwLTQuMDk2IDAtOC4xOTIgMCAwIDAgMC00LjA5NiAwIDAgNC4wOTYtNC4wOTYgNC4wOTYtNC4wOTYgOC4xOTItMTYuMzg0IDEyLjI4OC00MDkuNiA0MDkuNi00MDkuNiA0MDkuNmgxNi4zODRjOC4xOTIgMCAxMi4yODggMCAyMC40OCAwIDMyMy41ODQgMCA2NTEuMjY0IDAgOTc0Ljg0OCAwIDAtMzMxLjc3NiAwLTY3MS43NDQgMC0xMDAzLjUyLTQuMDk2LTQuMDk2LTM3Ni44MzIgMzY4LjY0LTM4NS4wMjQgMzc2LjgzMnpcIiAvPlxuXHQ8L3N2Zz5cbik7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdHMvaWNvbi5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///208\n"); +eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _getPrototypeOf = _interopRequireDefault(__webpack_require__(36));\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(25));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(37));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(38));\n\nvar _icon = __webpack_require__(231);\n\nvar _edit = _interopRequireDefault(__webpack_require__(232));\n\nvar _save = _interopRequireDefault(__webpack_require__(238));\n\nvar _shortcodeBlock = _interopRequireDefault(__webpack_require__(58));\n\n/**\n * @module Gutenberg\n * @description Register the Products Gutenberg block\n */\nvar ProductsBlock =\n/*#__PURE__*/\nfunction (_ShortcodeBlock) {\n (0, _inherits2.default)(ProductsBlock, _ShortcodeBlock);\n\n function ProductsBlock(config) {\n var _this;\n\n (0, _classCallCheck2.default)(this, ProductsBlock);\n _this = (0, _possibleConstructorReturn2.default)(this, (ProductsBlock.__proto__ || (0, _getPrototypeOf.default)(ProductsBlock)).call(this, config));\n _this.edit = _edit.default;\n _this.save = _save.default;\n _this.icon = _icon.bigCommerceIcon;\n _this.attributes = {\n shortcode: {\n type: 'string',\n default: ''\n },\n queryParams: {\n type: 'object',\n default: {\n preview: 1,\n paged: 0\n }\n }\n };\n return _this;\n }\n\n return ProductsBlock;\n}(_shortcodeBlock.default);\n\nexports.default = ProductsBlock;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdHMvcHJvZHVjdHMuanM/NzE3ZiJdLCJuYW1lcyI6WyJQcm9kdWN0c0Jsb2NrIiwiY29uZmlnIiwiZWRpdCIsInNhdmUiLCJpY29uIiwiYXR0cmlidXRlcyIsInNob3J0Y29kZSIsInR5cGUiLCJkZWZhdWx0IiwicXVlcnlQYXJhbXMiLCJwcmV2aWV3IiwicGFnZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBUkE7Ozs7SUFVcUJBLGE7Ozs7O0FBQ3BCLHlCQUFZQyxNQUFaLEVBQW9CO0FBQUE7O0FBQUE7QUFDbkIsK0lBQU1BLE1BQU47QUFDQSxVQUFLQyxJQUFMO0FBQ0EsVUFBS0MsSUFBTDtBQUNBLFVBQUtDLElBQUw7QUFDQSxVQUFLQyxVQUFMLEdBQWtCO0FBQ2pCQyxpQkFBVztBQUNWQyxjQUFNLFFBREk7QUFFVkMsaUJBQVM7QUFGQyxPQURNO0FBS2pCQyxtQkFBYTtBQUNaRixjQUFNLFFBRE07QUFFWkMsaUJBQVM7QUFDUkUsbUJBQVMsQ0FERDtBQUVSQyxpQkFBTztBQUZDO0FBRkc7QUFMSSxLQUFsQjtBQUxtQjtBQWtCbkIiLCJmaWxlIjoiMjA4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIEd1dGVuYmVyZ1xuICogQGRlc2NyaXB0aW9uIFJlZ2lzdGVyIHRoZSBQcm9kdWN0cyBHdXRlbmJlcmcgYmxvY2tcbiAqL1xuXG5pbXBvcnQgeyBiaWdDb21tZXJjZUljb24gfSBmcm9tICcuL2ljb24nO1xuaW1wb3J0IGVkaXRCbG9jayBmcm9tICcuL2VkaXQnO1xuaW1wb3J0IHNhdmVCbG9jayBmcm9tICcuL3NhdmUnO1xuaW1wb3J0IFNob3J0Y29kZUJsb2NrIGZyb20gJy4uL3Nob3J0Y29kZS1ibG9jay9zaG9ydGNvZGUtYmxvY2snO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcm9kdWN0c0Jsb2NrIGV4dGVuZHMgU2hvcnRjb2RlQmxvY2sge1xuXHRjb25zdHJ1Y3Rvcihjb25maWcpIHtcblx0XHRzdXBlcihjb25maWcpO1xuXHRcdHRoaXMuZWRpdCA9IGVkaXRCbG9jaztcblx0XHR0aGlzLnNhdmUgPSBzYXZlQmxvY2s7XG5cdFx0dGhpcy5pY29uID0gYmlnQ29tbWVyY2VJY29uO1xuXHRcdHRoaXMuYXR0cmlidXRlcyA9IHtcblx0XHRcdHNob3J0Y29kZToge1xuXHRcdFx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRcdFx0ZGVmYXVsdDogJycsXG5cdFx0XHR9LFxuXHRcdFx0cXVlcnlQYXJhbXM6IHtcblx0XHRcdFx0dHlwZTogJ29iamVjdCcsXG5cdFx0XHRcdGRlZmF1bHQ6IHtcblx0XHRcdFx0XHRwcmV2aWV3OiAxLFxuXHRcdFx0XHRcdHBhZ2VkOiAwLFxuXHRcdFx0XHR9LFxuXHRcdFx0fSxcblx0XHR9O1xuXHR9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdHMvcHJvZHVjdHMuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///208\n"); /***/ }), /* 209 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; -eval("\n\nvar _interopRequireWildcard = __webpack_require__(11);\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(93));\n\nvar _shortcodeState = _interopRequireDefault(__webpack_require__(7));\n\nvar _ajax = __webpack_require__(36);\n\nvar _i18n = __webpack_require__(26);\n\nvar tools = _interopRequireWildcard(__webpack_require__(15));\n\nvar _inspector = _interopRequireDefault(__webpack_require__(214));\n\n/**\n * @module Edit\n * @description Products block edit method.\n */\nvar getResponse = function getResponse(props, queryObj) {\n var state = {\n currentBlock: props.clientId\n };\n _shortcodeState.default.isFetching = true;\n (0, _ajax.wpAPIProductsPreview)(queryObj).end(function (err, response) {\n _shortcodeState.default.isFetching = false;\n var block = tools.getNodes(\"[data-block=\\\"\".concat(state.currentBlock, \"\\\"]\"), false, document, true)[0];\n var wrapper = tools.getNodes('.bigcommerce-product-preview', false, block, true)[0];\n var fragment = document.createElement('h2');\n\n if (!wrapper) {\n return;\n }\n\n wrapper.innerHTML = '';\n\n if (err) {\n console.error(err);\n fragment.textContent = \"\".concat(_i18n.I18N.messages.ajax_error);\n wrapper.appendChild(fragment);\n return;\n }\n\n if (response.body.rendered.length === 0) {\n fragment.textContent = \"\".concat(_i18n.I18N.messages.no_products);\n wrapper.appendChild(fragment);\n return;\n }\n\n wrapper.insertAdjacentHTML('beforeend', response.body.rendered);\n });\n};\n\nvar editBlock = function editBlock(props) {\n var _props$attributes = props.attributes,\n queryParams = _props$attributes.queryParams,\n shortcode = _props$attributes.shortcode,\n setAttributes = props.setAttributes;\n\n if (shortcode.length === 0) {\n _shortcodeState.default.isFetching = true;\n (0, _ajax.wpAPIShortcodeBuilder)(queryParams).end(function (err, response) {\n _shortcodeState.default.isFetching = false;\n\n if (err) {\n console.error(err);\n }\n\n var data = {\n query_params: (0, _extends2.default)({}, response.body.attributes)\n };\n data.query_params.preview = 1;\n data.query_params.paged = 0;\n setAttributes({\n shortcode: response.body.shortcode,\n queryParams: (0, _extends2.default)({}, data.query_params)\n });\n });\n }\n\n var getQueryParameters = function getQueryParameters(data) {\n if (_shortcodeState.default.isFetching) {\n return;\n }\n\n _shortcodeState.default.isFetching = true;\n data.query_params.preview = 1;\n data.query_params.paged = 0;\n setAttributes({\n shortcode: data.shortcode,\n queryParams: (0, _extends2.default)({}, data.query_params)\n });\n };\n\n getResponse(props, queryParams);\n return [wp.element.createElement(_inspector.default, (0, _extends2.default)({\n setAttributes: setAttributes\n }, props, {\n key: 'inspector',\n handleInsert: getQueryParameters\n })), wp.element.createElement(\"div\", {\n className: props.className,\n key: \"shortcode-preview-wrapper\"\n }, wp.element.createElement(\"div\", {\n className: \"bigcommerce-product-preview\",\n key: \"preview-shortcode\"\n }, wp.element.createElement(\"span\", {\n className: \"spinner is-active\",\n key: \"spinner\"\n })))];\n};\n\nvar _default = editBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdHMvZWRpdC5qcz9mMmY3Il0sIm5hbWVzIjpbImdldFJlc3BvbnNlIiwicHJvcHMiLCJxdWVyeU9iaiIsInN0YXRlIiwiY3VycmVudEJsb2NrIiwiY2xpZW50SWQiLCJpc0ZldGNoaW5nIiwiZW5kIiwiZXJyIiwicmVzcG9uc2UiLCJibG9jayIsInRvb2xzIiwiZ2V0Tm9kZXMiLCJkb2N1bWVudCIsIndyYXBwZXIiLCJmcmFnbWVudCIsImNyZWF0ZUVsZW1lbnQiLCJpbm5lckhUTUwiLCJjb25zb2xlIiwiZXJyb3IiLCJ0ZXh0Q29udGVudCIsIm1lc3NhZ2VzIiwiYWpheF9lcnJvciIsImFwcGVuZENoaWxkIiwiYm9keSIsInJlbmRlcmVkIiwibGVuZ3RoIiwibm9fcHJvZHVjdHMiLCJpbnNlcnRBZGphY2VudEhUTUwiLCJlZGl0QmxvY2siLCJhdHRyaWJ1dGVzIiwicXVlcnlQYXJhbXMiLCJzaG9ydGNvZGUiLCJzZXRBdHRyaWJ1dGVzIiwiZGF0YSIsInF1ZXJ5X3BhcmFtcyIsInByZXZpZXciLCJwYWdlZCIsImdldFF1ZXJ5UGFyYW1ldGVycyIsImtleSIsImhhbmRsZUluc2VydCIsImNsYXNzTmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQU1BOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQVZBOzs7O0FBWUEsSUFBTUEsY0FBYyxTQUFkQSxXQUFjLENBQUNDLEtBQUQsRUFBUUMsUUFBUixFQUFxQjtBQUN4QyxNQUFNQyxRQUFRO0FBQ2JDLGtCQUFjSCxNQUFNSTtBQURQLEdBQWQ7QUFJQSwwQkFBZUMsVUFBZixHQUE0QixJQUE1QjtBQUNBLGtDQUFxQkosUUFBckIsRUFDRUssR0FERixDQUNNLFVBQUNDLEdBQUQsRUFBTUMsUUFBTixFQUFtQjtBQUN2Qiw0QkFBZUgsVUFBZixHQUE0QixLQUE1QjtBQUNBLFFBQU1JLFFBQVFDLE1BQU1D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QUFGTCxLQUlDO0FBQ0MsZUFBVSxtQkFEWDtBQUVDLFNBQUk7QUFGTCxJQUpELENBSkQsQ0FGTSxDQUFQO0FBaUJBLENBN0REOztlQStEZVosUyIsImZpbGUiOiIyMDkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgRWRpdFxuICogQGRlc2NyaXB0aW9uIFByb2R1Y3RzIGJsb2NrIGVkaXQgbWV0aG9kLlxuICovXG5cblxuaW1wb3J0IHNob3J0Y29kZVN0YXRlIGZyb20gJy4uLy4uLy4uL2NvbmZpZy9zaG9ydGNvZGUtc3RhdGUnO1xuaW1wb3J0IHsgd3BBUElQcm9kdWN0c1ByZXZpZXcsIHdwQVBJU2hvcnRjb2RlQnVpbGRlciB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL2FqYXgnO1xuaW1wb3J0IHsgSTE4TiB9IGZyb20gJy4uLy4uLy4uL2NvbmZpZy9pMThuJztcbmltcG9ydCAqIGFzIHRvb2xzIGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL3Rvb2xzJztcbmltcG9ydCBJbnNwZWN0b3IgZnJvbSAnLi9pbnNwZWN0b3InO1xuXG5jb25zdCBnZXRSZXNwb25zZSA9IChwcm9wcywgcXVlcnlPYmopID0+IHtcblx0Y29uc3Qgc3RhdGUgPSB7XG5cdFx0Y3VycmVudEJsb2NrOiBwcm9wcy5jbGllbnRJZCxcblx0fTtcblxuXHRzaG9ydGNvZGVTdGF0ZS5pc0ZldGNoaW5nID0gdHJ1ZTtcblx0d3BBUElQcm9kdWN0c1ByZXZpZXcocXVlcnlPYmopXG5cdFx0LmVuZCgoZXJyLCByZXNwb25zZSkgPT4ge1xuXHRcdFx0c2hvcnRjb2RlU3RhdGUuaXNGZXRjaGluZyA9IGZhbHNlO1xuXHRcdFx0Y29uc3QgYmxvY2sgPSB0b29scy5nZXROb2RlcyhgW2RhdGEtYmxvY2s9XCIke3N0YXRlLmN1cnJlbnRCbG9ja31cIl1gLCBmYWxzZSwgZG9jdW1lbnQsIHRydWUpWzBdO1xuXHRcdFx0Y29uc3Qgd3JhcHBlciA9IHRvb2xzLmdldE5vZGVzKCcuYmlnY29tbWVyY2UtcHJvZHVjdC1wcmV2aWV3JywgZmFsc2UsIGJsb2NrLCB0cnVlKVswXTtcblx0XHRcdGNvbnN0IGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaDInKTtcblx0XHRcdGlmICghd3JhcHBlcikge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdHdyYXBwZXIuaW5uZXJIVE1MID0gJyc7XG5cblx0XHRcdGlmIChlcnIpIHtcblx0XHRcdFx0Y29uc29sZS5lcnJvcihlcnIpO1xuXHRcdFx0XHRmcmFnbWVudC50ZXh0Q29udGVudCA9IGAke0kxOE4ubWVzc2FnZXMuYWpheF9lcnJvcn1gO1xuXHRcdFx0XHR3cmFwcGVyLmFwcGVuZENoaWxkKGZyYWdtZW50KTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAocmVzcG9uc2UuYm9keS5yZW5kZXJlZC5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0ZnJhZ21lbnQudGV4dENvbnRlbnQgPSBgJHtJMThOLm1lc3NhZ2VzLm5vX3Byb2R1Y3RzfWA7XG5cdFx0XHRcdHdyYXBwZXIuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdHdyYXBwZXIuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmVlbmQnLCByZXNwb25zZS5ib2R5LnJlbmRlcmVkKTtcblx0XHR9KTtcbn07XG5cbmNvbnN0IGVkaXRCbG9jayA9IChwcm9wcykgPT4ge1xuXHRjb25zdCB7IGF0dHJpYnV0ZXM6IHsgcXVlcnlQYXJhbXMsIHNob3J0Y29kZSB9LCBzZXRBdHRyaWJ1dGVzIH0gPSBwcm9wcztcblxuXHRpZiAoc2hvcnRjb2RlLmxlbmd0aCA9PT0gMCkge1xuXHRcdHNob3J0Y29kZVN0YXRlLmlzRmV0Y2hpbmcgPSB0cnVlO1xuXHRcdHdwQVBJU2hvcnRjb2RlQnVpbGRlcihxdWVyeVBhcmFtcylcblx0XHRcdC5lbmQoKGVyciwgcmVzcG9uc2UpID0+IHtcblx0XHRcdFx0c2hvcnRjb2RlU3RhdGUuaXNGZXRjaGluZyA9IGZhbHNlO1xuXG5cdFx0XHRcdGlmIChlcnIpIHtcblx0XHRcdFx0XHRjb25zb2xlLmVycm9yKGVycik7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjb25zdCBkYXRhID0ge1xuXHRcdFx0XHRcdHF1ZXJ5X3BhcmFtczogeyAuLi5yZXNwb25zZS5ib2R5LmF0dHJpYnV0ZXMgfSxcblx0XHRcdFx0fTtcblx0XHRcdFx0ZGF0YS5xdWVyeV9wYXJhbXMucHJldmlldyA9IDE7XG5cdFx0XHRcdGRhdGEucXVlcnlfcGFyYW1zLnBhZ2VkID0gMDtcblxuXHRcdFx0XHRzZXRBdHRyaWJ1dGVzKHtcblx0XHRcdFx0XHRzaG9ydGNvZGU6IHJlc3BvbnNlLmJvZHkuc2hvcnRjb2RlLFxuXHRcdFx0XHRcdHF1ZXJ5UGFyYW1zOiB7IC4uLmRhdGEucXVlcnlfcGFyYW1zIH0sXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdH1cblxuXHRjb25zdCBnZXRRdWVyeVBhcmFtZXRlcnMgPSAoZGF0YSkgPT4ge1xuXHRcdGlmIChzaG9ydGNvZGVTdGF0ZS5pc0ZldGNoaW5nKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0c2hvcnRjb2RlU3RhdGUuaXNGZXRjaGluZyA9IHRydWU7XG5cblx0XHRkYXRhLnF1ZXJ5X3BhcmFtcy5wcmV2aWV3ID0gMTtcblx0XHRkYXRhLnF1ZXJ5X3BhcmFtcy5wYWdlZCA9IDA7XG5cblx0XHRzZXRBdHRyaWJ1dGVzKHtcblx0XHRcdHNob3J0Y29kZTogZGF0YS5zaG9ydGNvZGUsXG5cdFx0XHRxdWVyeVBhcmFtczogeyAuLi5kYXRhLnF1ZXJ5X3BhcmFtcyB9LFxuXHRcdH0pO1xuXHR9O1xuXG5cdGdldFJlc3BvbnNlKHByb3BzLCBxdWVyeVBhcmFtcyk7XG5cblx0cmV0dXJuIFtcblx0XHQ8SW5zcGVjdG9yIHsuLi57IHNldEF0dHJpYnV0ZXMsIC4uLnByb3BzLCBrZXk6ICdpbnNwZWN0b3InLCBoYW5kbGVJbnNlcnQ6IGdldFF1ZXJ5UGFyYW1ldGVycyB9fSAvPixcblx0XHQ8ZGl2XG5cdFx0XHRjbGFzc05hbWU9e3Byb3BzLmNsYXNzTmFtZX1cblx0XHRcdGtleT1cInNob3J0Y29kZS1wcmV2aWV3LXdyYXBwZXJcIlxuXHRcdD5cblx0XHRcdDxkaXZcblx0XHRcdFx0Y2xhc3NOYW1lPVwiYmlnY29tbWVyY2UtcHJvZHVjdC1wcmV2aWV3XCJcblx0XHRcdFx0a2V5PVwicHJldmlldy1zaG9ydGNvZGVcIlxuXHRcdFx0PlxuXHRcdFx0XHQ8c3BhblxuXHRcdFx0XHRcdGNsYXNzTmFtZT1cInNwaW5uZXIgaXMtYWN0aXZlXCJcblx0XHRcdFx0XHRrZXk9XCJzcGlubmVyXCJcblx0XHRcdFx0Lz5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2Pixcblx0XTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGVkaXRCbG9jaztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vZ3V0ZW5iZXJnL2Jsb2Nrcy9wcm9kdWN0cy9lZGl0LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///209\n"); +eval("__webpack_require__(210);\nmodule.exports = __webpack_require__(1).Object.getPrototypeOf;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9nZXQtcHJvdG90eXBlLW9mLmpzPzdkMmUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSIsImZpbGUiOiIyMDkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3QuZ2V0LXByb3RvdHlwZS1vZicpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuT2JqZWN0LmdldFByb3RvdHlwZU9mO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9nZXQtcHJvdG90eXBlLW9mLmpzXG4vLyBtb2R1bGUgaWQgPSAyMDlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///209\n"); /***/ }), /* 210 */ /***/ (function(module, exports, __webpack_require__) { -eval("module.exports = __webpack_require__(211);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvY29yZS1qcy9vYmplY3QvYXNzaWduLmpzPzE2NjMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiMjEwLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9hc3NpZ25cIik7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvY29yZS1qcy9vYmplY3QvYXNzaWduLmpzXG4vLyBtb2R1bGUgaWQgPSAyMTBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///210\n"); +eval("// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = __webpack_require__(34);\nvar $getPrototypeOf = __webpack_require__(84);\n\n__webpack_require__(66)('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5nZXQtcHJvdG90eXBlLW9mLmpzPzJhMWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyIsImZpbGUiOiIyMTAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAxOS4xLjIuOSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoTylcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4vX3RvLW9iamVjdCcpO1xudmFyICRnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4vX29iamVjdC1ncG8nKTtcblxucmVxdWlyZSgnLi9fb2JqZWN0LXNhcCcpKCdnZXRQcm90b3R5cGVPZicsIGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGdldFByb3RvdHlwZU9mKGl0KSB7XG4gICAgcmV0dXJuICRnZXRQcm90b3R5cGVPZih0b09iamVjdChpdCkpO1xuICB9O1xufSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYub2JqZWN0LmdldC1wcm90b3R5cGUtb2YuanNcbi8vIG1vZHVsZSBpZCA9IDIxMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///210\n"); /***/ }), /* 211 */ /***/ (function(module, exports, __webpack_require__) { -eval("__webpack_require__(212);\nmodule.exports = __webpack_require__(2).Object.assign;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9hc3NpZ24uanM/NTc3YiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBIiwiZmlsZSI6IjIxMS5qcyIsInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2Lm9iamVjdC5hc3NpZ24nKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLk9iamVjdC5hc3NpZ247XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2Fzc2lnbi5qc1xuLy8gbW9kdWxlIGlkID0gMjExXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///211\n"); +eval("var _Symbol$iterator = __webpack_require__(212);\n\nvar _Symbol = __webpack_require__(214);\n\nfunction _typeof2(obj) { if (typeof _Symbol === \"function\" && typeof _Symbol$iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof _Symbol === \"function\" && _typeof2(_Symbol$iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanM/M2IyZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQSx3QkFBd0IsNkVBQTZFLG9DQUFvQyxtQkFBbUIsR0FBRyxFQUFFLE9BQU8sb0NBQW9DLGlJQUFpSSxHQUFHLEVBQUUsc0JBQXNCOztBQUV4VztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiMjExLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9TeW1ib2wkaXRlcmF0b3IgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9zeW1ib2wvaXRlcmF0b3JcIik7XG5cbnZhciBfU3ltYm9sID0gcmVxdWlyZShcIi4uL2NvcmUtanMvc3ltYm9sXCIpO1xuXG5mdW5jdGlvbiBfdHlwZW9mMihvYmopIHsgaWYgKHR5cGVvZiBfU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIF9TeW1ib2wkaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZjIgPSBmdW5jdGlvbiBfdHlwZW9mMihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YyID0gZnVuY3Rpb24gX3R5cGVvZjIob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIF9TeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IF9TeW1ib2wgJiYgb2JqICE9PSBfU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mMihvYmopOyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gIGlmICh0eXBlb2YgX1N5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIF90eXBlb2YyKF9TeW1ib2wkaXRlcmF0b3IpID09PSBcInN5bWJvbFwiKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgICAgIHJldHVybiBfdHlwZW9mMihvYmopO1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgICAgIHJldHVybiBvYmogJiYgdHlwZW9mIF9TeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IF9TeW1ib2wgJiYgb2JqICE9PSBfU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiBfdHlwZW9mMihvYmopO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gX3R5cGVvZihvYmopO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF90eXBlb2Y7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanNcbi8vIG1vZHVsZSBpZCA9IDIxMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///211\n"); /***/ }), /* 212 */ /***/ (function(module, exports, __webpack_require__) { -eval("// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(6);\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(213) });\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5hc3NpZ24uanM/NDc4YyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBOztBQUVBLDBDQUEwQyxtQ0FBc0MiLCJmaWxlIjoiMjEyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gMTkuMS4zLjEgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHNvdXJjZSlcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG5cbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GLCAnT2JqZWN0JywgeyBhc3NpZ246IHJlcXVpcmUoJy4vX29iamVjdC1hc3NpZ24nKSB9KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNi5vYmplY3QuYXNzaWduLmpzXG4vLyBtb2R1bGUgaWQgPSAyMTJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///212\n"); +eval("module.exports = __webpack_require__(213);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvY29yZS1qcy9zeW1ib2wvaXRlcmF0b3IuanM/YjUxYiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiIyMTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vc3ltYm9sL2l0ZXJhdG9yXCIpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2NvcmUtanMvc3ltYm9sL2l0ZXJhdG9yLmpzXG4vLyBtb2R1bGUgaWQgPSAyMTJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///212\n"); /***/ }), /* 213 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; -eval("\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(24);\nvar gOPS = __webpack_require__(56);\nvar pIE = __webpack_require__(21);\nvar toObject = __webpack_require__(35);\nvar IObject = __webpack_require__(59);\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(18)(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1hc3NpZ24uanM/NGU4ZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MsVUFBVSxFQUFFO0FBQ2hELG1CQUFtQixzQ0FBc0M7QUFDekQsQ0FBQyxxQ0FBcUM7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILENBQUMiLCJmaWxlIjoiMjEzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuLy8gMTkuMS4yLjEgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHNvdXJjZSwgLi4uKVxudmFyIGdldEtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cycpO1xudmFyIGdPUFMgPSByZXF1aXJlKCcuL19vYmplY3QtZ29wcycpO1xudmFyIHBJRSA9IHJlcXVpcmUoJy4vX29iamVjdC1waWUnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4vX3RvLW9iamVjdCcpO1xudmFyIElPYmplY3QgPSByZXF1aXJlKCcuL19pb2JqZWN0Jyk7XG52YXIgJGFzc2lnbiA9IE9iamVjdC5hc3NpZ247XG5cbi8vIHNob3VsZCB3b3JrIHdpdGggc3ltYm9scyBhbmQgc2hvdWxkIGhhdmUgZGV0ZXJtaW5pc3RpYyBwcm9wZXJ0eSBvcmRlciAoVjggYnVnKVxubW9kdWxlLmV4cG9ydHMgPSAhJGFzc2lnbiB8fCByZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uICgpIHtcbiAgdmFyIEEgPSB7fTtcbiAgdmFyIEIgPSB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gIHZhciBTID0gU3ltYm9sKCk7XG4gIHZhciBLID0gJ2FiY2RlZmdoaWprbG1ub3BxcnN0JztcbiAgQVtTXSA9IDc7XG4gIEsuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24gKGspIHsgQltrXSA9IGs7IH0pO1xuICByZXR1cm4gJGFzc2lnbih7fSwgQSlbU10gIT0gNyB8fCBPYmplY3Qua2V5cygkYXNzaWduKHt9LCBCKSkuam9pbignJykgIT0gSztcbn0pID8gZnVuY3Rpb24gYXNzaWduKHRhcmdldCwgc291cmNlKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgdmFyIFQgPSB0b09iamVjdCh0YXJnZXQpO1xuICB2YXIgYUxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gIHZhciBpbmRleCA9IDE7XG4gIHZhciBnZXRTeW1ib2xzID0gZ09QUy5mO1xuICB2YXIgaXNFbnVtID0gcElFLmY7XG4gIHdoaWxlIChhTGVuID4gaW5kZXgpIHtcbiAgICB2YXIgUyA9IElPYmplY3QoYXJndW1lbnRzW2luZGV4KytdKTtcbiAgICB2YXIga2V5cyA9IGdldFN5bWJvbHMgPyBnZXRLZXlzKFMpLmNvbmNhdChnZXRTeW1ib2xzKFMpKSA6IGdldEtleXMoUyk7XG4gICAgdmFyIGxlbmd0aCA9IGtleXMubGVuZ3RoO1xuICAgIHZhciBqID0gMDtcbiAgICB2YXIga2V5O1xuICAgIHdoaWxlIChsZW5ndGggPiBqKSBpZiAoaXNFbnVtLmNhbGwoUywga2V5ID0ga2V5c1tqKytdKSkgVFtrZXldID0gU1trZXldO1xuICB9IHJldHVybiBUO1xufSA6ICRhc3NpZ247XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWFzc2lnbi5qc1xuLy8gbW9kdWxlIGlkID0gMjEzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///213\n"); +eval("__webpack_require__(32);\n__webpack_require__(55);\nmodule.exports = __webpack_require__(60).f('iterator');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbC9pdGVyYXRvci5qcz9mZTdlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSIsImZpbGUiOiIyMTMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5zdHJpbmcuaXRlcmF0b3InKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvd2ViLmRvbS5pdGVyYWJsZScpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL193a3MtZXh0JykuZignaXRlcmF0b3InKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9mbi9zeW1ib2wvaXRlcmF0b3IuanNcbi8vIG1vZHVsZSBpZCA9IDIxM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///213\n"); /***/ }), /* 214 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _getPrototypeOf = _interopRequireDefault(__webpack_require__(94));\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(95));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(96));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(97));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(99));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(100));\n\nvar _gutenbergSettings = __webpack_require__(1);\n\nvar _events = __webpack_require__(16);\n\nvar _shortcodeState = _interopRequireDefault(__webpack_require__(7));\n\n/**\n * @module Products Block Inspector\n */\nvar Component = wp.element.Component;\nvar InspectorControls = wp.editor.InspectorControls;\nvar _wp$components = wp.components,\n PanelRow = _wp$components.PanelRow,\n PanelBody = _wp$components.PanelBody,\n Button = _wp$components.Button;\n\nvar Inspector =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Inspector, _Component);\n\n function Inspector() {\n var _ref;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Inspector);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_ref = Inspector.__proto__ || (0, _getPrototypeOf.default)(Inspector)).call.apply(_ref, [this].concat(args)));\n _this.triggerDialog = _this.triggerDialog.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n (0, _createClass2.default)(Inspector, [{\n key: \"triggerDialog\",\n value: function triggerDialog(e) {\n var target = e.target;\n var queryParams = this.props.attributes.queryParams;\n _shortcodeState.default.insertCallback = this.props.handleInsert;\n (0, _events.trigger)({\n event: 'bigcommerce/init_shortcode_ui',\n data: {\n target: target,\n queryParams: queryParams\n },\n native: false\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n return wp.element.createElement(InspectorControls, null, wp.element.createElement(PanelBody, {\n title: _gutenbergSettings.GUTENBERG_PRODUCTS.inspector_title,\n initialOpen: true\n }, wp.element.createElement(PanelRow, null, wp.element.createElement(Button, {\n isPrimary: true,\n type: \"button\",\n className: \"button bc-add-products\",\n \"data-js\": \"bc-add-products\",\n \"data-content\": \"bc-shortcode-ui\",\n onClick: this.triggerDialog\n }, _gutenbergSettings.GUTENBERG_PRODUCTS.inspector_button_title))));\n }\n }]);\n return Inspector;\n}(Component);\n\nexports.default = Inspector;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdHMvaW5zcGVjdG9yLmpzP2JmZjMiXSwibmFtZXMiOlsiQ29tcG9uZW50Iiwid3AiLCJlbGVtZW50IiwiSW5zcGVjdG9yQ29udHJvbHMiLCJlZGl0b3IiLCJjb21wb25lbnRzIiwiUGFuZWxSb3ciLCJQYW5lbEJvZHkiLCJCdXR0b24iLCJJbnNwZWN0b3IiLCJhcmdzIiwidHJpZ2dlckRpYWxvZyIsImJpbmQiLCJlIiwidGFyZ2V0IiwicXVlcnlQYXJhbXMiLCJwcm9wcyIsImF0dHJpYnV0ZXMiLCJpbnNlcnRDYWxsYmFjayIsImhhbmRsZUluc2VydCIsImV2ZW50IiwiZGF0YSIsIm5hdGl2ZSIsImluc3BlY3Rvcl90aXRsZSIsImluc3BlY3Rvcl9idXR0b25fdGl0bGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBOztBQUNBOztBQUNBOztBQUxBOzs7SUFPUUEsUyxHQUFjQyxHQUFHQyxPLENBQWpCRixTO0lBQ0FHLGlCLEdBQXNCRixHQUFHRyxNLENBQXpCRCxpQjtxQkFDZ0NGLEdBQUdJLFU7SUFBbkNDLFEsa0JBQUFBLFE7SUFBVUMsUyxrQkFBQUEsUztJQUFXQyxNLGtCQUFBQSxNOztJQUVSQyxTOzs7OztBQUVwQix1QkFBcUI7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQSxzQ0FBTkMsSUFBTTtBQUFOQSxVQUFNO0FBQUE7O0FBQ3BCLGtLQUFTQSxJQUFUO0FBQ0EsVUFBS0MsYUFBTCxHQUFxQixNQUFLQSxhQUFMLENBQW1CQyxJQUFuQiw2Q0FBckI7QUFGb0I7QUFHcEI7Ozs7a0NBRWFDLEMsRUFBRztBQUFBLFVBQ1JDLE1BRFEsR0FDR0QsQ0FESCxDQUNSQyxNQURRO0FBRWhCLFVBQU1DLGNBQWMsS0FBS0MsS0FBTCxDQUFXQyxVQUFYLENBQXNCRixXQUExQztBQUNBLDhCQUFlRyxjQUFmLEdBQWdDLEtBQUtGLEtBQUwsQ0FBV0csWUFBM0M7QUFFQSwyQkFBUTtBQUFFQyxlQUFPLCtCQUFUO0FBQTBDQyxjQUFNO0FBQUVQLHdCQUFGO0FBQVVDO0FBQVYsU0FBaEQ7QUFBeUVPLGdCQUFRO0FBQWpGLE9BQVI7QUFDQTs7OzZCQUVRO0FBQ1IsYUFDQyx5QkFBQyxpQkFBRCxRQUNDLHlCQUFDLFNBQUQ7QUFDQyxlQUFPLHNDQUFtQkMsZUFEM0I7QUFFQztBQUZELFNBSUMseUJBQUMsUUFBRCxRQUNDLHlCQUFDLE1BQUQ7QUFDQyx1QkFERDtBQUVDLGNBQUssUUFGTjtBQUdDLG1CQUFVLHdCQUhYO0FBSUMsbUJBQVEsaUJBSlQ7QUFLQyx3QkFBYSxpQkFMZDtBQU1DLGlCQUFTLEtBQUtaO0FBTmYsU0FRRSxzQ0FBbUJhLHNCQVJyQixDQURELENBSkQsQ0FERCxDQUREO0FBcUJBOzs7RUFyQ3FDeEIsUyIsImZpbGUiOiIyMTQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgUHJvZHVjdHMgQmxvY2sgSW5zcGVjdG9yXG4gKi9cbmltcG9ydCB7IEdVVEVOQkVSR19QUk9EVUNUUyB9IGZyb20gJy4uLy4uL2NvbmZpZy9ndXRlbmJlcmctc2V0dGluZ3MnO1xuaW1wb3J0IHsgdHJpZ2dlciB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL2V2ZW50cyc7XG5pbXBvcnQgc2hvcnRjb2RlU3RhdGUgZnJvbSAnLi4vLi4vLi4vY29uZmlnL3Nob3J0Y29kZS1zdGF0ZSc7XG5cbmNvbnN0IHsgQ29tcG9uZW50IH0gPSB3cC5lbGVtZW50O1xuY29uc3QgeyBJbnNwZWN0b3JDb250cm9scyB9ID0gd3AuZWRpdG9yO1xuY29uc3QgeyBQYW5lbFJvdywgUGFuZWxCb2R5LCBCdXR0b24gfSA9IHdwLmNvbXBvbmVudHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEluc3BlY3RvciBleHRlbmRzIENvbXBvbmVudCB7XG5cblx0Y29uc3RydWN0b3IoLi4uYXJncykge1xuXHRcdHN1cGVyKC4uLmFyZ3MpO1xuXHRcdHRoaXMudHJpZ2dlckRpYWxvZyA9IHRoaXMudHJpZ2dlckRpYWxvZy5iaW5kKHRoaXMpO1xuXHR9XG5cblx0dHJpZ2dlckRpYWxvZyhlKSB7XG5cdFx0Y29uc3QgeyB0YXJnZXQgfSA9IGU7XG5cdFx0Y29uc3QgcXVlcnlQYXJhbXMgPSB0aGlzLnByb3BzLmF0dHJpYnV0ZXMucXVlcnlQYXJhbXM7XG5cdFx0c2hvcnRjb2RlU3RhdGUuaW5zZXJ0Q2FsbGJhY2sgPSB0aGlzLnByb3BzLmhhbmRsZUluc2VydDtcblxuXHRcdHRyaWdnZXIoeyBldmVudDogJ2JpZ2NvbW1lcmNlL2luaXRfc2hvcnRjb2RlX3VpJywgZGF0YTogeyB0YXJnZXQsIHF1ZXJ5UGFyYW1zIH0sIG5hdGl2ZTogZmFsc2UgfSk7XG5cdH1cblxuXHRyZW5kZXIoKSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxJbnNwZWN0b3JDb250cm9scz5cblx0XHRcdFx0PFBhbmVsQm9keVxuXHRcdFx0XHRcdHRpdGxlPXtHVVRFTkJFUkdfUFJPRFVDVFMuaW5zcGVjdG9yX3RpdGxlfVxuXHRcdFx0XHRcdGluaXRpYWxPcGVuXG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8UGFuZWxSb3c+XG5cdFx0XHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0XHRcdGlzUHJpbWFyeVxuXHRcdFx0XHRcdFx0XHR0eXBlPVwiYnV0dG9uXCJcblx0XHRcdFx0XHRcdFx0Y2xhc3NOYW1lPVwiYnV0dG9uIGJjLWFkZC1wcm9kdWN0c1wiXG5cdFx0XHRcdFx0XHRcdGRhdGEtanM9XCJiYy1hZGQtcHJvZHVjdHNcIlxuXHRcdFx0XHRcdFx0XHRkYXRhLWNvbnRlbnQ9XCJiYy1zaG9ydGNvZGUtdWlcIlxuXHRcdFx0XHRcdFx0XHRvbkNsaWNrPXt0aGlzLnRyaWdnZXJEaWFsb2d9XG5cdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdHtHVVRFTkJFUkdfUFJPRFVDVFMuaW5zcGVjdG9yX2J1dHRvbl90aXRsZX1cblx0XHRcdFx0XHRcdDwvQnV0dG9uPlxuXHRcdFx0XHRcdDwvUGFuZWxSb3c+XG5cdFx0XHRcdDwvUGFuZWxCb2R5PlxuXHRcdFx0PC9JbnNwZWN0b3JDb250cm9scz5cblx0XHQpO1xuXHR9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdHMvaW5zcGVjdG9yLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///214\n"); +eval("module.exports = __webpack_require__(215);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvY29yZS1qcy9zeW1ib2wuanM/YzVhOCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiIyMTQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vc3ltYm9sXCIpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2NvcmUtanMvc3ltYm9sLmpzXG4vLyBtb2R1bGUgaWQgPSAyMTRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///214\n"); /***/ }), /* 215 */ /***/ (function(module, exports, __webpack_require__) { -eval("__webpack_require__(216);\nmodule.exports = __webpack_require__(2).Object.getPrototypeOf;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9nZXQtcHJvdG90eXBlLW9mLmpzPzdkMmUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSIsImZpbGUiOiIyMTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3QuZ2V0LXByb3RvdHlwZS1vZicpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuT2JqZWN0LmdldFByb3RvdHlwZU9mO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9nZXQtcHJvdG90eXBlLW9mLmpzXG4vLyBtb2R1bGUgaWQgPSAyMTVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///215\n"); +eval("__webpack_require__(216);\n__webpack_require__(221);\n__webpack_require__(222);\n__webpack_require__(223);\nmodule.exports = __webpack_require__(1).Symbol;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbC9pbmRleC5qcz8wNzA3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMjE1LmpzIiwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYuc3ltYm9sJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3QudG8tc3RyaW5nJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNy5zeW1ib2wuYXN5bmMtaXRlcmF0b3InKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM3LnN5bWJvbC5vYnNlcnZhYmxlJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5TeW1ib2w7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vc3ltYm9sL2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSAyMTVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///215\n"); /***/ }), /* 216 */ /***/ (function(module, exports, __webpack_require__) { -eval("// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = __webpack_require__(35);\nvar $getPrototypeOf = __webpack_require__(80);\n\n__webpack_require__(62)('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5nZXQtcHJvdG90eXBlLW9mLmpzPzJhMWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyIsImZpbGUiOiIyMTYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAxOS4xLjIuOSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoTylcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4vX3RvLW9iamVjdCcpO1xudmFyICRnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4vX29iamVjdC1ncG8nKTtcblxucmVxdWlyZSgnLi9fb2JqZWN0LXNhcCcpKCdnZXRQcm90b3R5cGVPZicsIGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGdldFByb3RvdHlwZU9mKGl0KSB7XG4gICAgcmV0dXJuICRnZXRQcm90b3R5cGVPZih0b09iamVjdChpdCkpO1xuICB9O1xufSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYub2JqZWN0LmdldC1wcm90b3R5cGUtb2YuanNcbi8vIG1vZHVsZSBpZCA9IDIxNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///216\n"); +"use strict"; +eval("\n// ECMAScript 6 symbols shim\nvar global = __webpack_require__(6);\nvar has = __webpack_require__(9);\nvar DESCRIPTORS = __webpack_require__(10);\nvar $export = __webpack_require__(3);\nvar redefine = __webpack_require__(81);\nvar META = __webpack_require__(217).KEY;\nvar $fails = __webpack_require__(15);\nvar shared = __webpack_require__(51);\nvar setToStringTag = __webpack_require__(53);\nvar uid = __webpack_require__(33);\nvar wks = __webpack_require__(2);\nvar wksExt = __webpack_require__(60);\nvar wksDefine = __webpack_require__(61);\nvar enumKeys = __webpack_require__(218);\nvar isArray = __webpack_require__(219);\nvar anObject = __webpack_require__(11);\nvar isObject = __webpack_require__(14);\nvar toIObject = __webpack_require__(5);\nvar toPrimitive = __webpack_require__(42);\nvar createDesc = __webpack_require__(20);\nvar _create = __webpack_require__(49);\nvar gOPNExt = __webpack_require__(220);\nvar $GOPD = __webpack_require__(41);\nvar $DP = __webpack_require__(7);\nvar $keys = __webpack_require__(22);\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n __webpack_require__(98).f = gOPNExt.f = $getOwnPropertyNames;\n __webpack_require__(19).f = $propertyIsEnumerable;\n __webpack_require__(62).f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !__webpack_require__(48)) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(16)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN5bWJvbC5qcz83ZDY3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEIsc0JBQXNCLHVCQUF1QixXQUFXLElBQUk7QUFDNUQsR0FBRztBQUNILENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyREFBMkQ7QUFDM0Q7QUFDQSxLQUFLO0FBQ0w7QUFDQSxzQkFBc0IsbUNBQW1DO0FBQ3pELEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdFQUFnRSxnQ0FBZ0M7QUFDaEc7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDBEQUEwRCxrQkFBa0I7O0FBRTVFO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQix1QkFBdUI7O0FBRTNDLG9EQUFvRCw2QkFBNkI7O0FBRWpGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCwwQkFBMEIsZUFBZSxFQUFFO0FBQzNDLDBCQUEwQixnQkFBZ0I7QUFDMUMsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0RBQW9ELE9BQU8sUUFBUSxpQ0FBaUM7QUFDcEcsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdFQUF3RTtBQUN4RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIyMTYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG4vLyBFQ01BU2NyaXB0IDYgc3ltYm9scyBzaGltXG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4vX3JlZGVmaW5lJyk7XG52YXIgTUVUQSA9IHJlcXVpcmUoJy4vX21ldGEnKS5LRVk7XG52YXIgJGZhaWxzID0gcmVxdWlyZSgnLi9fZmFpbHMnKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuL19zaGFyZWQnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4vX3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi9fdWlkJyk7XG52YXIgd2tzID0gcmVxdWlyZSgnLi9fd2tzJyk7XG52YXIgd2tzRXh0ID0gcmVxdWlyZSgnLi9fd2tzLWV4dCcpO1xudmFyIHdrc0RlZmluZSA9IHJlcXVpcmUoJy4vX3drcy1kZWZpbmUnKTtcbnZhciBlbnVtS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0ta2V5cycpO1xudmFyIGlzQXJyYXkgPSByZXF1aXJlKCcuL19pcy1hcnJheScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuL190by1wcmltaXRpdmUnKTtcbnZhciBjcmVhdGVEZXNjID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xudmFyIF9jcmVhdGUgPSByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJyk7XG52YXIgZ09QTkV4dCA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BuLWV4dCcpO1xudmFyICRHT1BEID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcGQnKTtcbnZhciAkRFAgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKTtcbnZhciAka2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG52YXIgZ09QRCA9ICRHT1BELmY7XG52YXIgZFAgPSAkRFAuZjtcbnZhciBnT1BOID0gZ09QTkV4dC5mO1xudmFyICRTeW1ib2wgPSBnbG9iYWwuU3ltYm9sO1xudmFyICRKU09OID0gZ2xvYmFsLkpTT047XG52YXIgX3N0cmluZ2lmeSA9ICRKU09OICYmICRKU09OLnN0cmluZ2lmeTtcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcbnZhciBISURERU4gPSB3a3MoJ19oaWRkZW4nKTtcbnZhciBUT19QUklNSVRJVkUgPSB3a3MoJ3RvUHJpbWl0aXZlJyk7XG52YXIgaXNFbnVtID0ge30ucHJvcGVydHlJc0VudW1lcmFibGU7XG52YXIgU3ltYm9sUmVnaXN0cnkgPSBzaGFyZWQoJ3N5bWJvbC1yZWdpc3RyeScpO1xudmFyIEFsbFN5bWJvbHMgPSBzaGFyZWQoJ3N5bWJvbHMnKTtcbnZhciBPUFN5bWJvbHMgPSBzaGFyZWQoJ29wLXN5bWJvbHMnKTtcbnZhciBPYmplY3RQcm90byA9IE9iamVjdFtQUk9UT1RZUEVdO1xudmFyIFVTRV9OQVRJVkUgPSB0eXBlb2YgJFN5bWJvbCA9PSAnZnVuY3Rpb24nO1xudmFyIFFPYmplY3QgPSBnbG9iYWwuUU9iamVjdDtcbi8vIERvbid0IHVzZSBzZXR0ZXJzIGluIFF0IFNjcmlwdCwgaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzE3M1xudmFyIHNldHRlciA9ICFRT2JqZWN0IHx8ICFRT2JqZWN0W1BST1RPVFlQRV0gfHwgIVFPYmplY3RbUFJPVE9UWVBFXS5maW5kQ2hpbGQ7XG5cbi8vIGZhbGxiYWNrIGZvciBvbGQgQW5kcm9pZCwgaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTY4N1xudmFyIHNldFN5bWJvbERlc2MgPSBERVNDUklQVE9SUyAmJiAkZmFpbHMoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gX2NyZWF0ZShkUCh7fSwgJ2EnLCB7XG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBkUCh0aGlzLCAnYScsIHsgdmFsdWU6IDcgfSkuYTsgfVxuICB9KSkuYSAhPSA3O1xufSkgPyBmdW5jdGlvbiAoaXQsIGtleSwgRCkge1xuICB2YXIgcHJvdG9EZXNjID0gZ09QRChPYmplY3RQcm90bywga2V5KTtcbiAgaWYgKHByb3RvRGVzYykgZGVsZXRlIE9iamVjdFByb3RvW2tleV07XG4gIGRQKGl0LCBrZXksIEQpO1xuICBpZiAocHJvdG9EZXNjICYmIGl0ICE9PSBPYmplY3RQcm90bykgZFAoT2JqZWN0UHJvdG8sIGtleSwgcHJvdG9EZXNjKTtcbn0gOiBkUDtcblxudmFyIHdyYXAgPSBmdW5jdGlvbiAodGFnKSB7XG4gIHZhciBzeW0gPSBBbGxTeW1ib2xzW3RhZ10gPSBfY3JlYXRlKCRTeW1ib2xbUFJPVE9UWVBFXSk7XG4gIHN5bS5fayA9IHRhZztcbiAgcmV0dXJuIHN5bTtcbn07XG5cbnZhciBpc1N5bWJvbCA9IFVTRV9OQVRJVkUgJiYgdHlwZW9mICRTeW1ib2wuaXRlcmF0b3IgPT0gJ3N5bWJvbCcgPyBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PSAnc3ltYm9sJztcbn0gOiBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0IGluc3RhbmNlb2YgJFN5bWJvbDtcbn07XG5cbnZhciAkZGVmaW5lUHJvcGVydHkgPSBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShpdCwga2V5LCBEKSB7XG4gIGlmIChpdCA9PT0gT2JqZWN0UHJvdG8pICRkZWZpbmVQcm9wZXJ0eShPUFN5bWJvbHMsIGtleSwgRCk7XG4gIGFuT2JqZWN0KGl0KTtcbiAga2V5ID0gdG9QcmltaXRpdmUoa2V5LCB0cnVlKTtcbiAgYW5PYmplY3QoRCk7XG4gIGlmIChoYXMoQWxsU3ltYm9scywga2V5KSkge1xuICAgIGlmICghRC5lbnVtZXJhYmxlKSB7XG4gICAgICBpZiAoIWhhcyhpdCwgSElEREVOKSkgZFAoaXQsIEhJRERFTiwgY3JlYXRlRGVzYygxLCB7fSkpO1xuICAgICAgaXRbSElEREVOXVtrZXldID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGhhcyhpdCwgSElEREVOKSAmJiBpdFtISURERU5dW2tleV0pIGl0W0hJRERFTl1ba2V5XSA9IGZhbHNlO1xuICAgICAgRCA9IF9jcmVhdGUoRCwgeyBlbnVtZXJhYmxlOiBjcmVhdGVEZXNjKDAsIGZhbHNlKSB9KTtcbiAgICB9IHJldHVybiBzZXRTeW1ib2xEZXNjKGl0LCBrZXksIEQpO1xuICB9IHJldHVybiBkUChpdCwga2V5LCBEKTtcbn07XG52YXIgJGRlZmluZVByb3BlcnRpZXMgPSBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKGl0LCBQKSB7XG4gIGFuT2JqZWN0KGl0KTtcbiAgdmFyIGtleXMgPSBlbnVtS2V5cyhQID0gdG9JT2JqZWN0KFApKTtcbiAgdmFyIGkgPSAwO1xuICB2YXIgbCA9IGtleXMubGVuZ3RoO1xuICB2YXIga2V5O1xuICB3aGlsZSAobCA+IGkpICRkZWZpbmVQcm9wZXJ0eShpdCwga2V5ID0ga2V5c1tpKytdLCBQW2tleV0pO1xuICByZXR1cm4gaXQ7XG59O1xudmFyICRjcmVhdGUgPSBmdW5jdGlvbiBjcmVhdGUoaXQsIFApIHtcbiAgcmV0dXJuIFAgPT09IHVuZGVmaW5lZCA/IF9jcmVhdGUoaXQpIDogJGRlZmluZVByb3BlcnRpZXMoX2NyZWF0ZShpdCksIFApO1xufTtcbnZhciAkcHJvcGVydHlJc0VudW1lcmFibGUgPSBmdW5jdGlvbiBwcm9wZXJ0eUlzRW51bWVyYWJsZShrZXkpIHtcbiAgdmFyIEUgPSBpc0VudW0uY2FsbCh0aGlzLCBrZXkgPSB0b1ByaW1pdGl2ZShrZXksIHRydWUpKTtcbiAgaWYgKHRoaXMgPT09IE9iamVjdFByb3RvICYmIGhhcyhBbGxTeW1ib2xzLCBrZXkpICYmICFoYXMoT1BTeW1ib2xzLCBrZXkpKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiBFIHx8ICFoYXModGhpcywga2V5KSB8fCAhaGFzKEFsbFN5bWJvbHMsIGtleSkgfHwgaGFzKHRoaXMsIEhJRERFTikgJiYgdGhpc1tISURERU5dW2tleV0gPyBFIDogdHJ1ZTtcbn07XG52YXIgJGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihpdCwga2V5KSB7XG4gIGl0ID0gdG9JT2JqZWN0KGl0KTtcbiAga2V5ID0gdG9QcmltaXRpdmUoa2V5LCB0cnVlKTtcbiAgaWYgKGl0ID09PSBPYmplY3RQcm90byAmJiBoYXMoQWxsU3ltYm9scywga2V5KSAmJiAhaGFzKE9QU3ltYm9scywga2V5KSkgcmV0dXJuO1xuICB2YXIgRCA9IGdPUEQoaXQsIGtleSk7XG4gIGlmIChEICYmIGhhcyhBbGxTeW1ib2xzLCBrZXkpICYmICEoaGFzKGl0LCBISURERU4pICYmIGl0W0hJRERFTl1ba2V5XSkpIEQuZW51bWVyYWJsZSA9IHRydWU7XG4gIHJldHVybiBEO1xufTtcbnZhciAkZ2V0T3duUHJvcGVydHlOYW1lcyA9IGZ1bmN0aW9uIGdldE93blByb3BlcnR5TmFtZXMoaXQpIHtcbiAgdmFyIG5hbWVzID0gZ09QTih0b0lPYmplY3QoaXQpKTtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICB2YXIgaSA9IDA7XG4gIHZhciBrZXk7XG4gIHdoaWxlIChuYW1lcy5sZW5ndGggPiBpKSB7XG4gICAgaWYgKCFoYXMoQWxsU3ltYm9scywga2V5ID0gbmFtZXNbaSsrXSkgJiYga2V5ICE9IEhJRERFTiAmJiBrZXkgIT0gTUVUQSkgcmVzdWx0LnB1c2goa2V5KTtcbiAgfSByZXR1cm4gcmVzdWx0O1xufTtcbnZhciAkZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGl0KSB7XG4gIHZhciBJU19PUCA9IGl0ID09PSBPYmplY3RQcm90bztcbiAgdmFyIG5hbWVzID0gZ09QTihJU19PUCA/IE9QU3ltYm9scyA6IHRvSU9iamVjdChpdCkpO1xuICB2YXIgcmVzdWx0ID0gW107XG4gIHZhciBpID0gMDtcbiAgdmFyIGtleTtcbiAgd2hpbGUgKG5hbWVzLmxlbmd0aCA+IGkpIHtcbiAgICBpZiAoaGFzKEFsbFN5bWJvbHMsIGtleSA9IG5hbWVzW2krK10pICYmIChJU19PUCA/IGhhcyhPYmplY3RQcm90bywga2V5KSA6IHRydWUpKSByZXN1bHQucHVzaChBbGxTeW1ib2xzW2tleV0pO1xuICB9IHJldHVybiByZXN1bHQ7XG59O1xuXG4vLyAxOS40LjEuMSBTeW1ib2woW2Rlc2NyaXB0aW9uXSlcbmlmICghVVNFX05BVElWRSkge1xuICAkU3ltYm9sID0gZnVuY3Rpb24gU3ltYm9sKCkge1xuICAgIGlmICh0aGlzIGluc3RhbmNlb2YgJFN5bWJvbCkgdGhyb3cgVHlwZUVycm9yKCdTeW1ib2wgaXMgbm90IGEgY29uc3RydWN0b3IhJyk7XG4gICAgdmFyIHRhZyA9IHVpZChhcmd1bWVudHMubGVuZ3RoID4gMCA/IGFyZ3VtZW50c1swXSA6IHVuZGVmaW5lZCk7XG4gICAgdmFyICRzZXQgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGlmICh0aGlzID09PSBPYmplY3RQcm90bykgJHNldC5jYWxsKE9QU3ltYm9scywgdmFsdWUpO1xuICAgICAgaWYgKGhhcyh0aGlzLCBISURERU4pICYmIGhhcyh0aGlzW0hJRERFTl0sIHRhZykpIHRoaXNbSElEREVOXVt0YWddID0gZmFsc2U7XG4gICAgICBzZXRTeW1ib2xEZXNjKHRoaXMsIHRhZywgY3JlYXRlRGVzYygxLCB2YWx1ZSkpO1xuICAgIH07XG4gICAgaWYgKERFU0NSSVBUT1JTICYmIHNldHRlcikgc2V0U3ltYm9sRGVzYyhPYmplY3RQcm90bywgdGFnLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgc2V0OiAkc2V0IH0pO1xuICAgIHJldHVybiB3cmFwKHRhZyk7XG4gIH07XG4gIHJlZGVmaW5lKCRTeW1ib2xbUFJPVE9UWVBFXSwgJ3RvU3RyaW5nJywgZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2s7XG4gIH0pO1xuXG4gICRHT1BELmYgPSAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuICAkRFAuZiA9ICRkZWZpbmVQcm9wZXJ0eTtcbiAgcmVxdWlyZSgnLi9fb2JqZWN0LWdvcG4nKS5mID0gZ09QTkV4dC5mID0gJGdldE93blByb3BlcnR5TmFtZXM7XG4gIHJlcXVpcmUoJy4vX29iamVjdC1waWUnKS5mID0gJHByb3BlcnR5SXNFbnVtZXJhYmxlO1xuICByZXF1aXJlKCcuL19vYmplY3QtZ29wcycpLmYgPSAkZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xuXG4gIGlmIChERVNDUklQVE9SUyAmJiAhcmVxdWlyZSgnLi9fbGlicmFyeScpKSB7XG4gICAgcmVkZWZpbmUoT2JqZWN0UHJvdG8sICdwcm9wZXJ0eUlzRW51bWVyYWJsZScsICRwcm9wZXJ0eUlzRW51bWVyYWJsZSwgdHJ1ZSk7XG4gIH1cblxuICB3a3NFeHQuZiA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgcmV0dXJuIHdyYXAod2tzKG5hbWUpKTtcbiAgfTtcbn1cblxuJGV4cG9ydCgkZXhwb3J0LkcgKyAkZXhwb3J0LlcgKyAkZXhwb3J0LkYgKiAhVVNFX05BVElWRSwgeyBTeW1ib2w6ICRTeW1ib2wgfSk7XG5cbmZvciAodmFyIGVzNlN5bWJvbHMgPSAoXG4gIC8vIDE5LjQuMi4yLCAxOS40LjIuMywgMTkuNC4yLjQsIDE5LjQuMi42LCAxOS40LjIuOCwgMTkuNC4yLjksIDE5LjQuMi4xMCwgMTkuNC4yLjExLCAxOS40LjIuMTIsIDE5LjQuMi4xMywgMTkuNC4yLjE0XG4gICdoYXNJbnN0YW5jZSxpc0NvbmNhdFNwcmVhZGFibGUsaXRlcmF0b3IsbWF0Y2gscmVwbGFjZSxzZWFyY2gsc3BlY2llcyxzcGxpdCx0b1ByaW1pdGl2ZSx0b1N0cmluZ1RhZyx1bnNjb3BhYmxlcydcbikuc3BsaXQoJywnKSwgaiA9IDA7IGVzNlN5bWJvbHMubGVuZ3RoID4gajspd2tzKGVzNlN5bWJvbHNbaisrXSk7XG5cbmZvciAodmFyIHdlbGxLbm93blN5bWJvbHMgPSAka2V5cyh3a3Muc3RvcmUpLCBrID0gMDsgd2VsbEtub3duU3ltYm9scy5sZW5ndGggPiBrOykgd2tzRGVmaW5lKHdlbGxLbm93blN5bWJvbHNbaysrXSk7XG5cbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogIVVTRV9OQVRJVkUsICdTeW1ib2wnLCB7XG4gIC8vIDE5LjQuMi4xIFN5bWJvbC5mb3Ioa2V5KVxuICAnZm9yJzogZnVuY3Rpb24gKGtleSkge1xuICAgIHJldHVybiBoYXMoU3ltYm9sUmVnaXN0cnksIGtleSArPSAnJylcbiAgICAgID8gU3ltYm9sUmVnaXN0cnlba2V5XVxuICAgICAgOiBTeW1ib2xSZWdpc3RyeVtrZXldID0gJFN5bWJvbChrZXkpO1xuICB9LFxuICAvLyAxOS40LjIuNSBTeW1ib2wua2V5Rm9yKHN5bSlcbiAga2V5Rm9yOiBmdW5jdGlvbiBrZXlGb3Ioc3ltKSB7XG4gICAgaWYgKCFpc1N5bWJvbChzeW0pKSB0aHJvdyBUeXBlRXJyb3Ioc3ltICsgJyBpcyBub3QgYSBzeW1ib2whJyk7XG4gICAgZm9yICh2YXIga2V5IGluIFN5bWJvbFJlZ2lzdHJ5KSBpZiAoU3ltYm9sUmVnaXN0cnlba2V5XSA9PT0gc3ltKSByZXR1cm4ga2V5O1xuICB9LFxuICB1c2VTZXR0ZXI6IGZ1bmN0aW9uICgpIHsgc2V0dGVyID0gdHJ1ZTsgfSxcbiAgdXNlU2ltcGxlOiBmdW5jdGlvbiAoKSB7IHNldHRlciA9IGZhbHNlOyB9XG59KTtcblxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAhVVNFX05BVElWRSwgJ09iamVjdCcsIHtcbiAgLy8gMTkuMS4yLjIgT2JqZWN0LmNyZWF0ZShPIFssIFByb3BlcnRpZXNdKVxuICBjcmVhdGU6ICRjcmVhdGUsXG4gIC8vIDE5LjEuMi40IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKVxuICBkZWZpbmVQcm9wZXJ0eTogJGRlZmluZVByb3BlcnR5LFxuICAvLyAxOS4xLjIuMyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhPLCBQcm9wZXJ0aWVzKVxuICBkZWZpbmVQcm9wZXJ0aWVzOiAkZGVmaW5lUHJvcGVydGllcyxcbiAgLy8gMTkuMS4yLjYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPLCBQKVxuICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsXG4gIC8vIDE5LjEuMi43IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKE8pXG4gIGdldE93blByb3BlcnR5TmFtZXM6ICRnZXRPd25Qcm9wZXJ0eU5hbWVzLFxuICAvLyAxOS4xLjIuOCBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKE8pXG4gIGdldE93blByb3BlcnR5U3ltYm9sczogJGdldE93blByb3BlcnR5U3ltYm9sc1xufSk7XG5cbi8vIDI0LjMuMiBKU09OLnN0cmluZ2lmeSh2YWx1ZSBbLCByZXBsYWNlciBbLCBzcGFjZV1dKVxuJEpTT04gJiYgJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAoIVVTRV9OQVRJVkUgfHwgJGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIFMgPSAkU3ltYm9sKCk7XG4gIC8vIE1TIEVkZ2UgY29udmVydHMgc3ltYm9sIHZhbHVlcyB0byBKU09OIGFzIHt9XG4gIC8vIFdlYktpdCBjb252ZXJ0cyBzeW1ib2wgdmFsdWVzIHRvIEpTT04gYXMgbnVsbFxuICAvLyBWOCB0aHJvd3Mgb24gYm94ZWQgc3ltYm9sc1xuICByZXR1cm4gX3N0cmluZ2lmeShbU10pICE9ICdbbnVsbF0nIHx8IF9zdHJpbmdpZnkoeyBhOiBTIH0pICE9ICd7fScgfHwgX3N0cmluZ2lmeShPYmplY3QoUykpICE9ICd7fSc7XG59KSksICdKU09OJywge1xuICBzdHJpbmdpZnk6IGZ1bmN0aW9uIHN0cmluZ2lmeShpdCkge1xuICAgIHZhciBhcmdzID0gW2l0XTtcbiAgICB2YXIgaSA9IDE7XG4gICAgdmFyIHJlcGxhY2VyLCAkcmVwbGFjZXI7XG4gICAgd2hpbGUgKGFyZ3VtZW50cy5sZW5ndGggPiBpKSBhcmdzLnB1c2goYXJndW1lbnRzW2krK10pO1xuICAgICRyZXBsYWNlciA9IHJlcGxhY2VyID0gYXJnc1sxXTtcbiAgICBpZiAoIWlzT2JqZWN0KHJlcGxhY2VyKSAmJiBpdCA9PT0gdW5kZWZpbmVkIHx8IGlzU3ltYm9sKGl0KSkgcmV0dXJuOyAvLyBJRTggcmV0dXJucyBzdHJpbmcgb24gdW5kZWZpbmVkXG4gICAgaWYgKCFpc0FycmF5KHJlcGxhY2VyKSkgcmVwbGFjZXIgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgICAgaWYgKHR5cGVvZiAkcmVwbGFjZXIgPT0gJ2Z1bmN0aW9uJykgdmFsdWUgPSAkcmVwbGFjZXIuY2FsbCh0aGlzLCBrZXksIHZhbHVlKTtcbiAgICAgIGlmICghaXNTeW1ib2wodmFsdWUpKSByZXR1cm4gdmFsdWU7XG4gICAgfTtcbiAgICBhcmdzWzFdID0gcmVwbGFjZXI7XG4gICAgcmV0dXJuIF9zdHJpbmdpZnkuYXBwbHkoJEpTT04sIGFyZ3MpO1xuICB9XG59KTtcblxuLy8gMTkuNC4zLjQgU3ltYm9sLnByb3RvdHlwZVtAQHRvUHJpbWl0aXZlXShoaW50KVxuJFN5bWJvbFtQUk9UT1RZUEVdW1RPX1BSSU1JVElWRV0gfHwgcmVxdWlyZSgnLi9faGlkZScpKCRTeW1ib2xbUFJPVE9UWVBFXSwgVE9fUFJJTUlUSVZFLCAkU3ltYm9sW1BST1RPVFlQRV0udmFsdWVPZik7XG4vLyAxOS40LjMuNSBTeW1ib2wucHJvdG90eXBlW0BAdG9TdHJpbmdUYWddXG5zZXRUb1N0cmluZ1RhZygkU3ltYm9sLCAnU3ltYm9sJyk7XG4vLyAyMC4yLjEuOSBNYXRoW0BAdG9TdHJpbmdUYWddXG5zZXRUb1N0cmluZ1RhZyhNYXRoLCAnTWF0aCcsIHRydWUpO1xuLy8gMjQuMy4zIEpTT05bQEB0b1N0cmluZ1RhZ11cbnNldFRvU3RyaW5nVGFnKGdsb2JhbC5KU09OLCAnSlNPTicsIHRydWUpO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN5bWJvbC5qc1xuLy8gbW9kdWxlIGlkID0gMjE2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///216\n"); /***/ }), /* 217 */ /***/ (function(module, exports, __webpack_require__) { -eval("var _Symbol$iterator = __webpack_require__(218);\n\nvar _Symbol = __webpack_require__(220);\n\nfunction _typeof2(obj) { if (typeof _Symbol === \"function\" && typeof _Symbol$iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof _Symbol === \"function\" && _typeof2(_Symbol$iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanM/M2IyZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQSx3QkFBd0IsNkVBQTZFLG9DQUFvQyxtQkFBbUIsR0FBRyxFQUFFLE9BQU8sb0NBQW9DLGlJQUFpSSxHQUFHLEVBQUUsc0JBQXNCOztBQUV4VztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiMjE3LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9TeW1ib2wkaXRlcmF0b3IgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9zeW1ib2wvaXRlcmF0b3JcIik7XG5cbnZhciBfU3ltYm9sID0gcmVxdWlyZShcIi4uL2NvcmUtanMvc3ltYm9sXCIpO1xuXG5mdW5jdGlvbiBfdHlwZW9mMihvYmopIHsgaWYgKHR5cGVvZiBfU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIF9TeW1ib2wkaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZjIgPSBmdW5jdGlvbiBfdHlwZW9mMihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YyID0gZnVuY3Rpb24gX3R5cGVvZjIob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIF9TeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IF9TeW1ib2wgJiYgb2JqICE9PSBfU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mMihvYmopOyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gIGlmICh0eXBlb2YgX1N5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIF90eXBlb2YyKF9TeW1ib2wkaXRlcmF0b3IpID09PSBcInN5bWJvbFwiKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgICAgIHJldHVybiBfdHlwZW9mMihvYmopO1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgICAgIHJldHVybiBvYmogJiYgdHlwZW9mIF9TeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IF9TeW1ib2wgJiYgb2JqICE9PSBfU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiBfdHlwZW9mMihvYmopO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gX3R5cGVvZihvYmopO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF90eXBlb2Y7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanNcbi8vIG1vZHVsZSBpZCA9IDIxN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///217\n"); +eval("var META = __webpack_require__(33)('meta');\nvar isObject = __webpack_require__(14);\nvar has = __webpack_require__(9);\nvar setDesc = __webpack_require__(7).f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !__webpack_require__(15)(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX21ldGEuanM/ZDNhMyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQsQ0FBQztBQUNEO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0EsU0FBUztBQUNULEdBQUcsRUFBRTtBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIyMTcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgTUVUQSA9IHJlcXVpcmUoJy4vX3VpZCcpKCdtZXRhJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBzZXREZXNjID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZjtcbnZhciBpZCA9IDA7XG52YXIgaXNFeHRlbnNpYmxlID0gT2JqZWN0LmlzRXh0ZW5zaWJsZSB8fCBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0cnVlO1xufTtcbnZhciBGUkVFWkUgPSAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBpc0V4dGVuc2libGUoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHt9KSk7XG59KTtcbnZhciBzZXRNZXRhID0gZnVuY3Rpb24gKGl0KSB7XG4gIHNldERlc2MoaXQsIE1FVEEsIHsgdmFsdWU6IHtcbiAgICBpOiAnTycgKyArK2lkLCAvLyBvYmplY3QgSURcbiAgICB3OiB7fSAgICAgICAgICAvLyB3ZWFrIGNvbGxlY3Rpb25zIElEc1xuICB9IH0pO1xufTtcbnZhciBmYXN0S2V5ID0gZnVuY3Rpb24gKGl0LCBjcmVhdGUpIHtcbiAgLy8gcmV0dXJuIHByaW1pdGl2ZSB3aXRoIHByZWZpeFxuICBpZiAoIWlzT2JqZWN0KGl0KSkgcmV0dXJuIHR5cGVvZiBpdCA9PSAnc3ltYm9sJyA/IGl0IDogKHR5cGVvZiBpdCA9PSAnc3RyaW5nJyA/ICdTJyA6ICdQJykgKyBpdDtcbiAgaWYgKCFoYXMoaXQsIE1FVEEpKSB7XG4gICAgLy8gY2FuJ3Qgc2V0IG1ldGFkYXRhIHRvIHVuY2F1Z2h0IGZyb3plbiBvYmplY3RcbiAgICBpZiAoIWlzRXh0ZW5zaWJsZShpdCkpIHJldHVybiAnRic7XG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBhZGQgbWV0YWRhdGFcbiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuICdFJztcbiAgICAvLyBhZGQgbWlzc2luZyBtZXRhZGF0YVxuICAgIHNldE1ldGEoaXQpO1xuICAvLyByZXR1cm4gb2JqZWN0IElEXG4gIH0gcmV0dXJuIGl0W01FVEFdLmk7XG59O1xudmFyIGdldFdlYWsgPSBmdW5jdGlvbiAoaXQsIGNyZWF0ZSkge1xuICBpZiAoIWhhcyhpdCwgTUVUQSkpIHtcbiAgICAvLyBjYW4ndCBzZXQgbWV0YWRhdGEgdG8gdW5jYXVnaHQgZnJvemVuIG9iamVjdFxuICAgIGlmICghaXNFeHRlbnNpYmxlKGl0KSkgcmV0dXJuIHRydWU7XG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBhZGQgbWV0YWRhdGFcbiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuIGZhbHNlO1xuICAgIC8vIGFkZCBtaXNzaW5nIG1ldGFkYXRhXG4gICAgc2V0TWV0YShpdCk7XG4gIC8vIHJldHVybiBoYXNoIHdlYWsgY29sbGVjdGlvbnMgSURzXG4gIH0gcmV0dXJuIGl0W01FVEFdLnc7XG59O1xuLy8gYWRkIG1ldGFkYXRhIG9uIGZyZWV6ZS1mYW1pbHkgbWV0aG9kcyBjYWxsaW5nXG52YXIgb25GcmVlemUgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKEZSRUVaRSAmJiBtZXRhLk5FRUQgJiYgaXNFeHRlbnNpYmxlKGl0KSAmJiAhaGFzKGl0LCBNRVRBKSkgc2V0TWV0YShpdCk7XG4gIHJldHVybiBpdDtcbn07XG52YXIgbWV0YSA9IG1vZHVsZS5leHBvcnRzID0ge1xuICBLRVk6IE1FVEEsXG4gIE5FRUQ6IGZhbHNlLFxuICBmYXN0S2V5OiBmYXN0S2V5LFxuICBnZXRXZWFrOiBnZXRXZWFrLFxuICBvbkZyZWV6ZTogb25GcmVlemVcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fbWV0YS5qc1xuLy8gbW9kdWxlIGlkID0gMjE3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///217\n"); /***/ }), /* 218 */ /***/ (function(module, exports, __webpack_require__) { -eval("module.exports = __webpack_require__(219);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvY29yZS1qcy9zeW1ib2wvaXRlcmF0b3IuanM/YjUxYiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiIyMTguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vc3ltYm9sL2l0ZXJhdG9yXCIpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2NvcmUtanMvc3ltYm9sL2l0ZXJhdG9yLmpzXG4vLyBtb2R1bGUgaWQgPSAyMThcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///218\n"); +eval("// all enumerable object keys, includes symbols\nvar getKeys = __webpack_require__(22);\nvar gOPS = __webpack_require__(62);\nvar pIE = __webpack_require__(19);\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0ta2V5cy5qcz81ZGNlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwiZmlsZSI6IjIxOC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGFsbCBlbnVtZXJhYmxlIG9iamVjdCBrZXlzLCBpbmNsdWRlcyBzeW1ib2xzXG52YXIgZ2V0S2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG52YXIgZ09QUyA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BzJyk7XG52YXIgcElFID0gcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIHJlc3VsdCA9IGdldEtleXMoaXQpO1xuICB2YXIgZ2V0U3ltYm9scyA9IGdPUFMuZjtcbiAgaWYgKGdldFN5bWJvbHMpIHtcbiAgICB2YXIgc3ltYm9scyA9IGdldFN5bWJvbHMoaXQpO1xuICAgIHZhciBpc0VudW0gPSBwSUUuZjtcbiAgICB2YXIgaSA9IDA7XG4gICAgdmFyIGtleTtcbiAgICB3aGlsZSAoc3ltYm9scy5sZW5ndGggPiBpKSBpZiAoaXNFbnVtLmNhbGwoaXQsIGtleSA9IHN5bWJvbHNbaSsrXSkpIHJlc3VsdC5wdXNoKGtleSk7XG4gIH0gcmV0dXJuIHJlc3VsdDtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZW51bS1rZXlzLmpzXG4vLyBtb2R1bGUgaWQgPSAyMThcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///218\n"); /***/ }), /* 219 */ /***/ (function(module, exports, __webpack_require__) { -eval("__webpack_require__(33);\n__webpack_require__(53);\nmodule.exports = __webpack_require__(57).f('iterator');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbC9pdGVyYXRvci5qcz9mZTdlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSIsImZpbGUiOiIyMTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5zdHJpbmcuaXRlcmF0b3InKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvd2ViLmRvbS5pdGVyYWJsZScpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL193a3MtZXh0JykuZignaXRlcmF0b3InKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9mbi9zeW1ib2wvaXRlcmF0b3IuanNcbi8vIG1vZHVsZSBpZCA9IDIxOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///219\n"); +eval("// 7.2.2 IsArray(argument)\nvar cof = __webpack_require__(39);\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lzLWFycmF5LmpzP2VkNDMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIyMTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA3LjIuMiBJc0FycmF5KGFyZ3VtZW50KVxudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xubW9kdWxlLmV4cG9ydHMgPSBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uIGlzQXJyYXkoYXJnKSB7XG4gIHJldHVybiBjb2YoYXJnKSA9PSAnQXJyYXknO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pcy1hcnJheS5qc1xuLy8gbW9kdWxlIGlkID0gMjE5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///219\n"); /***/ }), /* 220 */ /***/ (function(module, exports, __webpack_require__) { -eval("module.exports = __webpack_require__(221);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvY29yZS1qcy9zeW1ib2wuanM/YzVhOCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiIyMjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vc3ltYm9sXCIpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2NvcmUtanMvc3ltYm9sLmpzXG4vLyBtb2R1bGUgaWQgPSAyMjBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///220\n"); +eval("// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = __webpack_require__(5);\nvar gOPN = __webpack_require__(98).f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BuLWV4dC5qcz80NmI3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjs7QUFFakI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSIsImZpbGUiOiIyMjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBmYWxsYmFjayBmb3IgSUUxMSBidWdneSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB3aXRoIGlmcmFtZSBhbmQgd2luZG93XG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIGdPUE4gPSByZXF1aXJlKCcuL19vYmplY3QtZ29wbicpLmY7XG52YXIgdG9TdHJpbmcgPSB7fS50b1N0cmluZztcblxudmFyIHdpbmRvd05hbWVzID0gdHlwZW9mIHdpbmRvdyA9PSAnb2JqZWN0JyAmJiB3aW5kb3cgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXNcbiAgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh3aW5kb3cpIDogW107XG5cbnZhciBnZXRXaW5kb3dOYW1lcyA9IGZ1bmN0aW9uIChpdCkge1xuICB0cnkge1xuICAgIHJldHVybiBnT1BOKGl0KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB3aW5kb3dOYW1lcy5zbGljZSgpO1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5mID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhpdCkge1xuICByZXR1cm4gd2luZG93TmFtZXMgJiYgdG9TdHJpbmcuY2FsbChpdCkgPT0gJ1tvYmplY3QgV2luZG93XScgPyBnZXRXaW5kb3dOYW1lcyhpdCkgOiBnT1BOKHRvSU9iamVjdChpdCkpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ29wbi1leHQuanNcbi8vIG1vZHVsZSBpZCA9IDIyMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///220\n"); /***/ }), /* 221 */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -eval("__webpack_require__(222);\n__webpack_require__(227);\n__webpack_require__(228);\n__webpack_require__(229);\nmodule.exports = __webpack_require__(2).Symbol;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbC9pbmRleC5qcz8wNzA3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMjIxLmpzIiwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYuc3ltYm9sJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3QudG8tc3RyaW5nJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNy5zeW1ib2wuYXN5bmMtaXRlcmF0b3InKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM3LnN5bWJvbC5vYnNlcnZhYmxlJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5TeW1ib2w7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vc3ltYm9sL2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSAyMjFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///221\n"); +eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIyMjEuanMiLCJzb3VyY2VzQ29udGVudCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///221\n"); /***/ }), /* 222 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; -eval("\n// ECMAScript 6 symbols shim\nvar global = __webpack_require__(9);\nvar has = __webpack_require__(12);\nvar DESCRIPTORS = __webpack_require__(13);\nvar $export = __webpack_require__(6);\nvar redefine = __webpack_require__(77);\nvar META = __webpack_require__(223).KEY;\nvar $fails = __webpack_require__(18);\nvar shared = __webpack_require__(49);\nvar setToStringTag = __webpack_require__(51);\nvar uid = __webpack_require__(34);\nvar wks = __webpack_require__(4);\nvar wksExt = __webpack_require__(57);\nvar wksDefine = __webpack_require__(58);\nvar enumKeys = __webpack_require__(224);\nvar isArray = __webpack_require__(225);\nvar anObject = __webpack_require__(14);\nvar isObject = __webpack_require__(17);\nvar toIObject = __webpack_require__(8);\nvar toPrimitive = __webpack_require__(40);\nvar createDesc = __webpack_require__(22);\nvar _create = __webpack_require__(47);\nvar gOPNExt = __webpack_require__(226);\nvar $GOPD = __webpack_require__(39);\nvar $DP = __webpack_require__(10);\nvar $keys = __webpack_require__(24);\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n __webpack_require__(98).f = gOPNExt.f = $getOwnPropertyNames;\n __webpack_require__(21).f = $propertyIsEnumerable;\n __webpack_require__(56).f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !__webpack_require__(46)) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(19)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN5bWJvbC5qcz83ZDY3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEIsc0JBQXNCLHVCQUF1QixXQUFXLElBQUk7QUFDNUQsR0FBRztBQUNILENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyREFBMkQ7QUFDM0Q7QUFDQSxLQUFLO0FBQ0w7QUFDQSxzQkFBc0IsbUNBQW1DO0FBQ3pELEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdFQUFnRSxnQ0FBZ0M7QUFDaEc7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDBEQUEwRCxrQkFBa0I7O0FBRTVFO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQix1QkFBdUI7O0FBRTNDLG9EQUFvRCw2QkFBNkI7O0FBRWpGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCwwQkFBMEIsZUFBZSxFQUFFO0FBQzNDLDBCQUEwQixnQkFBZ0I7QUFDMUMsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0RBQW9ELE9BQU8sUUFBUSxpQ0FBaUM7QUFDcEcsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdFQUF3RTtBQUN4RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIyMjIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG4vLyBFQ01BU2NyaXB0IDYgc3ltYm9scyBzaGltXG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4vX3JlZGVmaW5lJyk7XG52YXIgTUVUQSA9IHJlcXVpcmUoJy4vX21ldGEnKS5LRVk7XG52YXIgJGZhaWxzID0gcmVxdWlyZSgnLi9fZmFpbHMnKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuL19zaGFyZWQnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4vX3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi9fdWlkJyk7XG52YXIgd2tzID0gcmVxdWlyZSgnLi9fd2tzJyk7XG52YXIgd2tzRXh0ID0gcmVxdWlyZSgnLi9fd2tzLWV4dCcpO1xudmFyIHdrc0RlZmluZSA9IHJlcXVpcmUoJy4vX3drcy1kZWZpbmUnKTtcbnZhciBlbnVtS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0ta2V5cycpO1xudmFyIGlzQXJyYXkgPSByZXF1aXJlKCcuL19pcy1hcnJheScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuL190by1wcmltaXRpdmUnKTtcbnZhciBjcmVhdGVEZXNjID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xudmFyIF9jcmVhdGUgPSByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJyk7XG52YXIgZ09QTkV4dCA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BuLWV4dCcpO1xudmFyICRHT1BEID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcGQnKTtcbnZhciAkRFAgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKTtcbnZhciAka2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG52YXIgZ09QRCA9ICRHT1BELmY7XG52YXIgZFAgPSAkRFAuZjtcbnZhciBnT1BOID0gZ09QTkV4dC5mO1xudmFyICRTeW1ib2wgPSBnbG9iYWwuU3ltYm9sO1xudmFyICRKU09OID0gZ2xvYmFsLkpTT047XG52YXIgX3N0cmluZ2lmeSA9ICRKU09OICYmICRKU09OLnN0cmluZ2lmeTtcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcbnZhciBISURERU4gPSB3a3MoJ19oaWRkZW4nKTtcbnZhciBUT19QUklNSVRJVkUgPSB3a3MoJ3RvUHJpbWl0aXZlJyk7XG52YXIgaXNFbnVtID0ge30ucHJvcGVydHlJc0VudW1lcmFibGU7XG52YXIgU3ltYm9sUmVnaXN0cnkgPSBzaGFyZWQoJ3N5bWJvbC1yZWdpc3RyeScpO1xudmFyIEFsbFN5bWJvbHMgPSBzaGFyZWQoJ3N5bWJvbHMnKTtcbnZhciBPUFN5bWJvbHMgPSBzaGFyZWQoJ29wLXN5bWJvbHMnKTtcbnZhciBPYmplY3RQcm90byA9IE9iamVjdFtQUk9UT1RZUEVdO1xudmFyIFVTRV9OQVRJVkUgPSB0eXBlb2YgJFN5bWJvbCA9PSAnZnVuY3Rpb24nO1xudmFyIFFPYmplY3QgPSBnbG9iYWwuUU9iamVjdDtcbi8vIERvbid0IHVzZSBzZXR0ZXJzIGluIFF0IFNjcmlwdCwgaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzE3M1xudmFyIHNldHRlciA9ICFRT2JqZWN0IHx8ICFRT2JqZWN0W1BST1RPVFlQRV0gfHwgIVFPYmplY3RbUFJPVE9UWVBFXS5maW5kQ2hpbGQ7XG5cbi8vIGZhbGxiYWNrIGZvciBvbGQgQW5kcm9pZCwgaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTY4N1xudmFyIHNldFN5bWJvbERlc2MgPSBERVNDUklQVE9SUyAmJiAkZmFpbHMoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gX2NyZWF0ZShkUCh7fSwgJ2EnLCB7XG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBkUCh0aGlzLCAnYScsIHsgdmFsdWU6IDcgfSkuYTsgfVxuICB9KSkuYSAhPSA3O1xufSkgPyBmdW5jdGlvbiAoaXQsIGtleSwgRCkge1xuICB2YXIgcHJvdG9EZXNjID0gZ09QRChPYmplY3RQcm90bywga2V5KTtcbiAgaWYgKHByb3RvRGVzYykgZGVsZXRlIE9iamVjdFByb3RvW2tleV07XG4gIGRQKGl0LCBrZXksIEQpO1xuICBpZiAocHJvdG9EZXNjICYmIGl0ICE9PSBPYmplY3RQcm90bykgZFAoT2JqZWN0UHJvdG8sIGtleSwgcHJvdG9EZXNjKTtcbn0gOiBkUDtcblxudmFyIHdyYXAgPSBmdW5jdGlvbiAodGFnKSB7XG4gIHZhciBzeW0gPSBBbGxTeW1ib2xzW3RhZ10gPSBfY3JlYXRlKCRTeW1ib2xbUFJPVE9UWVBFXSk7XG4gIHN5bS5fayA9IHRhZztcbiAgcmV0dXJuIHN5bTtcbn07XG5cbnZhciBpc1N5bWJvbCA9IFVTRV9OQVRJVkUgJiYgdHlwZW9mICRTeW1ib2wuaXRlcmF0b3IgPT0gJ3N5bWJvbCcgPyBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PSAnc3ltYm9sJztcbn0gOiBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0IGluc3RhbmNlb2YgJFN5bWJvbDtcbn07XG5cbnZhciAkZGVmaW5lUHJvcGVydHkgPSBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShpdCwga2V5LCBEKSB7XG4gIGlmIChpdCA9PT0gT2JqZWN0UHJvdG8pICRkZWZpbmVQcm9wZXJ0eShPUFN5bWJvbHMsIGtleSwgRCk7XG4gIGFuT2JqZWN0KGl0KTtcbiAga2V5ID0gdG9QcmltaXRpdmUoa2V5LCB0cnVlKTtcbiAgYW5PYmplY3QoRCk7XG4gIGlmIChoYXMoQWxsU3ltYm9scywga2V5KSkge1xuICAgIGlmICghRC5lbnVtZXJhYmxlKSB7XG4gICAgICBpZiAoIWhhcyhpdCwgSElEREVOKSkgZFAoaXQsIEhJRERFTiwgY3JlYXRlRGVzYygxLCB7fSkpO1xuICAgICAgaXRbSElEREVOXVtrZXldID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGhhcyhpdCwgSElEREVOKSAmJiBpdFtISURERU5dW2tleV0pIGl0W0hJRERFTl1ba2V5XSA9IGZhbHNlO1xuICAgICAgRCA9IF9jcmVhdGUoRCwgeyBlbnVtZXJhYmxlOiBjcmVhdGVEZXNjKDAsIGZhbHNlKSB9KTtcbiAgICB9IHJldHVybiBzZXRTeW1ib2xEZXNjKGl0LCBrZXksIEQpO1xuICB9IHJldHVybiBkUChpdCwga2V5LCBEKTtcbn07XG52YXIgJGRlZmluZVByb3BlcnRpZXMgPSBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKGl0LCBQKSB7XG4gIGFuT2JqZWN0KGl0KTtcbiAgdmFyIGtleXMgPSBlbnVtS2V5cyhQID0gdG9JT2JqZWN0KFApKTtcbiAgdmFyIGkgPSAwO1xuICB2YXIgbCA9IGtleXMubGVuZ3RoO1xuICB2YXIga2V5O1xuICB3aGlsZSAobCA+IGkpICRkZWZpbmVQcm9wZXJ0eShpdCwga2V5ID0ga2V5c1tpKytdLCBQW2tleV0pO1xuICByZXR1cm4gaXQ7XG59O1xudmFyICRjcmVhdGUgPSBmdW5jdGlvbiBjcmVhdGUoaXQsIFApIHtcbiAgcmV0dXJuIFAgPT09IHVuZGVmaW5lZCA/IF9jcmVhdGUoaXQpIDogJGRlZmluZVByb3BlcnRpZXMoX2NyZWF0ZShpdCksIFApO1xufTtcbnZhciAkcHJvcGVydHlJc0VudW1lcmFibGUgPSBmdW5jdGlvbiBwcm9wZXJ0eUlzRW51bWVyYWJsZShrZXkpIHtcbiAgdmFyIEUgPSBpc0VudW0uY2FsbCh0aGlzLCBrZXkgPSB0b1ByaW1pdGl2ZShrZXksIHRydWUpKTtcbiAgaWYgKHRoaXMgPT09IE9iamVjdFByb3RvICYmIGhhcyhBbGxTeW1ib2xzLCBrZXkpICYmICFoYXMoT1BTeW1ib2xzLCBrZXkpKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiBFIHx8ICFoYXModGhpcywga2V5KSB8fCAhaGFzKEFsbFN5bWJvbHMsIGtleSkgfHwgaGFzKHRoaXMsIEhJRERFTikgJiYgdGhpc1tISURERU5dW2tleV0gPyBFIDogdHJ1ZTtcbn07XG52YXIgJGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihpdCwga2V5KSB7XG4gIGl0ID0gdG9JT2JqZWN0KGl0KTtcbiAga2V5ID0gdG9QcmltaXRpdmUoa2V5LCB0cnVlKTtcbiAgaWYgKGl0ID09PSBPYmplY3RQcm90byAmJiBoYXMoQWxsU3ltYm9scywga2V5KSAmJiAhaGFzKE9QU3ltYm9scywga2V5KSkgcmV0dXJuO1xuICB2YXIgRCA9IGdPUEQoaXQsIGtleSk7XG4gIGlmIChEICYmIGhhcyhBbGxTeW1ib2xzLCBrZXkpICYmICEoaGFzKGl0LCBISURERU4pICYmIGl0W0hJRERFTl1ba2V5XSkpIEQuZW51bWVyYWJsZSA9IHRydWU7XG4gIHJldHVybiBEO1xufTtcbnZhciAkZ2V0T3duUHJvcGVydHlOYW1lcyA9IGZ1bmN0aW9uIGdldE93blByb3BlcnR5TmFtZXMoaXQpIHtcbiAgdmFyIG5hbWVzID0gZ09QTih0b0lPYmplY3QoaXQpKTtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICB2YXIgaSA9IDA7XG4gIHZhciBrZXk7XG4gIHdoaWxlIChuYW1lcy5sZW5ndGggPiBpKSB7XG4gICAgaWYgKCFoYXMoQWxsU3ltYm9scywga2V5ID0gbmFtZXNbaSsrXSkgJiYga2V5ICE9IEhJRERFTiAmJiBrZXkgIT0gTUVUQSkgcmVzdWx0LnB1c2goa2V5KTtcbiAgfSByZXR1cm4gcmVzdWx0O1xufTtcbnZhciAkZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGl0KSB7XG4gIHZhciBJU19PUCA9IGl0ID09PSBPYmplY3RQcm90bztcbiAgdmFyIG5hbWVzID0gZ09QTihJU19PUCA/IE9QU3ltYm9scyA6IHRvSU9iamVjdChpdCkpO1xuICB2YXIgcmVzdWx0ID0gW107XG4gIHZhciBpID0gMDtcbiAgdmFyIGtleTtcbiAgd2hpbGUgKG5hbWVzLmxlbmd0aCA+IGkpIHtcbiAgICBpZiAoaGFzKEFsbFN5bWJvbHMsIGtleSA9IG5hbWVzW2krK10pICYmIChJU19PUCA/IGhhcyhPYmplY3RQcm90bywga2V5KSA6IHRydWUpKSByZXN1bHQucHVzaChBbGxTeW1ib2xzW2tleV0pO1xuICB9IHJldHVybiByZXN1bHQ7XG59O1xuXG4vLyAxOS40LjEuMSBTeW1ib2woW2Rlc2NyaXB0aW9uXSlcbmlmICghVVNFX05BVElWRSkge1xuICAkU3ltYm9sID0gZnVuY3Rpb24gU3ltYm9sKCkge1xuICAgIGlmICh0aGlzIGluc3RhbmNlb2YgJFN5bWJvbCkgdGhyb3cgVHlwZUVycm9yKCdTeW1ib2wgaXMgbm90IGEgY29uc3RydWN0b3IhJyk7XG4gICAgdmFyIHRhZyA9IHVpZChhcmd1bWVudHMubGVuZ3RoID4gMCA/IGFyZ3VtZW50c1swXSA6IHVuZGVmaW5lZCk7XG4gICAgdmFyICRzZXQgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGlmICh0aGlzID09PSBPYmplY3RQcm90bykgJHNldC5jYWxsKE9QU3ltYm9scywgdmFsdWUpO1xuICAgICAgaWYgKGhhcyh0aGlzLCBISURERU4pICYmIGhhcyh0aGlzW0hJRERFTl0sIHRhZykpIHRoaXNbSElEREVOXVt0YWddID0gZmFsc2U7XG4gICAgICBzZXRTeW1ib2xEZXNjKHRoaXMsIHRhZywgY3JlYXRlRGVzYygxLCB2YWx1ZSkpO1xuICAgIH07XG4gICAgaWYgKERFU0NSSVBUT1JTICYmIHNldHRlcikgc2V0U3ltYm9sRGVzYyhPYmplY3RQcm90bywgdGFnLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgc2V0OiAkc2V0IH0pO1xuICAgIHJldHVybiB3cmFwKHRhZyk7XG4gIH07XG4gIHJlZGVmaW5lKCRTeW1ib2xbUFJPVE9UWVBFXSwgJ3RvU3RyaW5nJywgZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2s7XG4gIH0pO1xuXG4gICRHT1BELmYgPSAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuICAkRFAuZiA9ICRkZWZpbmVQcm9wZXJ0eTtcbiAgcmVxdWlyZSgnLi9fb2JqZWN0LWdvcG4nKS5mID0gZ09QTkV4dC5mID0gJGdldE93blByb3BlcnR5TmFtZXM7XG4gIHJlcXVpcmUoJy4vX29iamVjdC1waWUnKS5mID0gJHByb3BlcnR5SXNFbnVtZXJhYmxlO1xuICByZXF1aXJlKCcuL19vYmplY3QtZ29wcycpLmYgPSAkZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xuXG4gIGlmIChERVNDUklQVE9SUyAmJiAhcmVxdWlyZSgnLi9fbGlicmFyeScpKSB7XG4gICAgcmVkZWZpbmUoT2JqZWN0UHJvdG8sICdwcm9wZXJ0eUlzRW51bWVyYWJsZScsICRwcm9wZXJ0eUlzRW51bWVyYWJsZSwgdHJ1ZSk7XG4gIH1cblxuICB3a3NFeHQuZiA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgcmV0dXJuIHdyYXAod2tzKG5hbWUpKTtcbiAgfTtcbn1cblxuJGV4cG9ydCgkZXhwb3J0LkcgKyAkZXhwb3J0LlcgKyAkZXhwb3J0LkYgKiAhVVNFX05BVElWRSwgeyBTeW1ib2w6ICRTeW1ib2wgfSk7XG5cbmZvciAodmFyIGVzNlN5bWJvbHMgPSAoXG4gIC8vIDE5LjQuMi4yLCAxOS40LjIuMywgMTkuNC4yLjQsIDE5LjQuMi42LCAxOS40LjIuOCwgMTkuNC4yLjksIDE5LjQuMi4xMCwgMTkuNC4yLjExLCAxOS40LjIuMTIsIDE5LjQuMi4xMywgMTkuNC4yLjE0XG4gICdoYXNJbnN0YW5jZSxpc0NvbmNhdFNwcmVhZGFibGUsaXRlcmF0b3IsbWF0Y2gscmVwbGFjZSxzZWFyY2gsc3BlY2llcyxzcGxpdCx0b1ByaW1pdGl2ZSx0b1N0cmluZ1RhZyx1bnNjb3BhYmxlcydcbikuc3BsaXQoJywnKSwgaiA9IDA7IGVzNlN5bWJvbHMubGVuZ3RoID4gajspd2tzKGVzNlN5bWJvbHNbaisrXSk7XG5cbmZvciAodmFyIHdlbGxLbm93blN5bWJvbHMgPSAka2V5cyh3a3Muc3RvcmUpLCBrID0gMDsgd2VsbEtub3duU3ltYm9scy5sZW5ndGggPiBrOykgd2tzRGVmaW5lKHdlbGxLbm93blN5bWJvbHNbaysrXSk7XG5cbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogIVVTRV9OQVRJVkUsICdTeW1ib2wnLCB7XG4gIC8vIDE5LjQuMi4xIFN5bWJvbC5mb3Ioa2V5KVxuICAnZm9yJzogZnVuY3Rpb24gKGtleSkge1xuICAgIHJldHVybiBoYXMoU3ltYm9sUmVnaXN0cnksIGtleSArPSAnJylcbiAgICAgID8gU3ltYm9sUmVnaXN0cnlba2V5XVxuICAgICAgOiBTeW1ib2xSZWdpc3RyeVtrZXldID0gJFN5bWJvbChrZXkpO1xuICB9LFxuICAvLyAxOS40LjIuNSBTeW1ib2wua2V5Rm9yKHN5bSlcbiAga2V5Rm9yOiBmdW5jdGlvbiBrZXlGb3Ioc3ltKSB7XG4gICAgaWYgKCFpc1N5bWJvbChzeW0pKSB0aHJvdyBUeXBlRXJyb3Ioc3ltICsgJyBpcyBub3QgYSBzeW1ib2whJyk7XG4gICAgZm9yICh2YXIga2V5IGluIFN5bWJvbFJlZ2lzdHJ5KSBpZiAoU3ltYm9sUmVnaXN0cnlba2V5XSA9PT0gc3ltKSByZXR1cm4ga2V5O1xuICB9LFxuICB1c2VTZXR0ZXI6IGZ1bmN0aW9uICgpIHsgc2V0dGVyID0gdHJ1ZTsgfSxcbiAgdXNlU2ltcGxlOiBmdW5jdGlvbiAoKSB7IHNldHRlciA9IGZhbHNlOyB9XG59KTtcblxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAhVVNFX05BVElWRSwgJ09iamVjdCcsIHtcbiAgLy8gMTkuMS4yLjIgT2JqZWN0LmNyZWF0ZShPIFssIFByb3BlcnRpZXNdKVxuICBjcmVhdGU6ICRjcmVhdGUsXG4gIC8vIDE5LjEuMi40IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKVxuICBkZWZpbmVQcm9wZXJ0eTogJGRlZmluZVByb3BlcnR5LFxuICAvLyAxOS4xLjIuMyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhPLCBQcm9wZXJ0aWVzKVxuICBkZWZpbmVQcm9wZXJ0aWVzOiAkZGVmaW5lUHJvcGVydGllcyxcbiAgLy8gMTkuMS4yLjYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPLCBQKVxuICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsXG4gIC8vIDE5LjEuMi43IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKE8pXG4gIGdldE93blByb3BlcnR5TmFtZXM6ICRnZXRPd25Qcm9wZXJ0eU5hbWVzLFxuICAvLyAxOS4xLjIuOCBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKE8pXG4gIGdldE93blByb3BlcnR5U3ltYm9sczogJGdldE93blByb3BlcnR5U3ltYm9sc1xufSk7XG5cbi8vIDI0LjMuMiBKU09OLnN0cmluZ2lmeSh2YWx1ZSBbLCByZXBsYWNlciBbLCBzcGFjZV1dKVxuJEpTT04gJiYgJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAoIVVTRV9OQVRJVkUgfHwgJGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIFMgPSAkU3ltYm9sKCk7XG4gIC8vIE1TIEVkZ2UgY29udmVydHMgc3ltYm9sIHZhbHVlcyB0byBKU09OIGFzIHt9XG4gIC8vIFdlYktpdCBjb252ZXJ0cyBzeW1ib2wgdmFsdWVzIHRvIEpTT04gYXMgbnVsbFxuICAvLyBWOCB0aHJvd3Mgb24gYm94ZWQgc3ltYm9sc1xuICByZXR1cm4gX3N0cmluZ2lmeShbU10pICE9ICdbbnVsbF0nIHx8IF9zdHJpbmdpZnkoeyBhOiBTIH0pICE9ICd7fScgfHwgX3N0cmluZ2lmeShPYmplY3QoUykpICE9ICd7fSc7XG59KSksICdKU09OJywge1xuICBzdHJpbmdpZnk6IGZ1bmN0aW9uIHN0cmluZ2lmeShpdCkge1xuICAgIHZhciBhcmdzID0gW2l0XTtcbiAgICB2YXIgaSA9IDE7XG4gICAgdmFyIHJlcGxhY2VyLCAkcmVwbGFjZXI7XG4gICAgd2hpbGUgKGFyZ3VtZW50cy5sZW5ndGggPiBpKSBhcmdzLnB1c2goYXJndW1lbnRzW2krK10pO1xuICAgICRyZXBsYWNlciA9IHJlcGxhY2VyID0gYXJnc1sxXTtcbiAgICBpZiAoIWlzT2JqZWN0KHJlcGxhY2VyKSAmJiBpdCA9PT0gdW5kZWZpbmVkIHx8IGlzU3ltYm9sKGl0KSkgcmV0dXJuOyAvLyBJRTggcmV0dXJucyBzdHJpbmcgb24gdW5kZWZpbmVkXG4gICAgaWYgKCFpc0FycmF5KHJlcGxhY2VyKSkgcmVwbGFjZXIgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgICAgaWYgKHR5cGVvZiAkcmVwbGFjZXIgPT0gJ2Z1bmN0aW9uJykgdmFsdWUgPSAkcmVwbGFjZXIuY2FsbCh0aGlzLCBrZXksIHZhbHVlKTtcbiAgICAgIGlmICghaXNTeW1ib2wodmFsdWUpKSByZXR1cm4gdmFsdWU7XG4gICAgfTtcbiAgICBhcmdzWzFdID0gcmVwbGFjZXI7XG4gICAgcmV0dXJuIF9zdHJpbmdpZnkuYXBwbHkoJEpTT04sIGFyZ3MpO1xuICB9XG59KTtcblxuLy8gMTkuNC4zLjQgU3ltYm9sLnByb3RvdHlwZVtAQHRvUHJpbWl0aXZlXShoaW50KVxuJFN5bWJvbFtQUk9UT1RZUEVdW1RPX1BSSU1JVElWRV0gfHwgcmVxdWlyZSgnLi9faGlkZScpKCRTeW1ib2xbUFJPVE9UWVBFXSwgVE9fUFJJTUlUSVZFLCAkU3ltYm9sW1BST1RPVFlQRV0udmFsdWVPZik7XG4vLyAxOS40LjMuNSBTeW1ib2wucHJvdG90eXBlW0BAdG9TdHJpbmdUYWddXG5zZXRUb1N0cmluZ1RhZygkU3ltYm9sLCAnU3ltYm9sJyk7XG4vLyAyMC4yLjEuOSBNYXRoW0BAdG9TdHJpbmdUYWddXG5zZXRUb1N0cmluZ1RhZyhNYXRoLCAnTWF0aCcsIHRydWUpO1xuLy8gMjQuMy4zIEpTT05bQEB0b1N0cmluZ1RhZ11cbnNldFRvU3RyaW5nVGFnKGdsb2JhbC5KU09OLCAnSlNPTicsIHRydWUpO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN5bWJvbC5qc1xuLy8gbW9kdWxlIGlkID0gMjIyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///222\n"); +eval("__webpack_require__(61)('asyncIterator');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM3LnN5bWJvbC5hc3luYy1pdGVyYXRvci5qcz8zOTg5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjIyMi5qcyIsInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4vX3drcy1kZWZpbmUnKSgnYXN5bmNJdGVyYXRvcicpO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM3LnN5bWJvbC5hc3luYy1pdGVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gMjIyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///222\n"); /***/ }), /* 223 */ /***/ (function(module, exports, __webpack_require__) { -eval("var META = __webpack_require__(34)('meta');\nvar isObject = __webpack_require__(17);\nvar has = __webpack_require__(12);\nvar setDesc = __webpack_require__(10).f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !__webpack_require__(18)(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX21ldGEuanM/ZDNhMyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQsQ0FBQztBQUNEO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0EsU0FBUztBQUNULEdBQUcsRUFBRTtBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIyMjMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgTUVUQSA9IHJlcXVpcmUoJy4vX3VpZCcpKCdtZXRhJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBzZXREZXNjID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZjtcbnZhciBpZCA9IDA7XG52YXIgaXNFeHRlbnNpYmxlID0gT2JqZWN0LmlzRXh0ZW5zaWJsZSB8fCBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0cnVlO1xufTtcbnZhciBGUkVFWkUgPSAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBpc0V4dGVuc2libGUoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHt9KSk7XG59KTtcbnZhciBzZXRNZXRhID0gZnVuY3Rpb24gKGl0KSB7XG4gIHNldERlc2MoaXQsIE1FVEEsIHsgdmFsdWU6IHtcbiAgICBpOiAnTycgKyArK2lkLCAvLyBvYmplY3QgSURcbiAgICB3OiB7fSAgICAgICAgICAvLyB3ZWFrIGNvbGxlY3Rpb25zIElEc1xuICB9IH0pO1xufTtcbnZhciBmYXN0S2V5ID0gZnVuY3Rpb24gKGl0LCBjcmVhdGUpIHtcbiAgLy8gcmV0dXJuIHByaW1pdGl2ZSB3aXRoIHByZWZpeFxuICBpZiAoIWlzT2JqZWN0KGl0KSkgcmV0dXJuIHR5cGVvZiBpdCA9PSAnc3ltYm9sJyA/IGl0IDogKHR5cGVvZiBpdCA9PSAnc3RyaW5nJyA/ICdTJyA6ICdQJykgKyBpdDtcbiAgaWYgKCFoYXMoaXQsIE1FVEEpKSB7XG4gICAgLy8gY2FuJ3Qgc2V0IG1ldGFkYXRhIHRvIHVuY2F1Z2h0IGZyb3plbiBvYmplY3RcbiAgICBpZiAoIWlzRXh0ZW5zaWJsZShpdCkpIHJldHVybiAnRic7XG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBhZGQgbWV0YWRhdGFcbiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuICdFJztcbiAgICAvLyBhZGQgbWlzc2luZyBtZXRhZGF0YVxuICAgIHNldE1ldGEoaXQpO1xuICAvLyByZXR1cm4gb2JqZWN0IElEXG4gIH0gcmV0dXJuIGl0W01FVEFdLmk7XG59O1xudmFyIGdldFdlYWsgPSBmdW5jdGlvbiAoaXQsIGNyZWF0ZSkge1xuICBpZiAoIWhhcyhpdCwgTUVUQSkpIHtcbiAgICAvLyBjYW4ndCBzZXQgbWV0YWRhdGEgdG8gdW5jYXVnaHQgZnJvemVuIG9iamVjdFxuICAgIGlmICghaXNFeHRlbnNpYmxlKGl0KSkgcmV0dXJuIHRydWU7XG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBhZGQgbWV0YWRhdGFcbiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuIGZhbHNlO1xuICAgIC8vIGFkZCBtaXNzaW5nIG1ldGFkYXRhXG4gICAgc2V0TWV0YShpdCk7XG4gIC8vIHJldHVybiBoYXNoIHdlYWsgY29sbGVjdGlvbnMgSURzXG4gIH0gcmV0dXJuIGl0W01FVEFdLnc7XG59O1xuLy8gYWRkIG1ldGFkYXRhIG9uIGZyZWV6ZS1mYW1pbHkgbWV0aG9kcyBjYWxsaW5nXG52YXIgb25GcmVlemUgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKEZSRUVaRSAmJiBtZXRhLk5FRUQgJiYgaXNFeHRlbnNpYmxlKGl0KSAmJiAhaGFzKGl0LCBNRVRBKSkgc2V0TWV0YShpdCk7XG4gIHJldHVybiBpdDtcbn07XG52YXIgbWV0YSA9IG1vZHVsZS5leHBvcnRzID0ge1xuICBLRVk6IE1FVEEsXG4gIE5FRUQ6IGZhbHNlLFxuICBmYXN0S2V5OiBmYXN0S2V5LFxuICBnZXRXZWFrOiBnZXRXZWFrLFxuICBvbkZyZWV6ZTogb25GcmVlemVcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fbWV0YS5qc1xuLy8gbW9kdWxlIGlkID0gMjIzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///223\n"); +eval("__webpack_require__(61)('observable');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM3LnN5bWJvbC5vYnNlcnZhYmxlLmpzPzQxNjciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiMjIzLmpzIiwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnLi9fd2tzLWRlZmluZScpKCdvYnNlcnZhYmxlJyk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczcuc3ltYm9sLm9ic2VydmFibGUuanNcbi8vIG1vZHVsZSBpZCA9IDIyM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///223\n"); /***/ }), /* 224 */ /***/ (function(module, exports, __webpack_require__) { -eval("// all enumerable object keys, includes symbols\nvar getKeys = __webpack_require__(24);\nvar gOPS = __webpack_require__(56);\nvar pIE = __webpack_require__(21);\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0ta2V5cy5qcz81ZGNlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwiZmlsZSI6IjIyNC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGFsbCBlbnVtZXJhYmxlIG9iamVjdCBrZXlzLCBpbmNsdWRlcyBzeW1ib2xzXG52YXIgZ2V0S2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG52YXIgZ09QUyA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BzJyk7XG52YXIgcElFID0gcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIHJlc3VsdCA9IGdldEtleXMoaXQpO1xuICB2YXIgZ2V0U3ltYm9scyA9IGdPUFMuZjtcbiAgaWYgKGdldFN5bWJvbHMpIHtcbiAgICB2YXIgc3ltYm9scyA9IGdldFN5bWJvbHMoaXQpO1xuICAgIHZhciBpc0VudW0gPSBwSUUuZjtcbiAgICB2YXIgaSA9IDA7XG4gICAgdmFyIGtleTtcbiAgICB3aGlsZSAoc3ltYm9scy5sZW5ndGggPiBpKSBpZiAoaXNFbnVtLmNhbGwoaXQsIGtleSA9IHN5bWJvbHNbaSsrXSkpIHJlc3VsdC5wdXNoKGtleSk7XG4gIH0gcmV0dXJuIHJlc3VsdDtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZW51bS1rZXlzLmpzXG4vLyBtb2R1bGUgaWQgPSAyMjRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///224\n"); +eval("module.exports = __webpack_require__(225);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvY29yZS1qcy9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZi5qcz9hZTM1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjIyNC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMvbGlicmFyeS9mbi9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZlwiKTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9jb3JlLWpzL29iamVjdC9zZXQtcHJvdG90eXBlLW9mLmpzXG4vLyBtb2R1bGUgaWQgPSAyMjRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///224\n"); /***/ }), /* 225 */ /***/ (function(module, exports, __webpack_require__) { -eval("// 7.2.2 IsArray(argument)\nvar cof = __webpack_require__(37);\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lzLWFycmF5LmpzP2VkNDMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIyMjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA3LjIuMiBJc0FycmF5KGFyZ3VtZW50KVxudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xubW9kdWxlLmV4cG9ydHMgPSBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uIGlzQXJyYXkoYXJnKSB7XG4gIHJldHVybiBjb2YoYXJnKSA9PSAnQXJyYXknO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pcy1hcnJheS5qc1xuLy8gbW9kdWxlIGlkID0gMjI1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///225\n"); +eval("__webpack_require__(226);\nmodule.exports = __webpack_require__(1).Object.setPrototypeOf;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9zZXQtcHJvdG90eXBlLW9mLmpzPzhiZjAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSIsImZpbGUiOiIyMjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3Quc2V0LXByb3RvdHlwZS1vZicpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuT2JqZWN0LnNldFByb3RvdHlwZU9mO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9zZXQtcHJvdG90eXBlLW9mLmpzXG4vLyBtb2R1bGUgaWQgPSAyMjVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///225\n"); /***/ }), /* 226 */ /***/ (function(module, exports, __webpack_require__) { -eval("// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = __webpack_require__(8);\nvar gOPN = __webpack_require__(98).f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BuLWV4dC5qcz80NmI3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjs7QUFFakI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSIsImZpbGUiOiIyMjYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBmYWxsYmFjayBmb3IgSUUxMSBidWdneSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB3aXRoIGlmcmFtZSBhbmQgd2luZG93XG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIGdPUE4gPSByZXF1aXJlKCcuL19vYmplY3QtZ29wbicpLmY7XG52YXIgdG9TdHJpbmcgPSB7fS50b1N0cmluZztcblxudmFyIHdpbmRvd05hbWVzID0gdHlwZW9mIHdpbmRvdyA9PSAnb2JqZWN0JyAmJiB3aW5kb3cgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXNcbiAgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh3aW5kb3cpIDogW107XG5cbnZhciBnZXRXaW5kb3dOYW1lcyA9IGZ1bmN0aW9uIChpdCkge1xuICB0cnkge1xuICAgIHJldHVybiBnT1BOKGl0KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB3aW5kb3dOYW1lcy5zbGljZSgpO1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5mID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhpdCkge1xuICByZXR1cm4gd2luZG93TmFtZXMgJiYgdG9TdHJpbmcuY2FsbChpdCkgPT0gJ1tvYmplY3QgV2luZG93XScgPyBnZXRXaW5kb3dOYW1lcyhpdCkgOiBnT1BOKHRvSU9iamVjdChpdCkpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ29wbi1leHQuanNcbi8vIG1vZHVsZSBpZCA9IDIyNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///226\n"); +eval("// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = __webpack_require__(3);\n$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(227).set });\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5zZXQtcHJvdG90eXBlLW9mLmpzPzdiMTgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBLDhCQUE4QiwrQ0FBOEMiLCJmaWxlIjoiMjI2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gMTkuMS4zLjE5IE9iamVjdC5zZXRQcm90b3R5cGVPZihPLCBwcm90bylcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG4kZXhwb3J0KCRleHBvcnQuUywgJ09iamVjdCcsIHsgc2V0UHJvdG90eXBlT2Y6IHJlcXVpcmUoJy4vX3NldC1wcm90bycpLnNldCB9KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNi5vYmplY3Quc2V0LXByb3RvdHlwZS1vZi5qc1xuLy8gbW9kdWxlIGlkID0gMjI2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///226\n"); /***/ }), /* 227 */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIyMjcuanMiLCJzb3VyY2VzQ29udGVudCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///227\n"); +eval("// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = __webpack_require__(14);\nvar anObject = __webpack_require__(11);\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = __webpack_require__(43)(Function.call, __webpack_require__(41).f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NldC1wcm90by5qcz82NWE0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtEQUFrRDtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxZQUFZLGNBQWM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxHQUFHO0FBQ1I7QUFDQSIsImZpbGUiOiIyMjcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBXb3JrcyB3aXRoIF9fcHJvdG9fXyBvbmx5LiBPbGQgdjggY2FuJ3Qgd29yayB3aXRoIG51bGwgcHJvdG8gb2JqZWN0cy5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvICovXG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIGNoZWNrID0gZnVuY3Rpb24gKE8sIHByb3RvKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBpZiAoIWlzT2JqZWN0KHByb3RvKSAmJiBwcm90byAhPT0gbnVsbCkgdGhyb3cgVHlwZUVycm9yKHByb3RvICsgXCI6IGNhbid0IHNldCBhcyBwcm90b3R5cGUhXCIpO1xufTtcbm1vZHVsZS5leHBvcnRzID0ge1xuICBzZXQ6IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCAoJ19fcHJvdG9fXycgaW4ge30gPyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgZnVuY3Rpb24gKHRlc3QsIGJ1Z2d5LCBzZXQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNldCA9IHJlcXVpcmUoJy4vX2N0eCcpKEZ1bmN0aW9uLmNhbGwsIHJlcXVpcmUoJy4vX29iamVjdC1nb3BkJykuZihPYmplY3QucHJvdG90eXBlLCAnX19wcm90b19fJykuc2V0LCAyKTtcbiAgICAgICAgc2V0KHRlc3QsIFtdKTtcbiAgICAgICAgYnVnZ3kgPSAhKHRlc3QgaW5zdGFuY2VvZiBBcnJheSk7XG4gICAgICB9IGNhdGNoIChlKSB7IGJ1Z2d5ID0gdHJ1ZTsgfVxuICAgICAgcmV0dXJuIGZ1bmN0aW9uIHNldFByb3RvdHlwZU9mKE8sIHByb3RvKSB7XG4gICAgICAgIGNoZWNrKE8sIHByb3RvKTtcbiAgICAgICAgaWYgKGJ1Z2d5KSBPLl9fcHJvdG9fXyA9IHByb3RvO1xuICAgICAgICBlbHNlIHNldChPLCBwcm90byk7XG4gICAgICAgIHJldHVybiBPO1xuICAgICAgfTtcbiAgICB9KHt9LCBmYWxzZSkgOiB1bmRlZmluZWQpLFxuICBjaGVjazogY2hlY2tcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc2V0LXByb3RvLmpzXG4vLyBtb2R1bGUgaWQgPSAyMjdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///227\n"); /***/ }), /* 228 */ /***/ (function(module, exports, __webpack_require__) { -eval("__webpack_require__(58)('asyncIterator');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM3LnN5bWJvbC5hc3luYy1pdGVyYXRvci5qcz8zOTg5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjIyOC5qcyIsInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4vX3drcy1kZWZpbmUnKSgnYXN5bmNJdGVyYXRvcicpO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM3LnN5bWJvbC5hc3luYy1pdGVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gMjI4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///228\n"); +eval("module.exports = __webpack_require__(229);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvY29yZS1qcy9vYmplY3QvY3JlYXRlLmpzPzlmYzciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiMjI4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9jcmVhdGVcIik7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvY29yZS1qcy9vYmplY3QvY3JlYXRlLmpzXG4vLyBtb2R1bGUgaWQgPSAyMjhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///228\n"); /***/ }), /* 229 */ /***/ (function(module, exports, __webpack_require__) { -eval("__webpack_require__(58)('observable');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM3LnN5bWJvbC5vYnNlcnZhYmxlLmpzPzQxNjciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiMjI5LmpzIiwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnLi9fd2tzLWRlZmluZScpKCdvYnNlcnZhYmxlJyk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczcuc3ltYm9sLm9ic2VydmFibGUuanNcbi8vIG1vZHVsZSBpZCA9IDIyOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///229\n"); +eval("__webpack_require__(230);\nvar $Object = __webpack_require__(1).Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9jcmVhdGUuanM/YTBjZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjIyOS5qcyIsInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2Lm9iamVjdC5jcmVhdGUnKTtcbnZhciAkT2JqZWN0ID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLk9iamVjdDtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlKFAsIEQpIHtcbiAgcmV0dXJuICRPYmplY3QuY3JlYXRlKFAsIEQpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9mbi9vYmplY3QvY3JlYXRlLmpzXG4vLyBtb2R1bGUgaWQgPSAyMjlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///229\n"); /***/ }), /* 230 */ /***/ (function(module, exports, __webpack_require__) { -eval("module.exports = __webpack_require__(231);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvY29yZS1qcy9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZi5qcz9hZTM1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjIzMC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMvbGlicmFyeS9mbi9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZlwiKTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9jb3JlLWpzL29iamVjdC9zZXQtcHJvdG90eXBlLW9mLmpzXG4vLyBtb2R1bGUgaWQgPSAyMzBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///230\n"); +eval("var $export = __webpack_require__(3);\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: __webpack_require__(49) });\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5jcmVhdGUuanM/YjA1ZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsOEJBQThCLGtDQUFzQyIsImZpbGUiOiIyMzAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuLy8gMTkuMS4yLjIgLyAxNS4yLjMuNSBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pXG4kZXhwb3J0KCRleHBvcnQuUywgJ09iamVjdCcsIHsgY3JlYXRlOiByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJykgfSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYub2JqZWN0LmNyZWF0ZS5qc1xuLy8gbW9kdWxlIGlkID0gMjMwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///230\n"); /***/ }), /* 231 */ /***/ (function(module, exports, __webpack_require__) { -eval("__webpack_require__(232);\nmodule.exports = __webpack_require__(2).Object.setPrototypeOf;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9zZXQtcHJvdG90eXBlLW9mLmpzPzhiZjAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSIsImZpbGUiOiIyMzEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3Quc2V0LXByb3RvdHlwZS1vZicpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuT2JqZWN0LnNldFByb3RvdHlwZU9mO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9zZXQtcHJvdG90eXBlLW9mLmpzXG4vLyBtb2R1bGUgaWQgPSAyMzFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///231\n"); +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bigCommerceIcon = void 0;\n\n/* eslint-disable max-len */\nvar bigCommerceIcon = wp.element.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 1024 1024\"\n}, wp.element.createElement(\"path\", {\n d: \"M614.4 675.84c24.576 0 45.056 0 69.632 0 28.672 0 49.152 16.384 53.248 40.96 8.192 32.768-12.288 65.536-49.152 65.536-12.288 0-24.576 0-36.864 0-32.768 0-69.632 0-102.4 0-12.288 0-12.288 0-12.288-12.288 0-28.672 0-57.344 0-86.016 0-8.192 0-12.288 12.288-12.288 20.48 4.096 45.056 4.096 65.536 4.096 0 0 0 0 0 0z\"\n}), wp.element.createElement(\"path\", {\n d: \"M614.4 483.328c20.48 0 45.056 0 65.536 0 36.864 0 57.344 32.768 49.152 65.536-4.096 20.48-20.48 32.768-45.056 36.864-8.192 0-12.288 0-20.48 0-36.864 0-73.728 0-110.592 0-12.288 0-12.288 0-12.288-12.288 0-24.576 0-53.248 0-77.824 0-8.192 0-12.288 12.288-12.288 16.384 0 36.864 0 61.44 0 0 0 0 0 0 0z\"\n}), wp.element.createElement(\"path\", {\n d: \"M634.88 389.12c4.096 0 8.192 0 8.192 0 20.48 0 36.864 0 57.344 0 32.768 0 61.44 8.192 86.016 24.576 49.152 28.672 69.632 81.92 53.248 135.168-12.288 32.768-32.768 57.344-65.536 73.728-4.096 0-4.096 4.096-8.192 8.192 0 0 4.096 4.096 4.096 8.192 45.056 20.48 69.632 57.344 69.632 110.592s-20.48 94.208-65.536 118.784c-24.576 12.288-53.248 16.384-81.92 16.384-86.016 0-167.936 0-253.952 0-12.288 0-12.288 0-12.288-12.288 0-90.112 0-176.128 0-266.24 0-4.096 0-4.096 0-8.192 0 0 0 0-4.096 0 0 4.096-4.096 4.096-4.096 8.192-16.384 12.288-409.6 409.6-409.6 409.6h16.384c8.192 0 12.288 0 20.48 0 323.584 0 651.264 0 974.848 0 0-331.776 0-671.744 0-1003.52-4.096-4.096-376.832 368.64-385.024 376.832z\"\n}));\nexports.bigCommerceIcon = bigCommerceIcon;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdHMvaWNvbi5qcz8yNmQ0Il0sIm5hbWVzIjpbImJpZ0NvbW1lcmNlSWNvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ08sSUFBTUEsa0JBQ1o7QUFBSyxTQUFNLDRCQUFYO0FBQXdDLFNBQU0sTUFBOUM7QUFBcUQsVUFBTyxNQUE1RDtBQUFtRSxXQUFRO0FBQTNFLEdBQ0M7QUFBTSxLQUFFO0FBQVIsRUFERCxFQUVDO0FBQU0sS0FBRTtBQUFSLEVBRkQsRUFHQztBQUFNLEtBQUU7QUFBUixFQUhELENBRE0iLCJmaWxlIjoiMjMxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuZXhwb3J0IGNvbnN0IGJpZ0NvbW1lcmNlSWNvbiA9IChcblx0PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMHB4XCIgaGVpZ2h0PVwiMjBweFwiIHZpZXdCb3g9XCIwIDAgMTAyNCAxMDI0XCI+XG5cdFx0PHBhdGggZD1cIk02MTQuNCA2NzUuODRjMjQuNTc2IDAgNDUuMDU2IDAgNjkuNjMyIDAgMjguNjcyIDAgNDkuMTUyIDE2LjM4NCA1My4yNDggNDAuOTYgOC4xOTIgMzIuNzY4LTEyLjI4OCA2NS41MzYtNDkuMTUyIDY1LjUzNi0xMi4yODggMC0yNC41NzYgMC0zNi44NjQgMC0zMi43NjggMC02OS42MzIgMC0xMDIuNCAwLTEyLjI4OCAwLTEyLjI4OCAwLTEyLjI4OC0xMi4yODggMC0yOC42NzIgMC01Ny4zNDQgMC04Ni4wMTYgMC04LjE5MiAwLTEyLjI4OCAxMi4yODgtMTIuMjg4IDIwLjQ4IDQuMDk2IDQ1LjA1NiA0LjA5NiA2NS41MzYgNC4wOTYgMCAwIDAgMCAwIDB6XCIgLz5cblx0XHQ8cGF0aCBkPVwiTTYxNC40IDQ4My4zMjhjMjAuNDggMCA0NS4wNTYgMCA2NS41MzYgMCAzNi44NjQgMCA1Ny4zNDQgMzIuNzY4IDQ5LjE1MiA2NS41MzYtNC4wOTYgMjAuNDgtMjAuNDggMzIuNzY4LTQ1LjA1NiAzNi44NjQtOC4xOTIgMC0xMi4yODggMC0yMC40OCAwLTM2Ljg2NCAwLTczLjcyOCAwLTExMC41OTIgMC0xMi4yODggMC0xMi4yODggMC0xMi4yODgtMTIuMjg4IDAtMjQuNTc2IDAtNTMuMjQ4IDAtNzcuODI0IDAtOC4xOTIgMC0xMi4yODggMTIuMjg4LTEyLjI4OCAxNi4zODQgMCAzNi44NjQgMCA2MS40NCAwIDAgMCAwIDAgMCAwelwiIC8+XG5cdFx0PHBhdGggZD1cIk02MzQuODggMzg5LjEyYzQuMDk2IDAgOC4xOTIgMCA4LjE5MiAwIDIwLjQ4IDAgMzYuODY0IDAgNTcuMzQ0IDAgMzIuNzY4IDAgNjEuNDQgOC4xOTIgODYuMDE2IDI0LjU3NiA0OS4xNTIgMjguNjcyIDY5LjYzMiA4MS45MiA1My4yNDggMTM1LjE2OC0xMi4yODggMzIuNzY4LTMyLjc2OCA1Ny4zNDQtNjUuNTM2IDczLjcyOC00LjA5NiAwLTQuMDk2IDQuMDk2LTguMTkyIDguMTkyIDAgMCA0LjA5NiA0LjA5NiA0LjA5NiA4LjE5MiA0NS4wNTYgMjAuNDggNjkuNjMyIDU3LjM0NCA2OS42MzIgMTEwLjU5MnMtMjAuNDggOTQuMjA4LTY1LjUzNiAxMTguNzg0Yy0yNC41NzYgMTIuMjg4LTUzLjI0OCAxNi4zODQtODEuOTIgMTYuMzg0LTg2LjAxNiAwLTE2Ny45MzYgMC0yNTMuOTUyIDAtMTIuMjg4IDAtMTIuMjg4IDAtMTIuMjg4LTEyLjI4OCAwLTkwLjExMiAwLTE3Ni4xMjggMC0yNjYuMjQgMC00LjA5NiAwLTQuMDk2IDAtOC4xOTIgMCAwIDAgMC00LjA5NiAwIDAgNC4wOTYtNC4wOTYgNC4wOTYtNC4wOTYgOC4xOTItMTYuMzg0IDEyLjI4OC00MDkuNiA0MDkuNi00MDkuNiA0MDkuNmgxNi4zODRjOC4xOTIgMCAxMi4yODggMCAyMC40OCAwIDMyMy41ODQgMCA2NTEuMjY0IDAgOTc0Ljg0OCAwIDAtMzMxLjc3NiAwLTY3MS43NDQgMC0xMDAzLjUyLTQuMDk2LTQuMDk2LTM3Ni44MzIgMzY4LjY0LTM4NS4wMjQgMzc2LjgzMnpcIiAvPlxuXHQ8L3N2Zz5cbik7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdHMvaWNvbi5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///231\n"); /***/ }), /* 232 */ /***/ (function(module, exports, __webpack_require__) { -eval("// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = __webpack_require__(6);\n$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(233).set });\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5zZXQtcHJvdG90eXBlLW9mLmpzPzdiMTgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBLDhCQUE4QiwrQ0FBOEMiLCJmaWxlIjoiMjMyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gMTkuMS4zLjE5IE9iamVjdC5zZXRQcm90b3R5cGVPZihPLCBwcm90bylcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG4kZXhwb3J0KCRleHBvcnQuUywgJ09iamVjdCcsIHsgc2V0UHJvdG90eXBlT2Y6IHJlcXVpcmUoJy4vX3NldC1wcm90bycpLnNldCB9KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNi5vYmplY3Quc2V0LXByb3RvdHlwZS1vZi5qc1xuLy8gbW9kdWxlIGlkID0gMjMyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///232\n"); +"use strict"; +eval("\n\nvar _interopRequireWildcard = __webpack_require__(8);\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(99));\n\nvar _shortcodeState = _interopRequireDefault(__webpack_require__(4));\n\nvar _ajax = __webpack_require__(35);\n\nvar _i18n = __webpack_require__(24);\n\nvar tools = _interopRequireWildcard(__webpack_require__(12));\n\nvar _inspector = _interopRequireDefault(__webpack_require__(237));\n\n/**\n * @module Edit\n * @description Products block edit method.\n */\nvar getResponse = function getResponse(props, queryObj) {\n var state = {\n currentBlock: props.clientId\n };\n _shortcodeState.default.isFetching = true;\n (0, _ajax.wpAPIProductsPreview)(queryObj).end(function (err, response) {\n _shortcodeState.default.isFetching = false;\n var block = tools.getNodes(\"[data-block=\\\"\".concat(state.currentBlock, \"\\\"]\"), false, document, true)[0];\n var wrapper = tools.getNodes('.bigcommerce-product-preview', false, block, true)[0];\n var fragment = document.createElement('h2');\n\n if (!wrapper) {\n return;\n }\n\n wrapper.innerHTML = '';\n\n if (err) {\n console.error(err);\n fragment.textContent = \"\".concat(_i18n.I18N.messages.ajax_error);\n wrapper.appendChild(fragment);\n return;\n }\n\n if (response.body.rendered.length === 0) {\n fragment.textContent = \"\".concat(_i18n.I18N.messages.no_products);\n wrapper.appendChild(fragment);\n return;\n }\n\n wrapper.insertAdjacentHTML('beforeend', response.body.rendered);\n });\n};\n\nvar editBlock = function editBlock(props) {\n var _props$attributes = props.attributes,\n queryParams = _props$attributes.queryParams,\n shortcode = _props$attributes.shortcode,\n setAttributes = props.setAttributes;\n\n if (shortcode.length === 0) {\n _shortcodeState.default.isFetching = true;\n (0, _ajax.wpAPIShortcodeBuilder)(queryParams).end(function (err, response) {\n _shortcodeState.default.isFetching = false;\n\n if (err) {\n console.error(err);\n }\n\n var data = {\n query_params: (0, _extends2.default)({}, response.body.attributes)\n };\n data.query_params.preview = 1;\n data.query_params.paged = 0;\n setAttributes({\n shortcode: response.body.shortcode,\n queryParams: (0, _extends2.default)({}, data.query_params)\n });\n });\n }\n\n var getQueryParameters = function getQueryParameters(data) {\n if (_shortcodeState.default.isFetching) {\n return;\n }\n\n _shortcodeState.default.isFetching = true;\n data.query_params.preview = 1;\n data.query_params.paged = 0;\n setAttributes({\n shortcode: data.shortcode,\n queryParams: (0, _extends2.default)({}, data.query_params)\n });\n };\n\n getResponse(props, queryParams);\n return [wp.element.createElement(_inspector.default, (0, _extends2.default)({\n setAttributes: setAttributes\n }, props, {\n key: 'inspector',\n handleInsert: getQueryParameters\n })), wp.element.createElement(\"div\", {\n className: props.className,\n key: \"shortcode-preview-wrapper\"\n }, wp.element.createElement(\"div\", {\n className: \"bigcommerce-product-preview\",\n key: \"preview-shortcode\"\n }, wp.element.createElement(\"span\", {\n className: \"spinner is-active\",\n key: \"spinner\"\n })))];\n};\n\nvar _default = editBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdHMvZWRpdC5qcz9mMmY3Il0sIm5hbWVzIjpbImdldFJlc3BvbnNlIiwicHJvcHMiLCJxdWVyeU9iaiIsInN0YXRlIiwiY3VycmVudEJsb2NrIiwiY2xpZW50SWQiLCJpc0ZldGNoaW5nIiwiZW5kIiwiZXJyIiwicmVzcG9uc2UiLCJibG9jayIsInRvb2xzIiwiZ2V0Tm9kZXMiLCJkb2N1bWVudCIsIndyYXBwZXIiLCJmcmFnbWVudCIsImNyZWF0ZUVsZW1lbnQiLCJpbm5lckhUTUwiLCJjb25zb2xlIiwiZXJyb3IiLCJ0ZXh0Q29udGVudCIsIm1lc3NhZ2VzIiwiYWpheF9lcnJvciIsImFwcGVuZENoaWxkIiwiYm9keSIsInJlbmRlcmVkIiwibGVuZ3RoIiwibm9fcHJvZHVjdHMiLCJpbnNlcnRBZGphY2VudEhUTUwiLCJlZGl0QmxvY2siLCJhdHRyaWJ1dGVzIiwicXVlcnlQYXJhbXMiLCJzaG9ydGNvZGUiLCJzZXRBdHRyaWJ1dGVzIiwiZGF0YSIsInF1ZXJ5X3BhcmFtcyIsInByZXZpZXciLCJwYWdlZCIsImdldFF1ZXJ5UGFyYW1ldGVycyIsImtleSIsImhhbmRsZUluc2VydCIsImNsYXNzTmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQU1BOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQVZBOzs7O0FBWUEsSUFBTUEsY0FBYyxTQUFkQSxXQUFjLENBQUNDLEtBQUQsRUFBUUMsUUFBUixFQUFxQjtBQUN4QyxNQUFNQyxRQUFRO0FBQ2JDLGtCQUFjSCxNQUFNSTtBQURQLEdBQWQ7QUFJQSwwQkFBZUMsVUFBZixHQUE0QixJQUE1QjtBQUNBLGtDQUFxQkosUUFBckIsRUFDRUssR0FERixDQUNNLFVBQUNDLEdBQUQsRUFBTUMsUUFBTixFQUFtQjtBQUN2Qiw0QkFBZUgsVUFBZixHQUE0QixLQUE1QjtBQUNBLFFBQU1JLFFBQVFDLE1BQU1DLFFBQU4seUJBQStCVCxNQUFNQyxZQUFyQyxVQUF1RCxLQUF2RCxFQUE4RFMsUUFBOUQsRUFBd0UsSUFBeEUsRUFBOEUsQ0FBOUUsQ0FBZDtBQUNBLFFBQU1DLFVBQVVILE1BQU1DLFFBQU4sQ0FBZSw4QkFBZixFQUErQyxLQUEvQyxFQUFzREYsS0FBdEQsRUFBNkQsSUFBN0QsRUFBbUUsQ0FBbkUsQ0FBaEI7QUFDQSxRQUFNSyxXQUFXRixTQUFTRyxhQUFULENBQXVCLElBQXZCLENBQWpCOztBQUNBLFFBQUksQ0FBQ0YsT0FBTCxFQUFjO0FBQ2I7QUFDQTs7QUFFREEsWUFBUUcsU0FBUixHQUFvQixFQUFwQjs7QUFFQSxRQUFJVCxHQUFKLEVBQVM7QUFDUlUsY0FBUUMsS0FBUixDQUFjWCxHQUFkO0FBQ0FPLGVBQVNLLFdBQVQsYUFBMEIsV0FBS0MsUUFBTCxDQUFjQyxVQUF4QztBQUNBUixjQUFRUyxXQUFSLENBQW9CUixRQUFwQjtBQUNBO0FBQ0E7O0FBRUQsUUFBSU4sU0FBU2UsSUFBVCxDQUFjQyxRQUFkLENBQXVCQyxNQUF2QixLQUFrQyxDQUF0QyxFQUF5QztBQUN4Q1gsZUFBU0ssV0FBVCxhQUEwQixXQUFLQyxRQUFMLENBQWNNLFdBQXhDO0FBQ0FiLGNBQVFTLFdBQVIsQ0FBb0JSLFFBQXBCO0FBQ0E7QUFDQTs7QUFFREQsWUFBUWMsa0JBQVIsQ0FBMkIsV0FBM0IsRUFBd0NuQixTQUFTZSxJQUFULENBQWNDLFFBQXREO0FBQ0EsR0ExQkY7QUEyQkEsQ0FqQ0Q7O0FBbUNBLElBQU1JLFlBQVksU0FBWkEsU0FBWSxDQUFDNUIsS0FBRCxFQUFXO0FBQUEsMEJBQ3NDQSxLQUR0QyxDQUNwQjZCLFVBRG9CO0FBQUEsTUFDTkMsV0FETSxxQkFDTkEsV0FETTtBQUFBLE1BQ09DLFNBRFAscUJBQ09BLFNBRFA7QUFBQSxNQUNvQkMsYUFEcEIsR0FDc0NoQyxLQUR0QyxDQUNvQmdDLGFBRHBCOztBQUc1QixNQUFJRCxVQUFVTixNQUFWLEtBQXFCLENBQXpCLEVBQTRCO0FBQzNCLDRCQUFlcEIsVUFBZixHQUE0QixJQUE1QjtBQUNBLHFDQUFzQnlCLFdBQXRCLEVBQ0V4QixHQURGLENBQ00sVUFBQ0MsR0FBRCxFQUFNQyxRQUFOLEVBQW1CO0FBQ3ZCLDhCQUFlSCxVQUFmLEdBQTRCLEtBQTVCOztBQUVBLFVBQUlFLEdBQUosRUFBUztBQUNSVSxnQkFBUUMsS0FBUixDQUFjWCxHQUFkO0FBQ0E7O0FBRUQsVUFBTTBCLE9BQU87QUFDWkMsaURBQW1CMUIsU0FBU2UsSUFBVCxDQUFjTSxVQUFqQztBQURZLE9BQWI7QUFHQUksV0FBS0MsWUFBTCxDQUFrQkMsT0FBbEIsR0FBNEIsQ0FBNUI7QUFDQUYsV0FBS0MsWUFBTCxDQUFrQkUsS0FBbEIsR0FBMEIsQ0FBMUI7QUFFQUosb0JBQWM7QUFDYkQsbUJBQVd2QixTQUFTZSxJQUFULENBQWNRLFNBRFo7QUFFYkQsZ0RBQWtCRyxLQUFLQyxZQUF2QjtBQUZhLE9BQWQ7QUFJQSxLQWxCRjtBQW1CQTs7QUFFRCxNQUFNRyxxQkFBcUIsU0FBckJBLGtCQUFxQixDQUFDSixJQUFELEVBQVU7QUFDcEMsUUFBSSx3QkFBZTVCLFVBQW5CLEVBQStCO0FBQzlCO0FBQ0E7O0FBRUQsNEJBQWVBLFVBQWYsR0FBNEIsSUFBNUI7QUFFQTRCLFNBQUtDLFlBQUwsQ0FBa0JDLE9BQWxCLEdBQTRCLENBQTVCO0FBQ0FGLFNBQUtDLFlBQUwsQ0FBa0JFLEtBQWxCLEdBQTBCLENBQTFCO0FBRUFKLGtCQUFjO0FBQ2JELGlCQUFXRSxLQUFLRixTQURIO0FBRWJELDhDQUFrQkcsS0FBS0MsWUFBdkI7QUFGYSxLQUFkO0FBSUEsR0FkRDs7QUFnQkFuQyxjQUFZQyxLQUFaLEVBQW1COEIsV0FBbkI7QUFFQSxTQUFPLENBQ047QUFBaUJFO0FBQWpCLEtBQW1DaEMsS0FBbkM7QUFBMENzQyxTQUFLLFdBQS9DO0FBQTREQyxrQkFBY0Y7QUFBMUUsS0FETSxFQUVOO0FBQ0MsZUFBV3JDLE1BQU13QyxTQURsQjtBQUVDLFNBQUk7QUFGTCxLQUlDO0FBQ0MsZUFBVSw2QkFEWDtBQUVDLFNBQUk7QUFGTCxLQUlDO0FBQ0MsZUFBVSxtQkFEWDtBQUVDLFNBQUk7QUFGTCxJQUpELENBSkQsQ0FGTSxDQUFQO0FBaUJBLENBN0REOztlQStEZVosUyIsImZpbGUiOiIyMzIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgRWRpdFxuICogQGRlc2NyaXB0aW9uIFByb2R1Y3RzIGJsb2NrIGVkaXQgbWV0aG9kLlxuICovXG5cblxuaW1wb3J0IHNob3J0Y29kZVN0YXRlIGZyb20gJy4uLy4uLy4uL2NvbmZpZy9zaG9ydGNvZGUtc3RhdGUnO1xuaW1wb3J0IHsgd3BBUElQcm9kdWN0c1ByZXZpZXcsIHdwQVBJU2hvcnRjb2RlQnVpbGRlciB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL2FqYXgnO1xuaW1wb3J0IHsgSTE4TiB9IGZyb20gJy4uLy4uLy4uL2NvbmZpZy9pMThuJztcbmltcG9ydCAqIGFzIHRvb2xzIGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL3Rvb2xzJztcbmltcG9ydCBJbnNwZWN0b3IgZnJvbSAnLi9pbnNwZWN0b3InO1xuXG5jb25zdCBnZXRSZXNwb25zZSA9IChwcm9wcywgcXVlcnlPYmopID0+IHtcblx0Y29uc3Qgc3RhdGUgPSB7XG5cdFx0Y3VycmVudEJsb2NrOiBwcm9wcy5jbGllbnRJZCxcblx0fTtcblxuXHRzaG9ydGNvZGVTdGF0ZS5pc0ZldGNoaW5nID0gdHJ1ZTtcblx0d3BBUElQcm9kdWN0c1ByZXZpZXcocXVlcnlPYmopXG5cdFx0LmVuZCgoZXJyLCByZXNwb25zZSkgPT4ge1xuXHRcdFx0c2hvcnRjb2RlU3RhdGUuaXNGZXRjaGluZyA9IGZhbHNlO1xuXHRcdFx0Y29uc3QgYmxvY2sgPSB0b29scy5nZXROb2RlcyhgW2RhdGEtYmxvY2s9XCIke3N0YXRlLmN1cnJlbnRCbG9ja31cIl1gLCBmYWxzZSwgZG9jdW1lbnQsIHRydWUpWzBdO1xuXHRcdFx0Y29uc3Qgd3JhcHBlciA9IHRvb2xzLmdldE5vZGVzKCcuYmlnY29tbWVyY2UtcHJvZHVjdC1wcmV2aWV3JywgZmFsc2UsIGJsb2NrLCB0cnVlKVswXTtcblx0XHRcdGNvbnN0IGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaDInKTtcblx0XHRcdGlmICghd3JhcHBlcikge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdHdyYXBwZXIuaW5uZXJIVE1MID0gJyc7XG5cblx0XHRcdGlmIChlcnIpIHtcblx0XHRcdFx0Y29uc29sZS5lcnJvcihlcnIpO1xuXHRcdFx0XHRmcmFnbWVudC50ZXh0Q29udGVudCA9IGAke0kxOE4ubWVzc2FnZXMuYWpheF9lcnJvcn1gO1xuXHRcdFx0XHR3cmFwcGVyLmFwcGVuZENoaWxkKGZyYWdtZW50KTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAocmVzcG9uc2UuYm9keS5yZW5kZXJlZC5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0ZnJhZ21lbnQudGV4dENvbnRlbnQgPSBgJHtJMThOLm1lc3NhZ2VzLm5vX3Byb2R1Y3RzfWA7XG5cdFx0XHRcdHdyYXBwZXIuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdHdyYXBwZXIuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmVlbmQnLCByZXNwb25zZS5ib2R5LnJlbmRlcmVkKTtcblx0XHR9KTtcbn07XG5cbmNvbnN0IGVkaXRCbG9jayA9IChwcm9wcykgPT4ge1xuXHRjb25zdCB7IGF0dHJpYnV0ZXM6IHsgcXVlcnlQYXJhbXMsIHNob3J0Y29kZSB9LCBzZXRBdHRyaWJ1dGVzIH0gPSBwcm9wcztcblxuXHRpZiAoc2hvcnRjb2RlLmxlbmd0aCA9PT0gMCkge1xuXHRcdHNob3J0Y29kZVN0YXRlLmlzRmV0Y2hpbmcgPSB0cnVlO1xuXHRcdHdwQVBJU2hvcnRjb2RlQnVpbGRlcihxdWVyeVBhcmFtcylcblx0XHRcdC5lbmQoKGVyciwgcmVzcG9uc2UpID0+IHtcblx0XHRcdFx0c2hvcnRjb2RlU3RhdGUuaXNGZXRjaGluZyA9IGZhbHNlO1xuXG5cdFx0XHRcdGlmIChlcnIpIHtcblx0XHRcdFx0XHRjb25zb2xlLmVycm9yKGVycik7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjb25zdCBkYXRhID0ge1xuXHRcdFx0XHRcdHF1ZXJ5X3BhcmFtczogeyAuLi5yZXNwb25zZS5ib2R5LmF0dHJpYnV0ZXMgfSxcblx0XHRcdFx0fTtcblx0XHRcdFx0ZGF0YS5xdWVyeV9wYXJhbXMucHJldmlldyA9IDE7XG5cdFx0XHRcdGRhdGEucXVlcnlfcGFyYW1zLnBhZ2VkID0gMDtcblxuXHRcdFx0XHRzZXRBdHRyaWJ1dGVzKHtcblx0XHRcdFx0XHRzaG9ydGNvZGU6IHJlc3BvbnNlLmJvZHkuc2hvcnRjb2RlLFxuXHRcdFx0XHRcdHF1ZXJ5UGFyYW1zOiB7IC4uLmRhdGEucXVlcnlfcGFyYW1zIH0sXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdH1cblxuXHRjb25zdCBnZXRRdWVyeVBhcmFtZXRlcnMgPSAoZGF0YSkgPT4ge1xuXHRcdGlmIChzaG9ydGNvZGVTdGF0ZS5pc0ZldGNoaW5nKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0c2hvcnRjb2RlU3RhdGUuaXNGZXRjaGluZyA9IHRydWU7XG5cblx0XHRkYXRhLnF1ZXJ5X3BhcmFtcy5wcmV2aWV3ID0gMTtcblx0XHRkYXRhLnF1ZXJ5X3BhcmFtcy5wYWdlZCA9IDA7XG5cblx0XHRzZXRBdHRyaWJ1dGVzKHtcblx0XHRcdHNob3J0Y29kZTogZGF0YS5zaG9ydGNvZGUsXG5cdFx0XHRxdWVyeVBhcmFtczogeyAuLi5kYXRhLnF1ZXJ5X3BhcmFtcyB9LFxuXHRcdH0pO1xuXHR9O1xuXG5cdGdldFJlc3BvbnNlKHByb3BzLCBxdWVyeVBhcmFtcyk7XG5cblx0cmV0dXJuIFtcblx0XHQ8SW5zcGVjdG9yIHsuLi57IHNldEF0dHJpYnV0ZXMsIC4uLnByb3BzLCBrZXk6ICdpbnNwZWN0b3InLCBoYW5kbGVJbnNlcnQ6IGdldFF1ZXJ5UGFyYW1ldGVycyB9fSAvPixcblx0XHQ8ZGl2XG5cdFx0XHRjbGFzc05hbWU9e3Byb3BzLmNsYXNzTmFtZX1cblx0XHRcdGtleT1cInNob3J0Y29kZS1wcmV2aWV3LXdyYXBwZXJcIlxuXHRcdD5cblx0XHRcdDxkaXZcblx0XHRcdFx0Y2xhc3NOYW1lPVwiYmlnY29tbWVyY2UtcHJvZHVjdC1wcmV2aWV3XCJcblx0XHRcdFx0a2V5PVwicHJldmlldy1zaG9ydGNvZGVcIlxuXHRcdFx0PlxuXHRcdFx0XHQ8c3BhblxuXHRcdFx0XHRcdGNsYXNzTmFtZT1cInNwaW5uZXIgaXMtYWN0aXZlXCJcblx0XHRcdFx0XHRrZXk9XCJzcGlubmVyXCJcblx0XHRcdFx0Lz5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2Pixcblx0XTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGVkaXRCbG9jaztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vZ3V0ZW5iZXJnL2Jsb2Nrcy9wcm9kdWN0cy9lZGl0LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///232\n"); /***/ }), /* 233 */ /***/ (function(module, exports, __webpack_require__) { -eval("// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = __webpack_require__(17);\nvar anObject = __webpack_require__(14);\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = __webpack_require__(41)(Function.call, __webpack_require__(39).f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NldC1wcm90by5qcz82NWE0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtEQUFrRDtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxZQUFZLGNBQWM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxHQUFHO0FBQ1I7QUFDQSIsImZpbGUiOiIyMzMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBXb3JrcyB3aXRoIF9fcHJvdG9fXyBvbmx5LiBPbGQgdjggY2FuJ3Qgd29yayB3aXRoIG51bGwgcHJvdG8gb2JqZWN0cy5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvICovXG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIGNoZWNrID0gZnVuY3Rpb24gKE8sIHByb3RvKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBpZiAoIWlzT2JqZWN0KHByb3RvKSAmJiBwcm90byAhPT0gbnVsbCkgdGhyb3cgVHlwZUVycm9yKHByb3RvICsgXCI6IGNhbid0IHNldCBhcyBwcm90b3R5cGUhXCIpO1xufTtcbm1vZHVsZS5leHBvcnRzID0ge1xuICBzZXQ6IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCAoJ19fcHJvdG9fXycgaW4ge30gPyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgZnVuY3Rpb24gKHRlc3QsIGJ1Z2d5LCBzZXQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNldCA9IHJlcXVpcmUoJy4vX2N0eCcpKEZ1bmN0aW9uLmNhbGwsIHJlcXVpcmUoJy4vX29iamVjdC1nb3BkJykuZihPYmplY3QucHJvdG90eXBlLCAnX19wcm90b19fJykuc2V0LCAyKTtcbiAgICAgICAgc2V0KHRlc3QsIFtdKTtcbiAgICAgICAgYnVnZ3kgPSAhKHRlc3QgaW5zdGFuY2VvZiBBcnJheSk7XG4gICAgICB9IGNhdGNoIChlKSB7IGJ1Z2d5ID0gdHJ1ZTsgfVxuICAgICAgcmV0dXJuIGZ1bmN0aW9uIHNldFByb3RvdHlwZU9mKE8sIHByb3RvKSB7XG4gICAgICAgIGNoZWNrKE8sIHByb3RvKTtcbiAgICAgICAgaWYgKGJ1Z2d5KSBPLl9fcHJvdG9fXyA9IHByb3RvO1xuICAgICAgICBlbHNlIHNldChPLCBwcm90byk7XG4gICAgICAgIHJldHVybiBPO1xuICAgICAgfTtcbiAgICB9KHt9LCBmYWxzZSkgOiB1bmRlZmluZWQpLFxuICBjaGVjazogY2hlY2tcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc2V0LXByb3RvLmpzXG4vLyBtb2R1bGUgaWQgPSAyMzNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///233\n"); +eval("module.exports = __webpack_require__(234);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvY29yZS1qcy9vYmplY3QvYXNzaWduLmpzPzE2NjMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiMjMzLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9hc3NpZ25cIik7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvY29yZS1qcy9vYmplY3QvYXNzaWduLmpzXG4vLyBtb2R1bGUgaWQgPSAyMzNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///233\n"); /***/ }), /* 234 */ /***/ (function(module, exports, __webpack_require__) { -eval("module.exports = __webpack_require__(235);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvY29yZS1qcy9vYmplY3QvY3JlYXRlLmpzPzlmYzciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiMjM0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9jcmVhdGVcIik7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvY29yZS1qcy9vYmplY3QvY3JlYXRlLmpzXG4vLyBtb2R1bGUgaWQgPSAyMzRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///234\n"); +eval("__webpack_require__(235);\nmodule.exports = __webpack_require__(1).Object.assign;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9hc3NpZ24uanM/NTc3YiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBIiwiZmlsZSI6IjIzNC5qcyIsInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2Lm9iamVjdC5hc3NpZ24nKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLk9iamVjdC5hc3NpZ247XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2Fzc2lnbi5qc1xuLy8gbW9kdWxlIGlkID0gMjM0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///234\n"); /***/ }), /* 235 */ /***/ (function(module, exports, __webpack_require__) { -eval("__webpack_require__(236);\nvar $Object = __webpack_require__(2).Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9jcmVhdGUuanM/YTBjZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjIzNS5qcyIsInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2Lm9iamVjdC5jcmVhdGUnKTtcbnZhciAkT2JqZWN0ID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLk9iamVjdDtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlKFAsIEQpIHtcbiAgcmV0dXJuICRPYmplY3QuY3JlYXRlKFAsIEQpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9mbi9vYmplY3QvY3JlYXRlLmpzXG4vLyBtb2R1bGUgaWQgPSAyMzVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///235\n"); +eval("// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(3);\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(236) });\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5hc3NpZ24uanM/NDc4YyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBOztBQUVBLDBDQUEwQyxtQ0FBc0MiLCJmaWxlIjoiMjM1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gMTkuMS4zLjEgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHNvdXJjZSlcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG5cbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GLCAnT2JqZWN0JywgeyBhc3NpZ246IHJlcXVpcmUoJy4vX29iamVjdC1hc3NpZ24nKSB9KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNi5vYmplY3QuYXNzaWduLmpzXG4vLyBtb2R1bGUgaWQgPSAyMzVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///235\n"); /***/ }), /* 236 */ /***/ (function(module, exports, __webpack_require__) { -eval("var $export = __webpack_require__(6);\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: __webpack_require__(47) });\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5jcmVhdGUuanM/YjA1ZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsOEJBQThCLGtDQUFzQyIsImZpbGUiOiIyMzYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuLy8gMTkuMS4yLjIgLyAxNS4yLjMuNSBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pXG4kZXhwb3J0KCRleHBvcnQuUywgJ09iamVjdCcsIHsgY3JlYXRlOiByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJykgfSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYub2JqZWN0LmNyZWF0ZS5qc1xuLy8gbW9kdWxlIGlkID0gMjM2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///236\n"); +"use strict"; +eval("\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(22);\nvar gOPS = __webpack_require__(62);\nvar pIE = __webpack_require__(19);\nvar toObject = __webpack_require__(34);\nvar IObject = __webpack_require__(63);\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(15)(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1hc3NpZ24uanM/NGU4ZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MsVUFBVSxFQUFFO0FBQ2hELG1CQUFtQixzQ0FBc0M7QUFDekQsQ0FBQyxxQ0FBcUM7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILENBQUMiLCJmaWxlIjoiMjM2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuLy8gMTkuMS4yLjEgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHNvdXJjZSwgLi4uKVxudmFyIGdldEtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cycpO1xudmFyIGdPUFMgPSByZXF1aXJlKCcuL19vYmplY3QtZ29wcycpO1xudmFyIHBJRSA9IHJlcXVpcmUoJy4vX29iamVjdC1waWUnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4vX3RvLW9iamVjdCcpO1xudmFyIElPYmplY3QgPSByZXF1aXJlKCcuL19pb2JqZWN0Jyk7XG52YXIgJGFzc2lnbiA9IE9iamVjdC5hc3NpZ247XG5cbi8vIHNob3VsZCB3b3JrIHdpdGggc3ltYm9scyBhbmQgc2hvdWxkIGhhdmUgZGV0ZXJtaW5pc3RpYyBwcm9wZXJ0eSBvcmRlciAoVjggYnVnKVxubW9kdWxlLmV4cG9ydHMgPSAhJGFzc2lnbiB8fCByZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uICgpIHtcbiAgdmFyIEEgPSB7fTtcbiAgdmFyIEIgPSB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gIHZhciBTID0gU3ltYm9sKCk7XG4gIHZhciBLID0gJ2FiY2RlZmdoaWprbG1ub3BxcnN0JztcbiAgQVtTXSA9IDc7XG4gIEsuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24gKGspIHsgQltrXSA9IGs7IH0pO1xuICByZXR1cm4gJGFzc2lnbih7fSwgQSlbU10gIT0gNyB8fCBPYmplY3Qua2V5cygkYXNzaWduKHt9LCBCKSkuam9pbignJykgIT0gSztcbn0pID8gZnVuY3Rpb24gYXNzaWduKHRhcmdldCwgc291cmNlKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgdmFyIFQgPSB0b09iamVjdCh0YXJnZXQpO1xuICB2YXIgYUxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gIHZhciBpbmRleCA9IDE7XG4gIHZhciBnZXRTeW1ib2xzID0gZ09QUy5mO1xuICB2YXIgaXNFbnVtID0gcElFLmY7XG4gIHdoaWxlIChhTGVuID4gaW5kZXgpIHtcbiAgICB2YXIgUyA9IElPYmplY3QoYXJndW1lbnRzW2luZGV4KytdKTtcbiAgICB2YXIga2V5cyA9IGdldFN5bWJvbHMgPyBnZXRLZXlzKFMpLmNvbmNhdChnZXRTeW1ib2xzKFMpKSA6IGdldEtleXMoUyk7XG4gICAgdmFyIGxlbmd0aCA9IGtleXMubGVuZ3RoO1xuICAgIHZhciBqID0gMDtcbiAgICB2YXIga2V5O1xuICAgIHdoaWxlIChsZW5ndGggPiBqKSBpZiAoaXNFbnVtLmNhbGwoUywga2V5ID0ga2V5c1tqKytdKSkgVFtrZXldID0gU1trZXldO1xuICB9IHJldHVybiBUO1xufSA6ICRhc3NpZ247XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWFzc2lnbi5qc1xuLy8gbW9kdWxlIGlkID0gMjM2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///236\n"); /***/ }), /* 237 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * @module Save\n * @description Products block save method.\n */\nvar saveBlock = function saveBlock(props) {\n var shortcode = props.attributes.shortcode;\n return wp.element.createElement(\"div\", {\n className: props.className\n }, shortcode);\n};\n\nvar _default = saveBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdHMvc2F2ZS5qcz83YTg4Il0sIm5hbWVzIjpbInNhdmVCbG9jayIsInByb3BzIiwic2hvcnRjb2RlIiwiYXR0cmlidXRlcyIsImNsYXNzTmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBS0EsSUFBTUEsWUFBWSxTQUFaQSxTQUFZLENBQUNDLEtBQUQsRUFBVztBQUFBLE1BQ3BCQyxTQURvQixHQUNORCxNQUFNRSxVQURBLENBQ3BCRCxTQURvQjtBQUk1QixTQUNDO0FBQ0MsZUFBV0QsTUFBTUc7QUFEbEIsS0FHR0YsU0FISCxDQUREO0FBT0EsQ0FYRDs7ZUFhZUYsUyIsImZpbGUiOiIyMzcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgU2F2ZVxuICogQGRlc2NyaXB0aW9uIFByb2R1Y3RzIGJsb2NrIHNhdmUgbWV0aG9kLlxuICovXG5cbmNvbnN0IHNhdmVCbG9jayA9IChwcm9wcykgPT4ge1xuXHRjb25zdCB7IHNob3J0Y29kZSB9ID0gcHJvcHMuYXR0cmlidXRlcztcblxuXG5cdHJldHVybiAoXG5cdFx0PGRpdlxuXHRcdFx0Y2xhc3NOYW1lPXtwcm9wcy5jbGFzc05hbWV9XG5cdFx0PlxuXHRcdFx0eyBzaG9ydGNvZGUgfVxuXHRcdDwvZGl2PlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgc2F2ZUJsb2NrO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL2pzL3NyYy9hZG1pbi9ndXRlbmJlcmcvYmxvY2tzL3Byb2R1Y3RzL3NhdmUuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///237\n"); +eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _getPrototypeOf = _interopRequireDefault(__webpack_require__(36));\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(25));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(59));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(37));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(38));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(100));\n\nvar _gutenbergSettings = __webpack_require__(18);\n\nvar _events = __webpack_require__(13);\n\nvar _shortcodeState = _interopRequireDefault(__webpack_require__(4));\n\n/**\n * @module Products Block Inspector\n */\nvar Component = wp.element.Component;\nvar InspectorControls = wp.editor.InspectorControls;\nvar _wp$components = wp.components,\n PanelRow = _wp$components.PanelRow,\n PanelBody = _wp$components.PanelBody,\n Button = _wp$components.Button;\n\nvar Inspector =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(Inspector, _Component);\n\n function Inspector() {\n var _ref;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, Inspector);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_ref = Inspector.__proto__ || (0, _getPrototypeOf.default)(Inspector)).call.apply(_ref, [this].concat(args)));\n _this.triggerDialog = _this.triggerDialog.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n (0, _createClass2.default)(Inspector, [{\n key: \"triggerDialog\",\n value: function triggerDialog(e) {\n var target = e.target;\n var queryParams = this.props.attributes.queryParams;\n _shortcodeState.default.insertCallback = this.props.handleInsert;\n (0, _events.trigger)({\n event: 'bigcommerce/init_shortcode_ui',\n data: {\n target: target,\n queryParams: queryParams\n },\n native: false\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n return wp.element.createElement(InspectorControls, null, wp.element.createElement(PanelBody, {\n title: _gutenbergSettings.GUTENBERG_PRODUCTS.inspector.title,\n initialOpen: true\n }, wp.element.createElement(PanelRow, null, wp.element.createElement(Button, {\n isPrimary: true,\n type: \"button\",\n className: \"button bc-add-products\",\n \"data-js\": \"bc-add-products\",\n \"data-content\": \"bc-shortcode-ui\",\n onClick: this.triggerDialog\n }, _gutenbergSettings.GUTENBERG_PRODUCTS.inspector.button_title))));\n }\n }]);\n return Inspector;\n}(Component);\n\nexports.default = Inspector;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdHMvaW5zcGVjdG9yLmpzP2JmZjMiXSwibmFtZXMiOlsiQ29tcG9uZW50Iiwid3AiLCJlbGVtZW50IiwiSW5zcGVjdG9yQ29udHJvbHMiLCJlZGl0b3IiLCJjb21wb25lbnRzIiwiUGFuZWxSb3ciLCJQYW5lbEJvZHkiLCJCdXR0b24iLCJJbnNwZWN0b3IiLCJhcmdzIiwidHJpZ2dlckRpYWxvZyIsImJpbmQiLCJlIiwidGFyZ2V0IiwicXVlcnlQYXJhbXMiLCJwcm9wcyIsImF0dHJpYnV0ZXMiLCJpbnNlcnRDYWxsYmFjayIsImhhbmRsZUluc2VydCIsImV2ZW50IiwiZGF0YSIsIm5hdGl2ZSIsImluc3BlY3RvciIsInRpdGxlIiwiYnV0dG9uX3RpdGxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQTs7QUFDQTs7QUFDQTs7QUFMQTs7O0lBT1FBLFMsR0FBY0MsR0FBR0MsTyxDQUFqQkYsUztJQUNBRyxpQixHQUFzQkYsR0FBR0csTSxDQUF6QkQsaUI7cUJBQ2dDRixHQUFHSSxVO0lBQW5DQyxRLGtCQUFBQSxRO0lBQVVDLFMsa0JBQUFBLFM7SUFBV0MsTSxrQkFBQUEsTTs7SUFFUkMsUzs7Ozs7QUFFcEIsdUJBQXFCO0FBQUE7O0FBQUE7O0FBQUE7O0FBQUEsc0NBQU5DLElBQU07QUFBTkEsVUFBTTtBQUFBOztBQUNwQixrS0FBU0EsSUFBVDtBQUNBLFVBQUtDLGFBQUwsR0FBcUIsTUFBS0EsYUFBTCxDQUFtQkMsSUFBbkIsNkNBQXJCO0FBRm9CO0FBR3BCOzs7O2tDQUVhQyxDLEVBQUc7QUFBQSxVQUNSQyxNQURRLEdBQ0dELENBREgsQ0FDUkMsTUFEUTtBQUVoQixVQUFNQyxjQUFjLEtBQUtDLEtBQUwsQ0FBV0MsVUFBWCxDQUFzQkYsV0FBMUM7QUFDQSw4QkFBZUcsY0FBZixHQUFnQyxLQUFLRixLQUFMLENBQVdHLFlBQTNDO0FBRUEsMkJBQVE7QUFBRUMsZUFBTywrQkFBVDtBQUEwQ0MsY0FBTTtBQUFFUCx3QkFBRjtBQUFVQztBQUFWLFNBQWhEO0FBQXlFTyxnQkFBUTtBQUFqRixPQUFSO0FBQ0E7Ozs2QkFFUTtBQUNSLGFBQ0MseUJBQUMsaUJBQUQsUUFDQyx5QkFBQyxTQUFEO0FBQ0MsZUFBTyxzQ0FBbUJDLFNBQW5CLENBQTZCQyxLQURyQztBQUVDO0FBRkQsU0FJQyx5QkFBQyxRQUFELFFBQ0MseUJBQUMsTUFBRDtBQUNDLHVCQUREO0FBRUMsY0FBSyxRQUZOO0FBR0MsbUJBQVUsd0JBSFg7QUFJQyxtQkFBUSxpQkFKVDtBQUtDLHdCQUFhLGlCQUxkO0FBTUMsaUJBQVMsS0FBS2I7QUFOZixTQVFFLHNDQUFtQlksU0FBbkIsQ0FBNkJFLFlBUi9CLENBREQsQ0FKRCxDQURELENBREQ7QUFxQkE7OztFQXJDcUN6QixTIiwiZmlsZSI6IjIzNy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBQcm9kdWN0cyBCbG9jayBJbnNwZWN0b3JcbiAqL1xuaW1wb3J0IHsgR1VURU5CRVJHX1BST0RVQ1RTIH0gZnJvbSAnLi4vLi4vY29uZmlnL2d1dGVuYmVyZy1zZXR0aW5ncyc7XG5pbXBvcnQgeyB0cmlnZ2VyIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvZXZlbnRzJztcbmltcG9ydCBzaG9ydGNvZGVTdGF0ZSBmcm9tICcuLi8uLi8uLi9jb25maWcvc2hvcnRjb2RlLXN0YXRlJztcblxuY29uc3QgeyBDb21wb25lbnQgfSA9IHdwLmVsZW1lbnQ7XG5jb25zdCB7IEluc3BlY3RvckNvbnRyb2xzIH0gPSB3cC5lZGl0b3I7XG5jb25zdCB7IFBhbmVsUm93LCBQYW5lbEJvZHksIEJ1dHRvbiB9ID0gd3AuY29tcG9uZW50cztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW5zcGVjdG9yIGV4dGVuZHMgQ29tcG9uZW50IHtcblxuXHRjb25zdHJ1Y3RvciguLi5hcmdzKSB7XG5cdFx0c3VwZXIoLi4uYXJncyk7XG5cdFx0dGhpcy50cmlnZ2VyRGlhbG9nID0gdGhpcy50cmlnZ2VyRGlhbG9nLmJpbmQodGhpcyk7XG5cdH1cblxuXHR0cmlnZ2VyRGlhbG9nKGUpIHtcblx0XHRjb25zdCB7IHRhcmdldCB9ID0gZTtcblx0XHRjb25zdCBxdWVyeVBhcmFtcyA9IHRoaXMucHJvcHMuYXR0cmlidXRlcy5xdWVyeVBhcmFtcztcblx0XHRzaG9ydGNvZGVTdGF0ZS5pbnNlcnRDYWxsYmFjayA9IHRoaXMucHJvcHMuaGFuZGxlSW5zZXJ0O1xuXG5cdFx0dHJpZ2dlcih7IGV2ZW50OiAnYmlnY29tbWVyY2UvaW5pdF9zaG9ydGNvZGVfdWknLCBkYXRhOiB7IHRhcmdldCwgcXVlcnlQYXJhbXMgfSwgbmF0aXZlOiBmYWxzZSB9KTtcblx0fVxuXG5cdHJlbmRlcigpIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0PEluc3BlY3RvckNvbnRyb2xzPlxuXHRcdFx0XHQ8UGFuZWxCb2R5XG5cdFx0XHRcdFx0dGl0bGU9e0dVVEVOQkVSR19QUk9EVUNUUy5pbnNwZWN0b3IudGl0bGV9XG5cdFx0XHRcdFx0aW5pdGlhbE9wZW5cblx0XHRcdFx0PlxuXHRcdFx0XHRcdDxQYW5lbFJvdz5cblx0XHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdFx0aXNQcmltYXJ5XG5cdFx0XHRcdFx0XHRcdHR5cGU9XCJidXR0b25cIlxuXHRcdFx0XHRcdFx0XHRjbGFzc05hbWU9XCJidXR0b24gYmMtYWRkLXByb2R1Y3RzXCJcblx0XHRcdFx0XHRcdFx0ZGF0YS1qcz1cImJjLWFkZC1wcm9kdWN0c1wiXG5cdFx0XHRcdFx0XHRcdGRhdGEtY29udGVudD1cImJjLXNob3J0Y29kZS11aVwiXG5cdFx0XHRcdFx0XHRcdG9uQ2xpY2s9e3RoaXMudHJpZ2dlckRpYWxvZ31cblx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0e0dVVEVOQkVSR19QUk9EVUNUUy5pbnNwZWN0b3IuYnV0dG9uX3RpdGxlfVxuXHRcdFx0XHRcdFx0PC9CdXR0b24+XG5cdFx0XHRcdFx0PC9QYW5lbFJvdz5cblx0XHRcdFx0PC9QYW5lbEJvZHk+XG5cdFx0XHQ8L0luc3BlY3RvckNvbnRyb2xzPlxuXHRcdCk7XG5cdH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vZ3V0ZW5iZXJnL2Jsb2Nrcy9wcm9kdWN0cy9pbnNwZWN0b3IuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///237\n"); /***/ }), /* 238 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(5);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\nvar _edit = _interopRequireDefault(__webpack_require__(239));\n\nvar _save = _interopRequireDefault(__webpack_require__(240));\n\n/**\n * @module Gutenberg\n * @description Register the Cart Gutenberg block\n */\n\n/**\n * @function registerBlock\n * @description register the block\n */\nvar _default = {\n id: _gutenbergSettings.GUTENBERG_CART.name,\n title: _gutenbergSettings.GUTENBERG_CART.title,\n\n /**\n * An icon property should be specified to make it easier to identify a block.\n * These can be any of WordPress’ Dashicons, or a custom svg element.\n * @see https://developer.wordpress.org/resource/dashicons/\n */\n icon: 'cart',\n // TODO: cart icon\n\n /**\n * Blocks are grouped into categories to help with browsing and discovery.\n * The categories provided by core are common, embed, formatting, layout, and widgets.\n */\n category: _gutenbergSettings.GUTENBERG_CART.category,\n\n /**\n * Additional keywords to surface this block via search input. Limited to 3.\n */\n keywords: _gutenbergSettings.GUTENBERG_CART.keywords,\n\n /**\n * Optional block extended support features.\n */\n supports: {\n // Removes support for an HTML mode.\n html: false\n },\n\n /**\n * Attributes used to save and edit our block.\n */\n attributes: {\n shortcode: {\n type: 'string',\n default: ''\n }\n },\n\n /**\n * The edit function describes the structure of the block in the context of the editor.\n * This represents what the editor will render when the block is used.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#edit\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n edit: _edit.default,\n\n /**\n * The save function defines the way in which the different attributes should be combined\n * into the final markup, which is then serialized by Gutenberg into `post_content`.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#save\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n save: _save.default\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvY2FydC9jYXJ0LmpzPzIyYTEiXSwibmFtZXMiOlsiaWQiLCJuYW1lIiwidGl0bGUiLCJpY29uIiwiY2F0ZWdvcnkiLCJrZXl3b3JkcyIsInN1cHBvcnRzIiwiaHRtbCIsImF0dHJpYnV0ZXMiLCJzaG9ydGNvZGUiLCJ0eXBlIiwiZGVmYXVsdCIsImVkaXQiLCJzYXZlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUtBOztBQUNBOztBQUNBOztBQVBBOzs7OztBQVNBOzs7O2VBS2U7QUFDZEEsTUFBSSxrQ0FBTUMsSUFESTtBQUVkQyxTQUFPLGtDQUFNQSxLQUZDOztBQUlkOzs7OztBQUtBQyxRQUFNLE1BVFE7QUFTQTs7QUFFZDs7OztBQUlBQyxZQUFVLGtDQUFNQSxRQWZGOztBQWlCZDs7O0FBR0FDLFlBQVUsa0NBQU1BLFFBcEJGOztBQXNCZDs7O0FBR0FDLFlBQVU7QUFDVDtBQUNBQyxVQUFNO0FBRkcsR0F6Qkk7O0FBOEJkOzs7QUFHQUMsY0FBWTtBQUNYQyxlQUFXO0FBQ1ZDLFlBQU0sUUFESTtBQUVWQyxlQUFTO0FBRkM7QUFEQSxHQWpDRTs7QUF3Q2Q7Ozs7Ozs7O0FBUUFDLHFCQWhEYzs7QUFrRGQ7Ozs7Ozs7O0FBUUFDO0FBMURjLEMiLCJmaWxlIjoiMjM4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIEd1dGVuYmVyZ1xuICogQGRlc2NyaXB0aW9uIFJlZ2lzdGVyIHRoZSBDYXJ0IEd1dGVuYmVyZyBibG9ja1xuICovXG5cbmltcG9ydCB7IEdVVEVOQkVSR19DQVJUIGFzIEJMT0NLIH0gZnJvbSAnLi4vLi4vY29uZmlnL2d1dGVuYmVyZy1zZXR0aW5ncyc7XG5pbXBvcnQgZWRpdEJsb2NrIGZyb20gJy4vZWRpdCc7XG5pbXBvcnQgc2F2ZUJsb2NrIGZyb20gJy4vc2F2ZSc7XG5cbi8qKlxuICogQGZ1bmN0aW9uIHJlZ2lzdGVyQmxvY2tcbiAqIEBkZXNjcmlwdGlvbiByZWdpc3RlciB0aGUgYmxvY2tcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG5cdGlkOiBCTE9DSy5uYW1lLFxuXHR0aXRsZTogQkxPQ0sudGl0bGUsXG5cblx0LyoqXG5cdCAqIEFuIGljb24gcHJvcGVydHkgc2hvdWxkIGJlIHNwZWNpZmllZCB0byBtYWtlIGl0IGVhc2llciB0byBpZGVudGlmeSBhIGJsb2NrLlxuXHQgKiBUaGVzZSBjYW4gYmUgYW55IG9mIFdvcmRQcmVzc+KAmSBEYXNoaWNvbnMsIG9yIGEgY3VzdG9tIHN2ZyBlbGVtZW50LlxuXHQgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLndvcmRwcmVzcy5vcmcvcmVzb3VyY2UvZGFzaGljb25zL1xuXHQgKi9cblx0aWNvbjogJ2NhcnQnLCAvLyBUT0RPOiBjYXJ0IGljb25cblxuXHQvKipcblx0ICogQmxvY2tzIGFyZSBncm91cGVkIGludG8gY2F0ZWdvcmllcyB0byBoZWxwIHdpdGggYnJvd3NpbmcgYW5kIGRpc2NvdmVyeS5cblx0ICogVGhlIGNhdGVnb3JpZXMgcHJvdmlkZWQgYnkgY29yZSBhcmUgY29tbW9uLCBlbWJlZCwgZm9ybWF0dGluZywgbGF5b3V0LCBhbmQgd2lkZ2V0cy5cblx0ICovXG5cdGNhdGVnb3J5OiBCTE9DSy5jYXRlZ29yeSxcblxuXHQvKipcblx0ICogQWRkaXRpb25hbCBrZXl3b3JkcyB0byBzdXJmYWNlIHRoaXMgYmxvY2sgdmlhIHNlYXJjaCBpbnB1dC4gTGltaXRlZCB0byAzLlxuXHQgKi9cblx0a2V5d29yZHM6IEJMT0NLLmtleXdvcmRzLFxuXG5cdC8qKlxuXHQgKiBPcHRpb25hbCBibG9jayBleHRlbmRlZCBzdXBwb3J0IGZlYXR1cmVzLlxuXHQgKi9cblx0c3VwcG9ydHM6IHtcblx0XHQvLyBSZW1vdmVzIHN1cHBvcnQgZm9yIGFuIEhUTUwgbW9kZS5cblx0XHRodG1sOiBmYWxzZSxcblx0fSxcblxuXHQvKipcblx0ICogQXR0cmlidXRlcyB1c2VkIHRvIHNhdmUgYW5kIGVkaXQgb3VyIGJsb2NrLlxuXHQgKi9cblx0YXR0cmlidXRlczoge1xuXHRcdHNob3J0Y29kZToge1xuXHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHRkZWZhdWx0OiAnJyxcblx0XHR9LFxuXHR9LFxuXG5cdC8qKlxuXHQgKiBUaGUgZWRpdCBmdW5jdGlvbiBkZXNjcmliZXMgdGhlIHN0cnVjdHVyZSBvZiB0aGUgYmxvY2sgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGVkaXRvci5cblx0ICogVGhpcyByZXByZXNlbnRzIHdoYXQgdGhlIGVkaXRvciB3aWxsIHJlbmRlciB3aGVuIHRoZSBibG9jayBpcyB1c2VkLlxuXHQgKiBAc2VlIGh0dHBzOi8vd29yZHByZXNzLm9yZy9ndXRlbmJlcmcvaGFuZGJvb2svYmxvY2stZWRpdC1zYXZlLyNlZGl0XG5cdCAqXG5cdCAqIEBwYXJhbSAge09iamVjdH0gW3Byb3BzXSBQcm9wZXJ0aWVzIHBhc3NlZCBmcm9tIHRoZSBlZGl0b3IuXG5cdCAqIEByZXR1cm4ge0VsZW1lbnR9ICAgICAgICBFbGVtZW50IHRvIHJlbmRlci5cblx0ICovXG5cdGVkaXQ6IGVkaXRCbG9jayxcblxuXHQvKipcblx0ICogVGhlIHNhdmUgZnVuY3Rpb24gZGVmaW5lcyB0aGUgd2F5IGluIHdoaWNoIHRoZSBkaWZmZXJlbnQgYXR0cmlidXRlcyBzaG91bGQgYmUgY29tYmluZWRcblx0ICogaW50byB0aGUgZmluYWwgbWFya3VwLCB3aGljaCBpcyB0aGVuIHNlcmlhbGl6ZWQgYnkgR3V0ZW5iZXJnIGludG8gYHBvc3RfY29udGVudGAuXG5cdCAqIEBzZWUgaHR0cHM6Ly93b3JkcHJlc3Mub3JnL2d1dGVuYmVyZy9oYW5kYm9vay9ibG9jay1lZGl0LXNhdmUvI3NhdmVcblx0ICpcblx0ICogQHBhcmFtICB7T2JqZWN0fSBbcHJvcHNdIFByb3BlcnRpZXMgcGFzc2VkIGZyb20gdGhlIGVkaXRvci5cblx0ICogQHJldHVybiB7RWxlbWVudH0gRWxlbWVudCB0byByZW5kZXIuXG5cdCAqL1xuXHRzYXZlOiBzYXZlQmxvY2ssXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL2pzL3NyYy9hZG1pbi9ndXRlbmJlcmcvYmxvY2tzL2NhcnQvY2FydC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///238\n"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * @module Save\n * @description Products block save method.\n */\nvar saveBlock = function saveBlock(props) {\n var shortcode = props.attributes.shortcode;\n return wp.element.createElement(\"div\", {\n className: props.className\n }, shortcode);\n};\n\nvar _default = saveBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdHMvc2F2ZS5qcz83YTg4Il0sIm5hbWVzIjpbInNhdmVCbG9jayIsInByb3BzIiwic2hvcnRjb2RlIiwiYXR0cmlidXRlcyIsImNsYXNzTmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBS0EsSUFBTUEsWUFBWSxTQUFaQSxTQUFZLENBQUNDLEtBQUQsRUFBVztBQUFBLE1BQ3BCQyxTQURvQixHQUNORCxNQUFNRSxVQURBLENBQ3BCRCxTQURvQjtBQUk1QixTQUNDO0FBQ0MsZUFBV0QsTUFBTUc7QUFEbEIsS0FHR0YsU0FISCxDQUREO0FBT0EsQ0FYRDs7ZUFhZUYsUyIsImZpbGUiOiIyMzguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgU2F2ZVxuICogQGRlc2NyaXB0aW9uIFByb2R1Y3RzIGJsb2NrIHNhdmUgbWV0aG9kLlxuICovXG5cbmNvbnN0IHNhdmVCbG9jayA9IChwcm9wcykgPT4ge1xuXHRjb25zdCB7IHNob3J0Y29kZSB9ID0gcHJvcHMuYXR0cmlidXRlcztcblxuXG5cdHJldHVybiAoXG5cdFx0PGRpdlxuXHRcdFx0Y2xhc3NOYW1lPXtwcm9wcy5jbGFzc05hbWV9XG5cdFx0PlxuXHRcdFx0eyBzaG9ydGNvZGUgfVxuXHRcdDwvZGl2PlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgc2F2ZUJsb2NrO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL2pzL3NyYy9hZG1pbi9ndXRlbmJlcmcvYmxvY2tzL3Byb2R1Y3RzL3NhdmUuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///238\n"); /***/ }), /* 239 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _wpSettings = __webpack_require__(3);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\n/**\n * @module Edit\n * @description Cart block edit method.\n */\nvar editBlock = function editBlock(props) {\n var setAttributes = props.setAttributes;\n var blockImage = \"\".concat(_wpSettings.ADMIN_IMAGES, \"Gutenberg-Block_Cart.png\");\n setAttributes({\n shortcode: _gutenbergSettings.GUTENBERG_CART.shortcode\n });\n return [wp.element.createElement(\"h2\", {\n className: props.className,\n key: \"cart-shortcode-title\"\n }, _gutenbergSettings.GUTENBERG_CART.block_html.title), wp.element.createElement(\"img\", {\n src: blockImage,\n alt: _gutenbergSettings.GUTENBERG_CART.title,\n className: props.className,\n key: \"cart-shortcode-preview\"\n })];\n};\n\nvar _default = editBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvY2FydC9lZGl0LmpzPzI5Y2YiXSwibmFtZXMiOlsiZWRpdEJsb2NrIiwicHJvcHMiLCJzZXRBdHRyaWJ1dGVzIiwiYmxvY2tJbWFnZSIsInNob3J0Y29kZSIsImNsYXNzTmFtZSIsImJsb2NrX2h0bWwiLCJ0aXRsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQU1BOztBQUNBOztBQVBBOzs7O0FBU0EsSUFBTUEsWUFBWSxTQUFaQSxTQUFZLENBQUNDLEtBQUQsRUFBVztBQUFBLE1BQ3BCQyxhQURvQixHQUNGRCxLQURFLENBQ3BCQyxhQURvQjtBQUU1QixNQUFNQyw0RUFBTjtBQUVBRCxnQkFBYztBQUNiRSxlQUFXLGtDQUFNQTtBQURKLEdBQWQ7QUFJQSxTQUFPLENBQ047QUFDQyxlQUFXSCxNQUFNSSxTQURsQjtBQUVDLFNBQUk7QUFGTCxLQUlHLGtDQUFNQyxVQUFOLENBQWlCQyxLQUpwQixDQURNLEVBT047QUFDQyxTQUFLSixVQUROO0FBRUMsU0FBSyxrQ0FBTUksS0FGWjtBQUdDLGVBQVdOLE1BQU1JLFNBSGxCO0FBSUMsU0FBSTtBQUpMLElBUE0sQ0FBUDtBQWNBLENBdEJEOztlQXdCZUwsUyIsImZpbGUiOiIyMzkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgRWRpdFxuICogQGRlc2NyaXB0aW9uIENhcnQgYmxvY2sgZWRpdCBtZXRob2QuXG4gKi9cblxuXG5pbXBvcnQgeyBBRE1JTl9JTUFHRVMgfSBmcm9tICcuLi8uLi8uLi9jb25maWcvd3Atc2V0dGluZ3MnO1xuaW1wb3J0IHsgR1VURU5CRVJHX0NBUlQgYXMgQkxPQ0sgfSBmcm9tICcuLi8uLi9jb25maWcvZ3V0ZW5iZXJnLXNldHRpbmdzJztcblxuY29uc3QgZWRpdEJsb2NrID0gKHByb3BzKSA9PiB7XG5cdGNvbnN0IHsgc2V0QXR0cmlidXRlcyB9ID0gcHJvcHM7XG5cdGNvbnN0IGJsb2NrSW1hZ2UgPSBgJHtBRE1JTl9JTUFHRVN9R3V0ZW5iZXJnLUJsb2NrX0NhcnQucG5nYDtcblxuXHRzZXRBdHRyaWJ1dGVzKHtcblx0XHRzaG9ydGNvZGU6IEJMT0NLLnNob3J0Y29kZSxcblx0fSk7XG5cblx0cmV0dXJuIFtcblx0XHQ8aDJcblx0XHRcdGNsYXNzTmFtZT17cHJvcHMuY2xhc3NOYW1lfVxuXHRcdFx0a2V5PVwiY2FydC1zaG9ydGNvZGUtdGl0bGVcIlxuXHRcdD5cblx0XHRcdHsgQkxPQ0suYmxvY2tfaHRtbC50aXRsZSB9XG5cdFx0PC9oMj4sXG5cdFx0PGltZ1xuXHRcdFx0c3JjPXtibG9ja0ltYWdlfVxuXHRcdFx0YWx0PXtCTE9DSy50aXRsZX1cblx0XHRcdGNsYXNzTmFtZT17cHJvcHMuY2xhc3NOYW1lfVxuXHRcdFx0a2V5PVwiY2FydC1zaG9ydGNvZGUtcHJldmlld1wiXG5cdFx0Lz4sXG5cdF07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBlZGl0QmxvY2s7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvY2FydC9lZGl0LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///239\n"); +eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _getPrototypeOf = _interopRequireDefault(__webpack_require__(36));\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(25));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(37));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(38));\n\nvar _edit = _interopRequireDefault(__webpack_require__(240));\n\nvar _shortcodeBlock = _interopRequireDefault(__webpack_require__(58));\n\n/**\n * @module Gutenberg\n * @description Register the Cart Gutenberg block\n */\nvar ProductReviewBlock =\n/*#__PURE__*/\nfunction (_ShortcodeBlock) {\n (0, _inherits2.default)(ProductReviewBlock, _ShortcodeBlock);\n\n function ProductReviewBlock(config) {\n var _this;\n\n (0, _classCallCheck2.default)(this, ProductReviewBlock);\n _this = (0, _possibleConstructorReturn2.default)(this, (ProductReviewBlock.__proto__ || (0, _getPrototypeOf.default)(ProductReviewBlock)).call(this, config));\n _this.edit = _edit.default;\n _this.attributes = {\n shortcode: {\n type: 'string',\n default: \"[\".concat(_this.config.shortcode, \"]\")\n },\n productId: {\n type: 'string',\n default: ''\n }\n };\n return _this;\n }\n\n return ProductReviewBlock;\n}(_shortcodeBlock.default);\n\nexports.default = ProductReviewBlock;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdC1yZXZpZXdzL3Byb2R1Y3QtcmV2aWV3cy5qcz81NmMyIl0sIm5hbWVzIjpbIlByb2R1Y3RSZXZpZXdCbG9jayIsImNvbmZpZyIsImVkaXQiLCJhdHRyaWJ1dGVzIiwic2hvcnRjb2RlIiwidHlwZSIsImRlZmF1bHQiLCJwcm9kdWN0SWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBS0E7O0FBQ0E7O0FBTkE7Ozs7SUFRcUJBLGtCOzs7OztBQUNwQiw4QkFBWUMsTUFBWixFQUFvQjtBQUFBOztBQUFBO0FBQ25CLHlKQUFNQSxNQUFOO0FBQ0EsVUFBS0MsSUFBTDtBQUNBLFVBQUtDLFVBQUwsR0FBa0I7QUFDakJDLGlCQUFXO0FBQ1ZDLGNBQU0sUUFESTtBQUVWQyw0QkFBYSxNQUFLTCxNQUFMLENBQVlHLFNBQXpCO0FBRlUsT0FETTtBQUtqQkcsaUJBQVc7QUFDVkYsY0FBTSxRQURJO0FBRVZDLGlCQUFTO0FBRkM7QUFMTSxLQUFsQjtBQUhtQjtBQWFuQiIsImZpbGUiOiIyMzkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgR3V0ZW5iZXJnXG4gKiBAZGVzY3JpcHRpb24gUmVnaXN0ZXIgdGhlIENhcnQgR3V0ZW5iZXJnIGJsb2NrXG4gKi9cblxuaW1wb3J0IGVkaXRCbG9jayBmcm9tICcuL2VkaXQnO1xuaW1wb3J0IFNob3J0Y29kZUJsb2NrIGZyb20gJy4uL3Nob3J0Y29kZS1ibG9jay9zaG9ydGNvZGUtYmxvY2snO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcm9kdWN0UmV2aWV3QmxvY2sgZXh0ZW5kcyBTaG9ydGNvZGVCbG9jayB7XG5cdGNvbnN0cnVjdG9yKGNvbmZpZykge1xuXHRcdHN1cGVyKGNvbmZpZyk7XG5cdFx0dGhpcy5lZGl0ID0gZWRpdEJsb2NrO1xuXHRcdHRoaXMuYXR0cmlidXRlcyA9IHtcblx0XHRcdHNob3J0Y29kZToge1xuXHRcdFx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRcdFx0ZGVmYXVsdDogYFske3RoaXMuY29uZmlnLnNob3J0Y29kZX1dYCxcblx0XHRcdH0sXG5cdFx0XHRwcm9kdWN0SWQ6IHtcblx0XHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHRcdGRlZmF1bHQ6ICcnLFxuXHRcdFx0fSxcblx0XHR9O1xuXHR9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdC1yZXZpZXdzL3Byb2R1Y3QtcmV2aWV3cy5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///239\n"); /***/ }), /* 240 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * @module Save\n * @description Cart block save method.\n */\nvar saveBlock = function saveBlock(props) {\n return props.attributes.shortcode;\n};\n\nvar _default = saveBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvY2FydC9zYXZlLmpzPzY2NTciXSwibmFtZXMiOlsic2F2ZUJsb2NrIiwicHJvcHMiLCJhdHRyaWJ1dGVzIiwic2hvcnRjb2RlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7QUFLQSxJQUFNQSxZQUFZLFNBQVpBLFNBQVk7QUFBQSxTQUFTQyxNQUFNQyxVQUFOLENBQWlCQyxTQUExQjtBQUFBLENBQWxCOztlQUVlSCxTIiwiZmlsZSI6IjI0MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBTYXZlXG4gKiBAZGVzY3JpcHRpb24gQ2FydCBibG9jayBzYXZlIG1ldGhvZC5cbiAqL1xuXG5jb25zdCBzYXZlQmxvY2sgPSBwcm9wcyA9PiBwcm9wcy5hdHRyaWJ1dGVzLnNob3J0Y29kZTtcblxuZXhwb3J0IGRlZmF1bHQgc2F2ZUJsb2NrO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL2pzL3NyYy9hZG1pbi9ndXRlbmJlcmcvYmxvY2tzL2NhcnQvc2F2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///240\n"); +eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(99));\n\nvar _gutenbergSettings = __webpack_require__(18);\n\nvar _shortcodeInput = _interopRequireDefault(__webpack_require__(241));\n\n/**\n * @module Edit\n * @description Product Reviews block edit method.\n */\nvar InspectorControls = wp.editor.InspectorControls;\nvar _wp$components = wp.components,\n PanelRow = _wp$components.PanelRow,\n PanelBody = _wp$components.PanelBody,\n BaseControl = _wp$components.BaseControl;\nvar withInstanceId = wp.compose.withInstanceId;\nvar Fragment = wp.element.Fragment;\nvar editBlock = withInstanceId(function (props) {\n var attributes = props.attributes,\n setAttributes = props.setAttributes,\n instanceId = props.instanceId;\n var productId = attributes.productId;\n var blockImage = _gutenbergSettings.GUTENBERG_PRODUCT_REVIEWS.block_html.image;\n var fieldId = \"block-product-reviews-input-\".concat(instanceId);\n return wp.element.createElement(Fragment, null, wp.element.createElement(\"h2\", {\n className: props.className,\n key: \"product-reviews-title\"\n }, _gutenbergSettings.GUTENBERG_PRODUCT_REVIEWS.block_html.title), wp.element.createElement(\"img\", {\n src: blockImage,\n alt: _gutenbergSettings.GUTENBERG_PRODUCT_REVIEWS.title,\n className: props.className,\n key: \"product-reviews-preview\"\n }), wp.element.createElement(InspectorControls, null, wp.element.createElement(PanelBody, {\n title: _gutenbergSettings.GUTENBERG_PRODUCT_REVIEWS.inspector.header,\n initialOpen: true\n }, wp.element.createElement(PanelRow, null, wp.element.createElement(BaseControl, {\n label: _gutenbergSettings.GUTENBERG_PRODUCT_REVIEWS.inspector.product_id_label,\n id: fieldId,\n help: _gutenbergSettings.GUTENBERG_PRODUCT_REVIEWS.inspector.product_id_description\n }, wp.element.createElement(_shortcodeInput.default, (0, _extends2.default)({\n setAttributes: setAttributes\n }, props, {\n key: 'ShortcodeInput',\n fieldId: fieldId,\n productId: productId\n })))))));\n});\nvar _default = editBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdC1yZXZpZXdzL2VkaXQuanM/N2RiMiJdLCJuYW1lcyI6WyJJbnNwZWN0b3JDb250cm9scyIsIndwIiwiZWRpdG9yIiwiY29tcG9uZW50cyIsIlBhbmVsUm93IiwiUGFuZWxCb2R5IiwiQmFzZUNvbnRyb2wiLCJ3aXRoSW5zdGFuY2VJZCIsImNvbXBvc2UiLCJGcmFnbWVudCIsImVsZW1lbnQiLCJlZGl0QmxvY2siLCJwcm9wcyIsImF0dHJpYnV0ZXMiLCJzZXRBdHRyaWJ1dGVzIiwiaW5zdGFuY2VJZCIsInByb2R1Y3RJZCIsImJsb2NrSW1hZ2UiLCJibG9ja19odG1sIiwiaW1hZ2UiLCJmaWVsZElkIiwiY2xhc3NOYW1lIiwidGl0bGUiLCJpbnNwZWN0b3IiLCJoZWFkZXIiLCJwcm9kdWN0X2lkX2xhYmVsIiwicHJvZHVjdF9pZF9kZXNjcmlwdGlvbiIsImtleSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFNQTs7QUFDQTs7QUFQQTs7OztJQVNRQSxpQixHQUFzQkMsR0FBR0MsTSxDQUF6QkYsaUI7cUJBQ3FDQyxHQUFHRSxVO0lBQXhDQyxRLGtCQUFBQSxRO0lBQVVDLFMsa0JBQUFBLFM7SUFBV0MsVyxrQkFBQUEsVztJQUNyQkMsYyxHQUFtQk4sR0FBR08sTyxDQUF0QkQsYztJQUNBRSxRLEdBQWFSLEdBQUdTLE8sQ0FBaEJELFE7QUFFUixJQUFNRSxZQUFZSixlQUFlLFVBQUNLLEtBQUQsRUFBVztBQUFBLE1BQ25DQyxVQURtQyxHQUNPRCxLQURQLENBQ25DQyxVQURtQztBQUFBLE1BQ3ZCQyxhQUR1QixHQUNPRixLQURQLENBQ3ZCRSxhQUR1QjtBQUFBLE1BQ1JDLFVBRFEsR0FDT0gsS0FEUCxDQUNSRyxVQURRO0FBQUEsTUFFbkNDLFNBRm1DLEdBRXJCSCxVQUZxQixDQUVuQ0csU0FGbUM7QUFHM0MsTUFBTUMsYUFBYSw2Q0FBTUMsVUFBTixDQUFpQkMsS0FBcEM7QUFDQSxNQUFNQyxnREFBeUNMLFVBQXpDLENBQU47QUFFQSxTQUNDLHlCQUFDLFFBQUQsUUFDQztBQUNDLGVBQVdILE1BQU1TLFNBRGxCO0FBRUMsU0FBSTtBQUZMLEtBSUUsNkNBQU1ILFVBQU4sQ0FBaUJJLEtBSm5CLENBREQsRUFPQztBQUNDLFNBQUtMLFVBRE47QUFFQyxTQUFLLDZDQUFNSyxLQUZaO0FBR0MsZUFBV1YsTUFBTVMsU0FIbEI7QUFJQyxTQUFJO0FBSkwsSUFQRCxFQWFDLHlCQUFDLGlCQUFELFFBQ0MseUJBQUMsU0FBRDtBQUNDLFdBQU8sNkNBQU1FLFNBQU4sQ0FBZ0JDLE1BRHhCO0FBRUM7QUFGRCxLQUlDLHlCQUFDLFFBQUQsUUFDQyx5QkFBQyxXQUFEO0FBQ0MsV0FBTyw2Q0FBTUQsU0FBTixDQUFnQkUsZ0JBRHhCO0FBRUMsUUFBSUwsT0FGTDtBQUdDLFVBQU0sNkNBQU1HLFNBQU4sQ0FBZ0JHO0FBSHZCLEtBS0M7QUFBc0JaO0FBQXRCLEtBQXdDRixLQUF4QztBQUErQ2UsU0FBSyxnQkFBcEQ7QUFBc0VQLG9CQUF0RTtBQUErRUo7QUFBL0UsS0FMRCxDQURELENBSkQsQ0FERCxDQWJELENBREQ7QUFnQ0EsQ0F0Q2lCLENBQWxCO2VBd0NlTCxTIiwiZmlsZSI6IjI0MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBFZGl0XG4gKiBAZGVzY3JpcHRpb24gUHJvZHVjdCBSZXZpZXdzIGJsb2NrIGVkaXQgbWV0aG9kLlxuICovXG5cblxuaW1wb3J0IHsgR1VURU5CRVJHX1BST0RVQ1RfUkVWSUVXUyBhcyBCTE9DSyB9IGZyb20gJy4uLy4uL2NvbmZpZy9ndXRlbmJlcmctc2V0dGluZ3MnO1xuaW1wb3J0IFNob3J0Y29kZUlucHV0IGZyb20gJy4vc2hvcnRjb2RlSW5wdXQnO1xuXG5jb25zdCB7IEluc3BlY3RvckNvbnRyb2xzIH0gPSB3cC5lZGl0b3I7XG5jb25zdCB7IFBhbmVsUm93LCBQYW5lbEJvZHksIEJhc2VDb250cm9sIH0gPSB3cC5jb21wb25lbnRzO1xuY29uc3QgeyB3aXRoSW5zdGFuY2VJZCB9ID0gd3AuY29tcG9zZTtcbmNvbnN0IHsgRnJhZ21lbnQgfSA9IHdwLmVsZW1lbnQ7XG5cbmNvbnN0IGVkaXRCbG9jayA9IHdpdGhJbnN0YW5jZUlkKChwcm9wcykgPT4ge1xuXHRjb25zdCB7IGF0dHJpYnV0ZXMsIHNldEF0dHJpYnV0ZXMsIGluc3RhbmNlSWQgfSA9IHByb3BzO1xuXHRjb25zdCB7IHByb2R1Y3RJZCB9ID0gYXR0cmlidXRlcztcblx0Y29uc3QgYmxvY2tJbWFnZSA9IEJMT0NLLmJsb2NrX2h0bWwuaW1hZ2U7XG5cdGNvbnN0IGZpZWxkSWQgPSBgYmxvY2stcHJvZHVjdC1yZXZpZXdzLWlucHV0LSR7aW5zdGFuY2VJZH1gO1xuXG5cdHJldHVybiAoXG5cdFx0PEZyYWdtZW50PlxuXHRcdFx0PGgyXG5cdFx0XHRcdGNsYXNzTmFtZT17cHJvcHMuY2xhc3NOYW1lfVxuXHRcdFx0XHRrZXk9XCJwcm9kdWN0LXJldmlld3MtdGl0bGVcIlxuXHRcdFx0PlxuXHRcdFx0XHR7QkxPQ0suYmxvY2tfaHRtbC50aXRsZX1cblx0XHRcdDwvaDI+XG5cdFx0XHQ8aW1nXG5cdFx0XHRcdHNyYz17YmxvY2tJbWFnZX1cblx0XHRcdFx0YWx0PXtCTE9DSy50aXRsZX1cblx0XHRcdFx0Y2xhc3NOYW1lPXtwcm9wcy5jbGFzc05hbWV9XG5cdFx0XHRcdGtleT1cInByb2R1Y3QtcmV2aWV3cy1wcmV2aWV3XCJcblx0XHRcdC8+XG5cdFx0XHQ8SW5zcGVjdG9yQ29udHJvbHM+XG5cdFx0XHRcdDxQYW5lbEJvZHlcblx0XHRcdFx0XHR0aXRsZT17QkxPQ0suaW5zcGVjdG9yLmhlYWRlcn1cblx0XHRcdFx0XHRpbml0aWFsT3BlblxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0PFBhbmVsUm93PlxuXHRcdFx0XHRcdFx0PEJhc2VDb250cm9sXG5cdFx0XHRcdFx0XHRcdGxhYmVsPXtCTE9DSy5pbnNwZWN0b3IucHJvZHVjdF9pZF9sYWJlbH1cblx0XHRcdFx0XHRcdFx0aWQ9e2ZpZWxkSWR9XG5cdFx0XHRcdFx0XHRcdGhlbHA9e0JMT0NLLmluc3BlY3Rvci5wcm9kdWN0X2lkX2Rlc2NyaXB0aW9ufVxuXHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHQ8U2hvcnRjb2RlSW5wdXQgey4uLnsgc2V0QXR0cmlidXRlcywgLi4ucHJvcHMsIGtleTogJ1Nob3J0Y29kZUlucHV0JywgZmllbGRJZCwgcHJvZHVjdElkIH19IC8+XG5cdFx0XHRcdFx0XHQ8L0Jhc2VDb250cm9sPlxuXHRcdFx0XHRcdDwvUGFuZWxSb3c+XG5cdFx0XHRcdDwvUGFuZWxCb2R5PlxuXHRcdFx0PC9JbnNwZWN0b3JDb250cm9scz5cblx0XHQ8L0ZyYWdtZW50PlxuXHQpO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGVkaXRCbG9jaztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vZ3V0ZW5iZXJnL2Jsb2Nrcy9wcm9kdWN0LXJldmlld3MvZWRpdC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///240\n"); /***/ }), /* 241 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(5);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\nvar _edit = _interopRequireDefault(__webpack_require__(242));\n\nvar _save = _interopRequireDefault(__webpack_require__(243));\n\n/**\n * @module Gutenberg\n * @description Register the Cart Gutenberg block\n */\n\n/**\n * @function registerBlock\n * @description register the block\n */\nvar _default = {\n id: _gutenbergSettings.GUTENBERG_CHECKOUT.name,\n title: _gutenbergSettings.GUTENBERG_CHECKOUT.title,\n\n /**\n * An icon property should be specified to make it easier to identify a block.\n * These can be any of WordPress’ Dashicons, or a custom svg element.\n * @see https://developer.wordpress.org/resource/dashicons/\n */\n icon: 'money',\n\n /**\n * Blocks are grouped into categories to help with browsing and discovery.\n * The categories provided by core are common, embed, formatting, layout, and widgets.\n */\n category: _gutenbergSettings.GUTENBERG_CHECKOUT.category,\n\n /**\n * Additional keywords to surface this block via search input. Limited to 3.\n */\n keywords: _gutenbergSettings.GUTENBERG_CHECKOUT.keywords,\n\n /**\n * Optional block extended support features.\n */\n supports: {\n // Removes support for an HTML mode.\n html: false\n },\n\n /**\n * Attributes used to save and edit our block.\n */\n attributes: {\n shortcode: {\n type: 'string',\n default: ''\n }\n },\n\n /**\n * The edit function describes the structure of the block in the context of the editor.\n * This represents what the editor will render when the block is used.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#edit\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n edit: _edit.default,\n\n /**\n * The save function defines the way in which the different attributes should be combined\n * into the final markup, which is then serialized by Gutenberg into `post_content`.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#save\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n save: _save.default\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvY2hlY2tvdXQvY2hlY2tvdXQuanM/MDU2NSJdLCJuYW1lcyI6WyJpZCIsIm5hbWUiLCJ0aXRsZSIsImljb24iLCJjYXRlZ29yeSIsImtleXdvcmRzIiwic3VwcG9ydHMiLCJodG1sIiwiYXR0cmlidXRlcyIsInNob3J0Y29kZSIsInR5cGUiLCJkZWZhdWx0IiwiZWRpdCIsInNhdmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBUEE7Ozs7O0FBU0E7Ozs7ZUFLZTtBQUNkQSxNQUFJLHNDQUFNQyxJQURJO0FBRWRDLFNBQU8sc0NBQU1BLEtBRkM7O0FBSWQ7Ozs7O0FBS0FDLFFBQU0sT0FUUTs7QUFXZDs7OztBQUlBQyxZQUFVLHNDQUFNQSxRQWZGOztBQWlCZDs7O0FBR0FDLFlBQVUsc0NBQU1BLFFBcEJGOztBQXNCZDs7O0FBR0FDLFlBQVU7QUFDVDtBQUNBQyxVQUFNO0FBRkcsR0F6Qkk7O0FBOEJkOzs7QUFHQUMsY0FBWTtBQUNYQyxlQUFXO0FBQ1ZDLFlBQU0sUUFESTtBQUVWQyxlQUFTO0FBRkM7QUFEQSxHQWpDRTs7QUF3Q2Q7Ozs7Ozs7O0FBUUFDLHFCQWhEYzs7QUFrRGQ7Ozs7Ozs7O0FBUUFDO0FBMURjLEMiLCJmaWxlIjoiMjQxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIEd1dGVuYmVyZ1xuICogQGRlc2NyaXB0aW9uIFJlZ2lzdGVyIHRoZSBDYXJ0IEd1dGVuYmVyZyBibG9ja1xuICovXG5cbmltcG9ydCB7IEdVVEVOQkVSR19DSEVDS09VVCBhcyBCTE9DSyB9IGZyb20gJy4uLy4uL2NvbmZpZy9ndXRlbmJlcmctc2V0dGluZ3MnO1xuaW1wb3J0IGVkaXRCbG9jayBmcm9tICcuL2VkaXQnO1xuaW1wb3J0IHNhdmVCbG9jayBmcm9tICcuL3NhdmUnO1xuXG4vKipcbiAqIEBmdW5jdGlvbiByZWdpc3RlckJsb2NrXG4gKiBAZGVzY3JpcHRpb24gcmVnaXN0ZXIgdGhlIGJsb2NrXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuXHRpZDogQkxPQ0submFtZSxcblx0dGl0bGU6IEJMT0NLLnRpdGxlLFxuXG5cdC8qKlxuXHQgKiBBbiBpY29uIHByb3BlcnR5IHNob3VsZCBiZSBzcGVjaWZpZWQgdG8gbWFrZSBpdCBlYXNpZXIgdG8gaWRlbnRpZnkgYSBibG9jay5cblx0ICogVGhlc2UgY2FuIGJlIGFueSBvZiBXb3JkUHJlc3PigJkgRGFzaGljb25zLCBvciBhIGN1c3RvbSBzdmcgZWxlbWVudC5cblx0ICogQHNlZSBodHRwczovL2RldmVsb3Blci53b3JkcHJlc3Mub3JnL3Jlc291cmNlL2Rhc2hpY29ucy9cblx0ICovXG5cdGljb246ICdtb25leScsXG5cblx0LyoqXG5cdCAqIEJsb2NrcyBhcmUgZ3JvdXBlZCBpbnRvIGNhdGVnb3JpZXMgdG8gaGVscCB3aXRoIGJyb3dzaW5nIGFuZCBkaXNjb3ZlcnkuXG5cdCAqIFRoZSBjYXRlZ29yaWVzIHByb3ZpZGVkIGJ5IGNvcmUgYXJlIGNvbW1vbiwgZW1iZWQsIGZvcm1hdHRpbmcsIGxheW91dCwgYW5kIHdpZGdldHMuXG5cdCAqL1xuXHRjYXRlZ29yeTogQkxPQ0suY2F0ZWdvcnksXG5cblx0LyoqXG5cdCAqIEFkZGl0aW9uYWwga2V5d29yZHMgdG8gc3VyZmFjZSB0aGlzIGJsb2NrIHZpYSBzZWFyY2ggaW5wdXQuIExpbWl0ZWQgdG8gMy5cblx0ICovXG5cdGtleXdvcmRzOiBCTE9DSy5rZXl3b3JkcyxcblxuXHQvKipcblx0ICogT3B0aW9uYWwgYmxvY2sgZXh0ZW5kZWQgc3VwcG9ydCBmZWF0dXJlcy5cblx0ICovXG5cdHN1cHBvcnRzOiB7XG5cdFx0Ly8gUmVtb3ZlcyBzdXBwb3J0IGZvciBhbiBIVE1MIG1vZGUuXG5cdFx0aHRtbDogZmFsc2UsXG5cdH0sXG5cblx0LyoqXG5cdCAqIEF0dHJpYnV0ZXMgdXNlZCB0byBzYXZlIGFuZCBlZGl0IG91ciBibG9jay5cblx0ICovXG5cdGF0dHJpYnV0ZXM6IHtcblx0XHRzaG9ydGNvZGU6IHtcblx0XHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdFx0ZGVmYXVsdDogJycsXG5cdFx0fSxcblx0fSxcblxuXHQvKipcblx0ICogVGhlIGVkaXQgZnVuY3Rpb24gZGVzY3JpYmVzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGJsb2NrIGluIHRoZSBjb250ZXh0IG9mIHRoZSBlZGl0b3IuXG5cdCAqIFRoaXMgcmVwcmVzZW50cyB3aGF0IHRoZSBlZGl0b3Igd2lsbCByZW5kZXIgd2hlbiB0aGUgYmxvY2sgaXMgdXNlZC5cblx0ICogQHNlZSBodHRwczovL3dvcmRwcmVzcy5vcmcvZ3V0ZW5iZXJnL2hhbmRib29rL2Jsb2NrLWVkaXQtc2F2ZS8jZWRpdFxuXHQgKlxuXHQgKiBAcGFyYW0gIHtPYmplY3R9IFtwcm9wc10gUHJvcGVydGllcyBwYXNzZWQgZnJvbSB0aGUgZWRpdG9yLlxuXHQgKiBAcmV0dXJuIHtFbGVtZW50fSAgICAgICAgRWxlbWVudCB0byByZW5kZXIuXG5cdCAqL1xuXHRlZGl0OiBlZGl0QmxvY2ssXG5cblx0LyoqXG5cdCAqIFRoZSBzYXZlIGZ1bmN0aW9uIGRlZmluZXMgdGhlIHdheSBpbiB3aGljaCB0aGUgZGlmZmVyZW50IGF0dHJpYnV0ZXMgc2hvdWxkIGJlIGNvbWJpbmVkXG5cdCAqIGludG8gdGhlIGZpbmFsIG1hcmt1cCwgd2hpY2ggaXMgdGhlbiBzZXJpYWxpemVkIGJ5IEd1dGVuYmVyZyBpbnRvIGBwb3N0X2NvbnRlbnRgLlxuXHQgKiBAc2VlIGh0dHBzOi8vd29yZHByZXNzLm9yZy9ndXRlbmJlcmcvaGFuZGJvb2svYmxvY2stZWRpdC1zYXZlLyNzYXZlXG5cdCAqXG5cdCAqIEBwYXJhbSAge09iamVjdH0gW3Byb3BzXSBQcm9wZXJ0aWVzIHBhc3NlZCBmcm9tIHRoZSBlZGl0b3IuXG5cdCAqIEByZXR1cm4ge0VsZW1lbnR9IEVsZW1lbnQgdG8gcmVuZGVyLlxuXHQgKi9cblx0c2F2ZTogc2F2ZUJsb2NrLFxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vZ3V0ZW5iZXJnL2Jsb2Nrcy9jaGVja291dC9jaGVja291dC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///241\n"); - -/***/ }), -/* 242 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _wpSettings = __webpack_require__(3);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\n/**\n * @module Edit\n * @description Checkout block edit method.\n */\nvar editBlock = function editBlock(props) {\n var setAttributes = props.setAttributes;\n var blockImage = \"\".concat(_wpSettings.ADMIN_IMAGES, \"Gutenberg-Block_Checkout.png\");\n setAttributes({\n shortcode: _gutenbergSettings.GUTENBERG_CHECKOUT.shortcode\n });\n return [wp.element.createElement(\"h2\", {\n className: props.className,\n key: \"checkout-shortcode-title\"\n }, _gutenbergSettings.GUTENBERG_CHECKOUT.block_html.title), wp.element.createElement(\"img\", {\n src: blockImage,\n alt: _gutenbergSettings.GUTENBERG_CHECKOUT.title,\n className: props.className,\n key: \"checkout-shortcode-preview\"\n })];\n};\n\nvar _default = editBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvY2hlY2tvdXQvZWRpdC5qcz9kNDE5Il0sIm5hbWVzIjpbImVkaXRCbG9jayIsInByb3BzIiwic2V0QXR0cmlidXRlcyIsImJsb2NrSW1hZ2UiLCJzaG9ydGNvZGUiLCJjbGFzc05hbWUiLCJibG9ja19odG1sIiwidGl0bGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFNQTs7QUFDQTs7QUFQQTs7OztBQVNBLElBQU1BLFlBQVksU0FBWkEsU0FBWSxDQUFDQyxLQUFELEVBQVc7QUFBQSxNQUNwQkMsYUFEb0IsR0FDRkQsS0FERSxDQUNwQkMsYUFEb0I7QUFFNUIsTUFBTUMsZ0ZBQU47QUFFQUQsZ0JBQWM7QUFDYkUsZUFBVyxzQ0FBTUE7QUFESixHQUFkO0FBSUEsU0FBTyxDQUNOO0FBQ0MsZUFBV0gsTUFBTUksU0FEbEI7QUFFQyxTQUFJO0FBRkwsS0FJRyxzQ0FBTUMsVUFBTixDQUFpQkMsS0FKcEIsQ0FETSxFQU9OO0FBQ0MsU0FBS0osVUFETjtBQUVDLFNBQUssc0NBQU1JLEtBRlo7QUFHQyxlQUFXTixNQUFNSSxTQUhsQjtBQUlDLFNBQUk7QUFKTCxJQVBNLENBQVA7QUFjQSxDQXRCRDs7ZUF3QmVMLFMiLCJmaWxlIjoiMjQyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIEVkaXRcbiAqIEBkZXNjcmlwdGlvbiBDaGVja291dCBibG9jayBlZGl0IG1ldGhvZC5cbiAqL1xuXG5cbmltcG9ydCB7IEFETUlOX0lNQUdFUyB9IGZyb20gJy4uLy4uLy4uL2NvbmZpZy93cC1zZXR0aW5ncyc7XG5pbXBvcnQgeyBHVVRFTkJFUkdfQ0hFQ0tPVVQgYXMgQkxPQ0sgfSBmcm9tICcuLi8uLi9jb25maWcvZ3V0ZW5iZXJnLXNldHRpbmdzJztcblxuY29uc3QgZWRpdEJsb2NrID0gKHByb3BzKSA9PiB7XG5cdGNvbnN0IHsgc2V0QXR0cmlidXRlcyB9ID0gcHJvcHM7XG5cdGNvbnN0IGJsb2NrSW1hZ2UgPSBgJHtBRE1JTl9JTUFHRVN9R3V0ZW5iZXJnLUJsb2NrX0NoZWNrb3V0LnBuZ2A7XG5cblx0c2V0QXR0cmlidXRlcyh7XG5cdFx0c2hvcnRjb2RlOiBCTE9DSy5zaG9ydGNvZGUsXG5cdH0pO1xuXG5cdHJldHVybiBbXG5cdFx0PGgyXG5cdFx0XHRjbGFzc05hbWU9e3Byb3BzLmNsYXNzTmFtZX1cblx0XHRcdGtleT1cImNoZWNrb3V0LXNob3J0Y29kZS10aXRsZVwiXG5cdFx0PlxuXHRcdFx0eyBCTE9DSy5ibG9ja19odG1sLnRpdGxlIH1cblx0XHQ8L2gyPixcblx0XHQ8aW1nXG5cdFx0XHRzcmM9e2Jsb2NrSW1hZ2V9XG5cdFx0XHRhbHQ9e0JMT0NLLnRpdGxlfVxuXHRcdFx0Y2xhc3NOYW1lPXtwcm9wcy5jbGFzc05hbWV9XG5cdFx0XHRrZXk9XCJjaGVja291dC1zaG9ydGNvZGUtcHJldmlld1wiXG5cdFx0Lz4sXG5cdF07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBlZGl0QmxvY2s7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvY2hlY2tvdXQvZWRpdC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///242\n"); - -/***/ }), -/* 243 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * @module Save\n * @description Checkout block save method.\n */\nvar saveBlock = function saveBlock(props) {\n return props.attributes.shortcode;\n};\n\nvar _default = saveBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvY2hlY2tvdXQvc2F2ZS5qcz9hNTI5Il0sIm5hbWVzIjpbInNhdmVCbG9jayIsInByb3BzIiwiYXR0cmlidXRlcyIsInNob3J0Y29kZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBS0EsSUFBTUEsWUFBWSxTQUFaQSxTQUFZO0FBQUEsU0FBU0MsTUFBTUMsVUFBTixDQUFpQkMsU0FBMUI7QUFBQSxDQUFsQjs7ZUFFZUgsUyIsImZpbGUiOiIyNDMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgU2F2ZVxuICogQGRlc2NyaXB0aW9uIENoZWNrb3V0IGJsb2NrIHNhdmUgbWV0aG9kLlxuICovXG5cbmNvbnN0IHNhdmVCbG9jayA9IHByb3BzID0+IHByb3BzLmF0dHJpYnV0ZXMuc2hvcnRjb2RlO1xuXG5leHBvcnQgZGVmYXVsdCBzYXZlQmxvY2s7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvY2hlY2tvdXQvc2F2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///243\n"); - -/***/ }), -/* 244 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(5);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\nvar _edit = _interopRequireDefault(__webpack_require__(245));\n\nvar _save = _interopRequireDefault(__webpack_require__(246));\n\n/**\n * @module Gutenberg\n * @description Register the Account Profile Gutenberg block\n */\n\n/**\n * @function registerBlock\n * @description register the block\n */\nvar _default = {\n id: _gutenbergSettings.GUTENBERG_ACCOUNT.name,\n title: _gutenbergSettings.GUTENBERG_ACCOUNT.title,\n\n /**\n * An icon property should be specified to make it easier to identify a block.\n * These can be any of WordPress’ Dashicons, or a custom svg element.\n * @see https://developer.wordpress.org/resource/dashicons/\n */\n icon: 'id',\n // TODO: account icon\n\n /**\n * Blocks are grouped into categories to help with browsing and discovery.\n * The categories provided by core are common, embed, formatting, layout, and widgets.\n */\n category: _gutenbergSettings.GUTENBERG_ACCOUNT.category,\n\n /**\n * Additional keywords to surface this block via search input. Limited to 3.\n */\n keywords: _gutenbergSettings.GUTENBERG_ACCOUNT.keywords,\n\n /**\n * Optional block extended support features.\n */\n supports: {\n // Removes support for an HTML mode.\n html: false\n },\n\n /**\n * Attributes used to save and edit our block.\n */\n attributes: {\n shortcode: {\n type: 'string',\n default: ''\n }\n },\n\n /**\n * The edit function describes the structure of the block in the context of the editor.\n * This represents what the editor will render when the block is used.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#edit\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n edit: _edit.default,\n\n /**\n * The save function defines the way in which the different attributes should be combined\n * into the final markup, which is then serialized by Gutenberg into `post_content`.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#save\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n save: _save.default\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvYWNjb3VudC1wcm9maWxlL2FjY291bnQtcHJvZmlsZS5qcz81MzU1Il0sIm5hbWVzIjpbImlkIiwibmFtZSIsInRpdGxlIiwiaWNvbiIsImNhdGVnb3J5Iiwia2V5d29yZHMiLCJzdXBwb3J0cyIsImh0bWwiLCJhdHRyaWJ1dGVzIiwic2hvcnRjb2RlIiwidHlwZSIsImRlZmF1bHQiLCJlZGl0Iiwic2F2ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFLQTs7QUFDQTs7QUFDQTs7QUFQQTs7Ozs7QUFTQTs7OztlQUtlO0FBQ2RBLE1BQUkscUNBQU1DLElBREk7QUFFZEMsU0FBTyxxQ0FBTUEsS0FGQzs7QUFJZDs7Ozs7QUFLQUMsUUFBTSxJQVRRO0FBU0Y7O0FBRVo7Ozs7QUFJQUMsWUFBVSxxQ0FBTUEsUUFmRjs7QUFpQmQ7OztBQUdBQyxZQUFVLHFDQUFNQSxRQXBCRjs7QUFzQmQ7OztBQUdBQyxZQUFVO0FBQ1Q7QUFDQUMsVUFBTTtBQUZHLEdBekJJOztBQThCZDs7O0FBR0FDLGNBQVk7QUFDWEMsZUFBVztBQUNWQyxZQUFNLFFBREk7QUFFVkMsZUFBUztBQUZDO0FBREEsR0FqQ0U7O0FBd0NkOzs7Ozs7OztBQVFBQyxxQkFoRGM7O0FBa0RkOzs7Ozs7OztBQVFBQztBQTFEYyxDIiwiZmlsZSI6IjI0NC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBHdXRlbmJlcmdcbiAqIEBkZXNjcmlwdGlvbiBSZWdpc3RlciB0aGUgQWNjb3VudCBQcm9maWxlIEd1dGVuYmVyZyBibG9ja1xuICovXG5cbmltcG9ydCB7IEdVVEVOQkVSR19BQ0NPVU5UIGFzIEJMT0NLIH0gZnJvbSAnLi4vLi4vY29uZmlnL2d1dGVuYmVyZy1zZXR0aW5ncyc7XG5pbXBvcnQgZWRpdEJsb2NrIGZyb20gJy4vZWRpdCc7XG5pbXBvcnQgc2F2ZUJsb2NrIGZyb20gJy4vc2F2ZSc7XG5cbi8qKlxuICogQGZ1bmN0aW9uIHJlZ2lzdGVyQmxvY2tcbiAqIEBkZXNjcmlwdGlvbiByZWdpc3RlciB0aGUgYmxvY2tcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG5cdGlkOiBCTE9DSy5uYW1lLFxuXHR0aXRsZTogQkxPQ0sudGl0bGUsXG5cblx0LyoqXG5cdCAqIEFuIGljb24gcHJvcGVydHkgc2hvdWxkIGJlIHNwZWNpZmllZCB0byBtYWtlIGl0IGVhc2llciB0byBpZGVudGlmeSBhIGJsb2NrLlxuXHQgKiBUaGVzZSBjYW4gYmUgYW55IG9mIFdvcmRQcmVzc+KAmSBEYXNoaWNvbnMsIG9yIGEgY3VzdG9tIHN2ZyBlbGVtZW50LlxuXHQgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLndvcmRwcmVzcy5vcmcvcmVzb3VyY2UvZGFzaGljb25zL1xuXHQgKi9cblx0aWNvbjogJ2lkJywgLy8gVE9ETzogYWNjb3VudCBpY29uXG5cblx0LyoqXG5cdCAqIEJsb2NrcyBhcmUgZ3JvdXBlZCBpbnRvIGNhdGVnb3JpZXMgdG8gaGVscCB3aXRoIGJyb3dzaW5nIGFuZCBkaXNjb3ZlcnkuXG5cdCAqIFRoZSBjYXRlZ29yaWVzIHByb3ZpZGVkIGJ5IGNvcmUgYXJlIGNvbW1vbiwgZW1iZWQsIGZvcm1hdHRpbmcsIGxheW91dCwgYW5kIHdpZGdldHMuXG5cdCAqL1xuXHRjYXRlZ29yeTogQkxPQ0suY2F0ZWdvcnksXG5cblx0LyoqXG5cdCAqIEFkZGl0aW9uYWwga2V5d29yZHMgdG8gc3VyZmFjZSB0aGlzIGJsb2NrIHZpYSBzZWFyY2ggaW5wdXQuIExpbWl0ZWQgdG8gMy5cblx0ICovXG5cdGtleXdvcmRzOiBCTE9DSy5rZXl3b3JkcyxcblxuXHQvKipcblx0ICogT3B0aW9uYWwgYmxvY2sgZXh0ZW5kZWQgc3VwcG9ydCBmZWF0dXJlcy5cblx0ICovXG5cdHN1cHBvcnRzOiB7XG5cdFx0Ly8gUmVtb3ZlcyBzdXBwb3J0IGZvciBhbiBIVE1MIG1vZGUuXG5cdFx0aHRtbDogZmFsc2UsXG5cdH0sXG5cblx0LyoqXG5cdCAqIEF0dHJpYnV0ZXMgdXNlZCB0byBzYXZlIGFuZCBlZGl0IG91ciBibG9jay5cblx0ICovXG5cdGF0dHJpYnV0ZXM6IHtcblx0XHRzaG9ydGNvZGU6IHtcblx0XHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdFx0ZGVmYXVsdDogJycsXG5cdFx0fSxcblx0fSxcblxuXHQvKipcblx0ICogVGhlIGVkaXQgZnVuY3Rpb24gZGVzY3JpYmVzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGJsb2NrIGluIHRoZSBjb250ZXh0IG9mIHRoZSBlZGl0b3IuXG5cdCAqIFRoaXMgcmVwcmVzZW50cyB3aGF0IHRoZSBlZGl0b3Igd2lsbCByZW5kZXIgd2hlbiB0aGUgYmxvY2sgaXMgdXNlZC5cblx0ICogQHNlZSBodHRwczovL3dvcmRwcmVzcy5vcmcvZ3V0ZW5iZXJnL2hhbmRib29rL2Jsb2NrLWVkaXQtc2F2ZS8jZWRpdFxuXHQgKlxuXHQgKiBAcGFyYW0gIHtPYmplY3R9IFtwcm9wc10gUHJvcGVydGllcyBwYXNzZWQgZnJvbSB0aGUgZWRpdG9yLlxuXHQgKiBAcmV0dXJuIHtFbGVtZW50fSAgICAgICAgRWxlbWVudCB0byByZW5kZXIuXG5cdCAqL1xuXHRlZGl0OiBlZGl0QmxvY2ssXG5cblx0LyoqXG5cdCAqIFRoZSBzYXZlIGZ1bmN0aW9uIGRlZmluZXMgdGhlIHdheSBpbiB3aGljaCB0aGUgZGlmZmVyZW50IGF0dHJpYnV0ZXMgc2hvdWxkIGJlIGNvbWJpbmVkXG5cdCAqIGludG8gdGhlIGZpbmFsIG1hcmt1cCwgd2hpY2ggaXMgdGhlbiBzZXJpYWxpemVkIGJ5IEd1dGVuYmVyZyBpbnRvIGBwb3N0X2NvbnRlbnRgLlxuXHQgKiBAc2VlIGh0dHBzOi8vd29yZHByZXNzLm9yZy9ndXRlbmJlcmcvaGFuZGJvb2svYmxvY2stZWRpdC1zYXZlLyNzYXZlXG5cdCAqXG5cdCAqIEBwYXJhbSAge09iamVjdH0gW3Byb3BzXSBQcm9wZXJ0aWVzIHBhc3NlZCBmcm9tIHRoZSBlZGl0b3IuXG5cdCAqIEByZXR1cm4ge0VsZW1lbnR9IEVsZW1lbnQgdG8gcmVuZGVyLlxuXHQgKi9cblx0c2F2ZTogc2F2ZUJsb2NrLFxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vZ3V0ZW5iZXJnL2Jsb2Nrcy9hY2NvdW50LXByb2ZpbGUvYWNjb3VudC1wcm9maWxlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///244\n"); - -/***/ }), -/* 245 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _wpSettings = __webpack_require__(3);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\n/**\n * @module Edit\n * @description Account profile block edit method.\n */\nvar editBlock = function editBlock(props) {\n var setAttributes = props.setAttributes;\n var blockImage = \"\".concat(_wpSettings.ADMIN_IMAGES, \"Gutenberg-Block_My-Account.png\");\n setAttributes({\n shortcode: _gutenbergSettings.GUTENBERG_ACCOUNT.shortcode\n });\n return [wp.element.createElement(\"h2\", {\n className: props.className,\n key: \"account-profile-shortcode-title\"\n }, _gutenbergSettings.GUTENBERG_ACCOUNT.block_html.title), wp.element.createElement(\"img\", {\n src: blockImage,\n alt: _gutenbergSettings.GUTENBERG_ACCOUNT.title,\n className: props.className,\n key: \"account-profile-shortcode-preview\"\n })];\n};\n\nvar _default = editBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvYWNjb3VudC1wcm9maWxlL2VkaXQuanM/MmQ1MSJdLCJuYW1lcyI6WyJlZGl0QmxvY2siLCJwcm9wcyIsInNldEF0dHJpYnV0ZXMiLCJibG9ja0ltYWdlIiwic2hvcnRjb2RlIiwiY2xhc3NOYW1lIiwiYmxvY2tfaHRtbCIsInRpdGxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBTUE7O0FBQ0E7O0FBUEE7Ozs7QUFTQSxJQUFNQSxZQUFZLFNBQVpBLFNBQVksQ0FBQ0MsS0FBRCxFQUFXO0FBQUEsTUFDcEJDLGFBRG9CLEdBQ0ZELEtBREUsQ0FDcEJDLGFBRG9CO0FBRTVCLE1BQU1DLGtGQUFOO0FBRUFELGdCQUFjO0FBQ2JFLGVBQVcscUNBQU1BO0FBREosR0FBZDtBQUlBLFNBQU8sQ0FDTjtBQUNDLGVBQVdILE1BQU1JLFNBRGxCO0FBRUMsU0FBSTtBQUZMLEtBSUcscUNBQU1DLFVBQU4sQ0FBaUJDLEtBSnBCLENBRE0sRUFPTjtBQUNDLFNBQUtKLFVBRE47QUFFQyxTQUFLLHFDQUFNSSxLQUZaO0FBR0MsZUFBV04sTUFBTUksU0FIbEI7QUFJQyxTQUFJO0FBSkwsSUFQTSxDQUFQO0FBY0EsQ0F0QkQ7O2VBd0JlTCxTIiwiZmlsZSI6IjI0NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBFZGl0XG4gKiBAZGVzY3JpcHRpb24gQWNjb3VudCBwcm9maWxlIGJsb2NrIGVkaXQgbWV0aG9kLlxuICovXG5cblxuaW1wb3J0IHsgQURNSU5fSU1BR0VTIH0gZnJvbSAnLi4vLi4vLi4vY29uZmlnL3dwLXNldHRpbmdzJztcbmltcG9ydCB7IEdVVEVOQkVSR19BQ0NPVU5UIGFzIEJMT0NLIH0gZnJvbSAnLi4vLi4vY29uZmlnL2d1dGVuYmVyZy1zZXR0aW5ncyc7XG5cbmNvbnN0IGVkaXRCbG9jayA9IChwcm9wcykgPT4ge1xuXHRjb25zdCB7IHNldEF0dHJpYnV0ZXMgfSA9IHByb3BzO1xuXHRjb25zdCBibG9ja0ltYWdlID0gYCR7QURNSU5fSU1BR0VTfUd1dGVuYmVyZy1CbG9ja19NeS1BY2NvdW50LnBuZ2A7XG5cblx0c2V0QXR0cmlidXRlcyh7XG5cdFx0c2hvcnRjb2RlOiBCTE9DSy5zaG9ydGNvZGUsXG5cdH0pO1xuXG5cdHJldHVybiBbXG5cdFx0PGgyXG5cdFx0XHRjbGFzc05hbWU9e3Byb3BzLmNsYXNzTmFtZX1cblx0XHRcdGtleT1cImFjY291bnQtcHJvZmlsZS1zaG9ydGNvZGUtdGl0bGVcIlxuXHRcdD5cblx0XHRcdHsgQkxPQ0suYmxvY2tfaHRtbC50aXRsZSB9XG5cdFx0PC9oMj4sXG5cdFx0PGltZ1xuXHRcdFx0c3JjPXtibG9ja0ltYWdlfVxuXHRcdFx0YWx0PXtCTE9DSy50aXRsZX1cblx0XHRcdGNsYXNzTmFtZT17cHJvcHMuY2xhc3NOYW1lfVxuXHRcdFx0a2V5PVwiYWNjb3VudC1wcm9maWxlLXNob3J0Y29kZS1wcmV2aWV3XCJcblx0XHQvPixcblx0XTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGVkaXRCbG9jaztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vZ3V0ZW5iZXJnL2Jsb2Nrcy9hY2NvdW50LXByb2ZpbGUvZWRpdC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///245\n"); - -/***/ }), -/* 246 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * @module Save\n * @description Account profile block save method.\n */\nvar saveBlock = function saveBlock(props) {\n return props.attributes.shortcode;\n};\n\nvar _default = saveBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvYWNjb3VudC1wcm9maWxlL3NhdmUuanM/OTU3YyJdLCJuYW1lcyI6WyJzYXZlQmxvY2siLCJwcm9wcyIsImF0dHJpYnV0ZXMiLCJzaG9ydGNvZGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7OztBQUtBLElBQU1BLFlBQVksU0FBWkEsU0FBWTtBQUFBLFNBQVNDLE1BQU1DLFVBQU4sQ0FBaUJDLFNBQTFCO0FBQUEsQ0FBbEI7O2VBRWVILFMiLCJmaWxlIjoiMjQ2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIFNhdmVcbiAqIEBkZXNjcmlwdGlvbiBBY2NvdW50IHByb2ZpbGUgYmxvY2sgc2F2ZSBtZXRob2QuXG4gKi9cblxuY29uc3Qgc2F2ZUJsb2NrID0gcHJvcHMgPT4gcHJvcHMuYXR0cmlidXRlcy5zaG9ydGNvZGU7XG5cbmV4cG9ydCBkZWZhdWx0IHNhdmVCbG9jaztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vZ3V0ZW5iZXJnL2Jsb2Nrcy9hY2NvdW50LXByb2ZpbGUvc2F2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///246\n"); - -/***/ }), -/* 247 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(5);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\nvar _edit = _interopRequireDefault(__webpack_require__(248));\n\nvar _save = _interopRequireDefault(__webpack_require__(249));\n\n/**\n * @module Gutenberg\n * @description Register the Address List Gutenberg block\n */\n\n/**\n * @function registerBlock\n * @description register the block\n */\nvar _default = {\n id: _gutenbergSettings.GUTENBERG_ADDRESS.name,\n title: _gutenbergSettings.GUTENBERG_ADDRESS.title,\n\n /**\n * An icon property should be specified to make it easier to identify a block.\n * These can be any of WordPress’ Dashicons, or a custom svg element.\n * @see https://developer.wordpress.org/resource/dashicons/\n */\n icon: 'location',\n // TODO: address icon\n\n /**\n * Blocks are grouped into categories to help with browsing and discovery.\n * The categories provided by core are common, embed, formatting, layout, and widgets.\n */\n category: _gutenbergSettings.GUTENBERG_ADDRESS.category,\n\n /**\n * Additional keywords to surface this block via search input. Limited to 3.\n */\n keywords: _gutenbergSettings.GUTENBERG_ADDRESS.keywords,\n\n /**\n * Optional block extended support features.\n */\n supports: {\n // Removes support for an HTML mode.\n html: false\n },\n\n /**\n * Attributes used to save and edit our block.\n */\n attributes: {\n shortcode: {\n type: 'string',\n default: ''\n }\n },\n\n /**\n * The edit function describes the structure of the block in the context of the editor.\n * This represents what the editor will render when the block is used.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#edit\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n edit: _edit.default,\n\n /**\n * The save function defines the way in which the different attributes should be combined\n * into the final markup, which is then serialized by Gutenberg into `post_content`.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#save\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n save: _save.default\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvYWRkcmVzcy1saXN0L2FkZHJlc3MtbGlzdC5qcz9mMGJjIl0sIm5hbWVzIjpbImlkIiwibmFtZSIsInRpdGxlIiwiaWNvbiIsImNhdGVnb3J5Iiwia2V5d29yZHMiLCJzdXBwb3J0cyIsImh0bWwiLCJhdHRyaWJ1dGVzIiwic2hvcnRjb2RlIiwidHlwZSIsImRlZmF1bHQiLCJlZGl0Iiwic2F2ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFLQTs7QUFDQTs7QUFDQTs7QUFQQTs7Ozs7QUFTQTs7OztlQUtlO0FBQ2RBLE1BQUkscUNBQU1DLElBREk7QUFFZEMsU0FBTyxxQ0FBTUEsS0FGQzs7QUFJZDs7Ozs7QUFLQUMsUUFBTSxVQVRRO0FBU0k7O0FBRWxCOzs7O0FBSUFDLFlBQVUscUNBQU1BLFFBZkY7O0FBaUJkOzs7QUFHQUMsWUFBVSxxQ0FBTUEsUUFwQkY7O0FBc0JkOzs7QUFHQUMsWUFBVTtBQUNUO0FBQ0FDLFVBQU07QUFGRyxHQXpCSTs7QUE4QmQ7OztBQUdBQyxjQUFZO0FBQ1hDLGVBQVc7QUFDVkMsWUFBTSxRQURJO0FBRVZDLGVBQVM7QUFGQztBQURBLEdBakNFOztBQXdDZDs7Ozs7Ozs7QUFRQUMscUJBaERjOztBQWtEZDs7Ozs7Ozs7QUFRQUM7QUExRGMsQyIsImZpbGUiOiIyNDcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgR3V0ZW5iZXJnXG4gKiBAZGVzY3JpcHRpb24gUmVnaXN0ZXIgdGhlIEFkZHJlc3MgTGlzdCBHdXRlbmJlcmcgYmxvY2tcbiAqL1xuXG5pbXBvcnQgeyBHVVRFTkJFUkdfQUREUkVTUyBhcyBCTE9DSyB9IGZyb20gJy4uLy4uL2NvbmZpZy9ndXRlbmJlcmctc2V0dGluZ3MnO1xuaW1wb3J0IGVkaXRCbG9jayBmcm9tICcuL2VkaXQnO1xuaW1wb3J0IHNhdmVCbG9jayBmcm9tICcuL3NhdmUnO1xuXG4vKipcbiAqIEBmdW5jdGlvbiByZWdpc3RlckJsb2NrXG4gKiBAZGVzY3JpcHRpb24gcmVnaXN0ZXIgdGhlIGJsb2NrXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuXHRpZDogQkxPQ0submFtZSxcblx0dGl0bGU6IEJMT0NLLnRpdGxlLFxuXG5cdC8qKlxuXHQgKiBBbiBpY29uIHByb3BlcnR5IHNob3VsZCBiZSBzcGVjaWZpZWQgdG8gbWFrZSBpdCBlYXNpZXIgdG8gaWRlbnRpZnkgYSBibG9jay5cblx0ICogVGhlc2UgY2FuIGJlIGFueSBvZiBXb3JkUHJlc3PigJkgRGFzaGljb25zLCBvciBhIGN1c3RvbSBzdmcgZWxlbWVudC5cblx0ICogQHNlZSBodHRwczovL2RldmVsb3Blci53b3JkcHJlc3Mub3JnL3Jlc291cmNlL2Rhc2hpY29ucy9cblx0ICovXG5cdGljb246ICdsb2NhdGlvbicsIC8vIFRPRE86IGFkZHJlc3MgaWNvblxuXG5cdC8qKlxuXHQgKiBCbG9ja3MgYXJlIGdyb3VwZWQgaW50byBjYXRlZ29yaWVzIHRvIGhlbHAgd2l0aCBicm93c2luZyBhbmQgZGlzY292ZXJ5LlxuXHQgKiBUaGUgY2F0ZWdvcmllcyBwcm92aWRlZCBieSBjb3JlIGFyZSBjb21tb24sIGVtYmVkLCBmb3JtYXR0aW5nLCBsYXlvdXQsIGFuZCB3aWRnZXRzLlxuXHQgKi9cblx0Y2F0ZWdvcnk6IEJMT0NLLmNhdGVnb3J5LFxuXG5cdC8qKlxuXHQgKiBBZGRpdGlvbmFsIGtleXdvcmRzIHRvIHN1cmZhY2UgdGhpcyBibG9jayB2aWEgc2VhcmNoIGlucHV0LiBMaW1pdGVkIHRvIDMuXG5cdCAqL1xuXHRrZXl3b3JkczogQkxPQ0sua2V5d29yZHMsXG5cblx0LyoqXG5cdCAqIE9wdGlvbmFsIGJsb2NrIGV4dGVuZGVkIHN1cHBvcnQgZmVhdHVyZXMuXG5cdCAqL1xuXHRzdXBwb3J0czoge1xuXHRcdC8vIFJlbW92ZXMgc3VwcG9ydCBmb3IgYW4gSFRNTCBtb2RlLlxuXHRcdGh0bWw6IGZhbHNlLFxuXHR9LFxuXG5cdC8qKlxuXHQgKiBBdHRyaWJ1dGVzIHVzZWQgdG8gc2F2ZSBhbmQgZWRpdCBvdXIgYmxvY2suXG5cdCAqL1xuXHRhdHRyaWJ1dGVzOiB7XG5cdFx0c2hvcnRjb2RlOiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRcdGRlZmF1bHQ6ICcnLFxuXHRcdH0sXG5cdH0sXG5cblx0LyoqXG5cdCAqIFRoZSBlZGl0IGZ1bmN0aW9uIGRlc2NyaWJlcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBibG9jayBpbiB0aGUgY29udGV4dCBvZiB0aGUgZWRpdG9yLlxuXHQgKiBUaGlzIHJlcHJlc2VudHMgd2hhdCB0aGUgZWRpdG9yIHdpbGwgcmVuZGVyIHdoZW4gdGhlIGJsb2NrIGlzIHVzZWQuXG5cdCAqIEBzZWUgaHR0cHM6Ly93b3JkcHJlc3Mub3JnL2d1dGVuYmVyZy9oYW5kYm9vay9ibG9jay1lZGl0LXNhdmUvI2VkaXRcblx0ICpcblx0ICogQHBhcmFtICB7T2JqZWN0fSBbcHJvcHNdIFByb3BlcnRpZXMgcGFzc2VkIGZyb20gdGhlIGVkaXRvci5cblx0ICogQHJldHVybiB7RWxlbWVudH0gICAgICAgIEVsZW1lbnQgdG8gcmVuZGVyLlxuXHQgKi9cblx0ZWRpdDogZWRpdEJsb2NrLFxuXG5cdC8qKlxuXHQgKiBUaGUgc2F2ZSBmdW5jdGlvbiBkZWZpbmVzIHRoZSB3YXkgaW4gd2hpY2ggdGhlIGRpZmZlcmVudCBhdHRyaWJ1dGVzIHNob3VsZCBiZSBjb21iaW5lZFxuXHQgKiBpbnRvIHRoZSBmaW5hbCBtYXJrdXAsIHdoaWNoIGlzIHRoZW4gc2VyaWFsaXplZCBieSBHdXRlbmJlcmcgaW50byBgcG9zdF9jb250ZW50YC5cblx0ICogQHNlZSBodHRwczovL3dvcmRwcmVzcy5vcmcvZ3V0ZW5iZXJnL2hhbmRib29rL2Jsb2NrLWVkaXQtc2F2ZS8jc2F2ZVxuXHQgKlxuXHQgKiBAcGFyYW0gIHtPYmplY3R9IFtwcm9wc10gUHJvcGVydGllcyBwYXNzZWQgZnJvbSB0aGUgZWRpdG9yLlxuXHQgKiBAcmV0dXJuIHtFbGVtZW50fSBFbGVtZW50IHRvIHJlbmRlci5cblx0ICovXG5cdHNhdmU6IHNhdmVCbG9jayxcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvYWRkcmVzcy1saXN0L2FkZHJlc3MtbGlzdC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///247\n"); - -/***/ }), -/* 248 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _wpSettings = __webpack_require__(3);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\n/**\n * @module Edit\n * @description Address list block edit method.\n */\nvar editBlock = function editBlock(props) {\n var setAttributes = props.setAttributes;\n var blockImage = \"\".concat(_wpSettings.ADMIN_IMAGES, \"Gutenberg-Block_Addresses.png\");\n setAttributes({\n shortcode: _gutenbergSettings.GUTENBERG_ADDRESS.shortcode\n });\n return [wp.element.createElement(\"h2\", {\n className: props.className,\n key: \"address-list-shortcode-title\"\n }, _gutenbergSettings.GUTENBERG_ADDRESS.block_html.title), wp.element.createElement(\"img\", {\n src: blockImage,\n alt: _gutenbergSettings.GUTENBERG_ADDRESS.title,\n className: props.className,\n key: \"address-list-shortcode-preview\"\n })];\n};\n\nvar _default = editBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvYWRkcmVzcy1saXN0L2VkaXQuanM/ODcxMCJdLCJuYW1lcyI6WyJlZGl0QmxvY2siLCJwcm9wcyIsInNldEF0dHJpYnV0ZXMiLCJibG9ja0ltYWdlIiwic2hvcnRjb2RlIiwiY2xhc3NOYW1lIiwiYmxvY2tfaHRtbCIsInRpdGxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBTUE7O0FBQ0E7O0FBUEE7Ozs7QUFTQSxJQUFNQSxZQUFZLFNBQVpBLFNBQVksQ0FBQ0MsS0FBRCxFQUFXO0FBQUEsTUFDcEJDLGFBRG9CLEdBQ0ZELEtBREUsQ0FDcEJDLGFBRG9CO0FBRTVCLE1BQU1DLGlGQUFOO0FBRUFELGdCQUFjO0FBQ2JFLGVBQVcscUNBQU1BO0FBREosR0FBZDtBQUlBLFNBQU8sQ0FDTjtBQUNDLGVBQVdILE1BQU1JLFNBRGxCO0FBRUMsU0FBSTtBQUZMLEtBSUcscUNBQU1DLFVBQU4sQ0FBaUJDLEtBSnBCLENBRE0sRUFPTjtBQUNDLFNBQUtKLFVBRE47QUFFQyxTQUFLLHFDQUFNSSxLQUZaO0FBR0MsZUFBV04sTUFBTUksU0FIbEI7QUFJQyxTQUFJO0FBSkwsSUFQTSxDQUFQO0FBY0EsQ0F0QkQ7O2VBd0JlTCxTIiwiZmlsZSI6IjI0OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBFZGl0XG4gKiBAZGVzY3JpcHRpb24gQWRkcmVzcyBsaXN0IGJsb2NrIGVkaXQgbWV0aG9kLlxuICovXG5cblxuaW1wb3J0IHsgQURNSU5fSU1BR0VTIH0gZnJvbSAnLi4vLi4vLi4vY29uZmlnL3dwLXNldHRpbmdzJztcbmltcG9ydCB7IEdVVEVOQkVSR19BRERSRVNTIGFzIEJMT0NLIH0gZnJvbSAnLi4vLi4vY29uZmlnL2d1dGVuYmVyZy1zZXR0aW5ncyc7XG5cbmNvbnN0IGVkaXRCbG9jayA9IChwcm9wcykgPT4ge1xuXHRjb25zdCB7IHNldEF0dHJpYnV0ZXMgfSA9IHByb3BzO1xuXHRjb25zdCBibG9ja0ltYWdlID0gYCR7QURNSU5fSU1BR0VTfUd1dGVuYmVyZy1CbG9ja19BZGRyZXNzZXMucG5nYDtcblxuXHRzZXRBdHRyaWJ1dGVzKHtcblx0XHRzaG9ydGNvZGU6IEJMT0NLLnNob3J0Y29kZSxcblx0fSk7XG5cblx0cmV0dXJuIFtcblx0XHQ8aDJcblx0XHRcdGNsYXNzTmFtZT17cHJvcHMuY2xhc3NOYW1lfVxuXHRcdFx0a2V5PVwiYWRkcmVzcy1saXN0LXNob3J0Y29kZS10aXRsZVwiXG5cdFx0PlxuXHRcdFx0eyBCTE9DSy5ibG9ja19odG1sLnRpdGxlIH1cblx0XHQ8L2gyPixcblx0XHQ8aW1nXG5cdFx0XHRzcmM9e2Jsb2NrSW1hZ2V9XG5cdFx0XHRhbHQ9e0JMT0NLLnRpdGxlfVxuXHRcdFx0Y2xhc3NOYW1lPXtwcm9wcy5jbGFzc05hbWV9XG5cdFx0XHRrZXk9XCJhZGRyZXNzLWxpc3Qtc2hvcnRjb2RlLXByZXZpZXdcIlxuXHRcdC8+LFxuXHRdO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZWRpdEJsb2NrO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL2pzL3NyYy9hZG1pbi9ndXRlbmJlcmcvYmxvY2tzL2FkZHJlc3MtbGlzdC9lZGl0LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///248\n"); - -/***/ }), -/* 249 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * @module Save\n * @description Address list block save method.\n */\nvar saveBlock = function saveBlock(props) {\n return props.attributes.shortcode;\n};\n\nvar _default = saveBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvYWRkcmVzcy1saXN0L3NhdmUuanM/ZWY5NyJdLCJuYW1lcyI6WyJzYXZlQmxvY2siLCJwcm9wcyIsImF0dHJpYnV0ZXMiLCJzaG9ydGNvZGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7OztBQUtBLElBQU1BLFlBQVksU0FBWkEsU0FBWTtBQUFBLFNBQVNDLE1BQU1DLFVBQU4sQ0FBaUJDLFNBQTFCO0FBQUEsQ0FBbEI7O2VBRWVILFMiLCJmaWxlIjoiMjQ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIFNhdmVcbiAqIEBkZXNjcmlwdGlvbiBBZGRyZXNzIGxpc3QgYmxvY2sgc2F2ZSBtZXRob2QuXG4gKi9cblxuY29uc3Qgc2F2ZUJsb2NrID0gcHJvcHMgPT4gcHJvcHMuYXR0cmlidXRlcy5zaG9ydGNvZGU7XG5cbmV4cG9ydCBkZWZhdWx0IHNhdmVCbG9jaztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vZ3V0ZW5iZXJnL2Jsb2Nrcy9hZGRyZXNzLWxpc3Qvc2F2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///249\n"); - -/***/ }), -/* 250 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(5);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\nvar _edit = _interopRequireDefault(__webpack_require__(251));\n\nvar _save = _interopRequireDefault(__webpack_require__(252));\n\n/**\n * @module Gutenberg\n * @description Register the Cart Gutenberg block\n */\n\n/**\n * @function registerBlock\n * @description register the block\n */\nvar _default = {\n id: _gutenbergSettings.GUTENBERG_ORDERS.name,\n title: _gutenbergSettings.GUTENBERG_ORDERS.title,\n\n /**\n * An icon property should be specified to make it easier to identify a block.\n * These can be any of WordPress’ Dashicons, or a custom svg element.\n * @see https://developer.wordpress.org/resource/dashicons/\n */\n icon: 'clipboard',\n // TODO: order history icon\n\n /**\n * Blocks are grouped into categories to help with browsing and discovery.\n * The categories provided by core are common, embed, formatting, layout, and widgets.\n */\n category: _gutenbergSettings.GUTENBERG_ORDERS.category,\n\n /**\n * Additional keywords to surface this block via search input. Limited to 3.\n */\n keywords: _gutenbergSettings.GUTENBERG_ORDERS.keywords,\n\n /**\n * Optional block extended support features.\n */\n supports: {\n // Removes support for an HTML mode.\n html: false\n },\n\n /**\n * Attributes used to save and edit our block.\n */\n attributes: {\n shortcode: {\n type: 'string',\n default: ''\n }\n },\n\n /**\n * The edit function describes the structure of the block in the context of the editor.\n * This represents what the editor will render when the block is used.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#edit\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n edit: _edit.default,\n\n /**\n * The save function defines the way in which the different attributes should be combined\n * into the final markup, which is then serialized by Gutenberg into `post_content`.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#save\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n save: _save.default\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3Mvb3JkZXItaGlzdG9yeS9vcmRlci1oaXN0b3J5LmpzPzRmZjQiXSwibmFtZXMiOlsiaWQiLCJuYW1lIiwidGl0bGUiLCJpY29uIiwiY2F0ZWdvcnkiLCJrZXl3b3JkcyIsInN1cHBvcnRzIiwiaHRtbCIsImF0dHJpYnV0ZXMiLCJzaG9ydGNvZGUiLCJ0eXBlIiwiZGVmYXVsdCIsImVkaXQiLCJzYXZlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUtBOztBQUNBOztBQUNBOztBQVBBOzs7OztBQVNBOzs7O2VBS2U7QUFDZEEsTUFBSSxvQ0FBTUMsSUFESTtBQUVkQyxTQUFPLG9DQUFNQSxLQUZDOztBQUlkOzs7OztBQUtBQyxRQUFNLFdBVFE7QUFTSzs7QUFFbkI7Ozs7QUFJQUMsWUFBVSxvQ0FBTUEsUUFmRjs7QUFpQmQ7OztBQUdBQyxZQUFVLG9DQUFNQSxRQXBCRjs7QUFzQmQ7OztBQUdBQyxZQUFVO0FBQ1Q7QUFDQUMsVUFBTTtBQUZHLEdBekJJOztBQThCZDs7O0FBR0FDLGNBQVk7QUFDWEMsZUFBVztBQUNWQyxZQUFNLFFBREk7QUFFVkMsZUFBUztBQUZDO0FBREEsR0FqQ0U7O0FBd0NkOzs7Ozs7OztBQVFBQyxxQkFoRGM7O0FBa0RkOzs7Ozs7OztBQVFBQztBQTFEYyxDIiwiZmlsZSI6IjI1MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBHdXRlbmJlcmdcbiAqIEBkZXNjcmlwdGlvbiBSZWdpc3RlciB0aGUgQ2FydCBHdXRlbmJlcmcgYmxvY2tcbiAqL1xuXG5pbXBvcnQgeyBHVVRFTkJFUkdfT1JERVJTIGFzIEJMT0NLIH0gZnJvbSAnLi4vLi4vY29uZmlnL2d1dGVuYmVyZy1zZXR0aW5ncyc7XG5pbXBvcnQgZWRpdEJsb2NrIGZyb20gJy4vZWRpdCc7XG5pbXBvcnQgc2F2ZUJsb2NrIGZyb20gJy4vc2F2ZSc7XG5cbi8qKlxuICogQGZ1bmN0aW9uIHJlZ2lzdGVyQmxvY2tcbiAqIEBkZXNjcmlwdGlvbiByZWdpc3RlciB0aGUgYmxvY2tcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG5cdGlkOiBCTE9DSy5uYW1lLFxuXHR0aXRsZTogQkxPQ0sudGl0bGUsXG5cblx0LyoqXG5cdCAqIEFuIGljb24gcHJvcGVydHkgc2hvdWxkIGJlIHNwZWNpZmllZCB0byBtYWtlIGl0IGVhc2llciB0byBpZGVudGlmeSBhIGJsb2NrLlxuXHQgKiBUaGVzZSBjYW4gYmUgYW55IG9mIFdvcmRQcmVzc+KAmSBEYXNoaWNvbnMsIG9yIGEgY3VzdG9tIHN2ZyBlbGVtZW50LlxuXHQgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLndvcmRwcmVzcy5vcmcvcmVzb3VyY2UvZGFzaGljb25zL1xuXHQgKi9cblx0aWNvbjogJ2NsaXBib2FyZCcsIC8vIFRPRE86IG9yZGVyIGhpc3RvcnkgaWNvblxuXG5cdC8qKlxuXHQgKiBCbG9ja3MgYXJlIGdyb3VwZWQgaW50byBjYXRlZ29yaWVzIHRvIGhlbHAgd2l0aCBicm93c2luZyBhbmQgZGlzY292ZXJ5LlxuXHQgKiBUaGUgY2F0ZWdvcmllcyBwcm92aWRlZCBieSBjb3JlIGFyZSBjb21tb24sIGVtYmVkLCBmb3JtYXR0aW5nLCBsYXlvdXQsIGFuZCB3aWRnZXRzLlxuXHQgKi9cblx0Y2F0ZWdvcnk6IEJMT0NLLmNhdGVnb3J5LFxuXG5cdC8qKlxuXHQgKiBBZGRpdGlvbmFsIGtleXdvcmRzIHRvIHN1cmZhY2UgdGhpcyBibG9jayB2aWEgc2VhcmNoIGlucHV0LiBMaW1pdGVkIHRvIDMuXG5cdCAqL1xuXHRrZXl3b3JkczogQkxPQ0sua2V5d29yZHMsXG5cblx0LyoqXG5cdCAqIE9wdGlvbmFsIGJsb2NrIGV4dGVuZGVkIHN1cHBvcnQgZmVhdHVyZXMuXG5cdCAqL1xuXHRzdXBwb3J0czoge1xuXHRcdC8vIFJlbW92ZXMgc3VwcG9ydCBmb3IgYW4gSFRNTCBtb2RlLlxuXHRcdGh0bWw6IGZhbHNlLFxuXHR9LFxuXG5cdC8qKlxuXHQgKiBBdHRyaWJ1dGVzIHVzZWQgdG8gc2F2ZSBhbmQgZWRpdCBvdXIgYmxvY2suXG5cdCAqL1xuXHRhdHRyaWJ1dGVzOiB7XG5cdFx0c2hvcnRjb2RlOiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRcdGRlZmF1bHQ6ICcnLFxuXHRcdH0sXG5cdH0sXG5cblx0LyoqXG5cdCAqIFRoZSBlZGl0IGZ1bmN0aW9uIGRlc2NyaWJlcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBibG9jayBpbiB0aGUgY29udGV4dCBvZiB0aGUgZWRpdG9yLlxuXHQgKiBUaGlzIHJlcHJlc2VudHMgd2hhdCB0aGUgZWRpdG9yIHdpbGwgcmVuZGVyIHdoZW4gdGhlIGJsb2NrIGlzIHVzZWQuXG5cdCAqIEBzZWUgaHR0cHM6Ly93b3JkcHJlc3Mub3JnL2d1dGVuYmVyZy9oYW5kYm9vay9ibG9jay1lZGl0LXNhdmUvI2VkaXRcblx0ICpcblx0ICogQHBhcmFtICB7T2JqZWN0fSBbcHJvcHNdIFByb3BlcnRpZXMgcGFzc2VkIGZyb20gdGhlIGVkaXRvci5cblx0ICogQHJldHVybiB7RWxlbWVudH0gICAgICAgIEVsZW1lbnQgdG8gcmVuZGVyLlxuXHQgKi9cblx0ZWRpdDogZWRpdEJsb2NrLFxuXG5cdC8qKlxuXHQgKiBUaGUgc2F2ZSBmdW5jdGlvbiBkZWZpbmVzIHRoZSB3YXkgaW4gd2hpY2ggdGhlIGRpZmZlcmVudCBhdHRyaWJ1dGVzIHNob3VsZCBiZSBjb21iaW5lZFxuXHQgKiBpbnRvIHRoZSBmaW5hbCBtYXJrdXAsIHdoaWNoIGlzIHRoZW4gc2VyaWFsaXplZCBieSBHdXRlbmJlcmcgaW50byBgcG9zdF9jb250ZW50YC5cblx0ICogQHNlZSBodHRwczovL3dvcmRwcmVzcy5vcmcvZ3V0ZW5iZXJnL2hhbmRib29rL2Jsb2NrLWVkaXQtc2F2ZS8jc2F2ZVxuXHQgKlxuXHQgKiBAcGFyYW0gIHtPYmplY3R9IFtwcm9wc10gUHJvcGVydGllcyBwYXNzZWQgZnJvbSB0aGUgZWRpdG9yLlxuXHQgKiBAcmV0dXJuIHtFbGVtZW50fSBFbGVtZW50IHRvIHJlbmRlci5cblx0ICovXG5cdHNhdmU6IHNhdmVCbG9jayxcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3Mvb3JkZXItaGlzdG9yeS9vcmRlci1oaXN0b3J5LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///250\n"); - -/***/ }), -/* 251 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _wpSettings = __webpack_require__(3);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\n/**\n * @module Edit\n * @description Order History block edit method.\n */\nvar editBlock = function editBlock(props) {\n var setAttributes = props.setAttributes;\n var blockImage = \"\".concat(_wpSettings.ADMIN_IMAGES, \"Gutenberg-Block_Order-History.png\");\n setAttributes({\n shortcode: _gutenbergSettings.GUTENBERG_ORDERS.shortcode\n });\n return [wp.element.createElement(\"h2\", {\n className: props.className,\n key: \"order-history-shortcode-title\"\n }, _gutenbergSettings.GUTENBERG_ORDERS.block_html.title), wp.element.createElement(\"img\", {\n src: blockImage,\n alt: _gutenbergSettings.GUTENBERG_ORDERS.title,\n className: props.className,\n key: \"order-history-shortcode-preview\"\n })];\n};\n\nvar _default = editBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3Mvb3JkZXItaGlzdG9yeS9lZGl0LmpzPzU1YzkiXSwibmFtZXMiOlsiZWRpdEJsb2NrIiwicHJvcHMiLCJzZXRBdHRyaWJ1dGVzIiwiYmxvY2tJbWFnZSIsInNob3J0Y29kZSIsImNsYXNzTmFtZSIsImJsb2NrX2h0bWwiLCJ0aXRsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQU1BOztBQUNBOztBQVBBOzs7O0FBU0EsSUFBTUEsWUFBWSxTQUFaQSxTQUFZLENBQUNDLEtBQUQsRUFBVztBQUFBLE1BQ3BCQyxhQURvQixHQUNGRCxLQURFLENBQ3BCQyxhQURvQjtBQUU1QixNQUFNQyxxRkFBTjtBQUVBRCxnQkFBYztBQUNiRSxlQUFXLG9DQUFNQTtBQURKLEdBQWQ7QUFJQSxTQUFPLENBQ047QUFDQyxlQUFXSCxNQUFNSSxTQURsQjtBQUVDLFNBQUk7QUFGTCxLQUlHLG9DQUFNQyxVQUFOLENBQWlCQyxLQUpwQixDQURNLEVBT047QUFDQyxTQUFLSixVQUROO0FBRUMsU0FBSyxvQ0FBTUksS0FGWjtBQUdDLGVBQVdOLE1BQU1JLFNBSGxCO0FBSUMsU0FBSTtBQUpMLElBUE0sQ0FBUDtBQWNBLENBdEJEOztlQXdCZUwsUyIsImZpbGUiOiIyNTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgRWRpdFxuICogQGRlc2NyaXB0aW9uIE9yZGVyIEhpc3RvcnkgYmxvY2sgZWRpdCBtZXRob2QuXG4gKi9cblxuXG5pbXBvcnQgeyBBRE1JTl9JTUFHRVMgfSBmcm9tICcuLi8uLi8uLi9jb25maWcvd3Atc2V0dGluZ3MnO1xuaW1wb3J0IHsgR1VURU5CRVJHX09SREVSUyBhcyBCTE9DSyB9IGZyb20gJy4uLy4uL2NvbmZpZy9ndXRlbmJlcmctc2V0dGluZ3MnO1xuXG5jb25zdCBlZGl0QmxvY2sgPSAocHJvcHMpID0+IHtcblx0Y29uc3QgeyBzZXRBdHRyaWJ1dGVzIH0gPSBwcm9wcztcblx0Y29uc3QgYmxvY2tJbWFnZSA9IGAke0FETUlOX0lNQUdFU31HdXRlbmJlcmctQmxvY2tfT3JkZXItSGlzdG9yeS5wbmdgO1xuXG5cdHNldEF0dHJpYnV0ZXMoe1xuXHRcdHNob3J0Y29kZTogQkxPQ0suc2hvcnRjb2RlLFxuXHR9KTtcblxuXHRyZXR1cm4gW1xuXHRcdDxoMlxuXHRcdFx0Y2xhc3NOYW1lPXtwcm9wcy5jbGFzc05hbWV9XG5cdFx0XHRrZXk9XCJvcmRlci1oaXN0b3J5LXNob3J0Y29kZS10aXRsZVwiXG5cdFx0PlxuXHRcdFx0eyBCTE9DSy5ibG9ja19odG1sLnRpdGxlIH1cblx0XHQ8L2gyPixcblx0XHQ8aW1nXG5cdFx0XHRzcmM9e2Jsb2NrSW1hZ2V9XG5cdFx0XHRhbHQ9e0JMT0NLLnRpdGxlfVxuXHRcdFx0Y2xhc3NOYW1lPXtwcm9wcy5jbGFzc05hbWV9XG5cdFx0XHRrZXk9XCJvcmRlci1oaXN0b3J5LXNob3J0Y29kZS1wcmV2aWV3XCJcblx0XHQvPixcblx0XTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGVkaXRCbG9jaztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vZ3V0ZW5iZXJnL2Jsb2Nrcy9vcmRlci1oaXN0b3J5L2VkaXQuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///251\n"); - -/***/ }), -/* 252 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * @module Save\n * @description Order History block save method.\n */\nvar saveBlock = function saveBlock(props) {\n return props.attributes.shortcode;\n};\n\nvar _default = saveBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3Mvb3JkZXItaGlzdG9yeS9zYXZlLmpzP2JhZTQiXSwibmFtZXMiOlsic2F2ZUJsb2NrIiwicHJvcHMiLCJhdHRyaWJ1dGVzIiwic2hvcnRjb2RlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7QUFLQSxJQUFNQSxZQUFZLFNBQVpBLFNBQVk7QUFBQSxTQUFTQyxNQUFNQyxVQUFOLENBQWlCQyxTQUExQjtBQUFBLENBQWxCOztlQUVlSCxTIiwiZmlsZSI6IjI1Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBTYXZlXG4gKiBAZGVzY3JpcHRpb24gT3JkZXIgSGlzdG9yeSBibG9jayBzYXZlIG1ldGhvZC5cbiAqL1xuXG5jb25zdCBzYXZlQmxvY2sgPSBwcm9wcyA9PiBwcm9wcy5hdHRyaWJ1dGVzLnNob3J0Y29kZTtcblxuZXhwb3J0IGRlZmF1bHQgc2F2ZUJsb2NrO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL2pzL3NyYy9hZG1pbi9ndXRlbmJlcmcvYmxvY2tzL29yZGVyLWhpc3Rvcnkvc2F2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///252\n"); - -/***/ }), -/* 253 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(5);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\nvar _edit = _interopRequireDefault(__webpack_require__(254));\n\nvar _save = _interopRequireDefault(__webpack_require__(255));\n\n/**\n * @module Gutenberg\n * @description Register the Login Form Gutenberg block\n */\n\n/**\n * @function registerBlock\n * @description register the block\n */\nvar _default = {\n id: _gutenbergSettings.GUTENBERG_LOGIN.name,\n title: _gutenbergSettings.GUTENBERG_LOGIN.title,\n\n /**\n * An icon property should be specified to make it easier to identify a block.\n * These can be any of WordPress’ Dashicons, or a custom svg element.\n * @see https://developer.wordpress.org/resource/dashicons/\n */\n icon: 'admin-users',\n // TODO: login icon\n\n /**\n * Blocks are grouped into categories to help with browsing and discovery.\n * The categories provided by core are common, embed, formatting, layout, and widgets.\n */\n category: _gutenbergSettings.GUTENBERG_LOGIN.category,\n\n /**\n * Additional keywords to surface this block via search input. Limited to 3.\n */\n keywords: _gutenbergSettings.GUTENBERG_LOGIN.keywords,\n\n /**\n * Optional block extended support features.\n */\n supports: {\n // Removes support for an HTML mode.\n html: false\n },\n\n /**\n * Attributes used to save and edit our block.\n */\n attributes: {\n shortcode: {\n type: 'string',\n default: ''\n }\n },\n\n /**\n * The edit function describes the structure of the block in the context of the editor.\n * This represents what the editor will render when the block is used.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#edit\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n edit: _edit.default,\n\n /**\n * The save function defines the way in which the different attributes should be combined\n * into the final markup, which is then serialized by Gutenberg into `post_content`.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#save\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n save: _save.default\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvbG9naW4tZm9ybS9sb2dpbi1mb3JtLmpzP2FjMzMiXSwibmFtZXMiOlsiaWQiLCJuYW1lIiwidGl0bGUiLCJpY29uIiwiY2F0ZWdvcnkiLCJrZXl3b3JkcyIsInN1cHBvcnRzIiwiaHRtbCIsImF0dHJpYnV0ZXMiLCJzaG9ydGNvZGUiLCJ0eXBlIiwiZGVmYXVsdCIsImVkaXQiLCJzYXZlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUtBOztBQUNBOztBQUNBOztBQVBBOzs7OztBQVNBOzs7O2VBS2U7QUFDZEEsTUFBSSxtQ0FBTUMsSUFESTtBQUVkQyxTQUFPLG1DQUFNQSxLQUZDOztBQUlkOzs7OztBQUtBQyxRQUFNLGFBVFE7QUFTTzs7QUFFckI7Ozs7QUFJQUMsWUFBVSxtQ0FBTUEsUUFmRjs7QUFpQmQ7OztBQUdBQyxZQUFVLG1DQUFNQSxRQXBCRjs7QUFzQmQ7OztBQUdBQyxZQUFVO0FBQ1Q7QUFDQUMsVUFBTTtBQUZHLEdBekJJOztBQThCZDs7O0FBR0FDLGNBQVk7QUFDWEMsZUFBVztBQUNWQyxZQUFNLFFBREk7QUFFVkMsZUFBUztBQUZDO0FBREEsR0FqQ0U7O0FBd0NkOzs7Ozs7OztBQVFBQyxxQkFoRGM7O0FBa0RkOzs7Ozs7OztBQVFBQztBQTFEYyxDIiwiZmlsZSI6IjI1My5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBHdXRlbmJlcmdcbiAqIEBkZXNjcmlwdGlvbiBSZWdpc3RlciB0aGUgTG9naW4gRm9ybSBHdXRlbmJlcmcgYmxvY2tcbiAqL1xuXG5pbXBvcnQgeyBHVVRFTkJFUkdfTE9HSU4gYXMgQkxPQ0sgfSBmcm9tICcuLi8uLi9jb25maWcvZ3V0ZW5iZXJnLXNldHRpbmdzJztcbmltcG9ydCBlZGl0QmxvY2sgZnJvbSAnLi9lZGl0JztcbmltcG9ydCBzYXZlQmxvY2sgZnJvbSAnLi9zYXZlJztcblxuLyoqXG4gKiBAZnVuY3Rpb24gcmVnaXN0ZXJCbG9ja1xuICogQGRlc2NyaXB0aW9uIHJlZ2lzdGVyIHRoZSBibG9ja1xuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcblx0aWQ6IEJMT0NLLm5hbWUsXG5cdHRpdGxlOiBCTE9DSy50aXRsZSxcblxuXHQvKipcblx0ICogQW4gaWNvbiBwcm9wZXJ0eSBzaG91bGQgYmUgc3BlY2lmaWVkIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGlkZW50aWZ5IGEgYmxvY2suXG5cdCAqIFRoZXNlIGNhbiBiZSBhbnkgb2YgV29yZFByZXNz4oCZIERhc2hpY29ucywgb3IgYSBjdXN0b20gc3ZnIGVsZW1lbnQuXG5cdCAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIud29yZHByZXNzLm9yZy9yZXNvdXJjZS9kYXNoaWNvbnMvXG5cdCAqL1xuXHRpY29uOiAnYWRtaW4tdXNlcnMnLCAvLyBUT0RPOiBsb2dpbiBpY29uXG5cblx0LyoqXG5cdCAqIEJsb2NrcyBhcmUgZ3JvdXBlZCBpbnRvIGNhdGVnb3JpZXMgdG8gaGVscCB3aXRoIGJyb3dzaW5nIGFuZCBkaXNjb3ZlcnkuXG5cdCAqIFRoZSBjYXRlZ29yaWVzIHByb3ZpZGVkIGJ5IGNvcmUgYXJlIGNvbW1vbiwgZW1iZWQsIGZvcm1hdHRpbmcsIGxheW91dCwgYW5kIHdpZGdldHMuXG5cdCAqL1xuXHRjYXRlZ29yeTogQkxPQ0suY2F0ZWdvcnksXG5cblx0LyoqXG5cdCAqIEFkZGl0aW9uYWwga2V5d29yZHMgdG8gc3VyZmFjZSB0aGlzIGJsb2NrIHZpYSBzZWFyY2ggaW5wdXQuIExpbWl0ZWQgdG8gMy5cblx0ICovXG5cdGtleXdvcmRzOiBCTE9DSy5rZXl3b3JkcyxcblxuXHQvKipcblx0ICogT3B0aW9uYWwgYmxvY2sgZXh0ZW5kZWQgc3VwcG9ydCBmZWF0dXJlcy5cblx0ICovXG5cdHN1cHBvcnRzOiB7XG5cdFx0Ly8gUmVtb3ZlcyBzdXBwb3J0IGZvciBhbiBIVE1MIG1vZGUuXG5cdFx0aHRtbDogZmFsc2UsXG5cdH0sXG5cblx0LyoqXG5cdCAqIEF0dHJpYnV0ZXMgdXNlZCB0byBzYXZlIGFuZCBlZGl0IG91ciBibG9jay5cblx0ICovXG5cdGF0dHJpYnV0ZXM6IHtcblx0XHRzaG9ydGNvZGU6IHtcblx0XHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdFx0ZGVmYXVsdDogJycsXG5cdFx0fSxcblx0fSxcblxuXHQvKipcblx0ICogVGhlIGVkaXQgZnVuY3Rpb24gZGVzY3JpYmVzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGJsb2NrIGluIHRoZSBjb250ZXh0IG9mIHRoZSBlZGl0b3IuXG5cdCAqIFRoaXMgcmVwcmVzZW50cyB3aGF0IHRoZSBlZGl0b3Igd2lsbCByZW5kZXIgd2hlbiB0aGUgYmxvY2sgaXMgdXNlZC5cblx0ICogQHNlZSBodHRwczovL3dvcmRwcmVzcy5vcmcvZ3V0ZW5iZXJnL2hhbmRib29rL2Jsb2NrLWVkaXQtc2F2ZS8jZWRpdFxuXHQgKlxuXHQgKiBAcGFyYW0gIHtPYmplY3R9IFtwcm9wc10gUHJvcGVydGllcyBwYXNzZWQgZnJvbSB0aGUgZWRpdG9yLlxuXHQgKiBAcmV0dXJuIHtFbGVtZW50fSAgICAgICAgRWxlbWVudCB0byByZW5kZXIuXG5cdCAqL1xuXHRlZGl0OiBlZGl0QmxvY2ssXG5cblx0LyoqXG5cdCAqIFRoZSBzYXZlIGZ1bmN0aW9uIGRlZmluZXMgdGhlIHdheSBpbiB3aGljaCB0aGUgZGlmZmVyZW50IGF0dHJpYnV0ZXMgc2hvdWxkIGJlIGNvbWJpbmVkXG5cdCAqIGludG8gdGhlIGZpbmFsIG1hcmt1cCwgd2hpY2ggaXMgdGhlbiBzZXJpYWxpemVkIGJ5IEd1dGVuYmVyZyBpbnRvIGBwb3N0X2NvbnRlbnRgLlxuXHQgKiBAc2VlIGh0dHBzOi8vd29yZHByZXNzLm9yZy9ndXRlbmJlcmcvaGFuZGJvb2svYmxvY2stZWRpdC1zYXZlLyNzYXZlXG5cdCAqXG5cdCAqIEBwYXJhbSAge09iamVjdH0gW3Byb3BzXSBQcm9wZXJ0aWVzIHBhc3NlZCBmcm9tIHRoZSBlZGl0b3IuXG5cdCAqIEByZXR1cm4ge0VsZW1lbnR9IEVsZW1lbnQgdG8gcmVuZGVyLlxuXHQgKi9cblx0c2F2ZTogc2F2ZUJsb2NrLFxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vZ3V0ZW5iZXJnL2Jsb2Nrcy9sb2dpbi1mb3JtL2xvZ2luLWZvcm0uanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///253\n"); - -/***/ }), -/* 254 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _wpSettings = __webpack_require__(3);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\n/**\n * @module Edit\n * @description Login Form block edit method.\n */\nvar editBlock = function editBlock(props) {\n var setAttributes = props.setAttributes;\n var blockImage = \"\".concat(_wpSettings.ADMIN_IMAGES, \"Gutenberg-Block_LogIn.png\");\n setAttributes({\n shortcode: _gutenbergSettings.GUTENBERG_LOGIN.shortcode\n });\n return [wp.element.createElement(\"h2\", {\n className: props.className,\n key: \"login-form-shortcode-title\"\n }, _gutenbergSettings.GUTENBERG_LOGIN.block_html.title), wp.element.createElement(\"img\", {\n src: blockImage,\n alt: _gutenbergSettings.GUTENBERG_LOGIN.title,\n className: props.className,\n key: \"login-form-shortcode-preview\"\n })];\n};\n\nvar _default = editBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvbG9naW4tZm9ybS9lZGl0LmpzP2MxMjAiXSwibmFtZXMiOlsiZWRpdEJsb2NrIiwicHJvcHMiLCJzZXRBdHRyaWJ1dGVzIiwiYmxvY2tJbWFnZSIsInNob3J0Y29kZSIsImNsYXNzTmFtZSIsImJsb2NrX2h0bWwiLCJ0aXRsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQU1BOztBQUNBOztBQVBBOzs7O0FBU0EsSUFBTUEsWUFBWSxTQUFaQSxTQUFZLENBQUNDLEtBQUQsRUFBVztBQUFBLE1BQ3BCQyxhQURvQixHQUNGRCxLQURFLENBQ3BCQyxhQURvQjtBQUU1QixNQUFNQyw2RUFBTjtBQUVBRCxnQkFBYztBQUNiRSxlQUFXLG1DQUFNQTtBQURKLEdBQWQ7QUFJQSxTQUFPLENBQ047QUFDQyxlQUFXSCxNQUFNSSxTQURsQjtBQUVDLFNBQUk7QUFGTCxLQUlHLG1DQUFNQyxVQUFOLENBQWlCQyxLQUpwQixDQURNLEVBT047QUFDQyxTQUFLSixVQUROO0FBRUMsU0FBSyxtQ0FBTUksS0FGWjtBQUdDLGVBQVdOLE1BQU1JLFNBSGxCO0FBSUMsU0FBSTtBQUpMLElBUE0sQ0FBUDtBQWNBLENBdEJEOztlQXdCZUwsUyIsImZpbGUiOiIyNTQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgRWRpdFxuICogQGRlc2NyaXB0aW9uIExvZ2luIEZvcm0gYmxvY2sgZWRpdCBtZXRob2QuXG4gKi9cblxuXG5pbXBvcnQgeyBBRE1JTl9JTUFHRVMgfSBmcm9tICcuLi8uLi8uLi9jb25maWcvd3Atc2V0dGluZ3MnO1xuaW1wb3J0IHsgR1VURU5CRVJHX0xPR0lOIGFzIEJMT0NLIH0gZnJvbSAnLi4vLi4vY29uZmlnL2d1dGVuYmVyZy1zZXR0aW5ncyc7XG5cbmNvbnN0IGVkaXRCbG9jayA9IChwcm9wcykgPT4ge1xuXHRjb25zdCB7IHNldEF0dHJpYnV0ZXMgfSA9IHByb3BzO1xuXHRjb25zdCBibG9ja0ltYWdlID0gYCR7QURNSU5fSU1BR0VTfUd1dGVuYmVyZy1CbG9ja19Mb2dJbi5wbmdgO1xuXG5cdHNldEF0dHJpYnV0ZXMoe1xuXHRcdHNob3J0Y29kZTogQkxPQ0suc2hvcnRjb2RlLFxuXHR9KTtcblxuXHRyZXR1cm4gW1xuXHRcdDxoMlxuXHRcdFx0Y2xhc3NOYW1lPXtwcm9wcy5jbGFzc05hbWV9XG5cdFx0XHRrZXk9XCJsb2dpbi1mb3JtLXNob3J0Y29kZS10aXRsZVwiXG5cdFx0PlxuXHRcdFx0eyBCTE9DSy5ibG9ja19odG1sLnRpdGxlIH1cblx0XHQ8L2gyPixcblx0XHQ8aW1nXG5cdFx0XHRzcmM9e2Jsb2NrSW1hZ2V9XG5cdFx0XHRhbHQ9e0JMT0NLLnRpdGxlfVxuXHRcdFx0Y2xhc3NOYW1lPXtwcm9wcy5jbGFzc05hbWV9XG5cdFx0XHRrZXk9XCJsb2dpbi1mb3JtLXNob3J0Y29kZS1wcmV2aWV3XCJcblx0XHQvPixcblx0XTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGVkaXRCbG9jaztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vZ3V0ZW5iZXJnL2Jsb2Nrcy9sb2dpbi1mb3JtL2VkaXQuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///254\n"); - -/***/ }), -/* 255 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * @module Save\n * @description Login Form block save method.\n */\nvar saveBlock = function saveBlock(props) {\n return props.attributes.shortcode;\n};\n\nvar _default = saveBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvbG9naW4tZm9ybS9zYXZlLmpzPzIzNjUiXSwibmFtZXMiOlsic2F2ZUJsb2NrIiwicHJvcHMiLCJhdHRyaWJ1dGVzIiwic2hvcnRjb2RlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7QUFLQSxJQUFNQSxZQUFZLFNBQVpBLFNBQVk7QUFBQSxTQUFTQyxNQUFNQyxVQUFOLENBQWlCQyxTQUExQjtBQUFBLENBQWxCOztlQUVlSCxTIiwiZmlsZSI6IjI1NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBTYXZlXG4gKiBAZGVzY3JpcHRpb24gTG9naW4gRm9ybSBibG9jayBzYXZlIG1ldGhvZC5cbiAqL1xuXG5jb25zdCBzYXZlQmxvY2sgPSBwcm9wcyA9PiBwcm9wcy5hdHRyaWJ1dGVzLnNob3J0Y29kZTtcblxuZXhwb3J0IGRlZmF1bHQgc2F2ZUJsb2NrO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL2pzL3NyYy9hZG1pbi9ndXRlbmJlcmcvYmxvY2tzL2xvZ2luLWZvcm0vc2F2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///255\n"); - -/***/ }), -/* 256 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(5);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\nvar _edit = _interopRequireDefault(__webpack_require__(257));\n\nvar _save = _interopRequireDefault(__webpack_require__(258));\n\n/**\n * @module Gutenberg\n * @description Register the Registration Form Gutenberg block\n */\n\n/**\n * @function registerBlock\n * @description register the block\n */\nvar _default = {\n id: _gutenbergSettings.GUTENBERG_REGISTER.name,\n title: _gutenbergSettings.GUTENBERG_REGISTER.title,\n\n /**\n * An icon property should be specified to make it easier to identify a block.\n * These can be any of WordPress’ Dashicons, or a custom svg element.\n * @see https://developer.wordpress.org/resource/dashicons/\n */\n icon: 'nametag',\n // TODO: registration icon\n\n /**\n * Blocks are grouped into categories to help with browsing and discovery.\n * The categories provided by core are common, embed, formatting, layout, and widgets.\n */\n category: _gutenbergSettings.GUTENBERG_REGISTER.category,\n\n /**\n * Additional keywords to surface this block via search input. Limited to 3.\n */\n keywords: _gutenbergSettings.GUTENBERG_REGISTER.keywords,\n\n /**\n * Optional block extended support features.\n */\n supports: {\n // Removes support for an HTML mode.\n html: false\n },\n\n /**\n * Attributes used to save and edit our block.\n */\n attributes: {\n shortcode: {\n type: 'string',\n default: ''\n }\n },\n\n /**\n * The edit function describes the structure of the block in the context of the editor.\n * This represents what the editor will render when the block is used.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#edit\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n edit: _edit.default,\n\n /**\n * The save function defines the way in which the different attributes should be combined\n * into the final markup, which is then serialized by Gutenberg into `post_content`.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#save\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n save: _save.default\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcmVnaXN0cmF0aW9uLWZvcm0vcmVnaXN0cmF0aW9uLWZvcm0uanM/YWNmMCJdLCJuYW1lcyI6WyJpZCIsIm5hbWUiLCJ0aXRsZSIsImljb24iLCJjYXRlZ29yeSIsImtleXdvcmRzIiwic3VwcG9ydHMiLCJodG1sIiwiYXR0cmlidXRlcyIsInNob3J0Y29kZSIsInR5cGUiLCJkZWZhdWx0IiwiZWRpdCIsInNhdmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBUEE7Ozs7O0FBU0E7Ozs7ZUFLZTtBQUNkQSxNQUFJLHNDQUFNQyxJQURJO0FBRWRDLFNBQU8sc0NBQU1BLEtBRkM7O0FBSWQ7Ozs7O0FBS0FDLFFBQU0sU0FUUTtBQVNHOztBQUVqQjs7OztBQUlBQyxZQUFVLHNDQUFNQSxRQWZGOztBQWlCZDs7O0FBR0FDLFlBQVUsc0NBQU1BLFFBcEJGOztBQXNCZDs7O0FBR0FDLFlBQVU7QUFDVDtBQUNBQyxVQUFNO0FBRkcsR0F6Qkk7O0FBOEJkOzs7QUFHQUMsY0FBWTtBQUNYQyxlQUFXO0FBQ1ZDLFlBQU0sUUFESTtBQUVWQyxlQUFTO0FBRkM7QUFEQSxHQWpDRTs7QUF3Q2Q7Ozs7Ozs7O0FBUUFDLHFCQWhEYzs7QUFrRGQ7Ozs7Ozs7O0FBUUFDO0FBMURjLEMiLCJmaWxlIjoiMjU2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIEd1dGVuYmVyZ1xuICogQGRlc2NyaXB0aW9uIFJlZ2lzdGVyIHRoZSBSZWdpc3RyYXRpb24gRm9ybSBHdXRlbmJlcmcgYmxvY2tcbiAqL1xuXG5pbXBvcnQgeyBHVVRFTkJFUkdfUkVHSVNURVIgYXMgQkxPQ0sgfSBmcm9tICcuLi8uLi9jb25maWcvZ3V0ZW5iZXJnLXNldHRpbmdzJztcbmltcG9ydCBlZGl0QmxvY2sgZnJvbSAnLi9lZGl0JztcbmltcG9ydCBzYXZlQmxvY2sgZnJvbSAnLi9zYXZlJztcblxuLyoqXG4gKiBAZnVuY3Rpb24gcmVnaXN0ZXJCbG9ja1xuICogQGRlc2NyaXB0aW9uIHJlZ2lzdGVyIHRoZSBibG9ja1xuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcblx0aWQ6IEJMT0NLLm5hbWUsXG5cdHRpdGxlOiBCTE9DSy50aXRsZSxcblxuXHQvKipcblx0ICogQW4gaWNvbiBwcm9wZXJ0eSBzaG91bGQgYmUgc3BlY2lmaWVkIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGlkZW50aWZ5IGEgYmxvY2suXG5cdCAqIFRoZXNlIGNhbiBiZSBhbnkgb2YgV29yZFByZXNz4oCZIERhc2hpY29ucywgb3IgYSBjdXN0b20gc3ZnIGVsZW1lbnQuXG5cdCAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIud29yZHByZXNzLm9yZy9yZXNvdXJjZS9kYXNoaWNvbnMvXG5cdCAqL1xuXHRpY29uOiAnbmFtZXRhZycsIC8vIFRPRE86IHJlZ2lzdHJhdGlvbiBpY29uXG5cblx0LyoqXG5cdCAqIEJsb2NrcyBhcmUgZ3JvdXBlZCBpbnRvIGNhdGVnb3JpZXMgdG8gaGVscCB3aXRoIGJyb3dzaW5nIGFuZCBkaXNjb3ZlcnkuXG5cdCAqIFRoZSBjYXRlZ29yaWVzIHByb3ZpZGVkIGJ5IGNvcmUgYXJlIGNvbW1vbiwgZW1iZWQsIGZvcm1hdHRpbmcsIGxheW91dCwgYW5kIHdpZGdldHMuXG5cdCAqL1xuXHRjYXRlZ29yeTogQkxPQ0suY2F0ZWdvcnksXG5cblx0LyoqXG5cdCAqIEFkZGl0aW9uYWwga2V5d29yZHMgdG8gc3VyZmFjZSB0aGlzIGJsb2NrIHZpYSBzZWFyY2ggaW5wdXQuIExpbWl0ZWQgdG8gMy5cblx0ICovXG5cdGtleXdvcmRzOiBCTE9DSy5rZXl3b3JkcyxcblxuXHQvKipcblx0ICogT3B0aW9uYWwgYmxvY2sgZXh0ZW5kZWQgc3VwcG9ydCBmZWF0dXJlcy5cblx0ICovXG5cdHN1cHBvcnRzOiB7XG5cdFx0Ly8gUmVtb3ZlcyBzdXBwb3J0IGZvciBhbiBIVE1MIG1vZGUuXG5cdFx0aHRtbDogZmFsc2UsXG5cdH0sXG5cblx0LyoqXG5cdCAqIEF0dHJpYnV0ZXMgdXNlZCB0byBzYXZlIGFuZCBlZGl0IG91ciBibG9jay5cblx0ICovXG5cdGF0dHJpYnV0ZXM6IHtcblx0XHRzaG9ydGNvZGU6IHtcblx0XHRcdHR5cGU6ICdzdHJpbmcnLFxuXHRcdFx0ZGVmYXVsdDogJycsXG5cdFx0fSxcblx0fSxcblxuXHQvKipcblx0ICogVGhlIGVkaXQgZnVuY3Rpb24gZGVzY3JpYmVzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGJsb2NrIGluIHRoZSBjb250ZXh0IG9mIHRoZSBlZGl0b3IuXG5cdCAqIFRoaXMgcmVwcmVzZW50cyB3aGF0IHRoZSBlZGl0b3Igd2lsbCByZW5kZXIgd2hlbiB0aGUgYmxvY2sgaXMgdXNlZC5cblx0ICogQHNlZSBodHRwczovL3dvcmRwcmVzcy5vcmcvZ3V0ZW5iZXJnL2hhbmRib29rL2Jsb2NrLWVkaXQtc2F2ZS8jZWRpdFxuXHQgKlxuXHQgKiBAcGFyYW0gIHtPYmplY3R9IFtwcm9wc10gUHJvcGVydGllcyBwYXNzZWQgZnJvbSB0aGUgZWRpdG9yLlxuXHQgKiBAcmV0dXJuIHtFbGVtZW50fSAgICAgICAgRWxlbWVudCB0byByZW5kZXIuXG5cdCAqL1xuXHRlZGl0OiBlZGl0QmxvY2ssXG5cblx0LyoqXG5cdCAqIFRoZSBzYXZlIGZ1bmN0aW9uIGRlZmluZXMgdGhlIHdheSBpbiB3aGljaCB0aGUgZGlmZmVyZW50IGF0dHJpYnV0ZXMgc2hvdWxkIGJlIGNvbWJpbmVkXG5cdCAqIGludG8gdGhlIGZpbmFsIG1hcmt1cCwgd2hpY2ggaXMgdGhlbiBzZXJpYWxpemVkIGJ5IEd1dGVuYmVyZyBpbnRvIGBwb3N0X2NvbnRlbnRgLlxuXHQgKiBAc2VlIGh0dHBzOi8vd29yZHByZXNzLm9yZy9ndXRlbmJlcmcvaGFuZGJvb2svYmxvY2stZWRpdC1zYXZlLyNzYXZlXG5cdCAqXG5cdCAqIEBwYXJhbSAge09iamVjdH0gW3Byb3BzXSBQcm9wZXJ0aWVzIHBhc3NlZCBmcm9tIHRoZSBlZGl0b3IuXG5cdCAqIEByZXR1cm4ge0VsZW1lbnR9IEVsZW1lbnQgdG8gcmVuZGVyLlxuXHQgKi9cblx0c2F2ZTogc2F2ZUJsb2NrLFxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vZ3V0ZW5iZXJnL2Jsb2Nrcy9yZWdpc3RyYXRpb24tZm9ybS9yZWdpc3RyYXRpb24tZm9ybS5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///256\n"); - -/***/ }), -/* 257 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _wpSettings = __webpack_require__(3);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\n/**\n * @module Edit\n * @description Registration Form block edit method.\n */\nvar editBlock = function editBlock(props) {\n var setAttributes = props.setAttributes;\n var blockImage = \"\".concat(_wpSettings.ADMIN_IMAGES, \"Gutenberg-Block_Register-Form.png\");\n setAttributes({\n shortcode: _gutenbergSettings.GUTENBERG_REGISTER.shortcode\n });\n return [wp.element.createElement(\"h2\", {\n className: props.className,\n key: \"registration-form-shortcode-title\"\n }, _gutenbergSettings.GUTENBERG_REGISTER.block_html.title), wp.element.createElement(\"img\", {\n src: blockImage,\n alt: _gutenbergSettings.GUTENBERG_REGISTER.title,\n className: props.className,\n key: \"registration-form-shortcode-preview\"\n })];\n};\n\nvar _default = editBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcmVnaXN0cmF0aW9uLWZvcm0vZWRpdC5qcz81MWZjIl0sIm5hbWVzIjpbImVkaXRCbG9jayIsInByb3BzIiwic2V0QXR0cmlidXRlcyIsImJsb2NrSW1hZ2UiLCJzaG9ydGNvZGUiLCJjbGFzc05hbWUiLCJibG9ja19odG1sIiwidGl0bGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFNQTs7QUFDQTs7QUFQQTs7OztBQVNBLElBQU1BLFlBQVksU0FBWkEsU0FBWSxDQUFDQyxLQUFELEVBQVc7QUFBQSxNQUNwQkMsYUFEb0IsR0FDRkQsS0FERSxDQUNwQkMsYUFEb0I7QUFFNUIsTUFBTUMscUZBQU47QUFFQUQsZ0JBQWM7QUFDYkUsZUFBVyxzQ0FBTUE7QUFESixHQUFkO0FBSUEsU0FBTyxDQUNOO0FBQ0MsZUFBV0gsTUFBTUksU0FEbEI7QUFFQyxTQUFJO0FBRkwsS0FJRyxzQ0FBTUMsVUFBTixDQUFpQkMsS0FKcEIsQ0FETSxFQU9OO0FBQ0MsU0FBS0osVUFETjtBQUVDLFNBQUssc0NBQU1JLEtBRlo7QUFHQyxlQUFXTixNQUFNSSxTQUhsQjtBQUlDLFNBQUk7QUFKTCxJQVBNLENBQVA7QUFjQSxDQXRCRDs7ZUF3QmVMLFMiLCJmaWxlIjoiMjU3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIEVkaXRcbiAqIEBkZXNjcmlwdGlvbiBSZWdpc3RyYXRpb24gRm9ybSBibG9jayBlZGl0IG1ldGhvZC5cbiAqL1xuXG5cbmltcG9ydCB7IEFETUlOX0lNQUdFUyB9IGZyb20gJy4uLy4uLy4uL2NvbmZpZy93cC1zZXR0aW5ncyc7XG5pbXBvcnQgeyBHVVRFTkJFUkdfUkVHSVNURVIgYXMgQkxPQ0sgfSBmcm9tICcuLi8uLi9jb25maWcvZ3V0ZW5iZXJnLXNldHRpbmdzJztcblxuY29uc3QgZWRpdEJsb2NrID0gKHByb3BzKSA9PiB7XG5cdGNvbnN0IHsgc2V0QXR0cmlidXRlcyB9ID0gcHJvcHM7XG5cdGNvbnN0IGJsb2NrSW1hZ2UgPSBgJHtBRE1JTl9JTUFHRVN9R3V0ZW5iZXJnLUJsb2NrX1JlZ2lzdGVyLUZvcm0ucG5nYDtcblxuXHRzZXRBdHRyaWJ1dGVzKHtcblx0XHRzaG9ydGNvZGU6IEJMT0NLLnNob3J0Y29kZSxcblx0fSk7XG5cblx0cmV0dXJuIFtcblx0XHQ8aDJcblx0XHRcdGNsYXNzTmFtZT17cHJvcHMuY2xhc3NOYW1lfVxuXHRcdFx0a2V5PVwicmVnaXN0cmF0aW9uLWZvcm0tc2hvcnRjb2RlLXRpdGxlXCJcblx0XHQ+XG5cdFx0XHR7IEJMT0NLLmJsb2NrX2h0bWwudGl0bGUgfVxuXHRcdDwvaDI+LFxuXHRcdDxpbWdcblx0XHRcdHNyYz17YmxvY2tJbWFnZX1cblx0XHRcdGFsdD17QkxPQ0sudGl0bGV9XG5cdFx0XHRjbGFzc05hbWU9e3Byb3BzLmNsYXNzTmFtZX1cblx0XHRcdGtleT1cInJlZ2lzdHJhdGlvbi1mb3JtLXNob3J0Y29kZS1wcmV2aWV3XCJcblx0XHQvPixcblx0XTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGVkaXRCbG9jaztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vZ3V0ZW5iZXJnL2Jsb2Nrcy9yZWdpc3RyYXRpb24tZm9ybS9lZGl0LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///257\n"); - -/***/ }), -/* 258 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * @module Save\n * @description Registration Form block save method.\n */\nvar saveBlock = function saveBlock(props) {\n return props.attributes.shortcode;\n};\n\nvar _default = saveBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcmVnaXN0cmF0aW9uLWZvcm0vc2F2ZS5qcz85YjE4Il0sIm5hbWVzIjpbInNhdmVCbG9jayIsInByb3BzIiwiYXR0cmlidXRlcyIsInNob3J0Y29kZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBS0EsSUFBTUEsWUFBWSxTQUFaQSxTQUFZO0FBQUEsU0FBU0MsTUFBTUMsVUFBTixDQUFpQkMsU0FBMUI7QUFBQSxDQUFsQjs7ZUFFZUgsUyIsImZpbGUiOiIyNTguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgU2F2ZVxuICogQGRlc2NyaXB0aW9uIFJlZ2lzdHJhdGlvbiBGb3JtIGJsb2NrIHNhdmUgbWV0aG9kLlxuICovXG5cbmNvbnN0IHNhdmVCbG9jayA9IHByb3BzID0+IHByb3BzLmF0dHJpYnV0ZXMuc2hvcnRjb2RlO1xuXG5leHBvcnQgZGVmYXVsdCBzYXZlQmxvY2s7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcmVnaXN0cmF0aW9uLWZvcm0vc2F2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///258\n"); - -/***/ }), -/* 259 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(5);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\nvar _edit = _interopRequireDefault(__webpack_require__(260));\n\nvar _save = _interopRequireDefault(__webpack_require__(261));\n\n/**\n * @module Gutenberg\n * @description Register the Gift Certificate Form Gutenberg block\n */\n\n/**\n * @function registerBlock\n * @description register the block\n */\nvar _default = {\n id: _gutenbergSettings.GUTENBERG_GIFT_CERTIFICATE_FORM.name,\n title: _gutenbergSettings.GUTENBERG_GIFT_CERTIFICATE_FORM.title,\n\n /**\n * An icon property should be specified to make it easier to identify a block.\n * These can be any of WordPress’ Dashicons, or a custom svg element.\n * @see https://developer.wordpress.org/resource/dashicons/\n */\n icon: 'tickets-alt',\n\n /**\n * Blocks are grouped into categories to help with browsing and discovery.\n * The categories provided by core are common, embed, formatting, layout, and widgets.\n */\n category: _gutenbergSettings.GUTENBERG_GIFT_CERTIFICATE_FORM.category,\n\n /**\n * Additional keywords to surface this block via search input. Limited to 3.\n */\n keywords: _gutenbergSettings.GUTENBERG_GIFT_CERTIFICATE_FORM.keywords,\n\n /**\n * Optional block extended support features.\n */\n supports: {\n // Removes support for an HTML mode.\n html: false\n },\n\n /**\n * Attributes used to save and edit our block.\n */\n attributes: {\n shortcode: {\n type: 'string',\n default: ''\n }\n },\n\n /**\n * The edit function describes the structure of the block in the context of the editor.\n * This represents what the editor will render when the block is used.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#edit\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n edit: _edit.default,\n\n /**\n * The save function defines the way in which the different attributes should be combined\n * into the final markup, which is then serialized by Gutenberg into `post_content`.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#save\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n save: _save.default\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvZ2lmdC1jZXJ0aWZpY2F0ZS1mb3JtL2dpZnQtY2VydGlmaWNhdGUtZm9ybS5qcz81OTU5Il0sIm5hbWVzIjpbImlkIiwibmFtZSIsInRpdGxlIiwiaWNvbiIsImNhdGVnb3J5Iiwia2V5d29yZHMiLCJzdXBwb3J0cyIsImh0bWwiLCJhdHRyaWJ1dGVzIiwic2hvcnRjb2RlIiwidHlwZSIsImRlZmF1bHQiLCJlZGl0Iiwic2F2ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFLQTs7QUFDQTs7QUFDQTs7QUFQQTs7Ozs7QUFTQTs7OztlQUtlO0FBQ2RBLE1BQUksbURBQU1DLElBREk7QUFFZEMsU0FBTyxtREFBTUEsS0FGQzs7QUFJZDs7Ozs7QUFLQUMsUUFBTSxhQVRROztBQVdkOzs7O0FBSUFDLFlBQVUsbURBQU1BLFFBZkY7O0FBaUJkOzs7QUFHQUMsWUFBVSxtREFBTUEsUUFwQkY7O0FBc0JkOzs7QUFHQUMsWUFBVTtBQUNUO0FBQ0FDLFVBQU07QUFGRyxHQXpCSTs7QUE4QmQ7OztBQUdBQyxjQUFZO0FBQ1hDLGVBQVc7QUFDVkMsWUFBTSxRQURJO0FBRVZDLGVBQVM7QUFGQztBQURBLEdBakNFOztBQXdDZDs7Ozs7Ozs7QUFRQUMscUJBaERjOztBQWtEZDs7Ozs7Ozs7QUFRQUM7QUExRGMsQyIsImZpbGUiOiIyNTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgR3V0ZW5iZXJnXG4gKiBAZGVzY3JpcHRpb24gUmVnaXN0ZXIgdGhlIEdpZnQgQ2VydGlmaWNhdGUgRm9ybSBHdXRlbmJlcmcgYmxvY2tcbiAqL1xuXG5pbXBvcnQgeyBHVVRFTkJFUkdfR0lGVF9DRVJUSUZJQ0FURV9GT1JNIGFzIEJMT0NLIH0gZnJvbSAnLi4vLi4vY29uZmlnL2d1dGVuYmVyZy1zZXR0aW5ncyc7XG5pbXBvcnQgZWRpdEJsb2NrIGZyb20gJy4vZWRpdCc7XG5pbXBvcnQgc2F2ZUJsb2NrIGZyb20gJy4vc2F2ZSc7XG5cbi8qKlxuICogQGZ1bmN0aW9uIHJlZ2lzdGVyQmxvY2tcbiAqIEBkZXNjcmlwdGlvbiByZWdpc3RlciB0aGUgYmxvY2tcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG5cdGlkOiBCTE9DSy5uYW1lLFxuXHR0aXRsZTogQkxPQ0sudGl0bGUsXG5cblx0LyoqXG5cdCAqIEFuIGljb24gcHJvcGVydHkgc2hvdWxkIGJlIHNwZWNpZmllZCB0byBtYWtlIGl0IGVhc2llciB0byBpZGVudGlmeSBhIGJsb2NrLlxuXHQgKiBUaGVzZSBjYW4gYmUgYW55IG9mIFdvcmRQcmVzc+KAmSBEYXNoaWNvbnMsIG9yIGEgY3VzdG9tIHN2ZyBlbGVtZW50LlxuXHQgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLndvcmRwcmVzcy5vcmcvcmVzb3VyY2UvZGFzaGljb25zL1xuXHQgKi9cblx0aWNvbjogJ3RpY2tldHMtYWx0JyxcblxuXHQvKipcblx0ICogQmxvY2tzIGFyZSBncm91cGVkIGludG8gY2F0ZWdvcmllcyB0byBoZWxwIHdpdGggYnJvd3NpbmcgYW5kIGRpc2NvdmVyeS5cblx0ICogVGhlIGNhdGVnb3JpZXMgcHJvdmlkZWQgYnkgY29yZSBhcmUgY29tbW9uLCBlbWJlZCwgZm9ybWF0dGluZywgbGF5b3V0LCBhbmQgd2lkZ2V0cy5cblx0ICovXG5cdGNhdGVnb3J5OiBCTE9DSy5jYXRlZ29yeSxcblxuXHQvKipcblx0ICogQWRkaXRpb25hbCBrZXl3b3JkcyB0byBzdXJmYWNlIHRoaXMgYmxvY2sgdmlhIHNlYXJjaCBpbnB1dC4gTGltaXRlZCB0byAzLlxuXHQgKi9cblx0a2V5d29yZHM6IEJMT0NLLmtleXdvcmRzLFxuXG5cdC8qKlxuXHQgKiBPcHRpb25hbCBibG9jayBleHRlbmRlZCBzdXBwb3J0IGZlYXR1cmVzLlxuXHQgKi9cblx0c3VwcG9ydHM6IHtcblx0XHQvLyBSZW1vdmVzIHN1cHBvcnQgZm9yIGFuIEhUTUwgbW9kZS5cblx0XHRodG1sOiBmYWxzZSxcblx0fSxcblxuXHQvKipcblx0ICogQXR0cmlidXRlcyB1c2VkIHRvIHNhdmUgYW5kIGVkaXQgb3VyIGJsb2NrLlxuXHQgKi9cblx0YXR0cmlidXRlczoge1xuXHRcdHNob3J0Y29kZToge1xuXHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHRkZWZhdWx0OiAnJyxcblx0XHR9LFxuXHR9LFxuXG5cdC8qKlxuXHQgKiBUaGUgZWRpdCBmdW5jdGlvbiBkZXNjcmliZXMgdGhlIHN0cnVjdHVyZSBvZiB0aGUgYmxvY2sgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGVkaXRvci5cblx0ICogVGhpcyByZXByZXNlbnRzIHdoYXQgdGhlIGVkaXRvciB3aWxsIHJlbmRlciB3aGVuIHRoZSBibG9jayBpcyB1c2VkLlxuXHQgKiBAc2VlIGh0dHBzOi8vd29yZHByZXNzLm9yZy9ndXRlbmJlcmcvaGFuZGJvb2svYmxvY2stZWRpdC1zYXZlLyNlZGl0XG5cdCAqXG5cdCAqIEBwYXJhbSAge09iamVjdH0gW3Byb3BzXSBQcm9wZXJ0aWVzIHBhc3NlZCBmcm9tIHRoZSBlZGl0b3IuXG5cdCAqIEByZXR1cm4ge0VsZW1lbnR9ICAgICAgICBFbGVtZW50IHRvIHJlbmRlci5cblx0ICovXG5cdGVkaXQ6IGVkaXRCbG9jayxcblxuXHQvKipcblx0ICogVGhlIHNhdmUgZnVuY3Rpb24gZGVmaW5lcyB0aGUgd2F5IGluIHdoaWNoIHRoZSBkaWZmZXJlbnQgYXR0cmlidXRlcyBzaG91bGQgYmUgY29tYmluZWRcblx0ICogaW50byB0aGUgZmluYWwgbWFya3VwLCB3aGljaCBpcyB0aGVuIHNlcmlhbGl6ZWQgYnkgR3V0ZW5iZXJnIGludG8gYHBvc3RfY29udGVudGAuXG5cdCAqIEBzZWUgaHR0cHM6Ly93b3JkcHJlc3Mub3JnL2d1dGVuYmVyZy9oYW5kYm9vay9ibG9jay1lZGl0LXNhdmUvI3NhdmVcblx0ICpcblx0ICogQHBhcmFtICB7T2JqZWN0fSBbcHJvcHNdIFByb3BlcnRpZXMgcGFzc2VkIGZyb20gdGhlIGVkaXRvci5cblx0ICogQHJldHVybiB7RWxlbWVudH0gRWxlbWVudCB0byByZW5kZXIuXG5cdCAqL1xuXHRzYXZlOiBzYXZlQmxvY2ssXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL2pzL3NyYy9hZG1pbi9ndXRlbmJlcmcvYmxvY2tzL2dpZnQtY2VydGlmaWNhdGUtZm9ybS9naWZ0LWNlcnRpZmljYXRlLWZvcm0uanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///259\n"); - -/***/ }), -/* 260 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _wpSettings = __webpack_require__(3);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\n/**\n * @module Edit\n * @description Gift Certificate Form block edit method.\n */\nvar editBlock = function editBlock(props) {\n var setAttributes = props.setAttributes;\n var blockImage = \"\".concat(_wpSettings.ADMIN_IMAGES, \"Gutenberg-Block_Gift-Cert-Form.png\");\n setAttributes({\n shortcode: _gutenbergSettings.GUTENBERG_GIFT_CERTIFICATE_FORM.shortcode\n });\n return [wp.element.createElement(\"h2\", {\n className: props.className,\n key: \"gc-form-shortcode-title\"\n }, _gutenbergSettings.GUTENBERG_GIFT_CERTIFICATE_FORM.block_html.title), wp.element.createElement(\"img\", {\n src: blockImage,\n alt: _gutenbergSettings.GUTENBERG_GIFT_CERTIFICATE_FORM.title,\n className: props.className,\n key: \"gc-form-shortcode-preview\"\n })];\n};\n\nvar _default = editBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvZ2lmdC1jZXJ0aWZpY2F0ZS1mb3JtL2VkaXQuanM/NDE3MCJdLCJuYW1lcyI6WyJlZGl0QmxvY2siLCJwcm9wcyIsInNldEF0dHJpYnV0ZXMiLCJibG9ja0ltYWdlIiwic2hvcnRjb2RlIiwiY2xhc3NOYW1lIiwiYmxvY2tfaHRtbCIsInRpdGxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBTUE7O0FBQ0E7O0FBUEE7Ozs7QUFTQSxJQUFNQSxZQUFZLFNBQVpBLFNBQVksQ0FBQ0MsS0FBRCxFQUFXO0FBQUEsTUFDcEJDLGFBRG9CLEdBQ0ZELEtBREUsQ0FDcEJDLGFBRG9CO0FBRTVCLE1BQU1DLHNGQUFOO0FBRUFELGdCQUFjO0FBQ2JFLGVBQVcsbURBQU1BO0FBREosR0FBZDtBQUlBLFNBQU8sQ0FDTjtBQUNDLGVBQVdILE1BQU1JLFNBRGxCO0FBRUMsU0FBSTtBQUZMLEtBSUcsbURBQU1DLFVBQU4sQ0FBaUJDLEtBSnBCLENBRE0sRUFPTjtBQUNDLFNBQUtKLFVBRE47QUFFQyxTQUFLLG1EQUFNSSxLQUZaO0FBR0MsZUFBV04sTUFBTUksU0FIbEI7QUFJQyxTQUFJO0FBSkwsSUFQTSxDQUFQO0FBY0EsQ0F0QkQ7O2VBd0JlTCxTIiwiZmlsZSI6IjI2MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBFZGl0XG4gKiBAZGVzY3JpcHRpb24gR2lmdCBDZXJ0aWZpY2F0ZSBGb3JtIGJsb2NrIGVkaXQgbWV0aG9kLlxuICovXG5cblxuaW1wb3J0IHsgQURNSU5fSU1BR0VTIH0gZnJvbSAnLi4vLi4vLi4vY29uZmlnL3dwLXNldHRpbmdzJztcbmltcG9ydCB7IEdVVEVOQkVSR19HSUZUX0NFUlRJRklDQVRFX0ZPUk0gYXMgQkxPQ0sgfSBmcm9tICcuLi8uLi9jb25maWcvZ3V0ZW5iZXJnLXNldHRpbmdzJztcblxuY29uc3QgZWRpdEJsb2NrID0gKHByb3BzKSA9PiB7XG5cdGNvbnN0IHsgc2V0QXR0cmlidXRlcyB9ID0gcHJvcHM7XG5cdGNvbnN0IGJsb2NrSW1hZ2UgPSBgJHtBRE1JTl9JTUFHRVN9R3V0ZW5iZXJnLUJsb2NrX0dpZnQtQ2VydC1Gb3JtLnBuZ2A7XG5cblx0c2V0QXR0cmlidXRlcyh7XG5cdFx0c2hvcnRjb2RlOiBCTE9DSy5zaG9ydGNvZGUsXG5cdH0pO1xuXG5cdHJldHVybiBbXG5cdFx0PGgyXG5cdFx0XHRjbGFzc05hbWU9e3Byb3BzLmNsYXNzTmFtZX1cblx0XHRcdGtleT1cImdjLWZvcm0tc2hvcnRjb2RlLXRpdGxlXCJcblx0XHQ+XG5cdFx0XHR7IEJMT0NLLmJsb2NrX2h0bWwudGl0bGUgfVxuXHRcdDwvaDI+LFxuXHRcdDxpbWdcblx0XHRcdHNyYz17YmxvY2tJbWFnZX1cblx0XHRcdGFsdD17QkxPQ0sudGl0bGV9XG5cdFx0XHRjbGFzc05hbWU9e3Byb3BzLmNsYXNzTmFtZX1cblx0XHRcdGtleT1cImdjLWZvcm0tc2hvcnRjb2RlLXByZXZpZXdcIlxuXHRcdC8+LFxuXHRdO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZWRpdEJsb2NrO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL2pzL3NyYy9hZG1pbi9ndXRlbmJlcmcvYmxvY2tzL2dpZnQtY2VydGlmaWNhdGUtZm9ybS9lZGl0LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///260\n"); - -/***/ }), -/* 261 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * @module Save\n * @description Gift Certificate Form block save method.\n */\nvar saveBlock = function saveBlock(props) {\n return props.attributes.shortcode;\n};\n\nvar _default = saveBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvZ2lmdC1jZXJ0aWZpY2F0ZS1mb3JtL3NhdmUuanM/YTRkZiJdLCJuYW1lcyI6WyJzYXZlQmxvY2siLCJwcm9wcyIsImF0dHJpYnV0ZXMiLCJzaG9ydGNvZGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7OztBQUtBLElBQU1BLFlBQVksU0FBWkEsU0FBWTtBQUFBLFNBQVNDLE1BQU1DLFVBQU4sQ0FBaUJDLFNBQTFCO0FBQUEsQ0FBbEI7O2VBRWVILFMiLCJmaWxlIjoiMjYxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIFNhdmVcbiAqIEBkZXNjcmlwdGlvbiBHaWZ0IENlcnRpZmljYXRlIEZvcm0gYmxvY2sgc2F2ZSBtZXRob2QuXG4gKi9cblxuY29uc3Qgc2F2ZUJsb2NrID0gcHJvcHMgPT4gcHJvcHMuYXR0cmlidXRlcy5zaG9ydGNvZGU7XG5cbmV4cG9ydCBkZWZhdWx0IHNhdmVCbG9jaztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vZ3V0ZW5iZXJnL2Jsb2Nrcy9naWZ0LWNlcnRpZmljYXRlLWZvcm0vc2F2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///261\n"); - -/***/ }), -/* 262 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(5);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\nvar _edit = _interopRequireDefault(__webpack_require__(263));\n\nvar _save = _interopRequireDefault(__webpack_require__(264));\n\n/**\n * @module Gutenberg\n * @description Register the Gift Certificate Balance Gutenberg block\n */\n\n/**\n * @function registerBlock\n * @description register the block\n */\nvar _default = {\n id: _gutenbergSettings.GUTENBERG_GIFT_CERTIFICATE_BALANCE.name,\n title: _gutenbergSettings.GUTENBERG_GIFT_CERTIFICATE_BALANCE.title,\n\n /**\n * An icon property should be specified to make it easier to identify a block.\n * These can be any of WordPress’ Dashicons, or a custom svg element.\n * @see https://developer.wordpress.org/resource/dashicons/\n */\n icon: 'money',\n\n /**\n * Blocks are grouped into categories to help with browsing and discovery.\n * The categories provided by core are common, embed, formatting, layout, and widgets.\n */\n category: _gutenbergSettings.GUTENBERG_GIFT_CERTIFICATE_BALANCE.category,\n\n /**\n * Additional keywords to surface this block via search input. Limited to 3.\n */\n keywords: _gutenbergSettings.GUTENBERG_GIFT_CERTIFICATE_BALANCE.keywords,\n\n /**\n * Optional block extended support features.\n */\n supports: {\n // Removes support for an HTML mode.\n html: false\n },\n\n /**\n * Attributes used to save and edit our block.\n */\n attributes: {\n shortcode: {\n type: 'string',\n default: ''\n }\n },\n\n /**\n * The edit function describes the structure of the block in the context of the editor.\n * This represents what the editor will render when the block is used.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#edit\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n edit: _edit.default,\n\n /**\n * The save function defines the way in which the different attributes should be combined\n * into the final markup, which is then serialized by Gutenberg into `post_content`.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#save\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n save: _save.default\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvZ2lmdC1jZXJ0aWZpY2F0ZS1iYWxhbmNlL2dpZnQtY2VydGlmaWNhdGUtYmFsYW5jZS5qcz8xZTBkIl0sIm5hbWVzIjpbImlkIiwibmFtZSIsInRpdGxlIiwiaWNvbiIsImNhdGVnb3J5Iiwia2V5d29yZHMiLCJzdXBwb3J0cyIsImh0bWwiLCJhdHRyaWJ1dGVzIiwic2hvcnRjb2RlIiwidHlwZSIsImRlZmF1bHQiLCJlZGl0Iiwic2F2ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFLQTs7QUFDQTs7QUFDQTs7QUFQQTs7Ozs7QUFTQTs7OztlQUtlO0FBQ2RBLE1BQUksc0RBQU1DLElBREk7QUFFZEMsU0FBTyxzREFBTUEsS0FGQzs7QUFJZDs7Ozs7QUFLQUMsUUFBTSxPQVRROztBQVdkOzs7O0FBSUFDLFlBQVUsc0RBQU1BLFFBZkY7O0FBaUJkOzs7QUFHQUMsWUFBVSxzREFBTUEsUUFwQkY7O0FBc0JkOzs7QUFHQUMsWUFBVTtBQUNUO0FBQ0FDLFVBQU07QUFGRyxHQXpCSTs7QUE4QmQ7OztBQUdBQyxjQUFZO0FBQ1hDLGVBQVc7QUFDVkMsWUFBTSxRQURJO0FBRVZDLGVBQVM7QUFGQztBQURBLEdBakNFOztBQXdDZDs7Ozs7Ozs7QUFRQUMscUJBaERjOztBQWtEZDs7Ozs7Ozs7QUFRQUM7QUExRGMsQyIsImZpbGUiOiIyNjIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgR3V0ZW5iZXJnXG4gKiBAZGVzY3JpcHRpb24gUmVnaXN0ZXIgdGhlIEdpZnQgQ2VydGlmaWNhdGUgQmFsYW5jZSBHdXRlbmJlcmcgYmxvY2tcbiAqL1xuXG5pbXBvcnQgeyBHVVRFTkJFUkdfR0lGVF9DRVJUSUZJQ0FURV9CQUxBTkNFIGFzIEJMT0NLIH0gZnJvbSAnLi4vLi4vY29uZmlnL2d1dGVuYmVyZy1zZXR0aW5ncyc7XG5pbXBvcnQgZWRpdEJsb2NrIGZyb20gJy4vZWRpdCc7XG5pbXBvcnQgc2F2ZUJsb2NrIGZyb20gJy4vc2F2ZSc7XG5cbi8qKlxuICogQGZ1bmN0aW9uIHJlZ2lzdGVyQmxvY2tcbiAqIEBkZXNjcmlwdGlvbiByZWdpc3RlciB0aGUgYmxvY2tcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG5cdGlkOiBCTE9DSy5uYW1lLFxuXHR0aXRsZTogQkxPQ0sudGl0bGUsXG5cblx0LyoqXG5cdCAqIEFuIGljb24gcHJvcGVydHkgc2hvdWxkIGJlIHNwZWNpZmllZCB0byBtYWtlIGl0IGVhc2llciB0byBpZGVudGlmeSBhIGJsb2NrLlxuXHQgKiBUaGVzZSBjYW4gYmUgYW55IG9mIFdvcmRQcmVzc+KAmSBEYXNoaWNvbnMsIG9yIGEgY3VzdG9tIHN2ZyBlbGVtZW50LlxuXHQgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLndvcmRwcmVzcy5vcmcvcmVzb3VyY2UvZGFzaGljb25zL1xuXHQgKi9cblx0aWNvbjogJ21vbmV5JyxcblxuXHQvKipcblx0ICogQmxvY2tzIGFyZSBncm91cGVkIGludG8gY2F0ZWdvcmllcyB0byBoZWxwIHdpdGggYnJvd3NpbmcgYW5kIGRpc2NvdmVyeS5cblx0ICogVGhlIGNhdGVnb3JpZXMgcHJvdmlkZWQgYnkgY29yZSBhcmUgY29tbW9uLCBlbWJlZCwgZm9ybWF0dGluZywgbGF5b3V0LCBhbmQgd2lkZ2V0cy5cblx0ICovXG5cdGNhdGVnb3J5OiBCTE9DSy5jYXRlZ29yeSxcblxuXHQvKipcblx0ICogQWRkaXRpb25hbCBrZXl3b3JkcyB0byBzdXJmYWNlIHRoaXMgYmxvY2sgdmlhIHNlYXJjaCBpbnB1dC4gTGltaXRlZCB0byAzLlxuXHQgKi9cblx0a2V5d29yZHM6IEJMT0NLLmtleXdvcmRzLFxuXG5cdC8qKlxuXHQgKiBPcHRpb25hbCBibG9jayBleHRlbmRlZCBzdXBwb3J0IGZlYXR1cmVzLlxuXHQgKi9cblx0c3VwcG9ydHM6IHtcblx0XHQvLyBSZW1vdmVzIHN1cHBvcnQgZm9yIGFuIEhUTUwgbW9kZS5cblx0XHRodG1sOiBmYWxzZSxcblx0fSxcblxuXHQvKipcblx0ICogQXR0cmlidXRlcyB1c2VkIHRvIHNhdmUgYW5kIGVkaXQgb3VyIGJsb2NrLlxuXHQgKi9cblx0YXR0cmlidXRlczoge1xuXHRcdHNob3J0Y29kZToge1xuXHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHRkZWZhdWx0OiAnJyxcblx0XHR9LFxuXHR9LFxuXG5cdC8qKlxuXHQgKiBUaGUgZWRpdCBmdW5jdGlvbiBkZXNjcmliZXMgdGhlIHN0cnVjdHVyZSBvZiB0aGUgYmxvY2sgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGVkaXRvci5cblx0ICogVGhpcyByZXByZXNlbnRzIHdoYXQgdGhlIGVkaXRvciB3aWxsIHJlbmRlciB3aGVuIHRoZSBibG9jayBpcyB1c2VkLlxuXHQgKiBAc2VlIGh0dHBzOi8vd29yZHByZXNzLm9yZy9ndXRlbmJlcmcvaGFuZGJvb2svYmxvY2stZWRpdC1zYXZlLyNlZGl0XG5cdCAqXG5cdCAqIEBwYXJhbSAge09iamVjdH0gW3Byb3BzXSBQcm9wZXJ0aWVzIHBhc3NlZCBmcm9tIHRoZSBlZGl0b3IuXG5cdCAqIEByZXR1cm4ge0VsZW1lbnR9ICAgICAgICBFbGVtZW50IHRvIHJlbmRlci5cblx0ICovXG5cdGVkaXQ6IGVkaXRCbG9jayxcblxuXHQvKipcblx0ICogVGhlIHNhdmUgZnVuY3Rpb24gZGVmaW5lcyB0aGUgd2F5IGluIHdoaWNoIHRoZSBkaWZmZXJlbnQgYXR0cmlidXRlcyBzaG91bGQgYmUgY29tYmluZWRcblx0ICogaW50byB0aGUgZmluYWwgbWFya3VwLCB3aGljaCBpcyB0aGVuIHNlcmlhbGl6ZWQgYnkgR3V0ZW5iZXJnIGludG8gYHBvc3RfY29udGVudGAuXG5cdCAqIEBzZWUgaHR0cHM6Ly93b3JkcHJlc3Mub3JnL2d1dGVuYmVyZy9oYW5kYm9vay9ibG9jay1lZGl0LXNhdmUvI3NhdmVcblx0ICpcblx0ICogQHBhcmFtICB7T2JqZWN0fSBbcHJvcHNdIFByb3BlcnRpZXMgcGFzc2VkIGZyb20gdGhlIGVkaXRvci5cblx0ICogQHJldHVybiB7RWxlbWVudH0gRWxlbWVudCB0byByZW5kZXIuXG5cdCAqL1xuXHRzYXZlOiBzYXZlQmxvY2ssXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL2pzL3NyYy9hZG1pbi9ndXRlbmJlcmcvYmxvY2tzL2dpZnQtY2VydGlmaWNhdGUtYmFsYW5jZS9naWZ0LWNlcnRpZmljYXRlLWJhbGFuY2UuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///262\n"); - -/***/ }), -/* 263 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _wpSettings = __webpack_require__(3);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\n/**\n * @module Edit\n * @description Gift Certificate Balance block edit method.\n */\nvar editBlock = function editBlock(props) {\n var setAttributes = props.setAttributes;\n var blockImage = \"\".concat(_wpSettings.ADMIN_IMAGES, \"Gutenberg-Block_Gift-Cert-Balance.png\");\n setAttributes({\n shortcode: _gutenbergSettings.GUTENBERG_GIFT_CERTIFICATE_BALANCE.shortcode\n });\n return [wp.element.createElement(\"h2\", {\n className: props.className,\n key: \"gc-balance-shortcode-title\"\n }, _gutenbergSettings.GUTENBERG_GIFT_CERTIFICATE_BALANCE.block_html.title), wp.element.createElement(\"img\", {\n src: blockImage,\n alt: _gutenbergSettings.GUTENBERG_GIFT_CERTIFICATE_BALANCE.title,\n className: props.className,\n key: \"gc-balance-shortcode-preview\"\n })];\n};\n\nvar _default = editBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvZ2lmdC1jZXJ0aWZpY2F0ZS1iYWxhbmNlL2VkaXQuanM/MWYyYyJdLCJuYW1lcyI6WyJlZGl0QmxvY2siLCJwcm9wcyIsInNldEF0dHJpYnV0ZXMiLCJibG9ja0ltYWdlIiwic2hvcnRjb2RlIiwiY2xhc3NOYW1lIiwiYmxvY2tfaHRtbCIsInRpdGxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBTUE7O0FBQ0E7O0FBUEE7Ozs7QUFTQSxJQUFNQSxZQUFZLFNBQVpBLFNBQVksQ0FBQ0MsS0FBRCxFQUFXO0FBQUEsTUFDcEJDLGFBRG9CLEdBQ0ZELEtBREUsQ0FDcEJDLGFBRG9CO0FBRTVCLE1BQU1DLHlGQUFOO0FBRUFELGdCQUFjO0FBQ2JFLGVBQVcsc0RBQU1BO0FBREosR0FBZDtBQUlBLFNBQU8sQ0FDTjtBQUNDLGVBQVdILE1BQU1JLFNBRGxCO0FBRUMsU0FBSTtBQUZMLEtBSUcsc0RBQU1DLFVBQU4sQ0FBaUJDLEtBSnBCLENBRE0sRUFPTjtBQUNDLFNBQUtKLFVBRE47QUFFQyxTQUFLLHNEQUFNSSxLQUZaO0FBR0MsZUFBV04sTUFBTUksU0FIbEI7QUFJQyxTQUFJO0FBSkwsSUFQTSxDQUFQO0FBY0EsQ0F0QkQ7O2VBd0JlTCxTIiwiZmlsZSI6IjI2My5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBFZGl0XG4gKiBAZGVzY3JpcHRpb24gR2lmdCBDZXJ0aWZpY2F0ZSBCYWxhbmNlIGJsb2NrIGVkaXQgbWV0aG9kLlxuICovXG5cblxuaW1wb3J0IHsgQURNSU5fSU1BR0VTIH0gZnJvbSAnLi4vLi4vLi4vY29uZmlnL3dwLXNldHRpbmdzJztcbmltcG9ydCB7IEdVVEVOQkVSR19HSUZUX0NFUlRJRklDQVRFX0JBTEFOQ0UgYXMgQkxPQ0sgfSBmcm9tICcuLi8uLi9jb25maWcvZ3V0ZW5iZXJnLXNldHRpbmdzJztcblxuY29uc3QgZWRpdEJsb2NrID0gKHByb3BzKSA9PiB7XG5cdGNvbnN0IHsgc2V0QXR0cmlidXRlcyB9ID0gcHJvcHM7XG5cdGNvbnN0IGJsb2NrSW1hZ2UgPSBgJHtBRE1JTl9JTUFHRVN9R3V0ZW5iZXJnLUJsb2NrX0dpZnQtQ2VydC1CYWxhbmNlLnBuZ2A7XG5cblx0c2V0QXR0cmlidXRlcyh7XG5cdFx0c2hvcnRjb2RlOiBCTE9DSy5zaG9ydGNvZGUsXG5cdH0pO1xuXG5cdHJldHVybiBbXG5cdFx0PGgyXG5cdFx0XHRjbGFzc05hbWU9e3Byb3BzLmNsYXNzTmFtZX1cblx0XHRcdGtleT1cImdjLWJhbGFuY2Utc2hvcnRjb2RlLXRpdGxlXCJcblx0XHQ+XG5cdFx0XHR7IEJMT0NLLmJsb2NrX2h0bWwudGl0bGUgfVxuXHRcdDwvaDI+LFxuXHRcdDxpbWdcblx0XHRcdHNyYz17YmxvY2tJbWFnZX1cblx0XHRcdGFsdD17QkxPQ0sudGl0bGV9XG5cdFx0XHRjbGFzc05hbWU9e3Byb3BzLmNsYXNzTmFtZX1cblx0XHRcdGtleT1cImdjLWJhbGFuY2Utc2hvcnRjb2RlLXByZXZpZXdcIlxuXHRcdC8+LFxuXHRdO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZWRpdEJsb2NrO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL2pzL3NyYy9hZG1pbi9ndXRlbmJlcmcvYmxvY2tzL2dpZnQtY2VydGlmaWNhdGUtYmFsYW5jZS9lZGl0LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///263\n"); - -/***/ }), -/* 264 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * @module Save\n * @description Gift Certificate Balance block save method.\n */\nvar saveBlock = function saveBlock(props) {\n return props.attributes.shortcode;\n};\n\nvar _default = saveBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvZ2lmdC1jZXJ0aWZpY2F0ZS1iYWxhbmNlL3NhdmUuanM/MzE3YiJdLCJuYW1lcyI6WyJzYXZlQmxvY2siLCJwcm9wcyIsImF0dHJpYnV0ZXMiLCJzaG9ydGNvZGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7OztBQUtBLElBQU1BLFlBQVksU0FBWkEsU0FBWTtBQUFBLFNBQVNDLE1BQU1DLFVBQU4sQ0FBaUJDLFNBQTFCO0FBQUEsQ0FBbEI7O2VBRWVILFMiLCJmaWxlIjoiMjY0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIFNhdmVcbiAqIEBkZXNjcmlwdGlvbiBHaWZ0IENlcnRpZmljYXRlIEJhbGFuY2UgYmxvY2sgc2F2ZSBtZXRob2QuXG4gKi9cblxuY29uc3Qgc2F2ZUJsb2NrID0gcHJvcHMgPT4gcHJvcHMuYXR0cmlidXRlcy5zaG9ydGNvZGU7XG5cbmV4cG9ydCBkZWZhdWx0IHNhdmVCbG9jaztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9qcy9zcmMvYWRtaW4vZ3V0ZW5iZXJnL2Jsb2Nrcy9naWZ0LWNlcnRpZmljYXRlLWJhbGFuY2Uvc2F2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///264\n"); - -/***/ }), -/* 265 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(5);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\nvar _edit = _interopRequireDefault(__webpack_require__(266));\n\nvar _save = _interopRequireDefault(__webpack_require__(268));\n\n/**\n * @module Gutenberg\n * @description Register the Cart Gutenberg block\n */\n\n/**\n * @function registerBlock\n * @description register the block\n */\nvar _default = {\n id: _gutenbergSettings.GUTENBERG_PRODUCT_REVIEWS.name,\n title: _gutenbergSettings.GUTENBERG_PRODUCT_REVIEWS.title,\n\n /**\n * An icon property should be specified to make it easier to identify a block.\n * These can be any of WordPress’ Dashicons, or a custom svg element.\n * @see https://developer.wordpress.org/resource/dashicons/\n */\n icon: 'star-filled',\n\n /**\n * Blocks are grouped into categories to help with browsing and discovery.\n * The categories provided by core are common, embed, formatting, layout, and widgets.\n */\n category: _gutenbergSettings.GUTENBERG_PRODUCT_REVIEWS.category,\n\n /**\n * Additional keywords to surface this block via search input. Limited to 3.\n */\n keywords: _gutenbergSettings.GUTENBERG_PRODUCT_REVIEWS.keywords,\n\n /**\n * Optional block extended support features.\n */\n supports: {\n // Removes support for an HTML mode.\n html: false\n },\n\n /**\n * Attributes used to save and edit our block.\n */\n attributes: {\n shortcode: {\n type: 'string',\n default: \"[\".concat(_gutenbergSettings.GUTENBERG_PRODUCT_REVIEWS.shortcode, \"]\")\n },\n productId: {\n type: 'string',\n default: ''\n }\n },\n\n /**\n * The edit function describes the structure of the block in the context of the editor.\n * This represents what the editor will render when the block is used.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#edit\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n edit: _edit.default,\n\n /**\n * The save function defines the way in which the different attributes should be combined\n * into the final markup, which is then serialized by Gutenberg into `post_content`.\n * @see https://wordpress.org/gutenberg/handbook/block-edit-save/#save\n *\n * @param {Object} [props] Properties passed from the editor.\n * @return {Element} Element to render.\n */\n save: _save.default\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdC1yZXZpZXdzL3Byb2R1Y3QtcmV2aWV3cy5qcz81NmMyIl0sIm5hbWVzIjpbImlkIiwibmFtZSIsInRpdGxlIiwiaWNvbiIsImNhdGVnb3J5Iiwia2V5d29yZHMiLCJzdXBwb3J0cyIsImh0bWwiLCJhdHRyaWJ1dGVzIiwic2hvcnRjb2RlIiwidHlwZSIsImRlZmF1bHQiLCJwcm9kdWN0SWQiLCJlZGl0Iiwic2F2ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFLQTs7QUFDQTs7QUFDQTs7QUFQQTs7Ozs7QUFTQTs7OztlQUtlO0FBQ2RBLE1BQUksNkNBQU1DLElBREk7QUFFZEMsU0FBTyw2Q0FBTUEsS0FGQzs7QUFJZDs7Ozs7QUFLQUMsUUFBTSxhQVRROztBQVdkOzs7O0FBSUFDLFlBQVUsNkNBQU1BLFFBZkY7O0FBaUJkOzs7QUFHQUMsWUFBVSw2Q0FBTUEsUUFwQkY7O0FBc0JkOzs7QUFHQUMsWUFBVTtBQUNUO0FBQ0FDLFVBQU07QUFGRyxHQXpCSTs7QUE4QmQ7OztBQUdBQyxjQUFZO0FBQ1hDLGVBQVc7QUFDVkMsWUFBTSxRQURJO0FBRVZDLDBCQUFhLDZDQUFNRixTQUFuQjtBQUZVLEtBREE7QUFLWEcsZUFBVztBQUNWRixZQUFNLFFBREk7QUFFVkMsZUFBUztBQUZDO0FBTEEsR0FqQ0U7O0FBNENkOzs7Ozs7OztBQVFBRSxxQkFwRGM7O0FBc0RkOzs7Ozs7OztBQVFBQztBQTlEYyxDIiwiZmlsZSI6IjI2NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBHdXRlbmJlcmdcbiAqIEBkZXNjcmlwdGlvbiBSZWdpc3RlciB0aGUgQ2FydCBHdXRlbmJlcmcgYmxvY2tcbiAqL1xuXG5pbXBvcnQgeyBHVVRFTkJFUkdfUFJPRFVDVF9SRVZJRVdTIGFzIEJMT0NLIH0gZnJvbSAnLi4vLi4vY29uZmlnL2d1dGVuYmVyZy1zZXR0aW5ncyc7XG5pbXBvcnQgZWRpdEJsb2NrIGZyb20gJy4vZWRpdCc7XG5pbXBvcnQgc2F2ZUJsb2NrIGZyb20gJy4vc2F2ZSc7XG5cbi8qKlxuICogQGZ1bmN0aW9uIHJlZ2lzdGVyQmxvY2tcbiAqIEBkZXNjcmlwdGlvbiByZWdpc3RlciB0aGUgYmxvY2tcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG5cdGlkOiBCTE9DSy5uYW1lLFxuXHR0aXRsZTogQkxPQ0sudGl0bGUsXG5cblx0LyoqXG5cdCAqIEFuIGljb24gcHJvcGVydHkgc2hvdWxkIGJlIHNwZWNpZmllZCB0byBtYWtlIGl0IGVhc2llciB0byBpZGVudGlmeSBhIGJsb2NrLlxuXHQgKiBUaGVzZSBjYW4gYmUgYW55IG9mIFdvcmRQcmVzc+KAmSBEYXNoaWNvbnMsIG9yIGEgY3VzdG9tIHN2ZyBlbGVtZW50LlxuXHQgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLndvcmRwcmVzcy5vcmcvcmVzb3VyY2UvZGFzaGljb25zL1xuXHQgKi9cblx0aWNvbjogJ3N0YXItZmlsbGVkJyxcblxuXHQvKipcblx0ICogQmxvY2tzIGFyZSBncm91cGVkIGludG8gY2F0ZWdvcmllcyB0byBoZWxwIHdpdGggYnJvd3NpbmcgYW5kIGRpc2NvdmVyeS5cblx0ICogVGhlIGNhdGVnb3JpZXMgcHJvdmlkZWQgYnkgY29yZSBhcmUgY29tbW9uLCBlbWJlZCwgZm9ybWF0dGluZywgbGF5b3V0LCBhbmQgd2lkZ2V0cy5cblx0ICovXG5cdGNhdGVnb3J5OiBCTE9DSy5jYXRlZ29yeSxcblxuXHQvKipcblx0ICogQWRkaXRpb25hbCBrZXl3b3JkcyB0byBzdXJmYWNlIHRoaXMgYmxvY2sgdmlhIHNlYXJjaCBpbnB1dC4gTGltaXRlZCB0byAzLlxuXHQgKi9cblx0a2V5d29yZHM6IEJMT0NLLmtleXdvcmRzLFxuXG5cdC8qKlxuXHQgKiBPcHRpb25hbCBibG9jayBleHRlbmRlZCBzdXBwb3J0IGZlYXR1cmVzLlxuXHQgKi9cblx0c3VwcG9ydHM6IHtcblx0XHQvLyBSZW1vdmVzIHN1cHBvcnQgZm9yIGFuIEhUTUwgbW9kZS5cblx0XHRodG1sOiBmYWxzZSxcblx0fSxcblxuXHQvKipcblx0ICogQXR0cmlidXRlcyB1c2VkIHRvIHNhdmUgYW5kIGVkaXQgb3VyIGJsb2NrLlxuXHQgKi9cblx0YXR0cmlidXRlczoge1xuXHRcdHNob3J0Y29kZToge1xuXHRcdFx0dHlwZTogJ3N0cmluZycsXG5cdFx0XHRkZWZhdWx0OiBgWyR7QkxPQ0suc2hvcnRjb2RlfV1gLFxuXHRcdH0sXG5cdFx0cHJvZHVjdElkOiB7XG5cdFx0XHR0eXBlOiAnc3RyaW5nJyxcblx0XHRcdGRlZmF1bHQ6ICcnLFxuXHRcdH0sXG5cdH0sXG5cblx0LyoqXG5cdCAqIFRoZSBlZGl0IGZ1bmN0aW9uIGRlc2NyaWJlcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBibG9jayBpbiB0aGUgY29udGV4dCBvZiB0aGUgZWRpdG9yLlxuXHQgKiBUaGlzIHJlcHJlc2VudHMgd2hhdCB0aGUgZWRpdG9yIHdpbGwgcmVuZGVyIHdoZW4gdGhlIGJsb2NrIGlzIHVzZWQuXG5cdCAqIEBzZWUgaHR0cHM6Ly93b3JkcHJlc3Mub3JnL2d1dGVuYmVyZy9oYW5kYm9vay9ibG9jay1lZGl0LXNhdmUvI2VkaXRcblx0ICpcblx0ICogQHBhcmFtICB7T2JqZWN0fSBbcHJvcHNdIFByb3BlcnRpZXMgcGFzc2VkIGZyb20gdGhlIGVkaXRvci5cblx0ICogQHJldHVybiB7RWxlbWVudH0gICAgICAgIEVsZW1lbnQgdG8gcmVuZGVyLlxuXHQgKi9cblx0ZWRpdDogZWRpdEJsb2NrLFxuXG5cdC8qKlxuXHQgKiBUaGUgc2F2ZSBmdW5jdGlvbiBkZWZpbmVzIHRoZSB3YXkgaW4gd2hpY2ggdGhlIGRpZmZlcmVudCBhdHRyaWJ1dGVzIHNob3VsZCBiZSBjb21iaW5lZFxuXHQgKiBpbnRvIHRoZSBmaW5hbCBtYXJrdXAsIHdoaWNoIGlzIHRoZW4gc2VyaWFsaXplZCBieSBHdXRlbmJlcmcgaW50byBgcG9zdF9jb250ZW50YC5cblx0ICogQHNlZSBodHRwczovL3dvcmRwcmVzcy5vcmcvZ3V0ZW5iZXJnL2hhbmRib29rL2Jsb2NrLWVkaXQtc2F2ZS8jc2F2ZVxuXHQgKlxuXHQgKiBAcGFyYW0gIHtPYmplY3R9IFtwcm9wc10gUHJvcGVydGllcyBwYXNzZWQgZnJvbSB0aGUgZWRpdG9yLlxuXHQgKiBAcmV0dXJuIHtFbGVtZW50fSBFbGVtZW50IHRvIHJlbmRlci5cblx0ICovXG5cdHNhdmU6IHNhdmVCbG9jayxcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdC1yZXZpZXdzL3Byb2R1Y3QtcmV2aWV3cy5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///265\n"); - -/***/ }), -/* 266 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(93));\n\nvar _wpSettings = __webpack_require__(3);\n\nvar _gutenbergSettings = __webpack_require__(1);\n\nvar _shortcodeInput = _interopRequireDefault(__webpack_require__(267));\n\n/**\n * @module Edit\n * @description Product Reviews block edit method.\n */\nvar InspectorControls = wp.editor.InspectorControls;\nvar _wp$components = wp.components,\n PanelRow = _wp$components.PanelRow,\n PanelBody = _wp$components.PanelBody,\n BaseControl = _wp$components.BaseControl;\nvar withInstanceId = wp.compose.withInstanceId;\nvar Fragment = wp.element.Fragment;\nvar editBlock = withInstanceId(function (props) {\n var attributes = props.attributes,\n setAttributes = props.setAttributes,\n instanceId = props.instanceId;\n var productId = attributes.productId;\n var blockImage = \"\".concat(_wpSettings.ADMIN_IMAGES, \"Gutenberg-Block_Product_Reviews.png\");\n var fieldId = \"block-product-reviews-input-\".concat(instanceId);\n return wp.element.createElement(Fragment, null, wp.element.createElement(\"h2\", {\n className: props.className,\n key: \"product-reviews-title\"\n }, _gutenbergSettings.GUTENBERG_PRODUCT_REVIEWS.block_html.title), wp.element.createElement(\"img\", {\n src: blockImage,\n alt: _gutenbergSettings.GUTENBERG_PRODUCT_REVIEWS.title,\n className: props.className,\n key: \"product-reviews-preview\"\n }), wp.element.createElement(InspectorControls, null, wp.element.createElement(PanelBody, {\n title: _gutenbergSettings.GUTENBERG_PRODUCT_REVIEWS.inspector.header,\n initialOpen: true\n }, wp.element.createElement(PanelRow, null, wp.element.createElement(BaseControl, {\n label: _gutenbergSettings.GUTENBERG_PRODUCT_REVIEWS.inspector.product_id_label,\n id: fieldId,\n help: _gutenbergSettings.GUTENBERG_PRODUCT_REVIEWS.inspector.product_id_description\n }, wp.element.createElement(_shortcodeInput.default, (0, _extends2.default)({\n setAttributes: setAttributes\n }, props, {\n key: 'ShortcodeInput',\n fieldId: fieldId,\n productId: productId\n })))))));\n});\nvar _default = editBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdC1yZXZpZXdzL2VkaXQuanM/N2RiMiJdLCJuYW1lcyI6WyJJbnNwZWN0b3JDb250cm9scyIsIndwIiwiZWRpdG9yIiwiY29tcG9uZW50cyIsIlBhbmVsUm93IiwiUGFuZWxCb2R5IiwiQmFzZUNvbnRyb2wiLCJ3aXRoSW5zdGFuY2VJZCIsImNvbXBvc2UiLCJGcmFnbWVudCIsImVsZW1lbnQiLCJlZGl0QmxvY2siLCJwcm9wcyIsImF0dHJpYnV0ZXMiLCJzZXRBdHRyaWJ1dGVzIiwiaW5zdGFuY2VJZCIsInByb2R1Y3RJZCIsImJsb2NrSW1hZ2UiLCJmaWVsZElkIiwiY2xhc3NOYW1lIiwiYmxvY2tfaHRtbCIsInRpdGxlIiwiaW5zcGVjdG9yIiwiaGVhZGVyIiwicHJvZHVjdF9pZF9sYWJlbCIsInByb2R1Y3RfaWRfZGVzY3JpcHRpb24iLCJrZXkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBTUE7O0FBQ0E7O0FBQ0E7O0FBUkE7Ozs7SUFVUUEsaUIsR0FBc0JDLEdBQUdDLE0sQ0FBekJGLGlCO3FCQUNxQ0MsR0FBR0UsVTtJQUF4Q0MsUSxrQkFBQUEsUTtJQUFVQyxTLGtCQUFBQSxTO0lBQVdDLFcsa0JBQUFBLFc7SUFDckJDLGMsR0FBbUJOLEdBQUdPLE8sQ0FBdEJELGM7SUFDQUUsUSxHQUFhUixHQUFHUyxPLENBQWhCRCxRO0FBRVIsSUFBTUUsWUFBWUosZUFBZSxVQUFDSyxLQUFELEVBQVc7QUFBQSxNQUNuQ0MsVUFEbUMsR0FDT0QsS0FEUCxDQUNuQ0MsVUFEbUM7QUFBQSxNQUN2QkMsYUFEdUIsR0FDT0YsS0FEUCxDQUN2QkUsYUFEdUI7QUFBQSxNQUNSQyxVQURRLEdBQ09ILEtBRFAsQ0FDUkcsVUFEUTtBQUFBLE1BRW5DQyxTQUZtQyxHQUVyQkgsVUFGcUIsQ0FFbkNHLFNBRm1DO0FBRzNDLE1BQU1DLHVGQUFOO0FBQ0EsTUFBTUMsZ0RBQXlDSCxVQUF6QyxDQUFOO0FBRUEsU0FDQyx5QkFBQyxRQUFELFFBQ0M7QUFDQyxlQUFXSCxNQUFNTyxTQURsQjtBQUVDLFNBQUk7QUFGTCxLQUlFLDZDQUFNQyxVQUFOLENBQWlCQyxLQUpuQixDQURELEVBT0M7QUFDQyxTQUFLSixVQUROO0FBRUMsU0FBSyw2Q0FBTUksS0FGWjtBQUdDLGVBQVdULE1BQU1PLFNBSGxCO0FBSUMsU0FBSTtBQUpMLElBUEQsRUFhQyx5QkFBQyxpQkFBRCxRQUNDLHlCQUFDLFNBQUQ7QUFDQyxXQUFPLDZDQUFNRyxTQUFOLENBQWdCQyxNQUR4QjtBQUVDO0FBRkQsS0FJQyx5QkFBQyxRQUFELFFBQ0MseUJBQUMsV0FBRDtBQUNDLFdBQU8sNkNBQU1ELFNBQU4sQ0FBZ0JFLGdCQUR4QjtBQUVDLFFBQUlOLE9BRkw7QUFHQyxVQUFNLDZDQUFNSSxTQUFOLENBQWdCRztBQUh2QixLQUtDO0FBQXNCWDtBQUF0QixLQUF3Q0YsS0FBeEM7QUFBK0NjLFNBQUssZ0JBQXBEO0FBQXNFUixvQkFBdEU7QUFBK0VGO0FBQS9FLEtBTEQsQ0FERCxDQUpELENBREQsQ0FiRCxDQUREO0FBZ0NBLENBdENpQixDQUFsQjtlQXdDZUwsUyIsImZpbGUiOiIyNjYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgRWRpdFxuICogQGRlc2NyaXB0aW9uIFByb2R1Y3QgUmV2aWV3cyBibG9jayBlZGl0IG1ldGhvZC5cbiAqL1xuXG5cbmltcG9ydCB7IEFETUlOX0lNQUdFUyB9IGZyb20gJy4uLy4uLy4uL2NvbmZpZy93cC1zZXR0aW5ncyc7XG5pbXBvcnQgeyBHVVRFTkJFUkdfUFJPRFVDVF9SRVZJRVdTIGFzIEJMT0NLIH0gZnJvbSAnLi4vLi4vY29uZmlnL2d1dGVuYmVyZy1zZXR0aW5ncyc7XG5pbXBvcnQgU2hvcnRjb2RlSW5wdXQgZnJvbSAnLi9zaG9ydGNvZGVJbnB1dCc7XG5cbmNvbnN0IHsgSW5zcGVjdG9yQ29udHJvbHMgfSA9IHdwLmVkaXRvcjtcbmNvbnN0IHsgUGFuZWxSb3csIFBhbmVsQm9keSwgQmFzZUNvbnRyb2wgfSA9IHdwLmNvbXBvbmVudHM7XG5jb25zdCB7IHdpdGhJbnN0YW5jZUlkIH0gPSB3cC5jb21wb3NlO1xuY29uc3QgeyBGcmFnbWVudCB9ID0gd3AuZWxlbWVudDtcblxuY29uc3QgZWRpdEJsb2NrID0gd2l0aEluc3RhbmNlSWQoKHByb3BzKSA9PiB7XG5cdGNvbnN0IHsgYXR0cmlidXRlcywgc2V0QXR0cmlidXRlcywgaW5zdGFuY2VJZCB9ID0gcHJvcHM7XG5cdGNvbnN0IHsgcHJvZHVjdElkIH0gPSBhdHRyaWJ1dGVzO1xuXHRjb25zdCBibG9ja0ltYWdlID0gYCR7QURNSU5fSU1BR0VTfUd1dGVuYmVyZy1CbG9ja19Qcm9kdWN0X1Jldmlld3MucG5nYDtcblx0Y29uc3QgZmllbGRJZCA9IGBibG9jay1wcm9kdWN0LXJldmlld3MtaW5wdXQtJHtpbnN0YW5jZUlkfWA7XG5cblx0cmV0dXJuIChcblx0XHQ8RnJhZ21lbnQ+XG5cdFx0XHQ8aDJcblx0XHRcdFx0Y2xhc3NOYW1lPXtwcm9wcy5jbGFzc05hbWV9XG5cdFx0XHRcdGtleT1cInByb2R1Y3QtcmV2aWV3cy10aXRsZVwiXG5cdFx0XHQ+XG5cdFx0XHRcdHtCTE9DSy5ibG9ja19odG1sLnRpdGxlfVxuXHRcdFx0PC9oMj5cblx0XHRcdDxpbWdcblx0XHRcdFx0c3JjPXtibG9ja0ltYWdlfVxuXHRcdFx0XHRhbHQ9e0JMT0NLLnRpdGxlfVxuXHRcdFx0XHRjbGFzc05hbWU9e3Byb3BzLmNsYXNzTmFtZX1cblx0XHRcdFx0a2V5PVwicHJvZHVjdC1yZXZpZXdzLXByZXZpZXdcIlxuXHRcdFx0Lz5cblx0XHRcdDxJbnNwZWN0b3JDb250cm9scz5cblx0XHRcdFx0PFBhbmVsQm9keVxuXHRcdFx0XHRcdHRpdGxlPXtCTE9DSy5pbnNwZWN0b3IuaGVhZGVyfVxuXHRcdFx0XHRcdGluaXRpYWxPcGVuXG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8UGFuZWxSb3c+XG5cdFx0XHRcdFx0XHQ8QmFzZUNvbnRyb2xcblx0XHRcdFx0XHRcdFx0bGFiZWw9e0JMT0NLLmluc3BlY3Rvci5wcm9kdWN0X2lkX2xhYmVsfVxuXHRcdFx0XHRcdFx0XHRpZD17ZmllbGRJZH1cblx0XHRcdFx0XHRcdFx0aGVscD17QkxPQ0suaW5zcGVjdG9yLnByb2R1Y3RfaWRfZGVzY3JpcHRpb259XG5cdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdDxTaG9ydGNvZGVJbnB1dCB7Li4ueyBzZXRBdHRyaWJ1dGVzLCAuLi5wcm9wcywga2V5OiAnU2hvcnRjb2RlSW5wdXQnLCBmaWVsZElkLCBwcm9kdWN0SWQgfX0gLz5cblx0XHRcdFx0XHRcdDwvQmFzZUNvbnRyb2w+XG5cdFx0XHRcdFx0PC9QYW5lbFJvdz5cblx0XHRcdFx0PC9QYW5lbEJvZHk+XG5cdFx0XHQ8L0luc3BlY3RvckNvbnRyb2xzPlxuXHRcdDwvRnJhZ21lbnQ+XG5cdCk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgZWRpdEJsb2NrO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL2pzL3NyYy9hZG1pbi9ndXRlbmJlcmcvYmxvY2tzL3Byb2R1Y3QtcmV2aWV3cy9lZGl0LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///266\n"); - -/***/ }), -/* 267 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _getPrototypeOf = _interopRequireDefault(__webpack_require__(94));\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(95));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(96));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(97));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(99));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(100));\n\nvar _gutenbergSettings = __webpack_require__(1);\n\n/**\n * @module Inspector Input Field\n */\nvar Component = wp.element.Component;\n\nvar ShortcodeInput =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(ShortcodeInput, _Component);\n\n function ShortcodeInput() {\n var _ref;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, ShortcodeInput);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_ref = ShortcodeInput.__proto__ || (0, _getPrototypeOf.default)(ShortcodeInput)).call.apply(_ref, [this].concat(args)));\n _this.changeEvent = _this.changeEvent.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n (0, _createClass2.default)(ShortcodeInput, [{\n key: \"changeEvent\",\n value: function changeEvent(event) {\n var target = event.target;\n this.props.setAttributes({\n shortcode: \"[\".concat(_gutenbergSettings.GUTENBERG_PRODUCT_REVIEWS.shortcode, \" id=\\\"\").concat(target.value, \"\\\"]\"),\n productId: target.value\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n return wp.element.createElement(\"input\", {\n type: \"text\",\n id: this.props.fieldId,\n value: this.props.productId,\n pattern: /\\d+/,\n onChange: this.changeEvent\n });\n }\n }]);\n return ShortcodeInput;\n}(Component);\n\nexports.default = ShortcodeInput;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdC1yZXZpZXdzL3Nob3J0Y29kZUlucHV0LmpzPzBiMGMiXSwibmFtZXMiOlsiQ29tcG9uZW50Iiwid3AiLCJlbGVtZW50IiwiU2hvcnRjb2RlSW5wdXQiLCJhcmdzIiwiY2hhbmdlRXZlbnQiLCJiaW5kIiwiZXZlbnQiLCJ0YXJnZXQiLCJwcm9wcyIsInNldEF0dHJpYnV0ZXMiLCJzaG9ydGNvZGUiLCJ2YWx1ZSIsInByb2R1Y3RJZCIsImZpZWxkSWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBOztBQUhBOzs7SUFLUUEsUyxHQUFjQyxHQUFHQyxPLENBQWpCRixTOztJQUVhRyxjOzs7OztBQUVwQiw0QkFBcUI7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQSxzQ0FBTkMsSUFBTTtBQUFOQSxVQUFNO0FBQUE7O0FBQ3BCLDRLQUFTQSxJQUFUO0FBQ0EsVUFBS0MsV0FBTCxHQUFtQixNQUFLQSxXQUFMLENBQWlCQyxJQUFqQiw2Q0FBbkI7QUFGb0I7QUFHcEI7Ozs7Z0NBRVdDLEssRUFBTztBQUFBLFVBQ1ZDLE1BRFUsR0FDQ0QsS0FERCxDQUNWQyxNQURVO0FBR2xCLFdBQUtDLEtBQUwsQ0FBV0MsYUFBWCxDQUF5QjtBQUN4QkMsOEJBQWUsNkNBQU1BLFNBQXJCLG1CQUFzQ0gsT0FBT0ksS0FBN0MsUUFEd0I7QUFFeEJDLG1CQUFXTCxPQUFPSTtBQUZNLE9BQXpCO0FBSUE7Ozs2QkFFUTtBQUNSLGFBQ0M7QUFDQyxjQUFLLE1BRE47QUFFQyxZQUFJLEtBQUtILEtBQUwsQ0FBV0ssT0FGaEI7QUFHQyxlQUFPLEtBQUtMLEtBQUwsQ0FBV0ksU0FIbkI7QUFJQyxpQkFBUyxLQUpWO0FBS0Msa0JBQVUsS0FBS1I7QUFMaEIsUUFERDtBQVNBOzs7RUExQjBDTCxTIiwiZmlsZSI6IjI2Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBJbnNwZWN0b3IgSW5wdXQgRmllbGRcbiAqL1xuaW1wb3J0IHsgR1VURU5CRVJHX1BST0RVQ1RfUkVWSUVXUyBhcyBCTE9DSyB9IGZyb20gJy4uLy4uL2NvbmZpZy9ndXRlbmJlcmctc2V0dGluZ3MnO1xuXG5jb25zdCB7IENvbXBvbmVudCB9ID0gd3AuZWxlbWVudDtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2hvcnRjb2RlSW5wdXQgZXh0ZW5kcyBDb21wb25lbnQge1xuXG5cdGNvbnN0cnVjdG9yKC4uLmFyZ3MpIHtcblx0XHRzdXBlciguLi5hcmdzKTtcblx0XHR0aGlzLmNoYW5nZUV2ZW50ID0gdGhpcy5jaGFuZ2VFdmVudC5iaW5kKHRoaXMpO1xuXHR9XG5cblx0Y2hhbmdlRXZlbnQoZXZlbnQpIHtcblx0XHRjb25zdCB7IHRhcmdldCB9ID0gZXZlbnQ7XG5cblx0XHR0aGlzLnByb3BzLnNldEF0dHJpYnV0ZXMoe1xuXHRcdFx0c2hvcnRjb2RlOiBgWyR7QkxPQ0suc2hvcnRjb2RlfSBpZD1cIiR7dGFyZ2V0LnZhbHVlfVwiXWAsXG5cdFx0XHRwcm9kdWN0SWQ6IHRhcmdldC52YWx1ZSxcblx0XHR9KTtcblx0fVxuXG5cdHJlbmRlcigpIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0PGlucHV0XG5cdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcblx0XHRcdFx0aWQ9e3RoaXMucHJvcHMuZmllbGRJZH1cblx0XHRcdFx0dmFsdWU9e3RoaXMucHJvcHMucHJvZHVjdElkfVxuXHRcdFx0XHRwYXR0ZXJuPXsvXFxkKy99XG5cdFx0XHRcdG9uQ2hhbmdlPXt0aGlzLmNoYW5nZUV2ZW50fVxuXHRcdFx0Lz5cblx0XHQpO1xuXHR9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdC1yZXZpZXdzL3Nob3J0Y29kZUlucHV0LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///267\n"); - -/***/ }), -/* 268 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * @module Save\n * @description Cart block save method.\n */\nvar saveBlock = function saveBlock(props) {\n return props.attributes.shortcode;\n};\n\nvar _default = saveBlock;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdC1yZXZpZXdzL3NhdmUuanM/NjFmYSJdLCJuYW1lcyI6WyJzYXZlQmxvY2siLCJwcm9wcyIsImF0dHJpYnV0ZXMiLCJzaG9ydGNvZGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7OztBQUtBLElBQU1BLFlBQVksU0FBWkEsU0FBWTtBQUFBLFNBQVNDLE1BQU1DLFVBQU4sQ0FBaUJDLFNBQTFCO0FBQUEsQ0FBbEI7O2VBRWVILFMiLCJmaWxlIjoiMjY4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIFNhdmVcbiAqIEBkZXNjcmlwdGlvbiBDYXJ0IGJsb2NrIHNhdmUgbWV0aG9kLlxuICovXG5cbmNvbnN0IHNhdmVCbG9jayA9IHByb3BzID0+IHByb3BzLmF0dHJpYnV0ZXMuc2hvcnRjb2RlO1xuXG5leHBvcnQgZGVmYXVsdCBzYXZlQmxvY2s7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdC1yZXZpZXdzL3NhdmUuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///268\n"); +eval("\n\nvar _interopRequireDefault = __webpack_require__(0);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _getPrototypeOf = _interopRequireDefault(__webpack_require__(36));\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(25));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(59));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(37));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(38));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(100));\n\nvar _gutenbergSettings = __webpack_require__(18);\n\n/**\n * @module Inspector Input Field\n */\nvar Component = wp.element.Component;\n\nvar ShortcodeInput =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2.default)(ShortcodeInput, _Component);\n\n function ShortcodeInput() {\n var _ref;\n\n var _this;\n\n (0, _classCallCheck2.default)(this, ShortcodeInput);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = (0, _possibleConstructorReturn2.default)(this, (_ref = ShortcodeInput.__proto__ || (0, _getPrototypeOf.default)(ShortcodeInput)).call.apply(_ref, [this].concat(args)));\n _this.changeEvent = _this.changeEvent.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n (0, _createClass2.default)(ShortcodeInput, [{\n key: \"changeEvent\",\n value: function changeEvent(event) {\n var target = event.target;\n this.props.setAttributes({\n shortcode: \"[\".concat(_gutenbergSettings.GUTENBERG_PRODUCT_REVIEWS.shortcode, \" id=\\\"\").concat(target.value, \"\\\"]\"),\n productId: target.value\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n return wp.element.createElement(\"input\", {\n type: \"text\",\n id: this.props.fieldId,\n value: this.props.productId,\n pattern: /\\d+/,\n onChange: this.changeEvent\n });\n }\n }]);\n return ShortcodeInput;\n}(Component);\n\nexports.default = ShortcodeInput;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdC1yZXZpZXdzL3Nob3J0Y29kZUlucHV0LmpzPzBiMGMiXSwibmFtZXMiOlsiQ29tcG9uZW50Iiwid3AiLCJlbGVtZW50IiwiU2hvcnRjb2RlSW5wdXQiLCJhcmdzIiwiY2hhbmdlRXZlbnQiLCJiaW5kIiwiZXZlbnQiLCJ0YXJnZXQiLCJwcm9wcyIsInNldEF0dHJpYnV0ZXMiLCJzaG9ydGNvZGUiLCJ2YWx1ZSIsInByb2R1Y3RJZCIsImZpZWxkSWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBOztBQUhBOzs7SUFLUUEsUyxHQUFjQyxHQUFHQyxPLENBQWpCRixTOztJQUVhRyxjOzs7OztBQUVwQiw0QkFBcUI7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQSxzQ0FBTkMsSUFBTTtBQUFOQSxVQUFNO0FBQUE7O0FBQ3BCLDRLQUFTQSxJQUFUO0FBQ0EsVUFBS0MsV0FBTCxHQUFtQixNQUFLQSxXQUFMLENBQWlCQyxJQUFqQiw2Q0FBbkI7QUFGb0I7QUFHcEI7Ozs7Z0NBRVdDLEssRUFBTztBQUFBLFVBQ1ZDLE1BRFUsR0FDQ0QsS0FERCxDQUNWQyxNQURVO0FBR2xCLFdBQUtDLEtBQUwsQ0FBV0MsYUFBWCxDQUF5QjtBQUN4QkMsOEJBQWUsNkNBQU1BLFNBQXJCLG1CQUFzQ0gsT0FBT0ksS0FBN0MsUUFEd0I7QUFFeEJDLG1CQUFXTCxPQUFPSTtBQUZNLE9BQXpCO0FBSUE7Ozs2QkFFUTtBQUNSLGFBQ0M7QUFDQyxjQUFLLE1BRE47QUFFQyxZQUFJLEtBQUtILEtBQUwsQ0FBV0ssT0FGaEI7QUFHQyxlQUFPLEtBQUtMLEtBQUwsQ0FBV0ksU0FIbkI7QUFJQyxpQkFBUyxLQUpWO0FBS0Msa0JBQVUsS0FBS1I7QUFMaEIsUUFERDtBQVNBOzs7RUExQjBDTCxTIiwiZmlsZSI6IjI0MS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBJbnNwZWN0b3IgSW5wdXQgRmllbGRcbiAqL1xuaW1wb3J0IHsgR1VURU5CRVJHX1BST0RVQ1RfUkVWSUVXUyBhcyBCTE9DSyB9IGZyb20gJy4uLy4uL2NvbmZpZy9ndXRlbmJlcmctc2V0dGluZ3MnO1xuXG5jb25zdCB7IENvbXBvbmVudCB9ID0gd3AuZWxlbWVudDtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2hvcnRjb2RlSW5wdXQgZXh0ZW5kcyBDb21wb25lbnQge1xuXG5cdGNvbnN0cnVjdG9yKC4uLmFyZ3MpIHtcblx0XHRzdXBlciguLi5hcmdzKTtcblx0XHR0aGlzLmNoYW5nZUV2ZW50ID0gdGhpcy5jaGFuZ2VFdmVudC5iaW5kKHRoaXMpO1xuXHR9XG5cblx0Y2hhbmdlRXZlbnQoZXZlbnQpIHtcblx0XHRjb25zdCB7IHRhcmdldCB9ID0gZXZlbnQ7XG5cblx0XHR0aGlzLnByb3BzLnNldEF0dHJpYnV0ZXMoe1xuXHRcdFx0c2hvcnRjb2RlOiBgWyR7QkxPQ0suc2hvcnRjb2RlfSBpZD1cIiR7dGFyZ2V0LnZhbHVlfVwiXWAsXG5cdFx0XHRwcm9kdWN0SWQ6IHRhcmdldC52YWx1ZSxcblx0XHR9KTtcblx0fVxuXG5cdHJlbmRlcigpIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0PGlucHV0XG5cdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcblx0XHRcdFx0aWQ9e3RoaXMucHJvcHMuZmllbGRJZH1cblx0XHRcdFx0dmFsdWU9e3RoaXMucHJvcHMucHJvZHVjdElkfVxuXHRcdFx0XHRwYXR0ZXJuPXsvXFxkKy99XG5cdFx0XHRcdG9uQ2hhbmdlPXt0aGlzLmNoYW5nZUV2ZW50fVxuXHRcdFx0Lz5cblx0XHQpO1xuXHR9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvanMvc3JjL2FkbWluL2d1dGVuYmVyZy9ibG9ja3MvcHJvZHVjdC1yZXZpZXdzL3Nob3J0Y29kZUlucHV0LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///241\n"); /***/ }) /******/ ]); \ No newline at end of file diff --git a/assets/js/dist/admin/gutenberg/scripts.min.js b/assets/js/dist/admin/gutenberg/scripts.min.js index 46ddce77..9cd5a8df 100644 --- a/assets/js/dist/admin/gutenberg/scripts.min.js +++ b/assets/js/dist/admin/gutenberg/scripts.min.js @@ -1,2 +1,2 @@ -!function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};e.m=t,e.c=n,e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/assets/js/dist/admin/gutenberg/",e(e.s=101)}([function(t,e){function n(t){return t&&t.__esModule?t:{default:t}}t.exports=n},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GUTENBERG_STORE_LINK=e.GUTENBERG_PRODUCT_REVIEWS=e.GUTENBERG_GIFT_CERTIFICATE_BALANCE=e.GUTENBERG_GIFT_CERTIFICATE_FORM=e.GUTENBERG_REGISTER=e.GUTENBERG_LOGIN=e.GUTENBERG_ORDERS=e.GUTENBERG_ADDRESS=e.GUTENBERG_ACCOUNT=e.GUTENBERG_CHECKOUT=e.GUTENBERG_CART=e.GUTENBERG_PRODUCTS=e.GUTENBERG_BLOCKS=e.gutenbergconfig=void 0;var i=window.bigcommerce_gutenberg_config||{};e.gutenbergconfig=i;var r=i.blocks||{};e.GUTENBERG_BLOCKS=r;var o=r["bigcommerce/products"]||{};e.GUTENBERG_PRODUCTS=o;var s=r["bigcommerce/cart"]||{};e.GUTENBERG_CART=s;var a=r["bigcommerce/checkout"]||{};e.GUTENBERG_CHECKOUT=a;var c=r["bigcommerce/account-profile"]||{};e.GUTENBERG_ACCOUNT=c;var u=r["bigcommerce/address-list"]||{};e.GUTENBERG_ADDRESS=u;var l=r["bigcommerce/order-history"]||{};e.GUTENBERG_ORDERS=l;var d=r["bigcommerce/login-form"]||{};e.GUTENBERG_LOGIN=d;var h=r["bigcommerce/registration-form"]||{};e.GUTENBERG_REGISTER=h;var f=r["bigcommerce/gift-certificate-form"]||{};e.GUTENBERG_GIFT_CERTIFICATE_FORM=f;var p=r["bigcommerce/gift-certificate-balance"]||{};e.GUTENBERG_GIFT_CERTIFICATE_BALANCE=p;var v=r["bigcommerce/product-reviews"]||{};e.GUTENBERG_PRODUCT_REVIEWS=v;var m=i.store_link||"";e.GUTENBERG_STORE_LINK=m},function(t,e){var n=t.exports={version:"2.5.3"};"number"==typeof __e&&(__e=n)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DIAGNOSTICS_SECTION=e.DIAGNOSTICS_ACTION=e.DIAGNOSTICS_NONCE=e.COUNTRIES_OBJ=e.ACCOUNT_ACTION=e.ACCOUNT_NONCE=e.ADMIN_AJAX=e.PRODUCTS_ORDER=e.PRODUCTS_RECENT=e.PRODUCTS_SEARCH=e.PRODUCTS_BRAND=e.PRODUCTS_FLAG=e.PRODUCTS_CATEGORY=e.ADMIN_ICONS=e.ADMIN_IMAGES=e.SHORTCODE_ENDPOINT=e.PRODUCTS_ENDPOINT=void 0,n(83),n(197);var i=window.bigcommerce_admin_config||{},r=i.editor_dialog||{},o=r.product_api_url||"";e.PRODUCTS_ENDPOINT=o;var s=r.shortcode_api_url||"";e.SHORTCODE_ENDPOINT=s;var a=i.images_url||"";e.ADMIN_IMAGES=a;var c=i.icons_url||"";e.ADMIN_ICONS=c;var u=i.categories;e.PRODUCTS_CATEGORY=u;var l=i.flags;e.PRODUCTS_FLAG=l;var d=i.brands;e.PRODUCTS_BRAND=d;var h=i.search;e.PRODUCTS_SEARCH=h;var f=i.recent;e.PRODUCTS_RECENT=f;var p=i.sort_order;e.PRODUCTS_ORDER=p;var v=i.admin_ajax;e.ADMIN_AJAX=v;var m=i.account_rest_nonce;e.ACCOUNT_NONCE=m;var g=i.account_rest_action;e.ACCOUNT_ACTION=g;var y=i.countries;e.COUNTRIES_OBJ=y;var b=i.diagnostics_rest_nonce;e.DIAGNOSTICS_NONCE=b;var _=i.diagnostics_rest_action;e.DIAGNOSTICS_ACTION=_;var E=i.diagnostics_section;e.DIAGNOSTICS_SECTION=E},function(t,e,n){var i=n(49)("wks"),r=n(34),o=n(9).Symbol,s="function"==typeof o;(t.exports=function(t){return i[t]||(i[t]=s&&o[t]||(s?o:r)("Symbol."+t))}).store=i},function(t,e,n){var i=n(43).f,r=Function.prototype,o=/^\s*function ([^ (]*)/;"name"in r||n(23)&&i(r,"name",{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(t){return""}}})},function(t,e,n){var i=n(9),r=n(2),o=n(41),s=n(19),a=function(t,e,n){var c,u,l,d=t&a.F,h=t&a.G,f=t&a.S,p=t&a.P,v=t&a.B,m=t&a.W,g=h?r:r[e]||(r[e]={}),y=g.prototype,b=h?i:f?i[e]:(i[e]||{}).prototype;h&&(n=e);for(c in n)(u=!d&&b&&void 0!==b[c])&&c in g||(l=u?b[c]:n[c],g[c]=h&&"function"!=typeof b[c]?n[c]:v&&u?o(l,i):m&&b[c]==l?function(t){var e=function(e,n,i){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,i)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(l):p&&"function"==typeof l?o(Function.call,l):l,p&&((g.virtual||(g.virtual={}))[c]=l,t&a.R&&y&&!y[c]&&s(y,c,l)))};a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,t.exports=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i={isFetching:!1,isGutenberg:!1,currentEditor:"",productHTML:"",wpAPIDisplaySettings:{order:"",orderby:"",per_page:""},wpAPIQueryObj:{bigcommerce_flag:[],bigcommerce_brand:[],bigcommerce_category:[],recent:[],search:[]},selectedProducts:{post_id:[]},insertCallback:!1};e.default=i},function(t,e,n){var i=n(59),r=n(38);t.exports=function(t){return i(r(t))}},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e,n){var i=n(14),r=n(60),o=n(40),s=Object.defineProperty;e.f=n(13)?Object.defineProperty:function(t,e,n){if(i(t),e=o(e,!0),i(n),r)try{return s(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){function i(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var i=o&&r?r(t,n):{};i.get||i.set?o(e,n,i):e[n]=t[n]}return e.default=t,e}var r=n(103),o=n(63);t.exports=i},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){t.exports=!n(18)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e,n){var i=n(17);t.exports=function(t){if(!i(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.insertBefore=e.insertAfter=e.closest=e.getNodes=e.convertElements=e.hasClassFromArray=e.removeClassThatContains=e.removeClass=e.hasClass=e.getChildren=e.addClass=void 0;var i=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=t;return!!n&&(n.classList.add(e),n)};e.addClass=i;var r=function(t){var e=[],n=t.children.length;for(n;n--;)8!==t.children[n].nodeType&&e.unshift(t.children[n]);return e};e.getChildren=r;var o=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return!!t&&t.classList.contains(e)};e.hasClass=o;var s=function(t,e){var n=t;return!!n&&(n.classList.remove(e),n)};e.removeClass=s;var a=function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=0;n1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";return e.some(function(e){return t.classList.contains("".concat(n).concat(e).concat(i))})};e.hasClassFromArray=c;var u=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=[],n=t.length;for(n;n--;e.unshift(t[n]));return e};e.convertElements=u;var l=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:document,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=i?t:'[data-js="'.concat(t,'"]'),o=n.querySelectorAll(r);return e&&(o=u(o)),o};e.getNodes=l;var d=function(t,e){var n,i;for(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"].some(function(t){return"function"==typeof document.body[t]&&(n=t,!0)});t;){if((i=t.parentElement)&&i[n](e))return i;t=i}return null};e.closest=d;var h=function(t,e){e.parentNode.insertBefore(t,e.nextElementSibling)};e.insertAfter=h;var f=function(t,e){e.parentNode.insertBefore(t,e)};e.insertBefore=f},function(t,e,n){"use strict";var i=n(0);Object.defineProperty(e,"__esModule",{value:!0}),e.trigger=e.ready=e.on=void 0;var r=i(n(171)),o=function(t,e,n){t.addEventListener?t.addEventListener(e,n):t.attachEvent("on".concat(e),function(){n.call(t)})};e.on=o;var s=function(t){"loading"!==document.readyState?t():document.addEventListener?document.addEventListener("DOMContentLoaded",t):document.attachEvent("onreadystatechange",function(){"loading"!==document.readyState&&t()})};e.ready=s;var a=function(t){var e,n=(0,r.default)({data:{},el:document,event:"",native:!0},t);if(n.native)e=document.createEvent("HTMLEvents"),e.initEvent(n.event,!0,!1);else try{e=new CustomEvent(n.event,{detail:n.data})}catch(t){e=document.createEvent("CustomEvent"),e.initCustomEvent(n.event,!0,!0,n.data)}n.el.dispatchEvent(e)};e.trigger=a},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var i=n(10),r=n(22);t.exports=n(13)?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){t.exports={}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){t.exports=!n(44)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e,n){var i=n(78),r=n(50);t.exports=Object.keys||function(t){return i(t,r)}},function(t,e,n){function i(t,e,n,i,r){var s=o.apply(this,arguments);return t.addEventListener(n,s,r),{destroy:function(){t.removeEventListener(n,s,r)}}}function r(t,e,n,r,o){return"function"==typeof t.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return i(t,e,n,r,o)}))}function o(t,e,n,i){return function(n){n.delegateTarget=s(n.target,e),n.delegateTarget&&i.call(t,n)}}var s=n(166);t.exports=r},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.I18N=void 0;var i=window.bigcommerce_admin_i18n||{};e.I18N=i},function(t,e,n){var i=n(109),r=n(64),o=n(124),s=r(function(t,e,n){return i(t,o(e)||0,n)});t.exports=s},function(t,e,n){function i(t){return null==t?void 0===t?c:a:u&&u in Object(t)?o(t):s(t)}var r=n(68),o=n(117),s=n(118),a="[object Null]",c="[object Undefined]",u=r?r.toStringTag:void 0;t.exports=i},function(t,e){function n(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}t.exports=n},function(t,e){function n(t){return null!=t&&"object"==typeof t}t.exports=n},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e,n){"use strict";var i=n(143)(!0);n(76)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=i(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e){var n=0,i=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+i).toString(36))}},function(t,e,n){var i=n(38);t.exports=function(t){return Object(i(t))}},function(t,e,n){"use strict";var i=n(0);Object.defineProperty(e,"__esModule",{value:!0}),e.wpAdminAjax=e.wpAPIProductsPreview=e.wpAPICartDelete=e.wpAPICartUpdate=e.wpAPIShortcodeBuilder=e.wpAPIProductLookup=void 0;var r=i(n(191)),o=n(3),s=n(1),a=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return r.default.get(o.PRODUCTS_ENDPOINT).query(t)};e.wpAPIProductLookup=a;var c=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return r.default.get(o.SHORTCODE_ENDPOINT).query(t)};e.wpAPIShortcodeBuilder=c;var u=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return r.default.put(t).query(e)};e.wpAPICartUpdate=u;var l=function(t){return r.default.del(t)};e.wpAPICartDelete=l;var d=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return r.default.get(s.GUTENBERG_PRODUCTS.preview_url).query(t)};e.wpAPIProductsPreview=d;var h=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return r.default.get(o.ADMIN_AJAX).query(t).timeout({response:2e4,deadline:6e4})};e.wpAdminAjax=h},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){var i=n(21),r=n(22),o=n(8),s=n(40),a=n(12),c=n(60),u=Object.getOwnPropertyDescriptor;e.f=n(13)?u:function(t,e){if(t=o(t),e=s(e,!0),c)try{return u(t,e)}catch(t){}if(a(t,e))return r(!i.f.call(t,e),t[e])}},function(t,e,n){var i=n(17);t.exports=function(t,e){if(!i(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!i(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){var i=n(106);t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var i=n(69),r="object"==typeof self&&self&&self.Object===Object&&self,o=i||r||Function("return this")();t.exports=o},function(t,e,n){var i=n(73),r=n(129),o=n(131),s=Object.defineProperty;e.f=n(23)?Object.defineProperty:function(t,e,n){if(i(t),e=o(e,!0),i(n),r)try{return s(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},function(t,e){t.exports=!0},function(t,e,n){var i=n(14),r=n(145),o=n(50),s=n(48)("IE_PROTO"),a=function(){},c=function(){var t,e=n(61)("iframe"),i=o.length;for(e.style.display="none",n(148).appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write("'); + } elseif ($format === 'js') { + static::writeOutput(static::generateScript()); + } + static::resetStatic(); + } + } + + public function close() + { + self::resetStatic(); + } + + public function reset() + { + self::resetStatic(); + } + + /** + * Forget all logged records + */ + public static function resetStatic() + { + static::$records = array(); + } + + /** + * Wrapper for register_shutdown_function to allow overriding + */ + protected function registerShutdownFunction() + { + if (PHP_SAPI !== 'cli') { + register_shutdown_function(array('Monolog\Handler\BrowserConsoleHandler', 'send')); + } + } + + /** + * Wrapper for echo to allow overriding + * + * @param string $str + */ + protected static function writeOutput($str) + { + echo $str; + } + + /** + * Checks the format of the response + * + * If Content-Type is set to application/javascript or text/javascript -> js + * If Content-Type is set to text/html, or is unset -> html + * If Content-Type is anything else -> unknown + * + * @return string One of 'js', 'html' or 'unknown' + */ + protected static function getResponseFormat() + { + // Check content type + foreach (headers_list() as $header) { + if (stripos($header, 'content-type:') === 0) { + // This handler only works with HTML and javascript outputs + // text/javascript is obsolete in favour of application/javascript, but still used + if (stripos($header, 'application/javascript') !== false || stripos($header, 'text/javascript') !== false) { + return 'js'; + } + if (stripos($header, 'text/html') === false) { + return 'unknown'; + } + break; + } + } + + return 'html'; + } + + private static function generateScript() + { + $script = array(); + foreach (static::$records as $record) { + $context = static::dump('Context', $record['context']); + $extra = static::dump('Extra', $record['extra']); + + if (empty($context) && empty($extra)) { + $script[] = static::call_array('log', static::handleStyles($record['formatted'])); + } else { + $script = array_merge($script, + array(static::call_array('groupCollapsed', static::handleStyles($record['formatted']))), + $context, + $extra, + array(static::call('groupEnd')) + ); + } + } + + return "(function (c) {if (c && c.groupCollapsed) {\n" . implode("\n", $script) . "\n}})(console);"; + } + + private static function handleStyles($formatted) + { + $args = array(static::quote('font-weight: normal')); + $format = '%c' . $formatted; + preg_match_all('/\[\[(.*?)\]\]\{([^}]*)\}/s', $format, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER); + + foreach (array_reverse($matches) as $match) { + $args[] = static::quote(static::handleCustomStyles($match[2][0], $match[1][0])); + $args[] = '"font-weight: normal"'; + + $pos = $match[0][1]; + $format = substr($format, 0, $pos) . '%c' . $match[1][0] . '%c' . substr($format, $pos + strlen($match[0][0])); + } + + array_unshift($args, static::quote($format)); + + return $args; + } + + private static function handleCustomStyles($style, $string) + { + static $colors = array('blue', 'green', 'red', 'magenta', 'orange', 'black', 'grey'); + static $labels = array(); + + return preg_replace_callback('/macro\s*:(.*?)(?:;|$)/', function ($m) use ($string, &$colors, &$labels) { + if (trim($m[1]) === 'autolabel') { + // Format the string as a label with consistent auto assigned background color + if (!isset($labels[$string])) { + $labels[$string] = $colors[count($labels) % count($colors)]; + } + $color = $labels[$string]; + + return "background-color: $color; color: white; border-radius: 3px; padding: 0 2px 0 2px"; + } + + return $m[1]; + }, $style); + } + + private static function dump($title, array $dict) + { + $script = array(); + $dict = array_filter($dict); + if (empty($dict)) { + return $script; + } + $script[] = static::call('log', static::quote('%c%s'), static::quote('font-weight: bold'), static::quote($title)); + foreach ($dict as $key => $value) { + $value = json_encode($value); + if (empty($value)) { + $value = static::quote(''); + } + $script[] = static::call('log', static::quote('%s: %o'), static::quote($key), $value); + } + + return $script; + } + + private static function quote($arg) + { + return '"' . addcslashes($arg, "\"\n\\") . '"'; + } + + private static function call() + { + $args = func_get_args(); + $method = array_shift($args); + + return static::call_array($method, $args); + } + + private static function call_array($method, array $args) + { + return 'c.' . $method . '(' . implode(', ', $args) . ');'; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php new file mode 100644 index 00000000..61d1b50c --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php @@ -0,0 +1,129 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; +use Monolog\ResettableInterface; + +/** + * Buffers all records until closing the handler and then pass them as batch. + * + * This is useful for a MailHandler to send only one mail per request instead of + * sending one per log message. + * + * @author Christophe Coevoet + */ +class BufferHandler extends AbstractHandler +{ + protected $handler; + protected $bufferSize = 0; + protected $bufferLimit; + protected $flushOnOverflow; + protected $buffer = array(); + protected $initialized = false; + + /** + * @param HandlerInterface $handler Handler. + * @param int $bufferLimit How many entries should be buffered at most, beyond that the oldest items are removed from the buffer. + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + * @param bool $flushOnOverflow If true, the buffer is flushed when the max size has been reached, by default oldest entries are discarded + */ + public function __construct(HandlerInterface $handler, $bufferLimit = 0, $level = Logger::DEBUG, $bubble = true, $flushOnOverflow = false) + { + parent::__construct($level, $bubble); + $this->handler = $handler; + $this->bufferLimit = (int) $bufferLimit; + $this->flushOnOverflow = $flushOnOverflow; + } + + /** + * {@inheritdoc} + */ + public function handle(array $record) + { + if ($record['level'] < $this->level) { + return false; + } + + if (!$this->initialized) { + // __destructor() doesn't get called on Fatal errors + register_shutdown_function(array($this, 'close')); + $this->initialized = true; + } + + if ($this->bufferLimit > 0 && $this->bufferSize === $this->bufferLimit) { + if ($this->flushOnOverflow) { + $this->flush(); + } else { + array_shift($this->buffer); + $this->bufferSize--; + } + } + + if ($this->processors) { + foreach ($this->processors as $processor) { + $record = call_user_func($processor, $record); + } + } + + $this->buffer[] = $record; + $this->bufferSize++; + + return false === $this->bubble; + } + + public function flush() + { + if ($this->bufferSize === 0) { + return; + } + + $this->handler->handleBatch($this->buffer); + $this->clear(); + } + + public function __destruct() + { + // suppress the parent behavior since we already have register_shutdown_function() + // to call close(), and the reference contained there will prevent this from being + // GC'd until the end of the request + } + + /** + * {@inheritdoc} + */ + public function close() + { + $this->flush(); + } + + /** + * Clears the buffer without flushing any messages down to the wrapped handler. + */ + public function clear() + { + $this->bufferSize = 0; + $this->buffer = array(); + } + + public function reset() + { + $this->flush(); + + parent::reset(); + + if ($this->handler instanceof ResettableInterface) { + $this->handler->reset(); + } + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php new file mode 100644 index 00000000..37419a06 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php @@ -0,0 +1,211 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Formatter\ChromePHPFormatter; +use Monolog\Logger; + +/** + * Handler sending logs to the ChromePHP extension (http://www.chromephp.com/) + * + * This also works out of the box with Firefox 43+ + * + * @author Christophe Coevoet + */ +class ChromePHPHandler extends AbstractProcessingHandler +{ + /** + * Version of the extension + */ + const VERSION = '4.0'; + + /** + * Header name + */ + const HEADER_NAME = 'X-ChromeLogger-Data'; + + /** + * Regular expression to detect supported browsers (matches any Chrome, or Firefox 43+) + */ + const USER_AGENT_REGEX = '{\b(?:Chrome/\d+(?:\.\d+)*|HeadlessChrome|Firefox/(?:4[3-9]|[5-9]\d|\d{3,})(?:\.\d)*)\b}'; + + protected static $initialized = false; + + /** + * Tracks whether we sent too much data + * + * Chrome limits the headers to 256KB, so when we sent 240KB we stop sending + * + * @var bool + */ + protected static $overflowed = false; + + protected static $json = array( + 'version' => self::VERSION, + 'columns' => array('label', 'log', 'backtrace', 'type'), + 'rows' => array(), + ); + + protected static $sendHeaders = true; + + /** + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + */ + public function __construct($level = Logger::DEBUG, $bubble = true) + { + parent::__construct($level, $bubble); + if (!function_exists('json_encode')) { + throw new \RuntimeException('PHP\'s json extension is required to use Monolog\'s ChromePHPHandler'); + } + } + + /** + * {@inheritdoc} + */ + public function handleBatch(array $records) + { + $messages = array(); + + foreach ($records as $record) { + if ($record['level'] < $this->level) { + continue; + } + $messages[] = $this->processRecord($record); + } + + if (!empty($messages)) { + $messages = $this->getFormatter()->formatBatch($messages); + self::$json['rows'] = array_merge(self::$json['rows'], $messages); + $this->send(); + } + } + + /** + * {@inheritDoc} + */ + protected function getDefaultFormatter() + { + return new ChromePHPFormatter(); + } + + /** + * Creates & sends header for a record + * + * @see sendHeader() + * @see send() + * @param array $record + */ + protected function write(array $record) + { + self::$json['rows'][] = $record['formatted']; + + $this->send(); + } + + /** + * Sends the log header + * + * @see sendHeader() + */ + protected function send() + { + if (self::$overflowed || !self::$sendHeaders) { + return; + } + + if (!self::$initialized) { + self::$initialized = true; + + self::$sendHeaders = $this->headersAccepted(); + if (!self::$sendHeaders) { + return; + } + + self::$json['request_uri'] = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; + } + + $json = @json_encode(self::$json); + $data = base64_encode(utf8_encode($json)); + if (strlen($data) > 240 * 1024) { + self::$overflowed = true; + + $record = array( + 'message' => 'Incomplete logs, chrome header size limit reached', + 'context' => array(), + 'level' => Logger::WARNING, + 'level_name' => Logger::getLevelName(Logger::WARNING), + 'channel' => 'monolog', + 'datetime' => new \DateTime(), + 'extra' => array(), + ); + self::$json['rows'][count(self::$json['rows']) - 1] = $this->getFormatter()->format($record); + $json = @json_encode(self::$json); + $data = base64_encode(utf8_encode($json)); + } + + if (trim($data) !== '') { + $this->sendHeader(self::HEADER_NAME, $data); + } + } + + /** + * Send header string to the client + * + * @param string $header + * @param string $content + */ + protected function sendHeader($header, $content) + { + if (!headers_sent() && self::$sendHeaders) { + header(sprintf('%s: %s', $header, $content)); + } + } + + /** + * Verifies if the headers are accepted by the current user agent + * + * @return bool + */ + protected function headersAccepted() + { + if (empty($_SERVER['HTTP_USER_AGENT'])) { + return false; + } + + return preg_match(self::USER_AGENT_REGEX, $_SERVER['HTTP_USER_AGENT']); + } + + /** + * BC getter for the sendHeaders property that has been made static + */ + public function __get($property) + { + if ('sendHeaders' !== $property) { + throw new \InvalidArgumentException('Undefined property '.$property); + } + + return static::$sendHeaders; + } + + /** + * BC setter for the sendHeaders property that has been made static + */ + public function __set($property, $value) + { + if ('sendHeaders' !== $property) { + throw new \InvalidArgumentException('Undefined property '.$property); + } + + static::$sendHeaders = $value; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php new file mode 100644 index 00000000..cc986971 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php @@ -0,0 +1,72 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Formatter\JsonFormatter; +use Monolog\Logger; + +/** + * CouchDB handler + * + * @author Markus Bachmann + */ +class CouchDBHandler extends AbstractProcessingHandler +{ + private $options; + + public function __construct(array $options = array(), $level = Logger::DEBUG, $bubble = true) + { + $this->options = array_merge(array( + 'host' => 'localhost', + 'port' => 5984, + 'dbname' => 'logger', + 'username' => null, + 'password' => null, + ), $options); + + parent::__construct($level, $bubble); + } + + /** + * {@inheritDoc} + */ + protected function write(array $record) + { + $basicAuth = null; + if ($this->options['username']) { + $basicAuth = sprintf('%s:%s@', $this->options['username'], $this->options['password']); + } + + $url = 'http://'.$basicAuth.$this->options['host'].':'.$this->options['port'].'/'.$this->options['dbname']; + $context = stream_context_create(array( + 'http' => array( + 'method' => 'POST', + 'content' => $record['formatted'], + 'ignore_errors' => true, + 'max_redirects' => 0, + 'header' => 'Content-type: application/json', + ), + )); + + if (false === @file_get_contents($url, null, $context)) { + throw new \RuntimeException(sprintf('Could not connect to %s', $url)); + } + } + + /** + * {@inheritDoc} + */ + protected function getDefaultFormatter() + { + return new JsonFormatter(JsonFormatter::BATCH_MODE_JSON, false); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php new file mode 100644 index 00000000..96b3ca0c --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php @@ -0,0 +1,151 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; + +/** + * Logs to Cube. + * + * @link http://square.github.com/cube/ + * @author Wan Chen + */ +class CubeHandler extends AbstractProcessingHandler +{ + private $udpConnection; + private $httpConnection; + private $scheme; + private $host; + private $port; + private $acceptedSchemes = array('http', 'udp'); + + /** + * Create a Cube handler + * + * @throws \UnexpectedValueException when given url is not a valid url. + * A valid url must consist of three parts : protocol://host:port + * Only valid protocols used by Cube are http and udp + */ + public function __construct($url, $level = Logger::DEBUG, $bubble = true) + { + $urlInfo = parse_url($url); + + if (!isset($urlInfo['scheme'], $urlInfo['host'], $urlInfo['port'])) { + throw new \UnexpectedValueException('URL "'.$url.'" is not valid'); + } + + if (!in_array($urlInfo['scheme'], $this->acceptedSchemes)) { + throw new \UnexpectedValueException( + 'Invalid protocol (' . $urlInfo['scheme'] . ').' + . ' Valid options are ' . implode(', ', $this->acceptedSchemes)); + } + + $this->scheme = $urlInfo['scheme']; + $this->host = $urlInfo['host']; + $this->port = $urlInfo['port']; + + parent::__construct($level, $bubble); + } + + /** + * Establish a connection to an UDP socket + * + * @throws \LogicException when unable to connect to the socket + * @throws MissingExtensionException when there is no socket extension + */ + protected function connectUdp() + { + if (!extension_loaded('sockets')) { + throw new MissingExtensionException('The sockets extension is required to use udp URLs with the CubeHandler'); + } + + $this->udpConnection = socket_create(AF_INET, SOCK_DGRAM, 0); + if (!$this->udpConnection) { + throw new \LogicException('Unable to create a socket'); + } + + if (!socket_connect($this->udpConnection, $this->host, $this->port)) { + throw new \LogicException('Unable to connect to the socket at ' . $this->host . ':' . $this->port); + } + } + + /** + * Establish a connection to a http server + * @throws \LogicException when no curl extension + */ + protected function connectHttp() + { + if (!extension_loaded('curl')) { + throw new \LogicException('The curl extension is needed to use http URLs with the CubeHandler'); + } + + $this->httpConnection = curl_init('http://'.$this->host.':'.$this->port.'/1.0/event/put'); + + if (!$this->httpConnection) { + throw new \LogicException('Unable to connect to ' . $this->host . ':' . $this->port); + } + + curl_setopt($this->httpConnection, CURLOPT_CUSTOMREQUEST, "POST"); + curl_setopt($this->httpConnection, CURLOPT_RETURNTRANSFER, true); + } + + /** + * {@inheritdoc} + */ + protected function write(array $record) + { + $date = $record['datetime']; + + $data = array('time' => $date->format('Y-m-d\TH:i:s.uO')); + unset($record['datetime']); + + if (isset($record['context']['type'])) { + $data['type'] = $record['context']['type']; + unset($record['context']['type']); + } else { + $data['type'] = $record['channel']; + } + + $data['data'] = $record['context']; + $data['data']['level'] = $record['level']; + + if ($this->scheme === 'http') { + $this->writeHttp(json_encode($data)); + } else { + $this->writeUdp(json_encode($data)); + } + } + + private function writeUdp($data) + { + if (!$this->udpConnection) { + $this->connectUdp(); + } + + socket_send($this->udpConnection, $data, strlen($data), 0); + } + + private function writeHttp($data) + { + if (!$this->httpConnection) { + $this->connectHttp(); + } + + curl_setopt($this->httpConnection, CURLOPT_POSTFIELDS, '['.$data.']'); + curl_setopt($this->httpConnection, CURLOPT_HTTPHEADER, array( + 'Content-Type: application/json', + 'Content-Length: ' . strlen('['.$data.']'), + )); + + Curl\Util::execute($this->httpConnection, 5, false); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/Curl/Util.php b/vendor/monolog/monolog/src/Monolog/Handler/Curl/Util.php new file mode 100644 index 00000000..48d30b35 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/Curl/Util.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler\Curl; + +class Util +{ + private static $retriableErrorCodes = array( + CURLE_COULDNT_RESOLVE_HOST, + CURLE_COULDNT_CONNECT, + CURLE_HTTP_NOT_FOUND, + CURLE_READ_ERROR, + CURLE_OPERATION_TIMEOUTED, + CURLE_HTTP_POST_ERROR, + CURLE_SSL_CONNECT_ERROR, + ); + + /** + * Executes a CURL request with optional retries and exception on failure + * + * @param resource $ch curl handler + * @throws \RuntimeException + */ + public static function execute($ch, $retries = 5, $closeAfterDone = true) + { + while ($retries--) { + if (curl_exec($ch) === false) { + $curlErrno = curl_errno($ch); + + if (false === in_array($curlErrno, self::$retriableErrorCodes, true) || !$retries) { + $curlError = curl_error($ch); + + if ($closeAfterDone) { + curl_close($ch); + } + + throw new \RuntimeException(sprintf('Curl error (code %s): %s', $curlErrno, $curlError)); + } + + continue; + } + + if ($closeAfterDone) { + curl_close($ch); + } + break; + } + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php new file mode 100644 index 00000000..35b55cb4 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php @@ -0,0 +1,169 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; + +/** + * Simple handler wrapper that deduplicates log records across multiple requests + * + * It also includes the BufferHandler functionality and will buffer + * all messages until the end of the request or flush() is called. + * + * This works by storing all log records' messages above $deduplicationLevel + * to the file specified by $deduplicationStore. When further logs come in at the end of the + * request (or when flush() is called), all those above $deduplicationLevel are checked + * against the existing stored logs. If they match and the timestamps in the stored log is + * not older than $time seconds, the new log record is discarded. If no log record is new, the + * whole data set is discarded. + * + * This is mainly useful in combination with Mail handlers or things like Slack or HipChat handlers + * that send messages to people, to avoid spamming with the same message over and over in case of + * a major component failure like a database server being down which makes all requests fail in the + * same way. + * + * @author Jordi Boggiano + */ +class DeduplicationHandler extends BufferHandler +{ + /** + * @var string + */ + protected $deduplicationStore; + + /** + * @var int + */ + protected $deduplicationLevel; + + /** + * @var int + */ + protected $time; + + /** + * @var bool + */ + private $gc = false; + + /** + * @param HandlerInterface $handler Handler. + * @param string $deduplicationStore The file/path where the deduplication log should be kept + * @param int $deduplicationLevel The minimum logging level for log records to be looked at for deduplication purposes + * @param int $time The period (in seconds) during which duplicate entries should be suppressed after a given log is sent through + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + */ + public function __construct(HandlerInterface $handler, $deduplicationStore = null, $deduplicationLevel = Logger::ERROR, $time = 60, $bubble = true) + { + parent::__construct($handler, 0, Logger::DEBUG, $bubble, false); + + $this->deduplicationStore = $deduplicationStore === null ? sys_get_temp_dir() . '/monolog-dedup-' . substr(md5(__FILE__), 0, 20) .'.log' : $deduplicationStore; + $this->deduplicationLevel = Logger::toMonologLevel($deduplicationLevel); + $this->time = $time; + } + + public function flush() + { + if ($this->bufferSize === 0) { + return; + } + + $passthru = null; + + foreach ($this->buffer as $record) { + if ($record['level'] >= $this->deduplicationLevel) { + + $passthru = $passthru || !$this->isDuplicate($record); + if ($passthru) { + $this->appendRecord($record); + } + } + } + + // default of null is valid as well as if no record matches duplicationLevel we just pass through + if ($passthru === true || $passthru === null) { + $this->handler->handleBatch($this->buffer); + } + + $this->clear(); + + if ($this->gc) { + $this->collectLogs(); + } + } + + private function isDuplicate(array $record) + { + if (!file_exists($this->deduplicationStore)) { + return false; + } + + $store = file($this->deduplicationStore, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); + if (!is_array($store)) { + return false; + } + + $yesterday = time() - 86400; + $timestampValidity = $record['datetime']->getTimestamp() - $this->time; + $expectedMessage = preg_replace('{[\r\n].*}', '', $record['message']); + + for ($i = count($store) - 1; $i >= 0; $i--) { + list($timestamp, $level, $message) = explode(':', $store[$i], 3); + + if ($level === $record['level_name'] && $message === $expectedMessage && $timestamp > $timestampValidity) { + return true; + } + + if ($timestamp < $yesterday) { + $this->gc = true; + } + } + + return false; + } + + private function collectLogs() + { + if (!file_exists($this->deduplicationStore)) { + return false; + } + + $handle = fopen($this->deduplicationStore, 'rw+'); + flock($handle, LOCK_EX); + $validLogs = array(); + + $timestampValidity = time() - $this->time; + + while (!feof($handle)) { + $log = fgets($handle); + if (substr($log, 0, 10) >= $timestampValidity) { + $validLogs[] = $log; + } + } + + ftruncate($handle, 0); + rewind($handle); + foreach ($validLogs as $log) { + fwrite($handle, $log); + } + + flock($handle, LOCK_UN); + fclose($handle); + + $this->gc = false; + } + + private function appendRecord(array $record) + { + file_put_contents($this->deduplicationStore, $record['datetime']->getTimestamp() . ':' . $record['level_name'] . ':' . preg_replace('{[\r\n].*}', '', $record['message']) . "\n", FILE_APPEND); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php new file mode 100644 index 00000000..b91ffec9 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php @@ -0,0 +1,45 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; +use Monolog\Formatter\NormalizerFormatter; +use Doctrine\CouchDB\CouchDBClient; + +/** + * CouchDB handler for Doctrine CouchDB ODM + * + * @author Markus Bachmann + */ +class DoctrineCouchDBHandler extends AbstractProcessingHandler +{ + private $client; + + public function __construct(CouchDBClient $client, $level = Logger::DEBUG, $bubble = true) + { + $this->client = $client; + parent::__construct($level, $bubble); + } + + /** + * {@inheritDoc} + */ + protected function write(array $record) + { + $this->client->postDocument($record['formatted']); + } + + protected function getDefaultFormatter() + { + return new NormalizerFormatter; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php new file mode 100644 index 00000000..237b71f6 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php @@ -0,0 +1,107 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Aws\Sdk; +use Aws\DynamoDb\DynamoDbClient; +use Aws\DynamoDb\Marshaler; +use Monolog\Formatter\ScalarFormatter; +use Monolog\Logger; + +/** + * Amazon DynamoDB handler (http://aws.amazon.com/dynamodb/) + * + * @link https://github.com/aws/aws-sdk-php/ + * @author Andrew Lawson + */ +class DynamoDbHandler extends AbstractProcessingHandler +{ + const DATE_FORMAT = 'Y-m-d\TH:i:s.uO'; + + /** + * @var DynamoDbClient + */ + protected $client; + + /** + * @var string + */ + protected $table; + + /** + * @var int + */ + protected $version; + + /** + * @var Marshaler + */ + protected $marshaler; + + /** + * @param DynamoDbClient $client + * @param string $table + * @param int $level + * @param bool $bubble + */ + public function __construct(DynamoDbClient $client, $table, $level = Logger::DEBUG, $bubble = true) + { + if (defined('Aws\Sdk::VERSION') && version_compare(Sdk::VERSION, '3.0', '>=')) { + $this->version = 3; + $this->marshaler = new Marshaler; + } else { + $this->version = 2; + } + + $this->client = $client; + $this->table = $table; + + parent::__construct($level, $bubble); + } + + /** + * {@inheritdoc} + */ + protected function write(array $record) + { + $filtered = $this->filterEmptyFields($record['formatted']); + if ($this->version === 3) { + $formatted = $this->marshaler->marshalItem($filtered); + } else { + $formatted = $this->client->formatAttributes($filtered); + } + + $this->client->putItem(array( + 'TableName' => $this->table, + 'Item' => $formatted, + )); + } + + /** + * @param array $record + * @return array + */ + protected function filterEmptyFields(array $record) + { + return array_filter($record, function ($value) { + return !empty($value) || false === $value || 0 === $value; + }); + } + + /** + * {@inheritdoc} + */ + protected function getDefaultFormatter() + { + return new ScalarFormatter(self::DATE_FORMAT); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php new file mode 100644 index 00000000..bb0f83eb --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php @@ -0,0 +1,128 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Formatter\FormatterInterface; +use Monolog\Formatter\ElasticaFormatter; +use Monolog\Logger; +use Elastica\Client; +use Elastica\Exception\ExceptionInterface; + +/** + * Elastic Search handler + * + * Usage example: + * + * $client = new \Elastica\Client(); + * $options = array( + * 'index' => 'elastic_index_name', + * 'type' => 'elastic_doc_type', + * ); + * $handler = new ElasticSearchHandler($client, $options); + * $log = new Logger('application'); + * $log->pushHandler($handler); + * + * @author Jelle Vink + */ +class ElasticSearchHandler extends AbstractProcessingHandler +{ + /** + * @var Client + */ + protected $client; + + /** + * @var array Handler config options + */ + protected $options = array(); + + /** + * @param Client $client Elastica Client object + * @param array $options Handler configuration + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + */ + public function __construct(Client $client, array $options = array(), $level = Logger::DEBUG, $bubble = true) + { + parent::__construct($level, $bubble); + $this->client = $client; + $this->options = array_merge( + array( + 'index' => 'monolog', // Elastic index name + 'type' => 'record', // Elastic document type + 'ignore_error' => false, // Suppress Elastica exceptions + ), + $options + ); + } + + /** + * {@inheritDoc} + */ + protected function write(array $record) + { + $this->bulkSend(array($record['formatted'])); + } + + /** + * {@inheritdoc} + */ + public function setFormatter(FormatterInterface $formatter) + { + if ($formatter instanceof ElasticaFormatter) { + return parent::setFormatter($formatter); + } + throw new \InvalidArgumentException('ElasticSearchHandler is only compatible with ElasticaFormatter'); + } + + /** + * Getter options + * @return array + */ + public function getOptions() + { + return $this->options; + } + + /** + * {@inheritDoc} + */ + protected function getDefaultFormatter() + { + return new ElasticaFormatter($this->options['index'], $this->options['type']); + } + + /** + * {@inheritdoc} + */ + public function handleBatch(array $records) + { + $documents = $this->getFormatter()->formatBatch($records); + $this->bulkSend($documents); + } + + /** + * Use Elasticsearch bulk API to send list of documents + * @param array $documents + * @throws \RuntimeException + */ + protected function bulkSend(array $documents) + { + try { + $this->client->addDocuments($documents); + } catch (ExceptionInterface $e) { + if (!$this->options['ignore_error']) { + throw new \RuntimeException("Error sending messages to Elasticsearch", 0, $e); + } + } + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php new file mode 100644 index 00000000..b2986b0f --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php @@ -0,0 +1,82 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Formatter\LineFormatter; +use Monolog\Logger; + +/** + * Stores to PHP error_log() handler. + * + * @author Elan Ruusamäe + */ +class ErrorLogHandler extends AbstractProcessingHandler +{ + const OPERATING_SYSTEM = 0; + const SAPI = 4; + + protected $messageType; + protected $expandNewlines; + + /** + * @param int $messageType Says where the error should go. + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + * @param bool $expandNewlines If set to true, newlines in the message will be expanded to be take multiple log entries + */ + public function __construct($messageType = self::OPERATING_SYSTEM, $level = Logger::DEBUG, $bubble = true, $expandNewlines = false) + { + parent::__construct($level, $bubble); + + if (false === in_array($messageType, self::getAvailableTypes())) { + $message = sprintf('The given message type "%s" is not supported', print_r($messageType, true)); + throw new \InvalidArgumentException($message); + } + + $this->messageType = $messageType; + $this->expandNewlines = $expandNewlines; + } + + /** + * @return array With all available types + */ + public static function getAvailableTypes() + { + return array( + self::OPERATING_SYSTEM, + self::SAPI, + ); + } + + /** + * {@inheritDoc} + */ + protected function getDefaultFormatter() + { + return new LineFormatter('[%datetime%] %channel%.%level_name%: %message% %context% %extra%'); + } + + /** + * {@inheritdoc} + */ + protected function write(array $record) + { + if ($this->expandNewlines) { + $lines = preg_split('{[\r\n]+}', (string) $record['formatted']); + foreach ($lines as $line) { + error_log($line, $this->messageType); + } + } else { + error_log((string) $record['formatted'], $this->messageType); + } + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php new file mode 100644 index 00000000..938c1a7e --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php @@ -0,0 +1,140 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; + +/** + * Simple handler wrapper that filters records based on a list of levels + * + * It can be configured with an exact list of levels to allow, or a min/max level. + * + * @author Hennadiy Verkh + * @author Jordi Boggiano + */ +class FilterHandler extends AbstractHandler +{ + /** + * Handler or factory callable($record, $this) + * + * @var callable|\Monolog\Handler\HandlerInterface + */ + protected $handler; + + /** + * Minimum level for logs that are passed to handler + * + * @var int[] + */ + protected $acceptedLevels; + + /** + * Whether the messages that are handled can bubble up the stack or not + * + * @var bool + */ + protected $bubble; + + /** + * @param callable|HandlerInterface $handler Handler or factory callable($record, $this). + * @param int|array $minLevelOrList A list of levels to accept or a minimum level if maxLevel is provided + * @param int $maxLevel Maximum level to accept, only used if $minLevelOrList is not an array + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + */ + public function __construct($handler, $minLevelOrList = Logger::DEBUG, $maxLevel = Logger::EMERGENCY, $bubble = true) + { + $this->handler = $handler; + $this->bubble = $bubble; + $this->setAcceptedLevels($minLevelOrList, $maxLevel); + + if (!$this->handler instanceof HandlerInterface && !is_callable($this->handler)) { + throw new \RuntimeException("The given handler (".json_encode($this->handler).") is not a callable nor a Monolog\Handler\HandlerInterface object"); + } + } + + /** + * @return array + */ + public function getAcceptedLevels() + { + return array_flip($this->acceptedLevels); + } + + /** + * @param int|string|array $minLevelOrList A list of levels to accept or a minimum level or level name if maxLevel is provided + * @param int|string $maxLevel Maximum level or level name to accept, only used if $minLevelOrList is not an array + */ + public function setAcceptedLevels($minLevelOrList = Logger::DEBUG, $maxLevel = Logger::EMERGENCY) + { + if (is_array($minLevelOrList)) { + $acceptedLevels = array_map('Monolog\Logger::toMonologLevel', $minLevelOrList); + } else { + $minLevelOrList = Logger::toMonologLevel($minLevelOrList); + $maxLevel = Logger::toMonologLevel($maxLevel); + $acceptedLevels = array_values(array_filter(Logger::getLevels(), function ($level) use ($minLevelOrList, $maxLevel) { + return $level >= $minLevelOrList && $level <= $maxLevel; + })); + } + $this->acceptedLevels = array_flip($acceptedLevels); + } + + /** + * {@inheritdoc} + */ + public function isHandling(array $record) + { + return isset($this->acceptedLevels[$record['level']]); + } + + /** + * {@inheritdoc} + */ + public function handle(array $record) + { + if (!$this->isHandling($record)) { + return false; + } + + // The same logic as in FingersCrossedHandler + if (!$this->handler instanceof HandlerInterface) { + $this->handler = call_user_func($this->handler, $record, $this); + if (!$this->handler instanceof HandlerInterface) { + throw new \RuntimeException("The factory callable should return a HandlerInterface"); + } + } + + if ($this->processors) { + foreach ($this->processors as $processor) { + $record = call_user_func($processor, $record); + } + } + + $this->handler->handle($record); + + return false === $this->bubble; + } + + /** + * {@inheritdoc} + */ + public function handleBatch(array $records) + { + $filtered = array(); + foreach ($records as $record) { + if ($this->isHandling($record)) { + $filtered[] = $record; + } + } + + $this->handler->handleBatch($filtered); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php b/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php new file mode 100644 index 00000000..aaca12cc --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler\FingersCrossed; + +/** + * Interface for activation strategies for the FingersCrossedHandler. + * + * @author Johannes M. Schmitt + */ +interface ActivationStrategyInterface +{ + /** + * Returns whether the given record activates the handler. + * + * @param array $record + * @return bool + */ + public function isHandlerActivated(array $record); +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php b/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php new file mode 100644 index 00000000..2a2a64d9 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php @@ -0,0 +1,59 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler\FingersCrossed; + +use Monolog\Logger; + +/** + * Channel and Error level based monolog activation strategy. Allows to trigger activation + * based on level per channel. e.g. trigger activation on level 'ERROR' by default, except + * for records of the 'sql' channel; those should trigger activation on level 'WARN'. + * + * Example: + * + * + * $activationStrategy = new ChannelLevelActivationStrategy( + * Logger::CRITICAL, + * array( + * 'request' => Logger::ALERT, + * 'sensitive' => Logger::ERROR, + * ) + * ); + * $handler = new FingersCrossedHandler(new StreamHandler('php://stderr'), $activationStrategy); + * + * + * @author Mike Meessen + */ +class ChannelLevelActivationStrategy implements ActivationStrategyInterface +{ + private $defaultActionLevel; + private $channelToActionLevel; + + /** + * @param int $defaultActionLevel The default action level to be used if the record's category doesn't match any + * @param array $channelToActionLevel An array that maps channel names to action levels. + */ + public function __construct($defaultActionLevel, $channelToActionLevel = array()) + { + $this->defaultActionLevel = Logger::toMonologLevel($defaultActionLevel); + $this->channelToActionLevel = array_map('Monolog\Logger::toMonologLevel', $channelToActionLevel); + } + + public function isHandlerActivated(array $record) + { + if (isset($this->channelToActionLevel[$record['channel']])) { + return $record['level'] >= $this->channelToActionLevel[$record['channel']]; + } + + return $record['level'] >= $this->defaultActionLevel; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php b/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php new file mode 100644 index 00000000..6e630852 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php @@ -0,0 +1,34 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler\FingersCrossed; + +use Monolog\Logger; + +/** + * Error level based activation strategy. + * + * @author Johannes M. Schmitt + */ +class ErrorLevelActivationStrategy implements ActivationStrategyInterface +{ + private $actionLevel; + + public function __construct($actionLevel) + { + $this->actionLevel = Logger::toMonologLevel($actionLevel); + } + + public function isHandlerActivated(array $record) + { + return $record['level'] >= $this->actionLevel; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php new file mode 100644 index 00000000..275fd513 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php @@ -0,0 +1,177 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy; +use Monolog\Handler\FingersCrossed\ActivationStrategyInterface; +use Monolog\Logger; +use Monolog\ResettableInterface; + +/** + * Buffers all records until a certain level is reached + * + * The advantage of this approach is that you don't get any clutter in your log files. + * Only requests which actually trigger an error (or whatever your actionLevel is) will be + * in the logs, but they will contain all records, not only those above the level threshold. + * + * You can find the various activation strategies in the + * Monolog\Handler\FingersCrossed\ namespace. + * + * @author Jordi Boggiano + */ +class FingersCrossedHandler extends AbstractHandler +{ + protected $handler; + protected $activationStrategy; + protected $buffering = true; + protected $bufferSize; + protected $buffer = array(); + protected $stopBuffering; + protected $passthruLevel; + + /** + * @param callable|HandlerInterface $handler Handler or factory callable($record, $fingersCrossedHandler). + * @param int|ActivationStrategyInterface $activationStrategy Strategy which determines when this handler takes action + * @param int $bufferSize How many entries should be buffered at most, beyond that the oldest items are removed from the buffer. + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + * @param bool $stopBuffering Whether the handler should stop buffering after being triggered (default true) + * @param int $passthruLevel Minimum level to always flush to handler on close, even if strategy not triggered + */ + public function __construct($handler, $activationStrategy = null, $bufferSize = 0, $bubble = true, $stopBuffering = true, $passthruLevel = null) + { + if (null === $activationStrategy) { + $activationStrategy = new ErrorLevelActivationStrategy(Logger::WARNING); + } + + // convert simple int activationStrategy to an object + if (!$activationStrategy instanceof ActivationStrategyInterface) { + $activationStrategy = new ErrorLevelActivationStrategy($activationStrategy); + } + + $this->handler = $handler; + $this->activationStrategy = $activationStrategy; + $this->bufferSize = $bufferSize; + $this->bubble = $bubble; + $this->stopBuffering = $stopBuffering; + + if ($passthruLevel !== null) { + $this->passthruLevel = Logger::toMonologLevel($passthruLevel); + } + + if (!$this->handler instanceof HandlerInterface && !is_callable($this->handler)) { + throw new \RuntimeException("The given handler (".json_encode($this->handler).") is not a callable nor a Monolog\Handler\HandlerInterface object"); + } + } + + /** + * {@inheritdoc} + */ + public function isHandling(array $record) + { + return true; + } + + /** + * Manually activate this logger regardless of the activation strategy + */ + public function activate() + { + if ($this->stopBuffering) { + $this->buffering = false; + } + if (!$this->handler instanceof HandlerInterface) { + $record = end($this->buffer) ?: null; + + $this->handler = call_user_func($this->handler, $record, $this); + if (!$this->handler instanceof HandlerInterface) { + throw new \RuntimeException("The factory callable should return a HandlerInterface"); + } + } + $this->handler->handleBatch($this->buffer); + $this->buffer = array(); + } + + /** + * {@inheritdoc} + */ + public function handle(array $record) + { + if ($this->processors) { + foreach ($this->processors as $processor) { + $record = call_user_func($processor, $record); + } + } + + if ($this->buffering) { + $this->buffer[] = $record; + if ($this->bufferSize > 0 && count($this->buffer) > $this->bufferSize) { + array_shift($this->buffer); + } + if ($this->activationStrategy->isHandlerActivated($record)) { + $this->activate(); + } + } else { + $this->handler->handle($record); + } + + return false === $this->bubble; + } + + /** + * {@inheritdoc} + */ + public function close() + { + $this->flushBuffer(); + } + + public function reset() + { + $this->flushBuffer(); + + parent::reset(); + + if ($this->handler instanceof ResettableInterface) { + $this->handler->reset(); + } + } + + /** + * Clears the buffer without flushing any messages down to the wrapped handler. + * + * It also resets the handler to its initial buffering state. + */ + public function clear() + { + $this->buffer = array(); + $this->reset(); + } + + /** + * Resets the state of the handler. Stops forwarding records to the wrapped handler. + */ + private function flushBuffer() + { + if (null !== $this->passthruLevel) { + $level = $this->passthruLevel; + $this->buffer = array_filter($this->buffer, function ($record) use ($level) { + return $record['level'] >= $level; + }); + if (count($this->buffer) > 0) { + $this->handler->handleBatch($this->buffer); + } + } + + $this->buffer = array(); + $this->buffering = true; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php new file mode 100644 index 00000000..c30b1843 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php @@ -0,0 +1,195 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Formatter\WildfireFormatter; + +/** + * Simple FirePHP Handler (http://www.firephp.org/), which uses the Wildfire protocol. + * + * @author Eric Clemmons (@ericclemmons) + */ +class FirePHPHandler extends AbstractProcessingHandler +{ + /** + * WildFire JSON header message format + */ + const PROTOCOL_URI = 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2'; + + /** + * FirePHP structure for parsing messages & their presentation + */ + const STRUCTURE_URI = 'http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1'; + + /** + * Must reference a "known" plugin, otherwise headers won't display in FirePHP + */ + const PLUGIN_URI = 'http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/0.3'; + + /** + * Header prefix for Wildfire to recognize & parse headers + */ + const HEADER_PREFIX = 'X-Wf'; + + /** + * Whether or not Wildfire vendor-specific headers have been generated & sent yet + */ + protected static $initialized = false; + + /** + * Shared static message index between potentially multiple handlers + * @var int + */ + protected static $messageIndex = 1; + + protected static $sendHeaders = true; + + /** + * Base header creation function used by init headers & record headers + * + * @param array $meta Wildfire Plugin, Protocol & Structure Indexes + * @param string $message Log message + * @return array Complete header string ready for the client as key and message as value + */ + protected function createHeader(array $meta, $message) + { + $header = sprintf('%s-%s', self::HEADER_PREFIX, join('-', $meta)); + + return array($header => $message); + } + + /** + * Creates message header from record + * + * @see createHeader() + * @param array $record + * @return string + */ + protected function createRecordHeader(array $record) + { + // Wildfire is extensible to support multiple protocols & plugins in a single request, + // but we're not taking advantage of that (yet), so we're using "1" for simplicity's sake. + return $this->createHeader( + array(1, 1, 1, self::$messageIndex++), + $record['formatted'] + ); + } + + /** + * {@inheritDoc} + */ + protected function getDefaultFormatter() + { + return new WildfireFormatter(); + } + + /** + * Wildfire initialization headers to enable message parsing + * + * @see createHeader() + * @see sendHeader() + * @return array + */ + protected function getInitHeaders() + { + // Initial payload consists of required headers for Wildfire + return array_merge( + $this->createHeader(array('Protocol', 1), self::PROTOCOL_URI), + $this->createHeader(array(1, 'Structure', 1), self::STRUCTURE_URI), + $this->createHeader(array(1, 'Plugin', 1), self::PLUGIN_URI) + ); + } + + /** + * Send header string to the client + * + * @param string $header + * @param string $content + */ + protected function sendHeader($header, $content) + { + if (!headers_sent() && self::$sendHeaders) { + header(sprintf('%s: %s', $header, $content)); + } + } + + /** + * Creates & sends header for a record, ensuring init headers have been sent prior + * + * @see sendHeader() + * @see sendInitHeaders() + * @param array $record + */ + protected function write(array $record) + { + if (!self::$sendHeaders) { + return; + } + + // WildFire-specific headers must be sent prior to any messages + if (!self::$initialized) { + self::$initialized = true; + + self::$sendHeaders = $this->headersAccepted(); + if (!self::$sendHeaders) { + return; + } + + foreach ($this->getInitHeaders() as $header => $content) { + $this->sendHeader($header, $content); + } + } + + $header = $this->createRecordHeader($record); + if (trim(current($header)) !== '') { + $this->sendHeader(key($header), current($header)); + } + } + + /** + * Verifies if the headers are accepted by the current user agent + * + * @return bool + */ + protected function headersAccepted() + { + if (!empty($_SERVER['HTTP_USER_AGENT']) && preg_match('{\bFirePHP/\d+\.\d+\b}', $_SERVER['HTTP_USER_AGENT'])) { + return true; + } + + return isset($_SERVER['HTTP_X_FIREPHP_VERSION']); + } + + /** + * BC getter for the sendHeaders property that has been made static + */ + public function __get($property) + { + if ('sendHeaders' !== $property) { + throw new \InvalidArgumentException('Undefined property '.$property); + } + + return static::$sendHeaders; + } + + /** + * BC setter for the sendHeaders property that has been made static + */ + public function __set($property, $value) + { + if ('sendHeaders' !== $property) { + throw new \InvalidArgumentException('Undefined property '.$property); + } + + static::$sendHeaders = $value; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php new file mode 100644 index 00000000..c43c0134 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php @@ -0,0 +1,126 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Formatter\LineFormatter; +use Monolog\Logger; + +/** + * Sends logs to Fleep.io using Webhook integrations + * + * You'll need a Fleep.io account to use this handler. + * + * @see https://fleep.io/integrations/webhooks/ Fleep Webhooks Documentation + * @author Ando Roots + */ +class FleepHookHandler extends SocketHandler +{ + const FLEEP_HOST = 'fleep.io'; + + const FLEEP_HOOK_URI = '/hook/'; + + /** + * @var string Webhook token (specifies the conversation where logs are sent) + */ + protected $token; + + /** + * Construct a new Fleep.io Handler. + * + * For instructions on how to create a new web hook in your conversations + * see https://fleep.io/integrations/webhooks/ + * + * @param string $token Webhook token + * @param bool|int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + * @throws MissingExtensionException + */ + public function __construct($token, $level = Logger::DEBUG, $bubble = true) + { + if (!extension_loaded('openssl')) { + throw new MissingExtensionException('The OpenSSL PHP extension is required to use the FleepHookHandler'); + } + + $this->token = $token; + + $connectionString = 'ssl://' . self::FLEEP_HOST . ':443'; + parent::__construct($connectionString, $level, $bubble); + } + + /** + * Returns the default formatter to use with this handler + * + * Overloaded to remove empty context and extra arrays from the end of the log message. + * + * @return LineFormatter + */ + protected function getDefaultFormatter() + { + return new LineFormatter(null, null, true, true); + } + + /** + * Handles a log record + * + * @param array $record + */ + public function write(array $record) + { + parent::write($record); + $this->closeSocket(); + } + + /** + * {@inheritdoc} + * + * @param array $record + * @return string + */ + protected function generateDataStream($record) + { + $content = $this->buildContent($record); + + return $this->buildHeader($content) . $content; + } + + /** + * Builds the header of the API Call + * + * @param string $content + * @return string + */ + private function buildHeader($content) + { + $header = "POST " . self::FLEEP_HOOK_URI . $this->token . " HTTP/1.1\r\n"; + $header .= "Host: " . self::FLEEP_HOST . "\r\n"; + $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; + $header .= "Content-Length: " . strlen($content) . "\r\n"; + $header .= "\r\n"; + + return $header; + } + + /** + * Builds the body of API call + * + * @param array $record + * @return string + */ + private function buildContent($record) + { + $dataArray = array( + 'message' => $record['formatted'], + ); + + return http_build_query($dataArray); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php new file mode 100644 index 00000000..dd9a361c --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php @@ -0,0 +1,127 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; +use Monolog\Formatter\FlowdockFormatter; +use Monolog\Formatter\FormatterInterface; + +/** + * Sends notifications through the Flowdock push API + * + * This must be configured with a FlowdockFormatter instance via setFormatter() + * + * Notes: + * API token - Flowdock API token + * + * @author Dominik Liebler + * @see https://www.flowdock.com/api/push + */ +class FlowdockHandler extends SocketHandler +{ + /** + * @var string + */ + protected $apiToken; + + /** + * @param string $apiToken + * @param bool|int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + * + * @throws MissingExtensionException if OpenSSL is missing + */ + public function __construct($apiToken, $level = Logger::DEBUG, $bubble = true) + { + if (!extension_loaded('openssl')) { + throw new MissingExtensionException('The OpenSSL PHP extension is required to use the FlowdockHandler'); + } + + parent::__construct('ssl://api.flowdock.com:443', $level, $bubble); + $this->apiToken = $apiToken; + } + + /** + * {@inheritdoc} + */ + public function setFormatter(FormatterInterface $formatter) + { + if (!$formatter instanceof FlowdockFormatter) { + throw new \InvalidArgumentException('The FlowdockHandler requires an instance of Monolog\Formatter\FlowdockFormatter to function correctly'); + } + + return parent::setFormatter($formatter); + } + + /** + * Gets the default formatter. + * + * @return FormatterInterface + */ + protected function getDefaultFormatter() + { + throw new \InvalidArgumentException('The FlowdockHandler must be configured (via setFormatter) with an instance of Monolog\Formatter\FlowdockFormatter to function correctly'); + } + + /** + * {@inheritdoc} + * + * @param array $record + */ + protected function write(array $record) + { + parent::write($record); + + $this->closeSocket(); + } + + /** + * {@inheritdoc} + * + * @param array $record + * @return string + */ + protected function generateDataStream($record) + { + $content = $this->buildContent($record); + + return $this->buildHeader($content) . $content; + } + + /** + * Builds the body of API call + * + * @param array $record + * @return string + */ + private function buildContent($record) + { + return json_encode($record['formatted']['flowdock']); + } + + /** + * Builds the header of the API Call + * + * @param string $content + * @return string + */ + private function buildHeader($content) + { + $header = "POST /v1/messages/team_inbox/" . $this->apiToken . " HTTP/1.1\r\n"; + $header .= "Host: api.flowdock.com\r\n"; + $header .= "Content-Type: application/json\r\n"; + $header .= "Content-Length: " . strlen($content) . "\r\n"; + $header .= "\r\n"; + + return $header; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/GelfHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/GelfHandler.php new file mode 100644 index 00000000..71e46693 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/GelfHandler.php @@ -0,0 +1,65 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Gelf\IMessagePublisher; +use Gelf\PublisherInterface; +use Gelf\Publisher; +use InvalidArgumentException; +use Monolog\Logger; +use Monolog\Formatter\GelfMessageFormatter; + +/** + * Handler to send messages to a Graylog2 (http://www.graylog2.org) server + * + * @author Matt Lehner + * @author Benjamin Zikarsky + */ +class GelfHandler extends AbstractProcessingHandler +{ + /** + * @var Publisher the publisher object that sends the message to the server + */ + protected $publisher; + + /** + * @param PublisherInterface|IMessagePublisher|Publisher $publisher a publisher object + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + */ + public function __construct($publisher, $level = Logger::DEBUG, $bubble = true) + { + parent::__construct($level, $bubble); + + if (!$publisher instanceof Publisher && !$publisher instanceof IMessagePublisher && !$publisher instanceof PublisherInterface) { + throw new InvalidArgumentException('Invalid publisher, expected a Gelf\Publisher, Gelf\IMessagePublisher or Gelf\PublisherInterface instance'); + } + + $this->publisher = $publisher; + } + + /** + * {@inheritdoc} + */ + protected function write(array $record) + { + $this->publisher->publish($record['formatted']); + } + + /** + * {@inheritDoc} + */ + protected function getDefaultFormatter() + { + return new GelfMessageFormatter(); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php new file mode 100644 index 00000000..28e5c564 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php @@ -0,0 +1,116 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Formatter\FormatterInterface; +use Monolog\ResettableInterface; + +/** + * Forwards records to multiple handlers + * + * @author Lenar Lõhmus + */ +class GroupHandler extends AbstractHandler +{ + protected $handlers; + + /** + * @param array $handlers Array of Handlers. + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + */ + public function __construct(array $handlers, $bubble = true) + { + foreach ($handlers as $handler) { + if (!$handler instanceof HandlerInterface) { + throw new \InvalidArgumentException('The first argument of the GroupHandler must be an array of HandlerInterface instances.'); + } + } + + $this->handlers = $handlers; + $this->bubble = $bubble; + } + + /** + * {@inheritdoc} + */ + public function isHandling(array $record) + { + foreach ($this->handlers as $handler) { + if ($handler->isHandling($record)) { + return true; + } + } + + return false; + } + + /** + * {@inheritdoc} + */ + public function handle(array $record) + { + if ($this->processors) { + foreach ($this->processors as $processor) { + $record = call_user_func($processor, $record); + } + } + + foreach ($this->handlers as $handler) { + $handler->handle($record); + } + + return false === $this->bubble; + } + + /** + * {@inheritdoc} + */ + public function handleBatch(array $records) + { + if ($this->processors) { + $processed = array(); + foreach ($records as $record) { + foreach ($this->processors as $processor) { + $processed[] = call_user_func($processor, $record); + } + } + $records = $processed; + } + + foreach ($this->handlers as $handler) { + $handler->handleBatch($records); + } + } + + public function reset() + { + parent::reset(); + + foreach ($this->handlers as $handler) { + if ($handler instanceof ResettableInterface) { + $handler->reset(); + } + } + } + + /** + * {@inheritdoc} + */ + public function setFormatter(FormatterInterface $formatter) + { + foreach ($this->handlers as $handler) { + $handler->setFormatter($formatter); + } + + return $this; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php b/vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php new file mode 100644 index 00000000..8d5a4a09 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php @@ -0,0 +1,90 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Formatter\FormatterInterface; + +/** + * Interface that all Monolog Handlers must implement + * + * @author Jordi Boggiano + */ +interface HandlerInterface +{ + /** + * Checks whether the given record will be handled by this handler. + * + * This is mostly done for performance reasons, to avoid calling processors for nothing. + * + * Handlers should still check the record levels within handle(), returning false in isHandling() + * is no guarantee that handle() will not be called, and isHandling() might not be called + * for a given record. + * + * @param array $record Partial log record containing only a level key + * + * @return bool + */ + public function isHandling(array $record); + + /** + * Handles a record. + * + * All records may be passed to this method, and the handler should discard + * those that it does not want to handle. + * + * The return value of this function controls the bubbling process of the handler stack. + * Unless the bubbling is interrupted (by returning true), the Logger class will keep on + * calling further handlers in the stack with a given log record. + * + * @param array $record The record to handle + * @return bool true means that this handler handled the record, and that bubbling is not permitted. + * false means the record was either not processed or that this handler allows bubbling. + */ + public function handle(array $record); + + /** + * Handles a set of records at once. + * + * @param array $records The records to handle (an array of record arrays) + */ + public function handleBatch(array $records); + + /** + * Adds a processor in the stack. + * + * @param callable $callback + * @return self + */ + public function pushProcessor($callback); + + /** + * Removes the processor on top of the stack and returns it. + * + * @return callable + */ + public function popProcessor(); + + /** + * Sets the formatter. + * + * @param FormatterInterface $formatter + * @return self + */ + public function setFormatter(FormatterInterface $formatter); + + /** + * Gets the formatter. + * + * @return FormatterInterface + */ + public function getFormatter(); +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php b/vendor/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php new file mode 100644 index 00000000..55e64986 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php @@ -0,0 +1,116 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\ResettableInterface; +use Monolog\Formatter\FormatterInterface; + +/** + * This simple wrapper class can be used to extend handlers functionality. + * + * Example: A custom filtering that can be applied to any handler. + * + * Inherit from this class and override handle() like this: + * + * public function handle(array $record) + * { + * if ($record meets certain conditions) { + * return false; + * } + * return $this->handler->handle($record); + * } + * + * @author Alexey Karapetov + */ +class HandlerWrapper implements HandlerInterface, ResettableInterface +{ + /** + * @var HandlerInterface + */ + protected $handler; + + /** + * HandlerWrapper constructor. + * @param HandlerInterface $handler + */ + public function __construct(HandlerInterface $handler) + { + $this->handler = $handler; + } + + /** + * {@inheritdoc} + */ + public function isHandling(array $record) + { + return $this->handler->isHandling($record); + } + + /** + * {@inheritdoc} + */ + public function handle(array $record) + { + return $this->handler->handle($record); + } + + /** + * {@inheritdoc} + */ + public function handleBatch(array $records) + { + return $this->handler->handleBatch($records); + } + + /** + * {@inheritdoc} + */ + public function pushProcessor($callback) + { + $this->handler->pushProcessor($callback); + + return $this; + } + + /** + * {@inheritdoc} + */ + public function popProcessor() + { + return $this->handler->popProcessor(); + } + + /** + * {@inheritdoc} + */ + public function setFormatter(FormatterInterface $formatter) + { + $this->handler->setFormatter($formatter); + + return $this; + } + + /** + * {@inheritdoc} + */ + public function getFormatter() + { + return $this->handler->getFormatter(); + } + + public function reset() + { + if ($this->handler instanceof ResettableInterface) { + return $this->handler->reset(); + } + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/HipChatHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/HipChatHandler.php new file mode 100644 index 00000000..73233c95 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/HipChatHandler.php @@ -0,0 +1,365 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; + +/** + * Sends notifications through the hipchat api to a hipchat room + * + * Notes: + * API token - HipChat API token + * Room - HipChat Room Id or name, where messages are sent + * Name - Name used to send the message (from) + * notify - Should the message trigger a notification in the clients + * version - The API version to use (HipChatHandler::API_V1 | HipChatHandler::API_V2) + * + * @author Rafael Dohms + * @see https://www.hipchat.com/docs/api + */ +class HipChatHandler extends SocketHandler +{ + /** + * Use API version 1 + */ + const API_V1 = 'v1'; + + /** + * Use API version v2 + */ + const API_V2 = 'v2'; + + /** + * The maximum allowed length for the name used in the "from" field. + */ + const MAXIMUM_NAME_LENGTH = 15; + + /** + * The maximum allowed length for the message. + */ + const MAXIMUM_MESSAGE_LENGTH = 9500; + + /** + * @var string + */ + private $token; + + /** + * @var string + */ + private $room; + + /** + * @var string + */ + private $name; + + /** + * @var bool + */ + private $notify; + + /** + * @var string + */ + private $format; + + /** + * @var string + */ + private $host; + + /** + * @var string + */ + private $version; + + /** + * @param string $token HipChat API Token + * @param string $room The room that should be alerted of the message (Id or Name) + * @param string $name Name used in the "from" field. + * @param bool $notify Trigger a notification in clients or not + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + * @param bool $useSSL Whether to connect via SSL. + * @param string $format The format of the messages (default to text, can be set to html if you have html in the messages) + * @param string $host The HipChat server hostname. + * @param string $version The HipChat API version (default HipChatHandler::API_V1) + */ + public function __construct($token, $room, $name = 'Monolog', $notify = false, $level = Logger::CRITICAL, $bubble = true, $useSSL = true, $format = 'text', $host = 'api.hipchat.com', $version = self::API_V1) + { + if ($version == self::API_V1 && !$this->validateStringLength($name, static::MAXIMUM_NAME_LENGTH)) { + throw new \InvalidArgumentException('The supplied name is too long. HipChat\'s v1 API supports names up to 15 UTF-8 characters.'); + } + + $connectionString = $useSSL ? 'ssl://'.$host.':443' : $host.':80'; + parent::__construct($connectionString, $level, $bubble); + + $this->token = $token; + $this->name = $name; + $this->notify = $notify; + $this->room = $room; + $this->format = $format; + $this->host = $host; + $this->version = $version; + } + + /** + * {@inheritdoc} + * + * @param array $record + * @return string + */ + protected function generateDataStream($record) + { + $content = $this->buildContent($record); + + return $this->buildHeader($content) . $content; + } + + /** + * Builds the body of API call + * + * @param array $record + * @return string + */ + private function buildContent($record) + { + $dataArray = array( + 'notify' => $this->version == self::API_V1 ? + ($this->notify ? 1 : 0) : + ($this->notify ? 'true' : 'false'), + 'message' => $record['formatted'], + 'message_format' => $this->format, + 'color' => $this->getAlertColor($record['level']), + ); + + if (!$this->validateStringLength($dataArray['message'], static::MAXIMUM_MESSAGE_LENGTH)) { + if (function_exists('mb_substr')) { + $dataArray['message'] = mb_substr($dataArray['message'], 0, static::MAXIMUM_MESSAGE_LENGTH).' [truncated]'; + } else { + $dataArray['message'] = substr($dataArray['message'], 0, static::MAXIMUM_MESSAGE_LENGTH).' [truncated]'; + } + } + + // if we are using the legacy API then we need to send some additional information + if ($this->version == self::API_V1) { + $dataArray['room_id'] = $this->room; + } + + // append the sender name if it is set + // always append it if we use the v1 api (it is required in v1) + if ($this->version == self::API_V1 || $this->name !== null) { + $dataArray['from'] = (string) $this->name; + } + + return http_build_query($dataArray); + } + + /** + * Builds the header of the API Call + * + * @param string $content + * @return string + */ + private function buildHeader($content) + { + if ($this->version == self::API_V1) { + $header = "POST /v1/rooms/message?format=json&auth_token={$this->token} HTTP/1.1\r\n"; + } else { + // needed for rooms with special (spaces, etc) characters in the name + $room = rawurlencode($this->room); + $header = "POST /v2/room/{$room}/notification?auth_token={$this->token} HTTP/1.1\r\n"; + } + + $header .= "Host: {$this->host}\r\n"; + $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; + $header .= "Content-Length: " . strlen($content) . "\r\n"; + $header .= "\r\n"; + + return $header; + } + + /** + * Assigns a color to each level of log records. + * + * @param int $level + * @return string + */ + protected function getAlertColor($level) + { + switch (true) { + case $level >= Logger::ERROR: + return 'red'; + case $level >= Logger::WARNING: + return 'yellow'; + case $level >= Logger::INFO: + return 'green'; + case $level == Logger::DEBUG: + return 'gray'; + default: + return 'yellow'; + } + } + + /** + * {@inheritdoc} + * + * @param array $record + */ + protected function write(array $record) + { + parent::write($record); + $this->finalizeWrite(); + } + + /** + * Finalizes the request by reading some bytes and then closing the socket + * + * If we do not read some but close the socket too early, hipchat sometimes + * drops the request entirely. + */ + protected function finalizeWrite() + { + $res = $this->getResource(); + if (is_resource($res)) { + @fread($res, 2048); + } + $this->closeSocket(); + } + + /** + * {@inheritdoc} + */ + public function handleBatch(array $records) + { + if (count($records) == 0) { + return true; + } + + $batchRecords = $this->combineRecords($records); + + $handled = false; + foreach ($batchRecords as $batchRecord) { + if ($this->isHandling($batchRecord)) { + $this->write($batchRecord); + $handled = true; + } + } + + if (!$handled) { + return false; + } + + return false === $this->bubble; + } + + /** + * Combines multiple records into one. Error level of the combined record + * will be the highest level from the given records. Datetime will be taken + * from the first record. + * + * @param $records + * @return array + */ + private function combineRecords($records) + { + $batchRecord = null; + $batchRecords = array(); + $messages = array(); + $formattedMessages = array(); + $level = 0; + $levelName = null; + $datetime = null; + + foreach ($records as $record) { + $record = $this->processRecord($record); + + if ($record['level'] > $level) { + $level = $record['level']; + $levelName = $record['level_name']; + } + + if (null === $datetime) { + $datetime = $record['datetime']; + } + + $messages[] = $record['message']; + $messageStr = implode(PHP_EOL, $messages); + $formattedMessages[] = $this->getFormatter()->format($record); + $formattedMessageStr = implode('', $formattedMessages); + + $batchRecord = array( + 'message' => $messageStr, + 'formatted' => $formattedMessageStr, + 'context' => array(), + 'extra' => array(), + ); + + if (!$this->validateStringLength($batchRecord['formatted'], static::MAXIMUM_MESSAGE_LENGTH)) { + // Pop the last message and implode the remaining messages + $lastMessage = array_pop($messages); + $lastFormattedMessage = array_pop($formattedMessages); + $batchRecord['message'] = implode(PHP_EOL, $messages); + $batchRecord['formatted'] = implode('', $formattedMessages); + + $batchRecords[] = $batchRecord; + $messages = array($lastMessage); + $formattedMessages = array($lastFormattedMessage); + + $batchRecord = null; + } + } + + if (null !== $batchRecord) { + $batchRecords[] = $batchRecord; + } + + // Set the max level and datetime for all records + foreach ($batchRecords as &$batchRecord) { + $batchRecord = array_merge( + $batchRecord, + array( + 'level' => $level, + 'level_name' => $levelName, + 'datetime' => $datetime, + ) + ); + } + + return $batchRecords; + } + + /** + * Validates the length of a string. + * + * If the `mb_strlen()` function is available, it will use that, as HipChat + * allows UTF-8 characters. Otherwise, it will fall back to `strlen()`. + * + * Note that this might cause false failures in the specific case of using + * a valid name with less than 16 characters, but 16 or more bytes, on a + * system where `mb_strlen()` is unavailable. + * + * @param string $str + * @param int $length + * + * @return bool + */ + private function validateStringLength($str, $length) + { + if (function_exists('mb_strlen')) { + return (mb_strlen($str) <= $length); + } + + return (strlen($str) <= $length); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php new file mode 100644 index 00000000..7f226220 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php @@ -0,0 +1,69 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; + +/** + * IFTTTHandler uses cURL to trigger IFTTT Maker actions + * + * Register a secret key and trigger/event name at https://ifttt.com/maker + * + * value1 will be the channel from monolog's Logger constructor, + * value2 will be the level name (ERROR, WARNING, ..) + * value3 will be the log record's message + * + * @author Nehal Patel + */ +class IFTTTHandler extends AbstractProcessingHandler +{ + private $eventName; + private $secretKey; + + /** + * @param string $eventName The name of the IFTTT Maker event that should be triggered + * @param string $secretKey A valid IFTTT secret key + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + */ + public function __construct($eventName, $secretKey, $level = Logger::ERROR, $bubble = true) + { + $this->eventName = $eventName; + $this->secretKey = $secretKey; + + parent::__construct($level, $bubble); + } + + /** + * {@inheritdoc} + */ + public function write(array $record) + { + $postData = array( + "value1" => $record["channel"], + "value2" => $record["level_name"], + "value3" => $record["message"], + ); + $postString = json_encode($postData); + + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, "https://maker.ifttt.com/trigger/" . $this->eventName . "/with/key/" . $this->secretKey); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, $postString); + curl_setopt($ch, CURLOPT_HTTPHEADER, array( + "Content-Type: application/json", + )); + + Curl\Util::execute($ch); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php new file mode 100644 index 00000000..a12e3de5 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php @@ -0,0 +1,62 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + + namespace Monolog\Handler; + + use Monolog\Logger; + +/** + * Inspired on LogEntriesHandler. + * + * @author Robert Kaufmann III + * @author Gabriel Machado + */ +class InsightOpsHandler extends SocketHandler +{ + /** + * @var string + */ + protected $logToken; + + /** + * @param string $token Log token supplied by InsightOps + * @param string $region Region where InsightOps account is hosted. Could be 'us' or 'eu'. + * @param bool $useSSL Whether or not SSL encryption should be used + * @param int $level The minimum logging level to trigger this handler + * @param bool $bubble Whether or not messages that are handled should bubble up the stack. + * + * @throws MissingExtensionException If SSL encryption is set to true and OpenSSL is missing + */ + public function __construct($token, $region = 'us', $useSSL = true, $level = Logger::DEBUG, $bubble = true) + { + if ($useSSL && !extension_loaded('openssl')) { + throw new MissingExtensionException('The OpenSSL PHP plugin is required to use SSL encrypted connection for LogEntriesHandler'); + } + + $endpoint = $useSSL + ? 'ssl://' . $region . '.data.logs.insight.rapid7.com:443' + : $region . '.data.logs.insight.rapid7.com:80'; + + parent::__construct($endpoint, $level, $bubble); + $this->logToken = $token; + } + + /** + * {@inheritdoc} + * + * @param array $record + * @return string + */ + protected function generateDataStream($record) + { + return $this->logToken . ' ' . $record['formatted']; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php new file mode 100644 index 00000000..ea89fb3e --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; + +/** + * @author Robert Kaufmann III + */ +class LogEntriesHandler extends SocketHandler +{ + /** + * @var string + */ + protected $logToken; + + /** + * @param string $token Log token supplied by LogEntries + * @param bool $useSSL Whether or not SSL encryption should be used. + * @param int $level The minimum logging level to trigger this handler + * @param bool $bubble Whether or not messages that are handled should bubble up the stack. + * + * @throws MissingExtensionException If SSL encryption is set to true and OpenSSL is missing + */ + public function __construct($token, $useSSL = true, $level = Logger::DEBUG, $bubble = true, $host = 'data.logentries.com') + { + if ($useSSL && !extension_loaded('openssl')) { + throw new MissingExtensionException('The OpenSSL PHP plugin is required to use SSL encrypted connection for LogEntriesHandler'); + } + + $endpoint = $useSSL ? 'ssl://' . $host . ':443' : $host . ':80'; + parent::__construct($endpoint, $level, $bubble); + $this->logToken = $token; + } + + /** + * {@inheritdoc} + * + * @param array $record + * @return string + */ + protected function generateDataStream($record) + { + return $this->logToken . ' ' . $record['formatted']; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/LogglyHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/LogglyHandler.php new file mode 100644 index 00000000..bcd62e1c --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/LogglyHandler.php @@ -0,0 +1,102 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; +use Monolog\Formatter\LogglyFormatter; + +/** + * Sends errors to Loggly. + * + * @author Przemek Sobstel + * @author Adam Pancutt + * @author Gregory Barchard + */ +class LogglyHandler extends AbstractProcessingHandler +{ + const HOST = 'logs-01.loggly.com'; + const ENDPOINT_SINGLE = 'inputs'; + const ENDPOINT_BATCH = 'bulk'; + + protected $token; + + protected $tag = array(); + + public function __construct($token, $level = Logger::DEBUG, $bubble = true) + { + if (!extension_loaded('curl')) { + throw new \LogicException('The curl extension is needed to use the LogglyHandler'); + } + + $this->token = $token; + + parent::__construct($level, $bubble); + } + + public function setTag($tag) + { + $tag = !empty($tag) ? $tag : array(); + $this->tag = is_array($tag) ? $tag : array($tag); + } + + public function addTag($tag) + { + if (!empty($tag)) { + $tag = is_array($tag) ? $tag : array($tag); + $this->tag = array_unique(array_merge($this->tag, $tag)); + } + } + + protected function write(array $record) + { + $this->send($record["formatted"], self::ENDPOINT_SINGLE); + } + + public function handleBatch(array $records) + { + $level = $this->level; + + $records = array_filter($records, function ($record) use ($level) { + return ($record['level'] >= $level); + }); + + if ($records) { + $this->send($this->getFormatter()->formatBatch($records), self::ENDPOINT_BATCH); + } + } + + protected function send($data, $endpoint) + { + $url = sprintf("https://%s/%s/%s/", self::HOST, $endpoint, $this->token); + + $headers = array('Content-Type: application/json'); + + if (!empty($this->tag)) { + $headers[] = 'X-LOGGLY-TAG: '.implode(',', $this->tag); + } + + $ch = curl_init(); + + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, $data); + curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + + Curl\Util::execute($ch); + } + + protected function getDefaultFormatter() + { + return new LogglyFormatter(); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php new file mode 100644 index 00000000..9e232838 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php @@ -0,0 +1,67 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +/** + * Base class for all mail handlers + * + * @author Gyula Sallai + */ +abstract class MailHandler extends AbstractProcessingHandler +{ + /** + * {@inheritdoc} + */ + public function handleBatch(array $records) + { + $messages = array(); + + foreach ($records as $record) { + if ($record['level'] < $this->level) { + continue; + } + $messages[] = $this->processRecord($record); + } + + if (!empty($messages)) { + $this->send((string) $this->getFormatter()->formatBatch($messages), $messages); + } + } + + /** + * Send a mail with the given content + * + * @param string $content formatted email body to be sent + * @param array $records the array of log records that formed this content + */ + abstract protected function send($content, array $records); + + /** + * {@inheritdoc} + */ + protected function write(array $record) + { + $this->send((string) $record['formatted'], array($record)); + } + + protected function getHighestRecord(array $records) + { + $highestRecord = null; + foreach ($records as $record) { + if ($highestRecord === null || $highestRecord['level'] < $record['level']) { + $highestRecord = $record; + } + } + + return $highestRecord; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/MandrillHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/MandrillHandler.php new file mode 100644 index 00000000..3f0956a9 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/MandrillHandler.php @@ -0,0 +1,68 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; + +/** + * MandrillHandler uses cURL to send the emails to the Mandrill API + * + * @author Adam Nicholson + */ +class MandrillHandler extends MailHandler +{ + protected $message; + protected $apiKey; + + /** + * @param string $apiKey A valid Mandrill API key + * @param callable|\Swift_Message $message An example message for real messages, only the body will be replaced + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + */ + public function __construct($apiKey, $message, $level = Logger::ERROR, $bubble = true) + { + parent::__construct($level, $bubble); + + if (!$message instanceof \Swift_Message && is_callable($message)) { + $message = call_user_func($message); + } + if (!$message instanceof \Swift_Message) { + throw new \InvalidArgumentException('You must provide either a Swift_Message instance or a callable returning it'); + } + $this->message = $message; + $this->apiKey = $apiKey; + } + + /** + * {@inheritdoc} + */ + protected function send($content, array $records) + { + $message = clone $this->message; + $message->setBody($content); + $message->setDate(time()); + + $ch = curl_init(); + + curl_setopt($ch, CURLOPT_URL, 'https://mandrillapp.com/api/1.0/messages/send-raw.json'); + curl_setopt($ch, CURLOPT_POST, 1); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array( + 'key' => $this->apiKey, + 'raw_message' => (string) $message, + 'async' => false, + ))); + + Curl\Util::execute($ch); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php b/vendor/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php new file mode 100644 index 00000000..4724a7e2 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +/** + * Exception can be thrown if an extension for an handler is missing + * + * @author Christian Bergau + */ +class MissingExtensionException extends \Exception +{ +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php new file mode 100644 index 00000000..56fe755b --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php @@ -0,0 +1,59 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; +use Monolog\Formatter\NormalizerFormatter; + +/** + * Logs to a MongoDB database. + * + * usage example: + * + * $log = new Logger('application'); + * $mongodb = new MongoDBHandler(new \Mongo("mongodb://localhost:27017"), "logs", "prod"); + * $log->pushHandler($mongodb); + * + * @author Thomas Tourlourat + */ +class MongoDBHandler extends AbstractProcessingHandler +{ + protected $mongoCollection; + + public function __construct($mongo, $database, $collection, $level = Logger::DEBUG, $bubble = true) + { + if (!($mongo instanceof \MongoClient || $mongo instanceof \Mongo || $mongo instanceof \MongoDB\Client)) { + throw new \InvalidArgumentException('MongoClient, Mongo or MongoDB\Client instance required'); + } + + $this->mongoCollection = $mongo->selectCollection($database, $collection); + + parent::__construct($level, $bubble); + } + + protected function write(array $record) + { + if ($this->mongoCollection instanceof \MongoDB\Collection) { + $this->mongoCollection->insertOne($record["formatted"]); + } else { + $this->mongoCollection->save($record["formatted"]); + } + } + + /** + * {@inheritDoc} + */ + protected function getDefaultFormatter() + { + return new NormalizerFormatter(); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php new file mode 100644 index 00000000..d7807fd1 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php @@ -0,0 +1,185 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; +use Monolog\Formatter\LineFormatter; + +/** + * NativeMailerHandler uses the mail() function to send the emails + * + * @author Christophe Coevoet + * @author Mark Garrett + */ +class NativeMailerHandler extends MailHandler +{ + /** + * The email addresses to which the message will be sent + * @var array + */ + protected $to; + + /** + * The subject of the email + * @var string + */ + protected $subject; + + /** + * Optional headers for the message + * @var array + */ + protected $headers = array(); + + /** + * Optional parameters for the message + * @var array + */ + protected $parameters = array(); + + /** + * The wordwrap length for the message + * @var int + */ + protected $maxColumnWidth; + + /** + * The Content-type for the message + * @var string + */ + protected $contentType = 'text/plain'; + + /** + * The encoding for the message + * @var string + */ + protected $encoding = 'utf-8'; + + /** + * @param string|array $to The receiver of the mail + * @param string $subject The subject of the mail + * @param string $from The sender of the mail + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + * @param int $maxColumnWidth The maximum column width that the message lines will have + */ + public function __construct($to, $subject, $from, $level = Logger::ERROR, $bubble = true, $maxColumnWidth = 70) + { + parent::__construct($level, $bubble); + $this->to = is_array($to) ? $to : array($to); + $this->subject = $subject; + $this->addHeader(sprintf('From: %s', $from)); + $this->maxColumnWidth = $maxColumnWidth; + } + + /** + * Add headers to the message + * + * @param string|array $headers Custom added headers + * @return self + */ + public function addHeader($headers) + { + foreach ((array) $headers as $header) { + if (strpos($header, "\n") !== false || strpos($header, "\r") !== false) { + throw new \InvalidArgumentException('Headers can not contain newline characters for security reasons'); + } + $this->headers[] = $header; + } + + return $this; + } + + /** + * Add parameters to the message + * + * @param string|array $parameters Custom added parameters + * @return self + */ + public function addParameter($parameters) + { + $this->parameters = array_merge($this->parameters, (array) $parameters); + + return $this; + } + + /** + * {@inheritdoc} + */ + protected function send($content, array $records) + { + $content = wordwrap($content, $this->maxColumnWidth); + $headers = ltrim(implode("\r\n", $this->headers) . "\r\n", "\r\n"); + $headers .= 'Content-type: ' . $this->getContentType() . '; charset=' . $this->getEncoding() . "\r\n"; + if ($this->getContentType() == 'text/html' && false === strpos($headers, 'MIME-Version:')) { + $headers .= 'MIME-Version: 1.0' . "\r\n"; + } + + $subject = $this->subject; + if ($records) { + $subjectFormatter = new LineFormatter($this->subject); + $subject = $subjectFormatter->format($this->getHighestRecord($records)); + } + + $parameters = implode(' ', $this->parameters); + foreach ($this->to as $to) { + mail($to, $subject, $content, $headers, $parameters); + } + } + + /** + * @return string $contentType + */ + public function getContentType() + { + return $this->contentType; + } + + /** + * @return string $encoding + */ + public function getEncoding() + { + return $this->encoding; + } + + /** + * @param string $contentType The content type of the email - Defaults to text/plain. Use text/html for HTML + * messages. + * @return self + */ + public function setContentType($contentType) + { + if (strpos($contentType, "\n") !== false || strpos($contentType, "\r") !== false) { + throw new \InvalidArgumentException('The content type can not contain newline characters to prevent email header injection'); + } + + $this->contentType = $contentType; + + return $this; + } + + /** + * @param string $encoding + * @return self + */ + public function setEncoding($encoding) + { + if (strpos($encoding, "\n") !== false || strpos($encoding, "\r") !== false) { + throw new \InvalidArgumentException('The encoding can not contain newline characters to prevent email header injection'); + } + + $this->encoding = $encoding; + + return $this; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php new file mode 100644 index 00000000..f911997a --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php @@ -0,0 +1,204 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; +use Monolog\Formatter\NormalizerFormatter; + +/** + * Class to record a log on a NewRelic application. + * Enabling New Relic High Security mode may prevent capture of useful information. + * + * This handler requires a NormalizerFormatter to function and expects an array in $record['formatted'] + * + * @see https://docs.newrelic.com/docs/agents/php-agent + * @see https://docs.newrelic.com/docs/accounts-partnerships/accounts/security/high-security + */ +class NewRelicHandler extends AbstractProcessingHandler +{ + /** + * Name of the New Relic application that will receive logs from this handler. + * + * @var string + */ + protected $appName; + + /** + * Name of the current transaction + * + * @var string + */ + protected $transactionName; + + /** + * Some context and extra data is passed into the handler as arrays of values. Do we send them as is + * (useful if we are using the API), or explode them for display on the NewRelic RPM website? + * + * @var bool + */ + protected $explodeArrays; + + /** + * {@inheritDoc} + * + * @param string $appName + * @param bool $explodeArrays + * @param string $transactionName + */ + public function __construct( + $level = Logger::ERROR, + $bubble = true, + $appName = null, + $explodeArrays = false, + $transactionName = null + ) { + parent::__construct($level, $bubble); + + $this->appName = $appName; + $this->explodeArrays = $explodeArrays; + $this->transactionName = $transactionName; + } + + /** + * {@inheritDoc} + */ + protected function write(array $record) + { + if (!$this->isNewRelicEnabled()) { + throw new MissingExtensionException('The newrelic PHP extension is required to use the NewRelicHandler'); + } + + if ($appName = $this->getAppName($record['context'])) { + $this->setNewRelicAppName($appName); + } + + if ($transactionName = $this->getTransactionName($record['context'])) { + $this->setNewRelicTransactionName($transactionName); + unset($record['formatted']['context']['transaction_name']); + } + + if (isset($record['context']['exception']) && ($record['context']['exception'] instanceof \Exception || (PHP_VERSION_ID >= 70000 && $record['context']['exception'] instanceof \Throwable))) { + newrelic_notice_error($record['message'], $record['context']['exception']); + unset($record['formatted']['context']['exception']); + } else { + newrelic_notice_error($record['message']); + } + + if (isset($record['formatted']['context']) && is_array($record['formatted']['context'])) { + foreach ($record['formatted']['context'] as $key => $parameter) { + if (is_array($parameter) && $this->explodeArrays) { + foreach ($parameter as $paramKey => $paramValue) { + $this->setNewRelicParameter('context_' . $key . '_' . $paramKey, $paramValue); + } + } else { + $this->setNewRelicParameter('context_' . $key, $parameter); + } + } + } + + if (isset($record['formatted']['extra']) && is_array($record['formatted']['extra'])) { + foreach ($record['formatted']['extra'] as $key => $parameter) { + if (is_array($parameter) && $this->explodeArrays) { + foreach ($parameter as $paramKey => $paramValue) { + $this->setNewRelicParameter('extra_' . $key . '_' . $paramKey, $paramValue); + } + } else { + $this->setNewRelicParameter('extra_' . $key, $parameter); + } + } + } + } + + /** + * Checks whether the NewRelic extension is enabled in the system. + * + * @return bool + */ + protected function isNewRelicEnabled() + { + return extension_loaded('newrelic'); + } + + /** + * Returns the appname where this log should be sent. Each log can override the default appname, set in this + * handler's constructor, by providing the appname in it's context. + * + * @param array $context + * @return null|string + */ + protected function getAppName(array $context) + { + if (isset($context['appname'])) { + return $context['appname']; + } + + return $this->appName; + } + + /** + * Returns the name of the current transaction. Each log can override the default transaction name, set in this + * handler's constructor, by providing the transaction_name in it's context + * + * @param array $context + * + * @return null|string + */ + protected function getTransactionName(array $context) + { + if (isset($context['transaction_name'])) { + return $context['transaction_name']; + } + + return $this->transactionName; + } + + /** + * Sets the NewRelic application that should receive this log. + * + * @param string $appName + */ + protected function setNewRelicAppName($appName) + { + newrelic_set_appname($appName); + } + + /** + * Overwrites the name of the current transaction + * + * @param string $transactionName + */ + protected function setNewRelicTransactionName($transactionName) + { + newrelic_name_transaction($transactionName); + } + + /** + * @param string $key + * @param mixed $value + */ + protected function setNewRelicParameter($key, $value) + { + if (null === $value || is_scalar($value)) { + newrelic_add_custom_parameter($key, $value); + } else { + newrelic_add_custom_parameter($key, @json_encode($value)); + } + } + + /** + * {@inheritDoc} + */ + protected function getDefaultFormatter() + { + return new NormalizerFormatter(); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/NullHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/NullHandler.php new file mode 100644 index 00000000..4b845883 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/NullHandler.php @@ -0,0 +1,45 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; + +/** + * Blackhole + * + * Any record it can handle will be thrown away. This can be used + * to put on top of an existing stack to override it temporarily. + * + * @author Jordi Boggiano + */ +class NullHandler extends AbstractHandler +{ + /** + * @param int $level The minimum logging level at which this handler will be triggered + */ + public function __construct($level = Logger::DEBUG) + { + parent::__construct($level, false); + } + + /** + * {@inheritdoc} + */ + public function handle(array $record) + { + if ($record['level'] < $this->level) { + return false; + } + + return true; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php new file mode 100644 index 00000000..1f2076a4 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php @@ -0,0 +1,242 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Exception; +use Monolog\Formatter\LineFormatter; +use Monolog\Logger; +use PhpConsole\Connector; +use PhpConsole\Handler; +use PhpConsole\Helper; + +/** + * Monolog handler for Google Chrome extension "PHP Console" + * + * Display PHP error/debug log messages in Google Chrome console and notification popups, executes PHP code remotely + * + * Usage: + * 1. Install Google Chrome extension https://chrome.google.com/webstore/detail/php-console/nfhmhhlpfleoednkpnnnkolmclajemef + * 2. See overview https://github.com/barbushin/php-console#overview + * 3. Install PHP Console library https://github.com/barbushin/php-console#installation + * 4. Example (result will looks like http://i.hizliresim.com/vg3Pz4.png) + * + * $logger = new \Monolog\Logger('all', array(new \Monolog\Handler\PHPConsoleHandler())); + * \Monolog\ErrorHandler::register($logger); + * echo $undefinedVar; + * $logger->addDebug('SELECT * FROM users', array('db', 'time' => 0.012)); + * PC::debug($_SERVER); // PHP Console debugger for any type of vars + * + * @author Sergey Barbushin https://www.linkedin.com/in/barbushin + */ +class PHPConsoleHandler extends AbstractProcessingHandler +{ + private $options = array( + 'enabled' => true, // bool Is PHP Console server enabled + 'classesPartialsTraceIgnore' => array('Monolog\\'), // array Hide calls of classes started with... + 'debugTagsKeysInContext' => array(0, 'tag'), // bool Is PHP Console server enabled + 'useOwnErrorsHandler' => false, // bool Enable errors handling + 'useOwnExceptionsHandler' => false, // bool Enable exceptions handling + 'sourcesBasePath' => null, // string Base path of all project sources to strip in errors source paths + 'registerHelper' => true, // bool Register PhpConsole\Helper that allows short debug calls like PC::debug($var, 'ta.g.s') + 'serverEncoding' => null, // string|null Server internal encoding + 'headersLimit' => null, // int|null Set headers size limit for your web-server + 'password' => null, // string|null Protect PHP Console connection by password + 'enableSslOnlyMode' => false, // bool Force connection by SSL for clients with PHP Console installed + 'ipMasks' => array(), // array Set IP masks of clients that will be allowed to connect to PHP Console: array('192.168.*.*', '127.0.0.1') + 'enableEvalListener' => false, // bool Enable eval request to be handled by eval dispatcher(if enabled, 'password' option is also required) + 'dumperDetectCallbacks' => false, // bool Convert callback items in dumper vars to (callback SomeClass::someMethod) strings + 'dumperLevelLimit' => 5, // int Maximum dumped vars array or object nested dump level + 'dumperItemsCountLimit' => 100, // int Maximum dumped var same level array items or object properties number + 'dumperItemSizeLimit' => 5000, // int Maximum length of any string or dumped array item + 'dumperDumpSizeLimit' => 500000, // int Maximum approximate size of dumped vars result formatted in JSON + 'detectDumpTraceAndSource' => false, // bool Autodetect and append trace data to debug + 'dataStorage' => null, // PhpConsole\Storage|null Fixes problem with custom $_SESSION handler(see http://goo.gl/Ne8juJ) + ); + + /** @var Connector */ + private $connector; + + /** + * @param array $options See \Monolog\Handler\PHPConsoleHandler::$options for more details + * @param Connector|null $connector Instance of \PhpConsole\Connector class (optional) + * @param int $level + * @param bool $bubble + * @throws Exception + */ + public function __construct(array $options = array(), Connector $connector = null, $level = Logger::DEBUG, $bubble = true) + { + if (!class_exists('PhpConsole\Connector')) { + throw new Exception('PHP Console library not found. See https://github.com/barbushin/php-console#installation'); + } + parent::__construct($level, $bubble); + $this->options = $this->initOptions($options); + $this->connector = $this->initConnector($connector); + } + + private function initOptions(array $options) + { + $wrongOptions = array_diff(array_keys($options), array_keys($this->options)); + if ($wrongOptions) { + throw new Exception('Unknown options: ' . implode(', ', $wrongOptions)); + } + + return array_replace($this->options, $options); + } + + private function initConnector(Connector $connector = null) + { + if (!$connector) { + if ($this->options['dataStorage']) { + Connector::setPostponeStorage($this->options['dataStorage']); + } + $connector = Connector::getInstance(); + } + + if ($this->options['registerHelper'] && !Helper::isRegistered()) { + Helper::register(); + } + + if ($this->options['enabled'] && $connector->isActiveClient()) { + if ($this->options['useOwnErrorsHandler'] || $this->options['useOwnExceptionsHandler']) { + $handler = Handler::getInstance(); + $handler->setHandleErrors($this->options['useOwnErrorsHandler']); + $handler->setHandleExceptions($this->options['useOwnExceptionsHandler']); + $handler->start(); + } + if ($this->options['sourcesBasePath']) { + $connector->setSourcesBasePath($this->options['sourcesBasePath']); + } + if ($this->options['serverEncoding']) { + $connector->setServerEncoding($this->options['serverEncoding']); + } + if ($this->options['password']) { + $connector->setPassword($this->options['password']); + } + if ($this->options['enableSslOnlyMode']) { + $connector->enableSslOnlyMode(); + } + if ($this->options['ipMasks']) { + $connector->setAllowedIpMasks($this->options['ipMasks']); + } + if ($this->options['headersLimit']) { + $connector->setHeadersLimit($this->options['headersLimit']); + } + if ($this->options['detectDumpTraceAndSource']) { + $connector->getDebugDispatcher()->detectTraceAndSource = true; + } + $dumper = $connector->getDumper(); + $dumper->levelLimit = $this->options['dumperLevelLimit']; + $dumper->itemsCountLimit = $this->options['dumperItemsCountLimit']; + $dumper->itemSizeLimit = $this->options['dumperItemSizeLimit']; + $dumper->dumpSizeLimit = $this->options['dumperDumpSizeLimit']; + $dumper->detectCallbacks = $this->options['dumperDetectCallbacks']; + if ($this->options['enableEvalListener']) { + $connector->startEvalRequestsListener(); + } + } + + return $connector; + } + + public function getConnector() + { + return $this->connector; + } + + public function getOptions() + { + return $this->options; + } + + public function handle(array $record) + { + if ($this->options['enabled'] && $this->connector->isActiveClient()) { + return parent::handle($record); + } + + return !$this->bubble; + } + + /** + * Writes the record down to the log of the implementing handler + * + * @param array $record + * @return void + */ + protected function write(array $record) + { + if ($record['level'] < Logger::NOTICE) { + $this->handleDebugRecord($record); + } elseif (isset($record['context']['exception']) && $record['context']['exception'] instanceof Exception) { + $this->handleExceptionRecord($record); + } else { + $this->handleErrorRecord($record); + } + } + + private function handleDebugRecord(array $record) + { + $tags = $this->getRecordTags($record); + $message = $record['message']; + if ($record['context']) { + $message .= ' ' . json_encode($this->connector->getDumper()->dump(array_filter($record['context']))); + } + $this->connector->getDebugDispatcher()->dispatchDebug($message, $tags, $this->options['classesPartialsTraceIgnore']); + } + + private function handleExceptionRecord(array $record) + { + $this->connector->getErrorsDispatcher()->dispatchException($record['context']['exception']); + } + + private function handleErrorRecord(array $record) + { + $context = $record['context']; + + $this->connector->getErrorsDispatcher()->dispatchError( + isset($context['code']) ? $context['code'] : null, + isset($context['message']) ? $context['message'] : $record['message'], + isset($context['file']) ? $context['file'] : null, + isset($context['line']) ? $context['line'] : null, + $this->options['classesPartialsTraceIgnore'] + ); + } + + private function getRecordTags(array &$record) + { + $tags = null; + if (!empty($record['context'])) { + $context = & $record['context']; + foreach ($this->options['debugTagsKeysInContext'] as $key) { + if (!empty($context[$key])) { + $tags = $context[$key]; + if ($key === 0) { + array_shift($context); + } else { + unset($context[$key]); + } + break; + } + } + } + + return $tags ?: strtolower($record['level_name']); + } + + /** + * {@inheritDoc} + */ + protected function getDefaultFormatter() + { + return new LineFormatter('%message%'); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/PsrHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/PsrHandler.php new file mode 100644 index 00000000..a99e6ab7 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/PsrHandler.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; +use Psr\Log\LoggerInterface; + +/** + * Proxies log messages to an existing PSR-3 compliant logger. + * + * @author Michael Moussa + */ +class PsrHandler extends AbstractHandler +{ + /** + * PSR-3 compliant logger + * + * @var LoggerInterface + */ + protected $logger; + + /** + * @param LoggerInterface $logger The underlying PSR-3 compliant logger to which messages will be proxied + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + */ + public function __construct(LoggerInterface $logger, $level = Logger::DEBUG, $bubble = true) + { + parent::__construct($level, $bubble); + + $this->logger = $logger; + } + + /** + * {@inheritDoc} + */ + public function handle(array $record) + { + if (!$this->isHandling($record)) { + return false; + } + + $this->logger->log(strtolower($record['level_name']), $record['message'], $record['context']); + + return false === $this->bubble; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php new file mode 100644 index 00000000..f27bb3da --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php @@ -0,0 +1,185 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; + +/** + * Sends notifications through the pushover api to mobile phones + * + * @author Sebastian Göttschkes + * @see https://www.pushover.net/api + */ +class PushoverHandler extends SocketHandler +{ + private $token; + private $users; + private $title; + private $user; + private $retry; + private $expire; + + private $highPriorityLevel; + private $emergencyLevel; + private $useFormattedMessage = false; + + /** + * All parameters that can be sent to Pushover + * @see https://pushover.net/api + * @var array + */ + private $parameterNames = array( + 'token' => true, + 'user' => true, + 'message' => true, + 'device' => true, + 'title' => true, + 'url' => true, + 'url_title' => true, + 'priority' => true, + 'timestamp' => true, + 'sound' => true, + 'retry' => true, + 'expire' => true, + 'callback' => true, + ); + + /** + * Sounds the api supports by default + * @see https://pushover.net/api#sounds + * @var array + */ + private $sounds = array( + 'pushover', 'bike', 'bugle', 'cashregister', 'classical', 'cosmic', 'falling', 'gamelan', 'incoming', + 'intermission', 'magic', 'mechanical', 'pianobar', 'siren', 'spacealarm', 'tugboat', 'alien', 'climb', + 'persistent', 'echo', 'updown', 'none', + ); + + /** + * @param string $token Pushover api token + * @param string|array $users Pushover user id or array of ids the message will be sent to + * @param string $title Title sent to the Pushover API + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + * @param bool $useSSL Whether to connect via SSL. Required when pushing messages to users that are not + * the pushover.net app owner. OpenSSL is required for this option. + * @param int $highPriorityLevel The minimum logging level at which this handler will start + * sending "high priority" requests to the Pushover API + * @param int $emergencyLevel The minimum logging level at which this handler will start + * sending "emergency" requests to the Pushover API + * @param int $retry The retry parameter specifies how often (in seconds) the Pushover servers will send the same notification to the user. + * @param int $expire The expire parameter specifies how many seconds your notification will continue to be retried for (every retry seconds). + */ + public function __construct($token, $users, $title = null, $level = Logger::CRITICAL, $bubble = true, $useSSL = true, $highPriorityLevel = Logger::CRITICAL, $emergencyLevel = Logger::EMERGENCY, $retry = 30, $expire = 25200) + { + $connectionString = $useSSL ? 'ssl://api.pushover.net:443' : 'api.pushover.net:80'; + parent::__construct($connectionString, $level, $bubble); + + $this->token = $token; + $this->users = (array) $users; + $this->title = $title ?: gethostname(); + $this->highPriorityLevel = Logger::toMonologLevel($highPriorityLevel); + $this->emergencyLevel = Logger::toMonologLevel($emergencyLevel); + $this->retry = $retry; + $this->expire = $expire; + } + + protected function generateDataStream($record) + { + $content = $this->buildContent($record); + + return $this->buildHeader($content) . $content; + } + + private function buildContent($record) + { + // Pushover has a limit of 512 characters on title and message combined. + $maxMessageLength = 512 - strlen($this->title); + + $message = ($this->useFormattedMessage) ? $record['formatted'] : $record['message']; + $message = substr($message, 0, $maxMessageLength); + + $timestamp = $record['datetime']->getTimestamp(); + + $dataArray = array( + 'token' => $this->token, + 'user' => $this->user, + 'message' => $message, + 'title' => $this->title, + 'timestamp' => $timestamp, + ); + + if (isset($record['level']) && $record['level'] >= $this->emergencyLevel) { + $dataArray['priority'] = 2; + $dataArray['retry'] = $this->retry; + $dataArray['expire'] = $this->expire; + } elseif (isset($record['level']) && $record['level'] >= $this->highPriorityLevel) { + $dataArray['priority'] = 1; + } + + // First determine the available parameters + $context = array_intersect_key($record['context'], $this->parameterNames); + $extra = array_intersect_key($record['extra'], $this->parameterNames); + + // Least important info should be merged with subsequent info + $dataArray = array_merge($extra, $context, $dataArray); + + // Only pass sounds that are supported by the API + if (isset($dataArray['sound']) && !in_array($dataArray['sound'], $this->sounds)) { + unset($dataArray['sound']); + } + + return http_build_query($dataArray); + } + + private function buildHeader($content) + { + $header = "POST /1/messages.json HTTP/1.1\r\n"; + $header .= "Host: api.pushover.net\r\n"; + $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; + $header .= "Content-Length: " . strlen($content) . "\r\n"; + $header .= "\r\n"; + + return $header; + } + + protected function write(array $record) + { + foreach ($this->users as $user) { + $this->user = $user; + + parent::write($record); + $this->closeSocket(); + } + + $this->user = null; + } + + public function setHighPriorityLevel($value) + { + $this->highPriorityLevel = $value; + } + + public function setEmergencyLevel($value) + { + $this->emergencyLevel = $value; + } + + /** + * Use the formatted message? + * @param bool $value + */ + public function useFormattedMessage($value) + { + $this->useFormattedMessage = (bool) $value; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php new file mode 100644 index 00000000..10d7f43b --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php @@ -0,0 +1,232 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Formatter\LineFormatter; +use Monolog\Formatter\FormatterInterface; +use Monolog\Logger; +use Raven_Client; + +/** + * Handler to send messages to a Sentry (https://github.com/getsentry/sentry) server + * using sentry-php (https://github.com/getsentry/sentry-php) + * + * @author Marc Abramowitz + */ +class RavenHandler extends AbstractProcessingHandler +{ + /** + * Translates Monolog log levels to Raven log levels. + */ + protected $logLevels = array( + Logger::DEBUG => Raven_Client::DEBUG, + Logger::INFO => Raven_Client::INFO, + Logger::NOTICE => Raven_Client::INFO, + Logger::WARNING => Raven_Client::WARNING, + Logger::ERROR => Raven_Client::ERROR, + Logger::CRITICAL => Raven_Client::FATAL, + Logger::ALERT => Raven_Client::FATAL, + Logger::EMERGENCY => Raven_Client::FATAL, + ); + + /** + * @var string should represent the current version of the calling + * software. Can be any string (git commit, version number) + */ + protected $release; + + /** + * @var Raven_Client the client object that sends the message to the server + */ + protected $ravenClient; + + /** + * @var LineFormatter The formatter to use for the logs generated via handleBatch() + */ + protected $batchFormatter; + + /** + * @param Raven_Client $ravenClient + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + */ + public function __construct(Raven_Client $ravenClient, $level = Logger::DEBUG, $bubble = true) + { + parent::__construct($level, $bubble); + + $this->ravenClient = $ravenClient; + } + + /** + * {@inheritdoc} + */ + public function handleBatch(array $records) + { + $level = $this->level; + + // filter records based on their level + $records = array_filter($records, function ($record) use ($level) { + return $record['level'] >= $level; + }); + + if (!$records) { + return; + } + + // the record with the highest severity is the "main" one + $record = array_reduce($records, function ($highest, $record) { + if ($record['level'] > $highest['level']) { + return $record; + } + + return $highest; + }); + + // the other ones are added as a context item + $logs = array(); + foreach ($records as $r) { + $logs[] = $this->processRecord($r); + } + + if ($logs) { + $record['context']['logs'] = (string) $this->getBatchFormatter()->formatBatch($logs); + } + + $this->handle($record); + } + + /** + * Sets the formatter for the logs generated by handleBatch(). + * + * @param FormatterInterface $formatter + */ + public function setBatchFormatter(FormatterInterface $formatter) + { + $this->batchFormatter = $formatter; + } + + /** + * Gets the formatter for the logs generated by handleBatch(). + * + * @return FormatterInterface + */ + public function getBatchFormatter() + { + if (!$this->batchFormatter) { + $this->batchFormatter = $this->getDefaultBatchFormatter(); + } + + return $this->batchFormatter; + } + + /** + * {@inheritdoc} + */ + protected function write(array $record) + { + $previousUserContext = false; + $options = array(); + $options['level'] = $this->logLevels[$record['level']]; + $options['tags'] = array(); + if (!empty($record['extra']['tags'])) { + $options['tags'] = array_merge($options['tags'], $record['extra']['tags']); + unset($record['extra']['tags']); + } + if (!empty($record['context']['tags'])) { + $options['tags'] = array_merge($options['tags'], $record['context']['tags']); + unset($record['context']['tags']); + } + if (!empty($record['context']['fingerprint'])) { + $options['fingerprint'] = $record['context']['fingerprint']; + unset($record['context']['fingerprint']); + } + if (!empty($record['context']['logger'])) { + $options['logger'] = $record['context']['logger']; + unset($record['context']['logger']); + } else { + $options['logger'] = $record['channel']; + } + foreach ($this->getExtraParameters() as $key) { + foreach (array('extra', 'context') as $source) { + if (!empty($record[$source][$key])) { + $options[$key] = $record[$source][$key]; + unset($record[$source][$key]); + } + } + } + if (!empty($record['context'])) { + $options['extra']['context'] = $record['context']; + if (!empty($record['context']['user'])) { + $previousUserContext = $this->ravenClient->context->user; + $this->ravenClient->user_context($record['context']['user']); + unset($options['extra']['context']['user']); + } + } + if (!empty($record['extra'])) { + $options['extra']['extra'] = $record['extra']; + } + + if (!empty($this->release) && !isset($options['release'])) { + $options['release'] = $this->release; + } + + if (isset($record['context']['exception']) && ($record['context']['exception'] instanceof \Exception || (PHP_VERSION_ID >= 70000 && $record['context']['exception'] instanceof \Throwable))) { + $options['message'] = $record['formatted']; + $this->ravenClient->captureException($record['context']['exception'], $options); + } else { + $this->ravenClient->captureMessage($record['formatted'], array(), $options); + } + + if ($previousUserContext !== false) { + $this->ravenClient->user_context($previousUserContext); + } + } + + /** + * {@inheritDoc} + */ + protected function getDefaultFormatter() + { + return new LineFormatter('[%channel%] %message%'); + } + + /** + * Gets the default formatter for the logs generated by handleBatch(). + * + * @return FormatterInterface + */ + protected function getDefaultBatchFormatter() + { + return new LineFormatter(); + } + + /** + * Gets extra parameters supported by Raven that can be found in "extra" and "context" + * + * @return array + */ + protected function getExtraParameters() + { + return array('contexts', 'checksum', 'release', 'event_id'); + } + + /** + * @param string $value + * @return self + */ + public function setRelease($value) + { + $this->release = $value; + + return $this; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php new file mode 100644 index 00000000..590f9965 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php @@ -0,0 +1,97 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Formatter\LineFormatter; +use Monolog\Logger; + +/** + * Logs to a Redis key using rpush + * + * usage example: + * + * $log = new Logger('application'); + * $redis = new RedisHandler(new Predis\Client("tcp://localhost:6379"), "logs", "prod"); + * $log->pushHandler($redis); + * + * @author Thomas Tourlourat + */ +class RedisHandler extends AbstractProcessingHandler +{ + private $redisClient; + private $redisKey; + protected $capSize; + + /** + * @param \Predis\Client|\Redis $redis The redis instance + * @param string $key The key name to push records to + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + * @param int $capSize Number of entries to limit list size to + */ + public function __construct($redis, $key, $level = Logger::DEBUG, $bubble = true, $capSize = false) + { + if (!(($redis instanceof \Predis\Client) || ($redis instanceof \Redis))) { + throw new \InvalidArgumentException('Predis\Client or Redis instance required'); + } + + $this->redisClient = $redis; + $this->redisKey = $key; + $this->capSize = $capSize; + + parent::__construct($level, $bubble); + } + + /** + * {@inheritDoc} + */ + protected function write(array $record) + { + if ($this->capSize) { + $this->writeCapped($record); + } else { + $this->redisClient->rpush($this->redisKey, $record["formatted"]); + } + } + + /** + * Write and cap the collection + * Writes the record to the redis list and caps its + * + * @param array $record associative record array + * @return void + */ + protected function writeCapped(array $record) + { + if ($this->redisClient instanceof \Redis) { + $this->redisClient->multi() + ->rpush($this->redisKey, $record["formatted"]) + ->ltrim($this->redisKey, -$this->capSize, -1) + ->exec(); + } else { + $redisKey = $this->redisKey; + $capSize = $this->capSize; + $this->redisClient->transaction(function ($tx) use ($record, $redisKey, $capSize) { + $tx->rpush($redisKey, $record["formatted"]); + $tx->ltrim($redisKey, -$capSize, -1); + }); + } + } + + /** + * {@inheritDoc} + */ + protected function getDefaultFormatter() + { + return new LineFormatter(); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php new file mode 100644 index 00000000..65073ffe --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php @@ -0,0 +1,144 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use RollbarNotifier; +use Exception; +use Monolog\Logger; + +/** + * Sends errors to Rollbar + * + * If the context data contains a `payload` key, that is used as an array + * of payload options to RollbarNotifier's report_message/report_exception methods. + * + * Rollbar's context info will contain the context + extra keys from the log record + * merged, and then on top of that a few keys: + * + * - level (rollbar level name) + * - monolog_level (monolog level name, raw level, as rollbar only has 5 but monolog 8) + * - channel + * - datetime (unix timestamp) + * + * @author Paul Statezny + */ +class RollbarHandler extends AbstractProcessingHandler +{ + /** + * Rollbar notifier + * + * @var RollbarNotifier + */ + protected $rollbarNotifier; + + protected $levelMap = array( + Logger::DEBUG => 'debug', + Logger::INFO => 'info', + Logger::NOTICE => 'info', + Logger::WARNING => 'warning', + Logger::ERROR => 'error', + Logger::CRITICAL => 'critical', + Logger::ALERT => 'critical', + Logger::EMERGENCY => 'critical', + ); + + /** + * Records whether any log records have been added since the last flush of the rollbar notifier + * + * @var bool + */ + private $hasRecords = false; + + protected $initialized = false; + + /** + * @param RollbarNotifier $rollbarNotifier RollbarNotifier object constructed with valid token + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + */ + public function __construct(RollbarNotifier $rollbarNotifier, $level = Logger::ERROR, $bubble = true) + { + $this->rollbarNotifier = $rollbarNotifier; + + parent::__construct($level, $bubble); + } + + /** + * {@inheritdoc} + */ + protected function write(array $record) + { + if (!$this->initialized) { + // __destructor() doesn't get called on Fatal errors + register_shutdown_function(array($this, 'close')); + $this->initialized = true; + } + + $context = $record['context']; + $payload = array(); + if (isset($context['payload'])) { + $payload = $context['payload']; + unset($context['payload']); + } + $context = array_merge($context, $record['extra'], array( + 'level' => $this->levelMap[$record['level']], + 'monolog_level' => $record['level_name'], + 'channel' => $record['channel'], + 'datetime' => $record['datetime']->format('U'), + )); + + if (isset($context['exception']) && $context['exception'] instanceof Exception) { + $payload['level'] = $context['level']; + $exception = $context['exception']; + unset($context['exception']); + + $this->rollbarNotifier->report_exception($exception, $context, $payload); + } else { + $this->rollbarNotifier->report_message( + $record['message'], + $context['level'], + $context, + $payload + ); + } + + $this->hasRecords = true; + } + + public function flush() + { + if ($this->hasRecords) { + $this->rollbarNotifier->flush(); + $this->hasRecords = false; + } + } + + /** + * {@inheritdoc} + */ + public function close() + { + $this->flush(); + } + + /** + * {@inheritdoc} + */ + public function reset() + { + $this->flush(); + + parent::reset(); + } + + +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php new file mode 100644 index 00000000..ae2309f8 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php @@ -0,0 +1,190 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; + +/** + * Stores logs to files that are rotated every day and a limited number of files are kept. + * + * This rotation is only intended to be used as a workaround. Using logrotate to + * handle the rotation is strongly encouraged when you can use it. + * + * @author Christophe Coevoet + * @author Jordi Boggiano + */ +class RotatingFileHandler extends StreamHandler +{ + const FILE_PER_DAY = 'Y-m-d'; + const FILE_PER_MONTH = 'Y-m'; + const FILE_PER_YEAR = 'Y'; + + protected $filename; + protected $maxFiles; + protected $mustRotate; + protected $nextRotation; + protected $filenameFormat; + protected $dateFormat; + + /** + * @param string $filename + * @param int $maxFiles The maximal amount of files to keep (0 means unlimited) + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + * @param int|null $filePermission Optional file permissions (default (0644) are only for owner read/write) + * @param bool $useLocking Try to lock log file before doing any writes + */ + public function __construct($filename, $maxFiles = 0, $level = Logger::DEBUG, $bubble = true, $filePermission = null, $useLocking = false) + { + $this->filename = $filename; + $this->maxFiles = (int) $maxFiles; + $this->nextRotation = new \DateTime('tomorrow'); + $this->filenameFormat = '{filename}-{date}'; + $this->dateFormat = 'Y-m-d'; + + parent::__construct($this->getTimedFilename(), $level, $bubble, $filePermission, $useLocking); + } + + /** + * {@inheritdoc} + */ + public function close() + { + parent::close(); + + if (true === $this->mustRotate) { + $this->rotate(); + } + } + + /** + * {@inheritdoc} + */ + public function reset() + { + parent::reset(); + + if (true === $this->mustRotate) { + $this->rotate(); + } + } + + public function setFilenameFormat($filenameFormat, $dateFormat) + { + if (!preg_match('{^Y(([/_.-]?m)([/_.-]?d)?)?$}', $dateFormat)) { + trigger_error( + 'Invalid date format - format must be one of '. + 'RotatingFileHandler::FILE_PER_DAY ("Y-m-d"), RotatingFileHandler::FILE_PER_MONTH ("Y-m") '. + 'or RotatingFileHandler::FILE_PER_YEAR ("Y"), or you can set one of the '. + 'date formats using slashes, underscores and/or dots instead of dashes.', + E_USER_DEPRECATED + ); + } + if (substr_count($filenameFormat, '{date}') === 0) { + trigger_error( + 'Invalid filename format - format should contain at least `{date}`, because otherwise rotating is impossible.', + E_USER_DEPRECATED + ); + } + $this->filenameFormat = $filenameFormat; + $this->dateFormat = $dateFormat; + $this->url = $this->getTimedFilename(); + $this->close(); + } + + /** + * {@inheritdoc} + */ + protected function write(array $record) + { + // on the first record written, if the log is new, we should rotate (once per day) + if (null === $this->mustRotate) { + $this->mustRotate = !file_exists($this->url); + } + + if ($this->nextRotation < $record['datetime']) { + $this->mustRotate = true; + $this->close(); + } + + parent::write($record); + } + + /** + * Rotates the files. + */ + protected function rotate() + { + // update filename + $this->url = $this->getTimedFilename(); + $this->nextRotation = new \DateTime('tomorrow'); + + // skip GC of old logs if files are unlimited + if (0 === $this->maxFiles) { + return; + } + + $logFiles = glob($this->getGlobPattern()); + if ($this->maxFiles >= count($logFiles)) { + // no files to remove + return; + } + + // Sorting the files by name to remove the older ones + usort($logFiles, function ($a, $b) { + return strcmp($b, $a); + }); + + foreach (array_slice($logFiles, $this->maxFiles) as $file) { + if (is_writable($file)) { + // suppress errors here as unlink() might fail if two processes + // are cleaning up/rotating at the same time + set_error_handler(function ($errno, $errstr, $errfile, $errline) {}); + unlink($file); + restore_error_handler(); + } + } + + $this->mustRotate = false; + } + + protected function getTimedFilename() + { + $fileInfo = pathinfo($this->filename); + $timedFilename = str_replace( + array('{filename}', '{date}'), + array($fileInfo['filename'], date($this->dateFormat)), + $fileInfo['dirname'] . '/' . $this->filenameFormat + ); + + if (!empty($fileInfo['extension'])) { + $timedFilename .= '.'.$fileInfo['extension']; + } + + return $timedFilename; + } + + protected function getGlobPattern() + { + $fileInfo = pathinfo($this->filename); + $glob = str_replace( + array('{filename}', '{date}'), + array($fileInfo['filename'], '[0-9][0-9][0-9][0-9]*'), + $fileInfo['dirname'] . '/' . $this->filenameFormat + ); + if (!empty($fileInfo['extension'])) { + $glob .= '.'.$fileInfo['extension']; + } + + return $glob; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php new file mode 100644 index 00000000..9509ae37 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php @@ -0,0 +1,82 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +/** + * Sampling handler + * + * A sampled event stream can be useful for logging high frequency events in + * a production environment where you only need an idea of what is happening + * and are not concerned with capturing every occurrence. Since the decision to + * handle or not handle a particular event is determined randomly, the + * resulting sampled log is not guaranteed to contain 1/N of the events that + * occurred in the application, but based on the Law of large numbers, it will + * tend to be close to this ratio with a large number of attempts. + * + * @author Bryan Davis + * @author Kunal Mehta + */ +class SamplingHandler extends AbstractHandler +{ + /** + * @var callable|HandlerInterface $handler + */ + protected $handler; + + /** + * @var int $factor + */ + protected $factor; + + /** + * @param callable|HandlerInterface $handler Handler or factory callable($record, $fingersCrossedHandler). + * @param int $factor Sample factor + */ + public function __construct($handler, $factor) + { + parent::__construct(); + $this->handler = $handler; + $this->factor = $factor; + + if (!$this->handler instanceof HandlerInterface && !is_callable($this->handler)) { + throw new \RuntimeException("The given handler (".json_encode($this->handler).") is not a callable nor a Monolog\Handler\HandlerInterface object"); + } + } + + public function isHandling(array $record) + { + return $this->handler->isHandling($record); + } + + public function handle(array $record) + { + if ($this->isHandling($record) && mt_rand(1, $this->factor) === 1) { + // The same logic as in FingersCrossedHandler + if (!$this->handler instanceof HandlerInterface) { + $this->handler = call_user_func($this->handler, $record, $this); + if (!$this->handler instanceof HandlerInterface) { + throw new \RuntimeException("The factory callable should return a HandlerInterface"); + } + } + + if ($this->processors) { + foreach ($this->processors as $processor) { + $record = call_user_func($processor, $record); + } + } + + $this->handler->handle($record); + } + + return false === $this->bubble; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php b/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php new file mode 100644 index 00000000..e55e0e2e --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php @@ -0,0 +1,294 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler\Slack; + +use Monolog\Logger; +use Monolog\Formatter\NormalizerFormatter; +use Monolog\Formatter\FormatterInterface; + +/** + * Slack record utility helping to log to Slack webhooks or API. + * + * @author Greg Kedzierski + * @author Haralan Dobrev + * @see https://api.slack.com/incoming-webhooks + * @see https://api.slack.com/docs/message-attachments + */ +class SlackRecord +{ + const COLOR_DANGER = 'danger'; + + const COLOR_WARNING = 'warning'; + + const COLOR_GOOD = 'good'; + + const COLOR_DEFAULT = '#e3e4e6'; + + /** + * Slack channel (encoded ID or name) + * @var string|null + */ + private $channel; + + /** + * Name of a bot + * @var string|null + */ + private $username; + + /** + * User icon e.g. 'ghost', 'http://example.com/user.png' + * @var string + */ + private $userIcon; + + /** + * Whether the message should be added to Slack as attachment (plain text otherwise) + * @var bool + */ + private $useAttachment; + + /** + * Whether the the context/extra messages added to Slack as attachments are in a short style + * @var bool + */ + private $useShortAttachment; + + /** + * Whether the attachment should include context and extra data + * @var bool + */ + private $includeContextAndExtra; + + /** + * Dot separated list of fields to exclude from slack message. E.g. ['context.field1', 'extra.field2'] + * @var array + */ + private $excludeFields; + + /** + * @var FormatterInterface + */ + private $formatter; + + /** + * @var NormalizerFormatter + */ + private $normalizerFormatter; + + public function __construct($channel = null, $username = null, $useAttachment = true, $userIcon = null, $useShortAttachment = false, $includeContextAndExtra = false, array $excludeFields = array(), FormatterInterface $formatter = null) + { + $this->channel = $channel; + $this->username = $username; + $this->userIcon = trim($userIcon, ':'); + $this->useAttachment = $useAttachment; + $this->useShortAttachment = $useShortAttachment; + $this->includeContextAndExtra = $includeContextAndExtra; + $this->excludeFields = $excludeFields; + $this->formatter = $formatter; + + if ($this->includeContextAndExtra) { + $this->normalizerFormatter = new NormalizerFormatter(); + } + } + + public function getSlackData(array $record) + { + $dataArray = array(); + $record = $this->excludeFields($record); + + if ($this->username) { + $dataArray['username'] = $this->username; + } + + if ($this->channel) { + $dataArray['channel'] = $this->channel; + } + + if ($this->formatter && !$this->useAttachment) { + $message = $this->formatter->format($record); + } else { + $message = $record['message']; + } + + if ($this->useAttachment) { + $attachment = array( + 'fallback' => $message, + 'text' => $message, + 'color' => $this->getAttachmentColor($record['level']), + 'fields' => array(), + 'mrkdwn_in' => array('fields'), + 'ts' => $record['datetime']->getTimestamp() + ); + + if ($this->useShortAttachment) { + $attachment['title'] = $record['level_name']; + } else { + $attachment['title'] = 'Message'; + $attachment['fields'][] = $this->generateAttachmentField('Level', $record['level_name']); + } + + + if ($this->includeContextAndExtra) { + foreach (array('extra', 'context') as $key) { + if (empty($record[$key])) { + continue; + } + + if ($this->useShortAttachment) { + $attachment['fields'][] = $this->generateAttachmentField( + $key, + $record[$key] + ); + } else { + // Add all extra fields as individual fields in attachment + $attachment['fields'] = array_merge( + $attachment['fields'], + $this->generateAttachmentFields($record[$key]) + ); + } + } + } + + $dataArray['attachments'] = array($attachment); + } else { + $dataArray['text'] = $message; + } + + if ($this->userIcon) { + if (filter_var($this->userIcon, FILTER_VALIDATE_URL)) { + $dataArray['icon_url'] = $this->userIcon; + } else { + $dataArray['icon_emoji'] = ":{$this->userIcon}:"; + } + } + + return $dataArray; + } + + /** + * Returned a Slack message attachment color associated with + * provided level. + * + * @param int $level + * @return string + */ + public function getAttachmentColor($level) + { + switch (true) { + case $level >= Logger::ERROR: + return self::COLOR_DANGER; + case $level >= Logger::WARNING: + return self::COLOR_WARNING; + case $level >= Logger::INFO: + return self::COLOR_GOOD; + default: + return self::COLOR_DEFAULT; + } + } + + /** + * Stringifies an array of key/value pairs to be used in attachment fields + * + * @param array $fields + * + * @return string + */ + public function stringify($fields) + { + $normalized = $this->normalizerFormatter->format($fields); + $prettyPrintFlag = defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : 128; + + $hasSecondDimension = count(array_filter($normalized, 'is_array')); + $hasNonNumericKeys = !count(array_filter(array_keys($normalized), 'is_numeric')); + + return $hasSecondDimension || $hasNonNumericKeys + ? json_encode($normalized, $prettyPrintFlag) + : json_encode($normalized); + } + + /** + * Sets the formatter + * + * @param FormatterInterface $formatter + */ + public function setFormatter(FormatterInterface $formatter) + { + $this->formatter = $formatter; + } + + /** + * Generates attachment field + * + * @param string $title + * @param string|array $value + * + * @return array + */ + private function generateAttachmentField($title, $value) + { + $value = is_array($value) + ? sprintf('```%s```', $this->stringify($value)) + : $value; + + return array( + 'title' => ucfirst($title), + 'value' => $value, + 'short' => false + ); + } + + /** + * Generates a collection of attachment fields from array + * + * @param array $data + * + * @return array + */ + private function generateAttachmentFields(array $data) + { + $fields = array(); + foreach ($this->normalizerFormatter->format($data) as $key => $value) { + $fields[] = $this->generateAttachmentField($key, $value); + } + + return $fields; + } + + /** + * Get a copy of record with fields excluded according to $this->excludeFields + * + * @param array $record + * + * @return array + */ + private function excludeFields(array $record) + { + foreach ($this->excludeFields as $field) { + $keys = explode('.', $field); + $node = &$record; + $lastKey = end($keys); + foreach ($keys as $key) { + if (!isset($node[$key])) { + break; + } + if ($lastKey === $key) { + unset($node[$key]); + break; + } + $node = &$node[$key]; + } + } + + return $record; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php new file mode 100644 index 00000000..45d634f4 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php @@ -0,0 +1,220 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Formatter\FormatterInterface; +use Monolog\Logger; +use Monolog\Handler\Slack\SlackRecord; + +/** + * Sends notifications through Slack API + * + * @author Greg Kedzierski + * @see https://api.slack.com/ + */ +class SlackHandler extends SocketHandler +{ + /** + * Slack API token + * @var string + */ + private $token; + + /** + * Instance of the SlackRecord util class preparing data for Slack API. + * @var SlackRecord + */ + private $slackRecord; + + /** + * @param string $token Slack API token + * @param string $channel Slack channel (encoded ID or name) + * @param string|null $username Name of a bot + * @param bool $useAttachment Whether the message should be added to Slack as attachment (plain text otherwise) + * @param string|null $iconEmoji The emoji name to use (or null) + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + * @param bool $useShortAttachment Whether the the context/extra messages added to Slack as attachments are in a short style + * @param bool $includeContextAndExtra Whether the attachment should include context and extra data + * @param array $excludeFields Dot separated list of fields to exclude from slack message. E.g. ['context.field1', 'extra.field2'] + * @throws MissingExtensionException If no OpenSSL PHP extension configured + */ + public function __construct($token, $channel, $username = null, $useAttachment = true, $iconEmoji = null, $level = Logger::CRITICAL, $bubble = true, $useShortAttachment = false, $includeContextAndExtra = false, array $excludeFields = array()) + { + if (!extension_loaded('openssl')) { + throw new MissingExtensionException('The OpenSSL PHP extension is required to use the SlackHandler'); + } + + parent::__construct('ssl://slack.com:443', $level, $bubble); + + $this->slackRecord = new SlackRecord( + $channel, + $username, + $useAttachment, + $iconEmoji, + $useShortAttachment, + $includeContextAndExtra, + $excludeFields, + $this->formatter + ); + + $this->token = $token; + } + + public function getSlackRecord() + { + return $this->slackRecord; + } + + public function getToken() + { + return $this->token; + } + + /** + * {@inheritdoc} + * + * @param array $record + * @return string + */ + protected function generateDataStream($record) + { + $content = $this->buildContent($record); + + return $this->buildHeader($content) . $content; + } + + /** + * Builds the body of API call + * + * @param array $record + * @return string + */ + private function buildContent($record) + { + $dataArray = $this->prepareContentData($record); + + return http_build_query($dataArray); + } + + /** + * Prepares content data + * + * @param array $record + * @return array + */ + protected function prepareContentData($record) + { + $dataArray = $this->slackRecord->getSlackData($record); + $dataArray['token'] = $this->token; + + if (!empty($dataArray['attachments'])) { + $dataArray['attachments'] = json_encode($dataArray['attachments']); + } + + return $dataArray; + } + + /** + * Builds the header of the API Call + * + * @param string $content + * @return string + */ + private function buildHeader($content) + { + $header = "POST /api/chat.postMessage HTTP/1.1\r\n"; + $header .= "Host: slack.com\r\n"; + $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; + $header .= "Content-Length: " . strlen($content) . "\r\n"; + $header .= "\r\n"; + + return $header; + } + + /** + * {@inheritdoc} + * + * @param array $record + */ + protected function write(array $record) + { + parent::write($record); + $this->finalizeWrite(); + } + + /** + * Finalizes the request by reading some bytes and then closing the socket + * + * If we do not read some but close the socket too early, slack sometimes + * drops the request entirely. + */ + protected function finalizeWrite() + { + $res = $this->getResource(); + if (is_resource($res)) { + @fread($res, 2048); + } + $this->closeSocket(); + } + + /** + * Returned a Slack message attachment color associated with + * provided level. + * + * @param int $level + * @return string + * @deprecated Use underlying SlackRecord instead + */ + protected function getAttachmentColor($level) + { + trigger_error( + 'SlackHandler::getAttachmentColor() is deprecated. Use underlying SlackRecord instead.', + E_USER_DEPRECATED + ); + + return $this->slackRecord->getAttachmentColor($level); + } + + /** + * Stringifies an array of key/value pairs to be used in attachment fields + * + * @param array $fields + * @return string + * @deprecated Use underlying SlackRecord instead + */ + protected function stringify($fields) + { + trigger_error( + 'SlackHandler::stringify() is deprecated. Use underlying SlackRecord instead.', + E_USER_DEPRECATED + ); + + return $this->slackRecord->stringify($fields); + } + + public function setFormatter(FormatterInterface $formatter) + { + parent::setFormatter($formatter); + $this->slackRecord->setFormatter($formatter); + + return $this; + } + + public function getFormatter() + { + $formatter = parent::getFormatter(); + $this->slackRecord->setFormatter($formatter); + + return $formatter; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php new file mode 100644 index 00000000..1ef85fae --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php @@ -0,0 +1,120 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Formatter\FormatterInterface; +use Monolog\Logger; +use Monolog\Handler\Slack\SlackRecord; + +/** + * Sends notifications through Slack Webhooks + * + * @author Haralan Dobrev + * @see https://api.slack.com/incoming-webhooks + */ +class SlackWebhookHandler extends AbstractProcessingHandler +{ + /** + * Slack Webhook token + * @var string + */ + private $webhookUrl; + + /** + * Instance of the SlackRecord util class preparing data for Slack API. + * @var SlackRecord + */ + private $slackRecord; + + /** + * @param string $webhookUrl Slack Webhook URL + * @param string|null $channel Slack channel (encoded ID or name) + * @param string|null $username Name of a bot + * @param bool $useAttachment Whether the message should be added to Slack as attachment (plain text otherwise) + * @param string|null $iconEmoji The emoji name to use (or null) + * @param bool $useShortAttachment Whether the the context/extra messages added to Slack as attachments are in a short style + * @param bool $includeContextAndExtra Whether the attachment should include context and extra data + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + * @param array $excludeFields Dot separated list of fields to exclude from slack message. E.g. ['context.field1', 'extra.field2'] + */ + public function __construct($webhookUrl, $channel = null, $username = null, $useAttachment = true, $iconEmoji = null, $useShortAttachment = false, $includeContextAndExtra = false, $level = Logger::CRITICAL, $bubble = true, array $excludeFields = array()) + { + parent::__construct($level, $bubble); + + $this->webhookUrl = $webhookUrl; + + $this->slackRecord = new SlackRecord( + $channel, + $username, + $useAttachment, + $iconEmoji, + $useShortAttachment, + $includeContextAndExtra, + $excludeFields, + $this->formatter + ); + } + + public function getSlackRecord() + { + return $this->slackRecord; + } + + public function getWebhookUrl() + { + return $this->webhookUrl; + } + + /** + * {@inheritdoc} + * + * @param array $record + */ + protected function write(array $record) + { + $postData = $this->slackRecord->getSlackData($record); + $postString = json_encode($postData); + + $ch = curl_init(); + $options = array( + CURLOPT_URL => $this->webhookUrl, + CURLOPT_POST => true, + CURLOPT_RETURNTRANSFER => true, + CURLOPT_HTTPHEADER => array('Content-type: application/json'), + CURLOPT_POSTFIELDS => $postString + ); + if (defined('CURLOPT_SAFE_UPLOAD')) { + $options[CURLOPT_SAFE_UPLOAD] = true; + } + + curl_setopt_array($ch, $options); + + Curl\Util::execute($ch); + } + + public function setFormatter(FormatterInterface $formatter) + { + parent::setFormatter($formatter); + $this->slackRecord->setFormatter($formatter); + + return $this; + } + + public function getFormatter() + { + $formatter = parent::getFormatter(); + $this->slackRecord->setFormatter($formatter); + + return $formatter; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php new file mode 100644 index 00000000..baead525 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php @@ -0,0 +1,80 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; + +/** + * Sends notifications through Slack's Slackbot + * + * @author Haralan Dobrev + * @see https://slack.com/apps/A0F81R8ET-slackbot + */ +class SlackbotHandler extends AbstractProcessingHandler +{ + /** + * The slug of the Slack team + * @var string + */ + private $slackTeam; + + /** + * Slackbot token + * @var string + */ + private $token; + + /** + * Slack channel name + * @var string + */ + private $channel; + + /** + * @param string $slackTeam Slack team slug + * @param string $token Slackbot token + * @param string $channel Slack channel (encoded ID or name) + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + */ + public function __construct($slackTeam, $token, $channel, $level = Logger::CRITICAL, $bubble = true) + { + parent::__construct($level, $bubble); + + $this->slackTeam = $slackTeam; + $this->token = $token; + $this->channel = $channel; + } + + /** + * {@inheritdoc} + * + * @param array $record + */ + protected function write(array $record) + { + $slackbotUrl = sprintf( + 'https://%s.slack.com/services/hooks/slackbot?token=%s&channel=%s', + $this->slackTeam, + $this->token, + $this->channel + ); + + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $slackbotUrl); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, $record['message']); + + Curl\Util::execute($ch); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php new file mode 100644 index 00000000..db50d97f --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php @@ -0,0 +1,385 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; + +/** + * Stores to any socket - uses fsockopen() or pfsockopen(). + * + * @author Pablo de Leon Belloc + * @see http://php.net/manual/en/function.fsockopen.php + */ +class SocketHandler extends AbstractProcessingHandler +{ + private $connectionString; + private $connectionTimeout; + private $resource; + private $timeout = 0; + private $writingTimeout = 10; + private $lastSentBytes = null; + private $chunkSize = null; + private $persistent = false; + private $errno; + private $errstr; + private $lastWritingAt; + + /** + * @param string $connectionString Socket connection string + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + */ + public function __construct($connectionString, $level = Logger::DEBUG, $bubble = true) + { + parent::__construct($level, $bubble); + $this->connectionString = $connectionString; + $this->connectionTimeout = (float) ini_get('default_socket_timeout'); + } + + /** + * Connect (if necessary) and write to the socket + * + * @param array $record + * + * @throws \UnexpectedValueException + * @throws \RuntimeException + */ + protected function write(array $record) + { + $this->connectIfNotConnected(); + $data = $this->generateDataStream($record); + $this->writeToSocket($data); + } + + /** + * We will not close a PersistentSocket instance so it can be reused in other requests. + */ + public function close() + { + if (!$this->isPersistent()) { + $this->closeSocket(); + } + } + + /** + * Close socket, if open + */ + public function closeSocket() + { + if (is_resource($this->resource)) { + fclose($this->resource); + $this->resource = null; + } + } + + /** + * Set socket connection to nbe persistent. It only has effect before the connection is initiated. + * + * @param bool $persistent + */ + public function setPersistent($persistent) + { + $this->persistent = (bool) $persistent; + } + + /** + * Set connection timeout. Only has effect before we connect. + * + * @param float $seconds + * + * @see http://php.net/manual/en/function.fsockopen.php + */ + public function setConnectionTimeout($seconds) + { + $this->validateTimeout($seconds); + $this->connectionTimeout = (float) $seconds; + } + + /** + * Set write timeout. Only has effect before we connect. + * + * @param float $seconds + * + * @see http://php.net/manual/en/function.stream-set-timeout.php + */ + public function setTimeout($seconds) + { + $this->validateTimeout($seconds); + $this->timeout = (float) $seconds; + } + + /** + * Set writing timeout. Only has effect during connection in the writing cycle. + * + * @param float $seconds 0 for no timeout + */ + public function setWritingTimeout($seconds) + { + $this->validateTimeout($seconds); + $this->writingTimeout = (float) $seconds; + } + + /** + * Set chunk size. Only has effect during connection in the writing cycle. + * + * @param float $bytes + */ + public function setChunkSize($bytes) + { + $this->chunkSize = $bytes; + } + + /** + * Get current connection string + * + * @return string + */ + public function getConnectionString() + { + return $this->connectionString; + } + + /** + * Get persistent setting + * + * @return bool + */ + public function isPersistent() + { + return $this->persistent; + } + + /** + * Get current connection timeout setting + * + * @return float + */ + public function getConnectionTimeout() + { + return $this->connectionTimeout; + } + + /** + * Get current in-transfer timeout + * + * @return float + */ + public function getTimeout() + { + return $this->timeout; + } + + /** + * Get current local writing timeout + * + * @return float + */ + public function getWritingTimeout() + { + return $this->writingTimeout; + } + + /** + * Get current chunk size + * + * @return float + */ + public function getChunkSize() + { + return $this->chunkSize; + } + + /** + * Check to see if the socket is currently available. + * + * UDP might appear to be connected but might fail when writing. See http://php.net/fsockopen for details. + * + * @return bool + */ + public function isConnected() + { + return is_resource($this->resource) + && !feof($this->resource); // on TCP - other party can close connection. + } + + /** + * Wrapper to allow mocking + */ + protected function pfsockopen() + { + return @pfsockopen($this->connectionString, -1, $this->errno, $this->errstr, $this->connectionTimeout); + } + + /** + * Wrapper to allow mocking + */ + protected function fsockopen() + { + return @fsockopen($this->connectionString, -1, $this->errno, $this->errstr, $this->connectionTimeout); + } + + /** + * Wrapper to allow mocking + * + * @see http://php.net/manual/en/function.stream-set-timeout.php + */ + protected function streamSetTimeout() + { + $seconds = floor($this->timeout); + $microseconds = round(($this->timeout - $seconds) * 1e6); + + return stream_set_timeout($this->resource, $seconds, $microseconds); + } + + /** + * Wrapper to allow mocking + * + * @see http://php.net/manual/en/function.stream-set-chunk-size.php + */ + protected function streamSetChunkSize() + { + return stream_set_chunk_size($this->resource, $this->chunkSize); + } + + /** + * Wrapper to allow mocking + */ + protected function fwrite($data) + { + return @fwrite($this->resource, $data); + } + + /** + * Wrapper to allow mocking + */ + protected function streamGetMetadata() + { + return stream_get_meta_data($this->resource); + } + + private function validateTimeout($value) + { + $ok = filter_var($value, FILTER_VALIDATE_FLOAT); + if ($ok === false || $value < 0) { + throw new \InvalidArgumentException("Timeout must be 0 or a positive float (got $value)"); + } + } + + private function connectIfNotConnected() + { + if ($this->isConnected()) { + return; + } + $this->connect(); + } + + protected function generateDataStream($record) + { + return (string) $record['formatted']; + } + + /** + * @return resource|null + */ + protected function getResource() + { + return $this->resource; + } + + private function connect() + { + $this->createSocketResource(); + $this->setSocketTimeout(); + $this->setStreamChunkSize(); + } + + private function createSocketResource() + { + if ($this->isPersistent()) { + $resource = $this->pfsockopen(); + } else { + $resource = $this->fsockopen(); + } + if (!$resource) { + throw new \UnexpectedValueException("Failed connecting to $this->connectionString ($this->errno: $this->errstr)"); + } + $this->resource = $resource; + } + + private function setSocketTimeout() + { + if (!$this->streamSetTimeout()) { + throw new \UnexpectedValueException("Failed setting timeout with stream_set_timeout()"); + } + } + + private function setStreamChunkSize() + { + if ($this->chunkSize && !$this->streamSetChunkSize()) { + throw new \UnexpectedValueException("Failed setting chunk size with stream_set_chunk_size()"); + } + } + + private function writeToSocket($data) + { + $length = strlen($data); + $sent = 0; + $this->lastSentBytes = $sent; + while ($this->isConnected() && $sent < $length) { + if (0 == $sent) { + $chunk = $this->fwrite($data); + } else { + $chunk = $this->fwrite(substr($data, $sent)); + } + if ($chunk === false) { + throw new \RuntimeException("Could not write to socket"); + } + $sent += $chunk; + $socketInfo = $this->streamGetMetadata(); + if ($socketInfo['timed_out']) { + throw new \RuntimeException("Write timed-out"); + } + + if ($this->writingIsTimedOut($sent)) { + throw new \RuntimeException("Write timed-out, no data sent for `{$this->writingTimeout}` seconds, probably we got disconnected (sent $sent of $length)"); + } + } + if (!$this->isConnected() && $sent < $length) { + throw new \RuntimeException("End-of-file reached, probably we got disconnected (sent $sent of $length)"); + } + } + + private function writingIsTimedOut($sent) + { + $writingTimeout = (int) floor($this->writingTimeout); + if (0 === $writingTimeout) { + return false; + } + + if ($sent !== $this->lastSentBytes) { + $this->lastWritingAt = time(); + $this->lastSentBytes = $sent; + + return false; + } else { + usleep(100); + } + + if ((time() - $this->lastWritingAt) >= $writingTimeout) { + $this->closeSocket(); + + return true; + } + + return false; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php new file mode 100644 index 00000000..a35b7e4c --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php @@ -0,0 +1,176 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; + +/** + * Stores to any stream resource + * + * Can be used to store into php://stderr, remote and local files, etc. + * + * @author Jordi Boggiano + */ +class StreamHandler extends AbstractProcessingHandler +{ + protected $stream; + protected $url; + private $errorMessage; + protected $filePermission; + protected $useLocking; + private $dirCreated; + + /** + * @param resource|string $stream + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + * @param int|null $filePermission Optional file permissions (default (0644) are only for owner read/write) + * @param bool $useLocking Try to lock log file before doing any writes + * + * @throws \Exception If a missing directory is not buildable + * @throws \InvalidArgumentException If stream is not a resource or string + */ + public function __construct($stream, $level = Logger::DEBUG, $bubble = true, $filePermission = null, $useLocking = false) + { + parent::__construct($level, $bubble); + if (is_resource($stream)) { + $this->stream = $stream; + } elseif (is_string($stream)) { + $this->url = $stream; + } else { + throw new \InvalidArgumentException('A stream must either be a resource or a string.'); + } + + $this->filePermission = $filePermission; + $this->useLocking = $useLocking; + } + + /** + * {@inheritdoc} + */ + public function close() + { + if ($this->url && is_resource($this->stream)) { + fclose($this->stream); + } + $this->stream = null; + } + + /** + * Return the currently active stream if it is open + * + * @return resource|null + */ + public function getStream() + { + return $this->stream; + } + + /** + * Return the stream URL if it was configured with a URL and not an active resource + * + * @return string|null + */ + public function getUrl() + { + return $this->url; + } + + /** + * {@inheritdoc} + */ + protected function write(array $record) + { + if (!is_resource($this->stream)) { + if (null === $this->url || '' === $this->url) { + throw new \LogicException('Missing stream url, the stream can not be opened. This may be caused by a premature call to close().'); + } + $this->createDir(); + $this->errorMessage = null; + set_error_handler(array($this, 'customErrorHandler')); + $this->stream = fopen($this->url, 'a'); + if ($this->filePermission !== null) { + @chmod($this->url, $this->filePermission); + } + restore_error_handler(); + if (!is_resource($this->stream)) { + $this->stream = null; + throw new \UnexpectedValueException(sprintf('The stream or file "%s" could not be opened: '.$this->errorMessage, $this->url)); + } + } + + if ($this->useLocking) { + // ignoring errors here, there's not much we can do about them + flock($this->stream, LOCK_EX); + } + + $this->streamWrite($this->stream, $record); + + if ($this->useLocking) { + flock($this->stream, LOCK_UN); + } + } + + /** + * Write to stream + * @param resource $stream + * @param array $record + */ + protected function streamWrite($stream, array $record) + { + fwrite($stream, (string) $record['formatted']); + } + + private function customErrorHandler($code, $msg) + { + $this->errorMessage = preg_replace('{^(fopen|mkdir)\(.*?\): }', '', $msg); + } + + /** + * @param string $stream + * + * @return null|string + */ + private function getDirFromStream($stream) + { + $pos = strpos($stream, '://'); + if ($pos === false) { + return dirname($stream); + } + + if ('file://' === substr($stream, 0, 7)) { + return dirname(substr($stream, 7)); + } + + return; + } + + private function createDir() + { + // Do not try to create dir if it has already been tried. + if ($this->dirCreated) { + return; + } + + $dir = $this->getDirFromStream($this->url); + if (null !== $dir && !is_dir($dir)) { + $this->errorMessage = null; + set_error_handler(array($this, 'customErrorHandler')); + $status = mkdir($dir, 0777, true); + restore_error_handler(); + if (false === $status && !is_dir($dir)) { + throw new \UnexpectedValueException(sprintf('There is no existing directory at "%s" and its not buildable: '.$this->errorMessage, $dir)); + } + } + $this->dirCreated = true; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php new file mode 100644 index 00000000..ac7b16ff --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php @@ -0,0 +1,111 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; +use Monolog\Formatter\FormatterInterface; +use Monolog\Formatter\LineFormatter; +use Swift; + +/** + * SwiftMailerHandler uses Swift_Mailer to send the emails + * + * @author Gyula Sallai + */ +class SwiftMailerHandler extends MailHandler +{ + protected $mailer; + private $messageTemplate; + + /** + * @param \Swift_Mailer $mailer The mailer to use + * @param callable|\Swift_Message $message An example message for real messages, only the body will be replaced + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + */ + public function __construct(\Swift_Mailer $mailer, $message, $level = Logger::ERROR, $bubble = true) + { + parent::__construct($level, $bubble); + + $this->mailer = $mailer; + $this->messageTemplate = $message; + } + + /** + * {@inheritdoc} + */ + protected function send($content, array $records) + { + $this->mailer->send($this->buildMessage($content, $records)); + } + + /** + * Gets the formatter for the Swift_Message subject. + * + * @param string $format The format of the subject + * @return FormatterInterface + */ + protected function getSubjectFormatter($format) + { + return new LineFormatter($format); + } + + /** + * Creates instance of Swift_Message to be sent + * + * @param string $content formatted email body to be sent + * @param array $records Log records that formed the content + * @return \Swift_Message + */ + protected function buildMessage($content, array $records) + { + $message = null; + if ($this->messageTemplate instanceof \Swift_Message) { + $message = clone $this->messageTemplate; + $message->generateId(); + } elseif (is_callable($this->messageTemplate)) { + $message = call_user_func($this->messageTemplate, $content, $records); + } + + if (!$message instanceof \Swift_Message) { + throw new \InvalidArgumentException('Could not resolve message as instance of Swift_Message or a callable returning it'); + } + + if ($records) { + $subjectFormatter = $this->getSubjectFormatter($message->getSubject()); + $message->setSubject($subjectFormatter->format($this->getHighestRecord($records))); + } + + $message->setBody($content); + if (version_compare(Swift::VERSION, '6.0.0', '>=')) { + $message->setDate(new \DateTimeImmutable()); + } else { + $message->setDate(time()); + } + + return $message; + } + + /** + * BC getter, to be removed in 2.0 + */ + public function __get($name) + { + if ($name === 'message') { + trigger_error('SwiftMailerHandler->message is deprecated, use ->buildMessage() instead to retrieve the message', E_USER_DEPRECATED); + + return $this->buildMessage(null, array()); + } + + throw new \InvalidArgumentException('Invalid property '.$name); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php new file mode 100644 index 00000000..f770c802 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php @@ -0,0 +1,67 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; + +/** + * Logs to syslog service. + * + * usage example: + * + * $log = new Logger('application'); + * $syslog = new SyslogHandler('myfacility', 'local6'); + * $formatter = new LineFormatter("%channel%.%level_name%: %message% %extra%"); + * $syslog->setFormatter($formatter); + * $log->pushHandler($syslog); + * + * @author Sven Paulus + */ +class SyslogHandler extends AbstractSyslogHandler +{ + protected $ident; + protected $logopts; + + /** + * @param string $ident + * @param mixed $facility + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + * @param int $logopts Option flags for the openlog() call, defaults to LOG_PID + */ + public function __construct($ident, $facility = LOG_USER, $level = Logger::DEBUG, $bubble = true, $logopts = LOG_PID) + { + parent::__construct($facility, $level, $bubble); + + $this->ident = $ident; + $this->logopts = $logopts; + } + + /** + * {@inheritdoc} + */ + public function close() + { + closelog(); + } + + /** + * {@inheritdoc} + */ + protected function write(array $record) + { + if (!openlog($this->ident, $this->logopts, $this->facility)) { + throw new \LogicException('Can\'t open syslog for ident "'.$this->ident.'" and facility "'.$this->facility.'"'); + } + syslog($this->logLevels[$record['level']], (string) $record['formatted']); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php b/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php new file mode 100644 index 00000000..3bff085b --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler\SyslogUdp; + +class UdpSocket +{ + const DATAGRAM_MAX_LENGTH = 65023; + + protected $ip; + protected $port; + protected $socket; + + public function __construct($ip, $port = 514) + { + $this->ip = $ip; + $this->port = $port; + $this->socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); + } + + public function write($line, $header = "") + { + $this->send($this->assembleMessage($line, $header)); + } + + public function close() + { + if (is_resource($this->socket)) { + socket_close($this->socket); + $this->socket = null; + } + } + + protected function send($chunk) + { + if (!is_resource($this->socket)) { + throw new \LogicException('The UdpSocket to '.$this->ip.':'.$this->port.' has been closed and can not be written to anymore'); + } + socket_sendto($this->socket, $chunk, strlen($chunk), $flags = 0, $this->ip, $this->port); + } + + protected function assembleMessage($line, $header) + { + $chunkSize = self::DATAGRAM_MAX_LENGTH - strlen($header); + + return $header . substr($line, 0, $chunkSize); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php new file mode 100644 index 00000000..e14b378c --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php @@ -0,0 +1,103 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; +use Monolog\Handler\SyslogUdp\UdpSocket; + +/** + * A Handler for logging to a remote syslogd server. + * + * @author Jesper Skovgaard Nielsen + */ +class SyslogUdpHandler extends AbstractSyslogHandler +{ + protected $socket; + protected $ident; + + /** + * @param string $host + * @param int $port + * @param mixed $facility + * @param int $level The minimum logging level at which this handler will be triggered + * @param bool $bubble Whether the messages that are handled can bubble up the stack or not + * @param string $ident Program name or tag for each log message. + */ + public function __construct($host, $port = 514, $facility = LOG_USER, $level = Logger::DEBUG, $bubble = true, $ident = 'php') + { + parent::__construct($facility, $level, $bubble); + + $this->ident = $ident; + + $this->socket = new UdpSocket($host, $port ?: 514); + } + + protected function write(array $record) + { + $lines = $this->splitMessageIntoLines($record['formatted']); + + $header = $this->makeCommonSyslogHeader($this->logLevels[$record['level']]); + + foreach ($lines as $line) { + $this->socket->write($line, $header); + } + } + + public function close() + { + $this->socket->close(); + } + + private function splitMessageIntoLines($message) + { + if (is_array($message)) { + $message = implode("\n", $message); + } + + return preg_split('/$\R?^/m', $message, -1, PREG_SPLIT_NO_EMPTY); + } + + /** + * Make common syslog header (see rfc5424) + */ + protected function makeCommonSyslogHeader($severity) + { + $priority = $severity + $this->facility; + + if (!$pid = getmypid()) { + $pid = '-'; + } + + if (!$hostname = gethostname()) { + $hostname = '-'; + } + + return "<$priority>1 " . + $this->getDateTime() . " " . + $hostname . " " . + $this->ident . " " . + $pid . " - - "; + } + + protected function getDateTime() + { + return date(\DateTime::RFC3339); + } + + /** + * Inject your own socket, mainly used for testing + */ + public function setSocket($socket) + { + $this->socket = $socket; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php new file mode 100644 index 00000000..b6b1343b --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php @@ -0,0 +1,164 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +/** + * Used for testing purposes. + * + * It records all records and gives you access to them for verification. + * + * @author Jordi Boggiano + * + * @method bool hasEmergency($record) + * @method bool hasAlert($record) + * @method bool hasCritical($record) + * @method bool hasError($record) + * @method bool hasWarning($record) + * @method bool hasNotice($record) + * @method bool hasInfo($record) + * @method bool hasDebug($record) + * + * @method bool hasEmergencyRecords() + * @method bool hasAlertRecords() + * @method bool hasCriticalRecords() + * @method bool hasErrorRecords() + * @method bool hasWarningRecords() + * @method bool hasNoticeRecords() + * @method bool hasInfoRecords() + * @method bool hasDebugRecords() + * + * @method bool hasEmergencyThatContains($message) + * @method bool hasAlertThatContains($message) + * @method bool hasCriticalThatContains($message) + * @method bool hasErrorThatContains($message) + * @method bool hasWarningThatContains($message) + * @method bool hasNoticeThatContains($message) + * @method bool hasInfoThatContains($message) + * @method bool hasDebugThatContains($message) + * + * @method bool hasEmergencyThatMatches($message) + * @method bool hasAlertThatMatches($message) + * @method bool hasCriticalThatMatches($message) + * @method bool hasErrorThatMatches($message) + * @method bool hasWarningThatMatches($message) + * @method bool hasNoticeThatMatches($message) + * @method bool hasInfoThatMatches($message) + * @method bool hasDebugThatMatches($message) + * + * @method bool hasEmergencyThatPasses($message) + * @method bool hasAlertThatPasses($message) + * @method bool hasCriticalThatPasses($message) + * @method bool hasErrorThatPasses($message) + * @method bool hasWarningThatPasses($message) + * @method bool hasNoticeThatPasses($message) + * @method bool hasInfoThatPasses($message) + * @method bool hasDebugThatPasses($message) + */ +class TestHandler extends AbstractProcessingHandler +{ + protected $records = array(); + protected $recordsByLevel = array(); + + public function getRecords() + { + return $this->records; + } + + public function clear() + { + $this->records = array(); + $this->recordsByLevel = array(); + } + + public function hasRecords($level) + { + return isset($this->recordsByLevel[$level]); + } + + /** + * @param string|array $record Either a message string or an array containing message and optionally context keys that will be checked against all records + * @param int $level Logger::LEVEL constant value + */ + public function hasRecord($record, $level) + { + if (is_string($record)) { + $record = array('message' => $record); + } + + return $this->hasRecordThatPasses(function ($rec) use ($record) { + if ($rec['message'] !== $record['message']) { + return false; + } + if (isset($record['context']) && $rec['context'] !== $record['context']) { + return false; + } + return true; + }, $level); + } + + public function hasRecordThatContains($message, $level) + { + return $this->hasRecordThatPasses(function ($rec) use ($message) { + return strpos($rec['message'], $message) !== false; + }, $level); + } + + public function hasRecordThatMatches($regex, $level) + { + return $this->hasRecordThatPasses(function ($rec) use ($regex) { + return preg_match($regex, $rec['message']) > 0; + }, $level); + } + + public function hasRecordThatPasses($predicate, $level) + { + if (!is_callable($predicate)) { + throw new \InvalidArgumentException("Expected a callable for hasRecordThatSucceeds"); + } + + if (!isset($this->recordsByLevel[$level])) { + return false; + } + + foreach ($this->recordsByLevel[$level] as $i => $rec) { + if (call_user_func($predicate, $rec, $i)) { + return true; + } + } + + return false; + } + + /** + * {@inheritdoc} + */ + protected function write(array $record) + { + $this->recordsByLevel[$record['level']][] = $record; + $this->records[] = $record; + } + + public function __call($method, $args) + { + if (preg_match('/(.*)(Debug|Info|Notice|Warning|Error|Critical|Alert|Emergency)(.*)/', $method, $matches) > 0) { + $genericMethod = $matches[1] . ('Records' !== $matches[3] ? 'Record' : '') . $matches[3]; + $level = constant('Monolog\Logger::' . strtoupper($matches[2])); + if (method_exists($this, $genericMethod)) { + $args[] = $level; + + return call_user_func_array(array($this, $genericMethod), $args); + } + } + + throw new \BadMethodCallException('Call to undefined method ' . get_class($this) . '::' . $method . '()'); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php new file mode 100644 index 00000000..6bc4671c --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php @@ -0,0 +1,71 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +/** + * Forwards records to multiple handlers suppressing failures of each handler + * and continuing through to give every handler a chance to succeed. + * + * @author Craig D'Amelio + */ +class WhatFailureGroupHandler extends GroupHandler +{ + /** + * {@inheritdoc} + */ + public function handle(array $record) + { + if ($this->processors) { + foreach ($this->processors as $processor) { + $record = call_user_func($processor, $record); + } + } + + foreach ($this->handlers as $handler) { + try { + $handler->handle($record); + } catch (\Exception $e) { + // What failure? + } catch (\Throwable $e) { + // What failure? + } + } + + return false === $this->bubble; + } + + /** + * {@inheritdoc} + */ + public function handleBatch(array $records) + { + if ($this->processors) { + $processed = array(); + foreach ($records as $record) { + foreach ($this->processors as $processor) { + $processed[] = call_user_func($processor, $record); + } + } + $records = $processed; + } + + foreach ($this->handlers as $handler) { + try { + $handler->handleBatch($records); + } catch (\Exception $e) { + // What failure? + } catch (\Throwable $e) { + // What failure? + } + } + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php new file mode 100644 index 00000000..f22cf218 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php @@ -0,0 +1,95 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Formatter\NormalizerFormatter; +use Monolog\Logger; + +/** + * Handler sending logs to Zend Monitor + * + * @author Christian Bergau + */ +class ZendMonitorHandler extends AbstractProcessingHandler +{ + /** + * Monolog level / ZendMonitor Custom Event priority map + * + * @var array + */ + protected $levelMap = array( + Logger::DEBUG => 1, + Logger::INFO => 2, + Logger::NOTICE => 3, + Logger::WARNING => 4, + Logger::ERROR => 5, + Logger::CRITICAL => 6, + Logger::ALERT => 7, + Logger::EMERGENCY => 0, + ); + + /** + * Construct + * + * @param int $level + * @param bool $bubble + * @throws MissingExtensionException + */ + public function __construct($level = Logger::DEBUG, $bubble = true) + { + if (!function_exists('zend_monitor_custom_event')) { + throw new MissingExtensionException('You must have Zend Server installed in order to use this handler'); + } + parent::__construct($level, $bubble); + } + + /** + * {@inheritdoc} + */ + protected function write(array $record) + { + $this->writeZendMonitorCustomEvent( + $this->levelMap[$record['level']], + $record['message'], + $record['formatted'] + ); + } + + /** + * Write a record to Zend Monitor + * + * @param int $level + * @param string $message + * @param array $formatted + */ + protected function writeZendMonitorCustomEvent($level, $message, $formatted) + { + zend_monitor_custom_event($level, $message, $formatted); + } + + /** + * {@inheritdoc} + */ + public function getDefaultFormatter() + { + return new NormalizerFormatter(); + } + + /** + * Get the level map + * + * @return array + */ + public function getLevelMap() + { + return $this->levelMap; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Logger.php b/vendor/monolog/monolog/src/Monolog/Logger.php new file mode 100644 index 00000000..05dfc817 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Logger.php @@ -0,0 +1,791 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog; + +use Monolog\Handler\HandlerInterface; +use Monolog\Handler\StreamHandler; +use Psr\Log\LoggerInterface; +use Psr\Log\InvalidArgumentException; +use Exception; + +/** + * Monolog log channel + * + * It contains a stack of Handlers and a stack of Processors, + * and uses them to store records that are added to it. + * + * @author Jordi Boggiano + */ +class Logger implements LoggerInterface, ResettableInterface +{ + /** + * Detailed debug information + */ + const DEBUG = 100; + + /** + * Interesting events + * + * Examples: User logs in, SQL logs. + */ + const INFO = 200; + + /** + * Uncommon events + */ + const NOTICE = 250; + + /** + * Exceptional occurrences that are not errors + * + * Examples: Use of deprecated APIs, poor use of an API, + * undesirable things that are not necessarily wrong. + */ + const WARNING = 300; + + /** + * Runtime errors + */ + const ERROR = 400; + + /** + * Critical conditions + * + * Example: Application component unavailable, unexpected exception. + */ + const CRITICAL = 500; + + /** + * Action must be taken immediately + * + * Example: Entire website down, database unavailable, etc. + * This should trigger the SMS alerts and wake you up. + */ + const ALERT = 550; + + /** + * Urgent alert. + */ + const EMERGENCY = 600; + + /** + * Monolog API version + * + * This is only bumped when API breaks are done and should + * follow the major version of the library + * + * @var int + */ + const API = 1; + + /** + * Logging levels from syslog protocol defined in RFC 5424 + * + * @var array $levels Logging levels + */ + protected static $levels = array( + self::DEBUG => 'DEBUG', + self::INFO => 'INFO', + self::NOTICE => 'NOTICE', + self::WARNING => 'WARNING', + self::ERROR => 'ERROR', + self::CRITICAL => 'CRITICAL', + self::ALERT => 'ALERT', + self::EMERGENCY => 'EMERGENCY', + ); + + /** + * @var \DateTimeZone + */ + protected static $timezone; + + /** + * @var string + */ + protected $name; + + /** + * The handler stack + * + * @var HandlerInterface[] + */ + protected $handlers; + + /** + * Processors that will process all log records + * + * To process records of a single handler instead, add the processor on that specific handler + * + * @var callable[] + */ + protected $processors; + + /** + * @var bool + */ + protected $microsecondTimestamps = true; + + /** + * @var callable + */ + protected $exceptionHandler; + + /** + * @param string $name The logging channel + * @param HandlerInterface[] $handlers Optional stack of handlers, the first one in the array is called first, etc. + * @param callable[] $processors Optional array of processors + */ + public function __construct($name, array $handlers = array(), array $processors = array()) + { + $this->name = $name; + $this->setHandlers($handlers); + $this->processors = $processors; + } + + /** + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Return a new cloned instance with the name changed + * + * @return static + */ + public function withName($name) + { + $new = clone $this; + $new->name = $name; + + return $new; + } + + /** + * Pushes a handler on to the stack. + * + * @param HandlerInterface $handler + * @return $this + */ + public function pushHandler(HandlerInterface $handler) + { + array_unshift($this->handlers, $handler); + + return $this; + } + + /** + * Pops a handler from the stack + * + * @return HandlerInterface + */ + public function popHandler() + { + if (!$this->handlers) { + throw new \LogicException('You tried to pop from an empty handler stack.'); + } + + return array_shift($this->handlers); + } + + /** + * Set handlers, replacing all existing ones. + * + * If a map is passed, keys will be ignored. + * + * @param HandlerInterface[] $handlers + * @return $this + */ + public function setHandlers(array $handlers) + { + $this->handlers = array(); + foreach (array_reverse($handlers) as $handler) { + $this->pushHandler($handler); + } + + return $this; + } + + /** + * @return HandlerInterface[] + */ + public function getHandlers() + { + return $this->handlers; + } + + /** + * Adds a processor on to the stack. + * + * @param callable $callback + * @return $this + */ + public function pushProcessor($callback) + { + if (!is_callable($callback)) { + throw new \InvalidArgumentException('Processors must be valid callables (callback or object with an __invoke method), '.var_export($callback, true).' given'); + } + array_unshift($this->processors, $callback); + + return $this; + } + + /** + * Removes the processor on top of the stack and returns it. + * + * @return callable + */ + public function popProcessor() + { + if (!$this->processors) { + throw new \LogicException('You tried to pop from an empty processor stack.'); + } + + return array_shift($this->processors); + } + + /** + * @return callable[] + */ + public function getProcessors() + { + return $this->processors; + } + + /** + * Control the use of microsecond resolution timestamps in the 'datetime' + * member of new records. + * + * Generating microsecond resolution timestamps by calling + * microtime(true), formatting the result via sprintf() and then parsing + * the resulting string via \DateTime::createFromFormat() can incur + * a measurable runtime overhead vs simple usage of DateTime to capture + * a second resolution timestamp in systems which generate a large number + * of log events. + * + * @param bool $micro True to use microtime() to create timestamps + */ + public function useMicrosecondTimestamps($micro) + { + $this->microsecondTimestamps = (bool) $micro; + } + + /** + * Adds a log record. + * + * @param int $level The logging level + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function addRecord($level, $message, array $context = array()) + { + if (!$this->handlers) { + $this->pushHandler(new StreamHandler('php://stderr', static::DEBUG)); + } + + $levelName = static::getLevelName($level); + + // check if any handler will handle this message so we can return early and save cycles + $handlerKey = null; + reset($this->handlers); + while ($handler = current($this->handlers)) { + if ($handler->isHandling(array('level' => $level))) { + $handlerKey = key($this->handlers); + break; + } + + next($this->handlers); + } + + if (null === $handlerKey) { + return false; + } + + if (!static::$timezone) { + static::$timezone = new \DateTimeZone(date_default_timezone_get() ?: 'UTC'); + } + + // php7.1+ always has microseconds enabled, so we do not need this hack + if ($this->microsecondTimestamps && PHP_VERSION_ID < 70100) { + $ts = \DateTime::createFromFormat('U.u', sprintf('%.6F', microtime(true)), static::$timezone); + } else { + $ts = new \DateTime(null, static::$timezone); + } + $ts->setTimezone(static::$timezone); + + $record = array( + 'message' => (string) $message, + 'context' => $context, + 'level' => $level, + 'level_name' => $levelName, + 'channel' => $this->name, + 'datetime' => $ts, + 'extra' => array(), + ); + + try { + foreach ($this->processors as $processor) { + $record = call_user_func($processor, $record); + } + + while ($handler = current($this->handlers)) { + if (true === $handler->handle($record)) { + break; + } + + next($this->handlers); + } + } catch (Exception $e) { + $this->handleException($e, $record); + } + + return true; + } + + /** + * Ends a log cycle and frees all resources used by handlers. + * + * Closing a Handler means flushing all buffers and freeing any open resources/handles. + * Handlers that have been closed should be able to accept log records again and re-open + * themselves on demand, but this may not always be possible depending on implementation. + * + * This is useful at the end of a request and will be called automatically on every handler + * when they get destructed. + */ + public function close() + { + foreach ($this->handlers as $handler) { + if (method_exists($handler, 'close')) { + $handler->close(); + } + } + } + + /** + * Ends a log cycle and resets all handlers and processors to their initial state. + * + * Resetting a Handler or a Processor means flushing/cleaning all buffers, resetting internal + * state, and getting it back to a state in which it can receive log records again. + * + * This is useful in case you want to avoid logs leaking between two requests or jobs when you + * have a long running process like a worker or an application server serving multiple requests + * in one process. + */ + public function reset() + { + foreach ($this->handlers as $handler) { + if ($handler instanceof ResettableInterface) { + $handler->reset(); + } + } + + foreach ($this->processors as $processor) { + if ($processor instanceof ResettableInterface) { + $processor->reset(); + } + } + } + + /** + * Adds a log record at the DEBUG level. + * + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function addDebug($message, array $context = array()) + { + return $this->addRecord(static::DEBUG, $message, $context); + } + + /** + * Adds a log record at the INFO level. + * + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function addInfo($message, array $context = array()) + { + return $this->addRecord(static::INFO, $message, $context); + } + + /** + * Adds a log record at the NOTICE level. + * + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function addNotice($message, array $context = array()) + { + return $this->addRecord(static::NOTICE, $message, $context); + } + + /** + * Adds a log record at the WARNING level. + * + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function addWarning($message, array $context = array()) + { + return $this->addRecord(static::WARNING, $message, $context); + } + + /** + * Adds a log record at the ERROR level. + * + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function addError($message, array $context = array()) + { + return $this->addRecord(static::ERROR, $message, $context); + } + + /** + * Adds a log record at the CRITICAL level. + * + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function addCritical($message, array $context = array()) + { + return $this->addRecord(static::CRITICAL, $message, $context); + } + + /** + * Adds a log record at the ALERT level. + * + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function addAlert($message, array $context = array()) + { + return $this->addRecord(static::ALERT, $message, $context); + } + + /** + * Adds a log record at the EMERGENCY level. + * + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function addEmergency($message, array $context = array()) + { + return $this->addRecord(static::EMERGENCY, $message, $context); + } + + /** + * Gets all supported logging levels. + * + * @return array Assoc array with human-readable level names => level codes. + */ + public static function getLevels() + { + return array_flip(static::$levels); + } + + /** + * Gets the name of the logging level. + * + * @param int $level + * @return string + */ + public static function getLevelName($level) + { + if (!isset(static::$levels[$level])) { + throw new InvalidArgumentException('Level "'.$level.'" is not defined, use one of: '.implode(', ', array_keys(static::$levels))); + } + + return static::$levels[$level]; + } + + /** + * Converts PSR-3 levels to Monolog ones if necessary + * + * @param string|int Level number (monolog) or name (PSR-3) + * @return int + */ + public static function toMonologLevel($level) + { + if (is_string($level) && defined(__CLASS__.'::'.strtoupper($level))) { + return constant(__CLASS__.'::'.strtoupper($level)); + } + + return $level; + } + + /** + * Checks whether the Logger has a handler that listens on the given level + * + * @param int $level + * @return bool + */ + public function isHandling($level) + { + $record = array( + 'level' => $level, + ); + + foreach ($this->handlers as $handler) { + if ($handler->isHandling($record)) { + return true; + } + } + + return false; + } + + /** + * Set a custom exception handler + * + * @param callable $callback + * @return $this + */ + public function setExceptionHandler($callback) + { + if (!is_callable($callback)) { + throw new \InvalidArgumentException('Exception handler must be valid callable (callback or object with an __invoke method), '.var_export($callback, true).' given'); + } + $this->exceptionHandler = $callback; + + return $this; + } + + /** + * @return callable + */ + public function getExceptionHandler() + { + return $this->exceptionHandler; + } + + /** + * Delegates exception management to the custom exception handler, + * or throws the exception if no custom handler is set. + */ + protected function handleException(Exception $e, array $record) + { + if (!$this->exceptionHandler) { + throw $e; + } + + call_user_func($this->exceptionHandler, $e, $record); + } + + /** + * Adds a log record at an arbitrary level. + * + * This method allows for compatibility with common interfaces. + * + * @param mixed $level The log level + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function log($level, $message, array $context = array()) + { + $level = static::toMonologLevel($level); + + return $this->addRecord($level, $message, $context); + } + + /** + * Adds a log record at the DEBUG level. + * + * This method allows for compatibility with common interfaces. + * + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function debug($message, array $context = array()) + { + return $this->addRecord(static::DEBUG, $message, $context); + } + + /** + * Adds a log record at the INFO level. + * + * This method allows for compatibility with common interfaces. + * + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function info($message, array $context = array()) + { + return $this->addRecord(static::INFO, $message, $context); + } + + /** + * Adds a log record at the NOTICE level. + * + * This method allows for compatibility with common interfaces. + * + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function notice($message, array $context = array()) + { + return $this->addRecord(static::NOTICE, $message, $context); + } + + /** + * Adds a log record at the WARNING level. + * + * This method allows for compatibility with common interfaces. + * + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function warn($message, array $context = array()) + { + return $this->addRecord(static::WARNING, $message, $context); + } + + /** + * Adds a log record at the WARNING level. + * + * This method allows for compatibility with common interfaces. + * + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function warning($message, array $context = array()) + { + return $this->addRecord(static::WARNING, $message, $context); + } + + /** + * Adds a log record at the ERROR level. + * + * This method allows for compatibility with common interfaces. + * + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function err($message, array $context = array()) + { + return $this->addRecord(static::ERROR, $message, $context); + } + + /** + * Adds a log record at the ERROR level. + * + * This method allows for compatibility with common interfaces. + * + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function error($message, array $context = array()) + { + return $this->addRecord(static::ERROR, $message, $context); + } + + /** + * Adds a log record at the CRITICAL level. + * + * This method allows for compatibility with common interfaces. + * + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function crit($message, array $context = array()) + { + return $this->addRecord(static::CRITICAL, $message, $context); + } + + /** + * Adds a log record at the CRITICAL level. + * + * This method allows for compatibility with common interfaces. + * + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function critical($message, array $context = array()) + { + return $this->addRecord(static::CRITICAL, $message, $context); + } + + /** + * Adds a log record at the ALERT level. + * + * This method allows for compatibility with common interfaces. + * + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function alert($message, array $context = array()) + { + return $this->addRecord(static::ALERT, $message, $context); + } + + /** + * Adds a log record at the EMERGENCY level. + * + * This method allows for compatibility with common interfaces. + * + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function emerg($message, array $context = array()) + { + return $this->addRecord(static::EMERGENCY, $message, $context); + } + + /** + * Adds a log record at the EMERGENCY level. + * + * This method allows for compatibility with common interfaces. + * + * @param string $message The log message + * @param array $context The log context + * @return bool Whether the record has been processed + */ + public function emergency($message, array $context = array()) + { + return $this->addRecord(static::EMERGENCY, $message, $context); + } + + /** + * Set the timezone to be used for the timestamp of log records. + * + * This is stored globally for all Logger instances + * + * @param \DateTimeZone $tz Timezone object + */ + public static function setTimezone(\DateTimeZone $tz) + { + self::$timezone = $tz; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/GitProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/GitProcessor.php new file mode 100644 index 00000000..9fc3f50f --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Processor/GitProcessor.php @@ -0,0 +1,64 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +use Monolog\Logger; + +/** + * Injects Git branch and Git commit SHA in all records + * + * @author Nick Otter + * @author Jordi Boggiano + */ +class GitProcessor implements ProcessorInterface +{ + private $level; + private static $cache; + + public function __construct($level = Logger::DEBUG) + { + $this->level = Logger::toMonologLevel($level); + } + + /** + * @param array $record + * @return array + */ + public function __invoke(array $record) + { + // return if the level is not high enough + if ($record['level'] < $this->level) { + return $record; + } + + $record['extra']['git'] = self::getGitInfo(); + + return $record; + } + + private static function getGitInfo() + { + if (self::$cache) { + return self::$cache; + } + + $branches = `git branch -v --no-abbrev`; + if (preg_match('{^\* (.+?)\s+([a-f0-9]{40})(?:\s|$)}m', $branches, $matches)) { + return self::$cache = array( + 'branch' => $matches[1], + 'commit' => $matches[2], + ); + } + + return self::$cache = array(); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php new file mode 100644 index 00000000..6ae192a2 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php @@ -0,0 +1,112 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +use Monolog\Logger; + +/** + * Injects line/file:class/function where the log message came from + * + * Warning: This only works if the handler processes the logs directly. + * If you put the processor on a handler that is behind a FingersCrossedHandler + * for example, the processor will only be called once the trigger level is reached, + * and all the log records will have the same file/line/.. data from the call that + * triggered the FingersCrossedHandler. + * + * @author Jordi Boggiano + */ +class IntrospectionProcessor implements ProcessorInterface +{ + private $level; + + private $skipClassesPartials; + + private $skipStackFramesCount; + + private $skipFunctions = array( + 'call_user_func', + 'call_user_func_array', + ); + + public function __construct($level = Logger::DEBUG, array $skipClassesPartials = array(), $skipStackFramesCount = 0) + { + $this->level = Logger::toMonologLevel($level); + $this->skipClassesPartials = array_merge(array('Monolog\\'), $skipClassesPartials); + $this->skipStackFramesCount = $skipStackFramesCount; + } + + /** + * @param array $record + * @return array + */ + public function __invoke(array $record) + { + // return if the level is not high enough + if ($record['level'] < $this->level) { + return $record; + } + + /* + * http://php.net/manual/en/function.debug-backtrace.php + * As of 5.3.6, DEBUG_BACKTRACE_IGNORE_ARGS option was added. + * Any version less than 5.3.6 must use the DEBUG_BACKTRACE_IGNORE_ARGS constant value '2'. + */ + $trace = debug_backtrace((PHP_VERSION_ID < 50306) ? 2 : DEBUG_BACKTRACE_IGNORE_ARGS); + + // skip first since it's always the current method + array_shift($trace); + // the call_user_func call is also skipped + array_shift($trace); + + $i = 0; + + while ($this->isTraceClassOrSkippedFunction($trace, $i)) { + if (isset($trace[$i]['class'])) { + foreach ($this->skipClassesPartials as $part) { + if (strpos($trace[$i]['class'], $part) !== false) { + $i++; + continue 2; + } + } + } elseif (in_array($trace[$i]['function'], $this->skipFunctions)) { + $i++; + continue; + } + + break; + } + + $i += $this->skipStackFramesCount; + + // we should have the call source now + $record['extra'] = array_merge( + $record['extra'], + array( + 'file' => isset($trace[$i - 1]['file']) ? $trace[$i - 1]['file'] : null, + 'line' => isset($trace[$i - 1]['line']) ? $trace[$i - 1]['line'] : null, + 'class' => isset($trace[$i]['class']) ? $trace[$i]['class'] : null, + 'function' => isset($trace[$i]['function']) ? $trace[$i]['function'] : null, + ) + ); + + return $record; + } + + private function isTraceClassOrSkippedFunction(array $trace, $index) + { + if (!isset($trace[$index])) { + return false; + } + + return isset($trace[$index]['class']) || in_array($trace[$index]['function'], $this->skipFunctions); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php new file mode 100644 index 00000000..0543e929 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php @@ -0,0 +1,35 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +/** + * Injects memory_get_peak_usage in all records + * + * @see Monolog\Processor\MemoryProcessor::__construct() for options + * @author Rob Jensen + */ +class MemoryPeakUsageProcessor extends MemoryProcessor +{ + /** + * @param array $record + * @return array + */ + public function __invoke(array $record) + { + $bytes = memory_get_peak_usage($this->realUsage); + $formatted = $this->formatBytes($bytes); + + $record['extra']['memory_peak_usage'] = $formatted; + + return $record; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php new file mode 100644 index 00000000..2a379a30 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php @@ -0,0 +1,63 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +/** + * Some methods that are common for all memory processors + * + * @author Rob Jensen + */ +abstract class MemoryProcessor implements ProcessorInterface +{ + /** + * @var bool If true, get the real size of memory allocated from system. Else, only the memory used by emalloc() is reported. + */ + protected $realUsage; + + /** + * @var bool If true, then format memory size to human readable string (MB, KB, B depending on size) + */ + protected $useFormatting; + + /** + * @param bool $realUsage Set this to true to get the real size of memory allocated from system. + * @param bool $useFormatting If true, then format memory size to human readable string (MB, KB, B depending on size) + */ + public function __construct($realUsage = true, $useFormatting = true) + { + $this->realUsage = (bool) $realUsage; + $this->useFormatting = (bool) $useFormatting; + } + + /** + * Formats bytes into a human readable string if $this->useFormatting is true, otherwise return $bytes as is + * + * @param int $bytes + * @return string|int Formatted string if $this->useFormatting is true, otherwise return $bytes as is + */ + protected function formatBytes($bytes) + { + $bytes = (int) $bytes; + + if (!$this->useFormatting) { + return $bytes; + } + + if ($bytes > 1024 * 1024) { + return round($bytes / 1024 / 1024, 2).' MB'; + } elseif ($bytes > 1024) { + return round($bytes / 1024, 2).' KB'; + } + + return $bytes . ' B'; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php new file mode 100644 index 00000000..2783d656 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php @@ -0,0 +1,35 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +/** + * Injects memory_get_usage in all records + * + * @see Monolog\Processor\MemoryProcessor::__construct() for options + * @author Rob Jensen + */ +class MemoryUsageProcessor extends MemoryProcessor +{ + /** + * @param array $record + * @return array + */ + public function __invoke(array $record) + { + $bytes = memory_get_usage($this->realUsage); + $formatted = $this->formatBytes($bytes); + + $record['extra']['memory_usage'] = $formatted; + + return $record; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php new file mode 100644 index 00000000..2f5b3265 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php @@ -0,0 +1,63 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +use Monolog\Logger; + +/** + * Injects Hg branch and Hg revision number in all records + * + * @author Jonathan A. Schweder + */ +class MercurialProcessor implements ProcessorInterface +{ + private $level; + private static $cache; + + public function __construct($level = Logger::DEBUG) + { + $this->level = Logger::toMonologLevel($level); + } + + /** + * @param array $record + * @return array + */ + public function __invoke(array $record) + { + // return if the level is not high enough + if ($record['level'] < $this->level) { + return $record; + } + + $record['extra']['hg'] = self::getMercurialInfo(); + + return $record; + } + + private static function getMercurialInfo() + { + if (self::$cache) { + return self::$cache; + } + + $result = explode(' ', trim(`hg id -nb`)); + if (count($result) >= 3) { + return self::$cache = array( + 'branch' => $result[1], + 'revision' => $result[2], + ); + } + + return self::$cache = array(); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php new file mode 100644 index 00000000..66b80fbb --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +/** + * Adds value of getmypid into records + * + * @author Andreas Hörnicke + */ +class ProcessIdProcessor implements ProcessorInterface +{ + /** + * @param array $record + * @return array + */ + public function __invoke(array $record) + { + $record['extra']['process_id'] = getmypid(); + + return $record; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php b/vendor/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php new file mode 100644 index 00000000..7e64d4df --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php @@ -0,0 +1,25 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +/** + * An optional interface to allow labelling Monolog processors. + * + * @author Nicolas Grekas + */ +interface ProcessorInterface +{ + /** + * @return array The processed records + */ + public function __invoke(array $records); +} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php new file mode 100644 index 00000000..00885054 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php @@ -0,0 +1,50 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +use Monolog\Utils; + +/** + * Processes a record's message according to PSR-3 rules + * + * It replaces {foo} with the value from $context['foo'] + * + * @author Jordi Boggiano + */ +class PsrLogMessageProcessor implements ProcessorInterface +{ + /** + * @param array $record + * @return array + */ + public function __invoke(array $record) + { + if (false === strpos($record['message'], '{')) { + return $record; + } + + $replacements = array(); + foreach ($record['context'] as $key => $val) { + if (is_null($val) || is_scalar($val) || (is_object($val) && method_exists($val, "__toString"))) { + $replacements['{'.$key.'}'] = $val; + } elseif (is_object($val)) { + $replacements['{'.$key.'}'] = '[object '.Utils::getClass($val).']'; + } else { + $replacements['{'.$key.'}'] = '['.gettype($val).']'; + } + } + + $record['message'] = strtr($record['message'], $replacements); + + return $record; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.php new file mode 100644 index 00000000..615a4d99 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.php @@ -0,0 +1,44 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +/** + * Adds a tags array into record + * + * @author Martijn Riemers + */ +class TagProcessor implements ProcessorInterface +{ + private $tags; + + public function __construct(array $tags = array()) + { + $this->setTags($tags); + } + + public function addTags(array $tags = array()) + { + $this->tags = array_merge($this->tags, $tags); + } + + public function setTags(array $tags = array()) + { + $this->tags = $tags; + } + + public function __invoke(array $record) + { + $record['extra']['tags'] = $this->tags; + + return $record; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php new file mode 100644 index 00000000..d1f708cf --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php @@ -0,0 +1,59 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +use Monolog\ResettableInterface; + +/** + * Adds a unique identifier into records + * + * @author Simon Mönch + */ +class UidProcessor implements ProcessorInterface, ResettableInterface +{ + private $uid; + + public function __construct($length = 7) + { + if (!is_int($length) || $length > 32 || $length < 1) { + throw new \InvalidArgumentException('The uid length must be an integer between 1 and 32'); + } + + + $this->uid = $this->generateUid($length); + } + + public function __invoke(array $record) + { + $record['extra']['uid'] = $this->uid; + + return $record; + } + + /** + * @return string + */ + public function getUid() + { + return $this->uid; + } + + public function reset() + { + $this->uid = $this->generateUid(strlen($this->uid)); + } + + private function generateUid($length) + { + return substr(hash('md5', uniqid('', true)), 0, $length); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php b/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php new file mode 100644 index 00000000..684188f6 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php @@ -0,0 +1,113 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +/** + * Injects url/method and remote IP of the current web request in all records + * + * @author Jordi Boggiano + */ +class WebProcessor implements ProcessorInterface +{ + /** + * @var array|\ArrayAccess + */ + protected $serverData; + + /** + * Default fields + * + * Array is structured as [key in record.extra => key in $serverData] + * + * @var array + */ + protected $extraFields = array( + 'url' => 'REQUEST_URI', + 'ip' => 'REMOTE_ADDR', + 'http_method' => 'REQUEST_METHOD', + 'server' => 'SERVER_NAME', + 'referrer' => 'HTTP_REFERER', + ); + + /** + * @param array|\ArrayAccess $serverData Array or object w/ ArrayAccess that provides access to the $_SERVER data + * @param array|null $extraFields Field names and the related key inside $serverData to be added. If not provided it defaults to: url, ip, http_method, server, referrer + */ + public function __construct($serverData = null, array $extraFields = null) + { + if (null === $serverData) { + $this->serverData = &$_SERVER; + } elseif (is_array($serverData) || $serverData instanceof \ArrayAccess) { + $this->serverData = $serverData; + } else { + throw new \UnexpectedValueException('$serverData must be an array or object implementing ArrayAccess.'); + } + + if (null !== $extraFields) { + if (isset($extraFields[0])) { + foreach (array_keys($this->extraFields) as $fieldName) { + if (!in_array($fieldName, $extraFields)) { + unset($this->extraFields[$fieldName]); + } + } + } else { + $this->extraFields = $extraFields; + } + } + } + + /** + * @param array $record + * @return array + */ + public function __invoke(array $record) + { + // skip processing if for some reason request data + // is not present (CLI or wonky SAPIs) + if (!isset($this->serverData['REQUEST_URI'])) { + return $record; + } + + $record['extra'] = $this->appendExtraFields($record['extra']); + + return $record; + } + + /** + * @param string $extraName + * @param string $serverName + * @return $this + */ + public function addExtraField($extraName, $serverName) + { + $this->extraFields[$extraName] = $serverName; + + return $this; + } + + /** + * @param array $extra + * @return array + */ + private function appendExtraFields(array $extra) + { + foreach ($this->extraFields as $extraName => $serverName) { + $extra[$extraName] = isset($this->serverData[$serverName]) ? $this->serverData[$serverName] : null; + } + + if (isset($this->serverData['UNIQUE_ID'])) { + $extra['unique_id'] = $this->serverData['UNIQUE_ID']; + } + + return $extra; + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Registry.php b/vendor/monolog/monolog/src/Monolog/Registry.php new file mode 100644 index 00000000..159b751c --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Registry.php @@ -0,0 +1,134 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog; + +use InvalidArgumentException; + +/** + * Monolog log registry + * + * Allows to get `Logger` instances in the global scope + * via static method calls on this class. + * + * + * $application = new Monolog\Logger('application'); + * $api = new Monolog\Logger('api'); + * + * Monolog\Registry::addLogger($application); + * Monolog\Registry::addLogger($api); + * + * function testLogger() + * { + * Monolog\Registry::api()->addError('Sent to $api Logger instance'); + * Monolog\Registry::application()->addError('Sent to $application Logger instance'); + * } + * + * + * @author Tomas Tatarko + */ +class Registry +{ + /** + * List of all loggers in the registry (by named indexes) + * + * @var Logger[] + */ + private static $loggers = array(); + + /** + * Adds new logging channel to the registry + * + * @param Logger $logger Instance of the logging channel + * @param string|null $name Name of the logging channel ($logger->getName() by default) + * @param bool $overwrite Overwrite instance in the registry if the given name already exists? + * @throws \InvalidArgumentException If $overwrite set to false and named Logger instance already exists + */ + public static function addLogger(Logger $logger, $name = null, $overwrite = false) + { + $name = $name ?: $logger->getName(); + + if (isset(self::$loggers[$name]) && !$overwrite) { + throw new InvalidArgumentException('Logger with the given name already exists'); + } + + self::$loggers[$name] = $logger; + } + + /** + * Checks if such logging channel exists by name or instance + * + * @param string|Logger $logger Name or logger instance + */ + public static function hasLogger($logger) + { + if ($logger instanceof Logger) { + $index = array_search($logger, self::$loggers, true); + + return false !== $index; + } else { + return isset(self::$loggers[$logger]); + } + } + + /** + * Removes instance from registry by name or instance + * + * @param string|Logger $logger Name or logger instance + */ + public static function removeLogger($logger) + { + if ($logger instanceof Logger) { + if (false !== ($idx = array_search($logger, self::$loggers, true))) { + unset(self::$loggers[$idx]); + } + } else { + unset(self::$loggers[$logger]); + } + } + + /** + * Clears the registry + */ + public static function clear() + { + self::$loggers = array(); + } + + /** + * Gets Logger instance from the registry + * + * @param string $name Name of the requested Logger instance + * @throws \InvalidArgumentException If named Logger instance is not in the registry + * @return Logger Requested instance of Logger + */ + public static function getInstance($name) + { + if (!isset(self::$loggers[$name])) { + throw new InvalidArgumentException(sprintf('Requested "%s" logger instance is not in the registry', $name)); + } + + return self::$loggers[$name]; + } + + /** + * Gets Logger instance from the registry via static method call + * + * @param string $name Name of the requested Logger instance + * @param array $arguments Arguments passed to static method call + * @throws \InvalidArgumentException If named Logger instance is not in the registry + * @return Logger Requested instance of Logger + */ + public static function __callStatic($name, $arguments) + { + return self::getInstance($name); + } +} diff --git a/vendor/monolog/monolog/src/Monolog/ResettableInterface.php b/vendor/monolog/monolog/src/Monolog/ResettableInterface.php new file mode 100644 index 00000000..635bc77d --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/ResettableInterface.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog; + +/** + * Handler or Processor implementing this interface will be reset when Logger::reset() is called. + * + * Resetting ends a log cycle gets them back to their initial state. + * + * Resetting a Handler or a Processor means flushing/cleaning all buffers, resetting internal + * state, and getting it back to a state in which it can receive log records again. + * + * This is useful in case you want to avoid logs leaking between two requests or jobs when you + * have a long running process like a worker or an application server serving multiple requests + * in one process. + * + * @author Grégoire Pineau + */ +interface ResettableInterface +{ + public function reset(); +} diff --git a/vendor/monolog/monolog/src/Monolog/SignalHandler.php b/vendor/monolog/monolog/src/Monolog/SignalHandler.php new file mode 100644 index 00000000..d5907805 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/SignalHandler.php @@ -0,0 +1,115 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog; + +use Psr\Log\LoggerInterface; +use Psr\Log\LogLevel; +use ReflectionExtension; + +/** + * Monolog POSIX signal handler + * + * @author Robert Gust-Bardon + */ +class SignalHandler +{ + private $logger; + + private $previousSignalHandler = array(); + private $signalLevelMap = array(); + private $signalRestartSyscalls = array(); + + public function __construct(LoggerInterface $logger) + { + $this->logger = $logger; + } + + public function registerSignalHandler($signo, $level = LogLevel::CRITICAL, $callPrevious = true, $restartSyscalls = true, $async = true) + { + if (!extension_loaded('pcntl') || !function_exists('pcntl_signal')) { + return $this; + } + + if ($callPrevious) { + if (function_exists('pcntl_signal_get_handler')) { + $handler = pcntl_signal_get_handler($signo); + if ($handler === false) { + return $this; + } + $this->previousSignalHandler[$signo] = $handler; + } else { + $this->previousSignalHandler[$signo] = true; + } + } else { + unset($this->previousSignalHandler[$signo]); + } + $this->signalLevelMap[$signo] = $level; + $this->signalRestartSyscalls[$signo] = $restartSyscalls; + + if (function_exists('pcntl_async_signals') && $async !== null) { + pcntl_async_signals($async); + } + + pcntl_signal($signo, array($this, 'handleSignal'), $restartSyscalls); + + return $this; + } + + public function handleSignal($signo, array $siginfo = null) + { + static $signals = array(); + + if (!$signals && extension_loaded('pcntl')) { + $pcntl = new ReflectionExtension('pcntl'); + $constants = $pcntl->getConstants(); + if (!$constants) { + // HHVM 3.24.2 returns an empty array. + $constants = get_defined_constants(true); + $constants = $constants['Core']; + } + foreach ($constants as $name => $value) { + if (substr($name, 0, 3) === 'SIG' && $name[3] !== '_' && is_int($value)) { + $signals[$value] = $name; + } + } + unset($constants); + } + + $level = isset($this->signalLevelMap[$signo]) ? $this->signalLevelMap[$signo] : LogLevel::CRITICAL; + $signal = isset($signals[$signo]) ? $signals[$signo] : $signo; + $context = isset($siginfo) ? $siginfo : array(); + $this->logger->log($level, sprintf('Program received signal %s', $signal), $context); + + if (!isset($this->previousSignalHandler[$signo])) { + return; + } + + if ($this->previousSignalHandler[$signo] === true || $this->previousSignalHandler[$signo] === SIG_DFL) { + if (extension_loaded('pcntl') && function_exists('pcntl_signal') && function_exists('pcntl_sigprocmask') && function_exists('pcntl_signal_dispatch') + && extension_loaded('posix') && function_exists('posix_getpid') && function_exists('posix_kill')) { + $restartSyscalls = isset($this->restartSyscalls[$signo]) ? $this->restartSyscalls[$signo] : true; + pcntl_signal($signo, SIG_DFL, $restartSyscalls); + pcntl_sigprocmask(SIG_UNBLOCK, array($signo), $oldset); + posix_kill(posix_getpid(), $signo); + pcntl_signal_dispatch(); + pcntl_sigprocmask(SIG_SETMASK, $oldset); + pcntl_signal($signo, array($this, 'handleSignal'), $restartSyscalls); + } + } elseif (is_callable($this->previousSignalHandler[$signo])) { + if (PHP_VERSION_ID >= 70100) { + $this->previousSignalHandler[$signo]($signo, $siginfo); + } else { + $this->previousSignalHandler[$signo]($signo); + } + } + } +} diff --git a/vendor/monolog/monolog/src/Monolog/Utils.php b/vendor/monolog/monolog/src/Monolog/Utils.php new file mode 100644 index 00000000..eb9be863 --- /dev/null +++ b/vendor/monolog/monolog/src/Monolog/Utils.php @@ -0,0 +1,25 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog; + +class Utils +{ + /** + * @internal + */ + public static function getClass($object) + { + $class = \get_class($object); + + return 'c' === $class[0] && 0 === strpos($class, "class@anonymous\0") ? get_parent_class($class).'@anonymous' : $class; + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/ErrorHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/ErrorHandlerTest.php new file mode 100644 index 00000000..a9a3f301 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/ErrorHandlerTest.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog; + +use Monolog\Handler\TestHandler; + +class ErrorHandlerTest extends \PHPUnit_Framework_TestCase +{ + public function testHandleError() + { + $logger = new Logger('test', array($handler = new TestHandler)); + $errHandler = new ErrorHandler($logger); + + $errHandler->registerErrorHandler(array(E_USER_NOTICE => Logger::EMERGENCY), false); + trigger_error('Foo', E_USER_ERROR); + $this->assertCount(1, $handler->getRecords()); + $this->assertTrue($handler->hasErrorRecords()); + trigger_error('Foo', E_USER_NOTICE); + $this->assertCount(2, $handler->getRecords()); + $this->assertTrue($handler->hasEmergencyRecords()); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/ChromePHPFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/ChromePHPFormatterTest.php new file mode 100644 index 00000000..71c42046 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Formatter/ChromePHPFormatterTest.php @@ -0,0 +1,158 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Formatter; + +use Monolog\Logger; + +class ChromePHPFormatterTest extends \PHPUnit_Framework_TestCase +{ + /** + * @covers Monolog\Formatter\ChromePHPFormatter::format + */ + public function testDefaultFormat() + { + $formatter = new ChromePHPFormatter(); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('from' => 'logger'), + 'datetime' => new \DateTime("@0"), + 'extra' => array('ip' => '127.0.0.1'), + 'message' => 'log', + ); + + $message = $formatter->format($record); + + $this->assertEquals( + array( + 'meh', + array( + 'message' => 'log', + 'context' => array('from' => 'logger'), + 'extra' => array('ip' => '127.0.0.1'), + ), + 'unknown', + 'error', + ), + $message + ); + } + + /** + * @covers Monolog\Formatter\ChromePHPFormatter::format + */ + public function testFormatWithFileAndLine() + { + $formatter = new ChromePHPFormatter(); + $record = array( + 'level' => Logger::CRITICAL, + 'level_name' => 'CRITICAL', + 'channel' => 'meh', + 'context' => array('from' => 'logger'), + 'datetime' => new \DateTime("@0"), + 'extra' => array('ip' => '127.0.0.1', 'file' => 'test', 'line' => 14), + 'message' => 'log', + ); + + $message = $formatter->format($record); + + $this->assertEquals( + array( + 'meh', + array( + 'message' => 'log', + 'context' => array('from' => 'logger'), + 'extra' => array('ip' => '127.0.0.1'), + ), + 'test : 14', + 'error', + ), + $message + ); + } + + /** + * @covers Monolog\Formatter\ChromePHPFormatter::format + */ + public function testFormatWithoutContext() + { + $formatter = new ChromePHPFormatter(); + $record = array( + 'level' => Logger::DEBUG, + 'level_name' => 'DEBUG', + 'channel' => 'meh', + 'context' => array(), + 'datetime' => new \DateTime("@0"), + 'extra' => array(), + 'message' => 'log', + ); + + $message = $formatter->format($record); + + $this->assertEquals( + array( + 'meh', + 'log', + 'unknown', + 'log', + ), + $message + ); + } + + /** + * @covers Monolog\Formatter\ChromePHPFormatter::formatBatch + */ + public function testBatchFormatThrowException() + { + $formatter = new ChromePHPFormatter(); + $records = array( + array( + 'level' => Logger::INFO, + 'level_name' => 'INFO', + 'channel' => 'meh', + 'context' => array(), + 'datetime' => new \DateTime("@0"), + 'extra' => array(), + 'message' => 'log', + ), + array( + 'level' => Logger::WARNING, + 'level_name' => 'WARNING', + 'channel' => 'foo', + 'context' => array(), + 'datetime' => new \DateTime("@0"), + 'extra' => array(), + 'message' => 'log2', + ), + ); + + $this->assertEquals( + array( + array( + 'meh', + 'log', + 'unknown', + 'info', + ), + array( + 'foo', + 'log2', + 'unknown', + 'warn', + ), + ), + $formatter->formatBatch($records) + ); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/ElasticaFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/ElasticaFormatterTest.php new file mode 100644 index 00000000..90cc48dd --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Formatter/ElasticaFormatterTest.php @@ -0,0 +1,79 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Formatter; + +use Monolog\Logger; + +class ElasticaFormatterTest extends \PHPUnit_Framework_TestCase +{ + public function setUp() + { + if (!class_exists("Elastica\Document")) { + $this->markTestSkipped("ruflin/elastica not installed"); + } + } + + /** + * @covers Monolog\Formatter\ElasticaFormatter::__construct + * @covers Monolog\Formatter\ElasticaFormatter::format + * @covers Monolog\Formatter\ElasticaFormatter::getDocument + */ + public function testFormat() + { + // test log message + $msg = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('foo' => 7, 'bar', 'class' => new \stdClass), + 'datetime' => new \DateTime("@0"), + 'extra' => array(), + 'message' => 'log', + ); + + // expected values + $expected = $msg; + $expected['datetime'] = '1970-01-01T00:00:00.000000+00:00'; + $expected['context'] = array( + 'class' => '[object] (stdClass: {})', + 'foo' => 7, + 0 => 'bar', + ); + + // format log message + $formatter = new ElasticaFormatter('my_index', 'doc_type'); + $doc = $formatter->format($msg); + $this->assertInstanceOf('Elastica\Document', $doc); + + // Document parameters + $params = $doc->getParams(); + $this->assertEquals('my_index', $params['_index']); + $this->assertEquals('doc_type', $params['_type']); + + // Document data values + $data = $doc->getData(); + foreach (array_keys($expected) as $key) { + $this->assertEquals($expected[$key], $data[$key]); + } + } + + /** + * @covers Monolog\Formatter\ElasticaFormatter::getIndex + * @covers Monolog\Formatter\ElasticaFormatter::getType + */ + public function testGetters() + { + $formatter = new ElasticaFormatter('my_index', 'doc_type'); + $this->assertEquals('my_index', $formatter->getIndex()); + $this->assertEquals('doc_type', $formatter->getType()); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/FlowdockFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/FlowdockFormatterTest.php new file mode 100644 index 00000000..1b2fd97a --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Formatter/FlowdockFormatterTest.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Formatter; + +use Monolog\Logger; +use Monolog\TestCase; + +class FlowdockFormatterTest extends TestCase +{ + /** + * @covers Monolog\Formatter\FlowdockFormatter::format + */ + public function testFormat() + { + $formatter = new FlowdockFormatter('test_source', 'source@test.com'); + $record = $this->getRecord(); + + $expected = array( + 'source' => 'test_source', + 'from_address' => 'source@test.com', + 'subject' => 'in test_source: WARNING - test', + 'content' => 'test', + 'tags' => array('#logs', '#warning', '#test'), + 'project' => 'test_source', + ); + $formatted = $formatter->format($record); + + $this->assertEquals($expected, $formatted['flowdock']); + } + + /** + * @ covers Monolog\Formatter\FlowdockFormatter::formatBatch + */ + public function testFormatBatch() + { + $formatter = new FlowdockFormatter('test_source', 'source@test.com'); + $records = array( + $this->getRecord(Logger::WARNING), + $this->getRecord(Logger::DEBUG), + ); + $formatted = $formatter->formatBatch($records); + + $this->assertArrayHasKey('flowdock', $formatted[0]); + $this->assertArrayHasKey('flowdock', $formatted[1]); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/FluentdFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/FluentdFormatterTest.php new file mode 100644 index 00000000..fd36dbcf --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Formatter/FluentdFormatterTest.php @@ -0,0 +1,62 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Formatter; + +use Monolog\Logger; +use Monolog\TestCase; + +class FluentdFormatterTest extends TestCase +{ + /** + * @covers Monolog\Formatter\FluentdFormatter::__construct + * @covers Monolog\Formatter\FluentdFormatter::isUsingLevelsInTag + */ + public function testConstruct() + { + $formatter = new FluentdFormatter(); + $this->assertEquals(false, $formatter->isUsingLevelsInTag()); + $formatter = new FluentdFormatter(false); + $this->assertEquals(false, $formatter->isUsingLevelsInTag()); + $formatter = new FluentdFormatter(true); + $this->assertEquals(true, $formatter->isUsingLevelsInTag()); + } + + /** + * @covers Monolog\Formatter\FluentdFormatter::format + */ + public function testFormat() + { + $record = $this->getRecord(Logger::WARNING); + $record['datetime'] = new \DateTime("@0"); + + $formatter = new FluentdFormatter(); + $this->assertEquals( + '["test",0,{"message":"test","context":[],"extra":[],"level":300,"level_name":"WARNING"}]', + $formatter->format($record) + ); + } + + /** + * @covers Monolog\Formatter\FluentdFormatter::format + */ + public function testFormatWithTag() + { + $record = $this->getRecord(Logger::ERROR); + $record['datetime'] = new \DateTime("@0"); + + $formatter = new FluentdFormatter(true); + $this->assertEquals( + '["test.error",0,{"message":"test","context":[],"extra":[]}]', + $formatter->format($record) + ); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/GelfMessageFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/GelfMessageFormatterTest.php new file mode 100644 index 00000000..4a247616 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Formatter/GelfMessageFormatterTest.php @@ -0,0 +1,258 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Formatter; + +use Monolog\Logger; + +class GelfMessageFormatterTest extends \PHPUnit_Framework_TestCase +{ + public function setUp() + { + if (!class_exists('\Gelf\Message')) { + $this->markTestSkipped("graylog2/gelf-php or mlehner/gelf-php is not installed"); + } + } + + /** + * @covers Monolog\Formatter\GelfMessageFormatter::format + */ + public function testDefaultFormatter() + { + $formatter = new GelfMessageFormatter(); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array(), + 'datetime' => new \DateTime("@0"), + 'extra' => array(), + 'message' => 'log', + ); + + $message = $formatter->format($record); + + $this->assertInstanceOf('Gelf\Message', $message); + $this->assertEquals(0, $message->getTimestamp()); + $this->assertEquals('log', $message->getShortMessage()); + $this->assertEquals('meh', $message->getFacility()); + $this->assertEquals(null, $message->getLine()); + $this->assertEquals(null, $message->getFile()); + $this->assertEquals($this->isLegacy() ? 3 : 'error', $message->getLevel()); + $this->assertNotEmpty($message->getHost()); + + $formatter = new GelfMessageFormatter('mysystem'); + + $message = $formatter->format($record); + + $this->assertInstanceOf('Gelf\Message', $message); + $this->assertEquals('mysystem', $message->getHost()); + } + + /** + * @covers Monolog\Formatter\GelfMessageFormatter::format + */ + public function testFormatWithFileAndLine() + { + $formatter = new GelfMessageFormatter(); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('from' => 'logger'), + 'datetime' => new \DateTime("@0"), + 'extra' => array('file' => 'test', 'line' => 14), + 'message' => 'log', + ); + + $message = $formatter->format($record); + + $this->assertInstanceOf('Gelf\Message', $message); + $this->assertEquals('test', $message->getFile()); + $this->assertEquals(14, $message->getLine()); + } + + /** + * @covers Monolog\Formatter\GelfMessageFormatter::format + * @expectedException InvalidArgumentException + */ + public function testFormatInvalidFails() + { + $formatter = new GelfMessageFormatter(); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + ); + + $formatter->format($record); + } + + /** + * @covers Monolog\Formatter\GelfMessageFormatter::format + */ + public function testFormatWithContext() + { + $formatter = new GelfMessageFormatter(); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('from' => 'logger'), + 'datetime' => new \DateTime("@0"), + 'extra' => array('key' => 'pair'), + 'message' => 'log', + ); + + $message = $formatter->format($record); + + $this->assertInstanceOf('Gelf\Message', $message); + + $message_array = $message->toArray(); + + $this->assertArrayHasKey('_ctxt_from', $message_array); + $this->assertEquals('logger', $message_array['_ctxt_from']); + + // Test with extraPrefix + $formatter = new GelfMessageFormatter(null, null, 'CTX'); + $message = $formatter->format($record); + + $this->assertInstanceOf('Gelf\Message', $message); + + $message_array = $message->toArray(); + + $this->assertArrayHasKey('_CTXfrom', $message_array); + $this->assertEquals('logger', $message_array['_CTXfrom']); + } + + /** + * @covers Monolog\Formatter\GelfMessageFormatter::format + */ + public function testFormatWithContextContainingException() + { + $formatter = new GelfMessageFormatter(); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('from' => 'logger', 'exception' => array( + 'class' => '\Exception', + 'file' => '/some/file/in/dir.php:56', + 'trace' => array('/some/file/1.php:23', '/some/file/2.php:3'), + )), + 'datetime' => new \DateTime("@0"), + 'extra' => array(), + 'message' => 'log', + ); + + $message = $formatter->format($record); + + $this->assertInstanceOf('Gelf\Message', $message); + + $this->assertEquals("/some/file/in/dir.php", $message->getFile()); + $this->assertEquals("56", $message->getLine()); + } + + /** + * @covers Monolog\Formatter\GelfMessageFormatter::format + */ + public function testFormatWithExtra() + { + $formatter = new GelfMessageFormatter(); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('from' => 'logger'), + 'datetime' => new \DateTime("@0"), + 'extra' => array('key' => 'pair'), + 'message' => 'log', + ); + + $message = $formatter->format($record); + + $this->assertInstanceOf('Gelf\Message', $message); + + $message_array = $message->toArray(); + + $this->assertArrayHasKey('_key', $message_array); + $this->assertEquals('pair', $message_array['_key']); + + // Test with extraPrefix + $formatter = new GelfMessageFormatter(null, 'EXT'); + $message = $formatter->format($record); + + $this->assertInstanceOf('Gelf\Message', $message); + + $message_array = $message->toArray(); + + $this->assertArrayHasKey('_EXTkey', $message_array); + $this->assertEquals('pair', $message_array['_EXTkey']); + } + + public function testFormatWithLargeData() + { + $formatter = new GelfMessageFormatter(); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('exception' => str_repeat(' ', 32767)), + 'datetime' => new \DateTime("@0"), + 'extra' => array('key' => str_repeat(' ', 32767)), + 'message' => 'log' + ); + $message = $formatter->format($record); + $messageArray = $message->toArray(); + + // 200 for padding + metadata + $length = 200; + + foreach ($messageArray as $key => $value) { + if (!in_array($key, array('level', 'timestamp'))) { + $length += strlen($value); + } + } + + $this->assertLessThanOrEqual(65792, $length, 'The message length is no longer than the maximum allowed length'); + } + + public function testFormatWithUnlimitedLength() + { + $formatter = new GelfMessageFormatter('LONG_SYSTEM_NAME', null, 'ctxt_', PHP_INT_MAX); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('exception' => str_repeat(' ', 32767 * 2)), + 'datetime' => new \DateTime("@0"), + 'extra' => array('key' => str_repeat(' ', 32767 * 2)), + 'message' => 'log' + ); + $message = $formatter->format($record); + $messageArray = $message->toArray(); + + // 200 for padding + metadata + $length = 200; + + foreach ($messageArray as $key => $value) { + if (!in_array($key, array('level', 'timestamp'))) { + $length += strlen($value); + } + } + + $this->assertGreaterThanOrEqual(131289, $length, 'The message should not be truncated'); + } + + private function isLegacy() + { + return interface_exists('\Gelf\IMessagePublisher'); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/JsonFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/JsonFormatterTest.php new file mode 100644 index 00000000..24b06cc9 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Formatter/JsonFormatterTest.php @@ -0,0 +1,219 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Formatter; + +use Monolog\Logger; +use Monolog\TestCase; + +class JsonFormatterTest extends TestCase +{ + /** + * @covers Monolog\Formatter\JsonFormatter::__construct + * @covers Monolog\Formatter\JsonFormatter::getBatchMode + * @covers Monolog\Formatter\JsonFormatter::isAppendingNewlines + */ + public function testConstruct() + { + $formatter = new JsonFormatter(); + $this->assertEquals(JsonFormatter::BATCH_MODE_JSON, $formatter->getBatchMode()); + $this->assertEquals(true, $formatter->isAppendingNewlines()); + $formatter = new JsonFormatter(JsonFormatter::BATCH_MODE_NEWLINES, false); + $this->assertEquals(JsonFormatter::BATCH_MODE_NEWLINES, $formatter->getBatchMode()); + $this->assertEquals(false, $formatter->isAppendingNewlines()); + } + + /** + * @covers Monolog\Formatter\JsonFormatter::format + */ + public function testFormat() + { + $formatter = new JsonFormatter(); + $record = $this->getRecord(); + $this->assertEquals(json_encode($record)."\n", $formatter->format($record)); + + $formatter = new JsonFormatter(JsonFormatter::BATCH_MODE_JSON, false); + $record = $this->getRecord(); + $this->assertEquals(json_encode($record), $formatter->format($record)); + } + + /** + * @covers Monolog\Formatter\JsonFormatter::formatBatch + * @covers Monolog\Formatter\JsonFormatter::formatBatchJson + */ + public function testFormatBatch() + { + $formatter = new JsonFormatter(); + $records = array( + $this->getRecord(Logger::WARNING), + $this->getRecord(Logger::DEBUG), + ); + $this->assertEquals(json_encode($records), $formatter->formatBatch($records)); + } + + /** + * @covers Monolog\Formatter\JsonFormatter::formatBatch + * @covers Monolog\Formatter\JsonFormatter::formatBatchNewlines + */ + public function testFormatBatchNewlines() + { + $formatter = new JsonFormatter(JsonFormatter::BATCH_MODE_NEWLINES); + $records = $expected = array( + $this->getRecord(Logger::WARNING), + $this->getRecord(Logger::DEBUG), + ); + array_walk($expected, function (&$value, $key) { + $value = json_encode($value); + }); + $this->assertEquals(implode("\n", $expected), $formatter->formatBatch($records)); + } + + public function testDefFormatWithException() + { + $formatter = new JsonFormatter(); + $exception = new \RuntimeException('Foo'); + $formattedException = $this->formatException($exception); + + $message = $this->formatRecordWithExceptionInContext($formatter, $exception); + + $this->assertContextContainsFormattedException($formattedException, $message); + } + + public function testDefFormatWithPreviousException() + { + $formatter = new JsonFormatter(); + $exception = new \RuntimeException('Foo', 0, new \LogicException('Wut?')); + $formattedPrevException = $this->formatException($exception->getPrevious()); + $formattedException = $this->formatException($exception, $formattedPrevException); + + $message = $this->formatRecordWithExceptionInContext($formatter, $exception); + + $this->assertContextContainsFormattedException($formattedException, $message); + } + + public function testDefFormatWithThrowable() + { + if (!class_exists('Error') || !is_subclass_of('Error', 'Throwable')) { + $this->markTestSkipped('Requires PHP >=7'); + } + + $formatter = new JsonFormatter(); + $throwable = new \Error('Foo'); + $formattedThrowable = $this->formatException($throwable); + + $message = $this->formatRecordWithExceptionInContext($formatter, $throwable); + + $this->assertContextContainsFormattedException($formattedThrowable, $message); + } + + /** + * @param string $expected + * @param string $actual + * + * @internal param string $exception + */ + private function assertContextContainsFormattedException($expected, $actual) + { + $this->assertEquals( + '{"level_name":"CRITICAL","channel":"core","context":{"exception":'.$expected.'},"datetime":null,"extra":[],"message":"foobar"}'."\n", + $actual + ); + } + + /** + * @param JsonFormatter $formatter + * @param \Exception|\Throwable $exception + * + * @return string + */ + private function formatRecordWithExceptionInContext(JsonFormatter $formatter, $exception) + { + $message = $formatter->format(array( + 'level_name' => 'CRITICAL', + 'channel' => 'core', + 'context' => array('exception' => $exception), + 'datetime' => null, + 'extra' => array(), + 'message' => 'foobar', + )); + return $message; + } + + /** + * @param \Exception|\Throwable $exception + * + * @return string + */ + private function formatExceptionFilePathWithLine($exception) + { + $options = 0; + if (version_compare(PHP_VERSION, '5.4.0', '>=')) { + $options = JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE; + } + $path = substr(json_encode($exception->getFile(), $options), 1, -1); + return $path . ':' . $exception->getLine(); + } + + /** + * @param \Exception|\Throwable $exception + * + * @param null|string $previous + * + * @return string + */ + private function formatException($exception, $previous = null) + { + $formattedException = + '{"class":"' . get_class($exception) . + '","message":"' . $exception->getMessage() . + '","code":' . $exception->getCode() . + ',"file":"' . $this->formatExceptionFilePathWithLine($exception) . + ($previous ? '","previous":' . $previous : '"') . + '}'; + return $formattedException; + } + + public function testNormalizeHandleLargeArraysWithExactly1000Items() + { + $formatter = new NormalizerFormatter(); + $largeArray = range(1, 1000); + + $res = $formatter->format(array( + 'level_name' => 'CRITICAL', + 'channel' => 'test', + 'message' => 'bar', + 'context' => array($largeArray), + 'datetime' => new \DateTime, + 'extra' => array(), + )); + + $this->assertCount(1000, $res['context'][0]); + $this->assertArrayNotHasKey('...', $res['context'][0]); + } + + public function testNormalizeHandleLargeArrays() + { + $formatter = new NormalizerFormatter(); + $largeArray = range(1, 2000); + + $res = $formatter->format(array( + 'level_name' => 'CRITICAL', + 'channel' => 'test', + 'message' => 'bar', + 'context' => array($largeArray), + 'datetime' => new \DateTime, + 'extra' => array(), + )); + + $this->assertCount(1001, $res['context'][0]); + $this->assertEquals('Over 1000 items (2000 total), aborting normalization', $res['context'][0]['...']); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/LineFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/LineFormatterTest.php new file mode 100644 index 00000000..310d93ca --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Formatter/LineFormatterTest.php @@ -0,0 +1,222 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Formatter; + +/** + * @covers Monolog\Formatter\LineFormatter + */ +class LineFormatterTest extends \PHPUnit_Framework_TestCase +{ + public function testDefFormatWithString() + { + $formatter = new LineFormatter(null, 'Y-m-d'); + $message = $formatter->format(array( + 'level_name' => 'WARNING', + 'channel' => 'log', + 'context' => array(), + 'message' => 'foo', + 'datetime' => new \DateTime, + 'extra' => array(), + )); + $this->assertEquals('['.date('Y-m-d').'] log.WARNING: foo [] []'."\n", $message); + } + + public function testDefFormatWithArrayContext() + { + $formatter = new LineFormatter(null, 'Y-m-d'); + $message = $formatter->format(array( + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'message' => 'foo', + 'datetime' => new \DateTime, + 'extra' => array(), + 'context' => array( + 'foo' => 'bar', + 'baz' => 'qux', + 'bool' => false, + 'null' => null, + ), + )); + $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: foo {"foo":"bar","baz":"qux","bool":false,"null":null} []'."\n", $message); + } + + public function testDefFormatExtras() + { + $formatter = new LineFormatter(null, 'Y-m-d'); + $message = $formatter->format(array( + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array(), + 'datetime' => new \DateTime, + 'extra' => array('ip' => '127.0.0.1'), + 'message' => 'log', + )); + $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: log [] {"ip":"127.0.0.1"}'."\n", $message); + } + + public function testFormatExtras() + { + $formatter = new LineFormatter("[%datetime%] %channel%.%level_name%: %message% %context% %extra.file% %extra%\n", 'Y-m-d'); + $message = $formatter->format(array( + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array(), + 'datetime' => new \DateTime, + 'extra' => array('ip' => '127.0.0.1', 'file' => 'test'), + 'message' => 'log', + )); + $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: log [] test {"ip":"127.0.0.1"}'."\n", $message); + } + + public function testContextAndExtraOptionallyNotShownIfEmpty() + { + $formatter = new LineFormatter(null, 'Y-m-d', false, true); + $message = $formatter->format(array( + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array(), + 'datetime' => new \DateTime, + 'extra' => array(), + 'message' => 'log', + )); + $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: log '."\n", $message); + } + + public function testContextAndExtraReplacement() + { + $formatter = new LineFormatter('%context.foo% => %extra.foo%'); + $message = $formatter->format(array( + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('foo' => 'bar'), + 'datetime' => new \DateTime, + 'extra' => array('foo' => 'xbar'), + 'message' => 'log', + )); + $this->assertEquals('bar => xbar', $message); + } + + public function testDefFormatWithObject() + { + $formatter = new LineFormatter(null, 'Y-m-d'); + $message = $formatter->format(array( + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array(), + 'datetime' => new \DateTime, + 'extra' => array('foo' => new TestFoo, 'bar' => new TestBar, 'baz' => array(), 'res' => fopen('php://memory', 'rb')), + 'message' => 'foobar', + )); + + $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: foobar [] {"foo":"[object] (Monolog\\\\Formatter\\\\TestFoo: {\\"foo\\":\\"foo\\"})","bar":"[object] (Monolog\\\\Formatter\\\\TestBar: bar)","baz":[],"res":"[resource] (stream)"}'."\n", $message); + } + + public function testDefFormatWithException() + { + $formatter = new LineFormatter(null, 'Y-m-d'); + $message = $formatter->format(array( + 'level_name' => 'CRITICAL', + 'channel' => 'core', + 'context' => array('exception' => new \RuntimeException('Foo')), + 'datetime' => new \DateTime, + 'extra' => array(), + 'message' => 'foobar', + )); + + $path = str_replace('\\/', '/', json_encode(__FILE__)); + + $this->assertEquals('['.date('Y-m-d').'] core.CRITICAL: foobar {"exception":"[object] (RuntimeException(code: 0): Foo at '.substr($path, 1, -1).':'.(__LINE__ - 8).')"} []'."\n", $message); + } + + public function testDefFormatWithPreviousException() + { + $formatter = new LineFormatter(null, 'Y-m-d'); + $previous = new \LogicException('Wut?'); + $message = $formatter->format(array( + 'level_name' => 'CRITICAL', + 'channel' => 'core', + 'context' => array('exception' => new \RuntimeException('Foo', 0, $previous)), + 'datetime' => new \DateTime, + 'extra' => array(), + 'message' => 'foobar', + )); + + $path = str_replace('\\/', '/', json_encode(__FILE__)); + + $this->assertEquals('['.date('Y-m-d').'] core.CRITICAL: foobar {"exception":"[object] (RuntimeException(code: 0): Foo at '.substr($path, 1, -1).':'.(__LINE__ - 8).', LogicException(code: 0): Wut? at '.substr($path, 1, -1).':'.(__LINE__ - 12).')"} []'."\n", $message); + } + + public function testBatchFormat() + { + $formatter = new LineFormatter(null, 'Y-m-d'); + $message = $formatter->formatBatch(array( + array( + 'level_name' => 'CRITICAL', + 'channel' => 'test', + 'message' => 'bar', + 'context' => array(), + 'datetime' => new \DateTime, + 'extra' => array(), + ), + array( + 'level_name' => 'WARNING', + 'channel' => 'log', + 'message' => 'foo', + 'context' => array(), + 'datetime' => new \DateTime, + 'extra' => array(), + ), + )); + $this->assertEquals('['.date('Y-m-d').'] test.CRITICAL: bar [] []'."\n".'['.date('Y-m-d').'] log.WARNING: foo [] []'."\n", $message); + } + + public function testFormatShouldStripInlineLineBreaks() + { + $formatter = new LineFormatter(null, 'Y-m-d'); + $message = $formatter->format( + array( + 'message' => "foo\nbar", + 'context' => array(), + 'extra' => array(), + ) + ); + + $this->assertRegExp('/foo bar/', $message); + } + + public function testFormatShouldNotStripInlineLineBreaksWhenFlagIsSet() + { + $formatter = new LineFormatter(null, 'Y-m-d', true); + $message = $formatter->format( + array( + 'message' => "foo\nbar", + 'context' => array(), + 'extra' => array(), + ) + ); + + $this->assertRegExp('/foo\nbar/', $message); + } +} + +class TestFoo +{ + public $foo = 'foo'; +} + +class TestBar +{ + public function __toString() + { + return 'bar'; + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/LogglyFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/LogglyFormatterTest.php new file mode 100644 index 00000000..6d59b3f3 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Formatter/LogglyFormatterTest.php @@ -0,0 +1,40 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Formatter; + +use Monolog\TestCase; + +class LogglyFormatterTest extends TestCase +{ + /** + * @covers Monolog\Formatter\LogglyFormatter::__construct + */ + public function testConstruct() + { + $formatter = new LogglyFormatter(); + $this->assertEquals(LogglyFormatter::BATCH_MODE_NEWLINES, $formatter->getBatchMode()); + $formatter = new LogglyFormatter(LogglyFormatter::BATCH_MODE_JSON); + $this->assertEquals(LogglyFormatter::BATCH_MODE_JSON, $formatter->getBatchMode()); + } + + /** + * @covers Monolog\Formatter\LogglyFormatter::format + */ + public function testFormat() + { + $formatter = new LogglyFormatter(); + $record = $this->getRecord(); + $formatted_decoded = json_decode($formatter->format($record), true); + $this->assertArrayHasKey("timestamp", $formatted_decoded); + $this->assertEquals(new \DateTime($formatted_decoded["timestamp"]), $record["datetime"]); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/LogstashFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/LogstashFormatterTest.php new file mode 100644 index 00000000..9f6b1cc4 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Formatter/LogstashFormatterTest.php @@ -0,0 +1,333 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Formatter; + +use Monolog\Logger; + +class LogstashFormatterTest extends \PHPUnit_Framework_TestCase +{ + public function tearDown() + { + \PHPUnit_Framework_Error_Warning::$enabled = true; + + return parent::tearDown(); + } + + /** + * @covers Monolog\Formatter\LogstashFormatter::format + */ + public function testDefaultFormatter() + { + $formatter = new LogstashFormatter('test', 'hostname'); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array(), + 'datetime' => new \DateTime("@0"), + 'extra' => array(), + 'message' => 'log', + ); + + $message = json_decode($formatter->format($record), true); + + $this->assertEquals("1970-01-01T00:00:00.000000+00:00", $message['@timestamp']); + $this->assertEquals('log', $message['@message']); + $this->assertEquals('meh', $message['@fields']['channel']); + $this->assertContains('meh', $message['@tags']); + $this->assertEquals(Logger::ERROR, $message['@fields']['level']); + $this->assertEquals('test', $message['@type']); + $this->assertEquals('hostname', $message['@source']); + + $formatter = new LogstashFormatter('mysystem'); + + $message = json_decode($formatter->format($record), true); + + $this->assertEquals('mysystem', $message['@type']); + } + + /** + * @covers Monolog\Formatter\LogstashFormatter::format + */ + public function testFormatWithFileAndLine() + { + $formatter = new LogstashFormatter('test'); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('from' => 'logger'), + 'datetime' => new \DateTime("@0"), + 'extra' => array('file' => 'test', 'line' => 14), + 'message' => 'log', + ); + + $message = json_decode($formatter->format($record), true); + + $this->assertEquals('test', $message['@fields']['file']); + $this->assertEquals(14, $message['@fields']['line']); + } + + /** + * @covers Monolog\Formatter\LogstashFormatter::format + */ + public function testFormatWithContext() + { + $formatter = new LogstashFormatter('test'); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('from' => 'logger'), + 'datetime' => new \DateTime("@0"), + 'extra' => array('key' => 'pair'), + 'message' => 'log', + ); + + $message = json_decode($formatter->format($record), true); + + $message_array = $message['@fields']; + + $this->assertArrayHasKey('ctxt_from', $message_array); + $this->assertEquals('logger', $message_array['ctxt_from']); + + // Test with extraPrefix + $formatter = new LogstashFormatter('test', null, null, 'CTX'); + $message = json_decode($formatter->format($record), true); + + $message_array = $message['@fields']; + + $this->assertArrayHasKey('CTXfrom', $message_array); + $this->assertEquals('logger', $message_array['CTXfrom']); + } + + /** + * @covers Monolog\Formatter\LogstashFormatter::format + */ + public function testFormatWithExtra() + { + $formatter = new LogstashFormatter('test'); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('from' => 'logger'), + 'datetime' => new \DateTime("@0"), + 'extra' => array('key' => 'pair'), + 'message' => 'log', + ); + + $message = json_decode($formatter->format($record), true); + + $message_array = $message['@fields']; + + $this->assertArrayHasKey('key', $message_array); + $this->assertEquals('pair', $message_array['key']); + + // Test with extraPrefix + $formatter = new LogstashFormatter('test', null, 'EXT'); + $message = json_decode($formatter->format($record), true); + + $message_array = $message['@fields']; + + $this->assertArrayHasKey('EXTkey', $message_array); + $this->assertEquals('pair', $message_array['EXTkey']); + } + + public function testFormatWithApplicationName() + { + $formatter = new LogstashFormatter('app', 'test'); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('from' => 'logger'), + 'datetime' => new \DateTime("@0"), + 'extra' => array('key' => 'pair'), + 'message' => 'log', + ); + + $message = json_decode($formatter->format($record), true); + + $this->assertArrayHasKey('@type', $message); + $this->assertEquals('app', $message['@type']); + } + + /** + * @covers Monolog\Formatter\LogstashFormatter::format + */ + public function testDefaultFormatterV1() + { + $formatter = new LogstashFormatter('test', 'hostname', null, 'ctxt_', LogstashFormatter::V1); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array(), + 'datetime' => new \DateTime("@0"), + 'extra' => array(), + 'message' => 'log', + ); + + $message = json_decode($formatter->format($record), true); + + $this->assertEquals("1970-01-01T00:00:00.000000+00:00", $message['@timestamp']); + $this->assertEquals("1", $message['@version']); + $this->assertEquals('log', $message['message']); + $this->assertEquals('meh', $message['channel']); + $this->assertEquals('ERROR', $message['level']); + $this->assertEquals('test', $message['type']); + $this->assertEquals('hostname', $message['host']); + + $formatter = new LogstashFormatter('mysystem', null, null, 'ctxt_', LogstashFormatter::V1); + + $message = json_decode($formatter->format($record), true); + + $this->assertEquals('mysystem', $message['type']); + } + + /** + * @covers Monolog\Formatter\LogstashFormatter::format + */ + public function testFormatWithFileAndLineV1() + { + $formatter = new LogstashFormatter('test', null, null, 'ctxt_', LogstashFormatter::V1); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('from' => 'logger'), + 'datetime' => new \DateTime("@0"), + 'extra' => array('file' => 'test', 'line' => 14), + 'message' => 'log', + ); + + $message = json_decode($formatter->format($record), true); + + $this->assertEquals('test', $message['file']); + $this->assertEquals(14, $message['line']); + } + + /** + * @covers Monolog\Formatter\LogstashFormatter::format + */ + public function testFormatWithContextV1() + { + $formatter = new LogstashFormatter('test', null, null, 'ctxt_', LogstashFormatter::V1); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('from' => 'logger'), + 'datetime' => new \DateTime("@0"), + 'extra' => array('key' => 'pair'), + 'message' => 'log', + ); + + $message = json_decode($formatter->format($record), true); + + $this->assertArrayHasKey('ctxt_from', $message); + $this->assertEquals('logger', $message['ctxt_from']); + + // Test with extraPrefix + $formatter = new LogstashFormatter('test', null, null, 'CTX', LogstashFormatter::V1); + $message = json_decode($formatter->format($record), true); + + $this->assertArrayHasKey('CTXfrom', $message); + $this->assertEquals('logger', $message['CTXfrom']); + } + + /** + * @covers Monolog\Formatter\LogstashFormatter::format + */ + public function testFormatWithExtraV1() + { + $formatter = new LogstashFormatter('test', null, null, 'ctxt_', LogstashFormatter::V1); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('from' => 'logger'), + 'datetime' => new \DateTime("@0"), + 'extra' => array('key' => 'pair'), + 'message' => 'log', + ); + + $message = json_decode($formatter->format($record), true); + + $this->assertArrayHasKey('key', $message); + $this->assertEquals('pair', $message['key']); + + // Test with extraPrefix + $formatter = new LogstashFormatter('test', null, 'EXT', 'ctxt_', LogstashFormatter::V1); + $message = json_decode($formatter->format($record), true); + + $this->assertArrayHasKey('EXTkey', $message); + $this->assertEquals('pair', $message['EXTkey']); + } + + public function testFormatWithApplicationNameV1() + { + $formatter = new LogstashFormatter('app', 'test', null, 'ctxt_', LogstashFormatter::V1); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('from' => 'logger'), + 'datetime' => new \DateTime("@0"), + 'extra' => array('key' => 'pair'), + 'message' => 'log', + ); + + $message = json_decode($formatter->format($record), true); + + $this->assertArrayHasKey('type', $message); + $this->assertEquals('app', $message['type']); + } + + public function testFormatWithLatin9Data() + { + if (version_compare(PHP_VERSION, '5.5.0', '<')) { + // Ignore the warning that will be emitted by PHP <5.5.0 + \PHPUnit_Framework_Error_Warning::$enabled = false; + } + $formatter = new LogstashFormatter('test', 'hostname'); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => '¯\_(ツ)_/¯', + 'context' => array(), + 'datetime' => new \DateTime("@0"), + 'extra' => array( + 'user_agent' => "\xD6WN; FBCR/OrangeEspa\xF1a; Vers\xE3o/4.0; F\xE4rist", + ), + 'message' => 'log', + ); + + $message = json_decode($formatter->format($record), true); + + $this->assertEquals("1970-01-01T00:00:00.000000+00:00", $message['@timestamp']); + $this->assertEquals('log', $message['@message']); + $this->assertEquals('¯\_(ツ)_/¯', $message['@fields']['channel']); + $this->assertContains('¯\_(ツ)_/¯', $message['@tags']); + $this->assertEquals(Logger::ERROR, $message['@fields']['level']); + $this->assertEquals('test', $message['@type']); + $this->assertEquals('hostname', $message['@source']); + if (version_compare(PHP_VERSION, '5.5.0', '>=')) { + $this->assertEquals('ÖWN; FBCR/OrangeEspaña; Versão/4.0; Färist', $message['@fields']['user_agent']); + } else { + // PHP <5.5 does not return false for an element encoding failure, + // instead it emits a warning (possibly) and nulls the value. + $this->assertEquals(null, $message['@fields']['user_agent']); + } + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/MongoDBFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/MongoDBFormatterTest.php new file mode 100644 index 00000000..52e699e0 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Formatter/MongoDBFormatterTest.php @@ -0,0 +1,262 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Formatter; + +use Monolog\Logger; + +/** + * @author Florian Plattner + */ +class MongoDBFormatterTest extends \PHPUnit_Framework_TestCase +{ + public function setUp() + { + if (!class_exists('MongoDate')) { + $this->markTestSkipped('mongo extension not installed'); + } + } + + public function constructArgumentProvider() + { + return array( + array(1, true, 1, true), + array(0, false, 0, false), + ); + } + + /** + * @param $traceDepth + * @param $traceAsString + * @param $expectedTraceDepth + * @param $expectedTraceAsString + * + * @dataProvider constructArgumentProvider + */ + public function testConstruct($traceDepth, $traceAsString, $expectedTraceDepth, $expectedTraceAsString) + { + $formatter = new MongoDBFormatter($traceDepth, $traceAsString); + + $reflTrace = new \ReflectionProperty($formatter, 'exceptionTraceAsString'); + $reflTrace->setAccessible(true); + $this->assertEquals($expectedTraceAsString, $reflTrace->getValue($formatter)); + + $reflDepth = new\ReflectionProperty($formatter, 'maxNestingLevel'); + $reflDepth->setAccessible(true); + $this->assertEquals($expectedTraceDepth, $reflDepth->getValue($formatter)); + } + + public function testSimpleFormat() + { + $record = array( + 'message' => 'some log message', + 'context' => array(), + 'level' => Logger::WARNING, + 'level_name' => Logger::getLevelName(Logger::WARNING), + 'channel' => 'test', + 'datetime' => new \DateTime('2014-02-01 00:00:00'), + 'extra' => array(), + ); + + $formatter = new MongoDBFormatter(); + $formattedRecord = $formatter->format($record); + + $this->assertCount(7, $formattedRecord); + $this->assertEquals('some log message', $formattedRecord['message']); + $this->assertEquals(array(), $formattedRecord['context']); + $this->assertEquals(Logger::WARNING, $formattedRecord['level']); + $this->assertEquals(Logger::getLevelName(Logger::WARNING), $formattedRecord['level_name']); + $this->assertEquals('test', $formattedRecord['channel']); + $this->assertInstanceOf('\MongoDate', $formattedRecord['datetime']); + $this->assertEquals('0.00000000 1391212800', $formattedRecord['datetime']->__toString()); + $this->assertEquals(array(), $formattedRecord['extra']); + } + + public function testRecursiveFormat() + { + $someObject = new \stdClass(); + $someObject->foo = 'something'; + $someObject->bar = 'stuff'; + + $record = array( + 'message' => 'some log message', + 'context' => array( + 'stuff' => new \DateTime('2014-02-01 02:31:33'), + 'some_object' => $someObject, + 'context_string' => 'some string', + 'context_int' => 123456, + 'except' => new \Exception('exception message', 987), + ), + 'level' => Logger::WARNING, + 'level_name' => Logger::getLevelName(Logger::WARNING), + 'channel' => 'test', + 'datetime' => new \DateTime('2014-02-01 00:00:00'), + 'extra' => array(), + ); + + $formatter = new MongoDBFormatter(); + $formattedRecord = $formatter->format($record); + + $this->assertCount(5, $formattedRecord['context']); + $this->assertInstanceOf('\MongoDate', $formattedRecord['context']['stuff']); + $this->assertEquals('0.00000000 1391221893', $formattedRecord['context']['stuff']->__toString()); + $this->assertEquals( + array( + 'foo' => 'something', + 'bar' => 'stuff', + 'class' => 'stdClass', + ), + $formattedRecord['context']['some_object'] + ); + $this->assertEquals('some string', $formattedRecord['context']['context_string']); + $this->assertEquals(123456, $formattedRecord['context']['context_int']); + + $this->assertCount(5, $formattedRecord['context']['except']); + $this->assertEquals('exception message', $formattedRecord['context']['except']['message']); + $this->assertEquals(987, $formattedRecord['context']['except']['code']); + $this->assertInternalType('string', $formattedRecord['context']['except']['file']); + $this->assertInternalType('integer', $formattedRecord['context']['except']['code']); + $this->assertInternalType('string', $formattedRecord['context']['except']['trace']); + $this->assertEquals('Exception', $formattedRecord['context']['except']['class']); + } + + public function testFormatDepthArray() + { + $record = array( + 'message' => 'some log message', + 'context' => array( + 'nest2' => array( + 'property' => 'anything', + 'nest3' => array( + 'nest4' => 'value', + 'property' => 'nothing', + ), + ), + ), + 'level' => Logger::WARNING, + 'level_name' => Logger::getLevelName(Logger::WARNING), + 'channel' => 'test', + 'datetime' => new \DateTime('2014-02-01 00:00:00'), + 'extra' => array(), + ); + + $formatter = new MongoDBFormatter(2); + $formattedResult = $formatter->format($record); + + $this->assertEquals( + array( + 'nest2' => array( + 'property' => 'anything', + 'nest3' => '[...]', + ), + ), + $formattedResult['context'] + ); + } + + public function testFormatDepthArrayInfiniteNesting() + { + $record = array( + 'message' => 'some log message', + 'context' => array( + 'nest2' => array( + 'property' => 'something', + 'nest3' => array( + 'property' => 'anything', + 'nest4' => array( + 'property' => 'nothing', + ), + ), + ), + ), + 'level' => Logger::WARNING, + 'level_name' => Logger::getLevelName(Logger::WARNING), + 'channel' => 'test', + 'datetime' => new \DateTime('2014-02-01 00:00:00'), + 'extra' => array(), + ); + + $formatter = new MongoDBFormatter(0); + $formattedResult = $formatter->format($record); + + $this->assertEquals( + array( + 'nest2' => array( + 'property' => 'something', + 'nest3' => array( + 'property' => 'anything', + 'nest4' => array( + 'property' => 'nothing', + ), + ), + ), + ), + $formattedResult['context'] + ); + } + + public function testFormatDepthObjects() + { + $someObject = new \stdClass(); + $someObject->property = 'anything'; + $someObject->nest3 = new \stdClass(); + $someObject->nest3->property = 'nothing'; + $someObject->nest3->nest4 = 'invisible'; + + $record = array( + 'message' => 'some log message', + 'context' => array( + 'nest2' => $someObject, + ), + 'level' => Logger::WARNING, + 'level_name' => Logger::getLevelName(Logger::WARNING), + 'channel' => 'test', + 'datetime' => new \DateTime('2014-02-01 00:00:00'), + 'extra' => array(), + ); + + $formatter = new MongoDBFormatter(2, true); + $formattedResult = $formatter->format($record); + + $this->assertEquals( + array( + 'nest2' => array( + 'property' => 'anything', + 'nest3' => '[...]', + 'class' => 'stdClass', + ), + ), + $formattedResult['context'] + ); + } + + public function testFormatDepthException() + { + $record = array( + 'message' => 'some log message', + 'context' => array( + 'nest2' => new \Exception('exception message', 987), + ), + 'level' => Logger::WARNING, + 'level_name' => Logger::getLevelName(Logger::WARNING), + 'channel' => 'test', + 'datetime' => new \DateTime('2014-02-01 00:00:00'), + 'extra' => array(), + ); + + $formatter = new MongoDBFormatter(2, false); + $formattedRecord = $formatter->format($record); + + $this->assertEquals('exception message', $formattedRecord['context']['nest2']['message']); + $this->assertEquals(987, $formattedRecord['context']['nest2']['code']); + $this->assertEquals('[...]', $formattedRecord['context']['nest2']['trace']); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/NormalizerFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/NormalizerFormatterTest.php new file mode 100644 index 00000000..bafd1c74 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Formatter/NormalizerFormatterTest.php @@ -0,0 +1,481 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Formatter; + +/** + * @covers Monolog\Formatter\NormalizerFormatter + */ +class NormalizerFormatterTest extends \PHPUnit_Framework_TestCase +{ + public function tearDown() + { + \PHPUnit_Framework_Error_Warning::$enabled = true; + + return parent::tearDown(); + } + + public function testFormat() + { + $formatter = new NormalizerFormatter('Y-m-d'); + $formatted = $formatter->format(array( + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'message' => 'foo', + 'datetime' => new \DateTime, + 'extra' => array('foo' => new TestFooNorm, 'bar' => new TestBarNorm, 'baz' => array(), 'res' => fopen('php://memory', 'rb')), + 'context' => array( + 'foo' => 'bar', + 'baz' => 'qux', + 'inf' => INF, + '-inf' => -INF, + 'nan' => acos(4), + ), + )); + + $this->assertEquals(array( + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'message' => 'foo', + 'datetime' => date('Y-m-d'), + 'extra' => array( + 'foo' => '[object] (Monolog\\Formatter\\TestFooNorm: {"foo":"foo"})', + 'bar' => '[object] (Monolog\\Formatter\\TestBarNorm: bar)', + 'baz' => array(), + 'res' => '[resource] (stream)', + ), + 'context' => array( + 'foo' => 'bar', + 'baz' => 'qux', + 'inf' => 'INF', + '-inf' => '-INF', + 'nan' => 'NaN', + ), + ), $formatted); + } + + public function testFormatExceptions() + { + $formatter = new NormalizerFormatter('Y-m-d'); + $e = new \LogicException('bar'); + $e2 = new \RuntimeException('foo', 0, $e); + $formatted = $formatter->format(array( + 'exception' => $e2, + )); + + $this->assertGreaterThan(5, count($formatted['exception']['trace'])); + $this->assertTrue(isset($formatted['exception']['previous'])); + unset($formatted['exception']['trace'], $formatted['exception']['previous']); + + $this->assertEquals(array( + 'exception' => array( + 'class' => get_class($e2), + 'message' => $e2->getMessage(), + 'code' => $e2->getCode(), + 'file' => $e2->getFile().':'.$e2->getLine(), + ), + ), $formatted); + } + + public function testFormatSoapFaultException() + { + if (!class_exists('SoapFault')) { + $this->markTestSkipped('Requires the soap extension'); + } + + $formatter = new NormalizerFormatter('Y-m-d'); + $e = new \SoapFault('foo', 'bar', 'hello', 'world'); + $formatted = $formatter->format(array( + 'exception' => $e, + )); + + unset($formatted['exception']['trace']); + + $this->assertEquals(array( + 'exception' => array( + 'class' => 'SoapFault', + 'message' => 'bar', + 'code' => 0, + 'file' => $e->getFile().':'.$e->getLine(), + 'faultcode' => 'foo', + 'faultactor' => 'hello', + 'detail' => 'world', + ), + ), $formatted); + } + + public function testFormatToStringExceptionHandle() + { + $formatter = new NormalizerFormatter('Y-m-d'); + $this->setExpectedException('RuntimeException', 'Could not convert to string'); + $formatter->format(array( + 'myObject' => new TestToStringError(), + )); + } + + public function testBatchFormat() + { + $formatter = new NormalizerFormatter('Y-m-d'); + $formatted = $formatter->formatBatch(array( + array( + 'level_name' => 'CRITICAL', + 'channel' => 'test', + 'message' => 'bar', + 'context' => array(), + 'datetime' => new \DateTime, + 'extra' => array(), + ), + array( + 'level_name' => 'WARNING', + 'channel' => 'log', + 'message' => 'foo', + 'context' => array(), + 'datetime' => new \DateTime, + 'extra' => array(), + ), + )); + $this->assertEquals(array( + array( + 'level_name' => 'CRITICAL', + 'channel' => 'test', + 'message' => 'bar', + 'context' => array(), + 'datetime' => date('Y-m-d'), + 'extra' => array(), + ), + array( + 'level_name' => 'WARNING', + 'channel' => 'log', + 'message' => 'foo', + 'context' => array(), + 'datetime' => date('Y-m-d'), + 'extra' => array(), + ), + ), $formatted); + } + + /** + * Test issue #137 + */ + public function testIgnoresRecursiveObjectReferences() + { + // set up the recursion + $foo = new \stdClass(); + $bar = new \stdClass(); + + $foo->bar = $bar; + $bar->foo = $foo; + + // set an error handler to assert that the error is not raised anymore + $that = $this; + set_error_handler(function ($level, $message, $file, $line, $context) use ($that) { + if (error_reporting() & $level) { + restore_error_handler(); + $that->fail("$message should not be raised"); + } + }); + + $formatter = new NormalizerFormatter(); + $reflMethod = new \ReflectionMethod($formatter, 'toJson'); + $reflMethod->setAccessible(true); + $res = $reflMethod->invoke($formatter, array($foo, $bar), true); + + restore_error_handler(); + + $this->assertEquals(@json_encode(array($foo, $bar)), $res); + } + + public function testCanNormalizeReferences() + { + $formatter = new NormalizerFormatter(); + $x = array('foo' => 'bar'); + $y = array('x' => &$x); + $x['y'] = &$y; + $formatter->format($y); + } + + public function testIgnoresInvalidTypes() + { + // set up the recursion + $resource = fopen(__FILE__, 'r'); + + // set an error handler to assert that the error is not raised anymore + $that = $this; + set_error_handler(function ($level, $message, $file, $line, $context) use ($that) { + if (error_reporting() & $level) { + restore_error_handler(); + $that->fail("$message should not be raised"); + } + }); + + $formatter = new NormalizerFormatter(); + $reflMethod = new \ReflectionMethod($formatter, 'toJson'); + $reflMethod->setAccessible(true); + $res = $reflMethod->invoke($formatter, array($resource), true); + + restore_error_handler(); + + $this->assertEquals(@json_encode(array($resource)), $res); + } + + public function testNormalizeHandleLargeArraysWithExactly1000Items() + { + $formatter = new NormalizerFormatter(); + $largeArray = range(1, 1000); + + $res = $formatter->format(array( + 'level_name' => 'CRITICAL', + 'channel' => 'test', + 'message' => 'bar', + 'context' => array($largeArray), + 'datetime' => new \DateTime, + 'extra' => array(), + )); + + $this->assertCount(1000, $res['context'][0]); + $this->assertArrayNotHasKey('...', $res['context'][0]); + } + + public function testNormalizeHandleLargeArrays() + { + $formatter = new NormalizerFormatter(); + $largeArray = range(1, 2000); + + $res = $formatter->format(array( + 'level_name' => 'CRITICAL', + 'channel' => 'test', + 'message' => 'bar', + 'context' => array($largeArray), + 'datetime' => new \DateTime, + 'extra' => array(), + )); + + $this->assertCount(1001, $res['context'][0]); + $this->assertEquals('Over 1000 items (2000 total), aborting normalization', $res['context'][0]['...']); + } + + /** + * @expectedException RuntimeException + */ + public function testThrowsOnInvalidEncoding() + { + if (version_compare(PHP_VERSION, '5.5.0', '<')) { + // Ignore the warning that will be emitted by PHP <5.5.0 + \PHPUnit_Framework_Error_Warning::$enabled = false; + } + $formatter = new NormalizerFormatter(); + $reflMethod = new \ReflectionMethod($formatter, 'toJson'); + $reflMethod->setAccessible(true); + + // send an invalid unicode sequence as a object that can't be cleaned + $record = new \stdClass; + $record->message = "\xB1\x31"; + $res = $reflMethod->invoke($formatter, $record); + if (PHP_VERSION_ID < 50500 && $res === '{"message":null}') { + throw new \RuntimeException('PHP 5.3/5.4 throw a warning and null the value instead of returning false entirely'); + } + } + + public function testConvertsInvalidEncodingAsLatin9() + { + if (version_compare(PHP_VERSION, '5.5.0', '<')) { + // Ignore the warning that will be emitted by PHP <5.5.0 + \PHPUnit_Framework_Error_Warning::$enabled = false; + } + $formatter = new NormalizerFormatter(); + $reflMethod = new \ReflectionMethod($formatter, 'toJson'); + $reflMethod->setAccessible(true); + + $res = $reflMethod->invoke($formatter, array('message' => "\xA4\xA6\xA8\xB4\xB8\xBC\xBD\xBE")); + + if (version_compare(PHP_VERSION, '5.5.0', '>=')) { + $this->assertSame('{"message":"€ŠšŽžŒœŸ"}', $res); + } else { + // PHP <5.5 does not return false for an element encoding failure, + // instead it emits a warning (possibly) and nulls the value. + $this->assertSame('{"message":null}', $res); + } + } + + /** + * @param mixed $in Input + * @param mixed $expect Expected output + * @covers Monolog\Formatter\NormalizerFormatter::detectAndCleanUtf8 + * @dataProvider providesDetectAndCleanUtf8 + */ + public function testDetectAndCleanUtf8($in, $expect) + { + $formatter = new NormalizerFormatter(); + $formatter->detectAndCleanUtf8($in); + $this->assertSame($expect, $in); + } + + public function providesDetectAndCleanUtf8() + { + $obj = new \stdClass; + + return array( + 'null' => array(null, null), + 'int' => array(123, 123), + 'float' => array(123.45, 123.45), + 'bool false' => array(false, false), + 'bool true' => array(true, true), + 'ascii string' => array('abcdef', 'abcdef'), + 'latin9 string' => array("\xB1\x31\xA4\xA6\xA8\xB4\xB8\xBC\xBD\xBE\xFF", '±1€ŠšŽžŒœŸÿ'), + 'unicode string' => array('¤¦¨´¸¼½¾€ŠšŽžŒœŸ', '¤¦¨´¸¼½¾€ŠšŽžŒœŸ'), + 'empty array' => array(array(), array()), + 'array' => array(array('abcdef'), array('abcdef')), + 'object' => array($obj, $obj), + ); + } + + /** + * @param int $code + * @param string $msg + * @dataProvider providesHandleJsonErrorFailure + */ + public function testHandleJsonErrorFailure($code, $msg) + { + $formatter = new NormalizerFormatter(); + $reflMethod = new \ReflectionMethod($formatter, 'handleJsonError'); + $reflMethod->setAccessible(true); + + $this->setExpectedException('RuntimeException', $msg); + $reflMethod->invoke($formatter, $code, 'faked'); + } + + public function providesHandleJsonErrorFailure() + { + return array( + 'depth' => array(JSON_ERROR_DEPTH, 'Maximum stack depth exceeded'), + 'state' => array(JSON_ERROR_STATE_MISMATCH, 'Underflow or the modes mismatch'), + 'ctrl' => array(JSON_ERROR_CTRL_CHAR, 'Unexpected control character found'), + 'default' => array(-1, 'Unknown error'), + ); + } + + public function testExceptionTraceWithArgs() + { + if (defined('HHVM_VERSION')) { + $this->markTestSkipped('Not supported in HHVM since it detects errors differently'); + } + + // This happens i.e. in React promises or Guzzle streams where stream wrappers are registered + // and no file or line are included in the trace because it's treated as internal function + set_error_handler(function ($errno, $errstr, $errfile, $errline) { + throw new \ErrorException($errstr, 0, $errno, $errfile, $errline); + }); + + try { + // This will contain $resource and $wrappedResource as arguments in the trace item + $resource = fopen('php://memory', 'rw+'); + fwrite($resource, 'test_resource'); + $wrappedResource = new TestFooNorm; + $wrappedResource->foo = $resource; + // Just do something stupid with a resource/wrapped resource as argument + array_keys($wrappedResource); + } catch (\Exception $e) { + restore_error_handler(); + } + + $formatter = new NormalizerFormatter(); + $record = array('context' => array('exception' => $e)); + $result = $formatter->format($record); + + $this->assertRegExp( + '%"resource":"\[resource\] \(stream\)"%', + $result['context']['exception']['trace'][0] + ); + + if (version_compare(PHP_VERSION, '5.5.0', '>=')) { + $pattern = '%"wrappedResource":"\[object\] \(Monolog\\\\\\\\Formatter\\\\\\\\TestFooNorm: \)"%'; + } else { + $pattern = '%\\\\"foo\\\\":null%'; + } + + // Tests that the wrapped resource is ignored while encoding, only works for PHP <= 5.4 + $this->assertRegExp( + $pattern, + $result['context']['exception']['trace'][0] + ); + } + + public function testExceptionTraceDoesNotLeakCallUserFuncArgs() + { + try { + $arg = new TestInfoLeak; + call_user_func(array($this, 'throwHelper'), $arg, $dt = new \DateTime()); + } catch (\Exception $e) { + } + + $formatter = new NormalizerFormatter(); + $record = array('context' => array('exception' => $e)); + $result = $formatter->format($record); + + $this->assertSame( + '{"function":"throwHelper","class":"Monolog\\\\Formatter\\\\NormalizerFormatterTest","type":"->","args":["[object] (Monolog\\\\Formatter\\\\TestInfoLeak)","'.$dt->format('Y-m-d H:i:s').'"]}', + $result['context']['exception']['trace'][0] + ); + } + + private function throwHelper($arg) + { + throw new \RuntimeException('Thrown'); + } +} + +class TestFooNorm +{ + public $foo = 'foo'; +} + +class TestBarNorm +{ + public function __toString() + { + return 'bar'; + } +} + +class TestStreamFoo +{ + public $foo; + public $resource; + + public function __construct($resource) + { + $this->resource = $resource; + $this->foo = 'BAR'; + } + + public function __toString() + { + fseek($this->resource, 0); + + return $this->foo . ' - ' . (string) stream_get_contents($this->resource); + } +} + +class TestToStringError +{ + public function __toString() + { + throw new \RuntimeException('Could not convert to string'); + } +} + +class TestInfoLeak +{ + public function __toString() + { + return 'Sensitive information'; + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/ScalarFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/ScalarFormatterTest.php new file mode 100644 index 00000000..b1c8fd49 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Formatter/ScalarFormatterTest.php @@ -0,0 +1,110 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Formatter; + +class ScalarFormatterTest extends \PHPUnit_Framework_TestCase +{ + private $formatter; + + public function setUp() + { + $this->formatter = new ScalarFormatter(); + } + + public function buildTrace(\Exception $e) + { + $data = array(); + $trace = $e->getTrace(); + foreach ($trace as $frame) { + if (isset($frame['file'])) { + $data[] = $frame['file'].':'.$frame['line']; + } else { + $data[] = json_encode($frame); + } + } + + return $data; + } + + public function encodeJson($data) + { + if (version_compare(PHP_VERSION, '5.4.0', '>=')) { + return json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); + } + + return json_encode($data); + } + + public function testFormat() + { + $exception = new \Exception('foo'); + $formatted = $this->formatter->format(array( + 'foo' => 'string', + 'bar' => 1, + 'baz' => false, + 'bam' => array(1, 2, 3), + 'bat' => array('foo' => 'bar'), + 'bap' => \DateTime::createFromFormat(\DateTime::ISO8601, '1970-01-01T00:00:00+0000'), + 'ban' => $exception, + )); + + $this->assertSame(array( + 'foo' => 'string', + 'bar' => 1, + 'baz' => false, + 'bam' => $this->encodeJson(array(1, 2, 3)), + 'bat' => $this->encodeJson(array('foo' => 'bar')), + 'bap' => '1970-01-01 00:00:00', + 'ban' => $this->encodeJson(array( + 'class' => get_class($exception), + 'message' => $exception->getMessage(), + 'code' => $exception->getCode(), + 'file' => $exception->getFile() . ':' . $exception->getLine(), + 'trace' => $this->buildTrace($exception), + )), + ), $formatted); + } + + public function testFormatWithErrorContext() + { + $context = array('file' => 'foo', 'line' => 1); + $formatted = $this->formatter->format(array( + 'context' => $context, + )); + + $this->assertSame(array( + 'context' => $this->encodeJson($context), + ), $formatted); + } + + public function testFormatWithExceptionContext() + { + $exception = new \Exception('foo'); + $formatted = $this->formatter->format(array( + 'context' => array( + 'exception' => $exception, + ), + )); + + $this->assertSame(array( + 'context' => $this->encodeJson(array( + 'exception' => array( + 'class' => get_class($exception), + 'message' => $exception->getMessage(), + 'code' => $exception->getCode(), + 'file' => $exception->getFile() . ':' . $exception->getLine(), + 'trace' => $this->buildTrace($exception), + ), + )), + ), $formatted); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/WildfireFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/WildfireFormatterTest.php new file mode 100644 index 00000000..52f15a36 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Formatter/WildfireFormatterTest.php @@ -0,0 +1,142 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Formatter; + +use Monolog\Logger; + +class WildfireFormatterTest extends \PHPUnit_Framework_TestCase +{ + /** + * @covers Monolog\Formatter\WildfireFormatter::format + */ + public function testDefaultFormat() + { + $wildfire = new WildfireFormatter(); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('from' => 'logger'), + 'datetime' => new \DateTime("@0"), + 'extra' => array('ip' => '127.0.0.1'), + 'message' => 'log', + ); + + $message = $wildfire->format($record); + + $this->assertEquals( + '125|[{"Type":"ERROR","File":"","Line":"","Label":"meh"},' + .'{"message":"log","context":{"from":"logger"},"extra":{"ip":"127.0.0.1"}}]|', + $message + ); + } + + /** + * @covers Monolog\Formatter\WildfireFormatter::format + */ + public function testFormatWithFileAndLine() + { + $wildfire = new WildfireFormatter(); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('from' => 'logger'), + 'datetime' => new \DateTime("@0"), + 'extra' => array('ip' => '127.0.0.1', 'file' => 'test', 'line' => 14), + 'message' => 'log', + ); + + $message = $wildfire->format($record); + + $this->assertEquals( + '129|[{"Type":"ERROR","File":"test","Line":14,"Label":"meh"},' + .'{"message":"log","context":{"from":"logger"},"extra":{"ip":"127.0.0.1"}}]|', + $message + ); + } + + /** + * @covers Monolog\Formatter\WildfireFormatter::format + */ + public function testFormatWithoutContext() + { + $wildfire = new WildfireFormatter(); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array(), + 'datetime' => new \DateTime("@0"), + 'extra' => array(), + 'message' => 'log', + ); + + $message = $wildfire->format($record); + + $this->assertEquals( + '58|[{"Type":"ERROR","File":"","Line":"","Label":"meh"},"log"]|', + $message + ); + } + + /** + * @covers Monolog\Formatter\WildfireFormatter::formatBatch + * @expectedException BadMethodCallException + */ + public function testBatchFormatThrowException() + { + $wildfire = new WildfireFormatter(); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array(), + 'datetime' => new \DateTime("@0"), + 'extra' => array(), + 'message' => 'log', + ); + + $wildfire->formatBatch(array($record)); + } + + /** + * @covers Monolog\Formatter\WildfireFormatter::format + */ + public function testTableFormat() + { + $wildfire = new WildfireFormatter(); + $record = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'table-channel', + 'context' => array( + WildfireFormatter::TABLE => array( + array('col1', 'col2', 'col3'), + array('val1', 'val2', 'val3'), + array('foo1', 'foo2', 'foo3'), + array('bar1', 'bar2', 'bar3'), + ), + ), + 'datetime' => new \DateTime("@0"), + 'extra' => array(), + 'message' => 'table-message', + ); + + $message = $wildfire->format($record); + + $this->assertEquals( + '171|[{"Type":"TABLE","File":"","Line":"","Label":"table-channel: table-message"},[["col1","col2","col3"],["val1","val2","val3"],["foo1","foo2","foo3"],["bar1","bar2","bar3"]]]|', + $message + ); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/AbstractHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/AbstractHandlerTest.php new file mode 100644 index 00000000..568eb9da --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/AbstractHandlerTest.php @@ -0,0 +1,115 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; +use Monolog\Formatter\LineFormatter; +use Monolog\Processor\WebProcessor; + +class AbstractHandlerTest extends TestCase +{ + /** + * @covers Monolog\Handler\AbstractHandler::__construct + * @covers Monolog\Handler\AbstractHandler::getLevel + * @covers Monolog\Handler\AbstractHandler::setLevel + * @covers Monolog\Handler\AbstractHandler::getBubble + * @covers Monolog\Handler\AbstractHandler::setBubble + * @covers Monolog\Handler\AbstractHandler::getFormatter + * @covers Monolog\Handler\AbstractHandler::setFormatter + */ + public function testConstructAndGetSet() + { + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler', array(Logger::WARNING, false)); + $this->assertEquals(Logger::WARNING, $handler->getLevel()); + $this->assertEquals(false, $handler->getBubble()); + + $handler->setLevel(Logger::ERROR); + $handler->setBubble(true); + $handler->setFormatter($formatter = new LineFormatter); + $this->assertEquals(Logger::ERROR, $handler->getLevel()); + $this->assertEquals(true, $handler->getBubble()); + $this->assertSame($formatter, $handler->getFormatter()); + } + + /** + * @covers Monolog\Handler\AbstractHandler::handleBatch + */ + public function testHandleBatch() + { + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler'); + $handler->expects($this->exactly(2)) + ->method('handle'); + $handler->handleBatch(array($this->getRecord(), $this->getRecord())); + } + + /** + * @covers Monolog\Handler\AbstractHandler::isHandling + */ + public function testIsHandling() + { + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler', array(Logger::WARNING, false)); + $this->assertTrue($handler->isHandling($this->getRecord())); + $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG))); + } + + /** + * @covers Monolog\Handler\AbstractHandler::__construct + */ + public function testHandlesPsrStyleLevels() + { + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler', array('warning', false)); + $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG))); + $handler->setLevel('debug'); + $this->assertTrue($handler->isHandling($this->getRecord(Logger::DEBUG))); + } + + /** + * @covers Monolog\Handler\AbstractHandler::getFormatter + * @covers Monolog\Handler\AbstractHandler::getDefaultFormatter + */ + public function testGetFormatterInitializesDefault() + { + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler'); + $this->assertInstanceOf('Monolog\Formatter\LineFormatter', $handler->getFormatter()); + } + + /** + * @covers Monolog\Handler\AbstractHandler::pushProcessor + * @covers Monolog\Handler\AbstractHandler::popProcessor + * @expectedException LogicException + */ + public function testPushPopProcessor() + { + $logger = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler'); + $processor1 = new WebProcessor; + $processor2 = new WebProcessor; + + $logger->pushProcessor($processor1); + $logger->pushProcessor($processor2); + + $this->assertEquals($processor2, $logger->popProcessor()); + $this->assertEquals($processor1, $logger->popProcessor()); + $logger->popProcessor(); + } + + /** + * @covers Monolog\Handler\AbstractHandler::pushProcessor + * @expectedException InvalidArgumentException + */ + public function testPushProcessorWithNonCallable() + { + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler'); + + $handler->pushProcessor(new \stdClass()); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/AbstractProcessingHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/AbstractProcessingHandlerTest.php new file mode 100644 index 00000000..24d4f63c --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/AbstractProcessingHandlerTest.php @@ -0,0 +1,80 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; +use Monolog\Processor\WebProcessor; + +class AbstractProcessingHandlerTest extends TestCase +{ + /** + * @covers Monolog\Handler\AbstractProcessingHandler::handle + */ + public function testHandleLowerLevelMessage() + { + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler', array(Logger::WARNING, true)); + $this->assertFalse($handler->handle($this->getRecord(Logger::DEBUG))); + } + + /** + * @covers Monolog\Handler\AbstractProcessingHandler::handle + */ + public function testHandleBubbling() + { + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler', array(Logger::DEBUG, true)); + $this->assertFalse($handler->handle($this->getRecord())); + } + + /** + * @covers Monolog\Handler\AbstractProcessingHandler::handle + */ + public function testHandleNotBubbling() + { + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler', array(Logger::DEBUG, false)); + $this->assertTrue($handler->handle($this->getRecord())); + } + + /** + * @covers Monolog\Handler\AbstractProcessingHandler::handle + */ + public function testHandleIsFalseWhenNotHandled() + { + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler', array(Logger::WARNING, false)); + $this->assertTrue($handler->handle($this->getRecord())); + $this->assertFalse($handler->handle($this->getRecord(Logger::DEBUG))); + } + + /** + * @covers Monolog\Handler\AbstractProcessingHandler::processRecord + */ + public function testProcessRecord() + { + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler'); + $handler->pushProcessor(new WebProcessor(array( + 'REQUEST_URI' => '', + 'REQUEST_METHOD' => '', + 'REMOTE_ADDR' => '', + 'SERVER_NAME' => '', + 'UNIQUE_ID' => '', + ))); + $handledRecord = null; + $handler->expects($this->once()) + ->method('write') + ->will($this->returnCallback(function ($record) use (&$handledRecord) { + $handledRecord = $record; + })) + ; + $handler->handle($this->getRecord()); + $this->assertEquals(6, count($handledRecord['extra'])); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/AmqpHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/AmqpHandlerTest.php new file mode 100644 index 00000000..8e0e7237 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/AmqpHandlerTest.php @@ -0,0 +1,136 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; +use PhpAmqpLib\Message\AMQPMessage; +use PhpAmqpLib\Connection\AMQPConnection; + +/** + * @covers Monolog\Handler\RotatingFileHandler + */ +class AmqpHandlerTest extends TestCase +{ + public function testHandleAmqpExt() + { + if (!class_exists('AMQPConnection') || !class_exists('AMQPExchange')) { + $this->markTestSkipped("amqp-php not installed"); + } + + if (!class_exists('AMQPChannel')) { + $this->markTestSkipped("Please update AMQP to version >= 1.0"); + } + + $messages = array(); + + $exchange = $this->getMock('AMQPExchange', array('publish', 'setName'), array(), '', false); + $exchange->expects($this->once()) + ->method('setName') + ->with('log') + ; + $exchange->expects($this->any()) + ->method('publish') + ->will($this->returnCallback(function ($message, $routing_key, $flags = 0, $attributes = array()) use (&$messages) { + $messages[] = array($message, $routing_key, $flags, $attributes); + })) + ; + + $handler = new AmqpHandler($exchange, 'log'); + + $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); + + $expected = array( + array( + 'message' => 'test', + 'context' => array( + 'data' => array(), + 'foo' => 34, + ), + 'level' => 300, + 'level_name' => 'WARNING', + 'channel' => 'test', + 'extra' => array(), + ), + 'warn.test', + 0, + array( + 'delivery_mode' => 2, + 'content_type' => 'application/json', + ), + ); + + $handler->handle($record); + + $this->assertCount(1, $messages); + $messages[0][0] = json_decode($messages[0][0], true); + unset($messages[0][0]['datetime']); + $this->assertEquals($expected, $messages[0]); + } + + public function testHandlePhpAmqpLib() + { + if (!class_exists('PhpAmqpLib\Connection\AMQPConnection')) { + $this->markTestSkipped("php-amqplib not installed"); + } + + $messages = array(); + + $exchange = $this->getMock('PhpAmqpLib\Channel\AMQPChannel', array('basic_publish', '__destruct'), array(), '', false); + + $exchange->expects($this->any()) + ->method('basic_publish') + ->will($this->returnCallback(function (AMQPMessage $msg, $exchange = "", $routing_key = "", $mandatory = false, $immediate = false, $ticket = null) use (&$messages) { + $messages[] = array($msg, $exchange, $routing_key, $mandatory, $immediate, $ticket); + })) + ; + + $handler = new AmqpHandler($exchange, 'log'); + + $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); + + $expected = array( + array( + 'message' => 'test', + 'context' => array( + 'data' => array(), + 'foo' => 34, + ), + 'level' => 300, + 'level_name' => 'WARNING', + 'channel' => 'test', + 'extra' => array(), + ), + 'log', + 'warn.test', + false, + false, + null, + array( + 'delivery_mode' => 2, + 'content_type' => 'application/json', + ), + ); + + $handler->handle($record); + + $this->assertCount(1, $messages); + + /* @var $msg AMQPMessage */ + $msg = $messages[0][0]; + $messages[0][0] = json_decode($msg->body, true); + $messages[0][] = $msg->get_properties(); + unset($messages[0][0]['datetime']); + + $this->assertEquals($expected, $messages[0]); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/BrowserConsoleHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/BrowserConsoleHandlerTest.php new file mode 100644 index 00000000..ffe45da2 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/BrowserConsoleHandlerTest.php @@ -0,0 +1,130 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; + +/** + * @covers Monolog\Handler\BrowserConsoleHandlerTest + */ +class BrowserConsoleHandlerTest extends TestCase +{ + protected function setUp() + { + BrowserConsoleHandler::resetStatic(); + } + + protected function generateScript() + { + $reflMethod = new \ReflectionMethod('Monolog\Handler\BrowserConsoleHandler', 'generateScript'); + $reflMethod->setAccessible(true); + + return $reflMethod->invoke(null); + } + + public function testStyling() + { + $handler = new BrowserConsoleHandler(); + $handler->setFormatter($this->getIdentityFormatter()); + + $handler->handle($this->getRecord(Logger::DEBUG, 'foo[[bar]]{color: red}')); + + $expected = <<assertEquals($expected, $this->generateScript()); + } + + public function testEscaping() + { + $handler = new BrowserConsoleHandler(); + $handler->setFormatter($this->getIdentityFormatter()); + + $handler->handle($this->getRecord(Logger::DEBUG, "[foo] [[\"bar\n[baz]\"]]{color: red}")); + + $expected = <<assertEquals($expected, $this->generateScript()); + } + + public function testAutolabel() + { + $handler = new BrowserConsoleHandler(); + $handler->setFormatter($this->getIdentityFormatter()); + + $handler->handle($this->getRecord(Logger::DEBUG, '[[foo]]{macro: autolabel}')); + $handler->handle($this->getRecord(Logger::DEBUG, '[[bar]]{macro: autolabel}')); + $handler->handle($this->getRecord(Logger::DEBUG, '[[foo]]{macro: autolabel}')); + + $expected = <<assertEquals($expected, $this->generateScript()); + } + + public function testContext() + { + $handler = new BrowserConsoleHandler(); + $handler->setFormatter($this->getIdentityFormatter()); + + $handler->handle($this->getRecord(Logger::DEBUG, 'test', array('foo' => 'bar'))); + + $expected = <<assertEquals($expected, $this->generateScript()); + } + + public function testConcurrentHandlers() + { + $handler1 = new BrowserConsoleHandler(); + $handler1->setFormatter($this->getIdentityFormatter()); + + $handler2 = new BrowserConsoleHandler(); + $handler2->setFormatter($this->getIdentityFormatter()); + + $handler1->handle($this->getRecord(Logger::DEBUG, 'test1')); + $handler2->handle($this->getRecord(Logger::DEBUG, 'test2')); + $handler1->handle($this->getRecord(Logger::DEBUG, 'test3')); + $handler2->handle($this->getRecord(Logger::DEBUG, 'test4')); + + $expected = <<assertEquals($expected, $this->generateScript()); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/BufferHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/BufferHandlerTest.php new file mode 100644 index 00000000..da8b3c39 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/BufferHandlerTest.php @@ -0,0 +1,158 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; + +class BufferHandlerTest extends TestCase +{ + private $shutdownCheckHandler; + + /** + * @covers Monolog\Handler\BufferHandler::__construct + * @covers Monolog\Handler\BufferHandler::handle + * @covers Monolog\Handler\BufferHandler::close + */ + public function testHandleBuffers() + { + $test = new TestHandler(); + $handler = new BufferHandler($test); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::INFO)); + $this->assertFalse($test->hasDebugRecords()); + $this->assertFalse($test->hasInfoRecords()); + $handler->close(); + $this->assertTrue($test->hasInfoRecords()); + $this->assertTrue(count($test->getRecords()) === 2); + } + + /** + * @covers Monolog\Handler\BufferHandler::close + * @covers Monolog\Handler\BufferHandler::flush + */ + public function testPropagatesRecordsAtEndOfRequest() + { + $test = new TestHandler(); + $handler = new BufferHandler($test); + $handler->handle($this->getRecord(Logger::WARNING)); + $handler->handle($this->getRecord(Logger::DEBUG)); + $this->shutdownCheckHandler = $test; + register_shutdown_function(array($this, 'checkPropagation')); + } + + public function checkPropagation() + { + if (!$this->shutdownCheckHandler->hasWarningRecords() || !$this->shutdownCheckHandler->hasDebugRecords()) { + echo '!!! BufferHandlerTest::testPropagatesRecordsAtEndOfRequest failed to verify that the messages have been propagated' . PHP_EOL; + exit(1); + } + } + + /** + * @covers Monolog\Handler\BufferHandler::handle + */ + public function testHandleBufferLimit() + { + $test = new TestHandler(); + $handler = new BufferHandler($test, 2); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::INFO)); + $handler->handle($this->getRecord(Logger::WARNING)); + $handler->close(); + $this->assertTrue($test->hasWarningRecords()); + $this->assertTrue($test->hasInfoRecords()); + $this->assertFalse($test->hasDebugRecords()); + } + + /** + * @covers Monolog\Handler\BufferHandler::handle + */ + public function testHandleBufferLimitWithFlushOnOverflow() + { + $test = new TestHandler(); + $handler = new BufferHandler($test, 3, Logger::DEBUG, true, true); + + // send two records + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::DEBUG)); + $this->assertFalse($test->hasDebugRecords()); + $this->assertCount(0, $test->getRecords()); + + // overflow + $handler->handle($this->getRecord(Logger::INFO)); + $this->assertTrue($test->hasDebugRecords()); + $this->assertCount(3, $test->getRecords()); + + // should buffer again + $handler->handle($this->getRecord(Logger::WARNING)); + $this->assertCount(3, $test->getRecords()); + + $handler->close(); + $this->assertCount(5, $test->getRecords()); + $this->assertTrue($test->hasWarningRecords()); + $this->assertTrue($test->hasInfoRecords()); + } + + /** + * @covers Monolog\Handler\BufferHandler::handle + */ + public function testHandleLevel() + { + $test = new TestHandler(); + $handler = new BufferHandler($test, 0, Logger::INFO); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::INFO)); + $handler->handle($this->getRecord(Logger::WARNING)); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->close(); + $this->assertTrue($test->hasWarningRecords()); + $this->assertTrue($test->hasInfoRecords()); + $this->assertFalse($test->hasDebugRecords()); + } + + /** + * @covers Monolog\Handler\BufferHandler::flush + */ + public function testFlush() + { + $test = new TestHandler(); + $handler = new BufferHandler($test, 0); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::INFO)); + $handler->flush(); + $this->assertTrue($test->hasInfoRecords()); + $this->assertTrue($test->hasDebugRecords()); + $this->assertFalse($test->hasWarningRecords()); + } + + /** + * @covers Monolog\Handler\BufferHandler::handle + */ + public function testHandleUsesProcessors() + { + $test = new TestHandler(); + $handler = new BufferHandler($test); + $handler->pushProcessor(function ($record) { + $record['extra']['foo'] = true; + + return $record; + }); + $handler->handle($this->getRecord(Logger::WARNING)); + $handler->flush(); + $this->assertTrue($test->hasWarningRecords()); + $records = $test->getRecords(); + $this->assertTrue($records[0]['extra']['foo']); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/ChromePHPHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/ChromePHPHandlerTest.php new file mode 100644 index 00000000..421cc491 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/ChromePHPHandlerTest.php @@ -0,0 +1,156 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; + +/** + * @covers Monolog\Handler\ChromePHPHandler + */ +class ChromePHPHandlerTest extends TestCase +{ + protected function setUp() + { + TestChromePHPHandler::resetStatic(); + $_SERVER['HTTP_USER_AGENT'] = 'Monolog Test; Chrome/1.0'; + } + + /** + * @dataProvider agentsProvider + */ + public function testHeaders($agent) + { + $_SERVER['HTTP_USER_AGENT'] = $agent; + + $handler = new TestChromePHPHandler(); + $handler->setFormatter($this->getIdentityFormatter()); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::WARNING)); + + $expected = array( + 'X-ChromeLogger-Data' => base64_encode(utf8_encode(json_encode(array( + 'version' => ChromePHPHandler::VERSION, + 'columns' => array('label', 'log', 'backtrace', 'type'), + 'rows' => array( + 'test', + 'test', + ), + 'request_uri' => '', + )))), + ); + + $this->assertEquals($expected, $handler->getHeaders()); + } + + public static function agentsProvider() + { + return array( + array('Monolog Test; Chrome/1.0'), + array('Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0'), + array('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/56.0.2924.76 Chrome/56.0.2924.76 Safari/537.36'), + array('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome Safari/537.36'), + ); + } + + public function testHeadersOverflow() + { + $handler = new TestChromePHPHandler(); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::WARNING, str_repeat('a', 150 * 1024))); + + // overflow chrome headers limit + $handler->handle($this->getRecord(Logger::WARNING, str_repeat('a', 100 * 1024))); + + $expected = array( + 'X-ChromeLogger-Data' => base64_encode(utf8_encode(json_encode(array( + 'version' => ChromePHPHandler::VERSION, + 'columns' => array('label', 'log', 'backtrace', 'type'), + 'rows' => array( + array( + 'test', + 'test', + 'unknown', + 'log', + ), + array( + 'test', + str_repeat('a', 150 * 1024), + 'unknown', + 'warn', + ), + array( + 'monolog', + 'Incomplete logs, chrome header size limit reached', + 'unknown', + 'warn', + ), + ), + 'request_uri' => '', + )))), + ); + + $this->assertEquals($expected, $handler->getHeaders()); + } + + public function testConcurrentHandlers() + { + $handler = new TestChromePHPHandler(); + $handler->setFormatter($this->getIdentityFormatter()); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::WARNING)); + + $handler2 = new TestChromePHPHandler(); + $handler2->setFormatter($this->getIdentityFormatter()); + $handler2->handle($this->getRecord(Logger::DEBUG)); + $handler2->handle($this->getRecord(Logger::WARNING)); + + $expected = array( + 'X-ChromeLogger-Data' => base64_encode(utf8_encode(json_encode(array( + 'version' => ChromePHPHandler::VERSION, + 'columns' => array('label', 'log', 'backtrace', 'type'), + 'rows' => array( + 'test', + 'test', + 'test', + 'test', + ), + 'request_uri' => '', + )))), + ); + + $this->assertEquals($expected, $handler2->getHeaders()); + } +} + +class TestChromePHPHandler extends ChromePHPHandler +{ + protected $headers = array(); + + public static function resetStatic() + { + self::$initialized = false; + self::$overflowed = false; + self::$sendHeaders = true; + self::$json['rows'] = array(); + } + + protected function sendHeader($header, $content) + { + $this->headers[$header] = $content; + } + + public function getHeaders() + { + return $this->headers; + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/CouchDBHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/CouchDBHandlerTest.php new file mode 100644 index 00000000..9fc4b388 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/CouchDBHandlerTest.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; + +class CouchDBHandlerTest extends TestCase +{ + public function testHandle() + { + $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); + + $handler = new CouchDBHandler(); + + try { + $handler->handle($record); + } catch (\RuntimeException $e) { + $this->markTestSkipped('Could not connect to couchdb server on http://localhost:5984'); + } + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/DeduplicationHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/DeduplicationHandlerTest.php new file mode 100644 index 00000000..e2aff868 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/DeduplicationHandlerTest.php @@ -0,0 +1,165 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; + +class DeduplicationHandlerTest extends TestCase +{ + /** + * @covers Monolog\Handler\DeduplicationHandler::flush + */ + public function testFlushPassthruIfAllRecordsUnderTrigger() + { + $test = new TestHandler(); + @unlink(sys_get_temp_dir().'/monolog_dedup.log'); + $handler = new DeduplicationHandler($test, sys_get_temp_dir().'/monolog_dedup.log', 0); + + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::INFO)); + + $handler->flush(); + + $this->assertTrue($test->hasInfoRecords()); + $this->assertTrue($test->hasDebugRecords()); + $this->assertFalse($test->hasWarningRecords()); + } + + /** + * @covers Monolog\Handler\DeduplicationHandler::flush + * @covers Monolog\Handler\DeduplicationHandler::appendRecord + */ + public function testFlushPassthruIfEmptyLog() + { + $test = new TestHandler(); + @unlink(sys_get_temp_dir().'/monolog_dedup.log'); + $handler = new DeduplicationHandler($test, sys_get_temp_dir().'/monolog_dedup.log', 0); + + $handler->handle($this->getRecord(Logger::ERROR, 'Foo:bar')); + $handler->handle($this->getRecord(Logger::CRITICAL, "Foo\nbar")); + + $handler->flush(); + + $this->assertTrue($test->hasErrorRecords()); + $this->assertTrue($test->hasCriticalRecords()); + $this->assertFalse($test->hasWarningRecords()); + } + + /** + * @covers Monolog\Handler\DeduplicationHandler::flush + * @covers Monolog\Handler\DeduplicationHandler::appendRecord + * @covers Monolog\Handler\DeduplicationHandler::isDuplicate + * @depends testFlushPassthruIfEmptyLog + */ + public function testFlushSkipsIfLogExists() + { + $test = new TestHandler(); + $handler = new DeduplicationHandler($test, sys_get_temp_dir().'/monolog_dedup.log', 0); + + $handler->handle($this->getRecord(Logger::ERROR, 'Foo:bar')); + $handler->handle($this->getRecord(Logger::CRITICAL, "Foo\nbar")); + + $handler->flush(); + + $this->assertFalse($test->hasErrorRecords()); + $this->assertFalse($test->hasCriticalRecords()); + $this->assertFalse($test->hasWarningRecords()); + } + + /** + * @covers Monolog\Handler\DeduplicationHandler::flush + * @covers Monolog\Handler\DeduplicationHandler::appendRecord + * @covers Monolog\Handler\DeduplicationHandler::isDuplicate + * @depends testFlushPassthruIfEmptyLog + */ + public function testFlushPassthruIfLogTooOld() + { + $test = new TestHandler(); + $handler = new DeduplicationHandler($test, sys_get_temp_dir().'/monolog_dedup.log', 0); + + $record = $this->getRecord(Logger::ERROR); + $record['datetime']->modify('+62seconds'); + $handler->handle($record); + $record = $this->getRecord(Logger::CRITICAL); + $record['datetime']->modify('+62seconds'); + $handler->handle($record); + + $handler->flush(); + + $this->assertTrue($test->hasErrorRecords()); + $this->assertTrue($test->hasCriticalRecords()); + $this->assertFalse($test->hasWarningRecords()); + } + + /** + * @covers Monolog\Handler\DeduplicationHandler::flush + * @covers Monolog\Handler\DeduplicationHandler::appendRecord + * @covers Monolog\Handler\DeduplicationHandler::isDuplicate + * @covers Monolog\Handler\DeduplicationHandler::collectLogs + */ + public function testGcOldLogs() + { + $test = new TestHandler(); + @unlink(sys_get_temp_dir().'/monolog_dedup.log'); + $handler = new DeduplicationHandler($test, sys_get_temp_dir().'/monolog_dedup.log', 0); + + // handle two records from yesterday, and one recent + $record = $this->getRecord(Logger::ERROR); + $record['datetime']->modify('-1day -10seconds'); + $handler->handle($record); + $record2 = $this->getRecord(Logger::CRITICAL); + $record2['datetime']->modify('-1day -10seconds'); + $handler->handle($record2); + $record3 = $this->getRecord(Logger::CRITICAL); + $record3['datetime']->modify('-30seconds'); + $handler->handle($record3); + + // log is written as none of them are duplicate + $handler->flush(); + $this->assertSame( + $record['datetime']->getTimestamp() . ":ERROR:test\n" . + $record2['datetime']->getTimestamp() . ":CRITICAL:test\n" . + $record3['datetime']->getTimestamp() . ":CRITICAL:test\n", + file_get_contents(sys_get_temp_dir() . '/monolog_dedup.log') + ); + $this->assertTrue($test->hasErrorRecords()); + $this->assertTrue($test->hasCriticalRecords()); + $this->assertFalse($test->hasWarningRecords()); + + // clear test handler + $test->clear(); + $this->assertFalse($test->hasErrorRecords()); + $this->assertFalse($test->hasCriticalRecords()); + + // log new records, duplicate log gets GC'd at the end of this flush call + $handler->handle($record = $this->getRecord(Logger::ERROR)); + $handler->handle($record2 = $this->getRecord(Logger::CRITICAL)); + $handler->flush(); + + // log should now contain the new errors and the previous one that was recent enough + $this->assertSame( + $record3['datetime']->getTimestamp() . ":CRITICAL:test\n" . + $record['datetime']->getTimestamp() . ":ERROR:test\n" . + $record2['datetime']->getTimestamp() . ":CRITICAL:test\n", + file_get_contents(sys_get_temp_dir() . '/monolog_dedup.log') + ); + $this->assertTrue($test->hasErrorRecords()); + $this->assertTrue($test->hasCriticalRecords()); + $this->assertFalse($test->hasWarningRecords()); + } + + public static function tearDownAfterClass() + { + @unlink(sys_get_temp_dir().'/monolog_dedup.log'); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/DoctrineCouchDBHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/DoctrineCouchDBHandlerTest.php new file mode 100644 index 00000000..d67da90a --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/DoctrineCouchDBHandlerTest.php @@ -0,0 +1,52 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; + +class DoctrineCouchDBHandlerTest extends TestCase +{ + protected function setup() + { + if (!class_exists('Doctrine\CouchDB\CouchDBClient')) { + $this->markTestSkipped('The "doctrine/couchdb" package is not installed'); + } + } + + public function testHandle() + { + $client = $this->getMockBuilder('Doctrine\\CouchDB\\CouchDBClient') + ->setMethods(array('postDocument')) + ->disableOriginalConstructor() + ->getMock(); + + $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); + + $expected = array( + 'message' => 'test', + 'context' => array('data' => '[object] (stdClass: {})', 'foo' => 34), + 'level' => Logger::WARNING, + 'level_name' => 'WARNING', + 'channel' => 'test', + 'datetime' => $record['datetime']->format('Y-m-d H:i:s'), + 'extra' => array(), + ); + + $client->expects($this->once()) + ->method('postDocument') + ->with($expected); + + $handler = new DoctrineCouchDBHandler($client); + $handler->handle($record); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/DynamoDbHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/DynamoDbHandlerTest.php new file mode 100644 index 00000000..2e6c348d --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/DynamoDbHandlerTest.php @@ -0,0 +1,82 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; + +class DynamoDbHandlerTest extends TestCase +{ + private $client; + + public function setUp() + { + if (!class_exists('Aws\DynamoDb\DynamoDbClient')) { + $this->markTestSkipped('aws/aws-sdk-php not installed'); + } + + $this->client = $this->getMockBuilder('Aws\DynamoDb\DynamoDbClient') + ->setMethods(array('formatAttributes', '__call')) + ->disableOriginalConstructor()->getMock(); + } + + public function testConstruct() + { + $this->assertInstanceOf('Monolog\Handler\DynamoDbHandler', new DynamoDbHandler($this->client, 'foo')); + } + + public function testInterface() + { + $this->assertInstanceOf('Monolog\Handler\HandlerInterface', new DynamoDbHandler($this->client, 'foo')); + } + + public function testGetFormatter() + { + $handler = new DynamoDbHandler($this->client, 'foo'); + $this->assertInstanceOf('Monolog\Formatter\ScalarFormatter', $handler->getFormatter()); + } + + public function testHandle() + { + $record = $this->getRecord(); + $formatter = $this->getMock('Monolog\Formatter\FormatterInterface'); + $formatted = array('foo' => 1, 'bar' => 2); + $handler = new DynamoDbHandler($this->client, 'foo'); + $handler->setFormatter($formatter); + + $isV3 = defined('Aws\Sdk::VERSION') && version_compare(\Aws\Sdk::VERSION, '3.0', '>='); + if ($isV3) { + $expFormatted = array('foo' => array('N' => 1), 'bar' => array('N' => 2)); + } else { + $expFormatted = $formatted; + } + + $formatter + ->expects($this->once()) + ->method('format') + ->with($record) + ->will($this->returnValue($formatted)); + $this->client + ->expects($isV3 ? $this->never() : $this->once()) + ->method('formatAttributes') + ->with($this->isType('array')) + ->will($this->returnValue($formatted)); + $this->client + ->expects($this->once()) + ->method('__call') + ->with('putItem', array(array( + 'TableName' => 'foo', + 'Item' => $expFormatted, + ))); + + $handler->handle($record); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/ElasticSearchHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/ElasticSearchHandlerTest.php new file mode 100644 index 00000000..1687074b --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/ElasticSearchHandlerTest.php @@ -0,0 +1,239 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Formatter\ElasticaFormatter; +use Monolog\Formatter\NormalizerFormatter; +use Monolog\TestCase; +use Monolog\Logger; +use Elastica\Client; +use Elastica\Request; +use Elastica\Response; + +class ElasticSearchHandlerTest extends TestCase +{ + /** + * @var Client mock + */ + protected $client; + + /** + * @var array Default handler options + */ + protected $options = array( + 'index' => 'my_index', + 'type' => 'doc_type', + ); + + public function setUp() + { + // Elastica lib required + if (!class_exists("Elastica\Client")) { + $this->markTestSkipped("ruflin/elastica not installed"); + } + + // base mock Elastica Client object + $this->client = $this->getMockBuilder('Elastica\Client') + ->setMethods(array('addDocuments')) + ->disableOriginalConstructor() + ->getMock(); + } + + /** + * @covers Monolog\Handler\ElasticSearchHandler::write + * @covers Monolog\Handler\ElasticSearchHandler::handleBatch + * @covers Monolog\Handler\ElasticSearchHandler::bulkSend + * @covers Monolog\Handler\ElasticSearchHandler::getDefaultFormatter + */ + public function testHandle() + { + // log message + $msg = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('foo' => 7, 'bar', 'class' => new \stdClass), + 'datetime' => new \DateTime("@0"), + 'extra' => array(), + 'message' => 'log', + ); + + // format expected result + $formatter = new ElasticaFormatter($this->options['index'], $this->options['type']); + $expected = array($formatter->format($msg)); + + // setup ES client mock + $this->client->expects($this->any()) + ->method('addDocuments') + ->with($expected); + + // perform tests + $handler = new ElasticSearchHandler($this->client, $this->options); + $handler->handle($msg); + $handler->handleBatch(array($msg)); + } + + /** + * @covers Monolog\Handler\ElasticSearchHandler::setFormatter + */ + public function testSetFormatter() + { + $handler = new ElasticSearchHandler($this->client); + $formatter = new ElasticaFormatter('index_new', 'type_new'); + $handler->setFormatter($formatter); + $this->assertInstanceOf('Monolog\Formatter\ElasticaFormatter', $handler->getFormatter()); + $this->assertEquals('index_new', $handler->getFormatter()->getIndex()); + $this->assertEquals('type_new', $handler->getFormatter()->getType()); + } + + /** + * @covers Monolog\Handler\ElasticSearchHandler::setFormatter + * @expectedException InvalidArgumentException + * @expectedExceptionMessage ElasticSearchHandler is only compatible with ElasticaFormatter + */ + public function testSetFormatterInvalid() + { + $handler = new ElasticSearchHandler($this->client); + $formatter = new NormalizerFormatter(); + $handler->setFormatter($formatter); + } + + /** + * @covers Monolog\Handler\ElasticSearchHandler::__construct + * @covers Monolog\Handler\ElasticSearchHandler::getOptions + */ + public function testOptions() + { + $expected = array( + 'index' => $this->options['index'], + 'type' => $this->options['type'], + 'ignore_error' => false, + ); + $handler = new ElasticSearchHandler($this->client, $this->options); + $this->assertEquals($expected, $handler->getOptions()); + } + + /** + * @covers Monolog\Handler\ElasticSearchHandler::bulkSend + * @dataProvider providerTestConnectionErrors + */ + public function testConnectionErrors($ignore, $expectedError) + { + $clientOpts = array('host' => '127.0.0.1', 'port' => 1); + $client = new Client($clientOpts); + $handlerOpts = array('ignore_error' => $ignore); + $handler = new ElasticSearchHandler($client, $handlerOpts); + + if ($expectedError) { + $this->setExpectedException($expectedError[0], $expectedError[1]); + $handler->handle($this->getRecord()); + } else { + $this->assertFalse($handler->handle($this->getRecord())); + } + } + + /** + * @return array + */ + public function providerTestConnectionErrors() + { + return array( + array(false, array('RuntimeException', 'Error sending messages to Elasticsearch')), + array(true, false), + ); + } + + /** + * Integration test using localhost Elastic Search server + * + * @covers Monolog\Handler\ElasticSearchHandler::__construct + * @covers Monolog\Handler\ElasticSearchHandler::handleBatch + * @covers Monolog\Handler\ElasticSearchHandler::bulkSend + * @covers Monolog\Handler\ElasticSearchHandler::getDefaultFormatter + */ + public function testHandleIntegration() + { + $msg = array( + 'level' => Logger::ERROR, + 'level_name' => 'ERROR', + 'channel' => 'meh', + 'context' => array('foo' => 7, 'bar', 'class' => new \stdClass), + 'datetime' => new \DateTime("@0"), + 'extra' => array(), + 'message' => 'log', + ); + + $expected = $msg; + $expected['datetime'] = $msg['datetime']->format(\DateTime::ISO8601); + $expected['context'] = array( + 'class' => '[object] (stdClass: {})', + 'foo' => 7, + 0 => 'bar', + ); + + $client = new Client(); + $handler = new ElasticSearchHandler($client, $this->options); + try { + $handler->handleBatch(array($msg)); + } catch (\RuntimeException $e) { + $this->markTestSkipped("Cannot connect to Elastic Search server on localhost"); + } + + // check document id from ES server response + $documentId = $this->getCreatedDocId($client->getLastResponse()); + $this->assertNotEmpty($documentId, 'No elastic document id received'); + + // retrieve document source from ES and validate + $document = $this->getDocSourceFromElastic( + $client, + $this->options['index'], + $this->options['type'], + $documentId + ); + $this->assertEquals($expected, $document); + + // remove test index from ES + $client->request("/{$this->options['index']}", Request::DELETE); + } + + /** + * Return last created document id from ES response + * @param Response $response Elastica Response object + * @return string|null + */ + protected function getCreatedDocId(Response $response) + { + $data = $response->getData(); + if (!empty($data['items'][0]['create']['_id'])) { + return $data['items'][0]['create']['_id']; + } + } + + /** + * Retrieve document by id from Elasticsearch + * @param Client $client Elastica client + * @param string $index + * @param string $type + * @param string $documentId + * @return array + */ + protected function getDocSourceFromElastic(Client $client, $index, $type, $documentId) + { + $resp = $client->request("/{$index}/{$type}/{$documentId}", Request::GET); + $data = $resp->getData(); + if (!empty($data['_source'])) { + return $data['_source']; + } + + return array(); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/ErrorLogHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/ErrorLogHandlerTest.php new file mode 100644 index 00000000..99785cbb --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/ErrorLogHandlerTest.php @@ -0,0 +1,66 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; +use Monolog\Formatter\LineFormatter; + +function error_log() +{ + $GLOBALS['error_log'][] = func_get_args(); +} + +class ErrorLogHandlerTest extends TestCase +{ + protected function setUp() + { + $GLOBALS['error_log'] = array(); + } + + /** + * @covers Monolog\Handler\ErrorLogHandler::__construct + * @expectedException InvalidArgumentException + * @expectedExceptionMessage The given message type "42" is not supported + */ + public function testShouldNotAcceptAnInvalidTypeOnContructor() + { + new ErrorLogHandler(42); + } + + /** + * @covers Monolog\Handler\ErrorLogHandler::write + */ + public function testShouldLogMessagesUsingErrorLogFuncion() + { + $type = ErrorLogHandler::OPERATING_SYSTEM; + $handler = new ErrorLogHandler($type); + $handler->setFormatter(new LineFormatter('%channel%.%level_name%: %message% %context% %extra%', null, true)); + $handler->handle($this->getRecord(Logger::ERROR, "Foo\nBar\r\n\r\nBaz")); + + $this->assertSame("test.ERROR: Foo\nBar\r\n\r\nBaz [] []", $GLOBALS['error_log'][0][0]); + $this->assertSame($GLOBALS['error_log'][0][1], $type); + + $handler = new ErrorLogHandler($type, Logger::DEBUG, true, true); + $handler->setFormatter(new LineFormatter(null, null, true)); + $handler->handle($this->getRecord(Logger::ERROR, "Foo\nBar\r\n\r\nBaz")); + + $this->assertStringMatchesFormat('[%s] test.ERROR: Foo', $GLOBALS['error_log'][1][0]); + $this->assertSame($GLOBALS['error_log'][1][1], $type); + + $this->assertStringMatchesFormat('Bar', $GLOBALS['error_log'][2][0]); + $this->assertSame($GLOBALS['error_log'][2][1], $type); + + $this->assertStringMatchesFormat('Baz [] []', $GLOBALS['error_log'][3][0]); + $this->assertSame($GLOBALS['error_log'][3][1], $type); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/FilterHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/FilterHandlerTest.php new file mode 100644 index 00000000..31b7686a --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/FilterHandlerTest.php @@ -0,0 +1,170 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; +use Monolog\TestCase; + +class FilterHandlerTest extends TestCase +{ + /** + * @covers Monolog\Handler\FilterHandler::isHandling + */ + public function testIsHandling() + { + $test = new TestHandler(); + $handler = new FilterHandler($test, Logger::INFO, Logger::NOTICE); + $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG))); + $this->assertTrue($handler->isHandling($this->getRecord(Logger::INFO))); + $this->assertTrue($handler->isHandling($this->getRecord(Logger::NOTICE))); + $this->assertFalse($handler->isHandling($this->getRecord(Logger::WARNING))); + $this->assertFalse($handler->isHandling($this->getRecord(Logger::ERROR))); + $this->assertFalse($handler->isHandling($this->getRecord(Logger::CRITICAL))); + $this->assertFalse($handler->isHandling($this->getRecord(Logger::ALERT))); + $this->assertFalse($handler->isHandling($this->getRecord(Logger::EMERGENCY))); + } + + /** + * @covers Monolog\Handler\FilterHandler::handle + * @covers Monolog\Handler\FilterHandler::setAcceptedLevels + * @covers Monolog\Handler\FilterHandler::isHandling + */ + public function testHandleProcessOnlyNeededLevels() + { + $test = new TestHandler(); + $handler = new FilterHandler($test, Logger::INFO, Logger::NOTICE); + + $handler->handle($this->getRecord(Logger::DEBUG)); + $this->assertFalse($test->hasDebugRecords()); + + $handler->handle($this->getRecord(Logger::INFO)); + $this->assertTrue($test->hasInfoRecords()); + $handler->handle($this->getRecord(Logger::NOTICE)); + $this->assertTrue($test->hasNoticeRecords()); + + $handler->handle($this->getRecord(Logger::WARNING)); + $this->assertFalse($test->hasWarningRecords()); + $handler->handle($this->getRecord(Logger::ERROR)); + $this->assertFalse($test->hasErrorRecords()); + $handler->handle($this->getRecord(Logger::CRITICAL)); + $this->assertFalse($test->hasCriticalRecords()); + $handler->handle($this->getRecord(Logger::ALERT)); + $this->assertFalse($test->hasAlertRecords()); + $handler->handle($this->getRecord(Logger::EMERGENCY)); + $this->assertFalse($test->hasEmergencyRecords()); + + $test = new TestHandler(); + $handler = new FilterHandler($test, array(Logger::INFO, Logger::ERROR)); + + $handler->handle($this->getRecord(Logger::DEBUG)); + $this->assertFalse($test->hasDebugRecords()); + $handler->handle($this->getRecord(Logger::INFO)); + $this->assertTrue($test->hasInfoRecords()); + $handler->handle($this->getRecord(Logger::NOTICE)); + $this->assertFalse($test->hasNoticeRecords()); + $handler->handle($this->getRecord(Logger::ERROR)); + $this->assertTrue($test->hasErrorRecords()); + $handler->handle($this->getRecord(Logger::CRITICAL)); + $this->assertFalse($test->hasCriticalRecords()); + } + + /** + * @covers Monolog\Handler\FilterHandler::setAcceptedLevels + * @covers Monolog\Handler\FilterHandler::getAcceptedLevels + */ + public function testAcceptedLevelApi() + { + $test = new TestHandler(); + $handler = new FilterHandler($test); + + $levels = array(Logger::INFO, Logger::ERROR); + $handler->setAcceptedLevels($levels); + $this->assertSame($levels, $handler->getAcceptedLevels()); + + $handler->setAcceptedLevels(array('info', 'error')); + $this->assertSame($levels, $handler->getAcceptedLevels()); + + $levels = array(Logger::CRITICAL, Logger::ALERT, Logger::EMERGENCY); + $handler->setAcceptedLevels(Logger::CRITICAL, Logger::EMERGENCY); + $this->assertSame($levels, $handler->getAcceptedLevels()); + + $handler->setAcceptedLevels('critical', 'emergency'); + $this->assertSame($levels, $handler->getAcceptedLevels()); + } + + /** + * @covers Monolog\Handler\FilterHandler::handle + */ + public function testHandleUsesProcessors() + { + $test = new TestHandler(); + $handler = new FilterHandler($test, Logger::DEBUG, Logger::EMERGENCY); + $handler->pushProcessor( + function ($record) { + $record['extra']['foo'] = true; + + return $record; + } + ); + $handler->handle($this->getRecord(Logger::WARNING)); + $this->assertTrue($test->hasWarningRecords()); + $records = $test->getRecords(); + $this->assertTrue($records[0]['extra']['foo']); + } + + /** + * @covers Monolog\Handler\FilterHandler::handle + */ + public function testHandleRespectsBubble() + { + $test = new TestHandler(); + + $handler = new FilterHandler($test, Logger::INFO, Logger::NOTICE, false); + $this->assertTrue($handler->handle($this->getRecord(Logger::INFO))); + $this->assertFalse($handler->handle($this->getRecord(Logger::WARNING))); + + $handler = new FilterHandler($test, Logger::INFO, Logger::NOTICE, true); + $this->assertFalse($handler->handle($this->getRecord(Logger::INFO))); + $this->assertFalse($handler->handle($this->getRecord(Logger::WARNING))); + } + + /** + * @covers Monolog\Handler\FilterHandler::handle + */ + public function testHandleWithCallback() + { + $test = new TestHandler(); + $handler = new FilterHandler( + function ($record, $handler) use ($test) { + return $test; + }, Logger::INFO, Logger::NOTICE, false + ); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::INFO)); + $this->assertFalse($test->hasDebugRecords()); + $this->assertTrue($test->hasInfoRecords()); + } + + /** + * @covers Monolog\Handler\FilterHandler::handle + * @expectedException \RuntimeException + */ + public function testHandleWithBadCallbackThrowsException() + { + $handler = new FilterHandler( + function ($record, $handler) { + return 'foo'; + } + ); + $handler->handle($this->getRecord(Logger::WARNING)); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php new file mode 100644 index 00000000..0ec36531 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php @@ -0,0 +1,279 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; +use Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy; +use Monolog\Handler\FingersCrossed\ChannelLevelActivationStrategy; +use Psr\Log\LogLevel; + +class FingersCrossedHandlerTest extends TestCase +{ + /** + * @covers Monolog\Handler\FingersCrossedHandler::__construct + * @covers Monolog\Handler\FingersCrossedHandler::handle + * @covers Monolog\Handler\FingersCrossedHandler::activate + */ + public function testHandleBuffers() + { + $test = new TestHandler(); + $handler = new FingersCrossedHandler($test); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::INFO)); + $this->assertFalse($test->hasDebugRecords()); + $this->assertFalse($test->hasInfoRecords()); + $handler->handle($this->getRecord(Logger::WARNING)); + $handler->close(); + $this->assertTrue($test->hasInfoRecords()); + $this->assertTrue(count($test->getRecords()) === 3); + } + + /** + * @covers Monolog\Handler\FingersCrossedHandler::handle + * @covers Monolog\Handler\FingersCrossedHandler::activate + */ + public function testHandleStopsBufferingAfterTrigger() + { + $test = new TestHandler(); + $handler = new FingersCrossedHandler($test); + $handler->handle($this->getRecord(Logger::WARNING)); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->close(); + $this->assertTrue($test->hasWarningRecords()); + $this->assertTrue($test->hasDebugRecords()); + } + + /** + * @covers Monolog\Handler\FingersCrossedHandler::handle + * @covers Monolog\Handler\FingersCrossedHandler::activate + * @covers Monolog\Handler\FingersCrossedHandler::reset + */ + public function testHandleResetBufferingAfterReset() + { + $test = new TestHandler(); + $handler = new FingersCrossedHandler($test); + $handler->handle($this->getRecord(Logger::WARNING)); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->reset(); + $handler->handle($this->getRecord(Logger::INFO)); + $handler->close(); + $this->assertTrue($test->hasWarningRecords()); + $this->assertTrue($test->hasDebugRecords()); + $this->assertFalse($test->hasInfoRecords()); + } + + /** + * @covers Monolog\Handler\FingersCrossedHandler::handle + * @covers Monolog\Handler\FingersCrossedHandler::activate + */ + public function testHandleResetBufferingAfterBeingTriggeredWhenStopBufferingIsDisabled() + { + $test = new TestHandler(); + $handler = new FingersCrossedHandler($test, Logger::WARNING, 0, false, false); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::WARNING)); + $handler->handle($this->getRecord(Logger::INFO)); + $handler->close(); + $this->assertTrue($test->hasWarningRecords()); + $this->assertTrue($test->hasDebugRecords()); + $this->assertFalse($test->hasInfoRecords()); + } + + /** + * @covers Monolog\Handler\FingersCrossedHandler::handle + * @covers Monolog\Handler\FingersCrossedHandler::activate + */ + public function testHandleBufferLimit() + { + $test = new TestHandler(); + $handler = new FingersCrossedHandler($test, Logger::WARNING, 2); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::INFO)); + $handler->handle($this->getRecord(Logger::WARNING)); + $this->assertTrue($test->hasWarningRecords()); + $this->assertTrue($test->hasInfoRecords()); + $this->assertFalse($test->hasDebugRecords()); + } + + /** + * @covers Monolog\Handler\FingersCrossedHandler::handle + * @covers Monolog\Handler\FingersCrossedHandler::activate + */ + public function testHandleWithCallback() + { + $test = new TestHandler(); + $handler = new FingersCrossedHandler(function ($record, $handler) use ($test) { + return $test; + }); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::INFO)); + $this->assertFalse($test->hasDebugRecords()); + $this->assertFalse($test->hasInfoRecords()); + $handler->handle($this->getRecord(Logger::WARNING)); + $this->assertTrue($test->hasInfoRecords()); + $this->assertTrue(count($test->getRecords()) === 3); + } + + /** + * @covers Monolog\Handler\FingersCrossedHandler::handle + * @covers Monolog\Handler\FingersCrossedHandler::activate + * @expectedException RuntimeException + */ + public function testHandleWithBadCallbackThrowsException() + { + $handler = new FingersCrossedHandler(function ($record, $handler) { + return 'foo'; + }); + $handler->handle($this->getRecord(Logger::WARNING)); + } + + /** + * @covers Monolog\Handler\FingersCrossedHandler::isHandling + */ + public function testIsHandlingAlways() + { + $test = new TestHandler(); + $handler = new FingersCrossedHandler($test, Logger::ERROR); + $this->assertTrue($handler->isHandling($this->getRecord(Logger::DEBUG))); + } + + /** + * @covers Monolog\Handler\FingersCrossedHandler::__construct + * @covers Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy::__construct + * @covers Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy::isHandlerActivated + */ + public function testErrorLevelActivationStrategy() + { + $test = new TestHandler(); + $handler = new FingersCrossedHandler($test, new ErrorLevelActivationStrategy(Logger::WARNING)); + $handler->handle($this->getRecord(Logger::DEBUG)); + $this->assertFalse($test->hasDebugRecords()); + $handler->handle($this->getRecord(Logger::WARNING)); + $this->assertTrue($test->hasDebugRecords()); + $this->assertTrue($test->hasWarningRecords()); + } + + /** + * @covers Monolog\Handler\FingersCrossedHandler::__construct + * @covers Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy::__construct + * @covers Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy::isHandlerActivated + */ + public function testErrorLevelActivationStrategyWithPsrLevel() + { + $test = new TestHandler(); + $handler = new FingersCrossedHandler($test, new ErrorLevelActivationStrategy('warning')); + $handler->handle($this->getRecord(Logger::DEBUG)); + $this->assertFalse($test->hasDebugRecords()); + $handler->handle($this->getRecord(Logger::WARNING)); + $this->assertTrue($test->hasDebugRecords()); + $this->assertTrue($test->hasWarningRecords()); + } + + /** + * @covers Monolog\Handler\FingersCrossedHandler::__construct + * @covers Monolog\Handler\FingersCrossedHandler::activate + */ + public function testOverrideActivationStrategy() + { + $test = new TestHandler(); + $handler = new FingersCrossedHandler($test, new ErrorLevelActivationStrategy('warning')); + $handler->handle($this->getRecord(Logger::DEBUG)); + $this->assertFalse($test->hasDebugRecords()); + $handler->activate(); + $this->assertTrue($test->hasDebugRecords()); + $handler->handle($this->getRecord(Logger::INFO)); + $this->assertTrue($test->hasInfoRecords()); + } + + /** + * @covers Monolog\Handler\FingersCrossed\ChannelLevelActivationStrategy::__construct + * @covers Monolog\Handler\FingersCrossed\ChannelLevelActivationStrategy::isHandlerActivated + */ + public function testChannelLevelActivationStrategy() + { + $test = new TestHandler(); + $handler = new FingersCrossedHandler($test, new ChannelLevelActivationStrategy(Logger::ERROR, array('othertest' => Logger::DEBUG))); + $handler->handle($this->getRecord(Logger::WARNING)); + $this->assertFalse($test->hasWarningRecords()); + $record = $this->getRecord(Logger::DEBUG); + $record['channel'] = 'othertest'; + $handler->handle($record); + $this->assertTrue($test->hasDebugRecords()); + $this->assertTrue($test->hasWarningRecords()); + } + + /** + * @covers Monolog\Handler\FingersCrossed\ChannelLevelActivationStrategy::__construct + * @covers Monolog\Handler\FingersCrossed\ChannelLevelActivationStrategy::isHandlerActivated + */ + public function testChannelLevelActivationStrategyWithPsrLevels() + { + $test = new TestHandler(); + $handler = new FingersCrossedHandler($test, new ChannelLevelActivationStrategy('error', array('othertest' => 'debug'))); + $handler->handle($this->getRecord(Logger::WARNING)); + $this->assertFalse($test->hasWarningRecords()); + $record = $this->getRecord(Logger::DEBUG); + $record['channel'] = 'othertest'; + $handler->handle($record); + $this->assertTrue($test->hasDebugRecords()); + $this->assertTrue($test->hasWarningRecords()); + } + + /** + * @covers Monolog\Handler\FingersCrossedHandler::handle + * @covers Monolog\Handler\FingersCrossedHandler::activate + */ + public function testHandleUsesProcessors() + { + $test = new TestHandler(); + $handler = new FingersCrossedHandler($test, Logger::INFO); + $handler->pushProcessor(function ($record) { + $record['extra']['foo'] = true; + + return $record; + }); + $handler->handle($this->getRecord(Logger::WARNING)); + $this->assertTrue($test->hasWarningRecords()); + $records = $test->getRecords(); + $this->assertTrue($records[0]['extra']['foo']); + } + + /** + * @covers Monolog\Handler\FingersCrossedHandler::close + */ + public function testPassthruOnClose() + { + $test = new TestHandler(); + $handler = new FingersCrossedHandler($test, new ErrorLevelActivationStrategy(Logger::WARNING), 0, true, true, Logger::INFO); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::INFO)); + $handler->close(); + $this->assertFalse($test->hasDebugRecords()); + $this->assertTrue($test->hasInfoRecords()); + } + + /** + * @covers Monolog\Handler\FingersCrossedHandler::close + */ + public function testPsrLevelPassthruOnClose() + { + $test = new TestHandler(); + $handler = new FingersCrossedHandler($test, new ErrorLevelActivationStrategy(Logger::WARNING), 0, true, true, LogLevel::INFO); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::INFO)); + $handler->close(); + $this->assertFalse($test->hasDebugRecords()); + $this->assertTrue($test->hasInfoRecords()); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/FirePHPHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/FirePHPHandlerTest.php new file mode 100644 index 00000000..7a404e66 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/FirePHPHandlerTest.php @@ -0,0 +1,96 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; + +/** + * @covers Monolog\Handler\FirePHPHandler + */ +class FirePHPHandlerTest extends TestCase +{ + public function setUp() + { + TestFirePHPHandler::resetStatic(); + $_SERVER['HTTP_USER_AGENT'] = 'Monolog Test; FirePHP/1.0'; + } + + public function testHeaders() + { + $handler = new TestFirePHPHandler; + $handler->setFormatter($this->getIdentityFormatter()); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::WARNING)); + + $expected = array( + 'X-Wf-Protocol-1' => 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2', + 'X-Wf-1-Structure-1' => 'http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1', + 'X-Wf-1-Plugin-1' => 'http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/0.3', + 'X-Wf-1-1-1-1' => 'test', + 'X-Wf-1-1-1-2' => 'test', + ); + + $this->assertEquals($expected, $handler->getHeaders()); + } + + public function testConcurrentHandlers() + { + $handler = new TestFirePHPHandler; + $handler->setFormatter($this->getIdentityFormatter()); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::WARNING)); + + $handler2 = new TestFirePHPHandler; + $handler2->setFormatter($this->getIdentityFormatter()); + $handler2->handle($this->getRecord(Logger::DEBUG)); + $handler2->handle($this->getRecord(Logger::WARNING)); + + $expected = array( + 'X-Wf-Protocol-1' => 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2', + 'X-Wf-1-Structure-1' => 'http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1', + 'X-Wf-1-Plugin-1' => 'http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/0.3', + 'X-Wf-1-1-1-1' => 'test', + 'X-Wf-1-1-1-2' => 'test', + ); + + $expected2 = array( + 'X-Wf-1-1-1-3' => 'test', + 'X-Wf-1-1-1-4' => 'test', + ); + + $this->assertEquals($expected, $handler->getHeaders()); + $this->assertEquals($expected2, $handler2->getHeaders()); + } +} + +class TestFirePHPHandler extends FirePHPHandler +{ + protected $headers = array(); + + public static function resetStatic() + { + self::$initialized = false; + self::$sendHeaders = true; + self::$messageIndex = 1; + } + + protected function sendHeader($header, $content) + { + $this->headers[$header] = $content; + } + + public function getHeaders() + { + return $this->headers; + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/FleepHookHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/FleepHookHandlerTest.php new file mode 100644 index 00000000..91cdd312 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/FleepHookHandlerTest.php @@ -0,0 +1,85 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Formatter\LineFormatter; +use Monolog\Logger; +use Monolog\TestCase; + +/** + * @coversDefaultClass \Monolog\Handler\FleepHookHandler + */ +class FleepHookHandlerTest extends TestCase +{ + /** + * Default token to use in tests + */ + const TOKEN = '123abc'; + + /** + * @var FleepHookHandler + */ + private $handler; + + public function setUp() + { + parent::setUp(); + + if (!extension_loaded('openssl')) { + $this->markTestSkipped('This test requires openssl extension to run'); + } + + // Create instances of the handler and logger for convenience + $this->handler = new FleepHookHandler(self::TOKEN); + } + + /** + * @covers ::__construct + */ + public function testConstructorSetsExpectedDefaults() + { + $this->assertEquals(Logger::DEBUG, $this->handler->getLevel()); + $this->assertEquals(true, $this->handler->getBubble()); + } + + /** + * @covers ::getDefaultFormatter + */ + public function testHandlerUsesLineFormatterWhichIgnoresEmptyArrays() + { + $record = array( + 'message' => 'msg', + 'context' => array(), + 'level' => Logger::DEBUG, + 'level_name' => Logger::getLevelName(Logger::DEBUG), + 'channel' => 'channel', + 'datetime' => new \DateTime(), + 'extra' => array(), + ); + + $expectedFormatter = new LineFormatter(null, null, true, true); + $expected = $expectedFormatter->format($record); + + $handlerFormatter = $this->handler->getFormatter(); + $actual = $handlerFormatter->format($record); + + $this->assertEquals($expected, $actual, 'Empty context and extra arrays should not be rendered'); + } + + /** + * @covers ::__construct + */ + public function testConnectionStringisConstructedCorrectly() + { + $this->assertEquals('ssl://' . FleepHookHandler::FLEEP_HOST . ':443', $this->handler->getConnectionString()); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/FlowdockHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/FlowdockHandlerTest.php new file mode 100644 index 00000000..4b120d51 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/FlowdockHandlerTest.php @@ -0,0 +1,88 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Formatter\FlowdockFormatter; +use Monolog\TestCase; +use Monolog\Logger; + +/** + * @author Dominik Liebler + * @see https://www.hipchat.com/docs/api + */ +class FlowdockHandlerTest extends TestCase +{ + /** + * @var resource + */ + private $res; + + /** + * @var FlowdockHandler + */ + private $handler; + + public function setUp() + { + if (!extension_loaded('openssl')) { + $this->markTestSkipped('This test requires openssl to run'); + } + } + + public function testWriteHeader() + { + $this->createHandler(); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/POST \/v1\/messages\/team_inbox\/.* HTTP\/1.1\\r\\nHost: api.flowdock.com\\r\\nContent-Type: application\/json\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); + + return $content; + } + + /** + * @depends testWriteHeader + */ + public function testWriteContent($content) + { + $this->assertRegexp('/"source":"test_source"/', $content); + $this->assertRegexp('/"from_address":"source@test\.com"/', $content); + } + + private function createHandler($token = 'myToken') + { + $constructorArgs = array($token, Logger::DEBUG); + $this->res = fopen('php://memory', 'a'); + $this->handler = $this->getMock( + '\Monolog\Handler\FlowdockHandler', + array('fsockopen', 'streamSetTimeout', 'closeSocket'), + $constructorArgs + ); + + $reflectionProperty = new \ReflectionProperty('\Monolog\Handler\SocketHandler', 'connectionString'); + $reflectionProperty->setAccessible(true); + $reflectionProperty->setValue($this->handler, 'localhost:1234'); + + $this->handler->expects($this->any()) + ->method('fsockopen') + ->will($this->returnValue($this->res)); + $this->handler->expects($this->any()) + ->method('streamSetTimeout') + ->will($this->returnValue(true)); + $this->handler->expects($this->any()) + ->method('closeSocket') + ->will($this->returnValue(true)); + + $this->handler->setFormatter(new FlowdockFormatter('test_source', 'source@test.com')); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerLegacyTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerLegacyTest.php new file mode 100644 index 00000000..9d007b13 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerLegacyTest.php @@ -0,0 +1,95 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Gelf\Message; +use Monolog\TestCase; +use Monolog\Logger; +use Monolog\Formatter\GelfMessageFormatter; + +class GelfHandlerLegacyTest extends TestCase +{ + public function setUp() + { + if (!class_exists('Gelf\MessagePublisher') || !class_exists('Gelf\Message')) { + $this->markTestSkipped("mlehner/gelf-php not installed"); + } + + require_once __DIR__ . '/GelfMockMessagePublisher.php'; + } + + /** + * @covers Monolog\Handler\GelfHandler::__construct + */ + public function testConstruct() + { + $handler = new GelfHandler($this->getMessagePublisher()); + $this->assertInstanceOf('Monolog\Handler\GelfHandler', $handler); + } + + protected function getHandler($messagePublisher) + { + $handler = new GelfHandler($messagePublisher); + + return $handler; + } + + protected function getMessagePublisher() + { + return new GelfMockMessagePublisher('localhost'); + } + + public function testDebug() + { + $messagePublisher = $this->getMessagePublisher(); + $handler = $this->getHandler($messagePublisher); + + $record = $this->getRecord(Logger::DEBUG, "A test debug message"); + $handler->handle($record); + + $this->assertEquals(7, $messagePublisher->lastMessage->getLevel()); + $this->assertEquals('test', $messagePublisher->lastMessage->getFacility()); + $this->assertEquals($record['message'], $messagePublisher->lastMessage->getShortMessage()); + $this->assertEquals(null, $messagePublisher->lastMessage->getFullMessage()); + } + + public function testWarning() + { + $messagePublisher = $this->getMessagePublisher(); + $handler = $this->getHandler($messagePublisher); + + $record = $this->getRecord(Logger::WARNING, "A test warning message"); + $handler->handle($record); + + $this->assertEquals(4, $messagePublisher->lastMessage->getLevel()); + $this->assertEquals('test', $messagePublisher->lastMessage->getFacility()); + $this->assertEquals($record['message'], $messagePublisher->lastMessage->getShortMessage()); + $this->assertEquals(null, $messagePublisher->lastMessage->getFullMessage()); + } + + public function testInjectedGelfMessageFormatter() + { + $messagePublisher = $this->getMessagePublisher(); + $handler = $this->getHandler($messagePublisher); + + $handler->setFormatter(new GelfMessageFormatter('mysystem', 'EXT', 'CTX')); + + $record = $this->getRecord(Logger::WARNING, "A test warning message"); + $record['extra']['blarg'] = 'yep'; + $record['context']['from'] = 'logger'; + $handler->handle($record); + + $this->assertEquals('mysystem', $messagePublisher->lastMessage->getHost()); + $this->assertArrayHasKey('_EXTblarg', $messagePublisher->lastMessage->toArray()); + $this->assertArrayHasKey('_CTXfrom', $messagePublisher->lastMessage->toArray()); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerTest.php new file mode 100644 index 00000000..8cdd64f4 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerTest.php @@ -0,0 +1,117 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Gelf\Message; +use Monolog\TestCase; +use Monolog\Logger; +use Monolog\Formatter\GelfMessageFormatter; + +class GelfHandlerTest extends TestCase +{ + public function setUp() + { + if (!class_exists('Gelf\Publisher') || !class_exists('Gelf\Message')) { + $this->markTestSkipped("graylog2/gelf-php not installed"); + } + } + + /** + * @covers Monolog\Handler\GelfHandler::__construct + */ + public function testConstruct() + { + $handler = new GelfHandler($this->getMessagePublisher()); + $this->assertInstanceOf('Monolog\Handler\GelfHandler', $handler); + } + + protected function getHandler($messagePublisher) + { + $handler = new GelfHandler($messagePublisher); + + return $handler; + } + + protected function getMessagePublisher() + { + return $this->getMock('Gelf\Publisher', array('publish'), array(), '', false); + } + + public function testDebug() + { + $record = $this->getRecord(Logger::DEBUG, "A test debug message"); + $expectedMessage = new Message(); + $expectedMessage + ->setLevel(7) + ->setFacility("test") + ->setShortMessage($record['message']) + ->setTimestamp($record['datetime']) + ; + + $messagePublisher = $this->getMessagePublisher(); + $messagePublisher->expects($this->once()) + ->method('publish') + ->with($expectedMessage); + + $handler = $this->getHandler($messagePublisher); + + $handler->handle($record); + } + + public function testWarning() + { + $record = $this->getRecord(Logger::WARNING, "A test warning message"); + $expectedMessage = new Message(); + $expectedMessage + ->setLevel(4) + ->setFacility("test") + ->setShortMessage($record['message']) + ->setTimestamp($record['datetime']) + ; + + $messagePublisher = $this->getMessagePublisher(); + $messagePublisher->expects($this->once()) + ->method('publish') + ->with($expectedMessage); + + $handler = $this->getHandler($messagePublisher); + + $handler->handle($record); + } + + public function testInjectedGelfMessageFormatter() + { + $record = $this->getRecord(Logger::WARNING, "A test warning message"); + $record['extra']['blarg'] = 'yep'; + $record['context']['from'] = 'logger'; + + $expectedMessage = new Message(); + $expectedMessage + ->setLevel(4) + ->setFacility("test") + ->setHost("mysystem") + ->setShortMessage($record['message']) + ->setTimestamp($record['datetime']) + ->setAdditional("EXTblarg", 'yep') + ->setAdditional("CTXfrom", 'logger') + ; + + $messagePublisher = $this->getMessagePublisher(); + $messagePublisher->expects($this->once()) + ->method('publish') + ->with($expectedMessage); + + $handler = $this->getHandler($messagePublisher); + $handler->setFormatter(new GelfMessageFormatter('mysystem', 'EXT', 'CTX')); + $handler->handle($record); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/GelfMockMessagePublisher.php b/vendor/monolog/monolog/tests/Monolog/Handler/GelfMockMessagePublisher.php new file mode 100644 index 00000000..873d92fb --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/GelfMockMessagePublisher.php @@ -0,0 +1,25 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Gelf\MessagePublisher; +use Gelf\Message; + +class GelfMockMessagePublisher extends MessagePublisher +{ + public function publish(Message $message) + { + $this->lastMessage = $message; + } + + public $lastMessage = null; +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/GroupHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/GroupHandlerTest.php new file mode 100644 index 00000000..a1b86176 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/GroupHandlerTest.php @@ -0,0 +1,112 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; + +class GroupHandlerTest extends TestCase +{ + /** + * @covers Monolog\Handler\GroupHandler::__construct + * @expectedException InvalidArgumentException + */ + public function testConstructorOnlyTakesHandler() + { + new GroupHandler(array(new TestHandler(), "foo")); + } + + /** + * @covers Monolog\Handler\GroupHandler::__construct + * @covers Monolog\Handler\GroupHandler::handle + */ + public function testHandle() + { + $testHandlers = array(new TestHandler(), new TestHandler()); + $handler = new GroupHandler($testHandlers); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::INFO)); + foreach ($testHandlers as $test) { + $this->assertTrue($test->hasDebugRecords()); + $this->assertTrue($test->hasInfoRecords()); + $this->assertTrue(count($test->getRecords()) === 2); + } + } + + /** + * @covers Monolog\Handler\GroupHandler::handleBatch + */ + public function testHandleBatch() + { + $testHandlers = array(new TestHandler(), new TestHandler()); + $handler = new GroupHandler($testHandlers); + $handler->handleBatch(array($this->getRecord(Logger::DEBUG), $this->getRecord(Logger::INFO))); + foreach ($testHandlers as $test) { + $this->assertTrue($test->hasDebugRecords()); + $this->assertTrue($test->hasInfoRecords()); + $this->assertTrue(count($test->getRecords()) === 2); + } + } + + /** + * @covers Monolog\Handler\GroupHandler::isHandling + */ + public function testIsHandling() + { + $testHandlers = array(new TestHandler(Logger::ERROR), new TestHandler(Logger::WARNING)); + $handler = new GroupHandler($testHandlers); + $this->assertTrue($handler->isHandling($this->getRecord(Logger::ERROR))); + $this->assertTrue($handler->isHandling($this->getRecord(Logger::WARNING))); + $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG))); + } + + /** + * @covers Monolog\Handler\GroupHandler::handle + */ + public function testHandleUsesProcessors() + { + $test = new TestHandler(); + $handler = new GroupHandler(array($test)); + $handler->pushProcessor(function ($record) { + $record['extra']['foo'] = true; + + return $record; + }); + $handler->handle($this->getRecord(Logger::WARNING)); + $this->assertTrue($test->hasWarningRecords()); + $records = $test->getRecords(); + $this->assertTrue($records[0]['extra']['foo']); + } + + /** + * @covers Monolog\Handler\GroupHandler::handle + */ + public function testHandleBatchUsesProcessors() + { + $testHandlers = array(new TestHandler(), new TestHandler()); + $handler = new GroupHandler($testHandlers); + $handler->pushProcessor(function ($record) { + $record['extra']['foo'] = true; + + return $record; + }); + $handler->handleBatch(array($this->getRecord(Logger::DEBUG), $this->getRecord(Logger::INFO))); + foreach ($testHandlers as $test) { + $this->assertTrue($test->hasDebugRecords()); + $this->assertTrue($test->hasInfoRecords()); + $this->assertTrue(count($test->getRecords()) === 2); + $records = $test->getRecords(); + $this->assertTrue($records[0]['extra']['foo']); + $this->assertTrue($records[1]['extra']['foo']); + } + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/HandlerWrapperTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/HandlerWrapperTest.php new file mode 100644 index 00000000..d8d0452c --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/HandlerWrapperTest.php @@ -0,0 +1,130 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; + +/** + * @author Alexey Karapetov + */ +class HandlerWrapperTest extends TestCase +{ + /** + * @var HandlerWrapper + */ + private $wrapper; + + private $handler; + + public function setUp() + { + parent::setUp(); + $this->handler = $this->getMock('Monolog\\Handler\\HandlerInterface'); + $this->wrapper = new HandlerWrapper($this->handler); + } + + /** + * @return array + */ + public function trueFalseDataProvider() + { + return array( + array(true), + array(false), + ); + } + + /** + * @param $result + * @dataProvider trueFalseDataProvider + */ + public function testIsHandling($result) + { + $record = $this->getRecord(); + $this->handler->expects($this->once()) + ->method('isHandling') + ->with($record) + ->willReturn($result); + + $this->assertEquals($result, $this->wrapper->isHandling($record)); + } + + /** + * @param $result + * @dataProvider trueFalseDataProvider + */ + public function testHandle($result) + { + $record = $this->getRecord(); + $this->handler->expects($this->once()) + ->method('handle') + ->with($record) + ->willReturn($result); + + $this->assertEquals($result, $this->wrapper->handle($record)); + } + + /** + * @param $result + * @dataProvider trueFalseDataProvider + */ + public function testHandleBatch($result) + { + $records = $this->getMultipleRecords(); + $this->handler->expects($this->once()) + ->method('handleBatch') + ->with($records) + ->willReturn($result); + + $this->assertEquals($result, $this->wrapper->handleBatch($records)); + } + + public function testPushProcessor() + { + $processor = function () {}; + $this->handler->expects($this->once()) + ->method('pushProcessor') + ->with($processor); + + $this->assertEquals($this->wrapper, $this->wrapper->pushProcessor($processor)); + } + + public function testPopProcessor() + { + $processor = function () {}; + $this->handler->expects($this->once()) + ->method('popProcessor') + ->willReturn($processor); + + $this->assertEquals($processor, $this->wrapper->popProcessor()); + } + + public function testSetFormatter() + { + $formatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); + $this->handler->expects($this->once()) + ->method('setFormatter') + ->with($formatter); + + $this->assertEquals($this->wrapper, $this->wrapper->setFormatter($formatter)); + } + + public function testGetFormatter() + { + $formatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); + $this->handler->expects($this->once()) + ->method('getFormatter') + ->willReturn($formatter); + + $this->assertEquals($formatter, $this->wrapper->getFormatter()); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/HipChatHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/HipChatHandlerTest.php new file mode 100644 index 00000000..52dc9dac --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/HipChatHandlerTest.php @@ -0,0 +1,279 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; + +/** + * @author Rafael Dohms + * @see https://www.hipchat.com/docs/api + */ +class HipChatHandlerTest extends TestCase +{ + private $res; + /** @var HipChatHandler */ + private $handler; + + public function testWriteHeader() + { + $this->createHandler(); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/POST \/v1\/rooms\/message\?format=json&auth_token=.* HTTP\/1.1\\r\\nHost: api.hipchat.com\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); + + return $content; + } + + public function testWriteCustomHostHeader() + { + $this->createHandler('myToken', 'room1', 'Monolog', true, 'hipchat.foo.bar'); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/POST \/v1\/rooms\/message\?format=json&auth_token=.* HTTP\/1.1\\r\\nHost: hipchat.foo.bar\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); + + return $content; + } + + public function testWriteV2() + { + $this->createHandler('myToken', 'room1', 'Monolog', false, 'hipchat.foo.bar', 'v2'); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/POST \/v2\/room\/room1\/notification\?auth_token=.* HTTP\/1.1\\r\\nHost: hipchat.foo.bar\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); + + return $content; + } + + public function testWriteV2Notify() + { + $this->createHandler('myToken', 'room1', 'Monolog', true, 'hipchat.foo.bar', 'v2'); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/POST \/v2\/room\/room1\/notification\?auth_token=.* HTTP\/1.1\\r\\nHost: hipchat.foo.bar\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); + + return $content; + } + + public function testRoomSpaces() + { + $this->createHandler('myToken', 'room name', 'Monolog', false, 'hipchat.foo.bar', 'v2'); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/POST \/v2\/room\/room%20name\/notification\?auth_token=.* HTTP\/1.1\\r\\nHost: hipchat.foo.bar\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); + + return $content; + } + + /** + * @depends testWriteHeader + */ + public function testWriteContent($content) + { + $this->assertRegexp('/notify=0&message=test1&message_format=text&color=red&room_id=room1&from=Monolog$/', $content); + } + + public function testWriteContentV1WithoutName() + { + $this->createHandler('myToken', 'room1', null, false, 'hipchat.foo.bar', 'v1'); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/notify=0&message=test1&message_format=text&color=red&room_id=room1&from=$/', $content); + + return $content; + } + + /** + * @depends testWriteCustomHostHeader + */ + public function testWriteContentNotify($content) + { + $this->assertRegexp('/notify=1&message=test1&message_format=text&color=red&room_id=room1&from=Monolog$/', $content); + } + + /** + * @depends testWriteV2 + */ + public function testWriteContentV2($content) + { + $this->assertRegexp('/notify=false&message=test1&message_format=text&color=red&from=Monolog$/', $content); + } + + /** + * @depends testWriteV2Notify + */ + public function testWriteContentV2Notify($content) + { + $this->assertRegexp('/notify=true&message=test1&message_format=text&color=red&from=Monolog$/', $content); + } + + public function testWriteContentV2WithoutName() + { + $this->createHandler('myToken', 'room1', null, false, 'hipchat.foo.bar', 'v2'); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/notify=false&message=test1&message_format=text&color=red$/', $content); + + return $content; + } + + public function testWriteWithComplexMessage() + { + $this->createHandler(); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'Backup of database "example" finished in 16 minutes.')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/message=Backup\+of\+database\+%22example%22\+finished\+in\+16\+minutes\./', $content); + } + + public function testWriteTruncatesLongMessage() + { + $this->createHandler(); + $this->handler->handle($this->getRecord(Logger::CRITICAL, str_repeat('abcde', 2000))); + fseek($this->res, 0); + $content = fread($this->res, 12000); + + $this->assertRegexp('/message='.str_repeat('abcde', 1900).'\+%5Btruncated%5D/', $content); + } + + /** + * @dataProvider provideLevelColors + */ + public function testWriteWithErrorLevelsAndColors($level, $expectedColor) + { + $this->createHandler(); + $this->handler->handle($this->getRecord($level, 'Backup of database "example" finished in 16 minutes.')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/color='.$expectedColor.'/', $content); + } + + public function provideLevelColors() + { + return array( + array(Logger::DEBUG, 'gray'), + array(Logger::INFO, 'green'), + array(Logger::WARNING, 'yellow'), + array(Logger::ERROR, 'red'), + array(Logger::CRITICAL, 'red'), + array(Logger::ALERT, 'red'), + array(Logger::EMERGENCY,'red'), + array(Logger::NOTICE, 'green'), + ); + } + + /** + * @dataProvider provideBatchRecords + */ + public function testHandleBatch($records, $expectedColor) + { + $this->createHandler(); + + $this->handler->handleBatch($records); + + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/color='.$expectedColor.'/', $content); + } + + public function provideBatchRecords() + { + return array( + array( + array( + array('level' => Logger::WARNING, 'message' => 'Oh bugger!', 'level_name' => 'warning', 'datetime' => new \DateTime()), + array('level' => Logger::NOTICE, 'message' => 'Something noticeable happened.', 'level_name' => 'notice', 'datetime' => new \DateTime()), + array('level' => Logger::CRITICAL, 'message' => 'Everything is broken!', 'level_name' => 'critical', 'datetime' => new \DateTime()), + ), + 'red', + ), + array( + array( + array('level' => Logger::WARNING, 'message' => 'Oh bugger!', 'level_name' => 'warning', 'datetime' => new \DateTime()), + array('level' => Logger::NOTICE, 'message' => 'Something noticeable happened.', 'level_name' => 'notice', 'datetime' => new \DateTime()), + ), + 'yellow', + ), + array( + array( + array('level' => Logger::DEBUG, 'message' => 'Just debugging.', 'level_name' => 'debug', 'datetime' => new \DateTime()), + array('level' => Logger::NOTICE, 'message' => 'Something noticeable happened.', 'level_name' => 'notice', 'datetime' => new \DateTime()), + ), + 'green', + ), + array( + array( + array('level' => Logger::DEBUG, 'message' => 'Just debugging.', 'level_name' => 'debug', 'datetime' => new \DateTime()), + ), + 'gray', + ), + ); + } + + private function createHandler($token = 'myToken', $room = 'room1', $name = 'Monolog', $notify = false, $host = 'api.hipchat.com', $version = 'v1') + { + $constructorArgs = array($token, $room, $name, $notify, Logger::DEBUG, true, true, 'text', $host, $version); + $this->res = fopen('php://memory', 'a'); + $this->handler = $this->getMock( + '\Monolog\Handler\HipChatHandler', + array('fsockopen', 'streamSetTimeout', 'closeSocket'), + $constructorArgs + ); + + $reflectionProperty = new \ReflectionProperty('\Monolog\Handler\SocketHandler', 'connectionString'); + $reflectionProperty->setAccessible(true); + $reflectionProperty->setValue($this->handler, 'localhost:1234'); + + $this->handler->expects($this->any()) + ->method('fsockopen') + ->will($this->returnValue($this->res)); + $this->handler->expects($this->any()) + ->method('streamSetTimeout') + ->will($this->returnValue(true)); + $this->handler->expects($this->any()) + ->method('closeSocket') + ->will($this->returnValue(true)); + + $this->handler->setFormatter($this->getIdentityFormatter()); + } + + /** + * @expectedException InvalidArgumentException + */ + public function testCreateWithTooLongName() + { + $hipChatHandler = new HipChatHandler('token', 'room', 'SixteenCharsHere'); + } + + public function testCreateWithTooLongNameV2() + { + // creating a handler with too long of a name but using the v2 api doesn't matter. + $hipChatHandler = new HipChatHandler('token', 'room', 'SixteenCharsHere', false, Logger::CRITICAL, true, true, 'test', 'api.hipchat.com', 'v2'); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/InsightOpsHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/InsightOpsHandlerTest.php new file mode 100644 index 00000000..97c18b59 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/InsightOpsHandlerTest.php @@ -0,0 +1,80 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + + namespace Monolog\Handler; + + use Monolog\TestCase; + use Monolog\Logger; + +/** + * @author Robert Kaufmann III + * @author Gabriel Machado + */ +class InsightOpsHandlerTest extends TestCase +{ + /** + * @var resource + */ + private $resource; + + /** + * @var LogEntriesHandler + */ + private $handler; + + public function testWriteContent() + { + $this->createHandler(); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'Critical write test')); + + fseek($this->resource, 0); + $content = fread($this->resource, 1024); + + $this->assertRegexp('/testToken \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] test.CRITICAL: Critical write test/', $content); + } + + public function testWriteBatchContent() + { + $this->createHandler(); + $this->handler->handleBatch($this->getMultipleRecords()); + + fseek($this->resource, 0); + $content = fread($this->resource, 1024); + + $this->assertRegexp('/(testToken \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] .* \[\] \[\]\n){3}/', $content); + } + + private function createHandler() + { + $useSSL = extension_loaded('openssl'); + $args = array('testToken', 'us', $useSSL, Logger::DEBUG, true); + $this->resource = fopen('php://memory', 'a'); + $this->handler = $this->getMock( + '\Monolog\Handler\InsightOpsHandler', + array('fsockopen', 'streamSetTimeout', 'closeSocket'), + $args + ); + + $reflectionProperty = new \ReflectionProperty('\Monolog\Handler\SocketHandler', 'connectionString'); + $reflectionProperty->setAccessible(true); + $reflectionProperty->setValue($this->handler, 'localhost:1234'); + + $this->handler->expects($this->any()) + ->method('fsockopen') + ->will($this->returnValue($this->resource)); + $this->handler->expects($this->any()) + ->method('streamSetTimeout') + ->will($this->returnValue(true)); + $this->handler->expects($this->any()) + ->method('closeSocket') + ->will($this->returnValue(true)); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/LogEntriesHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/LogEntriesHandlerTest.php new file mode 100644 index 00000000..b2deb40a --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/LogEntriesHandlerTest.php @@ -0,0 +1,84 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; + +/** + * @author Robert Kaufmann III + */ +class LogEntriesHandlerTest extends TestCase +{ + /** + * @var resource + */ + private $res; + + /** + * @var LogEntriesHandler + */ + private $handler; + + public function testWriteContent() + { + $this->createHandler(); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'Critical write test')); + + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/testToken \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] test.CRITICAL: Critical write test/', $content); + } + + public function testWriteBatchContent() + { + $records = array( + $this->getRecord(), + $this->getRecord(), + $this->getRecord(), + ); + $this->createHandler(); + $this->handler->handleBatch($records); + + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/(testToken \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] .* \[\] \[\]\n){3}/', $content); + } + + private function createHandler() + { + $useSSL = extension_loaded('openssl'); + $args = array('testToken', $useSSL, Logger::DEBUG, true); + $this->res = fopen('php://memory', 'a'); + $this->handler = $this->getMock( + '\Monolog\Handler\LogEntriesHandler', + array('fsockopen', 'streamSetTimeout', 'closeSocket'), + $args + ); + + $reflectionProperty = new \ReflectionProperty('\Monolog\Handler\SocketHandler', 'connectionString'); + $reflectionProperty->setAccessible(true); + $reflectionProperty->setValue($this->handler, 'localhost:1234'); + + $this->handler->expects($this->any()) + ->method('fsockopen') + ->will($this->returnValue($this->res)); + $this->handler->expects($this->any()) + ->method('streamSetTimeout') + ->will($this->returnValue(true)); + $this->handler->expects($this->any()) + ->method('closeSocket') + ->will($this->returnValue(true)); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/MailHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/MailHandlerTest.php new file mode 100644 index 00000000..6754f3d6 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/MailHandlerTest.php @@ -0,0 +1,75 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; +use Monolog\TestCase; + +class MailHandlerTest extends TestCase +{ + /** + * @covers Monolog\Handler\MailHandler::handleBatch + */ + public function testHandleBatch() + { + $formatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); + $formatter->expects($this->once()) + ->method('formatBatch'); // Each record is formatted + + $handler = $this->getMockForAbstractClass('Monolog\\Handler\\MailHandler'); + $handler->expects($this->once()) + ->method('send'); + $handler->expects($this->never()) + ->method('write'); // write is for individual records + + $handler->setFormatter($formatter); + + $handler->handleBatch($this->getMultipleRecords()); + } + + /** + * @covers Monolog\Handler\MailHandler::handleBatch + */ + public function testHandleBatchNotSendsMailIfMessagesAreBelowLevel() + { + $records = array( + $this->getRecord(Logger::DEBUG, 'debug message 1'), + $this->getRecord(Logger::DEBUG, 'debug message 2'), + $this->getRecord(Logger::INFO, 'information'), + ); + + $handler = $this->getMockForAbstractClass('Monolog\\Handler\\MailHandler'); + $handler->expects($this->never()) + ->method('send'); + $handler->setLevel(Logger::ERROR); + + $handler->handleBatch($records); + } + + /** + * @covers Monolog\Handler\MailHandler::write + */ + public function testHandle() + { + $handler = $this->getMockForAbstractClass('Monolog\\Handler\\MailHandler'); + + $record = $this->getRecord(); + $records = array($record); + $records[0]['formatted'] = '['.$record['datetime']->format('Y-m-d H:i:s').'] test.WARNING: test [] []'."\n"; + + $handler->expects($this->once()) + ->method('send') + ->with($records[0]['formatted'], $records); + + $handler->handle($record); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/MockRavenClient.php b/vendor/monolog/monolog/tests/Monolog/Handler/MockRavenClient.php new file mode 100644 index 00000000..a0833225 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/MockRavenClient.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Raven_Client; + +class MockRavenClient extends Raven_Client +{ + public function capture($data, $stack, $vars = null) + { + $data = array_merge($this->get_user_data(), $data); + $this->lastData = $data; + $this->lastStack = $stack; + } + + public $lastData; + public $lastStack; +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/MongoDBHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/MongoDBHandlerTest.php new file mode 100644 index 00000000..0fdef63a --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/MongoDBHandlerTest.php @@ -0,0 +1,65 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; + +class MongoDBHandlerTest extends TestCase +{ + /** + * @expectedException InvalidArgumentException + */ + public function testConstructorShouldThrowExceptionForInvalidMongo() + { + new MongoDBHandler(new \stdClass(), 'DB', 'Collection'); + } + + public function testHandle() + { + $mongo = $this->getMock('Mongo', array('selectCollection'), array(), '', false); + $collection = $this->getMock('stdClass', array('save')); + + $mongo->expects($this->once()) + ->method('selectCollection') + ->with('DB', 'Collection') + ->will($this->returnValue($collection)); + + $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); + + $expected = array( + 'message' => 'test', + 'context' => array('data' => '[object] (stdClass: {})', 'foo' => 34), + 'level' => Logger::WARNING, + 'level_name' => 'WARNING', + 'channel' => 'test', + 'datetime' => $record['datetime']->format('Y-m-d H:i:s'), + 'extra' => array(), + ); + + $collection->expects($this->once()) + ->method('save') + ->with($expected); + + $handler = new MongoDBHandler($mongo, 'DB', 'Collection'); + $handler->handle($record); + } +} + +if (!class_exists('Mongo')) { + class Mongo + { + public function selectCollection() + { + } + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/NativeMailerHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/NativeMailerHandlerTest.php new file mode 100644 index 00000000..ddf545db --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/NativeMailerHandlerTest.php @@ -0,0 +1,111 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; +use InvalidArgumentException; + +function mail($to, $subject, $message, $additional_headers = null, $additional_parameters = null) +{ + $GLOBALS['mail'][] = func_get_args(); +} + +class NativeMailerHandlerTest extends TestCase +{ + protected function setUp() + { + $GLOBALS['mail'] = array(); + } + + /** + * @expectedException InvalidArgumentException + */ + public function testConstructorHeaderInjection() + { + $mailer = new NativeMailerHandler('spammer@example.org', 'dear victim', "receiver@example.org\r\nFrom: faked@attacker.org"); + } + + /** + * @expectedException InvalidArgumentException + */ + public function testSetterHeaderInjection() + { + $mailer = new NativeMailerHandler('spammer@example.org', 'dear victim', 'receiver@example.org'); + $mailer->addHeader("Content-Type: text/html\r\nFrom: faked@attacker.org"); + } + + /** + * @expectedException InvalidArgumentException + */ + public function testSetterArrayHeaderInjection() + { + $mailer = new NativeMailerHandler('spammer@example.org', 'dear victim', 'receiver@example.org'); + $mailer->addHeader(array("Content-Type: text/html\r\nFrom: faked@attacker.org")); + } + + /** + * @expectedException InvalidArgumentException + */ + public function testSetterContentTypeInjection() + { + $mailer = new NativeMailerHandler('spammer@example.org', 'dear victim', 'receiver@example.org'); + $mailer->setContentType("text/html\r\nFrom: faked@attacker.org"); + } + + /** + * @expectedException InvalidArgumentException + */ + public function testSetterEncodingInjection() + { + $mailer = new NativeMailerHandler('spammer@example.org', 'dear victim', 'receiver@example.org'); + $mailer->setEncoding("utf-8\r\nFrom: faked@attacker.org"); + } + + public function testSend() + { + $to = 'spammer@example.org'; + $subject = 'dear victim'; + $from = 'receiver@example.org'; + + $mailer = new NativeMailerHandler($to, $subject, $from); + $mailer->handleBatch(array()); + + // batch is empty, nothing sent + $this->assertEmpty($GLOBALS['mail']); + + // non-empty batch + $mailer->handle($this->getRecord(Logger::ERROR, "Foo\nBar\r\n\r\nBaz")); + $this->assertNotEmpty($GLOBALS['mail']); + $this->assertInternalType('array', $GLOBALS['mail']); + $this->assertArrayHasKey('0', $GLOBALS['mail']); + $params = $GLOBALS['mail'][0]; + $this->assertCount(5, $params); + $this->assertSame($to, $params[0]); + $this->assertSame($subject, $params[1]); + $this->assertStringEndsWith(" test.ERROR: Foo Bar Baz [] []\n", $params[2]); + $this->assertSame("From: $from\r\nContent-type: text/plain; charset=utf-8\r\n", $params[3]); + $this->assertSame('', $params[4]); + } + + public function testMessageSubjectFormatting() + { + $mailer = new NativeMailerHandler('to@example.org', 'Alert: %level_name% %message%', 'from@example.org'); + $mailer->handle($this->getRecord(Logger::ERROR, "Foo\nBar\r\n\r\nBaz")); + $this->assertNotEmpty($GLOBALS['mail']); + $this->assertInternalType('array', $GLOBALS['mail']); + $this->assertArrayHasKey('0', $GLOBALS['mail']); + $params = $GLOBALS['mail'][0]; + $this->assertCount(5, $params); + $this->assertSame('Alert: ERROR Foo Bar Baz', $params[1]); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php new file mode 100644 index 00000000..4d3a615f --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php @@ -0,0 +1,200 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Formatter\LineFormatter; +use Monolog\TestCase; +use Monolog\Logger; + +class NewRelicHandlerTest extends TestCase +{ + public static $appname; + public static $customParameters; + public static $transactionName; + + public function setUp() + { + self::$appname = null; + self::$customParameters = array(); + self::$transactionName = null; + } + + /** + * @expectedException Monolog\Handler\MissingExtensionException + */ + public function testThehandlerThrowsAnExceptionIfTheNRExtensionIsNotLoaded() + { + $handler = new StubNewRelicHandlerWithoutExtension(); + $handler->handle($this->getRecord(Logger::ERROR)); + } + + public function testThehandlerCanHandleTheRecord() + { + $handler = new StubNewRelicHandler(); + $handler->handle($this->getRecord(Logger::ERROR)); + } + + public function testThehandlerCanAddContextParamsToTheNewRelicTrace() + { + $handler = new StubNewRelicHandler(); + $handler->handle($this->getRecord(Logger::ERROR, 'log message', array('a' => 'b'))); + $this->assertEquals(array('context_a' => 'b'), self::$customParameters); + } + + public function testThehandlerCanAddExplodedContextParamsToTheNewRelicTrace() + { + $handler = new StubNewRelicHandler(Logger::ERROR, true, self::$appname, true); + $handler->handle($this->getRecord( + Logger::ERROR, + 'log message', + array('a' => array('key1' => 'value1', 'key2' => 'value2')) + )); + $this->assertEquals( + array('context_a_key1' => 'value1', 'context_a_key2' => 'value2'), + self::$customParameters + ); + } + + public function testThehandlerCanAddExtraParamsToTheNewRelicTrace() + { + $record = $this->getRecord(Logger::ERROR, 'log message'); + $record['extra'] = array('c' => 'd'); + + $handler = new StubNewRelicHandler(); + $handler->handle($record); + + $this->assertEquals(array('extra_c' => 'd'), self::$customParameters); + } + + public function testThehandlerCanAddExplodedExtraParamsToTheNewRelicTrace() + { + $record = $this->getRecord(Logger::ERROR, 'log message'); + $record['extra'] = array('c' => array('key1' => 'value1', 'key2' => 'value2')); + + $handler = new StubNewRelicHandler(Logger::ERROR, true, self::$appname, true); + $handler->handle($record); + + $this->assertEquals( + array('extra_c_key1' => 'value1', 'extra_c_key2' => 'value2'), + self::$customParameters + ); + } + + public function testThehandlerCanAddExtraContextAndParamsToTheNewRelicTrace() + { + $record = $this->getRecord(Logger::ERROR, 'log message', array('a' => 'b')); + $record['extra'] = array('c' => 'd'); + + $handler = new StubNewRelicHandler(); + $handler->handle($record); + + $expected = array( + 'context_a' => 'b', + 'extra_c' => 'd', + ); + + $this->assertEquals($expected, self::$customParameters); + } + + public function testThehandlerCanHandleTheRecordsFormattedUsingTheLineFormatter() + { + $handler = new StubNewRelicHandler(); + $handler->setFormatter(new LineFormatter()); + $handler->handle($this->getRecord(Logger::ERROR)); + } + + public function testTheAppNameIsNullByDefault() + { + $handler = new StubNewRelicHandler(); + $handler->handle($this->getRecord(Logger::ERROR, 'log message')); + + $this->assertEquals(null, self::$appname); + } + + public function testTheAppNameCanBeInjectedFromtheConstructor() + { + $handler = new StubNewRelicHandler(Logger::DEBUG, false, 'myAppName'); + $handler->handle($this->getRecord(Logger::ERROR, 'log message')); + + $this->assertEquals('myAppName', self::$appname); + } + + public function testTheAppNameCanBeOverriddenFromEachLog() + { + $handler = new StubNewRelicHandler(Logger::DEBUG, false, 'myAppName'); + $handler->handle($this->getRecord(Logger::ERROR, 'log message', array('appname' => 'logAppName'))); + + $this->assertEquals('logAppName', self::$appname); + } + + public function testTheTransactionNameIsNullByDefault() + { + $handler = new StubNewRelicHandler(); + $handler->handle($this->getRecord(Logger::ERROR, 'log message')); + + $this->assertEquals(null, self::$transactionName); + } + + public function testTheTransactionNameCanBeInjectedFromTheConstructor() + { + $handler = new StubNewRelicHandler(Logger::DEBUG, false, null, false, 'myTransaction'); + $handler->handle($this->getRecord(Logger::ERROR, 'log message')); + + $this->assertEquals('myTransaction', self::$transactionName); + } + + public function testTheTransactionNameCanBeOverriddenFromEachLog() + { + $handler = new StubNewRelicHandler(Logger::DEBUG, false, null, false, 'myTransaction'); + $handler->handle($this->getRecord(Logger::ERROR, 'log message', array('transaction_name' => 'logTransactName'))); + + $this->assertEquals('logTransactName', self::$transactionName); + } +} + +class StubNewRelicHandlerWithoutExtension extends NewRelicHandler +{ + protected function isNewRelicEnabled() + { + return false; + } +} + +class StubNewRelicHandler extends NewRelicHandler +{ + protected function isNewRelicEnabled() + { + return true; + } +} + +function newrelic_notice_error() +{ + return true; +} + +function newrelic_set_appname($appname) +{ + return NewRelicHandlerTest::$appname = $appname; +} + +function newrelic_name_transaction($transactionName) +{ + return NewRelicHandlerTest::$transactionName = $transactionName; +} + +function newrelic_add_custom_parameter($key, $value) +{ + NewRelicHandlerTest::$customParameters[$key] = $value; + + return true; +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/NullHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/NullHandlerTest.php new file mode 100644 index 00000000..292df78c --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/NullHandlerTest.php @@ -0,0 +1,33 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; + +/** + * @covers Monolog\Handler\NullHandler::handle + */ +class NullHandlerTest extends TestCase +{ + public function testHandle() + { + $handler = new NullHandler(); + $this->assertTrue($handler->handle($this->getRecord())); + } + + public function testHandleLowerLevelRecord() + { + $handler = new NullHandler(Logger::WARNING); + $this->assertFalse($handler->handle($this->getRecord(Logger::DEBUG))); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/PHPConsoleHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/PHPConsoleHandlerTest.php new file mode 100644 index 00000000..152573ef --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/PHPConsoleHandlerTest.php @@ -0,0 +1,273 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Exception; +use Monolog\ErrorHandler; +use Monolog\Logger; +use Monolog\TestCase; +use PhpConsole\Connector; +use PhpConsole\Dispatcher\Debug as DebugDispatcher; +use PhpConsole\Dispatcher\Errors as ErrorDispatcher; +use PhpConsole\Handler; +use PHPUnit_Framework_MockObject_MockObject; + +/** + * @covers Monolog\Handler\PHPConsoleHandler + * @author Sergey Barbushin https://www.linkedin.com/in/barbushin + */ +class PHPConsoleHandlerTest extends TestCase +{ + /** @var Connector|PHPUnit_Framework_MockObject_MockObject */ + protected $connector; + /** @var DebugDispatcher|PHPUnit_Framework_MockObject_MockObject */ + protected $debugDispatcher; + /** @var ErrorDispatcher|PHPUnit_Framework_MockObject_MockObject */ + protected $errorDispatcher; + + protected function setUp() + { + if (!class_exists('PhpConsole\Connector')) { + $this->markTestSkipped('PHP Console library not found. See https://github.com/barbushin/php-console#installation'); + } + $this->connector = $this->initConnectorMock(); + + $this->debugDispatcher = $this->initDebugDispatcherMock($this->connector); + $this->connector->setDebugDispatcher($this->debugDispatcher); + + $this->errorDispatcher = $this->initErrorDispatcherMock($this->connector); + $this->connector->setErrorsDispatcher($this->errorDispatcher); + } + + protected function initDebugDispatcherMock(Connector $connector) + { + return $this->getMockBuilder('PhpConsole\Dispatcher\Debug') + ->disableOriginalConstructor() + ->setMethods(array('dispatchDebug')) + ->setConstructorArgs(array($connector, $connector->getDumper())) + ->getMock(); + } + + protected function initErrorDispatcherMock(Connector $connector) + { + return $this->getMockBuilder('PhpConsole\Dispatcher\Errors') + ->disableOriginalConstructor() + ->setMethods(array('dispatchError', 'dispatchException')) + ->setConstructorArgs(array($connector, $connector->getDumper())) + ->getMock(); + } + + protected function initConnectorMock() + { + $connector = $this->getMockBuilder('PhpConsole\Connector') + ->disableOriginalConstructor() + ->setMethods(array( + 'sendMessage', + 'onShutDown', + 'isActiveClient', + 'setSourcesBasePath', + 'setServerEncoding', + 'setPassword', + 'enableSslOnlyMode', + 'setAllowedIpMasks', + 'setHeadersLimit', + 'startEvalRequestsListener', + )) + ->getMock(); + + $connector->expects($this->any()) + ->method('isActiveClient') + ->will($this->returnValue(true)); + + return $connector; + } + + protected function getHandlerDefaultOption($name) + { + $handler = new PHPConsoleHandler(array(), $this->connector); + $options = $handler->getOptions(); + + return $options[$name]; + } + + protected function initLogger($handlerOptions = array(), $level = Logger::DEBUG) + { + return new Logger('test', array( + new PHPConsoleHandler($handlerOptions, $this->connector, $level), + )); + } + + public function testInitWithDefaultConnector() + { + $handler = new PHPConsoleHandler(); + $this->assertEquals(spl_object_hash(Connector::getInstance()), spl_object_hash($handler->getConnector())); + } + + public function testInitWithCustomConnector() + { + $handler = new PHPConsoleHandler(array(), $this->connector); + $this->assertEquals(spl_object_hash($this->connector), spl_object_hash($handler->getConnector())); + } + + public function testDebug() + { + $this->debugDispatcher->expects($this->once())->method('dispatchDebug')->with($this->equalTo('test')); + $this->initLogger()->addDebug('test'); + } + + public function testDebugContextInMessage() + { + $message = 'test'; + $tag = 'tag'; + $context = array($tag, 'custom' => mt_rand()); + $expectedMessage = $message . ' ' . json_encode(array_slice($context, 1)); + $this->debugDispatcher->expects($this->once())->method('dispatchDebug')->with( + $this->equalTo($expectedMessage), + $this->equalTo($tag) + ); + $this->initLogger()->addDebug($message, $context); + } + + public function testDebugTags($tagsContextKeys = null) + { + $expectedTags = mt_rand(); + $logger = $this->initLogger($tagsContextKeys ? array('debugTagsKeysInContext' => $tagsContextKeys) : array()); + if (!$tagsContextKeys) { + $tagsContextKeys = $this->getHandlerDefaultOption('debugTagsKeysInContext'); + } + foreach ($tagsContextKeys as $key) { + $debugDispatcher = $this->initDebugDispatcherMock($this->connector); + $debugDispatcher->expects($this->once())->method('dispatchDebug')->with( + $this->anything(), + $this->equalTo($expectedTags) + ); + $this->connector->setDebugDispatcher($debugDispatcher); + $logger->addDebug('test', array($key => $expectedTags)); + } + } + + public function testError($classesPartialsTraceIgnore = null) + { + $code = E_USER_NOTICE; + $message = 'message'; + $file = __FILE__; + $line = __LINE__; + $this->errorDispatcher->expects($this->once())->method('dispatchError')->with( + $this->equalTo($code), + $this->equalTo($message), + $this->equalTo($file), + $this->equalTo($line), + $classesPartialsTraceIgnore ?: $this->equalTo($this->getHandlerDefaultOption('classesPartialsTraceIgnore')) + ); + $errorHandler = ErrorHandler::register($this->initLogger($classesPartialsTraceIgnore ? array('classesPartialsTraceIgnore' => $classesPartialsTraceIgnore) : array()), false); + $errorHandler->registerErrorHandler(array(), false, E_USER_WARNING); + $errorHandler->handleError($code, $message, $file, $line); + } + + public function testException() + { + $e = new Exception(); + $this->errorDispatcher->expects($this->once())->method('dispatchException')->with( + $this->equalTo($e) + ); + $handler = $this->initLogger(); + $handler->log( + \Psr\Log\LogLevel::ERROR, + sprintf('Uncaught Exception %s: "%s" at %s line %s', get_class($e), $e->getMessage(), $e->getFile(), $e->getLine()), + array('exception' => $e) + ); + } + + /** + * @expectedException Exception + */ + public function testWrongOptionsThrowsException() + { + new PHPConsoleHandler(array('xxx' => 1)); + } + + public function testOptionEnabled() + { + $this->debugDispatcher->expects($this->never())->method('dispatchDebug'); + $this->initLogger(array('enabled' => false))->addDebug('test'); + } + + public function testOptionClassesPartialsTraceIgnore() + { + $this->testError(array('Class', 'Namespace\\')); + } + + public function testOptionDebugTagsKeysInContext() + { + $this->testDebugTags(array('key1', 'key2')); + } + + public function testOptionUseOwnErrorsAndExceptionsHandler() + { + $this->initLogger(array('useOwnErrorsHandler' => true, 'useOwnExceptionsHandler' => true)); + $this->assertEquals(array(Handler::getInstance(), 'handleError'), set_error_handler(function () { + })); + $this->assertEquals(array(Handler::getInstance(), 'handleException'), set_exception_handler(function () { + })); + } + + public static function provideConnectorMethodsOptionsSets() + { + return array( + array('sourcesBasePath', 'setSourcesBasePath', __DIR__), + array('serverEncoding', 'setServerEncoding', 'cp1251'), + array('password', 'setPassword', '******'), + array('enableSslOnlyMode', 'enableSslOnlyMode', true, false), + array('ipMasks', 'setAllowedIpMasks', array('127.0.0.*')), + array('headersLimit', 'setHeadersLimit', 2500), + array('enableEvalListener', 'startEvalRequestsListener', true, false), + ); + } + + /** + * @dataProvider provideConnectorMethodsOptionsSets + */ + public function testOptionCallsConnectorMethod($option, $method, $value, $isArgument = true) + { + $expectCall = $this->connector->expects($this->once())->method($method); + if ($isArgument) { + $expectCall->with($value); + } + new PHPConsoleHandler(array($option => $value), $this->connector); + } + + public function testOptionDetectDumpTraceAndSource() + { + new PHPConsoleHandler(array('detectDumpTraceAndSource' => true), $this->connector); + $this->assertTrue($this->connector->getDebugDispatcher()->detectTraceAndSource); + } + + public static function provideDumperOptionsValues() + { + return array( + array('dumperLevelLimit', 'levelLimit', 1001), + array('dumperItemsCountLimit', 'itemsCountLimit', 1002), + array('dumperItemSizeLimit', 'itemSizeLimit', 1003), + array('dumperDumpSizeLimit', 'dumpSizeLimit', 1004), + array('dumperDetectCallbacks', 'detectCallbacks', true), + ); + } + + /** + * @dataProvider provideDumperOptionsValues + */ + public function testDumperOptions($option, $dumperProperty, $value) + { + new PHPConsoleHandler(array($option => $value), $this->connector); + $this->assertEquals($value, $this->connector->getDumper()->$dumperProperty); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/PsrHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/PsrHandlerTest.php new file mode 100644 index 00000000..64eaab16 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/PsrHandlerTest.php @@ -0,0 +1,50 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; + +/** + * @covers Monolog\Handler\PsrHandler::handle + */ +class PsrHandlerTest extends TestCase +{ + public function logLevelProvider() + { + $levels = array(); + $monologLogger = new Logger(''); + + foreach ($monologLogger->getLevels() as $levelName => $level) { + $levels[] = array($levelName, $level); + } + + return $levels; + } + + /** + * @dataProvider logLevelProvider + */ + public function testHandlesAllLevels($levelName, $level) + { + $message = 'Hello, world! ' . $level; + $context = array('foo' => 'bar', 'level' => $level); + + $psrLogger = $this->getMock('Psr\Log\NullLogger'); + $psrLogger->expects($this->once()) + ->method('log') + ->with(strtolower($levelName), $message, $context); + + $handler = new PsrHandler($psrLogger); + $handler->handle(array('level' => $level, 'level_name' => $levelName, 'message' => $message, 'context' => $context)); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/PushoverHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/PushoverHandlerTest.php new file mode 100644 index 00000000..56df474a --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/PushoverHandlerTest.php @@ -0,0 +1,141 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; + +/** + * Almost all examples (expected header, titles, messages) taken from + * https://www.pushover.net/api + * @author Sebastian Göttschkes + * @see https://www.pushover.net/api + */ +class PushoverHandlerTest extends TestCase +{ + private $res; + private $handler; + + public function testWriteHeader() + { + $this->createHandler(); + $this->handler->setHighPriorityLevel(Logger::EMERGENCY); // skip priority notifications + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/POST \/1\/messages.json HTTP\/1.1\\r\\nHost: api.pushover.net\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); + + return $content; + } + + /** + * @depends testWriteHeader + */ + public function testWriteContent($content) + { + $this->assertRegexp('/token=myToken&user=myUser&message=test1&title=Monolog×tamp=\d{10}$/', $content); + } + + public function testWriteWithComplexTitle() + { + $this->createHandler('myToken', 'myUser', 'Backup finished - SQL1'); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/title=Backup\+finished\+-\+SQL1/', $content); + } + + public function testWriteWithComplexMessage() + { + $this->createHandler(); + $this->handler->setHighPriorityLevel(Logger::EMERGENCY); // skip priority notifications + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'Backup of database "example" finished in 16 minutes.')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/message=Backup\+of\+database\+%22example%22\+finished\+in\+16\+minutes\./', $content); + } + + public function testWriteWithTooLongMessage() + { + $message = str_pad('test', 520, 'a'); + $this->createHandler(); + $this->handler->setHighPriorityLevel(Logger::EMERGENCY); // skip priority notifications + $this->handler->handle($this->getRecord(Logger::CRITICAL, $message)); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $expectedMessage = substr($message, 0, 505); + + $this->assertRegexp('/message=' . $expectedMessage . '&title/', $content); + } + + public function testWriteWithHighPriority() + { + $this->createHandler(); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/token=myToken&user=myUser&message=test1&title=Monolog×tamp=\d{10}&priority=1$/', $content); + } + + public function testWriteWithEmergencyPriority() + { + $this->createHandler(); + $this->handler->handle($this->getRecord(Logger::EMERGENCY, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/token=myToken&user=myUser&message=test1&title=Monolog×tamp=\d{10}&priority=2&retry=30&expire=25200$/', $content); + } + + public function testWriteToMultipleUsers() + { + $this->createHandler('myToken', array('userA', 'userB')); + $this->handler->handle($this->getRecord(Logger::EMERGENCY, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/token=myToken&user=userA&message=test1&title=Monolog×tamp=\d{10}&priority=2&retry=30&expire=25200POST/', $content); + $this->assertRegexp('/token=myToken&user=userB&message=test1&title=Monolog×tamp=\d{10}&priority=2&retry=30&expire=25200$/', $content); + } + + private function createHandler($token = 'myToken', $user = 'myUser', $title = 'Monolog') + { + $constructorArgs = array($token, $user, $title); + $this->res = fopen('php://memory', 'a'); + $this->handler = $this->getMock( + '\Monolog\Handler\PushoverHandler', + array('fsockopen', 'streamSetTimeout', 'closeSocket'), + $constructorArgs + ); + + $reflectionProperty = new \ReflectionProperty('\Monolog\Handler\SocketHandler', 'connectionString'); + $reflectionProperty->setAccessible(true); + $reflectionProperty->setValue($this->handler, 'localhost:1234'); + + $this->handler->expects($this->any()) + ->method('fsockopen') + ->will($this->returnValue($this->res)); + $this->handler->expects($this->any()) + ->method('streamSetTimeout') + ->will($this->returnValue(true)); + $this->handler->expects($this->any()) + ->method('closeSocket') + ->will($this->returnValue(true)); + + $this->handler->setFormatter($this->getIdentityFormatter()); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/RavenHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/RavenHandlerTest.php new file mode 100644 index 00000000..26d212b9 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/RavenHandlerTest.php @@ -0,0 +1,255 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; +use Monolog\Formatter\LineFormatter; + +class RavenHandlerTest extends TestCase +{ + public function setUp() + { + if (!class_exists('Raven_Client')) { + $this->markTestSkipped('raven/raven not installed'); + } + + require_once __DIR__ . '/MockRavenClient.php'; + } + + /** + * @covers Monolog\Handler\RavenHandler::__construct + */ + public function testConstruct() + { + $handler = new RavenHandler($this->getRavenClient()); + $this->assertInstanceOf('Monolog\Handler\RavenHandler', $handler); + } + + protected function getHandler($ravenClient) + { + $handler = new RavenHandler($ravenClient); + + return $handler; + } + + protected function getRavenClient() + { + $dsn = 'http://43f6017361224d098402974103bfc53d:a6a0538fc2934ba2bed32e08741b2cd3@marca.python.live.cheggnet.com:9000/1'; + + return new MockRavenClient($dsn); + } + + public function testDebug() + { + $ravenClient = $this->getRavenClient(); + $handler = $this->getHandler($ravenClient); + + $record = $this->getRecord(Logger::DEBUG, 'A test debug message'); + $handler->handle($record); + + $this->assertEquals($ravenClient::DEBUG, $ravenClient->lastData['level']); + $this->assertContains($record['message'], $ravenClient->lastData['message']); + } + + public function testWarning() + { + $ravenClient = $this->getRavenClient(); + $handler = $this->getHandler($ravenClient); + + $record = $this->getRecord(Logger::WARNING, 'A test warning message'); + $handler->handle($record); + + $this->assertEquals($ravenClient::WARNING, $ravenClient->lastData['level']); + $this->assertContains($record['message'], $ravenClient->lastData['message']); + } + + public function testTag() + { + $ravenClient = $this->getRavenClient(); + $handler = $this->getHandler($ravenClient); + + $tags = array(1, 2, 'foo'); + $record = $this->getRecord(Logger::INFO, 'test', array('tags' => $tags)); + $handler->handle($record); + + $this->assertEquals($tags, $ravenClient->lastData['tags']); + } + + public function testExtraParameters() + { + $ravenClient = $this->getRavenClient(); + $handler = $this->getHandler($ravenClient); + + $checksum = '098f6bcd4621d373cade4e832627b4f6'; + $release = '05a671c66aefea124cc08b76ea6d30bb'; + $eventId = '31423'; + $record = $this->getRecord(Logger::INFO, 'test', array('checksum' => $checksum, 'release' => $release, 'event_id' => $eventId)); + $handler->handle($record); + + $this->assertEquals($checksum, $ravenClient->lastData['checksum']); + $this->assertEquals($release, $ravenClient->lastData['release']); + $this->assertEquals($eventId, $ravenClient->lastData['event_id']); + } + + public function testFingerprint() + { + $ravenClient = $this->getRavenClient(); + $handler = $this->getHandler($ravenClient); + + $fingerprint = array('{{ default }}', 'other value'); + $record = $this->getRecord(Logger::INFO, 'test', array('fingerprint' => $fingerprint)); + $handler->handle($record); + + $this->assertEquals($fingerprint, $ravenClient->lastData['fingerprint']); + } + + public function testUserContext() + { + $ravenClient = $this->getRavenClient(); + $handler = $this->getHandler($ravenClient); + + $recordWithNoContext = $this->getRecord(Logger::INFO, 'test with default user context'); + // set user context 'externally' + + $user = array( + 'id' => '123', + 'email' => 'test@test.com', + ); + + $recordWithContext = $this->getRecord(Logger::INFO, 'test', array('user' => $user)); + + $ravenClient->user_context(array('id' => 'test_user_id')); + // handle context + $handler->handle($recordWithContext); + $this->assertEquals($user, $ravenClient->lastData['user']); + + // check to see if its reset + $handler->handle($recordWithNoContext); + $this->assertInternalType('array', $ravenClient->context->user); + $this->assertSame('test_user_id', $ravenClient->context->user['id']); + + // handle with null context + $ravenClient->user_context(null); + $handler->handle($recordWithContext); + $this->assertEquals($user, $ravenClient->lastData['user']); + + // check to see if its reset + $handler->handle($recordWithNoContext); + $this->assertNull($ravenClient->context->user); + } + + public function testException() + { + $ravenClient = $this->getRavenClient(); + $handler = $this->getHandler($ravenClient); + + try { + $this->methodThatThrowsAnException(); + } catch (\Exception $e) { + $record = $this->getRecord(Logger::ERROR, $e->getMessage(), array('exception' => $e)); + $handler->handle($record); + } + + $this->assertEquals($record['message'], $ravenClient->lastData['message']); + } + + public function testHandleBatch() + { + $records = $this->getMultipleRecords(); + $records[] = $this->getRecord(Logger::WARNING, 'warning'); + $records[] = $this->getRecord(Logger::WARNING, 'warning'); + + $logFormatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); + $logFormatter->expects($this->once())->method('formatBatch'); + + $formatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); + $formatter->expects($this->once())->method('format')->with($this->callback(function ($record) { + return $record['level'] == 400; + })); + + $handler = $this->getHandler($this->getRavenClient()); + $handler->setBatchFormatter($logFormatter); + $handler->setFormatter($formatter); + $handler->handleBatch($records); + } + + public function testHandleBatchDoNothingIfRecordsAreBelowLevel() + { + $records = array( + $this->getRecord(Logger::DEBUG, 'debug message 1'), + $this->getRecord(Logger::DEBUG, 'debug message 2'), + $this->getRecord(Logger::INFO, 'information'), + ); + + $handler = $this->getMock('Monolog\Handler\RavenHandler', null, array($this->getRavenClient())); + $handler->expects($this->never())->method('handle'); + $handler->setLevel(Logger::ERROR); + $handler->handleBatch($records); + } + + public function testHandleBatchPicksProperMessage() + { + $records = array( + $this->getRecord(Logger::DEBUG, 'debug message 1'), + $this->getRecord(Logger::DEBUG, 'debug message 2'), + $this->getRecord(Logger::INFO, 'information 1'), + $this->getRecord(Logger::ERROR, 'error 1'), + $this->getRecord(Logger::WARNING, 'warning'), + $this->getRecord(Logger::ERROR, 'error 2'), + $this->getRecord(Logger::INFO, 'information 2'), + ); + + $logFormatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); + $logFormatter->expects($this->once())->method('formatBatch'); + + $formatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); + $formatter->expects($this->once())->method('format')->with($this->callback(function ($record) use ($records) { + return $record['message'] == 'error 1'; + })); + + $handler = $this->getHandler($this->getRavenClient()); + $handler->setBatchFormatter($logFormatter); + $handler->setFormatter($formatter); + $handler->handleBatch($records); + } + + public function testGetSetBatchFormatter() + { + $ravenClient = $this->getRavenClient(); + $handler = $this->getHandler($ravenClient); + + $handler->setBatchFormatter($formatter = new LineFormatter()); + $this->assertSame($formatter, $handler->getBatchFormatter()); + } + + public function testRelease() + { + $ravenClient = $this->getRavenClient(); + $handler = $this->getHandler($ravenClient); + $release = 'v42.42.42'; + $handler->setRelease($release); + $record = $this->getRecord(Logger::INFO, 'test'); + $handler->handle($record); + $this->assertEquals($release, $ravenClient->lastData['release']); + + $localRelease = 'v41.41.41'; + $record = $this->getRecord(Logger::INFO, 'test', array('release' => $localRelease)); + $handler->handle($record); + $this->assertEquals($localRelease, $ravenClient->lastData['release']); + } + + private function methodThatThrowsAnException() + { + throw new \Exception('This is an exception'); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/RedisHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/RedisHandlerTest.php new file mode 100644 index 00000000..689d5278 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/RedisHandlerTest.php @@ -0,0 +1,127 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; +use Monolog\Formatter\LineFormatter; + +class RedisHandlerTest extends TestCase +{ + /** + * @expectedException InvalidArgumentException + */ + public function testConstructorShouldThrowExceptionForInvalidRedis() + { + new RedisHandler(new \stdClass(), 'key'); + } + + public function testConstructorShouldWorkWithPredis() + { + $redis = $this->getMock('Predis\Client'); + $this->assertInstanceof('Monolog\Handler\RedisHandler', new RedisHandler($redis, 'key')); + } + + public function testConstructorShouldWorkWithRedis() + { + $redis = $this->getMock('Redis'); + $this->assertInstanceof('Monolog\Handler\RedisHandler', new RedisHandler($redis, 'key')); + } + + public function testPredisHandle() + { + $redis = $this->getMock('Predis\Client', array('rpush')); + + // Predis\Client uses rpush + $redis->expects($this->once()) + ->method('rpush') + ->with('key', 'test'); + + $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); + + $handler = new RedisHandler($redis, 'key'); + $handler->setFormatter(new LineFormatter("%message%")); + $handler->handle($record); + } + + public function testRedisHandle() + { + $redis = $this->getMock('Redis', array('rpush')); + + // Redis uses rPush + $redis->expects($this->once()) + ->method('rPush') + ->with('key', 'test'); + + $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); + + $handler = new RedisHandler($redis, 'key'); + $handler->setFormatter(new LineFormatter("%message%")); + $handler->handle($record); + } + + public function testRedisHandleCapped() + { + $redis = $this->getMock('Redis', array('multi', 'rpush', 'ltrim', 'exec')); + + // Redis uses multi + $redis->expects($this->once()) + ->method('multi') + ->will($this->returnSelf()); + + $redis->expects($this->once()) + ->method('rpush') + ->will($this->returnSelf()); + + $redis->expects($this->once()) + ->method('ltrim') + ->will($this->returnSelf()); + + $redis->expects($this->once()) + ->method('exec') + ->will($this->returnSelf()); + + $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); + + $handler = new RedisHandler($redis, 'key', Logger::DEBUG, true, 10); + $handler->setFormatter(new LineFormatter("%message%")); + $handler->handle($record); + } + + public function testPredisHandleCapped() + { + $redis = $this->getMock('Predis\Client', array('transaction')); + + $redisTransaction = $this->getMock('Predis\Client', array('rpush', 'ltrim')); + + $redisTransaction->expects($this->once()) + ->method('rpush') + ->will($this->returnSelf()); + + $redisTransaction->expects($this->once()) + ->method('ltrim') + ->will($this->returnSelf()); + + // Redis uses multi + $redis->expects($this->once()) + ->method('transaction') + ->will($this->returnCallback(function ($cb) use ($redisTransaction) { + $cb($redisTransaction); + })); + + $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); + + $handler = new RedisHandler($redis, 'key', Logger::DEBUG, true, 10); + $handler->setFormatter(new LineFormatter("%message%")); + $handler->handle($record); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/RollbarHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/RollbarHandlerTest.php new file mode 100644 index 00000000..f302e917 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/RollbarHandlerTest.php @@ -0,0 +1,84 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Exception; +use Monolog\TestCase; +use Monolog\Logger; +use PHPUnit_Framework_MockObject_MockObject as MockObject; + +/** + * @author Erik Johansson + * @see https://rollbar.com/docs/notifier/rollbar-php/ + * + * @coversDefaultClass Monolog\Handler\RollbarHandler + */ +class RollbarHandlerTest extends TestCase +{ + /** + * @var MockObject + */ + private $rollbarNotifier; + + /** + * @var array + */ + public $reportedExceptionArguments = null; + + protected function setUp() + { + parent::setUp(); + + $this->setupRollbarNotifierMock(); + } + + /** + * When reporting exceptions to Rollbar the + * level has to be set in the payload data + */ + public function testExceptionLogLevel() + { + $handler = $this->createHandler(); + + $handler->handle($this->createExceptionRecord(Logger::DEBUG)); + + $this->assertEquals('debug', $this->reportedExceptionArguments['payload']['level']); + } + + private function setupRollbarNotifierMock() + { + $this->rollbarNotifier = $this->getMockBuilder('RollbarNotifier') + ->setMethods(array('report_message', 'report_exception', 'flush')) + ->getMock(); + + $that = $this; + + $this->rollbarNotifier + ->expects($this->any()) + ->method('report_exception') + ->willReturnCallback(function ($exception, $context, $payload) use ($that) { + $that->reportedExceptionArguments = compact('exception', 'context', 'payload'); + }); + } + + private function createHandler() + { + return new RollbarHandler($this->rollbarNotifier, Logger::DEBUG); + } + + private function createExceptionRecord($level = Logger::DEBUG, $message = 'test', $exception = null) + { + return $this->getRecord($level, $message, array( + 'exception' => $exception ?: new Exception() + )); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/RotatingFileHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/RotatingFileHandlerTest.php new file mode 100644 index 00000000..c6f5fac9 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/RotatingFileHandlerTest.php @@ -0,0 +1,245 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use PHPUnit_Framework_Error_Deprecated; + +/** + * @covers Monolog\Handler\RotatingFileHandler + */ +class RotatingFileHandlerTest extends TestCase +{ + /** + * This var should be private but then the anonymous function + * in the `setUp` method won't be able to set it. `$this` cant't + * be used in the anonymous function in `setUp` because PHP 5.3 + * does not support it. + */ + public $lastError; + + public function setUp() + { + $dir = __DIR__.'/Fixtures'; + chmod($dir, 0777); + if (!is_writable($dir)) { + $this->markTestSkipped($dir.' must be writable to test the RotatingFileHandler.'); + } + $this->lastError = null; + $self = $this; + // workaround with &$self used for PHP 5.3 + set_error_handler(function($code, $message) use (&$self) { + $self->lastError = array( + 'code' => $code, + 'message' => $message, + ); + }); + } + + private function assertErrorWasTriggered($code, $message) + { + if (empty($this->lastError)) { + $this->fail( + sprintf( + 'Failed asserting that error with code `%d` and message `%s` was triggered', + $code, + $message + ) + ); + } + $this->assertEquals($code, $this->lastError['code'], sprintf('Expected an error with code %d to be triggered, got `%s` instead', $code, $this->lastError['code'])); + $this->assertEquals($message, $this->lastError['message'], sprintf('Expected an error with message `%d` to be triggered, got `%s` instead', $message, $this->lastError['message'])); + } + + public function testRotationCreatesNewFile() + { + touch(__DIR__.'/Fixtures/foo-'.date('Y-m-d', time() - 86400).'.rot'); + + $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot'); + $handler->setFormatter($this->getIdentityFormatter()); + $handler->handle($this->getRecord()); + + $log = __DIR__.'/Fixtures/foo-'.date('Y-m-d').'.rot'; + $this->assertTrue(file_exists($log)); + $this->assertEquals('test', file_get_contents($log)); + } + + /** + * @dataProvider rotationTests + */ + public function testRotation($createFile, $dateFormat, $timeCallback) + { + touch($old1 = __DIR__.'/Fixtures/foo-'.date($dateFormat, $timeCallback(-1)).'.rot'); + touch($old2 = __DIR__.'/Fixtures/foo-'.date($dateFormat, $timeCallback(-2)).'.rot'); + touch($old3 = __DIR__.'/Fixtures/foo-'.date($dateFormat, $timeCallback(-3)).'.rot'); + touch($old4 = __DIR__.'/Fixtures/foo-'.date($dateFormat, $timeCallback(-4)).'.rot'); + + $log = __DIR__.'/Fixtures/foo-'.date($dateFormat).'.rot'; + + if ($createFile) { + touch($log); + } + + $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot', 2); + $handler->setFormatter($this->getIdentityFormatter()); + $handler->setFilenameFormat('{filename}-{date}', $dateFormat); + $handler->handle($this->getRecord()); + + $handler->close(); + + $this->assertTrue(file_exists($log)); + $this->assertTrue(file_exists($old1)); + $this->assertEquals($createFile, file_exists($old2)); + $this->assertEquals($createFile, file_exists($old3)); + $this->assertEquals($createFile, file_exists($old4)); + $this->assertEquals('test', file_get_contents($log)); + } + + public function rotationTests() + { + $now = time(); + $dayCallback = function($ago) use ($now) { + return $now + 86400 * $ago; + }; + $monthCallback = function($ago) { + return gmmktime(0, 0, 0, date('n') + $ago, 1, date('Y')); + }; + $yearCallback = function($ago) { + return gmmktime(0, 0, 0, 1, 1, date('Y') + $ago); + }; + + return array( + 'Rotation is triggered when the file of the current day is not present' + => array(true, RotatingFileHandler::FILE_PER_DAY, $dayCallback), + 'Rotation is not triggered when the file of the current day is already present' + => array(false, RotatingFileHandler::FILE_PER_DAY, $dayCallback), + + 'Rotation is triggered when the file of the current month is not present' + => array(true, RotatingFileHandler::FILE_PER_MONTH, $monthCallback), + 'Rotation is not triggered when the file of the current month is already present' + => array(false, RotatingFileHandler::FILE_PER_MONTH, $monthCallback), + + 'Rotation is triggered when the file of the current year is not present' + => array(true, RotatingFileHandler::FILE_PER_YEAR, $yearCallback), + 'Rotation is not triggered when the file of the current year is already present' + => array(false, RotatingFileHandler::FILE_PER_YEAR, $yearCallback), + ); + } + + /** + * @dataProvider dateFormatProvider + */ + public function testAllowOnlyFixedDefinedDateFormats($dateFormat, $valid) + { + $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot', 2); + $handler->setFilenameFormat('{filename}-{date}', $dateFormat); + if (!$valid) { + $this->assertErrorWasTriggered( + E_USER_DEPRECATED, + 'Invalid date format - format must be one of RotatingFileHandler::FILE_PER_DAY ("Y-m-d"), '. + 'RotatingFileHandler::FILE_PER_MONTH ("Y-m") or RotatingFileHandler::FILE_PER_YEAR ("Y"), '. + 'or you can set one of the date formats using slashes, underscores and/or dots instead of dashes.' + ); + } + } + + public function dateFormatProvider() + { + return array( + array(RotatingFileHandler::FILE_PER_DAY, true), + array(RotatingFileHandler::FILE_PER_MONTH, true), + array(RotatingFileHandler::FILE_PER_YEAR, true), + array('m-d-Y', false), + array('Y-m-d-h-i', false) + ); + } + + /** + * @dataProvider filenameFormatProvider + */ + public function testDisallowFilenameFormatsWithoutDate($filenameFormat, $valid) + { + $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot', 2); + $handler->setFilenameFormat($filenameFormat, RotatingFileHandler::FILE_PER_DAY); + if (!$valid) { + $this->assertErrorWasTriggered( + E_USER_DEPRECATED, + 'Invalid filename format - format should contain at least `{date}`, because otherwise rotating is impossible.' + ); + } + } + + public function filenameFormatProvider() + { + return array( + array('{filename}', false), + array('{filename}-{date}', true), + array('{date}', true), + array('foobar-{date}', true), + array('foo-{date}-bar', true), + array('{date}-foobar', true), + array('foobar', false), + ); + } + + /** + * @dataProvider rotationWhenSimilarFilesExistTests + */ + public function testRotationWhenSimilarFileNamesExist($dateFormat) + { + touch($old1 = __DIR__.'/Fixtures/foo-foo-'.date($dateFormat).'.rot'); + touch($old2 = __DIR__.'/Fixtures/foo-bar-'.date($dateFormat).'.rot'); + + $log = __DIR__.'/Fixtures/foo-'.date($dateFormat).'.rot'; + + $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot', 2); + $handler->setFormatter($this->getIdentityFormatter()); + $handler->setFilenameFormat('{filename}-{date}', $dateFormat); + $handler->handle($this->getRecord()); + $handler->close(); + + $this->assertTrue(file_exists($log)); + } + + public function rotationWhenSimilarFilesExistTests() + { + + return array( + 'Rotation is triggered when the file of the current day is not present but similar exists' + => array(RotatingFileHandler::FILE_PER_DAY), + + 'Rotation is triggered when the file of the current month is not present but similar exists' + => array(RotatingFileHandler::FILE_PER_MONTH), + + 'Rotation is triggered when the file of the current year is not present but similar exists' + => array(RotatingFileHandler::FILE_PER_YEAR), + ); + } + + public function testReuseCurrentFile() + { + $log = __DIR__.'/Fixtures/foo-'.date('Y-m-d').'.rot'; + file_put_contents($log, "foo"); + $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot'); + $handler->setFormatter($this->getIdentityFormatter()); + $handler->handle($this->getRecord()); + $this->assertEquals('footest', file_get_contents($log)); + } + + public function tearDown() + { + foreach (glob(__DIR__.'/Fixtures/*.rot') as $file) { + unlink($file); + } + restore_error_handler(); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SamplingHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SamplingHandlerTest.php new file mode 100644 index 00000000..b354cee1 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/SamplingHandlerTest.php @@ -0,0 +1,33 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; + +/** + * @covers Monolog\Handler\SamplingHandler::handle + */ +class SamplingHandlerTest extends TestCase +{ + public function testHandle() + { + $testHandler = new TestHandler(); + $handler = new SamplingHandler($testHandler, 2); + for ($i = 0; $i < 10000; $i++) { + $handler->handle($this->getRecord()); + } + $count = count($testHandler->getRecords()); + // $count should be half of 10k, so between 4k and 6k + $this->assertLessThan(6000, $count); + $this->assertGreaterThan(4000, $count); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/Slack/SlackRecordTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/Slack/SlackRecordTest.php new file mode 100644 index 00000000..b9de7367 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/Slack/SlackRecordTest.php @@ -0,0 +1,395 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler\Slack; + +use Monolog\Logger; +use Monolog\TestCase; + +/** + * @coversDefaultClass Monolog\Handler\Slack\SlackRecord + */ +class SlackRecordTest extends TestCase +{ + private $jsonPrettyPrintFlag; + + protected function setUp() + { + $this->jsonPrettyPrintFlag = defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : 128; + } + + public function dataGetAttachmentColor() + { + return array( + array(Logger::DEBUG, SlackRecord::COLOR_DEFAULT), + array(Logger::INFO, SlackRecord::COLOR_GOOD), + array(Logger::NOTICE, SlackRecord::COLOR_GOOD), + array(Logger::WARNING, SlackRecord::COLOR_WARNING), + array(Logger::ERROR, SlackRecord::COLOR_DANGER), + array(Logger::CRITICAL, SlackRecord::COLOR_DANGER), + array(Logger::ALERT, SlackRecord::COLOR_DANGER), + array(Logger::EMERGENCY, SlackRecord::COLOR_DANGER), + ); + } + + /** + * @dataProvider dataGetAttachmentColor + * @param int $logLevel + * @param string $expectedColour RGB hex color or name of Slack color + * @covers ::getAttachmentColor + */ + public function testGetAttachmentColor($logLevel, $expectedColour) + { + $slackRecord = new SlackRecord(); + $this->assertSame( + $expectedColour, + $slackRecord->getAttachmentColor($logLevel) + ); + } + + public function testAddsChannel() + { + $channel = '#test'; + $record = new SlackRecord($channel); + $data = $record->getSlackData($this->getRecord()); + + $this->assertArrayHasKey('channel', $data); + $this->assertSame($channel, $data['channel']); + } + + public function testNoUsernameByDefault() + { + $record = new SlackRecord(); + $data = $record->getSlackData($this->getRecord()); + + $this->assertArrayNotHasKey('username', $data); + } + + /** + * @return array + */ + public function dataStringify() + { + $jsonPrettyPrintFlag = defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : 128; + + $multipleDimensions = array(array(1, 2)); + $numericKeys = array('library' => 'monolog'); + $singleDimension = array(1, 'Hello', 'Jordi'); + + return array( + array(array(), '[]'), + array($multipleDimensions, json_encode($multipleDimensions, $jsonPrettyPrintFlag)), + array($numericKeys, json_encode($numericKeys, $jsonPrettyPrintFlag)), + array($singleDimension, json_encode($singleDimension)) + ); + } + + /** + * @dataProvider dataStringify + */ + public function testStringify($fields, $expectedResult) + { + $slackRecord = new SlackRecord( + '#test', + 'test', + true, + null, + true, + true + ); + + $this->assertSame($expectedResult, $slackRecord->stringify($fields)); + } + + public function testAddsCustomUsername() + { + $username = 'Monolog bot'; + $record = new SlackRecord(null, $username); + $data = $record->getSlackData($this->getRecord()); + + $this->assertArrayHasKey('username', $data); + $this->assertSame($username, $data['username']); + } + + public function testNoIcon() + { + $record = new SlackRecord(); + $data = $record->getSlackData($this->getRecord()); + + $this->assertArrayNotHasKey('icon_emoji', $data); + } + + public function testAddsIcon() + { + $record = $this->getRecord(); + $slackRecord = new SlackRecord(null, null, false, 'ghost'); + $data = $slackRecord->getSlackData($record); + + $slackRecord2 = new SlackRecord(null, null, false, 'http://github.com/Seldaek/monolog'); + $data2 = $slackRecord2->getSlackData($record); + + $this->assertArrayHasKey('icon_emoji', $data); + $this->assertSame(':ghost:', $data['icon_emoji']); + $this->assertArrayHasKey('icon_url', $data2); + $this->assertSame('http://github.com/Seldaek/monolog', $data2['icon_url']); + } + + public function testAttachmentsNotPresentIfNoAttachment() + { + $record = new SlackRecord(null, null, false); + $data = $record->getSlackData($this->getRecord()); + + $this->assertArrayNotHasKey('attachments', $data); + } + + public function testAddsOneAttachment() + { + $record = new SlackRecord(); + $data = $record->getSlackData($this->getRecord()); + + $this->assertArrayHasKey('attachments', $data); + $this->assertArrayHasKey(0, $data['attachments']); + $this->assertInternalType('array', $data['attachments'][0]); + } + + public function testTextEqualsMessageIfNoAttachment() + { + $message = 'Test message'; + $record = new SlackRecord(null, null, false); + $data = $record->getSlackData($this->getRecord(Logger::WARNING, $message)); + + $this->assertArrayHasKey('text', $data); + $this->assertSame($message, $data['text']); + } + + public function testTextEqualsFormatterOutput() + { + $formatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); + $formatter + ->expects($this->any()) + ->method('format') + ->will($this->returnCallback(function ($record) { return $record['message'] . 'test'; })); + + $formatter2 = $this->getMock('Monolog\\Formatter\\FormatterInterface'); + $formatter2 + ->expects($this->any()) + ->method('format') + ->will($this->returnCallback(function ($record) { return $record['message'] . 'test1'; })); + + $message = 'Test message'; + $record = new SlackRecord(null, null, false, null, false, false, array(), $formatter); + $data = $record->getSlackData($this->getRecord(Logger::WARNING, $message)); + + $this->assertArrayHasKey('text', $data); + $this->assertSame($message . 'test', $data['text']); + + $record->setFormatter($formatter2); + $data = $record->getSlackData($this->getRecord(Logger::WARNING, $message)); + + $this->assertArrayHasKey('text', $data); + $this->assertSame($message . 'test1', $data['text']); + } + + public function testAddsFallbackAndTextToAttachment() + { + $message = 'Test message'; + $record = new SlackRecord(null); + $data = $record->getSlackData($this->getRecord(Logger::WARNING, $message)); + + $this->assertSame($message, $data['attachments'][0]['text']); + $this->assertSame($message, $data['attachments'][0]['fallback']); + } + + public function testMapsLevelToColorAttachmentColor() + { + $record = new SlackRecord(null); + $errorLoggerRecord = $this->getRecord(Logger::ERROR); + $emergencyLoggerRecord = $this->getRecord(Logger::EMERGENCY); + $warningLoggerRecord = $this->getRecord(Logger::WARNING); + $infoLoggerRecord = $this->getRecord(Logger::INFO); + $debugLoggerRecord = $this->getRecord(Logger::DEBUG); + + $data = $record->getSlackData($errorLoggerRecord); + $this->assertSame(SlackRecord::COLOR_DANGER, $data['attachments'][0]['color']); + + $data = $record->getSlackData($emergencyLoggerRecord); + $this->assertSame(SlackRecord::COLOR_DANGER, $data['attachments'][0]['color']); + + $data = $record->getSlackData($warningLoggerRecord); + $this->assertSame(SlackRecord::COLOR_WARNING, $data['attachments'][0]['color']); + + $data = $record->getSlackData($infoLoggerRecord); + $this->assertSame(SlackRecord::COLOR_GOOD, $data['attachments'][0]['color']); + + $data = $record->getSlackData($debugLoggerRecord); + $this->assertSame(SlackRecord::COLOR_DEFAULT, $data['attachments'][0]['color']); + } + + public function testAddsShortAttachmentWithoutContextAndExtra() + { + $level = Logger::ERROR; + $levelName = Logger::getLevelName($level); + $record = new SlackRecord(null, null, true, null, true); + $data = $record->getSlackData($this->getRecord($level, 'test', array('test' => 1))); + + $attachment = $data['attachments'][0]; + $this->assertArrayHasKey('title', $attachment); + $this->assertArrayHasKey('fields', $attachment); + $this->assertSame($levelName, $attachment['title']); + $this->assertSame(array(), $attachment['fields']); + } + + public function testAddsShortAttachmentWithContextAndExtra() + { + $level = Logger::ERROR; + $levelName = Logger::getLevelName($level); + $context = array('test' => 1); + $extra = array('tags' => array('web')); + $record = new SlackRecord(null, null, true, null, true, true); + $loggerRecord = $this->getRecord($level, 'test', $context); + $loggerRecord['extra'] = $extra; + $data = $record->getSlackData($loggerRecord); + + $attachment = $data['attachments'][0]; + $this->assertArrayHasKey('title', $attachment); + $this->assertArrayHasKey('fields', $attachment); + $this->assertCount(2, $attachment['fields']); + $this->assertSame($levelName, $attachment['title']); + $this->assertSame( + array( + array( + 'title' => 'Extra', + 'value' => sprintf('```%s```', json_encode($extra, $this->jsonPrettyPrintFlag)), + 'short' => false + ), + array( + 'title' => 'Context', + 'value' => sprintf('```%s```', json_encode($context, $this->jsonPrettyPrintFlag)), + 'short' => false + ) + ), + $attachment['fields'] + ); + } + + public function testAddsLongAttachmentWithoutContextAndExtra() + { + $level = Logger::ERROR; + $levelName = Logger::getLevelName($level); + $record = new SlackRecord(null, null, true, null); + $data = $record->getSlackData($this->getRecord($level, 'test', array('test' => 1))); + + $attachment = $data['attachments'][0]; + $this->assertArrayHasKey('title', $attachment); + $this->assertArrayHasKey('fields', $attachment); + $this->assertCount(1, $attachment['fields']); + $this->assertSame('Message', $attachment['title']); + $this->assertSame( + array(array( + 'title' => 'Level', + 'value' => $levelName, + 'short' => false + )), + $attachment['fields'] + ); + } + + public function testAddsLongAttachmentWithContextAndExtra() + { + $level = Logger::ERROR; + $levelName = Logger::getLevelName($level); + $context = array('test' => 1); + $extra = array('tags' => array('web')); + $record = new SlackRecord(null, null, true, null, false, true); + $loggerRecord = $this->getRecord($level, 'test', $context); + $loggerRecord['extra'] = $extra; + $data = $record->getSlackData($loggerRecord); + + $expectedFields = array( + array( + 'title' => 'Level', + 'value' => $levelName, + 'short' => false, + ), + array( + 'title' => 'Tags', + 'value' => sprintf('```%s```', json_encode($extra['tags'])), + 'short' => false + ), + array( + 'title' => 'Test', + 'value' => $context['test'], + 'short' => false + ) + ); + + $attachment = $data['attachments'][0]; + $this->assertArrayHasKey('title', $attachment); + $this->assertArrayHasKey('fields', $attachment); + $this->assertCount(3, $attachment['fields']); + $this->assertSame('Message', $attachment['title']); + $this->assertSame( + $expectedFields, + $attachment['fields'] + ); + } + + public function testAddsTimestampToAttachment() + { + $record = $this->getRecord(); + $slackRecord = new SlackRecord(); + $data = $slackRecord->getSlackData($this->getRecord()); + + $attachment = $data['attachments'][0]; + $this->assertArrayHasKey('ts', $attachment); + $this->assertSame($record['datetime']->getTimestamp(), $attachment['ts']); + } + + public function testContextHasException() + { + $record = $this->getRecord(Logger::CRITICAL, 'This is a critical message.', array('exception' => new \Exception())); + $slackRecord = new SlackRecord(null, null, true, null, false, true); + $data = $slackRecord->getSlackData($record); + $this->assertInternalType('string', $data['attachments'][0]['fields'][1]['value']); + } + + public function testExcludeExtraAndContextFields() + { + $record = $this->getRecord( + Logger::WARNING, + 'test', + array('info' => array('library' => 'monolog', 'author' => 'Jordi')) + ); + $record['extra'] = array('tags' => array('web', 'cli')); + + $slackRecord = new SlackRecord(null, null, true, null, false, true, array('context.info.library', 'extra.tags.1')); + $data = $slackRecord->getSlackData($record); + $attachment = $data['attachments'][0]; + + $expected = array( + array( + 'title' => 'Info', + 'value' => sprintf('```%s```', json_encode(array('author' => 'Jordi'), $this->jsonPrettyPrintFlag)), + 'short' => false + ), + array( + 'title' => 'Tags', + 'value' => sprintf('```%s```', json_encode(array('web'))), + 'short' => false + ), + ); + + foreach ($expected as $field) { + $this->assertNotFalse(array_search($field, $attachment['fields'])); + break; + } + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SlackHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SlackHandlerTest.php new file mode 100644 index 00000000..b12b01f4 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/SlackHandlerTest.php @@ -0,0 +1,155 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; +use Monolog\Formatter\LineFormatter; +use Monolog\Handler\Slack\SlackRecord; + +/** + * @author Greg Kedzierski + * @see https://api.slack.com/ + */ +class SlackHandlerTest extends TestCase +{ + /** + * @var resource + */ + private $res; + + /** + * @var SlackHandler + */ + private $handler; + + public function setUp() + { + if (!extension_loaded('openssl')) { + $this->markTestSkipped('This test requires openssl to run'); + } + } + + public function testWriteHeader() + { + $this->createHandler(); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/POST \/api\/chat.postMessage HTTP\/1.1\\r\\nHost: slack.com\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); + } + + public function testWriteContent() + { + $this->createHandler(); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegExp('/username=Monolog/', $content); + $this->assertRegExp('/channel=channel1/', $content); + $this->assertRegExp('/token=myToken/', $content); + $this->assertRegExp('/attachments/', $content); + } + + public function testWriteContentUsesFormatterIfProvided() + { + $this->createHandler('myToken', 'channel1', 'Monolog', false); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->createHandler('myToken', 'channel1', 'Monolog', false); + $this->handler->setFormatter(new LineFormatter('foo--%message%')); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test2')); + fseek($this->res, 0); + $content2 = fread($this->res, 1024); + + $this->assertRegexp('/text=test1/', $content); + $this->assertRegexp('/text=foo--test2/', $content2); + } + + public function testWriteContentWithEmoji() + { + $this->createHandler('myToken', 'channel1', 'Monolog', true, 'alien'); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/icon_emoji=%3Aalien%3A/', $content); + } + + /** + * @dataProvider provideLevelColors + */ + public function testWriteContentWithColors($level, $expectedColor) + { + $this->createHandler(); + $this->handler->handle($this->getRecord($level, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/%22color%22%3A%22'.$expectedColor.'/', $content); + } + + public function testWriteContentWithPlainTextMessage() + { + $this->createHandler('myToken', 'channel1', 'Monolog', false); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/text=test1/', $content); + } + + public function provideLevelColors() + { + return array( + array(Logger::DEBUG, urlencode(SlackRecord::COLOR_DEFAULT)), + array(Logger::INFO, SlackRecord::COLOR_GOOD), + array(Logger::NOTICE, SlackRecord::COLOR_GOOD), + array(Logger::WARNING, SlackRecord::COLOR_WARNING), + array(Logger::ERROR, SlackRecord::COLOR_DANGER), + array(Logger::CRITICAL, SlackRecord::COLOR_DANGER), + array(Logger::ALERT, SlackRecord::COLOR_DANGER), + array(Logger::EMERGENCY,SlackRecord::COLOR_DANGER), + ); + } + + private function createHandler($token = 'myToken', $channel = 'channel1', $username = 'Monolog', $useAttachment = true, $iconEmoji = null, $useShortAttachment = false, $includeExtra = false) + { + $constructorArgs = array($token, $channel, $username, $useAttachment, $iconEmoji, Logger::DEBUG, true, $useShortAttachment, $includeExtra); + $this->res = fopen('php://memory', 'a'); + $this->handler = $this->getMock( + '\Monolog\Handler\SlackHandler', + array('fsockopen', 'streamSetTimeout', 'closeSocket'), + $constructorArgs + ); + + $reflectionProperty = new \ReflectionProperty('\Monolog\Handler\SocketHandler', 'connectionString'); + $reflectionProperty->setAccessible(true); + $reflectionProperty->setValue($this->handler, 'localhost:1234'); + + $this->handler->expects($this->any()) + ->method('fsockopen') + ->will($this->returnValue($this->res)); + $this->handler->expects($this->any()) + ->method('streamSetTimeout') + ->will($this->returnValue(true)); + $this->handler->expects($this->any()) + ->method('closeSocket') + ->will($this->returnValue(true)); + + $this->handler->setFormatter($this->getIdentityFormatter()); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SlackWebhookHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SlackWebhookHandlerTest.php new file mode 100644 index 00000000..c9229e26 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/SlackWebhookHandlerTest.php @@ -0,0 +1,107 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; +use Monolog\Formatter\LineFormatter; +use Monolog\Handler\Slack\SlackRecord; + +/** + * @author Haralan Dobrev + * @see https://api.slack.com/incoming-webhooks + * @coversDefaultClass Monolog\Handler\SlackWebhookHandler + */ +class SlackWebhookHandlerTest extends TestCase +{ + const WEBHOOK_URL = 'https://hooks.slack.com/services/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E'; + + /** + * @covers ::__construct + * @covers ::getSlackRecord + */ + public function testConstructorMinimal() + { + $handler = new SlackWebhookHandler(self::WEBHOOK_URL); + $record = $this->getRecord(); + $slackRecord = $handler->getSlackRecord(); + $this->assertInstanceOf('Monolog\Handler\Slack\SlackRecord', $slackRecord); + $this->assertEquals(array( + 'attachments' => array( + array( + 'fallback' => 'test', + 'text' => 'test', + 'color' => SlackRecord::COLOR_WARNING, + 'fields' => array( + array( + 'title' => 'Level', + 'value' => 'WARNING', + 'short' => false, + ), + ), + 'title' => 'Message', + 'mrkdwn_in' => array('fields'), + 'ts' => $record['datetime']->getTimestamp(), + ), + ), + ), $slackRecord->getSlackData($record)); + } + + /** + * @covers ::__construct + * @covers ::getSlackRecord + */ + public function testConstructorFull() + { + $handler = new SlackWebhookHandler( + self::WEBHOOK_URL, + 'test-channel', + 'test-username', + false, + ':ghost:', + false, + false, + Logger::DEBUG, + false + ); + + $slackRecord = $handler->getSlackRecord(); + $this->assertInstanceOf('Monolog\Handler\Slack\SlackRecord', $slackRecord); + $this->assertEquals(array( + 'username' => 'test-username', + 'text' => 'test', + 'channel' => 'test-channel', + 'icon_emoji' => ':ghost:', + ), $slackRecord->getSlackData($this->getRecord())); + } + + /** + * @covers ::getFormatter + */ + public function testGetFormatter() + { + $handler = new SlackWebhookHandler(self::WEBHOOK_URL); + $formatter = $handler->getFormatter(); + $this->assertInstanceOf('Monolog\Formatter\FormatterInterface', $formatter); + } + + /** + * @covers ::setFormatter + */ + public function testSetFormatter() + { + $handler = new SlackWebhookHandler(self::WEBHOOK_URL); + $formatter = new LineFormatter(); + $handler->setFormatter($formatter); + $this->assertSame($formatter, $handler->getFormatter()); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SlackbotHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SlackbotHandlerTest.php new file mode 100644 index 00000000..b1b02bde --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/SlackbotHandlerTest.php @@ -0,0 +1,47 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; + +/** + * @author Haralan Dobrev + * @see https://slack.com/apps/A0F81R8ET-slackbot + * @coversDefaultClass Monolog\Handler\SlackbotHandler + */ +class SlackbotHandlerTest extends TestCase +{ + /** + * @covers ::__construct + */ + public function testConstructorMinimal() + { + $handler = new SlackbotHandler('test-team', 'test-token', 'test-channel'); + $this->assertInstanceOf('Monolog\Handler\AbstractProcessingHandler', $handler); + } + + /** + * @covers ::__construct + */ + public function testConstructorFull() + { + $handler = new SlackbotHandler( + 'test-team', + 'test-token', + 'test-channel', + Logger::DEBUG, + false + ); + $this->assertInstanceOf('Monolog\Handler\AbstractProcessingHandler', $handler); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SocketHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SocketHandlerTest.php new file mode 100644 index 00000000..1da987c9 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/SocketHandlerTest.php @@ -0,0 +1,335 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; + +/** + * @author Pablo de Leon Belloc + */ +class SocketHandlerTest extends TestCase +{ + /** + * @var Monolog\Handler\SocketHandler + */ + private $handler; + + /** + * @var resource + */ + private $res; + + /** + * @expectedException UnexpectedValueException + */ + public function testInvalidHostname() + { + $this->createHandler('garbage://here'); + $this->writeRecord('data'); + } + + /** + * @expectedException \InvalidArgumentException + */ + public function testBadConnectionTimeout() + { + $this->createHandler('localhost:1234'); + $this->handler->setConnectionTimeout(-1); + } + + public function testSetConnectionTimeout() + { + $this->createHandler('localhost:1234'); + $this->handler->setConnectionTimeout(10.1); + $this->assertEquals(10.1, $this->handler->getConnectionTimeout()); + } + + /** + * @expectedException \InvalidArgumentException + */ + public function testBadTimeout() + { + $this->createHandler('localhost:1234'); + $this->handler->setTimeout(-1); + } + + public function testSetTimeout() + { + $this->createHandler('localhost:1234'); + $this->handler->setTimeout(10.25); + $this->assertEquals(10.25, $this->handler->getTimeout()); + } + + public function testSetWritingTimeout() + { + $this->createHandler('localhost:1234'); + $this->handler->setWritingTimeout(10.25); + $this->assertEquals(10.25, $this->handler->getWritingTimeout()); + } + + public function testSetChunkSize() + { + $this->createHandler('localhost:1234'); + $this->handler->setChunkSize(1025); + $this->assertEquals(1025, $this->handler->getChunkSize()); + } + + public function testSetConnectionString() + { + $this->createHandler('tcp://localhost:9090'); + $this->assertEquals('tcp://localhost:9090', $this->handler->getConnectionString()); + } + + /** + * @expectedException UnexpectedValueException + */ + public function testExceptionIsThrownOnFsockopenError() + { + $this->setMockHandler(array('fsockopen')); + $this->handler->expects($this->once()) + ->method('fsockopen') + ->will($this->returnValue(false)); + $this->writeRecord('Hello world'); + } + + /** + * @expectedException UnexpectedValueException + */ + public function testExceptionIsThrownOnPfsockopenError() + { + $this->setMockHandler(array('pfsockopen')); + $this->handler->expects($this->once()) + ->method('pfsockopen') + ->will($this->returnValue(false)); + $this->handler->setPersistent(true); + $this->writeRecord('Hello world'); + } + + /** + * @expectedException UnexpectedValueException + */ + public function testExceptionIsThrownIfCannotSetTimeout() + { + $this->setMockHandler(array('streamSetTimeout')); + $this->handler->expects($this->once()) + ->method('streamSetTimeout') + ->will($this->returnValue(false)); + $this->writeRecord('Hello world'); + } + + /** + * @expectedException UnexpectedValueException + */ + public function testExceptionIsThrownIfCannotSetChunkSize() + { + $this->setMockHandler(array('streamSetChunkSize')); + $this->handler->setChunkSize(8192); + $this->handler->expects($this->once()) + ->method('streamSetChunkSize') + ->will($this->returnValue(false)); + $this->writeRecord('Hello world'); + } + + /** + * @expectedException RuntimeException + */ + public function testWriteFailsOnIfFwriteReturnsFalse() + { + $this->setMockHandler(array('fwrite')); + + $callback = function ($arg) { + $map = array( + 'Hello world' => 6, + 'world' => false, + ); + + return $map[$arg]; + }; + + $this->handler->expects($this->exactly(2)) + ->method('fwrite') + ->will($this->returnCallback($callback)); + + $this->writeRecord('Hello world'); + } + + /** + * @expectedException RuntimeException + */ + public function testWriteFailsIfStreamTimesOut() + { + $this->setMockHandler(array('fwrite', 'streamGetMetadata')); + + $callback = function ($arg) { + $map = array( + 'Hello world' => 6, + 'world' => 5, + ); + + return $map[$arg]; + }; + + $this->handler->expects($this->exactly(1)) + ->method('fwrite') + ->will($this->returnCallback($callback)); + $this->handler->expects($this->exactly(1)) + ->method('streamGetMetadata') + ->will($this->returnValue(array('timed_out' => true))); + + $this->writeRecord('Hello world'); + } + + /** + * @expectedException RuntimeException + */ + public function testWriteFailsOnIncompleteWrite() + { + $this->setMockHandler(array('fwrite', 'streamGetMetadata')); + + $res = $this->res; + $callback = function ($string) use ($res) { + fclose($res); + + return strlen('Hello'); + }; + + $this->handler->expects($this->exactly(1)) + ->method('fwrite') + ->will($this->returnCallback($callback)); + $this->handler->expects($this->exactly(1)) + ->method('streamGetMetadata') + ->will($this->returnValue(array('timed_out' => false))); + + $this->writeRecord('Hello world'); + } + + public function testWriteWithMemoryFile() + { + $this->setMockHandler(); + $this->writeRecord('test1'); + $this->writeRecord('test2'); + $this->writeRecord('test3'); + fseek($this->res, 0); + $this->assertEquals('test1test2test3', fread($this->res, 1024)); + } + + public function testWriteWithMock() + { + $this->setMockHandler(array('fwrite')); + + $callback = function ($arg) { + $map = array( + 'Hello world' => 6, + 'world' => 5, + ); + + return $map[$arg]; + }; + + $this->handler->expects($this->exactly(2)) + ->method('fwrite') + ->will($this->returnCallback($callback)); + + $this->writeRecord('Hello world'); + } + + public function testClose() + { + $this->setMockHandler(); + $this->writeRecord('Hello world'); + $this->assertInternalType('resource', $this->res); + $this->handler->close(); + $this->assertFalse(is_resource($this->res), "Expected resource to be closed after closing handler"); + } + + public function testCloseDoesNotClosePersistentSocket() + { + $this->setMockHandler(); + $this->handler->setPersistent(true); + $this->writeRecord('Hello world'); + $this->assertTrue(is_resource($this->res)); + $this->handler->close(); + $this->assertTrue(is_resource($this->res)); + } + + /** + * @expectedException \RuntimeException + */ + public function testAvoidInfiniteLoopWhenNoDataIsWrittenForAWritingTimeoutSeconds() + { + $this->setMockHandler(array('fwrite', 'streamGetMetadata')); + + $this->handler->expects($this->any()) + ->method('fwrite') + ->will($this->returnValue(0)); + + $this->handler->expects($this->any()) + ->method('streamGetMetadata') + ->will($this->returnValue(array('timed_out' => false))); + + $this->handler->setWritingTimeout(1); + + $this->writeRecord('Hello world'); + } + + private function createHandler($connectionString) + { + $this->handler = new SocketHandler($connectionString); + $this->handler->setFormatter($this->getIdentityFormatter()); + } + + private function writeRecord($string) + { + $this->handler->handle($this->getRecord(Logger::WARNING, $string)); + } + + private function setMockHandler(array $methods = array()) + { + $this->res = fopen('php://memory', 'a'); + + $defaultMethods = array('fsockopen', 'pfsockopen', 'streamSetTimeout'); + $newMethods = array_diff($methods, $defaultMethods); + + $finalMethods = array_merge($defaultMethods, $newMethods); + + $this->handler = $this->getMock( + '\Monolog\Handler\SocketHandler', $finalMethods, array('localhost:1234') + ); + + if (!in_array('fsockopen', $methods)) { + $this->handler->expects($this->any()) + ->method('fsockopen') + ->will($this->returnValue($this->res)); + } + + if (!in_array('pfsockopen', $methods)) { + $this->handler->expects($this->any()) + ->method('pfsockopen') + ->will($this->returnValue($this->res)); + } + + if (!in_array('streamSetTimeout', $methods)) { + $this->handler->expects($this->any()) + ->method('streamSetTimeout') + ->will($this->returnValue(true)); + } + + if (!in_array('streamSetChunkSize', $methods)) { + $this->handler->expects($this->any()) + ->method('streamSetChunkSize') + ->will($this->returnValue(8192)); + } + + $this->handler->setFormatter($this->getIdentityFormatter()); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/StreamHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/StreamHandlerTest.php new file mode 100644 index 00000000..487030fe --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/StreamHandlerTest.php @@ -0,0 +1,184 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; + +class StreamHandlerTest extends TestCase +{ + /** + * @covers Monolog\Handler\StreamHandler::__construct + * @covers Monolog\Handler\StreamHandler::write + */ + public function testWrite() + { + $handle = fopen('php://memory', 'a+'); + $handler = new StreamHandler($handle); + $handler->setFormatter($this->getIdentityFormatter()); + $handler->handle($this->getRecord(Logger::WARNING, 'test')); + $handler->handle($this->getRecord(Logger::WARNING, 'test2')); + $handler->handle($this->getRecord(Logger::WARNING, 'test3')); + fseek($handle, 0); + $this->assertEquals('testtest2test3', fread($handle, 100)); + } + + /** + * @covers Monolog\Handler\StreamHandler::close + */ + public function testCloseKeepsExternalHandlersOpen() + { + $handle = fopen('php://memory', 'a+'); + $handler = new StreamHandler($handle); + $this->assertTrue(is_resource($handle)); + $handler->close(); + $this->assertTrue(is_resource($handle)); + } + + /** + * @covers Monolog\Handler\StreamHandler::close + */ + public function testClose() + { + $handler = new StreamHandler('php://memory'); + $handler->handle($this->getRecord(Logger::WARNING, 'test')); + $streamProp = new \ReflectionProperty('Monolog\Handler\StreamHandler', 'stream'); + $streamProp->setAccessible(true); + $handle = $streamProp->getValue($handler); + + $this->assertTrue(is_resource($handle)); + $handler->close(); + $this->assertFalse(is_resource($handle)); + } + + /** + * @covers Monolog\Handler\StreamHandler::write + */ + public function testWriteCreatesTheStreamResource() + { + $handler = new StreamHandler('php://memory'); + $handler->handle($this->getRecord()); + } + + /** + * @covers Monolog\Handler\StreamHandler::__construct + * @covers Monolog\Handler\StreamHandler::write + */ + public function testWriteLocking() + { + $temp = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'monolog_locked_log'; + $handler = new StreamHandler($temp, Logger::DEBUG, true, null, true); + $handler->handle($this->getRecord()); + } + + /** + * @expectedException LogicException + * @covers Monolog\Handler\StreamHandler::__construct + * @covers Monolog\Handler\StreamHandler::write + */ + public function testWriteMissingResource() + { + $handler = new StreamHandler(null); + $handler->handle($this->getRecord()); + } + + public function invalidArgumentProvider() + { + return array( + array(1), + array(array()), + array(array('bogus://url')), + ); + } + + /** + * @dataProvider invalidArgumentProvider + * @expectedException InvalidArgumentException + * @covers Monolog\Handler\StreamHandler::__construct + */ + public function testWriteInvalidArgument($invalidArgument) + { + $handler = new StreamHandler($invalidArgument); + } + + /** + * @expectedException UnexpectedValueException + * @covers Monolog\Handler\StreamHandler::__construct + * @covers Monolog\Handler\StreamHandler::write + */ + public function testWriteInvalidResource() + { + $handler = new StreamHandler('bogus://url'); + $handler->handle($this->getRecord()); + } + + /** + * @expectedException UnexpectedValueException + * @covers Monolog\Handler\StreamHandler::__construct + * @covers Monolog\Handler\StreamHandler::write + */ + public function testWriteNonExistingResource() + { + $handler = new StreamHandler('ftp://foo/bar/baz/'.rand(0, 10000)); + $handler->handle($this->getRecord()); + } + + /** + * @covers Monolog\Handler\StreamHandler::__construct + * @covers Monolog\Handler\StreamHandler::write + */ + public function testWriteNonExistingPath() + { + $handler = new StreamHandler(sys_get_temp_dir().'/bar/'.rand(0, 10000).DIRECTORY_SEPARATOR.rand(0, 10000)); + $handler->handle($this->getRecord()); + } + + /** + * @covers Monolog\Handler\StreamHandler::__construct + * @covers Monolog\Handler\StreamHandler::write + */ + public function testWriteNonExistingFileResource() + { + $handler = new StreamHandler('file://'.sys_get_temp_dir().'/bar/'.rand(0, 10000).DIRECTORY_SEPARATOR.rand(0, 10000)); + $handler->handle($this->getRecord()); + } + + /** + * @expectedException Exception + * @expectedExceptionMessageRegExp /There is no existing directory at/ + * @covers Monolog\Handler\StreamHandler::__construct + * @covers Monolog\Handler\StreamHandler::write + */ + public function testWriteNonExistingAndNotCreatablePath() + { + if (defined('PHP_WINDOWS_VERSION_BUILD')) { + $this->markTestSkipped('Permissions checks can not run on windows'); + } + $handler = new StreamHandler('/foo/bar/'.rand(0, 10000).DIRECTORY_SEPARATOR.rand(0, 10000)); + $handler->handle($this->getRecord()); + } + + /** + * @expectedException Exception + * @expectedExceptionMessageRegExp /There is no existing directory at/ + * @covers Monolog\Handler\StreamHandler::__construct + * @covers Monolog\Handler\StreamHandler::write + */ + public function testWriteNonExistingAndNotCreatableFileResource() + { + if (defined('PHP_WINDOWS_VERSION_BUILD')) { + $this->markTestSkipped('Permissions checks can not run on windows'); + } + $handler = new StreamHandler('file:///foo/bar/'.rand(0, 10000).DIRECTORY_SEPARATOR.rand(0, 10000)); + $handler->handle($this->getRecord()); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SwiftMailerHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SwiftMailerHandlerTest.php new file mode 100644 index 00000000..1d62940f --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/SwiftMailerHandlerTest.php @@ -0,0 +1,113 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; +use Monolog\TestCase; + +class SwiftMailerHandlerTest extends TestCase +{ + /** @var \Swift_Mailer|\PHPUnit_Framework_MockObject_MockObject */ + private $mailer; + + public function setUp() + { + $this->mailer = $this + ->getMockBuilder('Swift_Mailer') + ->disableOriginalConstructor() + ->getMock(); + } + + public function testMessageCreationIsLazyWhenUsingCallback() + { + $this->mailer->expects($this->never()) + ->method('send'); + + $callback = function () { + throw new \RuntimeException('Swift_Message creation callback should not have been called in this test'); + }; + $handler = new SwiftMailerHandler($this->mailer, $callback); + + $records = array( + $this->getRecord(Logger::DEBUG), + $this->getRecord(Logger::INFO), + ); + $handler->handleBatch($records); + } + + public function testMessageCanBeCustomizedGivenLoggedData() + { + // Wire Mailer to expect a specific Swift_Message with a customized Subject + $expectedMessage = new \Swift_Message(); + $this->mailer->expects($this->once()) + ->method('send') + ->with($this->callback(function ($value) use ($expectedMessage) { + return $value instanceof \Swift_Message + && $value->getSubject() === 'Emergency' + && $value === $expectedMessage; + })); + + // Callback dynamically changes subject based on number of logged records + $callback = function ($content, array $records) use ($expectedMessage) { + $subject = count($records) > 0 ? 'Emergency' : 'Normal'; + $expectedMessage->setSubject($subject); + + return $expectedMessage; + }; + $handler = new SwiftMailerHandler($this->mailer, $callback); + + // Logging 1 record makes this an Emergency + $records = array( + $this->getRecord(Logger::EMERGENCY), + ); + $handler->handleBatch($records); + } + + public function testMessageSubjectFormatting() + { + // Wire Mailer to expect a specific Swift_Message with a customized Subject + $messageTemplate = new \Swift_Message(); + $messageTemplate->setSubject('Alert: %level_name% %message%'); + $receivedMessage = null; + + $this->mailer->expects($this->once()) + ->method('send') + ->with($this->callback(function ($value) use (&$receivedMessage) { + $receivedMessage = $value; + return true; + })); + + $handler = new SwiftMailerHandler($this->mailer, $messageTemplate); + + $records = array( + $this->getRecord(Logger::EMERGENCY), + ); + $handler->handleBatch($records); + + $this->assertEquals('Alert: EMERGENCY test', $receivedMessage->getSubject()); + } + + public function testMessageHaveUniqueId() + { + $messageTemplate = new \Swift_Message(); + $handler = new SwiftMailerHandler($this->mailer, $messageTemplate); + + $method = new \ReflectionMethod('Monolog\Handler\SwiftMailerHandler', 'buildMessage'); + $method->setAccessible(true); + $method->invokeArgs($handler, array($messageTemplate, array())); + + $builtMessage1 = $method->invoke($handler, $messageTemplate, array()); + $builtMessage2 = $method->invoke($handler, $messageTemplate, array()); + + $this->assertFalse($builtMessage1->getId() === $builtMessage2->getId(), 'Two different messages have the same id'); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SyslogHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SyslogHandlerTest.php new file mode 100644 index 00000000..8f9e46bf --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/SyslogHandlerTest.php @@ -0,0 +1,44 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; + +class SyslogHandlerTest extends \PHPUnit_Framework_TestCase +{ + /** + * @covers Monolog\Handler\SyslogHandler::__construct + */ + public function testConstruct() + { + $handler = new SyslogHandler('test'); + $this->assertInstanceOf('Monolog\Handler\SyslogHandler', $handler); + + $handler = new SyslogHandler('test', LOG_USER); + $this->assertInstanceOf('Monolog\Handler\SyslogHandler', $handler); + + $handler = new SyslogHandler('test', 'user'); + $this->assertInstanceOf('Monolog\Handler\SyslogHandler', $handler); + + $handler = new SyslogHandler('test', LOG_USER, Logger::DEBUG, true, LOG_PERROR); + $this->assertInstanceOf('Monolog\Handler\SyslogHandler', $handler); + } + + /** + * @covers Monolog\Handler\SyslogHandler::__construct + */ + public function testConstructInvalidFacility() + { + $this->setExpectedException('UnexpectedValueException'); + $handler = new SyslogHandler('test', 'unknown'); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SyslogUdpHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SyslogUdpHandlerTest.php new file mode 100644 index 00000000..7ee8a985 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/SyslogUdpHandlerTest.php @@ -0,0 +1,76 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; + +/** + * @requires extension sockets + */ +class SyslogUdpHandlerTest extends TestCase +{ + /** + * @expectedException UnexpectedValueException + */ + public function testWeValidateFacilities() + { + $handler = new SyslogUdpHandler("ip", null, "invalidFacility"); + } + + public function testWeSplitIntoLines() + { + $time = '2014-01-07T12:34'; + $pid = getmypid(); + $host = gethostname(); + + $handler = $this->getMockBuilder('\Monolog\Handler\SyslogUdpHandler') + ->setConstructorArgs(array("127.0.0.1", 514, "authpriv")) + ->setMethods(array('getDateTime')) + ->getMock(); + + $handler->method('getDateTime') + ->willReturn($time); + + $handler->setFormatter(new \Monolog\Formatter\ChromePHPFormatter()); + + $socket = $this->getMock('\Monolog\Handler\SyslogUdp\UdpSocket', array('write'), array('lol', 'lol')); + $socket->expects($this->at(0)) + ->method('write') + ->with("lol", "<".(LOG_AUTHPRIV + LOG_WARNING).">1 $time $host php $pid - - "); + $socket->expects($this->at(1)) + ->method('write') + ->with("hej", "<".(LOG_AUTHPRIV + LOG_WARNING).">1 $time $host php $pid - - "); + + $handler->setSocket($socket); + + $handler->handle($this->getRecordWithMessage("hej\nlol")); + } + + public function testSplitWorksOnEmptyMsg() + { + $handler = new SyslogUdpHandler("127.0.0.1", 514, "authpriv"); + $handler->setFormatter($this->getIdentityFormatter()); + + $socket = $this->getMock('\Monolog\Handler\SyslogUdp\UdpSocket', array('write'), array('lol', 'lol')); + $socket->expects($this->never()) + ->method('write'); + + $handler->setSocket($socket); + + $handler->handle($this->getRecordWithMessage(null)); + } + + protected function getRecordWithMessage($msg) + { + return array('message' => $msg, 'level' => \Monolog\Logger::WARNING, 'context' => null, 'extra' => array(), 'channel' => 'lol'); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/TestHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/TestHandlerTest.php new file mode 100644 index 00000000..a7c4fc98 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/TestHandlerTest.php @@ -0,0 +1,116 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; + +/** + * @covers Monolog\Handler\TestHandler + */ +class TestHandlerTest extends TestCase +{ + /** + * @dataProvider methodProvider + */ + public function testHandler($method, $level) + { + $handler = new TestHandler; + $record = $this->getRecord($level, 'test'.$method); + $this->assertFalse($handler->hasRecords($level)); + $this->assertFalse($handler->hasRecord($record, $level)); + $this->assertFalse($handler->{'has'.$method}($record), 'has'.$method); + $this->assertFalse($handler->{'has'.$method.'ThatContains'}('test'), 'has'.$method.'ThatContains'); + $this->assertFalse($handler->{'has'.$method.'ThatPasses'}(function ($rec) { + return true; + }), 'has'.$method.'ThatPasses'); + $this->assertFalse($handler->{'has'.$method.'ThatMatches'}('/test\w+/')); + $this->assertFalse($handler->{'has'.$method.'Records'}(), 'has'.$method.'Records'); + $handler->handle($record); + + $this->assertFalse($handler->{'has'.$method}('bar'), 'has'.$method); + $this->assertTrue($handler->hasRecords($level)); + $this->assertTrue($handler->hasRecord($record, $level)); + $this->assertTrue($handler->{'has'.$method}($record), 'has'.$method); + $this->assertTrue($handler->{'has'.$method}('test'.$method), 'has'.$method); + $this->assertTrue($handler->{'has'.$method.'ThatContains'}('test'), 'has'.$method.'ThatContains'); + $this->assertTrue($handler->{'has'.$method.'ThatPasses'}(function ($rec) { + return true; + }), 'has'.$method.'ThatPasses'); + $this->assertTrue($handler->{'has'.$method.'ThatMatches'}('/test\w+/')); + $this->assertTrue($handler->{'has'.$method.'Records'}(), 'has'.$method.'Records'); + + $records = $handler->getRecords(); + unset($records[0]['formatted']); + $this->assertEquals(array($record), $records); + } + + public function testHandlerAssertEmptyContext() { + $handler = new TestHandler; + $record = $this->getRecord(Logger::WARNING, 'test', array()); + $this->assertFalse($handler->hasWarning(array( + 'message' => 'test', + 'context' => array(), + ))); + + $handler->handle($record); + + $this->assertTrue($handler->hasWarning(array( + 'message' => 'test', + 'context' => array(), + ))); + $this->assertFalse($handler->hasWarning(array( + 'message' => 'test', + 'context' => array( + 'foo' => 'bar' + ), + ))); + } + + public function testHandlerAssertNonEmptyContext() { + $handler = new TestHandler; + $record = $this->getRecord(Logger::WARNING, 'test', array('foo' => 'bar')); + $this->assertFalse($handler->hasWarning(array( + 'message' => 'test', + 'context' => array( + 'foo' => 'bar' + ), + ))); + + $handler->handle($record); + + $this->assertTrue($handler->hasWarning(array( + 'message' => 'test', + 'context' => array( + 'foo' => 'bar' + ), + ))); + $this->assertFalse($handler->hasWarning(array( + 'message' => 'test', + 'context' => array(), + ))); + } + + public function methodProvider() + { + return array( + array('Emergency', Logger::EMERGENCY), + array('Alert' , Logger::ALERT), + array('Critical' , Logger::CRITICAL), + array('Error' , Logger::ERROR), + array('Warning' , Logger::WARNING), + array('Info' , Logger::INFO), + array('Notice' , Logger::NOTICE), + array('Debug' , Logger::DEBUG), + ); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/UdpSocketTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/UdpSocketTest.php new file mode 100644 index 00000000..fa524d00 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/UdpSocketTest.php @@ -0,0 +1,64 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Handler\SyslogUdp\UdpSocket; + +/** + * @requires extension sockets + */ +class UdpSocketTest extends TestCase +{ + public function testWeDoNotTruncateShortMessages() + { + $socket = $this->getMock('\Monolog\Handler\SyslogUdp\UdpSocket', array('send'), array('lol', 'lol')); + + $socket->expects($this->at(0)) + ->method('send') + ->with("HEADER: The quick brown fox jumps over the lazy dog"); + + $socket->write("The quick brown fox jumps over the lazy dog", "HEADER: "); + } + + public function testLongMessagesAreTruncated() + { + $socket = $this->getMock('\Monolog\Handler\SyslogUdp\UdpSocket', array('send'), array('lol', 'lol')); + + $truncatedString = str_repeat("derp", 16254).'d'; + + $socket->expects($this->exactly(1)) + ->method('send') + ->with("HEADER" . $truncatedString); + + $longString = str_repeat("derp", 20000); + + $socket->write($longString, "HEADER"); + } + + public function testDoubleCloseDoesNotError() + { + $socket = new UdpSocket('127.0.0.1', 514); + $socket->close(); + $socket->close(); + } + + /** + * @expectedException LogicException + */ + public function testWriteAfterCloseErrors() + { + $socket = new UdpSocket('127.0.0.1', 514); + $socket->close(); + $socket->write('foo', "HEADER"); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/WhatFailureGroupHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/WhatFailureGroupHandlerTest.php new file mode 100644 index 00000000..0594a232 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/WhatFailureGroupHandlerTest.php @@ -0,0 +1,144 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; +use Monolog\Logger; + +class WhatFailureGroupHandlerTest extends TestCase +{ + /** + * @covers Monolog\Handler\WhatFailureGroupHandler::__construct + * @expectedException InvalidArgumentException + */ + public function testConstructorOnlyTakesHandler() + { + new WhatFailureGroupHandler(array(new TestHandler(), "foo")); + } + + /** + * @covers Monolog\Handler\WhatFailureGroupHandler::__construct + * @covers Monolog\Handler\WhatFailureGroupHandler::handle + */ + public function testHandle() + { + $testHandlers = array(new TestHandler(), new TestHandler()); + $handler = new WhatFailureGroupHandler($testHandlers); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::INFO)); + foreach ($testHandlers as $test) { + $this->assertTrue($test->hasDebugRecords()); + $this->assertTrue($test->hasInfoRecords()); + $this->assertTrue(count($test->getRecords()) === 2); + } + } + + /** + * @covers Monolog\Handler\WhatFailureGroupHandler::handleBatch + */ + public function testHandleBatch() + { + $testHandlers = array(new TestHandler(), new TestHandler()); + $handler = new WhatFailureGroupHandler($testHandlers); + $handler->handleBatch(array($this->getRecord(Logger::DEBUG), $this->getRecord(Logger::INFO))); + foreach ($testHandlers as $test) { + $this->assertTrue($test->hasDebugRecords()); + $this->assertTrue($test->hasInfoRecords()); + $this->assertTrue(count($test->getRecords()) === 2); + } + } + + /** + * @covers Monolog\Handler\WhatFailureGroupHandler::isHandling + */ + public function testIsHandling() + { + $testHandlers = array(new TestHandler(Logger::ERROR), new TestHandler(Logger::WARNING)); + $handler = new WhatFailureGroupHandler($testHandlers); + $this->assertTrue($handler->isHandling($this->getRecord(Logger::ERROR))); + $this->assertTrue($handler->isHandling($this->getRecord(Logger::WARNING))); + $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG))); + } + + /** + * @covers Monolog\Handler\WhatFailureGroupHandler::handle + */ + public function testHandleUsesProcessors() + { + $test = new TestHandler(); + $handler = new WhatFailureGroupHandler(array($test)); + $handler->pushProcessor(function ($record) { + $record['extra']['foo'] = true; + + return $record; + }); + $handler->handle($this->getRecord(Logger::WARNING)); + $this->assertTrue($test->hasWarningRecords()); + $records = $test->getRecords(); + $this->assertTrue($records[0]['extra']['foo']); + } + + /** + * @covers Monolog\Handler\WhatFailureGroupHandler::handleBatch + */ + public function testHandleBatchUsesProcessors() + { + $testHandlers = array(new TestHandler(), new TestHandler()); + $handler = new WhatFailureGroupHandler($testHandlers); + $handler->pushProcessor(function ($record) { + $record['extra']['foo'] = true; + + return $record; + }); + $handler->handleBatch(array($this->getRecord(Logger::DEBUG), $this->getRecord(Logger::INFO))); + foreach ($testHandlers as $test) { + $this->assertTrue($test->hasDebugRecords()); + $this->assertTrue($test->hasInfoRecords()); + $this->assertTrue(count($test->getRecords()) === 2); + $records = $test->getRecords(); + $this->assertTrue($records[0]['extra']['foo']); + $this->assertTrue($records[1]['extra']['foo']); + } + } + + /** + * @covers Monolog\Handler\WhatFailureGroupHandler::handle + */ + public function testHandleException() + { + $test = new TestHandler(); + $exception = new ExceptionTestHandler(); + $handler = new WhatFailureGroupHandler(array($exception, $test, $exception)); + $handler->pushProcessor(function ($record) { + $record['extra']['foo'] = true; + + return $record; + }); + $handler->handle($this->getRecord(Logger::WARNING)); + $this->assertTrue($test->hasWarningRecords()); + $records = $test->getRecords(); + $this->assertTrue($records[0]['extra']['foo']); + } +} + +class ExceptionTestHandler extends TestHandler +{ + /** + * {@inheritdoc} + */ + public function handle(array $record) + { + parent::handle($record); + + throw new \Exception("ExceptionTestHandler::handle"); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/ZendMonitorHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/ZendMonitorHandlerTest.php new file mode 100644 index 00000000..69b001ea --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Handler/ZendMonitorHandlerTest.php @@ -0,0 +1,69 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\TestCase; + +class ZendMonitorHandlerTest extends TestCase +{ + protected $zendMonitorHandler; + + public function setUp() + { + if (!function_exists('zend_monitor_custom_event')) { + $this->markTestSkipped('ZendServer is not installed'); + } + } + + /** + * @covers Monolog\Handler\ZendMonitorHandler::write + */ + public function testWrite() + { + $record = $this->getRecord(); + $formatterResult = array( + 'message' => $record['message'], + ); + + $zendMonitor = $this->getMockBuilder('Monolog\Handler\ZendMonitorHandler') + ->setMethods(array('writeZendMonitorCustomEvent', 'getDefaultFormatter')) + ->getMock(); + + $formatterMock = $this->getMockBuilder('Monolog\Formatter\NormalizerFormatter') + ->disableOriginalConstructor() + ->getMock(); + + $formatterMock->expects($this->once()) + ->method('format') + ->will($this->returnValue($formatterResult)); + + $zendMonitor->expects($this->once()) + ->method('getDefaultFormatter') + ->will($this->returnValue($formatterMock)); + + $levelMap = $zendMonitor->getLevelMap(); + + $zendMonitor->expects($this->once()) + ->method('writeZendMonitorCustomEvent') + ->with($levelMap[$record['level']], $record['message'], $formatterResult); + + $zendMonitor->handle($record); + } + + /** + * @covers Monolog\Handler\ZendMonitorHandler::getDefaultFormatter + */ + public function testGetDefaultFormatterReturnsNormalizerFormatter() + { + $zendMonitor = new ZendMonitorHandler(); + $this->assertInstanceOf('Monolog\Formatter\NormalizerFormatter', $zendMonitor->getDefaultFormatter()); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/LoggerTest.php b/vendor/monolog/monolog/tests/Monolog/LoggerTest.php new file mode 100644 index 00000000..442e87de --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/LoggerTest.php @@ -0,0 +1,690 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog; + +use Monolog\Processor\WebProcessor; +use Monolog\Handler\TestHandler; + +class LoggerTest extends \PHPUnit_Framework_TestCase +{ + /** + * @covers Monolog\Logger::getName + */ + public function testGetName() + { + $logger = new Logger('foo'); + $this->assertEquals('foo', $logger->getName()); + } + + /** + * @covers Monolog\Logger::getLevelName + */ + public function testGetLevelName() + { + $this->assertEquals('ERROR', Logger::getLevelName(Logger::ERROR)); + } + + /** + * @covers Monolog\Logger::withName + */ + public function testWithName() + { + $first = new Logger('first', array($handler = new TestHandler())); + $second = $first->withName('second'); + + $this->assertSame('first', $first->getName()); + $this->assertSame('second', $second->getName()); + $this->assertSame($handler, $second->popHandler()); + } + + /** + * @covers Monolog\Logger::toMonologLevel + */ + public function testConvertPSR3ToMonologLevel() + { + $this->assertEquals(Logger::toMonologLevel('debug'), 100); + $this->assertEquals(Logger::toMonologLevel('info'), 200); + $this->assertEquals(Logger::toMonologLevel('notice'), 250); + $this->assertEquals(Logger::toMonologLevel('warning'), 300); + $this->assertEquals(Logger::toMonologLevel('error'), 400); + $this->assertEquals(Logger::toMonologLevel('critical'), 500); + $this->assertEquals(Logger::toMonologLevel('alert'), 550); + $this->assertEquals(Logger::toMonologLevel('emergency'), 600); + } + + /** + * @covers Monolog\Logger::getLevelName + * @expectedException InvalidArgumentException + */ + public function testGetLevelNameThrows() + { + Logger::getLevelName(5); + } + + /** + * @covers Monolog\Logger::__construct + */ + public function testChannel() + { + $logger = new Logger('foo'); + $handler = new TestHandler; + $logger->pushHandler($handler); + $logger->addWarning('test'); + list($record) = $handler->getRecords(); + $this->assertEquals('foo', $record['channel']); + } + + /** + * @covers Monolog\Logger::addRecord + */ + public function testLog() + { + $logger = new Logger(__METHOD__); + + $handler = $this->getMock('Monolog\Handler\NullHandler', array('handle')); + $handler->expects($this->once()) + ->method('handle'); + $logger->pushHandler($handler); + + $this->assertTrue($logger->addWarning('test')); + } + + /** + * @covers Monolog\Logger::addRecord + */ + public function testLogNotHandled() + { + $logger = new Logger(__METHOD__); + + $handler = $this->getMock('Monolog\Handler\NullHandler', array('handle'), array(Logger::ERROR)); + $handler->expects($this->never()) + ->method('handle'); + $logger->pushHandler($handler); + + $this->assertFalse($logger->addWarning('test')); + } + + public function testHandlersInCtor() + { + $handler1 = new TestHandler; + $handler2 = new TestHandler; + $logger = new Logger(__METHOD__, array($handler1, $handler2)); + + $this->assertEquals($handler1, $logger->popHandler()); + $this->assertEquals($handler2, $logger->popHandler()); + } + + public function testProcessorsInCtor() + { + $processor1 = new WebProcessor; + $processor2 = new WebProcessor; + $logger = new Logger(__METHOD__, array(), array($processor1, $processor2)); + + $this->assertEquals($processor1, $logger->popProcessor()); + $this->assertEquals($processor2, $logger->popProcessor()); + } + + /** + * @covers Monolog\Logger::pushHandler + * @covers Monolog\Logger::popHandler + * @expectedException LogicException + */ + public function testPushPopHandler() + { + $logger = new Logger(__METHOD__); + $handler1 = new TestHandler; + $handler2 = new TestHandler; + + $logger->pushHandler($handler1); + $logger->pushHandler($handler2); + + $this->assertEquals($handler2, $logger->popHandler()); + $this->assertEquals($handler1, $logger->popHandler()); + $logger->popHandler(); + } + + /** + * @covers Monolog\Logger::setHandlers + */ + public function testSetHandlers() + { + $logger = new Logger(__METHOD__); + $handler1 = new TestHandler; + $handler2 = new TestHandler; + + $logger->pushHandler($handler1); + $logger->setHandlers(array($handler2)); + + // handler1 has been removed + $this->assertEquals(array($handler2), $logger->getHandlers()); + + $logger->setHandlers(array( + "AMapKey" => $handler1, + "Woop" => $handler2, + )); + + // Keys have been scrubbed + $this->assertEquals(array($handler1, $handler2), $logger->getHandlers()); + } + + /** + * @covers Monolog\Logger::pushProcessor + * @covers Monolog\Logger::popProcessor + * @expectedException LogicException + */ + public function testPushPopProcessor() + { + $logger = new Logger(__METHOD__); + $processor1 = new WebProcessor; + $processor2 = new WebProcessor; + + $logger->pushProcessor($processor1); + $logger->pushProcessor($processor2); + + $this->assertEquals($processor2, $logger->popProcessor()); + $this->assertEquals($processor1, $logger->popProcessor()); + $logger->popProcessor(); + } + + /** + * @covers Monolog\Logger::pushProcessor + * @expectedException InvalidArgumentException + */ + public function testPushProcessorWithNonCallable() + { + $logger = new Logger(__METHOD__); + + $logger->pushProcessor(new \stdClass()); + } + + /** + * @covers Monolog\Logger::addRecord + */ + public function testProcessorsAreExecuted() + { + $logger = new Logger(__METHOD__); + $handler = new TestHandler; + $logger->pushHandler($handler); + $logger->pushProcessor(function ($record) { + $record['extra']['win'] = true; + + return $record; + }); + $logger->addError('test'); + list($record) = $handler->getRecords(); + $this->assertTrue($record['extra']['win']); + } + + /** + * @covers Monolog\Logger::addRecord + */ + public function testProcessorsAreCalledOnlyOnce() + { + $logger = new Logger(__METHOD__); + $handler = $this->getMock('Monolog\Handler\HandlerInterface'); + $handler->expects($this->any()) + ->method('isHandling') + ->will($this->returnValue(true)) + ; + $handler->expects($this->any()) + ->method('handle') + ->will($this->returnValue(true)) + ; + $logger->pushHandler($handler); + + $processor = $this->getMockBuilder('Monolog\Processor\WebProcessor') + ->disableOriginalConstructor() + ->setMethods(array('__invoke')) + ->getMock() + ; + $processor->expects($this->once()) + ->method('__invoke') + ->will($this->returnArgument(0)) + ; + $logger->pushProcessor($processor); + + $logger->addError('test'); + } + + /** + * @covers Monolog\Logger::addRecord + */ + public function testProcessorsNotCalledWhenNotHandled() + { + $logger = new Logger(__METHOD__); + $handler = $this->getMock('Monolog\Handler\HandlerInterface'); + $handler->expects($this->once()) + ->method('isHandling') + ->will($this->returnValue(false)) + ; + $logger->pushHandler($handler); + $that = $this; + $logger->pushProcessor(function ($record) use ($that) { + $that->fail('The processor should not be called'); + }); + $logger->addAlert('test'); + } + + /** + * @covers Monolog\Logger::addRecord + */ + public function testHandlersNotCalledBeforeFirstHandling() + { + $logger = new Logger(__METHOD__); + + $handler1 = $this->getMock('Monolog\Handler\HandlerInterface'); + $handler1->expects($this->never()) + ->method('isHandling') + ->will($this->returnValue(false)) + ; + $handler1->expects($this->once()) + ->method('handle') + ->will($this->returnValue(false)) + ; + $logger->pushHandler($handler1); + + $handler2 = $this->getMock('Monolog\Handler\HandlerInterface'); + $handler2->expects($this->once()) + ->method('isHandling') + ->will($this->returnValue(true)) + ; + $handler2->expects($this->once()) + ->method('handle') + ->will($this->returnValue(false)) + ; + $logger->pushHandler($handler2); + + $handler3 = $this->getMock('Monolog\Handler\HandlerInterface'); + $handler3->expects($this->once()) + ->method('isHandling') + ->will($this->returnValue(false)) + ; + $handler3->expects($this->never()) + ->method('handle') + ; + $logger->pushHandler($handler3); + + $logger->debug('test'); + } + + /** + * @covers Monolog\Logger::addRecord + */ + public function testHandlersNotCalledBeforeFirstHandlingWithAssocArray() + { + $handler1 = $this->getMock('Monolog\Handler\HandlerInterface'); + $handler1->expects($this->never()) + ->method('isHandling') + ->will($this->returnValue(false)) + ; + $handler1->expects($this->once()) + ->method('handle') + ->will($this->returnValue(false)) + ; + + $handler2 = $this->getMock('Monolog\Handler\HandlerInterface'); + $handler2->expects($this->once()) + ->method('isHandling') + ->will($this->returnValue(true)) + ; + $handler2->expects($this->once()) + ->method('handle') + ->will($this->returnValue(false)) + ; + + $handler3 = $this->getMock('Monolog\Handler\HandlerInterface'); + $handler3->expects($this->once()) + ->method('isHandling') + ->will($this->returnValue(false)) + ; + $handler3->expects($this->never()) + ->method('handle') + ; + + $logger = new Logger(__METHOD__, array('last' => $handler3, 'second' => $handler2, 'first' => $handler1)); + + $logger->debug('test'); + } + + /** + * @covers Monolog\Logger::addRecord + */ + public function testBubblingWhenTheHandlerReturnsFalse() + { + $logger = new Logger(__METHOD__); + + $handler1 = $this->getMock('Monolog\Handler\HandlerInterface'); + $handler1->expects($this->any()) + ->method('isHandling') + ->will($this->returnValue(true)) + ; + $handler1->expects($this->once()) + ->method('handle') + ->will($this->returnValue(false)) + ; + $logger->pushHandler($handler1); + + $handler2 = $this->getMock('Monolog\Handler\HandlerInterface'); + $handler2->expects($this->any()) + ->method('isHandling') + ->will($this->returnValue(true)) + ; + $handler2->expects($this->once()) + ->method('handle') + ->will($this->returnValue(false)) + ; + $logger->pushHandler($handler2); + + $logger->debug('test'); + } + + /** + * @covers Monolog\Logger::addRecord + */ + public function testNotBubblingWhenTheHandlerReturnsTrue() + { + $logger = new Logger(__METHOD__); + + $handler1 = $this->getMock('Monolog\Handler\HandlerInterface'); + $handler1->expects($this->any()) + ->method('isHandling') + ->will($this->returnValue(true)) + ; + $handler1->expects($this->never()) + ->method('handle') + ; + $logger->pushHandler($handler1); + + $handler2 = $this->getMock('Monolog\Handler\HandlerInterface'); + $handler2->expects($this->any()) + ->method('isHandling') + ->will($this->returnValue(true)) + ; + $handler2->expects($this->once()) + ->method('handle') + ->will($this->returnValue(true)) + ; + $logger->pushHandler($handler2); + + $logger->debug('test'); + } + + /** + * @covers Monolog\Logger::isHandling + */ + public function testIsHandling() + { + $logger = new Logger(__METHOD__); + + $handler1 = $this->getMock('Monolog\Handler\HandlerInterface'); + $handler1->expects($this->any()) + ->method('isHandling') + ->will($this->returnValue(false)) + ; + + $logger->pushHandler($handler1); + $this->assertFalse($logger->isHandling(Logger::DEBUG)); + + $handler2 = $this->getMock('Monolog\Handler\HandlerInterface'); + $handler2->expects($this->any()) + ->method('isHandling') + ->will($this->returnValue(true)) + ; + + $logger->pushHandler($handler2); + $this->assertTrue($logger->isHandling(Logger::DEBUG)); + } + + /** + * @dataProvider logMethodProvider + * @covers Monolog\Logger::addDebug + * @covers Monolog\Logger::addInfo + * @covers Monolog\Logger::addNotice + * @covers Monolog\Logger::addWarning + * @covers Monolog\Logger::addError + * @covers Monolog\Logger::addCritical + * @covers Monolog\Logger::addAlert + * @covers Monolog\Logger::addEmergency + * @covers Monolog\Logger::debug + * @covers Monolog\Logger::info + * @covers Monolog\Logger::notice + * @covers Monolog\Logger::warn + * @covers Monolog\Logger::err + * @covers Monolog\Logger::crit + * @covers Monolog\Logger::alert + * @covers Monolog\Logger::emerg + */ + public function testLogMethods($method, $expectedLevel) + { + $logger = new Logger('foo'); + $handler = new TestHandler; + $logger->pushHandler($handler); + $logger->{$method}('test'); + list($record) = $handler->getRecords(); + $this->assertEquals($expectedLevel, $record['level']); + } + + public function logMethodProvider() + { + return array( + // monolog methods + array('addDebug', Logger::DEBUG), + array('addInfo', Logger::INFO), + array('addNotice', Logger::NOTICE), + array('addWarning', Logger::WARNING), + array('addError', Logger::ERROR), + array('addCritical', Logger::CRITICAL), + array('addAlert', Logger::ALERT), + array('addEmergency', Logger::EMERGENCY), + + // ZF/Sf2 compat methods + array('debug', Logger::DEBUG), + array('info', Logger::INFO), + array('notice', Logger::NOTICE), + array('warn', Logger::WARNING), + array('err', Logger::ERROR), + array('crit', Logger::CRITICAL), + array('alert', Logger::ALERT), + array('emerg', Logger::EMERGENCY), + ); + } + + /** + * @dataProvider setTimezoneProvider + * @covers Monolog\Logger::setTimezone + */ + public function testSetTimezone($tz) + { + Logger::setTimezone($tz); + $logger = new Logger('foo'); + $handler = new TestHandler; + $logger->pushHandler($handler); + $logger->info('test'); + list($record) = $handler->getRecords(); + $this->assertEquals($tz, $record['datetime']->getTimezone()); + } + + public function setTimezoneProvider() + { + return array_map( + function ($tz) { return array(new \DateTimeZone($tz)); }, + \DateTimeZone::listIdentifiers() + ); + } + + /** + * @dataProvider useMicrosecondTimestampsProvider + * @covers Monolog\Logger::useMicrosecondTimestamps + * @covers Monolog\Logger::addRecord + */ + public function testUseMicrosecondTimestamps($micro, $assert) + { + $logger = new Logger('foo'); + $logger->useMicrosecondTimestamps($micro); + $handler = new TestHandler; + $logger->pushHandler($handler); + $logger->info('test'); + list($record) = $handler->getRecords(); + $this->{$assert}('000000', $record['datetime']->format('u')); + } + + public function useMicrosecondTimestampsProvider() + { + return array( + // this has a very small chance of a false negative (1/10^6) + 'with microseconds' => array(true, 'assertNotSame'), + 'without microseconds' => array(false, PHP_VERSION_ID >= 70100 ? 'assertNotSame' : 'assertSame'), + ); + } + + /** + * @covers Monolog\Logger::setExceptionHandler + */ + public function testSetExceptionHandler() + { + $logger = new Logger(__METHOD__); + $this->assertNull($logger->getExceptionHandler()); + $callback = function ($ex) { + }; + $logger->setExceptionHandler($callback); + $this->assertEquals($callback, $logger->getExceptionHandler()); + } + + /** + * @covers Monolog\Logger::setExceptionHandler + * @expectedException InvalidArgumentException + */ + public function testBadExceptionHandlerType() + { + $logger = new Logger(__METHOD__); + $logger->setExceptionHandler(false); + } + + /** + * @covers Monolog\Logger::handleException + * @expectedException Exception + */ + public function testDefaultHandleException() + { + $logger = new Logger(__METHOD__); + $handler = $this->getMock('Monolog\Handler\HandlerInterface'); + $handler->expects($this->any()) + ->method('isHandling') + ->will($this->returnValue(true)) + ; + $handler->expects($this->any()) + ->method('handle') + ->will($this->throwException(new \Exception('Some handler exception'))) + ; + $logger->pushHandler($handler); + $logger->info('test'); + } + + /** + * @covers Monolog\Logger::handleException + * @covers Monolog\Logger::addRecord + */ + public function testCustomHandleException() + { + $logger = new Logger(__METHOD__); + $that = $this; + $logger->setExceptionHandler(function ($e, $record) use ($that) { + $that->assertEquals($e->getMessage(), 'Some handler exception'); + $that->assertTrue(is_array($record)); + $that->assertEquals($record['message'], 'test'); + }); + $handler = $this->getMock('Monolog\Handler\HandlerInterface'); + $handler->expects($this->any()) + ->method('isHandling') + ->will($this->returnValue(true)) + ; + $handler->expects($this->any()) + ->method('handle') + ->will($this->throwException(new \Exception('Some handler exception'))) + ; + $logger->pushHandler($handler); + $logger->info('test'); + } + + public function testReset() + { + $logger = new Logger('app'); + + $testHandler = new Handler\TestHandler(); + $bufferHandler = new Handler\BufferHandler($testHandler); + $groupHandler = new Handler\GroupHandler(array($bufferHandler)); + $fingersCrossedHandler = new Handler\FingersCrossedHandler($groupHandler); + + $logger->pushHandler($fingersCrossedHandler); + + $processorUid1 = new Processor\UidProcessor(10); + $uid1 = $processorUid1->getUid(); + $groupHandler->pushProcessor($processorUid1); + + $processorUid2 = new Processor\UidProcessor(5); + $uid2 = $processorUid2->getUid(); + $logger->pushProcessor($processorUid2); + + $getProperty = function ($object, $property) { + $reflectionProperty = new \ReflectionProperty(get_class($object), $property); + $reflectionProperty->setAccessible(true); + + return $reflectionProperty->getValue($object); + }; + $that = $this; + $assertBufferOfBufferHandlerEmpty = function () use ($getProperty, $bufferHandler, $that) { + $that->assertEmpty($getProperty($bufferHandler, 'buffer')); + }; + $assertBuffersEmpty = function() use ($assertBufferOfBufferHandlerEmpty, $getProperty, $fingersCrossedHandler, $that) { + $assertBufferOfBufferHandlerEmpty(); + $that->assertEmpty($getProperty($fingersCrossedHandler, 'buffer')); + }; + + $logger->debug('debug'); + $logger->reset(); + $assertBuffersEmpty(); + $this->assertFalse($testHandler->hasDebugRecords()); + $this->assertFalse($testHandler->hasErrorRecords()); + $this->assertNotSame($uid1, $uid1 = $processorUid1->getUid()); + $this->assertNotSame($uid2, $uid2 = $processorUid2->getUid()); + + $logger->debug('debug'); + $logger->error('error'); + $logger->reset(); + $assertBuffersEmpty(); + $this->assertTrue($testHandler->hasDebugRecords()); + $this->assertTrue($testHandler->hasErrorRecords()); + $this->assertNotSame($uid1, $uid1 = $processorUid1->getUid()); + $this->assertNotSame($uid2, $uid2 = $processorUid2->getUid()); + + $logger->info('info'); + $this->assertNotEmpty($getProperty($fingersCrossedHandler, 'buffer')); + $assertBufferOfBufferHandlerEmpty(); + $this->assertFalse($testHandler->hasInfoRecords()); + + $logger->reset(); + $assertBuffersEmpty(); + $this->assertFalse($testHandler->hasInfoRecords()); + $this->assertNotSame($uid1, $uid1 = $processorUid1->getUid()); + $this->assertNotSame($uid2, $uid2 = $processorUid2->getUid()); + + $logger->notice('notice'); + $logger->emergency('emergency'); + $logger->reset(); + $assertBuffersEmpty(); + $this->assertFalse($testHandler->hasInfoRecords()); + $this->assertTrue($testHandler->hasNoticeRecords()); + $this->assertTrue($testHandler->hasEmergencyRecords()); + $this->assertNotSame($uid1, $processorUid1->getUid()); + $this->assertNotSame($uid2, $processorUid2->getUid()); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/GitProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/GitProcessorTest.php new file mode 100644 index 00000000..5adb505d --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Processor/GitProcessorTest.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +use Monolog\TestCase; + +class GitProcessorTest extends TestCase +{ + /** + * @covers Monolog\Processor\GitProcessor::__invoke + */ + public function testProcessor() + { + $processor = new GitProcessor(); + $record = $processor($this->getRecord()); + + $this->assertArrayHasKey('git', $record['extra']); + $this->assertTrue(!is_array($record['extra']['git']['branch'])); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/IntrospectionProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/IntrospectionProcessorTest.php new file mode 100644 index 00000000..0dd411d7 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Processor/IntrospectionProcessorTest.php @@ -0,0 +1,123 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Acme; + +class Tester +{ + public function test($handler, $record) + { + $handler->handle($record); + } +} + +function tester($handler, $record) +{ + $handler->handle($record); +} + +namespace Monolog\Processor; + +use Monolog\Logger; +use Monolog\TestCase; +use Monolog\Handler\TestHandler; + +class IntrospectionProcessorTest extends TestCase +{ + public function getHandler() + { + $processor = new IntrospectionProcessor(); + $handler = new TestHandler(); + $handler->pushProcessor($processor); + + return $handler; + } + + public function testProcessorFromClass() + { + $handler = $this->getHandler(); + $tester = new \Acme\Tester; + $tester->test($handler, $this->getRecord()); + list($record) = $handler->getRecords(); + $this->assertEquals(__FILE__, $record['extra']['file']); + $this->assertEquals(18, $record['extra']['line']); + $this->assertEquals('Acme\Tester', $record['extra']['class']); + $this->assertEquals('test', $record['extra']['function']); + } + + public function testProcessorFromFunc() + { + $handler = $this->getHandler(); + \Acme\tester($handler, $this->getRecord()); + list($record) = $handler->getRecords(); + $this->assertEquals(__FILE__, $record['extra']['file']); + $this->assertEquals(24, $record['extra']['line']); + $this->assertEquals(null, $record['extra']['class']); + $this->assertEquals('Acme\tester', $record['extra']['function']); + } + + public function testLevelTooLow() + { + $input = array( + 'level' => Logger::DEBUG, + 'extra' => array(), + ); + + $expected = $input; + + $processor = new IntrospectionProcessor(Logger::CRITICAL); + $actual = $processor($input); + + $this->assertEquals($expected, $actual); + } + + public function testLevelEqual() + { + $input = array( + 'level' => Logger::CRITICAL, + 'extra' => array(), + ); + + $expected = $input; + $expected['extra'] = array( + 'file' => null, + 'line' => null, + 'class' => 'ReflectionMethod', + 'function' => 'invokeArgs', + ); + + $processor = new IntrospectionProcessor(Logger::CRITICAL); + $actual = $processor($input); + + $this->assertEquals($expected, $actual); + } + + public function testLevelHigher() + { + $input = array( + 'level' => Logger::EMERGENCY, + 'extra' => array(), + ); + + $expected = $input; + $expected['extra'] = array( + 'file' => null, + 'line' => null, + 'class' => 'ReflectionMethod', + 'function' => 'invokeArgs', + ); + + $processor = new IntrospectionProcessor(Logger::CRITICAL); + $actual = $processor($input); + + $this->assertEquals($expected, $actual); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/MemoryPeakUsageProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/MemoryPeakUsageProcessorTest.php new file mode 100644 index 00000000..eb666144 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Processor/MemoryPeakUsageProcessorTest.php @@ -0,0 +1,42 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +use Monolog\TestCase; + +class MemoryPeakUsageProcessorTest extends TestCase +{ + /** + * @covers Monolog\Processor\MemoryPeakUsageProcessor::__invoke + * @covers Monolog\Processor\MemoryProcessor::formatBytes + */ + public function testProcessor() + { + $processor = new MemoryPeakUsageProcessor(); + $record = $processor($this->getRecord()); + $this->assertArrayHasKey('memory_peak_usage', $record['extra']); + $this->assertRegExp('#[0-9.]+ (M|K)?B$#', $record['extra']['memory_peak_usage']); + } + + /** + * @covers Monolog\Processor\MemoryPeakUsageProcessor::__invoke + * @covers Monolog\Processor\MemoryProcessor::formatBytes + */ + public function testProcessorWithoutFormatting() + { + $processor = new MemoryPeakUsageProcessor(true, false); + $record = $processor($this->getRecord()); + $this->assertArrayHasKey('memory_peak_usage', $record['extra']); + $this->assertInternalType('int', $record['extra']['memory_peak_usage']); + $this->assertGreaterThan(0, $record['extra']['memory_peak_usage']); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/MemoryUsageProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/MemoryUsageProcessorTest.php new file mode 100644 index 00000000..4692dbfc --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Processor/MemoryUsageProcessorTest.php @@ -0,0 +1,42 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +use Monolog\TestCase; + +class MemoryUsageProcessorTest extends TestCase +{ + /** + * @covers Monolog\Processor\MemoryUsageProcessor::__invoke + * @covers Monolog\Processor\MemoryProcessor::formatBytes + */ + public function testProcessor() + { + $processor = new MemoryUsageProcessor(); + $record = $processor($this->getRecord()); + $this->assertArrayHasKey('memory_usage', $record['extra']); + $this->assertRegExp('#[0-9.]+ (M|K)?B$#', $record['extra']['memory_usage']); + } + + /** + * @covers Monolog\Processor\MemoryUsageProcessor::__invoke + * @covers Monolog\Processor\MemoryProcessor::formatBytes + */ + public function testProcessorWithoutFormatting() + { + $processor = new MemoryUsageProcessor(true, false); + $record = $processor($this->getRecord()); + $this->assertArrayHasKey('memory_usage', $record['extra']); + $this->assertInternalType('int', $record['extra']['memory_usage']); + $this->assertGreaterThan(0, $record['extra']['memory_usage']); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/MercurialProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/MercurialProcessorTest.php new file mode 100644 index 00000000..11f2b35a --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Processor/MercurialProcessorTest.php @@ -0,0 +1,41 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +use Monolog\TestCase; + +class MercurialProcessorTest extends TestCase +{ + /** + * @covers Monolog\Processor\MercurialProcessor::__invoke + */ + public function testProcessor() + { + if (defined('PHP_WINDOWS_VERSION_BUILD')) { + exec("where hg 2>NUL", $output, $result); + } else { + exec("which hg 2>/dev/null >/dev/null", $output, $result); + } + if ($result != 0) { + $this->markTestSkipped('hg is missing'); + return; + } + + `hg init`; + $processor = new MercurialProcessor(); + $record = $processor($this->getRecord()); + + $this->assertArrayHasKey('hg', $record['extra']); + $this->assertTrue(!is_array($record['extra']['hg']['branch'])); + $this->assertTrue(!is_array($record['extra']['hg']['revision'])); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/ProcessIdProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/ProcessIdProcessorTest.php new file mode 100644 index 00000000..458d2a33 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Processor/ProcessIdProcessorTest.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +use Monolog\TestCase; + +class ProcessIdProcessorTest extends TestCase +{ + /** + * @covers Monolog\Processor\ProcessIdProcessor::__invoke + */ + public function testProcessor() + { + $processor = new ProcessIdProcessor(); + $record = $processor($this->getRecord()); + $this->assertArrayHasKey('process_id', $record['extra']); + $this->assertInternalType('int', $record['extra']['process_id']); + $this->assertGreaterThan(0, $record['extra']['process_id']); + $this->assertEquals(getmypid(), $record['extra']['process_id']); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/PsrLogMessageProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/PsrLogMessageProcessorTest.php new file mode 100644 index 00000000..029a0c02 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Processor/PsrLogMessageProcessorTest.php @@ -0,0 +1,43 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +class PsrLogMessageProcessorTest extends \PHPUnit_Framework_TestCase +{ + /** + * @dataProvider getPairs + */ + public function testReplacement($val, $expected) + { + $proc = new PsrLogMessageProcessor; + + $message = $proc(array( + 'message' => '{foo}', + 'context' => array('foo' => $val), + )); + $this->assertEquals($expected, $message['message']); + } + + public function getPairs() + { + return array( + array('foo', 'foo'), + array('3', '3'), + array(3, '3'), + array(null, ''), + array(true, '1'), + array(false, ''), + array(new \stdClass, '[object stdClass]'), + array(array(), '[array]'), + ); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/TagProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/TagProcessorTest.php new file mode 100644 index 00000000..0d860c61 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Processor/TagProcessorTest.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +use Monolog\TestCase; + +class TagProcessorTest extends TestCase +{ + /** + * @covers Monolog\Processor\TagProcessor::__invoke + */ + public function testProcessor() + { + $tags = array(1, 2, 3); + $processor = new TagProcessor($tags); + $record = $processor($this->getRecord()); + + $this->assertEquals($tags, $record['extra']['tags']); + } + + /** + * @covers Monolog\Processor\TagProcessor::__invoke + */ + public function testProcessorTagModification() + { + $tags = array(1, 2, 3); + $processor = new TagProcessor($tags); + + $record = $processor($this->getRecord()); + $this->assertEquals($tags, $record['extra']['tags']); + + $processor->setTags(array('a', 'b')); + $record = $processor($this->getRecord()); + $this->assertEquals(array('a', 'b'), $record['extra']['tags']); + + $processor->addTags(array('a', 'c', 'foo' => 'bar')); + $record = $processor($this->getRecord()); + $this->assertEquals(array('a', 'b', 'a', 'c', 'foo' => 'bar'), $record['extra']['tags']); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/UidProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/UidProcessorTest.php new file mode 100644 index 00000000..5d13058f --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Processor/UidProcessorTest.php @@ -0,0 +1,33 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +use Monolog\TestCase; + +class UidProcessorTest extends TestCase +{ + /** + * @covers Monolog\Processor\UidProcessor::__invoke + */ + public function testProcessor() + { + $processor = new UidProcessor(); + $record = $processor($this->getRecord()); + $this->assertArrayHasKey('uid', $record['extra']); + } + + public function testGetUid() + { + $processor = new UidProcessor(10); + $this->assertEquals(10, strlen($processor->getUid())); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/Processor/WebProcessorTest.php b/vendor/monolog/monolog/tests/Monolog/Processor/WebProcessorTest.php new file mode 100644 index 00000000..4105baf7 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/Processor/WebProcessorTest.php @@ -0,0 +1,113 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +use Monolog\TestCase; + +class WebProcessorTest extends TestCase +{ + public function testProcessor() + { + $server = array( + 'REQUEST_URI' => 'A', + 'REMOTE_ADDR' => 'B', + 'REQUEST_METHOD' => 'C', + 'HTTP_REFERER' => 'D', + 'SERVER_NAME' => 'F', + 'UNIQUE_ID' => 'G', + ); + + $processor = new WebProcessor($server); + $record = $processor($this->getRecord()); + $this->assertEquals($server['REQUEST_URI'], $record['extra']['url']); + $this->assertEquals($server['REMOTE_ADDR'], $record['extra']['ip']); + $this->assertEquals($server['REQUEST_METHOD'], $record['extra']['http_method']); + $this->assertEquals($server['HTTP_REFERER'], $record['extra']['referrer']); + $this->assertEquals($server['SERVER_NAME'], $record['extra']['server']); + $this->assertEquals($server['UNIQUE_ID'], $record['extra']['unique_id']); + } + + public function testProcessorDoNothingIfNoRequestUri() + { + $server = array( + 'REMOTE_ADDR' => 'B', + 'REQUEST_METHOD' => 'C', + ); + $processor = new WebProcessor($server); + $record = $processor($this->getRecord()); + $this->assertEmpty($record['extra']); + } + + public function testProcessorReturnNullIfNoHttpReferer() + { + $server = array( + 'REQUEST_URI' => 'A', + 'REMOTE_ADDR' => 'B', + 'REQUEST_METHOD' => 'C', + 'SERVER_NAME' => 'F', + ); + $processor = new WebProcessor($server); + $record = $processor($this->getRecord()); + $this->assertNull($record['extra']['referrer']); + } + + public function testProcessorDoesNotAddUniqueIdIfNotPresent() + { + $server = array( + 'REQUEST_URI' => 'A', + 'REMOTE_ADDR' => 'B', + 'REQUEST_METHOD' => 'C', + 'SERVER_NAME' => 'F', + ); + $processor = new WebProcessor($server); + $record = $processor($this->getRecord()); + $this->assertFalse(isset($record['extra']['unique_id'])); + } + + public function testProcessorAddsOnlyRequestedExtraFields() + { + $server = array( + 'REQUEST_URI' => 'A', + 'REMOTE_ADDR' => 'B', + 'REQUEST_METHOD' => 'C', + 'SERVER_NAME' => 'F', + ); + + $processor = new WebProcessor($server, array('url', 'http_method')); + $record = $processor($this->getRecord()); + + $this->assertSame(array('url' => 'A', 'http_method' => 'C'), $record['extra']); + } + + public function testProcessorConfiguringOfExtraFields() + { + $server = array( + 'REQUEST_URI' => 'A', + 'REMOTE_ADDR' => 'B', + 'REQUEST_METHOD' => 'C', + 'SERVER_NAME' => 'F', + ); + + $processor = new WebProcessor($server, array('url' => 'REMOTE_ADDR')); + $record = $processor($this->getRecord()); + + $this->assertSame(array('url' => 'B'), $record['extra']); + } + + /** + * @expectedException UnexpectedValueException + */ + public function testInvalidData() + { + new WebProcessor(new \stdClass); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/PsrLogCompatTest.php b/vendor/monolog/monolog/tests/Monolog/PsrLogCompatTest.php new file mode 100644 index 00000000..ab899449 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/PsrLogCompatTest.php @@ -0,0 +1,47 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog; + +use Monolog\Handler\TestHandler; +use Monolog\Formatter\LineFormatter; +use Monolog\Processor\PsrLogMessageProcessor; +use Psr\Log\Test\LoggerInterfaceTest; + +class PsrLogCompatTest extends LoggerInterfaceTest +{ + private $handler; + + public function getLogger() + { + $logger = new Logger('foo'); + $logger->pushHandler($handler = new TestHandler); + $logger->pushProcessor(new PsrLogMessageProcessor); + $handler->setFormatter(new LineFormatter('%level_name% %message%')); + + $this->handler = $handler; + + return $logger; + } + + public function getLogs() + { + $convert = function ($record) { + $lower = function ($match) { + return strtolower($match[0]); + }; + + return preg_replace_callback('{^[A-Z]+}', $lower, $record['formatted']); + }; + + return array_map($convert, $this->handler->getRecords()); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/RegistryTest.php b/vendor/monolog/monolog/tests/Monolog/RegistryTest.php new file mode 100644 index 00000000..15fdfbd2 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/RegistryTest.php @@ -0,0 +1,153 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog; + +class RegistryTest extends \PHPUnit_Framework_TestCase +{ + protected function setUp() + { + Registry::clear(); + } + + /** + * @dataProvider hasLoggerProvider + * @covers Monolog\Registry::hasLogger + */ + public function testHasLogger(array $loggersToAdd, array $loggersToCheck, array $expectedResult) + { + foreach ($loggersToAdd as $loggerToAdd) { + Registry::addLogger($loggerToAdd); + } + foreach ($loggersToCheck as $index => $loggerToCheck) { + $this->assertSame($expectedResult[$index], Registry::hasLogger($loggerToCheck)); + } + } + + public function hasLoggerProvider() + { + $logger1 = new Logger('test1'); + $logger2 = new Logger('test2'); + $logger3 = new Logger('test3'); + + return array( + // only instances + array( + array($logger1), + array($logger1, $logger2), + array(true, false), + ), + // only names + array( + array($logger1), + array('test1', 'test2'), + array(true, false), + ), + // mixed case + array( + array($logger1, $logger2), + array('test1', $logger2, 'test3', $logger3), + array(true, true, false, false), + ), + ); + } + + /** + * @covers Monolog\Registry::clear + */ + public function testClearClears() + { + Registry::addLogger(new Logger('test1'), 'log'); + Registry::clear(); + + $this->setExpectedException('\InvalidArgumentException'); + Registry::getInstance('log'); + } + + /** + * @dataProvider removedLoggerProvider + * @covers Monolog\Registry::addLogger + * @covers Monolog\Registry::removeLogger + */ + public function testRemovesLogger($loggerToAdd, $remove) + { + Registry::addLogger($loggerToAdd); + Registry::removeLogger($remove); + + $this->setExpectedException('\InvalidArgumentException'); + Registry::getInstance($loggerToAdd->getName()); + } + + public function removedLoggerProvider() + { + $logger1 = new Logger('test1'); + + return array( + array($logger1, $logger1), + array($logger1, 'test1'), + ); + } + + /** + * @covers Monolog\Registry::addLogger + * @covers Monolog\Registry::getInstance + * @covers Monolog\Registry::__callStatic + */ + public function testGetsSameLogger() + { + $logger1 = new Logger('test1'); + $logger2 = new Logger('test2'); + + Registry::addLogger($logger1, 'test1'); + Registry::addLogger($logger2); + + $this->assertSame($logger1, Registry::getInstance('test1')); + $this->assertSame($logger2, Registry::test2()); + } + + /** + * @expectedException \InvalidArgumentException + * @covers Monolog\Registry::getInstance + */ + public function testFailsOnNonExistantLogger() + { + Registry::getInstance('test1'); + } + + /** + * @covers Monolog\Registry::addLogger + */ + public function testReplacesLogger() + { + $log1 = new Logger('test1'); + $log2 = new Logger('test2'); + + Registry::addLogger($log1, 'log'); + + Registry::addLogger($log2, 'log', true); + + $this->assertSame($log2, Registry::getInstance('log')); + } + + /** + * @expectedException \InvalidArgumentException + * @covers Monolog\Registry::addLogger + */ + public function testFailsOnUnspecifiedReplacement() + { + $log1 = new Logger('test1'); + $log2 = new Logger('test2'); + + Registry::addLogger($log1, 'log'); + + Registry::addLogger($log2, 'log'); + } +} diff --git a/vendor/monolog/monolog/tests/Monolog/SignalHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/SignalHandlerTest.php new file mode 100644 index 00000000..9fa07929 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/SignalHandlerTest.php @@ -0,0 +1,287 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog; + +use Monolog\Handler\StreamHandler; +use Monolog\Handler\TestHandler; +use Psr\Log\LogLevel; + +/** + * @author Robert Gust-Bardon + * @covers Monolog\SignalHandler + */ +class SignalHandlerTest extends TestCase +{ + + private $asyncSignalHandling; + private $blockedSignals; + private $signalHandlers; + + protected function setUp() + { + $this->signalHandlers = array(); + if (extension_loaded('pcntl')) { + if (function_exists('pcntl_async_signals')) { + $this->asyncSignalHandling = pcntl_async_signals(); + } + if (function_exists('pcntl_sigprocmask')) { + pcntl_sigprocmask(SIG_BLOCK, array(), $this->blockedSignals); + } + } + } + + protected function tearDown() + { + if ($this->asyncSignalHandling !== null) { + pcntl_async_signals($this->asyncSignalHandling); + } + if ($this->blockedSignals !== null) { + pcntl_sigprocmask(SIG_SETMASK, $this->blockedSignals); + } + if ($this->signalHandlers) { + pcntl_signal_dispatch(); + foreach ($this->signalHandlers as $signo => $handler) { + pcntl_signal($signo, $handler); + } + } + } + + private function setSignalHandler($signo, $handler = SIG_DFL) { + if (function_exists('pcntl_signal_get_handler')) { + $this->signalHandlers[$signo] = pcntl_signal_get_handler($signo); + } else { + $this->signalHandlers[$signo] = SIG_DFL; + } + $this->assertTrue(pcntl_signal($signo, $handler)); + } + + public function testHandleSignal() + { + $logger = new Logger('test', array($handler = new TestHandler)); + $errHandler = new SignalHandler($logger); + $signo = 2; // SIGINT. + $siginfo = array('signo' => $signo, 'errno' => 0, 'code' => 0); + $errHandler->handleSignal($signo, $siginfo); + $this->assertCount(1, $handler->getRecords()); + $this->assertTrue($handler->hasCriticalRecords()); + $records = $handler->getRecords(); + $this->assertSame($siginfo, $records[0]['context']); + } + + /** + * @depends testHandleSignal + * @requires extension pcntl + * @requires extension posix + * @requires function pcntl_signal + * @requires function pcntl_signal_dispatch + * @requires function posix_getpid + * @requires function posix_kill + */ + public function testRegisterSignalHandler() + { + // SIGCONT and SIGURG should be ignored by default. + if (!defined('SIGCONT') || !defined('SIGURG')) { + $this->markTestSkipped('This test requires the SIGCONT and SIGURG pcntl constants.'); + } + + $this->setSignalHandler(SIGCONT, SIG_IGN); + $this->setSignalHandler(SIGURG, SIG_IGN); + + $logger = new Logger('test', array($handler = new TestHandler)); + $errHandler = new SignalHandler($logger); + $pid = posix_getpid(); + + $this->assertTrue(posix_kill($pid, SIGURG)); + $this->assertTrue(pcntl_signal_dispatch()); + $this->assertCount(0, $handler->getRecords()); + + $errHandler->registerSignalHandler(SIGURG, LogLevel::INFO, false, false, false); + + $this->assertTrue(posix_kill($pid, SIGCONT)); + $this->assertTrue(pcntl_signal_dispatch()); + $this->assertCount(0, $handler->getRecords()); + + $this->assertTrue(posix_kill($pid, SIGURG)); + $this->assertTrue(pcntl_signal_dispatch()); + $this->assertCount(1, $handler->getRecords()); + $this->assertTrue($handler->hasInfoThatContains('SIGURG')); + } + + /** + * @dataProvider defaultPreviousProvider + * @depends testRegisterSignalHandler + * @requires function pcntl_fork + * @requires function pcntl_sigprocmask + * @requires function pcntl_waitpid + */ + public function testRegisterDefaultPreviousSignalHandler($signo, $callPrevious, $expected) + { + $this->setSignalHandler($signo, SIG_DFL); + + $path = tempnam(sys_get_temp_dir(), 'monolog-'); + $this->assertNotFalse($path); + + $pid = pcntl_fork(); + if ($pid === 0) { // Child. + $streamHandler = new StreamHandler($path); + $streamHandler->setFormatter($this->getIdentityFormatter()); + $logger = new Logger('test', array($streamHandler)); + $errHandler = new SignalHandler($logger); + $errHandler->registerSignalHandler($signo, LogLevel::INFO, $callPrevious, false, false); + pcntl_sigprocmask(SIG_SETMASK, array(SIGCONT)); + posix_kill(posix_getpid(), $signo); + pcntl_signal_dispatch(); + // If $callPrevious is true, SIGINT should terminate by this line. + pcntl_sigprocmask(SIG_BLOCK, array(), $oldset); + file_put_contents($path, implode(' ', $oldset), FILE_APPEND); + posix_kill(posix_getpid(), $signo); + pcntl_signal_dispatch(); + exit(); + } + + $this->assertNotSame(-1, $pid); + $this->assertNotSame(-1, pcntl_waitpid($pid, $status)); + $this->assertNotSame(-1, $status); + $this->assertSame($expected, file_get_contents($path)); + } + + public function defaultPreviousProvider() + { + if (!defined('SIGCONT') || !defined('SIGINT') || !defined('SIGURG')) { + return array(); + } + + return array( + array(SIGINT, false, 'Program received signal SIGINT'.SIGCONT.'Program received signal SIGINT'), + array(SIGINT, true, 'Program received signal SIGINT'), + array(SIGURG, false, 'Program received signal SIGURG'.SIGCONT.'Program received signal SIGURG'), + array(SIGURG, true, 'Program received signal SIGURG'.SIGCONT.'Program received signal SIGURG'), + ); + } + + /** + * @dataProvider callablePreviousProvider + * @depends testRegisterSignalHandler + * @requires function pcntl_signal_get_handler + */ + public function testRegisterCallablePreviousSignalHandler($callPrevious) + { + $this->setSignalHandler(SIGURG, SIG_IGN); + + $logger = new Logger('test', array($handler = new TestHandler)); + $errHandler = new SignalHandler($logger); + $previousCalled = 0; + pcntl_signal(SIGURG, function ($signo, array $siginfo = null) use (&$previousCalled) { + ++$previousCalled; + }); + $errHandler->registerSignalHandler(SIGURG, LogLevel::INFO, $callPrevious, false, false); + $this->assertTrue(posix_kill(posix_getpid(), SIGURG)); + $this->assertTrue(pcntl_signal_dispatch()); + $this->assertCount(1, $handler->getRecords()); + $this->assertTrue($handler->hasInfoThatContains('SIGURG')); + $this->assertSame($callPrevious ? 1 : 0, $previousCalled); + } + + public function callablePreviousProvider() + { + return array( + array(false), + array(true), + ); + } + + /** + * @dataProvider restartSyscallsProvider + * @depends testRegisterDefaultPreviousSignalHandler + * @requires function pcntl_fork + * @requires function pcntl_waitpid + */ + public function testRegisterSyscallRestartingSignalHandler($restartSyscalls) + { + $this->setSignalHandler(SIGURG, SIG_IGN); + + $parentPid = posix_getpid(); + $microtime = microtime(true); + + $pid = pcntl_fork(); + if ($pid === 0) { // Child. + usleep(100000); + posix_kill($parentPid, SIGURG); + usleep(100000); + exit(); + } + + $this->assertNotSame(-1, $pid); + $logger = new Logger('test', array($handler = new TestHandler)); + $errHandler = new SignalHandler($logger); + $errHandler->registerSignalHandler(SIGURG, LogLevel::INFO, false, $restartSyscalls, false); + if ($restartSyscalls) { + // pcntl_wait is expected to be restarted after the signal handler. + $this->assertNotSame(-1, pcntl_waitpid($pid, $status)); + } else { + // pcntl_wait is expected to be interrupted when the signal handler is invoked. + $this->assertSame(-1, pcntl_waitpid($pid, $status)); + } + $this->assertSame($restartSyscalls, microtime(true) - $microtime > 0.15); + $this->assertTrue(pcntl_signal_dispatch()); + $this->assertCount(1, $handler->getRecords()); + if ($restartSyscalls) { + // The child has already exited. + $this->assertSame(-1, pcntl_waitpid($pid, $status)); + } else { + // The child has not exited yet. + $this->assertNotSame(-1, pcntl_waitpid($pid, $status)); + } + } + + public function restartSyscallsProvider() + { + return array( + array(false), + array(true), + array(false), + array(true), + ); + } + + /** + * @dataProvider asyncProvider + * @depends testRegisterDefaultPreviousSignalHandler + * @requires function pcntl_async_signals + */ + public function testRegisterAsyncSignalHandler($initialAsync, $desiredAsync, $expectedBefore, $expectedAfter) + { + $this->setSignalHandler(SIGURG, SIG_IGN); + pcntl_async_signals($initialAsync); + + $logger = new Logger('test', array($handler = new TestHandler)); + $errHandler = new SignalHandler($logger); + $errHandler->registerSignalHandler(SIGURG, LogLevel::INFO, false, false, $desiredAsync); + $this->assertTrue(posix_kill(posix_getpid(), SIGURG)); + $this->assertCount($expectedBefore, $handler->getRecords()); + $this->assertTrue(pcntl_signal_dispatch()); + $this->assertCount($expectedAfter, $handler->getRecords()); + } + + public function asyncProvider() + { + return array( + array(false, false, 0, 1), + array(false, null, 0, 1), + array(false, true, 1, 1), + array(true, false, 0, 1), + array(true, null, 1, 1), + array(true, true, 1, 1), + ); + } + +} diff --git a/vendor/monolog/monolog/tests/Monolog/TestCase.php b/vendor/monolog/monolog/tests/Monolog/TestCase.php new file mode 100644 index 00000000..4eb7b4c9 --- /dev/null +++ b/vendor/monolog/monolog/tests/Monolog/TestCase.php @@ -0,0 +1,58 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog; + +class TestCase extends \PHPUnit_Framework_TestCase +{ + /** + * @return array Record + */ + protected function getRecord($level = Logger::WARNING, $message = 'test', $context = array()) + { + return array( + 'message' => $message, + 'context' => $context, + 'level' => $level, + 'level_name' => Logger::getLevelName($level), + 'channel' => 'test', + 'datetime' => \DateTime::createFromFormat('U.u', sprintf('%.6F', microtime(true))), + 'extra' => array(), + ); + } + + /** + * @return array + */ + protected function getMultipleRecords() + { + return array( + $this->getRecord(Logger::DEBUG, 'debug message 1'), + $this->getRecord(Logger::DEBUG, 'debug message 2'), + $this->getRecord(Logger::INFO, 'information'), + $this->getRecord(Logger::WARNING, 'warning'), + $this->getRecord(Logger::ERROR, 'error'), + ); + } + + /** + * @return Monolog\Formatter\FormatterInterface + */ + protected function getIdentityFormatter() + { + $formatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); + $formatter->expects($this->any()) + ->method('format') + ->will($this->returnCallback(function ($record) { return $record['message']; })); + + return $formatter; + } +} diff --git a/vendor/psr/log/LICENSE b/vendor/psr/log/LICENSE new file mode 100644 index 00000000..474c952b --- /dev/null +++ b/vendor/psr/log/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2012 PHP Framework Interoperability Group + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/psr/log/Psr/Log/AbstractLogger.php b/vendor/psr/log/Psr/Log/AbstractLogger.php new file mode 100644 index 00000000..90e721af --- /dev/null +++ b/vendor/psr/log/Psr/Log/AbstractLogger.php @@ -0,0 +1,128 @@ +log(LogLevel::EMERGENCY, $message, $context); + } + + /** + * Action must be taken immediately. + * + * Example: Entire website down, database unavailable, etc. This should + * trigger the SMS alerts and wake you up. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function alert($message, array $context = array()) + { + $this->log(LogLevel::ALERT, $message, $context); + } + + /** + * Critical conditions. + * + * Example: Application component unavailable, unexpected exception. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function critical($message, array $context = array()) + { + $this->log(LogLevel::CRITICAL, $message, $context); + } + + /** + * Runtime errors that do not require immediate action but should typically + * be logged and monitored. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function error($message, array $context = array()) + { + $this->log(LogLevel::ERROR, $message, $context); + } + + /** + * Exceptional occurrences that are not errors. + * + * Example: Use of deprecated APIs, poor use of an API, undesirable things + * that are not necessarily wrong. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function warning($message, array $context = array()) + { + $this->log(LogLevel::WARNING, $message, $context); + } + + /** + * Normal but significant events. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function notice($message, array $context = array()) + { + $this->log(LogLevel::NOTICE, $message, $context); + } + + /** + * Interesting events. + * + * Example: User logs in, SQL logs. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function info($message, array $context = array()) + { + $this->log(LogLevel::INFO, $message, $context); + } + + /** + * Detailed debug information. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function debug($message, array $context = array()) + { + $this->log(LogLevel::DEBUG, $message, $context); + } +} diff --git a/vendor/psr/log/Psr/Log/InvalidArgumentException.php b/vendor/psr/log/Psr/Log/InvalidArgumentException.php new file mode 100644 index 00000000..67f852d1 --- /dev/null +++ b/vendor/psr/log/Psr/Log/InvalidArgumentException.php @@ -0,0 +1,7 @@ +logger = $logger; + } +} diff --git a/vendor/psr/log/Psr/Log/LoggerInterface.php b/vendor/psr/log/Psr/Log/LoggerInterface.php new file mode 100644 index 00000000..5ea72438 --- /dev/null +++ b/vendor/psr/log/Psr/Log/LoggerInterface.php @@ -0,0 +1,123 @@ +log(LogLevel::EMERGENCY, $message, $context); + } + + /** + * Action must be taken immediately. + * + * Example: Entire website down, database unavailable, etc. This should + * trigger the SMS alerts and wake you up. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function alert($message, array $context = array()) + { + $this->log(LogLevel::ALERT, $message, $context); + } + + /** + * Critical conditions. + * + * Example: Application component unavailable, unexpected exception. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function critical($message, array $context = array()) + { + $this->log(LogLevel::CRITICAL, $message, $context); + } + + /** + * Runtime errors that do not require immediate action but should typically + * be logged and monitored. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function error($message, array $context = array()) + { + $this->log(LogLevel::ERROR, $message, $context); + } + + /** + * Exceptional occurrences that are not errors. + * + * Example: Use of deprecated APIs, poor use of an API, undesirable things + * that are not necessarily wrong. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function warning($message, array $context = array()) + { + $this->log(LogLevel::WARNING, $message, $context); + } + + /** + * Normal but significant events. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function notice($message, array $context = array()) + { + $this->log(LogLevel::NOTICE, $message, $context); + } + + /** + * Interesting events. + * + * Example: User logs in, SQL logs. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function info($message, array $context = array()) + { + $this->log(LogLevel::INFO, $message, $context); + } + + /** + * Detailed debug information. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function debug($message, array $context = array()) + { + $this->log(LogLevel::DEBUG, $message, $context); + } + + /** + * Logs with an arbitrary level. + * + * @param mixed $level + * @param string $message + * @param array $context + * + * @return void + */ + abstract public function log($level, $message, array $context = array()); +} diff --git a/vendor/psr/log/Psr/Log/NullLogger.php b/vendor/psr/log/Psr/Log/NullLogger.php new file mode 100644 index 00000000..d8cd682c --- /dev/null +++ b/vendor/psr/log/Psr/Log/NullLogger.php @@ -0,0 +1,28 @@ +logger) { }` + * blocks. + */ +class NullLogger extends AbstractLogger +{ + /** + * Logs with an arbitrary level. + * + * @param mixed $level + * @param string $message + * @param array $context + * + * @return void + */ + public function log($level, $message, array $context = array()) + { + // noop + } +} diff --git a/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php b/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php new file mode 100644 index 00000000..a0391a52 --- /dev/null +++ b/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php @@ -0,0 +1,140 @@ + ". + * + * Example ->error('Foo') would yield "error Foo". + * + * @return string[] + */ + abstract public function getLogs(); + + public function testImplements() + { + $this->assertInstanceOf('Psr\Log\LoggerInterface', $this->getLogger()); + } + + /** + * @dataProvider provideLevelsAndMessages + */ + public function testLogsAtAllLevels($level, $message) + { + $logger = $this->getLogger(); + $logger->{$level}($message, array('user' => 'Bob')); + $logger->log($level, $message, array('user' => 'Bob')); + + $expected = array( + $level.' message of level '.$level.' with context: Bob', + $level.' message of level '.$level.' with context: Bob', + ); + $this->assertEquals($expected, $this->getLogs()); + } + + public function provideLevelsAndMessages() + { + return array( + LogLevel::EMERGENCY => array(LogLevel::EMERGENCY, 'message of level emergency with context: {user}'), + LogLevel::ALERT => array(LogLevel::ALERT, 'message of level alert with context: {user}'), + LogLevel::CRITICAL => array(LogLevel::CRITICAL, 'message of level critical with context: {user}'), + LogLevel::ERROR => array(LogLevel::ERROR, 'message of level error with context: {user}'), + LogLevel::WARNING => array(LogLevel::WARNING, 'message of level warning with context: {user}'), + LogLevel::NOTICE => array(LogLevel::NOTICE, 'message of level notice with context: {user}'), + LogLevel::INFO => array(LogLevel::INFO, 'message of level info with context: {user}'), + LogLevel::DEBUG => array(LogLevel::DEBUG, 'message of level debug with context: {user}'), + ); + } + + /** + * @expectedException \Psr\Log\InvalidArgumentException + */ + public function testThrowsOnInvalidLevel() + { + $logger = $this->getLogger(); + $logger->log('invalid level', 'Foo'); + } + + public function testContextReplacement() + { + $logger = $this->getLogger(); + $logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar')); + + $expected = array('info {Message {nothing} Bob Bar a}'); + $this->assertEquals($expected, $this->getLogs()); + } + + public function testObjectCastToString() + { + if (method_exists($this, 'createPartialMock')) { + $dummy = $this->createPartialMock('Psr\Log\Test\DummyTest', array('__toString')); + } else { + $dummy = $this->getMock('Psr\Log\Test\DummyTest', array('__toString')); + } + $dummy->expects($this->once()) + ->method('__toString') + ->will($this->returnValue('DUMMY')); + + $this->getLogger()->warning($dummy); + + $expected = array('warning DUMMY'); + $this->assertEquals($expected, $this->getLogs()); + } + + public function testContextCanContainAnything() + { + $context = array( + 'bool' => true, + 'null' => null, + 'string' => 'Foo', + 'int' => 0, + 'float' => 0.5, + 'nested' => array('with object' => new DummyTest), + 'object' => new \DateTime, + 'resource' => fopen('php://memory', 'r'), + ); + + $this->getLogger()->warning('Crazy context data', $context); + + $expected = array('warning Crazy context data'); + $this->assertEquals($expected, $this->getLogs()); + } + + public function testContextExceptionKeyCanBeExceptionOrOtherValues() + { + $logger = $this->getLogger(); + $logger->warning('Random message', array('exception' => 'oops')); + $logger->critical('Uncaught Exception!', array('exception' => new \LogicException('Fail'))); + + $expected = array( + 'warning Random message', + 'critical Uncaught Exception!' + ); + $this->assertEquals($expected, $this->getLogs()); + } +} + +class DummyTest +{ + public function __toString() + { + } +} diff --git a/vendor/psr/log/README.md b/vendor/psr/log/README.md new file mode 100644 index 00000000..574bc1cb --- /dev/null +++ b/vendor/psr/log/README.md @@ -0,0 +1,45 @@ +PSR Log +======= + +This repository holds all interfaces/classes/traits related to +[PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md). + +Note that this is not a logger of its own. It is merely an interface that +describes a logger. See the specification for more details. + +Usage +----- + +If you need a logger, you can use the interface like this: + +```php +logger = $logger; + } + + public function doSomething() + { + if ($this->logger) { + $this->logger->info('Doing work'); + } + + // do something useful + } +} +``` + +You can then pick one of the implementations of the interface to get a logger. + +If you want to implement the interface, you can require this package and +implement `Psr\Log\LoggerInterface` in your code. Please read the +[specification text](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md) +for details. diff --git a/vendor/psr/log/composer.json b/vendor/psr/log/composer.json new file mode 100644 index 00000000..87934d70 --- /dev/null +++ b/vendor/psr/log/composer.json @@ -0,0 +1,26 @@ +{ + "name": "psr/log", + "description": "Common interface for logging libraries", + "keywords": ["psr", "psr-3", "log"], + "homepage": "https://github.com/php-fig/log", + "license": "MIT", + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "require": { + "php": ">=5.3.0" + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + } +}