vcomply-workflow-engine 2.9.67 → 2.9.68
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/bundles/vcomply-workflow-engine.umd.js +37 -19
- package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
- package/esm2015/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.js +20 -4
- package/esm2015/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.ngfactory.js +83 -54
- package/esm2015/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.ngsummary.json +1 -1
- package/esm2015/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.js +2 -2
- package/esm2015/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.ngfactory.js +9 -9
- package/esm2015/lib/sharedComponents/format-and-evidence/format-and-evidence.component.js +2 -2
- package/esm2015/lib/sharedComponents/format-and-evidence/format-and-evidence.component.ngfactory.js +8 -8
- package/esm2015/lib/sharedComponents/select-approvers/select-approvers.component.js +2 -1
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.js +2 -2
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngfactory.js +80 -65
- package/esm2015/lib/workflow-policy/workflow-policy.component.js +14 -13
- package/esm2015/lib/workflow-policy/workflow-policy.component.ngfactory.js +151 -151
- package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.js +2 -2
- package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.ngfactory.js +4 -4
- package/fesm2015/vcomply-workflow-engine.js +37 -19
- package/fesm2015/vcomply-workflow-engine.js.map +1 -1
- package/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.d.ts +2 -0
- package/package.json +1 -1
- package/vcomply-workflow-engine.metadata.json +1 -1
package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.js
CHANGED
|
@@ -292,7 +292,7 @@ export class UserGroupListComponent {
|
|
|
292
292
|
UserGroupListComponent.decorators = [
|
|
293
293
|
{ type: Component, args: [{
|
|
294
294
|
selector: 'user-group-list',
|
|
295
|
-
template: "<div class=\"user-group-list\" [class.animate]=\"animation\">\r\n <div class=\"user-group-list-head\">\r\n <h3 class=\"user-group-list-title\">{{panelTitle}}</h3>\r\n </div>\r\n <div class=\"user-group-list-body\">\r\n <div class=\"user-group-list-body-inner\">\r\n <app-loader-inline *ngIf=\"loading\"></app-loader-inline>\r\n <div class=\"user-group-list-tab vx-d-flex vx-align-center vx-mb-2\" *ngIf=\"groupEnabled\">\r\n <button (click)=\"switchTab('USER')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\" [class.active]=\"currentTab === 'USER'\">USERS\r\n <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{searchKey?.length && currentTab === 'USER' ? (usersList| filter : searchKey)?.length : usersList?.length || userListInfo?.total_items}}</span></button>\r\n <button (click)=\"switchTab('GROUP')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\" [class.active]=\"currentTab === 'GROUP'\">{{featureflag ? 'USER GROUPS':'GROUPS'}} <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{searchKey?.length && currentTab === 'GROUP' ? (groupsList|search:searchKey:'group_name')?.length :groupsList?.length || groupListInfo?.total_items}}</span></button>\r\n </div>\r\n\r\n <div class=\"search-block vx-mb-2\">\r\n <i class=\"icons\"></i>\r\n <input *ngIf=\"!featureflag\" [(ngModel)]=\"searchKey\" type=\"text\" placeholder=\"{{currentTab === 'USER' ? 'Search User' :'Search Group'}}\" />\r\n <input *ngIf=\"featureflag\" [(ngModel)]=\"searchKey\" type=\"text\" placeholder=\"{{currentTab === 'USER' ? 'Search User' :'Search User Group'}}\" />\r\n </div>\r\n\r\n <ng-container *ngIf=\"currentTab === 'USER' && !loading\">\r\n <ng-container *ngIf=\"(usersList|filter:searchKey) as users\">\r\n <vui-pagination *ngIf=\"userListInfo?.total_pages > 1 && usersList?.length !== userListInfo?.total_items\" [currentPage]=\"userCurrentPage\" [totalPage]=\"userListInfo?.total_pages\" (pageChanged)=\"userPageChange($event)\"></vui-pagination>\r\n <div class=\"user-group-list-mid\" [class.with-pagination]=\"isPagination\">\r\n <ng-container *ngIf=\"users?.length > 0;else nouser\">\r\n <div class=\"user-list-select vx-mb-2\">\r\n <vui-checkbox *ngIf=\"!singleSelect\" #user [checked]=\"allUserSelected\" [disabled]=\"allUserSelectedDisabled\" (change)=\"selectAllUser($event)\">\r\n <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt vx-tt-none\">{{!user?.checked ? 'Select All' : 'Deselect All'}}</div>\r\n </vui-checkbox>\r\n </div>\r\n <div class=\"user-list-item\">\r\n <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\r\n <ng-container *ngFor=\"let user of users \" >\r\n <li class=\"vx-mb-3\" *ngIf=\"!singleSelect\" [appTooltip]=\"user |tooltipMessage: fromResponsibility:reviewerIds:overseerIds:assignorId:assigneeIds:'member_id':disabledIds?.includes(user?.member_id):FromProgram\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\r\n <vui-checkbox (change)=\"selectItem($event,user)\" [disabled]=\"disabledIds?.includes(user?.member_id)\" [checked]=\"selectedUserIds?.includes(user?.member_id)\"><div class=\"user-name\" >{{user?.member_name}}</div></vui-checkbox>\r\n </li>\r\n <li class=\"vx-mb-3\" *ngIf=\"singleSelect\">\r\n <app-cs-radio [name]=\"'radio-selector'\" (checkedEvent)=\"selectItemRadio($event,user)\"\r\n [name]=\"'rx-category'\" [checked]=\"selectedUserIds?.includes(user?.member_id)\"\r\n [appTooltip]=\"user?.member_email\" placement=\"bottom-left\"\r\n delay=\"0\" [tooltipMandatory]=\"true\">\r\n {{user?.member_name}}\r\n </app-cs-radio>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-template #nouser>\r\n <app-no-data *ngIf=\"!loading\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"(searchKey?.length > 0 ?'No match found.':'No Users found.')\"></app-no-data>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"currentTab === 'GROUP'\">\r\n <ng-container *ngIf=\"(groupsList|search:searchKey:'group_name') as groups\">\r\n <div class=\"user-group-list-mid\" [class.with-pagination]=\"isPagination\">\r\n <ng-container *ngIf=\"groups?.length > 0; else nogroup\">\r\n <div class=\"user-list-select vx-mb-2\">\r\n <vui-checkbox #group [checked]=\"allGroupSelected\" [disabled]=\"allGroupSelectedDisabled\" (change)=\"selectAllGroup($event)\">\r\n <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt vx-tt-none\">{{!group?.checked ? 'Select All' : 'Deselect All'}}</div>\r\n </vui-checkbox>\r\n </div>\r\n <div class=\"user-list-item\">\r\n <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\r\n <li class=\"vx-mb-3\" *ngFor=\"let group of groups\">\r\n <vui-checkbox (change)=\"selectGroup($event,group)\" [disabled]=\"nonRemovableGroupIds?.includes(group?.group_id)\" [checked]=\"selectedGroupIds?.includes(group?.group_id)\">\r\n <div class=\"user-name vx-d-flex vx-align-center vx-w-100\" [appTooltip]=\"group?.group_name\" placement=\"bottom-left\" delay=\"0\"\r\n [tooltipMandatory]=\"true\">\r\n <div class=\"group-name\">{{group?.group_name}} </div>\r\n <span class=\"counter vx-fs-9 vx-fw-600 vx-pl-1 vx-pr-1 vx-lh-3 vx-tt-uppercase\">{{group?.member_count}} {{group?.member_count > 1 ? 'USERS' :'USER'}}</span></div>\r\n </vui-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-template #nogroup>\r\n <app-no-data *ngIf=\"!loading\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"(searchKey?.length > 0 ?'No match found.':'No data to display.')\"></app-no-data>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"user-group-list-footer\">\r\n <vui-floating-bar *ngIf=\"(!singleSelect || (!singleSelect && selectedReviewer))\" (closeEvent)=\"saveList()\" (closeList)=\"closeList()\" (workflowTypeChanged) = \"workflowTypeChanged($event)\" [selectedWorkflow]=\"reviewerWorkflowType\" [showWorkflow]=\"selectedReviewer\" [groupSelected]=\"selectedGroups\" [mode]=\"mode\">\r\n <ng-container *ngIf=\"!groupEnabled && selectedUsers?.length > 1\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\" *ngFor=\"let element of selectedUsers?.slice(0,1);let i = index\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" *ngIf=\"!nonRemovableUserIds?.includes(element?.member_id)\" (click)=\"selectItem({target:{checked:false}},element)\"></i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"element?.member_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{element?.member_name}}</span>\r\n <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenBg\" appPopover (click)=\"groupDisable.popover()\" placement=\"left\" *ngIf=\"selectedUsers?.length>1\">+{{selectedUsers?.slice(1)?.length}}</button>\r\n </div>\r\n\r\n <!-- <div class=\"chip\" *ngFor=\"let element of selectedUsers?.slice(0,1);let i = index\"><i *ngIf=\"!nonRemovableUserIds?.includes(element?.member_id)\" (click)=\"selectItem({target:{checked:false}},element)\" class=\"icons\"></i> <span>{{element?.member_name}}</span></div>\r\n <div class=\"counter\" *ngIf=\"selectedUsers?.length>1\" appPopover (click)=\"groupDisable.popover()\"\r\n placement=\"left\">+{{selectedUsers?.slice(1)?.length}}</div> -->\r\n </ng-container>\r\n <div class=\"user-group-chip\" *ngIf=\"selectedUsers?.length === 1\">\r\n <i class=\"icons cross\" *ngIf=\"!nonRemovableUserIds?.includes(selectedUsers[0]?.member_id)\" (click)=\"selectItem({target:{checked:false}},selectedUsers[0])\"></i>\r\n <div class=\"user-group-name\">{{selectedUsers[0]?.member_name}}</div>\r\n <ng-container *ngIf=\"groupEnabled\">\r\n <div class=\"counter\" *ngIf=\"selectedUsers?.length > 1\" appPopover (click)=\"userCount.popover()\"\r\n placement=\"left\">+{{selectedUsers?.length - 1}}</div>\r\n </ng-container>\r\n </div>\r\n <div class=\"name userGroup-name\">\r\n <!-- {{selectedGroups && selectedGroups?.length > 0 ?' & ':''}} -->\r\n <span class=\"userGroup-text\" *ngIf=\"selectedUsers?.length === 1\">User {{selectedGroups?.length > 0 ?' & ':''}}</span>\r\n <span class=\"userGroup-text\" *ngIf=\"selectedUsers?.length > 1\">Users {{selectedGroups?.length > 0 ?' & ':'selected'}}</span>\r\n </div>\r\n\r\n <div class=\"user-group-chip\" *ngIf=\"selectedGroups?.length\">\r\n <i class=\"icons cross\" *ngIf=\"!nonRemovableGroupIds?.includes(selectedGroups[0]?.group_id)\" (click)=\"selectGroup({target:{checked:false}},selectedGroups[0])\"></i>\r\n <div class=\"user-group-name\">{{selectedGroups[0]?.group_name}}</div>\r\n <div class=\"counter group\" *ngIf=\"selectedGroups?.length > 1\" appPopover (click)=\"groupCount.popover()\"\r\n placement=\"left\">+{{selectedGroups?.length - 1}}</div>\r\n </div>\r\n <div class=\"name userGroup-name\">\r\n <span *ngIf=\"selectedGroups?.length === 1\">{{featureflag ?'User Group selected':'Group selected'}}</span>\r\n <span *ngIf=\"selectedGroups?.length > 1\">{{featureflag ?'User Groups selected':'Groups selected'}}</span>\r\n </div>\r\n\r\n <app-popover #userCount [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedUsers | slice: 1; let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" *ngIf=\"!nonRemovableUserIds?.includes(element?.member_id)\"\r\n (click)=\"selectItem({target:{checked:false}},element)\"></i>\r\n {{element?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n\r\n <app-popover #groupDisable [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedUsers.slice(1) let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" *ngIf=\"!nonRemovableUserIds?.includes(element?.member_id)\"\r\n (click)=\"selectItem({target:{checked:false}},element)\"></i>\r\n {{element?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n\r\n <app-popover #groupCount [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedGroups | slice: 1; let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" *ngIf=\"!nonRemovableGroupIds?.includes(element?.group_id)\"\r\n (click)=\"selectGroup({target:{checked:false}},element)\"></i>\r\n {{element?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </vui-floating-bar>\r\n <vui-floating-bar *ngIf=\"singleSelect\" (closeEvent)=\"saveList()\" (closeList)=\"closeList()\">\r\n <div class=\"chip\" *ngIf=\"selectedUsers?.length\" >\r\n <ng-container>\r\n <i class=\"icons\" (click)=\"selectItem({target:{checked:false}},selectedUsers[0])\"></i>\r\n <span class=\"value\"> {{selectedUsers[0]?.member_name}}</span>\r\n </ng-container>\r\n </div>\r\n </vui-floating-bar>\r\n </div>\r\n </div>\r\n\r\n <div class=\"user-group-list-confirmation\" *ngIf=\"showConfirmation\">\r\n <div class=\"confirmation-top\">\r\n <div class=\"icon-block\"><i class=\"icons\"></i></div>\r\n <div class=\"text\">This action will reset the default {{userType}} selected for the Program.</div>\r\n </div>\r\n <div class=\"confirmation-bottom\">\r\n <div class=\"message\">Are you sure you would like to proceed?</div>\r\n <div class=\"button-group\">\r\n <button class=\"no-btn\" (click)=\"confirmAction('NO')\">NO</button>\r\n <button class=\"yes-btn\" (click)=\"confirmAction('YES')\">YES</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n",
|
|
295
|
+
template: "<div class=\"user-group-list\" [class.animate]=\"animation\">\r\n <div class=\"user-group-list-head\">\r\n <h3 class=\"user-group-list-title\">{{panelTitle}}</h3>\r\n </div>\r\n <div class=\"user-group-list-body\">\r\n <div class=\"user-group-list-body-inner\">\r\n <app-loader-inline *ngIf=\"loading\"></app-loader-inline>\r\n <div class=\"user-group-list-tab vx-d-flex vx-align-center vx-mb-2\" *ngIf=\"groupEnabled\">\r\n <button (click)=\"switchTab('USER')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\" [class.active]=\"currentTab === 'USER'\">USERS\r\n <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{searchKey?.length && currentTab === 'USER' ? (usersList| filter : searchKey)?.length : usersList?.length || userListInfo?.total_items}}</span></button>\r\n <button (click)=\"switchTab('GROUP')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\" [class.active]=\"currentTab === 'GROUP'\">{{featureflag ? 'USER GROUPS':'GROUPS'}} <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{searchKey?.length && currentTab === 'GROUP' ? (groupsList|search:searchKey:'group_name')?.length :groupsList?.length || groupListInfo?.total_items}}</span></button>\r\n </div>\r\n\r\n <div class=\"search-block vx-mb-2\">\r\n <i class=\"icons\"></i>\r\n <input *ngIf=\"!featureflag\" [(ngModel)]=\"searchKey\" type=\"text\" placeholder=\"{{currentTab === 'USER' ? 'Search User' :'Search Group'}}\" />\r\n <input *ngIf=\"featureflag\" [(ngModel)]=\"searchKey\" type=\"text\" placeholder=\"{{currentTab === 'USER' ? 'Search User' :'Search User Group'}}\" />\r\n </div>\r\n\r\n <ng-container *ngIf=\"currentTab === 'USER' && !loading\">\r\n <ng-container *ngIf=\"(usersList|filter:searchKey) as users\">\r\n <vui-pagination *ngIf=\"userListInfo?.total_pages > 1 && usersList?.length !== userListInfo?.total_items\" [currentPage]=\"userCurrentPage\" [totalPage]=\"userListInfo?.total_pages\" (pageChanged)=\"userPageChange($event)\"></vui-pagination>\r\n <div class=\"user-group-list-mid\" [class.with-pagination]=\"isPagination\">\r\n <ng-container *ngIf=\"users?.length > 0;else nouser\">\r\n <div class=\"user-list-select vx-mb-2\">\r\n <vui-checkbox *ngIf=\"!singleSelect\" #user [checked]=\"allUserSelected\" [disabled]=\"allUserSelectedDisabled\" (change)=\"selectAllUser($event)\">\r\n <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt vx-tt-none\">{{!user?.checked ? 'Select All' : 'Deselect All'}}</div>\r\n </vui-checkbox>\r\n </div>\r\n <div class=\"user-list-item\">\r\n <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\r\n <ng-container *ngFor=\"let user of users \" >\r\n <li class=\"vx-mb-3\" *ngIf=\"!singleSelect\" [appTooltip]=\"user |tooltipMessage: fromResponsibility:reviewerIds:overseerIds:assignorId:assigneeIds:'member_id':disabledIds?.includes(user?.member_id):FromProgram\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\r\n <vui-checkbox (change)=\"selectItem($event,user)\" [disabled]=\"disabledIds?.includes(user?.member_id)\" [checked]=\"selectedUserIds?.includes(user?.member_id)\"><div class=\"user-name\" >{{user?.member_name}}</div></vui-checkbox>\r\n </li>\r\n <li class=\"vx-mb-3\" *ngIf=\"singleSelect\">\r\n <app-cs-radio [name]=\"'radio-selector'\" (checkedEvent)=\"selectItemRadio($event,user)\"\r\n [name]=\"'rx-category'\" [checked]=\"selectedUserIds?.includes(user?.member_id)\"\r\n [appTooltip]=\"user?.member_email\" placement=\"bottom-left\"\r\n delay=\"0\" [tooltipMandatory]=\"true\">\r\n {{user?.member_name}}\r\n </app-cs-radio>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-template #nouser>\r\n <app-no-data *ngIf=\"!loading\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"(searchKey?.length > 0 ?'No match found.':'No Users found.')\"></app-no-data>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"currentTab === 'GROUP'\">\r\n <ng-container *ngIf=\"(groupsList|search:searchKey:'group_name') as groups\">\r\n <div class=\"user-group-list-mid\" [class.with-pagination]=\"isPagination\">\r\n <ng-container *ngIf=\"groups?.length > 0; else nogroup\">\r\n <div class=\"user-list-select vx-mb-2\">\r\n <vui-checkbox #group [checked]=\"allGroupSelected\" [disabled]=\"allGroupSelectedDisabled\" (change)=\"selectAllGroup($event)\">\r\n <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt vx-tt-none\">{{!group?.checked ? 'Select All' : 'Deselect All'}}</div>\r\n </vui-checkbox>\r\n </div>\r\n <div class=\"user-list-item\">\r\n <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\r\n <li class=\"vx-mb-3\" *ngFor=\"let group of groups\">\r\n <vui-checkbox (change)=\"selectGroup($event,group)\" [disabled]=\"nonRemovableGroupIds?.includes(group?.group_id)\" [checked]=\"selectedGroupIds?.includes(group?.group_id)\">\r\n <div class=\"user-name vx-d-flex vx-align-center vx-w-100\" [appTooltip]=\"group?.group_name\" placement=\"bottom-left\" delay=\"0\"\r\n [tooltipMandatory]=\"true\">\r\n <div class=\"group-name\">{{group?.group_name}} </div>\r\n <span class=\"counter vx-fs-9 vx-fw-600 vx-pl-1 vx-pr-1 vx-lh-3 vx-tt-uppercase\">{{group?.member_count}} {{group?.member_count > 1 ? 'USERS' :'USER'}}</span></div>\r\n </vui-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-template #nogroup>\r\n <app-no-data *ngIf=\"!loading\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"(searchKey?.length > 0 ?'No match found.':'No data to display.')\"></app-no-data>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"user-group-list-footer\">\r\n <vui-floating-bar *ngIf=\"(!singleSelect || (!singleSelect && selectedReviewer))\" (closeEvent)=\"saveList()\" (closeList)=\"closeList()\" (workflowTypeChanged) = \"workflowTypeChanged($event)\" [selectedWorkflow]=\"reviewerWorkflowType\" [showWorkflow]=\"selectedReviewer\" [groupSelected]=\"selectedGroups\" [mode]=\"mode\">\r\n <ng-container *ngIf=\"!groupEnabled\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\" *ngFor=\"let element of selectedUsers?.slice(0,1);let i = index\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" *ngIf=\"!nonRemovableUserIds?.includes(element?.member_id)\" (click)=\"selectItem({target:{checked:false}},element)\"></i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"element?.member_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{element?.member_name}}</span>\r\n <button *ngIf=\"selectedUsers?.length>1\" class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenBg\" appPopover (click)=\"groupDisable.popover()\" placement=\"left\">+{{selectedUsers?.slice(1)?.length}}</button>\r\n </div>\r\n\r\n <!-- <div class=\"chip\" *ngFor=\"let element of selectedUsers?.slice(0,1);let i = index\"><i *ngIf=\"!nonRemovableUserIds?.includes(element?.member_id)\" (click)=\"selectItem({target:{checked:false}},element)\" class=\"icons\"></i> <span>{{element?.member_name}}</span></div>\r\n <div class=\"counter\" *ngIf=\"selectedUsers?.length>1\" appPopover (click)=\"groupDisable.popover()\"\r\n placement=\"left\">+{{selectedUsers?.slice(1)?.length}}</div> -->\r\n </ng-container>\r\n <div class=\"user-group-chip\" *ngIf=\"selectedUsers?.length && groupEnabled\">\r\n <i class=\"icons cross\" *ngIf=\"!nonRemovableUserIds?.includes(selectedUsers[0]?.member_id)\" (click)=\"selectItem({target:{checked:false}},selectedUsers[0])\"></i>\r\n <div class=\"user-group-name\">{{selectedUsers[0]?.member_name}}</div>\r\n <ng-container *ngIf=\"groupEnabled\">\r\n <div class=\"counter\" *ngIf=\"selectedUsers?.length > 1\" appPopover (click)=\"userCount.popover()\"\r\n placement=\"left\">+{{selectedUsers?.length - 1}}</div>\r\n </ng-container>\r\n </div>\r\n <div class=\"name userGroup-name\">\r\n <!-- {{selectedGroups && selectedGroups?.length > 0 ?' & ':''}} -->\r\n <span class=\"userGroup-text\" *ngIf=\"selectedUsers?.length === 1\">User {{selectedGroups?.length > 0 ?' & ':' selected'}}</span>\r\n <span class=\"userGroup-text\" *ngIf=\"selectedUsers?.length > 1\">Users {{selectedGroups?.length > 0 ?' & ':'selected'}}</span>\r\n </div>\r\n\r\n <div class=\"user-group-chip\" *ngIf=\"selectedGroups?.length\">\r\n <i class=\"icons cross\" *ngIf=\"!nonRemovableGroupIds?.includes(selectedGroups[0]?.group_id)\" (click)=\"selectGroup({target:{checked:false}},selectedGroups[0])\"></i>\r\n <div class=\"user-group-name\">{{selectedGroups[0]?.group_name}}</div>\r\n <div class=\"counter group\" *ngIf=\"selectedGroups?.length > 1\" appPopover (click)=\"groupCount.popover()\"\r\n placement=\"left\">+{{selectedGroups?.length - 1}}</div>\r\n </div>\r\n <div class=\"name userGroup-name\">\r\n <span *ngIf=\"selectedGroups?.length === 1\">{{featureflag ?'User Group selected':'Group selected'}}</span>\r\n <span *ngIf=\"selectedGroups?.length > 1\">{{featureflag ?'User Groups selected':'Groups selected'}}</span>\r\n </div>\r\n\r\n <app-popover #userCount [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedUsers | slice: 1; let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" *ngIf=\"!nonRemovableUserIds?.includes(element?.member_id)\"\r\n (click)=\"selectItem({target:{checked:false}},element)\"></i>\r\n {{element?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n\r\n <app-popover #groupDisable [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedUsers.slice(1) let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" *ngIf=\"!nonRemovableUserIds?.includes(element?.member_id)\"\r\n (click)=\"selectItem({target:{checked:false}},element)\"></i>\r\n {{element?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n\r\n <app-popover #groupCount [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedGroups | slice: 1; let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" *ngIf=\"!nonRemovableGroupIds?.includes(element?.group_id)\"\r\n (click)=\"selectGroup({target:{checked:false}},element)\"></i>\r\n {{element?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </vui-floating-bar>\r\n <vui-floating-bar *ngIf=\"singleSelect\" (closeEvent)=\"saveList()\" (closeList)=\"closeList()\">\r\n <div class=\"chip\" *ngIf=\"selectedUsers?.length\" >\r\n <ng-container>\r\n <i class=\"icons\" (click)=\"selectItem({target:{checked:false}},selectedUsers[0])\"></i>\r\n <span class=\"value\"> {{selectedUsers[0]?.member_name}}</span>\r\n </ng-container>\r\n </div>\r\n </vui-floating-bar>\r\n </div>\r\n </div>\r\n\r\n <div class=\"user-group-list-confirmation\" *ngIf=\"showConfirmation\">\r\n <div class=\"confirmation-top\">\r\n <div class=\"icon-block\"><i class=\"icons\"></i></div>\r\n <div class=\"text\">This action will reset the default {{userType}} selected for the Program.</div>\r\n </div>\r\n <div class=\"confirmation-bottom\">\r\n <div class=\"message\">Are you sure you would like to proceed?</div>\r\n <div class=\"button-group\">\r\n <button class=\"no-btn\" (click)=\"confirmAction('NO')\">NO</button>\r\n <button class=\"yes-btn\" (click)=\"confirmAction('YES')\">YES</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n",
|
|
296
296
|
styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";::ng-deep .user-group-list{background:#ffffff;position:fixed;top:0;right:500px;bottom:0;left:0}::ng-deep .user-group-list:before{background:#1E5DD3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .user-group-list.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .user-group-list-head{background:#fbfbfb;height:44px;padding:0 16px;display:flex;justify-content:space-between;align-items:center;border:1px solid #f1f1f1;border-right:none}::ng-deep .user-group-list-title{color:#161b2f;font-size:14px;font-weight:500;margin:0!important;padding:0}::ng-deep .user-group-list-body{padding:32px 32px 0;height:calc(100vh - 124px)}::ng-deep .user-group-list-body .search-block{position:relative}::ng-deep .user-group-list-body .search-block input{height:2.75rem;line-height:1.5rem;padding:.75rem .75rem .75rem 2.5rem;outline:none;border:1px solid #7475763F;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .user-group-list-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .user-group-list-body .search-block input::placeholder{font-size:14px;color:#747576}::ng-deep .user-group-list-body .search-block i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .user-group-list-mid{width:calc(100% + .75rem);height:calc(100vh - 15.75rem);overflow:hidden;overflow-y:auto;margin-bottom:.5rem;padding-right:.75rem}::ng-deep .user-group-list-mid::-webkit-scrollbar-track{background-color:#fff}::ng-deep .user-group-list-mid.with-pagination{height:calc(100vh - 17.5rem)}::ng-deep .user-group-list-mid .selected-owners{border-bottom:1px solid #dbdbdb}::ng-deep .user-group-list-mid .user-list-select{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item,::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item{position:relative;padding-left:1.5rem;width:100%}::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item .checkbox,::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item .checkbox{position:absolute!important;left:0;top:0}::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item .checkmark,::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item .checkmark{position:absolute!important;left:0;top:0}::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item span,::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item span{justify-content:unset!important;margin:0!important}::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item span.value,::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item span.value{color:#161b2f!important;font-size:11px!important;font-weight:600!important;text-transform:uppercase!important;width:100%}::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item span.value .user-name,::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item span.value .user-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .user-group-list-mid .user-list-item ul{list-style-type:none;align-items:flex-start;flex-wrap:wrap}::ng-deep .user-group-list-mid .user-list-item ul li{width:50%}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox{width:calc(100% - 4.5rem)}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item{position:relative;padding-left:1.5rem;width:100%}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item .checkbox{position:absolute!important;left:0;top:0}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item .checkmark{position:absolute!important;left:0;top:0}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span{justify-content:unset!important;margin:0!important}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span.value{color:#161b2f!important;font-size:12px!important;width:100%}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span.value .user-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span.value .user-name .group-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 2.5rem)}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span.value .counter{background:#f1f1f1;border-radius:.125rem;color:#042e7d;margin-left:.5rem!important}::ng-deep .user-group-list-tab button.tab-btn{background:transparent;border-radius:0;border:none;border-bottom:.1875rem solid transparent;margin-right:1.75rem!important}::ng-deep .user-group-list-tab button.tab-btn span{border-radius:1.25rem;color:#74757680;min-width:1.5rem}::ng-deep .user-group-list-tab button.active{pointer-events:none}::ng-deep .user-group-list-tab button.active.tab-btn{border-color:#1e5dd3;color:#1e5dd3}::ng-deep .user-group-list-tab button.active.tab-btn span{background:#1E5DD3;color:#fff;font-weight:500}::ng-deep .user-group-list-confirmation{background:#161B2F;border-radius:.25rem;position:absolute;left:1rem;right:1rem;bottom:1.75rem;z-index:1}::ng-deep .user-group-list-confirmation .confirmation-top{display:flex;align-items:center;justify-content:flex-start;padding:1.25rem}::ng-deep .user-group-list-confirmation .confirmation-top .icon-block{height:2.25rem;width:2.25rem;border-radius:50%;background:#fff;border:1px solid #dbdbdb;display:flex;justify-content:center;align-items:center;margin-right:1rem}::ng-deep .user-group-list-confirmation .confirmation-top .icon-block i{color:#eb2424;font-size:12px}::ng-deep .user-group-list-confirmation .confirmation-top .text{color:#fff;font-size:14px;font-weight:300}::ng-deep .user-group-list-confirmation .confirmation-bottom{background:#282E48;border-radius:0 0 .25rem .25rem;padding:.75rem .75rem .75rem 1.25rem;display:flex;align-items:center;justify-content:space-between}::ng-deep .user-group-list-confirmation .confirmation-bottom .message{font-size:14px;font-weight:500;line-height:20px;color:#fff}::ng-deep .user-group-list-confirmation .confirmation-bottom .button-group{display:flex}::ng-deep .user-group-list-confirmation .confirmation-bottom .button-group button{height:1.5rem;width:4rem;border:1px solid #fff;border-radius:.125rem;display:flex;align-items:center;justify-content:center;line-height:22px;cursor:pointer;font-size:11px;text-transform:uppercase;font-weight:500;padding:0}::ng-deep .user-group-list-confirmation .confirmation-bottom .button-group button.no-btn{background:transparent;color:#fff}::ng-deep .user-group-list-confirmation .confirmation-bottom .button-group button.yes-btn{background:#fff;color:#1e5dd3;margin-left:.25rem}.group{background:#1e5dd3!important;border-color:#1e5dd3!important}.wf-action-list{width:220px}.wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#ffffff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.wf-action-list ul.action-item{display:block}.wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}.wf-action-list ul.action-item li button .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 16px)}.wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}.wf-action-list ul.action-item li button:hover{background:#f3f3f3}.wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.wf-action-list ul.action-item li .avatar-card.within-con{display:block}.wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;min-width:24px!important;overflow:hidden;background:#1E5DD3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.wf-action-list ul.action-item li .avatar-card .avatar img{background:#fff;width:100%;height:100%}.wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}.wf-action-list ul.action-item li .avatar-card.no-image{display:block}.wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.wf-action-list ul.action-item li .avatar-card i.delete-icon{color:#d93b41;cursor:pointer;font-size:14px}.wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.wf-action-list ul.action-item li .chip-item i{color:#747576;margin-left:7px;font-size:10px;cursor:pointer;display:inline-flex}.wf-action-list ul.action-item li .chip-item span{display:block;width:auto;width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}.wf-action-list ul.action-item li .chip-item span.id{font-size:9px}.wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}.wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}.wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}.wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}\n"]
|
|
297
297
|
},] }
|
|
298
298
|
];
|
|
@@ -329,4 +329,4 @@ UserGroupListComponent.propDecorators = {
|
|
|
329
329
|
setGroupList: [{ type: Input, args: ['groupList',] }],
|
|
330
330
|
setSelectedGroup: [{ type: Input, args: ['selectedGroups',] }]
|
|
331
331
|
};
|
|
332
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ncm91cC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXByb2dyYW0vY3JlYXRlLXByb2dyYW0tdWkvdXNlci1ncm91cC1saXN0L3VzZXItZ3JvdXAtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFPbEQsTUFBTSxPQUFPLHNCQUFzQjtJQWtPakM7UUFoT1UsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFN0IsZUFBVSxHQUFFLGdCQUFnQixDQUFDO1FBQzdCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixnQkFBVyxHQUFHLEtBQUssQ0FBQTtRQUNuQix5QkFBb0IsR0FBVyxZQUFZLENBQUM7UUFDM0MsK0JBQTBCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxTQUFJLEdBQVksUUFBUSxDQUFDO1FBQ3pCLGNBQVMsR0FBRSxFQUFFLENBQUE7UUFDdEIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUdmLGNBQVMsR0FBUSxFQUFFLENBQUM7UUFDcEIsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUViLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFDckIsZ0JBQVcsR0FBTyxFQUFFLENBQUM7UUFDckIsZ0JBQVcsR0FBTyxFQUFFLENBQUM7UUFDckIsZ0JBQVcsR0FBUSxFQUFFLENBQUM7UUFDdEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFJbEIs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QU07WUFDUixRQUFRO1NBQ1Q7UUFDRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDOzs7WUFuVUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLHMvY0FBK0M7O2FBRWhEOzs7O21CQUdFLE1BQU07cUJBQ04sTUFBTTsyQkFDTixLQUFLO3lCQUNMLEtBQUs7MkJBQ0wsS0FBSzsrQkFDTCxLQUFLOzBCQUNMLEtBQUs7bUNBQ0wsS0FBSzt5Q0FDTCxNQUFNO21CQUNOLEtBQUs7d0JBQ0wsS0FBSztpQ0FNTixLQUFLO3lCQUNMLEtBQUs7MEJBQ0wsS0FBSzswQkFDTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsS0FBSzsyQkFDSixLQUFLOzRCQUNMLEtBQUs7NEJBRUwsTUFBTTswQkFFTixLQUFLO2tDQUNMLEtBQUs7bUNBUUwsS0FBSztzQkFVUCxLQUFLOzBCQUVILEtBQUssU0FBQyxVQUFVOzhCQVVoQixLQUFLLFNBQUMsZUFBZTtzQ0FTckIsS0FBSyxTQUFDLHNCQUFzQjt1QkFJNUIsS0FBSzsyQkFrQkwsS0FBSyxTQUFDLFdBQVc7K0JBVWpCLEtBQUssU0FBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNlYXJjaFBpcGUgfSBmcm9tICcuLi9waXBlcy9zZWFyY2gucGlwZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3VzZXItZ3JvdXAtbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItZ3JvdXAtbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1ncm91cC1saXN0LmNvbXBvbmVudC5sZXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJHcm91cExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBAT3V0cHV0KCkgc2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIGdyb3VwRW5hYmxlZCAhOiBmYWxzZTtcclxuICBASW5wdXQoKSBwYW5lbFRpdGxlID0nU2VsZWN0IFVzZXIocyknO1xyXG4gIEBJbnB1dCgpIHNpbmdsZVNlbGVjdCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkUmV2aWV3ZXIgPSBmYWxzZTtcclxuICBASW5wdXQoKSBmZWF0dXJlZmxhZyA9IGZhbHNlXHJcbiAgQElucHV0KCkgcmV2aWV3ZXJXb3JrZmxvd1R5cGU6IHN0cmluZyA9ICdTRVFVRU5USUFMJztcclxuICBAT3V0cHV0KCkgcmV2aWV3ZXJXb3JrZmxvd1R5cGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgbW9kZTogc3RyaW5nICA9ICdDUkVBVEUnO1xyXG4gIEBJbnB1dCgpIGZpZWxkVHlwZSA9JydcclxuICBzZWFyY2hLZXkgPSAnJztcclxuICBpc1BhZ2luYXRpb246IGFueTtcclxuXHJcbiAgdXNlcnNMaXN0OiBhbnkgPSBbXTtcclxuICBncm91cHNMaXN0OiBhbnkgPSBbXTtcclxuIEBJbnB1dCgpIGZyb21SZXNwb25zaWJpbGl0eTphbnk7XHJcbiBASW5wdXQoKSBhc3NpZ25vcklkOmFueVtdID1bXTtcclxuIEBJbnB1dCgpIGFzc2lnbmVlSWRzOmFueVtdPVtdO1xyXG4gQElucHV0KCkgcmV2aWV3ZXJJZHM6YW55W109W107XHJcbiBASW5wdXQoKSBvdmVyc2VlcklkczphbnlbXSA9W107XHJcbiBASW5wdXQoKSBGcm9tUHJvZ3JhbSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHVzZXJMaXN0SW5mbyAhOiBhbnk7XHJcbiAgQElucHV0KCkgZ3JvdXBMaXN0SW5mbyAhOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoKSBmZXRjaFVzZXJEYXRhID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoKSBkaXNhYmxlZElkczogYW55ID0gW107XHJcbiAgQElucHV0KCkgbm9uUmVtb3ZhYmxlVXNlcklkczogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRVc2VyczogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRVc2VySWRzOiBhbnkgPSBbXTtcclxuICBhbGxVc2Vyc0lkczogYW55ID0gW107XHJcbiAgYWxsVXNlclNlbGVjdGVkID0gZmFsc2U7XHJcbiAgYWxsVXNlclNlbGVjdGVkRGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcblxyXG4gIEBJbnB1dCgpIG5vblJlbW92YWJsZUdyb3VwSWRzOiBhbnkgPSBbXTtcclxuICBzZWxlY3RlZEdyb3VwczogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRHcm91cElkczogYW55ID0gW107XHJcbiAgYWxsR3JvdXBzSWRzOiBhbnkgPSBbXTtcclxuICBhbGxHcm91cFNlbGVjdGVkID0gZmFsc2U7XHJcbiAgYWxsR3JvdXBTZWxlY3RlZERpc2FibGVkID0gZmFsc2U7XHJcbiAgc2VhcmNoUGlwZSA9IG5ldyBTZWFyY2hQaXBlKCk7XHJcblxyXG4gIHVzZXJDdXJyZW50UGFnZSA9IDE7XHJcbiAgZ3JvdXBDdXJyZW50UGFnZSA9IDE7XHJcbkBJbnB1dCgpIGxvYWRpbmcgITpib29sZWFuO1xyXG4gIG5vbkRpc2FibGVkVXNlcnM6IGFueVtdPVtdO1xyXG4gIEBJbnB1dCgndXNlcmxpc3QnKSBzZXQgc2V0VXNlckxpc3QodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICYmIHZhbHVlPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy51c2Vyc0xpc3QgPSBbLi4udmFsdWVdO1xyXG4gICAgICB0aGlzLmFsbFVzZXJzSWRzID0gdGhpcy51c2Vyc0xpc3QubWFwKChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQpO1xyXG4gICAgICB0aGlzLmFsbFVzZXJTZWxlY3RlZFN0YXR1cygpO1xyXG4gICAgICB0aGlzLnNldFVzZXJMaXN0SW5pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIEBJbnB1dCgnc2VsZWN0ZWRVc2VycycpIHNldCBzZXRTZWxlY3RlZFVzZXIodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gdGhpcy51bmlxdWVCeVByb3AoWy4uLnRoaXMuc2VsZWN0ZWRVc2VycywgLi4udmFsdWVdLCAnbWVtYmVyX2lkJyk7XHJcbiAgICB0aGlzLnNlbGVjdGVkVXNlcklkcyA9IHRoaXMuc2VsZWN0ZWRVc2Vycy5tYXAoKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCk7XHJcbiAgICB0aGlzLmFsbFVzZXJTZWxlY3RlZFN0YXR1cygpO1xyXG4gICAgdGhpcy5zZXRVc2VyTGlzdEluaXQoKTtcclxuICB9XHJcblxyXG4gIGRlZmF1bHRTZWxlY3RlZFVzZXJzOiBhbnkgID0gW107XHJcbiAgZGVmYXVsdFNlbGVjdGVkVXNlcklkczogYW55ID0gW107XHJcbiAgQElucHV0KCdkZWZhdWx0U2VsZWN0ZWRVc2VycycpIHNldCBzZXREZWZhdWx0U2VsZWN0ZWRVc2Vycyh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLmRlZmF1bHRTZWxlY3RlZFVzZXJzID0gdGhpcy51bmlxdWVCeVByb3AoWy4uLnRoaXMuZGVmYXVsdFNlbGVjdGVkVXNlcnMsIC4uLnZhbHVlXSwgJ21lbWJlcl9pZCcpO1xyXG4gICAgdGhpcy5kZWZhdWx0U2VsZWN0ZWRVc2VySWRzID0gdGhpcy5kZWZhdWx0U2VsZWN0ZWRVc2Vycy5tYXAoKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHVzZXJUeXBlOiBzdHJpbmcgPSAnYXNzaWduZWVzJztcclxuICBzaG93Q29uZmlybWF0aW9uID0gZmFsc2U7XHJcblxyXG5cclxuICBzZXRVc2VyTGlzdEluaXQoKSB7XHJcbiAgICBpZiAodGhpcy51c2VyQ3VycmVudFBhZ2UgPT09IDEpIHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkVXNlcnM7XHJcbiAgICAgIGNvbnN0IG90aGVyVXNlciA9IHRoaXMudXNlcnNMaXN0LmZpbHRlcigoZWxlOiBhbnkpID0+ICF0aGlzLnNlbGVjdGVkVXNlcklkcy5pbmNsdWRlcyhlbGU/Lm1lbWJlcl9pZCkpO1xyXG4gICAgICBjb25zb2xlLmxvZyhcImZzZnNmc2ZcIiwgc2VsZWN0ZWQsIG90aGVyVXNlcilcclxuICAgICAgdGhpcy51c2Vyc0xpc3QgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4uc2VsZWN0ZWQ/LnNvcnQoKSwgLi4ub3RoZXJVc2VyPy5zb3J0KCldLCAnbWVtYmVyX2lkJylcclxuICAgIH1cclxuICB9XHJcbiAgYWxsVXNlclNlbGVjdGVkU3RhdHVzKCkge1xyXG4gICAgdGhpcy5hbGxVc2VyU2VsZWN0ZWQgPSB0aGlzLmFsbFVzZXJzSWRzLnNvcnQoKS50b1N0cmluZygpID09PSB0aGlzLnNlbGVjdGVkVXNlcklkcy5zb3J0KCk/LnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLmFsbFVzZXJTZWxlY3RlZERpc2FibGVkID0gKHRoaXMuYWxsVXNlcnNJZHMuc29ydCgpLnRvU3RyaW5nKCkgPT09IHRoaXMuc2VsZWN0ZWRVc2VySWRzLnNvcnQoKT8udG9TdHJpbmcoKSApICYmIHRoaXMuYWxsVXNlcnNJZHMuc29ydCgpLnRvU3RyaW5nKCkgPT09IHRoaXMubm9uUmVtb3ZhYmxlVXNlcklkcy5zb3J0KCk/LnRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KCdncm91cExpc3QnKSBzZXQgc2V0R3JvdXBMaXN0KHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZT8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXBzTGlzdCA9IFsuLi52YWx1ZV07XHJcbiAgICAgIHRoaXMuYWxsR3JvdXBzSWRzID0gdGhpcy5ncm91cHNMaXN0Lm1hcCgoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWQpO1xyXG4gICAgICB0aGlzLmFsbEdyb3VwU2VsZWN0ZWRTdGF0dXMoKTtcclxuICAgICAgdGhpcy5zZXRHcm91cExpc3RJbml0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KCdzZWxlY3RlZEdyb3VwcycpIHNldCBzZXRTZWxlY3RlZEdyb3VwKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRHcm91cHMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4udGhpcy5zZWxlY3RlZEdyb3VwcywgLi4udmFsdWVdLCAnZ3JvdXBfaWQnKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcyA9IHRoaXMuc2VsZWN0ZWRHcm91cHMubWFwKChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCk7XHJcbiAgICB0aGlzLmFsbEdyb3VwU2VsZWN0ZWRTdGF0dXMoKTtcclxuICAgIHRoaXMuc2V0R3JvdXBMaXN0SW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0R3JvdXBMaXN0SW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnVzZXJDdXJyZW50UGFnZSA9PT0gMSkge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRHcm91cHM7XHJcbiAgICAgIGNvbnN0IG90aGVyR3JvdXAgPSB0aGlzLmdyb3Vwc0xpc3QuZmlsdGVyKChlbGU6IGFueSkgPT4gIXRoaXMuc2VsZWN0ZWRHcm91cElkcy5pbmNsdWRlcyhlbGU/Lmdyb3VwX2lkKSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZnNmc2ZzZlwiLCBzZWxlY3RlZCwgb3RoZXJHcm91cClcclxuICAgICAgdGhpcy5ncm91cHNMaXN0ID0gdGhpcy51bmlxdWVCeVByb3AoWy4uLnNlbGVjdGVkPy5zb3J0KCksIC4uLm90aGVyR3JvdXA/LnNvcnQoKV0sICdncm91cF9pZCcpXHJcbiAgICB9XHJcbiAgfVxyXG4gIGFsbEdyb3VwU2VsZWN0ZWRTdGF0dXMoKSB7XHJcbiAgICB0aGlzLmFsbEdyb3VwU2VsZWN0ZWQgPSB0aGlzLmFsbEdyb3Vwc0lkcz8uc29ydCgpPy50b1N0cmluZygpID09PSB0aGlzLnNlbGVjdGVkR3JvdXBJZHM/LnNvcnQoKT8udG9TdHJpbmcoKTtcclxuICAgIHRoaXMuYWxsR3JvdXBTZWxlY3RlZERpc2FibGVkID0gKHRoaXMuYWxsR3JvdXBzSWRzLnNvcnQoKS50b1N0cmluZygpID09PSB0aGlzLnNlbGVjdGVkR3JvdXBJZHMuc29ydCgpPy50b1N0cmluZygpICkgJiYgdGhpcy5hbGxHcm91cHNJZHMuc29ydCgpLnRvU3RyaW5nKCkgPT09IHRoaXMubm9uUmVtb3ZhYmxlR3JvdXBJZHMuc29ydCgpPy50b1N0cmluZygpO1xyXG4gIH1cclxuXHJcblxyXG4gIHVzZXJQYWdlQ2hhbmdlKHBhZ2U6IGFueSkge1xyXG4gICAgdGhpcy51c2VyQ3VycmVudFBhZ2UgPSBwYWdlO1xyXG4gICAgdGhpcy5mZXRjaFVzZXJEYXRhLmVtaXQoeyBwYWdlLCBzZWFyY2hLZXk6IHRoaXMuc2VhcmNoS2V5IH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIyMjIyBEZXNjcmlwdGlvblxyXG4gICAqIFNlbGVjdHMgaXRlbSBvciBkZXNlbGVjdCBhIGl0bWVcclxuICAgKiBAcGFyYW0gZXZ0XHJcbiAgICogQHBhcmFtIHBheWxvYWRcclxuICAgKi9cclxuICBzZWxlY3RJdGVtKGV2dDogYW55LCBwYXlsb2FkOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiZnJvbSBzZWxcIixldnQpXHJcbiAgICBldnQ/LnRhcmdldD8uY2hlY2tlZCA9PT0gdHJ1ZSA/IHRoaXMubWFuaXB1bGF0ZVNlbGVjdGVkVXNlcignQUREJywgcGF5bG9hZCkgOiB0aGlzLm1hbmlwdWxhdGVTZWxlY3RlZFVzZXIoJ0RFTEVURScsIHBheWxvYWQpXHJcbiAgfVxyXG5cclxuICBzZWxlY3RJdGVtUmFkaW8oZXZ0OmFueSxwYXlsb2FkOmFueSl7XHJcbiAgICBpZihldnQ/LnRhcmdldD8uY2hlY2tlZCl7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IFtdO1xyXG4gICAgICB0aGlzLm1hbmlwdWxhdGVTZWxlY3RlZFVzZXIoJ0FERCcsIHBheWxvYWQpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiBNYW5pcHVsYXRlcyBzZWxlY3RlZCBpdGVtcyBpbiByb2xlIGxpc3RcclxuICAgKiBAcGFyYW0gYWN0aW9uIDonQUREJyB8ICdERUxFVEUnXHJcbiAgICogQHBhcmFtIHBheWxvYWRcclxuICAgKi9cclxuICBtYW5pcHVsYXRlU2VsZWN0ZWRVc2VyKGFjdGlvbjogJ0FERCcgfCAnREVMRVRFJywgcGF5bG9hZDogYW55KSB7XHJcbiAgICBpZiAoYWN0aW9uID09PSAnQUREJykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4udGhpcy5zZWxlY3RlZFVzZXJzLCAuLi5bcGF5bG9hZF1dLCAnbWVtYmVyX2lkJyk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VySWRzID0gdGhpcy5zZWxlY3RlZFVzZXJzLm1hcCgoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkKVxyXG4gICAgfSBlbHNlIGlmIChhY3Rpb24gPT09ICdERUxFVEUnKSB7XHJcbiAgICAgIGxldCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRVc2Vycy5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCA9PT0gcGF5bG9hZD8ubWVtYmVyX2lkKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLnNlbGVjdGVkVXNlcnMuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQgIT09IHBheWxvYWQ/Lm1lbWJlcl9pZCk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFVzZXJJZHMgPSB0aGlzLnNlbGVjdGVkVXNlcklkcy5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUgIT09IHBheWxvYWQ/Lm1lbWJlcl9pZClcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5hbGxVc2VyU2VsZWN0ZWRTdGF0dXMoKTtcclxuICB9XHJcbiAgc2VsZWN0QWxsVXNlcihldnQ6YW55KXtcclxuICAgIGlmKHRoaXMuZnJvbVJlc3BvbnNpYmlsaXR5KXtcclxuICAgICAgdGhpcy5ub25EaXNhYmxlZFVzZXJzID0gdGhpcy5kaXNhYmxlVXNlcnMoKVxyXG4gICAgfVxyXG4gICAgaWYoZXZ0Py50YXJnZXQ/LmNoZWNrZWQgPT09IHRydWUpe1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLmZyb21SZXNwb25zaWJpbGl0eSA/IHRoaXMubm9uRGlzYWJsZWRVc2VycyA6IHRoaXMudXNlcnNMaXN0O1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcklkcyA9ICB0aGlzLmZyb21SZXNwb25zaWJpbGl0eSA/IHRoaXMubm9uRGlzYWJsZWRVc2Vycy5tYXAoKGVsZTphbnkpID0+IGVsZT8ubWVtYmVyX2lkKSA6IHRoaXMudXNlcnNMaXN0Lm1hcCgoZWxlOmFueSkgPT4gZWxlPy5tZW1iZXJfaWQpO1xyXG5cclxuICAgIH1lbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gdGhpcy51c2Vyc0xpc3QuZmlsdGVyKChlbGU6YW55KSA9PiB0aGlzLm5vblJlbW92YWJsZVVzZXJJZHMuaW5jbHVkZXMoZWxlPy5tZW1iZXJfaWQpKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJJZHMgPSB0aGlzLnNlbGVjdGVkVXNlcnMubWFwKChlbGU6YW55KSA9PiBlbGU/Lm1lbWJlcl9pZCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFsbFVzZXJTZWxlY3RlZFN0YXR1cygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIyMjIyBEZXNjcmlwdGlvblxyXG4gICAqIFNlbGVjdHMgaXRlbSBvciBkZXNlbGVjdCBhIGl0bWVcclxuICAgKiBAcGFyYW0gZXZ0XHJcbiAgICogQHBhcmFtIHBheWxvYWRcclxuICAgKi9cclxuICBzZWxlY3RHcm91cChldnQ6IGFueSwgcGF5bG9hZDogYW55KSB7XHJcbiAgICBldnQ/LnRhcmdldD8uY2hlY2tlZCA9PT0gdHJ1ZSA/IHRoaXMubWFuaXB1bGF0ZVNlbGVjdGVkR3JvdXAoJ0FERCcsIHBheWxvYWQpIDogdGhpcy5tYW5pcHVsYXRlU2VsZWN0ZWRHcm91cCgnREVMRVRFJywgcGF5bG9hZClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICMjIyMgRGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIE1hbmlwdWxhdGVzIHNlbGVjdGVkIGl0ZW1zIGluIHJvbGUgbGlzdFxyXG4gICAqIEBwYXJhbSBhY3Rpb24gOidBREQnIHwgJ0RFTEVURSdcclxuICAgKiBAcGFyYW0gcGF5bG9hZFxyXG4gICAqL1xyXG4gIG1hbmlwdWxhdGVTZWxlY3RlZEdyb3VwKGFjdGlvbjogJ0FERCcgfCAnREVMRVRFJywgcGF5bG9hZDogYW55KSB7XHJcbiAgICBpZiAoYWN0aW9uID09PSAnQUREJykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBzID0gdGhpcy51bmlxdWVCeVByb3AoWy4uLnRoaXMuc2VsZWN0ZWRHcm91cHMsIC4uLltwYXlsb2FkXV0sICdncm91cF9pZCcpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBJZHMgPSB0aGlzLnNlbGVjdGVkR3JvdXBzLm1hcCgoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWQpXHJcbiAgICB9IGVsc2UgaWYgKGFjdGlvbiA9PT0gJ0RFTEVURScpIHtcclxuICAgICAgbGV0IGluZGV4ID0gdGhpcy5zZWxlY3RlZEdyb3Vwcy5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkID09PSBwYXlsb2FkPy5ncm91cF9pZCk7XHJcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IHRoaXMuc2VsZWN0ZWRHcm91cHMuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCAhPT0gcGF5bG9hZD8uZ3JvdXBfaWQpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcyA9IHRoaXMuc2VsZWN0ZWRHcm91cElkcy5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUgIT09IHBheWxvYWQ/Lmdyb3VwX2lkKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmFsbEdyb3VwU2VsZWN0ZWRTdGF0dXMoKTtcclxuICB9XHJcbiAgc2VsZWN0QWxsR3JvdXAoZXZ0OmFueSl7XHJcbiAgICBjb25zdCBncm91cERhdGEgPSB0aGlzLnNlYXJjaFBpcGUudHJhbnNmb3JtKHRoaXMuZ3JvdXBzTGlzdCx0aGlzLnNlYXJjaEtleSwgJ2dyb3VwX25hbWUnKTtcclxuICAgIGlmKGV2dD8udGFyZ2V0Py5jaGVja2VkID09PSB0cnVlKXtcclxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IGdyb3VwRGF0YTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzID0gIGdyb3VwRGF0YS5tYXAoKGVsZTphbnkpID0+IGVsZT8uZ3JvdXBfaWQpO1xyXG5cclxuICAgIH1lbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IHRoaXMuZ3JvdXBzTGlzdC5maWx0ZXIoKGVsZTphbnkpID0+IHRoaXMubm9uUmVtb3ZhYmxlR3JvdXBJZHMuaW5jbHVkZXMoZWxlPy5ncm91cF9pZCkpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBJZHMgPSB0aGlzLnNlbGVjdGVkR3JvdXBzLm1hcCgoZWxlOmFueSkgPT4gZWxlPy5ncm91cF9pZCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFsbEdyb3VwU2VsZWN0ZWRTdGF0dXMoKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgYW5pbWF0aW9uID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGxldCBkaXNhYmxlZElkcyA9IFsuLi4gdGhpcy5kaXNhYmxlZElkcywuLi50aGlzLm5vblJlbW92YWJsZVVzZXJJZHNdXHJcbiAgICAgdGhpcy5kaXNhYmxlZElkcyA9IFsuLi5uZXcgU2V0KGRpc2FibGVkSWRzKV1cclxuICAgIHRoaXMucGFnaW5hdGlvblZpc2libGUoKTtcclxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcbiAgY3VycmVudFRhYiA9ICdVU0VSJ1xyXG4gIHN3aXRjaFRhYih0YWI6c3RyaW5nKXtcclxuICAgIHRoaXMuY3VycmVudFRhYiA9IHRhYjtcclxuICAgIHRoaXMuc2VhcmNoS2V5ID0gJydcclxuICB9XHJcblxyXG4gIHNhdmVMaXN0KCkge1xyXG4gICAgaWYodGhpcy5kZWZhdWx0U2VsZWN0ZWRVc2VySWRzICYmIHRoaXMuZGVmYXVsdFNlbGVjdGVkVXNlcklkcz8ubGVuZ3RoICYmIHRoaXMuc2VsZWN0ZWRVc2VySWRzICYmIHRoaXMuc2VsZWN0ZWRVc2VySWRzPy5sZW5ndGgpe1xyXG4gICAgICB0aGlzLmRlZmF1bHRTZWxlY3RlZFVzZXJJZHM/LmZvckVhY2goKGlkOiBudW1iZXIpOiBhbnkgPT4ge1xyXG4gICAgICAgIGlmKCF0aGlzLnNlbGVjdGVkVXNlcklkcz8uaW5jbHVkZXMoaWQpKXtcclxuICAgICAgICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbiA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYoIXRoaXMuc2hvd0NvbmZpcm1hdGlvbikgdGhpcy5zYXZlLmVtaXQoeyB1c2VyczogdGhpcy5zZWxlY3RlZFVzZXJzLCBncm91cHM6IHRoaXMuc2VsZWN0ZWRHcm91cHMgfSk7XHJcbiAgfVxyXG5cclxuICBjb25maXJtQWN0aW9uKGV2dDonWUVTJ3wnTk8nKXtcclxuICAgIGlmKGV2dCA9PT0gJ1lFUycpe1xyXG4gICAgICB0aGlzLnNhdmUuZW1pdCh7IHVzZXJzOiB0aGlzLnNlbGVjdGVkVXNlcnMsIGdyb3VwczogdGhpcy5zZWxlY3RlZEdyb3VwcyB9KTtcclxuICAgIH1lbHNlIGlmKGV2dCA9PT0gJ05PJyl7XHJcbiAgICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VMaXN0KCkge1xyXG4gICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgLy9cclxuXHJcbiAgLyoqXHJcbiAqICMjIyMgRGVzY3JpcHRpb25cclxuICpcclxuICogUmV0dXJucyB0aGUgdW5pcXVlIGFycmF5IG9mIG9iamVjdCBiYXNlZCBvbiB1bmlxdWUga2V5XHJcbiAqIEBwYXJhbSBhcnJheVxyXG4gKiBAcGFyYW0ga2V5XHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG4gIHVuaXF1ZUJ5UHJvcChhcnJheTogYW55LCBrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIEFycmF5LmZyb20oXHJcbiAgICAgIGFycmF5XHJcbiAgICAgICAgLnJlZHVjZShcclxuICAgICAgICAgIChhY2M6IGFueSwgaXRlbTogYW55KSA9PiAoXHJcbiAgICAgICAgICAgIGl0ZW0gJiYgaXRlbVtrZXldICYmIGFjYy5zZXQoaXRlbVtrZXldLCBpdGVtKSxcclxuICAgICAgICAgICAgYWNjXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgICAgbmV3IE1hcCgpXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC52YWx1ZXMoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHBhZ2luYXRpb25WaXNpYmxlKCl7XHJcbiAgICBpZih0aGlzLnVzZXJMaXN0SW5mbz8udG90YWxfcGFnZXMgID4gMSl7XHJcbiAgICAgIHRoaXMuaXNQYWdpbmF0aW9uID0gdHJ1ZTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmlzUGFnaW5hdGlvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICB3b3JrZmxvd1R5cGVDaGFuZ2VkKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHRoaXMucmV2aWV3ZXJXb3JrZmxvd1R5cGUgID0gZXZlbnQ7XHJcbiAgICB0aGlzLnJldmlld2VyV29ya2Zsb3dUeXBlQ2hhbmdlLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgZGlzYWJsZVVzZXJzKCl7XHJcbiAgICBzd2l0Y2ggKHRoaXMuZnJvbVJlc3BvbnNpYmlsaXR5KSB7XHJcbiAgICAgIGNhc2UgXCJBc3NpZ25lZVwiOlxyXG4gICAgICAgIHRoaXMubm9uRGlzYWJsZWRVc2VycyA9IHRoaXMudXNlcnNMaXN0LmZpbHRlcigodXNlcjphbnkpPT4gISggdGhpcy5yZXZpZXdlcklkcz8uaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKSB8fCB0aGlzLm92ZXJzZWVySWRzPy5pbmNsdWRlcyh1c2VyPy5tZW1iZXJfaWQpKSlcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIlJldmlld2VyXCI6XHJcbiAgICAgICAgdGhpcy5ub25EaXNhYmxlZFVzZXJzID0gdGhpcy51c2Vyc0xpc3QuZmlsdGVyKCh1c2VyOmFueSk9PiAhKCB0aGlzLm92ZXJzZWVySWRzPy5pbmNsdWRlcyh1c2VyPy5tZW1iZXJfaWQpIHx8IHRoaXMuYXNzaWduZWVJZHM/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZCkpKVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJPdmVyc2VlclwiOlxyXG4gICAgICAgIHRoaXMubm9uRGlzYWJsZWRVc2VycyA9IHRoaXMudXNlcnNMaXN0LmZpbHRlcigodXNlcjphbnkpPT4gISh0aGlzLmFzc2lnbm9ySWQ/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZCkgfHwgdGhpcy5yZXZpZXdlcklkcz8uaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKXx8IHRoaXMuYXNzaWduZWVJZHM/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZCkpKVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMubm9uRGlzYWJsZWRVc2VycztcclxuICB9XHJcbn1cclxuIl19
|
|
332
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ncm91cC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXByb2dyYW0vY3JlYXRlLXByb2dyYW0tdWkvdXNlci1ncm91cC1saXN0L3VzZXItZ3JvdXAtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFPbEQsTUFBTSxPQUFPLHNCQUFzQjtJQWtPakM7UUFoT1UsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFN0IsZUFBVSxHQUFFLGdCQUFnQixDQUFDO1FBQzdCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixnQkFBVyxHQUFHLEtBQUssQ0FBQTtRQUNuQix5QkFBb0IsR0FBVyxZQUFZLENBQUM7UUFDM0MsK0JBQTBCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxTQUFJLEdBQVksUUFBUSxDQUFDO1FBQ3pCLGNBQVMsR0FBRSxFQUFFLENBQUE7UUFDdEIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUdmLGNBQVMsR0FBUSxFQUFFLENBQUM7UUFDcEIsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUViLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFDckIsZ0JBQVcsR0FBTyxFQUFFLENBQUM7UUFDckIsZ0JBQVcsR0FBTyxFQUFFLENBQUM7UUFDckIsZ0JBQVcsR0FBUSxFQUFFLENBQUM7UUFDdEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFJbEIs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QU07WUFDUixRQUFRO1NBQ1Q7UUFDRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDOzs7WUFuVUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLG8vY0FBK0M7O2FBRWhEOzs7O21CQUdFLE1BQU07cUJBQ04sTUFBTTsyQkFDTixLQUFLO3lCQUNMLEtBQUs7MkJBQ0wsS0FBSzsrQkFDTCxLQUFLOzBCQUNMLEtBQUs7bUNBQ0wsS0FBSzt5Q0FDTCxNQUFNO21CQUNOLEtBQUs7d0JBQ0wsS0FBSztpQ0FNTixLQUFLO3lCQUNMLEtBQUs7MEJBQ0wsS0FBSzswQkFDTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsS0FBSzsyQkFDSixLQUFLOzRCQUNMLEtBQUs7NEJBRUwsTUFBTTswQkFFTixLQUFLO2tDQUNMLEtBQUs7bUNBUUwsS0FBSztzQkFVUCxLQUFLOzBCQUVILEtBQUssU0FBQyxVQUFVOzhCQVVoQixLQUFLLFNBQUMsZUFBZTtzQ0FTckIsS0FBSyxTQUFDLHNCQUFzQjt1QkFJNUIsS0FBSzsyQkFrQkwsS0FBSyxTQUFDLFdBQVc7K0JBVWpCLEtBQUssU0FBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNlYXJjaFBpcGUgfSBmcm9tICcuLi9waXBlcy9zZWFyY2gucGlwZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3VzZXItZ3JvdXAtbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItZ3JvdXAtbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1ncm91cC1saXN0LmNvbXBvbmVudC5sZXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJHcm91cExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBAT3V0cHV0KCkgc2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIGdyb3VwRW5hYmxlZCAhOiBmYWxzZTtcclxuICBASW5wdXQoKSBwYW5lbFRpdGxlID0nU2VsZWN0IFVzZXIocyknO1xyXG4gIEBJbnB1dCgpIHNpbmdsZVNlbGVjdCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkUmV2aWV3ZXIgPSBmYWxzZTtcclxuICBASW5wdXQoKSBmZWF0dXJlZmxhZyA9IGZhbHNlXHJcbiAgQElucHV0KCkgcmV2aWV3ZXJXb3JrZmxvd1R5cGU6IHN0cmluZyA9ICdTRVFVRU5USUFMJztcclxuICBAT3V0cHV0KCkgcmV2aWV3ZXJXb3JrZmxvd1R5cGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgbW9kZTogc3RyaW5nICA9ICdDUkVBVEUnO1xyXG4gIEBJbnB1dCgpIGZpZWxkVHlwZSA9JydcclxuICBzZWFyY2hLZXkgPSAnJztcclxuICBpc1BhZ2luYXRpb246IGFueTtcclxuXHJcbiAgdXNlcnNMaXN0OiBhbnkgPSBbXTtcclxuICBncm91cHNMaXN0OiBhbnkgPSBbXTtcclxuIEBJbnB1dCgpIGZyb21SZXNwb25zaWJpbGl0eTphbnk7XHJcbiBASW5wdXQoKSBhc3NpZ25vcklkOmFueVtdID1bXTtcclxuIEBJbnB1dCgpIGFzc2lnbmVlSWRzOmFueVtdPVtdO1xyXG4gQElucHV0KCkgcmV2aWV3ZXJJZHM6YW55W109W107XHJcbiBASW5wdXQoKSBvdmVyc2VlcklkczphbnlbXSA9W107XHJcbiBASW5wdXQoKSBGcm9tUHJvZ3JhbSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHVzZXJMaXN0SW5mbyAhOiBhbnk7XHJcbiAgQElucHV0KCkgZ3JvdXBMaXN0SW5mbyAhOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoKSBmZXRjaFVzZXJEYXRhID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoKSBkaXNhYmxlZElkczogYW55ID0gW107XHJcbiAgQElucHV0KCkgbm9uUmVtb3ZhYmxlVXNlcklkczogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRVc2VyczogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRVc2VySWRzOiBhbnkgPSBbXTtcclxuICBhbGxVc2Vyc0lkczogYW55ID0gW107XHJcbiAgYWxsVXNlclNlbGVjdGVkID0gZmFsc2U7XHJcbiAgYWxsVXNlclNlbGVjdGVkRGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcblxyXG4gIEBJbnB1dCgpIG5vblJlbW92YWJsZUdyb3VwSWRzOiBhbnkgPSBbXTtcclxuICBzZWxlY3RlZEdyb3VwczogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRHcm91cElkczogYW55ID0gW107XHJcbiAgYWxsR3JvdXBzSWRzOiBhbnkgPSBbXTtcclxuICBhbGxHcm91cFNlbGVjdGVkID0gZmFsc2U7XHJcbiAgYWxsR3JvdXBTZWxlY3RlZERpc2FibGVkID0gZmFsc2U7XHJcbiAgc2VhcmNoUGlwZSA9IG5ldyBTZWFyY2hQaXBlKCk7XHJcblxyXG4gIHVzZXJDdXJyZW50UGFnZSA9IDE7XHJcbiAgZ3JvdXBDdXJyZW50UGFnZSA9IDE7XHJcbkBJbnB1dCgpIGxvYWRpbmcgITpib29sZWFuO1xyXG4gIG5vbkRpc2FibGVkVXNlcnM6IGFueVtdPVtdO1xyXG4gIEBJbnB1dCgndXNlcmxpc3QnKSBzZXQgc2V0VXNlckxpc3QodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICYmIHZhbHVlPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy51c2Vyc0xpc3QgPSBbLi4udmFsdWVdO1xyXG4gICAgICB0aGlzLmFsbFVzZXJzSWRzID0gdGhpcy51c2Vyc0xpc3QubWFwKChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQpO1xyXG4gICAgICB0aGlzLmFsbFVzZXJTZWxlY3RlZFN0YXR1cygpO1xyXG4gICAgICB0aGlzLnNldFVzZXJMaXN0SW5pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIEBJbnB1dCgnc2VsZWN0ZWRVc2VycycpIHNldCBzZXRTZWxlY3RlZFVzZXIodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gdGhpcy51bmlxdWVCeVByb3AoWy4uLnRoaXMuc2VsZWN0ZWRVc2VycywgLi4udmFsdWVdLCAnbWVtYmVyX2lkJyk7XHJcbiAgICB0aGlzLnNlbGVjdGVkVXNlcklkcyA9IHRoaXMuc2VsZWN0ZWRVc2Vycy5tYXAoKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCk7XHJcbiAgICB0aGlzLmFsbFVzZXJTZWxlY3RlZFN0YXR1cygpO1xyXG4gICAgdGhpcy5zZXRVc2VyTGlzdEluaXQoKTtcclxuICB9XHJcblxyXG4gIGRlZmF1bHRTZWxlY3RlZFVzZXJzOiBhbnkgID0gW107XHJcbiAgZGVmYXVsdFNlbGVjdGVkVXNlcklkczogYW55ID0gW107XHJcbiAgQElucHV0KCdkZWZhdWx0U2VsZWN0ZWRVc2VycycpIHNldCBzZXREZWZhdWx0U2VsZWN0ZWRVc2Vycyh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLmRlZmF1bHRTZWxlY3RlZFVzZXJzID0gdGhpcy51bmlxdWVCeVByb3AoWy4uLnRoaXMuZGVmYXVsdFNlbGVjdGVkVXNlcnMsIC4uLnZhbHVlXSwgJ21lbWJlcl9pZCcpO1xyXG4gICAgdGhpcy5kZWZhdWx0U2VsZWN0ZWRVc2VySWRzID0gdGhpcy5kZWZhdWx0U2VsZWN0ZWRVc2Vycy5tYXAoKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHVzZXJUeXBlOiBzdHJpbmcgPSAnYXNzaWduZWVzJztcclxuICBzaG93Q29uZmlybWF0aW9uID0gZmFsc2U7XHJcblxyXG5cclxuICBzZXRVc2VyTGlzdEluaXQoKSB7XHJcbiAgICBpZiAodGhpcy51c2VyQ3VycmVudFBhZ2UgPT09IDEpIHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkVXNlcnM7XHJcbiAgICAgIGNvbnN0IG90aGVyVXNlciA9IHRoaXMudXNlcnNMaXN0LmZpbHRlcigoZWxlOiBhbnkpID0+ICF0aGlzLnNlbGVjdGVkVXNlcklkcy5pbmNsdWRlcyhlbGU/Lm1lbWJlcl9pZCkpO1xyXG4gICAgICBjb25zb2xlLmxvZyhcImZzZnNmc2ZcIiwgc2VsZWN0ZWQsIG90aGVyVXNlcilcclxuICAgICAgdGhpcy51c2Vyc0xpc3QgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4uc2VsZWN0ZWQ/LnNvcnQoKSwgLi4ub3RoZXJVc2VyPy5zb3J0KCldLCAnbWVtYmVyX2lkJylcclxuICAgIH1cclxuICB9XHJcbiAgYWxsVXNlclNlbGVjdGVkU3RhdHVzKCkge1xyXG4gICAgdGhpcy5hbGxVc2VyU2VsZWN0ZWQgPSB0aGlzLmFsbFVzZXJzSWRzLnNvcnQoKS50b1N0cmluZygpID09PSB0aGlzLnNlbGVjdGVkVXNlcklkcy5zb3J0KCk/LnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLmFsbFVzZXJTZWxlY3RlZERpc2FibGVkID0gKHRoaXMuYWxsVXNlcnNJZHMuc29ydCgpLnRvU3RyaW5nKCkgPT09IHRoaXMuc2VsZWN0ZWRVc2VySWRzLnNvcnQoKT8udG9TdHJpbmcoKSApICYmIHRoaXMuYWxsVXNlcnNJZHMuc29ydCgpLnRvU3RyaW5nKCkgPT09IHRoaXMubm9uUmVtb3ZhYmxlVXNlcklkcy5zb3J0KCk/LnRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KCdncm91cExpc3QnKSBzZXQgc2V0R3JvdXBMaXN0KHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZT8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXBzTGlzdCA9IFsuLi52YWx1ZV07XHJcbiAgICAgIHRoaXMuYWxsR3JvdXBzSWRzID0gdGhpcy5ncm91cHNMaXN0Lm1hcCgoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWQpO1xyXG4gICAgICB0aGlzLmFsbEdyb3VwU2VsZWN0ZWRTdGF0dXMoKTtcclxuICAgICAgdGhpcy5zZXRHcm91cExpc3RJbml0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KCdzZWxlY3RlZEdyb3VwcycpIHNldCBzZXRTZWxlY3RlZEdyb3VwKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRHcm91cHMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4udGhpcy5zZWxlY3RlZEdyb3VwcywgLi4udmFsdWVdLCAnZ3JvdXBfaWQnKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcyA9IHRoaXMuc2VsZWN0ZWRHcm91cHMubWFwKChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCk7XHJcbiAgICB0aGlzLmFsbEdyb3VwU2VsZWN0ZWRTdGF0dXMoKTtcclxuICAgIHRoaXMuc2V0R3JvdXBMaXN0SW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0R3JvdXBMaXN0SW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnVzZXJDdXJyZW50UGFnZSA9PT0gMSkge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRHcm91cHM7XHJcbiAgICAgIGNvbnN0IG90aGVyR3JvdXAgPSB0aGlzLmdyb3Vwc0xpc3QuZmlsdGVyKChlbGU6IGFueSkgPT4gIXRoaXMuc2VsZWN0ZWRHcm91cElkcy5pbmNsdWRlcyhlbGU/Lmdyb3VwX2lkKSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZnNmc2ZzZlwiLCBzZWxlY3RlZCwgb3RoZXJHcm91cClcclxuICAgICAgdGhpcy5ncm91cHNMaXN0ID0gdGhpcy51bmlxdWVCeVByb3AoWy4uLnNlbGVjdGVkPy5zb3J0KCksIC4uLm90aGVyR3JvdXA/LnNvcnQoKV0sICdncm91cF9pZCcpXHJcbiAgICB9XHJcbiAgfVxyXG4gIGFsbEdyb3VwU2VsZWN0ZWRTdGF0dXMoKSB7XHJcbiAgICB0aGlzLmFsbEdyb3VwU2VsZWN0ZWQgPSB0aGlzLmFsbEdyb3Vwc0lkcz8uc29ydCgpPy50b1N0cmluZygpID09PSB0aGlzLnNlbGVjdGVkR3JvdXBJZHM/LnNvcnQoKT8udG9TdHJpbmcoKTtcclxuICAgIHRoaXMuYWxsR3JvdXBTZWxlY3RlZERpc2FibGVkID0gKHRoaXMuYWxsR3JvdXBzSWRzLnNvcnQoKS50b1N0cmluZygpID09PSB0aGlzLnNlbGVjdGVkR3JvdXBJZHMuc29ydCgpPy50b1N0cmluZygpICkgJiYgdGhpcy5hbGxHcm91cHNJZHMuc29ydCgpLnRvU3RyaW5nKCkgPT09IHRoaXMubm9uUmVtb3ZhYmxlR3JvdXBJZHMuc29ydCgpPy50b1N0cmluZygpO1xyXG4gIH1cclxuXHJcblxyXG4gIHVzZXJQYWdlQ2hhbmdlKHBhZ2U6IGFueSkge1xyXG4gICAgdGhpcy51c2VyQ3VycmVudFBhZ2UgPSBwYWdlO1xyXG4gICAgdGhpcy5mZXRjaFVzZXJEYXRhLmVtaXQoeyBwYWdlLCBzZWFyY2hLZXk6IHRoaXMuc2VhcmNoS2V5IH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIyMjIyBEZXNjcmlwdGlvblxyXG4gICAqIFNlbGVjdHMgaXRlbSBvciBkZXNlbGVjdCBhIGl0bWVcclxuICAgKiBAcGFyYW0gZXZ0XHJcbiAgICogQHBhcmFtIHBheWxvYWRcclxuICAgKi9cclxuICBzZWxlY3RJdGVtKGV2dDogYW55LCBwYXlsb2FkOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiZnJvbSBzZWxcIixldnQpXHJcbiAgICBldnQ/LnRhcmdldD8uY2hlY2tlZCA9PT0gdHJ1ZSA/IHRoaXMubWFuaXB1bGF0ZVNlbGVjdGVkVXNlcignQUREJywgcGF5bG9hZCkgOiB0aGlzLm1hbmlwdWxhdGVTZWxlY3RlZFVzZXIoJ0RFTEVURScsIHBheWxvYWQpXHJcbiAgfVxyXG5cclxuICBzZWxlY3RJdGVtUmFkaW8oZXZ0OmFueSxwYXlsb2FkOmFueSl7XHJcbiAgICBpZihldnQ/LnRhcmdldD8uY2hlY2tlZCl7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IFtdO1xyXG4gICAgICB0aGlzLm1hbmlwdWxhdGVTZWxlY3RlZFVzZXIoJ0FERCcsIHBheWxvYWQpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiBNYW5pcHVsYXRlcyBzZWxlY3RlZCBpdGVtcyBpbiByb2xlIGxpc3RcclxuICAgKiBAcGFyYW0gYWN0aW9uIDonQUREJyB8ICdERUxFVEUnXHJcbiAgICogQHBhcmFtIHBheWxvYWRcclxuICAgKi9cclxuICBtYW5pcHVsYXRlU2VsZWN0ZWRVc2VyKGFjdGlvbjogJ0FERCcgfCAnREVMRVRFJywgcGF5bG9hZDogYW55KSB7XHJcbiAgICBpZiAoYWN0aW9uID09PSAnQUREJykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4udGhpcy5zZWxlY3RlZFVzZXJzLCAuLi5bcGF5bG9hZF1dLCAnbWVtYmVyX2lkJyk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VySWRzID0gdGhpcy5zZWxlY3RlZFVzZXJzLm1hcCgoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkKVxyXG4gICAgfSBlbHNlIGlmIChhY3Rpb24gPT09ICdERUxFVEUnKSB7XHJcbiAgICAgIGxldCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRVc2Vycy5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCA9PT0gcGF5bG9hZD8ubWVtYmVyX2lkKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLnNlbGVjdGVkVXNlcnMuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQgIT09IHBheWxvYWQ/Lm1lbWJlcl9pZCk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFVzZXJJZHMgPSB0aGlzLnNlbGVjdGVkVXNlcklkcy5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUgIT09IHBheWxvYWQ/Lm1lbWJlcl9pZClcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5hbGxVc2VyU2VsZWN0ZWRTdGF0dXMoKTtcclxuICB9XHJcbiAgc2VsZWN0QWxsVXNlcihldnQ6YW55KXtcclxuICAgIGlmKHRoaXMuZnJvbVJlc3BvbnNpYmlsaXR5KXtcclxuICAgICAgdGhpcy5ub25EaXNhYmxlZFVzZXJzID0gdGhpcy5kaXNhYmxlVXNlcnMoKVxyXG4gICAgfVxyXG4gICAgaWYoZXZ0Py50YXJnZXQ/LmNoZWNrZWQgPT09IHRydWUpe1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLmZyb21SZXNwb25zaWJpbGl0eSA/IHRoaXMubm9uRGlzYWJsZWRVc2VycyA6IHRoaXMudXNlcnNMaXN0O1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcklkcyA9ICB0aGlzLmZyb21SZXNwb25zaWJpbGl0eSA/IHRoaXMubm9uRGlzYWJsZWRVc2Vycy5tYXAoKGVsZTphbnkpID0+IGVsZT8ubWVtYmVyX2lkKSA6IHRoaXMudXNlcnNMaXN0Lm1hcCgoZWxlOmFueSkgPT4gZWxlPy5tZW1iZXJfaWQpO1xyXG5cclxuICAgIH1lbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gdGhpcy51c2Vyc0xpc3QuZmlsdGVyKChlbGU6YW55KSA9PiB0aGlzLm5vblJlbW92YWJsZVVzZXJJZHMuaW5jbHVkZXMoZWxlPy5tZW1iZXJfaWQpKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJJZHMgPSB0aGlzLnNlbGVjdGVkVXNlcnMubWFwKChlbGU6YW55KSA9PiBlbGU/Lm1lbWJlcl9pZCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFsbFVzZXJTZWxlY3RlZFN0YXR1cygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIyMjIyBEZXNjcmlwdGlvblxyXG4gICAqIFNlbGVjdHMgaXRlbSBvciBkZXNlbGVjdCBhIGl0bWVcclxuICAgKiBAcGFyYW0gZXZ0XHJcbiAgICogQHBhcmFtIHBheWxvYWRcclxuICAgKi9cclxuICBzZWxlY3RHcm91cChldnQ6IGFueSwgcGF5bG9hZDogYW55KSB7XHJcbiAgICBldnQ/LnRhcmdldD8uY2hlY2tlZCA9PT0gdHJ1ZSA/IHRoaXMubWFuaXB1bGF0ZVNlbGVjdGVkR3JvdXAoJ0FERCcsIHBheWxvYWQpIDogdGhpcy5tYW5pcHVsYXRlU2VsZWN0ZWRHcm91cCgnREVMRVRFJywgcGF5bG9hZClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICMjIyMgRGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIE1hbmlwdWxhdGVzIHNlbGVjdGVkIGl0ZW1zIGluIHJvbGUgbGlzdFxyXG4gICAqIEBwYXJhbSBhY3Rpb24gOidBREQnIHwgJ0RFTEVURSdcclxuICAgKiBAcGFyYW0gcGF5bG9hZFxyXG4gICAqL1xyXG4gIG1hbmlwdWxhdGVTZWxlY3RlZEdyb3VwKGFjdGlvbjogJ0FERCcgfCAnREVMRVRFJywgcGF5bG9hZDogYW55KSB7XHJcbiAgICBpZiAoYWN0aW9uID09PSAnQUREJykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBzID0gdGhpcy51bmlxdWVCeVByb3AoWy4uLnRoaXMuc2VsZWN0ZWRHcm91cHMsIC4uLltwYXlsb2FkXV0sICdncm91cF9pZCcpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBJZHMgPSB0aGlzLnNlbGVjdGVkR3JvdXBzLm1hcCgoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWQpXHJcbiAgICB9IGVsc2UgaWYgKGFjdGlvbiA9PT0gJ0RFTEVURScpIHtcclxuICAgICAgbGV0IGluZGV4ID0gdGhpcy5zZWxlY3RlZEdyb3Vwcy5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkID09PSBwYXlsb2FkPy5ncm91cF9pZCk7XHJcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IHRoaXMuc2VsZWN0ZWRHcm91cHMuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCAhPT0gcGF5bG9hZD8uZ3JvdXBfaWQpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcyA9IHRoaXMuc2VsZWN0ZWRHcm91cElkcy5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUgIT09IHBheWxvYWQ/Lmdyb3VwX2lkKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmFsbEdyb3VwU2VsZWN0ZWRTdGF0dXMoKTtcclxuICB9XHJcbiAgc2VsZWN0QWxsR3JvdXAoZXZ0OmFueSl7XHJcbiAgICBjb25zdCBncm91cERhdGEgPSB0aGlzLnNlYXJjaFBpcGUudHJhbnNmb3JtKHRoaXMuZ3JvdXBzTGlzdCx0aGlzLnNlYXJjaEtleSwgJ2dyb3VwX25hbWUnKTtcclxuICAgIGlmKGV2dD8udGFyZ2V0Py5jaGVja2VkID09PSB0cnVlKXtcclxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IGdyb3VwRGF0YTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzID0gIGdyb3VwRGF0YS5tYXAoKGVsZTphbnkpID0+IGVsZT8uZ3JvdXBfaWQpO1xyXG5cclxuICAgIH1lbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IHRoaXMuZ3JvdXBzTGlzdC5maWx0ZXIoKGVsZTphbnkpID0+IHRoaXMubm9uUmVtb3ZhYmxlR3JvdXBJZHMuaW5jbHVkZXMoZWxlPy5ncm91cF9pZCkpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBJZHMgPSB0aGlzLnNlbGVjdGVkR3JvdXBzLm1hcCgoZWxlOmFueSkgPT4gZWxlPy5ncm91cF9pZCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFsbEdyb3VwU2VsZWN0ZWRTdGF0dXMoKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgYW5pbWF0aW9uID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGxldCBkaXNhYmxlZElkcyA9IFsuLi4gdGhpcy5kaXNhYmxlZElkcywuLi50aGlzLm5vblJlbW92YWJsZVVzZXJJZHNdXHJcbiAgICAgdGhpcy5kaXNhYmxlZElkcyA9IFsuLi5uZXcgU2V0KGRpc2FibGVkSWRzKV1cclxuICAgIHRoaXMucGFnaW5hdGlvblZpc2libGUoKTtcclxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcbiAgY3VycmVudFRhYiA9ICdVU0VSJ1xyXG4gIHN3aXRjaFRhYih0YWI6c3RyaW5nKXtcclxuICAgIHRoaXMuY3VycmVudFRhYiA9IHRhYjtcclxuICAgIHRoaXMuc2VhcmNoS2V5ID0gJydcclxuICB9XHJcblxyXG4gIHNhdmVMaXN0KCkge1xyXG4gICAgaWYodGhpcy5kZWZhdWx0U2VsZWN0ZWRVc2VySWRzICYmIHRoaXMuZGVmYXVsdFNlbGVjdGVkVXNlcklkcz8ubGVuZ3RoICYmIHRoaXMuc2VsZWN0ZWRVc2VySWRzICYmIHRoaXMuc2VsZWN0ZWRVc2VySWRzPy5sZW5ndGgpe1xyXG4gICAgICB0aGlzLmRlZmF1bHRTZWxlY3RlZFVzZXJJZHM/LmZvckVhY2goKGlkOiBudW1iZXIpOiBhbnkgPT4ge1xyXG4gICAgICAgIGlmKCF0aGlzLnNlbGVjdGVkVXNlcklkcz8uaW5jbHVkZXMoaWQpKXtcclxuICAgICAgICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbiA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYoIXRoaXMuc2hvd0NvbmZpcm1hdGlvbikgdGhpcy5zYXZlLmVtaXQoeyB1c2VyczogdGhpcy5zZWxlY3RlZFVzZXJzLCBncm91cHM6IHRoaXMuc2VsZWN0ZWRHcm91cHMgfSk7XHJcbiAgfVxyXG5cclxuICBjb25maXJtQWN0aW9uKGV2dDonWUVTJ3wnTk8nKXtcclxuICAgIGlmKGV2dCA9PT0gJ1lFUycpe1xyXG4gICAgICB0aGlzLnNhdmUuZW1pdCh7IHVzZXJzOiB0aGlzLnNlbGVjdGVkVXNlcnMsIGdyb3VwczogdGhpcy5zZWxlY3RlZEdyb3VwcyB9KTtcclxuICAgIH1lbHNlIGlmKGV2dCA9PT0gJ05PJyl7XHJcbiAgICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VMaXN0KCkge1xyXG4gICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgLy9cclxuXHJcbiAgLyoqXHJcbiAqICMjIyMgRGVzY3JpcHRpb25cclxuICpcclxuICogUmV0dXJucyB0aGUgdW5pcXVlIGFycmF5IG9mIG9iamVjdCBiYXNlZCBvbiB1bmlxdWUga2V5XHJcbiAqIEBwYXJhbSBhcnJheVxyXG4gKiBAcGFyYW0ga2V5XHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG4gIHVuaXF1ZUJ5UHJvcChhcnJheTogYW55LCBrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIEFycmF5LmZyb20oXHJcbiAgICAgIGFycmF5XHJcbiAgICAgICAgLnJlZHVjZShcclxuICAgICAgICAgIChhY2M6IGFueSwgaXRlbTogYW55KSA9PiAoXHJcbiAgICAgICAgICAgIGl0ZW0gJiYgaXRlbVtrZXldICYmIGFjYy5zZXQoaXRlbVtrZXldLCBpdGVtKSxcclxuICAgICAgICAgICAgYWNjXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgICAgbmV3IE1hcCgpXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC52YWx1ZXMoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHBhZ2luYXRpb25WaXNpYmxlKCl7XHJcbiAgICBpZih0aGlzLnVzZXJMaXN0SW5mbz8udG90YWxfcGFnZXMgID4gMSl7XHJcbiAgICAgIHRoaXMuaXNQYWdpbmF0aW9uID0gdHJ1ZTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmlzUGFnaW5hdGlvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICB3b3JrZmxvd1R5cGVDaGFuZ2VkKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHRoaXMucmV2aWV3ZXJXb3JrZmxvd1R5cGUgID0gZXZlbnQ7XHJcbiAgICB0aGlzLnJldmlld2VyV29ya2Zsb3dUeXBlQ2hhbmdlLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgZGlzYWJsZVVzZXJzKCl7XHJcbiAgICBzd2l0Y2ggKHRoaXMuZnJvbVJlc3BvbnNpYmlsaXR5KSB7XHJcbiAgICAgIGNhc2UgXCJBc3NpZ25lZVwiOlxyXG4gICAgICAgIHRoaXMubm9uRGlzYWJsZWRVc2VycyA9IHRoaXMudXNlcnNMaXN0LmZpbHRlcigodXNlcjphbnkpPT4gISggdGhpcy5yZXZpZXdlcklkcz8uaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKSB8fCB0aGlzLm92ZXJzZWVySWRzPy5pbmNsdWRlcyh1c2VyPy5tZW1iZXJfaWQpKSlcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIlJldmlld2VyXCI6XHJcbiAgICAgICAgdGhpcy5ub25EaXNhYmxlZFVzZXJzID0gdGhpcy51c2Vyc0xpc3QuZmlsdGVyKCh1c2VyOmFueSk9PiAhKCB0aGlzLm92ZXJzZWVySWRzPy5pbmNsdWRlcyh1c2VyPy5tZW1iZXJfaWQpIHx8IHRoaXMuYXNzaWduZWVJZHM/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZCkpKVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJPdmVyc2VlclwiOlxyXG4gICAgICAgIHRoaXMubm9uRGlzYWJsZWRVc2VycyA9IHRoaXMudXNlcnNMaXN0LmZpbHRlcigodXNlcjphbnkpPT4gISh0aGlzLmFzc2lnbm9ySWQ/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZCkgfHwgdGhpcy5yZXZpZXdlcklkcz8uaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKXx8IHRoaXMuYXNzaWduZWVJZHM/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZCkpKVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMubm9uRGlzYWJsZWRVc2VycztcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -168,7 +168,7 @@ function View_UserGroupListComponent_25(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵ
|
|
|
168
168
|
var pd_3 = (i1.ɵnov(_v.parent.parent.parent, 26).popover() !== false);
|
|
169
169
|
ad = (pd_3 && ad);
|
|
170
170
|
} return ad; }, null, null)), i1.ɵdid(1, 16384, null, 0, i15.PopoverDirective, [i1.ElementRef, i16.PopoverService], { placement: [0, "placement"] }, null), (_l()(), i1.ɵted(2, null, ["+", ""]))], function (_ck, _v) { var currVal_0 = "left"; _ck(_v, 1, 0, currVal_0); }, function (_ck, _v) { var _co = _v.component; var tmp_1_0; var currVal_1 = ((_co.selectedUsers == null) ? null : (((tmp_1_0 = _co.selectedUsers.slice(1)) == null) ? null : tmp_1_0.length)); _ck(_v, 2, 0, currVal_1); }); }
|
|
171
|
-
function View_UserGroupListComponent_23(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 7, "div", [["class", "chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2"]], null, null, null, null, null)), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_UserGroupListComponent_24)), i1.ɵdid(2, 16384, null, 0, i12.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵeld(3, 0, null, null, 2, "span", [["class", "chipName vx-fs-11 vx-label-txt"], ["delay", "0"], ["placement", "bottom-left"], ["type", "black"]], null, [[null, "mouseenter"], [null, "mouseover"], [null, "mouseleave"], [null, "mouseout"], [null, "click"]], function (_v, en, $event) { var ad = true; if (("mouseenter" === en)) {
|
|
171
|
+
function View_UserGroupListComponent_23(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 7, "div", [["class", "chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2"]], null, null, null, null, null)), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_UserGroupListComponent_24)), i1.ɵdid(2, 16384, null, 0, i12.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵeld(3, 0, null, null, 2, "span", [["class", "chipName vx-fs-11 vx-label-txt"], ["delay", "0"], ["placement", "bottom-left"], ["type", "black"]], null, [[null, "mouseenter"], [null, "mouseover"], [null, "mouseleave"], [null, "mouseout"], [null, "click"]], function (_v, en, $event) { var ad = true; if (("mouseenter" === en)) {
|
|
172
172
|
var pd_0 = (i1.ɵnov(_v, 4).onMouseEnter() !== false);
|
|
173
173
|
ad = (pd_0 && ad);
|
|
174
174
|
} if (("mouseover" === en)) {
|
|
@@ -204,7 +204,7 @@ function View_UserGroupListComponent_29(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵ
|
|
|
204
204
|
} return ad; }, null, null)), i1.ɵdid(1, 16384, null, 0, i15.PopoverDirective, [i1.ElementRef, i16.PopoverService], { placement: [0, "placement"] }, null), (_l()(), i1.ɵted(2, null, ["+", ""]))], function (_ck, _v) { var currVal_0 = "left"; _ck(_v, 1, 0, currVal_0); }, function (_ck, _v) { var _co = _v.component; var currVal_1 = (((_co.selectedUsers == null) ? null : _co.selectedUsers.length) - 1); _ck(_v, 2, 0, currVal_1); }); }
|
|
205
205
|
function View_UserGroupListComponent_28(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 2, null, null, null, null, null, null, null)), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_UserGroupListComponent_29)), i1.ɵdid(2, 16384, null, 0, i12.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵand(0, null, null, 0))], function (_ck, _v) { var _co = _v.component; var currVal_0 = (((_co.selectedUsers == null) ? null : _co.selectedUsers.length) > 1); _ck(_v, 2, 0, currVal_0); }, null); }
|
|
206
206
|
function View_UserGroupListComponent_26(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 6, "div", [["class", "user-group-chip"]], null, null, null, null, null)), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_UserGroupListComponent_27)), i1.ɵdid(2, 16384, null, 0, i12.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵeld(3, 0, null, null, 1, "div", [["class", "user-group-name"]], null, null, null, null, null)), (_l()(), i1.ɵted(4, null, ["", ""])), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_UserGroupListComponent_28)), i1.ɵdid(6, 16384, null, 0, i12.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null)], function (_ck, _v) { var _co = _v.component; var currVal_0 = !((_co.nonRemovableUserIds == null) ? null : _co.nonRemovableUserIds.includes(((_co.selectedUsers[0] == null) ? null : _co.selectedUsers[0].member_id))); _ck(_v, 2, 0, currVal_0); var currVal_2 = _co.groupEnabled; _ck(_v, 6, 0, currVal_2); }, function (_ck, _v) { var _co = _v.component; var currVal_1 = ((_co.selectedUsers[0] == null) ? null : _co.selectedUsers[0].member_name); _ck(_v, 4, 0, currVal_1); }); }
|
|
207
|
-
function View_UserGroupListComponent_30(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 1, "span", [["class", "userGroup-text"]], null, null, null, null, null)), (_l()(), i1.ɵted(1, null, ["User ", ""]))], null, function (_ck, _v) { var _co = _v.component; var currVal_0 = ((((_co.selectedGroups == null) ? null : _co.selectedGroups.length) > 0) ? " & " : ""); _ck(_v, 1, 0, currVal_0); }); }
|
|
207
|
+
function View_UserGroupListComponent_30(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 1, "span", [["class", "userGroup-text"]], null, null, null, null, null)), (_l()(), i1.ɵted(1, null, ["User ", ""]))], null, function (_ck, _v) { var _co = _v.component; var currVal_0 = ((((_co.selectedGroups == null) ? null : _co.selectedGroups.length) > 0) ? " & " : " selected"); _ck(_v, 1, 0, currVal_0); }); }
|
|
208
208
|
function View_UserGroupListComponent_31(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 1, "span", [["class", "userGroup-text"]], null, null, null, null, null)), (_l()(), i1.ɵted(1, null, ["Users ", ""]))], null, function (_ck, _v) { var _co = _v.component; var currVal_0 = ((((_co.selectedGroups == null) ? null : _co.selectedGroups.length) > 0) ? " & " : "selected"); _ck(_v, 1, 0, currVal_0); }); }
|
|
209
209
|
function View_UserGroupListComponent_33(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 1, "i", [["class", "icons cross"]], null, [[null, "click"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("click" === en)) {
|
|
210
210
|
var pd_0 = (_co.selectGroup({ target: { checked: false } }, _co.selectedGroups[0]) !== false);
|
|
@@ -259,7 +259,7 @@ function View_UserGroupListComponent_21(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵ
|
|
|
259
259
|
} return ad; }, i19.View_PopoverComponent_0, i19.RenderType_PopoverComponent)), i1.ɵdid(26, 114688, [["groupDisable", 4]], 0, i20.PopoverComponent, [i16.PopoverService], { dontCloseonClick: [0, "dontCloseonClick"] }, null), (_l()(), i1.ɵeld(27, 0, null, 0, 3, "div", [["class", "wf-action-list"]], null, null, null, null, null)), (_l()(), i1.ɵeld(28, 0, null, null, 2, "ul", [["class", "action-item"]], null, null, null, null, null)), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_UserGroupListComponent_39)), i1.ɵdid(30, 278528, null, 0, i12.NgForOf, [i1.ViewContainerRef, i1.TemplateRef, i1.IterableDiffers], { ngForOf: [0, "ngForOf"] }, null), (_l()(), i1.ɵeld(31, 0, null, 0, 6, "app-popover", [], null, [["window", "resize"]], function (_v, en, $event) { var ad = true; if (("window:resize" === en)) {
|
|
260
260
|
var pd_0 = (i1.ɵnov(_v, 32).sizeChange($event) !== false);
|
|
261
261
|
ad = (pd_0 && ad);
|
|
262
|
-
} return ad; }, i19.View_PopoverComponent_0, i19.RenderType_PopoverComponent)), i1.ɵdid(32, 114688, [["groupCount", 4]], 0, i20.PopoverComponent, [i16.PopoverService], { dontCloseonClick: [0, "dontCloseonClick"] }, null), (_l()(), i1.ɵeld(33, 0, null, 0, 4, "div", [["class", "wf-action-list"]], null, null, null, null, null)), (_l()(), i1.ɵeld(34, 0, null, null, 3, "ul", [["class", "action-item"]], null, null, null, null, null)), (_l()(), i1.ɵand(16777216, null, null, 2, null, View_UserGroupListComponent_41)), i1.ɵdid(36, 278528, null, 0, i12.NgForOf, [i1.ViewContainerRef, i1.TemplateRef, i1.IterableDiffers], { ngForOf: [0, "ngForOf"] }, null), i1.ɵpid(0, i12.SlicePipe, [])], function (_ck, _v) { var _co = _v.component; var currVal_0 = _co.selectedGroups; var currVal_1 = _co.selectedReviewer; var currVal_2 = _co.reviewerWorkflowType; var currVal_3 = _co.mode; _ck(_v, 1, 0, currVal_0, currVal_1, currVal_2, currVal_3); var currVal_4 =
|
|
262
|
+
} return ad; }, i19.View_PopoverComponent_0, i19.RenderType_PopoverComponent)), i1.ɵdid(32, 114688, [["groupCount", 4]], 0, i20.PopoverComponent, [i16.PopoverService], { dontCloseonClick: [0, "dontCloseonClick"] }, null), (_l()(), i1.ɵeld(33, 0, null, 0, 4, "div", [["class", "wf-action-list"]], null, null, null, null, null)), (_l()(), i1.ɵeld(34, 0, null, null, 3, "ul", [["class", "action-item"]], null, null, null, null, null)), (_l()(), i1.ɵand(16777216, null, null, 2, null, View_UserGroupListComponent_41)), i1.ɵdid(36, 278528, null, 0, i12.NgForOf, [i1.ViewContainerRef, i1.TemplateRef, i1.IterableDiffers], { ngForOf: [0, "ngForOf"] }, null), i1.ɵpid(0, i12.SlicePipe, [])], function (_ck, _v) { var _co = _v.component; var currVal_0 = _co.selectedGroups; var currVal_1 = _co.selectedReviewer; var currVal_2 = _co.reviewerWorkflowType; var currVal_3 = _co.mode; _ck(_v, 1, 0, currVal_0, currVal_1, currVal_2, currVal_3); var currVal_4 = !_co.groupEnabled; _ck(_v, 3, 0, currVal_4); var currVal_5 = (((_co.selectedUsers == null) ? null : _co.selectedUsers.length) && _co.groupEnabled); _ck(_v, 5, 0, currVal_5); var currVal_6 = (((_co.selectedUsers == null) ? null : _co.selectedUsers.length) === 1); _ck(_v, 8, 0, currVal_6); var currVal_7 = (((_co.selectedUsers == null) ? null : _co.selectedUsers.length) > 1); _ck(_v, 10, 0, currVal_7); var currVal_8 = ((_co.selectedGroups == null) ? null : _co.selectedGroups.length); _ck(_v, 12, 0, currVal_8); var currVal_9 = (((_co.selectedGroups == null) ? null : _co.selectedGroups.length) === 1); _ck(_v, 15, 0, currVal_9); var currVal_10 = (((_co.selectedGroups == null) ? null : _co.selectedGroups.length) > 1); _ck(_v, 17, 0, currVal_10); var currVal_11 = true; _ck(_v, 19, 0, currVal_11); var currVal_12 = i1.ɵunv(_v, 23, 0, i1.ɵnov(_v, 24).transform(_co.selectedUsers, 1)); _ck(_v, 23, 0, currVal_12); var currVal_13 = true; _ck(_v, 26, 0, currVal_13); var currVal_14 = _co.selectedUsers.slice(1); _ck(_v, 30, 0, currVal_14); var currVal_15 = true; _ck(_v, 32, 0, currVal_15); var currVal_16 = i1.ɵunv(_v, 36, 0, i1.ɵnov(_v, 37).transform(_co.selectedGroups, 1)); _ck(_v, 36, 0, currVal_16); }, null); }
|
|
263
263
|
function View_UserGroupListComponent_44(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 5, "div", [["class", "chip"]], null, null, null, null, null)), (_l()(), i1.ɵeld(1, 0, null, null, 4, null, null, null, null, null, null, null)), (_l()(), i1.ɵeld(2, 0, null, null, 1, "i", [["class", "icons"]], null, [[null, "click"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("click" === en)) {
|
|
264
264
|
var pd_0 = (_co.selectItem({ target: { checked: false } }, _co.selectedUsers[0]) !== false);
|
|
265
265
|
ad = (pd_0 && ad);
|
|
@@ -282,4 +282,4 @@ export function View_UserGroupListComponent_0(_l) { return i1.ɵvid(0, [i1.ɵpid
|
|
|
282
282
|
export function View_UserGroupListComponent_Host_0(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 1, "user-group-list", [], null, null, null, View_UserGroupListComponent_0, RenderType_UserGroupListComponent)), i1.ɵdid(1, 114688, null, 0, i24.UserGroupListComponent, [], null, null)], function (_ck, _v) { _ck(_v, 1, 0); }, null); }
|
|
283
283
|
var UserGroupListComponentNgFactory = i1.ɵccf("user-group-list", i24.UserGroupListComponent, View_UserGroupListComponent_Host_0, { groupEnabled: "groupEnabled", panelTitle: "panelTitle", singleSelect: "singleSelect", selectedReviewer: "selectedReviewer", featureflag: "featureflag", reviewerWorkflowType: "reviewerWorkflowType", mode: "mode", fieldType: "fieldType", fromResponsibility: "fromResponsibility", assignorId: "assignorId", assigneeIds: "assigneeIds", reviewerIds: "reviewerIds", overseerIds: "overseerIds", FromProgram: "FromProgram", userListInfo: "userListInfo", groupListInfo: "groupListInfo", disabledIds: "disabledIds", nonRemovableUserIds: "nonRemovableUserIds", nonRemovableGroupIds: "nonRemovableGroupIds", loading: "loading", setUserList: "userlist", setSelectedUser: "selectedUsers", setDefaultSelectedUsers: "defaultSelectedUsers", userType: "userType", setGroupList: "groupList", setSelectedGroup: "selectedGroups" }, { save: "save", cancel: "cancel", reviewerWorkflowTypeChange: "reviewerWorkflowTypeChange", fetchUserData: "fetchUserData" }, []);
|
|
284
284
|
export { UserGroupListComponentNgFactory as UserGroupListComponentNgFactory };
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ncm91cC1saXN0LmNvbXBvbmVudC5uZ2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1wcm9ncmFtL2NyZWF0ZS1wcm9ncmFtLXVpL3VzZXItZ3JvdXAtbGlzdC91c2VyLWdyb3VwLWxpc3QuY29tcG9uZW50Lm5nZmFjdG9yeS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXByb2dyYW0vY3JlYXRlLXByb2dyYW0tdWkvdXNlci1ncm91cC1saXN0L3VzZXItZ3JvdXAtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lFQ01VLGlRQUF1RDtpRUFDdkQsK0lBSU0sS0FIRixvUkFDdVAsWUFEL087O3dCQUEyQjtNQUFuQyx3QkFDdVAsS0FEaEQsbUNBQ25NLE1BQUEscUtBQTBPLEtBQWhKLGlEQUF5SSxJQUN2TyxvUkFBa2YsWUFBMWU7O3dCQUE0QjtNQUFwQyx3QkFBa2YsS0FBelMsaUNBQXlDLE1BQUEscUtBQXVQLEtBQTdKLGtEQUFzSix1REFGbFUsMENBQXNDLEdBQXRNLFlBQ3VQLEVBRHZGLFNBQXNDLEdBQ3hHLDBaQUF5SSxHQUN0RSwyQ0FBdUMsR0FBeE0sWUFBa2YsRUFBalYsU0FBdUMsR0FBQyxxRkFBeUMsR0FBMEYsK2FBQXNKO2lFQUtwZTs7Ozs7Ozs7Ozs7d0JBQTBJO01BQTlHOzt3QkFBdUI7TUFBbkQseWlCQUEwSSxpREFBOUcsbUJBQXVCLFlBQW5ELFlBQTBJLEVBQTlHLFNBQXVCLG1EQUFhLCtHQUF1RSxHQUF2SSw2VUFBMEksRUFBMUUsU0FBdUUsRUFBdkksMkVBQTBJO2lFQUMxSTs7Ozs7Ozs7Ozs7d0JBQThJO01BQW5I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N0Msb0VBQXVDLE1BQzVELHNHQUdNLEtBRkYsdUpBQWdFLFlBQXpDOzt3QkFBNkI7TUFBcEQsd0JBQWdFLEtBQVgsK0JBQUUsTUFDdkQsd0pBQW1FLFlBQTNDOzt3QkFBOEI7TUFBdEQsd0JBQW1FLEtBQVosZ0NBQUcseURBTjVDLHFEQUF5RTtnTEF4THJHLDJIQW1NTSxLQWxNRiw2R0FFTSxLQURGLDZHQUFxRCxLQUFuQixnQ0FBYyxNQUVwRCw4R0ErS00sS0E5S0osb0hBNkVNLEtBNUVGLHdMQUF1RCxJQUN2RCx3TEFJTSxJQUVOLDhHQUlNLEtBSEosNkZBQTZCLEtBQVosbUNBQVEsTUFDekIsd0xBQTBJLElBQzFJLHdMQUE4SSxJQUdoSix3TEFpQ2UsSUFFakIseUxBMkJlLElBR2pCLGdIQThGTSxLQTdGSix5TEFvRm1CLElBQ25CLHlMQU9tQixJQUl2Qix5TEFZTSxpREEzTG1CLG1CQUFlLFVBQWxDLGFBQXVELEVBQXBDLFNBQWUsR0FDaUMsbUJBQW9CLGVBQXZGLGFBSU0sRUFKNkQsU0FBb0IsR0FROUUsb0JBQW9CLGNBQTNCLGFBQTBJLEVBQW5JLFNBQW9CLEdBQ3BCLG1CQUFtQixjQUExQixhQUE4SSxFQUF2SSxTQUFtQixHQUdkLG9EQUF5QyxXQUF2RCxhQWlDZSxFQWpDRCxTQUF5QyxHQW1DM0MsMkNBQThCLEdBQTVDLGFBMkJlLEVBM0JELFNBQThCLEdBK0IxQiwrREFBOEQscUJBQWhGLGFBb0ZtQixFQXBGRCxTQUE4RCxHQXFGOUQsbUJBQW9CLGVBQXRDLGFBT21CLEVBUEQsU0FBb0IsR0FXQSxvQkFBd0IsbUJBQWxFLGFBWU0sRUFab0MsVUFBd0IsbURBckx6QyxtQkFBMkIsWUFBeEQsWUFtTU0sRUFuTXVCLFNBQTJCLEdBRWQsdURBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMCBmcm9tICdAYW5ndWxhci9jb3JlJztcbmkwLkNvbXBvbmVudEZhY3Rvcnk7XG4iLCI8ZGl2IGNsYXNzPVwidXNlci1ncm91cC1saXN0XCIgW2NsYXNzLmFuaW1hdGVdPVwiYW5pbWF0aW9uXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidXNlci1ncm91cC1saXN0LWhlYWRcIj5cclxuICAgICAgICA8aDMgY2xhc3M9XCJ1c2VyLWdyb3VwLWxpc3QtdGl0bGVcIj57e3BhbmVsVGl0bGV9fTwvaDM+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLWxpc3QtYm9keVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidXNlci1ncm91cC1saXN0LWJvZHktaW5uZXJcIj5cclxuICAgICAgICAgIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImxvYWRpbmdcIj48L2FwcC1sb2FkZXItaW5saW5lPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItZ3JvdXAtbGlzdC10YWIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1tYi0yXCIgKm5nSWY9XCJncm91cEVuYWJsZWRcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzd2l0Y2hUYWIoJ1VTRVInKVwiIGNsYXNzPVwidGFiLWJ0biB2eC1mcy0xMSB2eC1mdy02MDAgdngtcGFyYWdyYXBoLXR4dCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LXBiLTIgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtbGgtNFwiIFtjbGFzcy5hY3RpdmVdPVwiY3VycmVudFRhYiA9PT0gJ1VTRVInXCI+VVNFUlNcclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1tbC0yIHZ4LWxoLTRcIj57e3NlYXJjaEtleT8ubGVuZ3RoICYmIGN1cnJlbnRUYWIgPT09ICdVU0VSJyA/ICh1c2Vyc0xpc3R8IGZpbHRlciA6IHNlYXJjaEtleSk/Lmxlbmd0aCA6IHVzZXJzTGlzdD8ubGVuZ3RoIHx8IHVzZXJMaXN0SW5mbz8udG90YWxfaXRlbXN9fTwvc3Bhbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzd2l0Y2hUYWIoJ0dST1VQJylcIiBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNjAwIHZ4LXBhcmFncmFwaC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wYi0yIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWxoLTRcIiBbY2xhc3MuYWN0aXZlXT1cImN1cnJlbnRUYWIgPT09ICdHUk9VUCdcIj57e2ZlYXR1cmVmbGFnID8gJ1VTRVIgR1JPVVBTJzonR1JPVVBTJ319IDxzcGFuIGNsYXNzPVwidngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbWwtMiB2eC1saC00XCI+e3tzZWFyY2hLZXk/Lmxlbmd0aCAmJiBjdXJyZW50VGFiID09PSAnR1JPVVAnID8gKGdyb3Vwc0xpc3R8c2VhcmNoOnNlYXJjaEtleTonZ3JvdXBfbmFtZScpPy5sZW5ndGggOmdyb3Vwc0xpc3Q/Lmxlbmd0aCB8fCBncm91cExpc3RJbmZvPy50b3RhbF9pdGVtc319PC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1ibG9jayB2eC1tYi0yXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBiOzwvaT5cclxuICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVwiIWZlYXR1cmVmbGFnXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hLZXlcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwie3tjdXJyZW50VGFiID09PSAnVVNFUicgPyAnU2VhcmNoIFVzZXInIDonU2VhcmNoIEdyb3VwJ319XCIgLz5cclxuICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVwiZmVhdHVyZWZsYWdcIiBbKG5nTW9kZWwpXT1cInNlYXJjaEtleVwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJ7e2N1cnJlbnRUYWIgPT09ICdVU0VSJyA/ICdTZWFyY2ggVXNlcicgOidTZWFyY2ggVXNlciBHcm91cCd9fVwiIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudFRhYiA9PT0gJ1VTRVInICYmICFsb2FkaW5nXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIodXNlcnNMaXN0fGZpbHRlcjpzZWFyY2hLZXkpIGFzIHVzZXJzXCI+XHJcbiAgICAgICAgICAgICAgPHZ1aS1wYWdpbmF0aW9uICpuZ0lmPVwidXNlckxpc3RJbmZvPy50b3RhbF9wYWdlcyAgPiAxICYmIHVzZXJzTGlzdD8ubGVuZ3RoICE9PSB1c2VyTGlzdEluZm8/LnRvdGFsX2l0ZW1zXCIgW2N1cnJlbnRQYWdlXT1cInVzZXJDdXJyZW50UGFnZVwiICBbdG90YWxQYWdlXT1cInVzZXJMaXN0SW5mbz8udG90YWxfcGFnZXNcIiAocGFnZUNoYW5nZWQpPVwidXNlclBhZ2VDaGFuZ2UoJGV2ZW50KVwiPjwvdnVpLXBhZ2luYXRpb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItZ3JvdXAtbGlzdC1taWRcIiBbY2xhc3Mud2l0aC1wYWdpbmF0aW9uXT1cImlzUGFnaW5hdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXNlcnM/Lmxlbmd0aCA+IDA7ZWxzZSBub3VzZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWxpc3Qtc2VsZWN0IHZ4LW1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dnVpLWNoZWNrYm94ICpuZ0lmPVwiIXNpbmdsZVNlbGVjdFwiICAjdXNlciBbY2hlY2tlZF09XCJhbGxVc2VyU2VsZWN0ZWRcIiBbZGlzYWJsZWRdPVwiYWxsVXNlclNlbGVjdGVkRGlzYWJsZWRcIiAoY2hhbmdlKT1cInNlbGVjdEFsbFVzZXIoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1uYW1lIHZ4LWZzLTEyIHZ4LWZ3LTYwMCB2eC1sYWJlbC10eHQgdngtdHQtbm9uZVwiPnt7IXVzZXI/LmNoZWNrZWQgPyAnU2VsZWN0IEFsbCcgOiAnRGVzZWxlY3QgQWxsJ319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC92dWktY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInZ4LW0tMCB2eC1wLTAgdngtZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB1c2VyIG9mIHVzZXJzIFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwidngtbWItM1wiICpuZ0lmPVwiIXNpbmdsZVNlbGVjdFwiIFthcHBUb29sdGlwXT1cInVzZXIgfHRvb2x0aXBNZXNzYWdlOiBmcm9tUmVzcG9uc2liaWxpdHk6cmV2aWV3ZXJJZHM6b3ZlcnNlZXJJZHM6YXNzaWdub3JJZDphc3NpZ25lZUlkczonbWVtYmVyX2lkJzpkaXNhYmxlZElkcz8uaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKTpGcm9tUHJvZ3JhbVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZ1aS1jaGVja2JveCAoY2hhbmdlKT1cInNlbGVjdEl0ZW0oJGV2ZW50LHVzZXIpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkSWRzPy5pbmNsdWRlcyh1c2VyPy5tZW1iZXJfaWQpXCIgW2NoZWNrZWRdPVwic2VsZWN0ZWRVc2VySWRzPy5pbmNsdWRlcyh1c2VyPy5tZW1iZXJfaWQpXCI+PGRpdiBjbGFzcz1cInVzZXItbmFtZVwiID57e3VzZXI/Lm1lbWJlcl9uYW1lfX08L2Rpdj48L3Z1aS1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwidngtbWItM1wiICpuZ0lmPVwic2luZ2xlU2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvICBbbmFtZV09XCIncmFkaW8tc2VsZWN0b3InXCIgKGNoZWNrZWRFdmVudCk9XCJzZWxlY3RJdGVtUmFkaW8oJGV2ZW50LHVzZXIpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIidyeC1jYXRlZ29yeSdcIiBbY2hlY2tlZF09XCJzZWxlY3RlZFVzZXJJZHM/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwidXNlcj8ubWVtYmVyX2VtYWlsXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t1c2VyPy5tZW1iZXJfbmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3VzZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YXBwLW5vLWRhdGEgKm5nSWY9XCIhbG9hZGluZ1wiIFtub0RhdGFJbWFnZV09XCInaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3NlYXJjaC1kYXRhLnN2ZydcIiBbbm9EYXRhVGV4dF09XCIoc2VhcmNoS2V5Py5sZW5ndGggPiAwID8nTm8gbWF0Y2ggZm91bmQuJzonTm8gVXNlcnMgZm91bmQuJylcIj48L2FwcC1uby1kYXRhPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50VGFiID09PSAnR1JPVVAnXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdyb3Vwc0xpc3R8c2VhcmNoOnNlYXJjaEtleTonZ3JvdXBfbmFtZScpIGFzIGdyb3Vwc1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItZ3JvdXAtbGlzdC1taWRcIiBbY2xhc3Mud2l0aC1wYWdpbmF0aW9uXT1cImlzUGFnaW5hdGlvblwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cHM/Lmxlbmd0aCA+IDA7IGVsc2Ugbm9ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1saXN0LXNlbGVjdCB2eC1tYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dnVpLWNoZWNrYm94ICNncm91cCBbY2hlY2tlZF09XCJhbGxHcm91cFNlbGVjdGVkXCIgW2Rpc2FibGVkXT1cImFsbEdyb3VwU2VsZWN0ZWREaXNhYmxlZFwiIChjaGFuZ2UpPVwic2VsZWN0QWxsR3JvdXAoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLW5hbWUgdngtZnMtMTIgdngtZnctNjAwIHZ4LWxhYmVsLXR4dCB2eC10dC1ub25lXCI+e3shZ3JvdXA/LmNoZWNrZWQgPyAnU2VsZWN0IEFsbCcgOiAnRGVzZWxlY3QgQWxsJ319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3Z1aS1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwidngtbS0wIHZ4LXAtMCB2eC1kLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJ2eC1tYi0zXCIgKm5nRm9yPVwibGV0IGdyb3VwIG9mIGdyb3Vwc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dnVpLWNoZWNrYm94IChjaGFuZ2UpPVwic2VsZWN0R3JvdXAoJGV2ZW50LGdyb3VwKVwiIFtkaXNhYmxlZF09XCJub25SZW1vdmFibGVHcm91cElkcz8uaW5jbHVkZXMoZ3JvdXA/Lmdyb3VwX2lkKVwiIFtjaGVja2VkXT1cInNlbGVjdGVkR3JvdXBJZHM/LmluY2x1ZGVzKGdyb3VwPy5ncm91cF9pZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLW5hbWUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC13LTEwMFwiIFthcHBUb29sdGlwXT1cImdyb3VwPy5ncm91cF9uYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtbmFtZVwiPnt7Z3JvdXA/Lmdyb3VwX25hbWV9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXIgdngtZnMtOSB2eC1mdy02MDAgdngtcGwtMSB2eC1wci0xIHZ4LWxoLTMgdngtdHQtdXBwZXJjYXNlXCI+e3tncm91cD8ubWVtYmVyX2NvdW50fX0ge3tncm91cD8ubWVtYmVyX2NvdW50ID4gMSA/ICdVU0VSUycgOidVU0VSJ319PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Z1aS1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub2dyb3VwPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLW5vLWRhdGEgKm5nSWY9XCIhbG9hZGluZ1wiIFtub0RhdGFJbWFnZV09XCInaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3NlYXJjaC1kYXRhLnN2ZydcIiBbbm9EYXRhVGV4dF09XCIoc2VhcmNoS2V5Py5sZW5ndGggPiAwID8nTm8gbWF0Y2ggZm91bmQuJzonTm8gZGF0YSB0byBkaXNwbGF5LicpXCI+PC9hcHAtbm8tZGF0YT5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwidXNlci1ncm91cC1saXN0LWZvb3RlclwiPlxyXG4gICAgICAgIDx2dWktZmxvYXRpbmctYmFyICpuZ0lmPVwiKCFzaW5nbGVTZWxlY3QgfHwgKCFzaW5nbGVTZWxlY3QgJiYgc2VsZWN0ZWRSZXZpZXdlcikpXCIgKGNsb3NlRXZlbnQpPVwic2F2ZUxpc3QoKVwiIChjbG9zZUxpc3QpPVwiY2xvc2VMaXN0KClcIiAod29ya2Zsb3dUeXBlQ2hhbmdlZCkgPSBcIndvcmtmbG93VHlwZUNoYW5nZWQoJGV2ZW50KVwiIFtzZWxlY3RlZFdvcmtmbG93XT1cInJldmlld2VyV29ya2Zsb3dUeXBlXCIgW3Nob3dXb3JrZmxvd109XCJzZWxlY3RlZFJldmlld2VyXCIgW2dyb3VwU2VsZWN0ZWRdPVwic2VsZWN0ZWRHcm91cHNcIiBbbW9kZV09XCJtb2RlXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWdyb3VwRW5hYmxlZCAmJiBzZWxlY3RlZFVzZXJzPy5sZW5ndGggPiAxXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCIgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2Ygc2VsZWN0ZWRVc2Vycz8uc2xpY2UoMCwxKTtsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIiAqbmdJZj1cIiFub25SZW1vdmFibGVVc2VySWRzPy5pbmNsdWRlcyhlbGVtZW50Py5tZW1iZXJfaWQpXCIgKGNsaWNrKT1cInNlbGVjdEl0ZW0oe3RhcmdldDp7Y2hlY2tlZDpmYWxzZX19LGVsZW1lbnQpXCI+JiN4ZTlhZTs8L2k+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIiBbYXBwVG9vbHRpcF09XCJlbGVtZW50Py5tZW1iZXJfbmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj57e2VsZW1lbnQ/Lm1lbWJlcl9uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTQgZ3JlZW5CZ1wiIGFwcFBvcG92ZXIgKGNsaWNrKT1cImdyb3VwRGlzYWJsZS5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJsZWZ0XCIgKm5nSWY9XCJzZWxlY3RlZFVzZXJzPy5sZW5ndGg+MVwiPit7e3NlbGVjdGVkVXNlcnM/LnNsaWNlKDEpPy5sZW5ndGh9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXBcIiAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBzZWxlY3RlZFVzZXJzPy5zbGljZSgwLDEpO2xldCBpID0gaW5kZXhcIj48aSAqbmdJZj1cIiFub25SZW1vdmFibGVVc2VySWRzPy5pbmNsdWRlcyhlbGVtZW50Py5tZW1iZXJfaWQpXCIgKGNsaWNrKT1cInNlbGVjdEl0ZW0oe3RhcmdldDp7Y2hlY2tlZDpmYWxzZX19LGVsZW1lbnQpXCIgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPiA8c3Bhbj57e2VsZW1lbnQ/Lm1lbWJlcl9uYW1lfX08L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXJcIiAqbmdJZj1cInNlbGVjdGVkVXNlcnM/Lmxlbmd0aD4xXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwiZ3JvdXBEaXNhYmxlLnBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiPit7e3NlbGVjdGVkVXNlcnM/LnNsaWNlKDEpPy5sZW5ndGh9fTwvZGl2PiAtLT5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItZ3JvdXAtY2hpcFwiICpuZ0lmPVwic2VsZWN0ZWRVc2Vycz8ubGVuZ3RoID09PSAxXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3NcIiAqbmdJZj1cIiFub25SZW1vdmFibGVVc2VySWRzPy5pbmNsdWRlcyhzZWxlY3RlZFVzZXJzWzBdPy5tZW1iZXJfaWQpXCIgKGNsaWNrKT1cInNlbGVjdEl0ZW0oe3RhcmdldDp7Y2hlY2tlZDpmYWxzZX19LHNlbGVjdGVkVXNlcnNbMF0pXCI+JiN4ZTlhZTs8L2k+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLW5hbWVcIj57e3NlbGVjdGVkVXNlcnNbMF0/Lm1lbWJlcl9uYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdyb3VwRW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyXCIgKm5nSWY9XCJzZWxlY3RlZFVzZXJzPy5sZW5ndGggPiAxXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwidXNlckNvdW50LnBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiPit7e3NlbGVjdGVkVXNlcnM/Lmxlbmd0aCAtIDF9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWUgdXNlckdyb3VwLW5hbWVcIj5cclxuICAgICAgICAgICAgPCEtLSB7e3NlbGVjdGVkR3JvdXBzICYmIHNlbGVjdGVkR3JvdXBzPy5sZW5ndGggPiAwID8nICYgJzonJ319IC0tPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXJHcm91cC10ZXh0XCIgKm5nSWY9XCJzZWxlY3RlZFVzZXJzPy5sZW5ndGggPT09IDFcIj5Vc2VyIHt7c2VsZWN0ZWRHcm91cHM/Lmxlbmd0aCA+IDAgPycgJiAnOicnfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXNlckdyb3VwLXRleHRcIiAqbmdJZj1cInNlbGVjdGVkVXNlcnM/Lmxlbmd0aCA+IDFcIj5Vc2VycyB7e3NlbGVjdGVkR3JvdXBzPy5sZW5ndGggPiAwID8nICYgJzonc2VsZWN0ZWQnfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1ncm91cC1jaGlwXCIgKm5nSWY9XCJzZWxlY3RlZEdyb3Vwcz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3NcIiAqbmdJZj1cIiFub25SZW1vdmFibGVHcm91cElkcz8uaW5jbHVkZXMoc2VsZWN0ZWRHcm91cHNbMF0/Lmdyb3VwX2lkKVwiIChjbGljayk9XCJzZWxlY3RHcm91cCh7dGFyZ2V0OntjaGVja2VkOmZhbHNlfX0sc2VsZWN0ZWRHcm91cHNbMF0pXCI+JiN4ZTlhZTs8L2k+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLW5hbWVcIj57e3NlbGVjdGVkR3JvdXBzWzBdPy5ncm91cF9uYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXIgZ3JvdXBcIiAqbmdJZj1cInNlbGVjdGVkR3JvdXBzPy5sZW5ndGggPiAxXCIgICBhcHBQb3BvdmVyIChjbGljayk9XCJncm91cENvdW50LnBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIj4re3tzZWxlY3RlZEdyb3Vwcz8ubGVuZ3RoIC0gMX19PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZSB1c2VyR3JvdXAtbmFtZVwiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZEdyb3Vwcz8ubGVuZ3RoID09PSAxXCI+e3tmZWF0dXJlZmxhZyA/J1VzZXIgR3JvdXAgc2VsZWN0ZWQnOidHcm91cCBzZWxlY3RlZCd9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRHcm91cHM/Lmxlbmd0aCA+IDFcIj57e2ZlYXR1cmVmbGFnID8nVXNlciBHcm91cHMgc2VsZWN0ZWQnOidHcm91cHMgc2VsZWN0ZWQnfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxhcHAtcG9wb3ZlciAjdXNlckNvdW50IFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XHJcbiAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBzZWxlY3RlZFVzZXJzIHwgc2xpY2U6IDE7IGxldCBpID1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCIgKm5nSWY9XCIhbm9uUmVtb3ZhYmxlVXNlcklkcz8uaW5jbHVkZXMoZWxlbWVudD8ubWVtYmVyX2lkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKHt0YXJnZXQ6e2NoZWNrZWQ6ZmFsc2V9fSxlbGVtZW50KVwiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3tlbGVtZW50Py5tZW1iZXJfbmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuXHJcbiAgICAgICAgICA8YXBwLXBvcG92ZXIgI2dyb3VwRGlzYWJsZSBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2Ygc2VsZWN0ZWRVc2Vycy5zbGljZSgxKSBsZXQgaSA9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiICpuZ0lmPVwiIW5vblJlbW92YWJsZVVzZXJJZHM/LmluY2x1ZGVzKGVsZW1lbnQ/Lm1lbWJlcl9pZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKHt0YXJnZXQ6e2NoZWNrZWQ6ZmFsc2V9fSxlbGVtZW50KVwiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2VsZW1lbnQ/Lm1lbWJlcl9uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxyXG5cclxuICAgICAgICAgIDxhcHAtcG9wb3ZlciAjZ3JvdXBDb3VudCBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2Ygc2VsZWN0ZWRHcm91cHMgfCBzbGljZTogMTsgbGV0IGkgPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAqbmdJZj1cIiFub25SZW1vdmFibGVHcm91cElkcz8uaW5jbHVkZXMoZWxlbWVudD8uZ3JvdXBfaWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEdyb3VwKHt0YXJnZXQ6e2NoZWNrZWQ6ZmFsc2V9fSxlbGVtZW50KVwiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3tlbGVtZW50Py5ncm91cF9uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgICAgPC92dWktZmxvYXRpbmctYmFyPlxyXG4gICAgICAgIDx2dWktZmxvYXRpbmctYmFyICpuZ0lmPVwic2luZ2xlU2VsZWN0XCIgKGNsb3NlRXZlbnQpPVwic2F2ZUxpc3QoKVwiIChjbG9zZUxpc3QpPVwiY2xvc2VMaXN0KClcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBcIiAqbmdJZj1cInNlbGVjdGVkVXNlcnM/Lmxlbmd0aFwiID5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwic2VsZWN0SXRlbSh7dGFyZ2V0OntjaGVja2VkOmZhbHNlfX0sc2VsZWN0ZWRVc2Vyc1swXSlcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPiB7e3NlbGVjdGVkVXNlcnNbMF0/Lm1lbWJlcl9uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3Z1aS1mbG9hdGluZy1iYXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInVzZXItZ3JvdXAtbGlzdC1jb25maXJtYXRpb25cIiAqbmdJZj1cInNob3dDb25maXJtYXRpb25cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbmZpcm1hdGlvbi10b3BcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWJsb2NrXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MzA7PC9pPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIj5UaGlzIGFjdGlvbiB3aWxsIHJlc2V0IHRoZSBkZWZhdWx0IHt7dXNlclR5cGV9fSBzZWxlY3RlZCBmb3IgdGhlIFByb2dyYW0uPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29uZmlybWF0aW9uLWJvdHRvbVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2VcIj5BcmUgeW91IHN1cmUgeW91IHdvdWxkIGxpa2UgdG8gcHJvY2VlZD88L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibm8tYnRuXCIgKGNsaWNrKT1cImNvbmZpcm1BY3Rpb24oJ05PJylcIj5OTzwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ5ZXMtYnRuXCIgKGNsaWNrKT1cImNvbmZpcm1BY3Rpb24oJ1lFUycpXCI+WUVTPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG4iXX0=
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ncm91cC1saXN0LmNvbXBvbmVudC5uZ2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1wcm9ncmFtL2NyZWF0ZS1wcm9ncmFtLXVpL3VzZXItZ3JvdXAtbGlzdC91c2VyLWdyb3VwLWxpc3QuY29tcG9uZW50Lm5nZmFjdG9yeS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXByb2dyYW0vY3JlYXRlLXByb2dyYW0tdWkvdXNlci1ncm91cC1saXN0L3VzZXItZ3JvdXAtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lFQ01VLGlRQUF1RDtpRUFDdkQsK0lBSU0sS0FIRixvUkFDdVAsWUFEL087O3dCQUEyQjtNQUFuQyx3QkFDdVAsS0FEaEQsbUNBQ25NLE1BQUEscUtBQTBPLEtBQWhKLGlEQUF5SSxJQUN2TyxvUkFBa2YsWUFBMWU7O3dCQUE0QjtNQUFwQyx3QkFBa2YsS0FBelMsaUNBQXlDLE1BQUEscUtBQXVQLEtBQTdKLGtEQUFzSix1REFGbFUsMENBQXNDLEdBQXRNLFlBQ3VQLEVBRHZGLFNBQXNDLEdBQ3hHLDBaQUF5SSxHQUN0RSwyQ0FBdUMsR0FBeE0sWUFBa2YsRUFBalYsU0FBdUMsR0FBQyxxRkFBeUMsR0FBMEYsK2FBQXNKO2lFQUtwZTs7Ozs7Ozs7Ozs7d0JBQTBJO01BQTlHOzt3QkFBdUI7TUFBbkQseWlCQUEwSSxpREFBOUcsbUJBQXVCLFlBQW5ELFlBQTBJLEVBQTlHLFNBQXVCLG1EQUFhLCtHQUF1RSxHQUF2SSw2VUFBMEksRUFBMUUsU0FBdUUsRUFBdkksMkVBQTBJO2lFQUMxSTs7Ozs7Ozs7Ozs7d0JBQThJO01BQW5I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QyxvRUFBdUMsTUFDNUQsc0dBR00sS0FGRix1SkFBZ0UsWUFBekM7O3dCQUE2QjtNQUFwRCx3QkFBZ0UsS0FBWCwrQkFBRSxNQUN2RCx3SkFBbUUsWUFBM0M7O3dCQUE4QjtNQUF0RCx3QkFBbUUsS0FBWixnQ0FBRyx5REFONUMscURBQXlFO2dMQXhMckcsMkhBbU1NLEtBbE1GLDZHQUVNLEtBREYsNkdBQXFELEtBQW5CLGdDQUFjLE1BRXBELDhHQStLTSxLQTlLSixvSEE2RU0sS0E1RUYsd0xBQXVELElBQ3ZELHdMQUlNLElBRU4sOEdBSU0sS0FISiw2RkFBNkIsS0FBWixtQ0FBUSxNQUN6Qix3TEFBMEksSUFDMUksd0xBQThJLElBR2hKLHdMQWlDZSxJQUVqQix5TEEyQmUsSUFHakIsZ0hBOEZNLEtBN0ZKLHlMQW9GbUIsSUFDbkIseUxBT21CLElBSXZCLHlMQVlNLGlEQTNMbUIsbUJBQWUsVUFBbEMsYUFBdUQsRUFBcEMsU0FBZSxHQUNpQyxtQkFBb0IsZUFBdkYsYUFJTSxFQUo2RCxTQUFvQixHQVE5RSxvQkFBb0IsY0FBM0IsYUFBMEksRUFBbkksU0FBb0IsR0FDcEIsbUJBQW1CLGNBQTFCLGFBQThJLEVBQXZJLFNBQW1CLEdBR2Qsb0RBQXlDLFdBQXZELGFBaUNlLEVBakNELFNBQXlDLEdBbUMzQywyQ0FBOEIsR0FBNUMsYUEyQmUsRUEzQkQsU0FBOEIsR0ErQjFCLCtEQUE4RCxxQkFBaEYsYUFvRm1CLEVBcEZELFNBQThELEdBcUY5RCxtQkFBb0IsZUFBdEMsYUFPbUIsRUFQRCxTQUFvQixHQVdBLG9CQUF3QixtQkFBbEUsYUFZTSxFQVpvQyxVQUF3QixtREFyTHpDLG1CQUEyQixZQUF4RCxZQW1NTSxFQW5NdUIsU0FBMkIsR0FFZCx1REFBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGkwIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaTAuQ29tcG9uZW50RmFjdG9yeTtcbiIsIjxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLWxpc3RcIiBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRpb25cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLWxpc3QtaGVhZFwiPlxyXG4gICAgICAgIDxoMyBjbGFzcz1cInVzZXItZ3JvdXAtbGlzdC10aXRsZVwiPnt7cGFuZWxUaXRsZX19PC9oMz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInVzZXItZ3JvdXAtbGlzdC1ib2R5XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLWxpc3QtYm9keS1pbm5lclwiPlxyXG4gICAgICAgICAgPGFwcC1sb2FkZXItaW5saW5lICpuZ0lmPVwibG9hZGluZ1wiPjwvYXBwLWxvYWRlci1pbmxpbmU+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1ncm91cC1saXN0LXRhYiB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LW1iLTJcIiAqbmdJZj1cImdyb3VwRW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN3aXRjaFRhYignVVNFUicpXCIgY2xhc3M9XCJ0YWItYnRuIHZ4LWZzLTExIHZ4LWZ3LTYwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGItMiB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC00XCIgW2NsYXNzLmFjdGl2ZV09XCJjdXJyZW50VGFiID09PSAnVVNFUidcIj5VU0VSU1xyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LW1sLTIgdngtbGgtNFwiPnt7c2VhcmNoS2V5Py5sZW5ndGggJiYgY3VycmVudFRhYiA9PT0gJ1VTRVInID8gKHVzZXJzTGlzdHwgZmlsdGVyIDogc2VhcmNoS2V5KT8ubGVuZ3RoIDogdXNlcnNMaXN0Py5sZW5ndGggfHwgdXNlckxpc3RJbmZvPy50b3RhbF9pdGVtc319PC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN3aXRjaFRhYignR1JPVVAnKVwiIGNsYXNzPVwidGFiLWJ0biB2eC1mcy0xMSB2eC1mdy02MDAgdngtcGFyYWdyYXBoLXR4dCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LXBiLTIgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtbGgtNFwiIFtjbGFzcy5hY3RpdmVdPVwiY3VycmVudFRhYiA9PT0gJ0dST1VQJ1wiPnt7ZmVhdHVyZWZsYWcgPyAnVVNFUiBHUk9VUFMnOidHUk9VUFMnfX0gPHNwYW4gY2xhc3M9XCJ2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1tbC0yIHZ4LWxoLTRcIj57e3NlYXJjaEtleT8ubGVuZ3RoICYmIGN1cnJlbnRUYWIgPT09ICdHUk9VUCcgPyAoZ3JvdXBzTGlzdHxzZWFyY2g6c2VhcmNoS2V5Oidncm91cF9uYW1lJyk/Lmxlbmd0aCA6Z3JvdXBzTGlzdD8ubGVuZ3RoIHx8IGdyb3VwTGlzdEluZm8/LnRvdGFsX2l0ZW1zfX08L3NwYW4+PC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWJsb2NrIHZ4LW1iLTJcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGI7PC9pPlxyXG4gICAgICAgICAgICA8aW5wdXQgKm5nSWY9XCIhZmVhdHVyZWZsYWdcIiBbKG5nTW9kZWwpXT1cInNlYXJjaEtleVwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJ7e2N1cnJlbnRUYWIgPT09ICdVU0VSJyA/ICdTZWFyY2ggVXNlcicgOidTZWFyY2ggR3JvdXAnfX1cIiAvPlxyXG4gICAgICAgICAgICA8aW5wdXQgKm5nSWY9XCJmZWF0dXJlZmxhZ1wiIFsobmdNb2RlbCldPVwic2VhcmNoS2V5XCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cInt7Y3VycmVudFRhYiA9PT0gJ1VTRVInID8gJ1NlYXJjaCBVc2VyJyA6J1NlYXJjaCBVc2VyIEdyb3VwJ319XCIgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50VGFiID09PSAnVVNFUicgJiYgIWxvYWRpbmdcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIih1c2Vyc0xpc3R8ZmlsdGVyOnNlYXJjaEtleSkgYXMgdXNlcnNcIj5cclxuICAgICAgICAgICAgICA8dnVpLXBhZ2luYXRpb24gKm5nSWY9XCJ1c2VyTGlzdEluZm8/LnRvdGFsX3BhZ2VzICA+IDEgJiYgdXNlcnNMaXN0Py5sZW5ndGggIT09IHVzZXJMaXN0SW5mbz8udG90YWxfaXRlbXNcIiBbY3VycmVudFBhZ2VdPVwidXNlckN1cnJlbnRQYWdlXCIgIFt0b3RhbFBhZ2VdPVwidXNlckxpc3RJbmZvPy50b3RhbF9wYWdlc1wiIChwYWdlQ2hhbmdlZCk9XCJ1c2VyUGFnZUNoYW5nZSgkZXZlbnQpXCI+PC92dWktcGFnaW5hdGlvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1ncm91cC1saXN0LW1pZFwiIFtjbGFzcy53aXRoLXBhZ2luYXRpb25dPVwiaXNQYWdpbmF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1c2Vycz8ubGVuZ3RoID4gMDtlbHNlIG5vdXNlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItbGlzdC1zZWxlY3QgdngtbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx2dWktY2hlY2tib3ggKm5nSWY9XCIhc2luZ2xlU2VsZWN0XCIgICN1c2VyIFtjaGVja2VkXT1cImFsbFVzZXJTZWxlY3RlZFwiIFtkaXNhYmxlZF09XCJhbGxVc2VyU2VsZWN0ZWREaXNhYmxlZFwiIChjaGFuZ2UpPVwic2VsZWN0QWxsVXNlcigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLW5hbWUgdngtZnMtMTIgdngtZnctNjAwIHZ4LWxhYmVsLXR4dCB2eC10dC1ub25lXCI+e3shdXNlcj8uY2hlY2tlZCA/ICdTZWxlY3QgQWxsJyA6ICdEZXNlbGVjdCBBbGwnfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Z1aS1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItbGlzdC1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwidngtbS0wIHZ4LXAtMCB2eC1kLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHVzZXIgb2YgdXNlcnMgXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJ2eC1tYi0zXCIgKm5nSWY9XCIhc2luZ2xlU2VsZWN0XCIgW2FwcFRvb2x0aXBdPVwidXNlciB8dG9vbHRpcE1lc3NhZ2U6IGZyb21SZXNwb25zaWJpbGl0eTpyZXZpZXdlcklkczpvdmVyc2Vlcklkczphc3NpZ25vcklkOmFzc2lnbmVlSWRzOidtZW1iZXJfaWQnOmRpc2FibGVkSWRzPy5pbmNsdWRlcyh1c2VyPy5tZW1iZXJfaWQpOkZyb21Qcm9ncmFtXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dnVpLWNoZWNrYm94IChjaGFuZ2UpPVwic2VsZWN0SXRlbSgkZXZlbnQsdXNlcilcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRJZHM/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZClcIiBbY2hlY2tlZF09XCJzZWxlY3RlZFVzZXJJZHM/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZClcIj48ZGl2IGNsYXNzPVwidXNlci1uYW1lXCIgPnt7dXNlcj8ubWVtYmVyX25hbWV9fTwvZGl2PjwvdnVpLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJ2eC1tYi0zXCIgKm5nSWY9XCJzaW5nbGVTZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gIFtuYW1lXT1cIidyYWRpby1zZWxlY3RvcidcIiAoY2hlY2tlZEV2ZW50KT1cInNlbGVjdEl0ZW1SYWRpbygkZXZlbnQsdXNlcilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiJ3J4LWNhdGVnb3J5J1wiIFtjaGVja2VkXT1cInNlbGVjdGVkVXNlcklkcz8uaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJ1c2VyPy5tZW1iZXJfZW1haWxcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3VzZXI/Lm1lbWJlcl9uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdXNlcj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhcHAtbm8tZGF0YSAqbmdJZj1cIiFsb2FkaW5nXCIgW25vRGF0YUltYWdlXT1cIidodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvc2VhcmNoLWRhdGEuc3ZnJ1wiIFtub0RhdGFUZXh0XT1cIihzZWFyY2hLZXk/Lmxlbmd0aCA+IDAgPydObyBtYXRjaCBmb3VuZC4nOidObyBVc2VycyBmb3VuZC4nKVwiPjwvYXBwLW5vLWRhdGE+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRUYWIgPT09ICdHUk9VUCdcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3JvdXBzTGlzdHxzZWFyY2g6c2VhcmNoS2V5Oidncm91cF9uYW1lJykgYXMgZ3JvdXBzXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1ncm91cC1saXN0LW1pZFwiIFtjbGFzcy53aXRoLXBhZ2luYXRpb25dPVwiaXNQYWdpbmF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdyb3Vwcz8ubGVuZ3RoID4gMDsgZWxzZSBub2dyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWxpc3Qtc2VsZWN0IHZ4LW1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx2dWktY2hlY2tib3ggI2dyb3VwIFtjaGVja2VkXT1cImFsbEdyb3VwU2VsZWN0ZWRcIiBbZGlzYWJsZWRdPVwiYWxsR3JvdXBTZWxlY3RlZERpc2FibGVkXCIgKGNoYW5nZSk9XCJzZWxlY3RBbGxHcm91cCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItbmFtZSB2eC1mcy0xMiB2eC1mdy02MDAgdngtbGFiZWwtdHh0IHZ4LXR0LW5vbmVcIj57eyFncm91cD8uY2hlY2tlZCA/ICdTZWxlY3QgQWxsJyA6ICdEZXNlbGVjdCBBbGwnfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdnVpLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItbGlzdC1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJ2eC1tLTAgdngtcC0wIHZ4LWQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInZ4LW1iLTNcIiAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgZ3JvdXBzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2dWktY2hlY2tib3ggKGNoYW5nZSk9XCJzZWxlY3RHcm91cCgkZXZlbnQsZ3JvdXApXCIgW2Rpc2FibGVkXT1cIm5vblJlbW92YWJsZUdyb3VwSWRzPy5pbmNsdWRlcyhncm91cD8uZ3JvdXBfaWQpXCIgW2NoZWNrZWRdPVwic2VsZWN0ZWRHcm91cElkcz8uaW5jbHVkZXMoZ3JvdXA/Lmdyb3VwX2lkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItbmFtZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXctMTAwXCIgW2FwcFRvb2x0aXBdPVwiZ3JvdXA/Lmdyb3VwX25hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1uYW1lXCI+e3tncm91cD8uZ3JvdXBfbmFtZX19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlciB2eC1mcy05IHZ4LWZ3LTYwMCB2eC1wbC0xIHZ4LXByLTEgdngtbGgtMyB2eC10dC11cHBlcmNhc2VcIj57e2dyb3VwPy5tZW1iZXJfY291bnR9fSB7e2dyb3VwPy5tZW1iZXJfY291bnQgPiAxID8gJ1VTRVJTJyA6J1VTRVInfX08L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdnVpLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtbm8tZGF0YSAqbmdJZj1cIiFsb2FkaW5nXCIgW25vRGF0YUltYWdlXT1cIidodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvc2VhcmNoLWRhdGEuc3ZnJ1wiIFtub0RhdGFUZXh0XT1cIihzZWFyY2hLZXk/Lmxlbmd0aCA+IDAgPydObyBtYXRjaCBmb3VuZC4nOidObyBkYXRhIHRvIGRpc3BsYXkuJylcIj48L2FwcC1uby1kYXRhPlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLWxpc3QtZm9vdGVyXCI+XHJcbiAgICAgICAgPHZ1aS1mbG9hdGluZy1iYXIgKm5nSWY9XCIoIXNpbmdsZVNlbGVjdCB8fCAoIXNpbmdsZVNlbGVjdCAmJiBzZWxlY3RlZFJldmlld2VyKSlcIiAoY2xvc2VFdmVudCk9XCJzYXZlTGlzdCgpXCIgKGNsb3NlTGlzdCk9XCJjbG9zZUxpc3QoKVwiICh3b3JrZmxvd1R5cGVDaGFuZ2VkKSA9IFwid29ya2Zsb3dUeXBlQ2hhbmdlZCgkZXZlbnQpXCIgW3NlbGVjdGVkV29ya2Zsb3ddPVwicmV2aWV3ZXJXb3JrZmxvd1R5cGVcIiBbc2hvd1dvcmtmbG93XT1cInNlbGVjdGVkUmV2aWV3ZXJcIiBbZ3JvdXBTZWxlY3RlZF09XCJzZWxlY3RlZEdyb3Vwc1wiIFttb2RlXT1cIm1vZGVcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZ3JvdXBFbmFibGVkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yIHZ4LW1yLTJcIiAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBzZWxlY3RlZFVzZXJzPy5zbGljZSgwLDEpO2xldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiICpuZ0lmPVwiIW5vblJlbW92YWJsZVVzZXJJZHM/LmluY2x1ZGVzKGVsZW1lbnQ/Lm1lbWJlcl9pZClcIiAoY2xpY2spPVwic2VsZWN0SXRlbSh7dGFyZ2V0OntjaGVja2VkOmZhbHNlfX0sZWxlbWVudClcIj4mI3hlOWFlOzwvaT5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiIFthcHBUb29sdGlwXT1cImVsZW1lbnQ/Lm1lbWJlcl9uYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiPnt7ZWxlbWVudD8ubWVtYmVyX25hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2VsZWN0ZWRVc2Vycz8ubGVuZ3RoPjFcIiBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTQgZ3JlZW5CZ1wiIGFwcFBvcG92ZXIgKGNsaWNrKT1cImdyb3VwRGlzYWJsZS5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJsZWZ0XCI+K3t7c2VsZWN0ZWRVc2Vycz8uc2xpY2UoMSk/Lmxlbmd0aH19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcFwiICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIHNlbGVjdGVkVXNlcnM/LnNsaWNlKDAsMSk7bGV0IGkgPSBpbmRleFwiPjxpICpuZ0lmPVwiIW5vblJlbW92YWJsZVVzZXJJZHM/LmluY2x1ZGVzKGVsZW1lbnQ/Lm1lbWJlcl9pZClcIiAoY2xpY2spPVwic2VsZWN0SXRlbSh7dGFyZ2V0OntjaGVja2VkOmZhbHNlfX0sZWxlbWVudClcIiBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+IDxzcGFuPnt7ZWxlbWVudD8ubWVtYmVyX25hbWV9fTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlclwiICpuZ0lmPVwic2VsZWN0ZWRVc2Vycz8ubGVuZ3RoPjFcIiBhcHBQb3BvdmVyIChjbGljayk9XCJncm91cERpc2FibGUucG9wb3ZlcigpXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJsZWZ0XCI+K3t7c2VsZWN0ZWRVc2Vycz8uc2xpY2UoMSk/Lmxlbmd0aH19PC9kaXY+IC0tPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1ncm91cC1jaGlwXCIgKm5nSWY9XCJzZWxlY3RlZFVzZXJzPy5sZW5ndGggJiYgZ3JvdXBFbmFibGVkXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3NcIiAqbmdJZj1cIiFub25SZW1vdmFibGVVc2VySWRzPy5pbmNsdWRlcyhzZWxlY3RlZFVzZXJzWzBdPy5tZW1iZXJfaWQpXCIgKGNsaWNrKT1cInNlbGVjdEl0ZW0oe3RhcmdldDp7Y2hlY2tlZDpmYWxzZX19LHNlbGVjdGVkVXNlcnNbMF0pXCI+JiN4ZTlhZTs8L2k+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLW5hbWVcIj57e3NlbGVjdGVkVXNlcnNbMF0/Lm1lbWJlcl9uYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdyb3VwRW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyXCIgKm5nSWY9XCJzZWxlY3RlZFVzZXJzPy5sZW5ndGggPiAxXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwidXNlckNvdW50LnBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiPit7e3NlbGVjdGVkVXNlcnM/Lmxlbmd0aCAtIDF9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWUgdXNlckdyb3VwLW5hbWVcIj5cclxuICAgICAgICAgICAgPCEtLSB7e3NlbGVjdGVkR3JvdXBzICYmIHNlbGVjdGVkR3JvdXBzPy5sZW5ndGggPiAwID8nICYgJzonJ319IC0tPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXJHcm91cC10ZXh0XCIgKm5nSWY9XCJzZWxlY3RlZFVzZXJzPy5sZW5ndGggPT09IDFcIj5Vc2VyIHt7c2VsZWN0ZWRHcm91cHM/Lmxlbmd0aCA+IDAgPycgJiAnOicgc2VsZWN0ZWQnfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXNlckdyb3VwLXRleHRcIiAqbmdJZj1cInNlbGVjdGVkVXNlcnM/Lmxlbmd0aCA+IDFcIj5Vc2VycyB7e3NlbGVjdGVkR3JvdXBzPy5sZW5ndGggPiAwID8nICYgJzonc2VsZWN0ZWQnfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1ncm91cC1jaGlwXCIgKm5nSWY9XCJzZWxlY3RlZEdyb3Vwcz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3NcIiAqbmdJZj1cIiFub25SZW1vdmFibGVHcm91cElkcz8uaW5jbHVkZXMoc2VsZWN0ZWRHcm91cHNbMF0/Lmdyb3VwX2lkKVwiIChjbGljayk9XCJzZWxlY3RHcm91cCh7dGFyZ2V0OntjaGVja2VkOmZhbHNlfX0sc2VsZWN0ZWRHcm91cHNbMF0pXCI+JiN4ZTlhZTs8L2k+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLW5hbWVcIj57e3NlbGVjdGVkR3JvdXBzWzBdPy5ncm91cF9uYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXIgZ3JvdXBcIiAqbmdJZj1cInNlbGVjdGVkR3JvdXBzPy5sZW5ndGggPiAxXCIgICBhcHBQb3BvdmVyIChjbGljayk9XCJncm91cENvdW50LnBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIj4re3tzZWxlY3RlZEdyb3Vwcz8ubGVuZ3RoIC0gMX19PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZSB1c2VyR3JvdXAtbmFtZVwiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZEdyb3Vwcz8ubGVuZ3RoID09PSAxXCI+e3tmZWF0dXJlZmxhZyA/J1VzZXIgR3JvdXAgc2VsZWN0ZWQnOidHcm91cCBzZWxlY3RlZCd9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRHcm91cHM/Lmxlbmd0aCA+IDFcIj57e2ZlYXR1cmVmbGFnID8nVXNlciBHcm91cHMgc2VsZWN0ZWQnOidHcm91cHMgc2VsZWN0ZWQnfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxhcHAtcG9wb3ZlciAjdXNlckNvdW50IFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XHJcbiAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBzZWxlY3RlZFVzZXJzIHwgc2xpY2U6IDE7IGxldCBpID1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCIgKm5nSWY9XCIhbm9uUmVtb3ZhYmxlVXNlcklkcz8uaW5jbHVkZXMoZWxlbWVudD8ubWVtYmVyX2lkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKHt0YXJnZXQ6e2NoZWNrZWQ6ZmFsc2V9fSxlbGVtZW50KVwiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3tlbGVtZW50Py5tZW1iZXJfbmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuXHJcbiAgICAgICAgICA8YXBwLXBvcG92ZXIgI2dyb3VwRGlzYWJsZSBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2Ygc2VsZWN0ZWRVc2Vycy5zbGljZSgxKSBsZXQgaSA9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiICpuZ0lmPVwiIW5vblJlbW92YWJsZVVzZXJJZHM/LmluY2x1ZGVzKGVsZW1lbnQ/Lm1lbWJlcl9pZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKHt0YXJnZXQ6e2NoZWNrZWQ6ZmFsc2V9fSxlbGVtZW50KVwiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2VsZW1lbnQ/Lm1lbWJlcl9uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxyXG5cclxuICAgICAgICAgIDxhcHAtcG9wb3ZlciAjZ3JvdXBDb3VudCBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2Ygc2VsZWN0ZWRHcm91cHMgfCBzbGljZTogMTsgbGV0IGkgPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAqbmdJZj1cIiFub25SZW1vdmFibGVHcm91cElkcz8uaW5jbHVkZXMoZWxlbWVudD8uZ3JvdXBfaWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEdyb3VwKHt0YXJnZXQ6e2NoZWNrZWQ6ZmFsc2V9fSxlbGVtZW50KVwiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3tlbGVtZW50Py5ncm91cF9uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgICAgPC92dWktZmxvYXRpbmctYmFyPlxyXG4gICAgICAgIDx2dWktZmxvYXRpbmctYmFyICpuZ0lmPVwic2luZ2xlU2VsZWN0XCIgKGNsb3NlRXZlbnQpPVwic2F2ZUxpc3QoKVwiIChjbG9zZUxpc3QpPVwiY2xvc2VMaXN0KClcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBcIiAqbmdJZj1cInNlbGVjdGVkVXNlcnM/Lmxlbmd0aFwiID5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwic2VsZWN0SXRlbSh7dGFyZ2V0OntjaGVja2VkOmZhbHNlfX0sc2VsZWN0ZWRVc2Vyc1swXSlcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPiB7e3NlbGVjdGVkVXNlcnNbMF0/Lm1lbWJlcl9uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3Z1aS1mbG9hdGluZy1iYXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInVzZXItZ3JvdXAtbGlzdC1jb25maXJtYXRpb25cIiAqbmdJZj1cInNob3dDb25maXJtYXRpb25cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbmZpcm1hdGlvbi10b3BcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWJsb2NrXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MzA7PC9pPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIj5UaGlzIGFjdGlvbiB3aWxsIHJlc2V0IHRoZSBkZWZhdWx0IHt7dXNlclR5cGV9fSBzZWxlY3RlZCBmb3IgdGhlIFByb2dyYW0uPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29uZmlybWF0aW9uLWJvdHRvbVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2VcIj5BcmUgeW91IHN1cmUgeW91IHdvdWxkIGxpa2UgdG8gcHJvY2VlZD88L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibm8tYnRuXCIgKGNsaWNrKT1cImNvbmZpcm1BY3Rpb24oJ05PJylcIj5OTzwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ5ZXMtYnRuXCIgKGNsaWNrKT1cImNvbmZpcm1BY3Rpb24oJ1lFUycpXCI+WUVTPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG4iXX0=
|