ngrx-entity-crud 13.1.0 → 15.0.0-beta.5
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/esm2020/lib/models.mjs +1 -1
- package/esm2020/lib/reducer.mjs +48 -41
- package/fesm2015/ngrx-entity-crud.mjs +41 -46
- package/fesm2015/ngrx-entity-crud.mjs.map +1 -1
- package/fesm2020/ngrx-entity-crud.mjs +47 -40
- package/fesm2020/ngrx-entity-crud.mjs.map +1 -1
- package/lib/models.d.ts +1 -1
- package/lib/models.d.ts.map +1 -1
- package/lib/reducer.d.ts.map +1 -1
- package/package.json +11 -11
- package/schematics/ng-add/files/src/app/app.component.html +8 -0
- package/schematics/ng-add/files/{core → src/app/core}/directive/ng-let.directive.ts +0 -0
- package/schematics/ng-add/files/{core → src/app/core}/pipe/json-form.pipe.ts +0 -0
- package/schematics/ng-add/files/{core → src/app/core}/pipe/pipes.module.ts +0 -0
- package/schematics/ng-add/files/src/app/core/theme/components/footer.component.ts +42 -0
- package/schematics/ng-add/files/src/app/core/theme/components/header.component.ts +85 -0
- package/schematics/ng-add/files/src/app/core/theme/components/main.component.ts +61 -0
- package/schematics/ng-add/files/src/app/core/theme/components/menu-item.component.ts +89 -0
- package/schematics/ng-add/files/src/app/core/theme/components/progress.component.ts +34 -0
- package/schematics/ng-add/files/src/app/core/theme/components/slide-menu-pro.component.ts +186 -0
- package/schematics/ng-add/files/src/app/core/theme/components/slide-menu.component.ts +117 -0
- package/schematics/ng-add/files/src/app/core/theme/css/_variables.scss +18 -0
- package/schematics/ng-add/files/src/app/core/theme/model/slide-menu-item.ts +4 -0
- package/schematics/ng-add/files/src/app/core/theme/store/theme-ui-store/index.ts +11 -0
- package/schematics/ng-add/files/src/app/core/theme/store/theme-ui-store/operators.ts +24 -0
- package/schematics/ng-add/files/src/app/core/theme/store/theme-ui-store/theme-ui-store.actions.ts +18 -0
- package/schematics/ng-add/files/src/app/core/theme/store/theme-ui-store/theme-ui-store.effects.ts +10 -0
- package/schematics/ng-add/files/src/app/core/theme/store/theme-ui-store/theme-ui-store.module.ts +27 -0
- package/schematics/ng-add/files/src/app/core/theme/store/theme-ui-store/theme-ui-store.names.ts +3 -0
- package/schematics/ng-add/files/src/app/core/theme/store/theme-ui-store/theme-ui-store.reducer.ts +9 -0
- package/schematics/ng-add/files/src/app/core/theme/store/theme-ui-store/theme-ui-store.selectors.ts +52 -0
- package/schematics/ng-add/files/src/app/core/theme/store/theme-ui-store/theme-ui-store.state.ts +43 -0
- package/schematics/ng-add/files/src/app/core/theme/theme-jng.module.ts +47 -0
- package/schematics/ng-add/files/{core → src/app/core}/utils/j-utils.ts +0 -0
- package/schematics/ng-add/files/{main → src/app/main}/components/search/search.component.ts +0 -0
- package/schematics/ng-add/files/{main → src/app/main}/components/search/search.module.ts +0 -0
- package/schematics/ng-add/files/{root-store → src/app/root-store}/index.d.ts +0 -0
- package/schematics/ng-add/files/{root-store → src/app/root-store}/index.ts +0 -0
- package/schematics/ng-add/files/{root-store → src/app/root-store}/root-reducer.ts +0 -0
- package/schematics/ng-add/files/{root-store → src/app/root-store}/root-store.module.ts +0 -0
- package/schematics/ng-add/files/{root-store → src/app/root-store}/router-store/actions.ts +0 -0
- package/schematics/ng-add/files/{root-store → src/app/root-store}/router-store/effects.ts +0 -0
- package/schematics/ng-add/files/{root-store → src/app/root-store}/router-store/index.d.ts +0 -0
- package/schematics/ng-add/files/{root-store → src/app/root-store}/router-store/index.ts +0 -0
- package/schematics/ng-add/files/{root-store → src/app/root-store}/router-store/pop-up-base.component.ts +0 -0
- package/schematics/ng-add/files/{root-store → src/app/root-store}/router-store/pop-up-base.module.ts +0 -0
- package/schematics/ng-add/files/{root-store → src/app/root-store}/router-store/reducer.ts +0 -0
- package/schematics/ng-add/files/{root-store → src/app/root-store}/router-store/router-store.module.ts +0 -0
- package/schematics/ng-add/files/{root-store → src/app/root-store}/router-store/selectors.ts +0 -0
- package/schematics/ng-add/files/{root-store → src/app/root-store}/router-store/state.ts +0 -0
- package/schematics/ng-add/files/{root-store → src/app/root-store}/selectors.ts +0 -0
- package/schematics/ng-add/files/{root-store → src/app/root-store}/state.ts +0 -0
- package/schematics/ng-add/files/src/styles.scss +24 -0
- package/schematics/ng-add/index.js +11 -1
- package/schematics/ng-add/index.js.map +1 -1
package/esm2020/lib/models.mjs
CHANGED
|
@@ -14,4 +14,4 @@ export var ActionEnum;
|
|
|
14
14
|
ActionEnum["FAILURE"] = "Failure";
|
|
15
15
|
ActionEnum["SUCCESS"] = "Success";
|
|
16
16
|
})(ActionEnum || (ActionEnum = {}));
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdyeC1lbnRpdHktY3J1ZC9zcmMvbGliL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3REEsTUFBTSxDQUFOLElBQVksUUFPWDtBQVBELFdBQVksUUFBUTtJQUNsQiw2QkFBaUIsQ0FBQTtJQUNqQiw2QkFBaUIsQ0FBQTtJQUNqQiw2QkFBaUIsQ0FBQTtJQUNqQix5QkFBYSxDQUFBO0lBQ2IsNkJBQWlCLENBQUE7SUFDakIsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBUFcsUUFBUSxLQUFSLFFBQVEsUUFPbkI7QUFFRCxNQUFNLENBQU4sSUFBWSxVQUtYO0FBTEQsV0FBWSxVQUFVO0lBQ3BCLG1DQUFxQixDQUFBO0lBQ3JCLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxVQUFVLEtBQVYsVUFBVSxRQUtyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RW50aXR5QWRhcHRlciwgRW50aXR5U3RhdGV9IGZyb20gJ0BuZ3J4L2VudGl0eSc7XG5pbXBvcnQge0FjdGlvbiwgQWN0aW9uQ3JlYXRvciwgTWVtb2l6ZWRTZWxlY3Rvcn0gZnJvbSAnQG5ncngvc3RvcmUnO1xuXG4vLyBDT1BJQVRPIERBIEBuZ3J4L3N0b3JlL3NyYy9tb2RlbHNcbi8vIHNlIHZpZW5lIGltcG9ydGF0byBkYSBAbmdyeC9zdG9yZS9zcmMvbW9kZWxzLCBkYSBlcnJvcmkgbmVpIHByb2dldHRpIGRvdmUgdmllbmUgdXRpbGl6emF0by5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUeXBlZEFjdGlvbjxUIGV4dGVuZHMgc3RyaW5nPiBleHRlbmRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHR5cGU6IFQ7XG59XG5cbi8vIENPUElBVE8gREEgQG5ncngvc3RvcmUvc3JjL21vZGVsc1xuLy8gc2UgdmllbmUgaW1wb3J0YXRvIGRhIEBuZ3J4L2VudGl0eS9zcmMvbW9kZWxzLCBkYSBlcnJvcmkgbmVpIHByb2dldHRpIGRvdmUgdmllbmUgdXRpbGl6emF0by5cbmV4cG9ydCBpbnRlcmZhY2UgRGljdGlvbmFyeU51bTxUPiB7XG4gIFtpZDogbnVtYmVyXTogVCB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgRGljdGlvbmFyeTxUPiBpbXBsZW1lbnRzIERpY3Rpb25hcnlOdW08VD4ge1xuICBbaWQ6IHN0cmluZ106IFQgfCB1bmRlZmluZWQ7XG59XG5cbi8vIENPUElBVE8gREEgQG5ncngvc3RvcmUvc3JjL21vZGVsc1xuLy8gc2UgdmllbmUgaW1wb3J0YXRvIGRhIEBuZ3J4L2VudGl0eS9zcmMvbW9kZWxzLCBkYSBlcnJvcmkgbmVpIHByb2dldHRpIGRvdmUgdmllbmUgdXRpbGl6emF0by5cbmV4cG9ydCB0eXBlIElkU2VsZWN0b3JTdHI8VD4gPSAobW9kZWw6IFQpID0+IHN0cmluZztcbmV4cG9ydCB0eXBlIElkU2VsZWN0b3JOdW08VD4gPSAobW9kZWw6IFQpID0+IG51bWJlcjtcbi8vIENPUElBVE8gREEgQG5ncngvc3RvcmUvc3JjL21vZGVsc1xuLy8gc2UgdmllbmUgaW1wb3J0YXRvIGRhIEBuZ3J4L2VudGl0eS9zcmMvbW9kZWxzLCBkYSBlcnJvcmkgbmVpIHByb2dldHRpIGRvdmUgdmllbmUgdXRpbGl6emF0by5cbmV4cG9ydCB0eXBlIElkU2VsZWN0b3I8VD4gPSBJZFNlbGVjdG9yU3RyPFQ+IHwgSWRTZWxlY3Rvck51bTxUPjtcblxuLy8gcGVyIGV2aXRhcmUgbCdpbXBvcnRhemlvbmVcbi8vIGltcG9ydCB7Q29tcGFyZXIsIEVudGl0eUFkYXB0ZXIsIElkU2VsZWN0b3J9IGZyb20gJ0BuZ3J4L2VudGl0eS9zcmMvbW9kZWxzJztcbi8vIGhvIGNvcGlhdG8gaSBzZWd1ZW50aSB0eXBlXG5leHBvcnQgZGVjbGFyZSB0eXBlIENvbXBhcmVyU3RyPFQ+ID0gKGE6IFQsIGI6IFQpID0+IHN0cmluZztcbmV4cG9ydCBkZWNsYXJlIHR5cGUgQ29tcGFyZXI8VD4gPSAoYTogVCwgYjogVCkgPT4gbnVtYmVyO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVNlbGVjdG9yczxULCBWPiB7XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IGEgZ3JvdXAgb2YgaWRzXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IHN0cmluZ1tdIHwgbnVtYmVyW11cbiAgICovXG4gIHNlbGVjdElkczogKHN0YXRlOiBWKSA9PiBzdHJpbmdbXSB8IG51bWJlcltdO1xuICAvKipcbiAgICogLSB1c2VkIHRvIHNlbGVjdCBhIGdyb3VwIG9mIGVudGl0aWVzXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IERpY3Rpb25hcnk8VD5cbiAgICovXG4gIHNlbGVjdEVudGl0aWVzOiAoc3RhdGU6IFYpID0+IERpY3Rpb25hcnk8VD47XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IGFsbCBpdGVtc1xuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiBUW11cbiAgICovXG4gIHNlbGVjdEFsbDogKHN0YXRlOiBWKSA9PiBUW107XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IHRoZSBzdW0gb2YgaXRlbXNcbiAgICogQHBhcmFtIChzdGF0ZTogVikgPT4gbnVtYmVyXG4gICAqL1xuICBzZWxlY3RUb3RhbDogKHN0YXRlOiBWKSA9PiBudW1iZXI7XG59XG5cbmV4cG9ydCBlbnVtIENydWRFbnVtIHtcbiAgU0VBUkNIID0gJ1NlYXJjaCcsXG4gIERFTEVURSA9ICdEZWxldGUnLFxuICBDUkVBVEUgPSAnQ3JlYXRlJyxcbiAgRURJVCA9ICdFZGl0JyxcbiAgU0VMRUNUID0gJ1NlbGVjdCcsXG4gIFJFU0VUID0gJ1Jlc2V0Jyxcbn1cblxuZXhwb3J0IGVudW0gQWN0aW9uRW51bSB7XG4gIFJFU1BPTlNFID0gJ1Jlc3BvbnNlJyxcbiAgUkVRVUVTVCA9ICdSZXF1ZXN0JyxcbiAgRkFJTFVSRSA9ICdGYWlsdXJlJyxcbiAgU1VDQ0VTUyA9ICdTdWNjZXNzJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcHRSZXF1ZXN0QmFzZSB7XG4gIC8qKlxuICAgKiBpcyBhZGRlZCB0byB0aGUgc2VydmljZSByb3V0ZSxcbiAgICogaW4gc29tZSBjYXNlcyBpdCBpcyBuZWNlc3NhcnkgdG8gaW52b2tlIGEgc3ViLXJvdXRlLlxuICAgKiBpZiB0aGUgc2VydmljZSB3YXMgXCJ1c2VyXCIgYW5kIHRoZSBzdWItcm91dGUgXCJ1c2VyL2FjY2VwdFwiOlxuICAgKiBwYXRoOltcImFjY2VwdFwiXVxuICAgKi9cbiAgcGF0aD86IGFueVtdO1xuICAvKipcbiAgICogRGlzcGF0Y2hlZCBhY3Rpb25zIGluIGNhc2Ugb2YgZXJyb3IuXG4gICAqL1xuICBvbkZhdWx0PzogQWN0aW9uW107XG4gIC8qKlxuICAgKiBEaXNwYXRjaGVkIGFjdGlvbnMgaW4gdGhlIGV2ZW50IG9mIGEgcG9zaXRpdmUgcmVzcG9uc2VcbiAgICovXG4gIG9uUmVzdWx0PzogQWN0aW9uW107XG5cbiAgLyoqXG4gICAqIHNlIHRydWUsIGFsIGNvbXBsZXRhbWVudG8gZGVsbGEgY2hpYW1hdGEgYXNpbmNyb25hLCB2ZXJyw6AgaW52aWF0YSB1bidhemlvbmUgZGkgdGlwbyBSZXNwb25zZSxcbiAgICogY29udGVuZW50ZSBsZSBpbmZvcm1hemlvbmkgc3VsbGEgY2hpYW1hdGEgZSBsYSByaXNwb3N0YS5cbiAgICogSW4gcXVlc3RvIG1vZG8gc2Fyw6AgcG9zc2liaWxlIGFuYWxpenphcmUgbCdhbmRhbWVudG9cbiAgICovXG4gIGRpc3BhdGNoUmVzcG9uc2U/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIC0gY3JpdGVyaWE6IElDcml0ZXJpYTogY3JpdGVyaWEgZGkgcmljZXJjYVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDcml0ZXJpYTxRUCA9IGFueT4gZXh0ZW5kcyBPcHRSZXF1ZXN0QmFzZSB7XG4gIC8qKlxuICAgKlxuICAgKiBcIlJFRlJFU0hcIiB0aGUgc3RvcmUgd2lsbCBiZSBkZWxldGVkIGJlZm9yZSBtYWtpbmcgdGhlIHJlbW90ZSBjYWxsLCBhbGwgdGhlIGVsZW1lbnRzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGNhbGwgcmVzdWx0LlxuICAgKlxuICAgKi9cbiAgbW9kZT86ICdSRUZSRVNIJyB8ICd1cHNlcnRNYW55JyB8ICdhZGRBbGwnO1xuXG4gIHF1ZXJ5UGFyYW1zPzogUVA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3B0UmVxdWVzdDxUID0gYW55PiBleHRlbmRzIE9wdFJlcXVlc3RCYXNlIHtcbiAgbXV0YXRpb25QYXJhbXM6IFQ7XG4gIC8qKlxuICAgKiBvcHRpb25zIG9wdGlvbmFsXG4gICAqL1xuICBvcHRpb25zPzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wdFJlc3BvbnNlPFQ+IHtcbiAgYWN0aW9uVHlwZTogc3RyaW5nO1xuICByZXNwb25zZTogUmVzcG9uc2U8VD47XG4gIHJlcXVlc3Q6IElDcml0ZXJpYSB8IE9wdFJlcXVlc3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3B0RWZmZWN0IHtcbiAgLyoqXG4gICAqIHBlciBvZ25pIHN0cmluZ2EgcHJlc2VudGUgbmVsbCdhdHRyaWJ1dG8sIHZlcnLDoCBzcGVkaXRhIHVuYSBub3RpZmljYSBSZXNwb25zZS5cbiAgICogaW4gcXVlc3RvIG1vZG8sIGNoaSBpbnZpYSBsYSBub3RpZmljYSBwb3Ryw6AgcG9pIGZpbHRyYXJlIGkgZGF0aSBpbiBiYXNlIGFsbGEgY2hpYXZlIGludmlhdGEuXG4gICAqL1xuICBkaXNwYXRjaFJlc3BvbnNlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNwb25zZTxUPiB7XG4gIGRhdGE6IFQgfCBhbnk7XG4gIGhhc0Vycm9yOiBib29sZWFuO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyTWV0YWRhdGEge1xuICB2YWx1ZT86IGFueTtcbiAgbWF0Y2hNb2RlPzogc3RyaW5nO1xuICByZW5kZXJGdW5jdGlvbj86ICh2YWx1ZTogYW55KSA9PiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3J1ZEJhc2VTdGF0ZTxUPiB7XG4gIGVycm9yOiBzdHJpbmc7XG4gIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgaXNMb2FkZWQ6IGJvb2xlYW47XG4gIGxhc3RDcml0ZXJpYTogSUNyaXRlcmlhO1xuICByZXNwb25zZXM6IE9wdFJlc3BvbnNlPFQ+W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2luZ2xlQ3J1ZFN0YXRlPFQ+IGV4dGVuZHMgQ3J1ZEJhc2VTdGF0ZTxUPiB7XG4gIGl0ZW06IFRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcnVkU3RhdGU8VD4gZXh0ZW5kcyBDcnVkQmFzZVN0YXRlPFQ+LCBFbnRpdHlTdGF0ZTxUPiB7XG4gIGZpbHRlcnM6IHsgW3M6IHN0cmluZ106IEZpbHRlck1ldGFkYXRhOyB9O1xuICBpZHNTZWxlY3RlZDogc3RyaW5nW10gfCBudW1iZXJbXTtcbiAgaXRlbVNlbGVjdGVkOiBUO1xuICBpZFNlbGVjdGVkOiBzdHJpbmcgfCBudW1iZXI7XG4gIGVudGl0aWVzU2VsZWN0ZWQ6IERpY3Rpb25hcnk8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5Q3J1ZEJhc2VTZWxlY3RvcnM8VCwgVj4ge1xuXG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IGxhc3QgY3JpdGVyaWFcbiAgICogQHBhcmFtIChzdGF0ZTogVikgPT4gSUNyaXRlcmlhXG4gICAqL1xuICBzZWxlY3RMYXN0Q3JpdGVyaWE6IChzdGF0ZTogVikgPT4gSUNyaXRlcmlhO1xuICAvKipcbiAgICogLSB1c2VkIHRvIHNlbGVjdCBhbiBlcnJvclxuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiBzdHJpbmdcbiAgICovXG4gIHNlbGVjdEVycm9yOiAoc3RhdGU6IFYpID0+IHN0cmluZztcbiAgLyoqXG4gICAqIC0gcmV0dXJucyB0cnVlIGlmIHRoZXJlIGFyZSBjYWxscyBpbiBwcm9ncmVzc1xuICAgKiBAQHBhcmFtIChzdGF0ZTogVikgPT4gYm9vbGVhblxuICAgKi9cbiAgc2VsZWN0SXNMb2FkaW5nOiAoc3RhdGU6IFYpID0+IGJvb2xlYW47XG4gIC8qKlxuICAgKiAtIHJldHVybnMgdHJ1ZSBpZiBhbGwgY2FsbHMgYXJlIGNvbXBsZXRlZFxuICAgKiBAQHBhcmFtIChzdGF0ZTogVikgPT4gYm9vbGVhblxuICAgKi9cbiAgc2VsZWN0SXNMb2FkZWQ6IChzdGF0ZTogVikgPT4gYm9vbGVhbjtcbiAgLyoqXG4gICAqIC0gdXNlZCB0byBzZWxlY3QgcmVzcG9uc2UgdmFyaWFibGUgY29udGFpbmVkIGluIHRoZSBmb3JtdWxhXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IE9wdFJlc3BvbnNlPFQ+W11cbiAgICovXG4gIHNlbGVjdFJlc3BvbnNlczogKHN0YXRlOiBWKSA9PiBPcHRSZXNwb25zZTxUPltdO1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U2luZ2xlQ3J1ZFNlbGVjdG9yczxULCBWPiBleHRlbmRzIEVudGl0eUNydWRCYXNlU2VsZWN0b3JzPFQsIFY+IHtcbiAgc2VsZWN0SXRlbTogKHN0YXRlOiBWKSA9PiBUO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUNydWRTZWxlY3RvcnM8VCwgVj4gZXh0ZW5kcyBFbnRpdHlDcnVkQmFzZVNlbGVjdG9yczxULCBWPiwgRW50aXR5U2VsZWN0b3JzPFQsIFY+IHtcbiAgLyoqXG4gICAqIC0gdXNlZCB0byBzZWxlY3Qgc2VsZWN0ZWQgaWRcbiAgICogLSBwb3B1bGF0ZWQgd2l0aCBhY3Rpb24gXCIuLi5TZWxlY3RlZEl0ZW0oe2l0ZW19KVwiLFxuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiBzdHJpbmcgfCBudW1iZXJcbiAgICovXG4gIHNlbGVjdElkU2VsZWN0ZWQ6IChzdGF0ZTogVikgPT4gc3RyaW5nIHwgbnVtYmVyO1xuICAvKipcbiAgICogLSB1c2VkIHRvIHNlbGVjdCBzZWxlY3RlZCBpZHNcbiAgICogLSBwb3B1bGF0ZWQgd2l0aCBhY3Rpb24gXCIuLi5TZWxlY3RlZEl0ZW1zKHtpdGVtfSlcIixcbiAgICogQHBhcmFtIChzdGF0ZTogVikgPT4gc3RyaW5nW10gfCBudW1iZXJbXVxuICAgKi9cbiAgc2VsZWN0SWRzU2VsZWN0ZWQ6IChzdGF0ZTogVikgPT4gc3RyaW5nW10gfCBudW1iZXJbXTtcbiAgLyoqXG4gICAqIC0gdXNlZCB0byBzZWxlY3Qgc2VsZWN0ZWRJdGVtXG4gICAqIC0gcG9wdWxhdGVkIHdpdGggYWN0aW9uIFwiLi4uU2VsZWN0ZWRJdGVtcyh7aXRlbX0pXCIsXG4gICAqIC0gbG9jYWwgY2xvbmUsIGRvZXMgbm90IG1hdGNoIHRoZSBpbnN0YW5jZSBpbiB0aGUgc3RvcmVcbiAgICogQHBhcmFtIChzdGF0ZTogVikgPT4gVFxuICAgKi9cbiAgc2VsZWN0SXRlbVNlbGVjdGVkOiAoc3RhdGU6IFYpID0+IFQ7XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IHNlbGVjdGVkIGl0ZW1cbiAgICogLSBwb3B1bGF0ZWQgd2l0aCBhY3Rpb24gXCIuLi5TZWxlY3RlZEl0ZW1zKHtpdGVtOntpZDpzdHJpbmcgLi4ufX0pXCIsXG4gICAqIC0gc2FtZSBpbnN0YW5jZSBvZiB0aGUgc3RvcmUgKHN0YXRlLmVudGl0aWVzKVxuICAgKiAtIHRoZSBzZWxlY3RvciBpcyBjcmVhdGVkIHdpdGg6XG4gICAqICAgIC0gc2VsZWN0SWRTZWxlY3RlZCArIHNlbGVjdEVudGl0aWVzLFxuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiBUXG4gICAqL1xuICBzZWxlY3RJdGVtU2VsZWN0ZWRPcmlnaW46IChzdGF0ZTogVikgPT4gVDtcbiAgLyoqXG4gICAqIC0gdXNlZCB0byBzZWxlY3QgYSBncm91cCBvZiBzZWxlY3RlZCBpdGVtc1xuICAgKiAtIHBvcHVsYXRlZCB3aXRoIGFjdGlvbiBcIi4uLlNlbGVjdGVkSXRlbXMoe2l0ZW19KVwiLFxuICAgKiAtIGxvY2FsIGNsb25lLCBkb2VzIG5vdCBtYXRjaCB0aGUgaW5zdGFuY2UgaW4gdGhlIHN0b3JlXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IFRbXVxuICAgKi9cbiAgc2VsZWN0SXRlbXNTZWxlY3RlZDogKHN0YXRlOiBWKSA9PiBUW107XG5cbiAgLyoqXG4gICAqIC0gdXNlZCB0byBzZWxlY3QgYSBncm91cCBvZiBzZWxlY3RlZCBlbnRpdGllc1xuICAgKiAtIHBvcHVsYXRlZCB3aXRoIGFjdGlvbiBcIi4uLlNlbGVjdGVkSXRlbXMoe2l0ZW19KVwiLFxuICAgKiAtIGxvY2FsIGNsb25lLCBkb2VzIG5vdCBtYXRjaCB0aGUgaW5zdGFuY2UgaW4gdGhlIHN0b3JlXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IERpY3Rpb25hcnk8VD5cbiAgICovXG4gIHNlbGVjdEVudGl0aWVzU2VsZWN0ZWQ6IChzdGF0ZTogVikgPT4gRGljdGlvbmFyeTxUPjtcbiAgLyoqXG4gICAqIC0gdXNlZCB0byBzZWxlY3QgYSBncm91cCBvZiBzZWxlY3RlZCBpdGVtc1xuICAgKiAtIHBvcHVsYXRlZCB3aXRoIGFjdGlvbiBcIi4uLlNlbGVjdGVkSXRlbXMoe2l0ZW19KVwiLFxuICAgKiAtIHNhbWUgaW5zdGFuY2Ugb2YgdGhlIHN0b3JlIChzdGF0ZS5lbnRpdGllcylcbiAgICogICAgLSBzZWxlY3RJZHNTZWxlY3RlZCArIHNlbGVjdEVudGl0aWVzLFxuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiBUW11cbiAgICovXG4gIHNlbGVjdEl0ZW1zU2VsZWN0ZWRPcmlnaW46IChzdGF0ZTogVikgPT4gVFtdO1xuICAvKipcbiAgICogLSB1c2VkIHRvIHNlbGVjdCBmaWx0ZXJzXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IHtbczogc3RyaW5nXTogRmlsdGVyTWV0YWRhdGE7fVxuICAgKi9cbiAgc2VsZWN0RmlsdGVyczogKHN0YXRlOiBWKSA9PiB7IFtzOiBzdHJpbmddOiBGaWx0ZXJNZXRhZGF0YTsgfTtcbiAgLyoqXG4gICAqIC0gdXNlZCB0byBzZWxlY3QgZmlsdGVyZWQgaXRlbXNcbiAgICogQHBhcmFtIE1lbW9pemVkU2VsZWN0b3I8ViwgVFtdPlxuICAgKi9cbiAgc2VsZWN0RmlsdGVyZWRJdGVtczogTWVtb2l6ZWRTZWxlY3RvcjxWLCBUW10+O1xuXG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlDcnVkQmFzZVN0YXRlPFQ+IHtcbiAgZXJyb3I6IHN0cmluZztcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBpc0xvYWRlZDogYm9vbGVhbjtcbiAgbGFzdENyaXRlcmlhOiBJQ3JpdGVyaWE7XG4gIC8vIG9nbmkgZW50aXTDoCByZWdpc3RyYSBsJ2F6aW9uZSBzY2F0ZW5hdGEgZSBsYSByaXNwb3N0YSBkYWwgc2VydmVyLlxuICByZXNwb25zZXM6IE9wdFJlc3BvbnNlPFQ+W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U2luZ2xlQ3J1ZFN0YXRlPFQ+IGV4dGVuZHMgRW50aXR5Q3J1ZEJhc2VTdGF0ZTxUPiB7XG4gIGl0ZW06IFRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlDcnVkU3RhdGU8VD4gZXh0ZW5kcyBFbnRpdHlDcnVkQmFzZVN0YXRlPFQ+LCBFbnRpdHlTdGF0ZTxUPiB7XG4gIGZpbHRlcnM6IHsgW3M6IHN0cmluZ106IEZpbHRlck1ldGFkYXRhOyB9O1xuICBpdGVtU2VsZWN0ZWQ6IFQ7XG4gIGlkU2VsZWN0ZWQ6IHN0cmluZyB8IG51bWJlcjtcblxuICBlbnRpdGllc1NlbGVjdGVkOiBEaWN0aW9uYXJ5PFQ+O1xuXG4gIGlkc1NlbGVjdGVkOiBzdHJpbmdbXSB8IG51bWJlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUNydWRBZGFwdGVyPFQ+IGV4dGVuZHMgRW50aXR5QWRhcHRlcjxUPiB7XG4gIGdldEluaXRpYWxDcnVkU3RhdGUoKTogRW50aXR5Q3J1ZFN0YXRlPFQ+O1xuXG4gIGdldEluaXRpYWxDcnVkU3RhdGU8UyBleHRlbmRzIG9iamVjdD4oc3RhdGU6IFMpOiBFbnRpdHlDcnVkU3RhdGU8VD4gJiBTO1xuXG4gIGdldENydWRTZWxlY3RvcnM8Vj4oc2VsZWN0U3RhdGU6IChzdGF0ZTogVikgPT4gRW50aXR5Q3J1ZFN0YXRlPFQ+KTogRW50aXR5Q3J1ZFNlbGVjdG9yczxULCBWPjtcblxuICBjcmVhdGVDcnVkQWN0aW9ucyhuYW1lOiBzdHJpbmcpOiBBY3Rpb25zPFQ+O1xuXG4gIC8vIHRvZG8gbW9kaWZpY2FyZSBsYSBmaXJtYSBkZWwgbWV0b2RvLCB0aXBpenphcmUgQWN0aW9uczxhbnk+XG4gIGNyZWF0ZUNydWRSZWR1Y2VyPFM+KGluaXRpYWxTdGF0ZTogUywgYWN0aW9uczogQWN0aW9uczxhbnk+KTtcbn1cblxuaW50ZXJmYWNlIFByb3BzU2VhcmNoU3VjY2VzczxUPiB7XG4gIGl0ZW1zOiBUO1xuICByZXF1ZXN0OiBJQ3JpdGVyaWE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2luZ3VsYXJBY3Rpb25zPFQ+IHtcbiAgLy8gYXppb25lIGRpc3BhY2NpYXRhIGRhbGwnZWZmZWN0IHNlOlxuICAvLyBPcHRSZXF1ZXN0QmFzZS5kaXNwYXRjaFJlc3BvbnNlID09PSB0cnVlXG4gIC8vIE9wdEVmZmVjdC5kaXNwYXRjaFJlc3BvbnNlID09PSB0cnVlXG4gIFJlc3BvbnNlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiBPcHRSZXNwb25zZTxUIHwgVFtdPikgPT4gT3B0UmVzcG9uc2U8VCB8IFRbXT4gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgUmVzZXRSZXNwb25zZXM6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAoKSA9PiB7IHR5cGU6IHN0cmluZzsgfT47XG5cbiAgLyoqXG4gICAqICAtIGFjdGlvbiB1c2VkIHRvIGV4ZWN1dGUgYSByZXF1ZXN0IHRvIHNlbGVjdCBhbiBpdGVtXG4gICAqIEBleGFtcGxlIHN0b3JlLmRpc3BhdGNoKGFjdGlvbnMuU2VsZWN0UmVxdWVzdChwYXlsb2FkKSk7XG4gICAqIEBwYXJhbSBpdGVtOiBUXG4gICAqIEBwYXJhbSBwYXRoPzogYW55W11cbiAgICogQHBhcmFtIG9uRmF1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gb25SZXN1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gZGlzcGF0Y2hSZXNwb25zZT86IGJvb2xlYW5cbiAgICovXG4gIFNlbGVjdFJlcXVlc3Q6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IElDcml0ZXJpYSkgPT4gSUNyaXRlcmlhICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIFNlbGVjdEZhaWx1cmU6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgZXJyb3I6IHN0cmluZzsgfSkgPT4geyBlcnJvcjogc3RyaW5nOyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIFNlbGVjdFN1Y2Nlc3M6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgaXRlbTogVCwgcmVxdWVzdDogT3B0UmVxdWVzdCB9KSA9PiB7IGl0ZW06IFQsIHJlcXVlc3Q6IE9wdFJlcXVlc3QgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuXG5cbiAgLyoqXG4gICAqICAtIGFjdGlvbiB1c2VkIHRvIGV4ZWN1dGUgYSByZXF1ZXN0IHRvIG1vZGlmeSBhbiBpdGVtXG4gICAqIEBleGFtcGxlIHN0b3JlLmRpc3BhdGNoKGFjdGlvbnMuRWRpdFJlcXVlc3QocGF5bG9hZCkpO1xuICAgKiBAcGFyYW0gaXRlbTogVFxuICAgKiBAcGFyYW0gcGF0aD86IGFueVtdXG4gICAqIEBwYXJhbSBvbkZhdWx0PzogQWN0aW9uW11cbiAgICogQHBhcmFtIG9uUmVzdWx0PzogQWN0aW9uW11cbiAgICogQHBhcmFtIGRpc3BhdGNoUmVzcG9uc2U/OiBib29sZWFuXG4gICAqL1xuICBFZGl0UmVxdWVzdDogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogT3B0UmVxdWVzdCkgPT4gT3B0UmVxdWVzdCAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBFZGl0RmFpbHVyZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBlcnJvcjogc3RyaW5nOyB9KSA9PiB7IGVycm9yOiBzdHJpbmc7IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgRWRpdFN1Y2Nlc3M6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgaXRlbTogVCwgcmVxdWVzdDogT3B0UmVxdWVzdCB9KSA9PiB7IGl0ZW06IFQsIHJlcXVlc3Q6IE9wdFJlcXVlc3QgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuXG4gIC8qKlxuICAgKiAtIGFjdGlvbiB1c2VkIHRvIGV4ZWN1dGUgYSBzdG9yZSByZXNldFxuICAgKiBAZXhhbXBsZSBzdG9yZS5kaXNwYXRjaChhY3Rpb25zLlJlc2V0KCkpO1xuICAgKiBAcGFyYW0gdHlwZTogc3RyaW5nXG4gICAqL1xuICBSZXNldDogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsICgpID0+IHsgdHlwZTogc3RyaW5nOyB9PjtcblxuICAvKipcbiAgICogLSBhY3Rpb24gdXNlZCB0byBtb2RpZnkgYW4gaXRlbSBvbiB0aGUgc3RvcmVcbiAgICogQGV4YW1wbGUgc3RvcmUuZGlzcGF0Y2goYWN0aW9ucy5FZGl0KHBheWxvYWQpKTtcbiAgICogQHBhcmFtIGl0ZW06IFRcbiAgICovXG4gIEVkaXQ6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgaXRlbTogVDsgfSkgPT4geyBpdGVtOiBUOyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uczxUPiBleHRlbmRzIFNpbmd1bGFyQWN0aW9uczxUPiB7XG5cbiAgLyoqXG4gICAqIC0gYWN0aW9uIHVzZWQgdG8gZXhlY3V0ZSBhc3luY2hyb25vdXMgcmVzZWFyY2hlc1xuICAgKiBAZXhhbXBsZSBTdG9yZUFjdGlvbnMuU2VhcmNoUmVxdWVzdCh7cXVlcnlQYXJhbXM6IHt9fSlcbiAgICogLSBtb2RlPzogJ1JFRlJFU0gnOiBzZSB2aWVuZSBwYXNzYXRvIGlsIHZhbG9yZSBSRUZSRVNILCBpbCBkYXRvIHByZXNlbnRlIG5lbGxvIHN0b3JlIHZpZW5lIGNhbmNlbGxhdG8gcHJpbWEgZGkgZXNlZ3VpcmUgbGEgY2hpYW1hdGEsXG4gICAqICAgICAgICBhbHRyaW1lbnRpIGlsIGRhdG8gdmVycsOgIHNvc3RpdHVpdG8gYWwgcmVzdWx0IGRlbGxhIGNoaWFtYXRhXG4gICAqIEBwYXJhbSBtb2RlPzogJ1JFRlJFU0gnIHwgJ3Vwc2VydE1hbnknIHwgJ2FkZEFsbCdcbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zPzogYW55XG4gICAqIEBwYXJhbSBwYXRoPzogYW55W11cbiAgICogQHBhcmFtIG9uRmF1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gb25SZXN1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gZGlzcGF0Y2hSZXNwb25zZT86IGJvb2xlYW5cbiAgICogQHBhcmFtIHR5cGU6IHN0cmluZ1xuICAgKlxuICAgKi9cbiAgU2VhcmNoUmVxdWVzdDogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogSUNyaXRlcmlhKSA9PiBJQ3JpdGVyaWEgJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgU2VhcmNoRmFpbHVyZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBlcnJvcjogc3RyaW5nOyB9KSA9PiB7IGVycm9yOiBzdHJpbmc7IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgU2VhcmNoU3VjY2VzczogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBpdGVtczogVFtdLCByZXF1ZXN0OiBJQ3JpdGVyaWEgfSkgPT4geyBpdGVtczogVFtdLCByZXF1ZXN0OiBJQ3JpdGVyaWEgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuXG4gIC8qKlxuICAgKiAtIGFjdGlvbiB1c2VkIHRvIGV4ZWN1dGUgYSByZXF1ZXN0IHRvIHJlbW92ZSBhbiBpdGVtXG4gICAqIEBleGFtcGxlIGNvbnN0IHRvU3RhdGU6IFN0YXRlID0gZmVhdHVyZVJlZHVjZXIoc3RhdGUsIGFjdGlvbnMuRGVsZXRlUmVxdWVzdChwYXlsb2FkKSk7XG4gICAqIEBwYXJhbSBpdGVtOiBUXG4gICAqIEBwYXJhbSBwYXRoPzogYW55W11cbiAgICogQHBhcmFtIG9uRmF1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gb25SZXN1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gZGlzcGF0Y2hSZXNwb25zZT86IGJvb2xlYW5cbiAgICovXG4gIERlbGV0ZVJlcXVlc3Q6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IE9wdFJlcXVlc3QpID0+IE9wdFJlcXVlc3QgJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgRGVsZXRlRmFpbHVyZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBlcnJvcjogc3RyaW5nOyB9KSA9PiB7IGVycm9yOiBzdHJpbmc7IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgRGVsZXRlU3VjY2VzczogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBpZDogc3RyaW5nLCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0pID0+IHsgaWQ6IHN0cmluZywgcmVxdWVzdDogT3B0UmVxdWVzdCB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG5cbiAgLyoqXG4gICAqIC0gYWN0aW9uIHVzZWQgdG8gZXhlY3V0ZSBhIHJlcXVlc3QgdG8gcmVtb3ZlIG1vcmUgaXRlbXNcbiAgICogQGV4YW1wbGUgdGhpcy5zdG9yZSQuZGlzcGF0Y2goPCU9IGNsYXp6ICU+U3RvcmVBY3Rpb25zLkRlbGV0ZU1hbnlSZXF1ZXN0KHtpdGVtc30pKTtcbiAgICogQHBhcmFtIGl0ZW1zOiBUW11cbiAgICogQHBhcmFtIHBhdGg/OiBhbnlbXVxuICAgKiBAcGFyYW0gb25GYXVsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBvblJlc3VsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBkaXNwYXRjaFJlc3BvbnNlPzogYm9vbGVhblxuICAgKi9cbiAgRGVsZXRlTWFueVJlcXVlc3Q6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IE9wdFJlcXVlc3QpID0+IE9wdFJlcXVlc3QgJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgRGVsZXRlTWFueUZhaWx1cmU6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgZXJyb3I6IHN0cmluZzsgfSkgPT4geyBlcnJvcjogc3RyaW5nOyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIERlbGV0ZU1hbnlTdWNjZXNzOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGlkczogc3RyaW5nW10sIHJlcXVlc3Q6IE9wdFJlcXVlc3QgfSkgPT4geyBpZHM6IHN0cmluZ1tdLCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcblxuICAvKipcbiAgICogLSBhY3Rpb24gdXNlZCB0byBleGVjdXRlIGEgcmVxdWVzdCB0byBjcmVhdGUgYSBuZXcgaXRlbVxuICAgKiBAZXhhbXBsZSAgc3RvcmUuZGlzcGF0Y2goYWN0aW9ucy5DcmVhdGVSZXF1ZXN0KHBheWxvYWQpKTtcbiAgICogQHBhcmFtIGl0ZW06IFRcbiAgICogQHBhcmFtIHBhdGg/OiBhbnlbXVxuICAgKiBAcGFyYW0gb25GYXVsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBvblJlc3VsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBkaXNwYXRjaFJlc3BvbnNlPzogYm9vbGVhblxuICAgKi9cbiAgQ3JlYXRlUmVxdWVzdDogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogT3B0UmVxdWVzdCkgPT4gT3B0UmVxdWVzdCAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBDcmVhdGVGYWlsdXJlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGVycm9yOiBzdHJpbmc7IH0pID0+IHsgZXJyb3I6IHN0cmluZzsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBDcmVhdGVTdWNjZXNzOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGl0ZW06IFQsIHJlcXVlc3Q6IE9wdFJlcXVlc3QgfSkgPT4geyBpdGVtOiBULCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcblxuICAvKipcbiAgICogLSBhY3Rpb24gdXNlZCB0byBleGVjdXRlIGEgcmVxdWVzdCB0byBjcmVhdGUgbW9yZSBuZXcgaXRlbXNcbiAgICogQGV4YW1wbGUgc3RvcmUuZGlzcGF0Y2goYWN0aW9ucy5DcmVhdGVNYW55UmVxdWVzdChwYXlsb2FkKSk7XG4gICAqIEBwYXJhbSBpdGVtczogVFtdXG4gICAqIEBwYXJhbSBwYXRoPzogYW55W11cbiAgICogQHBhcmFtIG9uRmF1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gb25SZXN1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gZGlzcGF0Y2hSZXNwb25zZT86IGJvb2xlYW5cbiAgICovXG4gIENyZWF0ZU1hbnlSZXF1ZXN0OiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiBPcHRSZXF1ZXN0PFRbXSB8IFQ+KSA9PiBPcHRSZXF1ZXN0PFRbXSB8IFQ+ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIENyZWF0ZU1hbnlGYWlsdXJlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGVycm9yOiBzdHJpbmc7IH0pID0+IHsgZXJyb3I6IHN0cmluZzsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBDcmVhdGVNYW55U3VjY2VzczogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBpdGVtczogVFtdLCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0pID0+IHsgaXRlbXM6IFRbXSwgcmVxdWVzdDogT3B0UmVxdWVzdCB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG5cbiAgLyoqXG4gICAqICAtIGFjdGlvbiB1c2VkIHRvIGV4ZWN1dGUgYSByZXF1ZXN0IHRvIG1vZGlmeSBtb3JlIGl0ZW1zXG4gICAqIEBleGFtcGxlIHN0b3JlLmRpc3BhdGNoKGFjdGlvbnMuRWRpdE1hbnlSZXF1ZXN0KHBheWxvYWQpKTtcbiAgICogQHBhcmFtIGl0ZW1zOiBUW11cbiAgICogQHBhcmFtIHBhdGg/OiBhbnlbXVxuICAgKiBAcGFyYW0gb25GYXVsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBvblJlc3VsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBkaXNwYXRjaFJlc3BvbnNlPzogYm9vbGVhblxuICAgKi9cbiAgRWRpdE1hbnlSZXF1ZXN0OiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiBPcHRSZXF1ZXN0KSA9PiBPcHRSZXF1ZXN0ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIEVkaXRNYW55RmFpbHVyZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBlcnJvcjogc3RyaW5nOyB9KSA9PiB7IGVycm9yOiBzdHJpbmc7IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgRWRpdE1hbnlTdWNjZXNzOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGl0ZW1zOiBUW10sIHJlcXVlc3Q6IE9wdFJlcXVlc3QgfSkgPT4geyBpdGVtczogVFtdLCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcblxuICAvKipcbiAgICogLSBhY3Rpb24gdXNlZCB0byBhcHBseSBzb21lIGZpbHRlcnMgb24gZGF0YVxuICAgKiBAZXhhbXBsZSBzdG9yZS5kaXNwYXRjaChhY3Rpb25zLkZpbHRlcnMocGF5bG9hZCkpO1xuICAgKiBAcGFyYW0gZmlsdGVyczogeyBbczogc3RyaW5nXTogRmlsdGVyTWV0YWRhdGE7fVxuICAgKi9cbiAgRmlsdGVyczogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBmaWx0ZXJzOiB7IFtzOiBzdHJpbmddOiBGaWx0ZXJNZXRhZGF0YTsgfTsgfSkgPT4geyBmaWx0ZXJzOiB7IFtzOiBzdHJpbmddOiBGaWx0ZXJNZXRhZGF0YTsgfTsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuXG4gIC8vIHNlbGV6aW9uZSBsb2NhbGUgZGkgKyBlbGVtZW50aVxuICAvKipcbiAgICogLSBhY3Rpb24gdXNlZCB0byBpZGVudGlmeSBhIGdyb3VwIG9mIGl0ZW1zIHRvIHNlbGVjdFxuICAgKiBAZXhhbXBsZSBzdG9yZS5kaXNwYXRjaChhY3Rpb25zLlNlbGVjdEl0ZW1zKHBheWxvYWQpKTtcbiAgICogQHBhcmFtIGl0ZW1zOiBUW11cbiAgICovXG4gIFNlbGVjdEl0ZW1zOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGl0ZW1zOiBUW107IH0pID0+IHsgaXRlbXM6IFRbXTsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICAvLyBUT0RPOiBkb2NcbiAgQWRkTWFueVNlbGVjdGVkOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGl0ZW1zOiBUW107IH0pID0+IHsgaXRlbXM6IFRbXTsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICAvLyBUT0RPOiBkb2NcbiAgUmVtb3ZlTWFueVNlbGVjdGVkOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGlkczogc3RyaW5nW107IH0pID0+IHsgaWRzOiBzdHJpbmdbXTsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICAvLyBUT0RPOiBkb2NcbiAgUmVtb3ZlQWxsU2VsZWN0ZWQ6IEFjdGlvbkNyZWF0b3I8c3RyaW5nPjtcbiAgLyoqXG4gICAqIC0gYWN0aW9uIHVzZWQgdG8gaWRlbnRpZnkgYSBzaW5nbGUgaXRlbSB0byBzZWxlY3RcbiAgICogQGV4YW1wbGUgc3RvcmUuZGlzcGF0Y2goYWN0aW9ucy5TZWxlY3RJdGVtKHBheWxvYWQpKTtcbiAgICogQHBhcmFtIGl0ZW06IFRcbiAgICovXG4gIFNlbGVjdEl0ZW06IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgaXRlbTogVDsgfSkgPT4geyBpdGVtOiBUOyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG5cbiAgLyoqXG4gICAqIC0gYWN0aW9uIHVzZWQgdG8gY3JlYXRlIGFuIGl0ZW0gb24gdGhlIHN0b3JlXG4gICAqIEBleGFtcGxlIHN0b3JlLmRpc3BhdGNoKGFjdGlvbnMuQ3JlYXRlKHBheWxvYWQpKTtcbiAgICogQHBhcmFtIGl0ZW06IFRcbiAgICovXG4gIENyZWF0ZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBpdGVtOiBUOyB9KSA9PiB7IGl0ZW06IFQ7IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcblxuICAvKipcbiAgICogLSBhY3Rpb24gdXNlZCB0byByZW1vdmUgYW4gaXRlbSBvbiB0aGUgc3RvcmVcbiAgICogQGV4YW1wbGUgY29uc3QgdG9TdGF0ZTogU3RhdGUgPSBmZWF0dXJlUmVkdWNlcihleHBlY3RTdGF0ZSwgYWN0aW9ucy5EZWxldGUocGF5bG9hZCkpO1xuICAgKiBAcGFyYW0gaWQ6IHN0cmluZ1xuICAgKi9cbiAgRGVsZXRlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGlkOiBzdHJpbmc7IH0pID0+IHsgaWQ6IHN0cmluZzsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuXG59XG4iXX0=
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdyeC1lbnRpdHktY3J1ZC9zcmMvbGliL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3REEsTUFBTSxDQUFOLElBQVksUUFPWDtBQVBELFdBQVksUUFBUTtJQUNsQiw2QkFBaUIsQ0FBQTtJQUNqQiw2QkFBaUIsQ0FBQTtJQUNqQiw2QkFBaUIsQ0FBQTtJQUNqQix5QkFBYSxDQUFBO0lBQ2IsNkJBQWlCLENBQUE7SUFDakIsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBUFcsUUFBUSxLQUFSLFFBQVEsUUFPbkI7QUFFRCxNQUFNLENBQU4sSUFBWSxVQUtYO0FBTEQsV0FBWSxVQUFVO0lBQ3BCLG1DQUFxQixDQUFBO0lBQ3JCLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxVQUFVLEtBQVYsVUFBVSxRQUtyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RW50aXR5QWRhcHRlciwgRW50aXR5U3RhdGV9IGZyb20gJ0BuZ3J4L2VudGl0eSc7XG5pbXBvcnQge0FjdGlvbiwgQWN0aW9uQ3JlYXRvciwgTWVtb2l6ZWRTZWxlY3Rvcn0gZnJvbSAnQG5ncngvc3RvcmUnO1xuXG4vLyBDT1BJQVRPIERBIEBuZ3J4L3N0b3JlL3NyYy9tb2RlbHNcbi8vIHNlIHZpZW5lIGltcG9ydGF0byBkYSBAbmdyeC9zdG9yZS9zcmMvbW9kZWxzLCBkYSBlcnJvcmkgbmVpIHByb2dldHRpIGRvdmUgdmllbmUgdXRpbGl6emF0by5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUeXBlZEFjdGlvbjxUIGV4dGVuZHMgc3RyaW5nPiBleHRlbmRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHR5cGU6IFQ7XG59XG5cbi8vIENPUElBVE8gREEgQG5ncngvc3RvcmUvc3JjL21vZGVsc1xuLy8gc2UgdmllbmUgaW1wb3J0YXRvIGRhIEBuZ3J4L2VudGl0eS9zcmMvbW9kZWxzLCBkYSBlcnJvcmkgbmVpIHByb2dldHRpIGRvdmUgdmllbmUgdXRpbGl6emF0by5cbmV4cG9ydCBpbnRlcmZhY2UgRGljdGlvbmFyeU51bTxUPiB7XG4gIFtpZDogbnVtYmVyXTogVCB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgRGljdGlvbmFyeTxUPiBpbXBsZW1lbnRzIERpY3Rpb25hcnlOdW08VD4ge1xuICBbaWQ6IHN0cmluZ106IFQgfCB1bmRlZmluZWQ7XG59XG5cbi8vIENPUElBVE8gREEgQG5ncngvc3RvcmUvc3JjL21vZGVsc1xuLy8gc2UgdmllbmUgaW1wb3J0YXRvIGRhIEBuZ3J4L2VudGl0eS9zcmMvbW9kZWxzLCBkYSBlcnJvcmkgbmVpIHByb2dldHRpIGRvdmUgdmllbmUgdXRpbGl6emF0by5cbmV4cG9ydCB0eXBlIElkU2VsZWN0b3JTdHI8VD4gPSAobW9kZWw6IFQpID0+IHN0cmluZztcbmV4cG9ydCB0eXBlIElkU2VsZWN0b3JOdW08VD4gPSAobW9kZWw6IFQpID0+IG51bWJlcjtcbi8vIENPUElBVE8gREEgQG5ncngvc3RvcmUvc3JjL21vZGVsc1xuLy8gc2UgdmllbmUgaW1wb3J0YXRvIGRhIEBuZ3J4L2VudGl0eS9zcmMvbW9kZWxzLCBkYSBlcnJvcmkgbmVpIHByb2dldHRpIGRvdmUgdmllbmUgdXRpbGl6emF0by5cbmV4cG9ydCB0eXBlIElkU2VsZWN0b3I8VD4gPSBJZFNlbGVjdG9yU3RyPFQ+IHwgSWRTZWxlY3Rvck51bTxUPjtcblxuLy8gcGVyIGV2aXRhcmUgbCdpbXBvcnRhemlvbmVcbi8vIGltcG9ydCB7Q29tcGFyZXIsIEVudGl0eUFkYXB0ZXIsIElkU2VsZWN0b3J9IGZyb20gJ0BuZ3J4L2VudGl0eS9zcmMvbW9kZWxzJztcbi8vIGhvIGNvcGlhdG8gaSBzZWd1ZW50aSB0eXBlXG5leHBvcnQgZGVjbGFyZSB0eXBlIENvbXBhcmVyU3RyPFQ+ID0gKGE6IFQsIGI6IFQpID0+IHN0cmluZztcbmV4cG9ydCBkZWNsYXJlIHR5cGUgQ29tcGFyZXI8VD4gPSAoYTogVCwgYjogVCkgPT4gbnVtYmVyO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVNlbGVjdG9yczxULCBWPiB7XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IGEgZ3JvdXAgb2YgaWRzXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IHN0cmluZ1tdIHwgbnVtYmVyW11cbiAgICovXG4gIHNlbGVjdElkczogKHN0YXRlOiBWKSA9PiBzdHJpbmdbXSB8IG51bWJlcltdO1xuICAvKipcbiAgICogLSB1c2VkIHRvIHNlbGVjdCBhIGdyb3VwIG9mIGVudGl0aWVzXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IERpY3Rpb25hcnk8VD5cbiAgICovXG4gIHNlbGVjdEVudGl0aWVzOiAoc3RhdGU6IFYpID0+IERpY3Rpb25hcnk8VD47XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IGFsbCBpdGVtc1xuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiBUW11cbiAgICovXG4gIHNlbGVjdEFsbDogKHN0YXRlOiBWKSA9PiBUW107XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IHRoZSBzdW0gb2YgaXRlbXNcbiAgICogQHBhcmFtIChzdGF0ZTogVikgPT4gbnVtYmVyXG4gICAqL1xuICBzZWxlY3RUb3RhbDogKHN0YXRlOiBWKSA9PiBudW1iZXI7XG59XG5cbmV4cG9ydCBlbnVtIENydWRFbnVtIHtcbiAgU0VBUkNIID0gJ1NlYXJjaCcsXG4gIERFTEVURSA9ICdEZWxldGUnLFxuICBDUkVBVEUgPSAnQ3JlYXRlJyxcbiAgRURJVCA9ICdFZGl0JyxcbiAgU0VMRUNUID0gJ1NlbGVjdCcsXG4gIFJFU0VUID0gJ1Jlc2V0Jyxcbn1cblxuZXhwb3J0IGVudW0gQWN0aW9uRW51bSB7XG4gIFJFU1BPTlNFID0gJ1Jlc3BvbnNlJyxcbiAgUkVRVUVTVCA9ICdSZXF1ZXN0JyxcbiAgRkFJTFVSRSA9ICdGYWlsdXJlJyxcbiAgU1VDQ0VTUyA9ICdTdWNjZXNzJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcHRSZXF1ZXN0QmFzZSB7XG4gIC8qKlxuICAgKiBpcyBhZGRlZCB0byB0aGUgc2VydmljZSByb3V0ZSxcbiAgICogaW4gc29tZSBjYXNlcyBpdCBpcyBuZWNlc3NhcnkgdG8gaW52b2tlIGEgc3ViLXJvdXRlLlxuICAgKiBpZiB0aGUgc2VydmljZSB3YXMgXCJ1c2VyXCIgYW5kIHRoZSBzdWItcm91dGUgXCJ1c2VyL2FjY2VwdFwiOlxuICAgKiBwYXRoOltcImFjY2VwdFwiXVxuICAgKi9cbiAgcGF0aD86IGFueVtdO1xuICAvKipcbiAgICogRGlzcGF0Y2hlZCBhY3Rpb25zIGluIGNhc2Ugb2YgZXJyb3IuXG4gICAqL1xuICBvbkZhdWx0PzogQWN0aW9uW107XG4gIC8qKlxuICAgKiBEaXNwYXRjaGVkIGFjdGlvbnMgaW4gdGhlIGV2ZW50IG9mIGEgcG9zaXRpdmUgcmVzcG9uc2VcbiAgICovXG4gIG9uUmVzdWx0PzogQWN0aW9uW107XG5cbiAgLyoqXG4gICAqIHNlIHRydWUsIGFsIGNvbXBsZXRhbWVudG8gZGVsbGEgY2hpYW1hdGEgYXNpbmNyb25hLCB2ZXJyw6AgaW52aWF0YSB1bidhemlvbmUgZGkgdGlwbyBSZXNwb25zZSxcbiAgICogY29udGVuZW50ZSBsZSBpbmZvcm1hemlvbmkgc3VsbGEgY2hpYW1hdGEgZSBsYSByaXNwb3N0YS5cbiAgICogSW4gcXVlc3RvIG1vZG8gc2Fyw6AgcG9zc2liaWxlIGFuYWxpenphcmUgbCdhbmRhbWVudG9cbiAgICovXG4gIGRpc3BhdGNoUmVzcG9uc2U/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIC0gY3JpdGVyaWE6IElDcml0ZXJpYTogY3JpdGVyaWEgZGkgcmljZXJjYVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDcml0ZXJpYTxRUCA9IGFueT4gZXh0ZW5kcyBPcHRSZXF1ZXN0QmFzZSB7XG4gIC8qKlxuICAgKlxuICAgKiBcIlJFRlJFU0hcIiB0aGUgc3RvcmUgd2lsbCBiZSBkZWxldGVkIGJlZm9yZSBtYWtpbmcgdGhlIHJlbW90ZSBjYWxsLCBhbGwgdGhlIGVsZW1lbnRzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGNhbGwgcmVzdWx0LlxuICAgKlxuICAgKi9cbiAgbW9kZT86ICdSRUZSRVNIJyB8ICd1cHNlcnRNYW55JyB8ICd1cHNlcnRNYW55LXVwZGF0ZU1hbnktc2VsZWN0ZWQnIHwgJ2FkZEFsbCc7XG5cbiAgcXVlcnlQYXJhbXM/OiBRUDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcHRSZXF1ZXN0PFQgPSBhbnk+IGV4dGVuZHMgT3B0UmVxdWVzdEJhc2Uge1xuICBtdXRhdGlvblBhcmFtczogVDtcbiAgLyoqXG4gICAqIG9wdGlvbnMgb3B0aW9uYWxcbiAgICovXG4gIG9wdGlvbnM/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3B0UmVzcG9uc2U8VD4ge1xuICBhY3Rpb25UeXBlOiBzdHJpbmc7XG4gIHJlc3BvbnNlOiBSZXNwb25zZTxUPjtcbiAgcmVxdWVzdDogSUNyaXRlcmlhIHwgT3B0UmVxdWVzdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcHRFZmZlY3Qge1xuICAvKipcbiAgICogcGVyIG9nbmkgc3RyaW5nYSBwcmVzZW50ZSBuZWxsJ2F0dHJpYnV0bywgdmVycsOgIHNwZWRpdGEgdW5hIG5vdGlmaWNhIFJlc3BvbnNlLlxuICAgKiBpbiBxdWVzdG8gbW9kbywgY2hpIGludmlhIGxhIG5vdGlmaWNhIHBvdHLDoCBwb2kgZmlsdHJhcmUgaSBkYXRpIGluIGJhc2UgYWxsYSBjaGlhdmUgaW52aWF0YS5cbiAgICovXG4gIGRpc3BhdGNoUmVzcG9uc2U/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3BvbnNlPFQ+IHtcbiAgZGF0YTogVCB8IGFueTtcbiAgaGFzRXJyb3I6IGJvb2xlYW47XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJNZXRhZGF0YSB7XG4gIHZhbHVlPzogYW55O1xuICBtYXRjaE1vZGU/OiBzdHJpbmc7XG4gIHJlbmRlckZ1bmN0aW9uPzogKHZhbHVlOiBhbnkpID0+IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcnVkQmFzZVN0YXRlPFQ+IHtcbiAgZXJyb3I6IHN0cmluZztcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBpc0xvYWRlZDogYm9vbGVhbjtcbiAgbGFzdENyaXRlcmlhOiBJQ3JpdGVyaWE7XG4gIHJlc3BvbnNlczogT3B0UmVzcG9uc2U8VD5bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaW5nbGVDcnVkU3RhdGU8VD4gZXh0ZW5kcyBDcnVkQmFzZVN0YXRlPFQ+IHtcbiAgaXRlbTogVFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENydWRTdGF0ZTxUPiBleHRlbmRzIENydWRCYXNlU3RhdGU8VD4sIEVudGl0eVN0YXRlPFQ+IHtcbiAgZmlsdGVyczogeyBbczogc3RyaW5nXTogRmlsdGVyTWV0YWRhdGE7IH07XG4gIGlkc1NlbGVjdGVkOiBzdHJpbmdbXSB8IG51bWJlcltdO1xuICBpdGVtU2VsZWN0ZWQ6IFQ7XG4gIGlkU2VsZWN0ZWQ6IHN0cmluZyB8IG51bWJlcjtcbiAgZW50aXRpZXNTZWxlY3RlZDogRGljdGlvbmFyeTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlDcnVkQmFzZVNlbGVjdG9yczxULCBWPiB7XG5cbiAgLyoqXG4gICAqIC0gdXNlZCB0byBzZWxlY3QgbGFzdCBjcml0ZXJpYVxuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiBJQ3JpdGVyaWFcbiAgICovXG4gIHNlbGVjdExhc3RDcml0ZXJpYTogKHN0YXRlOiBWKSA9PiBJQ3JpdGVyaWE7XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IGFuIGVycm9yXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IHN0cmluZ1xuICAgKi9cbiAgc2VsZWN0RXJyb3I6IChzdGF0ZTogVikgPT4gc3RyaW5nO1xuICAvKipcbiAgICogLSByZXR1cm5zIHRydWUgaWYgdGhlcmUgYXJlIGNhbGxzIGluIHByb2dyZXNzXG4gICAqIEBAcGFyYW0gKHN0YXRlOiBWKSA9PiBib29sZWFuXG4gICAqL1xuICBzZWxlY3RJc0xvYWRpbmc6IChzdGF0ZTogVikgPT4gYm9vbGVhbjtcbiAgLyoqXG4gICAqIC0gcmV0dXJucyB0cnVlIGlmIGFsbCBjYWxscyBhcmUgY29tcGxldGVkXG4gICAqIEBAcGFyYW0gKHN0YXRlOiBWKSA9PiBib29sZWFuXG4gICAqL1xuICBzZWxlY3RJc0xvYWRlZDogKHN0YXRlOiBWKSA9PiBib29sZWFuO1xuICAvKipcbiAgICogLSB1c2VkIHRvIHNlbGVjdCByZXNwb25zZSB2YXJpYWJsZSBjb250YWluZWQgaW4gdGhlIGZvcm11bGFcbiAgICogQHBhcmFtIChzdGF0ZTogVikgPT4gT3B0UmVzcG9uc2U8VD5bXVxuICAgKi9cbiAgc2VsZWN0UmVzcG9uc2VzOiAoc3RhdGU6IFYpID0+IE9wdFJlc3BvbnNlPFQ+W107XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTaW5nbGVDcnVkU2VsZWN0b3JzPFQsIFY+IGV4dGVuZHMgRW50aXR5Q3J1ZEJhc2VTZWxlY3RvcnM8VCwgVj4ge1xuICBzZWxlY3RJdGVtOiAoc3RhdGU6IFYpID0+IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5Q3J1ZFNlbGVjdG9yczxULCBWPiBleHRlbmRzIEVudGl0eUNydWRCYXNlU2VsZWN0b3JzPFQsIFY+LCBFbnRpdHlTZWxlY3RvcnM8VCwgVj4ge1xuICAvKipcbiAgICogLSB1c2VkIHRvIHNlbGVjdCBzZWxlY3RlZCBpZFxuICAgKiAtIHBvcHVsYXRlZCB3aXRoIGFjdGlvbiBcIi4uLlNlbGVjdGVkSXRlbSh7aXRlbX0pXCIsXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IHN0cmluZyB8IG51bWJlclxuICAgKi9cbiAgc2VsZWN0SWRTZWxlY3RlZDogKHN0YXRlOiBWKSA9PiBzdHJpbmcgfCBudW1iZXI7XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IHNlbGVjdGVkIGlkc1xuICAgKiAtIHBvcHVsYXRlZCB3aXRoIGFjdGlvbiBcIi4uLlNlbGVjdGVkSXRlbXMoe2l0ZW19KVwiLFxuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiBzdHJpbmdbXSB8IG51bWJlcltdXG4gICAqL1xuICBzZWxlY3RJZHNTZWxlY3RlZDogKHN0YXRlOiBWKSA9PiBzdHJpbmdbXSB8IG51bWJlcltdO1xuICAvKipcbiAgICogLSB1c2VkIHRvIHNlbGVjdCBzZWxlY3RlZEl0ZW1cbiAgICogLSBwb3B1bGF0ZWQgd2l0aCBhY3Rpb24gXCIuLi5TZWxlY3RlZEl0ZW1zKHtpdGVtfSlcIixcbiAgICogLSBsb2NhbCBjbG9uZSwgZG9lcyBub3QgbWF0Y2ggdGhlIGluc3RhbmNlIGluIHRoZSBzdG9yZVxuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiBUXG4gICAqL1xuICBzZWxlY3RJdGVtU2VsZWN0ZWQ6IChzdGF0ZTogVikgPT4gVDtcbiAgLyoqXG4gICAqIC0gdXNlZCB0byBzZWxlY3Qgc2VsZWN0ZWQgaXRlbVxuICAgKiAtIHBvcHVsYXRlZCB3aXRoIGFjdGlvbiBcIi4uLlNlbGVjdGVkSXRlbXMoe2l0ZW06e2lkOnN0cmluZyAuLi59fSlcIixcbiAgICogLSBzYW1lIGluc3RhbmNlIG9mIHRoZSBzdG9yZSAoc3RhdGUuZW50aXRpZXMpXG4gICAqIC0gdGhlIHNlbGVjdG9yIGlzIGNyZWF0ZWQgd2l0aDpcbiAgICogICAgLSBzZWxlY3RJZFNlbGVjdGVkICsgc2VsZWN0RW50aXRpZXMsXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IFRcbiAgICovXG4gIHNlbGVjdEl0ZW1TZWxlY3RlZE9yaWdpbjogKHN0YXRlOiBWKSA9PiBUO1xuICAvKipcbiAgICogLSB1c2VkIHRvIHNlbGVjdCBhIGdyb3VwIG9mIHNlbGVjdGVkIGl0ZW1zXG4gICAqIC0gcG9wdWxhdGVkIHdpdGggYWN0aW9uIFwiLi4uU2VsZWN0ZWRJdGVtcyh7aXRlbX0pXCIsXG4gICAqIC0gbG9jYWwgY2xvbmUsIGRvZXMgbm90IG1hdGNoIHRoZSBpbnN0YW5jZSBpbiB0aGUgc3RvcmVcbiAgICogQHBhcmFtIChzdGF0ZTogVikgPT4gVFtdXG4gICAqL1xuICBzZWxlY3RJdGVtc1NlbGVjdGVkOiAoc3RhdGU6IFYpID0+IFRbXTtcblxuICAvKipcbiAgICogLSB1c2VkIHRvIHNlbGVjdCBhIGdyb3VwIG9mIHNlbGVjdGVkIGVudGl0aWVzXG4gICAqIC0gcG9wdWxhdGVkIHdpdGggYWN0aW9uIFwiLi4uU2VsZWN0ZWRJdGVtcyh7aXRlbX0pXCIsXG4gICAqIC0gbG9jYWwgY2xvbmUsIGRvZXMgbm90IG1hdGNoIHRoZSBpbnN0YW5jZSBpbiB0aGUgc3RvcmVcbiAgICogQHBhcmFtIChzdGF0ZTogVikgPT4gRGljdGlvbmFyeTxUPlxuICAgKi9cbiAgc2VsZWN0RW50aXRpZXNTZWxlY3RlZDogKHN0YXRlOiBWKSA9PiBEaWN0aW9uYXJ5PFQ+O1xuICAvKipcbiAgICogLSB1c2VkIHRvIHNlbGVjdCBhIGdyb3VwIG9mIHNlbGVjdGVkIGl0ZW1zXG4gICAqIC0gcG9wdWxhdGVkIHdpdGggYWN0aW9uIFwiLi4uU2VsZWN0ZWRJdGVtcyh7aXRlbX0pXCIsXG4gICAqIC0gc2FtZSBpbnN0YW5jZSBvZiB0aGUgc3RvcmUgKHN0YXRlLmVudGl0aWVzKVxuICAgKiAgICAtIHNlbGVjdElkc1NlbGVjdGVkICsgc2VsZWN0RW50aXRpZXMsXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IFRbXVxuICAgKi9cbiAgc2VsZWN0SXRlbXNTZWxlY3RlZE9yaWdpbjogKHN0YXRlOiBWKSA9PiBUW107XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IGZpbHRlcnNcbiAgICogQHBhcmFtIChzdGF0ZTogVikgPT4ge1tzOiBzdHJpbmddOiBGaWx0ZXJNZXRhZGF0YTt9XG4gICAqL1xuICBzZWxlY3RGaWx0ZXJzOiAoc3RhdGU6IFYpID0+IHsgW3M6IHN0cmluZ106IEZpbHRlck1ldGFkYXRhOyB9O1xuICAvKipcbiAgICogLSB1c2VkIHRvIHNlbGVjdCBmaWx0ZXJlZCBpdGVtc1xuICAgKiBAcGFyYW0gTWVtb2l6ZWRTZWxlY3RvcjxWLCBUW10+XG4gICAqL1xuICBzZWxlY3RGaWx0ZXJlZEl0ZW1zOiBNZW1vaXplZFNlbGVjdG9yPFYsIFRbXT47XG5cbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUNydWRCYXNlU3RhdGU8VD4ge1xuICBlcnJvcjogc3RyaW5nO1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gIGlzTG9hZGVkOiBib29sZWFuO1xuICBsYXN0Q3JpdGVyaWE6IElDcml0ZXJpYTtcbiAgLy8gb2duaSBlbnRpdMOgIHJlZ2lzdHJhIGwnYXppb25lIHNjYXRlbmF0YSBlIGxhIHJpc3Bvc3RhIGRhbCBzZXJ2ZXIuXG4gIHJlc3BvbnNlczogT3B0UmVzcG9uc2U8VD5bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTaW5nbGVDcnVkU3RhdGU8VD4gZXh0ZW5kcyBFbnRpdHlDcnVkQmFzZVN0YXRlPFQ+IHtcbiAgaXRlbTogVFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUNydWRTdGF0ZTxUPiBleHRlbmRzIEVudGl0eUNydWRCYXNlU3RhdGU8VD4sIEVudGl0eVN0YXRlPFQ+IHtcbiAgZmlsdGVyczogeyBbczogc3RyaW5nXTogRmlsdGVyTWV0YWRhdGE7IH07XG4gIGl0ZW1TZWxlY3RlZDogVDtcbiAgaWRTZWxlY3RlZDogc3RyaW5nIHwgbnVtYmVyO1xuXG4gIGVudGl0aWVzU2VsZWN0ZWQ6IERpY3Rpb25hcnk8VD47XG5cbiAgaWRzU2VsZWN0ZWQ6IHN0cmluZ1tdIHwgbnVtYmVyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5Q3J1ZEFkYXB0ZXI8VD4gZXh0ZW5kcyBFbnRpdHlBZGFwdGVyPFQ+IHtcbiAgZ2V0SW5pdGlhbENydWRTdGF0ZSgpOiBFbnRpdHlDcnVkU3RhdGU8VD47XG5cbiAgZ2V0SW5pdGlhbENydWRTdGF0ZTxTIGV4dGVuZHMgb2JqZWN0PihzdGF0ZTogUyk6IEVudGl0eUNydWRTdGF0ZTxUPiAmIFM7XG5cbiAgZ2V0Q3J1ZFNlbGVjdG9yczxWPihzZWxlY3RTdGF0ZTogKHN0YXRlOiBWKSA9PiBFbnRpdHlDcnVkU3RhdGU8VD4pOiBFbnRpdHlDcnVkU2VsZWN0b3JzPFQsIFY+O1xuXG4gIGNyZWF0ZUNydWRBY3Rpb25zKG5hbWU6IHN0cmluZyk6IEFjdGlvbnM8VD47XG5cbiAgLy8gdG9kbyBtb2RpZmljYXJlIGxhIGZpcm1hIGRlbCBtZXRvZG8sIHRpcGl6emFyZSBBY3Rpb25zPGFueT5cbiAgY3JlYXRlQ3J1ZFJlZHVjZXI8Uz4oaW5pdGlhbFN0YXRlOiBTLCBhY3Rpb25zOiBBY3Rpb25zPGFueT4pO1xufVxuXG5pbnRlcmZhY2UgUHJvcHNTZWFyY2hTdWNjZXNzPFQ+IHtcbiAgaXRlbXM6IFQ7XG4gIHJlcXVlc3Q6IElDcml0ZXJpYTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaW5ndWxhckFjdGlvbnM8VD4ge1xuICAvLyBhemlvbmUgZGlzcGFjY2lhdGEgZGFsbCdlZmZlY3Qgc2U6XG4gIC8vIE9wdFJlcXVlc3RCYXNlLmRpc3BhdGNoUmVzcG9uc2UgPT09IHRydWVcbiAgLy8gT3B0RWZmZWN0LmRpc3BhdGNoUmVzcG9uc2UgPT09IHRydWVcbiAgUmVzcG9uc2U6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IE9wdFJlc3BvbnNlPFQgfCBUW10+KSA9PiBPcHRSZXNwb25zZTxUIHwgVFtdPiAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBSZXNldFJlc3BvbnNlczogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsICgpID0+IHsgdHlwZTogc3RyaW5nOyB9PjtcblxuICAvKipcbiAgICogIC0gYWN0aW9uIHVzZWQgdG8gZXhlY3V0ZSBhIHJlcXVlc3QgdG8gc2VsZWN0IGFuIGl0ZW1cbiAgICogQGV4YW1wbGUgc3RvcmUuZGlzcGF0Y2goYWN0aW9ucy5TZWxlY3RSZXF1ZXN0KHBheWxvYWQpKTtcbiAgICogQHBhcmFtIGl0ZW06IFRcbiAgICogQHBhcmFtIHBhdGg/OiBhbnlbXVxuICAgKiBAcGFyYW0gb25GYXVsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBvblJlc3VsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBkaXNwYXRjaFJlc3BvbnNlPzogYm9vbGVhblxuICAgKi9cbiAgU2VsZWN0UmVxdWVzdDogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogSUNyaXRlcmlhKSA9PiBJQ3JpdGVyaWEgJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgU2VsZWN0RmFpbHVyZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBlcnJvcjogc3RyaW5nOyB9KSA9PiB7IGVycm9yOiBzdHJpbmc7IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgU2VsZWN0U3VjY2VzczogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBpdGVtOiBULCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0pID0+IHsgaXRlbTogVCwgcmVxdWVzdDogT3B0UmVxdWVzdCB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG5cblxuICAvKipcbiAgICogIC0gYWN0aW9uIHVzZWQgdG8gZXhlY3V0ZSBhIHJlcXVlc3QgdG8gbW9kaWZ5IGFuIGl0ZW1cbiAgICogQGV4YW1wbGUgc3RvcmUuZGlzcGF0Y2goYWN0aW9ucy5FZGl0UmVxdWVzdChwYXlsb2FkKSk7XG4gICAqIEBwYXJhbSBpdGVtOiBUXG4gICAqIEBwYXJhbSBwYXRoPzogYW55W11cbiAgICogQHBhcmFtIG9uRmF1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gb25SZXN1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gZGlzcGF0Y2hSZXNwb25zZT86IGJvb2xlYW5cbiAgICovXG4gIEVkaXRSZXF1ZXN0OiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiBPcHRSZXF1ZXN0KSA9PiBPcHRSZXF1ZXN0ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIEVkaXRGYWlsdXJlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGVycm9yOiBzdHJpbmc7IH0pID0+IHsgZXJyb3I6IHN0cmluZzsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBFZGl0U3VjY2VzczogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBpdGVtOiBULCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0pID0+IHsgaXRlbTogVCwgcmVxdWVzdDogT3B0UmVxdWVzdCB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG5cbiAgLyoqXG4gICAqIC0gYWN0aW9uIHVzZWQgdG8gZXhlY3V0ZSBhIHN0b3JlIHJlc2V0XG4gICAqIEBleGFtcGxlIHN0b3JlLmRpc3BhdGNoKGFjdGlvbnMuUmVzZXQoKSk7XG4gICAqIEBwYXJhbSB0eXBlOiBzdHJpbmdcbiAgICovXG4gIFJlc2V0OiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKCkgPT4geyB0eXBlOiBzdHJpbmc7IH0+O1xuXG4gIC8qKlxuICAgKiAtIGFjdGlvbiB1c2VkIHRvIG1vZGlmeSBhbiBpdGVtIG9uIHRoZSBzdG9yZVxuICAgKiBAZXhhbXBsZSBzdG9yZS5kaXNwYXRjaChhY3Rpb25zLkVkaXQocGF5bG9hZCkpO1xuICAgKiBAcGFyYW0gaXRlbTogVFxuICAgKi9cbiAgRWRpdDogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBpdGVtOiBUOyB9KSA9PiB7IGl0ZW06IFQ7IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25zPFQ+IGV4dGVuZHMgU2luZ3VsYXJBY3Rpb25zPFQ+IHtcblxuICAvKipcbiAgICogLSBhY3Rpb24gdXNlZCB0byBleGVjdXRlIGFzeW5jaHJvbm91cyByZXNlYXJjaGVzXG4gICAqIEBleGFtcGxlIFN0b3JlQWN0aW9ucy5TZWFyY2hSZXF1ZXN0KHtxdWVyeVBhcmFtczoge319KVxuICAgKiAtIG1vZGU/OiAnUkVGUkVTSCc6IHNlIHZpZW5lIHBhc3NhdG8gaWwgdmFsb3JlIFJFRlJFU0gsIGlsIGRhdG8gcHJlc2VudGUgbmVsbG8gc3RvcmUgdmllbmUgY2FuY2VsbGF0byBwcmltYSBkaSBlc2VndWlyZSBsYSBjaGlhbWF0YSxcbiAgICogICAgICAgIGFsdHJpbWVudGkgaWwgZGF0byB2ZXJyw6Agc29zdGl0dWl0byBhbCByZXN1bHQgZGVsbGEgY2hpYW1hdGFcbiAgICogQHBhcmFtIG1vZGU/OiAnUkVGUkVTSCcgfCAndXBzZXJ0TWFueScgfCAnYWRkQWxsJ1xuICAgKiBAcGFyYW0gcXVlcnlQYXJhbXM/OiBhbnlcbiAgICogQHBhcmFtIHBhdGg/OiBhbnlbXVxuICAgKiBAcGFyYW0gb25GYXVsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBvblJlc3VsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBkaXNwYXRjaFJlc3BvbnNlPzogYm9vbGVhblxuICAgKiBAcGFyYW0gdHlwZTogc3RyaW5nXG4gICAqXG4gICAqL1xuICBTZWFyY2hSZXF1ZXN0OiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiBJQ3JpdGVyaWEpID0+IElDcml0ZXJpYSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBTZWFyY2hGYWlsdXJlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGVycm9yOiBzdHJpbmc7IH0pID0+IHsgZXJyb3I6IHN0cmluZzsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBTZWFyY2hTdWNjZXNzOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGl0ZW1zOiBUW10sIHJlcXVlc3Q6IElDcml0ZXJpYSB9KSA9PiB7IGl0ZW1zOiBUW10sIHJlcXVlc3Q6IElDcml0ZXJpYSB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG5cbiAgLyoqXG4gICAqIC0gYWN0aW9uIHVzZWQgdG8gZXhlY3V0ZSBhIHJlcXVlc3QgdG8gcmVtb3ZlIGFuIGl0ZW1cbiAgICogQGV4YW1wbGUgY29uc3QgdG9TdGF0ZTogU3RhdGUgPSBmZWF0dXJlUmVkdWNlcihzdGF0ZSwgYWN0aW9ucy5EZWxldGVSZXF1ZXN0KHBheWxvYWQpKTtcbiAgICogQHBhcmFtIGl0ZW06IFRcbiAgICogQHBhcmFtIHBhdGg/OiBhbnlbXVxuICAgKiBAcGFyYW0gb25GYXVsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBvblJlc3VsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBkaXNwYXRjaFJlc3BvbnNlPzogYm9vbGVhblxuICAgKi9cbiAgRGVsZXRlUmVxdWVzdDogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogT3B0UmVxdWVzdCkgPT4gT3B0UmVxdWVzdCAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBEZWxldGVGYWlsdXJlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGVycm9yOiBzdHJpbmc7IH0pID0+IHsgZXJyb3I6IHN0cmluZzsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBEZWxldGVTdWNjZXNzOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGlkOiBzdHJpbmcsIHJlcXVlc3Q6IE9wdFJlcXVlc3QgfSkgPT4geyBpZDogc3RyaW5nLCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcblxuICAvKipcbiAgICogLSBhY3Rpb24gdXNlZCB0byBleGVjdXRlIGEgcmVxdWVzdCB0byByZW1vdmUgbW9yZSBpdGVtc1xuICAgKiBAZXhhbXBsZSB0aGlzLnN0b3JlJC5kaXNwYXRjaCg8JT0gY2xhenogJT5TdG9yZUFjdGlvbnMuRGVsZXRlTWFueVJlcXVlc3Qoe2l0ZW1zfSkpO1xuICAgKiBAcGFyYW0gaXRlbXM6IFRbXVxuICAgKiBAcGFyYW0gcGF0aD86IGFueVtdXG4gICAqIEBwYXJhbSBvbkZhdWx0PzogQWN0aW9uW11cbiAgICogQHBhcmFtIG9uUmVzdWx0PzogQWN0aW9uW11cbiAgICogQHBhcmFtIGRpc3BhdGNoUmVzcG9uc2U/OiBib29sZWFuXG4gICAqL1xuICBEZWxldGVNYW55UmVxdWVzdDogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogT3B0UmVxdWVzdCkgPT4gT3B0UmVxdWVzdCAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBEZWxldGVNYW55RmFpbHVyZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBlcnJvcjogc3RyaW5nOyB9KSA9PiB7IGVycm9yOiBzdHJpbmc7IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgRGVsZXRlTWFueVN1Y2Nlc3M6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgaWRzOiBzdHJpbmdbXSwgcmVxdWVzdDogT3B0UmVxdWVzdCB9KSA9PiB7IGlkczogc3RyaW5nW10sIHJlcXVlc3Q6IE9wdFJlcXVlc3QgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuXG4gIC8qKlxuICAgKiAtIGFjdGlvbiB1c2VkIHRvIGV4ZWN1dGUgYSByZXF1ZXN0IHRvIGNyZWF0ZSBhIG5ldyBpdGVtXG4gICAqIEBleGFtcGxlICBzdG9yZS5kaXNwYXRjaChhY3Rpb25zLkNyZWF0ZVJlcXVlc3QocGF5bG9hZCkpO1xuICAgKiBAcGFyYW0gaXRlbTogVFxuICAgKiBAcGFyYW0gcGF0aD86IGFueVtdXG4gICAqIEBwYXJhbSBvbkZhdWx0PzogQWN0aW9uW11cbiAgICogQHBhcmFtIG9uUmVzdWx0PzogQWN0aW9uW11cbiAgICogQHBhcmFtIGRpc3BhdGNoUmVzcG9uc2U/OiBib29sZWFuXG4gICAqL1xuICBDcmVhdGVSZXF1ZXN0OiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiBPcHRSZXF1ZXN0KSA9PiBPcHRSZXF1ZXN0ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIENyZWF0ZUZhaWx1cmU6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgZXJyb3I6IHN0cmluZzsgfSkgPT4geyBlcnJvcjogc3RyaW5nOyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIENyZWF0ZVN1Y2Nlc3M6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgaXRlbTogVCwgcmVxdWVzdDogT3B0UmVxdWVzdCB9KSA9PiB7IGl0ZW06IFQsIHJlcXVlc3Q6IE9wdFJlcXVlc3QgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuXG4gIC8qKlxuICAgKiAtIGFjdGlvbiB1c2VkIHRvIGV4ZWN1dGUgYSByZXF1ZXN0IHRvIGNyZWF0ZSBtb3JlIG5ldyBpdGVtc1xuICAgKiBAZXhhbXBsZSBzdG9yZS5kaXNwYXRjaChhY3Rpb25zLkNyZWF0ZU1hbnlSZXF1ZXN0KHBheWxvYWQpKTtcbiAgICogQHBhcmFtIGl0ZW1zOiBUW11cbiAgICogQHBhcmFtIHBhdGg/OiBhbnlbXVxuICAgKiBAcGFyYW0gb25GYXVsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBvblJlc3VsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBkaXNwYXRjaFJlc3BvbnNlPzogYm9vbGVhblxuICAgKi9cbiAgQ3JlYXRlTWFueVJlcXVlc3Q6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IE9wdFJlcXVlc3Q8VFtdIHwgVD4pID0+IE9wdFJlcXVlc3Q8VFtdIHwgVD4gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgQ3JlYXRlTWFueUZhaWx1cmU6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgZXJyb3I6IHN0cmluZzsgfSkgPT4geyBlcnJvcjogc3RyaW5nOyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIENyZWF0ZU1hbnlTdWNjZXNzOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGl0ZW1zOiBUW10sIHJlcXVlc3Q6IE9wdFJlcXVlc3QgfSkgPT4geyBpdGVtczogVFtdLCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcblxuICAvKipcbiAgICogIC0gYWN0aW9uIHVzZWQgdG8gZXhlY3V0ZSBhIHJlcXVlc3QgdG8gbW9kaWZ5IG1vcmUgaXRlbXNcbiAgICogQGV4YW1wbGUgc3RvcmUuZGlzcGF0Y2goYWN0aW9ucy5FZGl0TWFueVJlcXVlc3QocGF5bG9hZCkpO1xuICAgKiBAcGFyYW0gaXRlbXM6IFRbXVxuICAgKiBAcGFyYW0gcGF0aD86IGFueVtdXG4gICAqIEBwYXJhbSBvbkZhdWx0PzogQWN0aW9uW11cbiAgICogQHBhcmFtIG9uUmVzdWx0PzogQWN0aW9uW11cbiAgICogQHBhcmFtIGRpc3BhdGNoUmVzcG9uc2U/OiBib29sZWFuXG4gICAqL1xuICBFZGl0TWFueVJlcXVlc3Q6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IE9wdFJlcXVlc3QpID0+IE9wdFJlcXVlc3QgJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgRWRpdE1hbnlGYWlsdXJlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGVycm9yOiBzdHJpbmc7IH0pID0+IHsgZXJyb3I6IHN0cmluZzsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBFZGl0TWFueVN1Y2Nlc3M6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgaXRlbXM6IFRbXSwgcmVxdWVzdDogT3B0UmVxdWVzdCB9KSA9PiB7IGl0ZW1zOiBUW10sIHJlcXVlc3Q6IE9wdFJlcXVlc3QgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuXG4gIC8qKlxuICAgKiAtIGFjdGlvbiB1c2VkIHRvIGFwcGx5IHNvbWUgZmlsdGVycyBvbiBkYXRhXG4gICAqIEBleGFtcGxlIHN0b3JlLmRpc3BhdGNoKGFjdGlvbnMuRmlsdGVycyhwYXlsb2FkKSk7XG4gICAqIEBwYXJhbSBmaWx0ZXJzOiB7IFtzOiBzdHJpbmddOiBGaWx0ZXJNZXRhZGF0YTt9XG4gICAqL1xuICBGaWx0ZXJzOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGZpbHRlcnM6IHsgW3M6IHN0cmluZ106IEZpbHRlck1ldGFkYXRhOyB9OyB9KSA9PiB7IGZpbHRlcnM6IHsgW3M6IHN0cmluZ106IEZpbHRlck1ldGFkYXRhOyB9OyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG5cbiAgLy8gc2VsZXppb25lIGxvY2FsZSBkaSArIGVsZW1lbnRpXG4gIC8qKlxuICAgKiAtIGFjdGlvbiB1c2VkIHRvIGlkZW50aWZ5IGEgZ3JvdXAgb2YgaXRlbXMgdG8gc2VsZWN0XG4gICAqIEBleGFtcGxlIHN0b3JlLmRpc3BhdGNoKGFjdGlvbnMuU2VsZWN0SXRlbXMocGF5bG9hZCkpO1xuICAgKiBAcGFyYW0gaXRlbXM6IFRbXVxuICAgKi9cbiAgU2VsZWN0SXRlbXM6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgaXRlbXM6IFRbXTsgfSkgPT4geyBpdGVtczogVFtdOyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIC8vIFRPRE86IGRvY1xuICBBZGRNYW55U2VsZWN0ZWQ6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgaXRlbXM6IFRbXTsgfSkgPT4geyBpdGVtczogVFtdOyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIC8vIFRPRE86IGRvY1xuICBSZW1vdmVNYW55U2VsZWN0ZWQ6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgaWRzOiBzdHJpbmdbXTsgfSkgPT4geyBpZHM6IHN0cmluZ1tdOyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIC8vIFRPRE86IGRvY1xuICBSZW1vdmVBbGxTZWxlY3RlZDogQWN0aW9uQ3JlYXRvcjxzdHJpbmc+O1xuICAvKipcbiAgICogLSBhY3Rpb24gdXNlZCB0byBpZGVudGlmeSBhIHNpbmdsZSBpdGVtIHRvIHNlbGVjdFxuICAgKiBAZXhhbXBsZSBzdG9yZS5kaXNwYXRjaChhY3Rpb25zLlNlbGVjdEl0ZW0ocGF5bG9hZCkpO1xuICAgKiBAcGFyYW0gaXRlbTogVFxuICAgKi9cbiAgU2VsZWN0SXRlbTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBpdGVtOiBUOyB9KSA9PiB7IGl0ZW06IFQ7IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcblxuICAvKipcbiAgICogLSBhY3Rpb24gdXNlZCB0byBjcmVhdGUgYW4gaXRlbSBvbiB0aGUgc3RvcmVcbiAgICogQGV4YW1wbGUgc3RvcmUuZGlzcGF0Y2goYWN0aW9ucy5DcmVhdGUocGF5bG9hZCkpO1xuICAgKiBAcGFyYW0gaXRlbTogVFxuICAgKi9cbiAgQ3JlYXRlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGl0ZW06IFQ7IH0pID0+IHsgaXRlbTogVDsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuXG4gIC8qKlxuICAgKiAtIGFjdGlvbiB1c2VkIHRvIHJlbW92ZSBhbiBpdGVtIG9uIHRoZSBzdG9yZVxuICAgKiBAZXhhbXBsZSBjb25zdCB0b1N0YXRlOiBTdGF0ZSA9IGZlYXR1cmVSZWR1Y2VyKGV4cGVjdFN0YXRlLCBhY3Rpb25zLkRlbGV0ZShwYXlsb2FkKSk7XG4gICAqIEBwYXJhbSBpZDogc3RyaW5nXG4gICAqL1xuICBEZWxldGU6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgaWQ6IHN0cmluZzsgfSkgPT4geyBpZDogc3RyaW5nOyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG5cbn1cbiJdfQ==
|
package/esm2020/lib/reducer.mjs
CHANGED
|
@@ -13,27 +13,28 @@ export function createCrudOns(adapter, initialState, actions) {
|
|
|
13
13
|
if (!criteria.path && !criteria.mode && !criteria.queryParams) {
|
|
14
14
|
throw new Error('It is not possible a search without payload, use :\'{criteria:{}}\'');
|
|
15
15
|
}
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
itemSelected,
|
|
23
|
-
idSelected,
|
|
24
|
-
entitiesSelected,
|
|
25
|
-
idsSelected
|
|
26
|
-
});
|
|
16
|
+
const mode = criteria.mode || '';
|
|
17
|
+
let selectedStatePartial = {};
|
|
18
|
+
// se nella stringa della modalit'
|
|
19
|
+
if (mode.indexOf('updateMany-selected') !== -1) {
|
|
20
|
+
const { itemSelected, idSelected, entitiesSelected, idsSelected } = state;
|
|
21
|
+
selectedStatePartial = { itemSelected, idSelected, entitiesSelected, idsSelected };
|
|
27
22
|
}
|
|
28
|
-
|
|
23
|
+
else {
|
|
24
|
+
const { itemSelected, idSelected, entitiesSelected, idsSelected } = initialState;
|
|
25
|
+
selectedStatePartial = { itemSelected, idSelected, entitiesSelected, idsSelected };
|
|
26
|
+
}
|
|
27
|
+
const result = {
|
|
28
|
+
...state,
|
|
29
29
|
isLoading: true,
|
|
30
30
|
error: initialState.error,
|
|
31
31
|
lastCriteria: criteria,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
32
|
+
...selectedStatePartial
|
|
33
|
+
};
|
|
34
|
+
if (mode.indexOf('REFRESH') !== -1 || mode.indexOf('upsertMany') !== -1) {
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
return adapter.removeAll(result);
|
|
37
38
|
});
|
|
38
39
|
const deleteRequestOn = on(actions.DeleteRequest, (state, request) => {
|
|
39
40
|
return Object.assign({}, state, { isLoading: true, error: initialState.error });
|
|
@@ -59,33 +60,39 @@ export function createCrudOns(adapter, initialState, actions) {
|
|
|
59
60
|
const searchSuccessOn = on(actions.SearchSuccess, (state, { type, items, request }) => {
|
|
60
61
|
const mode = evalData(() => request.mode, null) || 'setAll';
|
|
61
62
|
let method;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
case 'setAll': {
|
|
74
|
-
// console.log('setAll');
|
|
75
|
-
method = adapter.setAll;
|
|
76
|
-
break;
|
|
77
|
-
}
|
|
78
|
-
default: {
|
|
79
|
-
// console.log('default');
|
|
80
|
-
method = adapter.setAll;
|
|
81
|
-
break;
|
|
82
|
-
}
|
|
63
|
+
if (mode.indexOf('REFRESH') !== -1) {
|
|
64
|
+
method = adapter.setAll;
|
|
65
|
+
}
|
|
66
|
+
else if (mode.indexOf('upsertMany') !== -1) {
|
|
67
|
+
method = adapter.upsertMany;
|
|
68
|
+
}
|
|
69
|
+
else if (mode.indexOf('setAll') !== -1) {
|
|
70
|
+
method = adapter.setAll;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
method = adapter.setAll;
|
|
83
74
|
}
|
|
84
|
-
|
|
75
|
+
const selectedStatePartial = { entitiesSelected: state.entitiesSelected, idsSelected: state.idsSelected };
|
|
76
|
+
if (mode.indexOf('updateMany-selected') !== -1) {
|
|
77
|
+
// creo uno state temporaneo con i dati degli elementi selezionati
|
|
78
|
+
const selectedState = {
|
|
79
|
+
entities: state.entitiesSelected,
|
|
80
|
+
ids: state.idsSelected
|
|
81
|
+
};
|
|
82
|
+
// preparo gli item ritornati dalla ricerca per aggiornare
|
|
83
|
+
const itemsB = items.map((item) => (Object.assign({}, { id: adapter.selectId(item), changes: item })));
|
|
84
|
+
// utilizzo il metodo adapter.updateMany per aggiornare gli elementi selezionati
|
|
85
|
+
const newSelectedState = adapter.updateMany(itemsB, { ...selectedState });
|
|
86
|
+
selectedStatePartial.entitiesSelected = newSelectedState.entities;
|
|
87
|
+
selectedStatePartial.idsSelected = newSelectedState.ids;
|
|
88
|
+
}
|
|
89
|
+
return method(items, {
|
|
90
|
+
...state,
|
|
91
|
+
...selectedStatePartial,
|
|
85
92
|
isLoaded: true,
|
|
86
93
|
isLoading: false,
|
|
87
94
|
error: null
|
|
88
|
-
})
|
|
95
|
+
});
|
|
89
96
|
});
|
|
90
97
|
const deleteSuccessOn = on(actions.DeleteSuccess, (state, { type, id }) => {
|
|
91
98
|
// tolgo dallo store.idsSelected l'elemento cancellato
|
|
@@ -404,4 +411,4 @@ export function createSingularCrudOns(initialState, actions) {
|
|
|
404
411
|
editOn,
|
|
405
412
|
};
|
|
406
413
|
}
|
|
407
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25ncngtZW50aXR5LWNydWQvc3JjL2xpYi9yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBZ0IsYUFBYSxFQUFFLEVBQUUsRUFBZSxNQUFNLGFBQWEsQ0FBQztBQUMzRSxPQUFPLEVBQUMsYUFBYSxFQUFFLFlBQVksRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUVwRCxNQUFNLFVBQVUsUUFBUSxDQUFJLEVBQVcsRUFBRSxNQUFXLElBQUk7SUFDdEQsSUFBSTtRQUNGLE9BQU8sRUFBRSxFQUFFLENBQUM7S0FDYjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxHQUFHLENBQUM7S0FDWjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFrQyxPQUF5QixFQUFFLFlBQWUsRUFBRSxPQUFtQjtJQUM1SCxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQVEsRUFBRSxRQUFtQixFQUFFLEVBQUU7UUFDbEYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRTtZQUM3RCxNQUFNLElBQUksS0FBSyxDQUFDLHFFQUFxRSxDQUFDLENBQUM7U0FDeEY7UUFFRCxNQUFNLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUMsR0FBRyxZQUFZLENBQUM7UUFFL0UsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRTtZQUNqRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQ2xCLEVBQUUsRUFDRixLQUFLLEVBQ0w7Z0JBQ0UsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsS0FBSyxFQUFFLFlBQVksQ0FBQyxL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QixLQUFLO0tBQ04sQ0FBQyxDQUFDLENBQUM7SUFFSixNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRTtRQUM3RCxNQUFNLFNBQVMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqRCxPQUFPLEVBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFDLFNBQVMsRUFBQyxFQUFDLENBQUM7SUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBUSxFQUFFLEVBQUU7UUFDN0QsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sRUFBQyxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUMsU0FBUyxFQUFDLEVBQUMsQ0FBQztJQUNwQyxDQUFDLENBQ0YsQ0FBQztJQUVGLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxZQUFZLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0UsT0FBTztRQUNMLFVBQVU7UUFDVixnQkFBZ0I7UUFFaEIsZUFBZTtRQUNmLGVBQWU7UUFDZixlQUFlO1FBRWYsYUFBYTtRQUNiLGFBQWE7UUFDYixhQUFhO1FBRWIsT0FBTztRQUNQLE1BQU07S0FDUCxDQUFDO0FBRUosQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWN0aW9ucywgRW50aXR5Q3J1ZFN0YXRlLCBFbnRpdHlTaW5nbGVDcnVkU3RhdGUsIElDcml0ZXJpYSwgT3B0UmVxdWVzdCwgU2luZ3VsYXJBY3Rpb25zfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQge0VudGl0eUFkYXB0ZXJ9IGZyb20gJ0BuZ3J4L2VudGl0eSc7XG5pbXBvcnQge0FjdGlvbkNyZWF0b3IsIGNyZWF0ZVJlZHVjZXIsIG9uLCBSZWR1Y2VyVHlwZXN9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7c2VsZWN0SWRWYWx1ZSwgdG9EaWN0aW9uYXJ5fSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGV2YWxEYXRhPFQ+KGZuOiAoKSA9PiBULCBkZWY6IGFueSA9IG51bGwpOiBUIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZm4oKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBkZWY7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNydWRPbnM8VCwgUyBleHRlbmRzIEVudGl0eUNydWRTdGF0ZTxUPj4oYWRhcHRlcjogRW50aXR5QWRhcHRlcjxUPiwgaW5pdGlhbFN0YXRlOiBTLCBhY3Rpb25zOiBBY3Rpb25zPFQ+KTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gIGNvbnN0IHNlYXJjaFJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuU2VhcmNoUmVxdWVzdCwgKHN0YXRlOiBTLCBjcml0ZXJpYTogSUNyaXRlcmlhKSA9PiB7XG4gICAgaWYgKCFjcml0ZXJpYS5wYXRoICYmICFjcml0ZXJpYS5tb2RlICYmICFjcml0ZXJpYS5xdWVyeVBhcmFtcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJdCBpcyBub3QgcG9zc2libGUgYSBzZWFyY2ggd2l0aG91dCBwYXlsb2FkLCB1c2UgOlxcJ3tjcml0ZXJpYTp7fX1cXCcnKTtcbiAgICB9XG5cbiAgICBjb25zdCB7aXRlbVNlbGVjdGVkLCBpZFNlbGVjdGVkLCBlbnRpdGllc1NlbGVjdGVkLCBpZHNTZWxlY3RlZH0gPSBpbml0aWFsU3RhdGU7XG5cbiAgICBpZiAoY3JpdGVyaWEubW9kZSA9PT0gJ1JFRlJFU0gnIHx8IGNyaXRlcmlhLm1vZGUgPT09ICd1cHNlcnRNYW55Jykge1xuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgICAgIHt9LFxuICAgICAgICBzdGF0ZSxcbiAgICAgICAge1xuICAgICAgICAgIGlzTG9hZGluZzogdHJ1ZSxcbiAgICAgICAgICBlcnJvcjogaW5pdGlhbFN0YXRlLmVycm9yLFxuICAgICAgICAgIGxhc3RDcml0ZXJpYTogY3JpdGVyaWEsXG4gICAgICAgICAgaXRlbVNlbGVjdGVkLFxuICAgICAgICAgIGlkU2VsZWN0ZWQsXG4gICAgICAgICAgZW50aXRpZXNTZWxlY3RlZCxcbiAgICAgICAgICBpZHNTZWxlY3RlZFxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gYWRhcHRlci5yZW1vdmVBbGwoXG4gICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICB7fSxcbiAgICAgICAgc3RhdGUsXG4gICAgICAgIHtcbiAgICAgICAgICBpc0xvYWRpbmc6IHRydWUsXG4gICAgICAgICAgZXJyb3I6IGluaXRpYWxTdGF0ZS5lcnJvcixcbiAgICAgICAgICBsYXN0Q3JpdGVyaWE6IGNyaXRlcmlhLFxuICAgICAgICAgIGl0ZW1TZWxlY3RlZCxcbiAgICAgICAgICBpZFNlbGVjdGVkLFxuICAgICAgICAgIGVudGl0aWVzU2VsZWN0ZWQsXG4gICAgICAgICAgaWRzU2VsZWN0ZWRcbiAgICAgICAgfSlcbiAgICApO1xuICB9KTtcbiAgY29uc3QgZGVsZXRlUmVxdWVzdE9uID0gb24oYWN0aW9ucy5EZWxldGVSZXF1ZXN0LCAoc3RhdGU6IFMsIHJlcXVlc3Q6IE9wdFJlcXVlc3QpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7aXNMb2FkaW5nOiB0cnVlLCBlcnJvcjogaW5pdGlhbFN0YXRlLmVycm9yfVxuICAgICk7XG4gIH0pO1xuICBjb25zdCBkZWxldGVNYW55UmVxdWVzdE9uID0gb24oYWN0aW9ucy5EZWxldGVNYW55UmVxdWVzdCwgKHN0YXRlOiBTLCByZXF1ZXN0OiBPcHRSZXF1ZXN0KSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge2lzTG9hZGluZzogdHJ1ZSwgZXJyb3I6IGluaXRpYWxTdGF0ZS5lcnJvcn1cbiAgICApO1xuICB9KTtcbiAgY29uc3QgZWRpdFJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuRWRpdFJlcXVlc3QsIChzdGF0ZTogUywgcmVxdWVzdDogT3B0UmVxdWVzdCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtpc0xvYWRpbmc6IHRydWUsIGVycm9yOiBpbml0aWFsU3RhdGUuZXJyb3J9XG4gICAgKTtcbiAgfSk7XG4gIGNvbnN0IGVkaXRNYW55UmVxdWVzdE9uID0gb24oYWN0aW9ucy5FZGl0TWFueVJlcXVlc3QsIChzdGF0ZTogUywgcmVxdWVzdDogT3B0UmVxdWVzdCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtpc0xvYWRpbmc6IHRydWUsIGVycm9yOiBpbml0aWFsU3RhdGUuZXJyb3J9XG4gICAgKTtcbiAgfSk7XG4gIGNvbnN0IGNyZWF0ZVJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuQ3JlYXRlUmVxdWVzdCwgKHN0YXRlOiBTLCByZXF1ZXN0OiBPcHRSZXF1ZXN0KSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge2lzTG9hZGluZzogdHJ1ZSwgZXJyb3I6IGluaXRpYWxTdGF0ZS5lcnJvcn1cbiAgICApO1xuICB9KTtcbiAgY29uc3QgY3JlYXRlTWFueVJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuQ3JlYXRlTWFueVJlcXVlc3QsIChzdGF0ZTogUywgcmVxdWVzdDogT3B0UmVxdWVzdCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtpc0xvYWRpbmc6IHRydWUsIGVycm9yOiBpbml0aWFsU3RhdGUuZXJyb3J9XG4gICAgKTtcbiAgfSk7XG4gIGNvbnN0IHNlbGVjdFJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuU2VsZWN0UmVxdWVzdCwgKHN0YXRlOiBTLCByZXF1ZXN0OiBJQ3JpdGVyaWEpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7aXNMb2FkaW5nOiB0cnVlLCBlcnJvcjogaW5pdGlhbFN0YXRlLmVycm9yfVxuICAgICk7XG4gIH0pO1xuXG4gIGNvbnN0IHNlYXJjaFN1Y2Nlc3NPbiA9IG9uKGFjdGlvbnMuU2VhcmNoU3VjY2VzcywgKHN0YXRlOiBTLCB7dHlwZSwgaXRlbXMsIHJlcXVlc3R9KSA9PiB7XG4gICAgY29uc3QgbW9kZSA9IGV2YWxEYXRhKCgpID0+IHJlcXVlc3QubW9kZSwgbnVsbCkgfHwgJ3NldEFsbCc7XG4gICAgbGV0IG1ldGhvZDtcbiAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgIGNhc2UgICdSRUZSRVNIJyA6IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ1JFRlJFU0gnKTtcbiAgICAgICAgbWV0aG9kID0gYWRhcHRlci5zZXRBbGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAndXBzZXJ0TWFueSc6IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3Vwc2VydE1hbnknKTtcbiAgICAgICAgbWV0aG9kID0gYWRhcHRlci51cHNlcnRNYW55O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3NldEFsbCc6IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3NldEFsbCcpO1xuICAgICAgICBtZXRob2QgPSBhZGFwdGVyLnNldEFsbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2RlZmF1bHQnKTtcbiAgICAgICAgbWV0aG9kID0gYWRhcHRlci5zZXRBbGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtZXRob2QoaXRlbXMsIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogdHJ1ZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgIH1cbiAgICApKTtcbiAgfSk7XG4gIGNvbnN0IGRlbGV0ZVN1Y2Nlc3NPbiA9IG9uKGFjdGlvbnMuRGVsZXRlU3VjY2VzcywgKHN0YXRlOiBTLCB7dHlwZSwgaWR9KSA9PiB7XG5cbiAgICAgIC8vIHRvbGdvIGRhbGxvIHN0b3JlLmlkc1NlbGVjdGVkIGwnZWxlbWVudG8gY2FuY2VsbGF0b1xuICAgICAgY29uc3QgaWRzU2VsZWN0ZWQgPSAoc3RhdGUuaWRzU2VsZWN0ZWQgYXMgYW55W10pLmZpbHRlcigoaWRBKSA9PiBpZEEgPT09IGlkKTtcbiAgICAgIGNvbnN0IGVudGl0aWVzU2VsZWN0ZWQgPSBpZHNTZWxlY3RlZC5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHtcbiAgICAgICAgcHJldltjdXJyXSA9IHN0YXRlLmVudGl0aWVzU2VsZWN0ZWRbY3Vycl07XG4gICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgfSwge30pO1xuXG4gICAgICAvLyBzZSBobyBjYW5jZWxsYXRvIGwnaWQgc2VlemlvbmF0bywgbG8gdG9sZ28gZGFsbG8gc3RvcmUuXG4gICAgICBjb25zdCBpZFNlbGVjdGVkID0gISFzdGF0ZS5pZFNlbGVjdGVkICYmIHN0YXRlLmlkU2VsZWN0ZWQgPT09IGlkID8gbnVsbCA6IHN0YXRlLmlkU2VsZWN0ZWQ7XG4gICAgICBjb25zdCBpdGVtU2VsZWN0ZWQgPSAhaWRTZWxlY3RlZCA/IG51bGwgOiBzdGF0ZS5pdGVtU2VsZWN0ZWQ7XG5cbiAgICAgIHJldHVybiBhZGFwdGVyLnJlbW92ZU9uZShpZCxcbiAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICB7fSwgc3RhdGUsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaXNMb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgICAgICBpZFNlbGVjdGVkLFxuICAgICAgICAgICAgaWRzU2VsZWN0ZWQsXG4gICAgICAgICAgICBpdGVtU2VsZWN0ZWQsXG4gICAgICAgICAgICBlbnRpdGllc1NlbGVjdGVkXG4gICAgICAgICAgfVxuICAgICAgICApKTtcbiAgICB9XG4gICk7XG5cbiAgY29uc3QgZGVsZXRlTWFueVN1Y2Nlc3NPbiA9IG9uKGFjdGlvbnMuRGVsZXRlTWFueVN1Y2Nlc3MsIChzdGF0ZTogUywge3R5cGUsIGlkc30pID0+IHtcblxuICAgIC8vIHRvbGdvIGRhbGxvIHN0b3JlLmlkc1NlbGVjdGVkIGdsaSBlbGVtZW50aSBjaGUgc29ubyBzdGF0aSBjYW5jZWxsYXRpLlxuICAgIGNvbnN0IGlkc1NlbGVjdGVkOiBzdHJpbmdbXSA9IChzdGF0ZS5pZHNTZWxlY3RlZCBhcyBhbnlbXSkuZmlsdGVyKChpZCkgPT4gIShpZCBpbiBpZHMpKTtcbiAgICBjb25zdCBlbnRpdGllc1NlbGVjdGVkID0gaWRzU2VsZWN0ZWQucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICBwcmV2W2N1cnJdID0gc3RhdGUuZW50aXRpZXNTZWxlY3RlZFtjdXJyXTtcbiAgICAgIHJldHVybiBwcmV2O1xuICAgIH0sIHt9KTtcblxuICAgIC8vIHNlIGhvIGNhbmNlbGxhdG8gbCdpZCBzZWV6aW9uYXRvLCBsbyB0b2xnbyBkYWxsbyBzdG9yZS5cbiAgICBjb25zdCBpZFNlbGVjdGVkID0gISFzdGF0ZS5pZFNlbGVjdGVkICYmIHN0YXRlLmlkU2VsZWN0ZWQgaW4gaWRzID8gbnVsbCA6IHN0YXRlLmlkU2VsZWN0ZWQ7XG4gICAgY29uc3QgaXRlbVNlbGVjdGVkID0gIWlkU2VsZWN0ZWQgPyBudWxsIDogc3RhdGUuaXRlbVNlbGVjdGVkO1xuICAgIHJldHVybiBhZGFwdGVyLnJlbW92ZU1hbnkoaWRzLFxuICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAge30sIHN0YXRlLFxuICAgICAgICB7XG4gICAgICAgICAgaXNMb2FkZWQ6IHRydWUsXG4gICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICBpZFNlbGVjdGVkLFxuICAgICAgICAgIGlkc1NlbGVjdGVkLFxuICAgICAgICAgIGl0ZW1TZWxlY3RlZCxcbiAgICAgICAgICBlbnRpdGllc1NlbGVjdGVkXG4gICAgICAgIH1cbiAgICAgICkpO1xuICB9KTtcblxuICBjb25zdCBkZWxldGVPbiA9IG9uKGFjdGlvbnMuRGVsZXRlLCAoc3RhdGU6IFMsIHt0eXBlLCBpZH0pID0+IHtcbiAgICAgIC8vIHRvbGdvIGRhbGxvIHN0b3JlLmlkc1NlbGVjdGVkIGwnZWxlbWVudG8gY2FuY2VsbGF0b1xuICAgICAgY29uc3QgaWRzU2VsZWN0ZWQgPSAoc3RhdGUuaWRzU2VsZWN0ZWQgYXMgYW55W10pLmZpbHRlcigoaWRBKSA9PiBpZEEgPT09IGlkKTtcblxuICAgICAgLy8gc2UgaG8gY2FuY2VsbGF0byBsJ2lkIHNlZXppb25hdG8sIGxvIHRvbGdvIGRhbGxvIHN0b3JlLlxuICAgICAgY29uc3QgaWRTZWxlY3RlZCA9ICEhc3RhdGUuaWRTZWxlY3RlZCAmJiBzdGF0ZS5pZFNlbGVjdGVkID09PSBpZCA/IG51bGwgOiBzdGF0ZS5pZFNlbGVjdGVkO1xuXG4gICAgICByZXR1cm4gYWRhcHRlci5yZW1vdmVPbmUoaWQsXG4gICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAge30sIHN0YXRlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgaWRTZWxlY3RlZCxcbiAgICAgICAgICAgIGlkc1NlbGVjdGVkXG4gICAgICAgICAgfVxuICAgICAgICApKTtcbiAgICB9XG4gICk7XG4gIGNvbnN0IHJlc3BvbnNlT24gPSBvbihhY3Rpb25zLlJlc3BvbnNlLCAoc3RhdGU6IFMsIHJlc3BvbnNlKSA9PiB7XG4gICAgY29uc3QgcmVzcG9uc2VzID0gWy4uLnN0YXRlLnJlc3BvbnNlcywgcmVzcG9uc2VdO1xuICAgIHJldHVybiB7Li4ue30sIC4uLnN0YXRlLCAuLi57cmVzcG9uc2VzfX07XG4gIH0pO1xuXG4gIGNvbnN0IHJlc2V0UmVzcG9uc2VzT24gPSBvbihhY3Rpb25zLlJlc2V0UmVzcG9uc2VzLCAoc3RhdGU6IFMpID0+IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlcyA9IFtdO1xuICAgICAgcmV0dXJuIHsuLi5zdGF0ZSwgLi4ue3Jlc3BvbnNlc319O1xuICAgIH1cbiAgKTtcbiAgY29uc3QgY3JlYXRlU3VjY2Vzc09uID0gb24oYWN0aW9ucy5DcmVhdGVTdWNjZXNzLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtfSkgPT4gYWRhcHRlci5hZGRPbmUoaXRlbSxcbiAgICBPYmplY3QuYXNzaWduKFxuICAgICAge30sIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogdHJ1ZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgIH1cbiAgICApKSk7XG4gIGNvbnN0IGNyZWF0ZU1hbnlTdWNjZXNzT24gPSBvbihhY3Rpb25zLkNyZWF0ZU1hbnlTdWNjZXNzLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtc30pID0+IGFkYXB0ZXIuYWRkTWFueShpdGVtcyxcbiAgICBPYmplY3QuYXNzaWduKFxuICAgICAge30sIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogdHJ1ZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgIH1cbiAgICApKSk7XG4gIGNvbnN0IGNyZWF0ZU9uID0gb24oYWN0aW9ucy5DcmVhdGUsIChzdGF0ZTogUywge3R5cGUsIGl0ZW19KSA9PiBhZGFwdGVyLmFkZE9uZShpdGVtLFxuICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSwgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgfVxuICAgICkpKTtcbiAgY29uc3QgZWRpdFN1Y2Nlc3NPbiA9IG9uKGFjdGlvbnMuRWRpdFN1Y2Nlc3MsIChzdGF0ZTogUywge2l0ZW0sIHR5cGV9KSA9PiBhZGFwdGVyLnVwc2VydE9uZShpdGVtLFxuICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSwgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgfVxuICAgICkpKTtcbiAgY29uc3QgZWRpdE1hbnlTdWNjZXNzT24gPSBvbihhY3Rpb25zLkVkaXRNYW55U3VjY2VzcywgKHN0YXRlOiBTLCB7aXRlbXMsIHR5cGV9KSA9PiBhZGFwdGVyLnVwc2VydE1hbnkoaXRlbXMsXG4gICAgT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LCBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IHRydWUsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yOiBudWxsXG4gICAgICB9XG4gICAgKSkpO1xuICBjb25zdCBlZGl0T24gPSBvbihhY3Rpb25zLkVkaXQsIChzdGF0ZTogUywge2l0ZW0sIHR5cGV9KSA9PiBhZGFwdGVyLnVwc2VydE9uZShpdGVtLFxuICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSwgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgfVxuICAgICkpKTtcbiAgY29uc3QgZmlsdGVyc09uID0gb24oYWN0aW9ucy5GaWx0ZXJzLCAoc3RhdGU6IFMsIHt0eXBlLCBmaWx0ZXJzfSkgPT4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHtmaWx0ZXJzfSkpO1xuXG4gIGNvbnN0IHJlbW92ZUFsbFNlbGVjdGVkT24gPSBvbihhY3Rpb25zLlJlbW92ZUFsbFNlbGVjdGVkLCAoc3RhdGU6IFMsIHt0eXBlfTogeyB0eXBlOiBzdHJpbmcgfSkgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaWRzU2VsZWN0ZWQ6IFtdLFxuICAgICAgLy8gaXRlbXNTZWxlY3RlZDogW10sIC8vdG9kbzogQGRlcHJlY2F0ZWQgZGEgY2FuY2VsbGFyZSBxdWVzdG8gdGlwbyBkaSBhc3NlZ25hemlvbmUuXG4gICAgICBlbnRpdGllc1NlbGVjdGVkOiB7fVxuICAgIH07XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcblxuICBjb25zdCBhZGRNYW55U2VsZWN0ZWRPbiA9IG9uKGFjdGlvbnMuQWRkTWFueVNlbGVjdGVkLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtc306IHsgdHlwZTogc3RyaW5nLCBpdGVtczogVFtdIH0pID0+IHtcbiAgICBjb25zdCBlbnRpdGllc0N1cnIgPSB0b0RpY3Rpb25hcnkoaXRlbXMsIGFkYXB0ZXIpO1xuICAgIGNvbnN0IGVudGl0aWVzU2VsZWN0ZWQgPSB7Li4uc3RhdGUuZW50aXRpZXNTZWxlY3RlZCwgLi4uZW50aXRpZXNDdXJyfTtcbiAgICBjb25zdCBpZHNTZWxlY3RlZCA9IE9iamVjdC5rZXlzKGVudGl0aWVzU2VsZWN0ZWQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaWRzU2VsZWN0ZWQsXG4gICAgICAvLyBpdGVtc1NlbGVjdGVkOiBpdGVtcywgLy90b2RvOiBAZGVwcmVjYXRlZCBkYSBjYW5jZWxsYXJlIHF1ZXN0byB0aXBvIGRpIGFzc2VnbmF6aW9uZS5cbiAgICAgIGVudGl0aWVzU2VsZWN0ZWRcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG5cbiAgY29uc3QgcmVtb3ZlTWFueVNlbGVjdGVkT24gPSBvbihhY3Rpb25zLlJlbW92ZU1hbnlTZWxlY3RlZCwgKHN0YXRlOiBTLCB7dHlwZSwgaWRzfTogeyB0eXBlOiBzdHJpbmcsIGlkczogc3RyaW5nW10gfSkgPT4ge1xuICAgIGNvbnN0IGlkc0FzU3RyaW5nID0gaWRzLm1hcCh4ID0+IHggKyAnJyk7XG4gICAgY29uc3QgaWRzU2VsZWN0ZWQgPSBPYmplY3Qua2V5cyhzdGF0ZS5lbnRpdGllc1NlbGVjdGVkKS5maWx0ZXIoaWQgPT4gIWlkc0FzU3RyaW5nLmluY2x1ZGVzKGlkICsgJycpKTtcbiAgICBjb25zdCBlbnRpdGllc1NlbGVjdGVkID0gaWRzU2VsZWN0ZWQucmVkdWNlKChwcmVjLCBjdXJyKSA9PiAoey4uLnByZWMsIFtjdXJyXTogc3RhdGUuZW50aXRpZXNTZWxlY3RlZFtjdXJyXX0pLCB7fSk7XG4gICAgLy8gY29uc3QgaXRlbXNTZWxlY3RlZCA9IE9iamVjdC52YWx1ZXMoZW50aXRpZXNTZWxlY3RlZCk7XG5cbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGlkc1NlbGVjdGVkLFxuICAgICAgLy8gaXRlbXNTZWxlY3RlZCwgLy90b2RvOiBAZGVwcmVjYXRlZCBkYSBjYW5jZWxsYXJlIHF1ZXN0byB0aXBvIGRpIGFzc2VnbmF6aW9uZS5cbiAgICAgIGVudGl0aWVzU2VsZWN0ZWRcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG5cbiAgY29uc3Qgc2VsZWN0SXRlbXNPbiA9IG9uKGFjdGlvbnMuU2VsZWN0SXRlbXMsIChzdGF0ZTogUywge3R5cGUsIGl0ZW1zfSkgPT4ge1xuICAgIGNvbnN0IGVudGl0aWVzU2VsZWN0ZWQgPSB0b0RpY3Rpb25hcnkoaXRlbXMsIGFkYXB0ZXIpO1xuICAgIGNvbnN0IGlkc1NlbGVjdGVkID0gT2JqZWN0LmtleXMoZW50aXRpZXNTZWxlY3RlZCk7XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBpZHNTZWxlY3RlZCxcbiAgICAgIC8vIGl0ZW1zU2VsZWN0ZWQ6IGl0ZW1zLFxuICAgICAgZW50aXRpZXNTZWxlY3RlZFxuICAgIH07XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcbiAgY29uc3Qgc2VsZWN0SXRlbU9uID0gb24oYWN0aW9ucy5TZWxlY3RJdGVtLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtfSkgPT4ge1xuICAgIGNvbnN0IGlkU2VsZWN0ZWQgPSBzZWxlY3RJZFZhbHVlKGl0ZW0sIGFkYXB0ZXIuc2VsZWN0SWQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaWRTZWxlY3RlZCxcbiAgICAgIGl0ZW1TZWxlY3RlZDogaXRlbVxuICAgIH07XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcbiAgY29uc3Qgc2VsZWN0U3VjY2Vzc09uID0gb24oYWN0aW9ucy5TZWxlY3RTdWNjZXNzLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtfSkgPT4ge1xuICAgICAgY29uc3QgaWRTZWxlY3RlZCA9IHNlbGVjdElkVmFsdWUoaXRlbSwgYWRhcHRlci5zZWxlY3RJZCk7XG4gICAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBpZFNlbGVjdGVkLFxuICAgICAgICBpdGVtU2VsZWN0ZWQ6IGl0ZW0sXG4gICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICk7XG4gIGNvbnN0IHNlYXJjaEZhaWx1cmVPbiA9IG9uKFxuICAgIGFjdGlvbnMuU2VhcmNoRmFpbHVyZSxcbiAgICAoc3RhdGU6IFMsIHt0eXBlLCBlcnJvcn0pID0+IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogZmFsc2UsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yXG4gICAgICB9XG4gICAgKSk7XG4gIGNvbnN0IGRlbGV0ZUZhaWx1cmVPbiA9IG9uKFxuICAgIGFjdGlvbnMuRGVsZXRlRmFpbHVyZSxcbiAgICAoc3RhdGU6IFMsIHt0eXBlLCBlcnJvcn0pID0+IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogZmFsc2UsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yXG4gICAgICB9XG4gICAgKSk7XG4gIGNvbnN0IGRlbGV0ZU1hbnlGYWlsdXJlT24gPSBvbihcbiAgICBhY3Rpb25zLkRlbGV0ZU1hbnlGYWlsdXJlLFxuICAgIChzdGF0ZTogUywge3R5cGUsIGVycm9yfSkgPT4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiBmYWxzZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3JcbiAgICAgIH1cbiAgICApKTtcbiAgY29uc3QgY3JlYXRlRmFpbHVyZU9uID0gb24oXG4gICAgYWN0aW9ucy5DcmVhdGVGYWlsdXJlLFxuICAgIChzdGF0ZTogUywge3R5cGUsIGVycm9yfSkgPT4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiBmYWxzZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3JcbiAgICAgIH1cbiAgICApKTtcbiAgY29uc3QgY3JlYXRlTWFueUZhaWx1cmVPbiA9IG9uKFxuICAgIGFjdGlvbnMuQ3JlYXRlTWFueUZhaWx1cmUsXG4gICAgKHN0YXRlOiBTLCB7dHlwZSwgZXJyb3J9KSA9PiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvclxuICAgICAgfVxuICAgICkpO1xuICBjb25zdCBlZGl0RmFpbHVyZU9uID0gb24oXG4gICAgYWN0aW9ucy5FZGl0RmFpbHVyZSxcbiAgICAoc3RhdGU6IFMsIHtlcnJvciwgdHlwZX0pID0+IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogZmFsc2UsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yXG4gICAgICB9XG4gICAgKSk7XG4gIGNvbnN0IGVkaXRNYW55RmFpbHVyZU9uID0gb24oXG4gICAgYWN0aW9ucy5FZGl0TWFueUZhaWx1cmUsXG4gICAgKHN0YXRlOiBTLCB7ZXJyb3IsIHR5cGV9KSA9PiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvclxuICAgICAgfVxuICAgICkpO1xuICBjb25zdCBzZWxlY3RGYWlsdXJlT24gPSBvbihcbiAgICBhY3Rpb25zLlNlbGVjdEZhaWx1cmUsXG4gICAgKHN0YXRlOiBTLCB7ZXJyb3IsIHR5cGV9KSA9PiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvclxuICAgICAgfVxuICAgICkpO1xuICBjb25zdCByZXNldE9uID0gb24oYWN0aW9ucy5SZXNldCwgKHN0YXRlOiBTKSA9PiAoey4uLnN0YXRlLCAuLi5pbml0aWFsU3RhdGV9KSk7XG4gIHJldHVybiB7XG4gICAgcmVzcG9uc2VPbixcbiAgICByZXNldFJlc3BvbnNlc09uLFxuICAgIHNlYXJjaFJlcXVlc3RPbixcbiAgICBkZWxldGVSZXF1ZXN0T24sXG4gICAgZGVsZXRlTWFueVJlcXVlc3RPbixcbiAgICBlZGl0UmVxdWVzdE9uLFxuICAgIGVkaXRNYW55UmVxdWVzdE9uLFxuICAgIGNyZWF0ZVJlcXVlc3RPbixcbiAgICBjcmVhdGVNYW55UmVxdWVzdE9uLFxuICAgIHNlbGVjdFJlcXVlc3RPbixcbiAgICBzZWFyY2hTdWNjZXNzT24sXG4gICAgZGVsZXRlU3VjY2Vzc09uLFxuICAgIGRlbGV0ZU1hbnlTdWNjZXNzT24sXG4gICAgY3JlYXRlU3VjY2Vzc09uLFxuICAgIGNyZWF0ZU1hbnlTdWNjZXNzT24sXG4gICAgc2VsZWN0U3VjY2Vzc09uLFxuICAgIGVkaXRTdWNjZXNzT24sXG4gICAgZWRpdE1hbnlTdWNjZXNzT24sXG4gICAgc2VhcmNoRmFpbHVyZU9uLFxuICAgIGRlbGV0ZUZhaWx1cmVPbixcbiAgICBkZWxldGVNYW55RmFpbHVyZU9uLFxuICAgIGNyZWF0ZUZhaWx1cmVPbixcbiAgICBjcmVhdGVNYW55RmFpbHVyZU9uLFxuICAgIHNlbGVjdEZhaWx1cmVPbixcbiAgICBlZGl0RmFpbHVyZU9uLFxuICAgIGVkaXRNYW55RmFpbHVyZU9uLFxuICAgIHJlc2V0T24sXG4gICAgZmlsdGVyc09uLFxuICAgIHNlbGVjdEl0ZW1zT24sXG4gICAgcmVtb3ZlQWxsU2VsZWN0ZWRPbixcbiAgICBhZGRNYW55U2VsZWN0ZWRPbixcbiAgICByZW1vdmVNYW55U2VsZWN0ZWRPbixcbiAgICBzZWxlY3RJdGVtT24sXG4gICAgZWRpdE9uLFxuICAgIGNyZWF0ZU9uLFxuICAgIGRlbGV0ZU9uXG4gIH07XG5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNydWRSZWR1Y2VyRmFjdG9yeTxUPihhZGFwdGVyOiBFbnRpdHlBZGFwdGVyPFQ+KSB7XG4gIGZ1bmN0aW9uIGNyZWF0ZUNydWRSZWR1Y2VyPFMgZXh0ZW5kcyBFbnRpdHlDcnVkU3RhdGU8VD4+KGluaXRpYWxTdGF0ZTogUywgYWN0aW9uczogQWN0aW9uczxUPiwgLi4ub25zOiBSZWR1Y2VyVHlwZXM8UywgQWN0aW9uQ3JlYXRvcltdPltdKSB7XG4gICAgY29uc3Qgey4uLmNydWRPbnN9ID0gY3JlYXRlQ3J1ZE9ucyhhZGFwdGVyLCBpbml0aWFsU3RhdGUsIGFjdGlvbnMpO1xuICAgIGNvbnN0IHRvdGFsT25zOiBSZWR1Y2VyVHlwZXM8UywgQWN0aW9uQ3JlYXRvcltdPltdID0gW1xuICAgICAgLi4ub25zLFxuICAgICAgLi4uT2JqZWN0LnZhbHVlcyhjcnVkT25zKVxuICAgIF07XG4gICAgcmV0dXJuIGNyZWF0ZVJlZHVjZXI8Uz4oaW5pdGlhbFN0YXRlLFxuICAgICAgLi4udG90YWxPbnNcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBjcmVhdGVDcnVkUmVkdWNlclxuICB9O1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTaW5ndWxhckNydWRPbnM8VCwgUyBleHRlbmRzIEVudGl0eVNpbmdsZUNydWRTdGF0ZTxUPj4oaW5pdGlhbFN0YXRlOiBTLCBhY3Rpb25zOiBTaW5ndWxhckFjdGlvbnM8VD4pOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcblxuICBjb25zdCBzZWxlY3RSZXF1ZXN0T24gPSBvbihhY3Rpb25zLlNlbGVjdFJlcXVlc3QsIChzdGF0ZTogUywge3R5cGV9KSA9PiAoXG4gICAge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBpc0xvYWRpbmc6IHRydWUsXG4gICAgICBlcnJvcjogbnVsbFxuICAgIH1cbiAgKSk7XG5cbiAgY29uc3Qgc2VsZWN0U3VjY2Vzc09uID0gb24oYWN0aW9ucy5TZWxlY3RTdWNjZXNzLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtfSkgPT4gKFxuICAgIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaXRlbSxcbiAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgIGVycm9yOiBudWxsXG4gICAgfVxuICApKTtcblxuICBjb25zdCBzZWxlY3RGYWlsdXJlT24gPSBvbihhY3Rpb25zLlNlbGVjdEZhaWx1cmUsIChzdGF0ZTogUywge3R5cGUsIGVycm9yfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBpc0xvYWRlZDogZmFsc2UsXG4gICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICBlcnJvclxuICB9KSk7XG5cbiAgY29uc3QgZWRpdFJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuRWRpdFJlcXVlc3QsIChzdGF0ZTogUykgPT4gKFxuICAgIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaXNMb2FkaW5nOiB0cnVlLFxuICAgICAgZXJyb3I6IG51bGxcbiAgICB9XG4gICkpO1xuXG4gIGNvbnN0IGVkaXRTdWNjZXNzT24gPSBvbihhY3Rpb25zLkVkaXRTdWNjZXNzLCAoc3RhdGU6IFMsIHtpdGVtLCB0eXBlfSkgPT4gKFxuICAgIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaXRlbSxcbiAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgIGVycm9yOiBudWxsXG4gICAgfVxuICApKTtcblxuICBjb25zdCBlZGl0T24gPSBvbihhY3Rpb25zLkVkaXQsIChzdGF0ZTogUywge2l0ZW0sIHR5cGV9KSA9PiAoXG4gICAge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBpdGVtLFxuICAgICAgaXNMb2FkZWQ6IHRydWUsXG4gICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgZXJyb3I6IG51bGxcbiAgICB9XG4gICkpO1xuXG4gIGNvbnN0IGVkaXRGYWlsdXJlT24gPSBvbihhY3Rpb25zLkVkaXRGYWlsdXJlLCAoc3RhdGU6IFMsIHt0eXBlLCBlcnJvcn0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgZXJyb3JcbiAgfSkpO1xuXG4gIGNvbnN0IHJlc3BvbnNlT24gPSBvbihhY3Rpb25zLlJlc3BvbnNlLCAoc3RhdGU6IFMsIHJlc3BvbnNlKSA9PiB7XG4gICAgY29uc3QgcmVzcG9uc2VzID0gWy4uLnN0YXRlLnJlc3BvbnNlcywgcmVzcG9uc2VdO1xuICAgIHJldHVybiB7Li4ue30sIC4uLnN0YXRlLCAuLi57cmVzcG9uc2VzfX07XG4gIH0pO1xuXG4gIGNvbnN0IHJlc2V0UmVzcG9uc2VzT24gPSBvbihhY3Rpb25zLlJlc2V0UmVzcG9uc2VzLCAoc3RhdGU6IFMpID0+IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlcyA9IFtdO1xuICAgICAgcmV0dXJuIHsuLi5zdGF0ZSwgLi4ue3Jlc3BvbnNlc319O1xuICAgIH1cbiAgKTtcblxuICBjb25zdCByZXNldE9uID0gb24oYWN0aW9ucy5SZXNldCwgKHN0YXRlOiBTKSA9PiAoey4uLnN0YXRlLCAuLi5pbml0aWFsU3RhdGV9KSk7XG4gIHJldHVybiB7XG4gICAgcmVzcG9uc2VPbixcbiAgICByZXNldFJlc3BvbnNlc09uLFxuXG4gICAgc2VsZWN0UmVxdWVzdE9uLFxuICAgIHNlbGVjdFN1Y2Nlc3NPbixcbiAgICBzZWxlY3RGYWlsdXJlT24sXG5cbiAgICBlZGl0UmVxdWVzdE9uLFxuICAgIGVkaXRTdWNjZXNzT24sXG4gICAgZWRpdEZhaWx1cmVPbixcblxuICAgIHJlc2V0T24sXG4gICAgZWRpdE9uLFxuICB9O1xuXG59XG4iXX0=
|
|
414
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25ncngtZW50aXR5LWNydWQvc3JjL2xpYi9yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBZ0IsYUFBYSxFQUFFLEVBQUUsRUFBZSxNQUFNLGFBQWEsQ0FBQztBQUMzRSxPQUFPLEVBQUMsYUFBYSxFQUFFLFlBQVksRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUVwRCxNQUFNLFVBQVUsUUFBUSxDQUFJLEVBQVcsRUFBRSxNQUFXLElBQUk7SUFDdEQsSUFBSTtRQUNGLE9BQU8sRUFBRSxFQUFFLENBQUM7S0FDYjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxHQUFHLENBQUM7S0FDWjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFrQyxPQUF5QixFQUFFLFlBQWUsRUFBRSxPQUFtQjtJQUM1SCxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQVEsRUFBRSxRQUFtQixFQUFFLEVBQUU7UUFDbEYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRTtZQUM3RCxNQUFNLElBQUksS0FBSyxDQUFDLHFFQUFxRSxDQUFDLENBQUM7U0FDeEY7UUFFRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztRQUM5QixrQ0FBa0M7UUFDbEMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDOUMsTUFBTSxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ3hFLG9CQUFv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VUFBVSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBUSxFQUFFLFFBQVEsRUFBRSxFQUFFO1FBQzdELE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sRUFBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUMsU0FBUyxFQUFDLEVBQUMsQ0FBQztJQUMzQyxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFRLEVBQUUsRUFBRTtRQUM3RCxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDckIsT0FBTyxFQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBQyxTQUFTLEVBQUMsRUFBQyxDQUFDO0lBQ3BDLENBQUMsQ0FDRixDQUFDO0lBRUYsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxHQUFHLEtBQUssRUFBRSxHQUFHLFlBQVksRUFBQyxDQUFDLENBQUMsQ0FBQztJQUMvRSxPQUFPO1FBQ0wsVUFBVTtRQUNWLGdCQUFnQjtRQUVoQixlQUFlO1FBQ2YsZUFBZTtRQUNmLGVBQWU7UUFFZixhQUFhO1FBQ2IsYUFBYTtRQUNiLGFBQWE7UUFFYixPQUFPO1FBQ1AsTUFBTTtLQUNQLENBQUM7QUFFSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBY3Rpb25zLCBFbnRpdHlDcnVkU3RhdGUsIEVudGl0eVNpbmdsZUNydWRTdGF0ZSwgSUNyaXRlcmlhLCBPcHRSZXF1ZXN0LCBTaW5ndWxhckFjdGlvbnN9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7RW50aXR5QWRhcHRlcn0gZnJvbSAnQG5ncngvZW50aXR5JztcbmltcG9ydCB7QWN0aW9uQ3JlYXRvciwgY3JlYXRlUmVkdWNlciwgb24sIFJlZHVjZXJUeXBlc30gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtzZWxlY3RJZFZhbHVlLCB0b0RpY3Rpb25hcnl9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZXZhbERhdGE8VD4oZm46ICgpID0+IFQsIGRlZjogYW55ID0gbnVsbCk6IFQge1xuICB0cnkge1xuICAgIHJldHVybiBmbigpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGRlZjtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ3J1ZE9uczxULCBTIGV4dGVuZHMgRW50aXR5Q3J1ZFN0YXRlPFQ+PihhZGFwdGVyOiBFbnRpdHlBZGFwdGVyPFQ+LCBpbml0aWFsU3RhdGU6IFMsIGFjdGlvbnM6IEFjdGlvbnM8VD4pOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgY29uc3Qgc2VhcmNoUmVxdWVzdE9uID0gb24oYWN0aW9ucy5TZWFyY2hSZXF1ZXN0LCAoc3RhdGU6IFMsIGNyaXRlcmlhOiBJQ3JpdGVyaWEpID0+IHtcbiAgICBpZiAoIWNyaXRlcmlhLnBhdGggJiYgIWNyaXRlcmlhLm1vZGUgJiYgIWNyaXRlcmlhLnF1ZXJ5UGFyYW1zKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0l0IGlzIG5vdCBwb3NzaWJsZSBhIHNlYXJjaCB3aXRob3V0IHBheWxvYWQsIHVzZSA6XFwne2NyaXRlcmlhOnt9fVxcJycpO1xuICAgIH1cblxuICAgIGNvbnN0IG1vZGUgPSBjcml0ZXJpYS5tb2RlIHx8ICcnO1xuICAgIGxldCBzZWxlY3RlZFN0YXRlUGFydGlhbCA9IHt9O1xuICAgIC8vIHNlIG5lbGxhIHN0cmluZ2EgZGVsbGEgbW9kYWxpdCdcbiAgICBpZiAobW9kZS5pbmRleE9mKCd1cGRhdGVNYW55LXNlbGVjdGVkJykgIT09IC0xKSB7XG4gICAgICBjb25zdCB7aXRlbVNlbGVjdGVkLCBpZFNlbGVjdGVkLCBlbnRpdGllc1NlbGVjdGVkLCBpZHNTZWxlY3RlZH0gPSBzdGF0ZTtcbiAgICAgIHNlbGVjdGVkU3RhdGVQYXJ0aWFsID0ge2l0ZW1TZWxlY3RlZCwgaWRTZWxlY3RlZCwgZW50aXRpZXNTZWxlY3RlZCwgaWRzU2VsZWN0ZWR9O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB7aXRlbVNlbGVjdGVkLCBpZFNlbGVjdGVkLCBlbnRpdGllc1NlbGVjdGVkLCBpZHNTZWxlY3RlZH0gPSBpbml0aWFsU3RhdGU7XG4gICAgICBzZWxlY3RlZFN0YXRlUGFydGlhbCA9IHtpdGVtU2VsZWN0ZWQsIGlkU2VsZWN0ZWQsIGVudGl0aWVzU2VsZWN0ZWQsIGlkc1NlbGVjdGVkfTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGlzTG9hZGluZzogdHJ1ZSxcbiAgICAgIGVycm9yOiBpbml0aWFsU3RhdGUuZXJyb3IsXG4gICAgICBsYXN0Q3JpdGVyaWE6IGNyaXRlcmlhLFxuICAgICAgLi4uc2VsZWN0ZWRTdGF0ZVBhcnRpYWxcbiAgICB9XG5cbiAgICBpZiAobW9kZS5pbmRleE9mKCdSRUZSRVNIJykgIT09IC0xIHx8IG1vZGUuaW5kZXhPZigndXBzZXJ0TWFueScpICE9PSAtMSkge1xuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cblxuICAgIHJldHVybiBhZGFwdGVyLnJlbW92ZUFsbChyZXN1bHQpO1xuICB9KTtcbiAgY29uc3QgZGVsZXRlUmVxdWVzdE9uID0gb24oYWN0aW9ucy5EZWxldGVSZXF1ZXN0LCAoc3RhdGU6IFMsIHJlcXVlc3Q6IE9wdFJlcXVlc3QpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7aXNMb2FkaW5nOiB0cnVlLCBlcnJvcjogaW5pdGlhbFN0YXRlLmVycm9yfVxuICAgICk7XG4gIH0pO1xuICBjb25zdCBkZWxldGVNYW55UmVxdWVzdE9uID0gb24oYWN0aW9ucy5EZWxldGVNYW55UmVxdWVzdCwgKHN0YXRlOiBTLCByZXF1ZXN0OiBPcHRSZXF1ZXN0KSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge2lzTG9hZGluZzogdHJ1ZSwgZXJyb3I6IGluaXRpYWxTdGF0ZS5lcnJvcn1cbiAgICApO1xuICB9KTtcbiAgY29uc3QgZWRpdFJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuRWRpdFJlcXVlc3QsIChzdGF0ZTogUywgcmVxdWVzdDogT3B0UmVxdWVzdCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtpc0xvYWRpbmc6IHRydWUsIGVycm9yOiBpbml0aWFsU3RhdGUuZXJyb3J9XG4gICAgKTtcbiAgfSk7XG4gIGNvbnN0IGVkaXRNYW55UmVxdWVzdE9uID0gb24oYWN0aW9ucy5FZGl0TWFueVJlcXVlc3QsIChzdGF0ZTogUywgcmVxdWVzdDogT3B0UmVxdWVzdCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtpc0xvYWRpbmc6IHRydWUsIGVycm9yOiBpbml0aWFsU3RhdGUuZXJyb3J9XG4gICAgKTtcbiAgfSk7XG4gIGNvbnN0IGNyZWF0ZVJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuQ3JlYXRlUmVxdWVzdCwgKHN0YXRlOiBTLCByZXF1ZXN0OiBPcHRSZXF1ZXN0KSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge2lzTG9hZGluZzogdHJ1ZSwgZXJyb3I6IGluaXRpYWxTdGF0ZS5lcnJvcn1cbiAgICApO1xuICB9KTtcbiAgY29uc3QgY3JlYXRlTWFueVJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuQ3JlYXRlTWFueVJlcXVlc3QsIChzdGF0ZTogUywgcmVxdWVzdDogT3B0UmVxdWVzdCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtpc0xvYWRpbmc6IHRydWUsIGVycm9yOiBpbml0aWFsU3RhdGUuZXJyb3J9XG4gICAgKTtcbiAgfSk7XG4gIGNvbnN0IHNlbGVjdFJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuU2VsZWN0UmVxdWVzdCwgKHN0YXRlOiBTLCByZXF1ZXN0OiBJQ3JpdGVyaWEpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7aXNMb2FkaW5nOiB0cnVlLCBlcnJvcjogaW5pdGlhbFN0YXRlLmVycm9yfVxuICAgICk7XG4gIH0pO1xuXG4gIGNvbnN0IHNlYXJjaFN1Y2Nlc3NPbiA9IG9uKGFjdGlvbnMuU2VhcmNoU3VjY2VzcywgKHN0YXRlOiBTLCB7dHlwZSwgaXRlbXMsIHJlcXVlc3R9KSA9PiB7XG4gICAgY29uc3QgbW9kZSA9IGV2YWxEYXRhKCgpID0+IHJlcXVlc3QubW9kZSwgbnVsbCkgfHwgJ3NldEFsbCc7XG4gICAgbGV0IG1ldGhvZDtcblxuICAgIGlmIChtb2RlLmluZGV4T2YoJ1JFRlJFU0gnKSAhPT0gLTEpIHtcbiAgICAgIG1ldGhvZCA9IGFkYXB0ZXIuc2V0QWxsO1xuICAgIH0gZWxzZSBpZiAobW9kZS5pbmRleE9mKCd1cHNlcnRNYW55JykgIT09IC0xKSB7XG4gICAgICBtZXRob2QgPSBhZGFwdGVyLnVwc2VydE1hbnk7XG4gICAgfSBlbHNlIGlmIChtb2RlLmluZGV4T2YoJ3NldEFsbCcpICE9PSAtMSkge1xuICAgICAgbWV0aG9kID0gYWRhcHRlci5zZXRBbGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1ldGhvZCA9IGFkYXB0ZXIuc2V0QWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHNlbGVjdGVkU3RhdGVQYXJ0aWFsID0ge2VudGl0aWVzU2VsZWN0ZWQ6IHN0YXRlLmVudGl0aWVzU2VsZWN0ZWQsIGlkc1NlbGVjdGVkOiBzdGF0ZS5pZHNTZWxlY3RlZH07XG4gICAgaWYgKG1vZGUuaW5kZXhPZigndXBkYXRlTWFueS1zZWxlY3RlZCcpICE9PSAtMSkge1xuICAgICAgLy8gY3JlbyB1bm8gc3RhdGUgdGVtcG9yYW5lbyBjb24gaSBkYXRpIGRlZ2xpIGVsZW1lbnRpIHNlbGV6aW9uYXRpXG4gICAgICBjb25zdCBzZWxlY3RlZFN0YXRlID0ge1xuICAgICAgICBlbnRpdGllczogc3RhdGUuZW50aXRpZXNTZWxlY3RlZCxcbiAgICAgICAgaWRzOiBzdGF0ZS5pZHNTZWxlY3RlZFxuICAgICAgfVxuICAgICAgLy8gcHJlcGFybyBnbGkgaXRlbSByaXRvcm5hdGkgZGFsbGEgcmljZXJjYSBwZXIgYWdnaW9ybmFyZVxuICAgICAgY29uc3QgaXRlbXNCOiBhbnkgPSBpdGVtcy5tYXAoKGl0ZW0pID0+IChPYmplY3QuYXNzaWduKHt9LCB7aWQ6IGFkYXB0ZXIuc2VsZWN0SWQoaXRlbSksIGNoYW5nZXM6IGl0ZW19KSkpO1xuICAgICAgLy8gdXRpbGl6em8gaWwgbWV0b2RvIGFkYXB0ZXIudXBkYXRlTWFueSBwZXIgYWdnaW9ybmFyZSBnbGkgZWxlbWVudGkgc2VsZXppb25hdGlcbiAgICAgIGNvbnN0IG5ld1NlbGVjdGVkU3RhdGUgPSBhZGFwdGVyLnVwZGF0ZU1hbnkoaXRlbXNCLCB7Li4uc2VsZWN0ZWRTdGF0ZSBhcyBhbnl9KTtcblxuICAgICAgc2VsZWN0ZWRTdGF0ZVBhcnRpYWwuZW50aXRpZXNTZWxlY3RlZCA9IG5ld1NlbGVjdGVkU3RhdGUuZW50aXRpZXM7XG4gICAgICBzZWxlY3RlZFN0YXRlUGFydGlhbC5pZHNTZWxlY3RlZCA9IG5ld1NlbGVjdGVkU3RhdGUuaWRzO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRob2QoaXRlbXMsXG4gICAgICB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAuLi5zZWxlY3RlZFN0YXRlUGFydGlhbCxcbiAgICAgICAgaXNMb2FkZWQ6IHRydWUsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yOiBudWxsXG4gICAgICB9XG4gICAgKTtcbiAgfSk7XG4gIGNvbnN0IGRlbGV0ZVN1Y2Nlc3NPbiA9IG9uKGFjdGlvbnMuRGVsZXRlU3VjY2VzcywgKHN0YXRlOiBTLCB7dHlwZSwgaWR9KSA9PiB7XG5cbiAgICAgIC8vIHRvbGdvIGRhbGxvIHN0b3JlLmlkc1NlbGVjdGVkIGwnZWxlbWVudG8gY2FuY2VsbGF0b1xuICAgICAgY29uc3QgaWRzU2VsZWN0ZWQgPSAoc3RhdGUuaWRzU2VsZWN0ZWQgYXMgYW55W10pLmZpbHRlcigoaWRBKSA9PiBpZEEgPT09IGlkKTtcbiAgICAgIGNvbnN0IGVudGl0aWVzU2VsZWN0ZWQgPSBpZHNTZWxlY3RlZC5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHtcbiAgICAgICAgcHJldltjdXJyXSA9IHN0YXRlLmVudGl0aWVzU2VsZWN0ZWRbY3Vycl07XG4gICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgfSwge30pO1xuXG4gICAgICAvLyBzZSBobyBjYW5jZWxsYXRvIGwnaWQgc2VlemlvbmF0bywgbG8gdG9sZ28gZGFsbG8gc3RvcmUuXG4gICAgICBjb25zdCBpZFNlbGVjdGVkID0gISFzdGF0ZS5pZFNlbGVjdGVkICYmIHN0YXRlLmlkU2VsZWN0ZWQgPT09IGlkID8gbnVsbCA6IHN0YXRlLmlkU2VsZWN0ZWQ7XG4gICAgICBjb25zdCBpdGVtU2VsZWN0ZWQgPSAhaWRTZWxlY3RlZCA/IG51bGwgOiBzdGF0ZS5pdGVtU2VsZWN0ZWQ7XG5cbiAgICAgIHJldHVybiBhZGFwdGVyLnJlbW92ZU9uZShpZCxcbiAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICB7fSwgc3RhdGUsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaXNMb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgICAgICBpZFNlbGVjdGVkLFxuICAgICAgICAgICAgaWRzU2VsZWN0ZWQsXG4gICAgICAgICAgICBpdGVtU2VsZWN0ZWQsXG4gICAgICAgICAgICBlbnRpdGllc1NlbGVjdGVkXG4gICAgICAgICAgfVxuICAgICAgICApKTtcbiAgICB9XG4gICk7XG5cbiAgY29uc3QgZGVsZXRlTWFueVN1Y2Nlc3NPbiA9IG9uKGFjdGlvbnMuRGVsZXRlTWFueVN1Y2Nlc3MsIChzdGF0ZTogUywge3R5cGUsIGlkc30pID0+IHtcblxuICAgIC8vIHRvbGdvIGRhbGxvIHN0b3JlLmlkc1NlbGVjdGVkIGdsaSBlbGVtZW50aSBjaGUgc29ubyBzdGF0aSBjYW5jZWxsYXRpLlxuICAgIGNvbnN0IGlkc1NlbGVjdGVkOiBzdHJpbmdbXSA9IChzdGF0ZS5pZHNTZWxlY3RlZCBhcyBhbnlbXSkuZmlsdGVyKChpZCkgPT4gIShpZCBpbiBpZHMpKTtcbiAgICBjb25zdCBlbnRpdGllc1NlbGVjdGVkID0gaWRzU2VsZWN0ZWQucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICBwcmV2W2N1cnJdID0gc3RhdGUuZW50aXRpZXNTZWxlY3RlZFtjdXJyXTtcbiAgICAgIHJldHVybiBwcmV2O1xuICAgIH0sIHt9KTtcblxuICAgIC8vIHNlIGhvIGNhbmNlbGxhdG8gbCdpZCBzZWV6aW9uYXRvLCBsbyB0b2xnbyBkYWxsbyBzdG9yZS5cbiAgICBjb25zdCBpZFNlbGVjdGVkID0gISFzdGF0ZS5pZFNlbGVjdGVkICYmIHN0YXRlLmlkU2VsZWN0ZWQgaW4gaWRzID8gbnVsbCA6IHN0YXRlLmlkU2VsZWN0ZWQ7XG4gICAgY29uc3QgaXRlbVNlbGVjdGVkID0gIWlkU2VsZWN0ZWQgPyBudWxsIDogc3RhdGUuaXRlbVNlbGVjdGVkO1xuICAgIHJldHVybiBhZGFwdGVyLnJlbW92ZU1hbnkoaWRzLFxuICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAge30sIHN0YXRlLFxuICAgICAgICB7XG4gICAgICAgICAgaXNMb2FkZWQ6IHRydWUsXG4gICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICBpZFNlbGVjdGVkLFxuICAgICAgICAgIGlkc1NlbGVjdGVkLFxuICAgICAgICAgIGl0ZW1TZWxlY3RlZCxcbiAgICAgICAgICBlbnRpdGllc1NlbGVjdGVkXG4gICAgICAgIH1cbiAgICAgICkpO1xuICB9KTtcblxuICBjb25zdCBkZWxldGVPbiA9IG9uKGFjdGlvbnMuRGVsZXRlLCAoc3RhdGU6IFMsIHt0eXBlLCBpZH0pID0+IHtcbiAgICAgIC8vIHRvbGdvIGRhbGxvIHN0b3JlLmlkc1NlbGVjdGVkIGwnZWxlbWVudG8gY2FuY2VsbGF0b1xuICAgICAgY29uc3QgaWRzU2VsZWN0ZWQgPSAoc3RhdGUuaWRzU2VsZWN0ZWQgYXMgYW55W10pLmZpbHRlcigoaWRBKSA9PiBpZEEgPT09IGlkKTtcblxuICAgICAgLy8gc2UgaG8gY2FuY2VsbGF0byBsJ2lkIHNlZXppb25hdG8sIGxvIHRvbGdvIGRhbGxvIHN0b3JlLlxuICAgICAgY29uc3QgaWRTZWxlY3RlZCA9ICEhc3RhdGUuaWRTZWxlY3RlZCAmJiBzdGF0ZS5pZFNlbGVjdGVkID09PSBpZCA/IG51bGwgOiBzdGF0ZS5pZFNlbGVjdGVkO1xuXG4gICAgICByZXR1cm4gYWRhcHRlci5yZW1vdmVPbmUoaWQsXG4gICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAge30sIHN0YXRlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgaWRTZWxlY3RlZCxcbiAgICAgICAgICAgIGlkc1NlbGVjdGVkXG4gICAgICAgICAgfVxuICAgICAgICApKTtcbiAgICB9XG4gICk7XG4gIGNvbnN0IHJlc3BvbnNlT24gPSBvbihhY3Rpb25zLlJlc3BvbnNlLCAoc3RhdGU6IFMsIHJlc3BvbnNlKSA9PiB7XG4gICAgY29uc3QgcmVzcG9uc2VzID0gWy4uLnN0YXRlLnJlc3BvbnNlcywgcmVzcG9uc2VdO1xuICAgIHJldHVybiB7Li4ue30sIC4uLnN0YXRlLCAuLi57cmVzcG9uc2VzfX07XG4gIH0pO1xuXG4gIGNvbnN0IHJlc2V0UmVzcG9uc2VzT24gPSBvbihhY3Rpb25zLlJlc2V0UmVzcG9uc2VzLCAoc3RhdGU6IFMpID0+IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlcyA9IFtdO1xuICAgICAgcmV0dXJuIHsuLi5zdGF0ZSwgLi4ue3Jlc3BvbnNlc319O1xuICAgIH1cbiAgKTtcbiAgY29uc3QgY3JlYXRlU3VjY2Vzc09uID0gb24oYWN0aW9ucy5DcmVhdGVTdWNjZXNzLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtfSkgPT4gYWRhcHRlci5hZGRPbmUoaXRlbSxcbiAgICBPYmplY3QuYXNzaWduKFxuICAgICAge30sIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogdHJ1ZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgIH1cbiAgICApKSk7XG4gIGNvbnN0IGNyZWF0ZU1hbnlTdWNjZXNzT24gPSBvbihhY3Rpb25zLkNyZWF0ZU1hbnlTdWNjZXNzLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtc30pID0+IGFkYXB0ZXIuYWRkTWFueShpdGVtcyxcbiAgICBPYmplY3QuYXNzaWduKFxuICAgICAge30sIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogdHJ1ZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgIH1cbiAgICApKSk7XG4gIGNvbnN0IGNyZWF0ZU9uID0gb24oYWN0aW9ucy5DcmVhdGUsIChzdGF0ZTogUywge3R5cGUsIGl0ZW19KSA9PiBhZGFwdGVyLmFkZE9uZShpdGVtLFxuICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSwgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgfVxuICAgICkpKTtcbiAgY29uc3QgZWRpdFN1Y2Nlc3NPbiA9IG9uKGFjdGlvbnMuRWRpdFN1Y2Nlc3MsIChzdGF0ZTogUywge2l0ZW0sIHR5cGV9KSA9PiBhZGFwdGVyLnVwc2VydE9uZShpdGVtLFxuICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSwgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgfVxuICAgICkpKTtcbiAgY29uc3QgZWRpdE1hbnlTdWNjZXNzT24gPSBvbihhY3Rpb25zLkVkaXRNYW55U3VjY2VzcywgKHN0YXRlOiBTLCB7aXRlbXMsIHR5cGV9KSA9PiBhZGFwdGVyLnVwc2VydE1hbnkoaXRlbXMsXG4gICAgT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LCBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IHRydWUsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yOiBudWxsXG4gICAgICB9XG4gICAgKSkpO1xuICBjb25zdCBlZGl0T24gPSBvbihhY3Rpb25zLkVkaXQsIChzdGF0ZTogUywge2l0ZW0sIHR5cGV9KSA9PiBhZGFwdGVyLnVwc2VydE9uZShpdGVtLFxuICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSwgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgfVxuICAgICkpKTtcbiAgY29uc3QgZmlsdGVyc09uID0gb24oYWN0aW9ucy5GaWx0ZXJzLCAoc3RhdGU6IFMsIHt0eXBlLCBmaWx0ZXJzfSkgPT4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHtmaWx0ZXJzfSkpO1xuXG4gIGNvbnN0IHJlbW92ZUFsbFNlbGVjdGVkT24gPSBvbihhY3Rpb25zLlJlbW92ZUFsbFNlbGVjdGVkLCAoc3RhdGU6IFMsIHt0eXBlfTogeyB0eXBlOiBzdHJpbmcgfSkgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaWRzU2VsZWN0ZWQ6IFtdLFxuICAgICAgLy8gaXRlbXNTZWxlY3RlZDogW10sIC8vdG9kbzogQGRlcHJlY2F0ZWQgZGEgY2FuY2VsbGFyZSBxdWVzdG8gdGlwbyBkaSBhc3NlZ25hemlvbmUuXG4gICAgICBlbnRpdGllc1NlbGVjdGVkOiB7fVxuICAgIH07XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcblxuICBjb25zdCBhZGRNYW55U2VsZWN0ZWRPbiA9IG9uKGFjdGlvbnMuQWRkTWFueVNlbGVjdGVkLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtc306IHsgdHlwZTogc3RyaW5nLCBpdGVtczogVFtdIH0pID0+IHtcbiAgICBjb25zdCBlbnRpdGllc0N1cnIgPSB0b0RpY3Rpb25hcnkoaXRlbXMsIGFkYXB0ZXIpO1xuICAgIGNvbnN0IGVudGl0aWVzU2VsZWN0ZWQgPSB7Li4uc3RhdGUuZW50aXRpZXNTZWxlY3RlZCwgLi4uZW50aXRpZXNDdXJyfTtcbiAgICBjb25zdCBpZHNTZWxlY3RlZCA9IE9iamVjdC5rZXlzKGVudGl0aWVzU2VsZWN0ZWQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaWRzU2VsZWN0ZWQsXG4gICAgICAvLyBpdGVtc1NlbGVjdGVkOiBpdGVtcywgLy90b2RvOiBAZGVwcmVjYXRlZCBkYSBjYW5jZWxsYXJlIHF1ZXN0byB0aXBvIGRpIGFzc2VnbmF6aW9uZS5cbiAgICAgIGVudGl0aWVzU2VsZWN0ZWRcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG5cbiAgY29uc3QgcmVtb3ZlTWFueVNlbGVjdGVkT24gPSBvbihhY3Rpb25zLlJlbW92ZU1hbnlTZWxlY3RlZCwgKHN0YXRlOiBTLCB7dHlwZSwgaWRzfTogeyB0eXBlOiBzdHJpbmcsIGlkczogc3RyaW5nW10gfSkgPT4ge1xuICAgIGNvbnN0IGlkc0FzU3RyaW5nID0gaWRzLm1hcCh4ID0+IHggKyAnJyk7XG4gICAgY29uc3QgaWRzU2VsZWN0ZWQgPSBPYmplY3Qua2V5cyhzdGF0ZS5lbnRpdGllc1NlbGVjdGVkKS5maWx0ZXIoaWQgPT4gIWlkc0FzU3RyaW5nLmluY2x1ZGVzKGlkICsgJycpKTtcbiAgICBjb25zdCBlbnRpdGllc1NlbGVjdGVkID0gaWRzU2VsZWN0ZWQucmVkdWNlKChwcmVjLCBjdXJyKSA9PiAoey4uLnByZWMsIFtjdXJyXTogc3RhdGUuZW50aXRpZXNTZWxlY3RlZFtjdXJyXX0pLCB7fSk7XG4gICAgLy8gY29uc3QgaXRlbXNTZWxlY3RlZCA9IE9iamVjdC52YWx1ZXMoZW50aXRpZXNTZWxlY3RlZCk7XG5cbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGlkc1NlbGVjdGVkLFxuICAgICAgLy8gaXRlbXNTZWxlY3RlZCwgLy90b2RvOiBAZGVwcmVjYXRlZCBkYSBjYW5jZWxsYXJlIHF1ZXN0byB0aXBvIGRpIGFzc2VnbmF6aW9uZS5cbiAgICAgIGVudGl0aWVzU2VsZWN0ZWRcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG5cbiAgY29uc3Qgc2VsZWN0SXRlbXNPbiA9IG9uKGFjdGlvbnMuU2VsZWN0SXRlbXMsIChzdGF0ZTogUywge3R5cGUsIGl0ZW1zfSkgPT4ge1xuICAgIGNvbnN0IGVudGl0aWVzU2VsZWN0ZWQgPSB0b0RpY3Rpb25hcnkoaXRlbXMsIGFkYXB0ZXIpO1xuICAgIGNvbnN0IGlkc1NlbGVjdGVkID0gT2JqZWN0LmtleXMoZW50aXRpZXNTZWxlY3RlZCk7XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBpZHNTZWxlY3RlZCxcbiAgICAgIC8vIGl0ZW1zU2VsZWN0ZWQ6IGl0ZW1zLFxuICAgICAgZW50aXRpZXNTZWxlY3RlZFxuICAgIH07XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcbiAgY29uc3Qgc2VsZWN0SXRlbU9uID0gb24oYWN0aW9ucy5TZWxlY3RJdGVtLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtfSkgPT4ge1xuICAgIGNvbnN0IGlkU2VsZWN0ZWQgPSBzZWxlY3RJZFZhbHVlKGl0ZW0sIGFkYXB0ZXIuc2VsZWN0SWQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaWRTZWxlY3RlZCxcbiAgICAgIGl0ZW1TZWxlY3RlZDogaXRlbVxuICAgIH07XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcbiAgY29uc3Qgc2VsZWN0U3VjY2Vzc09uID0gb24oYWN0aW9ucy5TZWxlY3RTdWNjZXNzLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtfSkgPT4ge1xuICAgICAgY29uc3QgaWRTZWxlY3RlZCA9IHNlbGVjdElkVmFsdWUoaXRlbSwgYWRhcHRlci5zZWxlY3RJZCk7XG4gICAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBpZFNlbGVjdGVkLFxuICAgICAgICBpdGVtU2VsZWN0ZWQ6IGl0ZW0sXG4gICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICk7XG4gIGNvbnN0IHNlYXJjaEZhaWx1cmVPbiA9IG9uKFxuICAgIGFjdGlvbnMuU2VhcmNoRmFpbHVyZSxcbiAgICAoc3RhdGU6IFMsIHt0eXBlLCBlcnJvcn0pID0+IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogZmFsc2UsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yXG4gICAgICB9XG4gICAgKSk7XG4gIGNvbnN0IGRlbGV0ZUZhaWx1cmVPbiA9IG9uKFxuICAgIGFjdGlvbnMuRGVsZXRlRmFpbHVyZSxcbiAgICAoc3RhdGU6IFMsIHt0eXBlLCBlcnJvcn0pID0+IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogZmFsc2UsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yXG4gICAgICB9XG4gICAgKSk7XG4gIGNvbnN0IGRlbGV0ZU1hbnlGYWlsdXJlT24gPSBvbihcbiAgICBhY3Rpb25zLkRlbGV0ZU1hbnlGYWlsdXJlLFxuICAgIChzdGF0ZTogUywge3R5cGUsIGVycm9yfSkgPT4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiBmYWxzZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3JcbiAgICAgIH1cbiAgICApKTtcbiAgY29uc3QgY3JlYXRlRmFpbHVyZU9uID0gb24oXG4gICAgYWN0aW9ucy5DcmVhdGVGYWlsdXJlLFxuICAgIChzdGF0ZTogUywge3R5cGUsIGVycm9yfSkgPT4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiBmYWxzZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3JcbiAgICAgIH1cbiAgICApKTtcbiAgY29uc3QgY3JlYXRlTWFueUZhaWx1cmVPbiA9IG9uKFxuICAgIGFjdGlvbnMuQ3JlYXRlTWFueUZhaWx1cmUsXG4gICAgKHN0YXRlOiBTLCB7dHlwZSwgZXJyb3J9KSA9PiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvclxuICAgICAgfVxuICAgICkpO1xuICBjb25zdCBlZGl0RmFpbHVyZU9uID0gb24oXG4gICAgYWN0aW9ucy5FZGl0RmFpbHVyZSxcbiAgICAoc3RhdGU6IFMsIHtlcnJvciwgdHlwZX0pID0+IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogZmFsc2UsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yXG4gICAgICB9XG4gICAgKSk7XG4gIGNvbnN0IGVkaXRNYW55RmFpbHVyZU9uID0gb24oXG4gICAgYWN0aW9ucy5FZGl0TWFueUZhaWx1cmUsXG4gICAgKHN0YXRlOiBTLCB7ZXJyb3IsIHR5cGV9KSA9PiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvclxuICAgICAgfVxuICAgICkpO1xuICBjb25zdCBzZWxlY3RGYWlsdXJlT24gPSBvbihcbiAgICBhY3Rpb25zLlNlbGVjdEZhaWx1cmUsXG4gICAgKHN0YXRlOiBTLCB7ZXJyb3IsIHR5cGV9KSA9PiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvclxuICAgICAgfVxuICAgICkpO1xuICBjb25zdCByZXNldE9uID0gb24oYWN0aW9ucy5SZXNldCwgKHN0YXRlOiBTKSA9PiAoey4uLnN0YXRlLCAuLi5pbml0aWFsU3RhdGV9KSk7XG4gIHJldHVybiB7XG4gICAgcmVzcG9uc2VPbixcbiAgICByZXNldFJlc3BvbnNlc09uLFxuICAgIHNlYXJjaFJlcXVlc3RPbixcbiAgICBkZWxldGVSZXF1ZXN0T24sXG4gICAgZGVsZXRlTWFueVJlcXVlc3RPbixcbiAgICBlZGl0UmVxdWVzdE9uLFxuICAgIGVkaXRNYW55UmVxdWVzdE9uLFxuICAgIGNyZWF0ZVJlcXVlc3RPbixcbiAgICBjcmVhdGVNYW55UmVxdWVzdE9uLFxuICAgIHNlbGVjdFJlcXVlc3RPbixcbiAgICBzZWFyY2hTdWNjZXNzT24sXG4gICAgZGVsZXRlU3VjY2Vzc09uLFxuICAgIGRlbGV0ZU1hbnlTdWNjZXNzT24sXG4gICAgY3JlYXRlU3VjY2Vzc09uLFxuICAgIGNyZWF0ZU1hbnlTdWNjZXNzT24sXG4gICAgc2VsZWN0U3VjY2Vzc09uLFxuICAgIGVkaXRTdWNjZXNzT24sXG4gICAgZWRpdE1hbnlTdWNjZXNzT24sXG4gICAgc2VhcmNoRmFpbHVyZU9uLFxuICAgIGRlbGV0ZUZhaWx1cmVPbixcbiAgICBkZWxldGVNYW55RmFpbHVyZU9uLFxuICAgIGNyZWF0ZUZhaWx1cmVPbixcbiAgICBjcmVhdGVNYW55RmFpbHVyZU9uLFxuICAgIHNlbGVjdEZhaWx1cmVPbixcbiAgICBlZGl0RmFpbHVyZU9uLFxuICAgIGVkaXRNYW55RmFpbHVyZU9uLFxuICAgIHJlc2V0T24sXG4gICAgZmlsdGVyc09uLFxuICAgIHNlbGVjdEl0ZW1zT24sXG4gICAgcmVtb3ZlQWxsU2VsZWN0ZWRPbixcbiAgICBhZGRNYW55U2VsZWN0ZWRPbixcbiAgICByZW1vdmVNYW55U2VsZWN0ZWRPbixcbiAgICBzZWxlY3RJdGVtT24sXG4gICAgZWRpdE9uLFxuICAgIGNyZWF0ZU9uLFxuICAgIGRlbGV0ZU9uXG4gIH07XG5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNydWRSZWR1Y2VyRmFjdG9yeTxUPihhZGFwdGVyOiBFbnRpdHlBZGFwdGVyPFQ+KSB7XG4gIGZ1bmN0aW9uIGNyZWF0ZUNydWRSZWR1Y2VyPFMgZXh0ZW5kcyBFbnRpdHlDcnVkU3RhdGU8VD4+KGluaXRpYWxTdGF0ZTogUywgYWN0aW9uczogQWN0aW9uczxUPiwgLi4ub25zOiBSZWR1Y2VyVHlwZXM8UywgQWN0aW9uQ3JlYXRvcltdPltdKSB7XG4gICAgY29uc3Qgey4uLmNydWRPbnN9ID0gY3JlYXRlQ3J1ZE9ucyhhZGFwdGVyLCBpbml0aWFsU3RhdGUsIGFjdGlvbnMpO1xuICAgIGNvbnN0IHRvdGFsT25zOiBSZWR1Y2VyVHlwZXM8UywgQWN0aW9uQ3JlYXRvcltdPltdID0gW1xuICAgICAgLi4ub25zLFxuICAgICAgLi4uT2JqZWN0LnZhbHVlcyhjcnVkT25zKVxuICAgIF07XG4gICAgcmV0dXJuIGNyZWF0ZVJlZHVjZXI8Uz4oaW5pdGlhbFN0YXRlLFxuICAgICAgLi4udG90YWxPbnNcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBjcmVhdGVDcnVkUmVkdWNlclxuICB9O1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTaW5ndWxhckNydWRPbnM8VCwgUyBleHRlbmRzIEVudGl0eVNpbmdsZUNydWRTdGF0ZTxUPj4oaW5pdGlhbFN0YXRlOiBTLCBhY3Rpb25zOiBTaW5ndWxhckFjdGlvbnM8VD4pOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcblxuICBjb25zdCBzZWxlY3RSZXF1ZXN0T24gPSBvbihhY3Rpb25zLlNlbGVjdFJlcXVlc3QsIChzdGF0ZTogUywge3R5cGV9KSA9PiAoXG4gICAge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBpc0xvYWRpbmc6IHRydWUsXG4gICAgICBlcnJvcjogbnVsbFxuICAgIH1cbiAgKSk7XG5cbiAgY29uc3Qgc2VsZWN0U3VjY2Vzc09uID0gb24oYWN0aW9ucy5TZWxlY3RTdWNjZXNzLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtfSkgPT4gKFxuICAgIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaXRlbSxcbiAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgIGVycm9yOiBudWxsXG4gICAgfVxuICApKTtcblxuICBjb25zdCBzZWxlY3RGYWlsdXJlT24gPSBvbihhY3Rpb25zLlNlbGVjdEZhaWx1cmUsIChzdGF0ZTogUywge3R5cGUsIGVycm9yfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBpc0xvYWRlZDogZmFsc2UsXG4gICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICBlcnJvclxuICB9KSk7XG5cbiAgY29uc3QgZWRpdFJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuRWRpdFJlcXVlc3QsIChzdGF0ZTogUykgPT4gKFxuICAgIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaXNMb2FkaW5nOiB0cnVlLFxuICAgICAgZXJyb3I6IG51bGxcbiAgICB9XG4gICkpO1xuXG4gIGNvbnN0IGVkaXRTdWNjZXNzT24gPSBvbihhY3Rpb25zLkVkaXRTdWNjZXNzLCAoc3RhdGU6IFMsIHtpdGVtLCB0eXBlfSkgPT4gKFxuICAgIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaXRlbSxcbiAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgIGVycm9yOiBudWxsXG4gICAgfVxuICApKTtcblxuICBjb25zdCBlZGl0T24gPSBvbihhY3Rpb25zLkVkaXQsIChzdGF0ZTogUywge2l0ZW0sIHR5cGV9KSA9PiAoXG4gICAge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBpdGVtLFxuICAgICAgaXNMb2FkZWQ6IHRydWUsXG4gICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgZXJyb3I6IG51bGxcbiAgICB9XG4gICkpO1xuXG4gIGNvbnN0IGVkaXRGYWlsdXJlT24gPSBvbihhY3Rpb25zLkVkaXRGYWlsdXJlLCAoc3RhdGU6IFMsIHt0eXBlLCBlcnJvcn0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgZXJyb3JcbiAgfSkpO1xuXG4gIGNvbnN0IHJlc3BvbnNlT24gPSBvbihhY3Rpb25zLlJlc3BvbnNlLCAoc3RhdGU6IFMsIHJlc3BvbnNlKSA9PiB7XG4gICAgY29uc3QgcmVzcG9uc2VzID0gWy4uLnN0YXRlLnJlc3BvbnNlcywgcmVzcG9uc2VdO1xuICAgIHJldHVybiB7Li4ue30sIC4uLnN0YXRlLCAuLi57cmVzcG9uc2VzfX07XG4gIH0pO1xuXG4gIGNvbnN0IHJlc2V0UmVzcG9uc2VzT24gPSBvbihhY3Rpb25zLlJlc2V0UmVzcG9uc2VzLCAoc3RhdGU6IFMpID0+IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlcyA9IFtdO1xuICAgICAgcmV0dXJuIHsuLi5zdGF0ZSwgLi4ue3Jlc3BvbnNlc319O1xuICAgIH1cbiAgKTtcblxuICBjb25zdCByZXNldE9uID0gb24oYWN0aW9ucy5SZXNldCwgKHN0YXRlOiBTKSA9PiAoey4uLnN0YXRlLCAuLi5pbml0aWFsU3RhdGV9KSk7XG4gIHJldHVybiB7XG4gICAgcmVzcG9uc2VPbixcbiAgICByZXNldFJlc3BvbnNlc09uLFxuXG4gICAgc2VsZWN0UmVxdWVzdE9uLFxuICAgIHNlbGVjdFN1Y2Nlc3NPbixcbiAgICBzZWxlY3RGYWlsdXJlT24sXG5cbiAgICBlZGl0UmVxdWVzdE9uLFxuICAgIGVkaXRTdWNjZXNzT24sXG4gICAgZWRpdEZhaWx1cmVPbixcblxuICAgIHJlc2V0T24sXG4gICAgZWRpdE9uLFxuICB9O1xuXG59XG4iXX0=
|
|
@@ -383,27 +383,22 @@ function createCrudOns(adapter, initialState, actions) {
|
|
|
383
383
|
if (!criteria.path && !criteria.mode && !criteria.queryParams) {
|
|
384
384
|
throw new Error('It is not possible a search without payload, use :\'{criteria:{}}\'');
|
|
385
385
|
}
|
|
386
|
-
const
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
itemSelected,
|
|
393
|
-
idSelected,
|
|
394
|
-
entitiesSelected,
|
|
395
|
-
idsSelected
|
|
396
|
-
});
|
|
386
|
+
const mode = criteria.mode || '';
|
|
387
|
+
let selectedStatePartial = {};
|
|
388
|
+
// se nella stringa della modalit'
|
|
389
|
+
if (mode.indexOf('updateMany-selected') !== -1) {
|
|
390
|
+
const { itemSelected, idSelected, entitiesSelected, idsSelected } = state;
|
|
391
|
+
selectedStatePartial = { itemSelected, idSelected, entitiesSelected, idsSelected };
|
|
397
392
|
}
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
393
|
+
else {
|
|
394
|
+
const { itemSelected, idSelected, entitiesSelected, idsSelected } = initialState;
|
|
395
|
+
selectedStatePartial = { itemSelected, idSelected, entitiesSelected, idsSelected };
|
|
396
|
+
}
|
|
397
|
+
const result = Object.assign(Object.assign(Object.assign({}, state), { isLoading: true, error: initialState.error, lastCriteria: criteria }), selectedStatePartial);
|
|
398
|
+
if (mode.indexOf('REFRESH') !== -1 || mode.indexOf('upsertMany') !== -1) {
|
|
399
|
+
return result;
|
|
400
|
+
}
|
|
401
|
+
return adapter.removeAll(result);
|
|
407
402
|
});
|
|
408
403
|
const deleteRequestOn = on(actions.DeleteRequest, (state, request) => {
|
|
409
404
|
return Object.assign({}, state, { isLoading: true, error: initialState.error });
|
|
@@ -429,33 +424,33 @@ function createCrudOns(adapter, initialState, actions) {
|
|
|
429
424
|
const searchSuccessOn = on(actions.SearchSuccess, (state, { type, items, request }) => {
|
|
430
425
|
const mode = evalData(() => request.mode, null) || 'setAll';
|
|
431
426
|
let method;
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
// console.log('REFRESH');
|
|
435
|
-
method = adapter.setAll;
|
|
436
|
-
break;
|
|
437
|
-
}
|
|
438
|
-
case 'upsertMany': {
|
|
439
|
-
// console.log('upsertMany');
|
|
440
|
-
method = adapter.upsertMany;
|
|
441
|
-
break;
|
|
442
|
-
}
|
|
443
|
-
case 'setAll': {
|
|
444
|
-
// console.log('setAll');
|
|
445
|
-
method = adapter.setAll;
|
|
446
|
-
break;
|
|
447
|
-
}
|
|
448
|
-
default: {
|
|
449
|
-
// console.log('default');
|
|
450
|
-
method = adapter.setAll;
|
|
451
|
-
break;
|
|
452
|
-
}
|
|
427
|
+
if (mode.indexOf('REFRESH') !== -1) {
|
|
428
|
+
method = adapter.setAll;
|
|
453
429
|
}
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
430
|
+
else if (mode.indexOf('upsertMany') !== -1) {
|
|
431
|
+
method = adapter.upsertMany;
|
|
432
|
+
}
|
|
433
|
+
else if (mode.indexOf('setAll') !== -1) {
|
|
434
|
+
method = adapter.setAll;
|
|
435
|
+
}
|
|
436
|
+
else {
|
|
437
|
+
method = adapter.setAll;
|
|
438
|
+
}
|
|
439
|
+
const selectedStatePartial = { entitiesSelected: state.entitiesSelected, idsSelected: state.idsSelected };
|
|
440
|
+
if (mode.indexOf('updateMany-selected') !== -1) {
|
|
441
|
+
// creo uno state temporaneo con i dati degli elementi selezionati
|
|
442
|
+
const selectedState = {
|
|
443
|
+
entities: state.entitiesSelected,
|
|
444
|
+
ids: state.idsSelected
|
|
445
|
+
};
|
|
446
|
+
// preparo gli item ritornati dalla ricerca per aggiornare
|
|
447
|
+
const itemsB = items.map((item) => (Object.assign({}, { id: adapter.selectId(item), changes: item })));
|
|
448
|
+
// utilizzo il metodo adapter.updateMany per aggiornare gli elementi selezionati
|
|
449
|
+
const newSelectedState = adapter.updateMany(itemsB, Object.assign({}, selectedState));
|
|
450
|
+
selectedStatePartial.entitiesSelected = newSelectedState.entities;
|
|
451
|
+
selectedStatePartial.idsSelected = newSelectedState.ids;
|
|
452
|
+
}
|
|
453
|
+
return method(items, Object.assign(Object.assign(Object.assign({}, state), selectedStatePartial), { isLoaded: true, isLoading: false, error: null }));
|
|
459
454
|
});
|
|
460
455
|
const deleteSuccessOn = on(actions.DeleteSuccess, (state, { type, id }) => {
|
|
461
456
|
// tolgo dallo store.idsSelected l'elemento cancellato
|