qms-angular 1.1.35 → 1.1.37

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.
Files changed (55) hide show
  1. package/bundles/qms-angular.umd.js +179 -89
  2. package/bundles/qms-angular.umd.js.map +1 -1
  3. package/esm2015/lib/components/comment/comment-log.model.js +1 -1
  4. package/esm2015/lib/components/comment/comment.js +4 -3
  5. package/esm2015/lib/components/qms-paginator/qms-paginator.component.js +2 -2
  6. package/esm2015/lib/components/qms-stepper/models/qms-stepper.model.js +4 -4
  7. package/esm2015/lib/components/qms-stepper/qms-stepper.component.js +2 -4
  8. package/esm2015/lib/components/related/model/popup-data.model.js +3 -1
  9. package/esm2015/lib/components/related/model/risk-danger.model.js +2 -1
  10. package/esm2015/lib/components/related/popup/related-popup.component.js +34 -9
  11. package/esm2015/lib/components/related/risk/list/list.component.js +4 -3
  12. package/esm2015/lib/components/select-department/select-department.component.js +3 -3
  13. package/esm2015/lib/components/select-department-tree/model/select-department-tree.config.js +5 -1
  14. package/esm2015/lib/components/select-department-tree/select-department-tree.component.js +19 -13
  15. package/esm2015/lib/components/select-process-document/select-process-document.component.js +3 -3
  16. package/esm2015/lib/components/tree/tree.component.js +1 -2
  17. package/esm2015/lib/model/en.js +5 -2
  18. package/esm2015/lib/model/no.js +5 -2
  19. package/esm2015/lib/qms-ckeditor-components/common/enums/video-upload-mode.enum.js +7 -0
  20. package/esm2015/lib/qms-ckeditor-components/common/flowchart/config/toolbar.function.js +31 -30
  21. package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/kitchensink-service.js +23 -2
  22. package/esm2015/lib/qms-ckeditor-components/common/functions/common.function.js +3 -3
  23. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.js +1 -1
  24. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +22 -10
  25. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-upload.service.js +10 -1
  26. package/fesm2015/qms-angular.js +168 -82
  27. package/fesm2015/qms-angular.js.map +1 -1
  28. package/lib/components/comment/comment-log.model.d.ts +1 -0
  29. package/lib/components/comment/comment.d.ts +1 -0
  30. package/lib/components/qms-stepper/models/qms-stepper.model.d.ts +3 -3
  31. package/lib/components/qms-stepper/qms-stepper.component.d.ts +0 -2
  32. package/lib/components/related/model/popup-data.model.d.ts +3 -0
  33. package/lib/components/related/model/risk-danger.model.d.ts +1 -0
  34. package/lib/components/related/popup/related-popup.component.d.ts +9 -0
  35. package/lib/components/related/risk/list/list.component.d.ts +1 -0
  36. package/lib/components/select-department/select-department.component.d.ts +1 -1
  37. package/lib/components/select-department-tree/model/select-department-tree.config.d.ts +4 -0
  38. package/lib/model/en.d.ts +3 -0
  39. package/lib/model/no.d.ts +3 -0
  40. package/lib/qms-ckeditor-components/common/enums/video-upload-mode.enum.d.ts +5 -0
  41. package/lib/qms-ckeditor-components/common/flowchart/service/kitchensink-service.d.ts +2 -0
  42. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.d.ts +1 -0
  43. package/lib/qms-ckeditor-components/services/qms-ckeditor-upload.service.d.ts +1 -0
  44. package/package.json +1 -1
  45. package/qms-angular.metadata.json +1 -1
  46. package/src/assets/jointjs/scss/rappid.scss +17 -0
  47. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +1 -1
  48. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js.map +1 -1
  49. package/src/assets/qms-ckeditor-plugin/src/plugins/fullscreen/qmsCKEditorFullscreenPlugin.js +2 -2
  50. package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkcommand.js +4 -0
  51. package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkdialogcommand.js +66 -14
  52. package/src/lib/components/related/popup/related-popup.component.scss +10 -0
  53. package/src/lib/components/select-process-document/select-process-document.component.scss +4 -0
  54. package/esm2015/lib/common/enum/document-field-status.js +0 -7
  55. package/lib/common/enum/document-field-status.d.ts +0 -5
