@gravitee/ui-components 3.21.7 → 3.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +22 -21
- package/src/atoms/gv-autocomplete.js +5 -6
- package/src/atoms/gv-button.js +4 -4
- package/src/atoms/gv-checkbox.js +3 -3
- package/src/atoms/gv-date-picker-calendar.js +4 -5
- package/src/atoms/gv-date-picker-cell.js +4 -4
- package/src/atoms/gv-date-picker.js +4 -5
- package/src/atoms/gv-file-upload.js +4 -5
- package/src/atoms/gv-icon.js +14 -7
- package/src/atoms/gv-image.js +4 -4
- package/src/atoms/gv-input-message.js +2 -3
- package/src/atoms/gv-input.js +3 -3
- package/src/atoms/gv-link.js +6 -6
- package/src/atoms/gv-message.js +3 -3
- package/src/atoms/gv-metric.js +3 -3
- package/src/atoms/gv-relative-time.js +6 -4
- package/src/atoms/gv-select-native.js +288 -0
- package/src/atoms/gv-select.js +10 -8
- package/src/atoms/gv-spinner.js +2 -2
- package/src/atoms/gv-state.js +3 -3
- package/src/atoms/gv-switch.js +4 -4
- package/src/atoms/gv-tag.js +3 -3
- package/src/atoms/gv-text.js +4 -4
- package/src/charts/gv-chart-bar.js +2 -2
- package/src/charts/gv-chart-gauge.js +2 -2
- package/src/charts/gv-chart-histogram.js +2 -2
- package/src/charts/gv-chart-line.js +2 -2
- package/src/charts/gv-chart-map.js +2 -2
- package/src/charts/gv-chart-pie.js +2 -2
- package/src/index.js +2 -1
- package/src/lib/item.js +2 -2
- package/src/lib/studio.js +3 -3
- package/src/mixins/chart-element.js +3 -4
- package/src/mixins/input-element.js +4 -4
- package/src/mixins/item-resource.js +3 -3
- package/src/mixins/with-skeleton-attribute.js +2 -2
- package/src/molecules/gv-card-full.js +7 -6
- package/src/molecules/gv-card-list.js +3 -4
- package/src/molecules/gv-card.js +3 -3
- package/src/molecules/gv-category-list.js +2 -3
- package/src/molecules/gv-category.js +3 -3
- package/src/molecules/gv-code-hint.js +2 -3
- package/src/molecules/gv-code.js +3 -3
- package/src/molecules/gv-confirm.js +2 -3
- package/src/molecules/gv-cron-editor.js +3 -3
- package/src/molecules/gv-dropdown-menu.js +2 -3
- package/src/molecules/gv-expandable.js +3 -3
- package/src/molecules/gv-expression-language.js +2 -3
- package/src/molecules/gv-identity-picture.js +3 -4
- package/src/molecules/gv-list.js +4 -4
- package/src/molecules/gv-metrics.js +4 -4
- package/src/molecules/gv-modal.js +2 -2
- package/src/molecules/gv-nav.js +5 -5
- package/src/molecules/gv-option.js +6 -6
- package/src/molecules/gv-plans.js +5 -6
- package/src/molecules/gv-popover.js +3 -4
- package/src/molecules/gv-promote.js +7 -6
- package/src/molecules/gv-rating-list.js +4 -5
- package/src/molecules/gv-rating.js +4 -4
- package/src/molecules/gv-row-expandable.js +2 -2
- package/src/molecules/gv-row.js +3 -3
- package/src/molecules/gv-stats.js +4 -4
- package/src/molecules/gv-stepper.js +4 -4
- package/src/molecules/gv-table.js +7 -8
- package/src/molecules/gv-tree.js +4 -4
- package/src/organisms/gv-documentation.js +2 -2
- package/src/organisms/gv-header.js +6 -6
- package/src/organisms/gv-http-client.js +2 -2
- package/src/organisms/gv-menu.js +3 -3
- package/src/organisms/gv-newsletter-subscription.js +2 -2
- package/src/organisms/gv-pagination.js +2 -2
- package/src/organisms/gv-properties.js +3 -3
- package/src/organisms/gv-resizable-views.js +3 -4
- package/src/organisms/gv-resources.js +2 -2
- package/src/organisms/gv-schema-form-array.js +5 -5
- package/src/organisms/gv-schema-form-control-object.js +5 -5
- package/src/organisms/gv-schema-form-control.js +11 -11
- package/src/organisms/gv-schema-form.js +8 -7
- package/src/organisms/gv-tabs.js +2 -3
- package/src/organisms/gv-user-menu.js +4 -4
- package/src/organisms/gv-vertical-menu.js +2 -2
- package/src/policy-studio/gv-flow-step.js +3 -3
- package/src/policy-studio/gv-flow.js +5 -5
- package/src/policy-studio/gv-policy-studio-menu.js +4 -4
- package/src/policy-studio/gv-policy-studio.js +5 -5
- package/src/styles/empty.js +2 -2
- package/src/styles/input.js +3 -3
- package/src/styles/link.js +2 -2
- package/src/styles/skeleton.js +2 -2
- package/src/styles/zoom.js +2 -2
- package/src/theme/gv-theme.js +2 -2
- package/wc/gv-select-native.js +1 -0
|
@@ -15,12 +15,11 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import './gv-date-picker-cell';
|
|
17
17
|
import { addDays, addMonths, addYears, endOfMonth, format, getDay, getMonth, getYear, isAfter, isBefore, parse, setHours, setMinutes, startOfDay, subMonths, subYears } from 'date-fns';
|
|
18
|
-
import { classMap } from 'lit
|
|
18
|
+
import { classMap } from 'lit/directives/class-map';
|
|
19
19
|
import { dispatchCustomEvent } from '../lib/events';
|
|
20
20
|
import { i18n } from '../lib/i18n';
|
|
21
|
-
import { LitElement, css } from 'lit
|
|
22
|
-
import {
|
|
23
|
-
import { until } from 'lit-html/directives/until';
|
|
21
|
+
import { LitElement, css, html } from 'lit';
|
|
22
|
+
import { until } from 'lit/directives/until';
|
|
24
23
|
/**
|
|
25
24
|
* Date Picker Calendar
|
|
26
25
|
*
|
|
@@ -811,4 +810,4 @@ export class GvDatePickerCalendar extends LitElement {
|
|
|
811
810
|
|
|
812
811
|
}
|
|
813
812
|
window.customElements.define('gv-date-picker-calendar', GvDatePickerCalendar);
|
|
814
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2F0b21zL2d2LWRhdGUtcGlja2VyLWNhbGVuZGFyLmpzIl0sIm5hbWVzIjpbImFkZERheXMiLCJhZGRNb250aHMiLCJhZGRZZWFycyIsImVuZE9mTW9udGgiLCJmb3JtYXQiLCJnZXREYXkiLCJnZXRNb250aCIsImdldFllYXIiLCJpc0FmdGVyIiwiaXNCZWZvcmUiLCJwYXJzZSIsInNldEhvdXJzIiwic2V0TWludXRlcyIsInN0YXJ0T2ZEYXkiLCJzdWJNb250aHMiLCJzdWJZZWFycyIsImNsYXNzTWFwIiwiZGlzcGF0Y2hDdXN0b21FdmVudCIsImkxOG4iLCJMaXRFbGVtZW50IiwiY3NzIiwiaHRtbCIsInVudGlsIiwiR3ZEYXRlUGlja2VyQ2FsZW5kYXIiLCJwcm9wZXJ0aWVzIiwiZGF0ZUZyb20iLCJ0eXBlIiwiTnVtYmVyIiwiZGF0ZVRvIiwiZGlzYWJsZWREYXRlcyIsIkFycmF5IiwiaG92ZXJlZERhdGUiLCJsb2NhbGUiLCJPYmplY3QiLCJtYXgiLCJtaW4iLCJtb250aCIsIlN0cmluZyIsIm1vbnRoTW9kZSIsIkJvb2xlYW4iLCJuZXh0IiwicHJldiIsInJhbmdlIiwidGltZSIsInNtYWxsIiwicmVmbGVjdCIsInN0cmljdCIsInllYXIiLCJ5ZWFyTW9kZSIsIl9kYXlOYW1lc09mV2VlayIsImF0dHJpYnV0ZSIsIl9kaW1lbnNpb25zIiwiX2hhc0dvVG9kYXkiLCJfaG91ciIsIl9taW51dGUiLCJfc2Vjb25kIiwiX21vbnRoc0xpc3QiLCJfbG9jYWxlIiwiX2Zyb20iLCJfdG8iLCJzdHlsZXMiLCJjb25zdHJ1Y3RvciIsImN1cnJlbnREYXRlIiwicGFyc2VJbnQiLCJEYXRlIiwibm93IiwiX2hvdXJzIiwiY29tcHV0ZUFycmF5T2ZUaW1lIiwiX21pbnV0ZXMiLCJfc2Vjb25kcyIsInZhbHVlIiwiZGF0ZSIsImlzU3RyaWN0VGltZSIsInNpemUiLCJmaWxsIiwibWFwIiwiYSIsImkiLCJ0b1N0cmluZyIsImxlbmd0aCIsIl9yZW5kZXJQcmV2aW91c05hdiIsIl9vblByZXZZZWFyIiwiX29uUHJldk1vbnRoIiwiX3JlbmRlckN1cnJlbnROYXYiLCJfb25TZWxlY3RNb250aCIsImNvbXB1dGVOYW1lIiwiX29uU2VsZWN0WWVhciIsImNvbXB1dGVDdXJyZW50WWVhck5hbWUiLCJfcmVuZGVyTmV4dE5hdiIsIl9vbk5leHRNb250aCIsIl9vbk5leHRZZWFyIiwiX3JlbmRlckRheXMiLCJkYXlOYW1lT2ZXZWVrIiwiZGltZW5zaW9uIiwiZGF0YSIsImlzQ3VycmVudERhdGUiLCJfb25Ib3ZlciIsIl9vblNlbGVjdCIsInJlbmRlciIsImNsYXNzZXMiLCJnZXRUaW1lIiwidmFsIiwiX29uU2VsZWN0SG91ciIsImJpbmQiLCJob3VyIiwic2VsZWN0ZWQiLCJkaXNhYmxlZCIsImlzSG91cnNEaXNhYmxlZCIsIl9vblNlbGVjdE1pbnV0ZSIsIm1pbnV0ZSIsImlzTWludXRlc0Rpc2FibGVkIiwiX29uU2VsZWN0U2Vjb25kIiwic2Vjb25kIiwiaXNTZWNvbmRzRGlzYWJsZWQiLCJoYXNHb1RvZGF5IiwiZ29Ub2RheSIsIl9vbk5vdyIsIl9vbkRhdGVUaW1lU2VsZWN0ZWQiLCJkaXNhYmxlVmFsaWRhdGlvbiIsInNlbGVjdGVkRGF0ZSIsIm1pbkRhdGUiLCJtYXhEYXRlIiwiX3VwZGF0ZVRpbWUiLCJzZXRUaW1lb3V0Iiwic2hhZG93Um9vdCIsInF1ZXJ5U2VsZWN0b3IiLCJ0ZXh0Q29udGVudCIsInVwZGF0ZWQiLCJoYXMiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJkZXRhaWwiLCJ5ZWFyQW5kTW9udGhDaGFuZ2VkIiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJwYXJlbnROb2RlIiwic2Nyb2xsVG9wIiwib2Zmc2V0VG9wIiwiX3VwZGF0ZURheXMiLCJkYXlOYW1lcyIsInB1c2giLCJsb2NhbGl6ZSIsImRheSIsIndpZHRoIiwiZmlyc3REYXlPZldlZWsiLCJvcHRpb25zIiwid2Vla1N0YXJ0c09uIiwidG1wIiwic2xpY2UiLCJzcGxpY2UiLCJjb25jYXQiLCJjb2xzIiwic3RhcnQiLCJlbmQiLCJnZXRZZWFySW50ZXJ2YWwiLCJjIiwic3RhcnREYXRlU3RyaW5nIiwic3RhcnREYXRlRm4iLCJhd2FyZU9mVW5pY29kZVRva2VucyIsImhvdmVyIiwidGl0bGUiLCJtb250aE1pbnVzIiwic3Vic3RyaW5nIiwiZW5kRGF0ZUZuIiwiZW5kRGF0ZVN0cmluZyIsInJvd3MiLCJjb2x1bW5zIiwibGFzdERheU9mV2VlayIsImRheU51bWJlckZuIiwiY29sdW1uRm4iLCJ1bnNoaWZ0IiwiZW5kQ29sdW1uRm4iLCJfZm9ybWF0IiwiZGF0ZUZuIiwiX2RhdGVGcm9tIiwibW9kZSIsImRhdGV0aW1lU2VsZWN0ZWQiLCJ2YWx1ZU9mIiwic2V0U2Vjb25kcyIsInVuZGVmaW5lZCIsImV2ZW50IiwibW9udGhQbHVzRGF0ZSIsIm1vbnRoUGx1c1N0cmluZyIsInllYXJQbHVzRGF0ZSIsInllYXJQbHVzU3RyaW5nIiwibW9udGhNaW51c0RhdGUiLCJtb250aE1pbnVzU3RyaW5nIiwieWVhck1pbnVzRGF0ZSIsInllYXJNaW51c1N0cmluZyIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLHVCQUFQO0FBQ0EsU0FDRUEsT0FERixFQUVFQyxTQUZGLEVBR0VDLFFBSEYsRUFJRUMsVUFKRixFQUtFQyxNQUxGLEVBTUVDLE1BTkYsRUFPRUMsUUFQRixFQVFFQyxPQVJGLEVBU0VDLE9BVEYsRUFVRUMsUUFWRixFQVdFQyxLQVhGLEVBWUVDLFFBWkYsRUFhRUMsVUFiRixFQWNFQyxVQWRGLEVBZUVDLFNBZkYsRUFnQkVDLFFBaEJGLFFBaUJPLFVBakJQO0FBa0JBLFNBQVNDLFFBQVQsUUFBeUIsK0JBQXpC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QUNEOztBQUVEYyxFQUFBQSxVQUFVLEdBQUc7QUFDWCxXQUFPLENBQUMsS0FBS3hFLEtBQU4sSUFBZSxDQUFDLEtBQUtDLElBQXJCLElBQTZCLENBQUMsS0FBS0wsU0FBbkMsSUFBZ0QsQ0FBQyxLQUFLVSxRQUF0RCxJQUFrRSxLQUFLSSxXQUE5RTtBQUNEOztBQTN6QmtEO0FBOHpCckR5SSxNQUFNLENBQUNDLGNBQVAsQ0FBc0JDLE1BQXRCLENBQTZCLHlCQUE3QixFQUF3RHhLLG9CQUF4RCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgJy4vZ3YtZGF0ZS1waWNrZXItY2VsbCc7XG5pbXBvcnQge1xuICBhZGREYXlzLFxuICBhZGRNb250aHMsXG4gIGFkZFllYXJzLFxuICBlbmRPZk1vbnRoLFxuICBmb3JtYXQsXG4gIGdldERheSxcbiAgZ2V0TW9udGgsXG4gIGdldFllYXIsXG4gIGlzQWZ0ZXIsXG4gIGlzQmVmb3JlLFxuICBwYXJzZSxcbiAgc2V0SG91cnMsXG4gIHNldE1pbnV0ZXMsXG4gIHN0YXJ0T2ZEYXksXG4gIHN1Yk1vbnRocyxcbiAgc3ViWWVhcnMsXG59IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0LWh0bWwvZGlyZWN0aXZlcy9jbGFzcy1tYXAnO1xuaW1wb3J0IHsgZGlzcGF0Y2hDdXN0b21FdmVudCB9IGZyb20gJy4uL2xpYi9ldmVudHMnO1xuaW1wb3J0IHsgaTE4biB9IGZyb20gJy4uL2xpYi9pMThuJztcbmltcG9ydCB7IExpdEVsZW1lbnQsIGNzcyB9IGZyb20gJ2xpdC1lbGVtZW50JztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQtaHRtbCc7XG5cbmltcG9ydCB7IHVudGlsIH0gZnJvbSAnbGl0LWh0bWwvZGlyZWN0aXZlcy91bnRpbCc7XG5cbi8qKlxuICogRGF0ZSBQaWNrZXIgQ2FsZW5kYXJcbiAqXG4gKiAjIyBEZXRhaWxzXG4gKiAqIGhhcyBAdGhlbWUgZmFjZXRcbiAqXG4gKiBAZmlyZXMgZ3YtZGF0ZS1waWNrZXItY2VsbDpzZWxlY3QgLSBDdXN0b20gZXZlbnQgd2hlbiB1c2VyIHNlbGVjdCBjZWxsXG4gKiBAZmlyZXMgZ3YtZGF0ZS1waWNrZXItY2VsbDpob3ZlciAtIEN1c3RvbSBldmVudCB3aGVuIHVzZXIgaG92ZXIgY2VsbFxuICpcbiAqIEBhdHRyIHtOdW1iZXJ9IGRhdGVGcm9tIC0gdW5peCBkYXRlIGZvcm1cbiAqIEBhdHRyIHtOdW1iZXJ9IGRhdGVUbyAtIHVuaXggZGF0ZSB0b1xuICogQGF0dHIge0FycmF5fSBkaXNhYmxlZERhdGVzIC0gYXJyYXkgb2YgZGlzYWJsZWQgZGF0ZVxuICogQGF0dHIge051bWJlcn0gaG92ZXJlZERhdGUgLSB1bml4IGhvdmVyZWQgZGF0ZVxuICogQGF0dHIge051bWJlcn0gbWluIC0gdW5peCBtaW4gZGF0ZVxuICogQGF0dHIge051bWJlcn0gbWF4IC0gdW5peCBtYXggZGF0ZVxuICogQGF0dHIge09iamVjdH0gbG9jYWxlIC0gZGF0ZS1mbnMgbG9jYWxlIG9iamVjdFxuICpcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtZGF0ZS1waWNrZXItaG92ZXItLWJnYz12YXIoLS1ndi10aGVtZS1jb2xvci1saWdodCwgIzg2YzNkMCldIC0gSG92ZXIgYmFja2dyb3VuZCBjb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1kYXRlLXBpY2tlci1ob3Zlci0tYz12YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWRhcmssICMyNjI2MjYpXSAtIEhvdmVyIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LWRhdGUtcGlja2VyLXNlbGVjdGVkLS1iZ2M9dmFyKC0tZ3YtdGhlbWUtY29sb3IsICM1YTc2ODQpXSAtIFNlbGVjdGVkIGJhY2tncm91bmQgY29sb3JcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtZGF0ZS1waWNrZXItc2VsZWN0ZWQtLWM9dmFyKC0tZ3YtdGhlbWUtZm9udC1jb2xvci1saWdodCwgI2ZmZmZmZildIC0gU2VsZWN0ZWQgY29sb3JcbiAqL1xuZXhwb3J0IGNsYXNzIEd2RGF0ZVBpY2tlckNhbGVuZGFyIGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGF0ZUZyb206IHsgdHlwZTogTnVtYmVyIH0sXG4gICAgICBkYXRlVG86IHsgdHlwZTogTnVtYmVyIH0sXG4gICAgICBkaXNhYmxlZERhdGVzOiB7IHR5cGU6IEFycmF5IH0sXG4gICAgICBob3ZlcmVkRGF0ZTogeyB0eXBlOiBOdW1iZXIgfSxcbiAgICAgIGxvY2FsZTogeyB0eXBlOiBPYmplY3QgfSxcbiAgICAgIG1heDogeyB0eXBlOiBOdW1iZXIgfSxcbiAgICAgIG1pbjogeyB0eXBlOiBOdW1iZXIgfSxcbiAgICAgIG1vbnRoOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgbW9udGhNb2RlOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIG5leHQ6IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgcHJldjogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICByYW5nZTogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICB0aW1lOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIHNtYWxsOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIHN0cmljdDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICB5ZWFyOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgeWVhck1vZGU6IHsgdHlwZTogQm9vbGVhbiB9LFxuXG4gICAgICBfZGF5TmFtZXNPZldlZWs6IHsgdHlwZTogQXJyYXksIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIF9kaW1lbnNpb25zOiB7IHR5cGU6IEFycmF5LCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICBfaGFzR29Ub2RheTogeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICBfaG91cjogeyB0eXBlOiBOdW1iZXIsIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIF9taW51dGU6IHsgdHlwZTogTnVtYmVyLCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICBfc2Vjb25kOiB7IHR5cGU6IE51bWJlciwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgX21vbnRoc0xpc3Q6IHsgdHlwZTogQXJyYXksIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIF9sb2NhbGU6IHsgdHlwZTogT2JqZWN0LCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICBfZnJvbTogeyB0eXBlOiBOdW1iZXIsIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIF90bzogeyB0eXBlOiBOdW1iZXIsIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC8vIGxhbmd1YWdlPUNTU1xuICAgICAgY3NzYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdCA+IGRpdiB7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uYXYsXG4gICAgICAgIC5mb290LFxuICAgICAgICAubmF2LXRpbWVzIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubmF2IC5jdXJyZW50LFxuICAgICAgICAuZm9vdCB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1vbnRoTmFtZSxcbiAgICAgICAgLmRheSB7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9vdC10aW1lIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhbGVuZGFyLWdyaWQge1xuICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgMWZyKTtcbiAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC41cmVtIDAgMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhbGVuZGFyLWdyaWQtbGFyZ2Uge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyLFxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBhdXRvKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LWRhdGUtcGlja2VyLWNlbGwge1xuICAgICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYWxlbmRhci1ncmlkLWxhcmdlIGd2LWRhdGUtcGlja2VyLWNlbGwge1xuICAgICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYWxlbmRhci1ncmlkLFxuICAgICAgICAuZm9vdCxcbiAgICAgICAgLnRpbWUge1xuICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmspO1xuICAgICAgICB9XG5cbiAgICAgICAgLm5hdi10aW1lcyB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uYXYtdGltZXMsXG4gICAgICAgIC50aW1lIHtcbiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyayk7XG4gICAgICAgIH1cblxuICAgICAgICAuZGF5IHtcbiAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgd2lkdGg6IDMzcHg7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFtzbWFsbF0pIC5kYXkge1xuICAgICAgICAgIGhlaWdodDogMjVweDtcbiAgICAgICAgICB3aWR0aDogMjZweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ib3gtY29sLFxuICAgICAgICAudGltZXMge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAuYm94LWNvbCB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ib3gtY29sOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgIHdpZHRoOiAyNjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFtzbWFsbF0pIC5ib3gtY29sOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgIHdpZHRoOiAxOTVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAudGltZXMge1xuICAgICAgICAgIG1heC1oZWlnaHQ6IDIzNXB4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIH1cblxuICAgICAgICAudGltZSB7XG4gICAgICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG4gICAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgICBtaW4td2lkdGg6IDUwcHg7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAudGltZSA+IGRpdiB7XG4gICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFtzbWFsbF0pIC50aW1lID4gZGl2IHtcbiAgICAgICAgICBoZWlnaHQ6IDI1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAudGltZSA+IGRpdjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ3YtZGF0ZS1waWNrZXItaG92ZXItLWJnYywgdmFyKC0tZ3YtdGhlbWUtY29sb3ItbGlnaHQsICM4NmMzZDApKTtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tZ3YtZGF0ZS1waWNrZXItaG92ZXItLWMsIHZhcigtLWd2LXRoZW1lLWZvbnQtY29sb3ItZGFyaywgIzI2MjYyNikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRpbWUgPiBkaXYuc2VsZWN0ZWQge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWd2LWRhdGUtcGlja2VyLXNlbGVjdGVkLS1iZ2MsIHZhcigtLWd2LXRoZW1lLWNvbG9yLCAjNWE3Njg0KSk7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWd2LWRhdGUtcGlja2VyLXNlbGVjdGVkLS1jLCB2YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWxpZ2h0LCAjZmZmZmZmKSk7XG4gICAgICAgIH1cblxuICAgICAgICAudGltZSA+IGRpdi5kaXNhYmxlZCB7XG4gICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX2RheU5hbWVzT2ZXZWVrID0gW107XG4gICAgdGhpcy5fbW9udGhzTGlzdCA9IFsnMDEnLCAnMDInLCAnMDMnLCAnMDQnLCAnMDUnLCAnMDYnLCAnMDcnLCAnMDgnLCAnMDknLCAnMTAnLCAnMTEnLCAnMTInXTtcbiAgICB0aGlzLnJhbmdlID0gZmFsc2U7XG4gICAgdGhpcy5jdXJyZW50RGF0ZSA9IHBhcnNlSW50KGZvcm1hdChzdGFydE9mRGF5KERhdGUubm93KCkpLCAndCcpLCAxMCk7XG4gICAgdGhpcy5faGFzR29Ub2RheSA9IHRydWU7XG5cbiAgICB0aGlzLl9ob3VycyA9IHRoaXMuY29tcHV0ZUFycmF5T2ZUaW1lKDI0KTtcbiAgICB0aGlzLl9taW51dGVzID0gdGhpcy5jb21wdXRlQXJyYXlPZlRpbWUoNjApO1xuICAgIHRoaXMuX3NlY29uZHMgPSB0aGlzLmNvbXB1dGVBcnJheU9mVGltZSg2MCk7XG4gIH1cblxuICBzZXQgZGF0ZUZyb20odmFsdWUpIHtcbiAgICB0aGlzLl9mcm9tID0gdmFsdWU7XG4gICAgaWYgKHRoaXMudGltZSAmJiB0aGlzLl9mcm9tKSB7XG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy5fZnJvbSAqIDEwMDApO1xuICAgICAgdGhpcy5faG91ciA9IGZvcm1hdChkYXRlLCAnSEgnKTtcbiAgICAgIHRoaXMuX21pbnV0ZSA9IGZvcm1hdChkYXRlLCAnbW0nKTtcbiAgICAgIGlmICh0aGlzLmlzU3RyaWN0VGltZSgpKSB7XG4gICAgICAgIHRoaXMuX3NlY29uZCA9IGZvcm1hdChkYXRlLCAnc3MnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXQgZGF0ZVRvKHZhbHVlKSB7XG4gICAgdGhpcy5fdG8gPSB2YWx1ZTtcbiAgfVxuXG4gIGNvbXB1dGVBcnJheU9mVGltZShzaXplKSB7XG4gICAgcmV0dXJuIG5ldyBBcnJheShzaXplKS5maWxsKCcnKS5tYXAoKGEsIGkpID0+IHtcbiAgICAgIGxldCB0aW1lID0gaS50b1N0cmluZygpO1xuICAgICAgaWYgKHRpbWUubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHRpbWUgPSBgMCR7dGltZX1gO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRpbWU7XG4gICAgfSk7XG4gIH1cblxuICBfcmVuZGVyUHJldmlvdXNOYXYoKSB7XG4gICAgaWYgKHRoaXMucHJldiB8fCB0aGlzLm1vbnRoTW9kZSB8fCB0aGlzLnllYXJNb2RlKSB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPGd2LWJ1dHRvbiBsaW5rIGljb249XCJuYXZpZ2F0aW9uOmFuZ2xlLWRvdWJsZS1sZWZ0XCIgQGNsaWNrPVwiJHt0aGlzLl9vblByZXZZZWFyfVwiID9zbWFsbD1cIiR7dGhpcy5zbWFsbH1cIj48L2d2LWJ1dHRvbj5cbiAgICAgICAgJHt0aGlzLm1vbnRoTW9kZSB8fCB0aGlzLnllYXJNb2RlXG4gICAgICAgICAgPyAnJ1xuICAgICAgICAgIDogaHRtbGA8Z3YtYnV0dG9uIGxpbmsgaWNvbj1cIm5hdmlnYXRpb246YW5nbGUtbGVmdFwiID9zbWFsbD1cIiR7dGhpcy5zbWFsbH1cIiBAY2xpY2s9XCIke3RoaXMuX29uUHJldk1vbnRofVwiPjwvZ3YtYnV0dG9uPmB9XG4gICAgICBgO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBfcmVuZGVyQ3VycmVudE5hdigpIHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJjdXJyZW50XCI+XG4gICAgICAgICR7dGhpcy55ZWFyTW9kZVxuICAgICAgICAgID8gJydcbiAgICAgICAgICA6IGh0bWxgPGd2LWJ1dHRvbiBsaW5rIEBjbGljaz1cIiR7dGhpcy5fb25TZWxlY3RNb250aH1cIiA/c21hbGw9XCIke3RoaXMuc21hbGx9XCJcbiAgICAgICAgICAgICAgPjxzcGFuIGNsYXNzPVwibW9udGhOYW1lXCI+JHt1bnRpbCh0aGlzLmNvbXB1dGVOYW1lKHRoaXMubW9udGgsIHRoaXMueWVhcikpfTwvc3Bhbj48L2d2LWJ1dHRvblxuICAgICAgICAgICAgPmB9XG4gICAgICAgIDxndi1idXR0b24gP3NtYWxsPVwiJHt0aGlzLnNtYWxsfVwiIGxpbmsgQGNsaWNrPVwiJHt0aGlzLl9vblNlbGVjdFllYXJ9XCI+JHt0aGlzLmNvbXB1dGVDdXJyZW50WWVhck5hbWUoKX08L2d2LWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBfcmVuZGVyTmV4dE5hdigpIHtcbiAgICBpZiAodGhpcy5uZXh0IHx8IHRoaXMubW9udGhNb2RlIHx8IHRoaXMueWVhck1vZGUpIHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICAke3RoaXMubW9udGhNb2RlIHx8IHRoaXMueWVhck1vZGVcbiAgICAgICAgICA/ICcnXG4gICAgICAgICAgOiBodG1sYDxndi1idXR0b24gbGluayBpY29uPVwibmF2aWdhdGlvbjphbmdsZS1yaWdodFwiID9zbWFsbD1cIiR7dGhpcy5zbWFsbH1cIiBAY2xpY2s9XCIke3RoaXMuX29uTmV4dE1vbnRofVwiPjwvZ3YtYnV0dG9uPmB9XG4gICAgICAgIDxndi1idXR0b24gP3NtYWxsPVwiJHt0aGlzLnNtYWxsfVwiIGxpbmsgaWNvbj1cIm5hdmlnYXRpb246YW5nbGUtZG91YmxlLXJpZ2h0XCIgQGNsaWNrPVwiJHt0aGlzLl9vbk5leHRZZWFyfVwiPjwvZ3YtYnV0dG9uPlxuICAgICAgYDtcbiAgICB9XG4gIH1cblxuICBfcmVuZGVyRGF5cygpIHtcbiAgICByZXR1cm4gaHRtbGAgJHt0aGlzLl9kYXlOYW1lc09mV2VlayAmJiB0aGlzLl9kYXlOYW1lc09mV2Vlay5tYXAoKGRheU5hbWVPZldlZWspID0+IGh0bWxgPGRpdiBjbGFzcz1cImRheVwiPiR7ZGF5TmFtZU9mV2Vla308L2Rpdj5gKX1cbiAgICAke3RoaXMuX2RpbWVuc2lvbnMgJiZcbiAgICB0aGlzLl9kaW1lbnNpb25zLm1hcChcbiAgICAgIChkaW1lbnNpb24pID0+XG4gICAgICAgIGh0bWxgJHtkaW1lbnNpb24gJiZcbiAgICAgICAgZGltZW5zaW9uLm1hcChcbiAgICAgICAgICAoZGF0YSkgPT4gaHRtbGAgPGRpdj5cbiAgICAgICAgICAgICR7ZGF0YVxuICAgICAgICAgICAgICA/IGh0bWxgXG4gICAgICAgICAgICAgICAgICA8Z3YtZGF0ZS1waWNrZXItY2VsbFxuICAgICAgICAgICAgICAgICAgICAuZGlzYWJsZWREYXRlcz1cIiR7dGhpcy5kaXNhYmxlZERhdGVzfVwiXG4gICAgICAgICAgICAgICAgICAgIC5taW49XCIke3RoaXMubW9udGhNb2RlIHx8IHRoaXMueWVhck1vZGUgPyBudWxsIDogdGhpcy5taW59XCJcbiAgICAgICAgICAgICAgICAgICAgLm1heD1cIiR7dGhpcy5tb250aE1vZGUgfHwgdGhpcy55ZWFyTW9kZSA/IG51bGwgOiB0aGlzLm1heH1cIlxuICAgICAgICAgICAgICAgICAgICAubW9udGg9XCIke3RoaXMubW9udGh9XCJcbiAgICAgICAgICAgICAgICAgICAgLmhvdmVyZWREYXRlPVwiJHt0aGlzLmhvdmVyZWREYXRlfVwiXG4gICAgICAgICAgICAgICAgICAgIC5kYXRlVG89XCIke3RoaXMuX3RvfVwiXG4gICAgICAgICAgICAgICAgICAgIC5kYXRlRnJvbT1cIiR7dGhpcy5fZnJvbX1cIlxuICAgICAgICAgICAgICAgICAgICAuZGF0YT1cIiR7ZGF0YX1cIlxuICAgICAgICAgICAgICAgICAgICAudGltZT1cIiR7dGhpcy50aW1lfVwiXG4gICAgICAgICAgICAgICAgICAgID9pc0N1cnJlbnQ9XCIke3RoaXMuaXNDdXJyZW50RGF0ZShkYXRhKX1cIlxuICAgICAgICAgICAgICAgICAgICBAZ3YtZGF0ZS1waWNrZXItY2VsbDpob3Zlcj1cIiR7dGhpcy5fb25Ib3Zlcn1cIlxuICAgICAgICAgICAgICAgICAgICBAZ3YtZGF0ZS1waWNrZXItY2VsbDpzZWxlY3Q9XCIke3RoaXMuX29uU2VsZWN0fVwiXG4gICAgICAgICAgICAgICAgICA+PC9ndi1kYXRlLXBpY2tlci1jZWxsPlxuICAgICAgICAgICAgICAgIGBcbiAgICAgICAgICAgICAgOiBudWxsfVxuICAgICAgICAgIDwvZGl2PmAsXG4gICAgICAgICl9YCxcbiAgICApfWA7XG4gIH1cblxuICBpc1N0cmljdFRpbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMudGltZSA9PT0gdHJ1ZSAmJiB0aGlzLnN0cmljdCA9PT0gdHJ1ZTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBjbGFzc2VzID0ge1xuICAgICAgJ2NhbGVuZGFyLWdyaWQnOiB0cnVlLFxuICAgICAgJ2NhbGVuZGFyLWdyaWQtbGFyZ2UnOiB0aGlzLm1vbnRoTW9kZSB8fCB0aGlzLnllYXJNb2RlLFxuICAgIH07XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiYm94XCI+XG4gICAgICAgICR7dGhpcy5pc1N0cmljdFRpbWUoKVxuICAgICAgICAgID8gJydcbiAgICAgICAgICA6IGh0bWxgPGRpdiBjbGFzcz1cImJveC1jb2xcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdlwiPiR7dGhpcy5fcmVuZGVyUHJldmlvdXNOYXYoKX0gJHt0aGlzLl9yZW5kZXJDdXJyZW50TmF2KCl9ICR7dGhpcy5fcmVuZGVyTmV4dE5hdigpfTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcChjbGFzc2VzKX1cIj4ke3RoaXMuX3JlbmRlckRheXMoKX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PmB9XG4gICAgICAgICR7dGhpcy50aW1lICYmICF0aGlzLm1vbnRoTW9kZSAmJiAhdGhpcy55ZWFyTW9kZVxuICAgICAgICAgID8gaHRtbGA8ZGl2IGNsYXNzPVwiYm94LWNvbFwiPlxuICAgICAgICAgICAgICAke3RoaXMuaXNTdHJpY3RUaW1lKCkgPyAnJyA6IGh0bWxgPGRpdiBjbGFzcz1cIm5hdi10aW1lc1wiPiR7dGhpcy5nZXRUaW1lKCl9PC9kaXY+YH1cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVzXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVcIj5cbiAgICAgICAgICAgICAgICAgICR7dGhpcy5faG91cnMgJiZcbiAgICAgICAgICAgICAgICAgIHRoaXMuX2hvdXJzLm1hcChcbiAgICAgICAgICAgICAgICAgICAgKHZhbCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICBodG1sYDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz1cIiR7dGhpcy5fb25TZWxlY3RIb3VyLmJpbmQodGhpcywgdmFsKX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIke2NsYXNzTWFwKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaG91cjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuX2hvdXIgPT09IHZhbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuaXNIb3Vyc0Rpc2FibGVkKHZhbCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KX1cIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICR7dmFsfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmAsXG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lXCI+XG4gICAgICAgICAgICAgICAgICAke3RoaXMuX21pbnV0ZXMgJiZcbiAgICAgICAgICAgICAgICAgIHRoaXMuX21pbnV0ZXMubWFwKFxuICAgICAgICAgICAgICAgICAgICAodmFsKSA9PlxuICAgICAgICAgICAgICAgICAgICAgIGh0bWxgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiJHt0aGlzLl9vblNlbGVjdE1pbnV0ZS5iaW5kKHRoaXMsIHZhbCl9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiJHtjbGFzc01hcCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1pbnV0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuX21pbnV0ZSA9PT0gdmFsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5pc01pbnV0ZXNEaXNhYmxlZCh2YWwpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSl9XCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAke3ZhbH1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gLFxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICR7dGhpcy5pc1N0cmljdFRpbWUoKVxuICAgICAgICAgICAgICAgICAgPyBodG1sYDxkaXYgY2xhc3M9XCJ0aW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLl9zZWNvbmRzICYmXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2Vjb25kcy5tYXAoXG4gICAgICAgICAgICAgICAgICAgICAgICAodmFsKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sYDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCIke3RoaXMuX29uU2VsZWN0U2Vjb25kLmJpbmQodGhpcywgdmFsKX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiJHtjbGFzc01hcCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5fc2Vjb25kID09PSB2YWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5pc1NlY29uZHNEaXNhYmxlZCh2YWwpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3ZhbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YCxcbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgICAgICAgICAgICA6ICcnfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgICA6ICcnfVxuICAgICAgPC9kaXY+XG4gICAgICAke3RoaXMuaGFzR29Ub2RheSgpXG4gICAgICAgID8gaHRtbGAgPGRpdiBjbGFzcz1cImZvb3RcIj5cbiAgICAgICAgICAgIDxndi1idXR0b24gbGluayBAY2xpY2s9JHt0aGlzLmdvVG9kYXl9PiR7aTE4bignZ3YtZGF0ZS1waWNrZXIudG9kYXknKX08L2d2LWJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgIDogJyd9XG4gICAgICAke3RoaXMudGltZSAmJiAhdGhpcy5tb250aE1vZGUgJiYgIXRoaXMueWVhck1vZGVcbiAgICAgICAgPyBodG1sYCA8ZGl2IGNsYXNzPVwiZm9vdCBmb290LXRpbWVcIj5cbiAgICAgICAgICAgIDxndi1idXR0b24gcHJpbWFyeSBvdXRsaW5lZCBzbWFsbCBAY2xpY2s9JHt0aGlzLl9vbk5vd31cbiAgICAgICAgICAgICAgPiR7dGhpcy5pc1N0cmljdFRpbWUoKSA/IGkxOG4oJ2d2LWRhdGUtcGlja2VyLmN1cnJlbnRUaW1lJykgOiBpMThuKCdndi1kYXRlLXBpY2tlci5ub3cnKX08L2d2LWJ1dHRvblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGd2LWJ1dHRvbiBwcmltYXJ5IHNtYWxsIEBjbGljaz0ke3RoaXMuX29uRGF0ZVRpbWVTZWxlY3RlZH0gLmRpc2FibGVkPVwiJHt0aGlzLmRpc2FibGVWYWxpZGF0aW9uID09PSB0cnVlfVwiXG4gICAgICAgICAgICAgID4ke2kxOG4oJ2d2LWRhdGUtcGlja2VyLm9rJyl9PC9ndi1idXR0b25cbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgIDogJyd9XG4gICAgYDtcbiAgfVxuXG4gIGlzTWludXRlc0Rpc2FibGVkKHZhbHVlKSB7XG4gICAgaWYgKHRoaXMuX2Zyb20gJiYgdGhpcy5faG91ciAhPSBudWxsKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZERhdGUgPSBuZXcgRGF0ZSh0aGlzLl9mcm9tICogMTAwMCk7XG4gICAgICBzZWxlY3RlZERhdGUuc2V0SG91cnMocGFyc2VJbnQodGhpcy5faG91ciwgMTApLCBwYXJzZUludCh2YWx1ZSwgMTApLCAwLCAwKTtcbiAgICAgIGlmICh0aGlzLm1pbikge1xuICAgICAgICBjb25zdCBtaW5EYXRlID0gbmV3IERhdGUodGhpcy5taW4gKiAxMDAwKTtcbiAgICAgICAgaWYgKGlzQmVmb3JlKHNlbGVjdGVkRGF0ZSwgbWluRGF0ZSkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5tYXgpIHtcbiAgICAgICAgY29uc3QgbWF4RGF0ZSA9IG5ldyBEYXRlKHRoaXMubWF4ICogMTAwMCk7XG4gICAgICAgIGlmIChpc0FmdGVyKHNlbGVjdGVkRGF0ZSwgbWF4RGF0ZSkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpc1NlY29uZHNEaXNhYmxlZCh2YWx1ZSkge1xuICAgIGlmICh0aGlzLl9mcm9tICYmIHRoaXMuX2hvdXIgIT0gbnVsbCkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gbmV3IERhdGUodGhpcy5fZnJvbSAqIDEwMDApO1xuICAgICAgc2VsZWN0ZWREYXRlLnNldEhvdXJzKHBhcnNlSW50KHRoaXMuX2hvdXIsIDEwKSwgcGFyc2VJbnQodmFsdWUsIDEwKSwgMCwgMCk7XG4gICAgICBpZiAodGhpcy5taW4pIHtcbiAgICAgICAgY29uc3QgbWluRGF0ZSA9IG5ldyBEYXRlKHRoaXMubWluICogMTAwMCk7XG4gICAgICAgIGlmIChpc0JlZm9yZShzZWxlY3RlZERhdGUsIG1pbkRhdGUpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubWF4KSB7XG4gICAgICAgIGNvbnN0IG1heERhdGUgPSBuZXcgRGF0ZSh0aGlzLm1heCAqIDEwMDApO1xuICAgICAgICBpZiAoaXNBZnRlcihzZWxlY3RlZERhdGUsIG1heERhdGUpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaXNIb3Vyc0Rpc2FibGVkKHZhbHVlKSB7XG4gICAgaWYgKHRoaXMuX2Zyb20pIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKHRoaXMuX2Zyb20gKiAxMDAwKTtcbiAgICAgIHNlbGVjdGVkRGF0ZS5zZXRIb3VycyhwYXJzZUludCh2YWx1ZSwgMTApKTtcbiAgICAgIGlmICh0aGlzLm1pbikge1xuICAgICAgICBjb25zdCBtaW5EYXRlID0gbmV3IERhdGUodGhpcy5taW4gKiAxMDAwKTtcbiAgICAgICAgbWluRGF0ZS5zZXRNaW51dGVzKDAsIDAsIDApO1xuICAgICAgICBpZiAoc2VsZWN0ZWREYXRlLmdldFRpbWUoKSA8IG1pbkRhdGUuZ2V0VGltZSgpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubWF4KSB7XG4gICAgICAgIGNvbnN0IG1heERhdGUgPSBuZXcgRGF0ZSh0aGlzLm1heCAqIDEwMDApO1xuICAgICAgICBpZiAoc2VsZWN0ZWREYXRlLmdldFRpbWUoKSA+IG1heERhdGUuZ2V0VGltZSgpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgX3VwZGF0ZVRpbWUoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuX2hvdXIgfHwgdGhpcy5pc0hvdXJzRGlzYWJsZWQodGhpcy5faG91cikpIHtcbiAgICAgICAgY29uc3QgaG91ciA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuaG91cjpub3QoLmRpc2FibGVkKScpO1xuICAgICAgICBpZiAoaG91cikge1xuICAgICAgICAgIHRoaXMuX2hvdXIgPSBob3VyLnRleHRDb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgMCk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5fbWludXRlIHx8IHRoaXMuaXNNaW51dGVzRGlzYWJsZWQodGhpcy5fbWludXRlKSkge1xuICAgICAgICBjb25zdCBtaW51dGUgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLm1pbnV0ZTpub3QoLmRpc2FibGVkKScpO1xuICAgICAgICBpZiAobWludXRlKSB7XG4gICAgICAgICAgdGhpcy5fbWludXRlID0gbWludXRlLnRleHRDb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgMCk7XG5cbiAgICBpZiAodGhpcy5pc1N0cmljdFRpbWUoKSkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5fc2Vjb25kIHx8IHRoaXMuaXNTZWNvbmRzRGlzYWJsZWQodGhpcy5fc2Vjb25kKSkge1xuICAgICAgICAgIGNvbnN0IHNlY29uZCA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuc2Vjb25kOm5vdCguZGlzYWJsZWQpJyk7XG4gICAgICAgICAgaWYgKHNlY29uZCkge1xuICAgICAgICAgICAgdGhpcy5fc2Vjb25kID0gc2Vjb25kLnRleHRDb250ZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0VGltZSgpIHtcbiAgICBpZiAodGhpcy5faG91ciAmJiB0aGlzLl9taW51dGUpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLl9ob3VyfToke3RoaXMuX21pbnV0ZX1gO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBpc0N1cnJlbnREYXRlKGRhdGEpIHtcbiAgICBpZiAodGhpcy55ZWFyTW9kZSkge1xuICAgICAgcmV0dXJuIGdldFllYXIoZGF0YS5kYXRlICogMTAwMCkgPT09IGdldFllYXIodGhpcy5jdXJyZW50RGF0ZSAqIDEwMDApO1xuICAgIH0gZWxzZSBpZiAodGhpcy5tb250aE1vZGUpIHtcbiAgICAgIHJldHVybiBnZXRNb250aChkYXRhLmRhdGUgKiAxMDAwKSA9PT0gZ2V0TW9udGgodGhpcy5jdXJyZW50RGF0ZSAqIDEwMDApO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YS5kYXRlID09PSB0aGlzLmN1cnJlbnREYXRlO1xuICB9XG5cbiAgdXBkYXRlZChwcm9wZXJ0aWVzKSB7XG4gICAgaWYgKHByb3BlcnRpZXMuaGFzKCd5ZWFyJykpIHtcbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ3llYXItY2hhbmdlZCcsIHsgZGV0YWlsOiB7IHZhbHVlOiB0aGlzLnllYXIgfSB9KSk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHByb3BlcnRpZXMuaGFzKCdsb2NhbGUnKSB8fFxuICAgICAgcHJvcGVydGllcy5oYXMoJ3llYXInKSB8fFxuICAgICAgcHJvcGVydGllcy5oYXMoJ21vbnRoJykgfHxcbiAgICAgIHByb3BlcnRpZXMuaGFzKCdtb250aE1vZGUnKSB8fFxuICAgICAgcHJvcGVydGllcy5oYXMoJ3llYXJNb2RlJylcbiAgICApIHtcbiAgICAgIHRoaXMueWVhckFuZE1vbnRoQ2hhbmdlZCh0aGlzLnllYXIsIHRoaXMubW9udGgpO1xuICAgIH1cblxuICAgIGlmIChwcm9wZXJ0aWVzLmhhcygnX2hvdXInKSB8fCBwcm9wZXJ0aWVzLmhhcygnX21pbnV0ZScpKSB7XG4gICAgICB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnLnNlbGVjdGVkJykuZm9yRWFjaCgodGltZSkgPT4ge1xuICAgICAgICB0aW1lLnBhcmVudE5vZGUuc2Nyb2xsVG9wID0gdGltZS5vZmZzZXRUb3AgLSB0aW1lLnBhcmVudE5vZGUub2Zmc2V0VG9wO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgX3VwZGF0ZURheXMoKSB7XG4gICAgY29uc3QgZGF5TmFtZXMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDc7IGkgKz0gMSkge1xuICAgICAgZGF5TmFtZXMucHVzaCh0aGlzLmxvY2FsZS5sb2NhbGl6ZS5kYXkoaSwgeyB3aWR0aDogJ3Nob3J0JyB9KSk7XG4gICAgfVxuICAgIGNvbnN0IGZpcnN0RGF5T2ZXZWVrID0gdGhpcy5sb2NhbGUub3B0aW9ucy53ZWVrU3RhcnRzT247XG4gICAgY29uc3QgdG1wID0gZGF5TmFtZXMuc2xpY2UoKS5zcGxpY2UoMCwgZmlyc3REYXlPZldlZWspO1xuICAgIHRoaXMuX2RheU5hbWVzT2ZXZWVrID0gZGF5TmFtZXMuc2xpY2UoKS5zcGxpY2UoZmlyc3REYXlPZldlZWssIGRheU5hbWVzLmxlbmd0aCkuY29uY2F0KHRtcCk7XG4gIH1cblxuICB5ZWFyQW5kTW9udGhDaGFuZ2VkKHllYXIsIG1vbnRoKSB7XG4gICAgaWYgKHllYXIgJiYgbW9udGggJiYgdGhpcy5sb2NhbGUpIHtcbiAgICAgIGlmICh0aGlzLnllYXJNb2RlKSB7XG4gICAgICAgIHRoaXMuX2RheU5hbWVzT2ZXZWVrID0gW107XG4gICAgICAgIGNvbnN0IGNvbHMgPSBbbnVsbF07XG4gICAgICAgIGNvbnN0IHsgc3RhcnQsIGVuZCB9ID0gdGhpcy5nZXRZZWFySW50ZXJ2YWwoeWVhcik7XG4gICAgICAgIGZvciAobGV0IGMgPSBzdGFydDsgYyA8IGVuZDsgYysrKSB7XG4gICAgICAgICAgY29uc3Qgc3RhcnREYXRlU3RyaW5nID0gYDAxLyR7bW9udGh9LyR7Y31gO1xuICAgICAgICAgIGNvbnN0IHN0YXJ0RGF0ZUZuID0gcGFyc2Uoc3RhcnREYXRlU3RyaW5nLCAnZGQvTU0veXl5eScsIG5ldyBEYXRlKCksIHsgYXdhcmVPZlVuaWNvZGVUb2tlbnM6IHRydWUgfSk7XG4gICAgICAgICAgY29scy5wdXNoKHtcbiAgICAgICAgICAgIGhvdmVyOiBmYWxzZSxcbiAgICAgICAgICAgIGRhdGU6IHBhcnNlSW50KGZvcm1hdChzdGFydERhdGVGbiwgJ3QnKSwgMTApLFxuICAgICAgICAgICAgdGl0bGU6IHRoaXMuY29tcHV0ZU5hbWUobW9udGgsIGMsICd5eXl5JyksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29scy5wdXNoKG51bGwpO1xuICAgICAgICB0aGlzLl9kaW1lbnNpb25zID0gW2NvbHNdO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLm1vbnRoTW9kZSkge1xuICAgICAgICB0aGlzLl9kYXlOYW1lc09mV2VlayA9IFtdO1xuICAgICAgICB0aGlzLl9kaW1lbnNpb25zID0gW1xuICAgICAgICAgIHRoaXMuX21vbnRoc0xpc3QubWFwKChtb250aCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnREYXRlU3RyaW5nID0gYDAxLyR7bW9udGh9LyR7eWVhcn1gO1xuICAgICAgICAgICAgY29uc3Qgc3RhcnREYXRlRm4gPSBwYXJzZShzdGFydERhdGVTdHJpbmcsICdkZC9NTS95eXl5JywgbmV3IERhdGUoKSwgeyBhd2FyZU9mVW5pY29kZVRva2VuczogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGhvdmVyOiBmYWxzZSxcbiAgICAgICAgICAgICAgZGF0ZTogcGFyc2VJbnQoZm9ybWF0KHN0YXJ0RGF0ZUZuLCAndCcpLCAxMCksXG4gICAgICAgICAgICAgIHRpdGxlOiB0aGlzLmNvbXB1dGVOYW1lKG1vbnRoLCB0aGlzLnllYXIsICdNTU0nKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSksXG4gICAgICAgIF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl91cGRhdGVEYXlzKCk7XG4gICAgICAgIGxldCBtb250aE1pbnVzID0gbW9udGg7XG4gICAgICAgIG1vbnRoTWludXMgPSBtb250aE1pbnVzLnN1YnN0cmluZyhtb250aE1pbnVzLmxlbmd0aCAtIDIpO1xuICAgICAgICBsZXQgc3RhcnREYXRlU3RyaW5nID0gYDAxLyR7bW9udGhNaW51c30vJHt5ZWFyfWA7XG4gICAgICAgIGxldCBzdGFydERhdGVGbiA9IHBhcnNlKHN0YXJ0RGF0ZVN0cmluZywgJ2RkL01NL3l5eXknLCBuZXcgRGF0ZSgpLCB7IGF3YXJlT2ZVbmljb2RlVG9rZW5zOiB0cnVlIH0pO1xuICAgICAgICBjb25zdCBlbmREYXRlRm4gPSBlbmRPZk1vbnRoKHN0YXJ0RGF0ZUZuKTtcbiAgICAgICAgY29uc3QgZW5kRGF0ZVN0cmluZyA9IGZvcm1hdChlbmREYXRlRm4sICdkZC9NTS95eXl5JywgeyBhd2FyZU9mVW5pY29kZVRva2VuczogdHJ1ZSB9KTtcblxuICAgICAgICBjb25zdCBmaXJzdERheU9mV2VlayA9IHRoaXMubG9jYWxlLm9wdGlvbnMud2Vla1N0YXJ0c09uO1xuICAgICAgICBjb25zdCByb3dzID0gW107XG4gICAgICAgIGxldCBjb2x1bW5zID0gW107XG5cbiAgICAgICAgY29uc3QgbGFzdERheU9mV2VlayA9IDY7XG5cbiAgICAgICAgd2hpbGUgKHN0YXJ0RGF0ZVN0cmluZyAhPT0gZW5kRGF0ZVN0cmluZykge1xuICAgICAgICAgIGxldCBkYXlOdW1iZXJGbiA9IGdldERheShzdGFydERhdGVGbikgLSBmaXJzdERheU9mV2VlaztcbiAgICAgICAgICBpZiAoZGF5TnVtYmVyRm4gPCAwKSB7XG4gICAgICAgICAgICBkYXlOdW1iZXJGbiA9IDY7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgY29sdW1uRm4gPSB7XG4gICAgICAgICAgICBob3ZlcjogZmFsc2UsXG4gICAgICAgICAgICBkYXRlOiBwYXJzZUludChmb3JtYXQoc3RhcnREYXRlRm4sICd0JyksIDEwKSxcbiAgICAgICAgICAgIHRpdGxlOiBwYXJzZUludChmb3JtYXQoc3RhcnREYXRlRm4sICdkJywgeyBhd2FyZU9mVW5pY29kZVRva2VuczogdHJ1ZSB9KSwgMTApLFxuICAgICAgICAgIH07XG4gICAgICAgICAgY29sdW1ucy5wdXNoKGNvbHVtbkZuKTtcblxuICAgICAgICAgIGlmIChkYXlOdW1iZXJGbiA9PT0gbGFzdERheU9mV2Vlaykge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IGNvbHVtbnMubGVuZ3RoOyBpIDwgbGFzdERheU9mV2VlayArIDE7IGkgKz0gMSkge1xuICAgICAgICAgICAgICBjb2x1bW5zLnVuc2hpZnQoMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByb3dzLnB1c2goY29sdW1ucy5zbGljZSgpKTtcbiAgICAgICAgICAgIGNvbHVtbnMgPSBbXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzdGFydERhdGVGbiA9IGFkZERheXMoc3RhcnREYXRlRm4sIDEpO1xuICAgICAgICAgIHN0YXJ0RGF0ZVN0cmluZyA9IGZvcm1hdChzdGFydERhdGVGbiwgJ2RkL01NL3l5eXknLCB7IGF3YXJlT2ZVbmljb2RlVG9rZW5zOiB0cnVlIH0pO1xuXG4gICAgICAgICAgaWYgKHN0YXJ0RGF0ZVN0cmluZyA9PT0gZW5kRGF0ZVN0cmluZykge1xuICAgICAgICAgICAgY29uc3QgZW5kQ29sdW1uRm4gPSB7XG4gICAgICAgICAgICAgIGhvdmVyOiBmYWxzZSxcbiAgICAgICAgICAgICAgZGF0ZTogcGFyc2VJbnQoZm9ybWF0KHN0YXJ0RGF0ZUZuLCAndCcpLCAxMCksXG4gICAgICAgICAgICAgIHRpdGxlOiBwYXJzZUludChmb3JtYXQoc3RhcnREYXRlRm4sICdkJywgeyBhd2FyZU9mVW5pY29kZVRva2VuczogdHJ1ZSB9KSwgMTApLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbHVtbnMucHVzaChlbmRDb2x1bW5Gbik7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gY29sdW1ucy5sZW5ndGg7IGkgPD0gbGFzdERheU9mV2VlazsgaSArPSAxKSB7XG4gICAgICAgICAgICAgIGNvbHVtbnMucHVzaCgwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJvd3MucHVzaChjb2x1bW5zLnNsaWNlKCkpO1xuICAgICAgICAgICAgY29sdW1ucyA9IFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9kaW1lbnNpb25zID0gcm93cztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRZZWFySW50ZXJ2YWwoeWVhciA9IHRoaXMueWVhcikge1xuICAgIGxldCBzdGFydCA9IHBhcnNlSW50KHllYXIsIDEwKTtcbiAgICB3aGlsZSAoc3RhcnQgJSAxMCAhPT0gMCkge1xuICAgICAgc3RhcnQtLTtcbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhcnQsIGVuZDogc3RhcnQgKyAxMCB9O1xuICB9XG5cbiAgY29tcHV0ZU5hbWUobW9udGgsIHllYXIsIF9mb3JtYXQgPSAnTU1NTScpIHtcbiAgICBpZiAobW9udGggJiYgeWVhcikge1xuICAgICAgY29uc3QgZGF0ZUZuID0gcGFyc2UoYCR7bW9udGh9LyR7eWVhcn1gLCAnTU0veXl5eScsIG5ldyBEYXRlKCkpO1xuICAgICAgcmV0dXJuIGZvcm1hdChkYXRlRm4sIF9mb3JtYXQsIHsgbG9jYWxlOiB0aGlzLmxvY2FsZSB9KTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgY29tcHV0ZUN1cnJlbnRZZWFyTmFtZSgpIHtcbiAgICBpZiAodGhpcy55ZWFyTW9kZSkge1xuICAgICAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSB0aGlzLmdldFllYXJJbnRlcnZhbCgpO1xuICAgICAgcmV0dXJuIGAke3N0YXJ0fS0ke2VuZCAtIDF9YDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMueWVhcjtcbiAgfVxuXG4gIF9vblNlbGVjdEhvdXIodmFsdWUpIHtcbiAgICB0aGlzLl9ob3VyID0gdmFsdWU7XG4gICAgdGhpcy5fdXBkYXRlVGltZSgpO1xuICB9XG5cbiAgX29uU2VsZWN0TWludXRlKHZhbHVlKSB7XG4gICAgdGhpcy5fbWludXRlID0gdmFsdWU7XG4gICAgdGhpcy5fdXBkYXRlVGltZSgpO1xuICB9XG5cbiAgX29uU2VsZWN0U2Vjb25kKHZhbHVlKSB7XG4gICAgdGhpcy5fc2Vjb25kID0gdmFsdWU7XG4gICAgdGhpcy5fdXBkYXRlVGltZSgpO1xuICB9XG5cbiAgX29uU2VsZWN0TW9udGgoKSB7XG4gICAgaWYgKHRoaXMubW9udGhNb2RlKSB7XG4gICAgICB0aGlzLl9mcm9tID0gdGhpcy5fZGF0ZUZyb207XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2RhdGVGcm9tID0gdGhpcy5fZnJvbTtcbiAgICAgIHRoaXMuX2Zyb20gPSBudWxsO1xuICAgIH1cbiAgICB0aGlzLnllYXJNb2RlID0gZmFsc2U7XG4gICAgdGhpcy5tb250aE1vZGUgPSAhdGhpcy5tb250aE1vZGU7XG4gICAgdGhpcy55ZWFyQW5kTW9udGhDaGFuZ2VkKHRoaXMueWVhciwgdGhpcy5tb250aCk7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnbW9udGgtbW9kZScsIHsgbW9kZTogdGhpcy5tb250aE1vZGUsIG1vbnRoOiB0aGlzLm1vbnRoLCB5ZWFyOiB0aGlzLnllYXIgfSk7XG4gIH1cblxuICBfb25TZWxlY3RZZWFyKCkge1xuICAgIGlmICh0aGlzLnllYXJNb2RlKSB7XG4gICAgICB0aGlzLl9mcm9tID0gdGhpcy5fZGF0ZUZyb207XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2RhdGVGcm9tID0gdGhpcy5fZnJvbTtcbiAgICAgIHRoaXMuX2Zyb20gPSBudWxsO1xuICAgIH1cbiAgICB0aGlzLm1vbnRoTW9kZSA9IGZhbHNlO1xuICAgIHRoaXMueWVhck1vZGUgPSAhdGhpcy55ZWFyTW9kZTtcbiAgICB0aGlzLnllYXJBbmRNb250aENoYW5nZWQodGhpcy55ZWFyLCB0aGlzLm1vbnRoKTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICd5ZWFyLW1vZGUnLCB7IG1vZGU6IHRoaXMueWVhck1vZGUsIG1vbnRoOiB0aGlzLm1vbnRoLCB5ZWFyOiB0aGlzLnllYXIgfSk7XG4gIH1cblxuICBnZXQgZGF0ZXRpbWVTZWxlY3RlZCgpIHtcbiAgICBpZiAodGhpcy5pc1N0cmljdFRpbWUoKSAmJiB0aGlzLl9mcm9tID09IG51bGwpIHtcbiAgICAgIHRoaXMuX2Zyb20gPSBuZXcgRGF0ZSgpLnZhbHVlT2YoKSAvIDEwMDA7XG4gICAgfVxuICAgIGxldCBzZWxlY3RlZERhdGUgPSBuZXcgRGF0ZSh0aGlzLl9mcm9tICogMTAwMCk7XG4gICAgc2VsZWN0ZWREYXRlID0gc2V0SG91cnMoc2VsZWN0ZWREYXRlLCBwYXJzZUludCh0aGlzLl9ob3VyID8gdGhpcy5faG91ciA6IDAsIDEwKSk7XG4gICAgc2VsZWN0ZWREYXRlID0gc2V0TWludXRlcyhzZWxlY3RlZERhdGUsIHBhcnNlSW50KHRoaXMuX21pbnV0ZSA/IHRoaXMuX21pbnV0ZSA6IDAsIDEwKSk7XG4gICAgcmV0dXJuIHNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkgLyAxMDAwO1xuICB9XG5cbiAgX29uRGF0ZVRpbWVTZWxlY3RlZCgpIHtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5kYXRldGltZVNlbGVjdGVkO1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2RhdGUtZnJvbS1jaGFuZ2VkJywgeyBkZXRhaWw6IHsgdmFsdWU6IHRoaXMudmFsdWUgfSB9KSk7XG4gIH1cblxuICBfb25Ob3coKSB7XG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICBpZiAoIXRoaXMuaXNTdHJpY3RUaW1lKCkpIHtcbiAgICAgIG5vdy5zZXRTZWNvbmRzKDAsIDApO1xuICAgIH1cbiAgICB0aGlzLl9mcm9tID0gbm93LmdldFRpbWUoKSAvIDEwMDA7XG4gICAgdGhpcy5tb250aCA9IGZvcm1hdChub3csICdNTScpO1xuICAgIHRoaXMueWVhciA9IGZvcm1hdChub3csICd5eXl5Jyk7XG4gICAgdGhpcy5faG91ciA9IGZvcm1hdChub3csICdISCcpO1xuICAgIHRoaXMuX21pbnV0ZSA9IGZvcm1hdChub3csICdtbScpO1xuICAgIGlmICh0aGlzLmlzU3RyaWN0VGltZSgpKSB7XG4gICAgICB0aGlzLl9zZWNvbmQgPSBmb3JtYXQobm93LCAnbW0nKTtcbiAgICB9XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnZGF0ZS1mcm9tLWNoYW5nZWQnLCB7IGRldGFpbDogeyB2YWx1ZTogdGhpcy5fZnJvbSB9IH0pKTtcbiAgfVxuXG4gIGdldCBkaXNhYmxlVmFsaWRhdGlvbigpIHtcbiAgICBjb25zdCBkYXRlID0gdGhpcy5kYXRldGltZVNlbGVjdGVkO1xuICAgIGlmIChkYXRlKSB7XG4gICAgICBpZiAodGhpcy5taW4gJiYgZGF0ZSA8IHRoaXMubWluKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMubWF4ICYmIGRhdGUgPiB0aGlzLm1heCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgX29uU2VsZWN0KHsgZGV0YWlsIH0pIHtcbiAgICBjb25zdCB7IGRhdGUgfSA9IGRldGFpbDtcbiAgICBpZiAodGhpcy55ZWFyTW9kZSkge1xuICAgICAgdGhpcy55ZWFyTW9kZSA9IGZhbHNlO1xuICAgICAgdGhpcy5tb250aE1vZGUgPSB0cnVlO1xuICAgICAgdGhpcy5fZnJvbSA9IHRoaXMuX2RhdGVGcm9tO1xuICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gbmV3IERhdGUoZGF0ZSAqIDEwMDApO1xuICAgICAgdGhpcy55ZWFyID0gZm9ybWF0KHNlbGVjdGVkRGF0ZSwgJ3l5eXknKTtcbiAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ3llYXItY2hhbmdlZCcsIHsgeWVhcjogdGhpcy55ZWFyIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5tb250aE1vZGUpIHtcbiAgICAgIHRoaXMubW9udGhNb2RlID0gZmFsc2U7XG4gICAgICB0aGlzLl9mcm9tID0gdGhpcy5fZGF0ZUZyb207XG4gICAgICBjb25zdCBzZWxlY3RlZERhdGUgPSBuZXcgRGF0ZShkYXRlICogMTAwMCk7XG4gICAgICB0aGlzLm1vbnRoID0gZm9ybWF0KHNlbGVjdGVkRGF0ZSwgJ01NJyk7XG4gICAgICB0aGlzLnllYXIgPSBmb3JtYXQoc2VsZWN0ZWREYXRlLCAneXl5eScpO1xuICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnbW9udGgtY2hhbmdlZCcsIHsgbW9udGg6IHRoaXMubW9udGgsIHllYXI6IHRoaXMueWVhciB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudGltZSkge1xuICAgICAgdGhpcy5fZnJvbSA9IGRhdGU7XG4gICAgICB0aGlzLl91cGRhdGVUaW1lKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJhbmdlKSB7XG4gICAgICBpZiAodGhpcy5fZnJvbSAmJiB0aGlzLl90bykge1xuICAgICAgICB0aGlzLl9mcm9tID0gZGF0ZTtcbiAgICAgICAgdGhpcy5fdG8gPSBudWxsO1xuICAgICAgICB0aGlzLmhvdmVyZWREYXRlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdob3ZlcmVkLWRhdGUtY2hhbmdlZCcsIHsgZGV0YWlsOiB7IHZhbHVlOiB0aGlzLmhvdmVyZWREYXRlIH0gfSkpO1xuICAgICAgfSBlbHNlIGlmICghdGhpcy5fZnJvbSB8fCAodGhpcy5fZnJvbSAmJiBkYXRlIDwgdGhpcy5fZnJvbSkpIHtcbiAgICAgICAgdGhpcy5fZnJvbSA9IGRhdGU7XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLl90byB8fCAodGhpcy5fdG8gJiYgZGF0ZSA+IHRoaXMuX3RvKSkge1xuICAgICAgICB0aGlzLl90byA9IGRhdGU7XG4gICAgICB9XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdkYXRlLWZyb20tY2hhbmdlZCcsIHsgZGV0YWlsOiB7IHZhbHVlOiB0aGlzLl9mcm9tIH0gfSkpO1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnZGF0ZS10by1jaGFuZ2VkJywgeyBkZXRhaWw6IHsgdmFsdWU6IHRoaXMuX3RvIH0gfSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9mcm9tID0gZGF0ZTtcbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2RhdGUtZnJvbS1jaGFuZ2VkJywgeyBkZXRhaWw6IHsgdmFsdWU6IHRoaXMuX2Zyb20gfSB9KSk7XG4gICAgfVxuICB9XG5cbiAgX29uSG92ZXIoZXZlbnQpIHtcbiAgICBpZiAodGhpcy5yYW5nZSkge1xuICAgICAgdGhpcy5ob3ZlcmVkRGF0ZSA9IGV2ZW50LmRldGFpbC5kYXRlO1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnaG92ZXJlZC1kYXRlLWNoYW5nZWQnLCB7IGRldGFpbDogeyB2YWx1ZTogdGhpcy5ob3ZlcmVkRGF0ZSB9IH0pKTtcbiAgICB9XG4gIH1cblxuICBfb25OZXh0TW9udGgoKSB7XG4gICAgY29uc3QgbW9udGggPSBwYXJzZSh0aGlzLm1vbnRoLCAnTU0nLCBuZXcgRGF0ZSgpKTtcbiAgICBjb25zdCBtb250aFBsdXNEYXRlID0gYWRkTW9udGhzKG1vbnRoLCAxKTtcbiAgICBjb25zdCBtb250aFBsdXNTdHJpbmcgPSBmb3JtYXQobW9udGhQbHVzRGF0ZSwgJ01NJywgeyBsb2NhbGU6IHRoaXMubG9jYWxlIH0pO1xuXG4gICAgdGhpcy5tb250aCA9IG1vbnRoUGx1c1N0cmluZztcbiAgICBpZiAodGhpcy5tb250aCA9PT0gJzAxJykge1xuICAgICAgY29uc3QgeWVhciA9IHBhcnNlKHRoaXMueWVhciwgJ3l5eXknLCBuZXcgRGF0ZSgpKTtcbiAgICAgIGNvbnN0IHllYXJQbHVzRGF0ZSA9IGFkZFllYXJzKHllYXIsIDEpO1xuICAgICAgY29uc3QgeWVhclBsdXNTdHJpbmcgPSBmb3JtYXQoeWVhclBsdXNEYXRlLCAneXl5eScsIHsgbG9jYWxlOiB0aGlzLmxvY2FsZSB9KTtcbiAgICAgIHRoaXMueWVhciA9IHllYXJQbHVzU3RyaW5nO1xuICAgIH1cbiAgfVxuXG4gIF9vblByZXZNb250aCgpIHtcbiAgICBjb25zdCBtb250aCA9IHBhcnNlKHRoaXMubW9udGgsICdNTScsIG5ldyBEYXRlKCkpO1xuICAgIGNvbnN0IG1vbnRoTWludXNEYXRlID0gc3ViTW9udGhzKG1vbnRoLCAxKTtcbiAgICBjb25zdCBtb250aE1pbnVzU3RyaW5nID0gZm9ybWF0KG1vbnRoTWludXNEYXRlLCAnTU0nLCB7IGxvY2FsZTogdGhpcy5sb2NhbGUgfSk7XG5cbiAgICB0aGlzLm1vbnRoID0gbW9udGhNaW51c1N0cmluZztcbiAgICBpZiAodGhpcy5tb250aCA9PT0gJzEyJykge1xuICAgICAgY29uc3QgeWVhciA9IHBhcnNlKHRoaXMueWVhciwgJ3l5eXknLCBuZXcgRGF0ZSgpKTtcbiAgICAgIGNvbnN0IHllYXJNaW51c0RhdGUgPSBzdWJZZWFycyh5ZWFyLCAxKTtcbiAgICAgIGNvbnN0IHllYXJNaW51c1N0cmluZyA9IGZvcm1hdCh5ZWFyTWludXNEYXRlLCAneXl5eScsIHsgbG9jYWxlOiB0aGlzLmxvY2FsZSB9KTtcbiAgICAgIHRoaXMueWVhciA9IHllYXJNaW51c1N0cmluZztcbiAgICB9XG4gIH1cblxuICBfb25OZXh0WWVhcigpIHtcbiAgICBpZiAodGhpcy55ZWFyTW9kZSkge1xuICAgICAgdGhpcy55ZWFyID0gcGFyc2VJbnQodGhpcy55ZWFyLCAxMCkgKyAxMDtcbiAgICB9XG4gICAgY29uc3QgeWVhciA9IHBhcnNlKHRoaXMueWVhciwgJ3l5eXknLCBuZXcgRGF0ZSgpKTtcbiAgICBjb25zdCB5ZWFyUGx1c0RhdGUgPSBhZGRZZWFycyh5ZWFyLCAxKTtcbiAgICBjb25zdCB5ZWFyUGx1c1N0cmluZyA9IGZvcm1hdCh5ZWFyUGx1c0RhdGUsICd5eXl5JywgeyBsb2NhbGU6IHRoaXMubG9jYWxlIH0pO1xuICAgIHRoaXMueWVhciA9IHllYXJQbHVzU3RyaW5nO1xuICB9XG5cbiAgX29uUHJldlllYXIoKSB7XG4gICAgaWYgKHRoaXMueWVhck1vZGUpIHtcbiAgICAgIHRoaXMueWVhciA9IHBhcnNlSW50KHRoaXMueWVhciwgMTApIC0gMTA7XG4gICAgfVxuICAgIGNvbnN0IHllYXIgPSBwYXJzZSh0aGlzLnllYXIsICd5eXl5JywgbmV3IERhdGUoKSk7XG4gICAgY29uc3QgeWVhck1pbnVzRGF0ZSA9IHN1YlllYXJzKHllYXIsIDEpO1xuICAgIGNvbnN0IHllYXJNaW51c1N0cmluZyA9IGZvcm1hdCh5ZWFyTWludXNEYXRlLCAneXl5eScsIHsgbG9jYWxlOiB0aGlzLmxvY2FsZSB9KTtcbiAgICB0aGlzLnllYXIgPSB5ZWFyTWludXNTdHJpbmc7XG4gIH1cblxuICBnb1RvZGF5KCkge1xuICAgIHRoaXMubW9udGggPSBgMCR7Z2V0TW9udGgobmV3IERhdGUoKSkgKyAxfWAuc2xpY2UoLTIpO1xuICAgIHRoaXMueWVhciA9IGdldFllYXIobmV3IERhdGUoKSk7XG4gICAgdGhpcy5fb25TZWxlY3QoeyBkZXRhaWw6IHsgZGF0ZTogbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIH0gfSk7XG4gIH1cblxuICBoYXNHb1RvZGF5KCkge1xuICAgIHJldHVybiAhdGhpcy5yYW5nZSAmJiAhdGhpcy50aW1lICYmICF0aGlzLm1vbnRoTW9kZSAmJiAhdGhpcy55ZWFyTW9kZSAmJiB0aGlzLl9oYXNHb1RvZGF5O1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LWRhdGUtcGlja2VyLWNhbGVuZGFyJywgR3ZEYXRlUGlja2VyQ2FsZW5kYXIpO1xuIl19
|
|
813
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2F0b21zL2d2LWRhdGUtcGlja2VyLWNhbGVuZGFyLmpzIl0sIm5hbWVzIjpbImFkZERheXMiLCJhZGRNb250aHMiLCJhZGRZZWFycyIsImVuZE9mTW9udGgiLCJmb3JtYXQiLCJnZXREYXkiLCJnZXRNb250aCIsImdldFllYXIiLCJpc0FmdGVyIiwiaXNCZWZvcmUiLCJwYXJzZSIsInNldEhvdXJzIiwic2V0TWludXRlcyIsInN0YXJ0T2ZEYXkiLCJzdWJNb250aHMiLCJzdWJZZWFycyIsImNsYXNzTWFwIiwiZGlzcGF0Y2hDdXN0b21FdmVudCIsImkxOG4iLCJMaXRFbGVtZW50IiwiY3NzIiwiaHRtbCIsInVudGlsIiwiR3ZEYXRlUGlja2VyQ2FsZW5kYXIiLCJwcm9wZXJ0aWVzIiwiZGF0ZUZyb20iLCJ0eXBlIiwiTnVtYmVyIiwiZGF0ZVRvIiwiZGlzYWJsZWREYXRlcyIsIkFycmF5IiwiaG92ZXJlZERhdGUiLCJsb2NhbGUiLCJPYmplY3QiLCJtYXgiLCJtaW4iLCJtb250aCIsIlN0cmluZyIsIm1vbnRoTW9kZSIsIkJvb2xlYW4iLCJuZXh0IiwicHJldiIsInJhbmdlIiwidGltZSIsInNtYWxsIiwicmVmbGVjdCIsInN0cmljdCIsInllYXIiLCJ5ZWFyTW9kZSIsIl9kYXlOYW1lc09mV2VlayIsImF0dHJpYnV0ZSIsIl9kaW1lbnNpb25zIiwiX2hhc0dvVG9kYXkiLCJfaG91ciIsIl9taW51dGUiLCJfc2Vjb25kIiwiX21vbnRoc0xpc3QiLCJfbG9jYWxlIiwiX2Zyb20iLCJfdG8iLCJzdHlsZXMiLCJjb25zdHJ1Y3RvciIsImN1cnJlbnREYXRlIiwicGFyc2VJbnQiLCJEYXRlIiwibm93IiwiX2hvdXJzIiwiY29tcHV0ZUFycmF5T2ZUaW1lIiwiX21pbnV0ZXMiLCJfc2Vjb25kcyIsInZhbHVlIiwiZGF0ZSIsImlzU3RyaWN0VGltZSIsInNpemUiLCJmaWxsIiwibWFwIiwiYSIsImkiLCJ0b1N0cmluZyIsImxlbmd0aCIsIl9yZW5kZXJQcmV2aW91c05hdiIsIl9vblByZXZZZWFyIiwiX29uUHJldk1vbnRoIiwiX3JlbmRlckN1cnJlbnROYXYiLCJfb25TZWxlY3RNb250aCIsImNvbXB1dGVOYW1lIiwiX29uU2VsZWN0WWVhciIsImNvbXB1dGVDdXJyZW50WWVhck5hbWUiLCJfcmVuZGVyTmV4dE5hdiIsIl9vbk5leHRNb250aCIsIl9vbk5leHRZZWFyIiwiX3JlbmRlckRheXMiLCJkYXlOYW1lT2ZXZWVrIiwiZGltZW5zaW9uIiwiZGF0YSIsImlzQ3VycmVudERhdGUiLCJfb25Ib3ZlciIsIl9vblNlbGVjdCIsInJlbmRlciIsImNsYXNzZXMiLCJnZXRUaW1lIiwidmFsIiwiX29uU2VsZWN0SG91ciIsImJpbmQiLCJob3VyIiwic2VsZWN0ZWQiLCJkaXNhYmxlZCIsImlzSG91cnNEaXNhYmxlZCIsIl9vblNlbGVjdE1pbnV0ZSIsIm1pbnV0ZSIsImlzTWludXRlc0Rpc2FibGVkIiwiX29uU2VsZWN0U2Vjb25kIiwic2Vjb25kIiwiaXNTZWNvbmRzRGlzYWJsZWQiLCJoYXNHb1RvZGF5IiwiZ29Ub2RheSIsIl9vbk5vdyIsIl9vbkRhdGVUaW1lU2VsZWN0ZWQiLCJkaXNhYmxlVmFsaWRhdGlvbiIsInNlbGVjdGVkRGF0ZSIsIm1pbkRhdGUiLCJtYXhEYXRlIiwiX3VwZGF0ZVRpbWUiLCJzZXRUaW1lb3V0Iiwic2hhZG93Um9vdCIsInF1ZXJ5U2VsZWN0b3IiLCJ0ZXh0Q29udGVudCIsInVwZGF0ZWQiLCJoYXMiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJkZXRhaWwiLCJ5ZWFyQW5kTW9udGhDaGFuZ2VkIiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJwYXJlbnROb2RlIiwic2Nyb2xsVG9wIiwib2Zmc2V0VG9wIiwiX3VwZGF0ZURheXMiLCJkYXlOYW1lcyIsInB1c2giLCJsb2NhbGl6ZSIsImRheSIsIndpZHRoIiwiZmlyc3REYXlPZldlZWsiLCJvcHRpb25zIiwid2Vla1N0YXJ0c09uIiwidG1wIiwic2xpY2UiLCJzcGxpY2UiLCJjb25jYXQiLCJjb2xzIiwic3RhcnQiLCJlbmQiLCJnZXRZZWFySW50ZXJ2YWwiLCJjIiwic3RhcnREYXRlU3RyaW5nIiwic3RhcnREYXRlRm4iLCJhd2FyZU9mVW5pY29kZVRva2VucyIsImhvdmVyIiwidGl0bGUiLCJtb250aE1pbnVzIiwic3Vic3RyaW5nIiwiZW5kRGF0ZUZuIiwiZW5kRGF0ZVN0cmluZyIsInJvd3MiLCJjb2x1bW5zIiwibGFzdERheU9mV2VlayIsImRheU51bWJlckZuIiwiY29sdW1uRm4iLCJ1bnNoaWZ0IiwiZW5kQ29sdW1uRm4iLCJfZm9ybWF0IiwiZGF0ZUZuIiwiX2RhdGVGcm9tIiwibW9kZSIsImRhdGV0aW1lU2VsZWN0ZWQiLCJ2YWx1ZU9mIiwic2V0U2Vjb25kcyIsInVuZGVmaW5lZCIsImV2ZW50IiwibW9udGhQbHVzRGF0ZSIsIm1vbnRoUGx1c1N0cmluZyIsInllYXJQbHVzRGF0ZSIsInllYXJQbHVzU3RyaW5nIiwibW9udGhNaW51c0RhdGUiLCJtb250aE1pbnVzU3RyaW5nIiwieWVhck1pbnVzRGF0ZSIsInllYXJNaW51c1N0cmluZyIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLHVCQUFQO0FBQ0EsU0FDRUEsT0FERixFQUVFQyxTQUZGLEVBR0VDLFFBSEYsRUFJRUMsVUFKRixFQUtFQyxNQUxGLEVBTUVDLE1BTkYsRUFPRUMsUUFQRixFQVFFQyxPQVJGLEVBU0VDLE9BVEYsRUFVRUMsUUFWRixFQVdFQyxLQVhGLEVBWUVDLFFBWkYsRUFhRUMsVUFiRixFQWNFQyxVQWRGLEVBZUVDLFNBZkYsRUFnQkVDLFFBaEJGLFFBaUJPLFVBakJQO0FBa0JBLFNBQVNDLFFBQVQsUUFBeUIsMEJBQXpC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QSxVQUFVLEdBQUc7QUFDWCxXQUFPLENBQUMsS0FBS3hFLEtBQU4sSUFBZSxDQUFDLEtBQUtDLElBQXJCLElBQTZCLENBQUMsS0FBS0wsU0FBbkMsSUFBZ0QsQ0FBQyxLQUFLVSxRQUF0RCxJQUFrRSxLQUFLSSxXQUE5RTtBQUNEOztBQTN6QmtEO0FBOHpCckR5SSxNQUFNLENBQUNDLGNBQVAsQ0FBc0JDLE1BQXRCLENBQTZCLHlCQUE3QixFQUF3RHhLLG9CQUF4RCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgJy4vZ3YtZGF0ZS1waWNrZXItY2VsbCc7XG5pbXBvcnQge1xuICBhZGREYXlzLFxuICBhZGRNb250aHMsXG4gIGFkZFllYXJzLFxuICBlbmRPZk1vbnRoLFxuICBmb3JtYXQsXG4gIGdldERheSxcbiAgZ2V0TW9udGgsXG4gIGdldFllYXIsXG4gIGlzQWZ0ZXIsXG4gIGlzQmVmb3JlLFxuICBwYXJzZSxcbiAgc2V0SG91cnMsXG4gIHNldE1pbnV0ZXMsXG4gIHN0YXJ0T2ZEYXksXG4gIHN1Yk1vbnRocyxcbiAgc3ViWWVhcnMsXG59IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IGRpc3BhdGNoQ3VzdG9tRXZlbnQgfSBmcm9tICcuLi9saWIvZXZlbnRzJztcbmltcG9ydCB7IGkxOG4gfSBmcm9tICcuLi9saWIvaTE4bic7XG5pbXBvcnQgeyBMaXRFbGVtZW50LCBjc3MsIGh0bWwgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgeyB1bnRpbCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3VudGlsJztcblxuLyoqXG4gKiBEYXRlIFBpY2tlciBDYWxlbmRhclxuICpcbiAqICMjIERldGFpbHNcbiAqICogaGFzIEB0aGVtZSBmYWNldFxuICpcbiAqIEBmaXJlcyBndi1kYXRlLXBpY2tlci1jZWxsOnNlbGVjdCAtIEN1c3RvbSBldmVudCB3aGVuIHVzZXIgc2VsZWN0IGNlbGxcbiAqIEBmaXJlcyBndi1kYXRlLXBpY2tlci1jZWxsOmhvdmVyIC0gQ3VzdG9tIGV2ZW50IHdoZW4gdXNlciBob3ZlciBjZWxsXG4gKlxuICogQGF0dHIge051bWJlcn0gZGF0ZUZyb20gLSB1bml4IGRhdGUgZm9ybVxuICogQGF0dHIge051bWJlcn0gZGF0ZVRvIC0gdW5peCBkYXRlIHRvXG4gKiBAYXR0ciB7QXJyYXl9IGRpc2FibGVkRGF0ZXMgLSBhcnJheSBvZiBkaXNhYmxlZCBkYXRlXG4gKiBAYXR0ciB7TnVtYmVyfSBob3ZlcmVkRGF0ZSAtIHVuaXggaG92ZXJlZCBkYXRlXG4gKiBAYXR0ciB7TnVtYmVyfSBtaW4gLSB1bml4IG1pbiBkYXRlXG4gKiBAYXR0ciB7TnVtYmVyfSBtYXggLSB1bml4IG1heCBkYXRlXG4gKiBAYXR0ciB7T2JqZWN0fSBsb2NhbGUgLSBkYXRlLWZucyBsb2NhbGUgb2JqZWN0XG4gKlxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1kYXRlLXBpY2tlci1ob3Zlci0tYmdjPXZhcigtLWd2LXRoZW1lLWNvbG9yLWxpZ2h0LCAjODZjM2QwKV0gLSBIb3ZlciBiYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LWRhdGUtcGlja2VyLWhvdmVyLS1jPXZhcigtLWd2LXRoZW1lLWZvbnQtY29sb3ItZGFyaywgIzI2MjYyNildIC0gSG92ZXIgY29sb3JcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtZGF0ZS1waWNrZXItc2VsZWN0ZWQtLWJnYz12YXIoLS1ndi10aGVtZS1jb2xvciwgIzVhNzY4NCldIC0gU2VsZWN0ZWQgYmFja2dyb3VuZCBjb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1kYXRlLXBpY2tlci1zZWxlY3RlZC0tYz12YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWxpZ2h0LCAjZmZmZmZmKV0gLSBTZWxlY3RlZCBjb2xvclxuICovXG5leHBvcnQgY2xhc3MgR3ZEYXRlUGlja2VyQ2FsZW5kYXIgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBkYXRlRnJvbTogeyB0eXBlOiBOdW1iZXIgfSxcbiAgICAgIGRhdGVUbzogeyB0eXBlOiBOdW1iZXIgfSxcbiAgICAgIGRpc2FibGVkRGF0ZXM6IHsgdHlwZTogQXJyYXkgfSxcbiAgICAgIGhvdmVyZWREYXRlOiB7IHR5cGU6IE51bWJlciB9LFxuICAgICAgbG9jYWxlOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgbWF4OiB7IHR5cGU6IE51bWJlciB9LFxuICAgICAgbWluOiB7IHR5cGU6IE51bWJlciB9LFxuICAgICAgbW9udGg6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBtb250aE1vZGU6IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgbmV4dDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBwcmV2OiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIHJhbmdlOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIHRpbWU6IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgc21hbGw6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgc3RyaWN0OiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIHllYXI6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICB5ZWFyTW9kZTogeyB0eXBlOiBCb29sZWFuIH0sXG5cbiAgICAgIF9kYXlOYW1lc09mV2VlazogeyB0eXBlOiBBcnJheSwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgX2RpbWVuc2lvbnM6IHsgdHlwZTogQXJyYXksIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIF9oYXNHb1RvZGF5OiB7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIF9ob3VyOiB7IHR5cGU6IE51bWJlciwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgX21pbnV0ZTogeyB0eXBlOiBOdW1iZXIsIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIF9zZWNvbmQ6IHsgdHlwZTogTnVtYmVyLCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICBfbW9udGhzTGlzdDogeyB0eXBlOiBBcnJheSwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgX2xvY2FsZTogeyB0eXBlOiBPYmplY3QsIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIF9mcm9tOiB7IHR5cGU6IE51bWJlciwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgX3RvOiB7IHR5cGU6IE51bWJlciwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0ID4gZGl2IHtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLm5hdixcbiAgICAgICAgLmZvb3QsXG4gICAgICAgIC5uYXYtdGltZXMge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uYXYgLmN1cnJlbnQsXG4gICAgICAgIC5mb290IHtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubW9udGhOYW1lLFxuICAgICAgICAuZGF5IHtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb290LXRpbWUge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAuY2FsZW5kYXItZ3JpZCB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCAxZnIpO1xuICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjVyZW0gMCAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2FsZW5kYXItZ3JpZC1sYXJnZSB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIsXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIGF1dG8pO1xuICAgICAgICB9XG5cbiAgICAgICAgZ3YtZGF0ZS1waWNrZXItY2VsbCB7XG4gICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhbGVuZGFyLWdyaWQtbGFyZ2UgZ3YtZGF0ZS1waWNrZXItY2VsbCB7XG4gICAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhbGVuZGFyLWdyaWQsXG4gICAgICAgIC5mb290LFxuICAgICAgICAudGltZSB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyayk7XG4gICAgICAgIH1cblxuICAgICAgICAubmF2LXRpbWVzIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm5hdi10aW1lcyxcbiAgICAgICAgLnRpbWUge1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kYXkge1xuICAgICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgICB3aWR0aDogMzNweDtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW3NtYWxsXSkgLmRheSB7XG4gICAgICAgICAgaGVpZ2h0OiAyNXB4O1xuICAgICAgICAgIHdpZHRoOiAyNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmJveC1jb2wsXG4gICAgICAgIC50aW1lcyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ib3gtY29sIHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJveC1jb2w6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgd2lkdGg6IDI2MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW3NtYWxsXSkgLmJveC1jb2w6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgd2lkdGg6IDE5NXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmJveCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aW1lcyB7XG4gICAgICAgICAgbWF4LWhlaWdodDogMjM1cHg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgfVxuXG4gICAgICAgIC50aW1lIHtcbiAgICAgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICAgIG1pbi13aWR0aDogNTBweDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aW1lID4gZGl2IHtcbiAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW3NtYWxsXSkgLnRpbWUgPiBkaXYge1xuICAgICAgICAgIGhlaWdodDogMjVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aW1lID4gZGl2OmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ndi1kYXRlLXBpY2tlci1ob3Zlci0tYmdjLCB2YXIoLS1ndi10aGVtZS1jb2xvci1saWdodCwgIzg2YzNkMCkpO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ndi1kYXRlLXBpY2tlci1ob3Zlci0tYywgdmFyKC0tZ3YtdGhlbWUtZm9udC1jb2xvci1kYXJrLCAjMjYyNjI2KSk7XG4gICAgICAgIH1cblxuICAgICAgICAudGltZSA+IGRpdi5zZWxlY3RlZCB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ3YtZGF0ZS1waWNrZXItc2VsZWN0ZWQtLWJnYywgdmFyKC0tZ3YtdGhlbWUtY29sb3IsICM1YTc2ODQpKTtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tZ3YtZGF0ZS1waWNrZXItc2VsZWN0ZWQtLWMsIHZhcigtLWd2LXRoZW1lLWZvbnQtY29sb3ItbGlnaHQsICNmZmZmZmYpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aW1lID4gZGl2LmRpc2FibGVkIHtcbiAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgXTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fZGF5TmFtZXNPZldlZWsgPSBbXTtcbiAgICB0aGlzLl9tb250aHNMaXN0ID0gWycwMScsICcwMicsICcwMycsICcwNCcsICcwNScsICcwNicsICcwNycsICcwOCcsICcwOScsICcxMCcsICcxMScsICcxMiddO1xuICAgIHRoaXMucmFuZ2UgPSBmYWxzZTtcbiAgICB0aGlzLmN1cnJlbnREYXRlID0gcGFyc2VJbnQoZm9ybWF0KHN0YXJ0T2ZEYXkoRGF0ZS5ub3coKSksICd0JyksIDEwKTtcbiAgICB0aGlzLl9oYXNHb1RvZGF5ID0gdHJ1ZTtcblxuICAgIHRoaXMuX2hvdXJzID0gdGhpcy5jb21wdXRlQXJyYXlPZlRpbWUoMjQpO1xuICAgIHRoaXMuX21pbnV0ZXMgPSB0aGlzLmNvbXB1dGVBcnJheU9mVGltZSg2MCk7XG4gICAgdGhpcy5fc2Vjb25kcyA9IHRoaXMuY29tcHV0ZUFycmF5T2ZUaW1lKDYwKTtcbiAgfVxuXG4gIHNldCBkYXRlRnJvbSh2YWx1ZSkge1xuICAgIHRoaXMuX2Zyb20gPSB2YWx1ZTtcbiAgICBpZiAodGhpcy50aW1lICYmIHRoaXMuX2Zyb20pIHtcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLl9mcm9tICogMTAwMCk7XG4gICAgICB0aGlzLl9ob3VyID0gZm9ybWF0KGRhdGUsICdISCcpO1xuICAgICAgdGhpcy5fbWludXRlID0gZm9ybWF0KGRhdGUsICdtbScpO1xuICAgICAgaWYgKHRoaXMuaXNTdHJpY3RUaW1lKCkpIHtcbiAgICAgICAgdGhpcy5fc2Vjb25kID0gZm9ybWF0KGRhdGUsICdzcycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNldCBkYXRlVG8odmFsdWUpIHtcbiAgICB0aGlzLl90byA9IHZhbHVlO1xuICB9XG5cbiAgY29tcHV0ZUFycmF5T2ZUaW1lKHNpemUpIHtcbiAgICByZXR1cm4gbmV3IEFycmF5KHNpemUpLmZpbGwoJycpLm1hcCgoYSwgaSkgPT4ge1xuICAgICAgbGV0IHRpbWUgPSBpLnRvU3RyaW5nKCk7XG4gICAgICBpZiAodGltZS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgdGltZSA9IGAwJHt0aW1lfWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGltZTtcbiAgICB9KTtcbiAgfVxuXG4gIF9yZW5kZXJQcmV2aW91c05hdigpIHtcbiAgICBpZiAodGhpcy5wcmV2IHx8IHRoaXMubW9udGhNb2RlIHx8IHRoaXMueWVhck1vZGUpIHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICA8Z3YtYnV0dG9uIGxpbmsgaWNvbj1cIm5hdmlnYXRpb246YW5nbGUtZG91YmxlLWxlZnRcIiBAY2xpY2s9XCIke3RoaXMuX29uUHJldlllYXJ9XCIgP3NtYWxsPVwiJHt0aGlzLnNtYWxsfVwiPjwvZ3YtYnV0dG9uPlxuICAgICAgICAke3RoaXMubW9udGhNb2RlIHx8IHRoaXMueWVhck1vZGVcbiAgICAgICAgICA/ICcnXG4gICAgICAgICAgOiBodG1sYDxndi1idXR0b24gbGluayBpY29uPVwibmF2aWdhdGlvbjphbmdsZS1sZWZ0XCIgP3NtYWxsPVwiJHt0aGlzLnNtYWxsfVwiIEBjbGljaz1cIiR7dGhpcy5fb25QcmV2TW9udGh9XCI+PC9ndi1idXR0b24+YH1cbiAgICAgIGA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIF9yZW5kZXJDdXJyZW50TmF2KCkge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cImN1cnJlbnRcIj5cbiAgICAgICAgJHt0aGlzLnllYXJNb2RlXG4gICAgICAgICAgPyAnJ1xuICAgICAgICAgIDogaHRtbGA8Z3YtYnV0dG9uIGxpbmsgQGNsaWNrPVwiJHt0aGlzLl9vblNlbGVjdE1vbnRofVwiID9zbWFsbD1cIiR7dGhpcy5zbWFsbH1cIlxuICAgICAgICAgICAgICA+PHNwYW4gY2xhc3M9XCJtb250aE5hbWVcIj4ke3VudGlsKHRoaXMuY29tcHV0ZU5hbWUodGhpcy5tb250aCwgdGhpcy55ZWFyKSl9PC9zcGFuPjwvZ3YtYnV0dG9uXG4gICAgICAgICAgICA+YH1cbiAgICAgICAgPGd2LWJ1dHRvbiA/c21hbGw9XCIke3RoaXMuc21hbGx9XCIgbGluayBAY2xpY2s9XCIke3RoaXMuX29uU2VsZWN0WWVhcn1cIj4ke3RoaXMuY29tcHV0ZUN1cnJlbnRZZWFyTmFtZSgpfTwvZ3YtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIF9yZW5kZXJOZXh0TmF2KCkge1xuICAgIGlmICh0aGlzLm5leHQgfHwgdGhpcy5tb250aE1vZGUgfHwgdGhpcy55ZWFyTW9kZSkge1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICR7dGhpcy5tb250aE1vZGUgfHwgdGhpcy55ZWFyTW9kZVxuICAgICAgICAgID8gJydcbiAgICAgICAgICA6IGh0bWxgPGd2LWJ1dHRvbiBsaW5rIGljb249XCJuYXZpZ2F0aW9uOmFuZ2xlLXJpZ2h0XCIgP3NtYWxsPVwiJHt0aGlzLnNtYWxsfVwiIEBjbGljaz1cIiR7dGhpcy5fb25OZXh0TW9udGh9XCI+PC9ndi1idXR0b24+YH1cbiAgICAgICAgPGd2LWJ1dHRvbiA/c21hbGw9XCIke3RoaXMuc21hbGx9XCIgbGluayBpY29uPVwibmF2aWdhdGlvbjphbmdsZS1kb3VibGUtcmlnaHRcIiBAY2xpY2s9XCIke3RoaXMuX29uTmV4dFllYXJ9XCI+PC9ndi1idXR0b24+XG4gICAgICBgO1xuICAgIH1cbiAgfVxuXG4gIF9yZW5kZXJEYXlzKCkge1xuICAgIHJldHVybiBodG1sYCAke3RoaXMuX2RheU5hbWVzT2ZXZWVrICYmIHRoaXMuX2RheU5hbWVzT2ZXZWVrLm1hcCgoZGF5TmFtZU9mV2VlaykgPT4gaHRtbGA8ZGl2IGNsYXNzPVwiZGF5XCI+JHtkYXlOYW1lT2ZXZWVrfTwvZGl2PmApfVxuICAgICR7dGhpcy5fZGltZW5zaW9ucyAmJlxuICAgIHRoaXMuX2RpbWVuc2lvbnMubWFwKFxuICAgICAgKGRpbWVuc2lvbikgPT5cbiAgICAgICAgaHRtbGAke2RpbWVuc2lvbiAmJlxuICAgICAgICBkaW1lbnNpb24ubWFwKFxuICAgICAgICAgIChkYXRhKSA9PiBodG1sYCA8ZGl2PlxuICAgICAgICAgICAgJHtkYXRhXG4gICAgICAgICAgICAgID8gaHRtbGBcbiAgICAgICAgICAgICAgICAgIDxndi1kYXRlLXBpY2tlci1jZWxsXG4gICAgICAgICAgICAgICAgICAgIC5kaXNhYmxlZERhdGVzPVwiJHt0aGlzLmRpc2FibGVkRGF0ZXN9XCJcbiAgICAgICAgICAgICAgICAgICAgLm1pbj1cIiR7dGhpcy5tb250aE1vZGUgfHwgdGhpcy55ZWFyTW9kZSA/IG51bGwgOiB0aGlzLm1pbn1cIlxuICAgICAgICAgICAgICAgICAgICAubWF4PVwiJHt0aGlzLm1vbnRoTW9kZSB8fCB0aGlzLnllYXJNb2RlID8gbnVsbCA6IHRoaXMubWF4fVwiXG4gICAgICAgICAgICAgICAgICAgIC5tb250aD1cIiR7dGhpcy5tb250aH1cIlxuICAgICAgICAgICAgICAgICAgICAuaG92ZXJlZERhdGU9XCIke3RoaXMuaG92ZXJlZERhdGV9XCJcbiAgICAgICAgICAgICAgICAgICAgLmRhdGVUbz1cIiR7dGhpcy5fdG99XCJcbiAgICAgICAgICAgICAgICAgICAgLmRhdGVGcm9tPVwiJHt0aGlzLl9mcm9tfVwiXG4gICAgICAgICAgICAgICAgICAgIC5kYXRhPVwiJHtkYXRhfVwiXG4gICAgICAgICAgICAgICAgICAgIC50aW1lPVwiJHt0aGlzLnRpbWV9XCJcbiAgICAgICAgICAgICAgICAgICAgP2lzQ3VycmVudD1cIiR7dGhpcy5pc0N1cnJlbnREYXRlKGRhdGEpfVwiXG4gICAgICAgICAgICAgICAgICAgIEBndi1kYXRlLXBpY2tlci1jZWxsOmhvdmVyPVwiJHt0aGlzLl9vbkhvdmVyfVwiXG4gICAgICAgICAgICAgICAgICAgIEBndi1kYXRlLXBpY2tlci1jZWxsOnNlbGVjdD1cIiR7dGhpcy5fb25TZWxlY3R9XCJcbiAgICAgICAgICAgICAgICAgID48L2d2LWRhdGUtcGlja2VyLWNlbGw+XG4gICAgICAgICAgICAgICAgYFxuICAgICAgICAgICAgICA6IG51bGx9XG4gICAgICAgICAgPC9kaXY+YCxcbiAgICAgICAgKX1gLFxuICAgICl9YDtcbiAgfVxuXG4gIGlzU3RyaWN0VGltZSgpIHtcbiAgICByZXR1cm4gdGhpcy50aW1lID09PSB0cnVlICYmIHRoaXMuc3RyaWN0ID09PSB0cnVlO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGNsYXNzZXMgPSB7XG4gICAgICAnY2FsZW5kYXItZ3JpZCc6IHRydWUsXG4gICAgICAnY2FsZW5kYXItZ3JpZC1sYXJnZSc6IHRoaXMubW9udGhNb2RlIHx8IHRoaXMueWVhck1vZGUsXG4gICAgfTtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJib3hcIj5cbiAgICAgICAgJHt0aGlzLmlzU3RyaWN0VGltZSgpXG4gICAgICAgICAgPyAnJ1xuICAgICAgICAgIDogaHRtbGA8ZGl2IGNsYXNzPVwiYm94LWNvbFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2XCI+JHt0aGlzLl9yZW5kZXJQcmV2aW91c05hdigpfSAke3RoaXMuX3JlbmRlckN1cnJlbnROYXYoKX0gJHt0aGlzLl9yZW5kZXJOZXh0TmF2KCl9PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKGNsYXNzZXMpfVwiPiR7dGhpcy5fcmVuZGVyRGF5cygpfTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+YH1cbiAgICAgICAgJHt0aGlzLnRpbWUgJiYgIXRoaXMubW9udGhNb2RlICYmICF0aGlzLnllYXJNb2RlXG4gICAgICAgICAgPyBodG1sYDxkaXYgY2xhc3M9XCJib3gtY29sXCI+XG4gICAgICAgICAgICAgICR7dGhpcy5pc1N0cmljdFRpbWUoKSA/ICcnIDogaHRtbGA8ZGl2IGNsYXNzPVwibmF2LXRpbWVzXCI+JHt0aGlzLmdldFRpbWUoKX08L2Rpdj5gfVxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZXNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZVwiPlxuICAgICAgICAgICAgICAgICAgJHt0aGlzLl9ob3VycyAmJlxuICAgICAgICAgICAgICAgICAgdGhpcy5faG91cnMubWFwKFxuICAgICAgICAgICAgICAgICAgICAodmFsKSA9PlxuICAgICAgICAgICAgICAgICAgICAgIGh0bWxgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiJHt0aGlzLl9vblNlbGVjdEhvdXIuYmluZCh0aGlzLCB2YWwpfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICBob3VyOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5faG91ciA9PT0gdmFsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5pc0hvdXJzRGlzYWJsZWQodmFsKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pfVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHt2YWx9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YCxcbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVcIj5cbiAgICAgICAgICAgICAgICAgICR7dGhpcy5fbWludXRlcyAmJlxuICAgICAgICAgICAgICAgICAgdGhpcy5fbWludXRlcy5tYXAoXG4gICAgICAgICAgICAgICAgICAgICh2YWwpID0+XG4gICAgICAgICAgICAgICAgICAgICAgaHRtbGA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCIke3RoaXMuX29uU2VsZWN0TWludXRlLmJpbmQodGhpcywgdmFsKX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIke2NsYXNzTWFwKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWludXRlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5fbWludXRlID09PSB2YWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmlzTWludXRlc0Rpc2FibGVkKHZhbCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KX1cIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICR7dmFsfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmAsXG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgJHt0aGlzLmlzU3RyaWN0VGltZSgpXG4gICAgICAgICAgICAgICAgICA/IGh0bWxgPGRpdiBjbGFzcz1cInRpbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuX3NlY29uZHMgJiZcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWNvbmRzLm1hcChcbiAgICAgICAgICAgICAgICAgICAgICAgICh2YWwpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWxgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz1cIiR7dGhpcy5fb25TZWxlY3RTZWNvbmQuYmluZCh0aGlzLCB2YWwpfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIke2NsYXNzTWFwKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLl9zZWNvbmQgPT09IHZhbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmlzU2Vjb25kc0Rpc2FibGVkKHZhbCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dmFsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gLFxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgICAgICAgICAgIDogJyd9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+YFxuICAgICAgICAgIDogJyd9XG4gICAgICA8L2Rpdj5cbiAgICAgICR7dGhpcy5oYXNHb1RvZGF5KClcbiAgICAgICAgPyBodG1sYCA8ZGl2IGNsYXNzPVwiZm9vdFwiPlxuICAgICAgICAgICAgPGd2LWJ1dHRvbiBsaW5rIEBjbGljaz0ke3RoaXMuZ29Ub2RheX0+JHtpMThuKCdndi1kYXRlLXBpY2tlci50b2RheScpfTwvZ3YtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgOiAnJ31cbiAgICAgICR7dGhpcy50aW1lICYmICF0aGlzLm1vbnRoTW9kZSAmJiAhdGhpcy55ZWFyTW9kZVxuICAgICAgICA/IGh0bWxgIDxkaXYgY2xhc3M9XCJmb290IGZvb3QtdGltZVwiPlxuICAgICAgICAgICAgPGd2LWJ1dHRvbiBwcmltYXJ5IG91dGxpbmVkIHNtYWxsIEBjbGljaz0ke3RoaXMuX29uTm93fVxuICAgICAgICAgICAgICA+JHt0aGlzLmlzU3RyaWN0VGltZSgpID8gaTE4bignZ3YtZGF0ZS1waWNrZXIuY3VycmVudFRpbWUnKSA6IGkxOG4oJ2d2LWRhdGUtcGlja2VyLm5vdycpfTwvZ3YtYnV0dG9uXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8Z3YtYnV0dG9uIHByaW1hcnkgc21hbGwgQGNsaWNrPSR7dGhpcy5fb25EYXRlVGltZVNlbGVjdGVkfSAuZGlzYWJsZWQ9XCIke3RoaXMuZGlzYWJsZVZhbGlkYXRpb24gPT09IHRydWV9XCJcbiAgICAgICAgICAgICAgPiR7aTE4bignZ3YtZGF0ZS1waWNrZXIub2snKX08L2d2LWJ1dHRvblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgOiAnJ31cbiAgICBgO1xuICB9XG5cbiAgaXNNaW51dGVzRGlzYWJsZWQodmFsdWUpIHtcbiAgICBpZiAodGhpcy5fZnJvbSAmJiB0aGlzLl9ob3VyICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKHRoaXMuX2Zyb20gKiAxMDAwKTtcbiAgICAgIHNlbGVjdGVkRGF0ZS5zZXRIb3VycyhwYXJzZUludCh0aGlzLl9ob3VyLCAxMCksIHBhcnNlSW50KHZhbHVlLCAxMCksIDAsIDApO1xuICAgICAgaWYgKHRoaXMubWluKSB7XG4gICAgICAgIGNvbnN0IG1pbkRhdGUgPSBuZXcgRGF0ZSh0aGlzLm1pbiAqIDEwMDApO1xuICAgICAgICBpZiAoaXNCZWZvcmUoc2VsZWN0ZWREYXRlLCBtaW5EYXRlKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLm1heCkge1xuICAgICAgICBjb25zdCBtYXhEYXRlID0gbmV3IERhdGUodGhpcy5tYXggKiAxMDAwKTtcbiAgICAgICAgaWYgKGlzQWZ0ZXIoc2VsZWN0ZWREYXRlLCBtYXhEYXRlKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlzU2Vjb25kc0Rpc2FibGVkKHZhbHVlKSB7XG4gICAgaWYgKHRoaXMuX2Zyb20gJiYgdGhpcy5faG91ciAhPSBudWxsKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZERhdGUgPSBuZXcgRGF0ZSh0aGlzLl9mcm9tICogMTAwMCk7XG4gICAgICBzZWxlY3RlZERhdGUuc2V0SG91cnMocGFyc2VJbnQodGhpcy5faG91ciwgMTApLCBwYXJzZUludCh2YWx1ZSwgMTApLCAwLCAwKTtcbiAgICAgIGlmICh0aGlzLm1pbikge1xuICAgICAgICBjb25zdCBtaW5EYXRlID0gbmV3IERhdGUodGhpcy5taW4gKiAxMDAwKTtcbiAgICAgICAgaWYgKGlzQmVmb3JlKHNlbGVjdGVkRGF0ZSwgbWluRGF0ZSkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5tYXgpIHtcbiAgICAgICAgY29uc3QgbWF4RGF0ZSA9IG5ldyBEYXRlKHRoaXMubWF4ICogMTAwMCk7XG4gICAgICAgIGlmIChpc0FmdGVyKHNlbGVjdGVkRGF0ZSwgbWF4RGF0ZSkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpc0hvdXJzRGlzYWJsZWQodmFsdWUpIHtcbiAgICBpZiAodGhpcy5fZnJvbSkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gbmV3IERhdGUodGhpcy5fZnJvbSAqIDEwMDApO1xuICAgICAgc2VsZWN0ZWREYXRlLnNldEhvdXJzKHBhcnNlSW50KHZhbHVlLCAxMCkpO1xuICAgICAgaWYgKHRoaXMubWluKSB7XG4gICAgICAgIGNvbnN0IG1pbkRhdGUgPSBuZXcgRGF0ZSh0aGlzLm1pbiAqIDEwMDApO1xuICAgICAgICBtaW5EYXRlLnNldE1pbnV0ZXMoMCwgMCwgMCk7XG4gICAgICAgIGlmIChzZWxlY3RlZERhdGUuZ2V0VGltZSgpIDwgbWluRGF0ZS5nZXRUaW1lKCkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5tYXgpIHtcbiAgICAgICAgY29uc3QgbWF4RGF0ZSA9IG5ldyBEYXRlKHRoaXMubWF4ICogMTAwMCk7XG4gICAgICAgIGlmIChzZWxlY3RlZERhdGUuZ2V0VGltZSgpID4gbWF4RGF0ZS5nZXRUaW1lKCkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBfdXBkYXRlVGltZSgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5faG91ciB8fCB0aGlzLmlzSG91cnNEaXNhYmxlZCh0aGlzLl9ob3VyKSkge1xuICAgICAgICBjb25zdCBob3VyID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5ob3VyOm5vdCguZGlzYWJsZWQpJyk7XG4gICAgICAgIGlmIChob3VyKSB7XG4gICAgICAgICAgdGhpcy5faG91ciA9IGhvdXIudGV4dENvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCAwKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9taW51dGUgfHwgdGhpcy5pc01pbnV0ZXNEaXNhYmxlZCh0aGlzLl9taW51dGUpKSB7XG4gICAgICAgIGNvbnN0IG1pbnV0ZSA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubWludXRlOm5vdCguZGlzYWJsZWQpJyk7XG4gICAgICAgIGlmIChtaW51dGUpIHtcbiAgICAgICAgICB0aGlzLl9taW51dGUgPSBtaW51dGUudGV4dENvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCAwKTtcblxuICAgIGlmICh0aGlzLmlzU3RyaWN0VGltZSgpKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLl9zZWNvbmQgfHwgdGhpcy5pc1NlY29uZHNEaXNhYmxlZCh0aGlzLl9zZWNvbmQpKSB7XG4gICAgICAgICAgY29uc3Qgc2Vjb25kID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5zZWNvbmQ6bm90KC5kaXNhYmxlZCknKTtcbiAgICAgICAgICBpZiAoc2Vjb25kKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWNvbmQgPSBzZWNvbmQudGV4dENvbnRlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH1cblxuICBnZXRUaW1lKCkge1xuICAgIGlmICh0aGlzLl9ob3VyICYmIHRoaXMuX21pbnV0ZSkge1xuICAgICAgcmV0dXJuIGAke3RoaXMuX2hvdXJ9OiR7dGhpcy5fbWludXRlfWA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGlzQ3VycmVudERhdGUoZGF0YSkge1xuICAgIGlmICh0aGlzLnllYXJNb2RlKSB7XG4gICAgICByZXR1cm4gZ2V0WWVhcihkYXRhLmRhdGUgKiAxMDAwKSA9PT0gZ2V0WWVhcih0aGlzLmN1cnJlbnREYXRlICogMTAwMCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm1vbnRoTW9kZSkge1xuICAgICAgcmV0dXJuIGdldE1vbnRoKGRhdGEuZGF0ZSAqIDEwMDApID09PSBnZXRNb250aCh0aGlzLmN1cnJlbnREYXRlICogMTAwMCk7XG4gICAgfVxuICAgIHJldHVybiBkYXRhLmRhdGUgPT09IHRoaXMuY3VycmVudERhdGU7XG4gIH1cblxuICB1cGRhdGVkKHByb3BlcnRpZXMpIHtcbiAgICBpZiAocHJvcGVydGllcy5oYXMoJ3llYXInKSkge1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgneWVhci1jaGFuZ2VkJywgeyBkZXRhaWw6IHsgdmFsdWU6IHRoaXMueWVhciB9IH0pKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgcHJvcGVydGllcy5oYXMoJ2xvY2FsZScpIHx8XG4gICAgICBwcm9wZXJ0aWVzLmhhcygneWVhcicpIHx8XG4gICAgICBwcm9wZXJ0aWVzLmhhcygnbW9udGgnKSB8fFxuICAgICAgcHJvcGVydGllcy5oYXMoJ21vbnRoTW9kZScpIHx8XG4gICAgICBwcm9wZXJ0aWVzLmhhcygneWVhck1vZGUnKVxuICAgICkge1xuICAgICAgdGhpcy55ZWFyQW5kTW9udGhDaGFuZ2VkKHRoaXMueWVhciwgdGhpcy5tb250aCk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BlcnRpZXMuaGFzKCdfaG91cicpIHx8IHByb3BlcnRpZXMuaGFzKCdfbWludXRlJykpIHtcbiAgICAgIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuc2VsZWN0ZWQnKS5mb3JFYWNoKCh0aW1lKSA9PiB7XG4gICAgICAgIHRpbWUucGFyZW50Tm9kZS5zY3JvbGxUb3AgPSB0aW1lLm9mZnNldFRvcCAtIHRpbWUucGFyZW50Tm9kZS5vZmZzZXRUb3A7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBfdXBkYXRlRGF5cygpIHtcbiAgICBjb25zdCBkYXlOYW1lcyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNzsgaSArPSAxKSB7XG4gICAgICBkYXlOYW1lcy5wdXNoKHRoaXMubG9jYWxlLmxvY2FsaXplLmRheShpLCB7IHdpZHRoOiAnc2hvcnQnIH0pKTtcbiAgICB9XG4gICAgY29uc3QgZmlyc3REYXlPZldlZWsgPSB0aGlzLmxvY2FsZS5vcHRpb25zLndlZWtTdGFydHNPbjtcbiAgICBjb25zdCB0bXAgPSBkYXlOYW1lcy5zbGljZSgpLnNwbGljZSgwLCBmaXJzdERheU9mV2Vlayk7XG4gICAgdGhpcy5fZGF5TmFtZXNPZldlZWsgPSBkYXlOYW1lcy5zbGljZSgpLnNwbGljZShmaXJzdERheU9mV2VlaywgZGF5TmFtZXMubGVuZ3RoKS5jb25jYXQodG1wKTtcbiAgfVxuXG4gIHllYXJBbmRNb250aENoYW5nZWQoeWVhciwgbW9udGgpIHtcbiAgICBpZiAoeWVhciAmJiBtb250aCAmJiB0aGlzLmxvY2FsZSkge1xuICAgICAgaWYgKHRoaXMueWVhck1vZGUpIHtcbiAgICAgICAgdGhpcy5fZGF5TmFtZXNPZldlZWsgPSBbXTtcbiAgICAgICAgY29uc3QgY29scyA9IFtudWxsXTtcbiAgICAgICAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSB0aGlzLmdldFllYXJJbnRlcnZhbCh5ZWFyKTtcbiAgICAgICAgZm9yIChsZXQgYyA9IHN0YXJ0OyBjIDwgZW5kOyBjKyspIHtcbiAgICAgICAgICBjb25zdCBzdGFydERhdGVTdHJpbmcgPSBgMDEvJHttb250aH0vJHtjfWA7XG4gICAgICAgICAgY29uc3Qgc3RhcnREYXRlRm4gPSBwYXJzZShzdGFydERhdGVTdHJpbmcsICdkZC9NTS95eXl5JywgbmV3IERhdGUoKSwgeyBhd2FyZU9mVW5pY29kZVRva2VuczogdHJ1ZSB9KTtcbiAgICAgICAgICBjb2xzLnB1c2goe1xuICAgICAgICAgICAgaG92ZXI6IGZhbHNlLFxuICAgICAgICAgICAgZGF0ZTogcGFyc2VJbnQoZm9ybWF0KHN0YXJ0RGF0ZUZuLCAndCcpLCAxMCksXG4gICAgICAgICAgICB0aXRsZTogdGhpcy5jb21wdXRlTmFtZShtb250aCwgYywgJ3l5eXknKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb2xzLnB1c2gobnVsbCk7XG4gICAgICAgIHRoaXMuX2RpbWVuc2lvbnMgPSBbY29sc107XG4gICAgICB9IGVsc2UgaWYgKHRoaXMubW9udGhNb2RlKSB7XG4gICAgICAgIHRoaXMuX2RheU5hbWVzT2ZXZWVrID0gW107XG4gICAgICAgIHRoaXMuX2RpbWVuc2lvbnMgPSBbXG4gICAgICAgICAgdGhpcy5fbW9udGhzTGlzdC5tYXAoKG1vbnRoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdGFydERhdGVTdHJpbmcgPSBgMDEvJHttb250aH0vJHt5ZWFyfWA7XG4gICAgICAgICAgICBjb25zdCBzdGFydERhdGVGbiA9IHBhcnNlKHN0YXJ0RGF0ZVN0cmluZywgJ2RkL01NL3l5eXknLCBuZXcgRGF0ZSgpLCB7IGF3YXJlT2ZVbmljb2RlVG9rZW5zOiB0cnVlIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgaG92ZXI6IGZhbHNlLFxuICAgICAgICAgICAgICBkYXRlOiBwYXJzZUludChmb3JtYXQoc3RhcnREYXRlRm4sICd0JyksIDEwKSxcbiAgICAgICAgICAgICAgdGl0bGU6IHRoaXMuY29tcHV0ZU5hbWUobW9udGgsIHRoaXMueWVhciwgJ01NTScpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZURheXMoKTtcbiAgICAgICAgbGV0IG1vbnRoTWludXMgPSBtb250aDtcbiAgICAgICAgbW9udGhNaW51cyA9IG1vbnRoTWludXMuc3Vic3RyaW5nKG1vbnRoTWludXMubGVuZ3RoIC0gMik7XG4gICAgICAgIGxldCBzdGFydERhdGVTdHJpbmcgPSBgMDEvJHttb250aE1pbnVzfS8ke3llYXJ9YDtcbiAgICAgICAgbGV0IHN0YXJ0RGF0ZUZuID0gcGFyc2Uoc3RhcnREYXRlU3RyaW5nLCAnZGQvTU0veXl5eScsIG5ldyBEYXRlKCksIHsgYXdhcmVPZlVuaWNvZGVUb2tlbnM6IHRydWUgfSk7XG4gICAgICAgIGNvbnN0IGVuZERhdGVGbiA9IGVuZE9mTW9udGgoc3RhcnREYXRlRm4pO1xuICAgICAgICBjb25zdCBlbmREYXRlU3RyaW5nID0gZm9ybWF0KGVuZERhdGVGbiwgJ2RkL01NL3l5eXknLCB7IGF3YXJlT2ZVbmljb2RlVG9rZW5zOiB0cnVlIH0pO1xuXG4gICAgICAgIGNvbnN0IGZpcnN0RGF5T2ZXZWVrID0gdGhpcy5sb2NhbGUub3B0aW9ucy53ZWVrU3RhcnRzT247XG4gICAgICAgIGNvbnN0IHJvd3MgPSBbXTtcbiAgICAgICAgbGV0IGNvbHVtbnMgPSBbXTtcblxuICAgICAgICBjb25zdCBsYXN0RGF5T2ZXZWVrID0gNjtcblxuICAgICAgICB3aGlsZSAoc3RhcnREYXRlU3RyaW5nICE9PSBlbmREYXRlU3RyaW5nKSB7XG4gICAgICAgICAgbGV0IGRheU51bWJlckZuID0gZ2V0RGF5KHN0YXJ0RGF0ZUZuKSAtIGZpcnN0RGF5T2ZXZWVrO1xuICAgICAgICAgIGlmIChkYXlOdW1iZXJGbiA8IDApIHtcbiAgICAgICAgICAgIGRheU51bWJlckZuID0gNjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBjb2x1bW5GbiA9IHtcbiAgICAgICAgICAgIGhvdmVyOiBmYWxzZSxcbiAgICAgICAgICAgIGRhdGU6IHBhcnNlSW50KGZvcm1hdChzdGFydERhdGVGbiwgJ3QnKSwgMTApLFxuICAgICAgICAgICAgdGl0bGU6IHBhcnNlSW50KGZvcm1hdChzdGFydERhdGVGbiwgJ2QnLCB7IGF3YXJlT2ZVbmljb2RlVG9rZW5zOiB0cnVlIH0pLCAxMCksXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb2x1bW5zLnB1c2goY29sdW1uRm4pO1xuXG4gICAgICAgICAgaWYgKGRheU51bWJlckZuID09PSBsYXN0RGF5T2ZXZWVrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gY29sdW1ucy5sZW5ndGg7IGkgPCBsYXN0RGF5T2ZXZWVrICsgMTsgaSArPSAxKSB7XG4gICAgICAgICAgICAgIGNvbHVtbnMudW5zaGlmdCgwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJvd3MucHVzaChjb2x1bW5zLnNsaWNlKCkpO1xuICAgICAgICAgICAgY29sdW1ucyA9IFtdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHN0YXJ0RGF0ZUZuID0gYWRkRGF5cyhzdGFydERhdGVGbiwgMSk7XG4gICAgICAgICAgc3RhcnREYXRlU3RyaW5nID0gZm9ybWF0KHN0YXJ0RGF0ZUZuLCAnZGQvTU0veXl5eScsIHsgYXdhcmVPZlVuaWNvZGVUb2tlbnM6IHRydWUgfSk7XG5cbiAgICAgICAgICBpZiAoc3RhcnREYXRlU3RyaW5nID09PSBlbmREYXRlU3RyaW5nKSB7XG4gICAgICAgICAgICBjb25zdCBlbmRDb2x1bW5GbiA9IHtcbiAgICAgICAgICAgICAgaG92ZXI6IGZhbHNlLFxuICAgICAgICAgICAgICBkYXRlOiBwYXJzZUludChmb3JtYXQoc3RhcnREYXRlRm4sICd0JyksIDEwKSxcbiAgICAgICAgICAgICAgdGl0bGU6IHBhcnNlSW50KGZvcm1hdChzdGFydERhdGVGbiwgJ2QnLCB7IGF3YXJlT2ZVbmljb2RlVG9rZW5zOiB0cnVlIH0pLCAxMCksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29sdW1ucy5wdXNoKGVuZENvbHVtbkZuKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBjb2x1bW5zLmxlbmd0aDsgaSA8PSBsYXN0RGF5T2ZXZWVrOyBpICs9IDEpIHtcbiAgICAgICAgICAgICAgY29sdW1ucy5wdXNoKDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcm93cy5wdXNoKGNvbHVtbnMuc2xpY2UoKSk7XG4gICAgICAgICAgICBjb2x1bW5zID0gW107XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2RpbWVuc2lvbnMgPSByb3dzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldFllYXJJbnRlcnZhbCh5ZWFyID0gdGhpcy55ZWFyKSB7XG4gICAgbGV0IHN0YXJ0ID0gcGFyc2VJbnQoeWVhciwgMTApO1xuICAgIHdoaWxlIChzdGFydCAlIDEwICE9PSAwKSB7XG4gICAgICBzdGFydC0tO1xuICAgIH1cbiAgICByZXR1cm4geyBzdGFydCwgZW5kOiBzdGFydCArIDEwIH07XG4gIH1cblxuICBjb21wdXRlTmFtZShtb250aCwgeWVhciwgX2Zvcm1hdCA9ICdNTU1NJykge1xuICAgIGlmIChtb250aCAmJiB5ZWFyKSB7XG4gICAgICBjb25zdCBkYXRlRm4gPSBwYXJzZShgJHttb250aH0vJHt5ZWFyfWAsICdNTS95eXl5JywgbmV3IERhdGUoKSk7XG4gICAgICByZXR1cm4gZm9ybWF0KGRhdGVGbiwgX2Zvcm1hdCwgeyBsb2NhbGU6IHRoaXMubG9jYWxlIH0pO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBjb21wdXRlQ3VycmVudFllYXJOYW1lKCkge1xuICAgIGlmICh0aGlzLnllYXJNb2RlKSB7XG4gICAgICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IHRoaXMuZ2V0WWVhckludGVydmFsKCk7XG4gICAgICByZXR1cm4gYCR7c3RhcnR9LSR7ZW5kIC0gMX1gO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy55ZWFyO1xuICB9XG5cbiAgX29uU2VsZWN0SG91cih2YWx1ZSkge1xuICAgIHRoaXMuX2hvdXIgPSB2YWx1ZTtcbiAgICB0aGlzLl91cGRhdGVUaW1lKCk7XG4gIH1cblxuICBfb25TZWxlY3RNaW51dGUodmFsdWUpIHtcbiAgICB0aGlzLl9taW51dGUgPSB2YWx1ZTtcbiAgICB0aGlzLl91cGRhdGVUaW1lKCk7XG4gIH1cblxuICBfb25TZWxlY3RTZWNvbmQodmFsdWUpIHtcbiAgICB0aGlzLl9zZWNvbmQgPSB2YWx1ZTtcbiAgICB0aGlzLl91cGRhdGVUaW1lKCk7XG4gIH1cblxuICBfb25TZWxlY3RNb250aCgpIHtcbiAgICBpZiAodGhpcy5tb250aE1vZGUpIHtcbiAgICAgIHRoaXMuX2Zyb20gPSB0aGlzLl9kYXRlRnJvbTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZGF0ZUZyb20gPSB0aGlzLl9mcm9tO1xuICAgICAgdGhpcy5fZnJvbSA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMueWVhck1vZGUgPSBmYWxzZTtcbiAgICB0aGlzLm1vbnRoTW9kZSA9ICF0aGlzLm1vbnRoTW9kZTtcbiAgICB0aGlzLnllYXJBbmRNb250aENoYW5nZWQodGhpcy55ZWFyLCB0aGlzLm1vbnRoKTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdtb250aC1tb2RlJywgeyBtb2RlOiB0aGlzLm1vbnRoTW9kZSwgbW9udGg6IHRoaXMubW9udGgsIHllYXI6IHRoaXMueWVhciB9KTtcbiAgfVxuXG4gIF9vblNlbGVjdFllYXIoKSB7XG4gICAgaWYgKHRoaXMueWVhck1vZGUpIHtcbiAgICAgIHRoaXMuX2Zyb20gPSB0aGlzLl9kYXRlRnJvbTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZGF0ZUZyb20gPSB0aGlzLl9mcm9tO1xuICAgICAgdGhpcy5fZnJvbSA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMubW9udGhNb2RlID0gZmFsc2U7XG4gICAgdGhpcy55ZWFyTW9kZSA9ICF0aGlzLnllYXJNb2RlO1xuICAgIHRoaXMueWVhckFuZE1vbnRoQ2hhbmdlZCh0aGlzLnllYXIsIHRoaXMubW9udGgpO1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ3llYXItbW9kZScsIHsgbW9kZTogdGhpcy55ZWFyTW9kZSwgbW9udGg6IHRoaXMubW9udGgsIHllYXI6IHRoaXMueWVhciB9KTtcbiAgfVxuXG4gIGdldCBkYXRldGltZVNlbGVjdGVkKCkge1xuICAgIGlmICh0aGlzLmlzU3RyaWN0VGltZSgpICYmIHRoaXMuX2Zyb20gPT0gbnVsbCkge1xuICAgICAgdGhpcy5fZnJvbSA9IG5ldyBEYXRlKCkudmFsdWVPZigpIC8gMTAwMDtcbiAgICB9XG4gICAgbGV0IHNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKHRoaXMuX2Zyb20gKiAxMDAwKTtcbiAgICBzZWxlY3RlZERhdGUgPSBzZXRIb3VycyhzZWxlY3RlZERhdGUsIHBhcnNlSW50KHRoaXMuX2hvdXIgPyB0aGlzLl9ob3VyIDogMCwgMTApKTtcbiAgICBzZWxlY3RlZERhdGUgPSBzZXRNaW51dGVzKHNlbGVjdGVkRGF0ZSwgcGFyc2VJbnQodGhpcy5fbWludXRlID8gdGhpcy5fbWludXRlIDogMCwgMTApKTtcbiAgICByZXR1cm4gc2VsZWN0ZWREYXRlLmdldFRpbWUoKSAvIDEwMDA7XG4gIH1cblxuICBfb25EYXRlVGltZVNlbGVjdGVkKCkge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLmRhdGV0aW1lU2VsZWN0ZWQ7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnZGF0ZS1mcm9tLWNoYW5nZWQnLCB7IGRldGFpbDogeyB2YWx1ZTogdGhpcy52YWx1ZSB9IH0pKTtcbiAgfVxuXG4gIF9vbk5vdygpIHtcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIGlmICghdGhpcy5pc1N0cmljdFRpbWUoKSkge1xuICAgICAgbm93LnNldFNlY29uZHMoMCwgMCk7XG4gICAgfVxuICAgIHRoaXMuX2Zyb20gPSBub3cuZ2V0VGltZSgpIC8gMTAwMDtcbiAgICB0aGlzLm1vbnRoID0gZm9ybWF0KG5vdywgJ01NJyk7XG4gICAgdGhpcy55ZWFyID0gZm9ybWF0KG5vdywgJ3l5eXknKTtcbiAgICB0aGlzLl9ob3VyID0gZm9ybWF0KG5vdywgJ0hIJyk7XG4gICAgdGhpcy5fbWludXRlID0gZm9ybWF0KG5vdywgJ21tJyk7XG4gICAgaWYgKHRoaXMuaXNTdHJpY3RUaW1lKCkpIHtcbiAgICAgIHRoaXMuX3NlY29uZCA9IGZvcm1hdChub3csICdtbScpO1xuICAgIH1cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdkYXRlLWZyb20tY2hhbmdlZCcsIHsgZGV0YWlsOiB7IHZhbHVlOiB0aGlzLl9mcm9tIH0gfSkpO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVWYWxpZGF0aW9uKCkge1xuICAgIGNvbnN0IGRhdGUgPSB0aGlzLmRhdGV0aW1lU2VsZWN0ZWQ7XG4gICAgaWYgKGRhdGUpIHtcbiAgICAgIGlmICh0aGlzLm1pbiAmJiBkYXRlIDwgdGhpcy5taW4pIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5tYXggJiYgZGF0ZSA+IHRoaXMubWF4KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBfb25TZWxlY3QoeyBkZXRhaWwgfSkge1xuICAgIGNvbnN0IHsgZGF0ZSB9ID0gZGV0YWlsO1xuICAgIGlmICh0aGlzLnllYXJNb2RlKSB7XG4gICAgICB0aGlzLnllYXJNb2RlID0gZmFsc2U7XG4gICAgICB0aGlzLm1vbnRoTW9kZSA9IHRydWU7XG4gICAgICB0aGlzLl9mcm9tID0gdGhpcy5fZGF0ZUZyb207XG4gICAgICBjb25zdCBzZWxlY3RlZERhdGUgPSBuZXcgRGF0ZShkYXRlICogMTAwMCk7XG4gICAgICB0aGlzLnllYXIgPSBmb3JtYXQoc2VsZWN0ZWREYXRlLCAneXl5eScpO1xuICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAneWVhci1jaGFuZ2VkJywgeyB5ZWFyOiB0aGlzLnllYXIgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm1vbnRoTW9kZSkge1xuICAgICAgdGhpcy5tb250aE1vZGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2Zyb20gPSB0aGlzLl9kYXRlRnJvbTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKGRhdGUgKiAxMDAwKTtcbiAgICAgIHRoaXMubW9udGggPSBmb3JtYXQoc2VsZWN0ZWREYXRlLCAnTU0nKTtcbiAgICAgIHRoaXMueWVhciA9IGZvcm1hdChzZWxlY3RlZERhdGUsICd5eXl5Jyk7XG4gICAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdtb250aC1jaGFuZ2VkJywgeyBtb250aDogdGhpcy5tb250aCwgeWVhcjogdGhpcy55ZWFyIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy50aW1lKSB7XG4gICAgICB0aGlzLl9mcm9tID0gZGF0ZTtcbiAgICAgIHRoaXMuX3VwZGF0ZVRpbWUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmFuZ2UpIHtcbiAgICAgIGlmICh0aGlzLl9mcm9tICYmIHRoaXMuX3RvKSB7XG4gICAgICAgIHRoaXMuX2Zyb20gPSBkYXRlO1xuICAgICAgICB0aGlzLl90byA9IG51bGw7XG4gICAgICAgIHRoaXMuaG92ZXJlZERhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2hvdmVyZWQtZGF0ZS1jaGFuZ2VkJywgeyBkZXRhaWw6IHsgdmFsdWU6IHRoaXMuaG92ZXJlZERhdGUgfSB9KSk7XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLl9mcm9tIHx8ICh0aGlzLl9mcm9tICYmIGRhdGUgPCB0aGlzLl9mcm9tKSkge1xuICAgICAgICB0aGlzLl9mcm9tID0gZGF0ZTtcbiAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX3RvIHx8ICh0aGlzLl90byAmJiBkYXRlID4gdGhpcy5fdG8pKSB7XG4gICAgICAgIHRoaXMuX3RvID0gZGF0ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2RhdGUtZnJvbS1jaGFuZ2VkJywgeyBkZXRhaWw6IHsgdmFsdWU6IHRoaXMuX2Zyb20gfSB9KSk7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdkYXRlLXRvLWNoYW5nZWQnLCB7IGRldGFpbDogeyB2YWx1ZTogdGhpcy5fdG8gfSB9KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2Zyb20gPSBkYXRlO1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnZGF0ZS1mcm9tLWNoYW5nZWQnLCB7IGRldGFpbDogeyB2YWx1ZTogdGhpcy5fZnJvbSB9IH0pKTtcbiAgICB9XG4gIH1cblxuICBfb25Ib3ZlcihldmVudCkge1xuICAgIGlmICh0aGlzLnJhbmdlKSB7XG4gICAgICB0aGlzLmhvdmVyZWREYXRlID0gZXZlbnQuZGV0YWlsLmRhdGU7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdob3ZlcmVkLWRhdGUtY2hhbmdlZCcsIHsgZGV0YWlsOiB7IHZhbHVlOiB0aGlzLmhvdmVyZWREYXRlIH0gfSkpO1xuICAgIH1cbiAgfVxuXG4gIF9vbk5leHRNb250aCgpIHtcbiAgICBjb25zdCBtb250aCA9IHBhcnNlKHRoaXMubW9udGgsICdNTScsIG5ldyBEYXRlKCkpO1xuICAgIGNvbnN0IG1vbnRoUGx1c0RhdGUgPSBhZGRNb250aHMobW9udGgsIDEpO1xuICAgIGNvbnN0IG1vbnRoUGx1c1N0cmluZyA9IGZvcm1hdChtb250aFBsdXNEYXRlLCAnTU0nLCB7IGxvY2FsZTogdGhpcy5sb2NhbGUgfSk7XG5cbiAgICB0aGlzLm1vbnRoID0gbW9udGhQbHVzU3RyaW5nO1xuICAgIGlmICh0aGlzLm1vbnRoID09PSAnMDEnKSB7XG4gICAgICBjb25zdCB5ZWFyID0gcGFyc2UodGhpcy55ZWFyLCAneXl5eScsIG5ldyBEYXRlKCkpO1xuICAgICAgY29uc3QgeWVhclBsdXNEYXRlID0gYWRkWWVhcnMoeWVhciwgMSk7XG4gICAgICBjb25zdCB5ZWFyUGx1c1N0cmluZyA9IGZvcm1hdCh5ZWFyUGx1c0RhdGUsICd5eXl5JywgeyBsb2NhbGU6IHRoaXMubG9jYWxlIH0pO1xuICAgICAgdGhpcy55ZWFyID0geWVhclBsdXNTdHJpbmc7XG4gICAgfVxuICB9XG5cbiAgX29uUHJldk1vbnRoKCkge1xuICAgIGNvbnN0IG1vbnRoID0gcGFyc2UodGhpcy5tb250aCwgJ01NJywgbmV3IERhdGUoKSk7XG4gICAgY29uc3QgbW9udGhNaW51c0RhdGUgPSBzdWJNb250aHMobW9udGgsIDEpO1xuICAgIGNvbnN0IG1vbnRoTWludXNTdHJpbmcgPSBmb3JtYXQobW9udGhNaW51c0RhdGUsICdNTScsIHsgbG9jYWxlOiB0aGlzLmxvY2FsZSB9KTtcblxuICAgIHRoaXMubW9udGggPSBtb250aE1pbnVzU3RyaW5nO1xuICAgIGlmICh0aGlzLm1vbnRoID09PSAnMTInKSB7XG4gICAgICBjb25zdCB5ZWFyID0gcGFyc2UodGhpcy55ZWFyLCAneXl5eScsIG5ldyBEYXRlKCkpO1xuICAgICAgY29uc3QgeWVhck1pbnVzRGF0ZSA9IHN1YlllYXJzKHllYXIsIDEpO1xuICAgICAgY29uc3QgeWVhck1pbnVzU3RyaW5nID0gZm9ybWF0KHllYXJNaW51c0RhdGUsICd5eXl5JywgeyBsb2NhbGU6IHRoaXMubG9jYWxlIH0pO1xuICAgICAgdGhpcy55ZWFyID0geWVhck1pbnVzU3RyaW5nO1xuICAgIH1cbiAgfVxuXG4gIF9vbk5leHRZZWFyKCkge1xuICAgIGlmICh0aGlzLnllYXJNb2RlKSB7XG4gICAgICB0aGlzLnllYXIgPSBwYXJzZUludCh0aGlzLnllYXIsIDEwKSArIDEwO1xuICAgIH1cbiAgICBjb25zdCB5ZWFyID0gcGFyc2UodGhpcy55ZWFyLCAneXl5eScsIG5ldyBEYXRlKCkpO1xuICAgIGNvbnN0IHllYXJQbHVzRGF0ZSA9IGFkZFllYXJzKHllYXIsIDEpO1xuICAgIGNvbnN0IHllYXJQbHVzU3RyaW5nID0gZm9ybWF0KHllYXJQbHVzRGF0ZSwgJ3l5eXknLCB7IGxvY2FsZTogdGhpcy5sb2NhbGUgfSk7XG4gICAgdGhpcy55ZWFyID0geWVhclBsdXNTdHJpbmc7XG4gIH1cblxuICBfb25QcmV2WWVhcigpIHtcbiAgICBpZiAodGhpcy55ZWFyTW9kZSkge1xuICAgICAgdGhpcy55ZWFyID0gcGFyc2VJbnQodGhpcy55ZWFyLCAxMCkgLSAxMDtcbiAgICB9XG4gICAgY29uc3QgeWVhciA9IHBhcnNlKHRoaXMueWVhciwgJ3l5eXknLCBuZXcgRGF0ZSgpKTtcbiAgICBjb25zdCB5ZWFyTWludXNEYXRlID0gc3ViWWVhcnMoeWVhciwgMSk7XG4gICAgY29uc3QgeWVhck1pbnVzU3RyaW5nID0gZm9ybWF0KHllYXJNaW51c0RhdGUsICd5eXl5JywgeyBsb2NhbGU6IHRoaXMubG9jYWxlIH0pO1xuICAgIHRoaXMueWVhciA9IHllYXJNaW51c1N0cmluZztcbiAgfVxuXG4gIGdvVG9kYXkoKSB7XG4gICAgdGhpcy5tb250aCA9IGAwJHtnZXRNb250aChuZXcgRGF0ZSgpKSArIDF9YC5zbGljZSgtMik7XG4gICAgdGhpcy55ZWFyID0gZ2V0WWVhcihuZXcgRGF0ZSgpKTtcbiAgICB0aGlzLl9vblNlbGVjdCh7IGRldGFpbDogeyBkYXRlOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfSB9KTtcbiAgfVxuXG4gIGhhc0dvVG9kYXkoKSB7XG4gICAgcmV0dXJuICF0aGlzLnJhbmdlICYmICF0aGlzLnRpbWUgJiYgIXRoaXMubW9udGhNb2RlICYmICF0aGlzLnllYXJNb2RlICYmIHRoaXMuX2hhc0dvVG9kYXk7XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3YtZGF0ZS1waWNrZXItY2FsZW5kYXInLCBHdkRhdGVQaWNrZXJDYWxlbmRhcik7XG4iXX0=
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { LitElement, html, css } from 'lit
|
|
17
|
-
import { classMap } from 'lit
|
|
16
|
+
import { LitElement, html, css } from 'lit';
|
|
17
|
+
import { classMap } from 'lit/directives/class-map';
|
|
18
18
|
import { dispatchCustomEvent } from '../lib/events';
|
|
19
19
|
import { startOfDay } from 'date-fns';
|
|
20
|
-
import { until } from 'lit
|
|
20
|
+
import { until } from 'lit/directives/until';
|
|
21
21
|
import { isInvalid } from '../lib/date';
|
|
22
22
|
/**
|
|
23
23
|
* Date Picker Cell
|
|
@@ -163,4 +163,4 @@ export class GvDatePickerCell extends LitElement {
|
|
|
163
163
|
|
|
164
164
|
}
|
|
165
165
|
window.customElements.define('gv-date-picker-cell', GvDatePickerCell);
|
|
166
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2F0b21zL2d2LWRhdGUtcGlja2VyLWNlbGwuanMiXSwibmFtZXMiOlsiTGl0RWxlbWVudCIsImh0bWwiLCJjc3MiLCJjbGFzc01hcCIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJzdGFydE9mRGF5IiwidW50aWwiLCJpc0ludmFsaWQiLCJHdkRhdGVQaWNrZXJDZWxsIiwicHJvcGVydGllcyIsImRhdGEiLCJ0eXBlIiwiT2JqZWN0Iiwic2VsZWN0ZWQiLCJCb29sZWFuIiwiaG92ZXJlZCIsImRhdGVUbyIsIk51bWJlciIsImRhdGVGcm9tIiwibW9udGgiLCJTdHJpbmciLCJob3ZlcmVkRGF0ZSIsIm1pbiIsIm1heCIsImRpc2FibGVkIiwiaXNDdXJyZW50IiwidGltZSIsImRpc2FibGVkRGF0ZSIsIkFycmF5Iiwic3R5bGVzIiwiY29uc3RydWN0b3IiLCJkaXNhYmxlZERhdGVzIiwicmVuZGVyIiwiaXNEaXNhYmxlZCIsImNsYXNzZXMiLCJjZWxsIiwiY3VycmVudCIsIl9vbkNsaWNrIiwiX29uTW91c2VPdmVyIiwidGl0bGUiLCJ1cGRhdGVkIiwiaGFzIiwiZGF0ZUNoYW5nZWQiLCJpc1NlbGVjdGVkIiwicGFyc2VkRGF0ZUZyb20iLCJwYXJzZWREYXRlVG8iLCJnZXRUaW1lIiwiZGF0ZSIsInBhcnNlSW50IiwiaXNOYU4iLCJ1bmRlZmluZWQiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsVUFBVCxFQUFxQkMsSUFBckIsRUFBMkJDLEdBQTNCLFFBQXNDLGFBQXRDO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QiwrQkFBekI7QUFDQSxTQUFTQyxtQkFBVCxRQUFvQyxlQUFwQztBQUNBLFNBQVNDLFVB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YixJQUVDLENBQUNDLFlBRkYsSUFHQyxDQUFDNUIsTUFBTSxDQUFDZ0MsS0FBUCxDQUFhTCxjQUFiLENBSEYsSUFJQ0EsY0FBYyxLQUFLTSxTQUpwQixJQUtDLENBQUMsS0FBS3JDLFFBTFIsSUFNQ0gsSUFBSSxDQUFDcUMsSUFBTCxHQUFZSCxjQUFaLElBQThCbEMsSUFBSSxDQUFDcUMsSUFBTCxHQUFZRixZQVA3QyxFQVFFO0FBQ0EsYUFBSzlCLE9BQUwsR0FBZSxJQUFmO0FBQ0Q7QUFDRjtBQUNGOztBQUVEc0IsRUFBQUEsUUFBUSxHQUFHO0FBQ1RqQyxJQUFBQSxtQkFBbUIsQ0FBQyxJQUFELEVBQU8sUUFBUCxFQUFpQjtBQUFFMkMsTUFBQUEsSUFBSSxFQUFFLEtBQUtyQyxJQUFMLENBQVVxQztBQUFsQixLQUFqQixDQUFuQjtBQUNEOztBQUVEVCxFQUFBQSxZQUFZLEdBQUc7QUFDYmxDLElBQUFBLG1CQUFtQixDQUFDLElBQUQsRUFBTyxPQUFQLEVBQWdCO0FBQUUyQyxNQUFBQSxJQUFJLEVBQUUsS0FBS3JDLElBQUwsQ0FBVXFDO0FBQWxCLEtBQWhCLENBQW5CO0FBQ0Q7O0FBRURkLEVBQUFBLFVBQVUsR0FBRztBQUNYLFFBQUksS0FBS3ZCLElBQUwsSUFBYSxLQUFLQSxJQUFMLENBQVVxQyxJQUEzQixFQUFpQztBQUMvQixhQUFPeEMsU0FBUyxDQUFDLEtBQUtHLElBQUwsQ0FBVXFDLElBQVgsRUFBaUIsS0FBS3pCLEdBQXRCLEVBQTJCLEtBQUtDLEdBQWhDLEVBQXFDLElBQXJDLEVBQTJDLEtBQUtRLGFBQWhELENBQWhCO0FBQ0Q7O0FBQ0QsV0FBTyxLQUFQO0FBQ0Q7O0FBMUk4QztBQTZJakRvQixNQUFNLENBQUNDLGNBQVAsQ0FBc0JDLE1BQXRCLENBQTZCLHFCQUE3QixFQUFvRDdDLGdCQUFwRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBMaXRFbGVtZW50LCBodG1sLCBjc3MgfSBmcm9tICdsaXQtZWxlbWVudCc7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC1odG1sL2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IGRpc3BhdGNoQ3VzdG9tRXZlbnQgfSBmcm9tICcuLi9saWIvZXZlbnRzJztcbmltcG9ydCB7IHN0YXJ0T2ZEYXkgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyB1bnRpbCB9IGZyb20gJ2xpdC1odG1sL2RpcmVjdGl2ZXMvdW50aWwnO1xuaW1wb3J0IHsgaXNJbnZhbGlkIH0gZnJvbSAnLi4vbGliL2RhdGUnO1xuXG4vKipcbiAqIERhdGUgUGlja2VyIENlbGxcbiAqXG4gKiAjIyBEZXRhaWxzXG4gKiAqIGhhcyBAdGhlbWUgZmFjZXRcbiAqXG4gKiBAZmlyZXMgZ3YtZGF0ZS1waWNrZXItY2VsbDpzZWxlY3QgLSBDdXN0b20gZXZlbnQgd2hlbiB1c2VyIHNlbGVjdCBjZWxsXG4gKiBAZmlyZXMgZ3YtZGF0ZS1waWNrZXItY2VsbDpob3ZlciAtIEN1c3RvbSBldmVudCB3aGVuIHVzZXIgaG92ZXIgY2VsbFxuICpcbiAqIEBhdHRyIHtPYmplY3QuPHtkYXRlOk51bWJlcix0aXRsZTpTdHJpbmd9Pn0gZGF0YSAtIGRhdGEgdG8gZGlzcGxheVxuICogQGF0dHIge0Jvb2xlYW59IHNlbGVjdGVkIC0gaWYgZGF0YSBpcyBzZWxlY3RlZFxuICogQGF0dHIge0Jvb2xlYW59IGhvdmVyZWQgLSBpZiBkYXRhIGlzIGhvdmVyZWRcbiAqIEBhdHRyIHtCb29sZWFufSBkaXNhYmxlZCAtIGlmIGRhdGEgaXMgZGlzYWJsZWRcbiAqIEBhdHRyIHtCb29sZWFufSBpc0N1cnJlbnQgLSBpZiBkYXRhIGlzIGN1cnJlbnQgZGF0ZVxuICogQGF0dHIge051bWJlcn0gZGF0ZUZyb20gLSB1bml4IGRhdGUgZm9ybVxuICogQGF0dHIge051bWJlcn0gZGF0ZVRvIC0gdW5peCBkYXRlIHRvXG4gKiBAYXR0ciB7TnVtYmVyfSBob3ZlcmVkRGF0ZSAtIHVuaXggaG92ZXJlZCBkYXRlXG4gKiBAYXR0ciB7TnVtYmVyfSBtaW4gLSB1bml4IG1pbiBkYXRlXG4gKiBAYXR0ciB7TnVtYmVyfSBtYXggLSB1bml4IG1heCBkYXRlXG4gKiBAYXR0ciB7QXJyYXl9IGRpc2FibGVkRGF0ZXMgLSBhcnJheSBvZiBkaXNhYmxlZCBkYXRlXG4gKlxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1kYXRlLXBpY2tlci1ob3Zlci0tYmdjPXZhcigtLWd2LXRoZW1lLWNvbG9yLWxpZ2h0LCAjODZjM2QwKV0gLSBIb3ZlciBiYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LWRhdGUtcGlja2VyLWhvdmVyLS1jPXZhcigtLWd2LXRoZW1lLWZvbnQtY29sb3ItZGFyaywgIzI2MjYyNildIC0gSG92ZXIgY29sb3JcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtZGF0ZS1waWNrZXItc2VsZWN0ZWQtLWJnYz12YXIoLS1ndi10aGVtZS1jb2xvciwgIzVhNzY4NCldIC0gU2VsZWN0ZWQgYmFja2dyb3VuZCBjb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1kYXRlLXBpY2tlci1zZWxlY3RlZC0tYz12YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWxpZ2h0LCAjZmZmZmZmKV0gLSBTZWxlY3RlZCBjb2xvclxuICovXG5leHBvcnQgY2xhc3MgR3ZEYXRlUGlja2VyQ2VsbCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGE6IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICBzZWxlY3RlZDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBob3ZlcmVkOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIGRhdGVUbzogeyB0eXBlOiBOdW1iZXIgfSxcbiAgICAgIGRhdGVGcm9tOiB7IHR5cGU6IE51bWJlciB9LFxuICAgICAgbW9udGg6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBob3ZlcmVkRGF0ZTogeyB0eXBlOiBOdW1iZXIgfSxcbiAgICAgIG1pbjogeyB0eXBlOiBOdW1iZXIgfSxcbiAgICAgIG1heDogeyB0eXBlOiBOdW1iZXIgfSxcbiAgICAgIGRpc2FibGVkOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIGlzQ3VycmVudDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICB0aW1lOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIGRpc2FibGVkRGF0ZTogeyB0eXBlOiBBcnJheSB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIC5jZWxsIHtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNlbGw6bm90KC5kaXNhYmxlZCk6bm90KC5zZWxlY3RlZCk6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWd2LWRhdGUtcGlja2VyLWhvdmVyLS1iZ2MsIHZhcigtLWd2LXRoZW1lLWNvbG9yLWxpZ2h0LCAjODZjM2QwKSk7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWd2LWRhdGUtcGlja2VyLWhvdmVyLS1jLCB2YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWRhcmssICMyNjI2MjYpKTtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jZWxsLmhvdmVyZWQge1xuICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jZWxsLmN1cnJlbnQge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3IsICNmNWY1ZjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNlbGwuaG92ZXJlZCxcbiAgICAgICAgLmNlbGwuc2VsZWN0ZWQge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWd2LWRhdGUtcGlja2VyLXNlbGVjdGVkLS1iZ2MsIHZhcigtLWd2LXRoZW1lLWNvbG9yLCAjNWE3Njg0KSk7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWd2LWRhdGUtcGlja2VyLXNlbGVjdGVkLS1jLCB2YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWxpZ2h0LCAjZmZmZmZmKSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2VsbC5kaXNhYmxlZCB7XG4gICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICB0aGlzLmhvdmVyZWQgPSBmYWxzZTtcbiAgICB0aGlzLmlzQ3VycmVudCA9IGZhbHNlO1xuICAgIHRoaXMuZGlzYWJsZWREYXRlcyA9IFtdO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGRpc2FibGVkID0gdGhpcy5pc0Rpc2FibGVkKCk7XG4gICAgY29uc3QgY2xhc3NlcyA9IHtcbiAgICAgIGNlbGw6IHRydWUsXG4gICAgICBjdXJyZW50OiB0aGlzLmlzQ3VycmVudCxcbiAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLFxuICAgICAgaG92ZXJlZDogdGhpcy5ob3ZlcmVkLFxuICAgICAgZGlzYWJsZWQsXG4gICAgfTtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBAY2xpY2s9XCIke2Rpc2FibGVkID8gbnVsbCA6IHRoaXMuX29uQ2xpY2t9XCIgQG1vdXNlb3Zlcj1cIiR7dGhpcy5fb25Nb3VzZU92ZXJ9XCIgY2xhc3M9XCIke2NsYXNzTWFwKGNsYXNzZXMpfVwiPlxuICAgICAgICA8ZGl2PiR7dW50aWwodGhpcy5kYXRhID8gdGhpcy5kYXRhLnRpdGxlIDogbnVsbCl9PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgdXBkYXRlZChwcm9wZXJ0aWVzKSB7XG4gICAgaWYgKHByb3BlcnRpZXMuaGFzKCdkYXRlRnJvbScpIHx8IHByb3BlcnRpZXMuaGFzKCdkYXRlVG8nKSB8fCBwcm9wZXJ0aWVzLmhhcygnaG92ZXJlZERhdGUnKSB8fCBwcm9wZXJ0aWVzLmhhcygnZGF0YScpKSB7XG4gICAgICB0aGlzLmRhdGVDaGFuZ2VkKHRoaXMuZGF0ZUZyb20sIHRoaXMuZGF0ZVRvLCB0aGlzLmhvdmVyZWREYXRlLCB0aGlzLmRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIGlzU2VsZWN0ZWQocGFyc2VkRGF0ZUZyb20sIHBhcnNlZERhdGVUbywgZGF0YSkge1xuICAgIHJldHVybiAoXG4gICAgICAocGFyc2VkRGF0ZVRvICYmIHN0YXJ0T2ZEYXkocGFyc2VkRGF0ZVRvICogMTAwMCkuZ2V0VGltZSgpIC8gMTAwMCA9PT0gZGF0YS5kYXRlKSB8fFxuICAgICAgKHBhcnNlZERhdGVGcm9tICYmIHN0YXJ0T2ZEYXkocGFyc2VkRGF0ZUZyb20gKiAxMDAwKS5nZXRUaW1lKCkgLyAxMDAwID09PSBkYXRhLmRhdGUpXG4gICAgKTtcbiAgfVxuXG4gIGRhdGVDaGFuZ2VkKGRhdGVGcm9tLCBkYXRlVG8sIGhvdmVyZWREYXRlLCBkYXRhKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IGZhbHNlO1xuICAgIHRoaXMuaG92ZXJlZCA9IGZhbHNlO1xuICAgIGNvbnN0IHBhcnNlZERhdGVGcm9tID0gcGFyc2VJbnQoZGF0ZUZyb20sIDEwKTtcbiAgICBjb25zdCBwYXJzZWREYXRlVG8gPSBwYXJzZUludChkYXRlVG8sIDEwKTtcbiAgICBpZiAoZGF0YSB8fCBob3ZlcmVkRGF0ZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9IHRoaXMuaXNTZWxlY3RlZChwYXJzZWREYXRlRnJvbSwgcGFyc2VkRGF0ZVRvLCBkYXRhKTtcbiAgICAgIGlmIChcbiAgICAgICAgKChob3ZlcmVkRGF0ZSA9PT0gZGF0YS5kYXRlIHx8IGRhdGEuZGF0ZSA8IGhvdmVyZWREYXRlKSAmJlxuICAgICAgICAgIGRhdGEuZGF0ZSA+IHBhcnNlZERhdGVGcm9tICYmXG4gICAgICAgICAgIXBhcnNlZERhdGVUbyAmJlxuICAgICAgICAgICFOdW1iZXIuaXNOYU4ocGFyc2VkRGF0ZUZyb20pICYmXG4gICAgICAgICAgcGFyc2VkRGF0ZUZyb20gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICF0aGlzLnNlbGVjdGVkKSB8fFxuICAgICAgICAoZGF0YS5kYXRlID4gcGFyc2VkRGF0ZUZyb20gJiYgZGF0YS5kYXRlIDwgcGFyc2VkRGF0ZVRvKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuaG92ZXJlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX29uQ2xpY2soKSB7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnc2VsZWN0JywgeyBkYXRlOiB0aGlzLmRhdGEuZGF0ZSB9KTtcbiAgfVxuXG4gIF9vbk1vdXNlT3ZlcigpIHtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdob3ZlcicsIHsgZGF0ZTogdGhpcy5kYXRhLmRhdGUgfSk7XG4gIH1cblxuICBpc0Rpc2FibGVkKCkge1xuICAgIGlmICh0aGlzLmRhdGEgJiYgdGhpcy5kYXRhLmRhdGUpIHtcbiAgICAgIHJldHVybiBpc0ludmFsaWQodGhpcy5kYXRhLmRhdGUsIHRoaXMubWluLCB0aGlzLm1heCwgdHJ1ZSwgdGhpcy5kaXNhYmxlZERhdGVzKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LWRhdGUtcGlja2VyLWNlbGwnLCBHdkRhdGVQaWNrZXJDZWxsKTtcbiJdfQ==
|
|
166
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2F0b21zL2d2LWRhdGUtcGlja2VyLWNlbGwuanMiXSwibmFtZXMiOlsiTGl0RWxlbWVudCIsImh0bWwiLCJjc3MiLCJjbGFzc01hcCIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJzdGFydE9mRGF5IiwidW50aWwiLCJpc0ludmFsaWQiLCJHdkRhdGVQaWNrZXJDZWxsIiwicHJvcGVydGllcyIsImRhdGEiLCJ0eXBlIiwiT2JqZWN0Iiwic2VsZWN0ZWQiLCJCb29sZWFuIiwiaG92ZXJlZCIsImRhdGVUbyIsIk51bWJlciIsImRhdGVGcm9tIiwibW9udGgiLCJTdHJpbmciLCJob3ZlcmVkRGF0ZSIsIm1pbiIsIm1heCIsImRpc2FibGVkIiwiaXNDdXJyZW50IiwidGltZSIsImRpc2FibGVkRGF0ZSIsIkFycmF5Iiwic3R5bGVzIiwiY29uc3RydWN0b3IiLCJkaXNhYmxlZERhdGVzIiwicmVuZGVyIiwiaXNEaXNhYmxlZCIsImNsYXNzZXMiLCJjZWxsIiwiY3VycmVudCIsIl9vbkNsaWNrIiwiX29uTW91c2VPdmVyIiwidGl0bGUiLCJ1cGRhdGVkIiwiaGFzIiwiZGF0ZUNoYW5nZWQiLCJpc1NlbGVjdGVkIiwicGFyc2VkRGF0ZUZyb20iLCJwYXJzZWREYXRlVG8iLCJnZXRUaW1lIiwiZGF0ZSIsInBhcnNlSW50IiwiaXNOYU4iLCJ1bmRlZmluZWQiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsVUFBVCxFQUFxQkMsSUFBckIsRUFBMkJDLEdBQTNCLFFBQXNDLEtBQXRDO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QiwwQkFBekI7QUFDQSxTQUFTQyxtQkFBVCxRQUFvQyxlQUFwQztBQUNBLFNBQVNDLFVB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YixJQUVDLENBQUNDLFlBRkYsSUFHQyxDQUFDNUIsTUFBTSxDQUFDZ0MsS0FBUCxDQUFhTCxjQUFiLENBSEYsSUFJQ0EsY0FBYyxLQUFLTSxTQUpwQixJQUtDLENBQUMsS0FBS3JDLFFBTFIsSUFNQ0gsSUFBSSxDQUFDcUMsSUFBTCxHQUFZSCxjQUFaLElBQThCbEMsSUFBSSxDQUFDcUMsSUFBTCxHQUFZRixZQVA3QyxFQVFFO0FBQ0EsYUFBSzlCLE9BQUwsR0FBZSxJQUFmO0FBQ0Q7QUFDRjtBQUNGOztBQUVEc0IsRUFBQUEsUUFBUSxHQUFHO0FBQ1RqQyxJQUFBQSxtQkFBbUIsQ0FBQyxJQUFELEVBQU8sUUFBUCxFQUFpQjtBQUFFMkMsTUFBQUEsSUFBSSxFQUFFLEtBQUtyQyxJQUFMLENBQVVxQztBQUFsQixLQUFqQixDQUFuQjtBQUNEOztBQUVEVCxFQUFBQSxZQUFZLEdBQUc7QUFDYmxDLElBQUFBLG1CQUFtQixDQUFDLElBQUQsRUFBTyxPQUFQLEVBQWdCO0FBQUUyQyxNQUFBQSxJQUFJLEVBQUUsS0FBS3JDLElBQUwsQ0FBVXFDO0FBQWxCLEtBQWhCLENBQW5CO0FBQ0Q7O0FBRURkLEVBQUFBLFVBQVUsR0FBRztBQUNYLFFBQUksS0FBS3ZCLElBQUwsSUFBYSxLQUFLQSxJQUFMLENBQVVxQyxJQUEzQixFQUFpQztBQUMvQixhQUFPeEMsU0FBUyxDQUFDLEtBQUtHLElBQUwsQ0FBVXFDLElBQVgsRUFBaUIsS0FBS3pCLEdBQXRCLEVBQTJCLEtBQUtDLEdBQWhDLEVBQXFDLElBQXJDLEVBQTJDLEtBQUtRLGFBQWhELENBQWhCO0FBQ0Q7O0FBQ0QsV0FBTyxLQUFQO0FBQ0Q7O0FBMUk4QztBQTZJakRvQixNQUFNLENBQUNDLGNBQVAsQ0FBc0JDLE1BQXRCLENBQTZCLHFCQUE3QixFQUFvRDdDLGdCQUFwRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBMaXRFbGVtZW50LCBodG1sLCBjc3MgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY2xhc3NNYXAgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9jbGFzcy1tYXAnO1xuaW1wb3J0IHsgZGlzcGF0Y2hDdXN0b21FdmVudCB9IGZyb20gJy4uL2xpYi9ldmVudHMnO1xuaW1wb3J0IHsgc3RhcnRPZkRheSB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IHVudGlsIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvdW50aWwnO1xuaW1wb3J0IHsgaXNJbnZhbGlkIH0gZnJvbSAnLi4vbGliL2RhdGUnO1xuXG4vKipcbiAqIERhdGUgUGlja2VyIENlbGxcbiAqXG4gKiAjIyBEZXRhaWxzXG4gKiAqIGhhcyBAdGhlbWUgZmFjZXRcbiAqXG4gKiBAZmlyZXMgZ3YtZGF0ZS1waWNrZXItY2VsbDpzZWxlY3QgLSBDdXN0b20gZXZlbnQgd2hlbiB1c2VyIHNlbGVjdCBjZWxsXG4gKiBAZmlyZXMgZ3YtZGF0ZS1waWNrZXItY2VsbDpob3ZlciAtIEN1c3RvbSBldmVudCB3aGVuIHVzZXIgaG92ZXIgY2VsbFxuICpcbiAqIEBhdHRyIHtPYmplY3QuPHtkYXRlOk51bWJlcix0aXRsZTpTdHJpbmd9Pn0gZGF0YSAtIGRhdGEgdG8gZGlzcGxheVxuICogQGF0dHIge0Jvb2xlYW59IHNlbGVjdGVkIC0gaWYgZGF0YSBpcyBzZWxlY3RlZFxuICogQGF0dHIge0Jvb2xlYW59IGhvdmVyZWQgLSBpZiBkYXRhIGlzIGhvdmVyZWRcbiAqIEBhdHRyIHtCb29sZWFufSBkaXNhYmxlZCAtIGlmIGRhdGEgaXMgZGlzYWJsZWRcbiAqIEBhdHRyIHtCb29sZWFufSBpc0N1cnJlbnQgLSBpZiBkYXRhIGlzIGN1cnJlbnQgZGF0ZVxuICogQGF0dHIge051bWJlcn0gZGF0ZUZyb20gLSB1bml4IGRhdGUgZm9ybVxuICogQGF0dHIge051bWJlcn0gZGF0ZVRvIC0gdW5peCBkYXRlIHRvXG4gKiBAYXR0ciB7TnVtYmVyfSBob3ZlcmVkRGF0ZSAtIHVuaXggaG92ZXJlZCBkYXRlXG4gKiBAYXR0ciB7TnVtYmVyfSBtaW4gLSB1bml4IG1pbiBkYXRlXG4gKiBAYXR0ciB7TnVtYmVyfSBtYXggLSB1bml4IG1heCBkYXRlXG4gKiBAYXR0ciB7QXJyYXl9IGRpc2FibGVkRGF0ZXMgLSBhcnJheSBvZiBkaXNhYmxlZCBkYXRlXG4gKlxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1kYXRlLXBpY2tlci1ob3Zlci0tYmdjPXZhcigtLWd2LXRoZW1lLWNvbG9yLWxpZ2h0LCAjODZjM2QwKV0gLSBIb3ZlciBiYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LWRhdGUtcGlja2VyLWhvdmVyLS1jPXZhcigtLWd2LXRoZW1lLWZvbnQtY29sb3ItZGFyaywgIzI2MjYyNildIC0gSG92ZXIgY29sb3JcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtZGF0ZS1waWNrZXItc2VsZWN0ZWQtLWJnYz12YXIoLS1ndi10aGVtZS1jb2xvciwgIzVhNzY4NCldIC0gU2VsZWN0ZWQgYmFja2dyb3VuZCBjb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1kYXRlLXBpY2tlci1zZWxlY3RlZC0tYz12YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWxpZ2h0LCAjZmZmZmZmKV0gLSBTZWxlY3RlZCBjb2xvclxuICovXG5leHBvcnQgY2xhc3MgR3ZEYXRlUGlja2VyQ2VsbCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGE6IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICBzZWxlY3RlZDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBob3ZlcmVkOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIGRhdGVUbzogeyB0eXBlOiBOdW1iZXIgfSxcbiAgICAgIGRhdGVGcm9tOiB7IHR5cGU6IE51bWJlciB9LFxuICAgICAgbW9udGg6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBob3ZlcmVkRGF0ZTogeyB0eXBlOiBOdW1iZXIgfSxcbiAgICAgIG1pbjogeyB0eXBlOiBOdW1iZXIgfSxcbiAgICAgIG1heDogeyB0eXBlOiBOdW1iZXIgfSxcbiAgICAgIGRpc2FibGVkOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIGlzQ3VycmVudDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICB0aW1lOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIGRpc2FibGVkRGF0ZTogeyB0eXBlOiBBcnJheSB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIC5jZWxsIHtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNlbGw6bm90KC5kaXNhYmxlZCk6bm90KC5zZWxlY3RlZCk6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWd2LWRhdGUtcGlja2VyLWhvdmVyLS1iZ2MsIHZhcigtLWd2LXRoZW1lLWNvbG9yLWxpZ2h0LCAjODZjM2QwKSk7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWd2LWRhdGUtcGlja2VyLWhvdmVyLS1jLCB2YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWRhcmssICMyNjI2MjYpKTtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jZWxsLmhvdmVyZWQge1xuICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jZWxsLmN1cnJlbnQge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3IsICNmNWY1ZjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNlbGwuaG92ZXJlZCxcbiAgICAgICAgLmNlbGwuc2VsZWN0ZWQge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWd2LWRhdGUtcGlja2VyLXNlbGVjdGVkLS1iZ2MsIHZhcigtLWd2LXRoZW1lLWNvbG9yLCAjNWE3Njg0KSk7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWd2LWRhdGUtcGlja2VyLXNlbGVjdGVkLS1jLCB2YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWxpZ2h0LCAjZmZmZmZmKSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2VsbC5kaXNhYmxlZCB7XG4gICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICB0aGlzLmhvdmVyZWQgPSBmYWxzZTtcbiAgICB0aGlzLmlzQ3VycmVudCA9IGZhbHNlO1xuICAgIHRoaXMuZGlzYWJsZWREYXRlcyA9IFtdO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGRpc2FibGVkID0gdGhpcy5pc0Rpc2FibGVkKCk7XG4gICAgY29uc3QgY2xhc3NlcyA9IHtcbiAgICAgIGNlbGw6IHRydWUsXG4gICAgICBjdXJyZW50OiB0aGlzLmlzQ3VycmVudCxcbiAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLFxuICAgICAgaG92ZXJlZDogdGhpcy5ob3ZlcmVkLFxuICAgICAgZGlzYWJsZWQsXG4gICAgfTtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBAY2xpY2s9XCIke2Rpc2FibGVkID8gbnVsbCA6IHRoaXMuX29uQ2xpY2t9XCIgQG1vdXNlb3Zlcj1cIiR7dGhpcy5fb25Nb3VzZU92ZXJ9XCIgY2xhc3M9XCIke2NsYXNzTWFwKGNsYXNzZXMpfVwiPlxuICAgICAgICA8ZGl2PiR7dW50aWwodGhpcy5kYXRhID8gdGhpcy5kYXRhLnRpdGxlIDogbnVsbCl9PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgdXBkYXRlZChwcm9wZXJ0aWVzKSB7XG4gICAgaWYgKHByb3BlcnRpZXMuaGFzKCdkYXRlRnJvbScpIHx8IHByb3BlcnRpZXMuaGFzKCdkYXRlVG8nKSB8fCBwcm9wZXJ0aWVzLmhhcygnaG92ZXJlZERhdGUnKSB8fCBwcm9wZXJ0aWVzLmhhcygnZGF0YScpKSB7XG4gICAgICB0aGlzLmRhdGVDaGFuZ2VkKHRoaXMuZGF0ZUZyb20sIHRoaXMuZGF0ZVRvLCB0aGlzLmhvdmVyZWREYXRlLCB0aGlzLmRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIGlzU2VsZWN0ZWQocGFyc2VkRGF0ZUZyb20sIHBhcnNlZERhdGVUbywgZGF0YSkge1xuICAgIHJldHVybiAoXG4gICAgICAocGFyc2VkRGF0ZVRvICYmIHN0YXJ0T2ZEYXkocGFyc2VkRGF0ZVRvICogMTAwMCkuZ2V0VGltZSgpIC8gMTAwMCA9PT0gZGF0YS5kYXRlKSB8fFxuICAgICAgKHBhcnNlZERhdGVGcm9tICYmIHN0YXJ0T2ZEYXkocGFyc2VkRGF0ZUZyb20gKiAxMDAwKS5nZXRUaW1lKCkgLyAxMDAwID09PSBkYXRhLmRhdGUpXG4gICAgKTtcbiAgfVxuXG4gIGRhdGVDaGFuZ2VkKGRhdGVGcm9tLCBkYXRlVG8sIGhvdmVyZWREYXRlLCBkYXRhKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IGZhbHNlO1xuICAgIHRoaXMuaG92ZXJlZCA9IGZhbHNlO1xuICAgIGNvbnN0IHBhcnNlZERhdGVGcm9tID0gcGFyc2VJbnQoZGF0ZUZyb20sIDEwKTtcbiAgICBjb25zdCBwYXJzZWREYXRlVG8gPSBwYXJzZUludChkYXRlVG8sIDEwKTtcbiAgICBpZiAoZGF0YSB8fCBob3ZlcmVkRGF0ZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9IHRoaXMuaXNTZWxlY3RlZChwYXJzZWREYXRlRnJvbSwgcGFyc2VkRGF0ZVRvLCBkYXRhKTtcbiAgICAgIGlmIChcbiAgICAgICAgKChob3ZlcmVkRGF0ZSA9PT0gZGF0YS5kYXRlIHx8IGRhdGEuZGF0ZSA8IGhvdmVyZWREYXRlKSAmJlxuICAgICAgICAgIGRhdGEuZGF0ZSA+IHBhcnNlZERhdGVGcm9tICYmXG4gICAgICAgICAgIXBhcnNlZERhdGVUbyAmJlxuICAgICAgICAgICFOdW1iZXIuaXNOYU4ocGFyc2VkRGF0ZUZyb20pICYmXG4gICAgICAgICAgcGFyc2VkRGF0ZUZyb20gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICF0aGlzLnNlbGVjdGVkKSB8fFxuICAgICAgICAoZGF0YS5kYXRlID4gcGFyc2VkRGF0ZUZyb20gJiYgZGF0YS5kYXRlIDwgcGFyc2VkRGF0ZVRvKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuaG92ZXJlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX29uQ2xpY2soKSB7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnc2VsZWN0JywgeyBkYXRlOiB0aGlzLmRhdGEuZGF0ZSB9KTtcbiAgfVxuXG4gIF9vbk1vdXNlT3ZlcigpIHtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdob3ZlcicsIHsgZGF0ZTogdGhpcy5kYXRhLmRhdGUgfSk7XG4gIH1cblxuICBpc0Rpc2FibGVkKCkge1xuICAgIGlmICh0aGlzLmRhdGEgJiYgdGhpcy5kYXRhLmRhdGUpIHtcbiAgICAgIHJldHVybiBpc0ludmFsaWQodGhpcy5kYXRhLmRhdGUsIHRoaXMubWluLCB0aGlzLm1heCwgdHJ1ZSwgdGhpcy5kaXNhYmxlZERhdGVzKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LWRhdGUtcGlja2VyLWNlbGwnLCBHdkRhdGVQaWNrZXJDZWxsKTtcbiJdfQ==
|