igniteui-angular 16.0.25 → 16.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/grids/columns/column-group.component.mjs +5 -1
- package/esm2022/lib/grids/columns/column.component.mjs +10 -2
- package/esm2022/lib/grids/common/grid.interface.mjs +1 -1
- package/esm2022/lib/grids/grid/grid-row.component.mjs +3 -3
- package/esm2022/lib/grids/grid-base.directive.mjs +3 -2
- package/esm2022/lib/grids/headers/grid-header-row.component.mjs +3 -3
- package/esm2022/lib/grids/headers/pipes.mjs +2 -3
- package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.component.mjs +18 -10
- package/esm2022/lib/grids/hierarchical-grid/hierarchical-row.component.mjs +3 -3
- package/esm2022/lib/grids/pivot-grid/pivot-header-row.component.mjs +3 -3
- package/esm2022/lib/grids/pivot-grid/pivot-row.component.mjs +3 -3
- package/esm2022/lib/grids/summaries/summary-row.component.mjs +3 -3
- package/esm2022/lib/grids/tree-grid/tree-grid-row.component.mjs +3 -3
- package/esm2022/lib/tree/public_api.mjs +5 -4
- package/esm2022/lib/tree/tree-node/tree-node.component.mjs +2 -2
- package/esm2022/lib/tree/tree.module.mjs +1 -1
- package/fesm2022/igniteui-angular.mjs +52 -31
- package/fesm2022/igniteui-angular.mjs.map +1 -1
- package/lib/grids/columns/column-group.component.d.ts +2 -0
- package/lib/grids/columns/column.component.d.ts +2 -0
- package/lib/grids/common/grid.interface.d.ts +5 -0
- package/lib/grids/grid-base.directive.d.ts +0 -1
- package/lib/grids/hierarchical-grid/hierarchical-grid.component.d.ts +3 -1
- package/lib/tree/public_api.d.ts +3 -3
- package/lib/tree/tree.module.d.ts +1 -1
- package/package.json +3 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
2
|
export const IGX_GRID_BASE = new InjectionToken('IgxGridBaseToken');
|
|
3
3
|
export const IGX_GRID_SERVICE_BASE = new InjectionToken('IgxGridServiceBaseToken');
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL2dyaWQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sRUFBK0MsY0FBYyxFQUE0QyxNQUFNLGVBQWUsQ0FBQztBQTZCdEksTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFXLGtCQUFrQixDQUFDLENBQUM7QUFDOUUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQWtCLHlCQUF5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2x1bW5QaW5uaW5nUG9zaXRpb24sIEZpbHRlck1vZGUsIEdyaWRQYWdpbmdNb2RlLCBHcmlkU2VsZWN0aW9uTW9kZSwgR3JpZFN1bW1hcnlDYWxjdWxhdGlvbk1vZGUsIEdyaWRTdW1tYXJ5UG9zaXRpb24sIEdyaWRWYWxpZGF0aW9uVHJpZ2dlciwgUm93UGlubmluZ1Bvc2l0aW9uIH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQge1xuICAgIElTZWFyY2hJbmZvLCBJR3JpZENlbGxFdmVudEFyZ3MsIElSb3dTZWxlY3Rpb25FdmVudEFyZ3MsIElDb2x1bW5TZWxlY3Rpb25FdmVudEFyZ3MsIElHcmlkRWRpdEV2ZW50QXJncyxcbiAgICBJUGluQ29sdW1uQ2FuY2VsbGFibGVFdmVudEFyZ3MsIElDb2x1bW5WaXNpYmlsaXR5Q2hhbmdlZEV2ZW50QXJncywgSUNvbHVtblZpc2liaWxpdHlDaGFuZ2luZ0V2ZW50QXJncyxcbiAgICBJUm93RHJhZ0VuZEV2ZW50QXJncywgSUNvbHVtbk1vdmluZ1N0YXJ0RXZlbnRBcmdzLCBJQ29sdW1uTW92aW5nRW5kRXZlbnRBcmdzLFxuICAgIElHcmlkRWRpdERvbmVFdmVudEFyZ3MsIElSb3dEYXRhRXZlbnRBcmdzLCBJR3JpZEtleWRvd25FdmVudEFyZ3MsIElSb3dEcmFnU3RhcnRFdmVudEFyZ3MsXG4gICAgSUNvbHVtbk1vdmluZ0V2ZW50QXJncywgSVBpbkNvbHVtbkV2ZW50QXJncyxcbiAgICBJQWN0aXZlTm9kZUNoYW5nZUV2ZW50QXJncyxcbiAgICBJQ2VsbFBvc2l0aW9uLCBJRmlsdGVyaW5nRXZlbnRBcmdzLCBJQ29sdW1uUmVzaXplRXZlbnRBcmdzLCBJUm93VG9nZ2xlRXZlbnRBcmdzLCBJR3JpZFRvb2xiYXJFeHBvcnRFdmVudEFyZ3MsIElQaW5Sb3dFdmVudEFyZ3Ncbn0gZnJvbSAnLi4vY29tbW9uL2V2ZW50cyc7XG5pbXBvcnQgeyBEaXNwbGF5RGVuc2l0eSwgSURlbnNpdHlDaGFuZ2VkRXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vY29yZS9kZW5zaXR5JztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdGlvblRva2VuLCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUsIElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb25zLXRyZWUnO1xuaW1wb3J0IHsgSUdyaWRSZXNvdXJjZVN0cmluZ3MgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4vZ3JpZC1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgSUdyb3VwaW5nRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGluZy1leHByZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJR3JvdXBCeVJlY29yZCB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LXJlY29yZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdyb3VwQnlFeHBhbmRTdGF0ZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LWV4cGFuZC1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWd4UGFnaW5hdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4Q2VsbCwgSWd4RWRpdFJvdyB9IGZyb20gJy4vY3J1ZC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRTZWxlY3Rpb25SYW5nZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgRmlsdGVyaW5nTG9naWMgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElGaWx0ZXJpbmdTdHJhdGVneSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctc3RyYXRlZ3knO1xuaW1wb3J0IHsgRHJvcFBvc2l0aW9uLCBJZ3hDb2x1bW5Nb3ZpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vbW92aW5nL21vdmluZy5zZXJ2aWNlJztcbmltcG9ydCB7IElneE92ZXJsYXlPdXRsZXREaXJlY3RpdmUsIElneFRvZ2dsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdG9nZ2xlL3RvZ2dsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSVRyZWVHcmlkUmVjb3JkIH0gZnJvbSAnLi4vdHJlZS1ncmlkL3RyZWUtZ3JpZC5pbnRlcmZhY2VzJztcbmltcG9ydCB7IFN0YXRlLCBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgRGF0YVR5cGUsIEdyaWRDb2x1bW5EYXRhVHlwZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9kYXRhLXV0aWwnO1xuaW1wb3J0IHsgSWd4RmlsdGVyaW5nT3BlcmFuZCB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctY29uZGl0aW9uJztcbmltcG9ydCB7IElDb2x1bW5QaXBlQXJncywgSUZpZWxkUGlwZUFyZ3MsIElTb3J0aW5nT3B0aW9ucywgTVJMUmVzaXplQ29sdW1uSW5mbyB9IGZyb20gJy4uL2NvbHVtbnMvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBJZ3hTdW1tYXJ5UmVzdWx0IH0gZnJvbSAnLi4vc3VtbWFyaWVzL2dyaWQtc3VtbWFyeSc7XG5pbXBvcnQgeyBJU29ydGluZ0V4cHJlc3Npb24sIElTb3J0aW5nU3RyYXRlZ3ksIFNvcnRpbmdEaXJlY3Rpb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvc29ydGluZy1zdHJhdGVneSc7XG5pbXBvcnQgeyBJR3JpZEdyb3VwaW5nU3RyYXRlZ3ksIElHcmlkU29ydGluZ1N0cmF0ZWd5IH0gZnJvbSAnLi9zdHJhdGVneSc7XG5pbXBvcnQgeyBJRm9yT2ZTdGF0ZSwgSWd4R3JpZEZvck9mRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9mb3Itb2YvZm9yX29mLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPdmVybGF5U2V0dGluZ3MgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vdmVybGF5L3V0aWxpdGllcyc7XG5pbXBvcnQgeyBJRGltZW5zaW9uc0NoYW5nZSwgSVBpdm90Q29uZmlndXJhdGlvbiwgSVBpdm90RGltZW5zaW9uLCBJUGl2b3RLZXlzLCBJUGl2b3RWYWx1ZSwgSVZhbHVlc0NoYW5nZSwgUGl2b3REaW1lbnNpb25UeXBlIH0gZnJvbSAnLi4vcGl2b3QtZ3JpZC9waXZvdC1ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRGF0YUNsb25lU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZGF0YS1jbG9uZS1zdHJhdGVneSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSWd4R3JpZFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vZ3JpZC9ncmlkLXZhbGlkYXRpb24uc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBJR1hfR1JJRF9CQVNFID0gbmV3IEluamVjdGlvblRva2VuPEdyaWRUeXBlPignSWd4R3JpZEJhc2VUb2tlbicpO1xuZXhwb3J0IGNvbnN0IElHWF9HUklEX1NFUlZJQ0VfQkFTRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxHcmlkU2VydmljZVR5cGU+KCdJZ3hHcmlkU2VydmljZUJhc2VUb2tlbicpO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQYXRoU2VnbWVudCB7XG4gICAgcm93SUQ6IGFueTtcbiAgICByb3dJc2xhbmRLZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR3JpZERhdGFCaW5kYWJsZSB7XG4gICAgZGF0YTogYW55W10gfCBudWxsO1xuICAgIGdldCBmaWx0ZXJlZERhdGEoKTogYW55W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VsbFR5cGUge1xuICAgIHZhbHVlOiBhbnk7XG4gICAgZWRpdFZhbHVlOiBhbnk7XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgYWN0aXZlOiBib29sZWFuO1xuICAgIGVkaXRhYmxlOiBib29sZWFuO1xuICAgIGVkaXRNb2RlOiBib29sZWFuO1xuICAgIG5hdGl2ZUVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgICBjb2x1bW46IENvbHVtblR5cGU7XG4gICAgcm93OiBSb3dUeXBlO1xuICAgIGdyaWQ6IEdyaWRUeXBlO1xuICAgIGlkPzogeyByb3dJRDogYW55OyBjb2x1bW5JRDogbnVtYmVyOyByb3dJbmRleDogbnVtYmVyIH07XG4gICAgY2VsbElEPzogYW55O1xuICAgIHJlYWRvbmx5IHZhbGlkYXRpb24/OiBJR3JpZFZhbGlkYXRpb25TdGF0ZTtcbiAgICByZWFkb25seT86IGJvb2xlYW47XG4gICAgdGl0bGU/OiBhbnk7XG4gICAgd2lkdGg6IHN0cmluZztcbiAgICB2aXNpYmxlQ29sdW1uSW5kZXg/OiBudW1iZXI7XG4gICAgdXBkYXRlOiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgICBzZXRFZGl0TW9kZT8odmFsdWU6IGJvb2xlYW4pOiB2b2lkO1xuICAgIGNhbGN1bGF0ZVNpemVUb0ZpdD8ocmFuZ2U6IGFueSk6IG51bWJlcjtcbiAgICBhY3RpdmF0ZT8oZXZlbnQ6IEZvY3VzRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZDtcbiAgICBvbkRvdWJsZUNsaWNrPyhldmVudDogTW91c2VFdmVudCk6IHZvaWQ7XG4gICAgb25DbGljaz8oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlclR5cGUge1xuICAgIG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIGNvbHVtbjogQ29sdW1uVHlwZTtcbiAgICBkZW5zaXR5OiBEaXNwbGF5RGVuc2l0eTtcbiAgICBzb3J0ZWQ6IGJvb2xlYW47XG4gICAgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICB0aXRsZTogYm9vbGVhbjtcbiAgICBzb3J0RGlyZWN0aW9uOiBTb3J0aW5nRGlyZWN0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvd1R5cGUge1xuICAgIG5hdGl2ZUVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIHZpZXdJbmRleDogbnVtYmVyO1xuICAgIGlzR3JvdXBCeVJvdz86IGJvb2xlYW47XG4gICAgaXNTdW1tYXJ5Um93PzogYm9vbGVhbjtcbiAgICBzdW1tYXJpZXM/OiBNYXA8c3RyaW5nLCBJZ3hTdW1tYXJ5UmVzdWx0W10+O1xuICAgIGdyb3VwUm93PzogSUdyb3VwQnlSZWNvcmQ7XG4gICAga2V5PzogYW55O1xuICAgIHJlYWRvbmx5IHZhbGlkYXRpb24/OiBJR3JpZFZhbGlkYXRpb25TdGF0ZTtcbiAgICBkYXRhPzogYW55O1xuICAgIGNlbGxzPzogUXVlcnlMaXN0PENlbGxUeXBlPiB8IENlbGxUeXBlW107XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIHZpcnREaXJSb3c/OiBJZ3hHcmlkRm9yT2ZEaXJlY3RpdmU8Q29sdW1uVHlwZSwgQ29sdW1uVHlwZVtdPjtcbiAgICBwaW5uZWQ/OiBib29sZWFuO1xuICAgIHNlbGVjdGVkPzogYm9vbGVhbjtcbiAgICBleHBhbmRlZD86IGJvb2xlYW47XG4gICAgZGVsZXRlZD86IGJvb2xlYW47XG4gICAgaW5FZGl0TW9kZT86IGJvb2xlYW47XG4gICAgY2hpbGRyZW4/OiBSb3dUeXBlW107XG4gICAgcGFyZW50PzogUm93VHlwZTtcbiAgICBoYXNDaGlsZHJlbj86IGJvb2xlYW47XG4gICAgdHJlZVJvdz86IElUcmVlR3JpZFJlY29yZDtcbiAgICBhZGRSb3dVST86IGJvb2xlYW47XG4gICAgZm9jdXNlZD86IGJvb2xlYW47XG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgb25Sb3dTZWxlY3RvckNsaWNrPzogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgIG9uQ2xpY2s/OiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgYmVnaW5BZGRSb3c/OiAoKSA9PiB2b2lkO1xuICAgIHVwZGF0ZT86ICh2YWx1ZTogYW55KSA9PiB2b2lkO1xuICAgIGRlbGV0ZT86ICgpID0+IGFueTtcbiAgICBwaW4/OiAoKSA9PiB2b2lkO1xuICAgIHVucGluPzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWVsZFR5cGUge1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgaGVhZGVyPzogc3RyaW5nO1xuICAgIGRhdGFUeXBlOiBEYXRhVHlwZTtcbiAgICBmaWx0ZXJzOiBJZ3hGaWx0ZXJpbmdPcGVyYW5kO1xuICAgIHBpcGVBcmdzOiBJRmllbGRQaXBlQXJncztcbiAgICBkZWZhdWx0VGltZUZvcm1hdDogc3RyaW5nO1xuICAgIGRlZmF1bHREYXRlVGltZUZvcm1hdDogc3RyaW5nO1xuXG4gICAgZm9ybWF0dGVyKHZhbHVlOiBhbnksIHJvd0RhdGE/OiBhbnkpOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uVHlwZSBleHRlbmRzIEZpZWxkVHlwZSB7XG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgY2hpbGRyZW46IFF1ZXJ5TGlzdDxDb2x1bW5UeXBlPjtcbiAgICBhbGxDaGlsZHJlbjogQ29sdW1uVHlwZVtdO1xuICAgIC8vIFRZUEVcbiAgICBoZWFkZXJHcm91cDogYW55O1xuICAgIC8vIFRZUEVcbiAgICBoZWFkZXJDZWxsOiBhbnk7XG4gICAgdmFsaWRhdG9yczogYW55W107XG5cbiAgICBoZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBjb2xsYXBzaWJsZUluZGljYXRvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBoZWFkZXJDbGFzc2VzOiBhbnk7XG4gICAgaGVhZGVyU3R5bGVzOiBhbnk7XG4gICAgaGVhZGVyR3JvdXBDbGFzc2VzOiBhbnk7XG4gICAgaGVhZGVyR3JvdXBTdHlsZXM6IGFueTtcblxuICAgIGNhbGNXaWR0aDogYW55O1xuICAgIG1pbldpZHRoUHg6IG51bWJlcjtcbiAgICBtYXhXaWR0aFB4OiBudW1iZXI7XG4gICAgbWluV2lkdGg6IHN0cmluZztcbiAgICBtYXhXaWR0aDogc3RyaW5nO1xuICAgIG1pbldpZHRoUGVyY2VudDogbnVtYmVyO1xuICAgIG1heFdpZHRoUGVyY2VudDogbnVtYmVyO1xuXG4gICAgaGVhZGVyPzogc3RyaW5nO1xuICAgIGluZGV4OiBudW1iZXI7XG4gICAgZGF0YVR5cGU6IEdyaWRDb2x1bW5EYXRhVHlwZTtcbiAgICBpbmxpbmVFZGl0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICB2aXNpYmxlSW5kZXg6IG51bWJlcjtcbiAgICBjb2xsYXBzaWJsZT86IGJvb2xlYW47XG4gICAgZWRpdGFibGU6IGJvb2xlYW47XG4gICAgcmVzaXphYmxlOiBib29sZWFuO1xuICAgIHNlYXJjaGFibGU6IGJvb2xlYW47XG4gICAgY29sdW1uR3JvdXA6IGJvb2xlYW47XG4gICAgLyoqIEBkZXByZWNhdGVkIGluIHZlcnNpb24gMTMuMS4wLiBVc2UgYElneEdyaWRDb21wb25lbnQubW92aW5nYCBpbnN0ZWFkLiovXG4gICAgbW92YWJsZTogYm9vbGVhbjtcbiAgICBncm91cGFibGU6IGJvb2xlYW47XG4gICAgc29ydGFibGU6IGJvb2xlYW47XG4gICAgZmlsdGVyYWJsZTogYm9vbGVhbjtcbiAgICBoaWRkZW46IGJvb2xlYW47XG4gICAgZGlzYWJsZVBpbm5pbmc6IGJvb2xlYW47XG4gICAgZGlzYWJsZUhpZGluZzogYm9vbGVhbjtcbiAgICBzb3J0U3RyYXRlZ3k6IElTb3J0aW5nU3RyYXRlZ3k7XG4gICAgc29ydGluZ0lnbm9yZUNhc2U6IGJvb2xlYW47XG4gICAgZmlsdGVyQ2VsbDogYW55O1xuICAgIGZpbHRlcmluZ0lnbm9yZUNhc2U6IGJvb2xlYW47XG4gICAgZmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlOiBGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU7XG4gICAgaGFzU3VtbWFyeTogYm9vbGVhbjtcbiAgICBzdW1tYXJpZXM6IGFueTtcbiAgICBzdW1tYXJ5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcGlubmVkOiBib29sZWFuO1xuICAgIGV4cGFuZGVkOiBib29sZWFuO1xuICAgIHNlbGVjdGVkOiBib29sZWFuO1xuICAgIHNlbGVjdGFibGU6IGJvb2xlYW47XG4gICAgY29sdW1uTGF5b3V0OiBib29sZWFuO1xuICAgIGxldmVsOiBudW1iZXI7XG4gICAgcm93U3RhcnQ6IG51bWJlcjtcbiAgICByb3dFbmQ6IG51bWJlcjtcbiAgICBjb2xTdGFydDogbnVtYmVyO1xuICAgIGNvbEVuZDogbnVtYmVyO1xuICAgIGdyaWRSb3dTcGFuOiBudW1iZXI7XG4gICAgZ3JpZENvbHVtblNwYW46IG51bWJlcjtcbiAgICBjb2x1bW5MYXlvdXRDaGlsZDogYm9vbGVhbjtcbiAgICB3aWR0aDogc3RyaW5nO1xuICAgIHRvcExldmVsUGFyZW50PzogQ29sdW1uVHlwZTtcbiAgICBwYXJlbnQ/OiBDb2x1bW5UeXBlO1xuICAgIHBpcGVBcmdzOiBJQ29sdW1uUGlwZUFyZ3M7XG4gICAgaGFzTmVzdGVkUGF0aDogYm9vbGVhbjtcbiAgICBhZGRpdGlvbmFsVGVtcGxhdGVDb250ZXh0OiBhbnk7XG4gICAgaXNMYXN0UGlubmVkOiBib29sZWFuO1xuICAgIGlzRmlyc3RQaW5uZWQ6IGJvb2xlYW47XG4gICAgYXBwbHlTZWxlY3RhYmxlQ2xhc3M6IGJvb2xlYW47XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBncm91cGluZ0NvbXBhcmVyOiAoYTogYW55LCBiOiBhbnkpID0+IG51bWJlcjtcblxuICAgIGZpbHRlckNlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIG1vdmUoaW5kZXg6IG51bWJlcik6IHZvaWQ7XG4gICAgZ2V0QXV0b1NpemUoKTogc3RyaW5nO1xuICAgIGdldFJlc2l6YWJsZUNvbFVuZGVyRW5kKCk6IE1STFJlc2l6ZUNvbHVtbkluZm9bXTtcbiAgICBnZXRDZWxsV2lkdGgoKTogc3RyaW5nO1xuICAgIGdldEdyaWRUZW1wbGF0ZShpc1JvdzogYm9vbGVhbik6IHN0cmluZztcbiAgICB0b2dnbGVWaXNpYmlsaXR5KHZhbHVlPzogYm9vbGVhbik6IHZvaWQ7XG4gICAgcG9wdWxhdGVWaXNpYmxlSW5kZXhlcz8oKTogdm9pZDtcbiAgICBwaW4oaW5kZXg/OiBudW1iZXIpOiBib29sZWFuO1xuICAgIHVucGluKGluZGV4PzogbnVtYmVyKTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR3JpZEZvcm1Hcm91cENyZWF0ZWRFdmVudEFyZ3Mge1xuICAgIGZvcm1Hcm91cDogRm9ybUdyb3VwLFxuICAgIG93bmVyOiBHcmlkVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkVmFsaWRhdGlvblN0YXR1c0V2ZW50QXJncyB7XG4gICAgc3RhdHVzOiBWYWxpZGF0aW9uU3RhdHVzLFxuICAgIG93bmVyOiBHcmlkVHlwZVxufVxuXG5leHBvcnQgdHlwZSBWYWxpZGF0aW9uU3RhdHVzID0gJ1ZBTElEJyB8ICdJTlZBTElEJztcblxuZXhwb3J0IGludGVyZmFjZSBJR3JpZFZhbGlkYXRpb25TdGF0ZSB7XG4gICAgcmVhZG9ubHkgc3RhdHVzOiBWYWxpZGF0aW9uU3RhdHVzO1xuICAgIHJlYWRvbmx5IGVycm9ycz86IFZhbGlkYXRpb25FcnJvcnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJlY29yZFZhbGlkYXRpb25TdGF0ZSBleHRlbmRzIElHcmlkVmFsaWRhdGlvblN0YXRlIHtcbiAgICBrZXk6IGFueTtcbiAgICBmaWVsZHM6IElGaWVsZFZhbGlkYXRpb25TdGF0ZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGaWVsZFZhbGlkYXRpb25TdGF0ZSBleHRlbmRzIElHcmlkVmFsaWRhdGlvblN0YXRlIHtcbiAgICBmaWVsZDogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZFNlcnZpY2VUeXBlIHtcblxuICAgIGdyaWQ6IEdyaWRUeXBlO1xuICAgIGNydWRTZXJ2aWNlOiBhbnk7XG4gICAgY21zOiBJZ3hDb2x1bW5Nb3ZpbmdTZXJ2aWNlO1xuXG4gICAgZ2V0X2RhdGEoKTogYW55W107XG4gICAgZ2V0X2FsbF9kYXRhKGluY2x1ZGVUcmFuc2FjdGlvbnM/OiBib29sZWFuKTogYW55W107XG4gICAgZ2V0X2NvbHVtbl9ieV9uYW1lKG5hbWU6IHN0cmluZyk6IENvbHVtblR5cGU7XG4gICAgZ2V0Um93RGF0YShpZDogYW55KTogYW55O1xuICAgIGdldF9yZWNfYnlfaWQoaWQ6IGFueSk6IGFueTtcbiAgICBnZXRfcm93X2lkKHJvd0RhdGE6IGFueSk6IGFueTtcbiAgICBnZXRfcm93X2J5X2luZGV4KHJvd1NlbGVjdG9yOiBhbnkpOiBSb3dUeXBlO1xuICAgIGdldF9yb3dfYnlfa2V5KHJvd1NlbGVjdG9yOiBhbnkpOiBSb3dUeXBlO1xuICAgIGdldF9yZWNfaW5kZXhfYnlfaWQocGs6IHN0cmluZyB8IG51bWJlciwgZGF0YUNvbGxlY3Rpb24/OiBhbnlbXSk6IG51bWJlcjtcbiAgICBnZXRfcmVjX2lkX2J5X2luZGV4KGluZGV4OiBudW1iZXIsIGRhdGFDb2xsZWN0aW9uPzogYW55W10pOiBhbnk7XG4gICAgZ2V0X3Jvd19pbmRleF9pbl9kYXRhKHJvd0lEOiBhbnksIGRhdGFDb2xsZWN0aW9uPzogYW55W10pOiBudW1iZXI7XG4gICAgZ2V0X2NlbGxfYnlfa2V5KHJvd1NlbGVjdG9yOiBhbnksIGZpZWxkOiBzdHJpbmcpOiBDZWxsVHlwZTtcbiAgICBnZXRfY2VsbF9ieV9pbmRleChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JRDogbnVtYmVyIHwgc3RyaW5nKTogQ2VsbFR5cGU7XG4gICAgZ2V0X2NlbGxfYnlfdmlzaWJsZV9pbmRleChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTtcbiAgICBzZXRfZ3JvdXByb3dfZXhwYW5zaW9uX3N0YXRlPyhncm91cFJvdzogSUdyb3VwQnlSZWNvcmQsIHZhbHVlOiBib29sZWFuKTogdm9pZDtcbiAgICByb3dfZGVsZXRlZF90cmFuc2FjdGlvbihpZDogYW55KTogYm9vbGVhbjtcbiAgICBhZGRSb3dUb0RhdGEocm93RGF0YTogYW55LCBwYXJlbnRJRD86IGFueSk6IHZvaWQ7XG4gICAgZGVsZXRlUm93QnlJZChpZDogYW55KTogYW55O1xuICAgIGdldF9yb3dfZXhwYW5zaW9uX3N0YXRlKGlkOiBhbnkpOiBib29sZWFuO1xuICAgIHNldF9yb3dfZXhwYW5zaW9uX3N0YXRlKGlkOiBhbnksIGV4cGFuZGVkOiBib29sZWFuLCBldmVudD86IEV2ZW50KTogdm9pZDtcbiAgICBnZXRfc3VtbWFyeV9kYXRhKCk6IGFueVtdO1xuXG4gICAgcHJlcGFyZV9zb3J0aW5nX2V4cHJlc3Npb24oc3RhdGVDb2xsZWN0aW9uczogQXJyYXk8QXJyYXk8YW55Pj4sIGV4cHJlc3Npb246IElTb3J0aW5nRXhwcmVzc2lvbik6IHZvaWQ7XG4gICAgc29ydChleHByZXNzaW9uOiBJU29ydGluZ0V4cHJlc3Npb24pOiB2b2lkO1xuICAgIHNvcnRfbXVsdGlwbGUoZXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdKTogdm9pZDtcbiAgICBjbGVhcl9zb3J0KGZpZWxkTmFtZTogc3RyaW5nKTogdm9pZDtcblxuICAgIGdldF9waW5fcm93X2V2ZW50X2FyZ3Mocm93SUQ6IGFueSwgaW5kZXg/OiBudW1iZXIsIHJvdz86IFJvd1R5cGUsIHBpbm5lZD86IGJvb2xlYW4pOiBJUGluUm93RXZlbnRBcmdzO1xuXG4gICAgZmlsdGVyRGF0YUJ5RXhwcmVzc2lvbnMoZXhwcmVzc2lvbnNUcmVlOiBJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlKTogYW55W107XG4gICAgc29ydERhdGFCeUV4cHJlc3Npb25zKGRhdGE6IGFueVtdLCBleHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW10pOiBhbnlbXTtcblxuICAgIHVwZGF0ZV9jZWxsKGNlbGw6IElneENlbGwpOiBJR3JpZEVkaXRFdmVudEFyZ3M7XG4gICAgdXBkYXRlX3Jvdyhyb3c6IElneEVkaXRSb3csIHZhbHVlOiBhbnksIGV2ZW50PzogRXZlbnQpOiBJR3JpZEVkaXRFdmVudEFyZ3M7XG5cbiAgICBleHBhbmRfcGF0aF90b19yZWNvcmQ/KHJlY29yZDogSVRyZWVHcmlkUmVjb3JkKTogdm9pZDtcbiAgICBnZXRfc2VsZWN0ZWRfY2hpbGRyZW4/KHJlY29yZDogSVRyZWVHcmlkUmVjb3JkLCBzZWxlY3RlZFJvd0lEczogYW55W10pOiB2b2lkO1xuICAgIGdldF9ncm91cEJ5X3JlY29yZF9pZD8oZ1JvdzogSUdyb3VwQnlSZWNvcmQpOiBzdHJpbmc7XG4gICAgcmVtb3ZlX2dyb3VwaW5nX2V4cHJlc3Npb24/KGZpZWxkTmFtZTogc3RyaW5nKTogdm9pZDtcbiAgICBjbGVhcl9ncm91cGJ5PyhmaWVsZDogc3RyaW5nIHwgYW55KTogdm9pZDtcbiAgICBnZXRQYXJlbnRSb3dJZD8oY2hpbGQ6IEdyaWRUeXBlKTogYW55O1xuICAgIGdldENoaWxkR3JpZHM/KGluRGVwdGg/OiBib29sZWFuKTogR3JpZFR5cGVbXTtcbiAgICBnZXRDaGlsZEdyaWQ/KHBhdGg6IElQYXRoU2VnbWVudFtdKTogR3JpZFR5cGU7XG5cbiAgICB1bnNldENoaWxkUm93SXNsYW5kPyhyb3dJc2xhbmQ6IEdyaWRUeXBlKTogdm9pZDtcbiAgICByZWdpc3RlckNoaWxkUm93SXNsYW5kPyhyb3dJc2xhbmQ6IEdyaWRUeXBlKTogdm9pZDtcbn1cblxuXG4vKipcbiAqIEFuIGludGVyZmFjZSBkZXNjcmliaW5nIGEgR3JpZCB0eXBlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZFR5cGUgZXh0ZW5kcyBJR3JpZERhdGFCaW5kYWJsZSB7XG4gICAgZGlzcGxheURlbnNpdHk6IERpc3BsYXlEZW5zaXR5O1xuICAgIGxvY2FsZTogc3RyaW5nO1xuICAgIHJlc291cmNlU3RyaW5nczogSUdyaWRSZXNvdXJjZVN0cmluZ3M7XG4gICAgbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgcm93RWRpdGFibGU6IGJvb2xlYW47XG4gICAgcm9vdFN1bW1hcmllc0VuYWJsZWQ6IGJvb2xlYW47XG4gICAgYWxsb3dGaWx0ZXJpbmc6IGJvb2xlYW47XG4gICAgcm93RHJhZ2dhYmxlOiBib29sZWFuO1xuICAgIHByaW1hcnlLZXk6IGFueTtcbiAgICBpZDogc3RyaW5nO1xuICAgIHJlbmRlcmVkUm93SGVpZ2h0OiBudW1iZXI7XG4gICAgcGlwZVRyaWdnZXI6IG51bWJlcjtcbiAgICBzdW1tYXJ5UGlwZVRyaWdnZXI6IG51bWJlcjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBncm91cGFibGVQaXBlVHJpZ2dlcjogbnVtYmVyO1xuICAgIGZpbHRlcmluZ1BpcGVUcmlnZ2VyOiBudW1iZXI7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGFzQ29sdW1uTGF5b3V0czogYm9vbGVhbjtcbiAgICBtb3Zpbmc6IGJvb2xlYW47XG4gICAgaXNMb2FkaW5nOiBib29sZWFuO1xuICAgIGRhdGFDbG9uZVN0cmF0ZWd5OiBJRGF0YUNsb25lU3RyYXRlZ3k7XG5cbiAgICByZWFkb25seSBncmlkQVBJOiBHcmlkU2VydmljZVR5cGU7XG5cbiAgICBmaWx0ZXJNb2RlOiBGaWx0ZXJNb2RlO1xuXG4gICAgLy8gVFlQRVxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHRoZWFkUm93OiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZ3JvdXBBcmVhOiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZmlsdGVyQ2VsbExpc3Q6IGFueVtdO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGZpbHRlcmluZ1JvdzogYW55O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGFjdGlvblN0cmlwOiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcmVzaXplTGluZTogYW55O1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgdGZvb3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBhZ2luYXRvcjogSWd4UGFnaW5hdG9yQ29tcG9uZW50O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBhZ2luYXRvckxpc3Q/OiBRdWVyeUxpc3Q8SWd4UGFnaW5hdG9yQ29tcG9uZW50PjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBjcnVkU2VydmljZTogYW55O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHN1bW1hcnlTZXJ2aWNlOiBhbnk7XG5cblxuXG4gICAgdmlydHVhbGl6YXRpb25TdGF0ZTogSUZvck9mU3RhdGU7XG4gICAgLy8gVFlQRVxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHNlbGVjdGlvblNlcnZpY2U6IGFueTtcbiAgICBuYXZpZ2F0aW9uOiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZmlsdGVyaW5nU2VydmljZTogYW55O1xuICAgIG91dGxldDogYW55O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGhhc01vdmFibGVDb2x1bW5zOiBib29sZWFuO1xuICAgIGlzUm93U2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICBzaG93Um93U2VsZWN0b3JzOiBib29sZWFuO1xuICAgIGlzUGlubmluZ1RvU3RhcnQ6IGJvb2xlYW47XG4gICAgY29sdW1uSW5EcmFnOiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGlubmVkV2lkdGg6IG51bWJlcjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICB1bnBpbm5lZFdpZHRoOiBudW1iZXI7XG4gICAgc3VtbWFyaWVzTWFyZ2luOiBudW1iZXI7XG4gICAgaGVhZFNlbGVjdG9yQmFzZUFyaWFMYWJlbDogc3RyaW5nO1xuXG4gICAgaGFzVmlzaWJsZUNvbHVtbnM6IGJvb2xlYW47XG4gICAgaGFzRXhwYW5kYWJsZUNoaWxkcmVuPzogYm9vbGVhbjtcbiAgICBzaG93RXhwYW5kQWxsPzogYm9vbGVhbjtcblxuICAgIGhpZGRlbkNvbHVtbnNDb3VudDogbnVtYmVyO1xuICAgIHBpbm5lZENvbHVtbnNDb3VudDogbnVtYmVyO1xuXG4gICAgaWNvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBncm91cFJvd1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8SWd4R3JvdXBCeVJvd1RlbXBsYXRlQ29udGV4dD47XG4gICAgZ3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxJZ3hHcm91cEJ5Um93U2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIHJvd0xvYWRpbmdJbmRpY2F0b3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgaGVhZFNlbGVjdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEhlYWRTZWxlY3RvclRlbXBsYXRlQ29udGV4dD47XG4gICAgcm93U2VsZWN0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4Um93U2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIHNvcnRIZWFkZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRIZWFkZXJUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIHNvcnRBc2NlbmRpbmdIZWFkZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRIZWFkZXJUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIHNvcnREZXNjZW5kaW5nSGVhZGVySWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkSGVhZGVyVGVtcGxhdGVDb250ZXh0PjtcbiAgICBoZWFkZXJDb2xsYXBzZWRJbmRpY2F0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZFRlbXBsYXRlQ29udGV4dD47XG4gICAgaGVhZGVyRXhwYW5kZWRJbmRpY2F0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZFRlbXBsYXRlQ29udGV4dD47XG4gICAgZHJhZ0luZGljYXRvckljb25UZW1wbGF0ZTogYW55O1xuICAgIGRyYWdJbmRpY2F0b3JJY29uQmFzZTogYW55O1xuICAgIGRpc2FibGVUcmFuc2l0aW9uczogYm9vbGVhbjtcbiAgICBjdXJyZW5jeVBvc2l0aW9uTGVmdDogYm9vbGVhbjtcblxuICAgIGNvbHVtbldpZHRoU2V0QnlVc2VyOiBib29sZWFuO1xuICAgIGhlYWRlckZlYXR1cmVzV2lkdGg6IG51bWJlcjtcbiAgICBjYWxjSGVpZ2h0OiBudW1iZXI7XG4gICAgY2FsY1dpZHRoOiBudW1iZXI7XG4gICAgb3V0ZXJXaWR0aDogbnVtYmVyO1xuICAgIHJvd0hlaWdodDogbnVtYmVyO1xuICAgIG11bHRpUm93TGF5b3V0Um93U2l6ZTogbnVtYmVyO1xuICAgIGRlZmF1bHRIZWFkZXJHcm91cE1pbldpZHRoOiBhbnk7XG4gICAgbWF4TGV2ZWxIZWFkZXJEZXB0aDogbnVtYmVyO1xuICAgIGRlZmF1bHRSb3dIZWlnaHQ6IG51bWJlcjtcbiAgICBfYmFzZUZvbnRTaXplPzogbnVtYmVyO1xuICAgIHNjcm9sbFNpemU6IG51bWJlcjtcblxuICAgIHZhbGlkYXRpb25UcmlnZ2VyOiBHcmlkVmFsaWRhdGlvblRyaWdnZXI7XG4gICAgcGlubmluZzogSVBpbm5pbmdDb25maWc7XG4gICAgZXhwYW5zaW9uU3RhdGVzOiBNYXA8YW55LCBib29sZWFuPjtcbiAgICBwYXJlbnRWaXJ0RGlyOiBhbnk7XG4gICAgdGJvZHk6IGFueTtcbiAgICB2ZXJ0aWNhbFNjcm9sbENvbnRhaW5lcjogYW55O1xuICAgIGRhdGFSb3dMaXN0OiBhbnk7XG4gICAgcm93TGlzdDogYW55O1xuICAgIGNvbHVtbkxpc3Q6IFF1ZXJ5TGlzdDxDb2x1bW5UeXBlPjtcbiAgICBjb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgdmlzaWJsZUNvbHVtbnM6IENvbHVtblR5cGVbXTtcbiAgICB1bnBpbm5lZENvbHVtbnM6IENvbHVtblR5cGVbXTtcbiAgICBwaW5uZWRDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGVhZGVyQ2VsbExpc3Q6IGFueVtdO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGhlYWRlckdyb3VwczogYW55W107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGVhZGVyR3JvdXBzTGlzdDogYW55W107XG4gICAgc3VtbWFyaWVzUm93TGlzdDogYW55O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGhlYWRlckNvbnRhaW5lcjogYW55O1xuICAgIGlzQ2VsbFNlbGVjdGFibGU6IGJvb2xlYW47XG4gICAgaXNNdWx0aVJvd1NlbGVjdGlvbkVuYWJsZWQ6IGJvb2xlYW47XG4gICAgaGFzUGlubmVkUmVjb3JkczogYm9vbGVhbjtcbiAgICBwaW5uZWRSZWNvcmRzQ291bnQ6IG51bWJlcjtcbiAgICBwaW5uZWRSZWNvcmRzOiBhbnlbXTtcbiAgICB1bnBpbm5lZFJlY29yZHM6IGFueVtdO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBpbm5lZERhdGFWaWV3OiBhbnlbXTtcbiAgICBwaW5uZWRSb3dzOiBhbnlbXTtcbiAgICBkYXRhVmlldzogYW55W107XG4gICAgX2ZpbHRlcmVkVW5waW5uZWREYXRhOiBhbnlbXTtcbiAgICBfZmlsdGVyZWRTb3J0ZWRVbnBpbm5lZERhdGE6IGFueVtdO1xuICAgIGZpbHRlcmVkU29ydGVkRGF0YTogYW55W107XG4gICAgZGF0YVdpdGhBZGRlZEluVHJhbnNhY3Rpb25Sb3dzOiBhbnlbXTtcbiAgICByZWFkb25seSB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uU2VydmljZTxUcmFuc2FjdGlvbiwgU3RhdGU+O1xuICAgIHJlYWRvbmx5IHZhbGlkYXRpb246IElneEdyaWRWYWxpZGF0aW9uU2VydmljZTtcbiAgICBkZWZhdWx0U3VtbWFyeUhlaWdodDogbnVtYmVyO1xuICAgIHN1bW1hcnlSb3dIZWlnaHQ6IG51bWJlcjtcbiAgICByb3dFZGl0aW5nT3ZlcmxheTogSWd4VG9nZ2xlRGlyZWN0aXZlO1xuICAgIHRvdGFsUm93c0NvdW50QWZ0ZXJGaWx0ZXI6IG51bWJlcjtcbiAgICBfdG90YWxSZWNvcmRzOiBudW1iZXI7XG4gICAgcGFnaW5nTW9kZTogR3JpZFBhZ2luZ01vZGU7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwYWdpbmdTdGF0ZTogYW55O1xuXG4gICAgcm93RWRpdFRhYnM6IGFueTtcbiAgICBsYXN0U2VhcmNoSW5mbzogSVNlYXJjaEluZm87XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGFnZTogbnVtYmVyO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBlclBhZ2U6IG51bWJlcjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBkcmFnUm93SUQ6IGFueTtcbiAgICByb3dEcmFnZ2luZzogYm9vbGVhbjtcblxuICAgIGZpcnN0RWRpdGFibGVDb2x1bW5JbmRleDogbnVtYmVyO1xuICAgIGxhc3RFZGl0YWJsZUNvbHVtbkluZGV4OiBudW1iZXI7XG4gICAgaXNSb3dQaW5uaW5nVG9Ub3A6IGJvb2xlYW47XG4gICAgaGFzRGV0YWlsczogYm9vbGVhbjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoYXNTdW1tYXJpemVkQ29sdW1uczogYm9vbGVhbjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoYXNDb2x1bW5Hcm91cHM6IGJvb2xlYW47XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGFzRWRpdGFibGVDb2x1bW5zOiBib29sZWFuO1xuICAgIHVuaXF1ZUNvbHVtblZhbHVlc1N0cmF0ZWd5OiAoY29sdW1uOiBDb2x1bW5UeXBlLCB0cmVlOiBGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUsIGRvbmU6ICh2YWx1ZXM6IGFueVtdKSA9PiB2b2lkKSA9PiB2b2lkO1xuICAgIGdldEhlYWRlckNlbGxXaWR0aDogKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiBJU2l6ZUluZm87XG5cbiAgICByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGRvY3VtZW50OiBEb2N1bWVudDtcbiAgICByb3dFeHBhbmRlZEluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkUm93VGVtcGxhdGVDb250ZXh0PjtcbiAgICByb3dDb2xsYXBzZWRJbmRpY2F0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZFJvd1RlbXBsYXRlQ29udGV4dD47XG4gICAgZXhjZWxTdHlsZUhlYWRlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZEhlYWRlclRlbXBsYXRlQ29udGV4dD47XG5cbiAgICBzZWxlY3RSb3dPbkNsaWNrOiBib29sZWFuO1xuICAgIGNlbGxTZWxlY3Rpb246IEdyaWRTZWxlY3Rpb25Nb2RlO1xuICAgIHJvd1NlbGVjdGlvbjogR3JpZFNlbGVjdGlvbk1vZGU7XG4gICAgY29sdW1uU2VsZWN0aW9uOiBHcmlkU2VsZWN0aW9uTW9kZTtcbiAgICBzdW1tYXJ5Q2FsY3VsYXRpb25Nb2RlOiBHcmlkU3VtbWFyeUNhbGN1bGF0aW9uTW9kZTtcbiAgICBzdW1tYXJ5UG9zaXRpb246IEdyaWRTdW1tYXJ5UG9zaXRpb247XG5cbiAgICAvLyBYWFg6IFdvcmsgYXJvdW5kIHRpbGwgd2UgZml4ZWQgdGhlIGluamVjdGlvbiB0b2tlbnNcbiAgICBsYXN0Q2hpbGRHcmlkPzogR3JpZFR5cGU7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgdG9vbGJhck91dGxldD86IFZpZXdDb250YWluZXJSZWY7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGFnaW5hdG9yT3V0bGV0PzogVmlld0NvbnRhaW5lclJlZjtcbiAgICBmbGF0RGF0YT86IGFueVtdIHwgbnVsbDtcbiAgICBjaGlsZFJvdz86IGFueTtcbiAgICBleHBhbnNpb25EZXB0aD86IG51bWJlcjtcbiAgICBjaGlsZERhdGFLZXk/OiBhbnk7XG4gICAgZm9yZWlnbktleT86IGFueTtcbiAgICBjYXNjYWRlT25EZWxldGU/OiBib29sZWFuO1xuICAgIGxvYWRDaGlsZHJlbk9uRGVtYW5kPzogKHBhcmVudElEOiBhbnksIGRvbmU6IChjaGlsZHJlbjogYW55W10pID0+IHZvaWQpID0+IHZvaWQ7XG4gICAgaGFzQ2hpbGRyZW5LZXk/OiBhbnk7XG4gICAgbG9hZGluZ1Jvd3M/OiBTZXQ8YW55PjtcbiAgICBwYXJlbnQ/OiBHcmlkVHlwZTtcbiAgICBoaWdobGlnaHRlZFJvd0lEPzogYW55O1xuICAgIHVwZGF0ZU9uUmVuZGVyPzogYm9vbGVhbjtcbiAgICBjaGlsZExheW91dEtleXM/OiBhbnlbXTtcbiAgICBjaGlsZExheW91dExpc3Q/OiBRdWVyeUxpc3Q8YW55PjtcbiAgICByb290R3JpZD86IEdyaWRUeXBlO1xuICAgIHByb2Nlc3NlZFJvb3RSZWNvcmRzPzogSVRyZWVHcmlkUmVjb3JkW107XG4gICAgcm9vdFJlY29yZHM/OiBJVHJlZUdyaWRSZWNvcmRbXTtcbiAgICByZWNvcmRzPzogTWFwPGFueSwgSVRyZWVHcmlkUmVjb3JkPjtcbiAgICBwcm9jZXNzZWRFeHBhbmRlZEZsYXREYXRhPzogYW55W10gfCBudWxsO1xuICAgIHByb2Nlc3NlZFJlY29yZHM/OiBNYXA8YW55LCBJVHJlZUdyaWRSZWNvcmQ+O1xuICAgIHRyZWVHcm91cEFyZWE/OiBhbnk7XG5cbiAgICBhY3RpdmVOb2RlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUFjdGl2ZU5vZGVDaGFuZ2VFdmVudEFyZ3M+O1xuICAgIGdyaWRLZXlkb3duOiBFdmVudEVtaXR0ZXI8SUdyaWRLZXlkb3duRXZlbnRBcmdzPjtcbiAgICBjZWxsQ2xpY2s6IEV2ZW50RW1pdHRlcjxJR3JpZENlbGxFdmVudEFyZ3M+O1xuICAgIGRvdWJsZUNsaWNrOiBFdmVudEVtaXR0ZXI8SUdyaWRDZWxsRXZlbnRBcmdzPjtcbiAgICBjb250ZXh0TWVudTogRXZlbnRFbWl0dGVyPElHcmlkQ2VsbEV2ZW50QXJncz47XG4gICAgc2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxJR3JpZENlbGxFdmVudEFyZ3M+O1xuICAgIHJhbmdlU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxHcmlkU2VsZWN0aW9uUmFuZ2U+O1xuICAgIHJvd1NlbGVjdGlvbkNoYW5naW5nOiBFdmVudEVtaXR0ZXI8SVJvd1NlbGVjdGlvbkV2ZW50QXJncz47XG4gICAgbG9jYWxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG4gICAgZmlsdGVyaW5nOiBFdmVudEVtaXR0ZXI8SUZpbHRlcmluZ0V2ZW50QXJncz47XG4gICAgZmlsdGVyaW5nRG9uZTogRXZlbnRFbWl0dGVyPElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU+O1xuICAgIGNvbHVtblBpbm5lZDogRXZlbnRFbWl0dGVyPElQaW5Db2x1bW5FdmVudEFyZ3M+O1xuICAgIGNvbHVtblJlc2l6ZWQ6IEV2ZW50RW1pdHRlcjxJQ29sdW1uUmVzaXplRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5Nb3ZpbmdFbmQ6IEV2ZW50RW1pdHRlcjxJQ29sdW1uTW92aW5nRW5kRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5TZWxlY3Rpb25DaGFuZ2luZzogRXZlbnRFbWl0dGVyPElDb2x1bW5TZWxlY3Rpb25FdmVudEFyZ3M+O1xuICAgIGNvbHVtbk1vdmluZzogRXZlbnRFbWl0dGVyPElDb2x1bW5Nb3ZpbmdFdmVudEFyZ3M+O1xuICAgIGNvbHVtbk1vdmluZ1N0YXJ0OiBFdmVudEVtaXR0ZXI8SUNvbHVtbk1vdmluZ1N0YXJ0RXZlbnRBcmdzPjtcbiAgICBjb2x1bW5QaW46IEV2ZW50RW1pdHRlcjxJUGluQ29sdW1uQ2FuY2VsbGFibGVFdmVudEFyZ3M+O1xuICAgIGNvbHVtblZpc2liaWxpdHlDaGFuZ2luZzogRXZlbnRFbWl0dGVyPElDb2x1bW5WaXNpYmlsaXR5Q2hhbmdpbmdFdmVudEFyZ3M+O1xuICAgIGNvbHVtblZpc2liaWxpdHlDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8SUNvbHVtblZpc2liaWxpdHlDaGFuZ2VkRXZlbnRBcmdzPjtcbiAgICBiYXRjaEVkaXRpbmdDaGFuZ2U/OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG4gICAgZGVuc2l0eUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJRGVuc2l0eUNoYW5nZWRFdmVudEFyZ3M+O1xuICAgIHJvd0FkZDogRXZlbnRFbWl0dGVyPElHcmlkRWRpdEV2ZW50QXJncz47XG4gICAgcm93QWRkZWQ6IEV2ZW50RW1pdHRlcjxJUm93RGF0YUV2ZW50QXJncz47XG4gICAgcm93QWRkZWROb3RpZmllcjogU3ViamVjdDxJUm93RGF0YUV2ZW50QXJncz47XG4gICAgcm93RGVsZXRlZDogRXZlbnRFbWl0dGVyPElSb3dEYXRhRXZlbnRBcmdzPjtcbiAgICByb3dEZWxldGVkTm90aWZpZXI6IFN1YmplY3Q8SVJvd0RhdGFFdmVudEFyZ3M+O1xuICAgIGNlbGxFZGl0RW50ZXI6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXRFdmVudEFyZ3M+O1xuICAgIGNlbGxFZGl0OiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICBjZWxsRWRpdERvbmU6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXREb25lRXZlbnRBcmdzPjtcbiAgICBjZWxsRWRpdEV4aXQ6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXREb25lRXZlbnRBcmdzPjtcbiAgICByb3dFZGl0RW50ZXI6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXRFdmVudEFyZ3M+O1xuICAgIHJvd0VkaXQ6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXRFdmVudEFyZ3M+O1xuICAgIHJvd0VkaXREb25lOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RG9uZUV2ZW50QXJncz47XG4gICAgcm93RWRpdEV4aXQ6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXREb25lRXZlbnRBcmdzPjtcbiAgICByb3dEcmFnU3RhcnQ6IEV2ZW50RW1pdHRlcjxJUm93RHJhZ1N0YXJ0RXZlbnRBcmdzPjtcbiAgICByb3dEcmFnRW5kOiBFdmVudEVtaXR0ZXI8SVJvd0RyYWdFbmRFdmVudEFyZ3M+O1xuICAgIHJvd1RvZ2dsZTogRXZlbnRFbWl0dGVyPElSb3dUb2dnbGVFdmVudEFyZ3M+O1xuICAgIGZvcm1Hcm91cENyZWF0ZWQ6IEV2ZW50RW1pdHRlcjxJR3JpZEZvcm1Hcm91cENyZWF0ZWRFdmVudEFyZ3M+O1xuICAgIHZhbGlkYXRpb25TdGF0dXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJR3JpZFZhbGlkYXRpb25TdGF0dXNFdmVudEFyZ3M+O1xuXG4gICAgdG9vbGJhckV4cG9ydGluZzogRXZlbnRFbWl0dGVyPElHcmlkVG9vbGJhckV4cG9ydEV2ZW50QXJncz47XG4gICAgcmVuZGVyZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHJlc2l6ZU5vdGlmeTogU3ViamVjdDx2b2lkPjtcblxuICAgIHNvcnRTdHJhdGVneTogSUdyaWRTb3J0aW5nU3RyYXRlZ3k7XG4gICAgZ3JvdXBTdHJhdGVneT86IElHcmlkR3JvdXBpbmdTdHJhdGVneTtcbiAgICBmaWx0ZXJpbmdMb2dpYzogRmlsdGVyaW5nTG9naWM7XG4gICAgZmlsdGVyU3RyYXRlZ3k6IElGaWx0ZXJpbmdTdHJhdGVneTtcbiAgICBhbGxvd0FkdmFuY2VkRmlsdGVyaW5nOiBib29sZWFuO1xuICAgIHNvcnRpbmdFeHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW107XG4gICAgc29ydGluZ0V4cHJlc3Npb25zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVNvcnRpbmdFeHByZXNzaW9uW10+O1xuICAgIGZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTogSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTtcbiAgICBmaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlPjtcbiAgICBhZHZhbmNlZEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTogSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTtcbiAgICBhZHZhbmNlZEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZUNoYW5nZTogRXZlbnRFbWl0dGVyPElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU+O1xuICAgIHNvcnRpbmdPcHRpb25zOiBJU29ydGluZ09wdGlvbnM7XG5cbiAgICBiYXRjaEVkaXRpbmc6IGJvb2xlYW47XG4gICAgZ3JvdXBpbmdFeHBhbnNpb25TdGF0ZT86IElHcm91cEJ5RXhwYW5kU3RhdGVbXTtcbiAgICBncm91cGluZ0V4cHJlc3Npb25zPzogSUdyb3VwaW5nRXhwcmVzc2lvbltdO1xuICAgIGdyb3VwaW5nRXhwcmVzc2lvbnNDaGFuZ2U/OiBFdmVudEVtaXR0ZXI8SUdyb3VwaW5nRXhwcmVzc2lvbltdPjtcbiAgICBncm91cHNFeHBhbmRlZD86IGJvb2xlYW47XG4gICAgcmVhZG9ubHkgZ3JvdXBzUmVjb3Jkcz86IElHcm91cEJ5UmVjb3JkW107XG4gICAgZ3JvdXBpbmdGbGF0UmVzdWx0PzogYW55W107XG4gICAgZ3JvdXBpbmdSZXN1bHQ/OiBhbnlbXTtcbiAgICBncm91cGluZ01ldGFkYXRhPzogYW55W107XG4gICAgc2VsZWN0ZWRDZWxscz86IENlbGxUeXBlW107XG4gICAgc2VsZWN0ZWRSb3dzOiBhbnlbXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBhY3RpdmVEZXNjZW5kYW50Pzogc3RyaW5nO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGlzUGl2b3Q/OiBib29sZWFuO1xuXG4gICAgdG9nZ2xlR3JvdXA/KGdyb3VwUm93OiBJR3JvdXBCeVJlY29yZCk6IHZvaWQ7XG4gICAgY2xlYXJHcm91cGluZz8oZmllbGQ6IHN0cmluZyk6IHZvaWQ7XG4gICAgZ3JvdXBCeT8oZXhwcmVzc2lvbjogSUdyb3VwaW5nRXhwcmVzc2lvbiB8IEFycmF5PElHcm91cGluZ0V4cHJlc3Npb24+KTogdm9pZDtcbiAgICByZXNvbHZlT3V0bGV0PygpOiBJZ3hPdmVybGF5T3V0bGV0RGlyZWN0aXZlO1xuICAgIHVwZGF0ZUNvbHVtbnMoY29sdW1uczogQ29sdW1uVHlwZVtdKTogdm9pZDtcbiAgICBnZXRTZWxlY3RlZFJhbmdlcygpOiBHcmlkU2VsZWN0aW9uUmFuZ2VbXTtcbiAgICBkZXNlbGVjdEFsbENvbHVtbnMoKTogdm9pZDtcbiAgICBkZXNlbGVjdENvbHVtbnMoY29sdW1uczogc3RyaW5nW10gfCBDb2x1bW5UeXBlW10pOiB2b2lkO1xuICAgIHNlbGVjdENvbHVtbnMoY29sdW1uczogc3RyaW5nW10gfCBDb2x1bW5UeXBlW10pOiB2b2lkO1xuICAgIHNlbGVjdGVkQ29sdW1ucygpOiBDb2x1bW5UeXBlW107XG4gICAgcmVmcmVzaFNlYXJjaCgpOiB2b2lkO1xuICAgIGdldERlZmF1bHRFeHBhbmRTdGF0ZShyZWNvcmQ6IGFueSk6IGJvb2xlYW47XG4gICAgdHJhY2tDb2x1bW5DaGFuZ2VzKGluZGV4OiBudW1iZXIsIGNvbHVtbjogYW55KTogYW55O1xuICAgIGdldFBvc3NpYmxlQ29sdW1uV2lkdGgoKTogc3RyaW5nO1xuICAgIHJlc2V0SG9yaXpvbnRhbFZpcnR1YWxpemF0aW9uKCk6IHZvaWQ7XG4gICAgaGFzVmVydGljYWxTY3JvbGwoKTogYm9vbGVhbjtcbiAgICBnZXRWaXNpYmxlQ29udGVudEhlaWdodCgpOiBudW1iZXI7XG4gICAgZ2V0RHJhZ0dob3N0Q3VzdG9tVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGw7XG4gICAgb3BlblJvd092ZXJsYXkoaWQ6IGFueSk6IHZvaWQ7XG4gICAgb3BlbkFkdmFuY2VkRmlsdGVyaW5nRGlhbG9nKCk6IHZvaWQ7XG4gICAgc2hvd1NuYWNrYmFyRm9yKGluZGV4OiBudW1iZXIpOiB2b2lkO1xuICAgIGdldENvbHVtbkJ5TmFtZShuYW1lOiBzdHJpbmcpOiBhbnk7XG4gICAgZ2V0Q29sdW1uQnlWaXNpYmxlSW5kZXgoaW5kZXg6IG51bWJlcik6IENvbHVtblR5cGU7XG4gICAgZ2V0SGVhZGVyR3JvdXBXaWR0aChjb2x1bW46IENvbHVtblR5cGUpOiBzdHJpbmc7XG4gICAgZ2V0Um93QnlLZXk/KGtleTogYW55KTogUm93VHlwZTtcbiAgICBnZXRSb3dCeUluZGV4PyhpbmRleDogbnVtYmVyKTogUm93VHlwZTtcbiAgICBzZXRGaWx0ZXJlZERhdGEoZGF0YTogYW55LCBwaW5uZWQ6IGJvb2xlYW4pOiB2b2lkO1xuICAgIHNldEZpbHRlcmVkU29ydGVkRGF0YShkYXRhOiBhbnksIHBpbm5lZDogYm9vbGVhbik6IHZvaWQ7XG4gICAgc29ydChleHByZXNzaW9uOiBJU29ydGluZ0V4cHJlc3Npb24gfCBJU29ydGluZ0V4cHJlc3Npb25bXSk6IHZvaWQ7XG4gICAgY2xlYXJTb3J0KG5hbWU/OiBzdHJpbmcpOiB2b2lkO1xuICAgIHBpblJvdyhpZDogYW55LCBpbmRleD86IG51bWJlciwgcm93PzogUm93VHlwZSk6IGJvb2xlYW47XG4gICAgdW5waW5Sb3coaWQ6IGFueSwgcm93PzogUm93VHlwZSk6IGJvb2xlYW47XG4gICAgZ2V0VW5waW5uZWRJbmRleEJ5SWQoaWQ6IGFueSk6IG51bWJlcjtcbiAgICBnZXRFbXB0eVJlY29yZE9iamVjdEZvcihpblJvdzogUm93VHlwZSk6IGFueTtcbiAgICBpc1N1bW1hcnlSb3cocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzUmVjb3JkUGlubmVkKHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBnZXRJbml0aWFsUGlubmVkSW5kZXgocmVjOiBhbnkpOiBudW1iZXI7XG4gICAgaXNSZWNvcmRQaW5uZWRCeVZpZXdJbmRleChyb3dJbmRleDogbnVtYmVyKTogYm9vbGVhbjtcbiAgICBpc0NvbHVtbkdyb3VwZWQoZmllbGROYW1lOiBzdHJpbmcpOiBib29sZWFuO1xuICAgIGlzRGV0YWlsUmVjb3JkKHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc0dyb3VwQnlSZWNvcmQocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzR2hvc3RSZWNvcmQocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzVHJlZVJvdz8ocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzQ2hpbGRHcmlkUmVjb3JkPyhyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgZ2V0Q2hpbGRHcmlkcz8oaW5EZXB0aD86IGJvb2xlYW4pOiBhbnlbXTtcbiAgICBpc0hpZXJhcmNoaWNhbFJlY29yZD8ocmVjb3JkOiBhbnkpOiBib29sZWFuO1xuICAgIGNvbHVtblRvVmlzaWJsZUluZGV4KGtleTogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyO1xuICAgIG1vdmVDb2x1bW4oY29sdW1uOiBDb2x1bW5UeXBlLCB0YXJnZXQ6IENvbHVtblR5cGUsIHBvczogRHJvcFBvc2l0aW9uKTogdm9pZDtcbiAgICBuYXZpZ2F0ZVRvKHJvd0luZGV4OiBudW1iZXIsIHZpc2libGVDb2x1bW5JbmRleDogbnVtYmVyLCBjYWxsYmFjaz86IChlOiBhbnkpID0+IGFueSk6IHZvaWQ7XG4gICAgZ2V0UHJldmlvdXNDZWxsKGN1cnJSb3dJbmRleDogbnVtYmVyLCBjdXJWaXNpYmxlQ29sSW5kZXg6IG51bWJlciwgY2FsbGJhY2s6IChjOiBDb2x1bW5UeXBlKSA9PiBib29sZWFuKTogSUNlbGxQb3NpdGlvbjtcbiAgICBnZXROZXh0Q2VsbChjdXJyUm93SW5kZXg6IG51bWJlciwgY3VyVmlzaWJsZUNvbEluZGV4OiBudW1iZXIsIGNhbGxiYWNrOiAoYzogQ29sdW1uVHlwZSkgPT4gYm9vbGVhbik6IElDZWxsUG9zaXRpb247XG4gICAgY2xlYXJDZWxsU2VsZWN0aW9uKCk6IHZvaWQ7XG4gICAgc2VsZWN0UmFuZ2UocmFuZ2U6IEdyaWRTZWxlY3Rpb25SYW5nZSB8IEdyaWRTZWxlY3Rpb25SYW5nZVtdKTogdm9pZDtcbiAgICBzZWxlY3RSb3dzKHJvd0lEczogYW55W10sIGNsZWFyQ3VycmVudFNlbGVjdGlvbj86IGJvb2xlYW4pOiB2b2lkO1xuICAgIGRlc2VsZWN0Um93cyhyb3dJRHM6IGFueVtdKTogdm9pZDtcbiAgICBzZWxlY3RBbGxSb3dzKG9ubHlGaWx0ZXJEYXRhPzogYm9vbGVhbik6IHZvaWQ7XG4gICAgZGVzZWxlY3RBbGxSb3dzKG9ubHlGaWx0ZXJEYXRhPzogYm9vbGVhbik6IHZvaWQ7XG4gICAgc2V0VXBQYWdpbmF0b3IoKTogdm9pZDtcbiAgICBjcmVhdGVGaWx0ZXJEcm9wZG93bihjb2x1bW46IENvbHVtblR5cGUsIG9wdGlvbnM6IE92ZXJsYXlTZXR0aW5ncyk6IGFueTtcbiAgICB1cGRhdGVDZWxsKHZhbHVlOiBhbnksIHJvd1NlbGVjdG9yOiBhbnksIGNvbHVtbjogc3RyaW5nKTogdm9pZDtcbiAgICAvLyBUeXBlIHRvIFJvd1R5cGVcbiAgICBjcmVhdGVSb3c/KGluZGV4OiBudW1iZXIsIGRhdGE/OiBhbnkpOiBSb3dUeXBlO1xuICAgIGRlbGV0ZVJvdyhpZDogYW55KTogYW55O1xuICAgIGRlbGV0ZVJvd0J5SWQoaWQ6IGFueSk6IGFueTtcbiAgICB1cGRhdGVSb3codmFsdWU6IGFueSwgcm93U2VsZWN0b3I6IGFueSk6IHZvaWQ7XG4gICAgY29sbGFwc2VSb3coaWQ6IGFueSk6IHZvaWQ7XG4gICAgbm90aWZ5Q2hhbmdlcyhyZXBhaW50PzogYm9vbGVhbik6IHZvaWQ7XG4gICAgcmVzZXRDb2x1bW5Db2xsZWN0aW9ucygpOiB2b2lkO1xuICAgIHRyaWdnZXJQaXBlcygpOiB2b2lkO1xuICAgIHJlcG9zaXRpb25Sb3dFZGl0aW5nT3ZlcmxheShyb3c6IFJvd1R5cGUpOiB2b2lkO1xuICAgIGNsb3NlUm93RWRpdGluZ092ZXJsYXkoKTogdm9pZDtcbiAgICByZWZsb3coKTogdm9pZDtcblxuICAgIC8vIFRPRE86IE1heWJlIG1vdmUgdGhlbSB0byBGbGF0R3JpZFR5cGUsIGJ1dCB0aGVuIHdpbGwgd2UgbmVlZCBhbm90aGVyIHRva2VuP1xuICAgIGlzRXhwYW5kZWRHcm91cChncm91cDogSUdyb3VwQnlSZWNvcmQpOiBib29sZWFuO1xuICAgIGNyZWF0ZUNvbHVtbnNMaXN0Pyhjb2xzOiBDb2x1bW5UeXBlW10pOiB2b2lkO1xuICAgIHRvZ2dsZUFsbEdyb3VwUm93cz8oKTogdm9pZDtcbiAgICB0b2dnbGVBbGw/KCk6IHZvaWQ7XG4gICAgZ2VuZXJhdGVSb3dQYXRoPyhyb3dJZDogYW55KTogYW55W107XG4gICAgcHJldmVudEhlYWRlclNjcm9sbD8oYXJnczogYW55KTogdm9pZDtcbn1cblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgZGVzY3JpYmluZyBhIEZsYXQgR3JpZCB0eXBlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmxhdEdyaWRUeXBlIGV4dGVuZHMgR3JpZFR5cGUge1xuICAgIGdyb3VwaW5nRXhwYW5zaW9uU3RhdGU6IElHcm91cEJ5RXhwYW5kU3RhdGVbXTtcbiAgICBncm91cGluZ0V4cHJlc3Npb25zOiBJR3JvdXBpbmdFeHByZXNzaW9uW107XG4gICAgZ3JvdXBpbmdFeHByZXNzaW9uc0NoYW5nZTogRXZlbnRFbWl0dGVyPElHcm91cGluZ0V4cHJlc3Npb25bXT47XG5cbiAgICB0b2dnbGVHcm91cChncm91cFJvdzogSUdyb3VwQnlSZWNvcmQpOiB2b2lkO1xuICAgIGNsZWFyR3JvdXBpbmcoZmllbGQ6IHN0cmluZyk6IHZvaWQ7XG4gICAgZ3JvdXBCeShleHByZXNzaW9uOiBJR3JvdXBpbmdFeHByZXNzaW9uIHwgQXJyYXk8SUdyb3VwaW5nRXhwcmVzc2lvbj4pOiB2b2lkO1xufVxuXG4vKipcbiAqIEFuIGludGVyZmFjZSBkZXNjcmliaW5nIGEgVHJlZSBHcmlkIHR5cGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmVlR3JpZFR5cGUgZXh0ZW5kcyBHcmlkVHlwZSB7XG4gICAgcmVjb3JkczogTWFwPGFueSwgSVRyZWVHcmlkUmVjb3JkPjtcbiAgICBpc1RyZWVSb3cocmVjOiBhbnkpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEFuIGludGVyZmFjZSBkZXNjcmliaW5nIGEgSGllcmFyY2hpY2FsIEdyaWQgdHlwZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhpZXJhcmNoaWNhbEdyaWRUeXBlIGV4dGVuZHMgR3JpZFR5cGUge1xuICAgIGNoaWxkTGF5b3V0S2V5czogYW55W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGl2b3RHcmlkVHlwZSBleHRlbmRzIEdyaWRUeXBlIHtcbiAgICBwaXZvdENvbmZpZ3VyYXRpb246IElQaXZvdENvbmZpZ3VyYXRpb247XG4gICAgYWxsRGltZW5zaW9uczogSVBpdm90RGltZW5zaW9uW10sXG4gICAgc2hvd1Bpdm90Q29uZmlndXJhdGlvblVJOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGNvbHVtbkRpbWVuc2lvbnM6IElQaXZvdERpbWVuc2lvbltdO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHJvd0RpbWVuc2lvbnM6IElQaXZvdERpbWVuc2lvbltdO1xuICAgIHJvd0RpbWVuc2lvblJlc2l6aW5nOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHZhbHVlczogSVBpdm90VmFsdWVbXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBmaWx0ZXJEaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBkaW1lbnNpb25EYXRhQ29sdW1uczogQ29sdW1uVHlwZVtdO1xuICAgIHBpdm90Um93V2lkdGhzOiBudW1iZXI7XG4gICAgc2V0dXBDb2x1bW5zKCk6IHZvaWQ7XG4gICAgdG9nZ2xlUm93KHJvd0lEOiBhbnkpOiB2b2lkO1xuICAgIHJlc29sdmVEYXRhVHlwZXMoZmllbGQ6IGFueSk6IEdyaWRDb2x1bW5EYXRhVHlwZTtcbiAgICBtb3ZlRGltZW5zaW9uKGRpbWVuc2lvbjogSVBpdm90RGltZW5zaW9uLCB0YXJnZXRDb2xsZWN0aW9uVHlwZTogUGl2b3REaW1lbnNpb25UeXBlLCBpbmRleD86IG51bWJlcik7XG4gICAgZ2V0RGltZW5zaW9uc0J5VHlwZShkaW1lbnNpb246IFBpdm90RGltZW5zaW9uVHlwZSk7XG4gICAgdG9nZ2xlRGltZW5zaW9uKGRpbWVuc2lvbjogSVBpdm90RGltZW5zaW9uKTtcbiAgICBzb3J0RGltZW5zaW9uKGRpbWVuc2lvbjogSVBpdm90RGltZW5zaW9uLCBzb3J0RGlyZWN0aW9uOiBTb3J0aW5nRGlyZWN0aW9uKTtcbiAgICB0b2dnbGVWYWx1ZSh2YWx1ZTogSVBpdm90VmFsdWUpO1xuICAgIG1vdmVWYWx1ZSh2YWx1ZTogSVBpdm90VmFsdWUsIGluZGV4PzogbnVtYmVyKTtcbiAgICByb3dEaW1lbnNpb25XaWR0aFRvUGl4ZWxzKGRpbTogSVBpdm90RGltZW5zaW9uKTogbnVtYmVyO1xuICAgIGRpbWVuc2lvbnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRGltZW5zaW9uc0NoYW5nZT47XG4gICAgdmFsdWVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVZhbHVlc0NoYW5nZT47XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGl2b3RLZXlzOiBJUGl2b3RLZXlzO1xuICAgIGhhc011bHRpcGxlVmFsdWVzOiBib29sZWFuO1xuICAgIGV4Y2VsU3R5bGVGaWx0ZXJNYXhIZWlnaHQ6IHN0cmluZztcbiAgICBleGNlbFN0eWxlRmlsdGVyTWluSGVpZ2h0OiBzdHJpbmc7XG4gICAgdmFsdWVDaGlwVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG59XG5leHBvcnQgaW50ZXJmYWNlIEdyaWRTVkdJY29uIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2l6ZUluZm8ge1xuICAgIHdpZHRoOiBudW1iZXIsXG4gICAgcGFkZGluZzogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZE1hc3RlckRldGFpbENvbnRleHQge1xuICAgICRpbXBsaWNpdDogYW55O1xuICAgIGluZGV4OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JvdXBCeVJvd1RlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBJR3JvdXBCeVJlY29yZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IEdyaWRUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZFJvd1RlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBSb3dUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZFJvd0RyYWdHaG9zdENvbnRleHQge1xuICAgICRpbXBsaWNpdDogYW55LCAvLyB0aGlzIGlzIHRoZSByb3cgZGF0YVxuICAgIGRhdGE6IGFueSwgLy8gdGhpcyBpcyBhbHNvIHRoZSByb3cgZGF0YSBmb3Igc29tZSByZWFzb24uXG4gICAgZ3JpZDogR3JpZFR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkRW1wdHlUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZFJvd0VkaXRUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogdW5kZWZpbmVkLFxuICAgIHJvd0NoYW5nZXNDb3VudDogbnVtYmVyLFxuICAgIGVuZEVkaXQ6IChjb21taXQ6IGJvb2xlYW4sIGV2ZW50PzogRXZlbnQpID0+IHZvaWRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkUm93RWRpdFRleHRUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZFJvd0VkaXRBY3Rpb25zVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IChjb21taXQ6IGJvb2xlYW4sIGV2ZW50PzogRXZlbnQpID0+IHZvaWRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkSGVhZGVyVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IEhlYWRlclR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hDb2x1bW5UZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogQ29sdW1uVHlwZSxcbiAgICBjb2x1bW46IENvbHVtblR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hDZWxsVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IGFueSxcbiAgICBhZGRpdGlvbmFsVGVtcGxhdGVDb250ZXh0OiBhbnksXG4gICAgZm9ybUNvbnRyb2w/OiBGb3JtQ29udHJvbDxhbnk+LFxuICAgIGRlZmF1bHRFcnJvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PixcbiAgICBjZWxsOiBDZWxsVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneFJvd1NlbGVjdG9yVGVtcGxhdGVEZXRhaWxzIHtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIC8qKiBAZGVwcmVjYXRlZCBVc2UgYGtleWAgKi9cbiAgICByb3dJRDogYW55O1xuICAgIGtleTogYW55O1xuICAgIHNlbGVjdGVkOiBib29sZWFuO1xuICAgIHNlbGVjdD86ICgpID0+IHZvaWQ7XG4gICAgZGVzZWxlY3Q/OiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneFJvd1NlbGVjdG9yVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IElneFJvd1NlbGVjdG9yVGVtcGxhdGVEZXRhaWxzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyb3VwQnlSb3dTZWxlY3RvclRlbXBsYXRlRGV0YWlscyB7XG4gICAgc2VsZWN0ZWRDb3VudDogbnVtYmVyO1xuICAgIHRvdGFsQ291bnQ6IG51bWJlcjtcbiAgICBncm91cFJvdzogSUdyb3VwQnlSZWNvcmQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIElneEdyb3VwQnlSb3dTZWxlY3RvclRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBJZ3hHcm91cEJ5Um93U2VsZWN0b3JUZW1wbGF0ZURldGFpbHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4SGVhZFNlbGVjdG9yVGVtcGxhdGVEZXRhaWxzIHtcbiAgICBzZWxlY3RlZENvdW50OiBudW1iZXI7XG4gICAgdG90YWxDb3VudDogbnVtYmVyO1xuICAgIHNlbGVjdEFsbD86ICgpID0+IHZvaWQ7XG4gICAgZGVzZWxlY3RBbGw/OiAoKSA9PiB2b2lkO1xufVxuZXhwb3J0IGludGVyZmFjZSBJZ3hIZWFkU2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogSWd4SGVhZFNlbGVjdG9yVGVtcGxhdGVEZXRhaWxzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneFN1bW1hcnlUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogSWd4U3VtbWFyeVJlc3VsdFtdXG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgc2V0dGluZ3MgZm9yIHJvdy9jb2x1bW4gcGlubmluZyBwb3NpdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUGlubmluZ0NvbmZpZyB7XG4gICAgY29sdW1ucz86IENvbHVtblBpbm5pbmdQb3NpdGlvbjtcbiAgICByb3dzPzogUm93UGlubmluZ1Bvc2l0aW9uO1xufVxuIl19
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL2dyaWQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sRUFBK0MsY0FBYyxFQUE0QyxNQUFNLGVBQWUsQ0FBQztBQTZCdEksTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFXLGtCQUFrQixDQUFDLENBQUM7QUFDOUUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQWtCLHlCQUF5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2x1bW5QaW5uaW5nUG9zaXRpb24sIEZpbHRlck1vZGUsIEdyaWRQYWdpbmdNb2RlLCBHcmlkU2VsZWN0aW9uTW9kZSwgR3JpZFN1bW1hcnlDYWxjdWxhdGlvbk1vZGUsIEdyaWRTdW1tYXJ5UG9zaXRpb24sIEdyaWRWYWxpZGF0aW9uVHJpZ2dlciwgUm93UGlubmluZ1Bvc2l0aW9uIH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQge1xuICAgIElTZWFyY2hJbmZvLCBJR3JpZENlbGxFdmVudEFyZ3MsIElSb3dTZWxlY3Rpb25FdmVudEFyZ3MsIElDb2x1bW5TZWxlY3Rpb25FdmVudEFyZ3MsIElHcmlkRWRpdEV2ZW50QXJncyxcbiAgICBJUGluQ29sdW1uQ2FuY2VsbGFibGVFdmVudEFyZ3MsIElDb2x1bW5WaXNpYmlsaXR5Q2hhbmdlZEV2ZW50QXJncywgSUNvbHVtblZpc2liaWxpdHlDaGFuZ2luZ0V2ZW50QXJncyxcbiAgICBJUm93RHJhZ0VuZEV2ZW50QXJncywgSUNvbHVtbk1vdmluZ1N0YXJ0RXZlbnRBcmdzLCBJQ29sdW1uTW92aW5nRW5kRXZlbnRBcmdzLFxuICAgIElHcmlkRWRpdERvbmVFdmVudEFyZ3MsIElSb3dEYXRhRXZlbnRBcmdzLCBJR3JpZEtleWRvd25FdmVudEFyZ3MsIElSb3dEcmFnU3RhcnRFdmVudEFyZ3MsXG4gICAgSUNvbHVtbk1vdmluZ0V2ZW50QXJncywgSVBpbkNvbHVtbkV2ZW50QXJncyxcbiAgICBJQWN0aXZlTm9kZUNoYW5nZUV2ZW50QXJncyxcbiAgICBJQ2VsbFBvc2l0aW9uLCBJRmlsdGVyaW5nRXZlbnRBcmdzLCBJQ29sdW1uUmVzaXplRXZlbnRBcmdzLCBJUm93VG9nZ2xlRXZlbnRBcmdzLCBJR3JpZFRvb2xiYXJFeHBvcnRFdmVudEFyZ3MsIElQaW5Sb3dFdmVudEFyZ3Ncbn0gZnJvbSAnLi4vY29tbW9uL2V2ZW50cyc7XG5pbXBvcnQgeyBEaXNwbGF5RGVuc2l0eSwgSURlbnNpdHlDaGFuZ2VkRXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vY29yZS9kZW5zaXR5JztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdGlvblRva2VuLCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUsIElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb25zLXRyZWUnO1xuaW1wb3J0IHsgSUdyaWRSZXNvdXJjZVN0cmluZ3MgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4vZ3JpZC1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgSUdyb3VwaW5nRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGluZy1leHByZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJR3JvdXBCeVJlY29yZCB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LXJlY29yZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdyb3VwQnlFeHBhbmRTdGF0ZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LWV4cGFuZC1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWd4UGFnaW5hdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4Q2VsbCwgSWd4RWRpdFJvdyB9IGZyb20gJy4vY3J1ZC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRTZWxlY3Rpb25SYW5nZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgRmlsdGVyaW5nTG9naWMgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElGaWx0ZXJpbmdTdHJhdGVneSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctc3RyYXRlZ3knO1xuaW1wb3J0IHsgRHJvcFBvc2l0aW9uLCBJZ3hDb2x1bW5Nb3ZpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vbW92aW5nL21vdmluZy5zZXJ2aWNlJztcbmltcG9ydCB7IElneE92ZXJsYXlPdXRsZXREaXJlY3RpdmUsIElneFRvZ2dsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdG9nZ2xlL3RvZ2dsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSVRyZWVHcmlkUmVjb3JkIH0gZnJvbSAnLi4vdHJlZS1ncmlkL3RyZWUtZ3JpZC5pbnRlcmZhY2VzJztcbmltcG9ydCB7IFN0YXRlLCBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgRGF0YVR5cGUsIEdyaWRDb2x1bW5EYXRhVHlwZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9kYXRhLXV0aWwnO1xuaW1wb3J0IHsgSWd4RmlsdGVyaW5nT3BlcmFuZCB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctY29uZGl0aW9uJztcbmltcG9ydCB7IElDb2x1bW5QaXBlQXJncywgSUZpZWxkUGlwZUFyZ3MsIElTb3J0aW5nT3B0aW9ucywgTVJMUmVzaXplQ29sdW1uSW5mbyB9IGZyb20gJy4uL2NvbHVtbnMvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBJZ3hTdW1tYXJ5UmVzdWx0IH0gZnJvbSAnLi4vc3VtbWFyaWVzL2dyaWQtc3VtbWFyeSc7XG5pbXBvcnQgeyBJU29ydGluZ0V4cHJlc3Npb24sIElTb3J0aW5nU3RyYXRlZ3ksIFNvcnRpbmdEaXJlY3Rpb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvc29ydGluZy1zdHJhdGVneSc7XG5pbXBvcnQgeyBJR3JpZEdyb3VwaW5nU3RyYXRlZ3ksIElHcmlkU29ydGluZ1N0cmF0ZWd5IH0gZnJvbSAnLi9zdHJhdGVneSc7XG5pbXBvcnQgeyBJRm9yT2ZTdGF0ZSwgSWd4R3JpZEZvck9mRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9mb3Itb2YvZm9yX29mLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPdmVybGF5U2V0dGluZ3MgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vdmVybGF5L3V0aWxpdGllcyc7XG5pbXBvcnQgeyBJRGltZW5zaW9uc0NoYW5nZSwgSVBpdm90Q29uZmlndXJhdGlvbiwgSVBpdm90RGltZW5zaW9uLCBJUGl2b3RLZXlzLCBJUGl2b3RWYWx1ZSwgSVZhbHVlc0NoYW5nZSwgUGl2b3REaW1lbnNpb25UeXBlIH0gZnJvbSAnLi4vcGl2b3QtZ3JpZC9waXZvdC1ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRGF0YUNsb25lU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZGF0YS1jbG9uZS1zdHJhdGVneSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSWd4R3JpZFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vZ3JpZC9ncmlkLXZhbGlkYXRpb24uc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBJR1hfR1JJRF9CQVNFID0gbmV3IEluamVjdGlvblRva2VuPEdyaWRUeXBlPignSWd4R3JpZEJhc2VUb2tlbicpO1xuZXhwb3J0IGNvbnN0IElHWF9HUklEX1NFUlZJQ0VfQkFTRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxHcmlkU2VydmljZVR5cGU+KCdJZ3hHcmlkU2VydmljZUJhc2VUb2tlbicpO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQYXRoU2VnbWVudCB7XG4gICAgcm93SUQ6IGFueTtcbiAgICByb3dJc2xhbmRLZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR3JpZERhdGFCaW5kYWJsZSB7XG4gICAgZGF0YTogYW55W10gfCBudWxsO1xuICAgIGdldCBmaWx0ZXJlZERhdGEoKTogYW55W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VsbFR5cGUge1xuICAgIHZhbHVlOiBhbnk7XG4gICAgZWRpdFZhbHVlOiBhbnk7XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgYWN0aXZlOiBib29sZWFuO1xuICAgIGVkaXRhYmxlOiBib29sZWFuO1xuICAgIGVkaXRNb2RlOiBib29sZWFuO1xuICAgIG5hdGl2ZUVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgICBjb2x1bW46IENvbHVtblR5cGU7XG4gICAgcm93OiBSb3dUeXBlO1xuICAgIGdyaWQ6IEdyaWRUeXBlO1xuICAgIGlkPzogeyByb3dJRDogYW55OyBjb2x1bW5JRDogbnVtYmVyOyByb3dJbmRleDogbnVtYmVyIH07XG4gICAgY2VsbElEPzogYW55O1xuICAgIHJlYWRvbmx5IHZhbGlkYXRpb24/OiBJR3JpZFZhbGlkYXRpb25TdGF0ZTtcbiAgICByZWFkb25seT86IGJvb2xlYW47XG4gICAgdGl0bGU/OiBhbnk7XG4gICAgd2lkdGg6IHN0cmluZztcbiAgICB2aXNpYmxlQ29sdW1uSW5kZXg/OiBudW1iZXI7XG4gICAgdXBkYXRlOiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgICBzZXRFZGl0TW9kZT8odmFsdWU6IGJvb2xlYW4pOiB2b2lkO1xuICAgIGNhbGN1bGF0ZVNpemVUb0ZpdD8ocmFuZ2U6IGFueSk6IG51bWJlcjtcbiAgICBhY3RpdmF0ZT8oZXZlbnQ6IEZvY3VzRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZDtcbiAgICBvbkRvdWJsZUNsaWNrPyhldmVudDogTW91c2VFdmVudCk6IHZvaWQ7XG4gICAgb25DbGljaz8oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlclR5cGUge1xuICAgIG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIGNvbHVtbjogQ29sdW1uVHlwZTtcbiAgICBkZW5zaXR5OiBEaXNwbGF5RGVuc2l0eTtcbiAgICBzb3J0ZWQ6IGJvb2xlYW47XG4gICAgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICB0aXRsZTogYm9vbGVhbjtcbiAgICBzb3J0RGlyZWN0aW9uOiBTb3J0aW5nRGlyZWN0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvd1R5cGUge1xuICAgIG5hdGl2ZUVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIHZpZXdJbmRleDogbnVtYmVyO1xuICAgIGlzR3JvdXBCeVJvdz86IGJvb2xlYW47XG4gICAgaXNTdW1tYXJ5Um93PzogYm9vbGVhbjtcbiAgICBzdW1tYXJpZXM/OiBNYXA8c3RyaW5nLCBJZ3hTdW1tYXJ5UmVzdWx0W10+O1xuICAgIGdyb3VwUm93PzogSUdyb3VwQnlSZWNvcmQ7XG4gICAga2V5PzogYW55O1xuICAgIHJlYWRvbmx5IHZhbGlkYXRpb24/OiBJR3JpZFZhbGlkYXRpb25TdGF0ZTtcbiAgICBkYXRhPzogYW55O1xuICAgIGNlbGxzPzogUXVlcnlMaXN0PENlbGxUeXBlPiB8IENlbGxUeXBlW107XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIHZpcnREaXJSb3c/OiBJZ3hHcmlkRm9yT2ZEaXJlY3RpdmU8Q29sdW1uVHlwZSwgQ29sdW1uVHlwZVtdPjtcbiAgICBwaW5uZWQ/OiBib29sZWFuO1xuICAgIHNlbGVjdGVkPzogYm9vbGVhbjtcbiAgICBleHBhbmRlZD86IGJvb2xlYW47XG4gICAgZGVsZXRlZD86IGJvb2xlYW47XG4gICAgaW5FZGl0TW9kZT86IGJvb2xlYW47XG4gICAgY2hpbGRyZW4/OiBSb3dUeXBlW107XG4gICAgcGFyZW50PzogUm93VHlwZTtcbiAgICBoYXNDaGlsZHJlbj86IGJvb2xlYW47XG4gICAgdHJlZVJvdz86IElUcmVlR3JpZFJlY29yZDtcbiAgICBhZGRSb3dVST86IGJvb2xlYW47XG4gICAgZm9jdXNlZD86IGJvb2xlYW47XG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgb25Sb3dTZWxlY3RvckNsaWNrPzogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgIG9uQ2xpY2s/OiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgYmVnaW5BZGRSb3c/OiAoKSA9PiB2b2lkO1xuICAgIHVwZGF0ZT86ICh2YWx1ZTogYW55KSA9PiB2b2lkO1xuICAgIGRlbGV0ZT86ICgpID0+IGFueTtcbiAgICBwaW4/OiAoKSA9PiB2b2lkO1xuICAgIHVucGluPzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWVsZFR5cGUge1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgaGVhZGVyPzogc3RyaW5nO1xuICAgIGRhdGFUeXBlOiBEYXRhVHlwZTtcbiAgICBmaWx0ZXJzOiBJZ3hGaWx0ZXJpbmdPcGVyYW5kO1xuICAgIHBpcGVBcmdzOiBJRmllbGRQaXBlQXJncztcbiAgICBkZWZhdWx0VGltZUZvcm1hdDogc3RyaW5nO1xuICAgIGRlZmF1bHREYXRlVGltZUZvcm1hdDogc3RyaW5nO1xuXG4gICAgZm9ybWF0dGVyKHZhbHVlOiBhbnksIHJvd0RhdGE/OiBhbnkpOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uVHlwZSBleHRlbmRzIEZpZWxkVHlwZSB7XG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgY2hpbGRyZW46IFF1ZXJ5TGlzdDxDb2x1bW5UeXBlPjtcbiAgICBhbGxDaGlsZHJlbjogQ29sdW1uVHlwZVtdO1xuICAgIC8vIFRZUEVcbiAgICBoZWFkZXJHcm91cDogYW55O1xuICAgIC8vIFRZUEVcbiAgICBoZWFkZXJDZWxsOiBhbnk7XG4gICAgdmFsaWRhdG9yczogYW55W107XG5cbiAgICBoZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBjb2xsYXBzaWJsZUluZGljYXRvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBoZWFkZXJDbGFzc2VzOiBhbnk7XG4gICAgaGVhZGVyU3R5bGVzOiBhbnk7XG4gICAgaGVhZGVyR3JvdXBDbGFzc2VzOiBhbnk7XG4gICAgaGVhZGVyR3JvdXBTdHlsZXM6IGFueTtcblxuICAgIC8qKiBcbiAgICAgKiBDdXN0b20gQ1NTIHN0eWxpbmcsIGFwcHBsaWVkIHRvIGV2ZXJ5IGNvbHVtbiBcbiAgICAgKiBjYWxjV2lkdGgsIG1pbldpZHRoUHgsIG1heFdpZHRoUHgsIG1pbldpZHRoLCBtYXhXaWR0aCwgbWluV2lkdGhQZXJjZW50LCBtYXhXaWR0aFBlcmNlbnQsIHJlc29sdmVkV2lkdGhcbiAgICAgKi9cbiAgICBjYWxjV2lkdGg6IGFueTtcbiAgICBtaW5XaWR0aFB4OiBudW1iZXI7XG4gICAgbWF4V2lkdGhQeDogbnVtYmVyO1xuICAgIG1pbldpZHRoOiBzdHJpbmc7XG4gICAgbWF4V2lkdGg6IHN0cmluZztcbiAgICBtaW5XaWR0aFBlcmNlbnQ6IG51bWJlcjtcbiAgICBtYXhXaWR0aFBlcmNlbnQ6IG51bWJlcjtcbiAgICByZXNvbHZlZFdpZHRoOiBzdHJpbmc7XG5cbiAgICBoZWFkZXI/OiBzdHJpbmc7XG4gICAgaW5kZXg6IG51bWJlcjtcbiAgICBkYXRhVHlwZTogR3JpZENvbHVtbkRhdGFUeXBlO1xuICAgIGlubGluZUVkaXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHZpc2libGVJbmRleDogbnVtYmVyO1xuICAgIGNvbGxhcHNpYmxlPzogYm9vbGVhbjtcbiAgICBlZGl0YWJsZTogYm9vbGVhbjtcbiAgICByZXNpemFibGU6IGJvb2xlYW47XG4gICAgc2VhcmNoYWJsZTogYm9vbGVhbjtcbiAgICBjb2x1bW5Hcm91cDogYm9vbGVhbjtcbiAgICAvKiogQGRlcHJlY2F0ZWQgaW4gdmVyc2lvbiAxMy4xLjAuIFVzZSBgSWd4R3JpZENvbXBvbmVudC5tb3ZpbmdgIGluc3RlYWQuKi9cbiAgICBtb3ZhYmxlOiBib29sZWFuO1xuICAgIGdyb3VwYWJsZTogYm9vbGVhbjtcbiAgICBzb3J0YWJsZTogYm9vbGVhbjtcbiAgICBmaWx0ZXJhYmxlOiBib29sZWFuO1xuICAgIGhpZGRlbjogYm9vbGVhbjtcbiAgICBkaXNhYmxlUGlubmluZzogYm9vbGVhbjtcbiAgICBkaXNhYmxlSGlkaW5nOiBib29sZWFuO1xuICAgIHNvcnRTdHJhdGVneTogSVNvcnRpbmdTdHJhdGVneTtcbiAgICBzb3J0aW5nSWdub3JlQ2FzZTogYm9vbGVhbjtcbiAgICBmaWx0ZXJDZWxsOiBhbnk7XG4gICAgZmlsdGVyaW5nSWdub3JlQ2FzZTogYm9vbGVhbjtcbiAgICBmaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU6IEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTtcbiAgICBoYXNTdW1tYXJ5OiBib29sZWFuO1xuICAgIHN1bW1hcmllczogYW55O1xuICAgIHN1bW1hcnlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwaW5uZWQ6IGJvb2xlYW47XG4gICAgZXhwYW5kZWQ6IGJvb2xlYW47XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICBjb2x1bW5MYXlvdXQ6IGJvb2xlYW47XG4gICAgbGV2ZWw6IG51bWJlcjtcbiAgICByb3dTdGFydDogbnVtYmVyO1xuICAgIHJvd0VuZDogbnVtYmVyO1xuICAgIGNvbFN0YXJ0OiBudW1iZXI7XG4gICAgY29sRW5kOiBudW1iZXI7XG4gICAgZ3JpZFJvd1NwYW46IG51bWJlcjtcbiAgICBncmlkQ29sdW1uU3BhbjogbnVtYmVyO1xuICAgIGNvbHVtbkxheW91dENoaWxkOiBib29sZWFuO1xuICAgIHdpZHRoOiBzdHJpbmc7XG4gICAgdG9wTGV2ZWxQYXJlbnQ/OiBDb2x1bW5UeXBlO1xuICAgIHBhcmVudD86IENvbHVtblR5cGU7XG4gICAgcGlwZUFyZ3M6IElDb2x1bW5QaXBlQXJncztcbiAgICBoYXNOZXN0ZWRQYXRoOiBib29sZWFuO1xuICAgIGFkZGl0aW9uYWxUZW1wbGF0ZUNvbnRleHQ6IGFueTtcbiAgICBpc0xhc3RQaW5uZWQ6IGJvb2xlYW47XG4gICAgaXNGaXJzdFBpbm5lZDogYm9vbGVhbjtcbiAgICBhcHBseVNlbGVjdGFibGVDbGFzczogYm9vbGVhbjtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGdyb3VwaW5nQ29tcGFyZXI6IChhOiBhbnksIGI6IGFueSkgPT4gbnVtYmVyO1xuXG4gICAgZmlsdGVyQ2VsbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgbW92ZShpbmRleDogbnVtYmVyKTogdm9pZDtcbiAgICBnZXRBdXRvU2l6ZSgpOiBzdHJpbmc7XG4gICAgZ2V0UmVzaXphYmxlQ29sVW5kZXJFbmQoKTogTVJMUmVzaXplQ29sdW1uSW5mb1tdO1xuICAgIGdldENlbGxXaWR0aCgpOiBzdHJpbmc7XG4gICAgZ2V0R3JpZFRlbXBsYXRlKGlzUm93OiBib29sZWFuKTogc3RyaW5nO1xuICAgIHRvZ2dsZVZpc2liaWxpdHkodmFsdWU/OiBib29sZWFuKTogdm9pZDtcbiAgICBwb3B1bGF0ZVZpc2libGVJbmRleGVzPygpOiB2b2lkO1xuICAgIHBpbihpbmRleD86IG51bWJlcik6IGJvb2xlYW47XG4gICAgdW5waW4oaW5kZXg/OiBudW1iZXIpOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkRm9ybUdyb3VwQ3JlYXRlZEV2ZW50QXJncyB7XG4gICAgZm9ybUdyb3VwOiBGb3JtR3JvdXAsXG4gICAgb3duZXI6IEdyaWRUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRWYWxpZGF0aW9uU3RhdHVzRXZlbnRBcmdzIHtcbiAgICBzdGF0dXM6IFZhbGlkYXRpb25TdGF0dXMsXG4gICAgb3duZXI6IEdyaWRUeXBlXG59XG5cbmV4cG9ydCB0eXBlIFZhbGlkYXRpb25TdGF0dXMgPSAnVkFMSUQnIHwgJ0lOVkFMSUQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkVmFsaWRhdGlvblN0YXRlIHtcbiAgICByZWFkb25seSBzdGF0dXM6IFZhbGlkYXRpb25TdGF0dXM7XG4gICAgcmVhZG9ubHkgZXJyb3JzPzogVmFsaWRhdGlvbkVycm9ycztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUmVjb3JkVmFsaWRhdGlvblN0YXRlIGV4dGVuZHMgSUdyaWRWYWxpZGF0aW9uU3RhdGUge1xuICAgIGtleTogYW55O1xuICAgIGZpZWxkczogSUZpZWxkVmFsaWRhdGlvblN0YXRlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZpZWxkVmFsaWRhdGlvblN0YXRlIGV4dGVuZHMgSUdyaWRWYWxpZGF0aW9uU3RhdGUge1xuICAgIGZpZWxkOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcmlkU2VydmljZVR5cGUge1xuXG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgY3J1ZFNlcnZpY2U6IGFueTtcbiAgICBjbXM6IElneENvbHVtbk1vdmluZ1NlcnZpY2U7XG5cbiAgICBnZXRfZGF0YSgpOiBhbnlbXTtcbiAgICBnZXRfYWxsX2RhdGEoaW5jbHVkZVRyYW5zYWN0aW9ucz86IGJvb2xlYW4pOiBhbnlbXTtcbiAgICBnZXRfY29sdW1uX2J5X25hbWUobmFtZTogc3RyaW5nKTogQ29sdW1uVHlwZTtcbiAgICBnZXRSb3dEYXRhKGlkOiBhbnkpOiBhbnk7XG4gICAgZ2V0X3JlY19ieV9pZChpZDogYW55KTogYW55O1xuICAgIGdldF9yb3dfaWQocm93RGF0YTogYW55KTogYW55O1xuICAgIGdldF9yb3dfYnlfaW5kZXgocm93U2VsZWN0b3I6IGFueSk6IFJvd1R5cGU7XG4gICAgZ2V0X3Jvd19ieV9rZXkocm93U2VsZWN0b3I6IGFueSk6IFJvd1R5cGU7XG4gICAgZ2V0X3JlY19pbmRleF9ieV9pZChwazogc3RyaW5nIHwgbnVtYmVyLCBkYXRhQ29sbGVjdGlvbj86IGFueVtdKTogbnVtYmVyO1xuICAgIGdldF9yZWNfaWRfYnlfaW5kZXgoaW5kZXg6IG51bWJlciwgZGF0YUNvbGxlY3Rpb24/OiBhbnlbXSk6IGFueTtcbiAgICBnZXRfcm93X2luZGV4X2luX2RhdGEocm93SUQ6IGFueSwgZGF0YUNvbGxlY3Rpb24/OiBhbnlbXSk6IG51bWJlcjtcbiAgICBnZXRfY2VsbF9ieV9rZXkocm93U2VsZWN0b3I6IGFueSwgZmllbGQ6IHN0cmluZyk6IENlbGxUeXBlO1xuICAgIGdldF9jZWxsX2J5X2luZGV4KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbklEOiBudW1iZXIgfCBzdHJpbmcpOiBDZWxsVHlwZTtcbiAgICBnZXRfY2VsbF9ieV92aXNpYmxlX2luZGV4KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpO1xuICAgIHNldF9ncm91cHJvd19leHBhbnNpb25fc3RhdGU/KGdyb3VwUm93OiBJR3JvdXBCeVJlY29yZCwgdmFsdWU6IGJvb2xlYW4pOiB2b2lkO1xuICAgIHJvd19kZWxldGVkX3RyYW5zYWN0aW9uKGlkOiBhbnkpOiBib29sZWFuO1xuICAgIGFkZFJvd1RvRGF0YShyb3dEYXRhOiBhbnksIHBhcmVudElEPzogYW55KTogdm9pZDtcbiAgICBkZWxldGVSb3dCeUlkKGlkOiBhbnkpOiBhbnk7XG4gICAgZ2V0X3Jvd19leHBhbnNpb25fc3RhdGUoaWQ6IGFueSk6IGJvb2xlYW47XG4gICAgc2V0X3Jvd19leHBhbnNpb25fc3RhdGUoaWQ6IGFueSwgZXhwYW5kZWQ6IGJvb2xlYW4sIGV2ZW50PzogRXZlbnQpOiB2b2lkO1xuICAgIGdldF9zdW1tYXJ5X2RhdGEoKTogYW55W107XG5cbiAgICBwcmVwYXJlX3NvcnRpbmdfZXhwcmVzc2lvbihzdGF0ZUNvbGxlY3Rpb25zOiBBcnJheTxBcnJheTxhbnk+PiwgZXhwcmVzc2lvbjogSVNvcnRpbmdFeHByZXNzaW9uKTogdm9pZDtcbiAgICBzb3J0KGV4cHJlc3Npb246IElTb3J0aW5nRXhwcmVzc2lvbik6IHZvaWQ7XG4gICAgc29ydF9tdWx0aXBsZShleHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW10pOiB2b2lkO1xuICAgIGNsZWFyX3NvcnQoZmllbGROYW1lOiBzdHJpbmcpOiB2b2lkO1xuXG4gICAgZ2V0X3Bpbl9yb3dfZXZlbnRfYXJncyhyb3dJRDogYW55LCBpbmRleD86IG51bWJlciwgcm93PzogUm93VHlwZSwgcGlubmVkPzogYm9vbGVhbik6IElQaW5Sb3dFdmVudEFyZ3M7XG5cbiAgICBmaWx0ZXJEYXRhQnlFeHByZXNzaW9ucyhleHByZXNzaW9uc1RyZWU6IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUpOiBhbnlbXTtcbiAgICBzb3J0RGF0YUJ5RXhwcmVzc2lvbnMoZGF0YTogYW55W10sIGV4cHJlc3Npb25zOiBJU29ydGluZ0V4cHJlc3Npb25bXSk6IGFueVtdO1xuXG4gICAgdXBkYXRlX2NlbGwoY2VsbDogSWd4Q2VsbCk6IElHcmlkRWRpdEV2ZW50QXJncztcbiAgICB1cGRhdGVfcm93KHJvdzogSWd4RWRpdFJvdywgdmFsdWU6IGFueSwgZXZlbnQ/OiBFdmVudCk6IElHcmlkRWRpdEV2ZW50QXJncztcblxuICAgIGV4cGFuZF9wYXRoX3RvX3JlY29yZD8ocmVjb3JkOiBJVHJlZUdyaWRSZWNvcmQpOiB2b2lkO1xuICAgIGdldF9zZWxlY3RlZF9jaGlsZHJlbj8ocmVjb3JkOiBJVHJlZUdyaWRSZWNvcmQsIHNlbGVjdGVkUm93SURzOiBhbnlbXSk6IHZvaWQ7XG4gICAgZ2V0X2dyb3VwQnlfcmVjb3JkX2lkPyhnUm93OiBJR3JvdXBCeVJlY29yZCk6IHN0cmluZztcbiAgICByZW1vdmVfZ3JvdXBpbmdfZXhwcmVzc2lvbj8oZmllbGROYW1lOiBzdHJpbmcpOiB2b2lkO1xuICAgIGNsZWFyX2dyb3VwYnk/KGZpZWxkOiBzdHJpbmcgfCBhbnkpOiB2b2lkO1xuICAgIGdldFBhcmVudFJvd0lkPyhjaGlsZDogR3JpZFR5cGUpOiBhbnk7XG4gICAgZ2V0Q2hpbGRHcmlkcz8oaW5EZXB0aD86IGJvb2xlYW4pOiBHcmlkVHlwZVtdO1xuICAgIGdldENoaWxkR3JpZD8ocGF0aDogSVBhdGhTZWdtZW50W10pOiBHcmlkVHlwZTtcblxuICAgIHVuc2V0Q2hpbGRSb3dJc2xhbmQ/KHJvd0lzbGFuZDogR3JpZFR5cGUpOiB2b2lkO1xuICAgIHJlZ2lzdGVyQ2hpbGRSb3dJc2xhbmQ/KHJvd0lzbGFuZDogR3JpZFR5cGUpOiB2b2lkO1xufVxuXG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBHcmlkIHR5cGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmlkVHlwZSBleHRlbmRzIElHcmlkRGF0YUJpbmRhYmxlIHtcbiAgICBkaXNwbGF5RGVuc2l0eTogRGlzcGxheURlbnNpdHk7XG4gICAgbG9jYWxlOiBzdHJpbmc7XG4gICAgcmVzb3VyY2VTdHJpbmdzOiBJR3JpZFJlc291cmNlU3RyaW5ncztcbiAgICBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICByb3dFZGl0YWJsZTogYm9vbGVhbjtcbiAgICByb290U3VtbWFyaWVzRW5hYmxlZDogYm9vbGVhbjtcbiAgICBhbGxvd0ZpbHRlcmluZzogYm9vbGVhbjtcbiAgICByb3dEcmFnZ2FibGU6IGJvb2xlYW47XG4gICAgcHJpbWFyeUtleTogYW55O1xuICAgIGlkOiBzdHJpbmc7XG4gICAgcmVuZGVyZWRSb3dIZWlnaHQ6IG51bWJlcjtcbiAgICBwaXBlVHJpZ2dlcjogbnVtYmVyO1xuICAgIHN1bW1hcnlQaXBlVHJpZ2dlcjogbnVtYmVyO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGdyb3VwYWJsZVBpcGVUcmlnZ2VyOiBudW1iZXI7XG4gICAgZmlsdGVyaW5nUGlwZVRyaWdnZXI6IG51bWJlcjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoYXNDb2x1bW5MYXlvdXRzOiBib29sZWFuO1xuICAgIG1vdmluZzogYm9vbGVhbjtcbiAgICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gICAgZGF0YUNsb25lU3RyYXRlZ3k6IElEYXRhQ2xvbmVTdHJhdGVneTtcblxuICAgIHJlYWRvbmx5IGdyaWRBUEk6IEdyaWRTZXJ2aWNlVHlwZTtcblxuICAgIGZpbHRlck1vZGU6IEZpbHRlck1vZGU7XG5cbiAgICAvLyBUWVBFXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgdGhlYWRSb3c6IGFueTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBncm91cEFyZWE6IGFueTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBmaWx0ZXJDZWxsTGlzdDogYW55W107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZmlsdGVyaW5nUm93OiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgYWN0aW9uU3RyaXA6IGFueTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICByZXNpemVMaW5lOiBhbnk7XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICB0Zm9vdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGFnaW5hdG9yOiBJZ3hQYWdpbmF0b3JDb21wb25lbnQ7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGFnaW5hdG9yTGlzdD86IFF1ZXJ5TGlzdDxJZ3hQYWdpbmF0b3JDb21wb25lbnQ+O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGNydWRTZXJ2aWNlOiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgc3VtbWFyeVNlcnZpY2U6IGFueTtcblxuXG5cbiAgICB2aXJ0dWFsaXphdGlvblN0YXRlOiBJRm9yT2ZTdGF0ZTtcbiAgICAvLyBUWVBFXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgc2VsZWN0aW9uU2VydmljZTogYW55O1xuICAgIG5hdmlnYXRpb246IGFueTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBmaWx0ZXJpbmdTZXJ2aWNlOiBhbnk7XG4gICAgb3V0bGV0OiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGFzTW92YWJsZUNvbHVtbnM6IGJvb2xlYW47XG4gICAgaXNSb3dTZWxlY3RhYmxlOiBib29sZWFuO1xuICAgIHNob3dSb3dTZWxlY3RvcnM6IGJvb2xlYW47XG4gICAgaXNQaW5uaW5nVG9TdGFydDogYm9vbGVhbjtcbiAgICBjb2x1bW5JbkRyYWc6IGFueTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwaW5uZWRXaWR0aDogbnVtYmVyO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHVucGlubmVkV2lkdGg6IG51bWJlcjtcbiAgICBzdW1tYXJpZXNNYXJnaW46IG51bWJlcjtcbiAgICBoZWFkU2VsZWN0b3JCYXNlQXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgICBoYXNWaXNpYmxlQ29sdW1uczogYm9vbGVhbjtcbiAgICBoYXNFeHBhbmRhYmxlQ2hpbGRyZW4/OiBib29sZWFuO1xuICAgIHNob3dFeHBhbmRBbGw/OiBib29sZWFuO1xuXG4gICAgaGlkZGVuQ29sdW1uc0NvdW50OiBudW1iZXI7XG4gICAgcGlubmVkQ29sdW1uc0NvdW50OiBudW1iZXI7XG5cbiAgICBpY29uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIGdyb3VwUm93VGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxJZ3hHcm91cEJ5Um93VGVtcGxhdGVDb250ZXh0PjtcbiAgICBncm91cEJ5Um93U2VsZWN0b3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPElneEdyb3VwQnlSb3dTZWxlY3RvclRlbXBsYXRlQ29udGV4dD47XG4gICAgcm93TG9hZGluZ0luZGljYXRvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBoZWFkU2VsZWN0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4SGVhZFNlbGVjdG9yVGVtcGxhdGVDb250ZXh0PjtcbiAgICByb3dTZWxlY3RvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hSb3dTZWxlY3RvclRlbXBsYXRlQ29udGV4dD47XG4gICAgc29ydEhlYWRlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZEhlYWRlclRlbXBsYXRlQ29udGV4dD47XG4gICAgc29ydEFzY2VuZGluZ0hlYWRlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZEhlYWRlclRlbXBsYXRlQ29udGV4dD47XG4gICAgc29ydERlc2NlbmRpbmdIZWFkZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRIZWFkZXJUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIGhlYWRlckNvbGxhcHNlZEluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkVGVtcGxhdGVDb250ZXh0PjtcbiAgICBoZWFkZXJFeHBhbmRlZEluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkVGVtcGxhdGVDb250ZXh0PjtcbiAgICBkcmFnSW5kaWNhdG9ySWNvblRlbXBsYXRlOiBhbnk7XG4gICAgZHJhZ0luZGljYXRvckljb25CYXNlOiBhbnk7XG4gICAgZGlzYWJsZVRyYW5zaXRpb25zOiBib29sZWFuO1xuICAgIGN1cnJlbmN5UG9zaXRpb25MZWZ0OiBib29sZWFuO1xuXG4gICAgY29sdW1uV2lkdGhTZXRCeVVzZXI6IGJvb2xlYW47XG4gICAgaGVhZGVyRmVhdHVyZXNXaWR0aDogbnVtYmVyO1xuICAgIGNhbGNIZWlnaHQ6IG51bWJlcjtcbiAgICBjYWxjV2lkdGg6IG51bWJlcjtcbiAgICBvdXRlcldpZHRoOiBudW1iZXI7XG4gICAgcm93SGVpZ2h0OiBudW1iZXI7XG4gICAgbXVsdGlSb3dMYXlvdXRSb3dTaXplOiBudW1iZXI7XG4gICAgZGVmYXVsdEhlYWRlckdyb3VwTWluV2lkdGg6IGFueTtcbiAgICBtYXhMZXZlbEhlYWRlckRlcHRoOiBudW1iZXI7XG4gICAgZGVmYXVsdFJvd0hlaWdodDogbnVtYmVyO1xuICAgIF9iYXNlRm9udFNpemU/OiBudW1iZXI7XG4gICAgc2Nyb2xsU2l6ZTogbnVtYmVyO1xuXG4gICAgdmFsaWRhdGlvblRyaWdnZXI6IEdyaWRWYWxpZGF0aW9uVHJpZ2dlcjtcbiAgICBwaW5uaW5nOiBJUGlubmluZ0NvbmZpZztcbiAgICBleHBhbnNpb25TdGF0ZXM6IE1hcDxhbnksIGJvb2xlYW4+O1xuICAgIHBhcmVudFZpcnREaXI6IGFueTtcbiAgICB0Ym9keTogYW55O1xuICAgIHZlcnRpY2FsU2Nyb2xsQ29udGFpbmVyOiBhbnk7XG4gICAgZGF0YVJvd0xpc3Q6IGFueTtcbiAgICByb3dMaXN0OiBhbnk7XG4gICAgY29sdW1uTGlzdDogUXVlcnlMaXN0PENvbHVtblR5cGU+O1xuICAgIGNvbHVtbnM6IENvbHVtblR5cGVbXTtcbiAgICB2aXNpYmxlQ29sdW1uczogQ29sdW1uVHlwZVtdO1xuICAgIHVucGlubmVkQ29sdW1uczogQ29sdW1uVHlwZVtdO1xuICAgIHBpbm5lZENvbHVtbnM6IENvbHVtblR5cGVbXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoZWFkZXJDZWxsTGlzdDogYW55W107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGVhZGVyR3JvdXBzOiBhbnlbXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoZWFkZXJHcm91cHNMaXN0OiBhbnlbXTtcbiAgICBzdW1tYXJpZXNSb3dMaXN0OiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGVhZGVyQ29udGFpbmVyOiBhbnk7XG4gICAgaXNDZWxsU2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICBpc011bHRpUm93U2VsZWN0aW9uRW5hYmxlZDogYm9vbGVhbjtcbiAgICBoYXNQaW5uZWRSZWNvcmRzOiBib29sZWFuO1xuICAgIHBpbm5lZFJlY29yZHNDb3VudDogbnVtYmVyO1xuICAgIHBpbm5lZFJlY29yZHM6IGFueVtdO1xuICAgIHVucGlubmVkUmVjb3JkczogYW55W107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGlubmVkRGF0YVZpZXc6IGFueVtdO1xuICAgIHBpbm5lZFJvd3M6IGFueVtdO1xuICAgIGRhdGFWaWV3OiBhbnlbXTtcbiAgICBfZmlsdGVyZWRVbnBpbm5lZERhdGE6IGFueVtdO1xuICAgIF9maWx0ZXJlZFNvcnRlZFVucGlubmVkRGF0YTogYW55W107XG4gICAgZmlsdGVyZWRTb3J0ZWREYXRhOiBhbnlbXTtcbiAgICBkYXRhV2l0aEFkZGVkSW5UcmFuc2FjdGlvblJvd3M6IGFueVtdO1xuICAgIHJlYWRvbmx5IHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25TZXJ2aWNlPFRyYW5zYWN0aW9uLCBTdGF0ZT47XG4gICAgcmVhZG9ubHkgdmFsaWRhdGlvbjogSWd4R3JpZFZhbGlkYXRpb25TZXJ2aWNlO1xuICAgIGRlZmF1bHRTdW1tYXJ5SGVpZ2h0OiBudW1iZXI7XG4gICAgc3VtbWFyeVJvd0hlaWdodDogbnVtYmVyO1xuICAgIHJvd0VkaXRpbmdPdmVybGF5OiBJZ3hUb2dnbGVEaXJlY3RpdmU7XG4gICAgdG90YWxSb3dzQ291bnRBZnRlckZpbHRlcjogbnVtYmVyO1xuICAgIF90b3RhbFJlY29yZHM6IG51bWJlcjtcbiAgICBwYWdpbmdNb2RlOiBHcmlkUGFnaW5nTW9kZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHBhZ2luZ1N0YXRlOiBhbnk7XG5cbiAgICByb3dFZGl0VGFiczogYW55O1xuICAgIGxhc3RTZWFyY2hJbmZvOiBJU2VhcmNoSW5mbztcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwYWdlOiBudW1iZXI7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGVyUGFnZTogbnVtYmVyO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGRyYWdSb3dJRDogYW55O1xuICAgIHJvd0RyYWdnaW5nOiBib29sZWFuO1xuXG4gICAgZmlyc3RFZGl0YWJsZUNvbHVtbkluZGV4OiBudW1iZXI7XG4gICAgbGFzdEVkaXRhYmxlQ29sdW1uSW5kZXg6IG51bWJlcjtcbiAgICBpc1Jvd1Bpbm5pbmdUb1RvcDogYm9vbGVhbjtcbiAgICBoYXNEZXRhaWxzOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGhhc1N1bW1hcml6ZWRDb2x1bW5zOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGhhc0NvbHVtbkdyb3VwczogYm9vbGVhbjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoYXNFZGl0YWJsZUNvbHVtbnM6IGJvb2xlYW47XG4gICAgdW5pcXVlQ29sdW1uVmFsdWVzU3RyYXRlZ3k6IChjb2x1bW46IENvbHVtblR5cGUsIHRyZWU6IEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSwgZG9uZTogKHZhbHVlczogYW55W10pID0+IHZvaWQpID0+IHZvaWQ7XG4gICAgZ2V0SGVhZGVyQ2VsbFdpZHRoOiAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IElTaXplSW5mbztcblxuICAgIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZG9jdW1lbnQ6IERvY3VtZW50O1xuICAgIHJvd0V4cGFuZGVkSW5kaWNhdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRSb3dUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIHJvd0NvbGxhcHNlZEluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkUm93VGVtcGxhdGVDb250ZXh0PjtcbiAgICBleGNlbFN0eWxlSGVhZGVySWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkSGVhZGVyVGVtcGxhdGVDb250ZXh0PjtcblxuICAgIHNlbGVjdFJvd09uQ2xpY2s6IGJvb2xlYW47XG4gICAgY2VsbFNlbGVjdGlvbjogR3JpZFNlbGVjdGlvbk1vZGU7XG4gICAgcm93U2VsZWN0aW9uOiBHcmlkU2VsZWN0aW9uTW9kZTtcbiAgICBjb2x1bW5TZWxlY3Rpb246IEdyaWRTZWxlY3Rpb25Nb2RlO1xuICAgIHN1bW1hcnlDYWxjdWxhdGlvbk1vZGU6IEdyaWRTdW1tYXJ5Q2FsY3VsYXRpb25Nb2RlO1xuICAgIHN1bW1hcnlQb3NpdGlvbjogR3JpZFN1bW1hcnlQb3NpdGlvbjtcblxuICAgIC8vIFhYWDogV29yayBhcm91bmQgdGlsbCB3ZSBmaXhlZCB0aGUgaW5qZWN0aW9uIHRva2Vuc1xuICAgIGxhc3RDaGlsZEdyaWQ/OiBHcmlkVHlwZTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICB0b29sYmFyT3V0bGV0PzogVmlld0NvbnRhaW5lclJlZjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwYWdpbmF0b3JPdXRsZXQ/OiBWaWV3Q29udGFpbmVyUmVmO1xuICAgIGZsYXREYXRhPzogYW55W10gfCBudWxsO1xuICAgIGNoaWxkUm93PzogYW55O1xuICAgIGV4cGFuc2lvbkRlcHRoPzogbnVtYmVyO1xuICAgIGNoaWxkRGF0YUtleT86IGFueTtcbiAgICBmb3JlaWduS2V5PzogYW55O1xuICAgIGNhc2NhZGVPbkRlbGV0ZT86IGJvb2xlYW47XG4gICAgbG9hZENoaWxkcmVuT25EZW1hbmQ/OiAocGFyZW50SUQ6IGFueSwgZG9uZTogKGNoaWxkcmVuOiBhbnlbXSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICBoYXNDaGlsZHJlbktleT86IGFueTtcbiAgICBsb2FkaW5nUm93cz86IFNldDxhbnk+O1xuICAgIHBhcmVudD86IEdyaWRUeXBlO1xuICAgIGhpZ2hsaWdodGVkUm93SUQ/OiBhbnk7XG4gICAgdXBkYXRlT25SZW5kZXI/OiBib29sZWFuO1xuICAgIGNoaWxkTGF5b3V0S2V5cz86IGFueVtdO1xuICAgIGNoaWxkTGF5b3V0TGlzdD86IFF1ZXJ5TGlzdDxhbnk+O1xuICAgIHJvb3RHcmlkPzogR3JpZFR5cGU7XG4gICAgcHJvY2Vzc2VkUm9vdFJlY29yZHM/OiBJVHJlZUdyaWRSZWNvcmRbXTtcbiAgICByb290UmVjb3Jkcz86IElUcmVlR3JpZFJlY29yZFtdO1xuICAgIHJlY29yZHM/OiBNYXA8YW55LCBJVHJlZUdyaWRSZWNvcmQ+O1xuICAgIHByb2Nlc3NlZEV4cGFuZGVkRmxhdERhdGE/OiBhbnlbXSB8IG51bGw7XG4gICAgcHJvY2Vzc2VkUmVjb3Jkcz86IE1hcDxhbnksIElUcmVlR3JpZFJlY29yZD47XG4gICAgdHJlZUdyb3VwQXJlYT86IGFueTtcblxuICAgIGFjdGl2ZU5vZGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJQWN0aXZlTm9kZUNoYW5nZUV2ZW50QXJncz47XG4gICAgZ3JpZEtleWRvd246IEV2ZW50RW1pdHRlcjxJR3JpZEtleWRvd25FdmVudEFyZ3M+O1xuICAgIGNlbGxDbGljazogRXZlbnRFbWl0dGVyPElHcmlkQ2VsbEV2ZW50QXJncz47XG4gICAgZG91YmxlQ2xpY2s6IEV2ZW50RW1pdHRlcjxJR3JpZENlbGxFdmVudEFyZ3M+O1xuICAgIGNvbnRleHRNZW51OiBFdmVudEVtaXR0ZXI8SUdyaWRDZWxsRXZlbnRBcmdzPjtcbiAgICBzZWxlY3RlZDogRXZlbnRFbWl0dGVyPElHcmlkQ2VsbEV2ZW50QXJncz47XG4gICAgcmFuZ2VTZWxlY3RlZDogRXZlbnRFbWl0dGVyPEdyaWRTZWxlY3Rpb25SYW5nZT47XG4gICAgcm93U2VsZWN0aW9uQ2hhbmdpbmc6IEV2ZW50RW1pdHRlcjxJUm93U2VsZWN0aW9uRXZlbnRBcmdzPjtcbiAgICBsb2NhbGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcbiAgICBmaWx0ZXJpbmc6IEV2ZW50RW1pdHRlcjxJRmlsdGVyaW5nRXZlbnRBcmdzPjtcbiAgICBmaWx0ZXJpbmdEb25lOiBFdmVudEVtaXR0ZXI8SUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZT47XG4gICAgY29sdW1uUGlubmVkOiBFdmVudEVtaXR0ZXI8SVBpbkNvbHVtbkV2ZW50QXJncz47XG4gICAgY29sdW1uUmVzaXplZDogRXZlbnRFbWl0dGVyPElDb2x1bW5SZXNpemVFdmVudEFyZ3M+O1xuICAgIGNvbHVtbk1vdmluZ0VuZDogRXZlbnRFbWl0dGVyPElDb2x1bW5Nb3ZpbmdFbmRFdmVudEFyZ3M+O1xuICAgIGNvbHVtblNlbGVjdGlvbkNoYW5naW5nOiBFdmVudEVtaXR0ZXI8SUNvbHVtblNlbGVjdGlvbkV2ZW50QXJncz47XG4gICAgY29sdW1uTW92aW5nOiBFdmVudEVtaXR0ZXI8SUNvbHVtbk1vdmluZ0V2ZW50QXJncz47XG4gICAgY29sdW1uTW92aW5nU3RhcnQ6IEV2ZW50RW1pdHRlcjxJQ29sdW1uTW92aW5nU3RhcnRFdmVudEFyZ3M+O1xuICAgIGNvbHVtblBpbjogRXZlbnRFbWl0dGVyPElQaW5Db2x1bW5DYW5jZWxsYWJsZUV2ZW50QXJncz47XG4gICAgY29sdW1uVmlzaWJpbGl0eUNoYW5naW5nOiBFdmVudEVtaXR0ZXI8SUNvbHVtblZpc2liaWxpdHlDaGFuZ2luZ0V2ZW50QXJncz47XG4gICAgY29sdW1uVmlzaWJpbGl0eUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJQ29sdW1uVmlzaWJpbGl0eUNoYW5nZWRFdmVudEFyZ3M+O1xuICAgIGJhdGNoRWRpdGluZ0NoYW5nZT86IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcbiAgICBkZW5zaXR5Q2hhbmdlZDogRXZlbnRFbWl0dGVyPElEZW5zaXR5Q2hhbmdlZEV2ZW50QXJncz47XG4gICAgcm93QWRkOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICByb3dBZGRlZDogRXZlbnRFbWl0dGVyPElSb3dEYXRhRXZlbnRBcmdzPjtcbiAgICByb3dBZGRlZE5vdGlmaWVyOiBTdWJqZWN0PElSb3dEYXRhRXZlbnRBcmdzPjtcbiAgICByb3dEZWxldGVkOiBFdmVudEVtaXR0ZXI8SVJvd0RhdGFFdmVudEFyZ3M+O1xuICAgIHJvd0RlbGV0ZWROb3RpZmllcjogU3ViamVjdDxJUm93RGF0YUV2ZW50QXJncz47XG4gICAgY2VsbEVkaXRFbnRlcjogRXZlbnRFbWl0dGVyPElHcmlkRWRpdEV2ZW50QXJncz47XG4gICAgY2VsbEVkaXQ6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXRFdmVudEFyZ3M+O1xuICAgIGNlbGxFZGl0RG9uZTogRXZlbnRFbWl0dGVyPElHcmlkRWRpdERvbmVFdmVudEFyZ3M+O1xuICAgIGNlbGxFZGl0RXhpdDogRXZlbnRFbWl0dGVyPElHcmlkRWRpdERvbmVFdmVudEFyZ3M+O1xuICAgIHJvd0VkaXRFbnRlcjogRXZlbnRFbWl0dGVyPElHcmlkRWRpdEV2ZW50QXJncz47XG4gICAgcm93RWRpdDogRXZlbnRFbWl0dGVyPElHcmlkRWRpdEV2ZW50QXJncz47XG4gICAgcm93RWRpdERvbmU6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXREb25lRXZlbnRBcmdzPjtcbiAgICByb3dFZGl0RXhpdDogRXZlbnRFbWl0dGVyPElHcmlkRWRpdERvbmVFdmVudEFyZ3M+O1xuICAgIHJvd0RyYWdTdGFydDogRXZlbnRFbWl0dGVyPElSb3dEcmFnU3RhcnRFdmVudEFyZ3M+O1xuICAgIHJvd0RyYWdFbmQ6IEV2ZW50RW1pdHRlcjxJUm93RHJhZ0VuZEV2ZW50QXJncz47XG4gICAgcm93VG9nZ2xlOiBFdmVudEVtaXR0ZXI8SVJvd1RvZ2dsZUV2ZW50QXJncz47XG4gICAgZm9ybUdyb3VwQ3JlYXRlZDogRXZlbnRFbWl0dGVyPElHcmlkRm9ybUdyb3VwQ3JlYXRlZEV2ZW50QXJncz47XG4gICAgdmFsaWRhdGlvblN0YXR1c0NoYW5nZTogRXZlbnRFbWl0dGVyPElHcmlkVmFsaWRhdGlvblN0YXR1c0V2ZW50QXJncz47XG5cbiAgICB0b29sYmFyRXhwb3J0aW5nOiBFdmVudEVtaXR0ZXI8SUdyaWRUb29sYmFyRXhwb3J0RXZlbnRBcmdzPjtcbiAgICByZW5kZXJlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgcmVzaXplTm90aWZ5OiBTdWJqZWN0PHZvaWQ+O1xuXG4gICAgc29ydFN0cmF0ZWd5OiBJR3JpZFNvcnRpbmdTdHJhdGVneTtcbiAgICBncm91cFN0cmF0ZWd5PzogSUdyaWRHcm91cGluZ1N0cmF0ZWd5O1xuICAgIGZpbHRlcmluZ0xvZ2ljOiBGaWx0ZXJpbmdMb2dpYztcbiAgICBmaWx0ZXJTdHJhdGVneTogSUZpbHRlcmluZ1N0cmF0ZWd5O1xuICAgIGFsbG93QWR2YW5jZWRGaWx0ZXJpbmc6IGJvb2xlYW47XG4gICAgc29ydGluZ0V4cHJlc3Npb25zOiBJU29ydGluZ0V4cHJlc3Npb25bXTtcbiAgICBzb3J0aW5nRXhwcmVzc2lvbnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJU29ydGluZ0V4cHJlc3Npb25bXT47XG4gICAgZmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlOiBJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlO1xuICAgIGZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZUNoYW5nZTogRXZlbnRFbWl0dGVyPElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU+O1xuICAgIGFkdmFuY2VkRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlOiBJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlO1xuICAgIGFkdmFuY2VkRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZT47XG4gICAgc29ydGluZ09wdGlvbnM6IElTb3J0aW5nT3B0aW9ucztcblxuICAgIGJhdGNoRWRpdGluZzogYm9vbGVhbjtcbiAgICBncm91cGluZ0V4cGFuc2lvblN0YXRlPzogSUdyb3VwQnlFeHBhbmRTdGF0ZVtdO1xuICAgIGdyb3VwaW5nRXhwcmVzc2lvbnM/OiBJR3JvdXBpbmdFeHByZXNzaW9uW107XG4gICAgZ3JvdXBpbmdFeHByZXNzaW9uc0NoYW5nZT86IEV2ZW50RW1pdHRlcjxJR3JvdXBpbmdFeHByZXNzaW9uW10+O1xuICAgIGdyb3Vwc0V4cGFuZGVkPzogYm9vbGVhbjtcbiAgICByZWFkb25seSBncm91cHNSZWNvcmRzPzogSUdyb3VwQnlSZWNvcmRbXTtcbiAgICBncm91cGluZ0ZsYXRSZXN1bHQ/OiBhbnlbXTtcbiAgICBncm91cGluZ1Jlc3VsdD86IGFueVtdO1xuICAgIGdyb3VwaW5nTWV0YWRhdGE/OiBhbnlbXTtcbiAgICBzZWxlY3RlZENlbGxzPzogQ2VsbFR5cGVbXTtcbiAgICBzZWxlY3RlZFJvd3M6IGFueVtdO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGFjdGl2ZURlc2NlbmRhbnQ/OiBzdHJpbmc7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaXNQaXZvdD86IGJvb2xlYW47XG5cbiAgICB0b2dnbGVHcm91cD8oZ3JvdXBSb3c6IElHcm91cEJ5UmVjb3JkKTogdm9pZDtcbiAgICBjbGVhckdyb3VwaW5nPyhmaWVsZDogc3RyaW5nKTogdm9pZDtcbiAgICBncm91cEJ5PyhleHByZXNzaW9uOiBJR3JvdXBpbmdFeHByZXNzaW9uIHwgQXJyYXk8SUdyb3VwaW5nRXhwcmVzc2lvbj4pOiB2b2lkO1xuICAgIHJlc29sdmVPdXRsZXQ/KCk6IElneE92ZXJsYXlPdXRsZXREaXJlY3RpdmU7XG4gICAgdXBkYXRlQ29sdW1ucyhjb2x1bW5zOiBDb2x1bW5UeXBlW10pOiB2b2lkO1xuICAgIGdldFNlbGVjdGVkUmFuZ2VzKCk6IEdyaWRTZWxlY3Rpb25SYW5nZVtdO1xuICAgIGRlc2VsZWN0QWxsQ29sdW1ucygpOiB2b2lkO1xuICAgIGRlc2VsZWN0Q29sdW1ucyhjb2x1bW5zOiBzdHJpbmdbXSB8IENvbHVtblR5cGVbXSk6IHZvaWQ7XG4gICAgc2VsZWN0Q29sdW1ucyhjb2x1bW5zOiBzdHJpbmdbXSB8IENvbHVtblR5cGVbXSk6IHZvaWQ7XG4gICAgc2VsZWN0ZWRDb2x1bW5zKCk6IENvbHVtblR5cGVbXTtcbiAgICByZWZyZXNoU2VhcmNoKCk6IHZvaWQ7XG4gICAgZ2V0RGVmYXVsdEV4cGFuZFN0YXRlKHJlY29yZDogYW55KTogYm9vbGVhbjtcbiAgICB0cmFja0NvbHVtbkNoYW5nZXMoaW5kZXg6IG51bWJlciwgY29sdW1uOiBhbnkpOiBhbnk7XG4gICAgZ2V0UG9zc2libGVDb2x1bW5XaWR0aCgpOiBzdHJpbmc7XG4gICAgcmVzZXRIb3Jpem9udGFsVmlydHVhbGl6YXRpb24oKTogdm9pZDtcbiAgICBoYXNWZXJ0aWNhbFNjcm9sbCgpOiBib29sZWFuO1xuICAgIGdldFZpc2libGVDb250ZW50SGVpZ2h0KCk6IG51bWJlcjtcbiAgICBnZXREcmFnR2hvc3RDdXN0b21UZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcbiAgICBvcGVuUm93T3ZlcmxheShpZDogYW55KTogdm9pZDtcbiAgICBvcGVuQWR2YW5jZWRGaWx0ZXJpbmdEaWFsb2coKTogdm9pZDtcbiAgICBzaG93U25hY2tiYXJGb3IoaW5kZXg6IG51bWJlcik6IHZvaWQ7XG4gICAgZ2V0Q29sdW1uQnlOYW1lKG5hbWU6IHN0cmluZyk6IGFueTtcbiAgICBnZXRDb2x1bW5CeVZpc2libGVJbmRleChpbmRleDogbnVtYmVyKTogQ29sdW1uVHlwZTtcbiAgICBnZXRIZWFkZXJHcm91cFdpZHRoKGNvbHVtbjogQ29sdW1uVHlwZSk6IHN0cmluZztcbiAgICBnZXRSb3dCeUtleT8oa2V5OiBhbnkpOiBSb3dUeXBlO1xuICAgIGdldFJvd0J5SW5kZXg/KGluZGV4OiBudW1iZXIpOiBSb3dUeXBlO1xuICAgIHNldEZpbHRlcmVkRGF0YShkYXRhOiBhbnksIHBpbm5lZDogYm9vbGVhbik6IHZvaWQ7XG4gICAgc2V0RmlsdGVyZWRTb3J0ZWREYXRhKGRhdGE6IGFueSwgcGlubmVkOiBib29sZWFuKTogdm9pZDtcbiAgICBzb3J0KGV4cHJlc3Npb246IElTb3J0aW5nRXhwcmVzc2lvbiB8IElTb3J0aW5nRXhwcmVzc2lvbltdKTogdm9pZDtcbiAgICBjbGVhclNvcnQobmFtZT86IHN0cmluZyk6IHZvaWQ7XG4gICAgcGluUm93KGlkOiBhbnksIGluZGV4PzogbnVtYmVyLCByb3c/OiBSb3dUeXBlKTogYm9vbGVhbjtcbiAgICB1bnBpblJvdyhpZDogYW55LCByb3c/OiBSb3dUeXBlKTogYm9vbGVhbjtcbiAgICBnZXRVbnBpbm5lZEluZGV4QnlJZChpZDogYW55KTogbnVtYmVyO1xuICAgIGdldEVtcHR5UmVjb3JkT2JqZWN0Rm9yKGluUm93OiBSb3dUeXBlKTogYW55O1xuICAgIGlzU3VtbWFyeVJvdyhyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgaXNSZWNvcmRQaW5uZWQocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGdldEluaXRpYWxQaW5uZWRJbmRleChyZWM6IGFueSk6IG51bWJlcjtcbiAgICBpc1JlY29yZFBpbm5lZEJ5Vmlld0luZGV4KHJvd0luZGV4OiBudW1iZXIpOiBib29sZWFuO1xuICAgIGlzQ29sdW1uR3JvdXBlZChmaWVsZE5hbWU6IHN0cmluZyk6IGJvb2xlYW47XG4gICAgaXNEZXRhaWxSZWNvcmQocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzR3JvdXBCeVJlY29yZChyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgaXNHaG9zdFJlY29yZChyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgaXNUcmVlUm93PyhyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgaXNDaGlsZEdyaWRSZWNvcmQ/KHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBnZXRDaGlsZEdyaWRzPyhpbkRlcHRoPzogYm9vbGVhbik6IGFueVtdO1xuICAgIGlzSGllcmFyY2hpY2FsUmVjb3JkPyhyZWNvcmQ6IGFueSk6IGJvb2xlYW47XG4gICAgY29sdW1uVG9WaXNpYmxlSW5kZXgoa2V5OiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXI7XG4gICAgbW92ZUNvbHVtbihjb2x1bW46IENvbHVtblR5cGUsIHRhcmdldDogQ29sdW1uVHlwZSwgcG9zOiBEcm9wUG9zaXRpb24pOiB2b2lkO1xuICAgIG5hdmlnYXRlVG8ocm93SW5kZXg6IG51bWJlciwgdmlzaWJsZUNvbHVtbkluZGV4OiBudW1iZXIsIGNhbGxiYWNrPzogKGU6IGFueSkgPT4gYW55KTogdm9pZDtcbiAgICBnZXRQcmV2aW91c0NlbGwoY3VyclJvd0luZGV4OiBudW1iZXIsIGN1clZpc2libGVDb2xJbmRleDogbnVtYmVyLCBjYWxsYmFjazogKGM6IENvbHVtblR5cGUpID0+IGJvb2xlYW4pOiBJQ2VsbFBvc2l0aW9uO1xuICAgIGdldE5leHRDZWxsKGN1cnJSb3dJbmRleDogbnVtYmVyLCBjdXJWaXNpYmxlQ29sSW5kZXg6IG51bWJlciwgY2FsbGJhY2s6IChjOiBDb2x1bW5UeXBlKSA9PiBib29sZWFuKTogSUNlbGxQb3NpdGlvbjtcbiAgICBjbGVhckNlbGxTZWxlY3Rpb24oKTogdm9pZDtcbiAgICBzZWxlY3RSYW5nZShyYW5nZTogR3JpZFNlbGVjdGlvblJhbmdlIHwgR3JpZFNlbGVjdGlvblJhbmdlW10pOiB2b2lkO1xuICAgIHNlbGVjdFJvd3Mocm93SURzOiBhbnlbXSwgY2xlYXJDdXJyZW50U2VsZWN0aW9uPzogYm9vbGVhbik6IHZvaWQ7XG4gICAgZGVzZWxlY3RSb3dzKHJvd0lEczogYW55W10pOiB2b2lkO1xuICAgIHNlbGVjdEFsbFJvd3Mob25seUZpbHRlckRhdGE/OiBib29sZWFuKTogdm9pZDtcbiAgICBkZXNlbGVjdEFsbFJvd3Mob25seUZpbHRlckRhdGE/OiBib29sZWFuKTogdm9pZDtcbiAgICBzZXRVcFBhZ2luYXRvcigpOiB2b2lkO1xuICAgIGNyZWF0ZUZpbHRlckRyb3Bkb3duKGNvbHVtbjogQ29sdW1uVHlwZSwgb3B0aW9uczogT3ZlcmxheVNldHRpbmdzKTogYW55O1xuICAgIHVwZGF0ZUNlbGwodmFsdWU6IGFueSwgcm93U2VsZWN0b3I6IGFueSwgY29sdW1uOiBzdHJpbmcpOiB2b2lkO1xuICAgIC8vIFR5cGUgdG8gUm93VHlwZVxuICAgIGNyZWF0ZVJvdz8oaW5kZXg6IG51bWJlciwgZGF0YT86IGFueSk6IFJvd1R5cGU7XG4gICAgZGVsZXRlUm93KGlkOiBhbnkpOiBhbnk7XG4gICAgZGVsZXRlUm93QnlJZChpZDogYW55KTogYW55O1xuICAgIHVwZGF0ZVJvdyh2YWx1ZTogYW55LCByb3dTZWxlY3RvcjogYW55KTogdm9pZDtcbiAgICBjb2xsYXBzZVJvdyhpZDogYW55KTogdm9pZDtcbiAgICBub3RpZnlDaGFuZ2VzKHJlcGFpbnQ/OiBib29sZWFuKTogdm9pZDtcbiAgICByZXNldENvbHVtbkNvbGxlY3Rpb25zKCk6IHZvaWQ7XG4gICAgdHJpZ2dlclBpcGVzKCk6IHZvaWQ7XG4gICAgcmVwb3NpdGlvblJvd0VkaXRpbmdPdmVybGF5KHJvdzogUm93VHlwZSk6IHZvaWQ7XG4gICAgY2xvc2VSb3dFZGl0aW5nT3ZlcmxheSgpOiB2b2lkO1xuICAgIHJlZmxvdygpOiB2b2lkO1xuXG4gICAgLy8gVE9ETzogTWF5YmUgbW92ZSB0aGVtIHRvIEZsYXRHcmlkVHlwZSwgYnV0IHRoZW4gd2lsbCB3ZSBuZWVkIGFub3RoZXIgdG9rZW4/XG4gICAgaXNFeHBhbmRlZEdyb3VwKGdyb3VwOiBJR3JvdXBCeVJlY29yZCk6IGJvb2xlYW47XG4gICAgY3JlYXRlQ29sdW1uc0xpc3Q/KGNvbHM6IENvbHVtblR5cGVbXSk6IHZvaWQ7XG4gICAgdG9nZ2xlQWxsR3JvdXBSb3dzPygpOiB2b2lkO1xuICAgIHRvZ2dsZUFsbD8oKTogdm9pZDtcbiAgICBnZW5lcmF0ZVJvd1BhdGg/KHJvd0lkOiBhbnkpOiBhbnlbXTtcbiAgICBwcmV2ZW50SGVhZGVyU2Nyb2xsPyhhcmdzOiBhbnkpOiB2b2lkO1xufVxuXG4vKipcbiAqIEFuIGludGVyZmFjZSBkZXNjcmliaW5nIGEgRmxhdCBHcmlkIHR5cGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbGF0R3JpZFR5cGUgZXh0ZW5kcyBHcmlkVHlwZSB7XG4gICAgZ3JvdXBpbmdFeHBhbnNpb25TdGF0ZTogSUdyb3VwQnlFeHBhbmRTdGF0ZVtdO1xuICAgIGdyb3VwaW5nRXhwcmVzc2lvbnM6IElHcm91cGluZ0V4cHJlc3Npb25bXTtcbiAgICBncm91cGluZ0V4cHJlc3Npb25zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUdyb3VwaW5nRXhwcmVzc2lvbltdPjtcblxuICAgIHRvZ2dsZUdyb3VwKGdyb3VwUm93OiBJR3JvdXBCeVJlY29yZCk6IHZvaWQ7XG4gICAgY2xlYXJHcm91cGluZyhmaWVsZDogc3RyaW5nKTogdm9pZDtcbiAgICBncm91cEJ5KGV4cHJlc3Npb246IElHcm91cGluZ0V4cHJlc3Npb24gfCBBcnJheTxJR3JvdXBpbmdFeHByZXNzaW9uPik6IHZvaWQ7XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBUcmVlIEdyaWQgdHlwZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyZWVHcmlkVHlwZSBleHRlbmRzIEdyaWRUeXBlIHtcbiAgICByZWNvcmRzOiBNYXA8YW55LCBJVHJlZUdyaWRSZWNvcmQ+O1xuICAgIGlzVHJlZVJvdyhyZWM6IGFueSk6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBIaWVyYXJjaGljYWwgR3JpZCB0eXBlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGllcmFyY2hpY2FsR3JpZFR5cGUgZXh0ZW5kcyBHcmlkVHlwZSB7XG4gICAgY2hpbGRMYXlvdXRLZXlzOiBhbnlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaXZvdEdyaWRUeXBlIGV4dGVuZHMgR3JpZFR5cGUge1xuICAgIHBpdm90Q29uZmlndXJhdGlvbjogSVBpdm90Q29uZmlndXJhdGlvbjtcbiAgICBhbGxEaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXSxcbiAgICBzaG93UGl2b3RDb25maWd1cmF0aW9uVUk6IGJvb2xlYW47XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgY29sdW1uRGltZW5zaW9uczogSVBpdm90RGltZW5zaW9uW107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcm93RGltZW5zaW9uczogSVBpdm90RGltZW5zaW9uW107XG4gICAgcm93RGltZW5zaW9uUmVzaXppbmc6IGJvb2xlYW47XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgdmFsdWVzOiBJUGl2b3RWYWx1ZVtdO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGZpbHRlckRpbWVuc2lvbnM6IElQaXZvdERpbWVuc2lvbltdO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGRpbWVuc2lvbkRhdGFDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgcGl2b3RSb3dXaWR0aHM6IG51bWJlcjtcbiAgICBzZXR1cENvbHVtbnMoKTogdm9pZDtcbiAgICB0b2dnbGVSb3cocm93SUQ6IGFueSk6IHZvaWQ7XG4gICAgcmVzb2x2ZURhdGFUeXBlcyhmaWVsZDogYW55KTogR3JpZENvbHVtbkRhdGFUeXBlO1xuICAgIG1vdmVEaW1lbnNpb24oZGltZW5zaW9uOiBJUGl2b3REaW1lbnNpb24sIHRhcmdldENvbGxlY3Rpb25UeXBlOiBQaXZvdERpbWVuc2lvblR5cGUsIGluZGV4PzogbnVtYmVyKTtcbiAgICBnZXREaW1lbnNpb25zQnlUeXBlKGRpbWVuc2lvbjogUGl2b3REaW1lbnNpb25UeXBlKTtcbiAgICB0b2dnbGVEaW1lbnNpb24oZGltZW5zaW9uOiBJUGl2b3REaW1lbnNpb24pO1xuICAgIHNvcnREaW1lbnNpb24oZGltZW5zaW9uOiBJUGl2b3REaW1lbnNpb24sIHNvcnREaXJlY3Rpb246IFNvcnRpbmdEaXJlY3Rpb24pO1xuICAgIHRvZ2dsZVZhbHVlKHZhbHVlOiBJUGl2b3RWYWx1ZSk7XG4gICAgbW92ZVZhbHVlKHZhbHVlOiBJUGl2b3RWYWx1ZSwgaW5kZXg/OiBudW1iZXIpO1xuICAgIHJvd0RpbWVuc2lvbldpZHRoVG9QaXhlbHMoZGltOiBJUGl2b3REaW1lbnNpb24pOiBudW1iZXI7XG4gICAgZGltZW5zaW9uc0NoYW5nZTogRXZlbnRFbWl0dGVyPElEaW1lbnNpb25zQ2hhbmdlPjtcbiAgICB2YWx1ZXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJVmFsdWVzQ2hhbmdlPjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwaXZvdEtleXM6IElQaXZvdEtleXM7XG4gICAgaGFzTXVsdGlwbGVWYWx1ZXM6IGJvb2xlYW47XG4gICAgZXhjZWxTdHlsZUZpbHRlck1heEhlaWdodDogc3RyaW5nO1xuICAgIGV4Y2VsU3R5bGVGaWx0ZXJNaW5IZWlnaHQ6IHN0cmluZztcbiAgICB2YWx1ZUNoaXBUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZFNWR0ljb24ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTaXplSW5mbyB7XG4gICAgd2lkdGg6IG51bWJlcixcbiAgICBwYWRkaW5nOiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkTWFzdGVyRGV0YWlsQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBhbnk7XG4gICAgaW5kZXg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcm91cEJ5Um93VGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IElHcm91cEJ5UmVjb3JkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogR3JpZFR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkUm93VGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IFJvd1R5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkUm93RHJhZ0dob3N0Q29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBhbnksIC8vIHRoaXMgaXMgdGhlIHJvdyBkYXRhXG4gICAgZGF0YTogYW55LCAvLyB0aGlzIGlzIGFsc28gdGhlIHJvdyBkYXRhIGZvciBzb21lIHJlYXNvbi5cbiAgICBncmlkOiBHcmlkVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRFbXB0eVRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiB1bmRlZmluZWRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkUm93RWRpdFRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiB1bmRlZmluZWQsXG4gICAgcm93Q2hhbmdlc0NvdW50OiBudW1iZXIsXG4gICAgZW5kRWRpdDogKGNvbW1pdDogYm9vbGVhbiwgZXZlbnQ/OiBFdmVudCkgPT4gdm9pZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRSb3dFZGl0VGV4dFRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkUm93RWRpdEFjdGlvbnNUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogKGNvbW1pdDogYm9vbGVhbiwgZXZlbnQ/OiBFdmVudCkgPT4gdm9pZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRIZWFkZXJUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogSGVhZGVyVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneENvbHVtblRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBDb2x1bW5UeXBlLFxuICAgIGNvbHVtbjogQ29sdW1uVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneENlbGxUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogYW55LFxuICAgIGFkZGl0aW9uYWxUZW1wbGF0ZUNvbnRleHQ6IGFueSxcbiAgICBmb3JtQ29udHJvbD86IEZvcm1Db250cm9sPGFueT4sXG4gICAgZGVmYXVsdEVycm9yVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIGNlbGw6IENlbGxUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4Um93U2VsZWN0b3JUZW1wbGF0ZURldGFpbHMge1xuICAgIGluZGV4OiBudW1iZXI7XG4gICAgLyoqIEBkZXByZWNhdGVkIFVzZSBga2V5YCAqL1xuICAgIHJvd0lEOiBhbnk7XG4gICAga2V5OiBhbnk7XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgc2VsZWN0PzogKCkgPT4gdm9pZDtcbiAgICBkZXNlbGVjdD86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4Um93U2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogSWd4Um93U2VsZWN0b3JUZW1wbGF0ZURldGFpbHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGVEZXRhaWxzIHtcbiAgICBzZWxlY3RlZENvdW50OiBudW1iZXI7XG4gICAgdG90YWxDb3VudDogbnVtYmVyO1xuICAgIGdyb3VwUm93OiBJR3JvdXBCeVJlY29yZDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IElneEdyb3VwQnlSb3dTZWxlY3RvclRlbXBsYXRlRGV0YWlscztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hIZWFkU2VsZWN0b3JUZW1wbGF0ZURldGFpbHMge1xuICAgIHNlbGVjdGVkQ291bnQ6IG51bWJlcjtcbiAgICB0b3RhbENvdW50OiBudW1iZXI7XG4gICAgc2VsZWN0QWxsPzogKCkgPT4gdm9pZDtcbiAgICBkZXNlbGVjdEFsbD86ICgpID0+IHZvaWQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIElneEhlYWRTZWxlY3RvclRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBJZ3hIZWFkU2VsZWN0b3JUZW1wbGF0ZURldGFpbHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4U3VtbWFyeVRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBJZ3hTdW1tYXJ5UmVzdWx0W11cbn1cblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgZGVzY3JpYmluZyBzZXR0aW5ncyBmb3Igcm93L2NvbHVtbiBwaW5uaW5nIHBvc2l0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElQaW5uaW5nQ29uZmlnIHtcbiAgICBjb2x1bW5zPzogQ29sdW1uUGlubmluZ1Bvc2l0aW9uO1xuICAgIHJvd3M/OiBSb3dQaW5uaW5nUG9zaXRpb247XG59XG4iXX0=
|
|
@@ -27,10 +27,10 @@ export class IgxGridRowComponent extends IgxRowDirective {
|
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
29
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IgxGridRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: IgxGridRowComponent, isStandalone: true, selector: "igx-grid-row", providers: [{ provide: IgxRowDirective, useExisting: forwardRef(() => IgxGridRowComponent) }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"addRowUI ? addTemp : defaultTemp\"></ng-container>\n\n<ng-template #addTemp>\n <div class=\"igx-grid__tr--inner\" [class.igx-grid__tr--add-animate]=\"triggerAddAnimationClass\" (animationend)=\"animationEndHandler()\">\n <ng-container *ngTemplateOutlet='defaultTemp'></ng-container>\n </div>\n</ng-template>\n<ng-template #defaultTemp>\n <ng-container *ngIf=\"rowDraggable\">\n <div [class]=\"resolveDragIndicatorClasses\" [igxRowDrag]=\"this\" (click)=\"$event.stopPropagation()\" [ghostTemplate]=\"this.grid.getDragGhostCustomTemplate()\">\n <ng-container *ngTemplateOutlet=\"this.grid.dragIndicatorIconTemplate ? this.grid.dragIndicatorIconTemplate : this.grid.dragIndicatorIconBase\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"this.showRowSelectors\">\n <div class=\"igx-grid__cbx-selection igx-grid__tr-action\" (pointerdown)=\"$event.preventDefault()\" (click)=\"onRowSelectorClick($event)\">\n <ng-template *ngTemplateOutlet=\"\n this.grid.rowSelectorTemplate ? this.grid.rowSelectorTemplate : rowSelectorBaseTemplate;\n context: { $implicit: { index: viewIndex, rowID: key, key, selected: selected }}\">\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"grid.groupingExpressions.length > 0\">\n <div class=\"igx-grid__row-indentation igx-grid__row-indentation--level-{{grid.groupingExpressions.length}}\" (pointerdown)=\"$event.preventDefault()\" (click)=\"$event.stopPropagation()\"></div>\n </ng-container>\n\n\n <ng-container *ngIf=\"!grid.hasColumnLayouts\">\n <ng-container *ngIf=\"pinnedColumns.length > 0 && grid.isPinningToStart\">\n <ng-template ngFor let-col [ngForOf]=\"pinnedColumns | igxNotGrouped\">\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 && grid.hasDetails ? expandableCellTemplate : cellTemplate; context: getContext(col, this)\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-template igxGridFor let-col [igxGridForOf]=\"unpinnedColumns | igxNotGrouped\" [igxForScrollContainer]=\"grid.parentVirtDir\" [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]=\"grid.unpinnedWidth\" [igxForSizePropName]=\"'calcPixelWidth'\" [igxForTrackBy]=\"grid.trackColumnChanges\" #igxDirRef>\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 && grid.hasDetails ? expandableCellTemplate : cellTemplate; context: getContext(col, this)\"></ng-container>\n </ng-template>\n <ng-container *ngIf=\"pinnedColumns.length > 0 && !grid.isPinningToStart\">\n <ng-template ngFor let-col [ngForOf]=\"pinnedColumns | igxNotGrouped\">\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 && grid.hasDetails ? expandableCellTemplate : cellTemplate; context: getContext(col, this)\"></ng-container>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"grid.hasColumnLayouts\">\n <ng-container *ngIf=\"pinnedColumns.length > 0 && grid.isPinningToStart\">\n <ng-container *ngTemplateOutlet=\"mrlPinnedTemplate; context: getContextMRL(pinnedColumns, this)\"></ng-container>\n </ng-container>\n <ng-template igxGridFor let-col [igxGridForOf]=\"unpinnedColumns | igxTopLevel\" [igxForScrollContainer]=\"grid.parentVirtDir\" let-colIndex=\"index\" [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]=\"grid.unpinnedWidth\" [igxForSizePropName]=\"'calcPixelWidth'\" [igxForTrackBy]=\"grid.trackColumnChanges\" #igxDirRef>\n <div class=\"igx-grid__mrl-block\" [ngStyle]=\"{\n 'grid-template-rows':col.getGridTemplate(true),\n 'grid-template-columns':col.getGridTemplate(false)\n }\">\n <ng-template ngFor let-col [ngForOf]=\"col.children\">\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 && grid.hasDetails ? mrlExpandableCellTemplate : mrlCellTemplate; context: getContext(col, this)\"></ng-container>\n </ng-template>\n </div>\n </ng-template>\n\n <ng-container *ngIf=\"pinnedColumns.length > 0 && !grid.isPinningToStart\">\n <ng-container *ngTemplateOutlet=\"mrlPinnedTemplate; context: getContextMRL(pinnedColumns, this)\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #mrlPinnedTemplate let-pinnedColumns>\n <div *ngFor=\"let col of pinnedColumns | igxTopLevel\" class=\"igx-grid__mrl-block\"\n [class.igx-grid__td--pinned-last]=\"col.hasLastPinnedChildColumn\"\n [class.igx-grid__td--pinned-first]=\"col.hasFirstPinnedChildColumn\"\n [style.left]=\"mrlRightPinnedOffset\"\n [ngStyle]=\"{\n 'grid-template-rows':col.getGridTemplate(true),\n 'grid-template-columns':col.getGridTemplate(false),\n 'z-index': col.pinned ? 1 : null\n }\">\n <ng-template ngFor let-col [ngForOf]=\"col.children\">\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 && grid.hasDetails? mrlExpandableCellTemplate : mrlCellTemplate; context: getContext(col, this)\"></ng-container>\n </ng-template>\n </div>\n</ng-template>\n\n<ng-template #rowSelectorBaseTemplate>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox\n [tabindex]=\"-1\"\n [checked]=\"selected\"\n [readonly]=\"true\"\n [disabled]=\"deleted\"\n [disableRipple]=\"true\"\n [disableTransitions]=\"grid.disableTransitions\"\n [aria-label]=\"rowCheckboxAriaLabel\">\n </igx-checkbox>\n </div>\n</ng-template>\n\n<ng-template #cellTemplate let-col>\n <igx-grid-cell\n class=\"igx-grid__td igx-grid__td--fw\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [class.igx-grid__td--pinned]=\"col.pinned\"\n [class.igx-grid__td--number]=\"col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'\"\n [class.igx-grid__td--bool]=\"col.dataType === 'boolean'\"\n [class.igx-grid__td--image]=\"col.dataType === 'image'\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [lastPinned]=\"col.columnLayoutChild ? null : col.isLastPinned\"\n [firstPinned]=\"col.columnLayoutChild ? null : col.isFirstPinned\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.width\"\n [style.max-width]=\"col.width\"\n [style.flex-basis]=\"col.width\"\n [style.left]=\"col.rightPinnedOffset\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #cell>\n </igx-grid-cell>\n</ng-template>\n\n<ng-template #expandableCellTemplate let-col>\n <igx-expandable-grid-cell\n [class.igx-grid__td--pinned]=\"col.pinned\"\n class=\"igx-grid__td igx-grid__td--fw igx-grid__td--tree-cell\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [class.igx-grid__td--number]=\"(col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency') && col.visibleIndex !== 0\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [expanded]=\"expanded\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [lastPinned]=\"col.columnLayoutChild ? null : col.isLastPinned\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.width\"\n [style.max-width]=\"col.width\"\n [style.flex-basis]=\"col.width\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #cell>\n </igx-expandable-grid-cell>\n</ng-template>\n\n<ng-template #mrlCellTemplate let-col>\n <igx-grid-cell\n class=\"igx-grid__td igx-grid__td--fw\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n\n [class.igx-grid__td--pinned]=\"col.pinned\"\n [class.igx-grid__td--number]=\"col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [style.grid-row-end]=\"col.rowEnd\"\n [style.grid-column-end]=\"col.colEnd\"\n [style.grid-row-start]=\"col.rowStart\"\n [style.grid-column-start]=\"col.colStart\"\n [lastPinned]=\"col.columnLayoutChild ? null : col.isLastPinned\"\n [firstPinned]=\"col.columnLayoutChild ? null : col.isFirstPinned\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #cell>\n </igx-grid-cell>\n</ng-template>\n\n<ng-template #mrlExpandableCellTemplate let-col>\n <igx-expandable-grid-cell\n class=\"igx-grid__td igx-grid__td--fw igx-grid__td--tree-cell\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n\n [class.igx-grid__td--pinned]=\"col.pinned\"\n [class.igx-grid__td--number]=\"(col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency') && col.visibleIndex !== 0\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [expanded]=\"expanded\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [style.grid-row-end]=\"col.rowEnd\"\n [style.grid-column-end]=\"col.colEnd\"\n [style.grid-row-start]=\"col.rowStart\"\n [style.grid-column-start]=\"col.colStart\"\n [lastPinned]=\"col.columnLayoutChild ? null : col.isLastPinned\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #cell>\n </igx-expandable-grid-cell>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: IgxRowDragDirective, selector: "[igxRowDrag]", inputs: ["igxRowDrag"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf", "igxGridForOfUniqueSizeCache", "igxGridForOfVariableSizes"], outputs: ["dataChanging"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["id", "labelId", "value", "name", "tabindex", "labelPosition", "disableRipple", "required", "aria-labelledby", "aria-label", "indeterminate", "checked", "disabled", "invalid", "readonly", "disableTransitions"], outputs: ["change"] }, { kind: "component", type: IgxGridCellComponent, selector: "igx-grid-cell", inputs: ["column", "intRow", "row", "rowData", "columnData", "cellTemplate", "cellValidationErrorTemplate", "pinnedIndicator", "value", "formatter", "visibleColumnIndex", "cellSelectionMode", "lastSearchInfo", "lastPinned", "firstPinned", "editMode", "width", "active", "displayPinnedChip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxGridExpandableCellComponent, selector: "igx-expandable-grid-cell", inputs: ["expanded"] }, { kind: "pipe", type: IgxGridNotGroupedPipe, name: "igxNotGrouped" }, { kind: "pipe", type: IgxGridTopLevelColumns, name: "igxTopLevel" }, { kind: "pipe", type: IgxGridCellStylesPipe, name: "igxCellStyles" }, { kind: "pipe", type: IgxGridCellStyleClassesPipe, name: "igxCellStyleClasses" }, { kind: "pipe", type: IgxGridDataMapperPipe, name: "dataMapper" }, { kind: "pipe", type: IgxGridTransactionStatePipe, name: "transactionState" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: IgxGridRowComponent, isStandalone: true, selector: "igx-grid-row", providers: [{ provide: IgxRowDirective, useExisting: forwardRef(() => IgxGridRowComponent) }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"addRowUI ? addTemp : defaultTemp\"></ng-container>\n\n<ng-template #addTemp>\n <div class=\"igx-grid__tr--inner\" [class.igx-grid__tr--add-animate]=\"triggerAddAnimationClass\" (animationend)=\"animationEndHandler()\">\n <ng-container *ngTemplateOutlet='defaultTemp'></ng-container>\n </div>\n</ng-template>\n<ng-template #defaultTemp>\n <ng-container *ngIf=\"rowDraggable\">\n <div [class]=\"resolveDragIndicatorClasses\" [igxRowDrag]=\"this\" (click)=\"$event.stopPropagation()\" [ghostTemplate]=\"this.grid.getDragGhostCustomTemplate()\">\n <ng-container *ngTemplateOutlet=\"this.grid.dragIndicatorIconTemplate ? this.grid.dragIndicatorIconTemplate : this.grid.dragIndicatorIconBase\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"this.showRowSelectors\">\n <div class=\"igx-grid__cbx-selection igx-grid__tr-action\" (pointerdown)=\"$event.preventDefault()\" (click)=\"onRowSelectorClick($event)\">\n <ng-template *ngTemplateOutlet=\"\n this.grid.rowSelectorTemplate ? this.grid.rowSelectorTemplate : rowSelectorBaseTemplate;\n context: { $implicit: { index: viewIndex, rowID: key, key, selected: selected }}\">\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"grid.groupingExpressions.length > 0\">\n <div class=\"igx-grid__row-indentation igx-grid__row-indentation--level-{{grid.groupingExpressions.length}}\" (pointerdown)=\"$event.preventDefault()\" (click)=\"$event.stopPropagation()\"></div>\n </ng-container>\n\n\n <ng-container *ngIf=\"!grid.hasColumnLayouts\">\n <ng-container *ngIf=\"pinnedColumns.length > 0 && grid.isPinningToStart\">\n <ng-template ngFor let-col [ngForOf]=\"pinnedColumns | igxNotGrouped\">\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 && grid.hasDetails ? expandableCellTemplate : cellTemplate; context: getContext(col, this)\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-template igxGridFor let-col [igxGridForOf]=\"unpinnedColumns | igxNotGrouped\" [igxForScrollContainer]=\"grid.parentVirtDir\" [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]=\"grid.unpinnedWidth\" [igxForSizePropName]=\"'calcPixelWidth'\" [igxForTrackBy]=\"grid.trackColumnChanges\" #igxDirRef>\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 && grid.hasDetails ? expandableCellTemplate : cellTemplate; context: getContext(col, this)\"></ng-container>\n </ng-template>\n <ng-container *ngIf=\"pinnedColumns.length > 0 && !grid.isPinningToStart\">\n <ng-template ngFor let-col [ngForOf]=\"pinnedColumns | igxNotGrouped\">\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 && grid.hasDetails ? expandableCellTemplate : cellTemplate; context: getContext(col, this)\"></ng-container>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"grid.hasColumnLayouts\">\n <ng-container *ngIf=\"pinnedColumns.length > 0 && grid.isPinningToStart\">\n <ng-container *ngTemplateOutlet=\"mrlPinnedTemplate; context: getContextMRL(pinnedColumns, this)\"></ng-container>\n </ng-container>\n <ng-template igxGridFor let-col [igxGridForOf]=\"unpinnedColumns | igxTopLevel\" [igxForScrollContainer]=\"grid.parentVirtDir\" let-colIndex=\"index\" [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]=\"grid.unpinnedWidth\" [igxForSizePropName]=\"'calcPixelWidth'\" [igxForTrackBy]=\"grid.trackColumnChanges\" #igxDirRef>\n <div class=\"igx-grid__mrl-block\" [ngStyle]=\"{\n 'grid-template-rows':col.getGridTemplate(true),\n 'grid-template-columns':col.getGridTemplate(false)\n }\">\n <ng-template ngFor let-col [ngForOf]=\"col.children\">\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 && grid.hasDetails ? mrlExpandableCellTemplate : mrlCellTemplate; context: getContext(col, this)\"></ng-container>\n </ng-template>\n </div>\n </ng-template>\n\n <ng-container *ngIf=\"pinnedColumns.length > 0 && !grid.isPinningToStart\">\n <ng-container *ngTemplateOutlet=\"mrlPinnedTemplate; context: getContextMRL(pinnedColumns, this)\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #mrlPinnedTemplate let-pinnedColumns>\n <div *ngFor=\"let col of pinnedColumns | igxTopLevel\" class=\"igx-grid__mrl-block\"\n [class.igx-grid__td--pinned-last]=\"col.hasLastPinnedChildColumn\"\n [class.igx-grid__td--pinned-first]=\"col.hasFirstPinnedChildColumn\"\n [style.left]=\"mrlRightPinnedOffset\"\n [ngStyle]=\"{\n 'grid-template-rows':col.getGridTemplate(true),\n 'grid-template-columns':col.getGridTemplate(false),\n 'z-index': col.pinned ? 1 : null\n }\">\n <ng-template ngFor let-col [ngForOf]=\"col.children\">\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 && grid.hasDetails? mrlExpandableCellTemplate : mrlCellTemplate; context: getContext(col, this)\"></ng-container>\n </ng-template>\n </div>\n</ng-template>\n\n<ng-template #rowSelectorBaseTemplate>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox\n [tabindex]=\"-1\"\n [checked]=\"selected\"\n [readonly]=\"true\"\n [disabled]=\"deleted\"\n [disableRipple]=\"true\"\n [disableTransitions]=\"grid.disableTransitions\"\n [aria-label]=\"rowCheckboxAriaLabel\">\n </igx-checkbox>\n </div>\n</ng-template>\n\n<ng-template #cellTemplate let-col>\n <igx-grid-cell\n class=\"igx-grid__td igx-grid__td--fw\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [class.igx-grid__td--pinned]=\"col.pinned\"\n [class.igx-grid__td--number]=\"col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'\"\n [class.igx-grid__td--bool]=\"col.dataType === 'boolean'\"\n [class.igx-grid__td--image]=\"col.dataType === 'image'\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [lastPinned]=\"col.columnLayoutChild ? null : col.isLastPinned\"\n [firstPinned]=\"col.columnLayoutChild ? null : col.isFirstPinned\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\"\n [style.left]=\"col.rightPinnedOffset\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #cell>\n </igx-grid-cell>\n</ng-template>\n\n<ng-template #expandableCellTemplate let-col>\n <igx-expandable-grid-cell\n [class.igx-grid__td--pinned]=\"col.pinned\"\n class=\"igx-grid__td igx-grid__td--fw igx-grid__td--tree-cell\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [class.igx-grid__td--number]=\"(col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency') && col.visibleIndex !== 0\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [expanded]=\"expanded\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [lastPinned]=\"col.columnLayoutChild ? null : col.isLastPinned\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #cell>\n </igx-expandable-grid-cell>\n</ng-template>\n\n<ng-template #mrlCellTemplate let-col>\n <igx-grid-cell\n class=\"igx-grid__td igx-grid__td--fw\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n\n [class.igx-grid__td--pinned]=\"col.pinned\"\n [class.igx-grid__td--number]=\"col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [style.grid-row-end]=\"col.rowEnd\"\n [style.grid-column-end]=\"col.colEnd\"\n [style.grid-row-start]=\"col.rowStart\"\n [style.grid-column-start]=\"col.colStart\"\n [lastPinned]=\"col.columnLayoutChild ? null : col.isLastPinned\"\n [firstPinned]=\"col.columnLayoutChild ? null : col.isFirstPinned\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #cell>\n </igx-grid-cell>\n</ng-template>\n\n<ng-template #mrlExpandableCellTemplate let-col>\n <igx-expandable-grid-cell\n class=\"igx-grid__td igx-grid__td--fw igx-grid__td--tree-cell\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n\n [class.igx-grid__td--pinned]=\"col.pinned\"\n [class.igx-grid__td--number]=\"(col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency') && col.visibleIndex !== 0\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [expanded]=\"expanded\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [style.grid-row-end]=\"col.rowEnd\"\n [style.grid-column-end]=\"col.colEnd\"\n [style.grid-row-start]=\"col.rowStart\"\n [style.grid-column-start]=\"col.colStart\"\n [lastPinned]=\"col.columnLayoutChild ? null : col.isLastPinned\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #cell>\n </igx-expandable-grid-cell>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: IgxRowDragDirective, selector: "[igxRowDrag]", inputs: ["igxRowDrag"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf", "igxGridForOfUniqueSizeCache", "igxGridForOfVariableSizes"], outputs: ["dataChanging"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["id", "labelId", "value", "name", "tabindex", "labelPosition", "disableRipple", "required", "aria-labelledby", "aria-label", "indeterminate", "checked", "disabled", "invalid", "readonly", "disableTransitions"], outputs: ["change"] }, { kind: "component", type: IgxGridCellComponent, selector: "igx-grid-cell", inputs: ["column", "intRow", "row", "rowData", "columnData", "cellTemplate", "cellValidationErrorTemplate", "pinnedIndicator", "value", "formatter", "visibleColumnIndex", "cellSelectionMode", "lastSearchInfo", "lastPinned", "firstPinned", "editMode", "width", "active", "displayPinnedChip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxGridExpandableCellComponent, selector: "igx-expandable-grid-cell", inputs: ["expanded"] }, { kind: "pipe", type: IgxGridNotGroupedPipe, name: "igxNotGrouped" }, { kind: "pipe", type: IgxGridTopLevelColumns, name: "igxTopLevel" }, { kind: "pipe", type: IgxGridCellStylesPipe, name: "igxCellStyles" }, { kind: "pipe", type: IgxGridCellStyleClassesPipe, name: "igxCellStyleClasses" }, { kind: "pipe", type: IgxGridDataMapperPipe, name: "dataMapper" }, { kind: "pipe", type: IgxGridTransactionStatePipe, name: "transactionState" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31
31
|
}
|
|
32
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IgxGridRowComponent, decorators: [{
|
|
33
33
|
type: Component,
|
|
34
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-row', providers: [{ provide: IgxRowDirective, useExisting: forwardRef(() => IgxGridRowComponent) }], standalone: true, imports: [NgTemplateOutlet, NgIf, IgxRowDragDirective, NgFor, IgxGridForOfDirective, NgStyle, IgxCheckboxComponent, IgxGridCellComponent, NgClass, IgxGridExpandableCellComponent, IgxGridNotGroupedPipe, IgxGridTopLevelColumns, IgxGridCellStylesPipe, IgxGridCellStyleClassesPipe, IgxGridDataMapperPipe, IgxGridTransactionStatePipe], template: "<ng-container *ngTemplateOutlet=\"addRowUI ? addTemp : defaultTemp\"></ng-container>\n\n<ng-template #addTemp>\n <div class=\"igx-grid__tr--inner\" [class.igx-grid__tr--add-animate]=\"triggerAddAnimationClass\" (animationend)=\"animationEndHandler()\">\n <ng-container *ngTemplateOutlet='defaultTemp'></ng-container>\n </div>\n</ng-template>\n<ng-template #defaultTemp>\n <ng-container *ngIf=\"rowDraggable\">\n <div [class]=\"resolveDragIndicatorClasses\" [igxRowDrag]=\"this\" (click)=\"$event.stopPropagation()\" [ghostTemplate]=\"this.grid.getDragGhostCustomTemplate()\">\n <ng-container *ngTemplateOutlet=\"this.grid.dragIndicatorIconTemplate ? this.grid.dragIndicatorIconTemplate : this.grid.dragIndicatorIconBase\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"this.showRowSelectors\">\n <div class=\"igx-grid__cbx-selection igx-grid__tr-action\" (pointerdown)=\"$event.preventDefault()\" (click)=\"onRowSelectorClick($event)\">\n <ng-template *ngTemplateOutlet=\"\n this.grid.rowSelectorTemplate ? this.grid.rowSelectorTemplate : rowSelectorBaseTemplate;\n context: { $implicit: { index: viewIndex, rowID: key, key, selected: selected }}\">\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"grid.groupingExpressions.length > 0\">\n <div class=\"igx-grid__row-indentation igx-grid__row-indentation--level-{{grid.groupingExpressions.length}}\" (pointerdown)=\"$event.preventDefault()\" (click)=\"$event.stopPropagation()\"></div>\n </ng-container>\n\n\n <ng-container *ngIf=\"!grid.hasColumnLayouts\">\n <ng-container *ngIf=\"pinnedColumns.length > 0 && grid.isPinningToStart\">\n <ng-template ngFor let-col [ngForOf]=\"pinnedColumns | igxNotGrouped\">\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 && grid.hasDetails ? expandableCellTemplate : cellTemplate; context: getContext(col, this)\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-template igxGridFor let-col [igxGridForOf]=\"unpinnedColumns | igxNotGrouped\" [igxForScrollContainer]=\"grid.parentVirtDir\" [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]=\"grid.unpinnedWidth\" [igxForSizePropName]=\"'calcPixelWidth'\" [igxForTrackBy]=\"grid.trackColumnChanges\" #igxDirRef>\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 && grid.hasDetails ? expandableCellTemplate : cellTemplate; context: getContext(col, this)\"></ng-container>\n </ng-template>\n <ng-container *ngIf=\"pinnedColumns.length > 0 && !grid.isPinningToStart\">\n <ng-template ngFor let-col [ngForOf]=\"pinnedColumns | igxNotGrouped\">\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 && grid.hasDetails ? expandableCellTemplate : cellTemplate; context: getContext(col, this)\"></ng-container>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"grid.hasColumnLayouts\">\n <ng-container *ngIf=\"pinnedColumns.length > 0 && grid.isPinningToStart\">\n <ng-container *ngTemplateOutlet=\"mrlPinnedTemplate; context: getContextMRL(pinnedColumns, this)\"></ng-container>\n </ng-container>\n <ng-template igxGridFor let-col [igxGridForOf]=\"unpinnedColumns | igxTopLevel\" [igxForScrollContainer]=\"grid.parentVirtDir\" let-colIndex=\"index\" [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]=\"grid.unpinnedWidth\" [igxForSizePropName]=\"'calcPixelWidth'\" [igxForTrackBy]=\"grid.trackColumnChanges\" #igxDirRef>\n <div class=\"igx-grid__mrl-block\" [ngStyle]=\"{\n 'grid-template-rows':col.getGridTemplate(true),\n 'grid-template-columns':col.getGridTemplate(false)\n }\">\n <ng-template ngFor let-col [ngForOf]=\"col.children\">\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 && grid.hasDetails ? mrlExpandableCellTemplate : mrlCellTemplate; context: getContext(col, this)\"></ng-container>\n </ng-template>\n </div>\n </ng-template>\n\n <ng-container *ngIf=\"pinnedColumns.length > 0 && !grid.isPinningToStart\">\n <ng-container *ngTemplateOutlet=\"mrlPinnedTemplate; context: getContextMRL(pinnedColumns, this)\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #mrlPinnedTemplate let-pinnedColumns>\n <div *ngFor=\"let col of pinnedColumns | igxTopLevel\" class=\"igx-grid__mrl-block\"\n [class.igx-grid__td--pinned-last]=\"col.hasLastPinnedChildColumn\"\n [class.igx-grid__td--pinned-first]=\"col.hasFirstPinnedChildColumn\"\n [style.left]=\"mrlRightPinnedOffset\"\n [ngStyle]=\"{\n 'grid-template-rows':col.getGridTemplate(true),\n 'grid-template-columns':col.getGridTemplate(false),\n 'z-index': col.pinned ? 1 : null\n }\">\n <ng-template ngFor let-col [ngForOf]=\"col.children\">\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 && grid.hasDetails? mrlExpandableCellTemplate : mrlCellTemplate; context: getContext(col, this)\"></ng-container>\n </ng-template>\n </div>\n</ng-template>\n\n<ng-template #rowSelectorBaseTemplate>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox\n [tabindex]=\"-1\"\n [checked]=\"selected\"\n [readonly]=\"true\"\n [disabled]=\"deleted\"\n [disableRipple]=\"true\"\n [disableTransitions]=\"grid.disableTransitions\"\n [aria-label]=\"rowCheckboxAriaLabel\">\n </igx-checkbox>\n </div>\n</ng-template>\n\n<ng-template #cellTemplate let-col>\n <igx-grid-cell\n class=\"igx-grid__td igx-grid__td--fw\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [class.igx-grid__td--pinned]=\"col.pinned\"\n [class.igx-grid__td--number]=\"col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'\"\n [class.igx-grid__td--bool]=\"col.dataType === 'boolean'\"\n [class.igx-grid__td--image]=\"col.dataType === 'image'\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [lastPinned]=\"col.columnLayoutChild ? null : col.isLastPinned\"\n [firstPinned]=\"col.columnLayoutChild ? null : col.isFirstPinned\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.width\"\n [style.max-width]=\"col.width\"\n [style.flex-basis]=\"col.width\"\n [style.left]=\"col.rightPinnedOffset\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #cell>\n </igx-grid-cell>\n</ng-template>\n\n<ng-template #expandableCellTemplate let-col>\n <igx-expandable-grid-cell\n [class.igx-grid__td--pinned]=\"col.pinned\"\n class=\"igx-grid__td igx-grid__td--fw igx-grid__td--tree-cell\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [class.igx-grid__td--number]=\"(col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency') && col.visibleIndex !== 0\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [expanded]=\"expanded\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [lastPinned]=\"col.columnLayoutChild ? null : col.isLastPinned\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.width\"\n [style.max-width]=\"col.width\"\n [style.flex-basis]=\"col.width\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #cell>\n </igx-expandable-grid-cell>\n</ng-template>\n\n<ng-template #mrlCellTemplate let-col>\n <igx-grid-cell\n class=\"igx-grid__td igx-grid__td--fw\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n\n [class.igx-grid__td--pinned]=\"col.pinned\"\n [class.igx-grid__td--number]=\"col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [style.grid-row-end]=\"col.rowEnd\"\n [style.grid-column-end]=\"col.colEnd\"\n [style.grid-row-start]=\"col.rowStart\"\n [style.grid-column-start]=\"col.colStart\"\n [lastPinned]=\"col.columnLayoutChild ? null : col.isLastPinned\"\n [firstPinned]=\"col.columnLayoutChild ? null : col.isFirstPinned\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #cell>\n </igx-grid-cell>\n</ng-template>\n\n<ng-template #mrlExpandableCellTemplate let-col>\n <igx-expandable-grid-cell\n class=\"igx-grid__td igx-grid__td--fw igx-grid__td--tree-cell\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n\n [class.igx-grid__td--pinned]=\"col.pinned\"\n [class.igx-grid__td--number]=\"(col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency') && col.visibleIndex !== 0\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [expanded]=\"expanded\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [style.grid-row-end]=\"col.rowEnd\"\n [style.grid-column-end]=\"col.colEnd\"\n [style.grid-row-start]=\"col.rowStart\"\n [style.grid-column-start]=\"col.colStart\"\n [lastPinned]=\"col.columnLayoutChild ? null : col.isLastPinned\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #cell>\n </igx-expandable-grid-cell>\n</ng-template>\n" }]
|
|
34
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-row', providers: [{ provide: IgxRowDirective, useExisting: forwardRef(() => IgxGridRowComponent) }], standalone: true, imports: [NgTemplateOutlet, NgIf, IgxRowDragDirective, NgFor, IgxGridForOfDirective, NgStyle, IgxCheckboxComponent, IgxGridCellComponent, NgClass, IgxGridExpandableCellComponent, IgxGridNotGroupedPipe, IgxGridTopLevelColumns, IgxGridCellStylesPipe, IgxGridCellStyleClassesPipe, IgxGridDataMapperPipe, IgxGridTransactionStatePipe], template: "<ng-container *ngTemplateOutlet=\"addRowUI ? addTemp : defaultTemp\"></ng-container>\n\n<ng-template #addTemp>\n <div class=\"igx-grid__tr--inner\" [class.igx-grid__tr--add-animate]=\"triggerAddAnimationClass\" (animationend)=\"animationEndHandler()\">\n <ng-container *ngTemplateOutlet='defaultTemp'></ng-container>\n </div>\n</ng-template>\n<ng-template #defaultTemp>\n <ng-container *ngIf=\"rowDraggable\">\n <div [class]=\"resolveDragIndicatorClasses\" [igxRowDrag]=\"this\" (click)=\"$event.stopPropagation()\" [ghostTemplate]=\"this.grid.getDragGhostCustomTemplate()\">\n <ng-container *ngTemplateOutlet=\"this.grid.dragIndicatorIconTemplate ? this.grid.dragIndicatorIconTemplate : this.grid.dragIndicatorIconBase\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"this.showRowSelectors\">\n <div class=\"igx-grid__cbx-selection igx-grid__tr-action\" (pointerdown)=\"$event.preventDefault()\" (click)=\"onRowSelectorClick($event)\">\n <ng-template *ngTemplateOutlet=\"\n this.grid.rowSelectorTemplate ? this.grid.rowSelectorTemplate : rowSelectorBaseTemplate;\n context: { $implicit: { index: viewIndex, rowID: key, key, selected: selected }}\">\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"grid.groupingExpressions.length > 0\">\n <div class=\"igx-grid__row-indentation igx-grid__row-indentation--level-{{grid.groupingExpressions.length}}\" (pointerdown)=\"$event.preventDefault()\" (click)=\"$event.stopPropagation()\"></div>\n </ng-container>\n\n\n <ng-container *ngIf=\"!grid.hasColumnLayouts\">\n <ng-container *ngIf=\"pinnedColumns.length > 0 && grid.isPinningToStart\">\n <ng-template ngFor let-col [ngForOf]=\"pinnedColumns | igxNotGrouped\">\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 && grid.hasDetails ? expandableCellTemplate : cellTemplate; context: getContext(col, this)\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-template igxGridFor let-col [igxGridForOf]=\"unpinnedColumns | igxNotGrouped\" [igxForScrollContainer]=\"grid.parentVirtDir\" [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]=\"grid.unpinnedWidth\" [igxForSizePropName]=\"'calcPixelWidth'\" [igxForTrackBy]=\"grid.trackColumnChanges\" #igxDirRef>\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 && grid.hasDetails ? expandableCellTemplate : cellTemplate; context: getContext(col, this)\"></ng-container>\n </ng-template>\n <ng-container *ngIf=\"pinnedColumns.length > 0 && !grid.isPinningToStart\">\n <ng-template ngFor let-col [ngForOf]=\"pinnedColumns | igxNotGrouped\">\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 && grid.hasDetails ? expandableCellTemplate : cellTemplate; context: getContext(col, this)\"></ng-container>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"grid.hasColumnLayouts\">\n <ng-container *ngIf=\"pinnedColumns.length > 0 && grid.isPinningToStart\">\n <ng-container *ngTemplateOutlet=\"mrlPinnedTemplate; context: getContextMRL(pinnedColumns, this)\"></ng-container>\n </ng-container>\n <ng-template igxGridFor let-col [igxGridForOf]=\"unpinnedColumns | igxTopLevel\" [igxForScrollContainer]=\"grid.parentVirtDir\" let-colIndex=\"index\" [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]=\"grid.unpinnedWidth\" [igxForSizePropName]=\"'calcPixelWidth'\" [igxForTrackBy]=\"grid.trackColumnChanges\" #igxDirRef>\n <div class=\"igx-grid__mrl-block\" [ngStyle]=\"{\n 'grid-template-rows':col.getGridTemplate(true),\n 'grid-template-columns':col.getGridTemplate(false)\n }\">\n <ng-template ngFor let-col [ngForOf]=\"col.children\">\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 && grid.hasDetails ? mrlExpandableCellTemplate : mrlCellTemplate; context: getContext(col, this)\"></ng-container>\n </ng-template>\n </div>\n </ng-template>\n\n <ng-container *ngIf=\"pinnedColumns.length > 0 && !grid.isPinningToStart\">\n <ng-container *ngTemplateOutlet=\"mrlPinnedTemplate; context: getContextMRL(pinnedColumns, this)\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #mrlPinnedTemplate let-pinnedColumns>\n <div *ngFor=\"let col of pinnedColumns | igxTopLevel\" class=\"igx-grid__mrl-block\"\n [class.igx-grid__td--pinned-last]=\"col.hasLastPinnedChildColumn\"\n [class.igx-grid__td--pinned-first]=\"col.hasFirstPinnedChildColumn\"\n [style.left]=\"mrlRightPinnedOffset\"\n [ngStyle]=\"{\n 'grid-template-rows':col.getGridTemplate(true),\n 'grid-template-columns':col.getGridTemplate(false),\n 'z-index': col.pinned ? 1 : null\n }\">\n <ng-template ngFor let-col [ngForOf]=\"col.children\">\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 && grid.hasDetails? mrlExpandableCellTemplate : mrlCellTemplate; context: getContext(col, this)\"></ng-container>\n </ng-template>\n </div>\n</ng-template>\n\n<ng-template #rowSelectorBaseTemplate>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox\n [tabindex]=\"-1\"\n [checked]=\"selected\"\n [readonly]=\"true\"\n [disabled]=\"deleted\"\n [disableRipple]=\"true\"\n [disableTransitions]=\"grid.disableTransitions\"\n [aria-label]=\"rowCheckboxAriaLabel\">\n </igx-checkbox>\n </div>\n</ng-template>\n\n<ng-template #cellTemplate let-col>\n <igx-grid-cell\n class=\"igx-grid__td igx-grid__td--fw\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [class.igx-grid__td--pinned]=\"col.pinned\"\n [class.igx-grid__td--number]=\"col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'\"\n [class.igx-grid__td--bool]=\"col.dataType === 'boolean'\"\n [class.igx-grid__td--image]=\"col.dataType === 'image'\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [lastPinned]=\"col.columnLayoutChild ? null : col.isLastPinned\"\n [firstPinned]=\"col.columnLayoutChild ? null : col.isFirstPinned\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\"\n [style.left]=\"col.rightPinnedOffset\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #cell>\n </igx-grid-cell>\n</ng-template>\n\n<ng-template #expandableCellTemplate let-col>\n <igx-expandable-grid-cell\n [class.igx-grid__td--pinned]=\"col.pinned\"\n class=\"igx-grid__td igx-grid__td--fw igx-grid__td--tree-cell\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [class.igx-grid__td--number]=\"(col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency') && col.visibleIndex !== 0\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [expanded]=\"expanded\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [lastPinned]=\"col.columnLayoutChild ? null : col.isLastPinned\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #cell>\n </igx-expandable-grid-cell>\n</ng-template>\n\n<ng-template #mrlCellTemplate let-col>\n <igx-grid-cell\n class=\"igx-grid__td igx-grid__td--fw\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n\n [class.igx-grid__td--pinned]=\"col.pinned\"\n [class.igx-grid__td--number]=\"col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [style.grid-row-end]=\"col.rowEnd\"\n [style.grid-column-end]=\"col.colEnd\"\n [style.grid-row-start]=\"col.rowStart\"\n [style.grid-column-start]=\"col.colStart\"\n [lastPinned]=\"col.columnLayoutChild ? null : col.isLastPinned\"\n [firstPinned]=\"col.columnLayoutChild ? null : col.isFirstPinned\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #cell>\n </igx-grid-cell>\n</ng-template>\n\n<ng-template #mrlExpandableCellTemplate let-col>\n <igx-expandable-grid-cell\n class=\"igx-grid__td igx-grid__td--fw igx-grid__td--tree-cell\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n\n [class.igx-grid__td--pinned]=\"col.pinned\"\n [class.igx-grid__td--number]=\"(col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency') && col.visibleIndex !== 0\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [expanded]=\"expanded\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [style.grid-row-end]=\"col.rowEnd\"\n [style.grid-column-end]=\"col.colEnd\"\n [style.grid-row-start]=\"col.rowStart\"\n [style.grid-column-start]=\"col.colStart\"\n [lastPinned]=\"col.columnLayoutChild ? null : col.isLastPinned\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #cell>\n </igx-expandable-grid-cell>\n</ng-template>\n" }]
|
|
35
35
|
}] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1yb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2dyaWQvZ3JpZC1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2dyaWQvZ3JpZC1yb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSwyQkFBMkIsRUFBRSxxQkFBcUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hMLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFVbEYsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQWU7SUFFN0MsVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFHO1FBQ3RCLE9BQU87WUFDSCxTQUFTLEVBQUUsR0FBRztZQUNkLEdBQUc7U0FDTixDQUFDO0lBQ04sQ0FBQztJQUVELElBQVcsb0JBQW9CO1FBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDaEMsQ0FBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQztJQUNiLENBQUM7SUFFTSxhQUFhLENBQUMsVUFBVSxFQUFFLEdBQUc7UUFDaEMsT0FBTztZQUNILFNBQVMsRUFBRSxVQUFVO1lBQ3JCLEdBQUc7U0FDTixDQUFDO0lBQ04sQ0FBQzs4R0FwQlEsbUJBQW1CO2tHQUFuQixtQkFBbUIsMkRBSmpCLENBQUMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLGlEQ2RqRyxzb2FBaU9BLDRDRGpOYyxnQkFBZ0Isb0pBQUUsSUFBSSw2RkFBRSxtQkFBbUIsaUZBQUUsS0FBSyxtSEFBRSxxQkFBcUIsd0xBQUUsT0FBTywyRUFBRSxvQkFBb0IsMFNBQUUsb0JBQW9CLDhWQUFFLE9BQU8sb0ZBQUUsOEJBQThCLHNGQUFFLHFCQUFxQixpREFBRSxzQkFBc0IsK0NBQUUscUJBQXFCLGlEQUFFLDJCQUEyQix1REFBRSxxQkFBcUIsOENBQUUsMkJBQTJCOzsyRkFFL1QsbUJBQW1CO2tCQVIvQixTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFDckMsY0FBYyxhQUViLENBQUMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxjQUNqRixJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsMkJBQTJCLEVBQUUscUJBQXFCLEVBQUUsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ3hSb3dEaXJlY3RpdmUgfSBmcm9tICcuLi9yb3cuZGlyZWN0aXZlJztcbmltcG9ydCB7IElneEdyaWROb3RHcm91cGVkUGlwZSwgSWd4R3JpZFRvcExldmVsQ29sdW1ucywgSWd4R3JpZENlbGxTdHlsZXNQaXBlLCBJZ3hHcmlkQ2VsbFN0eWxlQ2xhc3Nlc1BpcGUsIElneEdyaWREYXRhTWFwcGVyUGlwZSwgSWd4R3JpZFRyYW5zYWN0aW9uU3RhdGVQaXBlIH0gZnJvbSAnLi4vY29tbW9uL3BpcGVzJztcbmltcG9ydCB7IElneEdyaWRFeHBhbmRhYmxlQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vZXhwYW5kYWJsZS1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hHcmlkQ2VsbENvbXBvbmVudCB9IGZyb20gJy4uL2NlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IElneENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IElneEdyaWRGb3JPZkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZm9yLW9mL2Zvcl9vZi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4Um93RHJhZ0RpcmVjdGl2ZSB9IGZyb20gJy4uL3Jvdy1kcmFnLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0LCBOZ0lmLCBOZ0ZvciwgTmdTdHlsZSwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnaWd4LWdyaWQtcm93JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1yb3cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogSWd4Um93RGlyZWN0aXZlLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJZ3hHcmlkUm93Q29tcG9uZW50KSB9XSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBOZ0lmLCBJZ3hSb3dEcmFnRGlyZWN0aXZlLCBOZ0ZvciwgSWd4R3JpZEZvck9mRGlyZWN0aXZlLCBOZ1N0eWxlLCBJZ3hDaGVja2JveENvbXBvbmVudCwgSWd4R3JpZENlbGxDb21wb25lbnQsIE5nQ2xhc3MsIElneEdyaWRFeHBhbmRhYmxlQ2VsbENvbXBvbmVudCwgSWd4R3JpZE5vdEdyb3VwZWRQaXBlLCBJZ3hHcmlkVG9wTGV2ZWxDb2x1bW5zLCBJZ3hHcmlkQ2VsbFN0eWxlc1BpcGUsIElneEdyaWRDZWxsU3R5bGVDbGFzc2VzUGlwZSwgSWd4R3JpZERhdGFNYXBwZXJQaXBlLCBJZ3hHcmlkVHJhbnNhY3Rpb25TdGF0ZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIElneEdyaWRSb3dDb21wb25lbnQgZXh0ZW5kcyBJZ3hSb3dEaXJlY3RpdmUge1xuXG4gICAgcHVibGljIGdldENvbnRleHQoY29sLCByb3cpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICRpbXBsaWNpdDogY29sLFxuICAgICAgICAgICAgcm93XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBtcmxSaWdodFBpbm5lZE9mZnNldCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gIXRoaXMuZ3JpZC5pc1Bpbm5pbmdUb1N0YXJ0ID9cbiAgICAgICAgICAgIC0gdGhpcy5ncmlkLnBpbm5lZFdpZHRoIC0gdGhpcy5ncmlkLmhlYWRlckZlYXR1cmVzV2lkdGggKyAncHgnIDpcbiAgICAgICAgICAgIG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbnRleHRNUkwocGlubmVkQ29scywgcm93KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAkaW1wbGljaXQ6IHBpbm5lZENvbHMsXG4gICAgICAgICAgICByb3dcbiAgICAgICAgfTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWRkUm93VUkgPyBhZGRUZW1wIDogZGVmYXVsdFRlbXBcIj48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNhZGRUZW1wPlxuICAgIDxkaXYgY2xhc3M9XCJpZ3gtZ3JpZF9fdHItLWlubmVyXCIgW2NsYXNzLmlneC1ncmlkX190ci0tYWRkLWFuaW1hdGVdPVwidHJpZ2dlckFkZEFuaW1hdGlvbkNsYXNzXCIgKGFuaW1hdGlvbmVuZCk9XCJhbmltYXRpb25FbmRIYW5kbGVyKClcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD0nZGVmYXVsdFRlbXAnPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvd0RyYWdnYWJsZVwiPlxuICAgICAgICA8ZGl2IFtjbGFzc109XCJyZXNvbHZlRHJhZ0luZGljYXRvckNsYXNzZXNcIiBbaWd4Um93RHJhZ109XCJ0aGlzXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFtnaG9zdFRlbXBsYXRlXT1cInRoaXMuZ3JpZC5nZXREcmFnR2hvc3RDdXN0b21UZW1wbGF0ZSgpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGhpcy5ncmlkLmRyYWdJbmRpY2F0b3JJY29uVGVtcGxhdGUgPyB0aGlzLmdyaWQuZHJhZ0luZGljYXRvckljb25UZW1wbGF0ZSA6IHRoaXMuZ3JpZC5kcmFnSW5kaWNhdG9ySWNvbkJhc2VcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRoaXMuc2hvd1Jvd1NlbGVjdG9yc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWdyaWRfX2NieC1zZWxlY3Rpb24gaWd4LWdyaWRfX3RyLWFjdGlvblwiIChwb2ludGVyZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIChjbGljayk9XCJvblJvd1NlbGVjdG9yQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkLnJvd1NlbGVjdG9yVGVtcGxhdGUgPyB0aGlzLmdyaWQucm93U2VsZWN0b3JUZW1wbGF0ZSA6IHJvd1NlbGVjdG9yQmFzZVRlbXBsYXRlO1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiB7IGluZGV4OiB2aWV3SW5kZXgsIHJvd0lEOiBrZXksIGtleSwgc2VsZWN0ZWQ6IHNlbGVjdGVkIH19XCI+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JpZC5ncm91cGluZ0V4cHJlc3Npb25zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1ncmlkX19yb3ctaW5kZW50YXRpb24gaWd4LWdyaWRfX3Jvdy1pbmRlbnRhdGlvbi0tbGV2ZWwte3tncmlkLmdyb3VwaW5nRXhwcmVzc2lvbnMubGVuZ3RofX1cIiAocG9pbnRlcmRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+PC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZ3JpZC5oYXNDb2x1bW5MYXlvdXRzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwaW5uZWRDb2x1bW5zLmxlbmd0aCA+IDAgJiYgZ3JpZC5pc1Bpbm5pbmdUb1N0YXJ0XCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWNvbCBbbmdGb3JPZl09XCJwaW5uZWRDb2x1bW5zIHwgaWd4Tm90R3JvdXBlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sLnZpc2libGVJbmRleCA9PT0gMCAmJiBncmlkLmhhc0RldGFpbHMgPyBleHBhbmRhYmxlQ2VsbFRlbXBsYXRlIDogY2VsbFRlbXBsYXRlOyBjb250ZXh0OiBnZXRDb250ZXh0KGNvbCwgdGhpcylcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgaWd4R3JpZEZvciBsZXQtY29sIFtpZ3hHcmlkRm9yT2ZdPVwidW5waW5uZWRDb2x1bW5zIHwgaWd4Tm90R3JvdXBlZFwiIFtpZ3hGb3JTY3JvbGxDb250YWluZXJdPVwiZ3JpZC5wYXJlbnRWaXJ0RGlyXCIgW2lneEZvclNjcm9sbE9yaWVudGF0aW9uXT1cIidob3Jpem9udGFsJ1wiIFtpZ3hGb3JDb250YWluZXJTaXplXT1cImdyaWQudW5waW5uZWRXaWR0aFwiIFtpZ3hGb3JTaXplUHJvcE5hbWVdPVwiJ2NhbGNQaXhlbFdpZHRoJ1wiIFtpZ3hGb3JUcmFja0J5XT1cImdyaWQudHJhY2tDb2x1bW5DaGFuZ2VzXCIgI2lneERpclJlZj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2wudmlzaWJsZUluZGV4ID09PSAwICYmIGdyaWQuaGFzRGV0YWlscyA/IGV4cGFuZGFibGVDZWxsVGVtcGxhdGUgOiBjZWxsVGVtcGxhdGU7IGNvbnRleHQ6IGdldENvbnRleHQoY29sLCB0aGlzKVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGlubmVkQ29sdW1ucy5sZW5ndGggPiAwICYmICFncmlkLmlzUGlubmluZ1RvU3RhcnRcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtY29sIFtuZ0Zvck9mXT1cInBpbm5lZENvbHVtbnMgfCBpZ3hOb3RHcm91cGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2wudmlzaWJsZUluZGV4ID09PSAwICYmIGdyaWQuaGFzRGV0YWlscyA/IGV4cGFuZGFibGVDZWxsVGVtcGxhdGUgOiBjZWxsVGVtcGxhdGU7IGNvbnRleHQ6IGdldENvbnRleHQoY29sLCB0aGlzKVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JpZC5oYXNDb2x1bW5MYXlvdXRzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwaW5uZWRDb2x1bW5zLmxlbmd0aCA+IDAgJiYgZ3JpZC5pc1Bpbm5pbmdUb1N0YXJ0XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibXJsUGlubmVkVGVtcGxhdGU7IGNvbnRleHQ6IGdldENvbnRleHRNUkwocGlubmVkQ29sdW1ucywgdGhpcylcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBpZ3hHcmlkRm9yIGxldC1jb2wgW2lneEdyaWRGb3JPZl09XCJ1bnBpbm5lZENvbHVtbnMgfCBpZ3hUb3BMZXZlbFwiIFtpZ3hGb3JTY3JvbGxDb250YWluZXJdPVwiZ3JpZC5wYXJlbnRWaXJ0RGlyXCIgbGV0LWNvbEluZGV4PVwiaW5kZXhcIiBbaWd4Rm9yU2Nyb2xsT3JpZW50YXRpb25dPVwiJ2hvcml6b250YWwnXCIgW2lneEZvckNvbnRhaW5lclNpemVdPVwiZ3JpZC51bnBpbm5lZFdpZHRoXCIgW2lneEZvclNpemVQcm9wTmFtZV09XCInY2FsY1BpeGVsV2lkdGgnXCIgW2lneEZvclRyYWNrQnldPVwiZ3JpZC50cmFja0NvbHVtbkNoYW5nZXNcIiAjaWd4RGlyUmVmPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlneC1ncmlkX19tcmwtYmxvY2tcIiBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgJ2dyaWQtdGVtcGxhdGUtcm93cyc6Y29sLmdldEdyaWRUZW1wbGF0ZSh0cnVlKSxcbiAgICAgICAgICAgICAgICAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzpjb2wuZ2V0R3JpZFRlbXBsYXRlKGZhbHNlKVxuICAgICAgICAgICAgfVwiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtY29sIFtuZ0Zvck9mXT1cImNvbC5jaGlsZHJlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbC52aXNpYmxlSW5kZXggPT09IDAgJiYgZ3JpZC5oYXNEZXRhaWxzID8gbXJsRXhwYW5kYWJsZUNlbGxUZW1wbGF0ZSA6IG1ybENlbGxUZW1wbGF0ZTsgY29udGV4dDogZ2V0Q29udGV4dChjb2wsIHRoaXMpXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwaW5uZWRDb2x1bW5zLmxlbmd0aCA+IDAgJiYgIWdyaWQuaXNQaW5uaW5nVG9TdGFydFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1ybFBpbm5lZFRlbXBsYXRlOyBjb250ZXh0OiBnZXRDb250ZXh0TVJMKHBpbm5lZENvbHVtbnMsIHRoaXMpXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtcmxQaW5uZWRUZW1wbGF0ZSBsZXQtcGlubmVkQ29sdW1ucz5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjb2wgb2YgcGlubmVkQ29sdW1ucyB8IGlneFRvcExldmVsXCIgY2xhc3M9XCJpZ3gtZ3JpZF9fbXJsLWJsb2NrXCJcbiAgICAgICAgW2NsYXNzLmlneC1ncmlkX190ZC0tcGlubmVkLWxhc3RdPVwiY29sLmhhc0xhc3RQaW5uZWRDaGlsZENvbHVtblwiXG4gICAgICAgIFtjbGFzcy5pZ3gtZ3JpZF9fdGQtLXBpbm5lZC1maXJzdF09XCJjb2wuaGFzRmlyc3RQaW5uZWRDaGlsZENvbHVtblwiXG4gICAgICAgIFtzdHlsZS5sZWZ0XT1cIm1ybFJpZ2h0UGlubmVkT2Zmc2V0XCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgJ2dyaWQtdGVtcGxhdGUtcm93cyc6Y29sLmdldEdyaWRUZW1wbGF0ZSh0cnVlKSxcbiAgICAgICAgICAgICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOmNvbC5nZXRHcmlkVGVtcGxhdGUoZmFsc2UpLFxuICAgICAgICAgICAgJ3otaW5kZXgnOiBjb2wucGlubmVkID8gMSA6IG51bGxcbiAgICAgICAgfVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWNvbCBbbmdGb3JPZl09XCJjb2wuY2hpbGRyZW5cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sLnZpc2libGVJbmRleCA9PT0gMCAmJiBncmlkLmhhc0RldGFpbHM/IG1ybEV4cGFuZGFibGVDZWxsVGVtcGxhdGUgOiBtcmxDZWxsVGVtcGxhdGU7IGNvbnRleHQ6IGdldENvbnRleHQoY29sLCB0aGlzKVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNyb3dTZWxlY3RvckJhc2VUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiaWd4LWdyaWRfX2NieC1wYWRkaW5nXCI+XG4gICAgICAgIDxpZ3gtY2hlY2tib3hcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZFwiXG4gICAgICAgICAgICBbcmVhZG9ubHldPVwidHJ1ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGVsZXRlZFwiXG4gICAgICAgICAgICBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlVHJhbnNpdGlvbnNdPVwiZ3JpZC5kaXNhYmxlVHJhbnNpdGlvbnNcIlxuICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwicm93Q2hlY2tib3hBcmlhTGFiZWxcIj5cbiAgICAgICAgPC9pZ3gtY2hlY2tib3g+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NlbGxUZW1wbGF0ZSBsZXQtY29sPlxuICAgIDxpZ3gtZ3JpZC1jZWxsXG4gICAgICAgIGNsYXNzPVwiaWd4LWdyaWRfX3RkIGlneC1ncmlkX190ZC0tZndcIlxuICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1lZGl0ZWRdPVwia2V5IHwgdHJhbnNhY3Rpb25TdGF0ZTpjb2wuZmllbGQ6Z3JpZC5yb3dFZGl0YWJsZTpncmlkLnRyYW5zYWN0aW9uczpncmlkLnBpcGVUcmlnZ2VyOmdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5jZWxsOmdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5yb3dcIlxuICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1waW5uZWRdPVwiY29sLnBpbm5lZFwiXG4gICAgICAgIFtjbGFzcy5pZ3gtZ3JpZF9fdGQtLW51bWJlcl09XCJjb2wuZGF0YVR5cGUgPT09ICdudW1iZXInIHx8IGNvbC5kYXRhVHlwZSA9PT0gJ3BlcmNlbnQnIHx8IGNvbC5kYXRhVHlwZSA9PT0gJ2N1cnJlbmN5J1wiXG4gICAgICAgIFtjbGFzcy5pZ3gtZ3JpZF9fdGQtLWJvb2xdPVwiY29sLmRhdGFUeXBlID09PSAnYm9vbGVhbidcIlxuICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1pbWFnZV09XCJjb2wuZGF0YVR5cGUgPT09ICdpbWFnZSdcIlxuICAgICAgICBbbmdDbGFzc109XCJjb2wuY2VsbENsYXNzZXMgfCBpZ3hDZWxsU3R5bGVDbGFzc2VzOmRhdGFbY29sLmZpZWxkXTpkYXRhOmNvbC5maWVsZDp2aWV3SW5kZXg6Z3JpZC5waXBlVHJpZ2dlclwiXG4gICAgICAgIFtuZ1N0eWxlXT1cImNvbC5jZWxsU3R5bGVzIHwgaWd4Q2VsbFN0eWxlczpkYXRhW2NvbC5maWVsZF06ZGF0YTpjb2wuZmllbGQ6dmlld0luZGV4OmdyaWQucGlwZVRyaWdnZXJcIlxuICAgICAgICBbZWRpdE1vZGVdPVwiY29sLmVkaXRhYmxlICYmIHRoaXMuZ3JpZC5jcnVkU2VydmljZS50YXJnZXRJbkVkaXQoaW5kZXgsIGNvbC5pbmRleClcIlxuICAgICAgICBbY29sdW1uXT1cImNvbFwiXG4gICAgICAgIFtmb3JtYXR0ZXJdPVwiY29sLmZvcm1hdHRlclwiXG4gICAgICAgIFtpbnRSb3ddPVwidGhpc1wiXG4gICAgICAgIFtsYXN0UGlubmVkXT1cImNvbC5jb2x1bW5MYXlvdXRDaGlsZCA/IG51bGwgOiBjb2wuaXNMYXN0UGlubmVkXCJcbiAgICAgICAgW2ZpcnN0UGlubmVkXT1cImNvbC5jb2x1bW5MYXlvdXRDaGlsZCA/IG51bGwgOiBjb2wuaXNGaXJzdFBpbm5lZFwiXG4gICAgICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImNlbGxIZWlnaHRcIlxuICAgICAgICBbcm93RGF0YV09XCJkYXRhXCJcbiAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2wud2lkdGhcIlxuICAgICAgICBbc3R5bGUubWF4LXdpZHRoXT1cImNvbC53aWR0aFwiXG4gICAgICAgIFtzdHlsZS5mbGV4LWJhc2lzXT1cImNvbC53aWR0aFwiXG4gICAgICAgIFtzdHlsZS5sZWZ0XT1cImNvbC5yaWdodFBpbm5lZE9mZnNldFwiXG4gICAgICAgIFt3aWR0aF09XCJjb2wuZ2V0Q2VsbFdpZHRoKClcIlxuICAgICAgICBbdmlzaWJsZUNvbHVtbkluZGV4XT1cImNvbC52aXNpYmxlSW5kZXhcIlxuICAgICAgICBbdmFsdWVdPVwiZGF0YSB8IGRhdGFNYXBwZXI6Y29sLmZpZWxkOmdyaWQucGlwZVRyaWdnZXI6ZGF0YVtjb2wuZmllbGRdOmNvbC5oYXNOZXN0ZWRQYXRoXCJcbiAgICAgICAgW2NlbGxUZW1wbGF0ZV09XCJjb2wuYm9keVRlbXBsYXRlXCJcbiAgICAgICAgW2NlbGxWYWxpZGF0aW9uRXJyb3JUZW1wbGF0ZV09XCJjb2wuZXJyb3JUZW1wbGF0ZVwiXG4gICAgICAgIFtsYXN0U2VhcmNoSW5mb109XCJncmlkLmxhc3RTZWFyY2hJbmZvXCJcbiAgICAgICAgW2FjdGl2ZV09XCJpc0NlbGxBY3RpdmUoY29sLnZpc2libGVJbmRleClcIlxuICAgICAgICBbY2VsbFNlbGVjdGlvbk1vZGVdPVwiZ3JpZC5jZWxsU2VsZWN0aW9uXCJcbiAgICAgICAgW2Rpc3BsYXlQaW5uZWRDaGlwXT1cInNob3VsZERpc3BsYXlQaW5uZWRDaGlwKGNvbC52aXNpYmxlSW5kZXgpXCJcbiAgICAgICAgI2NlbGw+XG4gICAgPC9pZ3gtZ3JpZC1jZWxsPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNleHBhbmRhYmxlQ2VsbFRlbXBsYXRlIGxldC1jb2w+XG4gICAgPGlneC1leHBhbmRhYmxlLWdyaWQtY2VsbFxuICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1waW5uZWRdPVwiY29sLnBpbm5lZFwiXG4gICAgICAgIGNsYXNzPVwiaWd4LWdyaWRfX3RkIGlneC1ncmlkX190ZC0tZncgaWd4LWdyaWRfX3RkLS10cmVlLWNlbGxcIlxuICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1lZGl0ZWRdPVwia2V5IHwgdHJhbnNhY3Rpb25TdGF0ZTpjb2wuZmllbGQ6Z3JpZC5yb3dFZGl0YWJsZTpncmlkLnRyYW5zYWN0aW9uczpncmlkLnBpcGVUcmlnZ2VyOmdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5jZWxsOmdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5yb3dcIlxuICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1udW1iZXJdPVwiKGNvbC5kYXRhVHlwZSA9PT0gJ251bWJlcicgfHwgY29sLmRhdGFUeXBlID09PSAncGVyY2VudCcgfHwgY29sLmRhdGFUeXBlID09PSAnY3VycmVuY3knKSAmJiBjb2wudmlzaWJsZUluZGV4ICE9PSAwXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiY29sLmNlbGxDbGFzc2VzIHwgaWd4Q2VsbFN0eWxlQ2xhc3NlczpkYXRhW2NvbC5maWVsZF06ZGF0YTpjb2wuZmllbGQ6dmlld0luZGV4OmdyaWQucGlwZVRyaWdnZXJcIlxuICAgICAgICBbbmdTdHlsZV09XCJjb2wuY2VsbFN0eWxlcyB8IGlneENlbGxTdHlsZXM6ZGF0YVtjb2wuZmllbGRdOmRhdGE6Y29sLmZpZWxkOnZpZXdJbmRleDpncmlkLnBpcGVUcmlnZ2VyXCJcbiAgICAgICAgW2V4cGFuZGVkXT1cImV4cGFuZGVkXCJcbiAgICAgICAgW2VkaXRNb2RlXT1cImNvbC5lZGl0YWJsZSAmJiB0aGlzLmdyaWQuY3J1ZFNlcnZpY2UudGFyZ2V0SW5FZGl0KGluZGV4LCBjb2wuaW5kZXgpXCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2xcIlxuICAgICAgICBbZm9ybWF0dGVyXT1cImNvbC5mb3JtYXR0ZXJcIlxuICAgICAgICBbaW50Um93XT1cInRoaXNcIlxuICAgICAgICBbbGFzdFBpbm5lZF09XCJjb2wuY29sdW1uTGF5b3V0Q2hpbGQgPyBudWxsIDogY29sLmlzTGFzdFBpbm5lZFwiXG4gICAgICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImNlbGxIZWlnaHRcIlxuICAgICAgICBbcm93RGF0YV09XCJkYXRhXCJcbiAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2wud2lkdGhcIlxuICAgICAgICBbc3R5bGUubWF4LXdpZHRoXT1cImNvbC53aWR0aFwiXG4gICAgICAgIFtzdHlsZS5mbGV4LWJhc2lzXT1cImNvbC53aWR0aFwiXG4gICAgICAgIFt3aWR0aF09XCJjb2wuZ2V0Q2VsbFdpZHRoKClcIlxuICAgICAgICBbdmlzaWJsZUNvbHVtbkluZGV4XT1cImNvbC52aXNpYmxlSW5kZXhcIlxuICAgICAgICBbdmFsdWVdPVwiZGF0YSB8IGRhdGFNYXBwZXI6Y29sLmZpZWxkOmdyaWQucGlwZVRyaWdnZXI6ZGF0YVtjb2wuZmllbGRdOmNvbC5oYXNOZXN0ZWRQYXRoXCJcbiAgICAgICAgW2NlbGxUZW1wbGF0ZV09XCJjb2wuYm9keVRlbXBsYXRlXCJcbiAgICAgICAgW2NlbGxWYWxpZGF0aW9uRXJyb3JUZW1wbGF0ZV09XCJjb2wuZXJyb3JUZW1wbGF0ZVwiXG4gICAgICAgIFtsYXN0U2VhcmNoSW5mb109XCJncmlkLmxhc3RTZWFyY2hJbmZvXCJcbiAgICAgICAgW2FjdGl2ZV09XCJpc0NlbGxBY3RpdmUoY29sLnZpc2libGVJbmRleClcIlxuICAgICAgICBbY2VsbFNlbGVjdGlvbk1vZGVdPVwiZ3JpZC5jZWxsU2VsZWN0aW9uXCJcbiAgICAgICAgW2Rpc3BsYXlQaW5uZWRDaGlwXT1cInNob3VsZERpc3BsYXlQaW5uZWRDaGlwKGNvbC52aXNpYmxlSW5kZXgpXCJcbiAgICAgICAgI2NlbGw+XG4gICAgPC9pZ3gtZXhwYW5kYWJsZS1ncmlkLWNlbGw+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21ybENlbGxUZW1wbGF0ZSBsZXQtY29sPlxuICAgIDxpZ3gtZ3JpZC1jZWxsXG4gICAgICAgIGNsYXNzPVwiaWd4LWdyaWRfX3RkIGlneC1ncmlkX190ZC0tZndcIlxuICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1lZGl0ZWRdPVwia2V5IHwgdHJhbnNhY3Rpb25TdGF0ZTpjb2wuZmllbGQ6Z3JpZC5yb3dFZGl0YWJsZTpncmlkLnRyYW5zYWN0aW9uczpncmlkLnBpcGVUcmlnZ2VyOmdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5jZWxsOmdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5yb3dcIlxuXG4gICAgICAgIFtjbGFzcy5pZ3gtZ3JpZF9fdGQtLXBpbm5lZF09XCJjb2wucGlubmVkXCJcbiAgICAgICAgW2NsYXNzLmlneC1ncmlkX190ZC0tbnVtYmVyXT1cImNvbC5kYXRhVHlwZSA9PT0gJ251bWJlcicgfHwgY29sLmRhdGFUeXBlID09PSAncGVyY2VudCcgfHwgY29sLmRhdGFUeXBlID09PSAnY3VycmVuY3knXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiY29sLmNlbGxDbGFzc2VzIHwgaWd4Q2VsbFN0eWxlQ2xhc3NlczpkYXRhW2NvbC5maWVsZF06ZGF0YTpjb2wuZmllbGQ6dmlld0luZGV4OmdyaWQucGlwZVRyaWdnZXJcIlxuICAgICAgICBbbmdTdHlsZV09XCJjb2wuY2VsbFN0eWxlcyB8IGlneENlbGxTdHlsZXM6ZGF0YVtjb2wuZmllbGRdOmRhdGE6Y29sLmZpZWxkOnZpZXdJbmRleDpncmlkLnBpcGVUcmlnZ2VyXCJcbiAgICAgICAgW2VkaXRNb2RlXT1cImNvbC5lZGl0YWJsZSAmJiB0aGlzLmdyaWQuY3J1ZFNlcnZpY2UudGFyZ2V0SW5FZGl0KGluZGV4LCBjb2wuaW5kZXgpXCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2xcIlxuICAgICAgICBbc3R5bGUuZ3JpZC1yb3ctZW5kXT1cImNvbC5yb3dFbmRcIlxuICAgICAgICBbc3R5bGUuZ3JpZC1jb2x1bW4tZW5kXT1cImNvbC5jb2xFbmRcIlxuICAgICAgICBbc3R5bGUuZ3JpZC1yb3ctc3RhcnRdPVwiY29sLnJvd1N0YXJ0XCJcbiAgICAgICAgW3N0eWxlLmdyaWQtY29sdW1uLXN0YXJ0XT1cImNvbC5jb2xTdGFydFwiXG4gICAgICAgIFtsYXN0UGlubmVkXT1cImNvbC5jb2x1bW5MYXlvdXRDaGlsZCA/IG51bGwgOiBjb2wuaXNMYXN0UGlubmVkXCJcbiAgICAgICAgW2ZpcnN0UGlubmVkXT1cImNvbC5jb2x1bW5MYXlvdXRDaGlsZCA/IG51bGwgOiBjb2wuaXNGaXJzdFBpbm5lZFwiXG4gICAgICAgIFtmb3JtYXR0ZXJdPVwiY29sLmZvcm1hdHRlclwiXG4gICAgICAgIFtpbnRSb3ddPVwidGhpc1wiXG4gICAgICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImNlbGxIZWlnaHRcIlxuICAgICAgICBbcm93RGF0YV09XCJkYXRhXCJcbiAgICAgICAgW3Zpc2libGVDb2x1bW5JbmRleF09XCJjb2wudmlzaWJsZUluZGV4XCJcbiAgICAgICAgW3ZhbHVlXT1cImRhdGEgfCBkYXRhTWFwcGVyOmNvbC5maWVsZDpncmlkLnBpcGVUcmlnZ2VyOmRhdGFbY29sLmZpZWxkXTpjb2wuaGFzTmVzdGVkUGF0aFwiXG4gICAgICAgIFtjZWxsVGVtcGxhdGVdPVwiY29sLmJvZHlUZW1wbGF0ZVwiXG4gICAgICAgIFtjZWxsVmFsaWRhdGlvbkVycm9yVGVtcGxhdGVdPVwiY29sLmVycm9yVGVtcGxhdGVcIlxuICAgICAgICBbbGFzdFNlYXJjaEluZm9dPVwiZ3JpZC5sYXN0U2VhcmNoSW5mb1wiXG4gICAgICAgIFthY3RpdmVdPVwiaXNDZWxsQWN0aXZlKGNvbC52aXNpYmxlSW5kZXgpXCJcbiAgICAgICAgW2NlbGxTZWxlY3Rpb25Nb2RlXT1cImdyaWQuY2VsbFNlbGVjdGlvblwiXG4gICAgICAgIFtkaXNwbGF5UGlubmVkQ2hpcF09XCJzaG91bGREaXNwbGF5UGlubmVkQ2hpcChjb2wudmlzaWJsZUluZGV4KVwiXG4gICAgICAgICNjZWxsPlxuICAgIDwvaWd4LWdyaWQtY2VsbD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbXJsRXhwYW5kYWJsZUNlbGxUZW1wbGF0ZSBsZXQtY29sPlxuICAgIDxpZ3gtZXhwYW5kYWJsZS1ncmlkLWNlbGxcbiAgICAgICAgY2xhc3M9XCJpZ3gtZ3JpZF9fdGQgaWd4LWdyaWRfX3RkLS1mdyBpZ3gtZ3JpZF9fdGQtLXRyZWUtY2VsbFwiXG4gICAgICAgIFtjbGFzcy5pZ3gtZ3JpZF9fdGQtLWVkaXRlZF09XCJrZXkgfCB0cmFuc2FjdGlvblN0YXRlOmNvbC5maWVsZDpncmlkLnJvd0VkaXRhYmxlOmdyaWQudHJhbnNhY3Rpb25zOmdyaWQucGlwZVRyaWdnZXI6Z3JpZC5ncmlkQVBJLmNydWRTZXJ2aWNlLmNlbGw6Z3JpZC5ncmlkQVBJLmNydWRTZXJ2aWNlLnJvd1wiXG5cbiAgICAgICAgW2NsYXNzLmlneC1ncmlkX190ZC0tcGlubmVkXT1cImNvbC5waW5uZWRcIlxuICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1udW1iZXJdPVwiKGNvbC5kYXRhVHlwZSA9PT0gJ251bWJlcicgfHwgY29sLmRhdGFUeXBlID09PSAncGVyY2VudCcgfHwgY29sLmRhdGFUeXBlID09PSAnY3VycmVuY3knKSAmJiBjb2wudmlzaWJsZUluZGV4ICE9PSAwXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiY29sLmNlbGxDbGFzc2VzIHwgaWd4Q2VsbFN0eWxlQ2xhc3NlczpkYXRhW2NvbC5maWVsZF06ZGF0YTpjb2wuZmllbGQ6dmlld0luZGV4OmdyaWQucGlwZVRyaWdnZXJcIlxuICAgICAgICBbbmdTdHlsZV09XCJjb2wuY2VsbFN0eWxlcyB8IGlneENlbGxTdHlsZXM6ZGF0YVtjb2wuZmllbGRdOmRhdGE6Y29sLmZpZWxkOnZpZXdJbmRleDpncmlkLnBpcGVUcmlnZ2VyXCJcbiAgICAgICAgW2V4cGFuZGVkXT1cImV4cGFuZGVkXCJcbiAgICAgICAgW2VkaXRNb2RlXT1cImNvbC5lZGl0YWJsZSAmJiB0aGlzLmdyaWQuY3J1ZFNlcnZpY2UudGFyZ2V0SW5FZGl0KGluZGV4LCBjb2wuaW5kZXgpXCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2xcIlxuICAgICAgICBbc3R5bGUuZ3JpZC1yb3ctZW5kXT1cImNvbC5yb3dFbmRcIlxuICAgICAgICBbc3R5bGUuZ3JpZC1jb2x1bW4tZW5kXT1cImNvbC5jb2xFbmRcIlxuICAgICAgICBbc3R5bGUuZ3JpZC1yb3ctc3RhcnRdPVwiY29sLnJvd1N0YXJ0XCJcbiAgICAgICAgW3N0eWxlLmdyaWQtY29sdW1uLXN0YXJ0XT1cImNvbC5jb2xTdGFydFwiXG4gICAgICAgIFtsYXN0UGlubmVkXT1cImNvbC5jb2x1bW5MYXlvdXRDaGlsZCA/IG51bGwgOiBjb2wuaXNMYXN0UGlubmVkXCJcbiAgICAgICAgW2Zvcm1hdHRlcl09XCJjb2wuZm9ybWF0dGVyXCJcbiAgICAgICAgW2ludFJvd109XCJ0aGlzXCJcbiAgICAgICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiY2VsbEhlaWdodFwiXG4gICAgICAgIFtyb3dEYXRhXT1cImRhdGFcIlxuICAgICAgICBbdmlzaWJsZUNvbHVtbkluZGV4XT1cImNvbC52aXNpYmxlSW5kZXhcIlxuICAgICAgICBbdmFsdWVdPVwiZGF0YSB8IGRhdGFNYXBwZXI6Y29sLmZpZWxkOmdyaWQucGlwZVRyaWdnZXI6ZGF0YVtjb2wuZmllbGRdOmNvbC5oYXNOZXN0ZWRQYXRoXCJcbiAgICAgICAgW2NlbGxUZW1wbGF0ZV09XCJjb2wuYm9keVRlbXBsYXRlXCJcbiAgICAgICAgW2NlbGxWYWxpZGF0aW9uRXJyb3JUZW1wbGF0ZV09XCJjb2wuZXJyb3JUZW1wbGF0ZVwiXG4gICAgICAgIFtsYXN0U2VhcmNoSW5mb109XCJncmlkLmxhc3RTZWFyY2hJbmZvXCJcbiAgICAgICAgW2FjdGl2ZV09XCJpc0NlbGxBY3RpdmUoY29sLnZpc2libGVJbmRleClcIlxuICAgICAgICBbY2VsbFNlbGVjdGlvbk1vZGVdPVwiZ3JpZC5jZWxsU2VsZWN0aW9uXCJcbiAgICAgICAgW2Rpc3BsYXlQaW5uZWRDaGlwXT1cInNob3VsZERpc3BsYXlQaW5uZWRDaGlwKGNvbC52aXNpYmxlSW5kZXgpXCJcbiAgICAgICAgI2NlbGw+XG4gICAgPC9pZ3gtZXhwYW5kYWJsZS1ncmlkLWNlbGw+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1yb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2dyaWQvZ3JpZC1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2dyaWQvZ3JpZC1yb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSwyQkFBMkIsRUFBRSxxQkFBcUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hMLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFVbEYsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQWU7SUFFN0MsVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFHO1FBQ3RCLE9BQU87WUFDSCxTQUFTLEVBQUUsR0FBRztZQUNkLEdBQUc7U0FDTixDQUFDO0lBQ04sQ0FBQztJQUVELElBQVcsb0JBQW9CO1FBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDaEMsQ0FBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQztJQUNiLENBQUM7SUFFTSxhQUFhLENBQUMsVUFBVSxFQUFFLEdBQUc7UUFDaEMsT0FBTztZQUNILFNBQVMsRUFBRSxVQUFVO1lBQ3JCLEdBQUc7U0FDTixDQUFDO0lBQ04sQ0FBQzs4R0FwQlEsbUJBQW1CO2tHQUFuQixtQkFBbUIsMkRBSmpCLENBQUMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLGlEQ2RqRyxzcmFBaU9BLDRDRGpOYyxnQkFBZ0Isb0pBQUUsSUFBSSw2RkFBRSxtQkFBbUIsaUZBQUUsS0FBSyxtSEFBRSxxQkFBcUIsd0xBQUUsT0FBTywyRUFBRSxvQkFBb0IsMFNBQUUsb0JBQW9CLDhWQUFFLE9BQU8sb0ZBQUUsOEJBQThCLHNGQUFFLHFCQUFxQixpREFBRSxzQkFBc0IsK0NBQUUscUJBQXFCLGlEQUFFLDJCQUEyQix1REFBRSxxQkFBcUIsOENBQUUsMkJBQTJCOzsyRkFFL1QsbUJBQW1CO2tCQVIvQixTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFDckMsY0FBYyxhQUViLENBQUMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxjQUNqRixJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsMkJBQTJCLEVBQUUscUJBQXFCLEVBQUUsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ3hSb3dEaXJlY3RpdmUgfSBmcm9tICcuLi9yb3cuZGlyZWN0aXZlJztcbmltcG9ydCB7IElneEdyaWROb3RHcm91cGVkUGlwZSwgSWd4R3JpZFRvcExldmVsQ29sdW1ucywgSWd4R3JpZENlbGxTdHlsZXNQaXBlLCBJZ3hHcmlkQ2VsbFN0eWxlQ2xhc3Nlc1BpcGUsIElneEdyaWREYXRhTWFwcGVyUGlwZSwgSWd4R3JpZFRyYW5zYWN0aW9uU3RhdGVQaXBlIH0gZnJvbSAnLi4vY29tbW9uL3BpcGVzJztcbmltcG9ydCB7IElneEdyaWRFeHBhbmRhYmxlQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vZXhwYW5kYWJsZS1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hHcmlkQ2VsbENvbXBvbmVudCB9IGZyb20gJy4uL2NlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IElneENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IElneEdyaWRGb3JPZkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZm9yLW9mL2Zvcl9vZi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4Um93RHJhZ0RpcmVjdGl2ZSB9IGZyb20gJy4uL3Jvdy1kcmFnLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0LCBOZ0lmLCBOZ0ZvciwgTmdTdHlsZSwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnaWd4LWdyaWQtcm93JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1yb3cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogSWd4Um93RGlyZWN0aXZlLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJZ3hHcmlkUm93Q29tcG9uZW50KSB9XSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBOZ0lmLCBJZ3hSb3dEcmFnRGlyZWN0aXZlLCBOZ0ZvciwgSWd4R3JpZEZvck9mRGlyZWN0aXZlLCBOZ1N0eWxlLCBJZ3hDaGVja2JveENvbXBvbmVudCwgSWd4R3JpZENlbGxDb21wb25lbnQsIE5nQ2xhc3MsIElneEdyaWRFeHBhbmRhYmxlQ2VsbENvbXBvbmVudCwgSWd4R3JpZE5vdEdyb3VwZWRQaXBlLCBJZ3hHcmlkVG9wTGV2ZWxDb2x1bW5zLCBJZ3hHcmlkQ2VsbFN0eWxlc1BpcGUsIElneEdyaWRDZWxsU3R5bGVDbGFzc2VzUGlwZSwgSWd4R3JpZERhdGFNYXBwZXJQaXBlLCBJZ3hHcmlkVHJhbnNhY3Rpb25TdGF0ZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIElneEdyaWRSb3dDb21wb25lbnQgZXh0ZW5kcyBJZ3hSb3dEaXJlY3RpdmUge1xuXG4gICAgcHVibGljIGdldENvbnRleHQoY29sLCByb3cpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICRpbXBsaWNpdDogY29sLFxuICAgICAgICAgICAgcm93XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBtcmxSaWdodFBpbm5lZE9mZnNldCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gIXRoaXMuZ3JpZC5pc1Bpbm5pbmdUb1N0YXJ0ID9cbiAgICAgICAgICAgIC0gdGhpcy5ncmlkLnBpbm5lZFdpZHRoIC0gdGhpcy5ncmlkLmhlYWRlckZlYXR1cmVzV2lkdGggKyAncHgnIDpcbiAgICAgICAgICAgIG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbnRleHRNUkwocGlubmVkQ29scywgcm93KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAkaW1wbGljaXQ6IHBpbm5lZENvbHMsXG4gICAgICAgICAgICByb3dcbiAgICAgICAgfTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWRkUm93VUkgPyBhZGRUZW1wIDogZGVmYXVsdFRlbXBcIj48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNhZGRUZW1wPlxuICAgIDxkaXYgY2xhc3M9XCJpZ3gtZ3JpZF9fdHItLWlubmVyXCIgW2NsYXNzLmlneC1ncmlkX190ci0tYWRkLWFuaW1hdGVdPVwidHJpZ2dlckFkZEFuaW1hdGlvbkNsYXNzXCIgKGFuaW1hdGlvbmVuZCk9XCJhbmltYXRpb25FbmRIYW5kbGVyKClcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD0nZGVmYXVsdFRlbXAnPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvd0RyYWdnYWJsZVwiPlxuICAgICAgICA8ZGl2IFtjbGFzc109XCJyZXNvbHZlRHJhZ0luZGljYXRvckNsYXNzZXNcIiBbaWd4Um93RHJhZ109XCJ0aGlzXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFtnaG9zdFRlbXBsYXRlXT1cInRoaXMuZ3JpZC5nZXREcmFnR2hvc3RDdXN0b21UZW1wbGF0ZSgpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGhpcy5ncmlkLmRyYWdJbmRpY2F0b3JJY29uVGVtcGxhdGUgPyB0aGlzLmdyaWQuZHJhZ0luZGljYXRvckljb25UZW1wbGF0ZSA6IHRoaXMuZ3JpZC5kcmFnSW5kaWNhdG9ySWNvbkJhc2VcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRoaXMuc2hvd1Jvd1NlbGVjdG9yc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWdyaWRfX2NieC1zZWxlY3Rpb24gaWd4LWdyaWRfX3RyLWFjdGlvblwiIChwb2ludGVyZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIChjbGljayk9XCJvblJvd1NlbGVjdG9yQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkLnJvd1NlbGVjdG9yVGVtcGxhdGUgPyB0aGlzLmdyaWQucm93U2VsZWN0b3JUZW1wbGF0ZSA6IHJvd1NlbGVjdG9yQmFzZVRlbXBsYXRlO1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiB7IGluZGV4OiB2aWV3SW5kZXgsIHJvd0lEOiBrZXksIGtleSwgc2VsZWN0ZWQ6IHNlbGVjdGVkIH19XCI+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JpZC5ncm91cGluZ0V4cHJlc3Npb25zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1ncmlkX19yb3ctaW5kZW50YXRpb24gaWd4LWdyaWRfX3Jvdy1pbmRlbnRhdGlvbi0tbGV2ZWwte3tncmlkLmdyb3VwaW5nRXhwcmVzc2lvbnMubGVuZ3RofX1cIiAocG9pbnRlcmRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+PC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZ3JpZC5oYXNDb2x1bW5MYXlvdXRzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwaW5uZWRDb2x1bW5zLmxlbmd0aCA+IDAgJiYgZ3JpZC5pc1Bpbm5pbmdUb1N0YXJ0XCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWNvbCBbbmdGb3JPZl09XCJwaW5uZWRDb2x1bW5zIHwgaWd4Tm90R3JvdXBlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sLnZpc2libGVJbmRleCA9PT0gMCAmJiBncmlkLmhhc0RldGFpbHMgPyBleHBhbmRhYmxlQ2VsbFRlbXBsYXRlIDogY2VsbFRlbXBsYXRlOyBjb250ZXh0OiBnZXRDb250ZXh0KGNvbCwgdGhpcylcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgaWd4R3JpZEZvciBsZXQtY29sIFtpZ3hHcmlkRm9yT2ZdPVwidW5waW5uZWRDb2x1bW5zIHwgaWd4Tm90R3JvdXBlZFwiIFtpZ3hGb3JTY3JvbGxDb250YWluZXJdPVwiZ3JpZC5wYXJlbnRWaXJ0RGlyXCIgW2lneEZvclNjcm9sbE9yaWVudGF0aW9uXT1cIidob3Jpem9udGFsJ1wiIFtpZ3hGb3JDb250YWluZXJTaXplXT1cImdyaWQudW5waW5uZWRXaWR0aFwiIFtpZ3hGb3JTaXplUHJvcE5hbWVdPVwiJ2NhbGNQaXhlbFdpZHRoJ1wiIFtpZ3hGb3JUcmFja0J5XT1cImdyaWQudHJhY2tDb2x1bW5DaGFuZ2VzXCIgI2lneERpclJlZj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2wudmlzaWJsZUluZGV4ID09PSAwICYmIGdyaWQuaGFzRGV0YWlscyA/IGV4cGFuZGFibGVDZWxsVGVtcGxhdGUgOiBjZWxsVGVtcGxhdGU7IGNvbnRleHQ6IGdldENvbnRleHQoY29sLCB0aGlzKVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGlubmVkQ29sdW1ucy5sZW5ndGggPiAwICYmICFncmlkLmlzUGlubmluZ1RvU3RhcnRcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtY29sIFtuZ0Zvck9mXT1cInBpbm5lZENvbHVtbnMgfCBpZ3hOb3RHcm91cGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2wudmlzaWJsZUluZGV4ID09PSAwICYmIGdyaWQuaGFzRGV0YWlscyA/IGV4cGFuZGFibGVDZWxsVGVtcGxhdGUgOiBjZWxsVGVtcGxhdGU7IGNvbnRleHQ6IGdldENvbnRleHQoY29sLCB0aGlzKVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JpZC5oYXNDb2x1bW5MYXlvdXRzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwaW5uZWRDb2x1bW5zLmxlbmd0aCA+IDAgJiYgZ3JpZC5pc1Bpbm5pbmdUb1N0YXJ0XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibXJsUGlubmVkVGVtcGxhdGU7IGNvbnRleHQ6IGdldENvbnRleHRNUkwocGlubmVkQ29sdW1ucywgdGhpcylcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBpZ3hHcmlkRm9yIGxldC1jb2wgW2lneEdyaWRGb3JPZl09XCJ1bnBpbm5lZENvbHVtbnMgfCBpZ3hUb3BMZXZlbFwiIFtpZ3hGb3JTY3JvbGxDb250YWluZXJdPVwiZ3JpZC5wYXJlbnRWaXJ0RGlyXCIgbGV0LWNvbEluZGV4PVwiaW5kZXhcIiBbaWd4Rm9yU2Nyb2xsT3JpZW50YXRpb25dPVwiJ2hvcml6b250YWwnXCIgW2lneEZvckNvbnRhaW5lclNpemVdPVwiZ3JpZC51bnBpbm5lZFdpZHRoXCIgW2lneEZvclNpemVQcm9wTmFtZV09XCInY2FsY1BpeGVsV2lkdGgnXCIgW2lneEZvclRyYWNrQnldPVwiZ3JpZC50cmFja0NvbHVtbkNoYW5nZXNcIiAjaWd4RGlyUmVmPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlneC1ncmlkX19tcmwtYmxvY2tcIiBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgJ2dyaWQtdGVtcGxhdGUtcm93cyc6Y29sLmdldEdyaWRUZW1wbGF0ZSh0cnVlKSxcbiAgICAgICAgICAgICAgICAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzpjb2wuZ2V0R3JpZFRlbXBsYXRlKGZhbHNlKVxuICAgICAgICAgICAgfVwiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtY29sIFtuZ0Zvck9mXT1cImNvbC5jaGlsZHJlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbC52aXNpYmxlSW5kZXggPT09IDAgJiYgZ3JpZC5oYXNEZXRhaWxzID8gbXJsRXhwYW5kYWJsZUNlbGxUZW1wbGF0ZSA6IG1ybENlbGxUZW1wbGF0ZTsgY29udGV4dDogZ2V0Q29udGV4dChjb2wsIHRoaXMpXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwaW5uZWRDb2x1bW5zLmxlbmd0aCA+IDAgJiYgIWdyaWQuaXNQaW5uaW5nVG9TdGFydFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1ybFBpbm5lZFRlbXBsYXRlOyBjb250ZXh0OiBnZXRDb250ZXh0TVJMKHBpbm5lZENvbHVtbnMsIHRoaXMpXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtcmxQaW5uZWRUZW1wbGF0ZSBsZXQtcGlubmVkQ29sdW1ucz5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjb2wgb2YgcGlubmVkQ29sdW1ucyB8IGlneFRvcExldmVsXCIgY2xhc3M9XCJpZ3gtZ3JpZF9fbXJsLWJsb2NrXCJcbiAgICAgICAgW2NsYXNzLmlneC1ncmlkX190ZC0tcGlubmVkLWxhc3RdPVwiY29sLmhhc0xhc3RQaW5uZWRDaGlsZENvbHVtblwiXG4gICAgICAgIFtjbGFzcy5pZ3gtZ3JpZF9fdGQtLXBpbm5lZC1maXJzdF09XCJjb2wuaGFzRmlyc3RQaW5uZWRDaGlsZENvbHVtblwiXG4gICAgICAgIFtzdHlsZS5sZWZ0XT1cIm1ybFJpZ2h0UGlubmVkT2Zmc2V0XCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgJ2dyaWQtdGVtcGxhdGUtcm93cyc6Y29sLmdldEdyaWRUZW1wbGF0ZSh0cnVlKSxcbiAgICAgICAgICAgICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOmNvbC5nZXRHcmlkVGVtcGxhdGUoZmFsc2UpLFxuICAgICAgICAgICAgJ3otaW5kZXgnOiBjb2wucGlubmVkID8gMSA6IG51bGxcbiAgICAgICAgfVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWNvbCBbbmdGb3JPZl09XCJjb2wuY2hpbGRyZW5cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sLnZpc2libGVJbmRleCA9PT0gMCAmJiBncmlkLmhhc0RldGFpbHM/IG1ybEV4cGFuZGFibGVDZWxsVGVtcGxhdGUgOiBtcmxDZWxsVGVtcGxhdGU7IGNvbnRleHQ6IGdldENvbnRleHQoY29sLCB0aGlzKVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNyb3dTZWxlY3RvckJhc2VUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiaWd4LWdyaWRfX2NieC1wYWRkaW5nXCI+XG4gICAgICAgIDxpZ3gtY2hlY2tib3hcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZFwiXG4gICAgICAgICAgICBbcmVhZG9ubHldPVwidHJ1ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGVsZXRlZFwiXG4gICAgICAgICAgICBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlVHJhbnNpdGlvbnNdPVwiZ3JpZC5kaXNhYmxlVHJhbnNpdGlvbnNcIlxuICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwicm93Q2hlY2tib3hBcmlhTGFiZWxcIj5cbiAgICAgICAgPC9pZ3gtY2hlY2tib3g+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NlbGxUZW1wbGF0ZSBsZXQtY29sPlxuICAgIDxpZ3gtZ3JpZC1jZWxsXG4gICAgICAgIGNsYXNzPVwiaWd4LWdyaWRfX3RkIGlneC1ncmlkX190ZC0tZndcIlxuICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1lZGl0ZWRdPVwia2V5IHwgdHJhbnNhY3Rpb25TdGF0ZTpjb2wuZmllbGQ6Z3JpZC5yb3dFZGl0YWJsZTpncmlkLnRyYW5zYWN0aW9uczpncmlkLnBpcGVUcmlnZ2VyOmdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5jZWxsOmdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5yb3dcIlxuICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1waW5uZWRdPVwiY29sLnBpbm5lZFwiXG4gICAgICAgIFtjbGFzcy5pZ3gtZ3JpZF9fdGQtLW51bWJlcl09XCJjb2wuZGF0YVR5cGUgPT09ICdudW1iZXInIHx8IGNvbC5kYXRhVHlwZSA9PT0gJ3BlcmNlbnQnIHx8IGNvbC5kYXRhVHlwZSA9PT0gJ2N1cnJlbmN5J1wiXG4gICAgICAgIFtjbGFzcy5pZ3gtZ3JpZF9fdGQtLWJvb2xdPVwiY29sLmRhdGFUeXBlID09PSAnYm9vbGVhbidcIlxuICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1pbWFnZV09XCJjb2wuZGF0YVR5cGUgPT09ICdpbWFnZSdcIlxuICAgICAgICBbbmdDbGFzc109XCJjb2wuY2VsbENsYXNzZXMgfCBpZ3hDZWxsU3R5bGVDbGFzc2VzOmRhdGFbY29sLmZpZWxkXTpkYXRhOmNvbC5maWVsZDp2aWV3SW5kZXg6Z3JpZC5waXBlVHJpZ2dlclwiXG4gICAgICAgIFtuZ1N0eWxlXT1cImNvbC5jZWxsU3R5bGVzIHwgaWd4Q2VsbFN0eWxlczpkYXRhW2NvbC5maWVsZF06ZGF0YTpjb2wuZmllbGQ6dmlld0luZGV4OmdyaWQucGlwZVRyaWdnZXJcIlxuICAgICAgICBbZWRpdE1vZGVdPVwiY29sLmVkaXRhYmxlICYmIHRoaXMuZ3JpZC5jcnVkU2VydmljZS50YXJnZXRJbkVkaXQoaW5kZXgsIGNvbC5pbmRleClcIlxuICAgICAgICBbY29sdW1uXT1cImNvbFwiXG4gICAgICAgIFtmb3JtYXR0ZXJdPVwiY29sLmZvcm1hdHRlclwiXG4gICAgICAgIFtpbnRSb3ddPVwidGhpc1wiXG4gICAgICAgIFtsYXN0UGlubmVkXT1cImNvbC5jb2x1bW5MYXlvdXRDaGlsZCA/IG51bGwgOiBjb2wuaXNMYXN0UGlubmVkXCJcbiAgICAgICAgW2ZpcnN0UGlubmVkXT1cImNvbC5jb2x1bW5MYXlvdXRDaGlsZCA/IG51bGwgOiBjb2wuaXNGaXJzdFBpbm5lZFwiXG4gICAgICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImNlbGxIZWlnaHRcIlxuICAgICAgICBbcm93RGF0YV09XCJkYXRhXCJcbiAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2wucmVzb2x2ZWRXaWR0aFwiXG4gICAgICAgIFtzdHlsZS5tYXgtd2lkdGhdPVwiY29sLnJlc29sdmVkV2lkdGhcIlxuICAgICAgICBbc3R5bGUuZmxleC1iYXNpc109XCJjb2wucmVzb2x2ZWRXaWR0aFwiXG4gICAgICAgIFtzdHlsZS5sZWZ0XT1cImNvbC5yaWdodFBpbm5lZE9mZnNldFwiXG4gICAgICAgIFt3aWR0aF09XCJjb2wuZ2V0Q2VsbFdpZHRoKClcIlxuICAgICAgICBbdmlzaWJsZUNvbHVtbkluZGV4XT1cImNvbC52aXNpYmxlSW5kZXhcIlxuICAgICAgICBbdmFsdWVdPVwiZGF0YSB8IGRhdGFNYXBwZXI6Y29sLmZpZWxkOmdyaWQucGlwZVRyaWdnZXI6ZGF0YVtjb2wuZmllbGRdOmNvbC5oYXNOZXN0ZWRQYXRoXCJcbiAgICAgICAgW2NlbGxUZW1wbGF0ZV09XCJjb2wuYm9keVRlbXBsYXRlXCJcbiAgICAgICAgW2NlbGxWYWxpZGF0aW9uRXJyb3JUZW1wbGF0ZV09XCJjb2wuZXJyb3JUZW1wbGF0ZVwiXG4gICAgICAgIFtsYXN0U2VhcmNoSW5mb109XCJncmlkLmxhc3RTZWFyY2hJbmZvXCJcbiAgICAgICAgW2FjdGl2ZV09XCJpc0NlbGxBY3RpdmUoY29sLnZpc2libGVJbmRleClcIlxuICAgICAgICBbY2VsbFNlbGVjdGlvbk1vZGVdPVwiZ3JpZC5jZWxsU2VsZWN0aW9uXCJcbiAgICAgICAgW2Rpc3BsYXlQaW5uZWRDaGlwXT1cInNob3VsZERpc3BsYXlQaW5uZWRDaGlwKGNvbC52aXNpYmxlSW5kZXgpXCJcbiAgICAgICAgI2NlbGw+XG4gICAgPC9pZ3gtZ3JpZC1jZWxsPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNleHBhbmRhYmxlQ2VsbFRlbXBsYXRlIGxldC1jb2w+XG4gICAgPGlneC1leHBhbmRhYmxlLWdyaWQtY2VsbFxuICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1waW5uZWRdPVwiY29sLnBpbm5lZFwiXG4gICAgICAgIGNsYXNzPVwiaWd4LWdyaWRfX3RkIGlneC1ncmlkX190ZC0tZncgaWd4LWdyaWRfX3RkLS10cmVlLWNlbGxcIlxuICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1lZGl0ZWRdPVwia2V5IHwgdHJhbnNhY3Rpb25TdGF0ZTpjb2wuZmllbGQ6Z3JpZC5yb3dFZGl0YWJsZTpncmlkLnRyYW5zYWN0aW9uczpncmlkLnBpcGVUcmlnZ2VyOmdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5jZWxsOmdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5yb3dcIlxuICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1udW1iZXJdPVwiKGNvbC5kYXRhVHlwZSA9PT0gJ251bWJlcicgfHwgY29sLmRhdGFUeXBlID09PSAncGVyY2VudCcgfHwgY29sLmRhdGFUeXBlID09PSAnY3VycmVuY3knKSAmJiBjb2wudmlzaWJsZUluZGV4ICE9PSAwXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiY29sLmNlbGxDbGFzc2VzIHwgaWd4Q2VsbFN0eWxlQ2xhc3NlczpkYXRhW2NvbC5maWVsZF06ZGF0YTpjb2wuZmllbGQ6dmlld0luZGV4OmdyaWQucGlwZVRyaWdnZXJcIlxuICAgICAgICBbbmdTdHlsZV09XCJjb2wuY2VsbFN0eWxlcyB8IGlneENlbGxTdHlsZXM6ZGF0YVtjb2wuZmllbGRdOmRhdGE6Y29sLmZpZWxkOnZpZXdJbmRleDpncmlkLnBpcGVUcmlnZ2VyXCJcbiAgICAgICAgW2V4cGFuZGVkXT1cImV4cGFuZGVkXCJcbiAgICAgICAgW2VkaXRNb2RlXT1cImNvbC5lZGl0YWJsZSAmJiB0aGlzLmdyaWQuY3J1ZFNlcnZpY2UudGFyZ2V0SW5FZGl0KGluZGV4LCBjb2wuaW5kZXgpXCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2xcIlxuICAgICAgICBbZm9ybWF0dGVyXT1cImNvbC5mb3JtYXR0ZXJcIlxuICAgICAgICBbaW50Um93XT1cInRoaXNcIlxuICAgICAgICBbbGFzdFBpbm5lZF09XCJjb2wuY29sdW1uTGF5b3V0Q2hpbGQgPyBudWxsIDogY29sLmlzTGFzdFBpbm5lZFwiXG4gICAgICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImNlbGxIZWlnaHRcIlxuICAgICAgICBbcm93RGF0YV09XCJkYXRhXCJcbiAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2wucmVzb2x2ZWRXaWR0aFwiXG4gICAgICAgIFtzdHlsZS5tYXgtd2lkdGhdPVwiY29sLnJlc29sdmVkV2lkdGhcIlxuICAgICAgICBbc3R5bGUuZmxleC1iYXNpc109XCJjb2wucmVzb2x2ZWRXaWR0aFwiXG4gICAgICAgIFt3aWR0aF09XCJjb2wuZ2V0Q2VsbFdpZHRoKClcIlxuICAgICAgICBbdmlzaWJsZUNvbHVtbkluZGV4XT1cImNvbC52aXNpYmxlSW5kZXhcIlxuICAgICAgICBbdmFsdWVdPVwiZGF0YSB8IGRhdGFNYXBwZXI6Y29sLmZpZWxkOmdyaWQucGlwZVRyaWdnZXI6ZGF0YVtjb2wuZmllbGRdOmNvbC5oYXNOZXN0ZWRQYXRoXCJcbiAgICAgICAgW2NlbGxUZW1wbGF0ZV09XCJjb2wuYm9keVRlbXBsYXRlXCJcbiAgICAgICAgW2NlbGxWYWxpZGF0aW9uRXJyb3JUZW1wbGF0ZV09XCJjb2wuZXJyb3JUZW1wbGF0ZVwiXG4gICAgICAgIFtsYXN0U2VhcmNoSW5mb109XCJncmlkLmxhc3RTZWFyY2hJbmZvXCJcbiAgICAgICAgW2FjdGl2ZV09XCJpc0NlbGxBY3RpdmUoY29sLnZpc2libGVJbmRleClcIlxuICAgICAgICBbY2VsbFNlbGVjdGlvbk1vZGVdPVwiZ3JpZC5jZWxsU2VsZWN0aW9uXCJcbiAgICAgICAgW2Rpc3BsYXlQaW5uZWRDaGlwXT1cInNob3VsZERpc3BsYXlQaW5uZWRDaGlwKGNvbC52aXNpYmxlSW5kZXgpXCJcbiAgICAgICAgI2NlbGw+XG4gICAgPC9pZ3gtZXhwYW5kYWJsZS1ncmlkLWNlbGw+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21ybENlbGxUZW1wbGF0ZSBsZXQtY29sPlxuICAgIDxpZ3gtZ3JpZC1jZWxsXG4gICAgICAgIGNsYXNzPVwiaWd4LWdyaWRfX3RkIGlneC1ncmlkX190ZC0tZndcIlxuICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1lZGl0ZWRdPVwia2V5IHwgdHJhbnNhY3Rpb25TdGF0ZTpjb2wuZmllbGQ6Z3JpZC5yb3dFZGl0YWJsZTpncmlkLnRyYW5zYWN0aW9uczpncmlkLnBpcGVUcmlnZ2VyOmdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5jZWxsOmdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5yb3dcIlxuXG4gICAgICAgIFtjbGFzcy5pZ3gtZ3JpZF9fdGQtLXBpbm5lZF09XCJjb2wucGlubmVkXCJcbiAgICAgICAgW2NsYXNzLmlneC1ncmlkX190ZC0tbnVtYmVyXT1cImNvbC5kYXRhVHlwZSA9PT0gJ251bWJlcicgfHwgY29sLmRhdGFUeXBlID09PSAncGVyY2VudCcgfHwgY29sLmRhdGFUeXBlID09PSAnY3VycmVuY3knXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiY29sLmNlbGxDbGFzc2VzIHwgaWd4Q2VsbFN0eWxlQ2xhc3NlczpkYXRhW2NvbC5maWVsZF06ZGF0YTpjb2wuZmllbGQ6dmlld0luZGV4OmdyaWQucGlwZVRyaWdnZXJcIlxuICAgICAgICBbbmdTdHlsZV09XCJjb2wuY2VsbFN0eWxlcyB8IGlneENlbGxTdHlsZXM6ZGF0YVtjb2wuZmllbGRdOmRhdGE6Y29sLmZpZWxkOnZpZXdJbmRleDpncmlkLnBpcGVUcmlnZ2VyXCJcbiAgICAgICAgW2VkaXRNb2RlXT1cImNvbC5lZGl0YWJsZSAmJiB0aGlzLmdyaWQuY3J1ZFNlcnZpY2UudGFyZ2V0SW5FZGl0KGluZGV4LCBjb2wuaW5kZXgpXCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2xcIlxuICAgICAgICBbc3R5bGUuZ3JpZC1yb3ctZW5kXT1cImNvbC5yb3dFbmRcIlxuICAgICAgICBbc3R5bGUuZ3JpZC1jb2x1bW4tZW5kXT1cImNvbC5jb2xFbmRcIlxuICAgICAgICBbc3R5bGUuZ3JpZC1yb3ctc3RhcnRdPVwiY29sLnJvd1N0YXJ0XCJcbiAgICAgICAgW3N0eWxlLmdyaWQtY29sdW1uLXN0YXJ0XT1cImNvbC5jb2xTdGFydFwiXG4gICAgICAgIFtsYXN0UGlubmVkXT1cImNvbC5jb2x1bW5MYXlvdXRDaGlsZCA/IG51bGwgOiBjb2wuaXNMYXN0UGlubmVkXCJcbiAgICAgICAgW2ZpcnN0UGlubmVkXT1cImNvbC5jb2x1bW5MYXlvdXRDaGlsZCA/IG51bGwgOiBjb2wuaXNGaXJzdFBpbm5lZFwiXG4gICAgICAgIFtmb3JtYXR0ZXJdPVwiY29sLmZvcm1hdHRlclwiXG4gICAgICAgIFtpbnRSb3ddPVwidGhpc1wiXG4gICAgICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImNlbGxIZWlnaHRcIlxuICAgICAgICBbcm93RGF0YV09XCJkYXRhXCJcbiAgICAgICAgW3Zpc2libGVDb2x1bW5JbmRleF09XCJjb2wudmlzaWJsZUluZGV4XCJcbiAgICAgICAgW3ZhbHVlXT1cImRhdGEgfCBkYXRhTWFwcGVyOmNvbC5maWVsZDpncmlkLnBpcGVUcmlnZ2VyOmRhdGFbY29sLmZpZWxkXTpjb2wuaGFzTmVzdGVkUGF0aFwiXG4gICAgICAgIFtjZWxsVGVtcGxhdGVdPVwiY29sLmJvZHlUZW1wbGF0ZVwiXG4gICAgICAgIFtjZWxsVmFsaWRhdGlvbkVycm9yVGVtcGxhdGVdPVwiY29sLmVycm9yVGVtcGxhdGVcIlxuICAgICAgICBbbGFzdFNlYXJjaEluZm9dPVwiZ3JpZC5sYXN0U2VhcmNoSW5mb1wiXG4gICAgICAgIFthY3RpdmVdPVwiaXNDZWxsQWN0aXZlKGNvbC52aXNpYmxlSW5kZXgpXCJcbiAgICAgICAgW2NlbGxTZWxlY3Rpb25Nb2RlXT1cImdyaWQuY2VsbFNlbGVjdGlvblwiXG4gICAgICAgIFtkaXNwbGF5UGlubmVkQ2hpcF09XCJzaG91bGREaXNwbGF5UGlubmVkQ2hpcChjb2wudmlzaWJsZUluZGV4KVwiXG4gICAgICAgICNjZWxsPlxuICAgIDwvaWd4LWdyaWQtY2VsbD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbXJsRXhwYW5kYWJsZUNlbGxUZW1wbGF0ZSBsZXQtY29sPlxuICAgIDxpZ3gtZXhwYW5kYWJsZS1ncmlkLWNlbGxcbiAgICAgICAgY2xhc3M9XCJpZ3gtZ3JpZF9fdGQgaWd4LWdyaWRfX3RkLS1mdyBpZ3gtZ3JpZF9fdGQtLXRyZWUtY2VsbFwiXG4gICAgICAgIFtjbGFzcy5pZ3gtZ3JpZF9fdGQtLWVkaXRlZF09XCJrZXkgfCB0cmFuc2FjdGlvblN0YXRlOmNvbC5maWVsZDpncmlkLnJvd0VkaXRhYmxlOmdyaWQudHJhbnNhY3Rpb25zOmdyaWQucGlwZVRyaWdnZXI6Z3JpZC5ncmlkQVBJLmNydWRTZXJ2aWNlLmNlbGw6Z3JpZC5ncmlkQVBJLmNydWRTZXJ2aWNlLnJvd1wiXG5cbiAgICAgICAgW2NsYXNzLmlneC1ncmlkX190ZC0tcGlubmVkXT1cImNvbC5waW5uZWRcIlxuICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1udW1iZXJdPVwiKGNvbC5kYXRhVHlwZSA9PT0gJ251bWJlcicgfHwgY29sLmRhdGFUeXBlID09PSAncGVyY2VudCcgfHwgY29sLmRhdGFUeXBlID09PSAnY3VycmVuY3knKSAmJiBjb2wudmlzaWJsZUluZGV4ICE9PSAwXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiY29sLmNlbGxDbGFzc2VzIHwgaWd4Q2VsbFN0eWxlQ2xhc3NlczpkYXRhW2NvbC5maWVsZF06ZGF0YTpjb2wuZmllbGQ6dmlld0luZGV4OmdyaWQucGlwZVRyaWdnZXJcIlxuICAgICAgICBbbmdTdHlsZV09XCJjb2wuY2VsbFN0eWxlcyB8IGlneENlbGxTdHlsZXM6ZGF0YVtjb2wuZmllbGRdOmRhdGE6Y29sLmZpZWxkOnZpZXdJbmRleDpncmlkLnBpcGVUcmlnZ2VyXCJcbiAgICAgICAgW2V4cGFuZGVkXT1cImV4cGFuZGVkXCJcbiAgICAgICAgW2VkaXRNb2RlXT1cImNvbC5lZGl0YWJsZSAmJiB0aGlzLmdyaWQuY3J1ZFNlcnZpY2UudGFyZ2V0SW5FZGl0KGluZGV4LCBjb2wuaW5kZXgpXCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2xcIlxuICAgICAgICBbc3R5bGUuZ3JpZC1yb3ctZW5kXT1cImNvbC5yb3dFbmRcIlxuICAgICAgICBbc3R5bGUuZ3JpZC1jb2x1bW4tZW5kXT1cImNvbC5jb2xFbmRcIlxuICAgICAgICBbc3R5bGUuZ3JpZC1yb3ctc3RhcnRdPVwiY29sLnJvd1N0YXJ0XCJcbiAgICAgICAgW3N0eWxlLmdyaWQtY29sdW1uLXN0YXJ0XT1cImNvbC5jb2xTdGFydFwiXG4gICAgICAgIFtsYXN0UGlubmVkXT1cImNvbC5jb2x1bW5MYXlvdXRDaGlsZCA/IG51bGwgOiBjb2wuaXNMYXN0UGlubmVkXCJcbiAgICAgICAgW2Zvcm1hdHRlcl09XCJjb2wuZm9ybWF0dGVyXCJcbiAgICAgICAgW2ludFJvd109XCJ0aGlzXCJcbiAgICAgICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiY2VsbEhlaWdodFwiXG4gICAgICAgIFtyb3dEYXRhXT1cImRhdGFcIlxuICAgICAgICBbdmlzaWJsZUNvbHVtbkluZGV4XT1cImNvbC52aXNpYmxlSW5kZXhcIlxuICAgICAgICBbdmFsdWVdPVwiZGF0YSB8IGRhdGFNYXBwZXI6Y29sLmZpZWxkOmdyaWQucGlwZVRyaWdnZXI6ZGF0YVtjb2wuZmllbGRdOmNvbC5oYXNOZXN0ZWRQYXRoXCJcbiAgICAgICAgW2NlbGxUZW1wbGF0ZV09XCJjb2wuYm9keVRlbXBsYXRlXCJcbiAgICAgICAgW2NlbGxWYWxpZGF0aW9uRXJyb3JUZW1wbGF0ZV09XCJjb2wuZXJyb3JUZW1wbGF0ZVwiXG4gICAgICAgIFtsYXN0U2VhcmNoSW5mb109XCJncmlkLmxhc3RTZWFyY2hJbmZvXCJcbiAgICAgICAgW2FjdGl2ZV09XCJpc0NlbGxBY3RpdmUoY29sLnZpc2libGVJbmRleClcIlxuICAgICAgICBbY2VsbFNlbGVjdGlvbk1vZGVdPVwiZ3JpZC5jZWxsU2VsZWN0aW9uXCJcbiAgICAgICAgW2Rpc3BsYXlQaW5uZWRDaGlwXT1cInNob3VsZERpc3BsYXlQaW5uZWRDaGlwKGNvbC52aXNpYmxlSW5kZXgpXCJcbiAgICAgICAgI2NlbGw+XG4gICAgPC9pZ3gtZXhwYW5kYWJsZS1ncmlkLWNlbGw+XG48L25nLXRlbXBsYXRlPlxuIl19
|