@@ -389,7 +389,6 @@ export class TreeComponent {
389
389
  for (let j = 0; j < itemSelected.length; j++) {
390
390
  const element = itemSelected[j];
391
391
  if (tree.id === element.id && (!tree.parentId || tree.parentId === element.parentId)) {
392
- console.log(tree);
393
392
  this.checklistSelection.select(tree);
394
393
  }
395
394
  }
@@ -763,4 +762,4 @@ TreeComponent.propDecorators = {
763
762
  nodeExpandEvent: [{ type: Output }],
764
763
  treeControlNodes: [{ type: Output }]
765
764
  };
766
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvdHJlZS90cmVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRS9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU1RCxPQUFPLGFBQWEsTUFBTSxpQkFBaUIsQ0FBQztBQXNCNUMsTUFBTSxPQUFPLGFBQWE7SUFzRHhCLFlBQW9CLEtBQXdCLEVBQ2xDLFlB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QUUsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekcsQ0FBQztJQUVNLHNCQUFzQixDQUFDLE1BQWMsRUFBRSxRQUFnQjtRQUM1RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN6QyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFrQjtRQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsRUFBRSxFQUFFLFFBQVE7UUFDN0IsT0FBTyxHQUFHLEVBQUUsSUFBSSxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOzs7WUE3ekJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsa3pMQUFvQztnQkFFcEMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3RDOzs7WUFsQ1EsaUJBQWlCO1lBR2pCLFlBQVk7WUFGWixlQUFlO1lBSWYsc0JBQXNCOzs7dUJBK0I1QixLQUFLO3lCQUNMLEtBQUs7MkJBQ0wsS0FBSzsrQkFDTCxLQUFLOzJCQUNMLEtBQUs7aUNBQ0wsS0FBSztnQ0FDTCxLQUFLO2dDQUNMLEtBQUs7OEJBQ0wsTUFBTTtnQ0FDTixNQUFNOzRCQUNOLE1BQU07Z0NBQ04sTUFBTTs4QkFDTixNQUFNOytCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XHJcbmltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0SWNvblJlZ2lzdHJ5IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSwgTWF0VHJlZUZsYXR0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgS0VZQk9BUkRfRE9XTl9JQ09OLCBLRVlCT0FSRF9VUF9JQ09OIH0gZnJvbSAnLi4vLi4vY29tbW9uL3Ftcy1pY29uLmNvbnN0JztcclxuaW1wb3J0IHsgUU1TSWNvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4uL2FwcC1pY29uL2ljb24tcmVnaXN0cnkuc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnLi4vcmVsYXRlZC9jb21tb24vZGF0YS10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBEb2N1bWVudE5vZGVUeXBlIH0gZnJvbSAnLi4vcmVsYXRlZC9jb21tb24vZG9jdW1lbnQtZm9sZGVyLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IEl0ZW1JY29uVHlwZSB9IGZyb20gJy4uL3JlbGF0ZWQvY29tbW9uL2l0ZW0taWNvbi10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBSZWxhdGVkQ29uc3QgfSBmcm9tICcuLi9yZWxhdGVkL2NvbW1vbi9yZWxhdGVkLmNvbnN0JztcclxuaW1wb3J0IHsgVHJlZUNvbmZpZyB9IGZyb20gJy4vbW9kZWwvdHJlZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmVlRmxhdE5vZGUgfSBmcm9tICcuL21vZGVsL3RyZWUtZmxhdC1ub2RlLm1vZGVsJztcclxuaW1wb3J0IHsgVHJlZU1vZGVsIH0gZnJvbSAnLi9tb2RlbC90cmVlLm1vZGVsJztcclxuaW1wb3J0IFRyZWVGdW5jdGlvbnMgZnJvbSAnLi90cmVlLmZ1bmN0aW9uJztcclxuXHJcbmludGVyZmFjZSBUcmVlTm9kZSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgY2hpbGRyZW4/OiBUcmVlTm9kZVtdO1xyXG4gIHBhcmVudElkPzogc3RyaW5nO1xyXG4gIGxldmVsVHlwZT86IG51bWJlcjtcclxuICBtYXJrZWRHZXRDaGlsZHJlbj86IGJvb2xlYW47XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG59XHJcbmludGVyZmFjZSBJQ2hlY2tlZE5vZGUge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgY2hlY2tlZDogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdxbXMtdHJlZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyZWUuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSB0cmVlRGF0YTogQXJyYXk8VHJlZU1vZGVsPiA9IFtdO1xyXG4gIEBJbnB1dCgpIHRyZWVDb25maWc6IFRyZWVDb25maWc7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWREYXRhOiBBcnJheTxUcmVlRmxhdE5vZGU+ID0gW107XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRSaXNrRGF0YTogYW55ID0gW107XHJcbiAgQElucHV0KCkgZGlzYWJsZWRMaXN0OiBhbnkgPSBbXTtcclxuICBASW5wdXQoKSBleHBhbmRPblRpdGxlQ2xpY2s6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZXhwYW5kVG9DaGlsZE5vZGU6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIHBhcmVudE5vZGVPbkNsaWNrOiBUcmVlRmxhdE5vZGU7XHJcbiAgQE91dHB1dCgpIHNlbGVjdE5vZGVFdmVudDogRXZlbnRFbWl0dGVyPFRyZWVGbGF0Tm9kZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdEZvbGRlckV2ZW50OiBFdmVudEVtaXR0ZXI8VHJlZUZsYXROb2RlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2hlY2tCb3hFdmVudDogRXZlbnRFbWl0dGVyPFRyZWVGbGF0Tm9kZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2hpbGRDaGVja2VkRXZlbnQ6IEV2ZW50RW1pdHRlcjxJQ2hlY2tlZE5vZGU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBub2RlRXhwYW5kRXZlbnQ6IEV2ZW50RW1pdHRlcjxUcmVlRmxhdE5vZGU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSB0cmVlQ29udHJvbE5vZGVzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgbGlzdFBhcmVudE9iaiA9IHt9O1xyXG4gIGZpbHRlckRhdGE6IFRyZWVNb2RlbFtdID0gW107XHJcbiAgdHJlZU9iamVjdDogb2JqZWN0O1xyXG4gIGFyckluZGV4OiBzdHJpbmdbXSA9IFtdO1xyXG4gIGNoZWNrZWROb2RlTGlzdDogQXJyYXk8VHJlZUZsYXROb2RlPiA9IFtdO1xyXG4gIHVzZUV4cGFuZEZlYXR1cmUgPSB0cnVlO1xyXG4gIHNob3dDaGVja0JveCA9IGZhbHNlO1xyXG4gIGFsbG93TXVsdGlwbGVDaGVjayA9IHRydWU7XHJcbiAgc2luZ2xlU2VsZWN0ZWROb2RlID0gZmFsc2U7XHJcbiAgb25seUNoZWNrQm94Rm9yQ2hpbGQgPSBmYWxzZTtcclxuICBvbmx5Rm9sZGVyID0gZmFsc2U7XHJcbiAgaXRlbUljb25UeXBlID0gSXRlbUljb25UeXBlO1xyXG4gIGRpc3BsYXlUeXBlID0gMTtcclxuICBvcGVuSWNvbiA9ICcnO1xyXG4gIG9wZW5JY29uQ29sb3IgPSAnIzE5NTRBOSc7XHJcbiAgY2xvc2VJY29uID0gJyc7XHJcbiAgY2xvc2VJY29uQ29sb3IgPSAnIzAwMDAwMCc7XHJcbiAgaXRlbUljb24gPSAnJztcclxuICBpdGVtSWNvblN2ZyA9ICcnO1xyXG4gIGl0ZW1JY29uUGF0aCA9ICcnO1xyXG4gIGl0ZW1JY29uQmFzZTY0ID0gJyc7XHJcbiAgbW9kdWxlSWQ6IG51bWJlcjtcclxuXHJcbiAgdHJlZUNvbnRyb2wgPSBuZXcgRmxhdFRyZWVDb250cm9sPFRyZWVGbGF0Tm9kZT4oXHJcbiAgICAobm9kZSkgPT4ge1xyXG4gICAgICByZXR1cm4gbm9kZS5sZXZlbDtcclxuICAgIH0sXHJcbiAgICAobm9kZSkgPT4ge1xyXG4gICAgICByZXR1cm4gbm9kZS5leHBhbmRhYmxlO1xyXG4gICAgfVxyXG4gICk7XHJcblxyXG4gIGlzQ2hlY2tlZCA9IGZhbHNlO1xyXG4gIGNoZWNrbGlzdFNlbGVjdGlvbjogYW55O1xyXG4gIGlkQ2hlY2tJY29uID0gJyc7XHJcbiAgbGlzdENoaWxkTm9kZSA9IFtdO1xyXG4gIGRhdGFUeXBlID0gRGF0YVR5cGU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBkb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcixcclxuICAgIHByaXZhdGUgaWNvblJlZ2lzdHJ5OiBNYXRJY29uUmVnaXN0cnksXHJcbiAgICBwcml2YXRlIGFwcEljb25TZXJ2aWNlOiBRTVNJY29uUmVnaXN0cnlTZXJ2aWNlKSB7XHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ2tleWJvYXJkX3VwJywgZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKEtFWUJPQVJEX1VQX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgna2V5Ym9hcmRfZG93bicsIGRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChLRVlCT0FSRF9ET1dOX0lDT04pKTtcclxuICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyUHJvY2Vzc0ljb24oaWNvblJlZ2lzdHJ5LCBkb21TYW5pdGl6ZXIpO1xyXG4gICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJQcm9jZXNzQXJlYUljb24oaWNvblJlZ2lzdHJ5LCBkb21TYW5pdGl6ZXIpO1xyXG4gICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJEb2N1bWVudEljb24oaWNvblJlZ2lzdHJ5LCBkb21TYW5pdGl6ZXIpO1xyXG4gICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJGb2xkZXJJY29uKGljb25SZWdpc3RyeSwgZG9tU2FuaXRpemVyKTtcclxuICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyRGV2aWF0aW9uSWNvbihpY29uUmVnaXN0cnksIGRvbVNhbml0aXplcik7XHJcbiAgICBhcHBJY29uU2VydmljZS5yZWdpc3RlckNoZWNrbGlzdEljb24oaWNvblJlZ2lzdHJ5LCBkb21TYW5pdGl6ZXIpO1xyXG4gICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJSaXNrSWNvbihpY29uUmVnaXN0cnksIGRvbVNhbml0aXplcik7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcy50cmVlRGF0YSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzLnRyZWVEYXRhLmN1cnJlbnRWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZXMudHJlZURhdGEucHJldmlvdXNWYWx1ZSkpIHtcclxuICAgICAgdGhpcy50cmVlRGF0YSA9IGNoYW5nZXMudHJlZURhdGEuY3VycmVudFZhbHVlO1xyXG4gICAgICB0aGlzLmluaXRUcmVlRGF0YSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjaGFuZ2VzLnNlbGVjdGVkRGF0YSAmJlxyXG4gICAgICAoY2hhbmdlcy5zZWxlY3RlZERhdGEuY3VycmVudFZhbHVlLmxlbmd0aCAmJlxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KGNoYW5nZXMuc2VsZWN0ZWREYXRhLmN1cnJlbnRWYWx1ZSkgIT09XHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoY2hhbmdlcy5zZWxlY3RlZERhdGEucHJldmlvdXNWYWx1ZSkpKSB7XHJcbiAgICAgIGlmIChjaGFuZ2VzLnNlbGVjdGVkRGF0YS5jdXJyZW50VmFsdWUgJiYgY2hhbmdlcy5zZWxlY3RlZERhdGEuY3VycmVudFZhbHVlWzBdICE9PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja1NlbGVjdGVkKGNoYW5nZXMuc2VsZWN0ZWREYXRhLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pZENoZWNrSWNvbiA9ICcnO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmRlc2VsZWN0KHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNoYW5nZXMuZGlzYWJsZWRMaXN0ICYmIEpTT04uc3RyaW5naWZ5KGNoYW5nZXMuZGlzYWJsZWRMaXN0LmN1cnJlbnRWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZXMuZGlzYWJsZWRMaXN0LnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tEaXNhYmxlZExpc3QoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBleHBhbmQgYWxsIHBhcmVudCB0byBzaG93IG5vZGVcclxuICAgIGlmIChjaGFuZ2VzLmV4cGFuZFRvQ2hpbGROb2RlICYmIEpTT04uc3RyaW5naWZ5KGNoYW5nZXMuZXhwYW5kVG9DaGlsZE5vZGUuY3VycmVudFZhbHVlKSAhPT0gSlNPTi5zdHJpbmdpZnkoY2hhbmdlcy5leHBhbmRUb0NoaWxkTm9kZS5wcmV2aW91c1ZhbHVlKSkge1xyXG4gICAgICB0aGlzLm9wZW5FeHBhbmRUb0NoaWxkTm9kZSgpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy8gdGhpcy5pbml0VHJlZURhdGEoKTtcclxuICB9XHJcblxyXG4gIGluaXRUcmVlRGF0YSgpIHtcclxuICAgIHRoaXMudHJlZURhdGEuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgaWYgKCEhaXRlbS5wYXJlbnRJZCAmJiBpdGVtLnBhcmVudElkLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmxpc3RQYXJlbnRPYmpbaXRlbS5wYXJlbnRJZF0gPSAxO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpdGVtLmNoaWxkSWQgJiYgaXRlbS5jaGlsZElkLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmxpc3RQYXJlbnRPYmpbaXRlbS5yb290SWRdID0gMTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5maWx0ZXJEYXRhID0gdGhpcy50cmVlRGF0YTtcclxuXHJcbiAgICB0aGlzLnRyZWVPYmplY3QgPSBUcmVlRnVuY3Rpb25zLmJ1aWxkT2JqZWN0VHJlZSh0aGlzLmZpbHRlckRhdGEpO1xyXG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBUcmVlRnVuY3Rpb25zLmJ1aWxkQXJyYXlUcmVlKHRoaXMudHJlZU9iamVjdCB8fCB7fSwgMCkubWFwKGVsZW1lbnQgPT4ge1xyXG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5zb3J0RGF0YVRyZWUoZWxlbWVudCk7XHJcbiAgICAgIGVsZW1lbnQgPSBudWxsO1xyXG4gICAgICBlbGVtZW50ID0geyAuLi57fSwgLi4uaXRlbSB9O1xyXG4gICAgICByZXR1cm4gZWxlbWVudDtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMudXNlRXhwYW5kRmVhdHVyZSA9ICF0aGlzLnRyZWVDb25maWc/LnNob3dDaGVja0JveDtcclxuICAgIHRoaXMuc2hvd0NoZWNrQm94ID0gdGhpcy50cmVlQ29uZmlnPy5zaG93Q2hlY2tCb3g7XHJcbiAgICB0aGlzLm9ubHlDaGVja0JveEZvckNoaWxkID0gdGhpcy50cmVlQ29uZmlnPy5vbmx5Q2hlY2tCb3hGb3JDaGlsZDtcclxuICAgIHRoaXMubW9kdWxlSWQgPSB0aGlzLnRyZWVDb25maWc/Lm1vZHVsZUlkO1xyXG4gICAgdGhpcy5vcGVuSWNvbiA9IHRoaXMudHJlZUNvbmZpZz8ub3Blbkljb247XHJcbiAgICB0aGlzLm9wZW5JY29uQ29sb3IgPSB0aGlzLnRyZWVDb25maWc/Lm9wZW5JY29uQ29sb3IgPyB0aGlzLnRyZWVDb25maWc/Lm9wZW5JY29uQ29sb3IgOiB0aGlzLm9wZW5JY29uQ29sb3I7XHJcbiAgICB0aGlzLmNsb3NlSWNvbiA9IHRoaXMudHJlZUNvbmZpZz8uY2xvc2VJY29uO1xyXG4gICAgdGhpcy5jbG9zZUljb25Db2xvciA9IHRoaXMudHJlZUNvbmZpZz8uY2xvc2VJY29uQ29sb3IgPyB0aGlzLnRyZWVDb25maWc/LmNsb3NlSWNvbkNvbG9yIDogdGhpcy5jbG9zZUljb25Db2xvcjtcclxuICAgIHRoaXMuaXRlbUljb24gPSB0aGlzLnRyZWVDb25maWc/Lml0ZW1JY29uO1xyXG4gICAgdGhpcy5pdGVtSWNvblN2ZyA9IHRoaXMudHJlZUNvbmZpZz8uaXRlbUljb25Tdmc7XHJcbiAgICB0aGlzLml0ZW1JY29uUGF0aCA9IHRoaXMudHJlZUNvbmZpZz8uaXRlbUljb25QYXRoO1xyXG4gICAgdGhpcy5pdGVtSWNvbkJhc2U2NCA9IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh0aGlzLnRyZWVDb25maWc/Lml0ZW1JY29uQmFzZTY0KSBhcyBzdHJpbmc7XHJcbiAgICB0aGlzLmFsbG93TXVsdGlwbGVDaGVjayA9IHRoaXMudHJlZUNvbmZpZz8uYWxsb3dNdWx0aXBsZUNoZWNrO1xyXG4gICAgdGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUgPSB0aGlzLnRyZWVDb25maWc/LnNpbmdsZVNlbGVjdGVkTm9kZTtcclxuICAgIHRoaXMub25seUZvbGRlciA9IHRoaXMudHJlZUNvbmZpZz8ub25seUZvbGRlcjtcclxuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbk1vZGVsPFRyZWVGbGF0Tm9kZT4odGhpcy5hbGxvd011bHRpcGxlQ2hlY2spOyAvKiB0cnVlOiBtdWx0aXBsZSAqL1xyXG5cclxuICAgIHRoaXMuZGlzcGxheVR5cGUgPSB0aGlzLmdldEl0ZW1JY29uVHlwZSh0aGlzLnRyZWVDb25maWcpO1xyXG5cclxuICAgIC8vIEV4cGFuZCBjaGlsZCBub2RlIHRyZWVcclxuICAgIGlmICh0aGlzLnRyZWVDb25maWcuZXhwYW5kQWxsKSB7XHJcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kQWxsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9EaXNhYmxlZCBub2RlXHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZExpc3QubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tEaXNhYmxlZExpc3QoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBSaXNrIFRyZWVcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkUmlza0RhdGEubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkRGF0YSA9IFtdO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJpc2tEYXRhLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHNlbGVjdGVkRGF0YS5maW5kSW5kZXgoZWwgPT4gZWwuaWQgPT09IHgucm9vdElkKTtcclxuICAgICAgICAgIGlmICh4LnJvb3RJZCA9PT0gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uaWQgJiYgaW5kZXggPCAwKSB7XHJcbiAgICAgICAgICAgIHNlbGVjdGVkRGF0YS5wdXNoKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5jaGVja1NlbGVjdGVkKHNlbGVjdGVkRGF0YSk7XHJcbiAgICAgIHRoaXMuY2hlY2tCb3hFdmVudC5lbWl0KHNlbGVjdGVkRGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8ga2VlcCBleHBhbmRcclxuICAgIGlmICh0aGlzLnBhcmVudE5vZGVPbkNsaWNrICYmIE9iamVjdC5rZXlzKHRoaXMucGFyZW50Tm9kZU9uQ2xpY2spLmxlbmd0aCkge1xyXG4gICAgICBsZXQgdGVtcFBhcmVudCA9IFtdO1xyXG4gICAgICBsZXQgcm9vdCA9IG5ldyBUcmVlRmxhdE5vZGUoKTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IHRyZWUgPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXTtcclxuICAgICAgICBpZiAodGhpcy5wYXJlbnROb2RlT25DbGljay5wYXJlbnRJZCA9PT0gdHJlZS5wYXJlbnRJZCAmJiB0aGlzLnBhcmVudE5vZGVPbkNsaWNrLmlkID09PSB0cmVlLmlkXHJcbiAgICAgICAgICB8fCB0aGlzLnBhcmVudE5vZGVPbkNsaWNrLnBhcmVudElkID09PSB0cmVlLmlkKSB7XHJcbiAgICAgICAgICB0ZW1wUGFyZW50ID0gWy4uLnRlbXBQYXJlbnQsIHRoaXMuZ2V0UGFyZW50KHRyZWUpXTtcclxuICAgICAgICAgIHJvb3QgPSB0cmVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0ZW1wUGFyZW50LnB1c2gocm9vdCk7XHJcbiAgICAgIHRlbXBQYXJlbnQuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZCh4KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMudHJlZUNvbnRyb2xOb2Rlcy5lbWl0KHRoaXMudHJlZUNvbnRyb2wpO1xyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcblxyXG4gIGdldFBhcmVudChub2RlOiBUcmVlRmxhdE5vZGUpIHtcclxuICAgIGNvbnN0IHsgdHJlZUNvbnRyb2wgfSA9IHRoaXM7XHJcbiAgICBjb25zdCBjdXJyZW50TGV2ZWwgPSB0cmVlQ29udHJvbC5nZXRMZXZlbChub2RlKTtcclxuXHJcbiAgICBpZiAoY3VycmVudExldmVsIDwgMSkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpbmRleCA9IHRyZWVDb250cm9sLmRhdGFOb2Rlcy5pbmRleE9mKG5vZGUpIC0gMTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gaW5kZXg7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnROb2RlID0gdHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldO1xyXG5cclxuICAgICAgaWYgKHRyZWVDb250cm9sLmdldExldmVsKGN1cnJlbnROb2RlKSA8IGN1cnJlbnRMZXZlbCkge1xyXG4gICAgICAgIHJldHVybiBjdXJyZW50Tm9kZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3BlbkV4cGFuZFRvQ2hpbGROb2RlKCkge1xyXG4gICAgaWYgKHRoaXMuZXhwYW5kVG9DaGlsZE5vZGUubGVuZ3RoKSB7XHJcbiAgICAgIGlmICh0aGlzLmV4cGFuZFRvQ2hpbGROb2RlWzBdID09PSAnJykge1xyXG4gICAgICAgIHRoaXMuaWRDaGVja0ljb24gPSAnJztcclxuICAgICAgICB0aGlzLnRyZWVDb250cm9sLmNvbGxhcHNlQWxsKCk7XHJcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGl0ZW1NYXJrQ2hlY2tlZCA9ICF0aGlzLnNlbGVjdGVkRGF0YSB8fCAhdGhpcy5zZWxlY3RlZERhdGEubGVuZ3RoID8gJycgOiB0aGlzLnNlbGVjdGVkRGF0YVt0aGlzLnNlbGVjdGVkRGF0YS5sZW5ndGggLSAxXS5pZD8udG9Mb3dlckNhc2UoKTtcclxuICAgICAgbGV0IHBhcmVudEl0ZW0gPSAnJztcclxuXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoaXRlbU1hcmtDaGVja2VkID09PSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5pZCkge1xyXG4gICAgICAgICAgcGFyZW50SXRlbSA9IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLnBhcmVudElkO1xyXG4gICAgICAgICAgLy8gdGhpcy5zZWxlY3ROb2RlRXZlbnQuZW1pdCh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZXhwYW5kVG9DaGlsZE5vZGUuZm9yRWFjaChlbCA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uaWQ/LnRvTG93ZXJDYXNlKCkgPT09IGVsPy50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlkQ2hlY2tJY29uID0gdGhpcy5pZFRvQ2hlY2tTZWxlY3RPbmUoaXRlbU1hcmtDaGVja2VkLCBwYXJlbnRJdGVtKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNrRGlzYWJsZWRMaXN0KCkge1xyXG4gICAgLy8gRGlzYWJsZSBMaXN0ICBcclxuICAgIC8vICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAvLyAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgLy8gIH1cclxuICAgIGlmICh0aGlzLmRpc2FibGVkTGlzdC5sZW5ndGgpIHtcclxuICAgICAgaWYgKHRoaXMudHJlZUNvbmZpZy5zZWxlY3RPbmUpIHtcclxuICAgICAgICBjb25zdCBjdXJyTm9kZSA9IHRoaXMuZGlzYWJsZWRMaXN0W3RoaXMuZGlzYWJsZWRMaXN0Lmxlbmd0aCAtIDFdO1xyXG4gICAgICAgIGNvbnN0IGlkeFBhcmVudCA9IHRoaXMuZGlzYWJsZWRMaXN0Lmxlbmd0aCA+PSAyID8gdGhpcy5kaXNhYmxlZExpc3QubGVuZ3RoIC0gMiA6ICcnO1xyXG4gICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBpZHhQYXJlbnQgIT09ICcnID8gdGhpcy5kaXNhYmxlZExpc3RbaWR4UGFyZW50XSA6ICcnO1xyXG5cclxuICAgICAgICAvLyBjb25zdCBpbmRleCA9IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmZpbmRJbmRleChub2RlID0+IG5vZGUuaWQ/LnRvTG93ZXJDYXNlKCkgPT09IGN1cnJOb2RlPy50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgLy8gICAmJiAocGFyZW50Tm9kZT8udG9Mb3dlckNhc2UoKSA9PT0gbm9kZS5wYXJlbnRJZD8udG9Mb3dlckNhc2UoKSkpO1xyXG5cclxuICAgICAgICAvLyBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICAgIC8vICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaW5kZXhdLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgIC8vIGdldCBhbGwgY2hpbGRyZW4gbm9kZXMgb24gc2FtZSBsZXZlbFxyXG4gICAgICAgIGxldCBsaXN0Q2hpbGROb2RlU2FtZUxldmVsID0gdGhpcy5maW5kQ2hpbGROb2RlKGN1cnJOb2RlLnRvTG93ZXJDYXNlKCksIHRoaXMuZGF0YVNvdXJjZS5kYXRhKTtcclxuICAgICAgICAvLyBnZXQgYWxsIGNoaWxkcmVuIGluIGFsbCBsZXZlbFxyXG4gICAgICAgIHRoaXMubGlzdENoaWxkTm9kZSA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLmdldENoaWxkKGxpc3RDaGlsZE5vZGVTYW1lTGV2ZWwpO1xyXG4gICAgICAgIHRoaXMubGlzdENoaWxkTm9kZS5wdXNoKGxpc3RDaGlsZE5vZGVTYW1lTGV2ZWwpO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBpZiAoY3Vyck5vZGU/LnRvTG93ZXJDYXNlKCkgPT09IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmlkPy50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgICAgICYmIChwYXJlbnROb2RlPy50b0xvd2VyQ2FzZSgpID09PSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5wYXJlbnRJZD8udG9Mb3dlckNhc2UoKSkpIHtcclxuICAgICAgICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdE5vZGVFdmVudC5lbWl0KHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuZGlzYWJsZWRMaXN0LmZvckVhY2goZWwgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uaWQ/LnRvTG93ZXJDYXNlKCkgPT09IGVsPy50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgICAgLy8gdGhpcy50cmVlQ29udHJvbC5leHBhbmQodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIC8vIHJlbW92ZSBhbGwgY2hpbGRyZW4gbm9kZXMgd2hlbiB1c2VyIGRvbnQgbmVlZCB0byBzaG93IHRoZW1cclxuICAgICAgICAgIC8vIHRoaXMubGlzdENoaWxkTm9kZS5mb3JFYWNoKGVsID0+IHtcclxuICAgICAgICAgIC8vICAgaWYgKGVsLmlkICYmIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldPy5pZCA9PT0gZWwuaWQpIHtcclxuICAgICAgICAgIC8vICAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAvLyAgIH1cclxuICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlkQ2hlY2tJY29uID0gdGhpcy5pZFRvQ2hlY2tTZWxlY3RPbmUoY3Vyck5vZGU/LnRvTG93ZXJDYXNlKCksIHBhcmVudE5vZGU/LnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZWRMaXN0LmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgICBzd2l0Y2ggKGl0ZW0uaXRlbVR5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSB0aGlzLmRhdGFUeXBlLmRldmlhdGlvbjpcclxuICAgICAgICAgICAgICBjb25zdCBkZXZpYXRpb25JbmRleCA9IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmZpbmRJbmRleChub2RlID0+IG5vZGUuaWQgPT09IGl0ZW0uaWQgJiYgbm9kZS5wYXJlbnRJZCA9PT0gaXRlbS5wYXJlbnRJZCk7XHJcbiAgICAgICAgICAgICAgaWYgKGRldmlhdGlvbkluZGV4ID49IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2RldmlhdGlvbkluZGV4XS5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIHRoaXMuZGF0YVR5cGUucmlzazpcclxuICAgICAgICAgICAgICBjb25zdCByaXNrSW5kZXggPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5maW5kSW5kZXgobm9kZSA9PiBub2RlLmlkID09PSBpdGVtLmlkKTtcclxuICAgICAgICAgICAgICBpZiAocmlza0luZGV4ID49IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW3Jpc2tJbmRleF0uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSB0aGlzLmRhdGFUeXBlLmNoZWNrbGlzdDpcclxuICAgICAgICAgICAgICBjb25zdCBjaGVja2xpc3RJbmRleCA9IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmZpbmRJbmRleChub2RlID0+IG5vZGUuaWQudG9Mb3dlckNhc2UoKSA9PT0gaXRlbS5pZC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgICAgICAgICAmJiBub2RlLnBhcmVudElkPy50b0xvd2VyQ2FzZSgpID09PSBpdGVtLnBhcmVudElkPy50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgICAgICAgICBpZiAoY2hlY2tsaXN0SW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbY2hlY2tsaXN0SW5kZXhdLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5pZENoZWNrSWNvbiA9ICcnO1xyXG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldENoaWxkKG9iaikge1xyXG4gICAgaWYgKCFvYmopIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb2JqLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChvYmouY2hpbGRyZW5baV0uY2hpbGRyZW4pIHtcclxuICAgICAgICB0aGlzLmdldENoaWxkKG9iai5jaGlsZHJlbltpXSk7XHJcbiAgICAgICAgLy8gZGVsZXRlIG9iai5jaGlsZHJlbltpXS5jaGlsZHJlbjtcclxuICAgICAgICB0aGlzLmxpc3RDaGlsZE5vZGUucHVzaChvYmouY2hpbGRyZW5baV0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubGlzdENoaWxkTm9kZS5wdXNoKG9iai5jaGlsZHJlbltpXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNvcnREYXRhVHJlZShvYmopIHtcclxuICAgIGlmIChvYmouY2hpbGRyZW4pIHtcclxuICAgICAgbGV0IGNoaWxkID0gW107XHJcbiAgICAgIGNvbnN0IGxlYWZOb2RlID0gb2JqLmNoaWxkcmVuLmZpbHRlcih4ID0+ICF4LmNoaWxkcmVuKTtcclxuICAgICAgY29uc3Qgc3ViRm9sZGVyTm9kZSA9IG9iai5jaGlsZHJlbi5maWx0ZXIoeCA9PiB4LmNoaWxkcmVuKTtcclxuICAgICAgLy8gZm9yKGxldCBpbmRleCA9IHN1YkZvbGRlck5vZGUubGVuZ3RoIC0gMTsgaW5kZXggPj0gMCA7IGluZGV4LS0pe1xyXG4gICAgICAvLyAgIGxldCBlbCA9IHN1YkZvbGRlck5vZGVbaW5kZXhdO1xyXG4gICAgICAvLyAgIHRoaXMuc29ydERhdGFUcmVlKGVsKTtcclxuICAgICAgLy8gICBjaGlsZC51bnNoaWZ0KGVsKTtcclxuICAgICAgLy8gfVxyXG4gICAgICBzdWJGb2xkZXJOb2RlLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgbGV0IGVsID0gZWxlbWVudDtcclxuICAgICAgICB0aGlzLnNvcnREYXRhVHJlZShlbCk7XHJcbiAgICAgICAgY2hpbGQucHVzaChlbCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgbGVhZk5vZGUuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICBsZXQgZWwgPSBlbGVtZW50O1xyXG4gICAgICAgIGNoaWxkLnB1c2goZWwpO1xyXG4gICAgICB9KTtcclxuICAgICAgb2JqLmNoaWxkcmVuID0gY2hpbGQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW1hZ2VQYXRoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh0aGlzLnRyZWVDb25maWcuaXRlbUljb25CYXNlNjQpIGFzIHN0cmluZztcclxuICB9XHJcblxyXG4gIGNoZWNrU2VsZWN0ZWQoaXRlbVNlbGVjdGVkOiBUcmVlRmxhdE5vZGVbXSkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy50cmVlQ29udHJvbFsnZGF0YU5vZGVzJ10pIHJldHVybjtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IHRyZWUgPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXTtcclxuICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5kZXNlbGVjdCh0cmVlKTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBpdGVtU2VsZWN0ZWQubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBpdGVtU2VsZWN0ZWRbal07XHJcbiAgICAgICAgICBpZiAodHJlZS5pZCA9PT0gZWxlbWVudC5pZCAmJiAoIXRyZWUucGFyZW50SWQgfHwgdHJlZS5wYXJlbnRJZCA9PT0gZWxlbWVudC5wYXJlbnRJZCkpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2codHJlZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdCh0cmVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGEgPSBpdGVtU2VsZWN0ZWQ7XHJcbiAgICB9LCA1MDApO1xyXG5cclxuICB9XHJcblxyXG4gIGNoZWNrU2VsZWN0ZWRTYW1lTm9kZShpdGVtU2VsZWN0ZWQ6IFRyZWVGbGF0Tm9kZVtdLCBmbGFnOiBib29sZWFuKSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IHRyZWUgPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXTtcclxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBpdGVtU2VsZWN0ZWQubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICBjb25zdCBlbGVtZW50ID0gaXRlbVNlbGVjdGVkW2pdO1xyXG4gICAgICAgIGlmIChlbGVtZW50LmlkICYmIHRyZWUuaWQgPT09IGVsZW1lbnQuaWRcclxuICAgICAgICAgICYmIHRyZWUucGFyZW50SWQgPT09IGVsZW1lbnQucGFyZW50SWQgJiYgIXRyZWUuZGlzYWJsZWQpIHtcclxuICAgICAgICAgIGZsYWcgPyB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3QodHJlZSkgOiB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5kZXNlbGVjdCh0cmVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEl0ZW1JY29uVHlwZSh0cmVlQ29uZmlnOiBUcmVlQ29uZmlnKSB7XHJcbiAgICBpZiAodHJlZUNvbmZpZy5pdGVtSWNvbiAmJiB0cmVlQ29uZmlnLml0ZW1JY29uLmxlbmd0aCkgcmV0dXJuIHRoaXMuaXRlbUljb25UeXBlLm5hbWU7XHJcbiAgICBpZiAodHJlZUNvbmZpZy5pdGVtSWNvblBhdGggJiYgdHJlZUNvbmZpZy5pdGVtSWNvblBhdGgubGVuZ3RoKSByZXR1cm4gdGhpcy5pdGVtSWNvblR5cGUucGF0aDtcclxuICAgIGlmICh0cmVlQ29uZmlnLml0ZW1JY29uQmFzZTY0ICYmIHRyZWVDb25maWcuaXRlbUljb25CYXNlNjQubGVuZ3RoKSByZXR1cm4gdGhpcy5pdGVtSWNvblR5cGUuYmFzZTY0O1xyXG4gICAgaWYgKHRyZWVDb25maWcuaXRlbUljb25TdmcgJiYgdHJlZUNvbmZpZy5pdGVtSWNvblN2Zy5sZW5ndGgpIHJldHVybiB0aGlzLml0ZW1JY29uVHlwZS5zdmc7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtSWNvblR5cGUubm9uZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RyYW5zZm9ybWVyID0gKG5vZGU6IFRyZWVOb2RlLCBsZXZlbDogbnVtYmVyKSA9PiB7XHJcbiAgICBsZXQgY2hlY2tIYXNDaGlsZCA9IHRydWU7XHJcbiAgICBpZiAoIW5vZGUuY2hpbGRyZW4pIHtcclxuICAgICAgY2hlY2tIYXNDaGlsZCA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmICghKCEhbm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgIGNoZWNrSGFzQ2hpbGQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcclxuICAgIGVsc2UgaWYgKFxyXG4gICAgICAhIW5vZGUuY2hpbGRyZW4gJiZcclxuICAgICAgbm9kZS5jaGlsZHJlbi5sZW5ndGggJiZcclxuICAgICAgbm9kZS5jaGlsZHJlbi5sZW5ndGggPT09IDEgJiZcclxuICAgICAgIW5vZGUuY2hpbGRyZW5bMF0ubmFtZSAmJlxyXG4gICAgICBub2RlLmlkPy50b1N0cmluZygpID09PSAnJ1xyXG4gICAgKSB7XHJcbiAgICAgIGNoZWNrSGFzQ2hpbGQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoISh0aGlzLmxpc3RQYXJlbnRPYmpbbm9kZS5pZF0gPT09IDEpKSB7XHJcbiAgICAgIGNoZWNrSGFzQ2hpbGQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBleHBhbmRhYmxlOiAhIW5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwLFxyXG4gICAgICBuYW1lOiBub2RlLm5hbWUsXHJcbiAgICAgIGxldmVsLFxyXG4gICAgICBpZDogbm9kZS5pZCxcclxuICAgICAgaGFzQ2hpbGQ6IGNoZWNrSGFzQ2hpbGQsXHJcbiAgICAgIHBhcmVudElkOiBub2RlLnBhcmVudElkLFxyXG4gICAgICBkaXNhYmxlZDogbm9kZS5kaXNhYmxlZCxcclxuICAgICAgbGV2ZWxUeXBlOiBub2RlLmxldmVsVHlwZSxcclxuICAgICAgbWFya2VkR2V0Q2hpbGRyZW46IG5vZGUubWFya2VkR2V0Q2hpbGRyZW4gfHwgZmFsc2VcclxuICAgIH07XHJcbiAgfTtcclxuXHJcbiAgdHJlZUZsYXR0ZW5lciA9IG5ldyBNYXRUcmVlRmxhdHRlbmVyKFxyXG4gICAgdGhpcy5fdHJhbnNmb3JtZXIsXHJcbiAgICAobm9kZSkgPT4ge1xyXG4gICAgICByZXR1cm4gbm9kZS5sZXZlbDtcclxuICAgIH0sXHJcbiAgICAobm9kZSkgPT4ge1xyXG4gICAgICByZXR1cm4gbm9kZS5leHBhbmRhYmxlO1xyXG4gICAgfSxcclxuICAgIChub2RlKSA9PiB7XHJcbiAgICAgIHJldHVybiBub2RlLmNoaWxkcmVuO1xyXG4gICAgfVxyXG4gICk7XHJcblxyXG4gIGRhdGFTb3VyY2UgPSBuZXcgTWF0VHJlZUZsYXREYXRhU291cmNlKHRoaXMudHJlZUNvbnRyb2wsIHRoaXMudHJlZUZsYXR0ZW5lcik7XHJcblxyXG5cclxuICAvKiogV2hldGhlciBhbGwgdGhlIGRlc2NlbmRhbnRzIG9mIHRoZSBub2RlIGFyZSBzZWxlY3RlZCAqL1xyXG4gIGRlc2NlbmRhbnRzQWxsU2VsZWN0ZWQobm9kZTogVHJlZUZsYXROb2RlKTogYm9vbGVhbiB7XHJcblxyXG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSAhdGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUgPyB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpLmZpbHRlcihpdGVtID0+ICFpdGVtLmRpc2FibGVkKSA6IFtdO1xyXG5cclxuICAgIGlmICghZGVzY2VuZGFudHMubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpO1xyXG5cclxuICAgIGNvbnN0IGFsbFNlbGVjdGVkID0gZGVzY2VuZGFudHMuZXZlcnkoY2hpbGQgPT4gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChjaGlsZCkpO1xyXG4gICAgaWYgKCFzZWxlY3RlZCAmJiBhbGxTZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3Qobm9kZSk7XHJcbiAgICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYWxsU2VsZWN0ZWQ7XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqIFdoZXRoZXIgcGFydCBvZiB0aGUgZGVzY2VuZGFudHMgYXJlIHNlbGVjdGVkICovXHJcbiAgZGVzY2VuZGFudHNQYXJ0aWFsbHlTZWxlY3RlZChub2RlOiBUcmVlRmxhdE5vZGUpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gIXRoaXMuc2luZ2xlU2VsZWN0ZWROb2RlID8gdGhpcy50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKS5maWx0ZXIoaXRlbSA9PiAhaXRlbS5kaXNhYmxlZCkgOiBbXTtcclxuXHJcbiAgICBjb25zdCByZXN1bHQgPSBkZXNjZW5kYW50cy5zb21lKGNoaWxkID0+IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQoY2hpbGQpKTtcclxuICAgIHJldHVybiByZXN1bHQgJiYgIXRoaXMuZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlKTtcclxuICB9XHJcblxyXG4gIC8qKiBUb2dnbGUgdGhlIHRvLWRvIGl0ZW0gc2VsZWN0aW9uLiBTZWxlY3QvZGVzZWxlY3QgYWxsIHRoZSBkZXNjZW5kYW50cyBub2RlICovXHJcbiAgcHVibGljIHRvZG9JdGVtU2VsZWN0aW9uVG9nZ2xlKG5vZGU6IFRyZWVGbGF0Tm9kZSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3ROb2RlRXZlbnQuZW1pdChub2RlKTtcclxuICAgIC8vIHRyZWUgaGF2ZSBkdXBsaWNhdGUgbm9kZVxyXG4gICAgaWYgKHRoaXMudHJlZUNvbmZpZy5jYW5IYXZlRHVwSWQpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5pZCA9PT0gbm9kZS5pZFxyXG4gICAgICAgICAgJiYgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0ucGFyZW50SWQgPT09IG5vZGUucGFyZW50SWRcclxuICAgICAgICAgICYmICF0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24udG9nZ2xlKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnRvZ2dsZShub2RlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy8gcHJvY2Vzcy8gZG9jdW1lbnQgc2luZ2xlIHNlbGVjdGVkXHJcbiAgICBpZiAoIXRoaXMuc2luZ2xlU2VsZWN0ZWROb2RlKSB7XHJcbiAgICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gdGhpcy50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKS5maWx0ZXIoaXRlbSA9PiAhaXRlbS5kaXNhYmxlZCk7XHJcblxyXG4gICAgICB0aGlzLmNoZWNrU2VsZWN0ZWRTYW1lTm9kZShkZXNjZW5kYW50cywgdGhpcy5kZXNjZW5kYW50c0FsbFNlbGVjdGVkKG5vZGUpKTtcclxuXHJcbiAgICAgICF0aGlzLmRlc2NlbmRhbnRzQWxsU2VsZWN0ZWQobm9kZSlcclxuICAgICAgICA/IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdCguLi5kZXNjZW5kYW50cylcclxuICAgICAgICA6IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmRlc2VsZWN0KC4uLmRlc2NlbmRhbnRzKTtcclxuICAgICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcclxuXHJcbiAgICAgIGNvbnN0IGFsbE5vZGVJc1BhcmVudCA9IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkLmV2ZXJ5KGNoaWxkID0+IGNoaWxkLmV4cGFuZGFibGUpO1xyXG5cclxuICAgICAgaWYgKGFsbE5vZGVJc1BhcmVudCkge1xyXG4gICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5kZXNlbGVjdChlbGVtZW50KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5jaGVja0JveEV2ZW50LmVtaXQodGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQpO1xyXG4gIH1cclxuXHJcbiAgdG9kb0NoaWxkU2VsZWN0aW9uVG9nZ2xlKG5vZGU6IFRyZWVGbGF0Tm9kZSk6IHZvaWQge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uaWQgPT09IG5vZGUuaWRcclxuICAgICAgICAmJiB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5wYXJlbnRJZCA9PT0gbm9kZS5wYXJlbnRJZFxyXG4gICAgICAgICYmICF0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5kaXNhYmxlZCkge1xyXG4gICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnRvZ2dsZSh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnRvZ2dsZShub2RlKTtcclxuICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB0aGlzLmNoZWNrQm94RXZlbnQuZW1pdCh0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3RlZCk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZG9JdGVtU2VsZWN0aW9uQnlJZChpZHM6IGFueVtdKTogdm9pZCB7XHJcbiAgICBpZHMuZm9yRWFjaChcclxuICAgICAgaWQgPT4ge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGlmICh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5pZCA9PT0gaWRcclxuICAgICAgICAgICAgJiYgIXRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZCh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXSkpXHJcbiAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24udG9nZ2xlKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLmNoZWNrQm94RXZlbnQuZW1pdCh0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9kb0l0ZW1TZWxlY3Rpb24obm9kZXM6IFRyZWVOb2RlW10pOiB2b2lkIHtcclxuICAgIG5vZGVzLmZvckVhY2goXHJcbiAgICAgIG5vZGUgPT4ge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGlmICh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5pZCA9PT0gbm9kZS5pZCAmJlxyXG4gICAgICAgICAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5wYXJlbnRJZCA9PT0gbm9kZS5wYXJlbnRJZCAmJlxyXG4gICAgICAgICAgICAhdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKSlcclxuICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi50b2dnbGUodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHRoaXMuY2hlY2tCb3hFdmVudC5lbWl0KHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkKTtcclxuXHJcbiAgfVxyXG5cclxuICB0b2RvSXRlbVNlbGVjdGlvblByb2Nlc3NEb2N1bWVudChub2RlczogVHJlZU5vZGVbXSk6IHZvaWQge1xyXG4gICAgbm9kZXMuZm9yRWFjaChcclxuICAgICAgbm9kZSA9PiB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaWYgKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmlkID09PSBub2RlLmlkICYmXHJcbiAgICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLnBhcmVudElkID09PSBub2RlLnBhcmVudElkICYmXHJcbiAgICAgICAgICAgICF0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5kaXNhYmxlZCAmJiAhdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uZXhwYW5kYWJsZSkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0pKVxyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnRvZ2dsZSh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hlY2tCb3hFdmVudC5lbWl0KHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkKTtcclxuICAgIH0sIDUwMCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9kb0ZvbGRlclNlbGVjdGlvbihub2RlczogVHJlZU5vZGVbXSk6IHZvaWQge1xyXG4gICAgbm9kZXMuZm9yRWFjaChcclxuICAgICAgbm9kZSA9PiB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaWYgKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmlkID09PSBub2RlLmlkICYmXHJcbiAgICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLnBhcmVudElkPy50b1N0cmluZygpID09PSBub2RlLnBhcmVudElkPy50b1N0cmluZygpICYmXHJcbiAgICAgICAgICAgICF0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5kaXNhYmxlZCAmJiB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5leHBhbmRhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZCh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXSkpXHJcbiAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24udG9nZ2xlKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy5jaGVja0JveEV2ZW50LmVtaXQodGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQpO1xyXG4gICAgdGhpcy5pZENoZWNrSWNvbiA9IHRoaXMuaWRUb0NoZWNrU2VsZWN0T25lKG5vZGVzWzBdLmlkLCBub2Rlc1swXS5wYXJlbnRJZCk7XHJcblxyXG4gIH1cclxuXHJcbiAgaGFzQ2hpbGQgPSAoXzogbnVtYmVyLCBub2RlOiBUcmVlRmxhdE5vZGUpID0+IHtcclxuICAgIHJldHVybiBub2RlLmV4cGFuZGFibGU7XHJcbiAgfTtcclxuXHJcbiAgc2VsZWN0Tm9kZShub2RlOiBUcmVlRmxhdE5vZGUpIHtcclxuICAgIGlmICh3aW5kb3dbUmVsYXRlZENvbnN0LklTX0RJU1BMQVlfU0VBUkNIX1JFU1VMVF0pIHtcclxuICAgICAgd2luZG93LnBvc3RNZXNzYWdlKFJlbGF0ZWRDb25zdC5ISURFX1NFQVJDSF9SRVNVTFQsICcqJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMudHJlZUNvbmZpZy5zZWxlY3RPbmUpIHtcclxuICAgICAgbm9kZS5pdGVtVHlwZSA9IHRoaXMuY2hlY2tEYXRhVHlwZVNlbGVjdE5vZGUobm9kZSk7XHJcbiAgICAgIHRoaXMuaWRDaGVja0ljb24gPSB0aGlzLmlkVG9DaGVja1NlbGVjdE9uZShub2RlLmlkLCBub2RlLnBhcmVudElkKTtcclxuICAgICAgdGhpcy5zZWxlY3ROb2RlRXZlbnQuZW1pdChub2RlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNrRGF0YVR5cGVTZWxlY3ROb2RlKG5vZGU6IFRyZWVGbGF0Tm9kZSkge1xyXG4gICAgbGV0IGl0ZW1UeXBlID0gLTE7XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLm1vZHVsZUlkKSB7XHJcbiAgICAgIGNhc2UgRGF0YVR5cGUucHJvY2VzczpcclxuICAgICAgICBpdGVtVHlwZSA9IG5vZGUuZXhwYW5kYWJsZSA/IERhdGFUeXBlLmFyZWEgOiBEYXRhVHlwZS5wcm9jZXNzO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIERhdGFUeXBlLmRvY3VtZW50OlxyXG4gICAgICAgIGl0ZW1UeXBlID0gbm9kZS5leHBhbmRhYmxlID8gRGF0YVR5cGUuZm9sZGVyIDogRGF0YVR5cGUuZG9jdW1lbnQ7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGl0ZW1UeXBlID0gdGhpcy5tb2R1bGVJZDtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaXRlbVR5cGU7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RGb2xkZXIobm9kZTogVHJlZUZsYXROb2RlKSB7XHJcbiAgICB0aGlzLnNlbGVjdEZvbGRlckV2ZW50LmVtaXQobm9kZSk7XHJcbiAgfVxyXG5cclxuICBvbkV4cGFuZE5vZGUobm9kZTogVHJlZUZsYXROb2RlLCBpc0V4cGFuZE5vZGU/OiBib29sZWFuKSB7XHJcbiAgICBpZiAoaXNFeHBhbmROb2RlICYmIHRoaXMuZXhwYW5kT25UaXRsZUNsaWNrKSB7XHJcbiAgICAgIGlmICghbm9kZS5tYXJrZWRHZXRDaGlsZHJlbiAmJiAhdGhpcy50cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpKSB7XHJcbiAgICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICAgIGlmICh4LnBhcmVudElkID09PSBub2RlLnBhcmVudElkICYmIHguaWQgPT09IG5vZGUuaWQpIHtcclxuICAgICAgICAgICAgeC5tYXJrZWRHZXRDaGlsZHJlbiA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5ub2RlRXhwYW5kRXZlbnQuZW1pdChub2RlKTtcclxuXHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaWRDaGVja0ljb24gPSB0aGlzLmlkVG9DaGVja1NlbGVjdE9uZShub2RlLmlkLCBub2RlLnBhcmVudElkKTtcclxuICAgICAgbm9kZS5pdGVtVHlwZSA9IHRoaXMuY2hlY2tEYXRhVHlwZVNlbGVjdE5vZGUobm9kZSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0Tm9kZUV2ZW50LmVtaXQobm9kZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICByZW1vdmVDaGlsZHJlbihwYXJlbnRFbGVtZW50PzogVHJlZU5vZGUpIHtcclxuICAgIGlmIChwYXJlbnRFbGVtZW50LmNoaWxkcmVuKSB7XHJcbiAgICAgIHBhcmVudEVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID0gMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFkZENoaWxkcmVuKHBhcmVudEVsZW1lbnQ/OiBUcmVlTm9kZSwgY2hpbGRyZW5MaXN0PzogVHJlZU5vZGVbXSkge1xyXG4gICAgaWYgKGNoaWxkcmVuTGlzdCkge1xyXG4gICAgICBjaGlsZHJlbkxpc3QuZm9yRWFjaCgoZSkgPT4ge1xyXG4gICAgICAgIHBhcmVudEVsZW1lbnQuY2hpbGRyZW4ucHVzaChlKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXROb2RlSW5kZXgoaWQ6IHN0cmluZywgbGV2ZWw/OiBudW1iZXIsIGRhdGE/OiBhbnlbXSkge1xyXG4gICAgaWYgKGxldmVsKSB7XHJcbiAgICAgIHJldHVybiBkYXRhLmZpbmRJbmRleCgoeCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB4LmlkID09PSBpZCAmJiB4LmxldmVsID09PSBsZXZlbDtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRhdGEuZmluZEluZGV4KCh4KSA9PiB7XHJcbiAgICAgIHJldHVybiB4LmlkID09PSBpZDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2hpbGROb2RlKHJvb3RJZDogc3RyaW5nLCBkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IGNoaWxkQXJyYXkgPSBkYXRhLmZpbHRlcigoeCkgPT4ge1xyXG4gICAgICByZXR1cm4geC5yb290SWQgPT09IHJvb3RJZDtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgY2hpbGQgPSB7IGlkOiBjaGlsZEFycmF5WzBdLnJvb3RJZCwgbmFtZTogY2hpbGRBcnJheVswXS5zdWJOYW1lLCBjaGlsZHJlbjogW10gfSBhcyBUcmVlTm9kZTtcclxuICAgIGNoaWxkQXJyYXkuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICBjaGlsZC5jaGlsZHJlbi5wdXNoKHsgaWQ6IGl0ZW0uY2hpbGRJZCwgbmFtZTogaXRlbS5jaGlsZE5hbWUsIHBhcmVudElkOiByb290SWQgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBjaGlsZDtcclxuICB9XHJcblxyXG4gIGZpbmRDaGlsZE5vZGUoaWQ6IHN0cmluZywgZGF0YTogVHJlZU5vZGVbXSkge1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XHJcbiAgICBmb3IgKGNvbnN0IGN1cnJlbnRGYXRoZXIgb2YgZGF0YSkge1xyXG4gICAgICBpZiAoY3VycmVudEZhdGhlci5pZD8udG9Mb3dlckNhc2UoKSA9PT0gaWQ/LnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgICByZXR1cm4gY3VycmVudEZhdGhlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGN1cnJlbnRGYXRoZXIuY2hpbGRyZW4pIHtcclxuICAgICAgICBjb25zdCBjdXJyZW50Q2hpbGQgPSBjdXJyZW50RmF0aGVyLmNoaWxkcmVuLmZpbmQoKHgpID0+IHtcclxuICAgICAgICAgIHJldHVybiB4LmlkPy50b0xvd2VyQ2FzZSgpID09PSBpZD8udG9Mb3dlckNhc2UoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoY3VycmVudENoaWxkKSB7XHJcbiAgICAgICAgICByZXR1cm4gY3VycmVudENoaWxkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XHJcbiAgICAgICAgZm9yIChjb25zdCBjdXJyZW50Q2hpbGQxIG9mIGN1cnJlbnRGYXRoZXIuY2hpbGRyZW4pIHtcclxuICAgICAgICAgIGlmIChpZD8udG9Mb3dlckNhc2UoKSAhPT0gY3VycmVudENoaWxkMS5pZD8udG9Mb3dlckNhc2UoKSkge1xyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmZpbmRDaGlsZE5vZGUoaWQsIGN1cnJlbnRGYXRoZXIuY2hpbGRyZW4pO1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2hUcmVlRGF0YSgpIHtcclxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gW107XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICBnZXROb2RlSWNvbihub2RlOiBUcmVlRmxhdE5vZGUpIHtcclxuICAgIGlmICh0aGlzLm9wZW5JY29uICYmIHRoaXMuY2xvc2VJY29uKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyB0aGlzLm9wZW5JY29uIDogdGhpcy5jbG9zZUljb247XHJcbiAgICB9XHJcbiAgICBzd2l0Y2ggKHRoaXMubW9kdWxlSWQpIHtcclxuICAgICAgY2FzZSBEYXRhVHlwZS5kb2N1bWVudDoge1xyXG4gICAgICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy50cmVlRGF0YS5maWx0ZXIoeCA9PiB7IHJldHVybiB4LnJvb3RJZCA9PT0gbm9kZS5pZDsgfSk7XHJcbiAgICAgICAgaWYgKG5vZGVEYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHN3aXRjaCAobm9kZURhdGFbMF0ubGV2ZWxUeXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5EZXBhcnRtZW50Rm9sZGVyOlxyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAnZGVwYXJ0bWVudF9mb2xkZXJfb3V0bGluZWQnIDogJ2RlcGFydG1lbnRfZm9sZGVyJztcclxuICAgICAgICAgICAgY2FzZSBEb2N1bWVudE5vZGVUeXBlLlJlZ2lvbmFsRm9sZGVyOlxyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAncmVnaW9uYWxfZm9sZGVyX291dGxpbmVkJyA6ICdyZWdpb25hbF9mb2xkZXInO1xyXG4gICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuVG9wRm9sZGVyOlxyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAnZW50ZXJwcmlzZV9mb2xkZXJfb3V0bGluZWQnIDogJ2VudGVycHJpc2VfZm9sZGVyJztcclxuICAgICAgICAgICAgY2FzZSBEb2N1bWVudE5vZGVUeXBlLkZvbGRlcjpcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpID8gJ2xvY2FsX2ZvbGRlcl9vdXRsaW5lZCcgOiAnbG9jYWxfZm9sZGVyJztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpID8gJ2ZvbGRlcl9vdXRsaW5lZCcgOiAnZm9sZGVyJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSA/ICdrZXlib2FyZF91cCcgOiAna2V5Ym9hcmRfZG93bic7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSBEYXRhVHlwZS5wcm9jZXNzOlxyXG4gICAgICAgIHJldHVybiB0aGlzLnRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAncHJvY2Vzc19hcmVhX291dGxpbmVkJyA6ICdwcm9jZXNzX2FyZWEnO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiB0aGlzLnRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAna2V5Ym9hcmRfdXAnIDogJ2tleWJvYXJkX2Rvd24nO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbUljb24obm9kZSkge1xyXG4gICAgc3dpdGNoICh0aGlzLm1vZHVsZUlkKSB7XHJcbiAgICAgIGNhc2UgRGF0YVR5cGUuZG9jdW1lbnQ6XHJcbiAgICAgICAgc3dpdGNoIChub2RlLmxldmVsVHlwZSkge1xyXG4gICAgICAgICAgY2FzZSBEb2N1bWVudE5vZGVUeXBlLkRlcGFydG1lbnRGb2xkZXI6XHJcbiAgICAgICAgICAgIHJldHVybiAnZG9jdW1lbnRfZGVwYXJ0bWVudCc7XHJcbiAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuUmVnaW9uYWxGb2xkZXI6XHJcbiAgICAgICAgICAgIHJldHVybiAnZG9jdW1lbnRfcmVnaW9uYWwnO1xyXG4gICAgICAgICAgY2FzZSBEb2N1bWVudE5vZGVUeXBlLlRvcEZvbGRlcjpcclxuICAgICAgICAgICAgcmV0dXJuICdkb2N1bWVudF9lbnRlcnByaXNlJztcclxuICAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5Gb2xkZXI6XHJcbiAgICAgICAgICAgIHJldHVybiAnZG9jdW1lbnRfbG9jYWwnO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgcmV0dXJuICdkb2N1bWVudCc7XHJcbiAgICAgICAgfVxyXG4gICAgICBjYXNlIERhdGFUeXBlLnByb2Nlc3M6XHJcbiAgICAgICAgcmV0dXJuICdwcm9jZXNzJztcclxuICAgICAgY2FzZSBEYXRhVHlwZS5jaGVja2xpc3Q6XHJcbiAgICAgICAgcmV0dXJuICdjaGVja2xpc3QnO1xyXG4gICAgICBjYXNlIERhdGFUeXBlLmRldmlhdGlvbjpcclxuICAgICAgICByZXR1cm4gJ2RldmlhdGlvbic7XHJcbiAgICAgIGNhc2UgRGF0YVR5cGUucmlzazpcclxuICAgICAgICByZXR1cm4gJ3Jpc2snO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAnZG9jdW1lbnQnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0Rm9sZGVyTm9kZShub2RlOiBUcmVlRmxhdE5vZGUpIHtcclxuICAgIGlmICh0aGlzLnRyZWVDb25maWcuc2VsZWN0T25lICYmICF0aGlzLnRyZWVDb25maWcuYWxsb3dTZWxlY3RGb2xkZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5leHBhbmRPblRpdGxlQ2xpY2spIHtcclxuICAgICAgdGhpcy5vbkV4cGFuZE5vZGUobm9kZSwgZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Tm9kZUlkKG5vZGU6IFRyZWVGbGF0Tm9kZSkge1xyXG4gICAgaWYgKCFub2RlIHx8ICFub2RlLmlkKSB7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYF8ke25vZGUucGFyZW50SWQgPyBub2RlLnBhcmVudElkPy50b0xvd2VyQ2FzZSgpIDogJyd9XyR7bm9kZS5pZD8udG9Mb3dlckNhc2UoKX1fJHtub2RlLmxldmVsfWA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Tm9kZUJ5SWRBbmRQYXJlbnRJZChub2RlSWQ6IHN0cmluZywgcGFyZW50SWQ6IHN0cmluZyk6IFRyZWVGbGF0Tm9kZSB7XHJcbiAgICByZXR1cm4gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZCh4ID0+IHtcclxuICAgICAgcmV0dXJuIHguaWQgPT09IG5vZGVJZCAmJiB4LnBhcmVudElkID09PSBwYXJlbnRJZDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4cGFuZE5vZGUobm9kZTogVHJlZUZsYXROb2RlKSB7XHJcbiAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZChub2RlKTtcclxuICB9XHJcblxyXG4gIGlkVG9DaGVja1NlbGVjdE9uZShpZCwgcGFyZW50SWQpIHtcclxuICAgIHJldHVybiBgJHtpZH0tJHtwYXJlbnRJZH1gO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
765
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvdHJlZS90cmVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRS9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU1RCxPQUFPLGFBQWEsTUFBTSxpQkFBaUIsQ0FBQztBQXNCNUMsTUFBTSxPQUFPLGFBQWE7SUFzRHhCLFlBQW9CLEtBQXdCLEVBQ2xDLFlBQTBCLEVBQzFCLFlBQTZCLEVBQzdCLGNBQXNDO1FBSDVCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7UUF4RHZDLGFBQVEsR0FBcUIsRUFBRSxDQUFDO1FBRWhDLGlCQUFZLEdBQXdCLEVBQUUsQ0FBQztRQUN2QyxxQkFBZ0IsR0FBUSxFQUFFLENBQUM7UUFDM0IsaUJBQVksR0FBUSxFQUFFLENBQUM7UUFFdkIsc0JBQWlCLEdBQVEsRUFBRSxDQUFDO1FBRTNCLG9CQUFlLEdBQStCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakUsc0JBQWlCLEdBQStCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkUsa0JBQWEsR0FBaUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRSxzQkFBaUIsR0FBK0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuRSxvQkFBZSxHQUErQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pFLHFCQUFnQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRW5FLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGVBQVUsR0FBZ0IsRUFBRSxDQUFDO1FBRTdCLGFBQVEsR0FBYSxFQUFFLENBQUM7UUFDeEIsb0JBQWUsR0FBd0IsRUFBRSxDQUFDO1FBQzFDLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUN4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQix1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDMUIsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1FBQzVCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxrQkFBYSxHQUFHLFNBQVMsQ0FBQztRQUMxQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsbUJBQWMsR0FBRyxTQUFTLENBQUM7UUFDM0IsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBR3BCLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQy9CLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDcEIsQ0FBQyxFQUNELENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDekIsQ0FBQyxDQUNGLENBQUM7UUFFRixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGFBQVEsR0FBRyxRQUFRLENBQUM7UUFrV1osaUJBQVksR0FBRyxDQUFDLElBQWMsRUFBRSxLQUFhLEVBQUUsRUFBRTs7WUFDdkQsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNsQixhQUFhLEdBQUcsS0FBSyxDQUFDO2FBQ3ZCO2lCQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUNqRixhQUFhLEdBQUcsS0FBSyxDQUFDO2FBQ3ZCO1lBQ0QsMkNBQTJDO2lCQUN0QyxJQUNILENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUTtnQkFDZixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07Z0JBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUM7Z0JBQzFCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUN0QixDQUFBLE1BQUEsSUFBSSxDQUFDLEVBQUUsMENBQUUsUUFBUSxFQUFFLE1BQUssRUFBRSxFQUMxQjtnQkFDQSxhQUFhLEdBQUcsS0FBSyxDQUFDO2FBQ3ZCO1lBRUQsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3hDLGFBQWEsR0FBRyxLQUFLLENBQUM7YUFDdkI7WUFFRCxPQUFPO2dCQUNMLFVBQVUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUN2RCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsS0FBSztnQkFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUN2QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxLQUFLO2FBQ25ELENBQUM7UUFDSixDQUFDLENBQUM7UUFFRixrQkFBYSxHQUFHLElBQUksZ0JBQWdCLENBQ2xDLElBQUksQ0FBQyxZQUFZLEVBQ2pCLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDcEIsQ0FBQyxFQUNELENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDekIsQ0FBQyxFQUNELENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkIsQ0FBQyxDQUNGLENBQUM7UUFFRixlQUFVLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQXdKN0UsYUFBUSxHQUFHLENBQUMsQ0FBUyxFQUFFLElBQWtCLEVBQUUsRUFBRTtZQUMzQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDekIsQ0FBQyxDQUFDO1FBdGlCQSxZQUFZLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDdEcsWUFBWSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQzFHLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDL0QsY0FBYyxDQUFDLHVCQUF1QixDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNuRSxjQUFjLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2hFLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDOUQsY0FBYyxDQUFDLHFCQUFxQixDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNqRSxjQUFjLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2pFLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUN4SCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1lBQzlDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjtRQUVELElBQUksT0FBTyxDQUFDLFlBQVk7WUFDdEIsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNO2dCQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO29CQUNqRCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRTtZQUN2RCxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDdEYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ3ZEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO2dCQUN0QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUMxRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2pFO2FBQ0Y7U0FFRjtRQUVELElBQUksT0FBTyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3BJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzFCO1FBRUQsaUNBQWlDO1FBQ2pDLElBQUksT0FBTyxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ25KLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1NBQzlCO0lBRUgsQ0FBQztJQUVELFFBQVE7UUFDTix1QkFBdUI7SUFDekIsQ0FBQztJQUVELFlBQVk7O1FBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDM0IsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQy9DLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN2QztZQUNELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNyQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBRWhDLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDMUYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ2YsT0FBTyxpQkFBUSxFQUFFLEVBQUssSUFBSSxDQUFFLENBQUM7WUFDN0IsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsWUFBWSxDQUFBLENBQUM7UUFDdkQsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLFlBQVksQ0FBQztRQUNsRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxvQkFBb0IsQ0FBQztRQUNsRSxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsUUFBUSxDQUFDO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxRQUFRLENBQUM7UUFDMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFBLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQyxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUMxRyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsU0FBUyxDQUFDO1FBQzVDLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQSxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLGNBQWMsRUFBQyxDQUFDLENBQUMsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDOUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLFFBQVEsQ0FBQztRQUMxQyxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsV0FBVyxDQUFDO1FBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxZQUFZLENBQUM7UUFDbEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLDhCQUE4QixDQUFDLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsY0FBYyxDQUFXLENBQUM7UUFDbEgsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsa0JBQWtCLENBQUM7UUFDOUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsa0JBQWtCLENBQUM7UUFDOUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLFVBQVUsQ0FBQztRQUM5QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQWUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxvQkFBb0I7UUFFekcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV6RCx5QkFBeUI7UUFDekIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRTtZQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQzlCO1FBRUQsZUFBZTtRQUNmLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDMUI7UUFFRCxZQUFZO1FBQ1osSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO1lBQ2hDLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUN4QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUMxRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNoQyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQy9ELElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTt3QkFDOUQsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNsRDtnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNKO1lBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN2QztRQUVELGNBQWM7UUFDZCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUN4RSxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDcEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUM5QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUMxRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRTt1QkFDekYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFFO29CQUNoRCxVQUFVLEdBQUcsQ0FBQyxHQUFHLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ25ELElBQUksR0FBRyxJQUFJLENBQUM7aUJBQ2I7YUFDRjtZQUNELFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQsU0FBUyxDQUFDLElBQWtCO1FBQzFCLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDN0IsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVoRCxJQUFJLFlBQVksR0FBRyxDQUFDLEVBQUU7WUFDcEIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV0RCxLQUFLLElBQUksQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQy9CLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFN0MsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLFlBQVksRUFBRTtnQkFDcEQsT0FBTyxXQUFXLENBQUM7YUFDcEI7U0FDRjtJQUNILENBQUM7SUFFRCxxQkFBcUI7O1FBQ25CLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRTtZQUNqQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUMzQixPQUFPO2FBRVI7WUFFRCxJQUFJLGVBQWUsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFBLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSwwQ0FBRSxXQUFXLEVBQUUsQ0FBQztZQUMvSSxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFFcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDMUQsSUFBSSxlQUFlLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUN4RCxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO29CQUNwRCw0REFBNEQ7aUJBQzdEO2dCQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7O29CQUNsQyxJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLDBDQUFFLFdBQVcsRUFBRSxPQUFLLEVBQUUsYUFBRixFQUFFLHVCQUFGLEVBQUUsQ0FBRSxXQUFXLEVBQUUsQ0FBQSxFQUFFO3dCQUN6RSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUN4RDtnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNKO1lBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQ3pFO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjs7UUFDZixpQkFBaUI7UUFDakIsaUVBQWlFO1FBQ2pFLHFEQUFxRDtRQUNyRCxLQUFLO1FBQ0wsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtZQUM1QixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFO2dCQUM3QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNqRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNwRixNQUFNLFVBQVUsR0FBRyxTQUFTLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBRXhFLGdIQUFnSDtnQkFDaEgsc0VBQXNFO2dCQUV0RSxvQkFBb0I7Z0JBQ3BCLHVEQUF1RDtnQkFDdkQsSUFBSTtnQkFFSix1Q0FBdUM7Z0JBQ3ZDLElBQUksc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDOUYsZ0NBQWdDO2dCQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztnQkFFeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2dCQUVoRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUMxRCxJQUFJLENBQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLFdBQVcsRUFBRSxPQUFLLE1BQUEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSwwQ0FBRSxXQUFXLEVBQUUsQ0FBQTsyQkFDMUUsQ0FBQyxDQUFBLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxXQUFXLEVBQUUsT0FBSyxNQUFBLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsMENBQUUsV0FBVyxFQUFFLENBQUEsQ0FBQyxFQUFFO3dCQUMxRixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO3dCQUM5QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUMxRDtvQkFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTs7d0JBQzdCLElBQUksQ0FBQSxNQUFBLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsMENBQUUsV0FBVyxFQUFFLE9BQUssRUFBRSxhQUFGLEVBQUUsdUJBQUYsRUFBRSxDQUFFLFdBQVcsRUFBRSxDQUFBLEVBQUU7NEJBQ3pFLDBEQUEwRDt5QkFDM0Q7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsNkRBQTZEO29CQUM3RCxxQ0FBcUM7b0JBQ3JDLGdFQUFnRTtvQkFDaEUsK0NBQStDO29CQUMvQyxNQUFNO29CQUNOLE1BQU07aUJBQ1A7Z0JBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLFdBQVcsRUFBRSxFQUFFLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO2FBQ2hHO2lCQUNJO2dCQUNILElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUMvQixRQUFRLElBQUksQ0FBQyxRQUFRLEVBQUU7d0JBQ3JCLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTOzRCQUMxQixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7NEJBQzVILElBQUksY0FBYyxJQUFJLENBQUMsRUFBRTtnQ0FDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzs2QkFDNUQ7NEJBQ0QsTUFBTTt3QkFDUixLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTs0QkFDckIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQ3BGLElBQUksU0FBUyxJQUFJLENBQUMsRUFBRTtnQ0FDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzs2QkFDdkQ7NEJBQ0QsTUFBTTt3QkFDUixLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUzs0QkFDMUIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFOztnQ0FBQyxPQUFBLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUU7dUNBQzlHLENBQUEsTUFBQSxJQUFJLENBQUMsUUFBUSwwQ0FBRSxXQUFXLEVBQUUsT0FBSyxNQUFBLElBQUksQ0FBQyxRQUFRLDBDQUFFLFdBQVcsRUFBRSxDQUFBLENBQUE7NkJBQUEsQ0FBQyxDQUFDOzRCQUNwRSxJQUFJLGNBQWMsSUFBSSxDQUFDLEVBQUU7Z0NBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7NkJBQzVEOzRCQUNELE1BQU07d0JBQ1I7NEJBQ0UsT0FBTztxQkFDVjtnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7YUFDSTtZQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQUc7UUFDVixJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTztTQUNSO1FBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzVDLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMvQixtQ0FBbUM7Z0JBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxQztpQkFBTTtnQkFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUM7U0FDRjtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsR0FBRztRQUNkLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUNoQixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDZixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNELG1FQUFtRTtZQUNuRSxtQ0FBbUM7WUFDbkMsMkJBQTJCO1lBQzNCLHVCQUF1QjtZQUN2QixJQUFJO1lBQ0osYUFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDOUIsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDO2dCQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFDO1lBRUgsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDekIsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDO2dCQUNqQixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsR0FBRyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDdEI7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFXLENBQUM7SUFDcEcsQ0FBQztJQUVELGFBQWEsQ0FBQyxZQUE0QjtRQUN4QyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDO2dCQUFFLE9BQU87WUFDM0MsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDMUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRXZDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUM1QyxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2hDLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO3dCQUNwRixJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUN0QztpQkFDRjthQUNGO1lBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDbkMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRVYsQ0FBQztJQUVELHFCQUFxQixDQUFDLFlBQTRCLEVBQUUsSUFBYTtRQUMvRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzFELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUM1QyxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hDLElBQUksT0FBTyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxFQUFFO3VCQUNuQyxJQUFJLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO29CQUN6RCxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3RGO2FBQ0Y7U0FDRjtJQUVILENBQUM7SUFFTyxlQUFlLENBQUMsVUFBc0I7UUFDNUMsSUFBSSxVQUFVLENBQUMsUUFBUSxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDckYsSUFBSSxVQUFVLENBQUMsWUFBWSxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDN0YsSUFBSSxVQUFVLENBQUMsY0FBYyxJQUFJLFVBQVUsQ0FBQyxjQUFjLENBQUMsTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDbkcsSUFBSSxVQUFVLENBQUMsV0FBVyxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUM7UUFDMUYsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBcURELDJEQUEyRDtJQUMzRCxzQkFBc0IsQ0FBQyxJQUFrQjtRQUV2QyxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUV6SCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtZQUN2QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDakQ7UUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFELE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDMUYsSUFBSSxDQUFDLFFBQVEsSUFBSSxXQUFXLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQzNCO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFFckIsQ0FBQztJQUVELG1EQUFtRDtJQUNuRCw0QkFBNEIsQ0FBQyxJQUFrQjtRQUM3QyxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUV6SCxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLE9BQU8sTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxnRkFBZ0Y7SUFDekUsdUJBQXVCLENBQUMsSUFBa0I7UUFDL0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsMkJBQTJCO1FBQzNCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUU7WUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDMUQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUU7dUJBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsUUFBUTt1QkFDeEQsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7b0JBQzVDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDL0Q7YUFDRjtTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3RDO1FBR0Qsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDNUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFekYsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUUzRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUM7Z0JBQ2hDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEdBQUcsV0FBVyxDQUFDO2dCQUNoRCxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFMUIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFMUYsSUFBSSxlQUFlLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNqRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM1QyxDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELHdCQUF3QixDQUFDLElBQWtCO1FBQ3pDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDMUQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUU7bUJBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsUUFBUTttQkFDeEQsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7Z0JBQzVDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMvRDtTQUNGO1FBQ0Qsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTVELENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxHQUFVO1FBQ3JDLEdBQUcsQ0FBQyxPQUFPLENBQ1QsRUFBRSxDQUFDLEVBQUU7WUFDSCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUMxRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFO3VCQUN0QyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtvQkFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3BFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDakU7YUFDRjtRQUNILENBQUMsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxLQUFpQjtRQUN4QyxLQUFLLENBQUMsT0FBTyxDQUNYLElBQUksQ0FBQyxFQUFFO1lBQ0wsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDMUQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUU7b0JBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsUUFBUTtvQkFDeEQsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7b0JBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUNwRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2pFO2FBQ0Y7UUFDSCxDQUFDLENBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU1RCxDQUFDO0lBRUQsZ0NBQWdDLENBQUMsS0FBaUI7UUFDaEQsS0FBSyxDQUFDLE9BQU8sQ0FDWCxJQUFJLENBQUMsRUFBRTtZQUNMLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzFELElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFO29CQUM5QyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFFBQVE7b0JBQ3hELENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFO29CQUN0RixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDcEUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNqRTthQUNGO1FBQ0gsQ0FBQyxDQUNGLENBQUM7UUFDRixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVELENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxLQUFpQjtRQUMxQyxLQUFLLENBQUMsT0FBTyxDQUNYLElBQUksQ0FBQyxFQUFFOztZQUNMLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzFELElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFO29CQUM5QyxDQUFBLE1BQUEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSwwQ0FBRSxRQUFRLEVBQUUsT0FBSyxNQUFBLElBQUksQ0FBQyxRQUFRLDBDQUFFLFFBQVEsRUFBRSxDQUFBO29CQUNoRixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUU7b0JBQ3JGLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUNwRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBRWpFO2FBQ0Y7UUFDSCxDQUFDLENBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU3RSxDQUFDO0lBTUQsVUFBVSxDQUFDLElBQWtCO1FBQzNCLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFO1lBQ2pELE1BQU0sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQzFEO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRTtZQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxJQUFrQjtRQUN4QyxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVsQixRQUFRLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDckIsS0FBSyxRQUFRLENBQUMsT0FBTztnQkFDbkIsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7Z0JBQzlELE1BQU07WUFDUixLQUFLLFFBQVEsQ0FBQyxRQUFRO2dCQUNwQixRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztnQkFDakUsTUFBTTtZQUVSO2dCQUNFLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUN6QixNQUFNO1NBQ1Q7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsWUFBWSxDQUFDLElBQWtCO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFrQixFQUFFLFlBQXNCO1FBQ3JELElBQUksWUFBWSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pFLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDckMsSUFBSSxDQUFDLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFFO3dCQUNwRCxDQUFDLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO3FCQUM1QjtnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUVqQztTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQztRQUNELE9BQU87SUFDVCxDQUFDO0lBRUQsY0FBYyxDQUFDLGFBQXdCO1FBQ3JDLElBQUksYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUMxQixhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLGFBQXdCLEVBQUUsWUFBeUI7UUFDN0QsSUFBSSxZQUFZLEVBQUU7WUFDaEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUN6QixhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxFQUFVLEVBQUUsS0FBYyxFQUFFLElBQVk7UUFDbkQsSUFBSSxLQUFLLEVBQUU7WUFDVCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDMUIsT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDMUIsT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYyxFQUFFLElBQVM7UUFDcEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ25DLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQWMsQ0FBQztRQUNsRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDMUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNwRixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFVLEVBQUUsSUFBZ0I7O1FBQ3hDLGdEQUFnRDtRQUNoRCxLQUFLLE1BQU0sYUFBYSxJQUFJLElBQUksRUFBRTtZQUNoQyxJQUFJLENBQUEsTUFBQSxhQUFhLENBQUMsRUFBRSwwQ0FBRSxXQUFXLEVBQUUsT0FBSyxFQUFFLGFBQUYsRUFBRSx1QkFBRixFQUFFLENBQUUsV0FBVyxFQUFFLENBQUEsRUFBRTtnQkFDekQsT0FBTyxhQUFhLENBQUM7YUFDdEI7WUFFRCxJQUFJLGFBQWEsQ0FBQyxRQUFRLEVBQUU7Z0JBQzFCLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7O29CQUNyRCxPQUFPLENBQUEsTUFBQSxDQUFDLENBQUMsRUFBRSwwQ0FBRSxXQUFXLEVBQUUsT0FBSyxFQUFFLGFBQUYsRUFBRSx1QkFBRixFQUFFLENBQUUsV0FBVyxFQUFFLENBQUEsQ0FBQztnQkFDbkQsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxZQUFZLEVBQUU7b0JBQ2hCLE9BQU8sWUFBWSxDQUFDO2lCQUNyQjtnQkFFRCxnREFBZ0Q7Z0JBQ2hELEtBQUssTUFBTSxhQUFhLElBQUksYUFBYSxDQUFDLFFBQVEsRUFBRTtvQkFDbEQsSUFBSSxDQUFBLEVBQUUsYUFBRixFQUFFLHVCQUFGLEVBQUUsQ0FBRSxXQUFXLEVBQUUsT0FBSyxNQUFBLGFBQWEsQ0FBQyxFQUFFLDBDQUFFLFdBQVcsRUFBRSxDQUFBLEVBQUU7d0JBQ3pELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQzt3QkFDOUQsSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFOzRCQUNwQixPQUFPLE1BQU0sQ0FBQzt5QkFDZjtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWtCO1FBQzVCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25DLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDM0U7UUFDRCxRQUFRLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDckIsS0FBSyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3RCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDN0UsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDdkIsUUFBUSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFO3dCQUM3QixLQUFLLGdCQUFnQixDQUFDLGdCQUFnQjs0QkFDcEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO3dCQUNoRyxLQUFLLGdCQUFnQixDQUFDLGNBQWM7NEJBQ2xDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQzt3QkFDNUYsS0FBSyxnQkFBZ0IsQ0FBQyxTQUFTOzRCQUM3QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUM7d0JBQ2hHLEtBQUssZ0JBQWdCLENBQUMsTUFBTTs0QkFDMUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQzt3QkFDdEY7NEJBQ0UsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztxQkFDM0U7aUJBQ0Y7Z0JBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7YUFDNUU7WUFDRCxLQUFLLFFBQVEsQ0FBQyxPQUFPO2dCQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO1lBQ3RGO2dCQUNFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO1NBQzlFO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFJO1FBQ2QsUUFBUSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3JCLEtBQUssUUFBUSxDQUFDLFFBQVE7Z0JBQ3BCLFFBQVEsSUFBSSxDQUFDLFNBQVMsRUFBRTtvQkFDdEIsS0FBSyxnQkFBZ0IsQ0FBQyxnQkFBZ0I7d0JBQ3BDLE9BQU8scUJBQXFCLENBQUM7b0JBQy9CLEtBQUssZ0JBQWdCLENBQUMsY0FBYzt3QkFDbEMsT0FBTyxtQkFBbUIsQ0FBQztvQkFDN0IsS0FBSyxnQkFBZ0IsQ0FBQyxTQUFTO3dCQUM3QixPQUFPLHFCQUFxQixDQUFDO29CQUMvQixLQUFLLGdCQUFnQixDQUFDLE1BQU07d0JBQzFCLE9BQU8sZ0JBQWdCLENBQUM7b0JBQzFCO3dCQUNFLE9BQU8sVUFBVSxDQUFDO2lCQUNyQjtZQUNILEtBQUssUUFBUSxDQUFDLE9BQU87Z0JBQ25CLE9BQU8sU0FBUyxDQUFDO1lBQ25CLEtBQUssUUFBUSxDQUFDLFNBQVM7Z0JBQ3JCLE9BQU8sV0FBVyxDQUFDO1lBQ3JCLEtBQUssUUFBUSxDQUFDLFNBQVM7Z0JBQ3JCLE9BQU8sV0FBVyxDQUFDO1lBQ3JCLEtBQUssUUFBUSxDQUFDLElBQUk7Z0JBQ2hCLE9BQU8sTUFBTSxDQUFDO1lBQ2hCO2dCQUNFLE9BQU8sVUFBVSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQWtCO1FBQ2pDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFO1lBQ25FLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLElBQWtCOztRQUMxQixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRTtTQUN0QjtRQUNELE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFBLElBQUksQ0FBQyxRQUFRLDBDQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksTUFBQSxJQUFJLENBQUMsRUFBRSwwQ0FBRSxXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekcsQ0FBQztJQUVNLHNCQUFzQixDQUFDLE1BQWMsRUFBRSxRQUFnQjtRQUM1RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN6QyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFrQjtRQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsRUFBRSxFQUFFLFFBQVE7UUFDN0IsT0FBTyxHQUFHLEVBQUUsSUFBSSxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOzs7WUE1ekJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsa3pMQUFvQztnQkFFcEMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3RDOzs7WUFsQ1EsaUJBQWlCO1lBR2pCLFlBQVk7WUFGWixlQUFlO1lBSWYsc0JBQXNCOzs7dUJBK0I1QixLQUFLO3lCQUNMLEtBQUs7MkJBQ0wsS0FBSzsrQkFDTCxLQUFLOzJCQUNMLEtBQUs7aUNBQ0wsS0FBSztnQ0FDTCxLQUFLO2dDQUNMLEtBQUs7OEJBQ0wsTUFBTTtnQ0FDTixNQUFNOzRCQUNOLE1BQU07Z0NBQ04sTUFBTTs4QkFDTixNQUFNOytCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XHJcbmltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0SWNvblJlZ2lzdHJ5IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSwgTWF0VHJlZUZsYXR0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgS0VZQk9BUkRfRE9XTl9JQ09OLCBLRVlCT0FSRF9VUF9JQ09OIH0gZnJvbSAnLi4vLi4vY29tbW9uL3Ftcy1pY29uLmNvbnN0JztcclxuaW1wb3J0IHsgUU1TSWNvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4uL2FwcC1pY29uL2ljb24tcmVnaXN0cnkuc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnLi4vcmVsYXRlZC9jb21tb24vZGF0YS10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBEb2N1bWVudE5vZGVUeXBlIH0gZnJvbSAnLi4vcmVsYXRlZC9jb21tb24vZG9jdW1lbnQtZm9sZGVyLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IEl0ZW1JY29uVHlwZSB9IGZyb20gJy4uL3JlbGF0ZWQvY29tbW9uL2l0ZW0taWNvbi10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBSZWxhdGVkQ29uc3QgfSBmcm9tICcuLi9yZWxhdGVkL2NvbW1vbi9yZWxhdGVkLmNvbnN0JztcclxuaW1wb3J0IHsgVHJlZUNvbmZpZyB9IGZyb20gJy4vbW9kZWwvdHJlZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmVlRmxhdE5vZGUgfSBmcm9tICcuL21vZGVsL3RyZWUtZmxhdC1ub2RlLm1vZGVsJztcclxuaW1wb3J0IHsgVHJlZU1vZGVsIH0gZnJvbSAnLi9tb2RlbC90cmVlLm1vZGVsJztcclxuaW1wb3J0IFRyZWVGdW5jdGlvbnMgZnJvbSAnLi90cmVlLmZ1bmN0aW9uJztcclxuXHJcbmludGVyZmFjZSBUcmVlTm9kZSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgY2hpbGRyZW4/OiBUcmVlTm9kZVtdO1xyXG4gIHBhcmVudElkPzogc3RyaW5nO1xyXG4gIGxldmVsVHlwZT86IG51bWJlcjtcclxuICBtYXJrZWRHZXRDaGlsZHJlbj86IGJvb2xlYW47XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG59XHJcbmludGVyZmFjZSBJQ2hlY2tlZE5vZGUge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgY2hlY2tlZDogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdxbXMtdHJlZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyZWUuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSB0cmVlRGF0YTogQXJyYXk8VHJlZU1vZGVsPiA9IFtdO1xyXG4gIEBJbnB1dCgpIHRyZWVDb25maWc6IFRyZWVDb25maWc7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWREYXRhOiBBcnJheTxUcmVlRmxhdE5vZGU+ID0gW107XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRSaXNrRGF0YTogYW55ID0gW107XHJcbiAgQElucHV0KCkgZGlzYWJsZWRMaXN0OiBhbnkgPSBbXTtcclxuICBASW5wdXQoKSBleHBhbmRPblRpdGxlQ2xpY2s6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZXhwYW5kVG9DaGlsZE5vZGU6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIHBhcmVudE5vZGVPbkNsaWNrOiBUcmVlRmxhdE5vZGU7XHJcbiAgQE91dHB1dCgpIHNlbGVjdE5vZGVFdmVudDogRXZlbnRFbWl0dGVyPFRyZWVGbGF0Tm9kZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdEZvbGRlckV2ZW50OiBFdmVudEVtaXR0ZXI8VHJlZUZsYXROb2RlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2hlY2tCb3hFdmVudDogRXZlbnRFbWl0dGVyPFRyZWVGbGF0Tm9kZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2hpbGRDaGVja2VkRXZlbnQ6IEV2ZW50RW1pdHRlcjxJQ2hlY2tlZE5vZGU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBub2RlRXhwYW5kRXZlbnQ6IEV2ZW50RW1pdHRlcjxUcmVlRmxhdE5vZGU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSB0cmVlQ29udHJvbE5vZGVzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgbGlzdFBhcmVudE9iaiA9IHt9O1xyXG4gIGZpbHRlckRhdGE6IFRyZWVNb2RlbFtdID0gW107XHJcbiAgdHJlZU9iamVjdDogb2JqZWN0O1xyXG4gIGFyckluZGV4OiBzdHJpbmdbXSA9IFtdO1xyXG4gIGNoZWNrZWROb2RlTGlzdDogQXJyYXk8VHJlZUZsYXROb2RlPiA9IFtdO1xyXG4gIHVzZUV4cGFuZEZlYXR1cmUgPSB0cnVlO1xyXG4gIHNob3dDaGVja0JveCA9IGZhbHNlO1xyXG4gIGFsbG93TXVsdGlwbGVDaGVjayA9IHRydWU7XHJcbiAgc2luZ2xlU2VsZWN0ZWROb2RlID0gZmFsc2U7XHJcbiAgb25seUNoZWNrQm94Rm9yQ2hpbGQgPSBmYWxzZTtcclxuICBvbmx5Rm9sZGVyID0gZmFsc2U7XHJcbiAgaXRlbUljb25UeXBlID0gSXRlbUljb25UeXBlO1xyXG4gIGRpc3BsYXlUeXBlID0gMTtcclxuICBvcGVuSWNvbiA9ICcnO1xyXG4gIG9wZW5JY29uQ29sb3IgPSAnIzE5NTRBOSc7XHJcbiAgY2xvc2VJY29uID0gJyc7XHJcbiAgY2xvc2VJY29uQ29sb3IgPSAnIzAwMDAwMCc7XHJcbiAgaXRlbUljb24gPSAnJztcclxuICBpdGVtSWNvblN2ZyA9ICcnO1xyXG4gIGl0ZW1JY29uUGF0aCA9ICcnO1xyXG4gIGl0ZW1JY29uQmFzZTY0ID0gJyc7XHJcbiAgbW9kdWxlSWQ6IG51bWJlcjtcclxuXHJcbiAgdHJlZUNvbnRyb2wgPSBuZXcgRmxhdFRyZWVDb250cm9sPFRyZWVGbGF0Tm9kZT4oXHJcbiAgICAobm9kZSkgPT4ge1xyXG4gICAgICByZXR1cm4gbm9kZS5sZXZlbDtcclxuICAgIH0sXHJcbiAgICAobm9kZSkgPT4ge1xyXG4gICAgICByZXR1cm4gbm9kZS5leHBhbmRhYmxlO1xyXG4gICAgfVxyXG4gICk7XHJcblxyXG4gIGlzQ2hlY2tlZCA9IGZhbHNlO1xyXG4gIGNoZWNrbGlzdFNlbGVjdGlvbjogYW55O1xyXG4gIGlkQ2hlY2tJY29uID0gJyc7XHJcbiAgbGlzdENoaWxkTm9kZSA9IFtdO1xyXG4gIGRhdGFUeXBlID0gRGF0YVR5cGU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBkb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcixcclxuICAgIHByaXZhdGUgaWNvblJlZ2lzdHJ5OiBNYXRJY29uUmVnaXN0cnksXHJcbiAgICBwcml2YXRlIGFwcEljb25TZXJ2aWNlOiBRTVNJY29uUmVnaXN0cnlTZXJ2aWNlKSB7XHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ2tleWJvYXJkX3VwJywgZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKEtFWUJPQVJEX1VQX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgna2V5Ym9hcmRfZG93bicsIGRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChLRVlCT0FSRF9ET1dOX0lDT04pKTtcclxuICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyUHJvY2Vzc0ljb24oaWNvblJlZ2lzdHJ5LCBkb21TYW5pdGl6ZXIpO1xyXG4gICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJQcm9jZXNzQXJlYUljb24oaWNvblJlZ2lzdHJ5LCBkb21TYW5pdGl6ZXIpO1xyXG4gICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJEb2N1bWVudEljb24oaWNvblJlZ2lzdHJ5LCBkb21TYW5pdGl6ZXIpO1xyXG4gICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJGb2xkZXJJY29uKGljb25SZWdpc3RyeSwgZG9tU2FuaXRpemVyKTtcclxuICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyRGV2aWF0aW9uSWNvbihpY29uUmVnaXN0cnksIGRvbVNhbml0aXplcik7XHJcbiAgICBhcHBJY29uU2VydmljZS5yZWdpc3RlckNoZWNrbGlzdEljb24oaWNvblJlZ2lzdHJ5LCBkb21TYW5pdGl6ZXIpO1xyXG4gICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJSaXNrSWNvbihpY29uUmVnaXN0cnksIGRvbVNhbml0aXplcik7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcy50cmVlRGF0YSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzLnRyZWVEYXRhLmN1cnJlbnRWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZXMudHJlZURhdGEucHJldmlvdXNWYWx1ZSkpIHtcclxuICAgICAgdGhpcy50cmVlRGF0YSA9IGNoYW5nZXMudHJlZURhdGEuY3VycmVudFZhbHVlO1xyXG4gICAgICB0aGlzLmluaXRUcmVlRGF0YSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjaGFuZ2VzLnNlbGVjdGVkRGF0YSAmJlxyXG4gICAgICAoY2hhbmdlcy5zZWxlY3RlZERhdGEuY3VycmVudFZhbHVlLmxlbmd0aCAmJlxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KGNoYW5nZXMuc2VsZWN0ZWREYXRhLmN1cnJlbnRWYWx1ZSkgIT09XHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoY2hhbmdlcy5zZWxlY3RlZERhdGEucHJldmlvdXNWYWx1ZSkpKSB7XHJcbiAgICAgIGlmIChjaGFuZ2VzLnNlbGVjdGVkRGF0YS5jdXJyZW50VmFsdWUgJiYgY2hhbmdlcy5zZWxlY3RlZERhdGEuY3VycmVudFZhbHVlWzBdICE9PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja1NlbGVjdGVkKGNoYW5nZXMuc2VsZWN0ZWREYXRhLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pZENoZWNrSWNvbiA9ICcnO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmRlc2VsZWN0KHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNoYW5nZXMuZGlzYWJsZWRMaXN0ICYmIEpTT04uc3RyaW5naWZ5KGNoYW5nZXMuZGlzYWJsZWRMaXN0LmN1cnJlbnRWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZXMuZGlzYWJsZWRMaXN0LnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tEaXNhYmxlZExpc3QoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBleHBhbmQgYWxsIHBhcmVudCB0byBzaG93IG5vZGVcclxuICAgIGlmIChjaGFuZ2VzLmV4cGFuZFRvQ2hpbGROb2RlICYmIEpTT04uc3RyaW5naWZ5KGNoYW5nZXMuZXhwYW5kVG9DaGlsZE5vZGUuY3VycmVudFZhbHVlKSAhPT0gSlNPTi5zdHJpbmdpZnkoY2hhbmdlcy5leHBhbmRUb0NoaWxkTm9kZS5wcmV2aW91c1ZhbHVlKSkge1xyXG4gICAgICB0aGlzLm9wZW5FeHBhbmRUb0NoaWxkTm9kZSgpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy8gdGhpcy5pbml0VHJlZURhdGEoKTtcclxuICB9XHJcblxyXG4gIGluaXRUcmVlRGF0YSgpIHtcclxuICAgIHRoaXMudHJlZURhdGEuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgaWYgKCEhaXRlbS5wYXJlbnRJZCAmJiBpdGVtLnBhcmVudElkLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmxpc3RQYXJlbnRPYmpbaXRlbS5wYXJlbnRJZF0gPSAxO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpdGVtLmNoaWxkSWQgJiYgaXRlbS5jaGlsZElkLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmxpc3RQYXJlbnRPYmpbaXRlbS5yb290SWRdID0gMTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5maWx0ZXJEYXRhID0gdGhpcy50cmVlRGF0YTtcclxuXHJcbiAgICB0aGlzLnRyZWVPYmplY3QgPSBUcmVlRnVuY3Rpb25zLmJ1aWxkT2JqZWN0VHJlZSh0aGlzLmZpbHRlckRhdGEpO1xyXG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBUcmVlRnVuY3Rpb25zLmJ1aWxkQXJyYXlUcmVlKHRoaXMudHJlZU9iamVjdCB8fCB7fSwgMCkubWFwKGVsZW1lbnQgPT4ge1xyXG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5zb3J0RGF0YVRyZWUoZWxlbWVudCk7XHJcbiAgICAgIGVsZW1lbnQgPSBudWxsO1xyXG4gICAgICBlbGVtZW50ID0geyAuLi57fSwgLi4uaXRlbSB9O1xyXG4gICAgICByZXR1cm4gZWxlbWVudDtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMudXNlRXhwYW5kRmVhdHVyZSA9ICF0aGlzLnRyZWVDb25maWc/LnNob3dDaGVja0JveDtcclxuICAgIHRoaXMuc2hvd0NoZWNrQm94ID0gdGhpcy50cmVlQ29uZmlnPy5zaG93Q2hlY2tCb3g7XHJcbiAgICB0aGlzLm9ubHlDaGVja0JveEZvckNoaWxkID0gdGhpcy50cmVlQ29uZmlnPy5vbmx5Q2hlY2tCb3hGb3JDaGlsZDtcclxuICAgIHRoaXMubW9kdWxlSWQgPSB0aGlzLnRyZWVDb25maWc/Lm1vZHVsZUlkO1xyXG4gICAgdGhpcy5vcGVuSWNvbiA9IHRoaXMudHJlZUNvbmZpZz8ub3Blbkljb247XHJcbiAgICB0aGlzLm9wZW5JY29uQ29sb3IgPSB0aGlzLnRyZWVDb25maWc/Lm9wZW5JY29uQ29sb3IgPyB0aGlzLnRyZWVDb25maWc/Lm9wZW5JY29uQ29sb3IgOiB0aGlzLm9wZW5JY29uQ29sb3I7XHJcbiAgICB0aGlzLmNsb3NlSWNvbiA9IHRoaXMudHJlZUNvbmZpZz8uY2xvc2VJY29uO1xyXG4gICAgdGhpcy5jbG9zZUljb25Db2xvciA9IHRoaXMudHJlZUNvbmZpZz8uY2xvc2VJY29uQ29sb3IgPyB0aGlzLnRyZWVDb25maWc/LmNsb3NlSWNvbkNvbG9yIDogdGhpcy5jbG9zZUljb25Db2xvcjtcclxuICAgIHRoaXMuaXRlbUljb24gPSB0aGlzLnRyZWVDb25maWc/Lml0ZW1JY29uO1xyXG4gICAgdGhpcy5pdGVtSWNvblN2ZyA9IHRoaXMudHJlZUNvbmZpZz8uaXRlbUljb25Tdmc7XHJcbiAgICB0aGlzLml0ZW1JY29uUGF0aCA9IHRoaXMudHJlZUNvbmZpZz8uaXRlbUljb25QYXRoO1xyXG4gICAgdGhpcy5pdGVtSWNvbkJhc2U2NCA9IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh0aGlzLnRyZWVDb25maWc/Lml0ZW1JY29uQmFzZTY0KSBhcyBzdHJpbmc7XHJcbiAgICB0aGlzLmFsbG93TXVsdGlwbGVDaGVjayA9IHRoaXMudHJlZUNvbmZpZz8uYWxsb3dNdWx0aXBsZUNoZWNrO1xyXG4gICAgdGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUgPSB0aGlzLnRyZWVDb25maWc/LnNpbmdsZVNlbGVjdGVkTm9kZTtcclxuICAgIHRoaXMub25seUZvbGRlciA9IHRoaXMudHJlZUNvbmZpZz8ub25seUZvbGRlcjtcclxuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbk1vZGVsPFRyZWVGbGF0Tm9kZT4odGhpcy5hbGxvd011bHRpcGxlQ2hlY2spOyAvKiB0cnVlOiBtdWx0aXBsZSAqL1xyXG5cclxuICAgIHRoaXMuZGlzcGxheVR5cGUgPSB0aGlzLmdldEl0ZW1JY29uVHlwZSh0aGlzLnRyZWVDb25maWcpO1xyXG5cclxuICAgIC8vIEV4cGFuZCBjaGlsZCBub2RlIHRyZWVcclxuICAgIGlmICh0aGlzLnRyZWVDb25maWcuZXhwYW5kQWxsKSB7XHJcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kQWxsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9EaXNhYmxlZCBub2RlXHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZExpc3QubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tEaXNhYmxlZExpc3QoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBSaXNrIFRyZWVcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkUmlza0RhdGEubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkRGF0YSA9IFtdO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJpc2tEYXRhLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHNlbGVjdGVkRGF0YS5maW5kSW5kZXgoZWwgPT4gZWwuaWQgPT09IHgucm9vdElkKTtcclxuICAgICAgICAgIGlmICh4LnJvb3RJZCA9PT0gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uaWQgJiYgaW5kZXggPCAwKSB7XHJcbiAgICAgICAgICAgIHNlbGVjdGVkRGF0YS5wdXNoKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5jaGVja1NlbGVjdGVkKHNlbGVjdGVkRGF0YSk7XHJcbiAgICAgIHRoaXMuY2hlY2tCb3hFdmVudC5lbWl0KHNlbGVjdGVkRGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8ga2VlcCBleHBhbmRcclxuICAgIGlmICh0aGlzLnBhcmVudE5vZGVPbkNsaWNrICYmIE9iamVjdC5rZXlzKHRoaXMucGFyZW50Tm9kZU9uQ2xpY2spLmxlbmd0aCkge1xyXG4gICAgICBsZXQgdGVtcFBhcmVudCA9IFtdO1xyXG4gICAgICBsZXQgcm9vdCA9IG5ldyBUcmVlRmxhdE5vZGUoKTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IHRyZWUgPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXTtcclxuICAgICAgICBpZiAodGhpcy5wYXJlbnROb2RlT25DbGljay5wYXJlbnRJZCA9PT0gdHJlZS5wYXJlbnRJZCAmJiB0aGlzLnBhcmVudE5vZGVPbkNsaWNrLmlkID09PSB0cmVlLmlkXHJcbiAgICAgICAgICB8fCB0aGlzLnBhcmVudE5vZGVPbkNsaWNrLnBhcmVudElkID09PSB0cmVlLmlkKSB7XHJcbiAgICAgICAgICB0ZW1wUGFyZW50ID0gWy4uLnRlbXBQYXJlbnQsIHRoaXMuZ2V0UGFyZW50KHRyZWUpXTtcclxuICAgICAgICAgIHJvb3QgPSB0cmVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0ZW1wUGFyZW50LnB1c2gocm9vdCk7XHJcbiAgICAgIHRlbXBQYXJlbnQuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZCh4KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMudHJlZUNvbnRyb2xOb2Rlcy5lbWl0KHRoaXMudHJlZUNvbnRyb2wpO1xyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcblxyXG4gIGdldFBhcmVudChub2RlOiBUcmVlRmxhdE5vZGUpIHtcclxuICAgIGNvbnN0IHsgdHJlZUNvbnRyb2wgfSA9IHRoaXM7XHJcbiAgICBjb25zdCBjdXJyZW50TGV2ZWwgPSB0cmVlQ29udHJvbC5nZXRMZXZlbChub2RlKTtcclxuXHJcbiAgICBpZiAoY3VycmVudExldmVsIDwgMSkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpbmRleCA9IHRyZWVDb250cm9sLmRhdGFOb2Rlcy5pbmRleE9mKG5vZGUpIC0gMTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gaW5kZXg7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnROb2RlID0gdHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldO1xyXG5cclxuICAgICAgaWYgKHRyZWVDb250cm9sLmdldExldmVsKGN1cnJlbnROb2RlKSA8IGN1cnJlbnRMZXZlbCkge1xyXG4gICAgICAgIHJldHVybiBjdXJyZW50Tm9kZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3BlbkV4cGFuZFRvQ2hpbGROb2RlKCkge1xyXG4gICAgaWYgKHRoaXMuZXhwYW5kVG9DaGlsZE5vZGUubGVuZ3RoKSB7XHJcbiAgICAgIGlmICh0aGlzLmV4cGFuZFRvQ2hpbGROb2RlWzBdID09PSAnJykge1xyXG4gICAgICAgIHRoaXMuaWRDaGVja0ljb24gPSAnJztcclxuICAgICAgICB0aGlzLnRyZWVDb250cm9sLmNvbGxhcHNlQWxsKCk7XHJcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGl0ZW1NYXJrQ2hlY2tlZCA9ICF0aGlzLnNlbGVjdGVkRGF0YSB8fCAhdGhpcy5zZWxlY3RlZERhdGEubGVuZ3RoID8gJycgOiB0aGlzLnNlbGVjdGVkRGF0YVt0aGlzLnNlbGVjdGVkRGF0YS5sZW5ndGggLSAxXS5pZD8udG9Mb3dlckNhc2UoKTtcclxuICAgICAgbGV0IHBhcmVudEl0ZW0gPSAnJztcclxuXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoaXRlbU1hcmtDaGVja2VkID09PSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5pZCkge1xyXG4gICAgICAgICAgcGFyZW50SXRlbSA9IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLnBhcmVudElkO1xyXG4gICAgICAgICAgLy8gdGhpcy5zZWxlY3ROb2RlRXZlbnQuZW1pdCh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZXhwYW5kVG9DaGlsZE5vZGUuZm9yRWFjaChlbCA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uaWQ/LnRvTG93ZXJDYXNlKCkgPT09IGVsPy50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlkQ2hlY2tJY29uID0gdGhpcy5pZFRvQ2hlY2tTZWxlY3RPbmUoaXRlbU1hcmtDaGVja2VkLCBwYXJlbnRJdGVtKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNrRGlzYWJsZWRMaXN0KCkge1xyXG4gICAgLy8gRGlzYWJsZSBMaXN0ICBcclxuICAgIC8vICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAvLyAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgLy8gIH1cclxuICAgIGlmICh0aGlzLmRpc2FibGVkTGlzdC5sZW5ndGgpIHtcclxuICAgICAgaWYgKHRoaXMudHJlZUNvbmZpZy5zZWxlY3RPbmUpIHtcclxuICAgICAgICBjb25zdCBjdXJyTm9kZSA9IHRoaXMuZGlzYWJsZWRMaXN0W3RoaXMuZGlzYWJsZWRMaXN0Lmxlbmd0aCAtIDFdO1xyXG4gICAgICAgIGNvbnN0IGlkeFBhcmVudCA9IHRoaXMuZGlzYWJsZWRMaXN0Lmxlbmd0aCA+PSAyID8gdGhpcy5kaXNhYmxlZExpc3QubGVuZ3RoIC0gMiA6ICcnO1xyXG4gICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBpZHhQYXJlbnQgIT09ICcnID8gdGhpcy5kaXNhYmxlZExpc3RbaWR4UGFyZW50XSA6ICcnO1xyXG5cclxuICAgICAgICAvLyBjb25zdCBpbmRleCA9IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmZpbmRJbmRleChub2RlID0+IG5vZGUuaWQ/LnRvTG93ZXJDYXNlKCkgPT09IGN1cnJOb2RlPy50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgLy8gICAmJiAocGFyZW50Tm9kZT8udG9Mb3dlckNhc2UoKSA9PT0gbm9kZS5wYXJlbnRJZD8udG9Mb3dlckNhc2UoKSkpO1xyXG5cclxuICAgICAgICAvLyBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICAgIC8vICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaW5kZXhdLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgIC8vIGdldCBhbGwgY2hpbGRyZW4gbm9kZXMgb24gc2FtZSBsZXZlbFxyXG4gICAgICAgIGxldCBsaXN0Q2hpbGROb2RlU2FtZUxldmVsID0gdGhpcy5maW5kQ2hpbGROb2RlKGN1cnJOb2RlLnRvTG93ZXJDYXNlKCksIHRoaXMuZGF0YVNvdXJjZS5kYXRhKTtcclxuICAgICAgICAvLyBnZXQgYWxsIGNoaWxkcmVuIGluIGFsbCBsZXZlbFxyXG4gICAgICAgIHRoaXMubGlzdENoaWxkTm9kZSA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLmdldENoaWxkKGxpc3RDaGlsZE5vZGVTYW1lTGV2ZWwpO1xyXG4gICAgICAgIHRoaXMubGlzdENoaWxkTm9kZS5wdXNoKGxpc3RDaGlsZE5vZGVTYW1lTGV2ZWwpO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBpZiAoY3Vyck5vZGU/LnRvTG93ZXJDYXNlKCkgPT09IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmlkPy50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgICAgICYmIChwYXJlbnROb2RlPy50b0xvd2VyQ2FzZSgpID09PSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5wYXJlbnRJZD8udG9Mb3dlckNhc2UoKSkpIHtcclxuICAgICAgICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdE5vZGVFdmVudC5lbWl0KHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuZGlzYWJsZWRMaXN0LmZvckVhY2goZWwgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uaWQ/LnRvTG93ZXJDYXNlKCkgPT09IGVsPy50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgICAgLy8gdGhpcy50cmVlQ29udHJvbC5leHBhbmQodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIC8vIHJlbW92ZSBhbGwgY2hpbGRyZW4gbm9kZXMgd2hlbiB1c2VyIGRvbnQgbmVlZCB0byBzaG93IHRoZW1cclxuICAgICAgICAgIC8vIHRoaXMubGlzdENoaWxkTm9kZS5mb3JFYWNoKGVsID0+IHtcclxuICAgICAgICAgIC8vICAgaWYgKGVsLmlkICYmIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldPy5pZCA9PT0gZWwuaWQpIHtcclxuICAgICAgICAgIC8vICAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAvLyAgIH1cclxuICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlkQ2hlY2tJY29uID0gdGhpcy5pZFRvQ2hlY2tTZWxlY3RPbmUoY3Vyck5vZGU/LnRvTG93ZXJDYXNlKCksIHBhcmVudE5vZGU/LnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZWRMaXN0LmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgICBzd2l0Y2ggKGl0ZW0uaXRlbVR5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSB0aGlzLmRhdGFUeXBlLmRldmlhdGlvbjpcclxuICAgICAgICAgICAgICBjb25zdCBkZXZpYXRpb25JbmRleCA9IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmZpbmRJbmRleChub2RlID0+IG5vZGUuaWQgPT09IGl0ZW0uaWQgJiYgbm9kZS5wYXJlbnRJZCA9PT0gaXRlbS5wYXJlbnRJZCk7XHJcbiAgICAgICAgICAgICAgaWYgKGRldmlhdGlvbkluZGV4ID49IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2RldmlhdGlvbkluZGV4XS5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIHRoaXMuZGF0YVR5cGUucmlzazpcclxuICAgICAgICAgICAgICBjb25zdCByaXNrSW5kZXggPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5maW5kSW5kZXgobm9kZSA9PiBub2RlLmlkID09PSBpdGVtLmlkKTtcclxuICAgICAgICAgICAgICBpZiAocmlza0luZGV4ID49IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW3Jpc2tJbmRleF0uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSB0aGlzLmRhdGFUeXBlLmNoZWNrbGlzdDpcclxuICAgICAgICAgICAgICBjb25zdCBjaGVja2xpc3RJbmRleCA9IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmZpbmRJbmRleChub2RlID0+IG5vZGUuaWQudG9Mb3dlckNhc2UoKSA9PT0gaXRlbS5pZC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgICAgICAgICAmJiBub2RlLnBhcmVudElkPy50b0xvd2VyQ2FzZSgpID09PSBpdGVtLnBhcmVudElkPy50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgICAgICAgICBpZiAoY2hlY2tsaXN0SW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbY2hlY2tsaXN0SW5kZXhdLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5pZENoZWNrSWNvbiA9ICcnO1xyXG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldENoaWxkKG9iaikge1xyXG4gICAgaWYgKCFvYmopIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb2JqLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChvYmouY2hpbGRyZW5baV0uY2hpbGRyZW4pIHtcclxuICAgICAgICB0aGlzLmdldENoaWxkKG9iai5jaGlsZHJlbltpXSk7XHJcbiAgICAgICAgLy8gZGVsZXRlIG9iai5jaGlsZHJlbltpXS5jaGlsZHJlbjtcclxuICAgICAgICB0aGlzLmxpc3RDaGlsZE5vZGUucHVzaChvYmouY2hpbGRyZW5baV0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubGlzdENoaWxkTm9kZS5wdXNoKG9iai5jaGlsZHJlbltpXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNvcnREYXRhVHJlZShvYmopIHtcclxuICAgIGlmIChvYmouY2hpbGRyZW4pIHtcclxuICAgICAgbGV0IGNoaWxkID0gW107XHJcbiAgICAgIGNvbnN0IGxlYWZOb2RlID0gb2JqLmNoaWxkcmVuLmZpbHRlcih4ID0+ICF4LmNoaWxkcmVuKTtcclxuICAgICAgY29uc3Qgc3ViRm9sZGVyTm9kZSA9IG9iai5jaGlsZHJlbi5maWx0ZXIoeCA9PiB4LmNoaWxkcmVuKTtcclxuICAgICAgLy8gZm9yKGxldCBpbmRleCA9IHN1YkZvbGRlck5vZGUubGVuZ3RoIC0gMTsgaW5kZXggPj0gMCA7IGluZGV4LS0pe1xyXG4gICAgICAvLyAgIGxldCBlbCA9IHN1YkZvbGRlck5vZGVbaW5kZXhdO1xyXG4gICAgICAvLyAgIHRoaXMuc29ydERhdGFUcmVlKGVsKTtcclxuICAgICAgLy8gICBjaGlsZC51bnNoaWZ0KGVsKTtcclxuICAgICAgLy8gfVxyXG4gICAgICBzdWJGb2xkZXJOb2RlLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgbGV0IGVsID0gZWxlbWVudDtcclxuICAgICAgICB0aGlzLnNvcnREYXRhVHJlZShlbCk7XHJcbiAgICAgICAgY2hpbGQucHVzaChlbCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgbGVhZk5vZGUuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICBsZXQgZWwgPSBlbGVtZW50O1xyXG4gICAgICAgIGNoaWxkLnB1c2goZWwpO1xyXG4gICAgICB9KTtcclxuICAgICAgb2JqLmNoaWxkcmVuID0gY2hpbGQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW1hZ2VQYXRoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh0aGlzLnRyZWVDb25maWcuaXRlbUljb25CYXNlNjQpIGFzIHN0cmluZztcclxuICB9XHJcblxyXG4gIGNoZWNrU2VsZWN0ZWQoaXRlbVNlbGVjdGVkOiBUcmVlRmxhdE5vZGVbXSkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy50cmVlQ29udHJvbFsnZGF0YU5vZGVzJ10pIHJldHVybjtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IHRyZWUgPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXTtcclxuICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5kZXNlbGVjdCh0cmVlKTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBpdGVtU2VsZWN0ZWQubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBpdGVtU2VsZWN0ZWRbal07XHJcbiAgICAgICAgICBpZiAodHJlZS5pZCA9PT0gZWxlbWVudC5pZCAmJiAoIXRyZWUucGFyZW50SWQgfHwgdHJlZS5wYXJlbnRJZCA9PT0gZWxlbWVudC5wYXJlbnRJZCkpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0KHRyZWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0YSA9IGl0ZW1TZWxlY3RlZDtcclxuICAgIH0sIDUwMCk7XHJcblxyXG4gIH1cclxuXHJcbiAgY2hlY2tTZWxlY3RlZFNhbWVOb2RlKGl0ZW1TZWxlY3RlZDogVHJlZUZsYXROb2RlW10sIGZsYWc6IGJvb2xlYW4pIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgdHJlZSA9IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldO1xyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGl0ZW1TZWxlY3RlZC5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBpdGVtU2VsZWN0ZWRbal07XHJcbiAgICAgICAgaWYgKGVsZW1lbnQuaWQgJiYgdHJlZS5pZCA9PT0gZWxlbWVudC5pZFxyXG4gICAgICAgICAgJiYgdHJlZS5wYXJlbnRJZCA9PT0gZWxlbWVudC5wYXJlbnRJZCAmJiAhdHJlZS5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgZmxhZyA/IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdCh0cmVlKSA6IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmRlc2VsZWN0KHRyZWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0SXRlbUljb25UeXBlKHRyZWVDb25maWc6IFRyZWVDb25maWcpIHtcclxuICAgIGlmICh0cmVlQ29uZmlnLml0ZW1JY29uICYmIHRyZWVDb25maWcuaXRlbUljb24ubGVuZ3RoKSByZXR1cm4gdGhpcy5pdGVtSWNvblR5cGUubmFtZTtcclxuICAgIGlmICh0cmVlQ29uZmlnLml0ZW1JY29uUGF0aCAmJiB0cmVlQ29uZmlnLml0ZW1JY29uUGF0aC5sZW5ndGgpIHJldHVybiB0aGlzLml0ZW1JY29uVHlwZS5wYXRoO1xyXG4gICAgaWYgKHRyZWVDb25maWcuaXRlbUljb25CYXNlNjQgJiYgdHJlZUNvbmZpZy5pdGVtSWNvbkJhc2U2NC5sZW5ndGgpIHJldHVybiB0aGlzLml0ZW1JY29uVHlwZS5iYXNlNjQ7XHJcbiAgICBpZiAodHJlZUNvbmZpZy5pdGVtSWNvblN2ZyAmJiB0cmVlQ29uZmlnLml0ZW1JY29uU3ZnLmxlbmd0aCkgcmV0dXJuIHRoaXMuaXRlbUljb25UeXBlLnN2ZztcclxuICAgIHJldHVybiB0aGlzLml0ZW1JY29uVHlwZS5ub25lO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdHJhbnNmb3JtZXIgPSAobm9kZTogVHJlZU5vZGUsIGxldmVsOiBudW1iZXIpID0+IHtcclxuICAgIGxldCBjaGVja0hhc0NoaWxkID0gdHJ1ZTtcclxuICAgIGlmICghbm9kZS5jaGlsZHJlbikge1xyXG4gICAgICBjaGVja0hhc0NoaWxkID0gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYgKCEoISFub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkpIHtcclxuICAgICAgY2hlY2tIYXNDaGlsZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxyXG4gICAgZWxzZSBpZiAoXHJcbiAgICAgICEhbm9kZS5jaGlsZHJlbiAmJlxyXG4gICAgICBub2RlLmNoaWxkcmVuLmxlbmd0aCAmJlxyXG4gICAgICBub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMSAmJlxyXG4gICAgICAhbm9kZS5jaGlsZHJlblswXS5uYW1lICYmXHJcbiAgICAgIG5vZGUuaWQ/LnRvU3RyaW5nKCkgPT09ICcnXHJcbiAgICApIHtcclxuICAgICAgY2hlY2tIYXNDaGlsZCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghKHRoaXMubGlzdFBhcmVudE9ialtub2RlLmlkXSA9PT0gMSkpIHtcclxuICAgICAgY2hlY2tIYXNDaGlsZCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGV4cGFuZGFibGU6ICEhbm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDAsXHJcbiAgICAgIG5hbWU6IG5vZGUubmFtZSxcclxuICAgICAgbGV2ZWwsXHJcbiAgICAgIGlkOiBub2RlLmlkLFxyXG4gICAgICBoYXNDaGlsZDogY2hlY2tIYXNDaGlsZCxcclxuICAgICAgcGFyZW50SWQ6IG5vZGUucGFyZW50SWQsXHJcbiAgICAgIGRpc2FibGVkOiBub2RlLmRpc2FibGVkLFxyXG4gICAgICBsZXZlbFR5cGU6IG5vZGUubGV2ZWxUeXBlLFxyXG4gICAgICBtYXJrZWRHZXRDaGlsZHJlbjogbm9kZS5tYXJrZWRHZXRDaGlsZHJlbiB8fCBmYWxzZVxyXG4gICAgfTtcclxuICB9O1xyXG5cclxuICB0cmVlRmxhdHRlbmVyID0gbmV3IE1hdFRyZWVGbGF0dGVuZXIoXHJcbiAgICB0aGlzLl90cmFuc2Zvcm1lcixcclxuICAgIChub2RlKSA9PiB7XHJcbiAgICAgIHJldHVybiBub2RlLmxldmVsO1xyXG4gICAgfSxcclxuICAgIChub2RlKSA9PiB7XHJcbiAgICAgIHJldHVybiBub2RlLmV4cGFuZGFibGU7XHJcbiAgICB9LFxyXG4gICAgKG5vZGUpID0+IHtcclxuICAgICAgcmV0dXJuIG5vZGUuY2hpbGRyZW47XHJcbiAgICB9XHJcbiAgKTtcclxuXHJcbiAgZGF0YVNvdXJjZSA9IG5ldyBNYXRUcmVlRmxhdERhdGFTb3VyY2UodGhpcy50cmVlQ29udHJvbCwgdGhpcy50cmVlRmxhdHRlbmVyKTtcclxuXHJcblxyXG4gIC8qKiBXaGV0aGVyIGFsbCB0aGUgZGVzY2VuZGFudHMgb2YgdGhlIG5vZGUgYXJlIHNlbGVjdGVkICovXHJcbiAgZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlOiBUcmVlRmxhdE5vZGUpOiBib29sZWFuIHtcclxuXHJcbiAgICBjb25zdCBkZXNjZW5kYW50cyA9ICF0aGlzLnNpbmdsZVNlbGVjdGVkTm9kZSA/IHRoaXMudHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSkuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uZGlzYWJsZWQpIDogW107XHJcblxyXG4gICAgaWYgKCFkZXNjZW5kYW50cy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSk7XHJcblxyXG4gICAgY29uc3QgYWxsU2VsZWN0ZWQgPSBkZXNjZW5kYW50cy5ldmVyeShjaGlsZCA9PiB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKGNoaWxkKSk7XHJcbiAgICBpZiAoIXNlbGVjdGVkICYmIGFsbFNlbGVjdGVkKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdChub2RlKTtcclxuICAgICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuICAgIHJldHVybiBhbGxTZWxlY3RlZDtcclxuXHJcbiAgfVxyXG5cclxuICAvKiogV2hldGhlciBwYXJ0IG9mIHRoZSBkZXNjZW5kYW50cyBhcmUgc2VsZWN0ZWQgKi9cclxuICBkZXNjZW5kYW50c1BhcnRpYWxseVNlbGVjdGVkKG5vZGU6IFRyZWVGbGF0Tm9kZSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSAhdGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUgPyB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpLmZpbHRlcihpdGVtID0+ICFpdGVtLmRpc2FibGVkKSA6IFtdO1xyXG5cclxuICAgIGNvbnN0IHJlc3VsdCA9IGRlc2NlbmRhbnRzLnNvbWUoY2hpbGQgPT4gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChjaGlsZCkpO1xyXG4gICAgcmV0dXJuIHJlc3VsdCAmJiAhdGhpcy5kZXNjZW5kYW50c0FsbFNlbGVjdGVkKG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRvZ2dsZSB0aGUgdG8tZG8gaXRlbSBzZWxlY3Rpb24uIFNlbGVjdC9kZXNlbGVjdCBhbGwgdGhlIGRlc2NlbmRhbnRzIG5vZGUgKi9cclxuICBwdWJsaWMgdG9kb0l0ZW1TZWxlY3Rpb25Ub2dnbGUobm9kZTogVHJlZUZsYXROb2RlKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdE5vZGVFdmVudC5lbWl0KG5vZGUpO1xyXG4gICAgLy8gdHJlZSBoYXZlIGR1cGxpY2F0ZSBub2RlXHJcbiAgICBpZiAodGhpcy50cmVlQ29uZmlnLmNhbkhhdmVEdXBJZCkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmlkID09PSBub2RlLmlkXHJcbiAgICAgICAgICAmJiB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5wYXJlbnRJZCA9PT0gbm9kZS5wYXJlbnRJZFxyXG4gICAgICAgICAgJiYgIXRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi50b2dnbGUodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24udG9nZ2xlKG5vZGUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvLyBwcm9jZXNzLyBkb2N1bWVudCBzaW5nbGUgc2VsZWN0ZWRcclxuICAgIGlmICghdGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUpIHtcclxuICAgICAgY29uc3QgZGVzY2VuZGFudHMgPSB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpLmZpbHRlcihpdGVtID0+ICFpdGVtLmRpc2FibGVkKTtcclxuXHJcbiAgICAgIHRoaXMuY2hlY2tTZWxlY3RlZFNhbWVOb2RlKGRlc2NlbmRhbnRzLCB0aGlzLmRlc2NlbmRhbnRzQWxsU2VsZWN0ZWQobm9kZSkpO1xyXG5cclxuICAgICAgIXRoaXMuZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlKVxyXG4gICAgICAgID8gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0KC4uLmRlc2NlbmRhbnRzKVxyXG4gICAgICAgIDogdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uZGVzZWxlY3QoLi4uZGVzY2VuZGFudHMpO1xyXG4gICAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG5cclxuICAgICAgY29uc3QgYWxsTm9kZUlzUGFyZW50ID0gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQuZXZlcnkoY2hpbGQgPT4gY2hpbGQuZXhwYW5kYWJsZSk7XHJcblxyXG4gICAgICBpZiAoYWxsTm9kZUlzUGFyZW50KSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmRlc2VsZWN0KGVsZW1lbnQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoZWNrQm94RXZlbnQuZW1pdCh0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICB0b2RvQ2hpbGRTZWxlY3Rpb25Ub2dnbGUobm9kZTogVHJlZUZsYXROb2RlKTogdm9pZCB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5pZCA9PT0gbm9kZS5pZFxyXG4gICAgICAgICYmIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLnBhcmVudElkID09PSBub2RlLnBhcmVudElkXHJcbiAgICAgICAgJiYgIXRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmRpc2FibGVkKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24udG9nZ2xlKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24udG9nZ2xlKG5vZGUpO1xyXG4gICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIHRoaXMuY2hlY2tCb3hFdmVudC5lbWl0KHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkKTtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9kb0l0ZW1TZWxlY3Rpb25CeUlkKGlkczogYW55W10pOiB2b2lkIHtcclxuICAgIGlkcy5mb3JFYWNoKFxyXG4gICAgICBpZCA9PiB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaWYgKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmlkID09PSBpZFxyXG4gICAgICAgICAgICAmJiAhdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKSlcclxuICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi50b2dnbGUodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHRoaXMuY2hlY2tCb3hFdmVudC5lbWl0KHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2RvSXRlbVNlbGVjdGlvbihub2RlczogVHJlZU5vZGVbXSk6IHZvaWQge1xyXG4gICAgbm9kZXMuZm9yRWFjaChcclxuICAgICAgbm9kZSA9PiB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaWYgKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmlkID09PSBub2RlLmlkICYmXHJcbiAgICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLnBhcmVudElkID09PSBub2RlLnBhcmVudElkICYmXHJcbiAgICAgICAgICAgICF0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0pKVxyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnRvZ2dsZSh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy5jaGVja0JveEV2ZW50LmVtaXQodGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQpO1xyXG5cclxuICB9XHJcblxyXG4gIHRvZG9JdGVtU2VsZWN0aW9uUHJvY2Vzc0RvY3VtZW50KG5vZGVzOiBUcmVlTm9kZVtdKTogdm9pZCB7XHJcbiAgICBub2Rlcy5mb3JFYWNoKFxyXG4gICAgICBub2RlID0+IHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uaWQgPT09IG5vZGUuaWQgJiZcclxuICAgICAgICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0ucGFyZW50SWQgPT09IG5vZGUucGFyZW50SWQgJiZcclxuICAgICAgICAgICAgIXRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmRpc2FibGVkICYmICF0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5leHBhbmRhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZCh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXSkpXHJcbiAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24udG9nZ2xlKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5jaGVja0JveEV2ZW50LmVtaXQodGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQpO1xyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2RvRm9sZGVyU2VsZWN0aW9uKG5vZGVzOiBUcmVlTm9kZVtdKTogdm9pZCB7XHJcbiAgICBub2Rlcy5mb3JFYWNoKFxyXG4gICAgICBub2RlID0+IHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uaWQgPT09IG5vZGUuaWQgJiZcclxuICAgICAgICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0ucGFyZW50SWQ/LnRvU3RyaW5nKCkgPT09IG5vZGUucGFyZW50SWQ/LnRvU3RyaW5nKCkgJiZcclxuICAgICAgICAgICAgIXRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmRpc2FibGVkICYmIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmV4cGFuZGFibGUpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKSlcclxuICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi50b2dnbGUodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0pO1xyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLmNoZWNrQm94RXZlbnQuZW1pdCh0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3RlZCk7XHJcbiAgICB0aGlzLmlkQ2hlY2tJY29uID0gdGhpcy5pZFRvQ2hlY2tTZWxlY3RPbmUobm9kZXNbMF0uaWQsIG5vZGVzWzBdLnBhcmVudElkKTtcclxuXHJcbiAgfVxyXG5cclxuICBoYXNDaGlsZCA9IChfOiBudW1iZXIsIG5vZGU6IFRyZWVGbGF0Tm9kZSkgPT4ge1xyXG4gICAgcmV0dXJuIG5vZGUuZXhwYW5kYWJsZTtcclxuICB9O1xyXG5cclxuICBzZWxlY3ROb2RlKG5vZGU6IFRyZWVGbGF0Tm9kZSkge1xyXG4gICAgaWYgKHdpbmRvd1tSZWxhdGVkQ29uc3QuSVNfRElTUExBWV9TRUFSQ0hfUkVTVUxUXSkge1xyXG4gICAgICB3aW5kb3cucG9zdE1lc3NhZ2UoUmVsYXRlZENvbnN0LkhJREVfU0VBUkNIX1JFU1VMVCwgJyonKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy50cmVlQ29uZmlnLnNlbGVjdE9uZSkge1xyXG4gICAgICBub2RlLml0ZW1UeXBlID0gdGhpcy5jaGVja0RhdGFUeXBlU2VsZWN0Tm9kZShub2RlKTtcclxuICAgICAgdGhpcy5pZENoZWNrSWNvbiA9IHRoaXMuaWRUb0NoZWNrU2VsZWN0T25lKG5vZGUuaWQsIG5vZGUucGFyZW50SWQpO1xyXG4gICAgICB0aGlzLnNlbGVjdE5vZGVFdmVudC5lbWl0KG5vZGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2tEYXRhVHlwZVNlbGVjdE5vZGUobm9kZTogVHJlZUZsYXROb2RlKSB7XHJcbiAgICBsZXQgaXRlbVR5cGUgPSAtMTtcclxuXHJcbiAgICBzd2l0Y2ggKHRoaXMubW9kdWxlSWQpIHtcclxuICAgICAgY2FzZSBEYXRhVHlwZS5wcm9jZXNzOlxyXG4gICAgICAgIGl0ZW1UeXBlID0gbm9kZS5leHBhbmRhYmxlID8gRGF0YVR5cGUuYXJlYSA6IERhdGFUeXBlLnByb2Nlc3M7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRGF0YVR5cGUuZG9jdW1lbnQ6XHJcbiAgICAgICAgaXRlbVR5cGUgPSBub2RlLmV4cGFuZGFibGUgPyBEYXRhVHlwZS5mb2xkZXIgOiBEYXRhVHlwZS5kb2N1bWVudDtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgaXRlbVR5cGUgPSB0aGlzLm1vZHVsZUlkO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpdGVtVHlwZTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEZvbGRlcihub2RlOiBUcmVlRmxhdE5vZGUpIHtcclxuICAgIHRoaXMuc2VsZWN0Rm9sZGVyRXZlbnQuZW1pdChub2RlKTtcclxuICB9XHJcblxyXG4gIG9uRXhwYW5kTm9kZShub2RlOiBUcmVlRmxhdE5vZGUsIGlzRXhwYW5kTm9kZT86IGJvb2xlYW4pIHtcclxuICAgIGlmIChpc0V4cGFuZE5vZGUgJiYgdGhpcy5leHBhbmRPblRpdGxlQ2xpY2spIHtcclxuICAgICAgaWYgKCFub2RlLm1hcmtlZEdldENoaWxkcmVuICYmICF0aGlzLnRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkpIHtcclxuICAgICAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgICAgaWYgKHgucGFyZW50SWQgPT09IG5vZGUucGFyZW50SWQgJiYgeC5pZCA9PT0gbm9kZS5pZCkge1xyXG4gICAgICAgICAgICB4Lm1hcmtlZEdldENoaWxkcmVuID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLm5vZGVFeHBhbmRFdmVudC5lbWl0KG5vZGUpO1xyXG5cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pZENoZWNrSWNvbiA9IHRoaXMuaWRUb0NoZWNrU2VsZWN0T25lKG5vZGUuaWQsIG5vZGUucGFyZW50SWQpO1xyXG4gICAgICBub2RlLml0ZW1UeXBlID0gdGhpcy5jaGVja0RhdGFUeXBlU2VsZWN0Tm9kZShub2RlKTtcclxuICAgICAgdGhpcy5zZWxlY3ROb2RlRXZlbnQuZW1pdChub2RlKTtcclxuICAgIH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHJlbW92ZUNoaWxkcmVuKHBhcmVudEVsZW1lbnQ/OiBUcmVlTm9kZSkge1xyXG4gICAgaWYgKHBhcmVudEVsZW1lbnQuY2hpbGRyZW4pIHtcclxuICAgICAgcGFyZW50RWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPSAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkQ2hpbGRyZW4ocGFyZW50RWxlbWVudD86IFRyZWVOb2RlLCBjaGlsZHJlbkxpc3Q/OiBUcmVlTm9kZVtdKSB7XHJcbiAgICBpZiAoY2hpbGRyZW5MaXN0KSB7XHJcbiAgICAgIGNoaWxkcmVuTGlzdC5mb3JFYWNoKChlKSA9PiB7XHJcbiAgICAgICAgcGFyZW50RWxlbWVudC5jaGlsZHJlbi5wdXNoKGUpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldE5vZGVJbmRleChpZDogc3RyaW5nLCBsZXZlbD86IG51bWJlciwgZGF0YT86IGFueVtdKSB7XHJcbiAgICBpZiAobGV2ZWwpIHtcclxuICAgICAgcmV0dXJuIGRhdGEuZmluZEluZGV4KCh4KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHguaWQgPT09IGlkICYmIHgubGV2ZWwgPT09IGxldmVsO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGF0YS5maW5kSW5kZXgoKHgpID0+IHtcclxuICAgICAgcmV0dXJuIHguaWQgPT09IGlkO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRDaGlsZE5vZGUocm9vdElkOiBzdHJpbmcsIGRhdGE6IGFueSkge1xyXG4gICAgY29uc3QgY2hpbGRBcnJheSA9IGRhdGEuZmlsdGVyKCh4KSA9PiB7XHJcbiAgICAgIHJldHVybiB4LnJvb3RJZCA9PT0gcm9vdElkO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBjaGlsZCA9IHsgaWQ6IGNoaWxkQXJyYXlbMF0ucm9vdElkLCBuYW1lOiBjaGlsZEFycmF5WzBdLnN1Yk5hbWUsIGNoaWxkcmVuOiBbXSB9IGFzIFRyZWVOb2RlO1xyXG4gICAgY2hpbGRBcnJheS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGNoaWxkLmNoaWxkcmVuLnB1c2goeyBpZDogaXRlbS5jaGlsZElkLCBuYW1lOiBpdGVtLmNoaWxkTmFtZSwgcGFyZW50SWQ6IHJvb3RJZCB9KTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGNoaWxkO1xyXG4gIH1cclxuXHJcbiAgZmluZENoaWxkTm9kZShpZDogc3RyaW5nLCBkYXRhOiBUcmVlTm9kZVtdKSB7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcclxuICAgIGZvciAoY29uc3QgY3VycmVudEZhdGhlciBvZiBkYXRhKSB7XHJcbiAgICAgIGlmIChjdXJyZW50RmF0aGVyLmlkPy50b0xvd2VyQ2FzZSgpID09PSBpZD8udG9Mb3dlckNhc2UoKSkge1xyXG4gICAgICAgIHJldHVybiBjdXJyZW50RmF0aGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoY3VycmVudEZhdGhlci5jaGlsZHJlbikge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRDaGlsZCA9IGN1cnJlbnRGYXRoZXIuY2hpbGRyZW4uZmluZCgoeCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHguaWQ/LnRvTG93ZXJDYXNlKCkgPT09IGlkPy50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChjdXJyZW50Q2hpbGQpIHtcclxuICAgICAgICAgIHJldHVybiBjdXJyZW50Q2hpbGQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcclxuICAgICAgICBmb3IgKGNvbnN0IGN1cnJlbnRDaGlsZDEgb2YgY3VycmVudEZhdGhlci5jaGlsZHJlbikge1xyXG4gICAgICAgICAgaWYgKGlkPy50b0xvd2VyQ2FzZSgpICE9PSBjdXJyZW50Q2hpbGQxLmlkPy50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZmluZENoaWxkTm9kZShpZCwgY3VycmVudEZhdGhlci5jaGlsZHJlbik7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaFRyZWVEYXRhKCkge1xyXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhO1xyXG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBbXTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcclxuICB9XHJcblxyXG4gIGdldE5vZGVJY29uKG5vZGU6IFRyZWVGbGF0Tm9kZSkge1xyXG4gICAgaWYgKHRoaXMub3Blbkljb24gJiYgdGhpcy5jbG9zZUljb24pIHtcclxuICAgICAgcmV0dXJuIHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSA/IHRoaXMub3Blbkljb24gOiB0aGlzLmNsb3NlSWNvbjtcclxuICAgIH1cclxuICAgIHN3aXRjaCAodGhpcy5tb2R1bGVJZCkge1xyXG4gICAgICBjYXNlIERhdGFUeXBlLmRvY3VtZW50OiB7XHJcbiAgICAgICAgY29uc3Qgbm9kZURhdGEgPSB0aGlzLnRyZWVEYXRhLmZpbHRlcih4ID0+IHsgcmV0dXJuIHgucm9vdElkID09PSBub2RlLmlkOyB9KTtcclxuICAgICAgICBpZiAobm9kZURhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgc3dpdGNoIChub2RlRGF0YVswXS5sZXZlbFR5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSBEb2N1bWVudE5vZGVUeXBlLkRlcGFydG1lbnRGb2xkZXI6XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSA/ICdkZXBhcnRtZW50X2ZvbGRlcl9vdXRsaW5lZCcgOiAnZGVwYXJ0bWVudF9mb2xkZXInO1xyXG4gICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuUmVnaW9uYWxGb2xkZXI6XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSA/ICdyZWdpb25hbF9mb2xkZXJfb3V0bGluZWQnIDogJ3JlZ2lvbmFsX2ZvbGRlcic7XHJcbiAgICAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5Ub3BGb2xkZXI6XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSA/ICdlbnRlcnByaXNlX2ZvbGRlcl9vdXRsaW5lZCcgOiAnZW50ZXJwcmlzZV9mb2xkZXInO1xyXG4gICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuRm9sZGVyOlxyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAnbG9jYWxfZm9sZGVyX291dGxpbmVkJyA6ICdsb2NhbF9mb2xkZXInO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAnZm9sZGVyX291dGxpbmVkJyA6ICdmb2xkZXInO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy50cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpID8gJ2tleWJvYXJkX3VwJyA6ICdrZXlib2FyZF9kb3duJztcclxuICAgICAgfVxyXG4gICAgICBjYXNlIERhdGFUeXBlLnByb2Nlc3M6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSA/ICdwcm9jZXNzX2FyZWFfb3V0bGluZWQnIDogJ3Byb2Nlc3NfYXJlYSc7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSA/ICdrZXlib2FyZF91cCcgOiAna2V5Ym9hcmRfZG93bic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtSWNvbihub2RlKSB7XHJcbiAgICBzd2l0Y2ggKHRoaXMubW9kdWxlSWQpIHtcclxuICAgICAgY2FzZSBEYXRhVHlwZS5kb2N1bWVudDpcclxuICAgICAgICBzd2l0Y2ggKG5vZGUubGV2ZWxUeXBlKSB7XHJcbiAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuRGVwYXJ0bWVudEZvbGRlcjpcclxuICAgICAgICAgICAgcmV0dXJuICdkb2N1bWVudF9kZXBhcnRtZW50JztcclxuICAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5SZWdpb25hbEZvbGRlcjpcclxuICAgICAgICAgICAgcmV0dXJuICdkb2N1bWVudF9yZWdpb25hbCc7XHJcbiAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuVG9wRm9sZGVyOlxyXG4gICAgICAgICAgICByZXR1cm4gJ2RvY3VtZW50X2VudGVycHJpc2UnO1xyXG4gICAgICAgICAgY2FzZSBEb2N1bWVudE5vZGVUeXBlLkZvbGRlcjpcclxuICAgICAgICAgICAgcmV0dXJuICdkb2N1bWVudF9sb2NhbCc7XHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICByZXR1cm4gJ2RvY3VtZW50JztcclxuICAgICAgICB9XHJcbiAgICAgIGNhc2UgRGF0YVR5cGUucHJvY2VzczpcclxuICAgICAgICByZXR1cm4gJ3Byb2Nlc3MnO1xyXG4gICAgICBjYXNlIERhdGFUeXBlLmNoZWNrbGlzdDpcclxuICAgICAgICByZXR1cm4gJ2NoZWNrbGlzdCc7XHJcbiAgICAgIGNhc2UgRGF0YVR5cGUuZGV2aWF0aW9uOlxyXG4gICAgICAgIHJldHVybiAnZGV2aWF0aW9uJztcclxuICAgICAgY2FzZSBEYXRhVHlwZS5yaXNrOlxyXG4gICAgICAgIHJldHVybiAncmlzayc7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuICdkb2N1bWVudCc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RGb2xkZXJOb2RlKG5vZGU6IFRyZWVGbGF0Tm9kZSkge1xyXG4gICAgaWYgKHRoaXMudHJlZUNvbmZpZy5zZWxlY3RPbmUgJiYgIXRoaXMudHJlZUNvbmZpZy5hbGxvd1NlbGVjdEZvbGRlcikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLmV4cGFuZE9uVGl0bGVDbGljaykge1xyXG4gICAgICB0aGlzLm9uRXhwYW5kTm9kZShub2RlLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXROb2RlSWQobm9kZTogVHJlZUZsYXROb2RlKSB7XHJcbiAgICBpZiAoIW5vZGUgfHwgIW5vZGUuaWQpIHtcclxuICAgIH1cclxuICAgIHJldHVybiBgXyR7bm9kZS5wYXJlbnRJZCA/IG5vZGUucGFyZW50SWQ/LnRvTG93ZXJDYXNlKCkgOiAnJ31fJHtub2RlLmlkPy50b0xvd2VyQ2FzZSgpfV8ke25vZGUubGV2ZWx9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXROb2RlQnlJZEFuZFBhcmVudElkKG5vZGVJZDogc3RyaW5nLCBwYXJlbnRJZDogc3RyaW5nKTogVHJlZUZsYXROb2RlIHtcclxuICAgIHJldHVybiB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5maW5kKHggPT4ge1xyXG4gICAgICByZXR1cm4geC5pZCA9PT0gbm9kZUlkICYmIHgucGFyZW50SWQgPT09IHBhcmVudElkO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXhwYW5kTm9kZShub2RlOiBUcmVlRmxhdE5vZGUpIHtcclxuICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgaWRUb0NoZWNrU2VsZWN0T25lKGlkLCBwYXJlbnRJZCkge1xyXG4gICAgcmV0dXJuIGAke2lkfS0ke3BhcmVudElkfWA7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19
@@ -167,7 +167,10 @@ export const en = {
167
167
  "SELECT_VIDEO_IMAGE": "Select video image",
168
168
  "DOCUMENT_HEADER": "Document information",
169
169
  "ADD_IMAGE": "Add image",
170
- "IMAGE_INFO": "Image Info"
170
+ "IMAGE_INFO": "Image Info",
171
+ "ADD_A_FILE": "Add a file",
172
+ "EXTENSION_IS_NOT_SUPPORTED": "The extension is not supported.",
173
+ "ACCEPT_MP4_ONLY": "Not support this video type. Accept MP4 only."
171
174
  },
172
175
  "ABOUT": {
173
176
  "ABOUT_CKEDITOR": "About CKEditor",
@@ -390,4 +393,4 @@ export const en = {
390
393
  "RESET_TO_LAST_SAVE": "Reset to last saved"
391
394
  }
392
395
  };
393
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL21vZGVsL2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRztJQUNoQixTQUFTLEVBQUUsU0FBUztJQUNwQixjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLGFBQWEsRUFBRSxZQUFZO0lBQzNCLGNBQWMsRUFBRSxjQUFjO0lBQzlCLGFBQWEsRUFBRSxNQUFNO0lBQ3JCLGVBQWUsRUFBRSxRQUFRO0lBQ3pCLHdCQUF3QixFQUFFLGdDQUFnQztJQUMxRCxRQUFRLEVBQUUsUUFBUTtJQUNsQixNQUFNLEVBQUUsTUFBTTtJQUNkLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE1BQU0sRUFBRSxNQUFNO0lBQ2QsUUFBUSxFQUFFLFFBQVE7SUFDbEIsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ2xDLFdBQVcsRUFBRSxXQUFXO0lBQ3hCLHNCQUFzQixFQUFFLDBDQUEwQztJQUNsRSwyQkFBMkIsRUFBRSwyQkFBMkI7SUFDeEQsa0JBQWtCLEVBQUUscUJBQXFCO0lBQ3pDLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFdBQVcsRUFBRSxXQUFXO0lBQ3hCLFdBQVcsRUFBRSxXQUFXO0lBQ3hCLFdBQVcsRUFBRSxZQUFZO0lBQ3pCLFdBQVcsRUFBRSxZQUFZO0lBQ3pCLFlBQVksRUFBRSxhQUFhO0lBQzNCLEtBQUssRUFBRSxLQUFLO0lBQ1osUUFBUSxFQUFFLFFBQVE7SUFDbEIsZUFBZSxFQUFFLHdEQUF3RDtJQUN6RSxlQUFlLEVBQUUsaUZBQWlGO0lBQ2xHLGlCQUFpQixFQUFFLHNCQUFzQjtJQUN6QyxVQUFVLEVBQUUsVUFBVTtJQUN0QixZQUFZLEVBQUUsSUFBSTtJQUNsQixhQUFhLEVBQUUsSUFBSTtJQUNuQixjQUFjLEVBQUUsY0FBYztJQUM5QixRQUFRLEVBQUUsUUFBUTtJQUNsQixnQkFBZ0IsRUFBRSxnQkFBZ0I7SUFDbEMsb0JBQW9CLEVBQUUsWUFBWTtJQUNsQyxPQUFPLEVBQUUsT0FBTztJQUNoQixnQkFBZ0IsRUFBRSxrQkFBa0I7SUFDcEMsUUFBUSxFQUFFLFFBQVE7SUFDbEIsY0FBYyxFQUFFLGNBQWM7SUFDOUIsbUJBQW1CLEVBQUUsbUJBQW1CO0lBQ3hDLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLE1BQU0sRUFBRSxNQUFNO0lBQ2QsSUFBSSxFQUFFLElBQUk7SUFDVixZQUFZLEVBQUUsWUFBWTtJQUMxQixVQUFVLEVBQUUsVUFBVTtJQUN0QixZQUFZLEVBQUUsWUFBWTtJQUMxQixZQUFZLEVBQUUsWUFBWTtJQUMxQixhQUFhLEVBQUUsYUFBYTtJQUM1QixpQkFBaUIsRUFBRSxpQkFBaUI7SUFDcEMsc0JBQXNCLEVBQUUsc0JBQXNCO0lBQzlDLHlCQUF5QixFQUFFLDJCQUEyQjtJQUN0RCwyQkFBMkIsRUFBRSxrQ0FBa0M7SUFDL0QsZUFBZSxFQUFFLG1CQUFtQjtJQUNwQyxRQUFRLEVBQUUsUUFBUTtJQUNsQixZQUFZLEVBQUUsWUFBWTtJQUMxQixZQUFZLEVBQUUsWUFBWTtJQUMxQixNQUFNLEVBQUUsTUFBTTtJQUNkLGlCQUFpQixFQUFFLG1CQUFtQjtJQUN0Qyx5QkFBeUIsRUFBRSx1Q0FBdUM7SUFDbEUsTUFBTSxFQUFFLE1BQU07SUFDZCxtQkFBbUIsRUFBRSxtQkFBbUI7SUFDeEMsd0JBQXdCLEVBQUUsMEJBQTBCO0lBQ3BELFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE1BQU0sRUFBRSxNQUFNO0lBQ2Qsa0JBQWtCLEVBQUUsNEJBQTRCO0lBQ2hELG1CQUFtQixFQUFFLHFCQUFxQjtJQUMxQyxnQ0FBZ0MsRUFBRSxtQ0FBbUM7SUFDckUsMEJBQTBCLEVBQUUsNkJBQTZCO0lBQ3pELFdBQVcsRUFBRSxXQUFXO0lBQ3hCLHdCQUF3QixFQUFFLDhCQUE4QjtJQUN4RCxPQUFPLEVBQUU7UUFDUCxlQUFlLEVBQUUsb0NBQW9DO0tBQ3REO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsY0FBYyxFQUFFLGNBQWM7UUFDOUIsY0FBYyxFQUFFLGNBQWM7S0FDL0I7SUFDRCxzQkFBc0IsRUFBRSx5QkFBeUI7SUFDakQsY0FBYyxFQUFFLG1CQUFtQjtJQUNuQyxtQkFBbUIsRUFBRSx5QkFBeUI7SUFDOUMsYUFBYSxFQUFFO1FBQ2IsSUFBSSxFQUFFLElBQUk7UUFDVixhQUFhLEVBQUUsYUFBYTtRQUM1QixZQUFZLEVBQUUsWUFBWTtRQUMxQixzQkFBc0IsRUFBRSxzQkFBc0I7UUFDOUMsZ0JBQWdCLEVBQUUsa0JBQWtCO1FBQ3BDLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLFVBQVUsRUFBRSxVQUFVO1FBQ3RCLGtCQUFrQixFQUFFLGtCQUFrQjtRQUN0QyxxQkFBcUIsRUFBRSxxQkFBcUI7UUFDNUMsaUJBQWlCLEVBQUUsaUJBQWlCO1FBQ3BDLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLGFBQWEsRUFBRSxhQUFhO1FBQzVCLE1BQU0sRUFBRSxNQUFNO1FBQ2QsaUJBQWlCLEVBQUUsa0RBQWtEO1FBQ3JFLGlCQUFpQixFQUFFLHlCQUF5QjtRQUM1QyxPQUFPLEVBQUUsT0FBTztRQUNoQixhQUFhLEVBQUUsYUFBYTtRQUM1QixRQUFRLEVBQUUsUUFBUTtRQUNsQixTQUFTLEVBQUUsU0FBUztRQUNwQixlQUFlLEVBQUUsZUFBZTtRQUNoQyxpQkFBaUIsRUFBRSxpQkFBaUI7UUFDcEMsaUJBQWlCLEVBQUUsaUJBQWlCO1FBQ3BDLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLE1BQU0sRUFBRSxNQUFNO1FBQ2QsV0FBVyxFQUFFLFdBQVc7UUFDeEIsTUFBTSxFQUFFLE1BQU07UUFDZCxVQUFVLEVBQUUsS0FBSztRQUNqQixxQkFBcUIsRUFBRSw0QkFBNEI7UUFDbkQsWUFBWSxFQUFFLE9BQU87UUFDckIsc0JBQXNCLEVBQUUsMEJBQTBCO1FBQ2xELFFBQVEsRUFBRSxRQUFRO1FBQ2xCLGFBQWEsRUFBRSxxQkFBcUI7UUFDcEMsZ0JBQWdCLEVBQUUsdUJBQXVCO1FBQ3pDLGFBQWEsRUFBRSxxQkFBcUI7UUFDcEMsZUFBZSxFQUFFLHlCQUF5QjtRQUMxQyxVQUFVLEVBQUUsVUFBVTtRQUN0QixlQUFlLEVBQUUsU0FBUztRQUMxQixnQkFBZ0IsRUFBRSxVQUFVO1FBQzVCLGNBQWMsRUFBRSxRQUFRO1FBQ3hCLGNBQWMsRUFBRSxTQUFTO1FBQ3pCLGdCQUFnQixFQUFFLFNBQVM7UUFDM0IsZ0JBQWdCLEVBQUUsZ0JBQWdCO1FBQ2xDLFVBQVUsRUFBRSxXQUFXO1FBQ3ZCLFlBQVksRUFBRSxZQUFZO1FBQzFCLElBQUksRUFBRSxJQUFJO1FBQ1YsWUFBWSxFQUFFLGlCQUFpQjtRQUMvQixvQkFBb0IsRUFBRSxrQkFBa0I7UUFDeEMsZ0JBQWdCLEVBQUUsZ0JBQWdCO1FBQ2xDLGNBQWMsRUFBRSxtQkFBbUI7UUFDbkMsZUFBZSxFQUFFLFNBQVM7UUFDMUIsZUFBZSxFQUFFLFNBQVM7UUFDMUIsWUFBWSxFQUFFLE1BQU07UUFDcEIsbUJBQW1CLEVBQUUsYUFBYTtRQUNsQyx5QkFBeUIsRUFBRSxrQkFBa0I7UUFDN0Msc0JBQXNCLEVBQUUsd0JBQXdCO1FBQ2hELGNBQWMsRUFBRSxjQUFjO1FBQzlCLEtBQUssRUFBRSxLQUFLO1FBQ1osV0FBVyxFQUFFLFdBQVc7UUFDeEIsV0FBVyxFQUFFLFdBQVc7UUFDeEIsUUFBUSxFQUFFLFFBQVE7UUFDbEIsVUFBVSxFQUFFLFVBQVU7UUFDdEIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsUUFBUSxFQUFFLFFBQVE7UUFDbEIsb0JBQW9CLEVBQUUsU0FBUztRQUMvQixzQkFBc0IsRUFBRSxXQUFXO1FBQ25DLG1CQUFtQixFQUFFLFFBQVE7UUFDN0Isb0JBQW9CLEVBQUUsU0FBUztRQUMvQixtQkFBbUIsRUFBRSxRQUFRO1FBQzdCLGNBQWMsRUFBRSw4Q0FBOEM7UUFDOUQsZ0JBQWdCLEVBQUUsaUNBQWlDO1FBQ25ELGFBQWEsRUFBRSxrQ0FBa0M7UUFDakQsYUFBYSxFQUFFLGFBQWE7UUFDNUIsY0FBYyxFQUFFLGlCQUFpQjtRQUNqQyxPQUFPLEVBQUUsT0FBTztRQUNoQixrQkFBa0IsRUFBRSxvQkFBb0I7UUFDeEMsOEJBQThCLEVBQUUsa0VBQWtFO1FBQ2xHLHNCQUFzQixFQUFFLG1FQUFtRTtRQUMzRixvQkFBb0IsRUFBRSx3QkFBd0I7UUFDOUMsZ0JBQWdCLEVBQUUsZ0JBQWdCO1FBQ2xDLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLFlBQVksRUFBRSxZQUFZO1FBQzFCLDJCQUEyQixFQUFFLCtCQUErQjtRQUM1RCxvQkFBb0IsRUFBRSxvQkFBb0I7UUFDMUMsaUJBQWlCLEVBQUUsc0JBQXNCO1FBQ3pDLFdBQVcsRUFBRSxXQUFXO1FBQ3hCLFlBQVksRUFBRSxZQUFZO0tBQzNCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsZ0JBQWdCLEVBQUUsZ0JBQWdCO1FBQ2xDLG1CQUFtQixFQUFFLG9CQUFvQjtRQUN6QyxvREFBb0QsRUFBRSxvREFBb0Q7UUFDMUcscUJBQXFCLEVBQUUscUJBQXFCO1FBQzVDLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLFVBQVUsRUFBRSxVQUFVO1FBQ3RCLHNCQUFzQixFQUFFLHVCQUF1QjtRQUMvQyxXQUFXLEVBQUUsYUFBYTtLQUMzQjtJQUNELE1BQU0sRUFBRTtRQUNOLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLE1BQU0sRUFBRSxNQUFNO1FBQ2QsTUFBTSxFQUFFLE1BQU07UUFDZCxXQUFXLEVBQUUsV0FBVztRQUN4QixXQUFXLEVBQUUsV0FBVztRQUN4QixVQUFVLEVBQUUsVUFBVTtRQUN0QixZQUFZLEVBQUUsWUFBWTtRQUMxQixZQUFZLEVBQUUsWUFBWTtRQUMxQixnQkFBZ0IsRUFBRSxnQkFBZ0I7UUFDbEMsTUFBTSxFQUFFLE1BQU07UUFDZCxRQUFRLEVBQUUsUUFBUTtRQUNsQixPQUFPLEVBQUUsT0FBTztRQUNoQixhQUFhLEVBQUUsYUFBYTtRQUM1QixXQUFXLEVBQUUsV0FBVztRQUN4QixTQUFTLEVBQUUsU0FBUztRQUNwQixNQUFNLEVBQUUsTUFBTTtRQUNkLE1BQU0sRUFBRSxNQUFNO1FBQ2QsU0FBUyxFQUFFLFNBQVM7UUFDcEIsTUFBTSxFQUFFLE1BQU07UUFDZCxNQUFNLEVBQUUsTUFBTTtRQUNkLGFBQWEsRUFBRSxhQUFhO1FBQzVCLG1CQUFtQixFQUFFLG1CQUFtQjtRQUN4QyxlQUFlLEVBQUUsZUFBZTtRQUNoQyxhQUFhLEVBQUUsYUFBYTtRQUM1QixPQUFPLEVBQUUsT0FBTztRQUNoQixLQUFLLEVBQUUsS0FBSztRQUNaLGNBQWMsRUFBRSxjQUFjO1FBQzlCLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLGdCQUFnQixFQUFFLGdCQUFnQjtRQUNsQyxlQUFlLEVBQUUsZUFBZTtRQUNoQyxzQkFBc0IsRUFBRSxzQkFBc0I7UUFDOUMscUJBQXFCLEVBQUUscUJBQXFCO1FBQzVDLGFBQWEsRUFBRSxhQUFhO1FBQzVCLGVBQWUsRUFBRSxlQUFlO1FBQ2hDLGNBQWMsRUFBRSxjQUFjO1FBQzlCLG9CQUFvQixFQUFFLG9CQUFvQjtRQUMxQyxtQkFBbUIsRUFBRSxtQkFBbUI7UUFDeEMsY0FBYyxFQUFFLGNBQWM7UUFDOUIsYUFBYSxFQUFFLGFBQWE7UUFDNUIsaUJBQWlCLEVBQUUsaUJBQWlCO1FBQ3BDLGdCQUFnQixFQUFFLGdCQUFnQjtRQUNsQyxrQkFBa0IsRUFBRSxrQkFBa0I7UUFDdEMsaUJBQWlCLEVBQUUsaUJBQWlCO1FBQ3BDLG1CQUFtQixFQUFFLG1CQUFtQjtRQUN4QyxxQkFBcUIsRUFBRSxxQkFBcUI7UUFDNUMsb0JBQW9CLEVBQUUsb0JBQW9CO1FBQzFDLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLGdCQUFnQixFQUFFLGdCQUFnQjtRQUNsQyxlQUFlLEVBQUUsZUFBZTtRQUNoQyxrQkFBa0IsRUFBRSxrQkFBa0I7UUFDdEMsaUJBQWlCLEVBQUUsaUJBQWlCO1FBQ3BDLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLGNBQWMsRUFBRSxjQUFjO1FBQzlCLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLE1BQU0sRUFBRSxNQUFNO1FBQ2QsVUFBVSxFQUFFLFVBQVU7UUFDdEIsUUFBUSxFQUFFLFFBQVE7UUFDbEIsUUFBUSxFQUFFLFFBQVE7UUFDbEIsYUFBYSxFQUFFLGFBQWE7UUFDNUIsY0FBYyxFQUFFLGNBQWM7UUFDOUIsYUFBYSxFQUFFLGFBQWE7UUFDNUIsd0JBQXdCLEVBQUUsd0JBQXdCO1FBQ2xELGVBQWUsRUFBRSxlQUFlO1FBQ2hDLGlCQUFpQixFQUFFLGlCQUFpQjtRQUNwQyxtQkFBbUIsRUFBRSxtQkFBbUI7UUFDeEMsV0FBVyxFQUFFLFdBQVc7UUFDeEIsWUFBWSxFQUFFLFlBQVk7UUFDMUIsY0FBYyxFQUFFLGNBQWM7UUFDOUIsY0FBYyxFQUFFLGNBQWM7UUFDOUIsaUJBQWlCLEVBQUUsaUJBQWlCO1FBQ3BDLG1CQUFtQixFQUFFLG1CQUFtQjtRQUN4QyxxQkFBcUIsRUFBRSxxQkFBcUI7UUFDNUMsY0FBYyxFQUFFLGNBQWM7UUFDOUIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsVUFBVSxFQUFFLFVBQVU7UUFDdEIsYUFBYSxFQUFFLGFBQWE7UUFDNUIsZUFBZSxFQUFFLGVBQWU7UUFDaEMsdUJBQXVCLEVBQUUsdUJBQXVCO1FBQ2hELGNBQWMsRUFBRSxjQUFjO1FBQzlCLHNCQUFzQixFQUFFLHFCQUFxQjtRQUM3QyxhQUFhLEVBQUUsYUFBYTtRQUM1QixNQUFNLEVBQUUsTUFBTTtRQUNkLE1BQU0sRUFBRSxNQUFNO1FBQ2QsaUJBQWlCLEVBQUUsaUJBQWlCO1FBQ3BDLGlCQUFpQixFQUFFLGlCQUFpQjtRQUNwQyxrQkFBa0IsRUFBRSxrQkFBa0I7UUFDdEMsb0JBQW9CLEVBQUUscUJBQXFCO1FBQzNDLFdBQVcsRUFBRSxXQUFXO1FBQ3hCLGtCQUFrQixFQUFFLGtCQUFrQjtRQUN0QyxXQUFXLEVBQUUsWUFBWTtRQUN6QiwwQkFBMEIsRUFBRSwwQkFBMEI7UUFDdEQsWUFBWSxFQUFFLFlBQVk7UUFDMUIsaUJBQWlCLEVBQUUsaUJBQWlCO1FBQ3BDLFlBQVksRUFBRSxZQUFZO1FBQzFCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLGNBQWMsRUFBRSxlQUFlO1FBQy9CLFdBQVcsRUFBRSxlQUFlO1FBQzVCLGdCQUFnQixFQUFFLGdCQUFnQjtRQUNsQyxZQUFZLEVBQUUsWUFBWTtRQUMxQixrQkFBa0IsRUFBRSxrQkFBa0I7UUFDdEMsTUFBTSxFQUFFLE1BQU07UUFDZCxhQUFhLEVBQUUsYUFBYTtRQUM1QixRQUFRLEVBQUUsUUFBUTtRQUNsQixxQkFBcUIsRUFBRSxxQkFBcUI7UUFDNUMsb0JBQW9CLEVBQUUsb0JBQW9CO1FBQzFDLG1CQUFtQixFQUFFLG1CQUFtQjtRQUN4QyxvQkFBb0IsRUFBRSxvQkFBb0I7UUFDMUMsa0JBQWtCLEVBQUUsa0JBQWtCO1FBQ3RDLHVCQUF1QixFQUFFLHVCQUF1QjtRQUNoRCxrQkFBa0IsRUFBRSxrQkFBa0I7UUFDdEMsdUJBQXVCLEVBQUUsdUJBQXVCO1FBQ2hELHNCQUFzQixFQUFFLHNCQUFzQjtRQUM5QyxrQkFBa0IsRUFBRSxrQkFBa0I7UUFDdEMsb0JBQW9CLEVBQUUsb0JBQW9CO1FBQzFDLGtCQUFrQixFQUFFLGtCQUFrQjtRQUN0QyxnQkFBZ0IsRUFBRSxnQkFBZ0I7UUFDbEMsa0JBQWtCLEVBQUUsa0JBQWtCO1FBQ3RDLGdCQUFnQixFQUFFLGdCQUFnQjtRQUNsQyxxQkFBcUIsRUFBRSxxQkFBcUI7UUFDNUMsdUJBQXVCLEVBQUUsdUJBQXVCO1FBQ2hELHFCQUFxQixFQUFFLHFCQUFxQjtRQUM1QyxZQUFZLEVBQUUsWUFBWTtRQUMxQixtQkFBbUIsRUFBRSxtQkFBbUI7UUFDeEMsdUJBQXVCLEVBQUUsdUJBQXVCO1FBQ2hELG1CQUFtQixFQUFFLHdCQUF3QjtRQUM3QyxlQUFlLEVBQUUsZUFBZTtRQUNoQyxlQUFlLEVBQUUsNEJBQTRCO1FBQzdDLDZCQUE2QixFQUFFLHVEQUF1RDtRQUN0RixZQUFZLEVBQUUsWUFBWTtRQUMxQixZQUFZLEVBQUUsWUFBWTtRQUMxQixxQ0FBcUMsRUFBRSxxQ0FBcUM7UUFDNUUsc0JBQXNCLEVBQUUsc0JBQXNCO1FBQzlDLCtCQUErQixFQUFFLDhCQUE4QjtRQUMvRCxtQkFBbUIsRUFBRSxtQkFBbUI7UUFDeEMsNEJBQTRCLEVBQUUsMkJBQTJCO1FBQ3pELGdDQUFnQyxFQUFFLHFDQUFxQztRQUN2RSxnQkFBZ0IsRUFBRSxnQkFBZ0I7UUFDbEMsbUJBQW1CLEVBQUUsbUJBQW1CO1FBQ3hDLG1CQUFtQixFQUFFLG1CQUFtQjtRQUN4QyxZQUFZLEVBQUUsWUFBWTtRQUMxQixXQUFXLEVBQUUsV0FBVztRQUN4QixVQUFVLEVBQUUsVUFBVTtRQUN0QixvQkFBb0IsRUFBRSxvQkFBb0I7S0FDM0M7SUFDRCxxQkFBcUIsRUFBRTtRQUNyQix5QkFBeUIsRUFBRSxnREFBZ0Q7UUFDM0UseUJBQXlCLEVBQUUsNkRBQTZEO1FBQ3hGLG9DQUFvQyxFQUFFLGdFQUFnRTtRQUN0RywyQkFBMkIsRUFBRSw0Q0FBNEM7UUFDekUsb0NBQW9DLEVBQUUsMERBQTBEO0tBQ2pHO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsZ0JBQWdCLEVBQUUsNEJBQTRCO1FBQzlDLG1CQUFtQixFQUFFLDBEQUEwRDtRQUMvRSxPQUFPLEVBQUUsb0NBQW9DO1FBQzdDLHVCQUF1QixFQUFFLGlEQUFpRDtRQUMxRSxTQUFTLEVBQUUsc0NBQXNDO1FBQ2pELFFBQVEsRUFBRSxxQ0FBcUM7UUFDL0MseUJBQXlCLEVBQUUsdUNBQXVDO1FBQ2xFLHlCQUF5QixFQUFFLGdEQUFnRDtRQUMzRSx5QkFBeUIsRUFBRSxnREFBZ0Q7UUFDM0UsV0FBVyxFQUFFLFdBQVc7UUFDeEIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsc0JBQXNCLEVBQUUsc0JBQXNCO1FBQzlDLG9CQUFvQixFQUFFLG9CQUFvQjtRQUMxQyxTQUFTLEVBQUUsU0FBUztRQUNwQixVQUFVLEVBQUUsVUFBVTtRQUN0QixPQUFPLEVBQUUsT0FBTztRQUNoQixNQUFNLEVBQUUsTUFBTTtRQUNkLE1BQU0sRUFBRSxNQUFNO1FBQ2QsdUJBQXVCLEVBQUUsdUJBQXVCO1FBQ2hELGFBQWEsRUFBRSxhQUFhO1FBQzVCLFdBQVcsRUFBRSxXQUFXO1FBQ3hCLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLFlBQVksRUFBRSxZQUFZO1FBQzFCLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLGFBQWEsRUFBRSxhQUFhO1FBQzVCLGNBQWMsRUFBRSxjQUFjO1FBQzlCLDBCQUEwQixFQUFFLDBCQUEwQjtRQUN0RCxLQUFLLEVBQUUsS0FBSztRQUNaLEtBQUssRUFBRSxLQUFLO1FBQ1osUUFBUSxFQUFFLFFBQVE7UUFDbEIsYUFBYSxFQUFFLGFBQWE7UUFDNUIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsT0FBTyxFQUFFLE9BQU87UUFDaEIsV0FBVyxFQUFFLFdBQVc7UUFDeEIsVUFBVSxFQUFFLFVBQVU7UUFDdEIsUUFBUSxFQUFFLFFBQVE7UUFDbEIsTUFBTSxFQUFFLE1BQU07UUFDZCxNQUFNLEVBQUUsTUFBTTtRQUNkLGFBQWEsRUFBRSxhQUFhO1FBQzVCLFlBQVksRUFBRSx5QkFBeUI7UUFDdkMsWUFBWSxFQUFFLHlCQUF5QjtRQUN2QyxPQUFPLEVBQUUscUJBQXFCO1FBQzlCLGVBQWUsRUFBRSx1QkFBdUI7UUFDeEMsY0FBYyxFQUFFLHFCQUFxQjtRQUNyQyxtQkFBbUIsRUFBRSxtQkFBbUI7UUFDeEMsYUFBYSxFQUFFLGFBQWE7UUFDNUIsVUFBVSxFQUFFLFVBQVU7UUFDdEIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsa0JBQWtCLEVBQUUsa0JBQWtCO1FBQ3RDLFdBQVcsRUFBRSwwQkFBMEI7UUFDdkMsWUFBWSxFQUFFLHdCQUF3QjtRQUN0QyxpQkFBaUIsRUFBRSxpQkFBaUI7UUFDcEMsaUJBQWlCLEVBQUUsaUJBQWlCO1FBQ3BDLGtCQUFrQixFQUFFLGtCQUFrQjtRQUN0QyxvQkFBb0IsRUFBRSxxQkFBcUI7S0FDNUM7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVuID0ge1xyXG4gIFwiUkVTVUxUU1wiOiBcIlJlc3VsdHNcIixcclxuICBcIlJPV19QRVJfUEFHRVwiOiBcIkl0ZW1zIHBlciBwYWdlXCIsXHJcbiAgXCJKVU1fVE9fUEFHRVwiOiBcIkdvIHRvIHBhZ2VcIixcclxuICBcIk1ZX0NPTVBPTkVOVFwiOiBcIk15IGNvbXBvbmVudFwiLFxyXG4gIFwiU0FWRV9CVVRUT05cIjogXCJTYXZlXCIsXHJcbiAgXCJDQU5DRUxfQlVUVE9OXCI6IFwiQ2FuY2VsXCIsXHJcbiAgXCJERUxFVEVfTUVTU0FHRV9DT01NRU5UXCI6IFwiVGhpcyBtZXNzYWdlIGhhcyBiZWVuIGRlbGV0ZWQuXCIsXHJcbiAgXCJSRUdSRVRcIjogXCJSZWdyZXRcIixcclxuICBcIkVESVRcIjogXCJFZGl0XCIsXHJcbiAgXCJERUxFVEVcIjogXCJEZWxldGVcIixcclxuICBcIlNBVkVcIjogXCJTYXZlXCIsXHJcbiAgXCJDQU5DRUxcIjogXCJDYW5jZWxcIixcclxuICBcIkVESVRfRklMRV9OQU1FXCI6IFwiRWRpdCBmaWxlIG5hbWVcIixcclxuICBcIkZJTEVfTkFNRVwiOiBcIkZpbGUgbmFtZVwiLFxyXG4gIFwiVVBMT0FEX0xFQVZFX1dBUk5JTkdcIjogXCJGaWxlcyB5b3UncmUgdXBsb2FkaW5nIG1heSBub3QgYmUgc2F2ZWQuXCIsXHJcbiAgXCJTT01FX0ZJTEVTX1dFUkVfTk9UX0FEREVEXCI6IFwiU29tZSBmaWxlcyB3ZXJlIG5vdCBhZGRlZFwiLFxyXG4gIFwiWU9VX0NBTl9PTkxZX0FERFwiOiBcIllvdSBjYW4gb25seSB1cGxvYWRcIixcclxuICBcIlNFTEVDVFwiOiBcIlNlbGVjdFwiLFxyXG4gIFwiUFJPQ0VTU0VTXCI6IFwiUHJvY2Vzc2VzXCIsXHJcbiAgXCJET0NVTUVOVFNcIjogXCJEb2N1bWVudHNcIixcclxuICBcIkRFVklBVElPTlwiOiBcIkNhdGVnb3JpZXNcIixcclxuICBcIkNIRUNLTElTVFwiOiBcIkNoZWNrbGlzdHNcIixcclxuICBcIkFTU0VTU01FTlRcIjogXCJBc3Nlc3NtZW50c1wiLFxyXG4gIFwiQUREXCI6IFwiQWRkXCIsXHJcbiAgXCJTRUFSQ0hcIjogXCJTZWFyY2hcIixcclxuICBcIlJFR1VMQVJfVElUTEVcIjogXCJXaGF0IGRvIHlvdSB3YW50IHRvIGluY2x1ZGUgaW4gdGhlIHJpc2sgYXNzZXNzbWVudChzKT9cIixcclxuICBcIkNBUFRJT05fVElUTEVcIjogXCJJbiBjYXVzYWwgYXNzZXNzbWVudHMsIGFsbCBjYXVzZXMgcmVsYXRlZCB0byB0aGUgZXZlbnQgYXJlIGF1dG9tYXRpY2FsbHkgYWRkZWQuXCIsXHJcbiAgXCJDQVVTQUxfQU5BTFlaRVNcIjogXCJTZWxlY3RlZCBBc3Nlc3NtZW50c1wiLFxyXG4gIFwiRklOSVNIRURcIjogXCJGaW5pc2hlZFwiLFxyXG4gIFwiUFJPQ0VTU19JRFwiOiBcIklEXCIsXHJcbiAgXCJET0NVTUVOVF9JRFwiOiBcIklEXCIsXHJcbiAgXCJQUk9DRVNTX0FSRUFcIjogXCJQcm9jZXNzIGFyZWFcIixcclxuICBcIkZPTERFUlwiOiBcIkZvbGRlclwiLFxyXG4gIFwiREVWSUFUSU9OX1RZUEVcIjogXCJEZXZpYXRpb24gdHlwZVwiLFxyXG4gIFwiQ0hFQ0tMSVNUX0NBVEVHT1JZXCI6IFwiQ2F0ZWdvcmllc1wiLFxyXG4gIFwiRVZFTlRcIjogXCJFdmVudFwiLFxyXG4gIFwiQVJFQV9PRl9JTVBBQ1RcIjogXCJDb25zZXF1ZW5jZSBBcmVhXCIsXHJcbiAgXCJSRVNVTFRcIjogXCJSZXN1bHRcIixcclxuICBcIk5PVF9BQ0NFUFRFRFwiOiBcIk5vdCBhY2NlcHRlZFwiLFxyXG4gIFwiTVVTVF9CRV9FVkFMVUFURURcIjogXCJNdXN0IGJlIGV2YWx1YXRlZFwiLFxyXG4gIFwiQUNDRVBURURcIjogXCJBY2NlcHRlZFwiLFxyXG4gIFwiQVJDSElWRURcIjogXCJBcmNoaXZlZFwiLFxyXG4gIFwiQ0FVU0VcIjogXCJDYXVzZVwiLFxyXG4gIFwiUEFHRVwiOiBcIlBhZ2VcIixcclxuICBcIk9GXCI6IFwib2ZcIixcclxuICBcIlJFUE9SVF9GT1JcIjogXCJSZXBvcnQgZm9yXCIsXHJcbiAgXCJTRUxFQ1RFRFwiOiBcIlNlbGVjdGVkXCIsXHJcbiAgXCJDSE9PU0VfQUxMXCI6IFwiQ2hvb3NlIGFsbFwiLFxyXG4gIFwiQlJFQURDUlVNQlwiOiBcIkJyZWFkY3J1bWJcIixcclxuICBcIk5BVklHQVRFX1RPXCI6IFwiTmF2aWdhdGUgdG9cIixcclxuICBcIkZJTEVfU0laRV9MSU1JVFwiOiBcIkZpbGUgc2l6ZSBsaW1pdFwiLFxyXG4gIFwiU1VQUE9SVEVEX0VYVEVOU0lPTlNcIjogXCJTdXBwb3J0ZWQgZXh0ZW5zaW9uc1wiLFxyXG4gIFwiRklMRVNfQVJFX05PVF9TVVBQT1JURURcIjogXCJGaWxlKHMpIGFyZSBub3Qgc3VwcG9ydGVkXCIsXHJcbiAgXCJGSUxFU19FWENFRURfVVBMT0FEX0xJTUlUXCI6IFwiRmlsZShzKSBleGNlZWQgdXBsb2FkIHNpemUgbGltaXRcIixcclxuICBcIlNFTEVDVF9BQ0NFU1NcIjogXCJTZWxlY3QgQWNjZXNzKGVzKVwiLFxyXG4gIFwiUEVSU09OXCI6IFwiUGVyc29uXCIsXHJcbiAgXCJVU0VSX0dST1VQXCI6IFwiVXNlciBHcm91cFwiLFxyXG4gIFwiREVQQVJUTUVOVFwiOiBcIkRlcGFydG1lbnRcIixcclxuICBcIlJPTEVcIjogXCJSb2xlXCIsXHJcbiAgXCJERVBBUlRNRU5UX1VOSVRcIjogXCJEZXBhcnRtZW50IC8gdW5pdFwiLFxyXG4gIFwiSU5DTFVERV9TVUJfREVQQVJUTUVOVFNcIjogXCJBdXRvbWF0aWNhbGx5IGluY2x1ZGUgc3ViLWRlcGFydG1lbnRzXCIsXHJcbiAgXCJOQU1FXCI6IFwiTmFtZVwiLFxyXG4gIFwiU0VBUkNIX1VTRVJfR1JPVVBcIjogXCJTZWFyY2ggdXNlciBncm91cFwiLFxyXG4gIFwiU0VBUkNIX0RFUEFSVE1FTlRfVU5JVFwiOiBcIlNlYXJjaCBkZXBhcnRtZW50IC8gdW5pdFwiLFxyXG4gIFwiRklMVEVSXCI6IFwiRmlsdGVyXCIsXHJcbiAgXCJUWVBFXCI6IFwiVHlwZVwiLFxyXG4gIFwiU0VBUkNIX1dJVEhfTkFNRVwiOiBcIlNlYXJjaCBmaXJzdCBhbmQgbGFzdCBuYW1lXCIsXHJcbiAgXCJSRVNVTFRfU0VBUkNIX0ZPUlwiOiBcIlJlc3VsdHMgc2VhcmNoIGZvciBcIixcclxuICBcIlRPT0xUSVBfSU5DTFVERV9TVUJfREVQQVJUTUVOVFwiOiBcInswfSAtIGluY2x1ZGUgezF9IHN1Yi1kZXBhcnRtZW50c1wiLFxyXG4gIFwiVE9PTFRJUF9JTkNMVURFX1NVQl9JVEVNXCI6IFwiezB9IC0gaW5jbHVkZSB7MX0gc3ViLWl0ZW1zXCIsXHJcbiAgXCJOT19SRVNVTFRcIjogXCJObyBSZXN1bHRcIixcclxuICBcIklURU1fTk9UX01BVENIX1RPX1RSRUVcIjogXCJUaGlzIGl0ZW0gbm90IG1hdGNoIHRoZSB0cmVlXCIsXHJcbiAgXCJFUlJPUlwiOiB7XHJcbiAgICBcIlNFTEVDVF9EQU5HRVJcIjogXCJZb3UgbXVzdCBzZWxlY3Qgb25lIG9yIG1vcmUgZXZlbnRzXCJcclxuICB9LFxyXG4gIFwiTUVTU0FHRVwiOiB7XHJcbiAgICBcIlBST0NFU1NFU19JTlwiOiBcIlByb2Nlc3NlcyBpblwiLFxyXG4gICAgXCJET0NVTUVOVFNfSU5cIjogXCJEb2N1bWVudHMgaW5cIlxyXG4gIH0sXHJcbiAgXCJTRUxFQ1RfSU5DTFVERV9DSElMRFwiOiBcIlNlbGVjdCBpbmNsdWRlIGNoaWxkcmVuXCIsXHJcbiAgXCJCQUNLX1RPX1RSRUVcIjogXCJCYWNrIHRvIHRyZWUgdmlld1wiLFxyXG4gIFwiR09UT19TRUFDSF9SRVNVTFRcIjogXCJHbyB0byB0aGUgc2VhcmNoIHJlc3VsdFwiLFxyXG4gIFwiUU1TQ0tFRElUT1JcIjoge1xyXG4gICAgXCJJRFwiOiBcIklEXCIsXHJcbiAgICBcIklORk9STUFUSU9OXCI6IFwiSW5mb3JtYXRpb25cIixcclxuICAgIFwiUkVNT1ZFX01BUFwiOiBcIlJlbW92ZSBNYXBcIixcclxuICAgIFwiSU1BR0VfTUFQX1BST1BFUlRJRVNcIjogXCJJbWFnZSBNYXAgUHJvcGVydGllc1wiLFxyXG4gICAgXCJJTlNFUlRfVE9PTFRJUFwiOiBcIkluc2VydCBhIHRvb2x0aXBcIixcclxuICAgIFwiQ09OVEVOVFwiOiBcIkNvbnRlbnRcIixcclxuICAgIFwiVEVNUExBVEVcIjogXCJUZW1wbGF0ZVwiLFxyXG4gICAgXCJDT05URU5UX1RFTVBMQVRFXCI6IFwiQ29udGVudCBUZW1wbGF0ZVwiLFxyXG4gICAgXCJDUkVBVEVfTkVXX1RFTVBMQVRFXCI6IFwiQ3JlYXRlIG5ldyB0ZW1wbGF0ZVwiLFxyXG4gICAgXCJVUERBVEVfVEVNUExBVEVcIjogXCJVcGRhdGUgdGVtcGxhdGVcIixcclxuICAgIFwiVElUTEVcIjogXCJUaXRsZVwiLFxyXG4gICAgXCJERVNDUklQVElPTlwiOiBcIkRlc2NyaXB0aW9uXCIsXHJcbiAgICBcIlNBVkVcIjogXCJTYXZlXCIsXHJcbiAgICBcIkNIT09TRV9URU1QTEFURVwiOiBcIlBsZWFzZSBzZWxlY3QgdGhlIHRlbXBsYXRlIHRvIG9wZW4gaW4gdGhlIGVkaXRvclwiLFxyXG4gICAgXCJSRVBMQUNFX0NPTlRFTlRcIjogXCJSZXBsYWNlIGFjdHVhbCBjb250ZW50c1wiLFxyXG4gICAgXCJTQVZFRFwiOiBcIlNhdmVkXCIsXHJcbiAgICBcIlNBVkVfRkFJTEVEXCI6IFwiU2F2ZSBmYWlsZWRcIixcclxuICAgIFwiREVMRVRFXCI6IFwiRGVsZXRlXCIsXHJcbiAgICBcIkRFTEVURURcIjogXCJEZWxldGVkXCIsXHJcbiAgICBcIkRFTEVURV9GQUlMRURcIjogXCJEZWxldGUgZmFpbGVkXCIsXHJcbiAgICBcIkRFTEVURV9URU1QTEFURVwiOiBcIkRlbGV0ZSB0ZW1wbGF0ZVwiLFxyXG4gICAgXCJDSEFOR0VfVEVNUExBVEVcIjogXCJDaGFuZ2UgdGVtcGxhdGVcIixcclxuICAgIFwiQ0FOQ0VMXCI6IFwiQ2FuY2VsXCIsXHJcbiAgICBcIkxJTktcIjogXCJMaW5rXCIsXHJcbiAgICBcIkxJTktfVFlQRVwiOiBcIkxpbmsgdHlwZVwiLFxyXG4gICAgXCJaT09NXCI6IFwiWm9vbVwiLFxyXG4gICAgXCJMSU5LX1VSTFwiOiBcIlVSTFwiLFxyXG4gICAgXCJMSU5LX0FOQ0hPUl9JTl9URVhUXCI6IFwiTGluayB0byBhbmNob3IgaW4gdGhlIHRleHRcIixcclxuICAgIFwiTElOS19FTUFJTFwiOiBcIkVtYWlsXCIsXHJcbiAgICBcIkxJTktfQU5DSE9SX0RPQ1VNRU5UXCI6IFwiQW5jaG9yIGluIG90aGVyIGRvY3VtZW50XCIsXHJcbiAgICBcIlRBUkdFVFwiOiBcIlRhcmdldFwiLFxyXG4gICAgXCJUQVJUR0VUX05FV1wiOiBcIk5ldyBXaW5kb3cgKF9ibGFuaylcIixcclxuICAgIFwiVEFSR0VUX1RPUE1PU1RcIjogXCJUb3Btb3N0IFdpbmRvdyAoX3RvcClcIixcclxuICAgIFwiVEFSR0VUX1NBTUVcIjogXCJTYW1lIFdpbmRvdyAoX3NlbGYpXCIsXHJcbiAgICBcIlRBUkdFVF9QQVJFTlRcIjogXCJQYXJlbnQgV2luZG93IChfcGFyZW50KVwiLFxyXG4gICAgXCJQUk9UT0NPTFwiOiBcIlByb3RvY29sXCIsXHJcbiAgICBcIlBST1RPQ09MX0hUVFBcIjogXCJodHRwOi8vXCIsXHJcbiAgICBcIlBST1RPQ09MX0hUVFBTXCI6IFwiaHR0cHM6Ly9cIixcclxuICAgIFwiUFJPVE9DT0xfRlRQXCI6IFwiZnRwOi8vXCIsXHJcbiAgICBcIlBST1RPQ09MX05FV1wiOiBcIm5ld3M6Ly9cIixcclxuICAgIFwiUFJPVE9DT0xfT1RIRVJcIjogXCI8b3RoZXI+XCIsXHJcbiAgICBcIkFEVklTT1JZX1RJVExFXCI6IFwiQWR2aXNvcnkgVGl0bGVcIixcclxuICAgIFwiSEFOREJPT0tcIjogXCJlSGFuZGJvb2tcIixcclxuICAgIFwiQVRUQUNITUVOVFwiOiBcIkF0dGFjaG1lbnRcIixcclxuICAgIFwiT0tcIjogXCJPa1wiLFxyXG4gICAgXCJVUkxfSEVBREVSXCI6IFwiVVJMIGluZm9ybWF0aW9uXCIsXHJcbiAgICBcIkFOQ0hPUl9URVhUX0hFQURFUlwiOiBcIlNlbGVjdCBhbiBBbmNob3JcIixcclxuICAgIFwiQU5DSE9SX0JZX05BTUVcIjogXCJBbmNob3IgYnkgbmFtZVwiLFxyXG4gICAgXCJFTUFJTF9IRUFERVJcIjogXCJFbWFpbCBpbmZvcm1hdGlvblwiLFxyXG4gICAgXCJFTUFJTF9BRERSRVNTXCI6IFwiQWRkcmVzc1wiLFxyXG4gICAgXCJFTUFJTF9TVUJKRUNUXCI6IFwiU3ViamVjdFwiLFxyXG4gICAgXCJFTUFJTF9CT0RZXCI6IFwiQm9keVwiLFxyXG4gICAgXCJBTkNIT1JfQVRUQUNITUVOVFwiOiBcIkF0dGFjaG1lbnRzXCIsXHJcbiAgICBcIkFOQ0hPUl9SRUxBVEVEX0RPQ1VNRU5UXCI6IFwiUmVsYXRlZCBkb2N1bWVudFwiLFxyXG4gICAgXCJBRERfRE9DVU1FTlRfUFJPQ0VTU1wiOiBcIkFkZCBkb2N1bWVudCAvIHByb2Nlc3NcIixcclxuICAgIFwiQUREX0RPQ1VNRU5UXCI6IFwiQWRkIGRvY3VtZW50XCIsXHJcbiAgICBcIkFERFwiOiBcIkFkZFwiLFxyXG4gICAgXCJQUk9DRVNTRVNcIjogXCJQcm9jZXNzZXNcIixcclxuICAgIFwiRE9DVU1FTlRTXCI6IFwiRG9jdW1lbnRzXCIsXHJcbiAgICBcIlVQREFURVwiOiBcIlVwZGF0ZVwiLFxyXG4gICAgXCJET0NVTUVOVFwiOiBcIkRvY3VtZW50XCIsXHJcbiAgICBcIkNPTkZJUk1cIjogXCJDb25maXJtXCIsXHJcbiAgICBcIlNFQVJDSFwiOiBcIlNlYXJjaFwiLFxyXG4gICAgXCJJTUFHRV9NT0RFX1BPSU5URVJcIjogXCJQb2ludGVyXCIsXHJcbiAgICBcIklNQUdFX01PREVfUkVDVEFOR0xFXCI6IFwiUmVjdGFuZ2xlXCIsXHJcbiAgICBcIklNQUdFX01PREVfQ0lSQ0xFXCI6IFwiQ2lyY2xlXCIsXHJcbiAgICBcIklNQUdFX01PREVfUE9MWUdPTlwiOiBcIlBvbHlnb25cIixcclxuICAgIFwiSU1BR0VfTU9ERV9SRU1PVkVcIjogXCJSZW1vdmVcIixcclxuICAgIFwiUE9MWUdPTl9EUkFXXCI6IFwiVXNlIFNISUZUICsgY2xpY2sgZm9yIHRoZSBsYXN0IGNvbnRyb2wgcG9pbnRcIixcclxuICAgIFwiUkVDVEFOR0xFX0RSQVdcIjogXCJIb2xkIGRvd24gU0hJRlQgZm9yIHNxdWFyZSBtb2RlXCIsXHJcbiAgICBcIlNRVUFSRV9EUkFXXCI6IFwiUmVsZWFzZSBTSElGVCBmb3IgcmVjdGFuZ2xlIG1vZGVcIixcclxuICAgIFwiSU5WQUxJRF9VUkxcIjogXCJJbnZhbGlkIFVSTFwiLFxyXG4gICAgXCJSRVFVSVJFRF9VUkxcIjogXCJVUkwgaXMgcmVxdWlyZWRcIixcclxuICAgIFwiQ0xPU0VcIjogXCJDbG9zZVwiLFxyXG4gICAgXCJET0NVTUVOVF9QUk9DRVNTXCI6IFwiRG9jdW1lbnQgLyBQcm9jZXNzXCIsXHJcbiAgICBcIlVQTE9BRF9GSUxFX05PVF9WQUxJRF9GT1JNQVRcIjogXCJUaGUgZmlsZSB1cGxvYWRlZCBpcyBpbnZhbGlkIGZvcm1hdC4gU3VwcG9ydGVkIGZpbGUgZm9ybWF0czogezB9XCIsXHJcbiAgICBcIlVQTE9BRF9GSUxFX09WRVJTSVpFXCI6IFwiVGhlIGZpbGUgdXBsb2FkZWQgaXMgb3ZlciB0aGUgbGltaXQgc2l6ZS4gVGhlIGxpbWl0IHNpemUgaXMgezB9TUJcIixcclxuICAgIFwiVVBMT0FEX0ZJTEVfRkFJTEVEXCI6IFwiRmFpbGVkIHRvIHVwbG9hZCBmaWxlLlwiLFxyXG4gICAgXCJBU1NJU1RJVkVfVEVYVFwiOiBcIkFzc2lzdGl2ZSB0ZXh0XCIsXHJcbiAgICBcIldPUkRTXCI6IFwiV29yZHNcIixcclxuICAgIFwiQ0hBUkFDVEVSU1wiOiBcIkNoYXJhY3RlcnNcIixcclxuICAgIFwiU0VMRUNUX1ZJREVPX0ZST01fQVJDSElWRVwiOiBcIlNlbGVjdCB2aWRlbyBmcm9tIHRoZSBhcmNoaXZlXCIsXHJcbiAgICBcIlNFTEVDVF9WSURFT19JTUFHRVwiOiBcIlNlbGVjdCB2aWRlbyBpbWFnZVwiLFxyXG4gICAgXCJET0NVTUVOVF9IRUFERVJcIjogXCJEb2N1bWVudCBpbmZvcm1hdGlvblwiLFxyXG4gICAgXCJBRERfSU1BR0VcIjogXCJBZGQgaW1hZ2VcIixcclxuICAgIFwiSU1BR0VfSU5GT1wiOiBcIkltYWdlIEluZm9cIlxyXG4gIH0sXHJcbiAgXCJBQk9VVFwiOiB7XHJcbiAgICBcIkFCT1VUX0NLRURJVE9SXCI6IFwiQWJvdXQgQ0tFZGl0b3JcIixcclxuICAgIFwiQ0tFRElUT1I1X1ZFUlNJT05cIjogXCJDS0VkaXRvciA1IHZlcnNpb25cIixcclxuICAgIFwiRk9SX0xJQ0VOU0lOR19JTkZPUk1BVElPTl9QTEVBU0VfVklTSVRfT1VSX1dFQlNJVEVcIjogXCJGb3IgbGljZW5zaW5nIGluZm9ybWF0aW9uIHBsZWFzZSB2aXNpdCBvdXIgd2Vic2l0ZVwiLFxyXG4gICAgXCJBTExfUklHSFRTX1JFU0VSVkVEXCI6IFwiQWxsIHJpZ2h0cyByZXNlcnZlZFwiLFxyXG4gICAgXCJDSEVDS1wiOiBcIkNoZWNrXCIsXHJcbiAgICBcIkZPUl9IRUxQXCI6IFwiZm9yIGhlbHBcIixcclxuICAgIFwiQ0tFRElUT1JfVVNFUlNfR1VJREVcIjogXCJDS0VkaXRvciBVc2VyJ3MgR3VpZGVcIixcclxuICAgIFwiQ09QWVJJR0hUXCI6IFwiQ29weXJpZ2h0IMKpXCJcclxuICB9LFxyXG4gIFwiQlBNTlwiOiB7XHJcbiAgICBcIkRFRkFVTFRcIjogXCJEZWZhdWx0XCIsXHJcbiAgICBcIlRZUEVcIjogXCJUeXBlXCIsXHJcbiAgICBcIk5BTUVcIjogXCJOYW1lXCIsXHJcbiAgICBcIkVYQ0xVU0lWRVwiOiBcIkV4Y2x1c2l2ZVwiLFxyXG4gICAgXCJJTkNMVVNJVkVcIjogXCJJbmNsdXNpdmVcIixcclxuICAgIFwiUEFSQUxMRUxcIjogXCJQYXJhbGxlbFwiLFxyXG4gICAgXCJBUFBFQVJBTkNFXCI6IFwiYXBwZWFyYW5jZVwiLFxyXG4gICAgXCJCT0RZX0NPTE9SXCI6IFwiQm9keSBjb2xvclwiLFxyXG4gICAgXCJURVhUX0FMSUdOTUVOVFwiOiBcIlRleHQgQWxpZ25tZW50XCIsXHJcbiAgICBcIkxFRlRcIjogXCJMZWZ0XCIsXHJcbiAgICBcIkNFTlRFUlwiOiBcIkNlbnRlclwiLFxyXG4gICAgXCJSSUdIVFwiOiBcIlJpZ2h0XCIsXHJcbiAgICBcIkZPTlRfRkFNSUxZXCI6IFwiRm9udCBmYW1pbHlcIixcclxuICAgIFwiRk9OVF9TSVpFXCI6IFwiRm9udCBzaXplXCIsXHJcbiAgICBcIkNPTlRFTlRcIjogXCJDb250ZW50XCIsXHJcbiAgICBcIklDT05cIjogXCJJY29uXCIsXHJcbiAgICBcIk5PTkVcIjogXCJOb25lXCIsXHJcbiAgICBcIk1FU1NBR0VcIjogXCJNZXNzYWdlXCIsXHJcbiAgICBcIlVTRVJcIjogXCJVc2VyXCIsXHJcbiAgICBcIlRBU0tcIjogXCJUYXNrXCIsXHJcbiAgICBcIlRSQU5TQUNUSU9OXCI6IFwiVHJhbnNhY3Rpb25cIixcclxuICAgIFwiRVZFTlRfU1VCX1BST0NFU1NcIjogXCJldmVudC1zdWItcHJvY2Vzc1wiLFxyXG4gICAgXCJDQUxMX0FDVElWSVRZXCI6IFwiY2FsbC1hY3Rpdml0eVwiLFxyXG4gICAgXCJTVUJfUFJPQ0VTU1wiOiBcIlN1Yi1wcm9jZXNzXCIsXHJcbiAgICBcIlNUQVJUXCI6IFwiU3RhcnRcIixcclxuICAgIFwiRU5EXCI6IFwiRW5kXCIsXHJcbiAgICBcIklOVEVSTUVESUFURVwiOiBcIkludGVybWVkaWF0ZVwiLFxyXG4gICAgXCJDQU5DRUxcIjogXCJDYW5jZWxcIixcclxuICAgIFwiQ0FOQ0VMX09VTElORURcIjogXCJDYW5jZWwgb3VsaW5lZFwiLFxyXG4gICAgXCJDQU5DRUxfRklMTEVEXCI6IFwiQ2FuY2VsIGZpbGxlZFwiLFxyXG4gICAgXCJDT01QRU5TQVRJT05fT1VMSU5FRFwiOiBcIkNvbXBlbnNhdGlvbiBvdWxpbmVkXCIsXHJcbiAgICBcIkNPTVBFTlNBVElPTl9GSUxMRURcIjogXCJDb21wZW5zYXRpb24gZmlsbGVkXCIsXHJcbiAgICBcIkNPTkRJVElPTkFMXCI6IFwiQ29uZGl0aW9uYWxcIixcclxuICAgIFwiRVJST1JfT1VMSU5FRFwiOiBcIkVycm9yIG91bGluZWRcIixcclxuICAgIFwiRVJST1JfRklMTEVEXCI6IFwiRXJyb3IgZmlsbGVkXCIsXHJcbiAgICBcIkVTQ0FMQVRJT05fT1VMSU5FRFwiOiBcIkVzY2FsYXRpb24gb3VsaW5lZFwiLFxyXG4gICAgXCJFU0NBTEFUSU9OX0ZJTExFRFwiOiBcIkVzY2FsYXRpb24gZmlsbGVkXCIsXHJcbiAgICBcIkxJTktfT1VMSU5FRFwiOiBcIkxpbmsgb3VsaW5lZFwiLFxyXG4gICAgXCJMSU5LX0ZJTExFRFwiOiBcIkxpbmsgZmlsbGVkXCIsXHJcbiAgICBcIk1FU1NBR0VfT1VMSU5FRFwiOiBcIk1lc3NhZ2Ugb3VsaW5lZFwiLFxyXG4gICAgXCJNRVNTQUdFX0ZJTExFRFwiOiBcIk1lc3NhZ2UgZmlsbGVkXCIsXHJcbiAgICBcIk1VTFRJUExFX09VTElORURcIjogXCJNdWx0aXBsZSBvdWxpbmVkXCIsXHJcbiAgICBcIk1VTFRJUExFX0ZJTExFRFwiOiBcIk11bHRpcGxlIGZpbGxlZFwiLFxyXG4gICAgXCJQQVJBTExFTF9NVUxUSVBMRVwiOiBcIlBhcmFsbGVsIG11bHRpcGxlXCIsXHJcbiAgICBcIlRFUk1JTkFUSU9OX09VTElORURcIjogXCJUZXJtaW5hdGlvbiBvdWxpbmVkXCIsXHJcbiAgICBcIlRFUk1JTkFUSU9OX0ZJTExFRFwiOiBcIlRlcm1pbmF0aW9uIGZpbGxlZFwiLFxyXG4gICAgXCJUSU1FUlwiOiBcIlRpbWVyXCIsXHJcbiAgICBcIlNJR05BTF9PVUxJTkVEXCI6IFwiU2lnbmFsIG91bGluZWRcIixcclxuICAgIFwiU0lHTkFMX0ZJTExFRFwiOiBcIlNpZ25hbCBmaWxsZWRcIixcclxuICAgIFwiUEFSQUxMRUxfT1VMSU5FRFwiOiBcIlBhcmFsbGVsIG91bGluZWRcIixcclxuICAgIFwiUEFSQUxMRUxfRklMTEVEXCI6IFwiUGFyYWxsZWwgZmlsbGVkXCIsXHJcbiAgICBcIlNVQl9UWVBFXCI6IFwiU3VidHlwZVwiLFxyXG4gICAgXCJUUkFOU1BBUkVOQ1lcIjogXCJUcmFuc3BhcmVuY3lcIixcclxuICAgIFwiTEFCRUxcIjogXCJMYWJlbFwiLFxyXG4gICAgXCJURVhUXCI6IFwiVGV4dFwiLFxyXG4gICAgXCJQT1NJVElPTlwiOiBcIlBvc2l0aW9uXCIsXHJcbiAgICBcIkxBQkVMU1wiOiBcIkxhYmVsc1wiLFxyXG4gICAgXCJOT1JNQUxcIjogXCJOb3JtYWxcIixcclxuICAgIFwiQVNTT0NJQVRJT05cIjogXCJBc3NvY2lhdGlvblwiLFxyXG4gICAgXCJDT05WRVJTQVRJT05cIjogXCJDb252ZXJzYXRpb25cIixcclxuICAgIFwiUEFSVElDUEFOVFNcIjogXCJQYXJ0aWNwYW50c1wiLFxyXG4gICAgXCJJTklUSUFUSU5HX1BBUlRJQ0lQQU5UXCI6IFwiSW5pdGlhdGluZyBQYXJ0aWNpcGFudFwiLFxyXG4gICAgXCJQUklNQVJZX0NPTE9SXCI6IFwiUHJpbWFyeSBDb2xvclwiLFxyXG4gICAgXCJTRUNPTkRBUllfQ09MT1JcIjogXCJTZWNvbmRhcnkgQ29sb3JcIixcclxuICAgIFwiQ0FMTC1DT05WRVJTQVRJT05cIjogXCJDYWxsLWNvbnZlcnNhdGlvblwiLFxyXG4gICAgXCJBRERfTEFORVNcIjogXCJBZGQgbGFuZXNcIixcclxuICAgIFwiUEVSQ0VOVEFHRVwiOiBcIlBlcmNlbnRhZ2VcIixcclxuICAgIFwiQUREX1NVQkxBTkVTXCI6IFwiQWRkIHN1YmxhbmVzXCIsXHJcbiAgICBcIkhFQURFUl9DT0xPUlwiOiBcIkhlYWRlciBDb2xvclwiLFxyXG4gICAgXCJMQU5FX0JPRFlfQ09MT1JcIjogXCJMYW5lIEJvZHkgQ29sb3JcIixcclxuICAgIFwiTEFORV9IRUFERVJfQ09MT1JcIjogXCJMYW5lIEhlYWRlciBDb2xvclwiLFxyXG4gICAgXCJPUEVOX0FfUFJJTlRfRElBTE9HXCI6IFwiT3BlbiBhIFByaW50IERpYWxvZ1wiLFxyXG4gICAgXCJPUEVOX0FTX0pTT05cIjogXCJPcGVuIEFzIEpTT05cIixcclxuICAgIFwiWk9PTV9JTlwiOiBcIlpvb20gSW5cIixcclxuICAgIFwiWk9PTV9PVVRcIjogXCJab29tIE91dFwiLFxyXG4gICAgXCJaT09NX1RPX0ZJVFwiOiBcIlpvb20gVG8gRml0XCIsXHJcbiAgICBcIlNFTkRfVE9fRlJPTlRcIjogXCJTZW50IFRvIEZyb250XCIsXHJcbiAgICBcIkJSSU5HX09CSkVDVF9UT19GUk9OVFwiOiBcIkJyaW5nIE9iamVjdCB0byBGcm9udFwiLFxyXG4gICAgXCJTRU5EX1RPX0JBQ0tcIjogXCJTZW50IFRvIEJhY2tcIixcclxuICAgIFwiQlJJTkdfT0JKRUNUX1RPX0JBQ0tcIjogXCJTZW5kIE9iamVjdCB0byBCYWNrXCIsXHJcbiAgICBcIkNMRUFSX1BBUEVSXCI6IFwiQ2xlYXIgUGFwZXJcIixcclxuICAgIFwiVU5ET1wiOiBcIlVuZG9cIixcclxuICAgIFwiUkVET1wiOiBcIlJlZG9cIixcclxuICAgIFwiU0VMRUNUX1RFTVBMQVRFXCI6IFwiU2VsZWN0IHRlbXBsYXRlXCIsXHJcbiAgICBcIkRFTEVURV9URU1QTEFURVwiOiBcIkRlbGV0ZSB0ZW1wbGF0ZVwiLFxyXG4gICAgXCJTQVZFX0FTX1RFTVBMQVRFXCI6IFwiU2F2ZSBhcyB0ZW1wbGF0ZVwiLFxyXG4gICAgXCJSRVNFVF9UT19MQVNUX1NBVkVcIjogXCJSZXNldCB0byBsYXN0IHNhdmVkXCIsXHJcbiAgICBcIkdSSURfU0laRVwiOiBcIkdyaWQgc2l6ZVwiLFxyXG4gICAgXCJDSEFOR0VfR1JJRF9TSVpFXCI6IFwiQ2hhbmdlIGdyaWQgc2l6ZVwiLFxyXG4gICAgXCJTTkFQTElORVNcIjogXCJTbmFwbGluZXM6XCIsXHJcbiAgICBcIkVOQUJMRV9ESVNBQkxFX1NOQVBMSU5FU1wiOiBcIkVuYWJsZS9EaXNhYmxlIFNuYXBsaW5lc1wiLFxyXG4gICAgXCJMSU5FX0NPTE9SXCI6IFwiTGluZSBDb2xvclwiLFxyXG4gICAgXCJCT0RZX0xJTkVfQ09MT1JcIjogXCJCb2R5IExpbmUgQ29sb3JcIixcclxuICAgIFwiVFlQRV9DT0xPUlwiOiBcIlR5cGUgQ29sb3JcIixcclxuICAgIFwiTUFSS0VSXCI6IFwiTWFya2Vyc1wiLFxyXG4gICAgXCJNQVJLRVJfQ09MT1JcIjogXCJNYXJrZXJzIENvbG9yXCIsXHJcbiAgICBcIlRPUF9DT0xPUlwiOiBcIk1hcmtlcnMgQ29sb3JcIixcclxuICAgIFwiVE9QX0xJTkVfQ09MT1JcIjogXCJUb3AgTGluZSBDb2xvclwiLFxyXG4gICAgXCJDT0xMRUNUSU9OXCI6IFwiQ29sbGVjdGlvblwiLFxyXG4gICAgXCJDT0xMRUNUSU9OX0NPTE9SXCI6IFwiQ29sbGVjdGlvbiBDb2xvclwiLFxyXG4gICAgXCJTSVpFXCI6IFwiU2l6ZVwiLFxyXG4gICAgXCJIRUFERVJfU0laRVwiOiBcIkhlYWRlciBTaXplXCIsXHJcbiAgICBcIkhFQURFUlwiOiBcIkhlYWRlclwiLFxyXG4gICAgXCJIRUFERVJfU1RST0tFX0NPTE9SXCI6IFwiSGVhZGVyIHN0cm9rZSBjb2xvclwiLFxyXG4gICAgXCJIRUFERVJfTEFCRUxfQ09MT1JcIjogXCJIZWFkZXIgbGFiZWwgY29sb3JcIixcclxuICAgIFwiTEFORV9TVFJPS0VfQ09MT1JcIjogXCJMYW5lIFN0cm9rZSBDb2xvclwiLFxyXG4gICAgXCJMQU5FX0hFQURFUl9TVFJPS0VcIjogXCJMYW5lIEhlYWRlciBTdHJva2VcIixcclxuICAgIFwiTEFORV9MQUJFTF9DT0xPUlwiOiBcIkxhbmUgTGFiZWwgQ29sb3JcIixcclxuICAgIFwiTUlMRVNUT05FX0hFQURFUl9GSUxMXCI6IFwiTWlsZXN0b25lIEhlYWRlciBGaWxsXCIsXHJcbiAgICBcIk1JTEVTVE9ORV9TVFJPS0VcIjogXCJNaWxlc3RvbmUgU3Ryb2tlXCIsXHJcbiAgICBcIk1JTEVTVE9ORV9MQUJFTF9DT0xPUlwiOiBcIk1pbGVzdG9uZSBMYWJlbCBDb2xvclwiLFxyXG4gICAgXCJNSUxFU1RPTkVfTElORV9DT0xPUlwiOiBcIk1pbGVzdG9uZSBMaW5lIENvbG9yXCIsXHJcbiAgICBcIkhFQURFUl9BTElHTk1FTlRcIjogXCJIZWFkZXIgQWxpZ25tZW50XCIsXHJcbiAgICBcIkhFQURFUl9GT05UX0ZBTUlMWVwiOiBcIkhlYWRlciBGb250IGZhbWlseVwiLFxyXG4gICAgXCJIRUFERVJfRk9OVF9TSVpFXCI6IFwiSGVhZGVyIEZvbnQgc2l6ZVwiLFxyXG4gICAgXCJMQU5FX0FMSUdOTUVOVFwiOiBcIkxhbmUgQWxpZ25tZW50XCIsXHJcbiAgICBcIkxBTkVfRk9OVF9GQU1JTFlcIjogXCJMYW5lIEZvbnQgZmFtaWx5XCIsXHJcbiAgICBcIkxBTkVfRk9OVF9TSVpFXCI6IFwiTGFuZSBGb250IHNpemVcIixcclxuICAgIFwiTUlMRVNUT05FX0FMSUdOTUVOVFwiOiBcIk1pbGVzdG9uZSBBbGlnbm1lbnRcIixcclxuICAgIFwiTUlMRVNUT05FX0ZPTlRfRkFNSUxZXCI6IFwiTWlsZXN0b25lIEZvbnQgZmFtaWx5XCIsXHJcbiAgICBcIk1JTEVTVE9ORV9GT05UX1NJWkVcIjogXCJNaWxlc3RvbmUgRm9udCBzaXplXCIsXHJcbiAgICBcIlRFWFRfQ09MT1JcIjogXCJUZXh0IGNvbG9yXCIsXHJcbiAgICBcIlRFWFRfSEVBREVSX0NPTE9SXCI6IFwiSGVhZGVyIHRleHQgY29sb3JcIixcclxuICAgIFwiVEVYVF9CQUNLR1JPVU5EX0NPTE9SXCI6IFwiQmFja2dyb3VuZCB0ZXh0IGNvbG9yXCIsXHJcbiAgICBcIlRFWFRfSU5TSURFX1NIQVBFXCI6IFwiU2hvdyB0ZXh0IGluc2lkZSBzaGFwZVwiLFxyXG4gICAgXCJURU1QTEFURV9OQU1FXCI6IFwiVGVtcGxhdGUgbmFtZVwiLFxyXG4gICAgXCJURU1QTEFURV9JTkZPXCI6IFwiUGxlYXNlIGlucHV0IHRlbXBsYXRlIG5hbWVcIixcclxuICAgIFwiU0VMRUNUX1RFTVBMQVRFX0lORk9STUFUSU9OXCI6IFwiWW91IG11c3Qgc2VsZWN0IGEgdGVtcGxhdGUgYmVmb3JlIHlvdSBkbyB0aGlzIGFjdGlvbi5cIixcclxuICAgIFwiQ09OTkVDVElPTlwiOiBcIkNvbm5lY3Rpb25cIixcclxuICAgIFwiUFJPUEVSVElFU1wiOiBcIlByb3BlcnRpZXNcIixcclxuICAgIFwiQlVTSU5FU1NfUFJPQ0VTU19NT0RFTF9BTkRfTk9UQVRJT05cIjogXCJCdXNpbmVzcyBQcm9jZXNzIE1vZGVsIGFuZCBOb3RhdGlvblwiLFxyXG4gICAgXCJDT05ORUNURURfQVRUQUNITUVOVFwiOiBcIkNvbm5lY3RlZCBhdHRhY2htZW50XCIsXHJcbiAgICBcIkNPTk5FQ1RFRF9ET0NVTUVOVF9PUl9QUk9DRVNTXCI6IFwiQ29ubmVjdGVkIGRvY3VtZW50IC8gcHJvY2Vzc1wiLFxyXG4gICAgXCJERUxFVEVfQVRUQUNITUVOVFwiOiBcIkRlbGV0ZSBhdHRhY2htZW50XCIsXHJcbiAgICBcIkRFTEVURV9ET0NVTUVOVF9PUl9QUk9DRVNTXCI6IFwiRGVsZXRlIGRvY3VtZW50IC8gcHJvY2Vzc1wiLFxyXG4gICAgXCJDSE9PU0VfQU5DSE9SX0lOX1RFWFRfT1BUSU9OQUxcIjogXCJDaG9vc2UgYW5jaG9yIGluIGluIHRleHQgKG9wdGlvbmFsKVwiLFxyXG4gICAgXCJSRUxPQURfQU5DSE9SU1wiOiBcIlJlbG9hZCBBbmNob3JzXCIsXHJcbiAgICBcIlJFU0VUX1RPX09SSUdJTkFMXCI6IFwiUmVzZXQgdG8gb3JpZ2luYWxcIixcclxuICAgIFwiQVVUT19MQVlPVVRfR1JBUEhcIjogXCJBdXRvLWxheW91dCBHcmFwaFwiLFxyXG4gICAgXCJGVUxMU0NSRUVOXCI6IFwiRnVsbHNjcmVlblwiLFxyXG4gICAgXCJGTE9XQ0hBUlRcIjogXCJGbG93Y2hhcnRcIixcclxuICAgIFwiSEFOREJPT0tcIjogXCJIYW5kYm9va1wiLFxyXG4gICAgXCJUT0dHTEVfRlVMTF9TQ1JFRU5cIjogXCJUb2dnbGUgZnVsbCBzY3JlZW5cIixcclxuICB9LFxyXG4gIFwiUU1TQ0tFRElUT1JfTUVTU0FHRVwiOiB7XHJcbiAgICBcIkNPTkZJUk1fREVMRVRFX1RFTVBMQVRFXCI6IFwiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIHRlbXBsYXRlP1wiLFxyXG4gICAgXCJDT05GSVJNX0NIQU5HRV9URU1QTEFURVwiOiBcIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBhcHBseSB0aGlzIHRlbXBsYXRlIHRvIHRoZSBlZGl0b3I/XCIsXHJcbiAgICBcIkNPTkZJUk1fREVMRVRFX0VYSVNUSU5HX0NPTk5FQ1RJT05cIjogXCJZb3UgbXVzdCByZW1vdmUgZXhpc3RpbmcgY29ubmVjdGlvbiBiZWZvcmUgeW91IGRvIHRoaXMgYWN0aW9uLlwiLFxyXG4gICAgXCJDT05GSVJNX0RFTEVURV9BVFRBQ0hNRU5UXCI6IFwiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGxpbms/XCIsXHJcbiAgICBcIkNPTkZJUk1fREVMRVRFX0RPQ1VNRU5UX09SX1BST0NFU1NcIjogXCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgZG9jdW1lbnQgLyBwcm9jZXNzP1wiLFxyXG4gIH0sXHJcbiAgXCJGTE9XQ0hBUlRcIjoge1xyXG4gICAgXCJSRU1PVkVfRUxFTUVOVFwiOiAnQ2xpY2sgdG8gcmVtb3ZlIHRoZSBvYmplY3QnLFxyXG4gICAgXCJDTE9ORV9BTkRfQ09OTkVDVFwiOiAnQ2xpY2sgYW5kIGRyYWcgdG8gY2xvbmUgYW5kIGNvbm5lY3QgdGhlIG9iamVjdCBpbiBvbmUgZ28nLFxyXG4gICAgXCJDTE9ORVwiOiAnQ2xpY2sgYW5kIGRyYWcgdG8gY2xvbmUgdGhlIG9iamVjdCcsXHJcbiAgICBcIkJSRUFLX0FMTF9DT05ORUNUSU9OU1wiOiAnQ2xpY2sgdG8gYnJlYWsgYWxsIGNvbm5lY3Rpb25zIHRvIG90aGVyIG9iamVjdHMnLFxyXG4gICAgXCJDT05ORUNUXCI6ICdDbGljayBhbmQgZHJhZyB0byBjb25uZWN0IHRoZSBvYmplY3QnLFxyXG4gICAgXCJST1RBVEVcIjogJ0NsaWNrIGFuZCBkcmFnIHRvIHJvdGF0ZSB0aGUgb2JqZWN0JyxcclxuICAgIFwiUkVNT1ZFX1NFTEVDVEVEX0VMRU1FTlRcIjogJ0NsaWNrIHRvIHJlbW92ZSB0aGUgc2VsZWN0ZWQgZWxlbWVudHMnLFxyXG4gICAgXCJST1RBVEVfU0VMRUNURURfRUxFTUVOVFwiOiAnQ2xpY2sgYW5kIGRyYWcgdG8gcm90YXRlIHRoZSBzZWxlY3RlZCBlbGVtZW50cycsXHJcbiAgICBcIlJFU0laRV9TRUxFQ1RFRF9FTEVNRU5UXCI6ICdDbGljayBhbmQgZHJhZyB0byByZXNpemUgdGhlIHNlbGVjdGVkIGVsZW1lbnRzJyxcclxuICAgIFwiUkVDVEFOR0xFXCI6ICdSZWN0YW5nbGUnLFxyXG4gICAgXCJFTExJUFNFXCI6ICdFbGxpcHNlJyxcclxuICAgIFwiUkVDVEFOR0xFX1dJVEhfUE9SVFNcIjogJ1JlY3RhbmdsZSB3aXRoIHBvcnRzJyxcclxuICAgIFwiRUxMSVBTRV9XSVRIX1BPUlRTXCI6ICdFbGxpcHNlIHdpdGggcG9ydHMnLFxyXG4gICAgXCJSSE9NQlVTXCI6ICdSaG9tYnVzJyxcclxuICAgIFwiQ1lMSU5ERVJcIjogJ0N5bGluZGVyJyxcclxuICAgIFwiSU1BR0VcIjogJ0ltYWdlJyxcclxuICAgIFwiQ0FSRFwiOiAnQ2FyZCcsXHJcbiAgICBcIklDT05cIjogJ0ljb24nLFxyXG4gICAgXCJSRUNUQU5HTEVfV0lUSF9IRUFERVJcIjogJ1JlY3RhbmdsZSB3aXRoIGhlYWRlcicsXHJcbiAgICBcIlNUQVJUX1NUQVRFXCI6ICdTdGFydCBTdGF0ZScsXHJcbiAgICBcIkVORF9TVEFURVwiOiAnRW5kIFN0YXRlJyxcclxuICAgIFwiU1RBVEVcIjogJ1N0YXRlJyxcclxuICAgIFwiUExBQ0VcIjogJ1BsYWNlJyxcclxuICAgIFwiVFJBTlNJVElPTlwiOiAnVHJhbnNpdGlvbicsXHJcbiAgICBcIkVOVElUWVwiOiAnRW50aXR5JyxcclxuICAgIFwiV0VBS19FTlRJVFlcIjogJ1dlYWsgRW50aXR5JyxcclxuICAgIFwiUkVMQVRJT05TSElQXCI6ICdSZWxhdGlvbnNoaXAnLFxyXG4gICAgXCJJREVOVElGWUlOR19SRUxBVElPTlNISVBcIjogJ0lkZW50aWZ5aW5nIFJlbGF0aW9uc2hpcCcsXHJcbiAgICBcIklTQVwiOiAnSVNBJyxcclxuICAgIFwiS0VZXCI6ICdLZXknLFxyXG4gICAgXCJOT1JNQUxcIjogJ05vcm1hbCcsXHJcbiAgICBcIk1VTFRJVkFMVUVEXCI6ICdNdWx0aXZhbHVlZCcsXHJcbiAgICBcIkRFUklWRURcIjogJ0Rlcml2ZWQnLFxyXG4gICAgXCJDTEFTU1wiOiAnQ2xhc3MnLFxyXG4gICAgXCJJTlRFUkZBQ0VcIjogJ0ludGVyZmFjZScsXHJcbiAgICBcIkFCU1RSQUNUXCI6ICdBYnN0cmFjdCcsXHJcbiAgICBcIk1FTUJFUlwiOiAnTWVtYmVyJyxcclxuICAgIFwiVU5ET1wiOiAnVW5kbycsXHJcbiAgICBcIlJFRE9cIjogJ1JlZG8nLFxyXG4gICAgXCJDTEVBUl9QQVBFUlwiOiAnQ2xlYXIgUGFwZXInLFxyXG4gICAgXCJFWFBPUlRfU1ZHXCI6ICdPcGVuIGFzIFNWRyBpbiBhIHBvcC11cCcsXHJcbiAgICBcIkVYUE9SVF9QTkdcIjogJ09wZW4gYXMgUE5HIGluIGEgcG9wLXVwJyxcclxuICAgIFwiUFJJTlRcIjogJ09wZW4gYSBQcmludCBEaWFsb2cnLFxyXG4gICAgXCJTRU5EX1RPX0ZST05UXCI6ICdCcmluZyBPYmplY3QgdG8gRnJvbnQnLFxyXG4gICAgXCJTRU5EX1RPX0JBQ0tcIjogJ1NlbmQgT2JqZWN0IHRvIEJhY2snLFxyXG4gICAgXCJBVVRPX0xBWU9VVF9HUkFQSFwiOiAnQXV0by1sYXlvdXQgR3JhcGgnLFxyXG4gICAgXCJaT09NX1RPX0ZJVFwiOiAnWm9vbSBUbyBGaXQnLFxyXG4gICAgXCJaT09NX09VVFwiOiAnWm9vbSBPdXQnLFxyXG4gICAgXCJaT09NX0lOXCI6ICdab29tIEluJyxcclxuICAgIFwiQ0hBTkdFX0dSSURfU0laRVwiOiAnQ2hhbmdlIEdyaWQgU2l6ZScsXHJcbiAgICBcIlNOQVBMSU5FU1wiOiAnRW5hYmxlL0Rpc2FibGUgU25hcGxpbmVzJyxcclxuICAgIFwiRlVMTFNDUkVFTlwiOiAnVG9nZ2xlIEZ1bGxzY3JlZW4gTW9kZScsXHJcbiAgICBcIlNFTEVDVF9URU1QTEFURVwiOiBcIlNlbGVjdCB0ZW1wbGF0ZVwiLFxyXG4gICAgXCJERUxFVEVfVEVNUExBVEVcIjogXCJEZWxldGUgdGVtcGxhdGVcIixcclxuICAgIFwiU0FWRV9BU19URU1QTEFURVwiOiBcIlNhdmUgYXMgdGVtcGxhdGVcIixcclxuICAgIFwiUkVTRVRfVE9fTEFTVF9TQVZFXCI6IFwiUmVzZXQgdG8gbGFzdCBzYXZlZFwiXHJcbiAgfVxyXG59XHJcbiJdfQ==
396
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL21vZGVsL2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRztJQUNoQixTQUFTLEVBQUUsU0FBUztJQUNwQixjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLGFBQWEsRUFBRSxZQUFZO0lBQzNCLGNBQWMsRUFBRSxjQUFjO0lBQzlCLGFBQWEsRUFBRSxNQUFNO0lBQ3JCLGVBQWUsRUFBRSxRQUFRO0lBQ3pCLHdCQUF3QixFQUFFLGdDQUFnQztJQUMxRCxRQUFRLEVBQUUsUUFBUTtJQUNsQixNQUFNLEVBQUUsTUFBTTtJQUNkLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE1BQU0sRUFBRSxNQUFNO0lBQ2QsUUFBUSxFQUFFLFFBQVE7SUFDbEIsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ2xDLFdBQVcsRUFBRSxXQUFXO0lBQ3hCLHNCQUFzQixFQUFFLDBDQUEwQztJQUNsRSwyQkFBMkIsRUFBRSwyQkFBMkI7SUFDeEQsa0JBQWtCLEVBQUUscUJBQXFCO0lBQ3pDLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFdBQVcsRUFBRSxXQUFXO0lBQ3hCLFdBQVcsRUFBRSxXQUFXO0lBQ3hCLFdBQVcsRUFBRSxZQUFZO0lBQ3pCLFdBQVcsRUFBRSxZQUFZO0lBQ3pCLFlBQVksRUFBRSxhQUFhO0lBQzNCLEtBQUssRUFBRSxLQUFLO0lBQ1osUUFBUSxFQUFFLFFBQVE7SUFDbEIsZUFBZSxFQUFFLHdEQUF3RDtJQUN6RSxlQUFlLEVBQUUsaUZBQWlGO0lBQ2xHLGlCQUFpQixFQUFFLHNCQUFzQjtJQUN6QyxVQUFVLEVBQUUsVUFBVTtJQUN0QixZQUFZLEVBQUUsSUFBSTtJQUNsQixhQUFhLEVBQUUsSUFBSTtJQUNuQixjQUFjLEVBQUUsY0FBYztJQUM5QixRQUFRLEVBQUUsUUFBUTtJQUNsQixnQkFBZ0Is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QVc7UUFDeEIsT0FBTyxFQUFFLE9BQU87UUFDaEIsT0FBTyxFQUFFLE9BQU87UUFDaEIsWUFBWSxFQUFFLFlBQVk7UUFDMUIsUUFBUSxFQUFFLFFBQVE7UUFDbEIsYUFBYSxFQUFFLGFBQWE7UUFDNUIsY0FBYyxFQUFFLGNBQWM7UUFDOUIsMEJBQTBCLEVBQUUsMEJBQTBCO1FBQ3RELEtBQUssRUFBRSxLQUFLO1FBQ1osS0FBSyxFQUFFLEtBQUs7UUFDWixRQUFRLEVBQUUsUUFBUTtRQUNsQixhQUFhLEVBQUUsYUFBYTtRQUM1QixTQUFTLEVBQUUsU0FBUztRQUNwQixPQUFPLEVBQUUsT0FBTztRQUNoQixXQUFXLEVBQUUsV0FBVztRQUN4QixVQUFVLEVBQUUsVUFBVTtRQUN0QixRQUFRLEVBQUUsUUFBUTtRQUNsQixNQUFNLEVBQUUsTUFBTTtRQUNkLE1BQU0sRUFBRSxNQUFNO1FBQ2QsYUFBYSxFQUFFLGFBQWE7UUFDNUIsWUFBWSxFQUFFLHlCQUF5QjtRQUN2QyxZQUFZLEVBQUUseUJBQXlCO1FBQ3ZDLE9BQU8sRUFBRSxxQkFBcUI7UUFDOUIsZUFBZSxFQUFFLHVCQUF1QjtRQUN4QyxjQUFjLEVBQUUscUJBQXFCO1FBQ3JDLG1CQUFtQixFQUFFLG1CQUFtQjtRQUN4QyxhQUFhLEVBQUUsYUFBYTtRQUM1QixVQUFVLEVBQUUsVUFBVTtRQUN0QixTQUFTLEVBQUUsU0FBUztRQUNwQixrQkFBa0IsRUFBRSxrQkFBa0I7UUFDdEMsV0FBVyxFQUFFLDBCQUEwQjtRQUN2QyxZQUFZLEVBQUUsd0JBQXdCO1FBQ3RDLGlCQUFpQixFQUFFLGlCQUFpQjtRQUNwQyxpQkFBaUIsRUFBRSxpQkFBaUI7UUFDcEMsa0JBQWtCLEVBQUUsa0JBQWtCO1FBQ3RDLG9CQUFvQixFQUFFLHFCQUFxQjtLQUM1QztDQUNGLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW4gPSB7XHJcbiAgXCJSRVNVTFRTXCI6IFwiUmVzdWx0c1wiLFxyXG4gIFwiUk9XX1BFUl9QQUdFXCI6IFwiSXRlbXMgcGVyIHBhZ2VcIixcclxuICBcIkpVTV9UT19QQUdFXCI6IFwiR28gdG8gcGFnZVwiLFxyXG4gIFwiTVlfQ09NUE9ORU5UXCI6IFwiTXkgY29tcG9uZW50XCIsXHJcbiAgXCJTQVZFX0JVVFRPTlwiOiBcIlNhdmVcIixcclxuICBcIkNBTkNFTF9CVVRUT05cIjogXCJDYW5jZWxcIixcclxuICBcIkRFTEVURV9NRVNTQUdFX0NPTU1FTlRcIjogXCJUaGlzIG1lc3NhZ2UgaGFzIGJlZW4gZGVsZXRlZC5cIixcclxuICBcIlJFR1JFVFwiOiBcIlJlZ3JldFwiLFxyXG4gIFwiRURJVFwiOiBcIkVkaXRcIixcclxuICBcIkRFTEVURVwiOiBcIkRlbGV0ZVwiLFxyXG4gIFwiU0FWRVwiOiBcIlNhdmVcIixcclxuICBcIkNBTkNFTFwiOiBcIkNhbmNlbFwiLFxyXG4gIFwiRURJVF9GSUxFX05BTUVcIjogXCJFZGl0IGZpbGUgbmFtZVwiLFxyXG4gIFwiRklMRV9OQU1FXCI6IFwiRmlsZSBuYW1lXCIsXHJcbiAgXCJVUExPQURfTEVBVkVfV0FSTklOR1wiOiBcIkZpbGVzIHlvdSdyZSB1cGxvYWRpbmcgbWF5IG5vdCBiZSBzYXZlZC5cIixcclxuICBcIlNPTUVfRklMRVNfV0VSRV9OT1RfQURERURcIjogXCJTb21lIGZpbGVzIHdlcmUgbm90IGFkZGVkXCIsXHJcbiAgXCJZT1VfQ0FOX09OTFlfQUREXCI6IFwiWW91IGNhbiBvbmx5IHVwbG9hZFwiLFxyXG4gIFwiU0VMRUNUXCI6IFwiU2VsZWN0XCIsXHJcbiAgXCJQUk9DRVNTRVNcIjogXCJQcm9jZXNzZXNcIixcclxuICBcIkRPQ1VNRU5UU1wiOiBcIkRvY3VtZW50c1wiLFxyXG4gIFwiREVWSUFUSU9OXCI6IFwiQ2F0ZWdvcmllc1wiLFxyXG4gIFwiQ0hFQ0tMSVNUXCI6IFwiQ2hlY2tsaXN0c1wiLFxyXG4gIFwiQVNTRVNTTUVOVFwiOiBcIkFzc2Vzc21lbnRzXCIsXHJcbiAgXCJBRERcIjogXCJBZGRcIixcclxuICBcIlNFQVJDSFwiOiBcIlNlYXJjaFwiLFxyXG4gIFwiUkVHVUxBUl9USVRMRVwiOiBcIldoYXQgZG8geW91IHdhbnQgdG8gaW5jbHVkZSBpbiB0aGUgcmlzayBhc3Nlc3NtZW50KHMpP1wiLFxyXG4gIFwiQ0FQVElPTl9USVRMRVwiOiBcIkluIGNhdXNhbCBhc3Nlc3NtZW50cywgYWxsIGNhdXNlcyByZWxhdGVkIHRvIHRoZSBldmVudCBhcmUgYXV0b21hdGljYWxseSBhZGRlZC5cIixcclxuICBcIkNBVVNBTF9BTkFMWVpFU1wiOiBcIlNlbGVjdGVkIEFzc2Vzc21lbnRzXCIsXHJcbiAgXCJGSU5JU0hFRFwiOiBcIkZpbmlzaGVkXCIsXHJcbiAgXCJQUk9DRVNTX0lEXCI6IFwiSURcIixcclxuICBcIkRPQ1VNRU5UX0lEXCI6IFwiSURcIixcclxuICBcIlBST0NFU1NfQVJFQVwiOiBcIlByb2Nlc3MgYXJlYVwiLFxyXG4gIFwiRk9MREVSXCI6IFwiRm9sZGVyXCIsXHJcbiAgXCJERVZJQVRJT05fVFlQRVwiOiBcIkRldmlhdGlvbiB0eXBlXCIsXHJcbiAgXCJDSEVDS0xJU1RfQ0FURUdPUllcIjogXCJDYXRlZ29yaWVzXCIsXHJcbiAgXCJFVkVOVFwiOiBcIkV2ZW50XCIsXHJcbiAgXCJBUkVBX09GX0lNUEFDVFwiOiBcIkNvbnNlcXVlbmNlIEFyZWFcIixcclxuICBcIlJFU1VMVFwiOiBcIlJlc3VsdFwiLFxyXG4gIFwiTk9UX0FDQ0VQVEVEXCI6IFwiTm90IGFjY2VwdGVkXCIsXHJcbiAgXCJNVVNUX0JFX0VWQUxVQVRFRFwiOiBcIk11c3QgYmUgZXZhbHVhdGVkXCIsXHJcbiAgXCJBQ0NFUFRFRFwiOiBcIkFjY2VwdGVkXCIsXHJcbiAgXCJBUkNISVZFRFwiOiBcIkFyY2hpdmVkXCIsXHJcbiAgXCJDQVVTRVwiOiBcIkNhdXNlXCIsXHJcbiAgXCJQQUdFXCI6IFwiUGFnZVwiLFxyXG4gIFwiT0ZcIjogXCJvZlwiLFxyXG4gIFwiUkVQT1JUX0ZPUlwiOiBcIlJlcG9ydCBmb3JcIixcclxuICBcIlNFTEVDVEVEXCI6IFwiU2VsZWN0ZWRcIixcclxuICBcIkNIT09TRV9BTExcIjogXCJDaG9vc2UgYWxsXCIsXHJcbiAgXCJCUkVBRENSVU1CXCI6IFwiQnJlYWRjcnVtYlwiLFxyXG4gIFwiTkFWSUdBVEVfVE9cIjogXCJOYXZpZ2F0ZSB0b1wiLFxyXG4gIFwiRklMRV9TSVpFX0xJTUlUXCI6IFwiRmlsZSBzaXplIGxpbWl0XCIsXHJcbiAgXCJTVVBQT1JURURfRVhURU5TSU9OU1wiOiBcIlN1cHBvcnRlZCBleHRlbnNpb25zXCIsXHJcbiAgXCJGSUxFU19BUkVfTk9UX1NVUFBPUlRFRFwiOiBcIkZpbGUocykgYXJlIG5vdCBzdXBwb3J0ZWRcIixcclxuICBcIkZJTEVTX0VYQ0VFRF9VUExPQURfTElNSVRcIjogXCJGaWxlKHMpIGV4Y2VlZCB1cGxvYWQgc2l6ZSBsaW1pdFwiLFxyXG4gIFwiU0VMRUNUX0FDQ0VTU1wiOiBcIlNlbGVjdCBBY2Nlc3MoZXMpXCIsXHJcbiAgXCJQRVJTT05cIjogXCJQZXJzb25cIixcclxuICBcIlVTRVJfR1JPVVBcIjogXCJVc2VyIEdyb3VwXCIsXHJcbiAgXCJERVBBUlRNRU5UXCI6IFwiRGVwYXJ0bWVudFwiLFxyXG4gIFwiUk9MRVwiOiBcIlJvbGVcIixcclxuICBcIkRFUEFSVE1FTlRfVU5JVFwiOiBcIkRlcGFydG1lbnQgLyB1bml0XCIsXHJcbiAgXCJJTkNMVURFX1NVQl9ERVBBUlRNRU5UU1wiOiBcIkF1dG9tYXRpY2FsbHkgaW5jbHVkZSBzdWItZGVwYXJ0bWVudHNcIixcclxuICBcIk5BTUVcIjogXCJOYW1lXCIsXHJcbiAgXCJTRUFSQ0hfVVNFUl9HUk9VUFwiOiBcIlNlYXJjaCB1c2VyIGdyb3VwXCIsXHJcbiAgXCJTRUFSQ0hfREVQQVJUTUVOVF9VTklUXCI6IFwiU2VhcmNoIGRlcGFydG1lbnQgLyB1bml0XCIsXHJcbiAgXCJGSUxURVJcIjogXCJGaWx0ZXJcIixcclxuICBcIlRZUEVcIjogXCJUeXBlXCIsXHJcbiAgXCJTRUFSQ0hfV0lUSF9OQU1FXCI6IFwiU2VhcmNoIGZpcnN0IGFuZCBsYXN0IG5hbWVcIixcclxuICBcIlJFU1VMVF9TRUFSQ0hfRk9SXCI6IFwiUmVzdWx0cyBzZWFyY2ggZm9yIFwiLFxyXG4gIFwiVE9PTFRJUF9JTkNMVURFX1NVQl9ERVBBUlRNRU5UXCI6IFwiezB9IC0gaW5jbHVkZSB7MX0gc3ViLWRlcGFydG1lbnRzXCIsXHJcbiAgXCJUT09MVElQX0lOQ0xVREVfU1VCX0lURU1cIjogXCJ7MH0gLSBpbmNsdWRlIHsxfSBzdWItaXRlbXNcIixcclxuICBcIk5PX1JFU1VMVFwiOiBcIk5vIFJlc3VsdFwiLFxyXG4gIFwiSVRFTV9OT1RfTUFUQ0hfVE9fVFJFRVwiOiBcIlRoaXMgaXRlbSBub3QgbWF0Y2ggdGhlIHRyZWVcIixcclxuICBcIkVSUk9SXCI6IHtcclxuICAgIFwiU0VMRUNUX0RBTkdFUlwiOiBcIllvdSBtdXN0IHNlbGVjdCBvbmUgb3IgbW9yZSBldmVudHNcIlxyXG4gIH0sXHJcbiAgXCJNRVNTQUdFXCI6IHtcclxuICAgIFwiUFJPQ0VTU0VTX0lOXCI6IFwiUHJvY2Vzc2VzIGluXCIsXHJcbiAgICBcIkRPQ1VNRU5UU19JTlwiOiBcIkRvY3VtZW50cyBpblwiXHJcbiAgfSxcclxuICBcIlNFTEVDVF9JTkNMVURFX0NISUxEXCI6IFwiU2VsZWN0IGluY2x1ZGUgY2hpbGRyZW5cIixcclxuICBcIkJBQ0tfVE9fVFJFRVwiOiBcIkJhY2sgdG8gdHJlZSB2aWV3XCIsXHJcbiAgXCJHT1RPX1NFQUNIX1JFU1VMVFwiOiBcIkdvIHRvIHRoZSBzZWFyY2ggcmVzdWx0XCIsXHJcbiAgXCJRTVNDS0VESVRPUlwiOiB7XHJcbiAgICBcIklEXCI6IFwiSURcIixcclxuICAgIFwiSU5GT1JNQVRJT05cIjogXCJJbmZvcm1hdGlvblwiLFxyXG4gICAgXCJSRU1PVkVfTUFQXCI6IFwiUmVtb3ZlIE1hcFwiLFxyXG4gICAgXCJJTUFHRV9NQVBfUFJPUEVSVElFU1wiOiBcIkltYWdlIE1hcCBQcm9wZXJ0aWVzXCIsXHJcbiAgICBcIklOU0VSVF9UT09MVElQXCI6IFwiSW5zZXJ0IGEgdG9vbHRpcFwiLFxyXG4gICAgXCJDT05URU5UXCI6IFwiQ29udGVudFwiLFxyXG4gICAgXCJURU1QTEFURVwiOiBcIlRlbXBsYXRlXCIsXHJcbiAgICBcIkNPTlRFTlRfVEVNUExBVEVcIjogXCJDb250ZW50IFRlbXBsYXRlXCIsXHJcbiAgICBcIkNSRUFURV9ORVdfVEVNUExBVEVcIjogXCJDcmVhdGUgbmV3IHRlbXBsYXRlXCIsXHJcbiAgICBcIlVQREFURV9URU1QTEFURVwiOiBcIlVwZGF0ZSB0ZW1wbGF0ZVwiLFxyXG4gICAgXCJUSVRMRVwiOiBcIlRpdGxlXCIsXHJcbiAgICBcIkRFU0NSSVBUSU9OXCI6IFwiRGVzY3JpcHRpb25cIixcclxuICAgIFwiU0FWRVwiOiBcIlNhdmVcIixcclxuICAgIFwiQ0hPT1NFX1RFTVBMQVRFXCI6IFwiUGxlYXNlIHNlbGVjdCB0aGUgdGVtcGxhdGUgdG8gb3BlbiBpbiB0aGUgZWRpdG9yXCIsXHJcbiAgICBcIlJFUExBQ0VfQ09OVEVOVFwiOiBcIlJlcGxhY2UgYWN0dWFsIGNvbnRlbnRzXCIsXHJcbiAgICBcIlNBVkVEXCI6IFwiU2F2ZWRcIixcclxuICAgIFwiU0FWRV9GQUlMRURcIjogXCJTYXZlIGZhaWxlZFwiLFxyXG4gICAgXCJERUxFVEVcIjogXCJEZWxldGVcIixcclxuICAgIFwiREVMRVRFRFwiOiBcIkRlbGV0ZWRcIixcclxuICAgIFwiREVMRVRFX0ZBSUxFRFwiOiBcIkRlbGV0ZSBmYWlsZWRcIixcclxuICAgIFwiREVMRVRFX1RFTVBMQVRFXCI6IFwiRGVsZXRlIHRlbXBsYXRlXCIsXHJcbiAgICBcIkNIQU5HRV9URU1QTEFURVwiOiBcIkNoYW5nZSB0ZW1wbGF0ZVwiLFxyXG4gICAgXCJDQU5DRUxcIjogXCJDYW5jZWxcIixcclxuICAgIFwiTElOS1wiOiBcIkxpbmtcIixcclxuICAgIFwiTElOS19UWVBFXCI6IFwiTGluayB0eXBlXCIsXHJcbiAgICBcIlpPT01cIjogXCJab29tXCIsXHJcbiAgICBcIkxJTktfVVJMXCI6IFwiVVJMXCIsXHJcbiAgICBcIkxJTktfQU5DSE9SX0lOX1RFWFRcIjogXCJMaW5rIHRvIGFuY2hvciBpbiB0aGUgdGV4dFwiLFxyXG4gICAgXCJMSU5LX0VNQUlMXCI6IFwiRW1haWxcIixcclxuICAgIFwiTElOS19BTkNIT1JfRE9DVU1FTlRcIjogXCJBbmNob3IgaW4gb3RoZXIgZG9jdW1lbnRcIixcclxuICAgIFwiVEFSR0VUXCI6IFwiVGFyZ2V0XCIsXHJcbiAgICBcIlRBUlRHRVRfTkVXXCI6IFwiTmV3IFdpbmRvdyAoX2JsYW5rKVwiLFxyXG4gICAgXCJUQVJHRVRfVE9QTU9TVFwiOiBcIlRvcG1vc3QgV2luZG93IChfdG9wKVwiLFxyXG4gICAgXCJUQVJHRVRfU0FNRVwiOiBcIlNhbWUgV2luZG93IChfc2VsZilcIixcclxuICAgIFwiVEFSR0VUX1BBUkVOVFwiOiBcIlBhcmVudCBXaW5kb3cgKF9wYXJlbnQpXCIsXHJcbiAgICBcIlBST1RPQ09MXCI6IFwiUHJvdG9jb2xcIixcclxuICAgIFwiUFJPVE9DT0xfSFRUUFwiOiBcImh0dHA6Ly9cIixcclxuICAgIFwiUFJPVE9DT0xfSFRUUFNcIjogXCJodHRwczovL1wiLFxyXG4gICAgXCJQUk9UT0NPTF9GVFBcIjogXCJmdHA6Ly9cIixcclxuICAgIFwiUFJPVE9DT0xfTkVXXCI6IFwibmV3czovL1wiLFxyXG4gICAgXCJQUk9UT0NPTF9PVEhFUlwiOiBcIjxvdGhlcj5cIixcclxuICAgIFwiQURWSVNPUllfVElUTEVcIjogXCJBZHZpc29yeSBUaXRsZVwiLFxyXG4gICAgXCJIQU5EQk9PS1wiOiBcImVIYW5kYm9va1wiLFxyXG4gICAgXCJBVFRBQ0hNRU5UXCI6IFwiQXR0YWNobWVudFwiLFxyXG4gICAgXCJPS1wiOiBcIk9rXCIsXHJcbiAgICBcIlVSTF9IRUFERVJcIjogXCJVUkwgaW5mb3JtYXRpb25cIixcclxuICAgIFwiQU5DSE9SX1RFWFRfSEVBREVSXCI6IFwiU2VsZWN0IGFuIEFuY2hvclwiLFxyXG4gICAgXCJBTkNIT1JfQllfTkFNRVwiOiBcIkFuY2hvciBieSBuYW1lXCIsXHJcbiAgICBcIkVNQUlMX0hFQURFUlwiOiBcIkVtYWlsIGluZm9ybWF0aW9uXCIsXHJcbiAgICBcIkVNQUlMX0FERFJFU1NcIjogXCJBZGRyZXNzXCIsXHJcbiAgICBcIkVNQUlMX1NVQkpFQ1RcIjogXCJTdWJqZWN0XCIsXHJcbiAgICBcIkVNQUlMX0JPRFlcIjogXCJCb2R5XCIsXHJcbiAgICBcIkFOQ0hPUl9BVFRBQ0hNRU5UXCI6IFwiQXR0YWNobWVudHNcIixcclxuICAgIFwiQU5DSE9SX1JFTEFURURfRE9DVU1FTlRcIjogXCJSZWxhdGVkIGRvY3VtZW50XCIsXHJcbiAgICBcIkFERF9ET0NVTUVOVF9QUk9DRVNTXCI6IFwiQWRkIGRvY3VtZW50IC8gcHJvY2Vzc1wiLFxyXG4gICAgXCJBRERfRE9DVU1FTlRcIjogXCJBZGQgZG9jdW1lbnRcIixcclxuICAgIFwiQUREXCI6IFwiQWRkXCIsXHJcbiAgICBcIlBST0NFU1NFU1wiOiBcIlByb2Nlc3Nlc1wiLFxyXG4gICAgXCJET0NVTUVOVFNcIjogXCJEb2N1bWVudHNcIixcclxuICAgIFwiVVBEQVRFXCI6IFwiVXBkYXRlXCIsXHJcbiAgICBcIkRPQ1VNRU5UXCI6IFwiRG9jdW1lbnRcIixcclxuICAgIFwiQ09ORklSTVwiOiBcIkNvbmZpcm1cIixcclxuICAgIFwiU0VBUkNIXCI6IFwiU2VhcmNoXCIsXHJcbiAgICBcIklNQUdFX01PREVfUE9JTlRFUlwiOiBcIlBvaW50ZXJcIixcclxuICAgIFwiSU1BR0VfTU9ERV9SRUNUQU5HTEVcIjogXCJSZWN0YW5nbGVcIixcclxuICAgIFwiSU1BR0VfTU9ERV9DSVJDTEVcIjogXCJDaXJjbGVcIixcclxuICAgIFwiSU1BR0VfTU9ERV9QT0xZR09OXCI6IFwiUG9seWdvblwiLFxyXG4gICAgXCJJTUFHRV9NT0RFX1JFTU9WRVwiOiBcIlJlbW92ZVwiLFxyXG4gICAgXCJQT0xZR09OX0RSQVdcIjogXCJVc2UgU0hJRlQgKyBjbGljayBmb3IgdGhlIGxhc3QgY29udHJvbCBwb2ludFwiLFxyXG4gICAgXCJSRUNUQU5HTEVfRFJBV1wiOiBcIkhvbGQgZG93biBTSElGVCBmb3Igc3F1YXJlIG1vZGVcIixcclxuICAgIFwiU1FVQVJFX0RSQVdcIjogXCJSZWxlYXNlIFNISUZUIGZvciByZWN0YW5nbGUgbW9kZVwiLFxyXG4gICAgXCJJTlZBTElEX1VSTFwiOiBcIkludmFsaWQgVVJMXCIsXHJcbiAgICBcIlJFUVVJUkVEX1VSTFwiOiBcIlVSTCBpcyByZXF1aXJlZFwiLFxyXG4gICAgXCJDTE9TRVwiOiBcIkNsb3NlXCIsXHJcbiAgICBcIkRPQ1VNRU5UX1BST0NFU1NcIjogXCJEb2N1bWVudCAvIFByb2Nlc3NcIixcclxuICAgIFwiVVBMT0FEX0ZJTEVfTk9UX1ZBTElEX0ZPUk1BVFwiOiBcIlRoZSBmaWxlIHVwbG9hZGVkIGlzIGludmFsaWQgZm9ybWF0LiBTdXBwb3J0ZWQgZmlsZSBmb3JtYXRzOiB7MH1cIixcclxuICAgIFwiVVBMT0FEX0ZJTEVfT1ZFUlNJWkVcIjogXCJUaGUgZmlsZSB1cGxvYWRlZCBpcyBvdmVyIHRoZSBsaW1pdCBzaXplLiBUaGUgbGltaXQgc2l6ZSBpcyB7MH1NQlwiLFxyXG4gICAgXCJVUExPQURfRklMRV9GQUlMRURcIjogXCJGYWlsZWQgdG8gdXBsb2FkIGZpbGUuXCIsXHJcbiAgICBcIkFTU0lTVElWRV9URVhUXCI6IFwiQXNzaXN0aXZlIHRleHRcIixcclxuICAgIFwiV09SRFNcIjogXCJXb3Jkc1wiLFxyXG4gICAgXCJDSEFSQUNURVJTXCI6IFwiQ2hhcmFjdGVyc1wiLFxyXG4gICAgXCJTRUxFQ1RfVklERU9fRlJPTV9BUkNISVZFXCI6IFwiU2VsZWN0IHZpZGVvIGZyb20gdGhlIGFyY2hpdmVcIixcclxuICAgIFwiU0VMRUNUX1ZJREVPX0lNQUdFXCI6IFwiU2VsZWN0IHZpZGVvIGltYWdlXCIsXHJcbiAgICBcIkRPQ1VNRU5UX0hFQURFUlwiOiBcIkRvY3VtZW50IGluZm9ybWF0aW9uXCIsXHJcbiAgICBcIkFERF9JTUFHRVwiOiBcIkFkZCBpbWFnZVwiLFxyXG4gICAgXCJJTUFHRV9JTkZPXCI6IFwiSW1hZ2UgSW5mb1wiLFxyXG4gICAgXCJBRERfQV9GSUxFXCI6IFwiQWRkIGEgZmlsZVwiLFxyXG4gICAgXCJFWFRFTlNJT05fSVNfTk9UX1NVUFBPUlRFRFwiOiBcIlRoZSBleHRlbnNpb24gaXMgbm90IHN1cHBvcnRlZC5cIixcclxuICAgIFwiQUNDRVBUX01QNF9PTkxZXCI6IFwiTm90IHN1cHBvcnQgdGhpcyB2aWRlbyB0eXBlLiBBY2NlcHQgTVA0IG9ubHkuXCJcclxuICB9LFxyXG4gIFwiQUJPVVRcIjoge1xyXG4gICAgXCJBQk9VVF9DS0VESVRPUlwiOiBcIkFib3V0IENLRWRpdG9yXCIsXHJcbiAgICBcIkNLRURJVE9SNV9WRVJTSU9OXCI6IFwiQ0tFZGl0b3IgNSB2ZXJzaW9uXCIsXHJcbiAgICBcIkZPUl9MSUNFTlNJTkdfSU5GT1JNQVRJT05fUExFQVNFX1ZJU0lUX09VUl9XRUJTSVRFXCI6IFwiRm9yIGxpY2Vuc2luZyBpbmZvcm1hdGlvbiBwbGVhc2UgdmlzaXQgb3VyIHdlYnNpdGVcIixcclxuICAgIFwiQUxMX1JJR0hUU19SRVNFUlZFRFwiOiBcIkFsbCByaWdodHMgcmVzZXJ2ZWRcIixcclxuICAgIFwiQ0hFQ0tcIjogXCJDaGVja1wiLFxyXG4gICAgXCJGT1JfSEVMUFwiOiBcImZvciBoZWxwXCIsXHJcbiAgICBcIkNLRURJVE9SX1VTRVJTX0dVSURFXCI6IFwiQ0tFZGl0b3IgVXNlcidzIEd1aWRlXCIsXHJcbiAgICBcIkNPUFlSSUdIVFwiOiBcIkNvcHlyaWdodCDCqVwiXHJcbiAgfSxcclxuICBcIkJQTU5cIjoge1xyXG4gICAgXCJERUZBVUxUXCI6IFwiRGVmYXVsdFwiLFxyXG4gICAgXCJUWVBFXCI6IFwiVHlwZVwiLFxyXG4gICAgXCJOQU1FXCI6IFwiTmFtZVwiLFxyXG4gICAgXCJFWENMVVNJVkVcIjogXCJFeGNsdXNpdmVcIixcclxuICAgIFwiSU5DTFVTSVZFXCI6IFwiSW5jbHVzaXZlXCIsXHJcbiAgICBcIlBBUkFMTEVMXCI6IFwiUGFyYWxsZWxcIixcclxuICAgIFwiQVBQRUFSQU5DRVwiOiBcImFwcGVhcmFuY2VcIixcclxuICAgIFwiQk9EWV9DT0xPUlwiOiBcIkJvZHkgY29sb3JcIixcclxuICAgIFwiVEVYVF9BTElHTk1FTlRcIjogXCJUZXh0IEFsaWdubWVudFwiLFxyXG4gICAgXCJMRUZUXCI6IFwiTGVmdFwiLFxyXG4gICAgXCJDRU5URVJcIjogXCJDZW50ZXJcIixcclxuICAgIFwiUklHSFRcIjogXCJSaWdodFwiLFxyXG4gICAgXCJGT05UX0ZBTUlMWVwiOiBcIkZvbnQgZmFtaWx5XCIsXHJcbiAgICBcIkZPTlRfU0laRVwiOiBcIkZvbnQgc2l6ZVwiLFxyXG4gICAgXCJDT05URU5UXCI6IFwiQ29udGVudFwiLFxyXG4gICAgXCJJQ09OXCI6IFwiSWNvblwiLFxyXG4gICAgXCJOT05FXCI6IFwiTm9uZVwiLFxyXG4gICAgXCJNRVNTQUdFXCI6IFwiTWVzc2FnZVwiLFxyXG4gICAgXCJVU0VSXCI6IFwiVXNlclwiLFxyXG4gICAgXCJUQVNLXCI6IFwiVGFza1wiLFxyXG4gICAgXCJUUkFOU0FDVElPTlwiOiBcIlRyYW5zYWN0aW9uXCIsXHJcbiAgICBcIkVWRU5UX1NVQl9QUk9DRVNTXCI6IFwiZXZlbnQtc3ViLXByb2Nlc3NcIixcclxuICAgIFwiQ0FMTF9BQ1RJVklUWVwiOiBcImNhbGwtYWN0aXZpdHlcIixcclxuICAgIFwiU1VCX1BST0NFU1NcIjogXCJTdWItcHJvY2Vzc1wiLFxyXG4gICAgXCJTVEFSVFwiOiBcIlN0YXJ0XCIsXHJcbiAgICBcIkVORFwiOiBcIkVuZFwiLFxyXG4gICAgXCJJTlRFUk1FRElBVEVcIjogXCJJbnRlcm1lZGlhdGVcIixcclxuICAgIFwiQ0FOQ0VMXCI6IFwiQ2FuY2VsXCIsXHJcbiAgICBcIkNBTkNFTF9PVUxJTkVEXCI6IFwiQ2FuY2VsIG91bGluZWRcIixcclxuICAgIFwiQ0FOQ0VMX0ZJTExFRFwiOiBcIkNhbmNlbCBmaWxsZWRcIixcclxuICAgIFwiQ09NUEVOU0FUSU9OX09VTElORURcIjogXCJDb21wZW5zYXRpb24gb3VsaW5lZFwiLFxyXG4gICAgXCJDT01QRU5TQVRJT05fRklMTEVEXCI6IFwiQ29tcGVuc2F0aW9uIGZpbGxlZFwiLFxyXG4gICAgXCJDT05ESVRJT05BTFwiOiBcIkNvbmRpdGlvbmFsXCIsXHJcbiAgICBcIkVSUk9SX09VTElORURcIjogXCJFcnJvciBvdWxpbmVkXCIsXHJcbiAgICBcIkVSUk9SX0ZJTExFRFwiOiBcIkVycm9yIGZpbGxlZFwiLFxyXG4gICAgXCJFU0NBTEFUSU9OX09VTElORURcIjogXCJFc2NhbGF0aW9uIG91bGluZWRcIixcclxuICAgIFwiRVNDQUxBVElPTl9GSUxMRURcIjogXCJFc2NhbGF0aW9uIGZpbGxlZFwiLFxyXG4gICAgXCJMSU5LX09VTElORURcIjogXCJMaW5rIG91bGluZWRcIixcclxuICAgIFwiTElOS19GSUxMRURcIjogXCJMaW5rIGZpbGxlZFwiLFxyXG4gICAgXCJNRVNTQUdFX09VTElORURcIjogXCJNZXNzYWdlIG91bGluZWRcIixcclxuICAgIFwiTUVTU0FHRV9GSUxMRURcIjogXCJNZXNzYWdlIGZpbGxlZFwiLFxyXG4gICAgXCJNVUxUSVBMRV9PVUxJTkVEXCI6IFwiTXVsdGlwbGUgb3VsaW5lZFwiLFxyXG4gICAgXCJNVUxUSVBMRV9GSUxMRURcIjogXCJNdWx0aXBsZSBmaWxsZWRcIixcclxuICAgIFwiUEFSQUxMRUxfTVVMVElQTEVcIjogXCJQYXJhbGxlbCBtdWx0aXBsZVwiLFxyXG4gICAgXCJURVJNSU5BVElPTl9PVUxJTkVEXCI6IFwiVGVybWluYXRpb24gb3VsaW5lZFwiLFxyXG4gICAgXCJURVJNSU5BVElPTl9GSUxMRURcIjogXCJUZXJtaW5hdGlvbiBmaWxsZWRcIixcclxuICAgIFwiVElNRVJcIjogXCJUaW1lclwiLFxyXG4gICAgXCJTSUdOQUxfT1VMSU5FRFwiOiBcIlNpZ25hbCBvdWxpbmVkXCIsXHJcbiAgICBcIlNJR05BTF9GSUxMRURcIjogXCJTaWduYWwgZmlsbGVkXCIsXHJcbiAgICBcIlBBUkFMTEVMX09VTElORURcIjogXCJQYXJhbGxlbCBvdWxpbmVkXCIsXHJcbiAgICBcIlBBUkFMTEVMX0ZJTExFRFwiOiBcIlBhcmFsbGVsIGZpbGxlZFwiLFxyXG4gICAgXCJTVUJfVFlQRVwiOiBcIlN1YnR5cGVcIixcclxuICAgIFwiVFJBTlNQQVJFTkNZXCI6IFwiVHJhbnNwYXJlbmN5XCIsXHJcbiAgICBcIkxBQkVMXCI6IFwiTGFiZWxcIixcclxuICAgIFwiVEVYVFwiOiBcIlRleHRcIixcclxuICAgIFwiUE9TSVRJT05cIjogXCJQb3NpdGlvblwiLFxyXG4gICAgXCJMQUJFTFNcIjogXCJMYWJlbHNcIixcclxuICAgIFwiTk9STUFMXCI6IFwiTm9ybWFsXCIsXHJcbiAgICBcIkFTU09DSUFUSU9OXCI6IFwiQXNzb2NpYXRpb25cIixcclxuICAgIFwiQ09OVkVSU0FUSU9OXCI6IFwiQ29udmVyc2F0aW9uXCIsXHJcbiAgICBcIlBBUlRJQ1BBTlRTXCI6IFwiUGFydGljcGFudHNcIixcclxuICAgIFwiSU5JVElBVElOR19QQVJUSUNJUEFOVFwiOiBcIkluaXRpYXRpbmcgUGFydGljaXBhbnRcIixcclxuICAgIFwiUFJJTUFSWV9DT0xPUlwiOiBcIlByaW1hcnkgQ29sb3JcIixcclxuICAgIFwiU0VDT05EQVJZX0NPTE9SXCI6IFwiU2Vjb25kYXJ5IENvbG9yXCIsXHJcbiAgICBcIkNBTEwtQ09OVkVSU0FUSU9OXCI6IFwiQ2FsbC1jb252ZXJzYXRpb25cIixcclxuICAgIFwiQUREX0xBTkVTXCI6IFwiQWRkIGxhbmVzXCIsXHJcbiAgICBcIlBFUkNFTlRBR0VcIjogXCJQZXJjZW50YWdlXCIsXHJcbiAgICBcIkFERF9TVUJMQU5FU1wiOiBcIkFkZCBzdWJsYW5lc1wiLFxyXG4gICAgXCJIRUFERVJfQ09MT1JcIjogXCJIZWFkZXIgQ29sb3JcIixcclxuICAgIFwiTEFORV9CT0RZX0NPTE9SXCI6IFwiTGFuZSBCb2R5IENvbG9yXCIsXHJcbiAgICBcIkxBTkVfSEVBREVSX0NPTE9SXCI6IFwiTGFuZSBIZWFkZXIgQ29sb3JcIixcclxuICAgIFwiT1BFTl9BX1BSSU5UX0RJQUxPR1wiOiBcIk9wZW4gYSBQcmludCBEaWFsb2dcIixcclxuICAgIFwiT1BFTl9BU19KU09OXCI6IFwiT3BlbiBBcyBKU09OXCIsXHJcbiAgICBcIlpPT01fSU5cIjogXCJab29tIEluXCIsXHJcbiAgICBcIlpPT01fT1VUXCI6IFwiWm9vbSBPdXRcIixcclxuICAgIFwiWk9PTV9UT19GSVRcIjogXCJab29tIFRvIEZpdFwiLFxyXG4gICAgXCJTRU5EX1RPX0ZST05UXCI6IFwiU2VudCBUbyBGcm9udFwiLFxyXG4gICAgXCJCUklOR19PQkpFQ1RfVE9fRlJPTlRcIjogXCJCcmluZyBPYmplY3QgdG8gRnJvbnRcIixcclxuICAgIFwiU0VORF9UT19CQUNLXCI6IFwiU2VudCBUbyBCYWNrXCIsXHJcbiAgICBcIkJSSU5HX09CSkVDVF9UT19CQUNLXCI6IFwiU2VuZCBPYmplY3QgdG8gQmFja1wiLFxyXG4gICAgXCJDTEVBUl9QQVBFUlwiOiBcIkNsZWFyIFBhcGVyXCIsXHJcbiAgICBcIlVORE9cIjogXCJVbmRvXCIsXHJcbiAgICBcIlJFRE9cIjogXCJSZWRvXCIsXHJcbiAgICBcIlNFTEVDVF9URU1QTEFURVwiOiBcIlNlbGVjdCB0ZW1wbGF0ZVwiLFxyXG4gICAgXCJERUxFVEVfVEVNUExBVEVcIjogXCJEZWxldGUgdGVtcGxhdGVcIixcclxuICAgIFwiU0FWRV9BU19URU1QTEFURVwiOiBcIlNhdmUgYXMgdGVtcGxhdGVcIixcclxuICAgIFwiUkVTRVRfVE9fTEFTVF9TQVZFXCI6IFwiUmVzZXQgdG8gbGFzdCBzYXZlZFwiLFxyXG4gICAgXCJHUklEX1NJWkVcIjogXCJHcmlkIHNpemVcIixcclxuICAgIFwiQ0hBTkdFX0dSSURfU0laRVwiOiBcIkNoYW5nZSBncmlkIHNpemVcIixcclxuICAgIFwiU05BUExJTkVTXCI6IFwiU25hcGxpbmVzOlwiLFxyXG4gICAgXCJFTkFCTEVfRElTQUJMRV9TTkFQTElORVNcIjogXCJFbmFibGUvRGlzYWJsZSBTbmFwbGluZXNcIixcclxuICAgIFwiTElORV9DT0xPUlwiOiBcIkxpbmUgQ29sb3JcIixcclxuICAgIFwiQk9EWV9MSU5FX0NPTE9SXCI6IFwiQm9keSBMaW5lIENvbG9yXCIsXHJcbiAgICBcIlRZUEVfQ09MT1JcIjogXCJUeXBlIENvbG9yXCIsXHJcbiAgICBcIk1BUktFUlwiOiBcIk1hcmtlcnNcIixcclxuICAgIFwiTUFSS0VSX0NPTE9SXCI6IFwiTWFya2VycyBDb2xvclwiLFxyXG4gICAgXCJUT1BfQ09MT1JcIjogXCJNYXJrZXJzIENvbG9yXCIsXHJcbiAgICBcIlRPUF9MSU5FX0NPTE9SXCI6IFwiVG9wIExpbmUgQ29sb3JcIixcclxuICAgIFwiQ09MTEVDVElPTlwiOiBcIkNvbGxlY3Rpb25cIixcclxuICAgIFwiQ09MTEVDVElPTl9DT0xPUlwiOiBcIkNvbGxlY3Rpb24gQ29sb3JcIixcclxuICAgIFwiU0laRVwiOiBcIlNpemVcIixcclxuICAgIFwiSEVBREVSX1NJWkVcIjogXCJIZWFkZXIgU2l6ZVwiLFxyXG4gICAgXCJIRUFERVJcIjogXCJIZWFkZXJcIixcclxuICAgIFwiSEVBREVSX1NUUk9LRV9DT0xPUlwiOiBcIkhlYWRlciBzdHJva2UgY29sb3JcIixcclxuICAgIFwiSEVBREVSX0xBQkVMX0NPTE9SXCI6IFwiSGVhZGVyIGxhYmVsIGNvbG9yXCIsXHJcbiAgICBcIkxBTkVfU1RST0tFX0NPTE9SXCI6IFwiTGFuZSBTdHJva2UgQ29sb3JcIixcclxuICAgIFwiTEFORV9IRUFERVJfU1RST0tFXCI6IFwiTGFuZSBIZWFkZXIgU3Ryb2tlXCIsXHJcbiAgICBcIkxBTkVfTEFCRUxfQ09MT1JcIjogXCJMYW5lIExhYmVsIENvbG9yXCIsXHJcbiAgICBcIk1JTEVTVE9ORV9IRUFERVJfRklMTFwiOiBcIk1pbGVzdG9uZSBIZWFkZXIgRmlsbFwiLFxyXG4gICAgXCJNSUxFU1RPTkVfU1RST0tFXCI6IFwiTWlsZXN0b25lIFN0cm9rZVwiLFxyXG4gICAgXCJNSUxFU1RPTkVfTEFCRUxfQ09MT1JcIjogXCJNaWxlc3RvbmUgTGFiZWwgQ29sb3JcIixcclxuICAgIFwiTUlMRVNUT05FX0xJTkVfQ09MT1JcIjogXCJNaWxlc3RvbmUgTGluZSBDb2xvclwiLFxyXG4gICAgXCJIRUFERVJfQUxJR05NRU5UXCI6IFwiSGVhZGVyIEFsaWdubWVudFwiLFxyXG4gICAgXCJIRUFERVJfRk9OVF9GQU1JTFlcIjogXCJIZWFkZXIgRm9udCBmYW1pbHlcIixcclxuICAgIFwiSEVBREVSX0ZPTlRfU0laRVwiOiBcIkhlYWRlciBGb250IHNpemVcIixcclxuICAgIFwiTEFORV9BTElHTk1FTlRcIjogXCJMYW5lIEFsaWdubWVudFwiLFxyXG4gICAgXCJMQU5FX0ZPTlRfRkFNSUxZXCI6IFwiTGFuZSBGb250IGZhbWlseVwiLFxyXG4gICAgXCJMQU5FX0ZPTlRfU0laRVwiOiBcIkxhbmUgRm9udCBzaXplXCIsXHJcbiAgICBcIk1JTEVTVE9ORV9BTElHTk1FTlRcIjogXCJNaWxlc3RvbmUgQWxpZ25tZW50XCIsXHJcbiAgICBcIk1JTEVTVE9ORV9GT05UX0ZBTUlMWVwiOiBcIk1pbGVzdG9uZSBGb250IGZhbWlseVwiLFxyXG4gICAgXCJNSUxFU1RPTkVfRk9OVF9TSVpFXCI6IFwiTWlsZXN0b25lIEZvbnQgc2l6ZVwiLFxyXG4gICAgXCJURVhUX0NPTE9SXCI6IFwiVGV4dCBjb2xvclwiLFxyXG4gICAgXCJURVhUX0hFQURFUl9DT0xPUlwiOiBcIkhlYWRlciB0ZXh0IGNvbG9yXCIsXHJcbiAgICBcIlRFWFRfQkFDS0dST1VORF9DT0xPUlwiOiBcIkJhY2tncm91bmQgdGV4dCBjb2xvclwiLFxyXG4gICAgXCJURVhUX0lOU0lERV9TSEFQRVwiOiBcIlNob3cgdGV4dCBpbnNpZGUgc2hhcGVcIixcclxuICAgIFwiVEVNUExBVEVfTkFNRVwiOiBcIlRlbXBsYXRlIG5hbWVcIixcclxuICAgIFwiVEVNUExBVEVfSU5GT1wiOiBcIlBsZWFzZSBpbnB1dCB0ZW1wbGF0ZSBuYW1lXCIsXHJcbiAgICBcIlNFTEVDVF9URU1QTEFURV9JTkZPUk1BVElPTlwiOiBcIllvdSBtdXN0IHNlbGVjdCBhIHRlbXBsYXRlIGJlZm9yZSB5b3UgZG8gdGhpcyBhY3Rpb24uXCIsXHJcbiAgICBcIkNPTk5FQ1RJT05cIjogXCJDb25uZWN0aW9uXCIsXHJcbiAgICBcIlBST1BFUlRJRVNcIjogXCJQcm9wZXJ0aWVzXCIsXHJcbiAgICBcIkJVU0lORVNTX1BST0NFU1NfTU9ERUxfQU5EX05PVEFUSU9OXCI6IFwiQnVzaW5lc3MgUHJvY2VzcyBNb2RlbCBhbmQgTm90YXRpb25cIixcclxuICAgIFwiQ09OTkVDVEVEX0FUVEFDSE1FTlRcIjogXCJDb25uZWN0ZWQgYXR0YWNobWVudFwiLFxyXG4gICAgXCJDT05ORUNURURfRE9DVU1FTlRfT1JfUFJPQ0VTU1wiOiBcIkNvbm5lY3RlZCBkb2N1bWVudCAvIHByb2Nlc3NcIixcclxuICAgIFwiREVMRVRFX0FUVEFDSE1FTlRcIjogXCJEZWxldGUgYXR0YWNobWVudFwiLFxyXG4gICAgXCJERUxFVEVfRE9DVU1FTlRfT1JfUFJPQ0VTU1wiOiBcIkRlbGV0ZSBkb2N1bWVudCAvIHByb2Nlc3NcIixcclxuICAgIFwiQ0hPT1NFX0FOQ0hPUl9JTl9URVhUX09QVElPTkFMXCI6IFwiQ2hvb3NlIGFuY2hvciBpbiBpbiB0ZXh0IChvcHRpb25hbClcIixcclxuICAgIFwiUkVMT0FEX0FOQ0hPUlNcIjogXCJSZWxvYWQgQW5jaG9yc1wiLFxyXG4gICAgXCJSRVNFVF9UT19PUklHSU5BTFwiOiBcIlJlc2V0IHRvIG9yaWdpbmFsXCIsXHJcbiAgICBcIkFVVE9fTEFZT1VUX0dSQVBIXCI6IFwiQXV0by1sYXlvdXQgR3JhcGhcIixcclxuICAgIFwiRlVMTFNDUkVFTlwiOiBcIkZ1bGxzY3JlZW5cIixcclxuICAgIFwiRkxPV0NIQVJUXCI6IFwiRmxvd2NoYXJ0XCIsXHJcbiAgICBcIkhBTkRCT09LXCI6IFwiSGFuZGJvb2tcIixcclxuICAgIFwiVE9HR0xFX0ZVTExfU0NSRUVOXCI6IFwiVG9nZ2xlIGZ1bGwgc2NyZWVuXCIsXHJcbiAgfSxcclxuICBcIlFNU0NLRURJVE9SX01FU1NBR0VcIjoge1xyXG4gICAgXCJDT05GSVJNX0RFTEVURV9URU1QTEFURVwiOiBcIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyB0ZW1wbGF0ZT9cIixcclxuICAgIFwiQ09ORklSTV9DSEFOR0VfVEVNUExBVEVcIjogXCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gYXBwbHkgdGhpcyB0ZW1wbGF0ZSB0byB0aGUgZWRpdG9yP1wiLFxyXG4gICAgXCJDT05GSVJNX0RFTEVURV9FWElTVElOR19DT05ORUNUSU9OXCI6IFwiWW91IG11c3QgcmVtb3ZlIGV4aXN0aW5nIGNvbm5lY3Rpb24gYmVmb3JlIHlvdSBkbyB0aGlzIGFjdGlvbi5cIixcclxuICAgIFwiQ09ORklSTV9ERUxFVEVfQVRUQUNITUVOVFwiOiBcIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBsaW5rP1wiLFxyXG4gICAgXCJDT05GSVJNX0RFTEVURV9ET0NVTUVOVF9PUl9QUk9DRVNTXCI6IFwiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGRvY3VtZW50IC8gcHJvY2Vzcz9cIixcclxuICB9LFxyXG4gIFwiRkxPV0NIQVJUXCI6IHtcclxuICAgIFwiUkVNT1ZFX0VMRU1FTlRcIjogJ0NsaWNrIHRvIHJlbW92ZSB0aGUgb2JqZWN0JyxcclxuICAgIFwiQ0xPTkVfQU5EX0NPTk5FQ1RcIjogJ0NsaWNrIGFuZCBkcmFnIHRvIGNsb25lIGFuZCBjb25uZWN0IHRoZSBvYmplY3QgaW4gb25lIGdvJyxcclxuICAgIFwiQ0xPTkVcIjogJ0NsaWNrIGFuZCBkcmFnIHRvIGNsb25lIHRoZSBvYmplY3QnLFxyXG4gICAgXCJCUkVBS19BTExfQ09OTkVDVElPTlNcIjogJ0NsaWNrIHRvIGJyZWFrIGFsbCBjb25uZWN0aW9ucyB0byBvdGhlciBvYmplY3RzJyxcclxuICAgIFwiQ09OTkVDVFwiOiAnQ2xpY2sgYW5kIGRyYWcgdG8gY29ubmVjdCB0aGUgb2JqZWN0JyxcclxuICAgIFwiUk9UQVRFXCI6ICdDbGljayBhbmQgZHJhZyB0byByb3RhdGUgdGhlIG9iamVjdCcsXHJcbiAgICBcIlJFTU9WRV9TRUxFQ1RFRF9FTEVNRU5UXCI6ICdDbGljayB0byByZW1vdmUgdGhlIHNlbGVjdGVkIGVsZW1lbnRzJyxcclxuICAgIFwiUk9UQVRFX1NFTEVDVEVEX0VMRU1FTlRcIjogJ0NsaWNrIGFuZCBkcmFnIHRvIHJvdGF0ZSB0aGUgc2VsZWN0ZWQgZWxlbWVudHMnLFxyXG4gICAgXCJSRVNJWkVfU0VMRUNURURfRUxFTUVOVFwiOiAnQ2xpY2sgYW5kIGRyYWcgdG8gcmVzaXplIHRoZSBzZWxlY3RlZCBlbGVtZW50cycsXHJcbiAgICBcIlJFQ1RBTkdMRVwiOiAnUmVjdGFuZ2xlJyxcclxuICAgIFwiRUxMSVBTRVwiOiAnRWxsaXBzZScsXHJcbiAgICBcIlJFQ1RBTkdMRV9XSVRIX1BPUlRTXCI6ICdSZWN0YW5nbGUgd2l0aCBwb3J0cycsXHJcbiAgICBcIkVMTElQU0VfV0lUSF9QT1JUU1wiOiAnRWxsaXBzZSB3aXRoIHBvcnRzJyxcclxuICAgIFwiUkhPTUJVU1wiOiAnUmhvbWJ1cycsXHJcbiAgICBcIkNZTElOREVSXCI6ICdDeWxpbmRlcicsXHJcbiAgICBcIklNQUdFXCI6ICdJbWFnZScsXHJcbiAgICBcIkNBUkRcIjogJ0NhcmQnLFxyXG4gICAgXCJJQ09OXCI6ICdJY29uJyxcclxuICAgIFwiUkVDVEFOR0xFX1dJVEhfSEVBREVSXCI6ICdSZWN0YW5nbGUgd2l0aCBoZWFkZXInLFxyXG4gICAgXCJTVEFSVF9TVEFURVwiOiAnU3RhcnQgU3RhdGUnLFxyXG4gICAgXCJFTkRfU1RBVEVcIjogJ0VuZCBTdGF0ZScsXHJcbiAgICBcIlNUQVRFXCI6ICdTdGF0ZScsXHJcbiAgICBcIlBMQUNFXCI6ICdQbGFjZScsXHJcbiAgICBcIlRSQU5TSVRJT05cIjogJ1RyYW5zaXRpb24nLFxyXG4gICAgXCJFTlRJVFlcIjogJ0VudGl0eScsXHJcbiAgICBcIldFQUtfRU5USVRZXCI6ICdXZWFrIEVudGl0eScsXHJcbiAgICBcIlJFTEFUSU9OU0hJUFwiOiAnUmVsYXRpb25zaGlwJyxcclxuICAgIFwiSURFTlRJRllJTkdfUkVMQVRJT05TSElQXCI6ICdJZGVudGlmeWluZyBSZWxhdGlvbnNoaXAnLFxyXG4gICAgXCJJU0FcIjogJ0lTQScsXHJcbiAgICBcIktFWVwiOiAnS2V5JyxcclxuICAgIFwiTk9STUFMXCI6ICdOb3JtYWwnLFxyXG4gICAgXCJNVUxUSVZBTFVFRFwiOiAnTXVsdGl2YWx1ZWQnLFxyXG4gICAgXCJERVJJVkVEXCI6ICdEZXJpdmVkJyxcclxuICAgIFwiQ0xBU1NcIjogJ0NsYXNzJyxcclxuICAgIFwiSU5URVJGQUNFXCI6ICdJbnRlcmZhY2UnLFxyXG4gICAgXCJBQlNUUkFDVFwiOiAnQWJzdHJhY3QnLFxyXG4gICAgXCJNRU1CRVJcIjogJ01lbWJlcicsXHJcbiAgICBcIlVORE9cIjogJ1VuZG8nLFxyXG4gICAgXCJSRURPXCI6ICdSZWRvJyxcclxuICAgIFwiQ0xFQVJfUEFQRVJcIjogJ0NsZWFyIFBhcGVyJyxcclxuICAgIFwiRVhQT1JUX1NWR1wiOiAnT3BlbiBhcyBTVkcgaW4gYSBwb3AtdXAnLFxyXG4gICAgXCJFWFBPUlRfUE5HXCI6ICdPcGVuIGFzIFBORyBpbiBhIHBvcC11cCcsXHJcbiAgICBcIlBSSU5UXCI6ICdPcGVuIGEgUHJpbnQgRGlhbG9nJyxcclxuICAgIFwiU0VORF9UT19GUk9OVFwiOiAnQnJpbmcgT2JqZWN0IHRvIEZyb250JyxcclxuICAgIFwiU0VORF9UT19CQUNLXCI6ICdTZW5kIE9iamVjdCB0byBCYWNrJyxcclxuICAgIFwiQVVUT19MQVlPVVRfR1JBUEhcIjogJ0F1dG8tbGF5b3V0IEdyYXBoJyxcclxuICAgIFwiWk9PTV9UT19GSVRcIjogJ1pvb20gVG8gRml0JyxcclxuICAgIFwiWk9PTV9PVVRcIjogJ1pvb20gT3V0JyxcclxuICAgIFwiWk9PTV9JTlwiOiAnWm9vbSBJbicsXHJcbiAgICBcIkNIQU5HRV9HUklEX1NJWkVcIjogJ0NoYW5nZSBHcmlkIFNpemUnLFxyXG4gICAgXCJTTkFQTElORVNcIjogJ0VuYWJsZS9EaXNhYmxlIFNuYXBsaW5lcycsXHJcbiAgICBcIkZVTExTQ1JFRU5cIjogJ1RvZ2dsZSBGdWxsc2NyZWVuIE1vZGUnLFxyXG4gICAgXCJTRUxFQ1RfVEVNUExBVEVcIjogXCJTZWxlY3QgdGVtcGxhdGVcIixcclxuICAgIFwiREVMRVRFX1RFTVBMQVRFXCI6IFwiRGVsZXRlIHRlbXBsYXRlXCIsXHJcbiAgICBcIlNBVkVfQVNfVEVNUExBVEVcIjogXCJTYXZlIGFzIHRlbXBsYXRlXCIsXHJcbiAgICBcIlJFU0VUX1RPX0xBU1RfU0FWRVwiOiBcIlJlc2V0IHRvIGxhc3Qgc2F2ZWRcIlxyXG4gIH1cclxufVxyXG4iXX0=