@ng-nest/ui 15.0.5 → 15.0.7
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/anchor/anchor.component.d.ts +5 -5
- package/api/api.component.d.ts +1 -1
- package/auto-complete/auto-complete.component.d.ts +1 -1
- package/avatar/avatar.component.d.ts +3 -3
- package/back-top/back-top.component.d.ts +2 -2
- package/badge/badge.component.d.ts +2 -2
- package/border/border.component.d.ts +1 -1
- package/button/button.component.d.ts +2 -2
- package/button/buttons.component.d.ts +1 -1
- package/calendar/calendar.component.d.ts +2 -2
- package/card/card.component.d.ts +2 -2
- package/carousel/carousel-panel.component.d.ts +2 -2
- package/carousel/carousel.component.d.ts +4 -4
- package/cascade/cascade.component.d.ts +1 -1
- package/checkbox/checkbox.component.d.ts +3 -3
- package/collapse/collapse-panel.component.d.ts +2 -2
- package/collapse/collapse.component.d.ts +2 -2
- package/color/color.component.d.ts +1 -1
- package/color-picker/color-picker-portal.component.d.ts +4 -4
- package/color-picker/color-picker.component.d.ts +1 -1
- package/comment/comment-reply.component.d.ts +2 -2
- package/comment/comment.component.d.ts +2 -2
- package/container/aside.component.d.ts +1 -1
- package/container/container.component.d.ts +1 -1
- package/container/footer.component.d.ts +1 -1
- package/container/header.component.d.ts +1 -1
- package/container/main.component.d.ts +1 -1
- package/core/config/config.d.ts +1 -0
- package/core/functions/chunk.d.ts +1 -0
- package/core/functions/date.d.ts +1 -0
- package/core/functions/flex.d.ts +1 -1
- package/core/functions/group-by.d.ts +1 -0
- package/core/functions/guid.d.ts +4 -0
- package/core/functions/public-api.d.ts +4 -0
- package/core/{util → functions}/resize.d.ts +0 -0
- package/core/util/public-api.d.ts +0 -4
- package/date-picker/date-picker.component.d.ts +1 -1
- package/date-picker/date-picker.property.d.ts +129 -3
- package/date-picker/date-range-portal.component.d.ts +9 -8
- package/date-picker/date-range.component.d.ts +13 -11
- package/date-picker/picker-date.component.d.ts +15 -6
- package/dialog/dialog.component.d.ts +2 -2
- package/drawer/drawer.component.d.ts +2 -2
- package/dropdown/dropdown-portal.component.d.ts +2 -2
- package/dropdown/dropdown.component.d.ts +3 -3
- package/esm2020/anchor/anchor.component.mjs +1 -2
- package/esm2020/api/api.component.mjs +1 -1
- package/esm2020/auto-complete/auto-complete.component.mjs +1 -1
- package/esm2020/avatar/avatar.component.mjs +1 -1
- package/esm2020/back-top/back-top.component.mjs +1 -1
- package/esm2020/badge/badge.component.mjs +1 -1
- package/esm2020/base-form/base-form.component.mjs +3 -3
- package/esm2020/border/border.component.mjs +1 -1
- package/esm2020/button/button.component.mjs +1 -1
- package/esm2020/button/buttons.component.mjs +1 -1
- package/esm2020/calendar/calendar.component.mjs +1 -1
- package/esm2020/card/card.component.mjs +1 -1
- package/esm2020/carousel/carousel-panel.component.mjs +1 -1
- package/esm2020/carousel/carousel.component.mjs +1 -1
- package/esm2020/cascade/cascade.component.mjs +1 -1
- package/esm2020/checkbox/checkbox.component.mjs +1 -1
- package/esm2020/collapse/collapse-panel.component.mjs +1 -1
- package/esm2020/collapse/collapse.component.mjs +1 -1
- package/esm2020/color/color.component.mjs +1 -1
- package/esm2020/color-picker/color-picker-portal.component.mjs +1 -1
- package/esm2020/color-picker/color-picker.component.mjs +1 -1
- package/esm2020/comment/comment-reply.component.mjs +1 -1
- package/esm2020/comment/comment.component.mjs +1 -1
- package/esm2020/container/aside.component.mjs +1 -1
- package/esm2020/container/container.component.mjs +1 -1
- package/esm2020/container/footer.component.mjs +1 -1
- package/esm2020/container/header.component.mjs +1 -1
- package/esm2020/container/main.component.mjs +1 -1
- package/esm2020/core/config/config.mjs +1 -1
- package/esm2020/core/functions/chunk.mjs +14 -0
- package/esm2020/core/functions/date.mjs +20 -29
- package/esm2020/core/functions/flex.mjs +2 -2
- package/esm2020/core/functions/group-by.mjs +10 -0
- package/esm2020/core/functions/guid.mjs +10 -0
- package/esm2020/core/functions/order-by.mjs +24 -3
- package/esm2020/core/functions/public-api.mjs +5 -1
- package/esm2020/core/functions/resize.mjs +17 -0
- package/esm2020/core/util/public-api.mjs +1 -5
- package/esm2020/date-picker/date-picker-portal.component.mjs +2 -2
- package/esm2020/date-picker/date-picker.component.mjs +1 -1
- package/esm2020/date-picker/date-picker.property.mjs +23 -2
- package/esm2020/date-picker/date-range-portal.component.mjs +36 -33
- package/esm2020/date-picker/date-range.component.mjs +75 -53
- package/esm2020/date-picker/picker-date.component.mjs +133 -17
- package/esm2020/date-picker/picker-month.component.mjs +3 -3
- package/esm2020/date-picker/picker-year.component.mjs +3 -3
- package/esm2020/dialog/dialog.component.mjs +2 -2
- package/esm2020/drawer/drawer.component.mjs +1 -1
- package/esm2020/dropdown/dropdown-portal.component.mjs +1 -1
- package/esm2020/dropdown/dropdown.component.mjs +1 -1
- package/esm2020/find/find.component.mjs +1 -1
- package/esm2020/form/control.component.mjs +2 -2
- package/esm2020/form/form.component.mjs +8 -1
- package/esm2020/highlight/highlight.component.mjs +2 -2
- package/esm2020/i18n/i18n.property.mjs +1 -1
- package/esm2020/i18n/languages/en_GB.mjs +44 -18
- package/esm2020/i18n/languages/en_US.mjs +8 -2
- package/esm2020/i18n/languages/zh_CN.mjs +8 -2
- package/esm2020/i18n/languages/zh_TW.mjs +9 -3
- package/esm2020/icon/icon.component.mjs +1 -1
- package/esm2020/image/image-preview.component.mjs +1 -1
- package/esm2020/image/image.component.mjs +1 -1
- package/esm2020/inner/inner.component.mjs +1 -1
- package/esm2020/input/input-group.component.mjs +1 -1
- package/esm2020/input/input.component.mjs +2 -2
- package/esm2020/input-number/input-number.component.mjs +1 -1
- package/esm2020/link/link.component.mjs +1 -1
- package/esm2020/list/list-option.component.mjs +1 -1
- package/esm2020/list/list.component.mjs +2 -2
- package/esm2020/loading/loading.component.mjs +14 -7
- package/esm2020/loading/loading.property.mjs +1 -1
- package/esm2020/menu/menu-node.component.mjs +1 -1
- package/esm2020/menu/menu.component.mjs +3 -3
- package/esm2020/message/message.component.mjs +1 -1
- package/esm2020/message-box/message-box.component.mjs +1 -1
- package/esm2020/notification/notification.component.mjs +1 -1
- package/esm2020/pagination/pagination.component.mjs +1 -1
- package/esm2020/popconfirm/popconfirm.component.mjs +1 -1
- package/esm2020/popover/popover-portal.component.mjs +1 -1
- package/esm2020/progress/progress.component.mjs +1 -1
- package/esm2020/radio/radio.component.mjs +1 -1
- package/esm2020/rate/rate.component.mjs +1 -1
- package/esm2020/result/result.component.mjs +1 -1
- package/esm2020/select/select.component.mjs +3 -3
- package/esm2020/skeleton/skeleton.component.mjs +1 -1
- package/esm2020/slider/slider.component.mjs +1 -1
- package/esm2020/slider-select/slider-select.component.mjs +1 -1
- package/esm2020/steps/steps.component.mjs +1 -1
- package/esm2020/switch/switch.component.mjs +13 -6
- package/esm2020/switch/switch.module.mjs +6 -4
- package/esm2020/switch/switch.property.mjs +33 -4
- package/esm2020/table/drag.directive.mjs +13 -5
- package/esm2020/table/table-body.component.mjs +1 -1
- package/esm2020/table/table-foot.component.mjs +1 -1
- package/esm2020/table/table-head.component.mjs +20 -6
- package/esm2020/table/table.component.mjs +1 -1
- package/esm2020/table/table.property.mjs +23 -2
- package/esm2020/tabs/tab-content.component.mjs +1 -1
- package/esm2020/tabs/tab.component.mjs +3 -3
- package/esm2020/tabs/tabs.component.mjs +3 -3
- package/esm2020/tag/tag.component.mjs +1 -1
- package/esm2020/text-retract/text-retract.component.mjs +1 -1
- package/esm2020/textarea/textarea.component.mjs +1 -1
- package/esm2020/time-picker/time-picker-frame.component.mjs +188 -55
- package/esm2020/time-picker/time-picker-portal.component.mjs +30 -8
- package/esm2020/time-picker/time-picker.component.mjs +36 -9
- package/esm2020/time-picker/time-picker.module.mjs +8 -4
- package/esm2020/time-picker/time-picker.property.mjs +37 -3
- package/esm2020/timeline/timeline.component.mjs +1 -1
- package/esm2020/tooltip/tooltip-portal.component.mjs +3 -3
- package/esm2020/transfer/transfer.component.mjs +3 -3
- package/esm2020/transfer/transfer.module.mjs +8 -4
- package/esm2020/tree/tree-node.component.mjs +1 -1
- package/esm2020/tree/tree.component.mjs +1 -1
- package/esm2020/tree-file/tree-file.component.mjs +1 -1
- package/esm2020/tree-select/tree-select.component.mjs +1 -1
- package/esm2020/upload/upload-portal.component.mjs +5 -1
- package/esm2020/upload/upload.component.mjs +1 -1
- package/fesm2015/ng-nest-ui-anchor.mjs +0 -1
- package/fesm2015/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-api.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-badge.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-base-form.mjs +2 -2
- package/fesm2015/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-border.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-calendar.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-card.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-collapse.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-color.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-comment.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-container.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-core.mjs +95 -84
- package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-date-picker.mjs +265 -103
- package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-dialog.mjs +1 -1
- package/fesm2015/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-drawer.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-form.mjs +8 -2
- package/fesm2015/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-highlight.mjs +1 -1
- package/fesm2015/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-i18n.mjs +65 -22
- package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-inner.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-input.mjs +1 -2
- package/fesm2015/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-link.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-list.mjs +1 -1
- package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-loading.mjs +13 -7
- package/fesm2015/ng-nest-ui-loading.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-menu.mjs +2 -2
- package/fesm2015/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-message-box.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-message.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-notification.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-pagination.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-popconfirm.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-popover.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-progress.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-result.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-select.mjs +2 -2
- package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-skeleton.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-steps.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-switch.mjs +48 -12
- package/fesm2015/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-table.mjs +53 -10
- package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tabs.mjs +4 -4
- package/fesm2015/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-text-retract.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-time-picker.mjs +292 -81
- package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-timeline.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tooltip.mjs +2 -2
- package/fesm2015/ng-nest-ui-tooltip.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-transfer.mjs +9 -5
- package/fesm2015/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-upload.mjs +4 -0
- package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-anchor.mjs +0 -1
- package/fesm2020/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-api.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-badge.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-base-form.mjs +2 -2
- package/fesm2020/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-border.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-calendar.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-card.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-collapse.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-color.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-comment.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-container.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-core.mjs +95 -84
- package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-date-picker.mjs +264 -103
- package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-dialog.mjs +1 -1
- package/fesm2020/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-drawer.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-form.mjs +8 -2
- package/fesm2020/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-highlight.mjs +1 -1
- package/fesm2020/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-i18n.mjs +65 -22
- package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-inner.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-input.mjs +1 -2
- package/fesm2020/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-link.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-list.mjs +1 -1
- package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-loading.mjs +13 -7
- package/fesm2020/ng-nest-ui-loading.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-menu.mjs +2 -2
- package/fesm2020/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-message-box.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-message.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-notification.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-pagination.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-popconfirm.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-popover.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-progress.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-result.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-select.mjs +2 -2
- package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-skeleton.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-steps.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-switch.mjs +48 -12
- package/fesm2020/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-table.mjs +53 -10
- package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tabs.mjs +4 -4
- package/fesm2020/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-text-retract.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-time-picker.mjs +291 -78
- package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-timeline.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tooltip.mjs +2 -2
- package/fesm2020/ng-nest-ui-tooltip.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-transfer.mjs +9 -5
- package/fesm2020/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-upload.mjs +4 -0
- package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
- package/find/find.component.d.ts +1 -1
- package/form/form.component.d.ts +1 -0
- package/highlight/highlight.component.d.ts +3 -3
- package/i18n/i18n.property.d.ts +6 -0
- package/i18n/languages/en_GB.d.ts +26 -0
- package/i18n/languages/en_US.d.ts +6 -0
- package/i18n/languages/zh_CN.d.ts +6 -0
- package/i18n/languages/zh_TW.d.ts +6 -0
- package/icon/icon.component.d.ts +2 -2
- package/image/image-preview.component.d.ts +2 -2
- package/image/image.component.d.ts +2 -2
- package/inner/inner.component.d.ts +1 -1
- package/input/input-group.component.d.ts +2 -2
- package/input/input.component.d.ts +5 -5
- package/input-number/input-number.component.d.ts +1 -1
- package/link/link.component.d.ts +2 -2
- package/list/list-option.component.d.ts +2 -2
- package/list/list.component.d.ts +7 -7
- package/loading/loading.component.d.ts +3 -2
- package/loading/loading.property.d.ts +1 -1
- package/menu/menu-node.component.d.ts +2 -2
- package/menu/menu.component.d.ts +3 -3
- package/message/message.component.d.ts +2 -2
- package/message-box/message-box.component.d.ts +2 -2
- package/notification/notification.component.d.ts +2 -2
- package/package.json +1 -1
- package/pagination/pagination.component.d.ts +2 -2
- package/popconfirm/popconfirm.component.d.ts +2 -2
- package/popover/popover-portal.component.d.ts +2 -2
- package/progress/progress.component.d.ts +2 -2
- package/radio/radio.component.d.ts +3 -3
- package/rate/rate.component.d.ts +3 -3
- package/result/result.component.d.ts +2 -2
- package/select/select.component.d.ts +1 -1
- package/skeleton/skeleton.component.d.ts +2 -2
- package/slider/slider.component.d.ts +4 -4
- package/slider-select/slider-select.component.d.ts +6 -6
- package/steps/steps.component.d.ts +2 -2
- package/switch/switch.component.d.ts +3 -2
- package/switch/switch.module.d.ts +3 -1
- package/switch/switch.property.d.ts +42 -1
- package/table/drag.directive.d.ts +12 -2
- package/table/table-body.component.d.ts +3 -3
- package/table/table-foot.component.d.ts +3 -3
- package/table/table-head.component.d.ts +14 -4
- package/table/table.component.d.ts +12 -12
- package/table/table.property.d.ts +50 -1
- package/tabs/tab-content.component.d.ts +1 -1
- package/tabs/tabs.component.d.ts +1 -1
- package/tag/tag.component.d.ts +2 -2
- package/text-retract/text-retract.component.d.ts +2 -2
- package/textarea/textarea.component.d.ts +4 -4
- package/time-picker/time-picker-frame.component.d.ts +30 -23
- package/time-picker/time-picker-portal.component.d.ts +13 -3
- package/time-picker/time-picker.component.d.ts +6 -3
- package/time-picker/time-picker.module.d.ts +2 -1
- package/time-picker/time-picker.property.d.ts +38 -2
- package/timeline/timeline.component.d.ts +2 -2
- package/tooltip/tooltip-portal.component.d.ts +3 -3
- package/transfer/transfer.component.d.ts +2 -2
- package/transfer/transfer.module.d.ts +2 -1
- package/tree/tree-node.component.d.ts +2 -2
- package/tree/tree.component.d.ts +3 -3
- package/tree-file/tree-file.component.d.ts +2 -2
- package/tree-select/tree-select.component.d.ts +1 -1
- package/upload/upload-portal.component.d.ts +6 -6
- package/upload/upload.component.d.ts +3 -3
- package/core/util/chunk.d.ts +0 -1
- package/core/util/group-by.d.ts +0 -1
- package/core/util/guid.d.ts +0 -4
- package/esm2020/core/util/chunk.mjs +0 -14
- package/esm2020/core/util/group-by.mjs +0 -10
- package/esm2020/core/util/guid.mjs +0 -10
- package/esm2020/core/util/resize.mjs +0 -17
|
@@ -215,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
|
|
|
215
215
|
}], table: [{
|
|
216
216
|
type: Input
|
|
217
217
|
}] } });
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90YWJsZS90YWJsZS1ib2R5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RhYmxlL3RhYmxlLWJvZHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBR3ZCLE1BQU0sRUFDTixTQUFTLEVBQ1QsS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBdUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQTJCLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFRM0MsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGtCQUFrQjtJQW1CekQ7SUFDRSxxREFBcUQ7SUFDOUMsUUFBbUIsRUFDbkIsVUFBc0IsRUFDdEIsR0FBc0IsRUFDSixHQUFRLEVBQzFCLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBTkQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ0osUUFBRyxHQUFILEdBQUcsQ0FBSztRQUMxQixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUF4QnRDLGVBQVUsR0FBZ0MsRUFBRSxDQUFDO1FBZXJDLGVBQVUs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SUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDO1NBQ2hFO2FBQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztTQUNoQztRQUNELElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUM7U0FDL0U7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFO1lBQzVDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUMxQyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxXQUFXLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lB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LGlCQUVoQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNOzswQkEwQjVDLE1BQU07MkJBQUMsUUFBUTt5RUFaRSxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBQ1EsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUNmLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBJbmplY3QsXHJcbiAgVmlld0NoaWxkLFxyXG4gIElucHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhUYWJsZUJvZHlQcmVmaXgsIFhUYWJsZUJvZHlQcm9wZXJ0eSwgWFRhYmxlUm93LCBYVGFibGVDb2x1bW4sIFhUYWJsZUNlbGwgfSBmcm9tICcuL3RhYmxlLnByb3BlcnR5JztcclxuaW1wb3J0IHsgcmVtb3ZlTmdUYWcsIFhJc0NoYW5nZSwgWFJlc2l6ZSwgWENvbmZpZ1NlcnZpY2UsIFhOdW1iZXIsIHN0cmlwVGFncyB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hUYWJsZUJvZHlQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtYm9keS5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFRhYmxlQm9keUNvbXBvbmVudCBleHRlbmRzIFhUYWJsZUJvZHlQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICB0Ym9keVN0eWxlOiB7IFtwcm9wZXJ0eTogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuICBnZXQgaXNFbXB0eSgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE/Lmxlbmd0aCA9PT0gMDtcclxuICB9XHJcbiAgZ2V0IGdldFJvd0hlaWdodCgpIHtcclxuICAgIHJldHVybiB0aGlzLnJvd0hlaWdodCA9PSAwID8gJycgOiB0aGlzLnJvd0hlaWdodDtcclxuICB9XHJcbiAgZ2V0IGdldEl0ZW1TaXplKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucm93SGVpZ2h0ICE9PSAwICYmIHRoaXMuaXRlbVNpemUgPiB0aGlzLnJvd0hlaWdodCA/IHRoaXMucm93SGVpZ2h0IDogdGhpcy5pdGVtU2l6ZTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3Rib2R5JykgdGJvZHkhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ3ZpcnR1YWxCb2R5JykgdmlydHVhbEJvZHkhOiBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQ7XHJcbiAgQElucHV0KCkgdGFibGU6IGFueTtcclxuXHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIF9yZXNpemVPYnNlcnZlciE6IFJlc2l6ZU9ic2VydmVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIEBPcHRpb25hbCgpIEBIb3N0KCkgcHVibGljIHRhYmxlOiBYVGFibGVDb21wb25lbnQsXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwdWJsaWMgZG9jOiBhbnksXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKHNpbXBsZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgY29sdW1ucywgYWN0aXZhdGVkUm93LCBtZXJnZVJ1bGUsIGV4cGFuZGVkQWxsLCBhZGFwdGlvbkhlaWdodCB9ID0gc2ltcGxlcztcclxuICAgIFhJc0NoYW5nZShkYXRhLCBjb2x1bW5zLCBhY3RpdmF0ZWRSb3csIG1lcmdlUnVsZSwgZXhwYW5kZWRBbGwpICYmIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIFhJc0NoYW5nZShhZGFwdGlvbkhlaWdodCkgJiYgdGhpcy5zZXRBZGFwdGlvbkhlaWdodCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICByZW1vdmVOZ1RhZyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICBpZiAodGhpcy5sZXZlbCA+IDApIHJlbW92ZU5nVGFnKHRoaXMudGJvZHkubmF0aXZlRWxlbWVudCk7XHJcbiAgICBpZiAodGhpcy5zY3JvbGw/LnkgJiYgIXRoaXMuYm9keUhlaWdodCkge1xyXG4gICAgICB0aGlzLmJvZHlIZWlnaHQgPSB0aGlzLnNjcm9sbC55O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy50YWJsZS52aXJ0dWFsQm9keSA9IHRoaXMudmlydHVhbEJvZHk7XHJcbiAgICB0aGlzLnRhYmxlLmJvZHlDaGFuZ2UgPSAoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLnNldFN1YmplY3QoKTtcclxuICAgIHRoaXMuc2V0U2Nyb2xsKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBzZXRTdWJqZWN0KCkge1xyXG4gICAgaWYgKHRoaXMudmlydHVhbEJvZHkpIHtcclxuICAgICAgdGhpcy50YWJsZS5zY3JvbGxDb250ZW50RWxlID0gdGhpcy52aXJ0dWFsQm9keT8uZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxyXG4gICAgICAgICcuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcidcclxuICAgICAgKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgaWYgKHRoaXMuc2Nyb2xsPy54KSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRhYmxlLnNjcm9sbENvbnRlbnRFbGUsICd3aWR0aCcsIGAke3RoaXMuc2Nyb2xsLnh9cHhgKTtcclxuICAgICAgfVxyXG4gICAgICBYUmVzaXplKHRoaXMudGFibGUudGFibGUubmF0aXZlRWxlbWVudCwgdGhpcy50YWJsZS5zY3JvbGxDb250ZW50RWxlKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyID0geC5yZXNpemVPYnNlcnZlcjtcclxuICAgICAgICAgIHRoaXMuc2V0QWRhcHRpb25IZWlnaHQoKTtcclxuICAgICAgICAgIHRoaXMuc2V0U2Nyb2xsKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRBZGFwdGlvbkhlaWdodCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudGFibGUuc2Nyb2xsQ29udGVudEVsZSkge1xyXG4gICAgICBmcm9tRXZlbnQodGhpcy52aXJ0dWFsQm9keS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdzY3JvbGwnKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGVsZSA9IHguc3JjRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICAgIHRoaXMudGFibGUuc2Nyb2xsVG9wID0gZWxlLnNjcm9sbFRvcDtcclxuICAgICAgICAgIHRoaXMudGFibGUuc2Nyb2xsTGVmdCA9IGVsZS5zY3JvbGxMZWZ0O1xyXG4gICAgICAgICAgaWYgKGVsZS5zY3JvbGxMZWZ0ID49IDAgJiYgdGhpcy50YWJsZS50aGVhZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCB0aGVhZCBvZiB0aGlzLnRhYmxlLnRoZWFkcykge1xyXG4gICAgICAgICAgICAgIHRoZWFkLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA9IHRoaXMudGFibGUuc2Nyb2xsTGVmdDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50YWJsZS5zY3JvbGxMZWZ0TWF4ID0gZWxlLnNjcm9sbExlZnQgKyBlbGUuY2xpZW50V2lkdGggPT09IGVsZS5zY3JvbGxXaWR0aDtcclxuICAgICAgICAgIHRoaXMudGFibGUuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFNjcm9sbCgpIHtcclxuICAgIGlmICghdGhpcy52aXJ0dWFsQm9keSkgcmV0dXJuO1xyXG4gICAgY29uc3QgZWxlID0gdGhpcy52aXJ0dWFsQm9keS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBjb25zdCBoYXNZID0gZWxlLnNjcm9sbEhlaWdodCA+ICh0aGlzLmJvZHlIZWlnaHQgYXMgbnVtYmVyKTtcclxuICAgIGNvbnN0IGhhc1ggPSB0aGlzLnRhYmxlLnNjcm9sbENvbnRlbnRFbGUuY2xpZW50V2lkdGggPiBlbGUuY2xpZW50V2lkdGg7XHJcblxyXG4gICAgaWYgKCF0aGlzLnRhYmxlLmhhc1Njcm9sbFkgJiYgaGFzWSkge1xyXG4gICAgICB0aGlzLnRhYmxlLmhhc1Njcm9sbFkgPSB0cnVlO1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFlXaWR0aCA9IGVsZS5vZmZzZXRXaWR0aCAtIGVsZS5jbGllbnRXaWR0aDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50YWJsZS5oYXNTY3JvbGxZICYmICFoYXNZKSB7XHJcbiAgICAgIHRoaXMudGFibGUuaGFzU2Nyb2xsWSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFlXaWR0aCA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLnRhYmxlLmhhc1Njcm9sbFggJiYgaGFzWCkge1xyXG4gICAgICB0aGlzLnRhYmxlLmhhc1Njcm9sbFggPSB0cnVlO1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFhIZWlnaHQgPSBlbGUub2Zmc2V0SGVpZ2h0IC0gZWxlLmNsaWVudEhlaWdodDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50YWJsZS5oYXNTY3JvbGxYICYmICFoYXNYKSB7XHJcbiAgICAgIHRoaXMudGFibGUuaGFzU2Nyb2xsWCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFhIZWlnaHQgPSAwO1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFhXaWR0aCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAoaGFzWCkge1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFhXaWR0aCA9IGVsZS5vZmZzZXRXaWR0aCArIGVsZS5zY3JvbGxXaWR0aCAtIGVsZS5jbGllbnRXaWR0aDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRhYmxlLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTdHlsZSgpIHtcclxuICAgIGxldCBoZWlnaHQgPSB0aGlzLnJvd0hlaWdodCA9PSAwID8gJycgOiB0aGlzLnJvd0hlaWdodDtcclxuICAgIGlmICh0aGlzLmNlbGxDb25maWcgJiYgdGhpcy5jZWxsQ29uZmlnLmNlbGxzKSB7XHJcbiAgICAgIGNvbnN0IHNwdCA9IHRoaXMuY2VsbENvbmZpZy5jZWxscy5tYXAoKHgpID0+IHtcclxuICAgICAgICBjb25zdCBncmlkQXJlYVNwdCA9IHguZ3JpZEFyZWE/LnNwbGl0KCcvJyk7XHJcbiAgICAgICAgcmV0dXJuIGdyaWRBcmVhU3B0ICYmIGdyaWRBcmVhU3B0Lmxlbmd0aCA+IDMgPyBOdW1iZXIoZ3JpZEFyZWFTcHRbMl0pIDogMjtcclxuICAgICAgfSk7XHJcbiAgICAgIGhlaWdodCA9ICgoTWF0aC5tYXgoLi4uc3B0KSAtIDEpICogKGhlaWdodCBhcyBudW1iZXIpKSBhcyBYTnVtYmVyO1xyXG4gICAgfVxyXG4gICAgdGhpcy50Ym9keVN0eWxlID0ge1xyXG4gICAgICBoZWlnaHQ6IGAke2hlaWdodH1weGBcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRJbmRleChpbmRleDogbnVtYmVyLCBpdGVtOiBYVGFibGVSb3cpIHtcclxuICAgIGlmICghaXNOYU4oaW5kZXgpKSByZXR1cm4gaW5kZXg7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhLmluZGV4T2YoaXRlbSk7XHJcbiAgfVxyXG5cclxuICBnZXRGbGV4KGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICBpZiAoY29sdW1uLndpZHRoKSByZXR1cm4gJ25vbmUnO1xyXG4gICAgaWYgKCFjb2x1bW4uZmxleCkgcmV0dXJuIDE7XHJcbiAgICByZXR1cm4gY29sdW1uLmZsZXg7XHJcbiAgfVxyXG5cclxuICBnZXRUaXRsZShyb3c6IFhUYWJsZVJvdywgY29sdW1uOiBYVGFibGVDZWxsIHwgYW55KSB7XHJcbiAgICBsZXQgaXQgPSByb3dbY29sdW1uLmlkIGFzIHN0cmluZ107XHJcbiAgICByZXR1cm4gaXQgPyBzdHJpcFRhZ3MoaXQpIDogJyc7XHJcbiAgfVxyXG5cclxuICBzZXRBZGFwdGlvbkhlaWdodCgpIHtcclxuICAgIGlmICgodGhpcy5hZGFwdGlvbkhlaWdodCBhcyBudW1iZXIpID4gMCkge1xyXG4gICAgICBjb25zdCBjYXB0aW9uSGVpZ2h0ID0gdGhpcy50YWJsZS50Y2FwdGlvbj8ubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgfHwgMDtcclxuICAgICAgbGV0IGhlYWRIZWlnaHQgPSAwO1xyXG4gICAgICBmb3IgKGxldCB0aGVhZCBvZiB0aGlzLnRhYmxlLnRoZWFkcykge1xyXG4gICAgICAgIGhlYWRIZWlnaHQgKz0gdGhlYWQubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZm9vdEhlaWdodCA9IHRoaXMudGFibGUudGZvb3Q/Lm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0IHx8IDA7XHJcbiAgICAgIGNvbnN0IHBhZ2luYXRpb25IZWlnaHQgPSB0aGlzLnRhYmxlLnBhZ2luYXRpb24/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgfHwgMDtcclxuICAgICAgdGhpcy5ib2R5SGVpZ2h0ID1cclxuICAgICAgICBOdW1iZXIodGhpcy5kb2NQZXJjZW50KSAqIHRoaXMuZG9jLmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgLVxyXG4gICAgICAgIGNhcHRpb25IZWlnaHQgLVxyXG4gICAgICAgIGhlYWRIZWlnaHQgLVxyXG4gICAgICAgIGZvb3RIZWlnaHQgLVxyXG4gICAgICAgIHBhZ2luYXRpb25IZWlnaHQgLVxyXG4gICAgICAgIE51bWJlcih0aGlzLmFkYXB0aW9uSGVpZ2h0KTtcclxuICAgICAgaWYgKHRoaXMuYm9keUhlaWdodCA8IDApIHRoaXMuYm9keUhlaWdodCA9IDA7XHJcbiAgICAgIHRoaXMubWluQnVmZmVyUHggPSB0aGlzLmJvZHlIZWlnaHQ7XHJcbiAgICAgIHRoaXMubWF4QnVmZmVyUHggPSB0aGlzLmJvZHlIZWlnaHQgKiAxLjI7XHJcbiAgICAgIHRoaXMudmlydHVhbEJvZHlbJ19zY3JvbGxTdHJhdGVneSddWydfbWluQnVmZmVyUHgnXSA9IHRoaXMubWluQnVmZmVyUHg7XHJcbiAgICAgIHRoaXMudmlydHVhbEJvZHlbJ19zY3JvbGxTdHJhdGVneSddWydfbWF4QnVmZmVyUHgnXSA9IHRoaXMubWF4QnVmZmVyUHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJvd0NsaWNrKGV2ZW50OiBFdmVudCwgcm93OiBYVGFibGVSb3cpIHtcclxuICAgIGlmIChyb3cuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRoaXMuYWN0aXZhdGVkUm93ID0gcm93O1xyXG4gICAgaWYgKHRoaXMudGFibGUuYWxsb3dDaGVja1JvdyAmJiB0aGlzLnRhYmxlLnJvd0NoZWNrZWQpIHtcclxuICAgICAgaWYgKCFBcnJheS5mcm9tKChldmVudCBhcyBhbnkpLnBhdGgpLmZpbmQoKHg6IGFueSkgPT4geC5sb2NhbE5hbWUgPT0gJ3gtY2hlY2tib3gnKSkge1xyXG4gICAgICAgIHJvd1t0aGlzLnRhYmxlLnJvd0NoZWNrZWQuaWRdID0gIXJvd1t0aGlzLnRhYmxlLnJvd0NoZWNrZWQuaWRdO1xyXG4gICAgICAgIHRoaXMudGFibGUuYm9keUNoZWNrZWQocm93W3RoaXMudGFibGUucm93Q2hlY2tlZC5pZF0sIHRoaXMudGFibGUucm93Q2hlY2tlZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuYWN0aXZhdGVkUm93Q2hhbmdlLmVtaXQocm93KTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uRXhwYW5kZWQoX2V2ZW50OiBFdmVudCwgbm9kZTogWFRhYmxlUm93KSB7XHJcbiAgICBub2RlLmV4cGFuZGVkID0gIW5vZGUuZXhwYW5kZWQ7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5SXRlbShfaW5kZXg6IG51bWJlciwgaXRlbTogWFRhYmxlUm93IHwgWFRhYmxlQ29sdW1uKSB7XHJcbiAgICByZXR1cm4gaXRlbS5pZDtcclxuICB9XHJcbn1cclxuIiwiPHRib2R5ICN0Ym9keT5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2VsbENvbmZpZzsgZWxzZSB2aXJ0dWFsU2Nyb2xsVHBsXCI+XHJcbiAgICA8dHIgKm5nRm9yPVwibGV0IHJvdyBvZiBkYXRhOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiIFtzdHlsZS5ncmlkVGVtcGxhdGVDb2x1bW5zXT1cImNlbGxDb25maWcuZ3JpZFRlbXBsYXRlQ29sdW1uc1wiPlxyXG4gICAgICA8dGRcclxuICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNlbGxDb25maWcuY2VsbHM7IGluZGV4IGFzIGpcIlxyXG4gICAgICAgIFt0aXRsZV09XCJnZXRUaXRsZShyb3csIGNvbHVtbilcIlxyXG4gICAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreV09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0KGNvbHVtbikgfHwgdGFibGUuZ2V0U3RpY2t5UmlnaHQoY29sdW1uKVwiXHJcbiAgICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LWxlZnRdPVwidGFibGUuZ2V0U3RpY2t5TGVmdChjb2x1bW4pXCJcclxuICAgICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktcmlnaHRdPVwidGFibGUuZ2V0U3RpY2t5UmlnaHQoY29sdW1uKVwiXHJcbiAgICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LWxlZnQtbGFzdF09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0TGFzdChjb2x1bW4pXCJcclxuICAgICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktcmlnaHQtZmlyc3RdPVwidGFibGUuZ2V0U3RpY2t5UmlnaHRGaXJzdChjb2x1bW4pXCJcclxuICAgICAgICBbc3R5bGUubGVmdC5weF09XCJjb2x1bW4ubGVmdFwiXHJcbiAgICAgICAgW3N0eWxlLnJpZ2h0LnB4XT1cImNvbHVtbi5yaWdodFwiXHJcbiAgICAgICAgW3N0eWxlLmdyaWQtYXJlYV09XCJjb2x1bW4uZ3JpZEFyZWFcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNlbGxUcGw7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4sIHJvdzogcm93LCBpOiBpIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC90ZD5cclxuICAgIDwvdHI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPHgtZW1wdHkgKm5nSWY9XCJpc0VtcHR5ICYmIGxldmVsID09PSAwXCI+PC94LWVtcHR5PlxyXG48L3Rib2R5PlxyXG5cclxuPG5nLXRlbXBsYXRlICN2aXJ0dWFsU2Nyb2xsVHBsPlxyXG4gIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnRcclxuICAgICN2aXJ0dWFsQm9keVxyXG4gICAgKm5nSWY9XCJ2aXJ0dWFsU2Nyb2xsOyBlbHNlIGJvZHlUcGxcIlxyXG4gICAgW2l0ZW1TaXplXT1cImdldEl0ZW1TaXplXCJcclxuICAgIFttaW5CdWZmZXJQeF09XCJtaW5CdWZmZXJQeFwiXHJcbiAgICBbbWF4QnVmZmVyUHhdPVwibWF4QnVmZmVyUHhcIlxyXG4gICAgW3N0eWxlLmhlaWdodC5weF09XCJib2R5SGVpZ2h0XCJcclxuICA+XHJcbiAgICA8dHJcclxuICAgICAgKmNka1ZpcnR1YWxGb3I9XCJsZXQgcm93IG9mIGRhdGE7IGxldCBpbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5SXRlbVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLWFjdGl2YXRlZF09XCJhbGxvd1NlbGVjdFJvdyAmJiBhY3RpdmF0ZWRSb3c/LmlkID09PSByb3cuaWRcIlxyXG4gICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgICAgIChjbGljayk9XCJyb3dDbGljaygkZXZlbnQsIHJvdylcIlxyXG4gICAgPlxyXG4gICAgICA8IS0tIHJvd0hlaWdodCDkuLogMCDnmoTml7blgJnvvIxpbmRleCDkuIvmoIfojrflj5bkuI3liLAgLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyb3dUcGw7IGNvbnRleHQ6IHsgcm93OiByb3csIGk6IGdldEluZGV4KGluZGV4LCByb3cpIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvdHI+XHJcbiAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2JvZHlUcGw+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcm93IG9mIGRhdGE7IGluZGV4IGFzIGk7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCI+XHJcbiAgICA8dHJcclxuICAgICAgW2NsYXNzLngtdGFibGUtYWN0aXZhdGVkXT1cImFsbG93U2VsZWN0Um93ICYmIGFjdGl2YXRlZFJvdz8uaWQgPT09IHJvdy5pZFwiXHJcbiAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgICAgKGNsaWNrKT1cInJvd0NsaWNrKCRldmVudCwgcm93KVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyb3dUcGw7IGNvbnRleHQ6IHsgcm93OiByb3csIGk6IGkgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC90cj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LXRhYmxlLWNoaWxkcmVuXCIgW2NsYXNzLngtdGFibGUtZXhwYW5kVHBsXT1cImV4cGFuZFRwbFwiICpuZ0lmPVwidGFibGUudHJlZVRhYmxlICYmIHJvdy5jaGlsZHJlbiAmJiByb3cuZXhwYW5kZWRcIj5cclxuICAgICAgPHgtdGFibGUtYm9keVxyXG4gICAgICAgIFtkYXRhXT1cInJvdy5jaGlsZHJlblwiXHJcbiAgICAgICAgW2NvbHVtbnNdPVwidGFibGUuY29sdW1uc1wiXHJcbiAgICAgICAgW2l0ZW1TaXplXT1cInRhYmxlLml0ZW1TaXplXCJcclxuICAgICAgICBbcm93SGVpZ2h0XT1cInRhYmxlLnJvd0hlaWdodFwiXHJcbiAgICAgICAgW2NvbHVtblRwbF09XCJ0YWJsZS5ib2R5Q29sdW1uVHBsXCJcclxuICAgICAgICBbYWxsb3dTZWxlY3RSb3ddPVwidGFibGUuYWxsb3dTZWxlY3RSb3dcIlxyXG4gICAgICAgIFtyb3dDbGFzc109XCJ0YWJsZS5yb3dDbGFzc1wiXHJcbiAgICAgICAgW2NlbGxDb25maWddPVwidGFibGUuY2VsbENvbmZpZz8udGJvZHlcIlxyXG4gICAgICAgIFsoYWN0aXZhdGVkUm93KV09XCJ0YWJsZS5hY3RpdmF0ZWRSb3dcIlxyXG4gICAgICAgIFtleHBhbmRlZEFsbF09XCJleHBhbmRlZEFsbFwiXHJcbiAgICAgICAgW2V4cGFuZFRwbF09XCJleHBhbmRUcGxcIlxyXG4gICAgICAgIChhY3RpdmF0ZWRSb3dDaGFuZ2UpPVwidGFibGUuYWN0aXZhdGVkUm93Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgW2xldmVsXT1cInJvdy5sZXZlbCEgKyAxXCJcclxuICAgICAgICBbdGFibGVdPVwidGFibGVcIlxyXG4gICAgICA+PC94LXRhYmxlLWJvZHk+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcm93VHBsIGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cImlcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibGV2ZWwgPiAwICYmIGV4cGFuZFRwbFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImV4cGFuZFRwbDsgY29udGV4dDogeyAkcm93OiByb3csICRpbmRleDogaSwgJGxldmVsOiBsZXZlbCB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxldmVsID09PSAwIHx8ICFleHBhbmRUcGxcIj5cclxuICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJyb3dEZWZhdWx0OyBjb250ZXh0OiB7IHJvdzogcm93LCBpOiBpLCBsZXZlbDogbGV2ZWwgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNyb3dEZWZhdWx0IGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cImlcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgaW5kZXggYXMgajsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIj5cclxuICAgIDx0ZFxyXG4gICAgICBbc3R5bGUud2lkdGgucHhdPVwiY29sdW1uLndpZHRoXCJcclxuICAgICAgW3N0eWxlLmZsZXhdPVwiZ2V0RmxleChjb2x1bW4pXCJcclxuICAgICAgW3RpdGxlXT1cImdldFRpdGxlKHJvdywgY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLWRyYWdnaW5nXT1cImNvbHVtbi5kcmFnZ2luZ1wiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreV09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0KGNvbHVtbikgfHwgdGFibGUuZ2V0U3RpY2t5UmlnaHQoY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1sZWZ0XT1cInRhYmxlLmdldFN0aWNreUxlZnQoY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1yaWdodF09XCJ0YWJsZS5nZXRTdGlja3lSaWdodChjb2x1bW4pXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LWxlZnQtbGFzdF09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0TGFzdChjb2x1bW4pXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LXJpZ2h0LWZpcnN0XT1cInRhYmxlLmdldFN0aWNreVJpZ2h0Rmlyc3QoY29sdW1uKVwiXHJcbiAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImNvbHVtbi5sZWZ0XCJcclxuICAgICAgW3N0eWxlLnJpZ2h0LnB4XT1cImNvbHVtbi5yaWdodFwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cIiFyb3dDbGFzcyA/IHt9IDogcm93Q2xhc3Mocm93LCBpKVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImNlbGxUcGw7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4sIHJvdzogcm93LCBpOiBpIH1cIj48L25nLXRlbXBsYXRlPlxyXG4gICAgPC90ZD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY2VsbFRwbCBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LXJvdz1cInJvd1wiIGxldC1pPVwiaVwiPlxyXG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbHVtbi50eXBlXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY2hlY2tib3gnXCI+XHJcbiAgICAgIDx4LWNoZWNrYm94XHJcbiAgICAgICAgW2RhdGFdPVwiW3sgaWQ6IHRydWUsIGxhYmVsOiAnJyB9XVwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJyb3dbY29sdW1uLmlkXVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cInJvdy5kaXNhYmxlZFwiXHJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidGFibGUuYm9keUNoZWNrZWQoJGV2ZW50LCBjb2x1bW4pXCJcclxuICAgICAgPjwveC1jaGVja2JveD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2luZGV4J1wiPlxyXG4gICAgICA8ZGl2Pnt7IHRhYmxlLmdldEluZGV4KGkpIH19PC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYmxlLmlzRXhwYW5kQ29sdW1uKGNvbHVtbilcIj5cclxuICAgICAgICA8eC1idXR0b25cclxuICAgICAgICAgIFtjbGFzcy5pcy1sZWFmXT1cIiFyb3cubGVhZlwiXHJcbiAgICAgICAgICBbY2xhc3MuaXMtZXhwYW5kZWRdPVwicm93LmV4cGFuZGVkXCJcclxuICAgICAgICAgIChjbGljayk9XCJvbkV4cGFuZGVkKCRldmVudCwgcm93KVwiXHJcbiAgICAgICAgICBpY29uPVwiZnRvLWNoZXZyb24tcmlnaHRcIlxyXG4gICAgICAgICAgc2l6ZT1cIm1pbmlcIlxyXG4gICAgICAgICAgb25seUljb25cclxuICAgICAgICAgIGNsYXNzPVwieC10YWJsZS1leHBhbmRcIlxyXG4gICAgICAgICAgW3N0eWxlLm1hcmdpbi1sZWZ0LnJlbV09XCJyb3cubGV2ZWwgLSAwLjVcIlxyXG4gICAgICAgID48L3gtYnV0dG9uPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImNvbHVtblRwbFtjb2x1bW4uaWRdOyBjb250ZXh0OiB7ICRjb2x1bW46IGNvbHVtbiwgJHJvdzogcm93LCAkaW5kZXg6IHRhYmxlLmdldEluZGV4KGkpIH1cIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwidGFibGUuYm9keVRkVHBsOyBjb250ZXh0OiB7ICRjb2x1bW46IGNvbHVtbiwgJHJvdzogcm93LCAkaW5kZXg6IHRhYmxlLmdldEluZGV4KGkpIH1cIj5cclxuICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJyb3dbY29sdW1uLmlkXVwiIFtzdHlsZS50ZXh0LWFsaWduXT1cImNvbHVtbi50ZXh0QWxpZ25cIj48L2Rpdj5cclxuICAgICAgICAgIHt7IHRhYmxlLnJvd0V4cGFuZE5leHQgJiYgdGFibGUucm93RXhwYW5kTmV4dC5pZCA9PT0gY29sdW1uLmlkID8gJ3gtdGFibGUtYm9keS1sZXZlbC0nICsgcm93LmxldmVsIDogJycgfX1cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90YWJsZS90YWJsZS1ib2R5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RhYmxlL3RhYmxlLWJvZHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBR3ZCLE1BQU0sRUFDTixTQUFTLEVBQ1QsS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBdUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQTJCLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFRM0MsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGtCQUFrQjtJQW1CekQ7SUFDRSxxREFBcUQ7SUFDOUMsUUFBbUIsRUFDbkIsVUFBbUMsRUFDbkMsR0FBc0IsRUFDSixHQUFRLEVBQzFCLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBTkQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUNKLFFBQUcsR0FBSCxHQUFHLENBQUs7UUFDMUIsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBeEJ0QyxlQUFVLEdBQWdDLEVBQUUsQ0FBQztRQWVyQyxlQUFV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RSxpQkFFaEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs7MEJBMEI1QyxNQUFNOzJCQUFDLFFBQVE7eUVBWkUsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUNRLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFDZixLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkNoYW5nZXMsXHJcbiAgSW5qZWN0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBJbnB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYVGFibGVCb2R5UHJlZml4LCBYVGFibGVCb2R5UHJvcGVydHksIFhUYWJsZVJvdywgWFRhYmxlQ29sdW1uLCBYVGFibGVDZWxsIH0gZnJvbSAnLi90YWJsZS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IHJlbW92ZU5nVGFnLCBYSXNDaGFuZ2UsIFhSZXNpemUsIFhDb25maWdTZXJ2aWNlLCBYTnVtYmVyLCBzdHJpcFRhZ3MgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYVGFibGVCb2R5UHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWJvZHkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhUYWJsZUJvZHlDb21wb25lbnQgZXh0ZW5kcyBYVGFibGVCb2R5UHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgdGJvZHlTdHlsZTogeyBbcHJvcGVydHk6IHN0cmluZ106IGFueSB9ID0ge307XHJcbiAgZ2V0IGlzRW1wdHkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhPy5sZW5ndGggPT09IDA7XHJcbiAgfVxyXG4gIGdldCBnZXRSb3dIZWlnaHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yb3dIZWlnaHQgPT0gMCA/ICcnIDogdGhpcy5yb3dIZWlnaHQ7XHJcbiAgfVxyXG4gIGdldCBnZXRJdGVtU2l6ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnJvd0hlaWdodCAhPT0gMCAmJiB0aGlzLml0ZW1TaXplID4gdGhpcy5yb3dIZWlnaHQgPyB0aGlzLnJvd0hlaWdodCA6IHRoaXMuaXRlbVNpemU7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKCd0Ym9keScpIHRib2R5ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgndmlydHVhbEJvZHknKSB2aXJ0dWFsQm9keSE6IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydDtcclxuICBASW5wdXQoKSB0YWJsZTogYW55O1xyXG5cclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgX3Jlc2l6ZU9ic2VydmVyITogUmVzaXplT2JzZXJ2ZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gQE9wdGlvbmFsKCkgQEhvc3QoKSBwdWJsaWMgdGFibGU6IFhUYWJsZUNvbXBvbmVudCxcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwdWJsaWMgZG9jOiBhbnksXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKHNpbXBsZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgY29sdW1ucywgYWN0aXZhdGVkUm93LCBtZXJnZVJ1bGUsIGV4cGFuZGVkQWxsLCBhZGFwdGlvbkhlaWdodCB9ID0gc2ltcGxlcztcclxuICAgIFhJc0NoYW5nZShkYXRhLCBjb2x1bW5zLCBhY3RpdmF0ZWRSb3csIG1lcmdlUnVsZSwgZXhwYW5kZWRBbGwpICYmIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIFhJc0NoYW5nZShhZGFwdGlvbkhlaWdodCkgJiYgdGhpcy5zZXRBZGFwdGlvbkhlaWdodCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICByZW1vdmVOZ1RhZyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICBpZiAodGhpcy5sZXZlbCA+IDApIHJlbW92ZU5nVGFnKHRoaXMudGJvZHkubmF0aXZlRWxlbWVudCk7XHJcbiAgICBpZiAodGhpcy5zY3JvbGw/LnkgJiYgIXRoaXMuYm9keUhlaWdodCkge1xyXG4gICAgICB0aGlzLmJvZHlIZWlnaHQgPSB0aGlzLnNjcm9sbC55O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy50YWJsZS52aXJ0dWFsQm9keSA9IHRoaXMudmlydHVhbEJvZHk7XHJcbiAgICB0aGlzLnRhYmxlLmJvZHlDaGFuZ2UgPSAoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLnNldFN1YmplY3QoKTtcclxuICAgIHRoaXMuc2V0U2Nyb2xsKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBzZXRTdWJqZWN0KCkge1xyXG4gICAgaWYgKHRoaXMudmlydHVhbEJvZHkpIHtcclxuICAgICAgdGhpcy50YWJsZS5zY3JvbGxDb250ZW50RWxlID0gdGhpcy52aXJ0dWFsQm9keT8uZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxyXG4gICAgICAgICcuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcidcclxuICAgICAgKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgaWYgKHRoaXMuc2Nyb2xsPy54KSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRhYmxlLnNjcm9sbENvbnRlbnRFbGUsICd3aWR0aCcsIGAke3RoaXMuc2Nyb2xsLnh9cHhgKTtcclxuICAgICAgfVxyXG4gICAgICBYUmVzaXplKHRoaXMudGFibGUudGFibGUubmF0aXZlRWxlbWVudCwgdGhpcy50YWJsZS5zY3JvbGxDb250ZW50RWxlKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyID0geC5yZXNpemVPYnNlcnZlcjtcclxuICAgICAgICAgIHRoaXMuc2V0QWRhcHRpb25IZWlnaHQoKTtcclxuICAgICAgICAgIHRoaXMuc2V0U2Nyb2xsKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRBZGFwdGlvbkhlaWdodCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudGFibGUuc2Nyb2xsQ29udGVudEVsZSkge1xyXG4gICAgICBmcm9tRXZlbnQodGhpcy52aXJ0dWFsQm9keS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdzY3JvbGwnKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGVsZSA9IHguc3JjRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICAgIHRoaXMudGFibGUuc2Nyb2xsVG9wID0gZWxlLnNjcm9sbFRvcDtcclxuICAgICAgICAgIHRoaXMudGFibGUuc2Nyb2xsTGVmdCA9IGVsZS5zY3JvbGxMZWZ0O1xyXG4gICAgICAgICAgaWYgKGVsZS5zY3JvbGxMZWZ0ID49IDAgJiYgdGhpcy50YWJsZS50aGVhZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCB0aGVhZCBvZiB0aGlzLnRhYmxlLnRoZWFkcykge1xyXG4gICAgICAgICAgICAgIHRoZWFkLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA9IHRoaXMudGFibGUuc2Nyb2xsTGVmdDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50YWJsZS5zY3JvbGxMZWZ0TWF4ID0gZWxlLnNjcm9sbExlZnQgKyBlbGUuY2xpZW50V2lkdGggPT09IGVsZS5zY3JvbGxXaWR0aDtcclxuICAgICAgICAgIHRoaXMudGFibGUuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFNjcm9sbCgpIHtcclxuICAgIGlmICghdGhpcy52aXJ0dWFsQm9keSkgcmV0dXJuO1xyXG4gICAgY29uc3QgZWxlID0gdGhpcy52aXJ0dWFsQm9keS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBjb25zdCBoYXNZID0gZWxlLnNjcm9sbEhlaWdodCA+ICh0aGlzLmJvZHlIZWlnaHQgYXMgbnVtYmVyKTtcclxuICAgIGNvbnN0IGhhc1ggPSB0aGlzLnRhYmxlLnNjcm9sbENvbnRlbnRFbGUuY2xpZW50V2lkdGggPiBlbGUuY2xpZW50V2lkdGg7XHJcblxyXG4gICAgaWYgKCF0aGlzLnRhYmxlLmhhc1Njcm9sbFkgJiYgaGFzWSkge1xyXG4gICAgICB0aGlzLnRhYmxlLmhhc1Njcm9sbFkgPSB0cnVlO1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFlXaWR0aCA9IGVsZS5vZmZzZXRXaWR0aCAtIGVsZS5jbGllbnRXaWR0aDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50YWJsZS5oYXNTY3JvbGxZICYmICFoYXNZKSB7XHJcbiAgICAgIHRoaXMudGFibGUuaGFzU2Nyb2xsWSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFlXaWR0aCA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLnRhYmxlLmhhc1Njcm9sbFggJiYgaGFzWCkge1xyXG4gICAgICB0aGlzLnRhYmxlLmhhc1Njcm9sbFggPSB0cnVlO1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFhIZWlnaHQgPSBlbGUub2Zmc2V0SGVpZ2h0IC0gZWxlLmNsaWVudEhlaWdodDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50YWJsZS5oYXNTY3JvbGxYICYmICFoYXNYKSB7XHJcbiAgICAgIHRoaXMudGFibGUuaGFzU2Nyb2xsWCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFhIZWlnaHQgPSAwO1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFhXaWR0aCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAoaGFzWCkge1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFhXaWR0aCA9IGVsZS5vZmZzZXRXaWR0aCArIGVsZS5zY3JvbGxXaWR0aCAtIGVsZS5jbGllbnRXaWR0aDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRhYmxlLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTdHlsZSgpIHtcclxuICAgIGxldCBoZWlnaHQgPSB0aGlzLnJvd0hlaWdodCA9PSAwID8gJycgOiB0aGlzLnJvd0hlaWdodDtcclxuICAgIGlmICh0aGlzLmNlbGxDb25maWcgJiYgdGhpcy5jZWxsQ29uZmlnLmNlbGxzKSB7XHJcbiAgICAgIGNvbnN0IHNwdCA9IHRoaXMuY2VsbENvbmZpZy5jZWxscy5tYXAoKHgpID0+IHtcclxuICAgICAgICBjb25zdCBncmlkQXJlYVNwdCA9IHguZ3JpZEFyZWE/LnNwbGl0KCcvJyk7XHJcbiAgICAgICAgcmV0dXJuIGdyaWRBcmVhU3B0ICYmIGdyaWRBcmVhU3B0Lmxlbmd0aCA+IDMgPyBOdW1iZXIoZ3JpZEFyZWFTcHRbMl0pIDogMjtcclxuICAgICAgfSk7XHJcbiAgICAgIGhlaWdodCA9ICgoTWF0aC5tYXgoLi4uc3B0KSAtIDEpICogKGhlaWdodCBhcyBudW1iZXIpKSBhcyBYTnVtYmVyO1xyXG4gICAgfVxyXG4gICAgdGhpcy50Ym9keVN0eWxlID0ge1xyXG4gICAgICBoZWlnaHQ6IGAke2hlaWdodH1weGBcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRJbmRleChpbmRleDogbnVtYmVyLCBpdGVtOiBYVGFibGVSb3cpIHtcclxuICAgIGlmICghaXNOYU4oaW5kZXgpKSByZXR1cm4gaW5kZXg7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhLmluZGV4T2YoaXRlbSk7XHJcbiAgfVxyXG5cclxuICBnZXRGbGV4KGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICBpZiAoY29sdW1uLndpZHRoKSByZXR1cm4gJ25vbmUnO1xyXG4gICAgaWYgKCFjb2x1bW4uZmxleCkgcmV0dXJuIDE7XHJcbiAgICByZXR1cm4gY29sdW1uLmZsZXg7XHJcbiAgfVxyXG5cclxuICBnZXRUaXRsZShyb3c6IFhUYWJsZVJvdywgY29sdW1uOiBYVGFibGVDZWxsIHwgYW55KSB7XHJcbiAgICBsZXQgaXQgPSByb3dbY29sdW1uLmlkIGFzIHN0cmluZ107XHJcbiAgICByZXR1cm4gaXQgPyBzdHJpcFRhZ3MoaXQpIDogJyc7XHJcbiAgfVxyXG5cclxuICBzZXRBZGFwdGlvbkhlaWdodCgpIHtcclxuICAgIGlmICgodGhpcy5hZGFwdGlvbkhlaWdodCBhcyBudW1iZXIpID4gMCkge1xyXG4gICAgICBjb25zdCBjYXB0aW9uSGVpZ2h0ID0gdGhpcy50YWJsZS50Y2FwdGlvbj8ubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgfHwgMDtcclxuICAgICAgbGV0IGhlYWRIZWlnaHQgPSAwO1xyXG4gICAgICBmb3IgKGxldCB0aGVhZCBvZiB0aGlzLnRhYmxlLnRoZWFkcykge1xyXG4gICAgICAgIGhlYWRIZWlnaHQgKz0gdGhlYWQubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZm9vdEhlaWdodCA9IHRoaXMudGFibGUudGZvb3Q/Lm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0IHx8IDA7XHJcbiAgICAgIGNvbnN0IHBhZ2luYXRpb25IZWlnaHQgPSB0aGlzLnRhYmxlLnBhZ2luYXRpb24/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgfHwgMDtcclxuICAgICAgdGhpcy5ib2R5SGVpZ2h0ID1cclxuICAgICAgICBOdW1iZXIodGhpcy5kb2NQZXJjZW50KSAqIHRoaXMuZG9jLmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgLVxyXG4gICAgICAgIGNhcHRpb25IZWlnaHQgLVxyXG4gICAgICAgIGhlYWRIZWlnaHQgLVxyXG4gICAgICAgIGZvb3RIZWlnaHQgLVxyXG4gICAgICAgIHBhZ2luYXRpb25IZWlnaHQgLVxyXG4gICAgICAgIE51bWJlcih0aGlzLmFkYXB0aW9uSGVpZ2h0KTtcclxuICAgICAgaWYgKHRoaXMuYm9keUhlaWdodCA8IDApIHRoaXMuYm9keUhlaWdodCA9IDA7XHJcbiAgICAgIHRoaXMubWluQnVmZmVyUHggPSB0aGlzLmJvZHlIZWlnaHQ7XHJcbiAgICAgIHRoaXMubWF4QnVmZmVyUHggPSB0aGlzLmJvZHlIZWlnaHQgKiAxLjI7XHJcbiAgICAgIHRoaXMudmlydHVhbEJvZHlbJ19zY3JvbGxTdHJhdGVneSddWydfbWluQnVmZmVyUHgnXSA9IHRoaXMubWluQnVmZmVyUHg7XHJcbiAgICAgIHRoaXMudmlydHVhbEJvZHlbJ19zY3JvbGxTdHJhdGVneSddWydfbWF4QnVmZmVyUHgnXSA9IHRoaXMubWF4QnVmZmVyUHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJvd0NsaWNrKGV2ZW50OiBFdmVudCwgcm93OiBYVGFibGVSb3cpIHtcclxuICAgIGlmIChyb3cuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRoaXMuYWN0aXZhdGVkUm93ID0gcm93O1xyXG4gICAgaWYgKHRoaXMudGFibGUuYWxsb3dDaGVja1JvdyAmJiB0aGlzLnRhYmxlLnJvd0NoZWNrZWQpIHtcclxuICAgICAgaWYgKCFBcnJheS5mcm9tKChldmVudCBhcyBhbnkpLnBhdGgpLmZpbmQoKHg6IGFueSkgPT4geC5sb2NhbE5hbWUgPT0gJ3gtY2hlY2tib3gnKSkge1xyXG4gICAgICAgIHJvd1t0aGlzLnRhYmxlLnJvd0NoZWNrZWQuaWRdID0gIXJvd1t0aGlzLnRhYmxlLnJvd0NoZWNrZWQuaWRdO1xyXG4gICAgICAgIHRoaXMudGFibGUuYm9keUNoZWNrZWQocm93W3RoaXMudGFibGUucm93Q2hlY2tlZC5pZF0sIHRoaXMudGFibGUucm93Q2hlY2tlZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuYWN0aXZhdGVkUm93Q2hhbmdlLmVtaXQocm93KTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uRXhwYW5kZWQoX2V2ZW50OiBFdmVudCwgbm9kZTogWFRhYmxlUm93KSB7XHJcbiAgICBub2RlLmV4cGFuZGVkID0gIW5vZGUuZXhwYW5kZWQ7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5SXRlbShfaW5kZXg6IG51bWJlciwgaXRlbTogWFRhYmxlUm93IHwgWFRhYmxlQ29sdW1uKSB7XHJcbiAgICByZXR1cm4gaXRlbS5pZDtcclxuICB9XHJcbn1cclxuIiwiPHRib2R5ICN0Ym9keT5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2VsbENvbmZpZzsgZWxzZSB2aXJ0dWFsU2Nyb2xsVHBsXCI+XHJcbiAgICA8dHIgKm5nRm9yPVwibGV0IHJvdyBvZiBkYXRhOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiIFtzdHlsZS5ncmlkVGVtcGxhdGVDb2x1bW5zXT1cImNlbGxDb25maWcuZ3JpZFRlbXBsYXRlQ29sdW1uc1wiPlxyXG4gICAgICA8dGRcclxuICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNlbGxDb25maWcuY2VsbHM7IGluZGV4IGFzIGpcIlxyXG4gICAgICAgIFt0aXRsZV09XCJnZXRUaXRsZShyb3csIGNvbHVtbilcIlxyXG4gICAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreV09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0KGNvbHVtbikgfHwgdGFibGUuZ2V0U3RpY2t5UmlnaHQoY29sdW1uKVwiXHJcbiAgICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LWxlZnRdPVwidGFibGUuZ2V0U3RpY2t5TGVmdChjb2x1bW4pXCJcclxuICAgICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktcmlnaHRdPVwidGFibGUuZ2V0U3RpY2t5UmlnaHQoY29sdW1uKVwiXHJcbiAgICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LWxlZnQtbGFzdF09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0TGFzdChjb2x1bW4pXCJcclxuICAgICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktcmlnaHQtZmlyc3RdPVwidGFibGUuZ2V0U3RpY2t5UmlnaHRGaXJzdChjb2x1bW4pXCJcclxuICAgICAgICBbc3R5bGUubGVmdC5weF09XCJjb2x1bW4ubGVmdFwiXHJcbiAgICAgICAgW3N0eWxlLnJpZ2h0LnB4XT1cImNvbHVtbi5yaWdodFwiXHJcbiAgICAgICAgW3N0eWxlLmdyaWQtYXJlYV09XCJjb2x1bW4uZ3JpZEFyZWFcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNlbGxUcGw7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4sIHJvdzogcm93LCBpOiBpIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC90ZD5cclxuICAgIDwvdHI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPHgtZW1wdHkgKm5nSWY9XCJpc0VtcHR5ICYmIGxldmVsID09PSAwXCI+PC94LWVtcHR5PlxyXG48L3Rib2R5PlxyXG5cclxuPG5nLXRlbXBsYXRlICN2aXJ0dWFsU2Nyb2xsVHBsPlxyXG4gIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnRcclxuICAgICN2aXJ0dWFsQm9keVxyXG4gICAgKm5nSWY9XCJ2aXJ0dWFsU2Nyb2xsOyBlbHNlIGJvZHlUcGxcIlxyXG4gICAgW2l0ZW1TaXplXT1cImdldEl0ZW1TaXplXCJcclxuICAgIFttaW5CdWZmZXJQeF09XCJtaW5CdWZmZXJQeFwiXHJcbiAgICBbbWF4QnVmZmVyUHhdPVwibWF4QnVmZmVyUHhcIlxyXG4gICAgW3N0eWxlLmhlaWdodC5weF09XCJib2R5SGVpZ2h0XCJcclxuICA+XHJcbiAgICA8dHJcclxuICAgICAgKmNka1ZpcnR1YWxGb3I9XCJsZXQgcm93IG9mIGRhdGE7IGxldCBpbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5SXRlbVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLWFjdGl2YXRlZF09XCJhbGxvd1NlbGVjdFJvdyAmJiBhY3RpdmF0ZWRSb3c/LmlkID09PSByb3cuaWRcIlxyXG4gICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgICAgIChjbGljayk9XCJyb3dDbGljaygkZXZlbnQsIHJvdylcIlxyXG4gICAgPlxyXG4gICAgICA8IS0tIHJvd0hlaWdodCDkuLogMCDnmoTml7blgJnvvIxpbmRleCDkuIvmoIfojrflj5bkuI3liLAgLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyb3dUcGw7IGNvbnRleHQ6IHsgcm93OiByb3csIGk6IGdldEluZGV4KGluZGV4LCByb3cpIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvdHI+XHJcbiAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2JvZHlUcGw+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcm93IG9mIGRhdGE7IGluZGV4IGFzIGk7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCI+XHJcbiAgICA8dHJcclxuICAgICAgW2NsYXNzLngtdGFibGUtYWN0aXZhdGVkXT1cImFsbG93U2VsZWN0Um93ICYmIGFjdGl2YXRlZFJvdz8uaWQgPT09IHJvdy5pZFwiXHJcbiAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgICAgKGNsaWNrKT1cInJvd0NsaWNrKCRldmVudCwgcm93KVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyb3dUcGw7IGNvbnRleHQ6IHsgcm93OiByb3csIGk6IGkgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC90cj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LXRhYmxlLWNoaWxkcmVuXCIgW2NsYXNzLngtdGFibGUtZXhwYW5kVHBsXT1cImV4cGFuZFRwbFwiICpuZ0lmPVwidGFibGUudHJlZVRhYmxlICYmIHJvdy5jaGlsZHJlbiAmJiByb3cuZXhwYW5kZWRcIj5cclxuICAgICAgPHgtdGFibGUtYm9keVxyXG4gICAgICAgIFtkYXRhXT1cInJvdy5jaGlsZHJlblwiXHJcbiAgICAgICAgW2NvbHVtbnNdPVwidGFibGUuY29sdW1uc1wiXHJcbiAgICAgICAgW2l0ZW1TaXplXT1cInRhYmxlLml0ZW1TaXplXCJcclxuICAgICAgICBbcm93SGVpZ2h0XT1cInRhYmxlLnJvd0hlaWdodFwiXHJcbiAgICAgICAgW2NvbHVtblRwbF09XCJ0YWJsZS5ib2R5Q29sdW1uVHBsXCJcclxuICAgICAgICBbYWxsb3dTZWxlY3RSb3ddPVwidGFibGUuYWxsb3dTZWxlY3RSb3dcIlxyXG4gICAgICAgIFtyb3dDbGFzc109XCJ0YWJsZS5yb3dDbGFzc1wiXHJcbiAgICAgICAgW2NlbGxDb25maWddPVwidGFibGUuY2VsbENvbmZpZz8udGJvZHlcIlxyXG4gICAgICAgIFsoYWN0aXZhdGVkUm93KV09XCJ0YWJsZS5hY3RpdmF0ZWRSb3dcIlxyXG4gICAgICAgIFtleHBhbmRlZEFsbF09XCJleHBhbmRlZEFsbFwiXHJcbiAgICAgICAgW2V4cGFuZFRwbF09XCJleHBhbmRUcGxcIlxyXG4gICAgICAgIChhY3RpdmF0ZWRSb3dDaGFuZ2UpPVwidGFibGUuYWN0aXZhdGVkUm93Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgW2xldmVsXT1cInJvdy5sZXZlbCEgKyAxXCJcclxuICAgICAgICBbdGFibGVdPVwidGFibGVcIlxyXG4gICAgICA+PC94LXRhYmxlLWJvZHk+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcm93VHBsIGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cImlcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibGV2ZWwgPiAwICYmIGV4cGFuZFRwbFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImV4cGFuZFRwbDsgY29udGV4dDogeyAkcm93OiByb3csICRpbmRleDogaSwgJGxldmVsOiBsZXZlbCB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxldmVsID09PSAwIHx8ICFleHBhbmRUcGxcIj5cclxuICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJyb3dEZWZhdWx0OyBjb250ZXh0OiB7IHJvdzogcm93LCBpOiBpLCBsZXZlbDogbGV2ZWwgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNyb3dEZWZhdWx0IGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cImlcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgaW5kZXggYXMgajsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIj5cclxuICAgIDx0ZFxyXG4gICAgICBbc3R5bGUud2lkdGgucHhdPVwiY29sdW1uLndpZHRoXCJcclxuICAgICAgW3N0eWxlLmZsZXhdPVwiZ2V0RmxleChjb2x1bW4pXCJcclxuICAgICAgW3RpdGxlXT1cImdldFRpdGxlKHJvdywgY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLWRyYWdnaW5nXT1cImNvbHVtbi5kcmFnZ2luZ1wiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreV09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0KGNvbHVtbikgfHwgdGFibGUuZ2V0U3RpY2t5UmlnaHQoY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1sZWZ0XT1cInRhYmxlLmdldFN0aWNreUxlZnQoY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1yaWdodF09XCJ0YWJsZS5nZXRTdGlja3lSaWdodChjb2x1bW4pXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LWxlZnQtbGFzdF09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0TGFzdChjb2x1bW4pXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LXJpZ2h0LWZpcnN0XT1cInRhYmxlLmdldFN0aWNreVJpZ2h0Rmlyc3QoY29sdW1uKVwiXHJcbiAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImNvbHVtbi5sZWZ0XCJcclxuICAgICAgW3N0eWxlLnJpZ2h0LnB4XT1cImNvbHVtbi5yaWdodFwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cIiFyb3dDbGFzcyA/IHt9IDogcm93Q2xhc3Mocm93LCBpKVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImNlbGxUcGw7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4sIHJvdzogcm93LCBpOiBpIH1cIj48L25nLXRlbXBsYXRlPlxyXG4gICAgPC90ZD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY2VsbFRwbCBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LXJvdz1cInJvd1wiIGxldC1pPVwiaVwiPlxyXG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbHVtbi50eXBlXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY2hlY2tib3gnXCI+XHJcbiAgICAgIDx4LWNoZWNrYm94XHJcbiAgICAgICAgW2RhdGFdPVwiW3sgaWQ6IHRydWUsIGxhYmVsOiAnJyB9XVwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJyb3dbY29sdW1uLmlkXVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cInJvdy5kaXNhYmxlZFwiXHJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidGFibGUuYm9keUNoZWNrZWQoJGV2ZW50LCBjb2x1bW4pXCJcclxuICAgICAgPjwveC1jaGVja2JveD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2luZGV4J1wiPlxyXG4gICAgICA8ZGl2Pnt7IHRhYmxlLmdldEluZGV4KGkpIH19PC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYmxlLmlzRXhwYW5kQ29sdW1uKGNvbHVtbilcIj5cclxuICAgICAgICA8eC1idXR0b25cclxuICAgICAgICAgIFtjbGFzcy5pcy1sZWFmXT1cIiFyb3cubGVhZlwiXHJcbiAgICAgICAgICBbY2xhc3MuaXMtZXhwYW5kZWRdPVwicm93LmV4cGFuZGVkXCJcclxuICAgICAgICAgIChjbGljayk9XCJvbkV4cGFuZGVkKCRldmVudCwgcm93KVwiXHJcbiAgICAgICAgICBpY29uPVwiZnRvLWNoZXZyb24tcmlnaHRcIlxyXG4gICAgICAgICAgc2l6ZT1cIm1pbmlcIlxyXG4gICAgICAgICAgb25seUljb25cclxuICAgICAgICAgIGNsYXNzPVwieC10YWJsZS1leHBhbmRcIlxyXG4gICAgICAgICAgW3N0eWxlLm1hcmdpbi1sZWZ0LnJlbV09XCJyb3cubGV2ZWwgLSAwLjVcIlxyXG4gICAgICAgID48L3gtYnV0dG9uPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImNvbHVtblRwbFtjb2x1bW4uaWRdOyBjb250ZXh0OiB7ICRjb2x1bW46IGNvbHVtbiwgJHJvdzogcm93LCAkaW5kZXg6IHRhYmxlLmdldEluZGV4KGkpIH1cIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwidGFibGUuYm9keVRkVHBsOyBjb250ZXh0OiB7ICRjb2x1bW46IGNvbHVtbiwgJHJvdzogcm93LCAkaW5kZXg6IHRhYmxlLmdldEluZGV4KGkpIH1cIj5cclxuICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJyb3dbY29sdW1uLmlkXVwiIFtzdHlsZS50ZXh0LWFsaWduXT1cImNvbHVtbi50ZXh0QWxpZ25cIj48L2Rpdj5cclxuICAgICAgICAgIHt7IHRhYmxlLnJvd0V4cGFuZE5leHQgJiYgdGFibGUucm93RXhwYW5kTmV4dC5pZCA9PT0gY29sdW1uLmlkID8gJ3gtdGFibGUtYm9keS1sZXZlbC0nICsgcm93LmxldmVsIDogJycgfX1cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -33,4 +33,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
|
|
|
33
33
|
}], table: [{
|
|
34
34
|
type: Input
|
|
35
35
|
}] } });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90YWJsZS90YWJsZS1mb290LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RhYmxlL3RhYmxlLWZvb3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFRL0MsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGtCQUFrQjtJQU16RDtJQUNFLHFEQUFxRDtJQUM5QyxRQUFtQixFQUNuQixVQUFtQyxFQUNuQyxHQUFzQjtRQUU3QixLQUFLLEVBQUUsQ0FBQztRQUpELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFHL0IsQ0FBQztJQVZELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuRCxDQUFDO0lBVUQsUUFBUTtRQUNOLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQU0sQ0FBQztJQUNqQyxDQUFDOzttSUFyQlUsbUJBQW1CO3VIQUFuQixtQkFBbUIsdU1DcEJoQyxzTUFHQTsyRkRpQmEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLEdBQUcsZ0JBQWdCLEVBQUUsaUJBRWhCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07eUpBRzNCLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDVCxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgVmlld0NoaWxkLFxyXG4gIElucHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhUYWJsZUZvb3RQcmVmaXgsIFhUYWJsZUZvb3RQcm9wZXJ0eSB9IGZyb20gJy4vdGFibGUucHJvcGVydHknO1xyXG5pbXBvcnQgeyByZW1vdmVOZ1RhZyB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hUYWJsZUZvb3RQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtZm9vdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFRhYmxlRm9vdENvbXBvbmVudCBleHRlbmRzIFhUYWJsZUZvb3RQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgndGZvb3QnKSB0Zm9vdCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBJbnB1dCgpIHRhYmxlOiBhbnk7XHJcbiAgZ2V0IGdldFJvd0hlaWdodCgpIHtcclxuICAgIHJldHVybiB0aGlzLnJvd0hlaWdodCA9PSAwID8gJycgOiB0aGlzLnJvd0hlaWdodDtcclxuICB9XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBAT3B0aW9uYWwoKSBASG9zdCgpIHB1YmxpYyB0YWJsZTogWFRhYmxlQ29tcG9uZW50LFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgcmVtb3ZlTmdUYWcodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy50YWJsZS50Zm9vdCA9IHRoaXMudGZvb3QhO1xyXG4gIH1cclxufVxyXG4iLCI8dGZvb3QgI3Rmb290IGNsYXNzPVwieC10YWJsZS1mb290ZXJcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiPlxyXG4gIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJmb290ZXJcIj57eyBmb290ZXIgfX08L25nLWNvbnRhaW5lcj5cclxuPC90Zm9vdD5cclxuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component, ViewEncapsulation, ViewChild, Input } from '@angular/core';
|
|
2
2
|
import { XTableHeadPrefix, XTableHeadProperty, XTablePrefix } from './table.property';
|
|
3
|
-
import { removeNgTag, XIsEmpty, XIsChange } from '@ng-nest/ui/core';
|
|
3
|
+
import { removeNgTag, XIsEmpty, XIsChange, XIsFunction } from '@ng-nest/ui/core';
|
|
4
4
|
import { moveItemInArray } from '@angular/cdk/drag-drop';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@ng-nest/ui/core";
|
|
@@ -112,15 +112,29 @@ export class XTableHeadComponent extends XTableHeadProperty {
|
|
|
112
112
|
this.table.resetScroll(false, true);
|
|
113
113
|
this.cdr.detectChanges();
|
|
114
114
|
}
|
|
115
|
-
|
|
115
|
+
dragWidthMoved(position, column) {
|
|
116
116
|
if (column.width) {
|
|
117
|
-
column.width +=
|
|
117
|
+
column.width += position.offsetX;
|
|
118
118
|
if (column.width < 60)
|
|
119
119
|
column.width = 60;
|
|
120
|
+
XIsFunction(column.dragWidthMoved) && column.dragWidthMoved({ position, column });
|
|
121
|
+
this.table.columnDragWidthMoved.emit({ position, column });
|
|
120
122
|
this.cdr.detectChanges();
|
|
121
123
|
this.table.bodyChange();
|
|
122
124
|
}
|
|
123
125
|
}
|
|
126
|
+
dragWidthStarted(position, column) {
|
|
127
|
+
if (column.width && XIsFunction(column.dragWidthStarted)) {
|
|
128
|
+
column.dragWidthStarted({ position, column });
|
|
129
|
+
this.table.columnDragWidthStarted.emit({ position, column });
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
dragWidthEnded(position, column) {
|
|
133
|
+
if (column.width && XIsFunction(column.dragWidthEnded)) {
|
|
134
|
+
column.dragWidthEnded({ position, column });
|
|
135
|
+
this.table.columnDragWidthEnded.emit({ position, column });
|
|
136
|
+
}
|
|
137
|
+
}
|
|
124
138
|
dropListDropped(_event) {
|
|
125
139
|
this.dragChange();
|
|
126
140
|
this.table.columnDropListDropped.emit(this.columns);
|
|
@@ -156,14 +170,14 @@ export class XTableHeadComponent extends XTableHeadProperty {
|
|
|
156
170
|
}
|
|
157
171
|
}
|
|
158
172
|
/** @nocollapse */ XTableHeadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTableHeadComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
159
|
-
/** @nocollapse */ XTableHeadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XTableHeadComponent, selector: "x-table-head", inputs: { table: "table" }, viewQueries: [{ propertyName: "thead", first: true, predicate: ["thead"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<thead #thead [ngStyle]=\"theadStyle\" [class.x-table-head-top]=\"position === 'top'\" [class.x-table-head-bottom]=\"position === 'bottom'\">\r\n <ng-container *ngIf=\"cellConfig; else columnsTpl\">\r\n <tr [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\" [style.min-height.px]=\"getRowHeight\">\r\n <th\r\n *ngFor=\"let column of cellConfig.cells\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [class.x-table-width-drag]=\"column.dragWidth\"\r\n [style.grid-area]=\"column.gridArea\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [title]=\"column?.label\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div
|
|
173
|
+
/** @nocollapse */ XTableHeadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XTableHeadComponent, selector: "x-table-head", inputs: { table: "table" }, viewQueries: [{ propertyName: "thead", first: true, predicate: ["thead"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<thead #thead [ngStyle]=\"theadStyle\" [class.x-table-head-top]=\"position === 'top'\" [class.x-table-head-bottom]=\"position === 'bottom'\">\r\n <ng-container *ngIf=\"cellConfig; else columnsTpl\">\r\n <tr [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\" [style.min-height.px]=\"getRowHeight\">\r\n <th\r\n *ngFor=\"let column of cellConfig.cells\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [class.x-table-width-drag]=\"column.dragWidth\"\r\n [style.grid-area]=\"column.gridArea\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [title]=\"column?.label\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div\r\n *ngIf=\"column.dragWidth\"\r\n class=\"x-table-drag-width\"\r\n xDrag\r\n (dragMoved)=\"dragWidthMoved($event, column)\"\r\n (dragStarted)=\"dragWidthStarted($event, column)\"\r\n (dragEnded)=\"dragWidthEnded($event, column)\"\r\n ></div>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"table.headSearchTpl\">\r\n <ng-container *ngTemplateOutlet=\"columnsTpl; context: { case: 'search' }\"></ng-container>\r\n </ng-container>\r\n</thead>\r\n\r\n<ng-template #columnsTpl let-case=\"case\">\r\n <tr\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListSorted)=\"dropListSorted($event)\"\r\n (cdkDropListDropped)=\"dropListDropped($event)\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.padding-right.px]=\"scrollYWidth\"\r\n [style.width.px]=\"scrollXWidth\"\r\n [class.x-table-search]=\"case === 'search'\"\r\n >\r\n <th\r\n *ngFor=\"let column of columns; trackBy: trackByItem\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"!column.dragColumn\"\r\n (cdkDragStarted)=\"dragStarted($event, column)\"\r\n (cdkDragEnded)=\"dragEnded(column)\"\r\n [ngClass]=\"thClassMap\"\r\n [class.x-table-th]=\"true\"\r\n [class.x-table-sticky]=\"table.getSticky(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.width.px]=\"getColumnWidth(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"getColumnRight(column.right)\"\r\n [style.flex]=\"getFlex(column)\"\r\n >\r\n <ng-container [ngSwitch]=\"case\">\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <ng-container *ngTemplateOutlet=\"table.headSearchTpl; context: { $column: column }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div\r\n *ngIf=\"column.dragWidth\"\r\n class=\"x-table-drag-width\"\r\n xDrag\r\n (dragMoved)=\"dragWidthMoved($event, column)\"\r\n (dragStarted)=\"dragWidthStarted($event, column)\"\r\n (dragEnded)=\"dragWidthEnded($event, column)\"\r\n ></div>\r\n </ng-container>\r\n </ng-container>\r\n </th>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column=\"column\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n *ngIf=\"column.headChecked\"\r\n [data]=\"[{ id: true, label: column.label }]\"\r\n [(ngModel)]=\"table.checkedValues[column.id]\"\r\n (ngModelChange)=\"table.headChecked($event, column)\"\r\n [indeterminate]=\"table.checkedValues[column.id + table.indeterminate]\"\r\n ></x-checkbox>\r\n <ng-container *ngIf=\"!column.headChecked\">\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <a>{{ column.label }}</a>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cloumnDefaultTpl let-column=\"column\">\r\n <a [class.x-table-sort]=\"column.sort\" (click)=\"onSort(column)\" [style.text-align]=\"column.textAlign\">\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n <x-icon\r\n *ngIf=\"column.sort\"\r\n type=\"fto-bar-chart\"\r\n class=\"x-table-sort-icon\"\r\n [class.x-table-icon-up]=\"sortStr === column.id + ' desc'\"\r\n [class.x-table-icon-down]=\"sortStr === column.id + ' asc'\"\r\n ></x-icon>\r\n </a>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i5.XCheckboxComponent, selector: "x-checkbox" }, { kind: "component", type: i6.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i8.XDragDirective, selector: "[xDrag]", outputs: ["dragStarted", "dragMoved", "dragEnded"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
160
174
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTableHeadComponent, decorators: [{
|
|
161
175
|
type: Component,
|
|
162
|
-
args: [{ selector: `${XTableHeadPrefix}`, encapsulation: ViewEncapsulation.None, template: "<thead #thead [ngStyle]=\"theadStyle\" [class.x-table-head-top]=\"position === 'top'\" [class.x-table-head-bottom]=\"position === 'bottom'\">\r\n <ng-container *ngIf=\"cellConfig; else columnsTpl\">\r\n <tr [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\" [style.min-height.px]=\"getRowHeight\">\r\n <th\r\n *ngFor=\"let column of cellConfig.cells\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [class.x-table-width-drag]=\"column.dragWidth\"\r\n [style.grid-area]=\"column.gridArea\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [title]=\"column?.label\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div
|
|
176
|
+
args: [{ selector: `${XTableHeadPrefix}`, encapsulation: ViewEncapsulation.None, template: "<thead #thead [ngStyle]=\"theadStyle\" [class.x-table-head-top]=\"position === 'top'\" [class.x-table-head-bottom]=\"position === 'bottom'\">\r\n <ng-container *ngIf=\"cellConfig; else columnsTpl\">\r\n <tr [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\" [style.min-height.px]=\"getRowHeight\">\r\n <th\r\n *ngFor=\"let column of cellConfig.cells\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [class.x-table-width-drag]=\"column.dragWidth\"\r\n [style.grid-area]=\"column.gridArea\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [title]=\"column?.label\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div\r\n *ngIf=\"column.dragWidth\"\r\n class=\"x-table-drag-width\"\r\n xDrag\r\n (dragMoved)=\"dragWidthMoved($event, column)\"\r\n (dragStarted)=\"dragWidthStarted($event, column)\"\r\n (dragEnded)=\"dragWidthEnded($event, column)\"\r\n ></div>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"table.headSearchTpl\">\r\n <ng-container *ngTemplateOutlet=\"columnsTpl; context: { case: 'search' }\"></ng-container>\r\n </ng-container>\r\n</thead>\r\n\r\n<ng-template #columnsTpl let-case=\"case\">\r\n <tr\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListSorted)=\"dropListSorted($event)\"\r\n (cdkDropListDropped)=\"dropListDropped($event)\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.padding-right.px]=\"scrollYWidth\"\r\n [style.width.px]=\"scrollXWidth\"\r\n [class.x-table-search]=\"case === 'search'\"\r\n >\r\n <th\r\n *ngFor=\"let column of columns; trackBy: trackByItem\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"!column.dragColumn\"\r\n (cdkDragStarted)=\"dragStarted($event, column)\"\r\n (cdkDragEnded)=\"dragEnded(column)\"\r\n [ngClass]=\"thClassMap\"\r\n [class.x-table-th]=\"true\"\r\n [class.x-table-sticky]=\"table.getSticky(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.width.px]=\"getColumnWidth(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"getColumnRight(column.right)\"\r\n [style.flex]=\"getFlex(column)\"\r\n >\r\n <ng-container [ngSwitch]=\"case\">\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <ng-container *ngTemplateOutlet=\"table.headSearchTpl; context: { $column: column }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div\r\n *ngIf=\"column.dragWidth\"\r\n class=\"x-table-drag-width\"\r\n xDrag\r\n (dragMoved)=\"dragWidthMoved($event, column)\"\r\n (dragStarted)=\"dragWidthStarted($event, column)\"\r\n (dragEnded)=\"dragWidthEnded($event, column)\"\r\n ></div>\r\n </ng-container>\r\n </ng-container>\r\n </th>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column=\"column\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n *ngIf=\"column.headChecked\"\r\n [data]=\"[{ id: true, label: column.label }]\"\r\n [(ngModel)]=\"table.checkedValues[column.id]\"\r\n (ngModelChange)=\"table.headChecked($event, column)\"\r\n [indeterminate]=\"table.checkedValues[column.id + table.indeterminate]\"\r\n ></x-checkbox>\r\n <ng-container *ngIf=\"!column.headChecked\">\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <a>{{ column.label }}</a>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cloumnDefaultTpl let-column=\"column\">\r\n <a [class.x-table-sort]=\"column.sort\" (click)=\"onSort(column)\" [style.text-align]=\"column.textAlign\">\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n <x-icon\r\n *ngIf=\"column.sort\"\r\n type=\"fto-bar-chart\"\r\n class=\"x-table-sort-icon\"\r\n [class.x-table-icon-up]=\"sortStr === column.id + ' desc'\"\r\n [class.x-table-icon-down]=\"sortStr === column.id + ' asc'\"\r\n ></x-icon>\r\n </a>\r\n</ng-template>\r\n" }]
|
|
163
177
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; }, propDecorators: { thead: [{
|
|
164
178
|
type: ViewChild,
|
|
165
179
|
args: ['thead']
|
|
166
180
|
}], table: [{
|
|
167
181
|
type: Input
|
|
168
182
|
}] } });
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90YWJsZS90YWJsZS1oZWFkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RhYmxlL3RhYmxlLWhlYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFLakIsU0FBUyxFQUNULEtBQUssRUFDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQTRCLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hILE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFTLFNBQVMsRUFBc0MsTUFBTSxrQkFBa0IsQ0FBQztBQUMvRyxPQUFPLEVBQStDLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7O0FBT3RHLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFVekQ7SUFDRSxxREFBcUQ7SUFDOUMsUUFBbUIsRUFDbkIsVUFBc0IsRUFDdEIsR0FBc0IsRUFDdEIsYUFBNkI7UUFFcEMsS0FBSyxFQUFFLENBQUM7UUFMRCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBZHRDLFNBQUksR0FBWSxFQUFFLENBQUM7UUFDbkIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGVBQVUsR0FBZ0MsRUFBRSxDQUFDO1FBQzdDLGVBQVUsR0FBYyxFQUFFLENBQUM7SUFjM0IsQ0FBQztJQVhELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxD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bUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLEdBQUcsZ0JBQWdCLEVBQUUsaUJBRWhCLGlCQUFpQixDQUFDLElBQUk7c0xBT2pCLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDVCxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgSW5wdXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRhYmxlSGVhZFByZWZpeCwgWFRhYmxlSGVhZFByb3BlcnR5LCBYVGFibGVDb2x1bW4sIFhUYWJsZUNlbGwsIFhUYWJsZVByZWZpeCB9IGZyb20gJy4vdGFibGUucHJvcGVydHknO1xyXG5pbXBvcnQgeyByZW1vdmVOZ1RhZywgWElzRW1wdHksIFhTb3J0LCBYSXNDaGFuZ2UsIFhDb25maWdTZXJ2aWNlLCBYTnVtYmVyLCBYQ2xhc3NNYXAgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIENka0RyYWdTb3J0RXZlbnQsIENka0RyYWdTdGFydCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRhYmxlSGVhZFByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1oZWFkLmNvbXBvbmVudC5odG1sJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVGFibGVIZWFkQ29tcG9uZW50IGV4dGVuZHMgWFRhYmxlSGVhZFByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBzb3J0OiBYU29ydFtdID0gW107XHJcbiAgc29ydFN0ciA9ICcnO1xyXG4gIHRoZWFkU3R5bGU6IHsgW3Byb3BlcnR5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG4gIHRoQ2xhc3NNYXA6IFhDbGFzc01hcCA9IHt9O1xyXG4gIEBWaWV3Q2hpbGQoJ3RoZWFkJykgdGhlYWQhOiBFbGVtZW50UmVmO1xyXG4gIEBJbnB1dCgpIHRhYmxlOiBhbnk7XHJcbiAgZ2V0IGdldFJvd0hlaWdodCgpIHtcclxuICAgIHJldHVybiB0aGlzLnJvd0hlaWdodCA9PSAwID8gJycgOiB0aGlzLnJvd0hlaWdodDtcclxuICB9XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBAT3B0aW9uYWwoKSBASG9zdCgpIHB1YmxpYyB0YWJsZTogWFRhYmxlQ29tcG9uZW50LFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoc2ltcGxlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3QgeyBjb2x1bW5zLCBzY3JvbGxZV2lkdGgsIHNjcm9sbFhXaWR0aCwgY2VsbENvbmZpZyB9ID0gc2ltcGxlcztcclxuICAgIFhJc0NoYW5nZShjb2x1bW5zLCBzY3JvbGxZV2lkdGgsIHNjcm9sbFhXaWR0aCwgY2VsbENvbmZpZykgJiYgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICByZW1vdmVOZ1RhZyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICB0aGlzLnNldFN0eWxlKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnRhYmxlLnRoZWFkcy5wdXNoKHRoaXMudGhlYWQpO1xyXG4gICAgdGhpcy50YWJsZS50aGVhZHNDaGFuZ2UucHVzaCgoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCkpO1xyXG4gICAgdGhpcy5zZXRUaENsYXNzTWFwKCk7XHJcbiAgfVxyXG5cclxuICBzZXRUaENsYXNzTWFwKCkge1xyXG4gICAgdGhpcy50aENsYXNzTWFwID0ge1xyXG4gICAgICBbYCR7WFRhYmxlUHJlZml4fS10aC0ke3RoaXMudGFibGUucm93U2l6ZX1gXTogIVhJc0VtcHR5KHRoaXMudGFibGUucm93U2l6ZSlcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRGbGV4KGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICBpZiAoY29sdW1uLndpZHRoKSByZXR1cm4gJ25vbmUnO1xyXG4gICAgaWYgKCFjb2x1bW4uZmxleCkgcmV0dXJuIDE7XHJcbiAgICByZXR1cm4gY29sdW1uLmZsZXg7XHJcbiAgfVxyXG5cclxuICBnZXRDb2x1bW5SaWdodChyaWdodD86IG51bWJlcikge1xyXG4gICAgaWYgKE51bWJlcihyaWdodCkgPj0gMCkge1xyXG4gICAgICBpZiAoTnVtYmVyKHRoaXMuc2Nyb2xsWVdpZHRoKSA+PSAwKSB7XHJcbiAgICAgICAgcmV0dXJuIE51bWJlcihyaWdodCkgKyBOdW1iZXIodGhpcy5zY3JvbGxZV2lkdGgpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBOdW1iZXIocmlnaHQpO1xyXG4gICAgfVxyXG4gICAgLy8gcmV0dXJuIHJpZ2h0O1xyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29sdW1uV2lkdGgoY29sdW1uOiBYVGFibGVDb2x1bW4pIHtcclxuICAgIC8vIGlmIChOdW1iZXIoY29sdW1uLnJpZ2h0KSA9PT0gMCkge1xyXG4gICAgLy8gICBpZiAoTnVtYmVyKHRoaXMuc2Nyb2xsWVdpZHRoKSA+PSAwKSB7XHJcbiAgICAvLyAgICAgcmV0dXJuIE51bWJlcihjb2x1bW4ud2lkdGgpICsgTnVtYmVyKHRoaXMuc2Nyb2xsWVdpZHRoKTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gICByZXR1cm4gY29sdW1uLndpZHRoO1xyXG4gICAgLy8gfVxyXG4gICAgcmV0dXJuIGNvbHVtbi53aWR0aDtcclxuICB9XHJcblxyXG4gIHNldFN0eWxlKCkge1xyXG4gICAgbGV0IGhlaWdodCA9IHRoaXMucm93SGVpZ2h0ID09IDAgPyAnJyA6IHRoaXMucm93SGVpZ2h0O1xyXG4gICAgaWYgKHRoaXMuY2VsbENvbmZpZyAmJiB0aGlzLmNlbGxDb25maWcuY2VsbHMpIHtcclxuICAgICAgY29uc3Qgc3B0ID0gdGhpcy5jZWxsQ29uZmlnLmNlbGxzLm1hcCgoeCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGdyaWRBcmVhU3B0ID0geC5ncmlkQXJlYT8uc3BsaXQoJy8nKTtcclxuICAgICAgICByZXR1cm4gZ3JpZEFyZWFTcHQgJiYgZ3JpZEFyZWFTcHQubGVuZ3RoID4gMyA/IE51bWJlcihncmlkQXJlYVNwdFsyXSkgOiAyO1xyXG4gICAgICB9KTtcclxuICAgICAgaGVpZ2h0ID0gKChNYXRoLm1heCguLi5zcHQpIC0gMSkgKiAoaGVpZ2h0IGFzIG51bWJlcikpIGFzIFhOdW1iZXI7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRoZWFkU3R5bGUgPSB7XHJcbiAgICAgIC8vIGhlaWdodDogYCR7aGVpZ2h0fXB4YCxcclxuICAgICAgWydtaW4taGVpZ2h0J106IGAke3RoaXMuZ2V0Um93SGVpZ2h0fXB4YFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG9uU29ydChjb2x1bW46IFhUYWJsZUNvbHVtbikge1xyXG4gICAgaWYgKCFjb2x1bW4uc29ydCkgcmV0dXJuO1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMuc29ydCkpIHRoaXMuc29ydCA9IFtdO1xyXG4gICAgbGV0IHNvcnQgPSB0aGlzLnNvcnQ/LmZpbmQoKHkpID0+IHkuZmllbGQgPT09IGNvbHVtbi5pZCk7XHJcbiAgICBpZiAoc29ydCkge1xyXG4gICAgICBpZiAoc29ydC52YWx1ZSA9PT0gJ2FzYycpIHtcclxuICAgICAgICB0aGlzLnNvcnQgPSBbXTtcclxuICAgICAgICB0aGlzLnNvcnRTdHIgPSAnJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzb3J0LnZhbHVlID0gJ2FzYyc7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNvcnQgPSB7IGZpZWxkOiBjb2x1bW4uaWQsIHZhbHVlOiAnZGVzYycgfTtcclxuICAgICAgdGhpcy5zb3J0ID0gW3NvcnRdO1xyXG4gICAgfVxyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLnNvcnQpKSB0aGlzLnNvcnRTdHIgPSBgJHtzb3J0LmZpZWxkfSAke3NvcnQudmFsdWV9YDtcclxuICAgIHRoaXMudGFibGUuY2hlY2tTb3J0KHRoaXMuc29ydCk7XHJcbiAgICB0aGlzLnRhYmxlLnNvcnRDaGFuZ2UuZW1pdCh0aGlzLnNvcnQpO1xyXG4gICAgdGhpcy50YWJsZS5yZXNldFNjcm9sbChmYWxzZSwgdHJ1ZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBkcmFnV2lkdGgoZGlzOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0sIGNvbHVtbjogWFRhYmxlQ29sdW1uIHwgWFRhYmxlQ2VsbCkge1xyXG4gICAgaWYgKGNvbHVtbi53aWR0aCkge1xyXG4gICAgICAoY29sdW1uLndpZHRoIGFzIG51bWJlcikgKz0gZGlzLng7XHJcbiAgICAgIGlmIChjb2x1bW4ud2lkdGggPCA2MCkgY29sdW1uLndpZHRoID0gNjA7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgdGhpcy50YWJsZS5ib2R5Q2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkcm9wTGlzdERyb3BwZWQoX2V2ZW50OiBDZGtEcmFnRHJvcDxYVGFibGVDb2x1bW5bXT4pIHtcclxuICAgIHRoaXMuZHJhZ0NoYW5nZSgpO1xyXG4gICAgdGhpcy50YWJsZS5jb2x1bW5Ecm9wTGlzdERyb3BwZWQuZW1pdCh0aGlzLmNvbHVtbnMpO1xyXG4gIH1cclxuXHJcbiAgZHJvcExpc3RTb3J0ZWQoZXZlbnQ6IENka0RyYWdTb3J0RXZlbnQ8WFRhYmxlQ29sdW1uW10+KSB7XHJcbiAgICBjb25zdCBwcmV2aW91cyA9IHRoaXMuY29sdW1uc1tldmVudC5wcmV2aW91c0luZGV4XTtcclxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmNvbHVtbnNbZXZlbnQuY3VycmVudEluZGV4XTtcclxuICAgIGNvbnN0IG1pZGRsZSA9IHsgbGVmdDogcHJldmlvdXMubGVmdCwgcmlnaHQ6IHByZXZpb3VzLnJpZ2h0IH07XHJcbiAgICBwcmV2aW91cy5sZWZ0ID0gY3VycmVudC5sZWZ0O1xyXG4gICAgcHJldmlvdXMucmlnaHQgPSBjdXJyZW50LnJpZ2h0O1xyXG4gICAgY3VycmVudC5sZWZ0ID0gbWlkZGxlLmxlZnQ7XHJcbiAgICBjdXJyZW50LnJpZ2h0ID0gbWlkZGxlLnJpZ2h0O1xyXG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuY29sdW1ucywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICAgIHRoaXMuZHJhZ0NoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgZHJhZ1N0YXJ0ZWQoX2V2ZW50OiBDZGtEcmFnU3RhcnQsIGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICBjb2x1bW4uZHJhZ2dpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5kcmFnQ2hhbmdlKCk7XHJcbiAgICB0aGlzLnRhYmxlLnRoZWFkc0NoYW5nZXMoKTtcclxuICAgIHRoaXMudGFibGUuY29sdW1uRHJhZ1N0YXJ0ZWQuZW1pdChjb2x1bW4pO1xyXG4gIH1cclxuXHJcbiAgZHJhZ0VuZGVkKGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICBjb2x1bW4uZHJhZ2dpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuZHJhZ0NoYW5nZSgpO1xyXG4gICAgdGhpcy50YWJsZS50aGVhZHNDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLnRhYmxlLmNvbHVtbkRyYWdFbmRlZC5lbWl0KGNvbHVtbik7XHJcbiAgfVxyXG5cclxuICBkcmFnQ2hhbmdlKCkge1xyXG4gICAgdGhpcy50YWJsZS5ib2R5Q2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5SXRlbShfaW5kZXg6IG51bWJlciwgaXRlbTogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICByZXR1cm4gaXRlbS5pZDtcclxuICB9XHJcbn1cclxuIiwiPHRoZWFkICN0aGVhZCBbbmdTdHlsZV09XCJ0aGVhZFN0eWxlXCIgW2NsYXNzLngtdGFibGUtaGVhZC10b3BdPVwicG9zaXRpb24gPT09ICd0b3AnXCIgW2NsYXNzLngtdGFibGUtaGVhZC1ib3R0b21dPVwicG9zaXRpb24gPT09ICdib3R0b20nXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNlbGxDb25maWc7IGVsc2UgY29sdW1uc1RwbFwiPlxyXG4gICAgPHRyIFtzdHlsZS5ncmlkVGVtcGxhdGVDb2x1bW5zXT1cImNlbGxDb25maWcuZ3JpZFRlbXBsYXRlQ29sdW1uc1wiIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiPlxyXG4gICAgICA8dGhcclxuICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNlbGxDb25maWcuY2VsbHNcIlxyXG4gICAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreV09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0KGNvbHVtbikgfHwgdGFibGUuZ2V0U3RpY2t5UmlnaHQoY29sdW1uKVwiXHJcbiAgICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LWxlZnRdPVwidGFibGUuZ2V0U3RpY2t5TGVmdChjb2x1bW4pXCJcclxuICAgICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktcmlnaHRdPVwidGFibGUuZ2V0U3RpY2t5UmlnaHQoY29sdW1uKVwiXHJcbiAgICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LWxlZnQtbGFzdF09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0TGFzdChjb2x1bW4pXCJcclxuICAgICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktcmlnaHQtZmlyc3RdPVwidGFibGUuZ2V0U3RpY2t5UmlnaHRGaXJzdChjb2x1bW4pXCJcclxuICAgICAgICBbY2xhc3MueC10YWJsZS13aWR0aC1kcmFnXT1cImNvbHVtbi5kcmFnV2lkdGhcIlxyXG4gICAgICAgIFtzdHlsZS5ncmlkLWFyZWFdPVwiY29sdW1uLmdyaWRBcmVhXCJcclxuICAgICAgICBbc3R5bGUubGVmdC5weF09XCJjb2x1bW4ubGVmdFwiXHJcbiAgICAgICAgW3N0eWxlLnJpZ2h0LnB4XT1cImNvbHVtbi5yaWdodFwiXHJcbiAgICAgICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgICAgICBbdGl0bGVdPVwiY29sdW1uPy5sYWJlbFwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uQmFzZVRwbDsgY29udGV4dDogeyBjb2x1bW46IGNvbHVtbiB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImNvbHVtbi5kcmFnV2lkdGhcIiBjbGFzcz1cIngtdGFibGUtZHJhZy13aWR0aFwiIHhEcmFnIChkcmFnaW5nKT1cImRyYWdXaWR0aCgkZXZlbnQsIGNvbHVtbilcIj48L2Rpdj5cclxuICAgICAgPC90aD5cclxuICAgIDwvdHI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYmxlLmhlYWRTZWFyY2hUcGxcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW5zVHBsOyBjb250ZXh0OiB7IGNhc2U6ICdzZWFyY2gnIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC90aGVhZD5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY29sdW1uc1RwbCBsZXQtY2FzZT1cImNhc2VcIj5cclxuICA8dHJcclxuICAgIGNka0Ryb3BMaXN0XHJcbiAgICBjZGtEcm9wTGlzdE9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXHJcbiAgICAoY2RrRHJvcExpc3RTb3J0ZWQpPVwiZHJvcExpc3RTb3J0ZWQoJGV2ZW50KVwiXHJcbiAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BMaXN0RHJvcHBlZCgkZXZlbnQpXCJcclxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgICBbc3R5bGUucGFkZGluZy1yaWdodC5weF09XCJzY3JvbGxZV2lkdGhcIlxyXG4gICAgW3N0eWxlLndpZHRoLnB4XT1cInNjcm9sbFhXaWR0aFwiXHJcbiAgICBbY2xhc3MueC10YWJsZS1zZWFyY2hdPVwiY2FzZSA9PT0gJ3NlYXJjaCdcIlxyXG4gID5cclxuICAgIDx0aFxyXG4gICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCJcclxuICAgICAgY2RrRHJhZ1xyXG4gICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIiFjb2x1bW4uZHJhZ0NvbHVtblwiXHJcbiAgICAgIChjZGtEcmFnU3RhcnRlZCk9XCJkcmFnU3RhcnRlZCgkZXZlbnQsIGNvbHVtbilcIlxyXG4gICAgICAoY2RrRHJhZ0VuZGVkKT1cImRyYWdFbmRlZChjb2x1bW4pXCJcclxuICAgICAgW25nQ2xhc3NdPVwidGhDbGFzc01hcFwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXRoXT1cInRydWVcIlxyXG4gICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ldPVwidGFibGUuZ2V0U3RpY2t5KGNvbHVtbilcIlxyXG4gICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktbGVmdF09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0KGNvbHVtbilcIlxyXG4gICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktcmlnaHRdPVwidGFibGUuZ2V0U3RpY2t5UmlnaHQoY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1sZWZ0LWxhc3RdPVwidGFibGUuZ2V0U3RpY2t5TGVmdExhc3QoY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1yaWdodC1maXJzdF09XCJ0YWJsZS5nZXRTdGlja3lSaWdodEZpcnN0KGNvbHVtbilcIlxyXG4gICAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gICAgICBbc3R5bGUud2lkdGgucHhdPVwiZ2V0Q29sdW1uV2lkdGgoY29sdW1uKVwiXHJcbiAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImNvbHVtbi5sZWZ0XCJcclxuICAgICAgW3N0eWxlLnJpZ2h0LnB4XT1cImdldENvbHVtblJpZ2h0KGNvbHVtbi5yaWdodClcIlxyXG4gICAgICBbc3R5bGUuZmxleF09XCJnZXRGbGV4KGNvbHVtbilcIlxyXG4gICAgPlxyXG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjYXNlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NlYXJjaCdcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZS5oZWFkU2VhcmNoVHBsOyBjb250ZXh0OiB7ICRjb2x1bW46IGNvbHVtbiB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbkJhc2VUcGw7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4gfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImNvbHVtbi5kcmFnV2lkdGhcIiBjbGFzcz1cIngtdGFibGUtZHJhZy13aWR0aFwiIHhEcmFnIChkcmFnaW5nKT1cImRyYWdXaWR0aCgkZXZlbnQsIGNvbHVtbilcIj48L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L3RoPlxyXG4gIDwvdHI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbHVtbkJhc2VUcGwgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxyXG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbHVtbi50eXBlXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY2hlY2tib3gnXCI+XHJcbiAgICAgIDx4LWNoZWNrYm94XHJcbiAgICAgICAgKm5nSWY9XCJjb2x1bW4uaGVhZENoZWNrZWRcIlxyXG4gICAgICAgIFtkYXRhXT1cIlt7IGlkOiB0cnVlLCBsYWJlbDogY29sdW1uLmxhYmVsIH1dXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInRhYmxlLmNoZWNrZWRWYWx1ZXNbY29sdW1uLmlkXVwiXHJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidGFibGUuaGVhZENoZWNrZWQoJGV2ZW50LCBjb2x1bW4pXCJcclxuICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJ0YWJsZS5jaGVja2VkVmFsdWVzW2NvbHVtbi5pZCArIHRhYmxlLmluZGV0ZXJtaW5hdGVdXCJcclxuICAgICAgPjwveC1jaGVja2JveD5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW4uaGVhZENoZWNrZWRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2xvdW1uRGVmYXVsdFRwbDsgY29udGV4dDogeyBjb2x1bW46IGNvbHVtbiB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW5kZXgnXCI+XHJcbiAgICAgIDxhPnt7IGNvbHVtbi5sYWJlbCB9fTwvYT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2xvdW1uRGVmYXVsdFRwbDsgY29udGV4dDogeyBjb2x1bW46IGNvbHVtbiB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY2xvdW1uRGVmYXVsdFRwbCBsZXQtY29sdW1uPVwiY29sdW1uXCI+XHJcbiAgPGEgW2NsYXNzLngtdGFibGUtc29ydF09XCJjb2x1bW4uc29ydFwiIChjbGljayk9XCJvblNvcnQoY29sdW1uKVwiIFtzdHlsZS50ZXh0LWFsaWduXT1cImNvbHVtbi50ZXh0QWxpZ25cIj5cclxuICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJjb2x1bW5UcGxbY29sdW1uLmlkXTsgY29udGV4dDogeyAkY29sdW1uOiBjb2x1bW4gfVwiPlxyXG4gICAgICB7eyBjb2x1bW4ubGFiZWwgfX1cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPHgtaWNvblxyXG4gICAgICAqbmdJZj1cImNvbHVtbi5zb3J0XCJcclxuICAgICAgdHlwZT1cImZ0by1iYXItY2hhcnRcIlxyXG4gICAgICBjbGFzcz1cIngtdGFibGUtc29ydC1pY29uXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtaWNvbi11cF09XCJzb3J0U3RyID09PSBjb2x1bW4uaWQgKyAnIGRlc2MnXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtaWNvbi1kb3duXT1cInNvcnRTdHIgPT09IGNvbHVtbi5pZCArICcgYXNjJ1wiXHJcbiAgICA+PC94LWljb24+XHJcbiAgPC9hPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90YWJsZS90YWJsZS1oZWFkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RhYmxlL3RhYmxlLWhlYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFLakIsU0FBUyxFQUNULEtBQUssRUFDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQTRCLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hILE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFTLFNBQVMsRUFBc0MsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUgsT0FBTyxFQUErQyxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7OztBQU90RyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsa0JBQWtCO0lBVXpEO0lBQ0UscURBQXFEO0lBQzlDLFFBQW1CLEVBQ25CLFVBQW1DLEVBQ25DLEdBQXNCLEVBQ3RCLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBTEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFkdEMsU0FBSSxHQUFZLEVBQUUsQ0FBQztRQUNuQixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsZUFBVSxHQUFnQyxFQUFFLENBQUM7UUFDN0MsZUFBVSxHQUFjLEVBQUUsQ0FBQztJQWMzQixDQUFDO0lBWEQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMs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ZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG4gIElucHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhUYWJsZUhlYWRQcmVmaXgsIFhUYWJsZUhlYWRQcm9wZXJ0eSwgWFRhYmxlQ29sdW1uLCBYVGFibGVDZWxsLCBYVGFibGVQcmVmaXggfSBmcm9tICcuL3RhYmxlLnByb3BlcnR5JztcclxuaW1wb3J0IHsgcmVtb3ZlTmdUYWcsIFhJc0VtcHR5LCBYU29ydCwgWElzQ2hhbmdlLCBYQ29uZmlnU2VydmljZSwgWE51bWJlciwgWENsYXNzTWFwLCBYSXNGdW5jdGlvbiB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgQ2RrRHJhZ1NvcnRFdmVudCwgQ2RrRHJhZ1N0YXJ0LCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYVGFibGVIZWFkUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWhlYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFhUYWJsZUhlYWRDb21wb25lbnQgZXh0ZW5kcyBYVGFibGVIZWFkUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHNvcnQ6IFhTb3J0W10gPSBbXTtcclxuICBzb3J0U3RyID0gJyc7XHJcbiAgdGhlYWRTdHlsZTogeyBbcHJvcGVydHk6IHN0cmluZ106IGFueSB9ID0ge307XHJcbiAgdGhDbGFzc01hcDogWENsYXNzTWFwID0ge307XHJcbiAgQFZpZXdDaGlsZCgndGhlYWQnKSB0aGVhZCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBJbnB1dCgpIHRhYmxlOiBhbnk7XHJcbiAgZ2V0IGdldFJvd0hlaWdodCgpIHtcclxuICAgIHJldHVybiB0aGlzLnJvd0hlaWdodCA9PSAwID8gJycgOiB0aGlzLnJvd0hlaWdodDtcclxuICB9XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBAT3B0aW9uYWwoKSBASG9zdCgpIHB1YmxpYyB0YWJsZTogWFRhYmxlQ29tcG9uZW50LFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKHNpbXBsZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IHsgY29sdW1ucywgc2Nyb2xsWVdpZHRoLCBzY3JvbGxYV2lkdGgsIGNlbGxDb25maWcgfSA9IHNpbXBsZXM7XHJcbiAgICBYSXNDaGFuZ2UoY29sdW1ucywgc2Nyb2xsWVdpZHRoLCBzY3JvbGxYV2lkdGgsIGNlbGxDb25maWcpICYmIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgcmVtb3ZlTmdUYWcodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgdGhpcy5zZXRTdHlsZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy50YWJsZS50aGVhZHMucHVzaCh0aGlzLnRoZWFkKTtcclxuICAgIHRoaXMudGFibGUudGhlYWRzQ2hhbmdlLnB1c2goKCkgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpKTtcclxuICAgIHRoaXMuc2V0VGhDbGFzc01hcCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0VGhDbGFzc01hcCgpIHtcclxuICAgIHRoaXMudGhDbGFzc01hcCA9IHtcclxuICAgICAgW2Ake1hUYWJsZVByZWZpeH0tdGgtJHt0aGlzLnRhYmxlLnJvd1NpemV9YF06ICFYSXNFbXB0eSh0aGlzLnRhYmxlLnJvd1NpemUpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0RmxleChjb2x1bW46IFhUYWJsZUNvbHVtbikge1xyXG4gICAgaWYgKGNvbHVtbi53aWR0aCkgcmV0dXJuICdub25lJztcclxuICAgIGlmICghY29sdW1uLmZsZXgpIHJldHVybiAxO1xyXG4gICAgcmV0dXJuIGNvbHVtbi5mbGV4O1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29sdW1uUmlnaHQocmlnaHQ/OiBudW1iZXIpIHtcclxuICAgIGlmIChOdW1iZXIocmlnaHQpID49IDApIHtcclxuICAgICAgaWYgKE51bWJlcih0aGlzLnNjcm9sbFlXaWR0aCkgPj0gMCkge1xyXG4gICAgICAgIHJldHVybiBOdW1iZXIocmlnaHQpICsgTnVtYmVyKHRoaXMuc2Nyb2xsWVdpZHRoKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gTnVtYmVyKHJpZ2h0KTtcclxuICAgIH1cclxuICAgIC8vIHJldHVybiByaWdodDtcclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIGdldENvbHVtbldpZHRoKGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICAvLyBpZiAoTnVtYmVyKGNvbHVtbi5yaWdodCkgPT09IDApIHtcclxuICAgIC8vICAgaWYgKE51bWJlcih0aGlzLnNjcm9sbFlXaWR0aCkgPj0gMCkge1xyXG4gICAgLy8gICAgIHJldHVybiBOdW1iZXIoY29sdW1uLndpZHRoKSArIE51bWJlcih0aGlzLnNjcm9sbFlXaWR0aCk7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vICAgcmV0dXJuIGNvbHVtbi53aWR0aDtcclxuICAgIC8vIH1cclxuICAgIHJldHVybiBjb2x1bW4ud2lkdGg7XHJcbiAgfVxyXG5cclxuICBzZXRTdHlsZSgpIHtcclxuICAgIGxldCBoZWlnaHQgPSB0aGlzLnJvd0hlaWdodCA9PSAwID8gJycgOiB0aGlzLnJvd0hlaWdodDtcclxuICAgIGlmICh0aGlzLmNlbGxDb25maWcgJiYgdGhpcy5jZWxsQ29uZmlnLmNlbGxzKSB7XHJcbiAgICAgIGNvbnN0IHNwdCA9IHRoaXMuY2VsbENvbmZpZy5jZWxscy5tYXAoKHgpID0+IHtcclxuICAgICAgICBjb25zdCBncmlkQXJlYVNwdCA9IHguZ3JpZEFyZWE/LnNwbGl0KCcvJyk7XHJcbiAgICAgICAgcmV0dXJuIGdyaWRBcmVhU3B0ICYmIGdyaWRBcmVhU3B0Lmxlbmd0aCA+IDMgPyBOdW1iZXIoZ3JpZEFyZWFTcHRbMl0pIDogMjtcclxuICAgICAgfSk7XHJcbiAgICAgIGhlaWdodCA9ICgoTWF0aC5tYXgoLi4uc3B0KSAtIDEpICogKGhlaWdodCBhcyBudW1iZXIpKSBhcyBYTnVtYmVyO1xyXG4gICAgfVxyXG4gICAgdGhpcy50aGVhZFN0eWxlID0ge1xyXG4gICAgICAvLyBoZWlnaHQ6IGAke2hlaWdodH1weGAsXHJcbiAgICAgIFsnbWluLWhlaWdodCddOiBgJHt0aGlzLmdldFJvd0hlaWdodH1weGBcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBvblNvcnQoY29sdW1uOiBYVGFibGVDb2x1bW4pIHtcclxuICAgIGlmICghY29sdW1uLnNvcnQpIHJldHVybjtcclxuICAgIGlmIChYSXNFbXB0eSh0aGlzLnNvcnQpKSB0aGlzLnNvcnQgPSBbXTtcclxuICAgIGxldCBzb3J0ID0gdGhpcy5zb3J0Py5maW5kKCh5KSA9PiB5LmZpZWxkID09PSBjb2x1bW4uaWQpO1xyXG4gICAgaWYgKHNvcnQpIHtcclxuICAgICAgaWYgKHNvcnQudmFsdWUgPT09ICdhc2MnKSB7XHJcbiAgICAgICAgdGhpcy5zb3J0ID0gW107XHJcbiAgICAgICAgdGhpcy5zb3J0U3RyID0gJyc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc29ydC52YWx1ZSA9ICdhc2MnO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzb3J0ID0geyBmaWVsZDogY29sdW1uLmlkLCB2YWx1ZTogJ2Rlc2MnIH07XHJcbiAgICAgIHRoaXMuc29ydCA9IFtzb3J0XTtcclxuICAgIH1cclxuICAgIGlmICghWElzRW1wdHkodGhpcy5zb3J0KSkgdGhpcy5zb3J0U3RyID0gYCR7c29ydC5maWVsZH0gJHtzb3J0LnZhbHVlfWA7XHJcbiAgICB0aGlzLnRhYmxlLmNoZWNrU29ydCh0aGlzLnNvcnQpO1xyXG4gICAgdGhpcy50YWJsZS5zb3J0Q2hhbmdlLmVtaXQodGhpcy5zb3J0KTtcclxuICAgIHRoaXMudGFibGUucmVzZXRTY3JvbGwoZmFsc2UsIHRydWUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZHJhZ1dpZHRoTW92ZWQocG9zaXRpb246IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IG9mZnNldFg6IG51bWJlcjsgb2Zmc2V0WTogbnVtYmVyIH0sIGNvbHVtbjogWFRhYmxlQ29sdW1uIHwgWFRhYmxlQ2VsbCkge1xyXG4gICAgaWYgKGNvbHVtbi53aWR0aCkge1xyXG4gICAgICAoY29sdW1uLndpZHRoIGFzIG51bWJlcikgKz0gcG9zaXRpb24ub2Zmc2V0WDtcclxuICAgICAgaWYgKGNvbHVtbi53aWR0aCA8IDYwKSBjb2x1bW4ud2lkdGggPSA2MDtcclxuICAgICAgWElzRnVuY3Rpb24oY29sdW1uLmRyYWdXaWR0aE1vdmVkKSAmJiBjb2x1bW4uZHJhZ1dpZHRoTW92ZWQoeyBwb3NpdGlvbiwgY29sdW1uIH0pO1xyXG4gICAgICB0aGlzLnRhYmxlLmNvbHVtbkRyYWdXaWR0aE1vdmVkLmVtaXQoeyBwb3NpdGlvbiwgY29sdW1uIH0pO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHRoaXMudGFibGUuYm9keUNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZHJhZ1dpZHRoU3RhcnRlZChwb3NpdGlvbjogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9LCBjb2x1bW46IFhUYWJsZUNvbHVtbiB8IFhUYWJsZUNlbGwpIHtcclxuICAgIGlmIChjb2x1bW4ud2lkdGggJiYgWElzRnVuY3Rpb24oY29sdW1uLmRyYWdXaWR0aFN0YXJ0ZWQpKSB7XHJcbiAgICAgIGNvbHVtbi5kcmFnV2lkdGhTdGFydGVkKHsgcG9zaXRpb24sIGNvbHVtbiB9KTtcclxuICAgICAgdGhpcy50YWJsZS5jb2x1bW5EcmFnV2lkdGhTdGFydGVkLmVtaXQoeyBwb3NpdGlvbiwgY29sdW1uIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZHJhZ1dpZHRoRW5kZWQocG9zaXRpb246IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSwgY29sdW1uOiBYVGFibGVDb2x1bW4gfCBYVGFibGVDZWxsKSB7XHJcbiAgICBpZiAoY29sdW1uLndpZHRoICYmIFhJc0Z1bmN0aW9uKGNvbHVtbi5kcmFnV2lkdGhFbmRlZCkpIHtcclxuICAgICAgY29sdW1uLmRyYWdXaWR0aEVuZGVkKHsgcG9zaXRpb24sIGNvbHVtbiB9KTtcclxuICAgICAgdGhpcy50YWJsZS5jb2x1bW5EcmFnV2lkdGhFbmRlZC5lbWl0KHsgcG9zaXRpb24sIGNvbHVtbiB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRyb3BMaXN0RHJvcHBlZChfZXZlbnQ6IENka0RyYWdEcm9wPFhUYWJsZUNvbHVtbltdPikge1xyXG4gICAgdGhpcy5kcmFnQ2hhbmdlKCk7XHJcbiAgICB0aGlzLnRhYmxlLmNvbHVtbkRyb3BMaXN0RHJvcHBlZC5lbWl0KHRoaXMuY29sdW1ucyk7XHJcbiAgfVxyXG5cclxuICBkcm9wTGlzdFNvcnRlZChldmVudDogQ2RrRHJhZ1NvcnRFdmVudDxYVGFibGVDb2x1bW5bXT4pIHtcclxuICAgIGNvbnN0IHByZXZpb3VzID0gdGhpcy5jb2x1bW5zW2V2ZW50LnByZXZpb3VzSW5kZXhdO1xyXG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuY29sdW1uc1tldmVudC5jdXJyZW50SW5kZXhdO1xyXG4gICAgY29uc3QgbWlkZGxlID0geyBsZWZ0OiBwcmV2aW91cy5sZWZ0LCByaWdodDogcHJldmlvdXMucmlnaHQgfTtcclxuICAgIHByZXZpb3VzLmxlZnQgPSBjdXJyZW50LmxlZnQ7XHJcbiAgICBwcmV2aW91cy5yaWdodCA9IGN1cnJlbnQucmlnaHQ7XHJcbiAgICBjdXJyZW50LmxlZnQgPSBtaWRkbGUubGVmdDtcclxuICAgIGN1cnJlbnQucmlnaHQgPSBtaWRkbGUucmlnaHQ7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5jb2x1bW5zLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gICAgdGhpcy5kcmFnQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBkcmFnU3RhcnRlZChfZXZlbnQ6IENka0RyYWdTdGFydCwgY29sdW1uOiBYVGFibGVDb2x1bW4pIHtcclxuICAgIGNvbHVtbi5kcmFnZ2luZyA9IHRydWU7XHJcbiAgICB0aGlzLmRyYWdDaGFuZ2UoKTtcclxuICAgIHRoaXMudGFibGUudGhlYWRzQ2hhbmdlcygpO1xyXG4gICAgdGhpcy50YWJsZS5jb2x1bW5EcmFnU3RhcnRlZC5lbWl0KGNvbHVtbik7XHJcbiAgfVxyXG5cclxuICBkcmFnRW5kZWQoY29sdW1uOiBYVGFibGVDb2x1bW4pIHtcclxuICAgIGNvbHVtbi5kcmFnZ2luZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5kcmFnQ2hhbmdlKCk7XHJcbiAgICB0aGlzLnRhYmxlLnRoZWFkc0NoYW5nZXMoKTtcclxuICAgIHRoaXMudGFibGUuY29sdW1uRHJhZ0VuZGVkLmVtaXQoY29sdW1uKTtcclxuICB9XHJcblxyXG4gIGRyYWdDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnRhYmxlLmJvZHlDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlJdGVtKF9pbmRleDogbnVtYmVyLCBpdGVtOiBYVGFibGVDb2x1bW4pIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxufVxyXG4iLCI8dGhlYWQgI3RoZWFkIFtuZ1N0eWxlXT1cInRoZWFkU3R5bGVcIiBbY2xhc3MueC10YWJsZS1oZWFkLXRvcF09XCJwb3NpdGlvbiA9PT0gJ3RvcCdcIiBbY2xhc3MueC10YWJsZS1oZWFkLWJvdHRvbV09XCJwb3NpdGlvbiA9PT0gJ2JvdHRvbSdcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2VsbENvbmZpZzsgZWxzZSBjb2x1bW5zVHBsXCI+XHJcbiAgICA8dHIgW3N0eWxlLmdyaWRUZW1wbGF0ZUNvbHVtbnNdPVwiY2VsbENvbmZpZy5ncmlkVGVtcGxhdGVDb2x1bW5zXCIgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCI+XHJcbiAgICAgIDx0aFxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY2VsbENvbmZpZy5jZWxsc1wiXHJcbiAgICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5XT1cInRhYmxlLmdldFN0aWNreUxlZnQoY29sdW1uKSB8fCB0YWJsZS5nZXRTdGlja3lSaWdodChjb2x1bW4pXCJcclxuICAgICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktbGVmdF09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0KGNvbHVtbilcIlxyXG4gICAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1yaWdodF09XCJ0YWJsZS5nZXRTdGlja3lSaWdodChjb2x1bW4pXCJcclxuICAgICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktbGVmdC1sYXN0XT1cInRhYmxlLmdldFN0aWNreUxlZnRMYXN0KGNvbHVtbilcIlxyXG4gICAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1yaWdodC1maXJzdF09XCJ0YWJsZS5nZXRTdGlja3lSaWdodEZpcnN0KGNvbHVtbilcIlxyXG4gICAgICAgIFtjbGFzcy54LXRhYmxlLXdpZHRoLWRyYWddPVwiY29sdW1uLmRyYWdXaWR0aFwiXHJcbiAgICAgICAgW3N0eWxlLmdyaWQtYXJlYV09XCJjb2x1bW4uZ3JpZEFyZWFcIlxyXG4gICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImNvbHVtbi5sZWZ0XCJcclxuICAgICAgICBbc3R5bGUucmlnaHQucHhdPVwiY29sdW1uLnJpZ2h0XCJcclxuICAgICAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gICAgICAgIFt0aXRsZV09XCJjb2x1bW4/LmxhYmVsXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW5CYXNlVHBsOyBjb250ZXh0OiB7IGNvbHVtbjogY29sdW1uIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cImNvbHVtbi5kcmFnV2lkdGhcIlxyXG4gICAgICAgICAgY2xhc3M9XCJ4LXRhYmxlLWRyYWctd2lkdGhcIlxyXG4gICAgICAgICAgeERyYWdcclxuICAgICAgICAgIChkcmFnTW92ZWQpPVwiZHJhZ1dpZHRoTW92ZWQoJGV2ZW50LCBjb2x1bW4pXCJcclxuICAgICAgICAgIChkcmFnU3RhcnRlZCk9XCJkcmFnV2lkdGhTdGFydGVkKCRldmVudCwgY29sdW1uKVwiXHJcbiAgICAgICAgICAoZHJhZ0VuZGVkKT1cImRyYWdXaWR0aEVuZGVkKCRldmVudCwgY29sdW1uKVwiXHJcbiAgICAgICAgPjwvZGl2PlxyXG4gICAgICA8L3RoPlxyXG4gICAgPC90cj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFibGUuaGVhZFNlYXJjaFRwbFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbnNUcGw7IGNvbnRleHQ6IHsgY2FzZTogJ3NlYXJjaCcgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L3RoZWFkPlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb2x1bW5zVHBsIGxldC1jYXNlPVwiY2FzZVwiPlxyXG4gIDx0clxyXG4gICAgY2RrRHJvcExpc3RcclxuICAgIGNka0Ryb3BMaXN0T3JpZW50YXRpb249XCJob3Jpem9udGFsXCJcclxuICAgIChjZGtEcm9wTGlzdFNvcnRlZCk9XCJkcm9wTGlzdFNvcnRlZCgkZXZlbnQpXCJcclxuICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcExpc3REcm9wcGVkKCRldmVudClcIlxyXG4gICAgW3N0eWxlLmhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgIFtzdHlsZS5wYWRkaW5nLXJpZ2h0LnB4XT1cInNjcm9sbFlXaWR0aFwiXHJcbiAgICBbc3R5bGUud2lkdGgucHhdPVwic2Nyb2xsWFdpZHRoXCJcclxuICAgIFtjbGFzcy54LXRhYmxlLXNlYXJjaF09XCJjYXNlID09PSAnc2VhcmNoJ1wiXHJcbiAgPlxyXG4gICAgPHRoXHJcbiAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIlxyXG4gICAgICBjZGtEcmFnXHJcbiAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWNvbHVtbi5kcmFnQ29sdW1uXCJcclxuICAgICAgKGNka0RyYWdTdGFydGVkKT1cImRyYWdTdGFydGVkKCRldmVudCwgY29sdW1uKVwiXHJcbiAgICAgIChjZGtEcmFnRW5kZWQpPVwiZHJhZ0VuZGVkKGNvbHVtbilcIlxyXG4gICAgICBbbmdDbGFzc109XCJ0aENsYXNzTWFwXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtdGhdPVwidHJ1ZVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreV09XCJ0YWJsZS5nZXRTdGlja3koY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1sZWZ0XT1cInRhYmxlLmdldFN0aWNreUxlZnQoY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1yaWdodF09XCJ0YWJsZS5nZXRTdGlja3lSaWdodChjb2x1bW4pXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LWxlZnQtbGFzdF09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0TGFzdChjb2x1bW4pXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LXJpZ2h0LWZpcnN0XT1cInRhYmxlLmdldFN0aWNreVJpZ2h0Rmlyc3QoY29sdW1uKVwiXHJcbiAgICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgICAgIFtzdHlsZS53aWR0aC5weF09XCJnZXRDb2x1bW5XaWR0aChjb2x1bW4pXCJcclxuICAgICAgW3N0eWxlLmxlZnQucHhdPVwiY29sdW1uLmxlZnRcIlxyXG4gICAgICBbc3R5bGUucmlnaHQucHhdPVwiZ2V0Q29sdW1uUmlnaHQoY29sdW1uLnJpZ2h0KVwiXHJcbiAgICAgIFtzdHlsZS5mbGV4XT1cImdldEZsZXgoY29sdW1uKVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNhc2VcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc2VhcmNoJ1wiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlLmhlYWRTZWFyY2hUcGw7IGNvbnRleHQ6IHsgJGNvbHVtbjogY29sdW1uIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uQmFzZVRwbDsgY29udGV4dDogeyBjb2x1bW46IGNvbHVtbiB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uLmRyYWdXaWR0aFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwieC10YWJsZS1kcmFnLXdpZHRoXCJcclxuICAgICAgICAgICAgeERyYWdcclxuICAgICAgICAgICAgKGRyYWdNb3ZlZCk9XCJkcmFnV2lkdGhNb3ZlZCgkZXZlbnQsIGNvbHVtbilcIlxyXG4gICAgICAgICAgICAoZHJhZ1N0YXJ0ZWQpPVwiZHJhZ1dpZHRoU3RhcnRlZCgkZXZlbnQsIGNvbHVtbilcIlxyXG4gICAgICAgICAgICAoZHJhZ0VuZGVkKT1cImRyYWdXaWR0aEVuZGVkKCRldmVudCwgY29sdW1uKVwiXHJcbiAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC90aD5cclxuICA8L3RyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb2x1bW5CYXNlVHBsIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cclxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjb2x1bW4udHlwZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrYm94J1wiPlxyXG4gICAgICA8eC1jaGVja2JveFxyXG4gICAgICAgICpuZ0lmPVwiY29sdW1uLmhlYWRDaGVja2VkXCJcclxuICAgICAgICBbZGF0YV09XCJbeyBpZDogdHJ1ZSwgbGFiZWw6IGNvbHVtbi5sYWJlbCB9XVwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ0YWJsZS5jaGVja2VkVmFsdWVzW2NvbHVtbi5pZF1cIlxyXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRhYmxlLmhlYWRDaGVja2VkKCRldmVudCwgY29sdW1uKVwiXHJcbiAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwidGFibGUuY2hlY2tlZFZhbHVlc1tjb2x1bW4uaWQgKyB0YWJsZS5pbmRldGVybWluYXRlXVwiXHJcbiAgICAgID48L3gtY2hlY2tib3g+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29sdW1uLmhlYWRDaGVja2VkXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNsb3VtbkRlZmF1bHRUcGw7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4gfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2luZGV4J1wiPlxyXG4gICAgICA8YT57eyBjb2x1bW4ubGFiZWwgfX08L2E+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNsb3VtbkRlZmF1bHRUcGw7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4gfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2Nsb3VtbkRlZmF1bHRUcGwgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxyXG4gIDxhIFtjbGFzcy54LXRhYmxlLXNvcnRdPVwiY29sdW1uLnNvcnRcIiAoY2xpY2spPVwib25Tb3J0KGNvbHVtbilcIiBbc3R5bGUudGV4dC1hbGlnbl09XCJjb2x1bW4udGV4dEFsaWduXCI+XHJcbiAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiY29sdW1uVHBsW2NvbHVtbi5pZF07IGNvbnRleHQ6IHsgJGNvbHVtbjogY29sdW1uIH1cIj5cclxuICAgICAge3sgY29sdW1uLmxhYmVsIH19XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDx4LWljb25cclxuICAgICAgKm5nSWY9XCJjb2x1bW4uc29ydFwiXHJcbiAgICAgIHR5cGU9XCJmdG8tYmFyLWNoYXJ0XCJcclxuICAgICAgY2xhc3M9XCJ4LXRhYmxlLXNvcnQtaWNvblwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLWljb24tdXBdPVwic29ydFN0ciA9PT0gY29sdW1uLmlkICsgJyBkZXNjJ1wiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLWljb24tZG93bl09XCJzb3J0U3RyID09PSBjb2x1bW4uaWQgKyAnIGFzYydcIlxyXG4gICAgPjwveC1pY29uPlxyXG4gIDwvYT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -359,4 +359,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
|
|
|
359
359
|
type: ViewChild,
|
|
360
360
|
args: ['stickyBottomRightEle']
|
|
361
361
|
}] } });
|
|
362
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBNkQsTUFBTSxrQkFBa0IsQ0FBQztBQUMzSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBK0MsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHbEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFTL0IsTUFBTSxPQUFPLGVBQWdCLFNBQVEsY0FBYztJQWlFakQsWUFDUyxRQUFtQixFQUNuQixVQUFzQixFQUN0QixHQUFzQixFQUN0QixhQUE2QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUxELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFsQ3RDLFdBQU0sR0FBaUIsRUFBRSxDQUFDO1FBRzFCLGlCQUFZLEdBQW1CLEVBQUUsQ0FBQztRQUdsQyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFFbEIsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNm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RUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxVQUFVLEdBQUcsQ0FBQyxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDNUYsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckQsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUNsQyxJQUFJLEVBQUUsQ0FBQzthQUNSO1NBQ0Y7SUFDSCxDQUFDOzsrSEFuV1UsZUFBZTttSEFBZixlQUFlLG1rQkMxQjVCLGl2SUFrSEE7MkZEeEZhLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0UsR0FBRyxZQUFZLEVBQUUsaUJBR1osaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTtzTEE2RDNCLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDSSxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ0ssVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUNTLGlCQUFpQjtzQkFBaEQsU0FBUzt1QkFBQyxtQkFBbUI7Z0JBQ0ssb0JBQW9CO3NCQUF0RCxTQUFTO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxuICBPbkRlc3Ryb3lcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRhYmxlUHJlZml4LCBYVGFibGVQcm9wZXJ0eSwgWFRhYmxlQ29sdW1uLCBYVGFibGVSb3csIFhUYWJsZUNlbGwsIFhUYWJsZUNlbGxDb25maWdSdWxlIH0gZnJvbSAnLi90YWJsZS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0NoYW5nZSwgWElzRW1wdHksIFhSZXN1bHRMaXN0LCBYTnVtYmVyLCBYU29ydCwgWENvbmZpZ1NlcnZpY2UsIFhJc1VuZGVmaW5lZCB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcclxuaW1wb3J0IHsgWFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9wYWdpbmF0aW9uJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRhYmxlUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhUYWJsZUNvbXBvbmVudCBleHRlbmRzIFhUYWJsZVByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGdldCBnZXRTY3JvbGxMZWZ0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Nyb2xsTGVmdCA+IDA7XHJcbiAgfVxyXG4gIGdldCBnZXRTY3JvbGxUb3AoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zY3JvbGxUb3AgPiAwO1xyXG4gIH1cclxuICBnZXQgZ2V0Um93SGVpZ2h0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMucm93SGVpZ2h0ID09IDAgPyAnJyA6IHRoaXMucm93SGVpZ2h0O1xyXG4gIH1cclxuICBnZXQgZ2V0U3RpY2t5VG9wU2Nyb2xsVG9wKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGNhcHRpb24gPyB0aGlzLnRjYXB0aW9uLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IDogMDtcclxuICB9XHJcbiAgZ2V0IGdldFN0aWNreUJvdHRvbVNjcm9sbFRvcCgpIHtcclxuICAgIGxldCB0b3AgPSAwO1xyXG4gICAgaWYgKHRoaXMuZm9vdGVyICYmIHRoaXMudGZvb3QpIHtcclxuICAgICAgdG9wICs9IHRoaXMudGZvb3Q/Lm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0ICsgMTtcclxuICAgIH1cclxuICAgIHJldHVybiB0b3A7XHJcbiAgfVxyXG4gIGdldCBnZXRTdGlja3lUb3BSaWdodEVsZUhlaWdodCgpIHtcclxuICAgIGlmICh0aGlzLnN0aWNreVRvcFJpZ2h0RWxlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnN0aWNreVRvcFJpZ2h0RWxlLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldCBnZXRTdGlja3lCb3R0b21SaWdodEVsZUhlaWdodCgpIHtcclxuICAgIGlmICh0aGlzLnN0aWNreUJvdHRvbVJpZ2h0RWxlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnN0aWNreUJvdHRvbVJpZ2h0RWxlLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHRjYXB0aW9uITogRWxlbWVudFJlZjtcclxuICB0aGVhZHM6IEVsZW1lbnRSZWZbXSA9IFtdO1xyXG4gIHRmb290ITogRWxlbWVudFJlZjtcclxuICB2aXJ0dWFsQm9keSE6IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydDtcclxuICB0aGVhZHNDaGFuZ2U6ICgoKSA9PiB2b2lkKVtdID0gW107XHJcbiAgYm9keUNoYW5nZSE6ICgpID0+IHZvaWQ7XHJcbiAgc2Nyb2xsQ29udGVudEVsZSE6IEhUTUxFbGVtZW50O1xyXG4gIGhhc1Njcm9sbFkgPSBmYWxzZTtcclxuICBzY3JvbGxZV2lkdGggPSAwO1xyXG4gIGhhc1Njcm9sbFggPSBmYWxzZTtcclxuICBzY3JvbGxYSGVpZ2h0ID0gMDtcclxuICBzY3JvbGxYV2lkdGghOiBudW1iZXIgfCBudWxsO1xyXG4gIHNjcm9sbExlZnQgPSAwO1xyXG4gIHNjcm9sbExlZnRNYXggPSBmYWxzZTtcclxuICBzY3JvbGxUb3AgPSAwO1xyXG4gIHJvd0NoZWNrZWQhOiBYVGFibGVDb2x1bW47XHJcbiAgaGVhZENoZWNrYm94TGlzdCE6IFhUYWJsZUNvbHVtbltdO1xyXG4gIHJvd0V4cGFuZCE6IFhUYWJsZUNvbHVtbjtcclxuICBoZWFkRXhwYW5kTGlzdCE6IFhUYWJsZUNvbHVtbltdO1xyXG4gIGRhdGFJc0Z1bmMgPSBmYWxzZTtcclxuICBnZXR0aW5nID0gZmFsc2U7XHJcbiAgdGFibGVEYXRhOiBYVGFibGVSb3dbXSA9IFtdO1xyXG4gIHRyZWVUYWJsZURhdGE6IFhUYWJsZVJvd1tdID0gW107XHJcbiAgY2hlY2tlZFZhbHVlczogeyBbcHJvcDogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XHJcbiAgaW5kZXRlcm1pbmF0ZSA9ICckJGluZGV0ZXJtaW5hdGUnO1xyXG4gIEBWaWV3Q2hpbGQoJ3RhYmxlJykgdGFibGUhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2NhcHRpb24nKSBjYXB0aW9uITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdwYWdpbmF0aW9uJykgcGFnaW5hdGlvbiE6IFhQYWdpbmF0aW9uQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3N0aWNreVRvcFJpZ2h0RWxlJykgc3RpY2t5VG9wUmlnaHRFbGUhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ3N0aWNreUJvdHRvbVJpZ2h0RWxlJykgc3RpY2t5Qm90dG9tUmlnaHRFbGUhOiBFbGVtZW50UmVmO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuICAgIHRoaXMuc2V0Um93Q2hlY2tlZCgpO1xyXG4gICAgdGhpcy5zZXRSb3dFeHBhbmQoKTtcclxuICAgIHRoaXMuc2V0UGFnaW5hdGlvblBvc2l0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhzaW1wbGVzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIGNoZWNrZWRSb3csIGNvbHVtbnMsIGFjdGl2YXRlZFJvdywgbWFudWFsLCBzaG93UGFnaW5hdGlvbiwgZXhwYW5kZWRBbGwsIGNlbGxDb25maWcgfSA9IHNpbXBsZXM7XHJcbiAgICBYSXNDaGFuZ2UoZXhwYW5kZWRBbGwpICYmIHRoaXMuc2V0RXhwYW5kZWRBbGwoKTtcclxuICAgIFhJc0NoYW5nZShkYXRhLCBjaGVja2VkUm93KSAmJiB0aGlzLnNldERhdGEoKTtcclxuICAgIFhJc0NoYW5nZShjb2x1bW5zLCBhY3RpdmF0ZWRSb3csIHNob3dQYWdpbmF0aW9uKSAmJiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICBYSXNDaGFuZ2UobWFudWFsKSAmJiB0aGlzLnNldE1hbnVhbCgpO1xyXG4gICAgWElzQ2hhbmdlKGNlbGxDb25maWcpICYmIHRoaXMuc2V0TWVyZ2UoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy50Y2FwdGlvbiA9IHRoaXMuY2FwdGlvbjtcclxuICB9XHJcblxyXG4gIHNldENsYXNzTWFwKCkge1xyXG4gICAgdGhpcy5jbGFzc01hcCA9IHtcclxuICAgICAgW2Ake1hUYWJsZVByZWZpeH0tcm93LXNpemUtJHt0aGlzLnJvd1NpemV9YF06ICFYSXNFbXB0eSh0aGlzLnJvd1NpemUpXHJcbiAgICB9O1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFnaW5hdGlvblBvc2l0aW9uKCkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgYHgtdGFibGUtJHt0aGlzLnBhZ2luYXRpb25Qb3NpdGlvbn1gKTtcclxuICB9XHJcblxyXG4gIGdldFN0aWNreShjb2x1bW46IFhUYWJsZUNvbHVtbiB8IFhUYWJsZUNlbGwpIHtcclxuICAgIHJldHVybiB0aGlzLmdldFN0aWNreUxlZnQoY29sdW1uKSB8fCB0aGlzLmdldFN0aWNreVJpZ2h0KGNvbHVtbik7XHJcbiAgfVxyXG5cclxuICBnZXRTdGlja3lMZWZ0KGNvbHVtbjogWFRhYmxlQ29sdW1uIHwgWFRhYmxlQ2VsbCkge1xyXG4gICAgcmV0dXJuIE51bWJlcihjb2x1bW4ubGVmdCkgPj0gMDtcclxuICB9XHJcblxyXG4gIGdldFN0aWNreUxlZnRMYXN0KGNvbHVtbjogWFRhYmxlQ29sdW1uIHwgWFRhYmxlQ2VsbCkge1xyXG4gICAgbGV0IGxlZnRzID0gdGhpcy5jb2x1bW5zLmZpbHRlcigoeCkgPT4gTnVtYmVyKHgubGVmdCkgPj0gMCk7XHJcbiAgICBpZiAobGVmdHMubGVuZ3RoID09PSAwKSByZXR1cm4gZmFsc2U7XHJcbiAgICByZXR1cm4gbGVmdHNbbGVmdHMubGVuZ3RoIC0gMV0uaWQgPT09IGNvbHVtbi5pZDtcclxuICB9XHJcblxyXG4gIGdldFN0aWNreVJpZ2h0KGNvbHVtbjogWFRhYmxlQ29sdW1uIHwgWFRhYmxlQ2VsbCkge1xyXG4gICAgcmV0dXJuIE51bWJlcihjb2x1bW4ucmlnaHQpID49IDA7XHJcbiAgfVxyXG5cclxuICBnZXRTdGlja3lSaWdodEZpcnN0KGNvbHVtbjogWFRhYmxlQ29sdW1uIHwgWFRhYmxlQ2VsbCkge1xyXG4gICAgbGV0IHJpZ2h0cyA9IHRoaXMuY29sdW1ucy5maWx0ZXIoKHgpID0+IE51bWJlcih4LnJpZ2h0KSA+PSAwKTtcclxuICAgIGlmIChyaWdodHMubGVuZ3RoID09PSAwKSByZXR1cm4gZmFsc2U7XHJcbiAgICByZXR1cm4gcmlnaHRzWzBdLmlkID09PSBjb2x1bW4uaWQ7XHJcbiAgfVxyXG5cclxuICBoYXNTdGlja3lUb3BSaWdodCgpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuc2hvd0hlYWRlciAmJlxyXG4gICAgICAodGhpcy5oZWFkZXJQb3NpdGlvbiA9PT0gJ3RvcCcgfHwgdGhpcy5oZWFkZXJQb3NpdGlvbiA9PT0gJ3RvcC1ib3R0b20nKSAmJlxyXG4gICAgICB0aGlzLmNvbHVtbnMuc29tZSgoeCkgPT4gTnVtYmVyKHgucmlnaHQpID49IDApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgaGFzU3RpY2t5VG9wUmlnaHRTZWFyY2goKSB7XHJcbiAgICByZXR1cm4gdGhpcy5oZWFkU2VhcmNoVHBsID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaGFzU3RpY2t5Qm90dG9tUmlnaHQoKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLnNob3dIZWFkZXIgJiZcclxuICAgICAgKHRoaXMuaGVhZGVyUG9zaXRpb24gPT09ICdib3R0b20nIHx8IHRoaXMuaGVhZGVyUG9zaXRpb24gPT09ICd0b3AtYm90dG9tJykgJiZcclxuICAgICAgdGhpcy5jb2x1bW5zLnNvbWUoKHgpID0+IE51bWJlcih4LnJpZ2h0KSA+PSAwKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEluZGV4KGluZGV4OiBudW1iZXIpIHtcclxuICAgIHJldHVybiAoTnVtYmVyKHRoaXMuaW5kZXgpIC0gMSkgKiBOdW1iZXIodGhpcy5zaXplKSArIGluZGV4ICsgMTtcclxuICB9XHJcblxyXG4gIHNldERhdGEoKSB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEpKSB7XHJcbiAgICAgIHRoaXMuZGF0YUlzRnVuYyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnRhYmxlRGF0YSA9IHRoaXMuZGF0YTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkKHRoaXMuZGF0YSk7XHJcbiAgICAgIHRoaXMuc2V0SGVhZENoZWNrYm94TGlzdCh0aGlzLmRhdGEpO1xyXG4gICAgICB0aGlzLnNldEV4cGFuZCh0aGlzLmRhdGEpO1xyXG4gICAgICB0aGlzLnNldEhlYWRFeHBhbmRMaXN0KCk7XHJcbiAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmRhdGEgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xyXG4gICAgICB0aGlzLmRhdGFJc0Z1bmMgPSB0cnVlO1xyXG4gICAgICB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldERhdGFCeUZ1bmMoKSB7XHJcbiAgICBpZiAoIXRoaXMubWFudWFsKSByZXR1cm47XHJcbiAgICB0aGlzLmdldHRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgICh0aGlzLmRhdGEgYXMgRnVuY3Rpb24pKHRoaXMuaW5kZXgsIHRoaXMuc2l6ZSwgdGhpcy5xdWVyeSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHg6IFhSZXN1bHRMaXN0PFhUYWJsZVJvdz4pID0+IHtcclxuICAgICAgICBsZXQgW2RhdGEsIHRvdGFsXSA9IFt4Lmxpc3QgYXMgWFRhYmxlUm93W10sIHgudG90YWwgYXMgWE51bWJlcl07XHJcbiAgICAgICAgaWYgKHRoaXMudmlydHVhbEJvZHkpIHtcclxuICAgICAgICAgIHRoaXMudmlydHVhbEJvZHkuc2Nyb2xsVG9JbmRleCgwKTtcclxuICAgICAgICAgIHRoaXMudmlydHVhbEJvZHkuY2hlY2tWaWV3cG9ydFNpemUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5nZXR0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50YWJsZURhdGEgPSBkYXRhO1xyXG4gICAgICAgIHRoaXMuc2V0Q2hlY2tlZChkYXRhKTtcclxuICAgICAgICB0aGlzLnNldEhlYWRDaGVja2JveExpc3QoZGF0YSk7XHJcbiAgICAgICAgdGhpcy5zZXRFeHBhbmQoZGF0YSk7XHJcbiAgICAgICAgdGhpcy5zZXRIZWFkRXhwYW5kTGlzdCgpO1xyXG4gICAgICAgIHRoaXMudG90YWwgPSB0b3RhbDtcclxuICAgICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRNYW51YWwoKSB7XHJcbiAgICBpZiAodGhpcy5kYXRhSXNGdW5jKSB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICB9XHJcblxyXG4gIHNldFJvd0NoZWNrZWQoKSB7XHJcbiAgICB0aGlzLnJvd0NoZWNrZWQgPSB0aGlzLmNvbHVtbnMuZmluZCgoeCkgPT4geC5yb3dDaGVja2VkKSBhcyBYVGFibGVDb2x1bW47XHJcbiAgICB0aGlzLmhlYWRDaGVja2JveExpc3QgPSB0aGlzLmNvbHVtbnMuZmlsdGVyKCh4KSA9PiB4LnR5cGUgPT09ICdjaGVja2JveCcgJiYgeC5oZWFkQ2hlY2tlZCk7XHJcbiAgfVxyXG5cclxuICBzZXRSb3dFeHBhbmQoKSB7XHJcbiAgICB0aGlzLnJvd0V4cGFuZCA9IHRoaXMuY29sdW1ucy5maW5kKCh4KSA9PiB4LnJvd0V4cGFuZCkgYXMgWFRhYmxlQ29sdW1uO1xyXG4gIH1cclxuXHJcbiAgaXNFeHBhbmRDb2x1bW4oY29sdW1uOiBYVGFibGVDb2x1bW4pIHtcclxuICAgIGxldCBleHBhbmRDb2x1bW4gPSB0aGlzLmNvbHVtbnMuZmluZCgoeCkgPT4geC5pZCA9PT0gY29sdW1uLmlkICYmIHgudHlwZSA9PT0gJ2V4cGFuZCcpO1xyXG4gICAgaWYgKGV4cGFuZENvbHVtbikge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNldE1lcmdlKCkge1xyXG4gICAgaWYgKCF0aGlzLmNlbGxDb25maWcpIHJldHVybjtcclxuICAgIGNvbnN0IHNldFJ1bGUgPSAocnVsZT86IFhUYWJsZUNlbGxDb25maWdSdWxlKSA9PiB7XHJcbiAgICAgIGlmICghcnVsZSkgcmV0dXJuO1xyXG4gICAgICBsZXQgZ3JpZFRlbXBsYXRlQ29sdW1ucyA9ICcnLFxyXG4gICAgICAgIGNlbGxzID0gW107XHJcbiAgICAgIGlmICghcnVsZS5ncmlkVGVtcGxhdGVDb2x1bW5zKSB7XHJcbiAgICAgICAgZ3JpZFRlbXBsYXRlQ29sdW1ucyA9IGAke3RoaXMuY29sdW1uc1xyXG4gICAgICAgICAgLm1hcCgoeCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoeC53aWR0aCkgcmV0dXJuIHgud2lkdGg7XHJcbiAgICAgICAgICAgIGlmICh4LmZsZXgpIHJldHVybiBgJHt4LmZsZXh9ZnJgO1xyXG4gICAgICAgICAgICByZXR1cm4gJzFmcic7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLmpvaW4oJyAnKX1gO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghcnVsZS5jZWxscykgcmV0dXJuO1xyXG4gICAgICBjZWxscyA9IHJ1bGUuY2VsbHMubWFwKCh5KSA9PiB7XHJcbiAgICAgICAgY29uc3QgY29sID0gdGhpcy5jb2x1bW5zLmZpbmQoKHopID0+IHouaWQgPT09IHkuaWQpO1xyXG4gICAgICAgIGlmIChjb2wpIHtcclxuICAgICAgICAgIHJldHVybiB7IC4uLmNvbCwgLi4ueSB9IGFzIFhUYWJsZUNlbGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB5O1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHsgZ3JpZFRlbXBsYXRlQ29sdW1ucywgY2VsbHMgfTtcclxuICAgIH07XHJcbiAgICB0aGlzLmNlbGxDb25maWcudGhlYWQgPSBzZXRSdWxlKHRoaXMuY2VsbENvbmZpZy50aGVhZCk7XHJcbiAgICB0aGlzLmNlbGxDb25maWcudGJvZHkgPSBzZXRSdWxlKHRoaXMuY2VsbENvbmZpZy50Ym9keSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2UoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5pbmRleCA9IGluZGV4O1xyXG4gICAgdGhpcy5kYXRhSXNGdW5jICYmIHRoaXMuZ2V0RGF0YUJ5RnVuYygpO1xyXG4gICAgdGhpcy5pbmRleENoYW5nZS5lbWl0KGluZGV4KTtcclxuICAgIHRoaXMucmVzZXRTY3JvbGwoKTtcclxuICB9XHJcblxyXG4gIHJlc2V0U2Nyb2xsKHggPSB0cnVlLCB5ID0gdHJ1ZSkge1xyXG4gICAgaWYgKHRoaXMuaGFzU2Nyb2xsWCAmJiB4KSB0aGlzLnZpcnR1YWxCb2R5Py5zY3JvbGxUbyh7IGxlZnQ6IDAgfSk7XHJcbiAgICBpZiAodGhpcy5oYXNTY3JvbGxZICYmIHkpIHRoaXMudmlydHVhbEJvZHk/LnNjcm9sbFRvKHsgdG9wOiAwIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2hlY2tlZChkYXRhOiBYVGFibGVSb3dbXSkge1xyXG4gICAgbGV0IHJlc3VsdDogWFRhYmxlUm93W10gPSBbXTtcclxuICAgIGlmIChYSXNFbXB0eShkYXRhKSB8fCAhdGhpcy5jaGVja2VkUm93KSByZXR1cm47XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5jaGVja2VkUm93KSB7XHJcbiAgICAgIGNvbnN0IGFyciA9IHRoaXMuY2hlY2tlZFJvd1trZXldO1xyXG4gICAgICBmb3IgKGxldCBpdGVtIG9mIGRhdGEgYXMgYW55W10pIHtcclxuICAgICAgICBpdGVtW2tleV0gPSBhcnIuaW5jbHVkZXMoaXRlbS5pZCk7XHJcbiAgICAgICAgcmVzdWx0ID0gWy4uLnJlc3VsdCwgaXRlbV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMCkgZGF0YSA9IFsuLi5yZXN1bHRdO1xyXG4gIH1cclxuXHJcbiAgc2V0SGVhZENoZWNrYm94TGlzdChkYXRhOiBYVGFibGVSb3dbXSkge1xyXG4gICAgaWYgKFhJc0VtcHR5KGRhdGEpIHx8ICF0aGlzLmhlYWRDaGVja2JveExpc3QpIHJldHVybjtcclxuICAgIGZvciAobGV0IGNvbHVtbiBvZiB0aGlzLmhlYWRDaGVja2JveExpc3QpIHtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkVmFsdWVzKGNvbHVtbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRFeHBhbmQoZGF0YTogWFRhYmxlUm93W10pIHtcclxuICAgIGNvbnN0IGdldENoaWxkcmVuID0gKG5vZGU6IFhUYWJsZVJvdywgbGV2ZWw6IG51bWJlcikgPT4ge1xyXG4gICAgICBub2RlLmxldmVsID0gbGV2ZWw7XHJcbiAgICAgIG5vZGUuZXhwYW5kZWQgPSBCb29sZWFuKHRoaXMuZXhwYW5kZWRBbGwpIHx8IGxldmVsIDw9IHRoaXMuZXhwYW5kZWRMZXZlbCB8fCB0aGlzLmV4cGFuZGVkLmluY2x1ZGVzKG5vZGUuaWQpO1xyXG4gICAgICBpZiAoWElzVW5kZWZpbmVkKG5vZGUuY2hpbGRyZW4pKSBub2RlLmNoaWxkcmVuID0gZGF0YS5maWx0ZXIoKHkpID0+IHkucGlkID09PSBub2RlLmlkKTtcclxuICAgICAgaWYgKFhJc1VuZGVmaW5lZChub2RlLmxlYWYpKSBub2RlLmxlYWYgPSAobm9kZS5jaGlsZHJlbj8ubGVuZ3RoIGFzIG51bWJlcikgPiAwO1xyXG4gICAgICBpZiAobm9kZS5sZWFmKSBub2RlLmNoaWxkcmVuPy5tYXAoKHkpID0+IGdldENoaWxkcmVuKHksIGxldmVsICsgMSkpO1xyXG4gICAgICByZXR1cm4gbm9kZTtcclxuICAgIH07XHJcbiAgICB0aGlzLnRyZWVUYWJsZURhdGEgPSBkYXRhXHJcbiAgICAgIC5maWx0ZXIoKHgpID0+IFhJc0VtcHR5KHgucGlkKSlcclxuICAgICAgLm1hcCgoeCwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoWElzVW5kZWZpbmVkKHguaWQpKSB4LmlkID0gaW5kZXggKyAxO1xyXG4gICAgICAgIHJldHVybiBnZXRDaGlsZHJlbih4LCAwKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRFeHBhbmRlZEFsbCgpIHtcclxuICAgIGlmICghdGhpcy50cmVlVGFibGUgfHwgdGhpcy50cmVlVGFibGVEYXRhPy5sZW5ndGggPT09IDApIHJldHVybjtcclxuICAgIGNvbnN0IHNldENoaWxkcmVuID0gKG5vZGVzOiBYVGFibGVSb3dbXSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkobm9kZXMpKSByZXR1cm47XHJcbiAgICAgIG5vZGVzLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgICB4LmV4cGFuZGVkID0gQm9vbGVhbih0aGlzLmV4cGFuZGVkQWxsKTtcclxuICAgICAgICBzZXRDaGlsZHJlbih4LmNoaWxkcmVuIGFzIFhUYWJsZVJvd1tdKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgc2V0Q2hpbGRyZW4odGhpcy50cmVlVGFibGVEYXRhKTtcclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0SGVhZEV4cGFuZExpc3QoKSB7fVxyXG5cclxuICBjaGVja1NvcnQoc29ydDogWFNvcnRbXSkge1xyXG4gICAgaWYgKCF0aGlzLmRhdGFJc0Z1bmMpIHJldHVybjtcclxuICAgIGlmICh0eXBlb2YgdGhpcy5xdWVyeSA9PT0gJ3VuZGVmaW5lZCcpIHRoaXMucXVlcnkgPSB7fTtcclxuICAgIHRoaXMucXVlcnkuc29ydCA9IHNvcnQ7XHJcbiAgICB0aGlzLnF1ZXJ5Q2hhbmdlLmVtaXQodGhpcy5xdWVyeSk7XHJcbiAgICB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICB9XHJcblxyXG4gIGhlYWRDaGVja2VkKGNoZWNrZWQ6IGJvb2xlYW4sIGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICB0aGlzLnRhYmxlRGF0YS5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIGlmICgheC5kaXNhYmxlZCkge1xyXG4gICAgICAgIHhbY29sdW1uLmlkXSA9IGNoZWNrZWQ7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRDaGVja2VkVmFsdWVzKGNvbHVtbik7XHJcbiAgICB0aGlzLmhlYWRDaGVja2JveENoYW5nZS5lbWl0KHRoaXMuY2hlY2tlZFZhbHVlcyk7XHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGJvZHlDaGVja2VkKF9jaGVja2VkOiBib29sZWFuLCBjb2x1bW46IFhUYWJsZUNvbHVtbikge1xyXG4gICAgdGhpcy5zZXRDaGVja2VkVmFsdWVzKGNvbHVtbik7XHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldENoZWNrZWRWYWx1ZXMoY29sdW1uOiBYVGFibGVDb2x1bW4pIHtcclxuICAgIGNvbnN0IG5vdERpc2FibGVkID0gdGhpcy50YWJsZURhdGEuZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCk7XHJcbiAgICBjb25zdCBjb3VudCA9IG5vdERpc2FibGVkLmxlbmd0aDtcclxuICAgIGNvbnN0IGNoZWNrZWRMZW4gPSBub3REaXNhYmxlZC5maWx0ZXIoKHgpID0+IHhbY29sdW1uLmlkXSkubGVuZ3RoO1xyXG4gICAgdGhpcy5jaGVja2VkVmFsdWVzW2NvbHVtbi5pZF0gPSBjb3VudCA9PT0gY2hlY2tlZExlbiAmJiBjb3VudCAhPT0gMDtcclxuICAgIHRoaXMuY2hlY2tlZFZhbHVlc1tjb2x1bW4uaWQgKyB0aGlzLmluZGV0ZXJtaW5hdGVdID0gY2hlY2tlZExlbiA+IDAgJiYgY2hlY2tlZExlbiA8IGNvdW50O1xyXG4gIH1cclxuXHJcbiAgZGV0ZWN0Q2hhbmdlcygpIHtcclxuICAgIHRoaXMuYm9keUNoYW5nZSAmJiB0aGlzLmJvZHlDaGFuZ2UoKTtcclxuICAgIHRoaXMudGhlYWRzQ2hhbmdlcygpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdGhlYWRzQ2hhbmdlcygpIHtcclxuICAgIGlmICh0aGlzLnRoZWFkc0NoYW5nZSAmJiB0aGlzLnRoZWFkc0NoYW5nZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy50aGVhZHNDaGFuZ2UpIHtcclxuICAgICAgICBpdGVtKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPHRhYmxlXHJcbiAgI3RhYmxlXHJcbiAgY2xhc3M9XCJ4LXRhYmxlXCJcclxuICBbbmdDbGFzc109XCJjbGFzc01hcFwiXHJcbiAgW3gtbG9hZGluZ109XCJsb2FkaW5nICYmIGdldHRpbmdcIlxyXG4gIFtjbGFzcy54LXRhYmxlLXdyYXAtYm9yZGVyLWhpZGRlbl09XCJoaWRkZW5XcmFwQm9yZGVyXCJcclxuICBbY2xhc3MueC10YWJsZS1zY3JvbGwtbGVmdF09XCJnZXRTY3JvbGxMZWZ0XCJcclxuICBbY2xhc3MueC10YWJsZS1zY3JvbGwtbGVmdC1tYXhdPVwic2Nyb2xsTGVmdE1heFwiXHJcbiAgW2NsYXNzLngtdGFibGUtc2Nyb2xsLXRvcF09XCJnZXRTY3JvbGxUb3BcIlxyXG4gIFtjbGFzcy54LXRhYmxlLWhhcy1zY3JvbGwtcmlnaHRdPVwic2Nyb2xsWVdpZHRoXCJcclxuICBbY2xhc3MueC10YWJsZS1oYXMtc2Nyb2xsLWJvdHRvbV09XCJzY3JvbGxYV2lkdGhcIlxyXG4gIFtjbGFzcy54LXRhYmxlLWJvcmRlcmVkXT1cImJvcmRlcmVkXCJcclxuICBbY2xhc3MueC10YWJsZS10ZC1hZGFwdGlvbi1oZWlnaHRdPVwicm93SGVpZ2h0ID09IDBcIlxyXG4gIFtjbGFzcy54LXRhYmxlLWNlbGwtY29uZmlnXT1cImNlbGxDb25maWdcIlxyXG4+XHJcbiAgPGNhcHRpb24gI2NhcHRpb24gY2xhc3M9XCJ4LXRhYmxlLWhlYWRlclwiICpuZ0lmPVwiaGVhZGVyXCIgW3N0eWxlLmhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIiBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIj5cclxuICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJoZWFkZXJcIj57eyBoZWFkZXIgfX08L25nLWNvbnRhaW5lcj5cclxuICA8L2NhcHRpb24+XHJcbiAgPHgtdGFibGUtaGVhZFxyXG4gICAgKm5nSWY9XCJzaG93SGVhZGVyICYmIChoZWFkZXJQb3NpdGlvbiA9PT0gJ3RvcCcgfHwgaGVhZGVyUG9zaXRpb24gPT09ICd0b3AtYm90dG9tJylcIlxyXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICBbcm93SGVpZ2h0XT1cInJvd0hlaWdodFwiXHJcbiAgICBbY29sdW1uVHBsXT1cImhlYWRDb2x1bW5UcGxcIlxyXG4gICAgW3Njcm9sbFlXaWR0aF09XCJzY3JvbGxZV2lkdGhcIlxyXG4gICAgW3Njcm9sbFhXaWR0aF09XCJzY3JvbGxYV2lkdGhcIlxyXG4gICAgW2NlbGxDb25maWddPVwiY2VsbENvbmZpZz8udGhlYWRcIlxyXG4gICAgW3Bvc2l0aW9uXT1cIid0b3AnXCJcclxuICAgIFt0YWJsZV09XCJ0aGlzXCJcclxuICA+PC94LXRhYmxlLWhlYWQ+XHJcbiAgPHgtdGFibGUtYm9keVxyXG4gICAgW2RhdGFdPVwidHJlZVRhYmxlID8gdHJlZVRhYmxlRGF0YSA6IHRhYmxlRGF0YVwiXHJcbiAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICAgIFtpdGVtU2l6ZV09XCJpdGVtU2l6ZVwiXHJcbiAgICBbcm93SGVpZ2h0XT1cInJvd0hlaWdodFwiXHJcbiAgICBbYm9keUhlaWdodF09XCJib2R5SGVpZ2h0XCJcclxuICAgIFtjb2x1bW5UcGxdPVwiYm9keUNvbHVtblRwbFwiXHJcbiAgICBbYWxsb3dTZWxlY3RSb3ddPVwiYWxsb3dTZWxlY3RSb3dcIlxyXG4gICAgW3ZpcnR1YWxTY3JvbGxdPVwidmlydHVhbFNjcm9sbFwiXHJcbiAgICBbbWluQnVmZmVyUHhdPVwibWluQnVmZmVyUHhcIlxyXG4gICAgW21heEJ1ZmZlclB4XT1cIm1heEJ1ZmZlclB4XCJcclxuICAgIFthZGFwdGlvbkhlaWdodF09XCJhZGFwdGlvbkhlaWdodFwiXHJcbiAgICBbZG9jUGVyY2VudF09XCJkb2NQZXJjZW50XCJcclxuICAgIFtzY3JvbGxdPVwic2Nyb2xsXCJcclxuICAgIFtyb3dDbGFzc109XCJyb3dDbGFzc1wiXHJcbiAgICBbY2VsbENvbmZpZ109XCJjZWxsQ29uZmlnPy50Ym9keVwiXHJcbiAgICBbZXhwYW5kZWRBbGxdPVwiZXhwYW5kZWRBbGxcIlxyXG4gICAgW2V4cGFuZFRwbF09XCJleHBhbmRUcGxcIlxyXG4gICAgWyhhY3RpdmF0ZWRSb3cpXT1cImFjdGl2YXRlZFJvd1wiXHJcbiAgICAoYWN0aXZhdGVkUm93Q2hhbmdlKT1cImFjdGl2YXRlZFJvd0NoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgW3RhYmxlXT1cInRoaXNcIlxyXG4gID48L3gtdGFibGUtYm9keT5cclxuICA8eC10YWJsZS1oZWFkXHJcbiAgICAqbmdJZj1cInNob3dIZWFkZXIgJiYgKGhlYWRlclBvc2l0aW9uID09PSAnYm90dG9tJyB8fCBoZWFkZXJQb3NpdGlvbiA9PT0gJ3RvcC1ib3R0b20nKVwiXHJcbiAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICAgIFtyb3dIZWlnaHRdPVwicm93SGVpZ2h0XCJcclxuICAgIFtjb2x1bW5UcGxdPVwiaGVhZENvbHVtblRwbFwiXHJcbiAgICBbc2Nyb2xsWVdpZHRoXT1cInNjcm9sbFlXaWR0aFwiXHJcbiAgICBbc2Nyb2xsWFdpZHRoXT1cInNjcm9sbFhXaWR0aFwiXHJcbiAgICBbY2VsbENvbmZpZ109XCJjZWxsQ29uZmlnPy50aGVhZFwiXHJcbiAgICBbcG9zaXRpb25dPVwiJ2JvdHRvbSdcIlxyXG4gICAgW3RhYmxlXT1cInRoaXNcIlxyXG4gID48L3gtdGFibGUtaGVhZD5cclxuICA8eC10YWJsZS1mb290ICpuZ0lmPVwiZm9vdGVyXCIgW3RhYmxlXT1cInRoaXNcIiBbZm9vdGVyXT1cImZvb3RlclwiIFtyb3dIZWlnaHRdPVwicm93SGVpZ2h0XCI+PC94LXRhYmxlLWZvb3Q+XHJcbiAgPGRpdlxyXG4gICAgKm5nSWY9XCJoYXNTdGlja3lUb3BSaWdodCgpXCJcclxuICAgICNzdGlja3lUb3BSaWdodEVsZVxyXG4gICAgY2xhc3M9XCJ4LXRhYmxlLXN0aWNreS1yaWdodC1zY3JvbGxcIlxyXG4gICAgW2NsYXNzLngtdGFibGUtYm9yZGVyLWJvdHRvbV09XCJoZWFkU2VhcmNoVHBsXCJcclxuICAgIFtzdHlsZS50b3AucHhdPVwiZ2V0U3RpY2t5VG9wU2Nyb2xsVG9wXCJcclxuICAgIFtzdHlsZS53aWR0aC5weF09XCJzY3JvbGxZV2lkdGhcIlxyXG4gICAgW3N0eWxlLmhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICA+PC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgKm5nSWY9XCJoYXNTdGlja3lUb3BSaWdodCgpICYmIGhlYWRTZWFyY2hUcGxcIlxyXG4gICAgY2xhc3M9XCJ4LXRhYmxlLXN0aWNreS1yaWdodC1zY3JvbGxcIlxyXG4gICAgW3N0eWxlLnRvcC5weF09XCJnZXRTdGlja3lUb3BTY3JvbGxUb3AgKyBnZXRTdGlja3lUb3BSaWdodEVsZUhlaWdodFwiXHJcbiAgICBbc3R5bGUud2lkdGgucHhdPVwic2Nyb2xsWVdpZHRoXCJcclxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgPjwvZGl2PlxyXG4gIDxkaXZcclxuICAgICpuZ0lmPVwiaGFzU3RpY2t5Qm90dG9tUmlnaHQoKVwiXHJcbiAgICAjc3RpY2t5Qm90dG9tUmlnaHRFbGVcclxuICAgIGNsYXNzPVwieC10YWJsZS1zdGlja3ktcmlnaHQtc2Nyb2xsXCJcclxuICAgIFtzdHlsZS5ib3R0b20ucHhdPVwiZ2V0U3RpY2t5Qm90dG9tU2Nyb2xsVG9wXCJcclxuICAgIFtzdHlsZS53aWR0aC5weF09XCJzY3JvbGxZV2lkdGhcIlxyXG4gICAgW3N0eWxlLmhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICA+PC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgKm5nSWY9XCJoYXNTdGlja3lCb3R0b21SaWdodCgpICYmIGhlYWRTZWFyY2hUcGxcIlxyXG4gICAgY2xhc3M9XCJ4LXRhYmxlLXN0aWNreS1yaWdodC1zY3JvbGxcIlxyXG4gICAgW2NsYXNzLngtdGFibGUtYm9yZGVyLWJvdHRvbV09XCJoZWFkU2VhcmNoVHBsXCJcclxuICAgIFtzdHlsZS5ib3R0b20ucHhdPVwiZ2V0U3RpY2t5Qm90dG9tU2Nyb2xsVG9wICsgZ2V0U3RpY2t5Qm90dG9tUmlnaHRFbGVIZWlnaHRcIlxyXG4gICAgW3N0eWxlLndpZHRoLnB4XT1cInNjcm9sbFlXaWR0aFwiXHJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gID48L2Rpdj5cclxuPC90YWJsZT5cclxuPHgtcGFnaW5hdGlvblxyXG4gICNwYWdpbmF0aW9uXHJcbiAgKm5nSWY9XCJzaG93UGFnaW5hdGlvbiAmJiBzaXplXCJcclxuICBbKGluZGV4KV09XCJpbmRleFwiXHJcbiAgWyhzaXplKV09XCJzaXplXCJcclxuICBbKHF1ZXJ5KV09XCJxdWVyeVwiXHJcbiAgW3RvdGFsXT1cInRvdGFsXCJcclxuICAoaW5kZXhDaGFuZ2UpPVwiY2hhbmdlKCRldmVudClcIlxyXG4gIFtzaG93RWxsaXBzaXNdPVwic2hvd0VsbGlwc2lzXCJcclxuICBbc2hvd1RvdGFsXT1cInNob3dUb3RhbFwiXHJcbiAgW3NwYWNlXT1cInNwYWNlXCJcclxuICBbaGlkZGVuQm9yZGVyXT1cImhpZGRlblBhZ2luYXRpb25Cb3JkZXIhXCJcclxuPlxyXG48L3gtcGFnaW5hdGlvbj5cclxuIl19
|
|
362
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBNkQsTUFBTSxrQkFBa0IsQ0FBQztBQUMzSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBK0MsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHbEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFTL0IsTUFBTSxPQUFPLGVBQWdCLFNBQVEsY0FBYztJQWlFakQsWUFDUyxRQUFtQixFQUNuQixVQUFtQyxFQUNuQyxHQUFzQixFQUN0QixhQUE2QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUxELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBbEN0QyxXQUFNLEdBQThCLEVBQUUsQ0FBQztRQUd2QyxpQkFBWSxHQUFtQixFQUFFLENBQUM7UUFHbEMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBRWxCLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBS2QsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGNBQVMsR0FBZ0IsRUFBRSxDQUFDO1FBQzVCLGtCQUFhLEdBQWdCLEVBQUUsQ0FBQztRQUNoQyxrQkFBYSxHQUFnQyxFQUFFLENBQUM7UUFDaEQsa0JBQWEsR0FBRyxpQkFBaUIsQ0FBQztRQU0xQixlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQVF6QyxDQUFDO0lBdkVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuRCxDQUFDO0lBQ0QsSUFBSSxxQkFBcUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBQ0QsSUFBSSx3QkFBd0I7UUFDMUIsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1osSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDN0IsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7U0FDbkQ7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFDRCxJQUFJLDBCQUEwQjtRQUM1QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1NBQzFEO2FBQU07WUFDTCxPQUFPLENBQUMsQ0FBQztTQUNWO0lBQ0gsQ0FBQztJQUNELElBQUksNkJBQTZCO1FBQy9CLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzdCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7U0FDN0Q7YUFBTTtZQUNMLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7SUFDSCxDQUFDO0lBeUNELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQzdHLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDaEQsU0FBUyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM3RSxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3RDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxHQUFHO1lBQ2QsQ0FBQyxHQUFHLFlBQVksYUFBYSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQ3RFLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsV0FBVyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBaUM7UUFDekMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFpQztRQUM3QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxNQUFpQztRQUNqRCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM1RCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3JDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFpQztRQUM5QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUFpQztRQUNuRCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM5RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3RDLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLENBQ0wsSUFBSSxDQUFDLFVBQVU7WUFDZixDQUFDLElBQUksQ0FBQyxjQUFjLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssWUFBWSxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUVELHVCQUF1QjtRQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzNDLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsT0FBTyxDQUNMLElBQUksQ0FBQyxVQUFVO1lBQ2YsQ0FBQyxJQUFJLENBQUMsY0FBYyxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLFlBQVksQ0FBQztZQUMxRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDL0MsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtRQUNwQixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjthQUFNLElBQUksSUFBSSxDQUFDLElBQUksWUFBWSxRQUFRLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDdkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUN2RCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQyxTQUFTLENBQUMsQ0FBQyxDQUF5QixFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFtQixFQUFFLENBQUMsQ0FBQyxLQUFnQixDQUFDLENBQUM7WUFDaEUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2FBQ3RDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLFVBQVU7WUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFpQixDQUFDO1FBQ3pFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxVQUFVLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBaUIsQ0FBQztJQUN6RSxDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQW9CO1FBQ2pDLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztRQUN2RixJQUFJLFlBQVksRUFBRTtZQUNoQixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU87UUFDN0IsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUEyQixFQUFFLEVBQUU7WUFDOUMsSUFBSSxDQUFDLElBQUk7Z0JBQUUsT0FBTztZQUNsQixJQUFJLG1CQUFtQixHQUFHLEVBQUUsRUFDMUIsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7Z0JBQzdCLG1CQUFtQixHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU87cUJBQ2xDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNULElBQUksQ0FBQyxDQUFDLEtBQUs7d0JBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDO29CQUM1QixJQUFJLENBQUMsQ0FBQyxJQUFJO3dCQUFFLE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7b0JBQ2pDLE9BQU8sS0FBSyxDQUFDO2dCQUNmLENBQUMsQ0FBQztxQkFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQzthQUNoQjtZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztnQkFBRSxPQUFPO1lBQ3hCLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUMzQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3BELElBQUksR0FBRyxFQUFFO29CQUNQLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBZ0IsQ0FBQztpQkFDdkM7Z0JBQ0QsT0FBTyxDQUFDLENBQUM7WUFDWCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN4QyxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWE7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSTtRQUM1QixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQztZQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEUsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBaUI7UUFDMUIsSUFBSSxNQUFNLEdBQWdCLEVBQUUsQ0FBQztRQUM3QixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUMvQyxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDL0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQyxLQUFLLElBQUksSUFBSSxJQUFJLElBQWEsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNsQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQzthQUM1QjtTQUNGO1FBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxJQUFJLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUFpQjtRQUNuQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0I7WUFBRSxPQUFPO1FBQ3JELEtBQUssSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsSUFBaUI7UUFDekIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFlLEVBQUUsS0FBYSxFQUFFLEVBQUU7WUFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1RyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdkYsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFBRSxJQUFJLENBQUMsSUFBSSxHQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBaUIsR0FBRyxDQUFDLENBQUM7WUFDL0UsSUFBSSxJQUFJLENBQUMsSUFBSTtnQkFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwRSxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSTthQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDOUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ2hCLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU87UUFDaEUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFrQixFQUFFLEVBQUU7WUFDekMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUFFLE9BQU87WUFDNUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNsQixDQUFDLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3ZDLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBdUIsQ0FBQyxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBQ0YsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGlCQUFpQixLQUFJLENBQUM7SUFFdEIsU0FBUyxDQUFDLElBQWE7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUM3QixJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxXQUFXO1lBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFnQixFQUFFLE1BQW9CO1FBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7Z0JBQ2YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUM7YUFDeEI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFpQixFQUFFLE1BQW9CO1FBQ2pELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQW9CO1FBQ25DLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5RCxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO1FBQ2pDLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDbEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLFVBQVUsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsVUFBVSxHQUFHLENBQUMsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzVGLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JELEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDbEMsSUFBSSxFQUFFLENBQUM7YUFDUjtTQUNGO0lBQ0gsQ0FBQzs7K0hBbldVLGVBQWU7bUhBQWYsZUFBZSxta0JDMUI1QixpdklBa0hBOzJGRHhGYSxlQUFlO2tCQVAzQixTQUFTOytCQUNFLEdBQUcsWUFBWSxFQUFFLGlCQUdaLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07c0xBNkQzQixLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBQ0ksT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNLLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFDUyxpQkFBaUI7c0JBQWhELFNBQVM7dUJBQUMsbUJBQW1CO2dCQUNLLG9CQUFvQjtzQkFBdEQsU0FBUzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgT25EZXN0cm95XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhUYWJsZVByZWZpeCwgWFRhYmxlUHJvcGVydHksIFhUYWJsZUNvbHVtbiwgWFRhYmxlUm93LCBYVGFibGVDZWxsLCBYVGFibGVDZWxsQ29uZmlnUnVsZSB9IGZyb20gJy4vdGFibGUucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSXNDaGFuZ2UsIFhJc0VtcHR5LCBYUmVzdWx0TGlzdCwgWE51bWJlciwgWFNvcnQsIFhDb25maWdTZXJ2aWNlLCBYSXNVbmRlZmluZWQgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XHJcbmltcG9ydCB7IFhQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvcGFnaW5hdGlvbic7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hUYWJsZVByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVGFibGVDb21wb25lbnQgZXh0ZW5kcyBYVGFibGVQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBnZXQgZ2V0U2Nyb2xsTGVmdCgpIHtcclxuICAgIHJldHVybiB0aGlzLnNjcm9sbExlZnQgPiAwO1xyXG4gIH1cclxuICBnZXQgZ2V0U2Nyb2xsVG9wKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Nyb2xsVG9wID4gMDtcclxuICB9XHJcbiAgZ2V0IGdldFJvd0hlaWdodCgpIHtcclxuICAgIHJldHVybiB0aGlzLnJvd0hlaWdodCA9PSAwID8gJycgOiB0aGlzLnJvd0hlaWdodDtcclxuICB9XHJcbiAgZ2V0IGdldFN0aWNreVRvcFNjcm9sbFRvcCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRjYXB0aW9uID8gdGhpcy50Y2FwdGlvbi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCA6IDA7XHJcbiAgfVxyXG4gIGdldCBnZXRTdGlja3lCb3R0b21TY3JvbGxUb3AoKSB7XHJcbiAgICBsZXQgdG9wID0gMDtcclxuICAgIGlmICh0aGlzLmZvb3RlciAmJiB0aGlzLnRmb290KSB7XHJcbiAgICAgIHRvcCArPSB0aGlzLnRmb290Py5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCArIDE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdG9wO1xyXG4gIH1cclxuICBnZXQgZ2V0U3RpY2t5VG9wUmlnaHRFbGVIZWlnaHQoKSB7XHJcbiAgICBpZiAodGhpcy5zdGlja3lUb3BSaWdodEVsZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zdGlja3lUb3BSaWdodEVsZS5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgZ2V0U3RpY2t5Qm90dG9tUmlnaHRFbGVIZWlnaHQoKSB7XHJcbiAgICBpZiAodGhpcy5zdGlja3lCb3R0b21SaWdodEVsZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zdGlja3lCb3R0b21SaWdodEVsZS5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG4gIH1cclxuICB0Y2FwdGlvbiE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIHRoZWFkczogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5bXSA9IFtdO1xyXG4gIHRmb290ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgdmlydHVhbEJvZHkhOiBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQ7XHJcbiAgdGhlYWRzQ2hhbmdlOiAoKCkgPT4gdm9pZClbXSA9IFtdO1xyXG4gIGJvZHlDaGFuZ2UhOiAoKSA9PiB2b2lkO1xyXG4gIHNjcm9sbENvbnRlbnRFbGUhOiBIVE1MRWxlbWVudDtcclxuICBoYXNTY3JvbGxZID0gZmFsc2U7XHJcbiAgc2Nyb2xsWVdpZHRoID0gMDtcclxuICBoYXNTY3JvbGxYID0gZmFsc2U7XHJcbiAgc2Nyb2xsWEhlaWdodCA9IDA7XHJcbiAgc2Nyb2xsWFdpZHRoITogbnVtYmVyIHwgbnVsbDtcclxuICBzY3JvbGxMZWZ0ID0gMDtcclxuICBzY3JvbGxMZWZ0TWF4ID0gZmFsc2U7XHJcbiAgc2Nyb2xsVG9wID0gMDtcclxuICByb3dDaGVja2VkITogWFRhYmxlQ29sdW1uO1xyXG4gIGhlYWRDaGVja2JveExpc3QhOiBYVGFibGVDb2x1bW5bXTtcclxuICByb3dFeHBhbmQhOiBYVGFibGVDb2x1bW47XHJcbiAgaGVhZEV4cGFuZExpc3QhOiBYVGFibGVDb2x1bW5bXTtcclxuICBkYXRhSXNGdW5jID0gZmFsc2U7XHJcbiAgZ2V0dGluZyA9IGZhbHNlO1xyXG4gIHRhYmxlRGF0YTogWFRhYmxlUm93W10gPSBbXTtcclxuICB0cmVlVGFibGVEYXRhOiBYVGFibGVSb3dbXSA9IFtdO1xyXG4gIGNoZWNrZWRWYWx1ZXM6IHsgW3Byb3A6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xyXG4gIGluZGV0ZXJtaW5hdGUgPSAnJCRpbmRldGVybWluYXRlJztcclxuICBAVmlld0NoaWxkKCd0YWJsZScpIHRhYmxlITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgnY2FwdGlvbicpIGNhcHRpb24hOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdwYWdpbmF0aW9uJykgcGFnaW5hdGlvbiE6IFhQYWdpbmF0aW9uQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3N0aWNreVRvcFJpZ2h0RWxlJykgc3RpY2t5VG9wUmlnaHRFbGUhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdzdGlja3lCb3R0b21SaWdodEVsZScpIHN0aWNreUJvdHRvbVJpZ2h0RWxlITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuICAgIHRoaXMuc2V0Um93Q2hlY2tlZCgpO1xyXG4gICAgdGhpcy5zZXRSb3dFeHBhbmQoKTtcclxuICAgIHRoaXMuc2V0UGFnaW5hdGlvblBvc2l0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhzaW1wbGVzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIGNoZWNrZWRSb3csIGNvbHVtbnMsIGFjdGl2YXRlZFJvdywgbWFudWFsLCBzaG93UGFnaW5hdGlvbiwgZXhwYW5kZWRBbGwsIGNlbGxDb25maWcgfSA9IHNpbXBsZXM7XHJcbiAgICBYSXNDaGFuZ2UoZXhwYW5kZWRBbGwpICYmIHRoaXMuc2V0RXhwYW5kZWRBbGwoKTtcclxuICAgIFhJc0NoYW5nZShkYXRhLCBjaGVja2VkUm93KSAmJiB0aGlzLnNldERhdGEoKTtcclxuICAgIFhJc0NoYW5nZShjb2x1bW5zLCBhY3RpdmF0ZWRSb3csIHNob3dQYWdpbmF0aW9uKSAmJiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICBYSXNDaGFuZ2UobWFudWFsKSAmJiB0aGlzLnNldE1hbnVhbCgpO1xyXG4gICAgWElzQ2hhbmdlKGNlbGxDb25maWcpICYmIHRoaXMuc2V0TWVyZ2UoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy50Y2FwdGlvbiA9IHRoaXMuY2FwdGlvbjtcclxuICB9XHJcblxyXG4gIHNldENsYXNzTWFwKCkge1xyXG4gICAgdGhpcy5jbGFzc01hcCA9IHtcclxuICAgICAgW2Ake1hUYWJsZVByZWZpeH0tcm93LXNpemUtJHt0aGlzLnJvd1NpemV9YF06ICFYSXNFbXB0eSh0aGlzLnJvd1NpemUpXHJcbiAgICB9O1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFnaW5hdGlvblBvc2l0aW9uKCkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgYHgtdGFibGUtJHt0aGlzLnBhZ2luYXRpb25Qb3NpdGlvbn1gKTtcclxuICB9XHJcblxyXG4gIGdldFN0aWNreShjb2x1bW46IFhUYWJsZUNvbHVtbiB8IFhUYWJsZUNlbGwpIHtcclxuICAgIHJldHVybiB0aGlzLmdldFN0aWNreUxlZnQoY29sdW1uKSB8fCB0aGlzLmdldFN0aWNreVJpZ2h0KGNvbHVtbik7XHJcbiAgfVxyXG5cclxuICBnZXRTdGlja3lMZWZ0KGNvbHVtbjogWFRhYmxlQ29sdW1uIHwgWFRhYmxlQ2VsbCkge1xyXG4gICAgcmV0dXJuIE51bWJlcihjb2x1bW4ubGVmdCkgPj0gMDtcclxuICB9XHJcblxyXG4gIGdldFN0aWNreUxlZnRMYXN0KGNvbHVtbjogWFRhYmxlQ29sdW1uIHwgWFRhYmxlQ2VsbCkge1xyXG4gICAgbGV0IGxlZnRzID0gdGhpcy5jb2x1bW5zLmZpbHRlcigoeCkgPT4gTnVtYmVyKHgubGVmdCkgPj0gMCk7XHJcbiAgICBpZiAobGVmdHMubGVuZ3RoID09PSAwKSByZXR1cm4gZmFsc2U7XHJcbiAgICByZXR1cm4gbGVmdHNbbGVmdHMubGVuZ3RoIC0gMV0uaWQgPT09IGNvbHVtbi5pZDtcclxuICB9XHJcblxyXG4gIGdldFN0aWNreVJpZ2h0KGNvbHVtbjogWFRhYmxlQ29sdW1uIHwgWFRhYmxlQ2VsbCkge1xyXG4gICAgcmV0dXJuIE51bWJlcihjb2x1bW4ucmlnaHQpID49IDA7XHJcbiAgfVxyXG5cclxuICBnZXRTdGlja3lSaWdodEZpcnN0KGNvbHVtbjogWFRhYmxlQ29sdW1uIHwgWFRhYmxlQ2VsbCkge1xyXG4gICAgbGV0IHJpZ2h0cyA9IHRoaXMuY29sdW1ucy5maWx0ZXIoKHgpID0+IE51bWJlcih4LnJpZ2h0KSA+PSAwKTtcclxuICAgIGlmIChyaWdodHMubGVuZ3RoID09PSAwKSByZXR1cm4gZmFsc2U7XHJcbiAgICByZXR1cm4gcmlnaHRzWzBdLmlkID09PSBjb2x1bW4uaWQ7XHJcbiAgfVxyXG5cclxuICBoYXNTdGlja3lUb3BSaWdodCgpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuc2hvd0hlYWRlciAmJlxyXG4gICAgICAodGhpcy5oZWFkZXJQb3NpdGlvbiA9PT0gJ3RvcCcgfHwgdGhpcy5oZWFkZXJQb3NpdGlvbiA9PT0gJ3RvcC1ib3R0b20nKSAmJlxyXG4gICAgICB0aGlzLmNvbHVtbnMuc29tZSgoeCkgPT4gTnVtYmVyKHgucmlnaHQpID49IDApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgaGFzU3RpY2t5VG9wUmlnaHRTZWFyY2goKSB7XHJcbiAgICByZXR1cm4gdGhpcy5oZWFkU2VhcmNoVHBsID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaGFzU3RpY2t5Qm90dG9tUmlnaHQoKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLnNob3dIZWFkZXIgJiZcclxuICAgICAgKHRoaXMuaGVhZGVyUG9zaXRpb24gPT09ICdib3R0b20nIHx8IHRoaXMuaGVhZGVyUG9zaXRpb24gPT09ICd0b3AtYm90dG9tJykgJiZcclxuICAgICAgdGhpcy5jb2x1bW5zLnNvbWUoKHgpID0+IE51bWJlcih4LnJpZ2h0KSA+PSAwKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEluZGV4KGluZGV4OiBudW1iZXIpIHtcclxuICAgIHJldHVybiAoTnVtYmVyKHRoaXMuaW5kZXgpIC0gMSkgKiBOdW1iZXIodGhpcy5zaXplKSArIGluZGV4ICsgMTtcclxuICB9XHJcblxyXG4gIHNldERhdGEoKSB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEpKSB7XHJcbiAgICAgIHRoaXMuZGF0YUlzRnVuYyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnRhYmxlRGF0YSA9IHRoaXMuZGF0YTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkKHRoaXMuZGF0YSk7XHJcbiAgICAgIHRoaXMuc2V0SGVhZENoZWNrYm94TGlzdCh0aGlzLmRhdGEpO1xyXG4gICAgICB0aGlzLnNldEV4cGFuZCh0aGlzLmRhdGEpO1xyXG4gICAgICB0aGlzLnNldEhlYWRFeHBhbmRMaXN0KCk7XHJcbiAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmRhdGEgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xyXG4gICAgICB0aGlzLmRhdGFJc0Z1bmMgPSB0cnVlO1xyXG4gICAgICB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldERhdGFCeUZ1bmMoKSB7XHJcbiAgICBpZiAoIXRoaXMubWFudWFsKSByZXR1cm47XHJcbiAgICB0aGlzLmdldHRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgICh0aGlzLmRhdGEgYXMgRnVuY3Rpb24pKHRoaXMuaW5kZXgsIHRoaXMuc2l6ZSwgdGhpcy5xdWVyeSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHg6IFhSZXN1bHRMaXN0PFhUYWJsZVJvdz4pID0+IHtcclxuICAgICAgICBsZXQgW2RhdGEsIHRvdGFsXSA9IFt4Lmxpc3QgYXMgWFRhYmxlUm93W10sIHgudG90YWwgYXMgWE51bWJlcl07XHJcbiAgICAgICAgaWYgKHRoaXMudmlydHVhbEJvZHkpIHtcclxuICAgICAgICAgIHRoaXMudmlydHVhbEJvZHkuc2Nyb2xsVG9JbmRleCgwKTtcclxuICAgICAgICAgIHRoaXMudmlydHVhbEJvZHkuY2hlY2tWaWV3cG9ydFNpemUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5nZXR0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50YWJsZURhdGEgPSBkYXRhO1xyXG4gICAgICAgIHRoaXMuc2V0Q2hlY2tlZChkYXRhKTtcclxuICAgICAgICB0aGlzLnNldEhlYWRDaGVja2JveExpc3QoZGF0YSk7XHJcbiAgICAgICAgdGhpcy5zZXRFeHBhbmQoZGF0YSk7XHJcbiAgICAgICAgdGhpcy5zZXRIZWFkRXhwYW5kTGlzdCgpO1xyXG4gICAgICAgIHRoaXMudG90YWwgPSB0b3RhbDtcclxuICAgICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRNYW51YWwoKSB7XHJcbiAgICBpZiAodGhpcy5kYXRhSXNGdW5jKSB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICB9XHJcblxyXG4gIHNldFJvd0NoZWNrZWQoKSB7XHJcbiAgICB0aGlzLnJvd0NoZWNrZWQgPSB0aGlzLmNvbHVtbnMuZmluZCgoeCkgPT4geC5yb3dDaGVja2VkKSBhcyBYVGFibGVDb2x1bW47XHJcbiAgICB0aGlzLmhlYWRDaGVja2JveExpc3QgPSB0aGlzLmNvbHVtbnMuZmlsdGVyKCh4KSA9PiB4LnR5cGUgPT09ICdjaGVja2JveCcgJiYgeC5oZWFkQ2hlY2tlZCk7XHJcbiAgfVxyXG5cclxuICBzZXRSb3dFeHBhbmQoKSB7XHJcbiAgICB0aGlzLnJvd0V4cGFuZCA9IHRoaXMuY29sdW1ucy5maW5kKCh4KSA9PiB4LnJvd0V4cGFuZCkgYXMgWFRhYmxlQ29sdW1uO1xyXG4gIH1cclxuXHJcbiAgaXNFeHBhbmRDb2x1bW4oY29sdW1uOiBYVGFibGVDb2x1bW4pIHtcclxuICAgIGxldCBleHBhbmRDb2x1bW4gPSB0aGlzLmNvbHVtbnMuZmluZCgoeCkgPT4geC5pZCA9PT0gY29sdW1uLmlkICYmIHgudHlwZSA9PT0gJ2V4cGFuZCcpO1xyXG4gICAgaWYgKGV4cGFuZENvbHVtbikge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNldE1lcmdlKCkge1xyXG4gICAgaWYgKCF0aGlzLmNlbGxDb25maWcpIHJldHVybjtcclxuICAgIGNvbnN0IHNldFJ1bGUgPSAocnVsZT86IFhUYWJsZUNlbGxDb25maWdSdWxlKSA9PiB7XHJcbiAgICAgIGlmICghcnVsZSkgcmV0dXJuO1xyXG4gICAgICBsZXQgZ3JpZFRlbXBsYXRlQ29sdW1ucyA9ICcnLFxyXG4gICAgICAgIGNlbGxzID0gW107XHJcbiAgICAgIGlmICghcnVsZS5ncmlkVGVtcGxhdGVDb2x1bW5zKSB7XHJcbiAgICAgICAgZ3JpZFRlbXBsYXRlQ29sdW1ucyA9IGAke3RoaXMuY29sdW1uc1xyXG4gICAgICAgICAgLm1hcCgoeCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoeC53aWR0aCkgcmV0dXJuIHgud2lkdGg7XHJcbiAgICAgICAgICAgIGlmICh4LmZsZXgpIHJldHVybiBgJHt4LmZsZXh9ZnJgO1xyXG4gICAgICAgICAgICByZXR1cm4gJzFmcic7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLmpvaW4oJyAnKX1gO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghcnVsZS5jZWxscykgcmV0dXJuO1xyXG4gICAgICBjZWxscyA9IHJ1bGUuY2VsbHMubWFwKCh5KSA9PiB7XHJcbiAgICAgICAgY29uc3QgY29sID0gdGhpcy5jb2x1bW5zLmZpbmQoKHopID0+IHouaWQgPT09IHkuaWQpO1xyXG4gICAgICAgIGlmIChjb2wpIHtcclxuICAgICAgICAgIHJldHVybiB7IC4uLmNvbCwgLi4ueSB9IGFzIFhUYWJsZUNlbGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB5O1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHsgZ3JpZFRlbXBsYXRlQ29sdW1ucywgY2VsbHMgfTtcclxuICAgIH07XHJcbiAgICB0aGlzLmNlbGxDb25maWcudGhlYWQgPSBzZXRSdWxlKHRoaXMuY2VsbENvbmZpZy50aGVhZCk7XHJcbiAgICB0aGlzLmNlbGxDb25maWcudGJvZHkgPSBzZXRSdWxlKHRoaXMuY2VsbENvbmZpZy50Ym9keSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2UoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5pbmRleCA9IGluZGV4O1xyXG4gICAgdGhpcy5kYXRhSXNGdW5jICYmIHRoaXMuZ2V0RGF0YUJ5RnVuYygpO1xyXG4gICAgdGhpcy5pbmRleENoYW5nZS5lbWl0KGluZGV4KTtcclxuICAgIHRoaXMucmVzZXRTY3JvbGwoKTtcclxuICB9XHJcblxyXG4gIHJlc2V0U2Nyb2xsKHggPSB0cnVlLCB5ID0gdHJ1ZSkge1xyXG4gICAgaWYgKHRoaXMuaGFzU2Nyb2xsWCAmJiB4KSB0aGlzLnZpcnR1YWxCb2R5Py5zY3JvbGxUbyh7IGxlZnQ6IDAgfSk7XHJcbiAgICBpZiAodGhpcy5oYXNTY3JvbGxZICYmIHkpIHRoaXMudmlydHVhbEJvZHk/LnNjcm9sbFRvKHsgdG9wOiAwIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2hlY2tlZChkYXRhOiBYVGFibGVSb3dbXSkge1xyXG4gICAgbGV0IHJlc3VsdDogWFRhYmxlUm93W10gPSBbXTtcclxuICAgIGlmIChYSXNFbXB0eShkYXRhKSB8fCAhdGhpcy5jaGVja2VkUm93KSByZXR1cm47XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5jaGVja2VkUm93KSB7XHJcbiAgICAgIGNvbnN0IGFyciA9IHRoaXMuY2hlY2tlZFJvd1trZXldO1xyXG4gICAgICBmb3IgKGxldCBpdGVtIG9mIGRhdGEgYXMgYW55W10pIHtcclxuICAgICAgICBpdGVtW2tleV0gPSBhcnIuaW5jbHVkZXMoaXRlbS5pZCk7XHJcbiAgICAgICAgcmVzdWx0ID0gWy4uLnJlc3VsdCwgaXRlbV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMCkgZGF0YSA9IFsuLi5yZXN1bHRdO1xyXG4gIH1cclxuXHJcbiAgc2V0SGVhZENoZWNrYm94TGlzdChkYXRhOiBYVGFibGVSb3dbXSkge1xyXG4gICAgaWYgKFhJc0VtcHR5KGRhdGEpIHx8ICF0aGlzLmhlYWRDaGVja2JveExpc3QpIHJldHVybjtcclxuICAgIGZvciAobGV0IGNvbHVtbiBvZiB0aGlzLmhlYWRDaGVja2JveExpc3QpIHtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkVmFsdWVzKGNvbHVtbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRFeHBhbmQoZGF0YTogWFRhYmxlUm93W10pIHtcclxuICAgIGNvbnN0IGdldENoaWxkcmVuID0gKG5vZGU6IFhUYWJsZVJvdywgbGV2ZWw6IG51bWJlcikgPT4ge1xyXG4gICAgICBub2RlLmxldmVsID0gbGV2ZWw7XHJcbiAgICAgIG5vZGUuZXhwYW5kZWQgPSBCb29sZWFuKHRoaXMuZXhwYW5kZWRBbGwpIHx8IGxldmVsIDw9IHRoaXMuZXhwYW5kZWRMZXZlbCB8fCB0aGlzLmV4cGFuZGVkLmluY2x1ZGVzKG5vZGUuaWQpO1xyXG4gICAgICBpZiAoWElzVW5kZWZpbmVkKG5vZGUuY2hpbGRyZW4pKSBub2RlLmNoaWxkcmVuID0gZGF0YS5maWx0ZXIoKHkpID0+IHkucGlkID09PSBub2RlLmlkKTtcclxuICAgICAgaWYgKFhJc1VuZGVmaW5lZChub2RlLmxlYWYpKSBub2RlLmxlYWYgPSAobm9kZS5jaGlsZHJlbj8ubGVuZ3RoIGFzIG51bWJlcikgPiAwO1xyXG4gICAgICBpZiAobm9kZS5sZWFmKSBub2RlLmNoaWxkcmVuPy5tYXAoKHkpID0+IGdldENoaWxkcmVuKHksIGxldmVsICsgMSkpO1xyXG4gICAgICByZXR1cm4gbm9kZTtcclxuICAgIH07XHJcbiAgICB0aGlzLnRyZWVUYWJsZURhdGEgPSBkYXRhXHJcbiAgICAgIC5maWx0ZXIoKHgpID0+IFhJc0VtcHR5KHgucGlkKSlcclxuICAgICAgLm1hcCgoeCwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoWElzVW5kZWZpbmVkKHguaWQpKSB4LmlkID0gaW5kZXggKyAxO1xyXG4gICAgICAgIHJldHVybiBnZXRDaGlsZHJlbih4LCAwKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRFeHBhbmRlZEFsbCgpIHtcclxuICAgIGlmICghdGhpcy50cmVlVGFibGUgfHwgdGhpcy50cmVlVGFibGVEYXRhPy5sZW5ndGggPT09IDApIHJldHVybjtcclxuICAgIGNvbnN0IHNldENoaWxkcmVuID0gKG5vZGVzOiBYVGFibGVSb3dbXSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkobm9kZXMpKSByZXR1cm47XHJcbiAgICAgIG5vZGVzLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgICB4LmV4cGFuZGVkID0gQm9vbGVhbih0aGlzLmV4cGFuZGVkQWxsKTtcclxuICAgICAgICBzZXRDaGlsZHJlbih4LmNoaWxkcmVuIGFzIFhUYWJsZVJvd1tdKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgc2V0Q2hpbGRyZW4odGhpcy50cmVlVGFibGVEYXRhKTtcclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0SGVhZEV4cGFuZExpc3QoKSB7fVxyXG5cclxuICBjaGVja1NvcnQoc29ydDogWFNvcnRbXSkge1xyXG4gICAgaWYgKCF0aGlzLmRhdGFJc0Z1bmMpIHJldHVybjtcclxuICAgIGlmICh0eXBlb2YgdGhpcy5xdWVyeSA9PT0gJ3VuZGVmaW5lZCcpIHRoaXMucXVlcnkgPSB7fTtcclxuICAgIHRoaXMucXVlcnkuc29ydCA9IHNvcnQ7XHJcbiAgICB0aGlzLnF1ZXJ5Q2hhbmdlLmVtaXQodGhpcy5xdWVyeSk7XHJcbiAgICB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICB9XHJcblxyXG4gIGhlYWRDaGVja2VkKGNoZWNrZWQ6IGJvb2xlYW4sIGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICB0aGlzLnRhYmxlRGF0YS5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIGlmICgheC5kaXNhYmxlZCkge1xyXG4gICAgICAgIHhbY29sdW1uLmlkXSA9IGNoZWNrZWQ7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRDaGVja2VkVmFsdWVzKGNvbHVtbik7XHJcbiAgICB0aGlzLmhlYWRDaGVja2JveENoYW5nZS5lbWl0KHRoaXMuY2hlY2tlZFZhbHVlcyk7XHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGJvZHlDaGVja2VkKF9jaGVja2VkOiBib29sZWFuLCBjb2x1bW46IFhUYWJsZUNvbHVtbikge1xyXG4gICAgdGhpcy5zZXRDaGVja2VkVmFsdWVzKGNvbHVtbik7XHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldENoZWNrZWRWYWx1ZXMoY29sdW1uOiBYVGFibGVDb2x1bW4pIHtcclxuICAgIGNvbnN0IG5vdERpc2FibGVkID0gdGhpcy50YWJsZURhdGEuZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCk7XHJcbiAgICBjb25zdCBjb3VudCA9IG5vdERpc2FibGVkLmxlbmd0aDtcclxuICAgIGNvbnN0IGNoZWNrZWRMZW4gPSBub3REaXNhYmxlZC5maWx0ZXIoKHgpID0+IHhbY29sdW1uLmlkXSkubGVuZ3RoO1xyXG4gICAgdGhpcy5jaGVja2VkVmFsdWVzW2NvbHVtbi5pZF0gPSBjb3VudCA9PT0gY2hlY2tlZExlbiAmJiBjb3VudCAhPT0gMDtcclxuICAgIHRoaXMuY2hlY2tlZFZhbHVlc1tjb2x1bW4uaWQgKyB0aGlzLmluZGV0ZXJtaW5hdGVdID0gY2hlY2tlZExlbiA+IDAgJiYgY2hlY2tlZExlbiA8IGNvdW50O1xyXG4gIH1cclxuXHJcbiAgZGV0ZWN0Q2hhbmdlcygpIHtcclxuICAgIHRoaXMuYm9keUNoYW5nZSAmJiB0aGlzLmJvZHlDaGFuZ2UoKTtcclxuICAgIHRoaXMudGhlYWRzQ2hhbmdlcygpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdGhlYWRzQ2hhbmdlcygpIHtcclxuICAgIGlmICh0aGlzLnRoZWFkc0NoYW5nZSAmJiB0aGlzLnRoZWFkc0NoYW5nZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy50aGVhZHNDaGFuZ2UpIHtcclxuICAgICAgICBpdGVtKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPHRhYmxlXHJcbiAgI3RhYmxlXHJcbiAgY2xhc3M9XCJ4LXRhYmxlXCJcclxuICBbbmdDbGFzc109XCJjbGFzc01hcFwiXHJcbiAgW3gtbG9hZGluZ109XCJsb2FkaW5nICYmIGdldHRpbmdcIlxyXG4gIFtjbGFzcy54LXRhYmxlLXdyYXAtYm9yZGVyLWhpZGRlbl09XCJoaWRkZW5XcmFwQm9yZGVyXCJcclxuICBbY2xhc3MueC10YWJsZS1zY3JvbGwtbGVmdF09XCJnZXRTY3JvbGxMZWZ0XCJcclxuICBbY2xhc3MueC10YWJsZS1zY3JvbGwtbGVmdC1tYXhdPVwic2Nyb2xsTGVmdE1heFwiXHJcbiAgW2NsYXNzLngtdGFibGUtc2Nyb2xsLXRvcF09XCJnZXRTY3JvbGxUb3BcIlxyXG4gIFtjbGFzcy54LXRhYmxlLWhhcy1zY3JvbGwtcmlnaHRdPVwic2Nyb2xsWVdpZHRoXCJcclxuICBbY2xhc3MueC10YWJsZS1oYXMtc2Nyb2xsLWJvdHRvbV09XCJzY3JvbGxYV2lkdGhcIlxyXG4gIFtjbGFzcy54LXRhYmxlLWJvcmRlcmVkXT1cImJvcmRlcmVkXCJcclxuICBbY2xhc3MueC10YWJsZS10ZC1hZGFwdGlvbi1oZWlnaHRdPVwicm93SGVpZ2h0ID09IDBcIlxyXG4gIFtjbGFzcy54LXRhYmxlLWNlbGwtY29uZmlnXT1cImNlbGxDb25maWdcIlxyXG4+XHJcbiAgPGNhcHRpb24gI2NhcHRpb24gY2xhc3M9XCJ4LXRhYmxlLWhlYWRlclwiICpuZ0lmPVwiaGVhZGVyXCIgW3N0eWxlLmhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIiBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIj5cclxuICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJoZWFkZXJcIj57eyBoZWFkZXIgfX08L25nLWNvbnRhaW5lcj5cclxuICA8L2NhcHRpb24+XHJcbiAgPHgtdGFibGUtaGVhZFxyXG4gICAgKm5nSWY9XCJzaG93SGVhZGVyICYmIChoZWFkZXJQb3NpdGlvbiA9PT0gJ3RvcCcgfHwgaGVhZGVyUG9zaXRpb24gPT09ICd0b3AtYm90dG9tJylcIlxyXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICBbcm93SGVpZ2h0XT1cInJvd0hlaWdodFwiXHJcbiAgICBbY29sdW1uVHBsXT1cImhlYWRDb2x1bW5UcGxcIlxyXG4gICAgW3Njcm9sbFlXaWR0aF09XCJzY3JvbGxZV2lkdGhcIlxyXG4gICAgW3Njcm9sbFhXaWR0aF09XCJzY3JvbGxYV2lkdGhcIlxyXG4gICAgW2NlbGxDb25maWddPVwiY2VsbENvbmZpZz8udGhlYWRcIlxyXG4gICAgW3Bvc2l0aW9uXT1cIid0b3AnXCJcclxuICAgIFt0YWJsZV09XCJ0aGlzXCJcclxuICA+PC94LXRhYmxlLWhlYWQ+XHJcbiAgPHgtdGFibGUtYm9keVxyXG4gICAgW2RhdGFdPVwidHJlZVRhYmxlID8gdHJlZVRhYmxlRGF0YSA6IHRhYmxlRGF0YVwiXHJcbiAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICAgIFtpdGVtU2l6ZV09XCJpdGVtU2l6ZVwiXHJcbiAgICBbcm93SGVpZ2h0XT1cInJvd0hlaWdodFwiXHJcbiAgICBbYm9keUhlaWdodF09XCJib2R5SGVpZ2h0XCJcclxuICAgIFtjb2x1bW5UcGxdPVwiYm9keUNvbHVtblRwbFwiXHJcbiAgICBbYWxsb3dTZWxlY3RSb3ddPVwiYWxsb3dTZWxlY3RSb3dcIlxyXG4gICAgW3ZpcnR1YWxTY3JvbGxdPVwidmlydHVhbFNjcm9sbFwiXHJcbiAgICBbbWluQnVmZmVyUHhdPVwibWluQnVmZmVyUHhcIlxyXG4gICAgW21heEJ1ZmZlclB4XT1cIm1heEJ1ZmZlclB4XCJcclxuICAgIFthZGFwdGlvbkhlaWdodF09XCJhZGFwdGlvbkhlaWdodFwiXHJcbiAgICBbZG9jUGVyY2VudF09XCJkb2NQZXJjZW50XCJcclxuICAgIFtzY3JvbGxdPVwic2Nyb2xsXCJcclxuICAgIFtyb3dDbGFzc109XCJyb3dDbGFzc1wiXHJcbiAgICBbY2VsbENvbmZpZ109XCJjZWxsQ29uZmlnPy50Ym9keVwiXHJcbiAgICBbZXhwYW5kZWRBbGxdPVwiZXhwYW5kZWRBbGxcIlxyXG4gICAgW2V4cGFuZFRwbF09XCJleHBhbmRUcGxcIlxyXG4gICAgWyhhY3RpdmF0ZWRSb3cpXT1cImFjdGl2YXRlZFJvd1wiXHJcbiAgICAoYWN0aXZhdGVkUm93Q2hhbmdlKT1cImFjdGl2YXRlZFJvd0NoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgW3RhYmxlXT1cInRoaXNcIlxyXG4gID48L3gtdGFibGUtYm9keT5cclxuICA8eC10YWJsZS1oZWFkXHJcbiAgICAqbmdJZj1cInNob3dIZWFkZXIgJiYgKGhlYWRlclBvc2l0aW9uID09PSAnYm90dG9tJyB8fCBoZWFkZXJQb3NpdGlvbiA9PT0gJ3RvcC1ib3R0b20nKVwiXHJcbiAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICAgIFtyb3dIZWlnaHRdPVwicm93SGVpZ2h0XCJcclxuICAgIFtjb2x1bW5UcGxdPVwiaGVhZENvbHVtblRwbFwiXHJcbiAgICBbc2Nyb2xsWVdpZHRoXT1cInNjcm9sbFlXaWR0aFwiXHJcbiAgICBbc2Nyb2xsWFdpZHRoXT1cInNjcm9sbFhXaWR0aFwiXHJcbiAgICBbY2VsbENvbmZpZ109XCJjZWxsQ29uZmlnPy50aGVhZFwiXHJcbiAgICBbcG9zaXRpb25dPVwiJ2JvdHRvbSdcIlxyXG4gICAgW3RhYmxlXT1cInRoaXNcIlxyXG4gID48L3gtdGFibGUtaGVhZD5cclxuICA8eC10YWJsZS1mb290ICpuZ0lmPVwiZm9vdGVyXCIgW3RhYmxlXT1cInRoaXNcIiBbZm9vdGVyXT1cImZvb3RlclwiIFtyb3dIZWlnaHRdPVwicm93SGVpZ2h0XCI+PC94LXRhYmxlLWZvb3Q+XHJcbiAgPGRpdlxyXG4gICAgKm5nSWY9XCJoYXNTdGlja3lUb3BSaWdodCgpXCJcclxuICAgICNzdGlja3lUb3BSaWdodEVsZVxyXG4gICAgY2xhc3M9XCJ4LXRhYmxlLXN0aWNreS1yaWdodC1zY3JvbGxcIlxyXG4gICAgW2NsYXNzLngtdGFibGUtYm9yZGVyLWJvdHRvbV09XCJoZWFkU2VhcmNoVHBsXCJcclxuICAgIFtzdHlsZS50b3AucHhdPVwiZ2V0U3RpY2t5VG9wU2Nyb2xsVG9wXCJcclxuICAgIFtzdHlsZS53aWR0aC5weF09XCJzY3JvbGxZV2lkdGhcIlxyXG4gICAgW3N0eWxlLmhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICA+PC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgKm5nSWY9XCJoYXNTdGlja3lUb3BSaWdodCgpICYmIGhlYWRTZWFyY2hUcGxcIlxyXG4gICAgY2xhc3M9XCJ4LXRhYmxlLXN0aWNreS1yaWdodC1zY3JvbGxcIlxyXG4gICAgW3N0eWxlLnRvcC5weF09XCJnZXRTdGlja3lUb3BTY3JvbGxUb3AgKyBnZXRTdGlja3lUb3BSaWdodEVsZUhlaWdodFwiXHJcbiAgICBbc3R5bGUud2lkdGgucHhdPVwic2Nyb2xsWVdpZHRoXCJcclxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgPjwvZGl2PlxyXG4gIDxkaXZcclxuICAgICpuZ0lmPVwiaGFzU3RpY2t5Qm90dG9tUmlnaHQoKVwiXHJcbiAgICAjc3RpY2t5Qm90dG9tUmlnaHRFbGVcclxuICAgIGNsYXNzPVwieC10YWJsZS1zdGlja3ktcmlnaHQtc2Nyb2xsXCJcclxuICAgIFtzdHlsZS5ib3R0b20ucHhdPVwiZ2V0U3RpY2t5Qm90dG9tU2Nyb2xsVG9wXCJcclxuICAgIFtzdHlsZS53aWR0aC5weF09XCJzY3JvbGxZV2lkdGhcIlxyXG4gICAgW3N0eWxlLmhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICA+PC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgKm5nSWY9XCJoYXNTdGlja3lCb3R0b21SaWdodCgpICYmIGhlYWRTZWFyY2hUcGxcIlxyXG4gICAgY2xhc3M9XCJ4LXRhYmxlLXN0aWNreS1yaWdodC1zY3JvbGxcIlxyXG4gICAgW2NsYXNzLngtdGFibGUtYm9yZGVyLWJvdHRvbV09XCJoZWFkU2VhcmNoVHBsXCJcclxuICAgIFtzdHlsZS5ib3R0b20ucHhdPVwiZ2V0U3RpY2t5Qm90dG9tU2Nyb2xsVG9wICsgZ2V0U3RpY2t5Qm90dG9tUmlnaHRFbGVIZWlnaHRcIlxyXG4gICAgW3N0eWxlLndpZHRoLnB4XT1cInNjcm9sbFlXaWR0aFwiXHJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gID48L2Rpdj5cclxuPC90YWJsZT5cclxuPHgtcGFnaW5hdGlvblxyXG4gICNwYWdpbmF0aW9uXHJcbiAgKm5nSWY9XCJzaG93UGFnaW5hdGlvbiAmJiBzaXplXCJcclxuICBbKGluZGV4KV09XCJpbmRleFwiXHJcbiAgWyhzaXplKV09XCJzaXplXCJcclxuICBbKHF1ZXJ5KV09XCJxdWVyeVwiXHJcbiAgW3RvdGFsXT1cInRvdGFsXCJcclxuICAoaW5kZXhDaGFuZ2UpPVwiY2hhbmdlKCRldmVudClcIlxyXG4gIFtzaG93RWxsaXBzaXNdPVwic2hvd0VsbGlwc2lzXCJcclxuICBbc2hvd1RvdGFsXT1cInNob3dUb3RhbFwiXHJcbiAgW3NwYWNlXT1cInNwYWNlXCJcclxuICBbaGlkZGVuQm9yZGVyXT1cImhpZGRlblBhZ2luYXRpb25Cb3JkZXIhXCJcclxuPlxyXG48L3gtcGFnaW5hdGlvbj5cclxuIl19
|