igniteui-angular 18.0.1 → 18.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/calendar/month-picker/month-picker.component.mjs +9 -1
- package/esm2022/lib/directives/for-of/for_of.directive.mjs +2 -2
- package/esm2022/lib/directives/for-of/for_of.sync.service.mjs +6 -1
- package/esm2022/lib/grids/common/events.mjs +1 -1
- package/esm2022/lib/grids/common/grid.interface.mjs +1 -1
- package/esm2022/lib/grids/common/strategy.mjs +2 -2
- package/esm2022/lib/grids/common/types.mjs +1 -1
- package/esm2022/lib/grids/grid-base.directive.mjs +41 -38
- package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.component.mjs +2 -2
- package/fesm2022/igniteui-angular.mjs +56 -40
- package/fesm2022/igniteui-angular.mjs.map +1 -1
- package/lib/grids/common/events.d.ts +30 -30
- package/lib/grids/common/grid.interface.d.ts +49 -49
- package/lib/grids/common/strategy.d.ts +1 -1
- package/lib/grids/common/types.d.ts +2 -2
- package/lib/grids/grid-base.directive.d.ts +2 -1
- package/migrations/update-18_0_0/index.js +1 -1
- package/package.json +1 -1
|
@@ -213,7 +213,7 @@ export class NoopSortingStrategy {
|
|
|
213
213
|
}
|
|
214
214
|
/**
|
|
215
215
|
* Represents a class extending the IgxSorting class
|
|
216
|
-
*
|
|
216
|
+
* Provides custom data record sorting.
|
|
217
217
|
*/
|
|
218
218
|
export class IgxDataRecordSorting extends IgxSorting {
|
|
219
219
|
/**
|
|
@@ -224,4 +224,4 @@ export class IgxDataRecordSorting extends IgxSorting {
|
|
|
224
224
|
return super.getFieldValue(obj.data, key, isDate, isTime);
|
|
225
225
|
}
|
|
226
226
|
}
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL3N0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFNNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBc0IsTUFBTSx3Q0FBd0MsQ0FBQztBQUdwRyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUM7QUFDekIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDO0FBQ3pCLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQztBQUNsQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUM7QUFnQzdCOzs7R0FHRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBQ25COzs7Ozs7S0FNQztJQUNNLElBQUksQ0FBQyxJQUFXLEVBQUUsV0FBaUMsRUFBRSxJQUFlO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7OztLQUlDO0lBQ1Msa0JBQWtCLENBQ3hCLElBQVcsRUFDWCxLQUFxQixFQUNyQixLQUFhLEVBQ2IsTUFBc0IsRUFDdEIsUUFBMEIsRUFDMUIsT0FBaUIsSUFBSSxFQUNyQixnQkFBdUIsRUFBRSxFQUN6QixhQUE2QixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtRQUV2RCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3RDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDbEMsSUFBSSxD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QVEsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFHLElBQUksRUFBRSx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxPQUFPO1lBQ0gsSUFBSSxFQUFFLFFBQVE7WUFDZCxRQUFRO1NBQ1gsQ0FBQztJQUNOLENBQUM7Q0FDSjtBQUVEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7YUFDYixjQUFTLEdBQXdCLElBQUksQ0FBQztJQUVyRCxnQkFBd0IsQ0FBQztJQUVsQixNQUFNLENBQUMsUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTSxJQUFJLENBQUMsSUFBVztRQUNuQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOztBQUdMOzs7R0FHRztBQUNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxVQUFVO0lBQ2pEOzs7TUFHRTtJQUNrQixhQUFhLENBQUMsR0FBUSxFQUFFLEdBQVcsRUFBRSxNQUFNLEdBQUcsS0FBSyxFQUFFLE1BQU0sR0FBRyxLQUFLO1FBQ2xGLE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2xvbmVBcnJheSwgcGFyc2VEYXRlLCByZXNvbHZlTmVzdGVkUGF0aCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgSUdyb3VwQnlFeHBhbmRTdGF0ZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LWV4cGFuZC1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdyb3VwQnlSZWNvcmQgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBieS1yZWNvcmQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElHcm91cGluZ1N0YXRlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwYnktc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IElHcm91cGluZ0V4cHJlc3Npb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBpbmctZXhwcmVzc2lvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdyb3VwQnlSZXN1bHQgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBpbmctcmVzdWx0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBnZXRIaWVyYXJjaHksIGlzSGllcmFyY2h5TWF0Y2ggfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBEZWZhdWx0U29ydGluZ1N0cmF0ZWd5LCBJU29ydGluZ0V4cHJlc3Npb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvc29ydGluZy1zdHJhdGVneSc7XG5pbXBvcnQgeyBHcmlkVHlwZSB9IGZyb20gJy4vZ3JpZC5pbnRlcmZhY2UnO1xuXG5jb25zdCBEQVRFX1RZUEUgPSAnZGF0ZSc7XG5jb25zdCBUSU1FX1RZUEUgPSAndGltZSc7XG5jb25zdCBEQVRFX1RJTUVfVFlQRSA9ICdkYXRlVGltZSc7XG5jb25zdCBTVFJJTkdfVFlQRSA9ICdzdHJpbmcnO1xuXG4vKiogXG4gKiBSZXByZXNlbnRzIGEgc29ydGluZyBzdHJhdGVneSBmb3IgdGhlIGdyaWQgZGF0YVxuICogQ29udGFpbnMgYSBzaW5nbGUgbWV0aG9kIHNvcnQgdGhhdCBzb3J0cyB0aGUgcHJvdmlkZWQgZGF0YSBiYXNlZCBvbiB0aGUgZ2l2ZW4gc29ydGluZyBleHByZXNzaW9ucyBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJR3JpZFNvcnRpbmdTdHJhdGVneSB7XG4gICAvKipcbiAgICogYGRhdGFgOiBUaGUgYXJyYXkgb2YgZGF0YSB0byBiZSBzb3J0ZWQuIENvdWxkIGJlIG9mIGFueSB0eXBlLlxuICAgKiBgZXhwcmVzc2lvbnNgOiBBbiBhcnJheSBvZiBzb3J0aW5nIGV4cHJlc3Npb25zIHRoYXQgZGVmaW5lIHRoZSBzb3J0aW5nIHJ1bGVzLiBUaGUgZXhwcmVzc2lvbiBjb250YWlucyBpbmZvcm1hdGlvbiBsaWtlIGZpbGUgbmFtZSwgd2hldGhlciB0aGUgbGV0dGVyIGNhc2Ugc2hvdWxkIGJlIHRha2VuIGludG8gYWNjb3VudCwgZXRjLlxuICAgKiBgZ3JpZGA6IChPcHRpb25hbCkgVGhlIGluc3RhbmNlIG9mIHRoZSBncmlkIHdoZXJlIHRoZSBzb3J0aW5nIGlzIGFwcGxpZWQuXG4gICAqIFJldHVybnMgYSBuZXcgYXJyYXkgd2l0aCB0aGUgZGF0YSBzb3J0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzb3J0aW5nIGV4cHJlc3Npb25zLlxuICAgKi9cbiAgICBzb3J0KGRhdGE6IGFueVtdLCBleHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW10sIGdyaWQ/OiBHcmlkVHlwZSk6IGFueVtdO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBncm91cGluZyBzdHJhdGVneSBmb3IgdGhlIGdyaWQgZGF0YSwgZXh0ZW5kaW5nIHRoZSBTb3J0aW5nIFN0cmF0ZWd5IGludGVyZmFjZSAoY29udGFpbnMgYSBzb3J0aW5nIG1ldGhvZCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRHcm91cGluZ1N0cmF0ZWd5IGV4dGVuZHMgSUdyaWRTb3J0aW5nU3RyYXRlZ3kge1xuICAvKipcbiAgICogVGhlIG1ldGhvZCBncm91cHMgdGhlIHByb3ZpZGVkIGRhdGEgYmFzZWQgb24gdGhlIGdpdmVuIGdyb3VwaW5nIHN0YXRlIGFuZCByZXR1cm5zIHRoZSByZXN1bHQuXG4gICAqIGBkYXRhYDogVGhlIGFycmF5IG9mIGRhdGEgdG8gYmUgZ3JvdXBlZC4gQ291bGQgYmUgb2YgYW55IHR5cGUuXG4gICAqIGBzdGF0ZWA6IFRoZSBncm91cGluZyBzdGF0ZSB0aGF0IGRlZmluZXMgdGhlIGdyb3VwaW5nIHNldHRpbmdzIGFuZCBleHByZXNzaW9ucy5cbiAgICogYGdyaWRgOiAoT3B0aW9uYWwpIFRoZSBpbnN0YW5jZSBvZiB0aGUgZ3JpZCB3aGVyZSB0aGUgZ3JvdXBpbmcgaXMgYXBwbGllZC5cbiAgICogYGdyb3Vwc1JlY29yZHNgOiAoT3B0aW9uYWwpIEFuIGFycmF5IHRoYXQgaG9sZHMgdGhlIHJlY29yZHMgZm9yIGVhY2ggZ3JvdXAuXG4gICAqIGBmdWxsUmVzdWx0YDogKE9wdGlvbmFsKSBUaGUgY29tcGxldGUgcmVzdWx0IG9mIGdyb3VwaW5nIGluY2x1ZGluZyBncm91cHMgYW5kIHN1bW1hcnkgZGF0YS5cbiAgICogUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgcmVzdWx0IG9mIHRoZSBncm91cGluZyBvcGVyYXRpb24uXG4gICAqL1xuICAgIGdyb3VwQnkoZGF0YTogYW55W10sIHN0YXRlOiBJR3JvdXBpbmdTdGF0ZSwgZ3JpZD86IGFueSwgZ3JvdXBzUmVjb3Jkcz86IGFueVtdLCBmdWxsUmVzdWx0PzogSUdyb3VwQnlSZXN1bHQpOiBJR3JvdXBCeVJlc3VsdDtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY2xhc3MgaW1wbGVtZW50aW5nIHRoZSBJR3JpZFNvcnRpbmdTdHJhdGVneSBpbnRlcmZhY2UuXG4gKiBJdCBwcm92aWRlcyBzb3J0aW5nIGZ1bmN0aW9uYWxpdHkgZm9yIGdyaWQgZGF0YSBiYXNlZCBvbiBzb3J0aW5nIGV4cHJlc3Npb25zLlxuICovXG5leHBvcnQgY2xhc3MgSWd4U29ydGluZyBpbXBsZW1lbnRzIElHcmlkU29ydGluZ1N0cmF0ZWd5IHtcbiAgICAvKipcbiAgICogU29ydHMgdGhlIHByb3ZpZGVkIGRhdGEgYmFzZWQgb24gdGhlIGdpdmVuIHNvcnRpbmcgZXhwcmVzc2lvbnMuXG4gICAqIGBkYXRhYDogVGhlIGFycmF5IG9mIGRhdGEgdG8gYmUgc29ydGVkLlxuICAgKiBgZXhwcmVzc2lvbnNgOiBBbiBhcnJheSBvZiBzb3J0aW5nIGV4cHJlc3Npb25zIHRoYXQgZGVmaW5lIHRoZSBzb3J0aW5nIHJ1bGVzLiBUaGUgZXhwcmVzc2lvbiBjb250YWlucyBpbmZvcm1hdGlvbiBsaWtlIGZpbGUgbmFtZSwgd2hldGhlciB0aGUgbGV0dGVyIGNhc2Ugc2hvdWxkIGJlIHRha2VuIGludG8gYWNjb3VudCwgZXRjLlxuICAgKiBgZ3JpZGA6IChPcHRpb25hbCkgVGhlIGluc3RhbmNlIG9mIHRoZSBncmlkIHdoZXJlIHRoZSBzb3J0aW5nIGlzIGFwcGxpZWQuXG4gICAqIFJldHVybnMgYSBuZXcgYXJyYXkgd2l0aCB0aGUgZGF0YSBzb3J0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzb3J0aW5nIGV4cHJlc3Npb25zLlxuICAgKi9cbiAgICBwdWJsaWMgc29ydChkYXRhOiBhbnlbXSwgZXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdLCBncmlkPzogR3JpZFR5cGUpOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNvcnREYXRhUmVjdXJzaXZlKGRhdGEsIGV4cHJlc3Npb25zLCAwLCBncmlkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICogUmVjdXJzaXZlbHkgZ3JvdXBzIHRoZSBwcm92aWRlZCBkYXRhIGJhc2VkIG9uIHRoZSBnaXZlbiBncm91cGluZyBzdGF0ZSBhbmQgcmV0dXJucyB0aGUgZ3JvdXBlZCByZXN1bHQuXG4gICAqIFJldHVybnMgYW4gYXJyYXkgY29udGFpbmluZyB0aGUgZ3JvdXBlZCByZXN1bHQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgICBwcm90ZWN0ZWQgZ3JvdXBEYXRhUmVjdXJzaXZlKFxuICAgICAgICBkYXRhOiBhbnlbXSxcbiAgICAgICAgc3RhdGU6IElHcm91cGluZ1N0YXRlLFxuICAgICAgICBsZXZlbDogbnVtYmVyLFxuICAgICAgICBwYXJlbnQ6IElHcm91cEJ5UmVjb3JkLFxuICAgICAgICBtZXRhZGF0YTogSUdyb3VwQnlSZWNvcmRbXSxcbiAgICAgICAgZ3JpZDogR3JpZFR5cGUgPSBudWxsLFxuICAgICAgICBncm91cHNSZWNvcmRzOiBhbnlbXSA9IFtdLFxuICAgICAgICBmdWxsUmVzdWx0OiBJR3JvdXBCeVJlc3VsdCA9IHsgZGF0YTogW10sIG1ldGFkYXRhOiBbXSB9XG4gICAgKTogYW55W10ge1xuICAgICAgICBjb25zdCBleHByZXNzaW9ucyA9IHN0YXRlLmV4cHJlc3Npb25zO1xuICAgICAgICBjb25zdCBleHBhbnNpb24gPSBzdGF0ZS5leHBhbnNpb247XG4gICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgICAgICB3aGlsZSAoaSA8IGRhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBjb2x1bW4gPSBncmlkID8gZ3JpZC5nZXRDb2x1bW5CeU5hbWUoZXhwcmVzc2lvbnNbbGV2ZWxdLmZpZWxkTmFtZSkgOiBudWxsO1xuICAgICAgICAgICAgY29uc3QgaXNEYXRlID0gY29sdW1uPy5kYXRhVHlwZSA9PT0gREFURV9UWVBFIHx8IGNvbHVtbj8uZGF0YVR5cGUgPT09IERBVEVfVElNRV9UWVBFO1xuICAgICAgICAgICAgY29uc3QgaXNUaW1lID0gY29sdW1uPy5kYXRhVHlwZSA9PT0gVElNRV9UWVBFIHx8IGNvbHVtbj8uZGF0YVR5cGUgPT09IERBVEVfVElNRV9UWVBFO1xuICAgICAgICAgICAgY29uc3QgaXNTdHJpbmcgPSBjb2x1bW4/LmRhdGFUeXBlID09PSBTVFJJTkdfVFlQRTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGhpcy5ncm91cGVkUmVjb3Jkc0J5RXhwcmVzc2lvbihkYXRhLCBpLCBleHByZXNzaW9uc1tsZXZlbF0sIGlzRGF0ZSwgaXNUaW1lLCBpc1N0cmluZyk7XG4gICAgICAgICAgICBjb25zdCBncm91cFJvdzogSUdyb3VwQnlSZWNvcmQgPSB7XG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbjogZXhwcmVzc2lvbnNbbGV2ZWxdLFxuICAgICAgICAgICAgICAgIGxldmVsLFxuICAgICAgICAgICAgICAgIHJlY29yZHM6IGNsb25lQXJyYXkoZ3JvdXApLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmdldEZpZWxkVmFsdWUoZ3JvdXBbMF0sIGV4cHJlc3Npb25zW2xldmVsXS5maWVsZE5hbWUsIGlzRGF0ZSwgaXNUaW1lKSxcbiAgICAgICAgICAgICAgICBncm91cFBhcmVudDogcGFyZW50LFxuICAgICAgICAgICAgICAgIGdyb3VwczogW10sXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBncmlkID8gZ3JpZC5yZW5kZXJlZFJvd0hlaWdodCA6IG51bGwsXG4gICAgICAgICAgICAgICAgY29sdW1uXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICAgIHBhcmVudC5ncm91cHMucHVzaChncm91cFJvdyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGdyb3Vwc1JlY29yZHMucHVzaChncm91cFJvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBoaWVyYXJjaHkgPSBnZXRIaWVyYXJjaHkoZ3JvdXBSb3cpO1xuICAgICAgICAgICAgY29uc3QgZXhwYW5kU3RhdGU6IElHcm91cEJ5RXhwYW5kU3RhdGUgPSBleHBhbnNpb24uZmluZCgocykgPT5cbiAgICAgICAgICAgICAgICBpc0hpZXJhcmNoeU1hdGNoKFxuICAgICAgICAgICAgICAgICAgICBzLmhpZXJhcmNoeSB8fCBbeyBmaWVsZE5hbWU6IGdyb3VwUm93LmV4cHJlc3Npb24uZmllbGROYW1lLCB2YWx1ZTogZ3JvdXBSb3cudmFsdWUgfV0sXG4gICAgICAgICAgICAgICAgICAgIGhpZXJhcmNoeSxcbiAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbnNcbiAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgIGNvbnN0IGV4cGFuZGVkID0gZXhwYW5kU3RhdGUgPyBleHBhbmRTdGF0ZS5leHBhbmRlZCA6IHN0YXRlLmRlZmF1bHRFeHBhbmRlZDtcbiAgICAgICAgICAgIGxldCByZWN1cnNpdmVSZXN1bHQ7XG4gICAgICAgICAgICByZXN1bHQucHVzaChncm91cFJvdyk7XG4gICAgICAgICAgICBtZXRhZGF0YS5wdXNoKG51bGwpO1xuICAgICAgICAgICAgZnVsbFJlc3VsdC5kYXRhLnB1c2goZ3JvdXBSb3cpO1xuICAgICAgICAgICAgZnVsbFJlc3VsdC5tZXRhZGF0YS5wdXNoKG51bGwpO1xuICAgICAgICAgICAgaWYgKGxldmVsIDwgZXhwcmVzc2lvbnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIHJlY3Vyc2l2ZVJlc3VsdCA9IHRoaXMuZ3JvdXBEYXRhUmVjdXJzaXZlKGdyb3VwLCBzdGF0ZSwgbGV2ZWwgKyAxLCBncm91cFJvdyxcbiAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWQgPyBtZXRhZGF0YSA6IFtdLCBncmlkLCBncm91cHNSZWNvcmRzLCBmdWxsUmVzdWx0KTtcbiAgICAgICAgICAgICAgICBpZiAoZXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdChyZWN1cnNpdmVSZXN1bHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBncm91cEl0ZW0gb2YgZ3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgZnVsbFJlc3VsdC5tZXRhZGF0YS5wdXNoKGdyb3VwUm93KTtcbiAgICAgICAgICAgICAgICAgICAgZnVsbFJlc3VsdC5kYXRhLnB1c2goZ3JvdXBJdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLnB1c2goLi4uZnVsbFJlc3VsdC5tZXRhZGF0YS5zbGljZShmdWxsUmVzdWx0Lm1ldGFkYXRhLmxlbmd0aCAtIGdyb3VwLmxlbmd0aCkpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCguLi5mdWxsUmVzdWx0LmRhdGEuc2xpY2UoZnVsbFJlc3VsdC5kYXRhLmxlbmd0aCAtIGdyb3VwLmxlbmd0aCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkgKz0gZ3JvdXAubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBmaWVsZCBmcm9tIHRoZSBnaXZlbiBvYmplY3QsIGNvbnNpZGVyaW5nIGRhdGUgYW5kIHRpbWUgZGF0YSB0eXBlcy5cbiAgICogYGtleWA6IFRoZSBrZXkgb2YgdGhlIGZpZWxkIHRvIHJldHJpZXZlLlxuICAgKiBgaXNEYXRlYDogKE9wdGlvbmFsKSBJbmRpY2F0ZXMgaWYgdGhlIGZpZWxkIGlzIG9mIHR5cGUgRGF0ZS5cbiAgICogYGlzVGltZWA6IChPcHRpb25hbCkgSW5kaWNhdGVzIGlmIHRoZSBmaWVsZCBpcyBvZiB0eXBlIFRpbWUuXG4gICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgZmllbGQgaW4gdGhlIGRhdGEgb2JqZWN0LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gICAgcHJvdGVjdGVkIGdldEZpZWxkVmFsdWU8VD4ob2JqOiBULCBrZXk6IHN0cmluZywgaXNEYXRlID0gZmFsc2UsIGlzVGltZSA9IGZhbHNlKSB7XG4gICAgICAgIGxldCByZXNvbHZlZFZhbHVlID0gcmVzb2x2ZU5lc3RlZFBhdGgob2JqLCBrZXkpO1xuICAgICAgICBjb25zdCBkYXRlID0gcGFyc2VEYXRlKHJlc29sdmVkVmFsdWUpO1xuICAgICAgICBpZiAoZGF0ZSAmJiBpc0RhdGUgJiYgaXNUaW1lKSB7XG4gICAgICAgICAgICByZXNvbHZlZFZhbHVlID0gZGF0ZTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRlICYmIGlzRGF0ZSAmJiAhaXNUaW1lKSB7XG4gICAgICAgICAgICByZXNvbHZlZFZhbHVlID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpLCAwLCAwLCAwLCAwKTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRlICYmIGlzVGltZSAmJiAhaXNEYXRlKSB7XG4gICAgICAgICAgICByZXNvbHZlZFZhbHVlID0gbmV3IERhdGUobmV3IERhdGUoKS5zZXRIb3VycyhkYXRlLmdldEhvdXJzKCksIGRhdGUuZ2V0TWludXRlcygpLCBkYXRlLmdldFNlY29uZHMoKSwgZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNvbHZlZFZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgKiBHcm91cHMgdGhlIHJlY29yZHMgaW4gdGhlIHByb3ZpZGVkIGRhdGEgYXJyYXkgYmFzZWQgb24gdGhlIGdpdmVuIGdyb3VwaW5nIGV4cHJlc3Npb24uXG4gICAqIGBncm91cGluZ0NvbXBhcmVyYDogKE9wdGlvbmFsKSBBIGN1c3RvbSBncm91cGluZyBjb21wYXJhdG9yIHRvIGRldGVybWluZSB0aGUgbWVtYmVycyBvZiB0aGUgZ3JvdXAuXG4gICAqIFJldHVybnMgYW4gYXJyYXkgY29udGFpbmluZyB0aGUgcmVjb3JkcyB0aGF0IGJlbG9uZyB0byB0aGUgZ3JvdXAuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgICBwcml2YXRlIGdyb3VwZWRSZWNvcmRzQnlFeHByZXNzaW9uPFQ+KFxuICAgICAgICBkYXRhOiBUW10sXG4gICAgICAgIGluZGV4OiBudW1iZXIsXG4gICAgICAgIGV4cHJlc3Npb246IElHcm91cGluZ0V4cHJlc3Npb24sXG4gICAgICAgIGlzRGF0ZSA9IGZhbHNlLFxuICAgICAgICBpc1RpbWUgPSBmYWxzZSxcbiAgICAgICAgaXNTdHJpbmc6IGJvb2xlYW4sXG4gICAgICAgIGdyb3VwaW5nQ29tcGFyZXI/OiAoYTogYW55LCBiOiBhbnksIGN1cnJSZWM6IGFueSwgZ3JvdXBSZWM6IGFueSkgPT4gbnVtYmVyXG4gICAgKTogVFtdIHtcbiAgICAgICAgY29uc3QgcmVzID0gW107XG4gICAgICAgIGNvbnN0IGtleSA9IGV4cHJlc3Npb24uZmllbGROYW1lO1xuICAgICAgICBjb25zdCBsZW4gPSBkYXRhLmxlbmd0aDtcbiAgICAgICAgY29uc3QgZ3JvdXBSZWNvcmQgPSBkYXRhW2luZGV4XTtcbiAgICAgICAgbGV0IGdyb3VwdmFsID0gdGhpcy5nZXRGaWVsZFZhbHVlKGdyb3VwUmVjb3JkLCBrZXksIGlzRGF0ZSwgaXNUaW1lKTtcbiAgICAgICAgcmVzLnB1c2goZ3JvdXBSZWNvcmQpO1xuICAgICAgICBpbmRleCsrO1xuICAgICAgICBjb25zdCBjb21wYXJlciA9IGV4cHJlc3Npb24uZ3JvdXBpbmdDb21wYXJlciB8fCBncm91cGluZ0NvbXBhcmVyIHx8IERlZmF1bHRTb3J0aW5nU3RyYXRlZ3kuaW5zdGFuY2UoKS5jb21wYXJlVmFsdWVzO1xuICAgICAgICBmb3IgKGxldCBpID0gaW5kZXg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY3VyclJlYyA9IGRhdGFbaV07XG4gICAgICAgICAgICBsZXQgZmllbGRWYWx1ZSA9IHRoaXMuZ2V0RmllbGRWYWx1ZShjdXJyUmVjLCBrZXksIGlzRGF0ZSwgaXNUaW1lKTtcbiAgICAgICAgICAgIGlmIChleHByZXNzaW9uLmlnbm9yZUNhc2UgJiYgaXNTdHJpbmcpIHtcbiAgICAgICAgICAgICAgICAvLyB3aGVuIGNvbHVtbidzIGRhdGFUeXBlIGlzIHN0cmluZyBidXQgdGhlIHZhbHVlIGlzIG51bWJlclxuICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUgPSBmaWVsZFZhbHVlPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgZ3JvdXB2YWwgPSBncm91cHZhbD8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNvbXBhcmVyKGZpZWxkVmFsdWUsIGdyb3VwdmFsLCBjdXJyUmVjLCBncm91cFJlY29yZCkgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXMucHVzaChjdXJyUmVjKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICogU29ydHMgdGhlIHByb3ZpZGVkIGRhdGEgYXJyYXkgYmFzZWQgb24gdGhlIGdpdmVuIHNvcnRpbmcgZXhwcmVzc2lvbnMuXG4gICAqIFRoZSBtZXRob2QgY2FuIGJlIHVzZWQgd2hlbiBtdWx0aXBsZSBzb3J0aW5nIGlzIHBlcmZvcm1lZCwgZ29pbmcgdGhyb3VnaCBlYWNoIG9uZVxuICAgKiBSZXR1cm5zIGEgbmV3IGFycmF5IHdpdGggdGhlIGRhdGEgc29ydGVkIGFjY29yZGluZyB0byB0aGUgc29ydGluZyBleHByZXNzaW9ucy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICAgIHByaXZhdGUgc29ydERhdGFSZWN1cnNpdmU8VD4oXG4gICAgICAgIGRhdGE6IFRbXSxcbiAgICAgICAgZXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdLFxuICAgICAgICBleHByZXNzaW9uSW5kZXggPSAwLFxuICAgICAgICBncmlkOiBHcmlkVHlwZVxuICAgICk6IFRbXSB7XG4gICAgICAgIGxldCBpOiBudW1iZXI7XG4gICAgICAgIGxldCBqOiBudW1iZXI7XG4gICAgICAgIGxldCBnYkRhdGE6IFRbXTtcbiAgICAgICAgbGV0IGdiRGF0YUxlbjogbnVtYmVyO1xuICAgICAgICBjb25zdCBleHByc0xlbiA9IGV4cHJlc3Npb25zLmxlbmd0aDtcbiAgICAgICAgY29uc3QgZGF0YUxlbiA9IGRhdGEubGVuZ3RoO1xuXG4gICAgICAgIGV4cHJlc3Npb25JbmRleCA9IGV4cHJlc3Npb25JbmRleCB8fCAwO1xuICAgICAgICBpZiAoZXhwcmVzc2lvbkluZGV4ID49IGV4cHJzTGVuIHx8IGRhdGFMZW4gPD0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXhwciA9IGV4cHJlc3Npb25zW2V4cHJlc3Npb25JbmRleF07XG4gICAgICAgIGlmICghZXhwci5zdHJhdGVneSkge1xuICAgICAgICAgICAgZXhwci5zdHJhdGVneSA9IERlZmF1bHRTb3J0aW5nU3RyYXRlZ3kuaW5zdGFuY2UoKSBhcyBhbnk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29sdW1uID0gZ3JpZD8uZ2V0Q29sdW1uQnlOYW1lKGV4cHIuZmllbGROYW1lKTtcbiAgICAgICAgY29uc3QgaXNEYXRlID0gY29sdW1uPy5kYXRhVHlwZSA9PT0gREFURV9UWVBFIHx8IGNvbHVtbj8uZGF0YVR5cGUgPT09IERBVEVfVElNRV9UWVBFO1xuICAgICAgICBjb25zdCBpc1RpbWUgPSBjb2x1bW4/LmRhdGFUeXBlID09PSBUSU1FX1RZUEUgfHwgY29sdW1uPy5kYXRhVHlwZSA9PT0gREFURV9USU1FX1RZUEU7XG4gICAgICAgIGNvbnN0IGlzU3RyaW5nID0gY29sdW1uPy5kYXRhVHlwZSA9PT0gU1RSSU5HX1RZUEU7XG4gICAgICAgIGRhdGEgPSBleHByLnN0cmF0ZWd5LnNvcnQoZGF0YSwgZXhwci5maWVsZE5hbWUsIGV4cHIuZGlyLCBleHByLmlnbm9yZUNhc2UsIHRoaXMuZ2V0RmllbGRWYWx1ZSwgaXNEYXRlLCBpc1RpbWUsIGdyaWQpO1xuICAgICAgICBpZiAoZXhwcmVzc2lvbkluZGV4ID09PSBleHByc0xlbiAtIDEpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9XG4gICAgICAgIC8vIGluIGNhc2Ugb2YgbXVsdGlwbGUgc29ydGluZ1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGF0YUxlbjsgaSsrKSB7XG4gICAgICAgICAgICBnYkRhdGEgPSB0aGlzLmdyb3VwZWRSZWNvcmRzQnlFeHByZXNzaW9uKGRhdGEsIGksIGV4cHIsIGlzRGF0ZSwgaXNUaW1lLCBpc1N0cmluZywgY29sdW1uPy5ncm91cGluZ0NvbXBhcmVyKTtcbiAgICAgICAgICAgIGdiRGF0YUxlbiA9IGdiRGF0YS5sZW5ndGg7XG4gICAgICAgICAgICBpZiAoZ2JEYXRhTGVuID4gMSkge1xuICAgICAgICAgICAgICAgIGdiRGF0YSA9IHRoaXMuc29ydERhdGFSZWN1cnNpdmUoZ2JEYXRhLCBleHByZXNzaW9ucywgZXhwcmVzc2lvbkluZGV4ICsgMSwgZ3JpZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgZ2JEYXRhTGVuOyBqKyspIHtcbiAgICAgICAgICAgICAgICBkYXRhW2kgKyBqXSA9IGdiRGF0YVtqXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkgKz0gZ2JEYXRhTGVuIC0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNsYXNzIGltcGxlbWVudGluZyB0aGUgSUdyaWRHcm91cGluZ1N0cmF0ZWd5IGludGVyZmFjZSBhbmQgZXh0ZW5kaW5nIHRoZSBJZ3hTb3J0aW5nIGNsYXNzLlxuICogSXQgcHJvdmlkZXMgYSBtZXRob2QgdG8gZ3JvdXAgZGF0YSBiYXNlZCBvbiB0aGUgZ2l2ZW4gZ3JvdXBpbmcgc3RhdGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBJZ3hHcm91cGluZyBleHRlbmRzIElneFNvcnRpbmcgaW1wbGVtZW50cyBJR3JpZEdyb3VwaW5nU3RyYXRlZ3kge1xuICAvKipcbiAgICogR3JvdXBzIHRoZSBwcm92aWRlZCBkYXRhIGJhc2VkIG9uIHRoZSBnaXZlbiBncm91cGluZyBzdGF0ZS5cbiAgICogUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgcmVzdWx0IG9mIHRoZSBncm91cGluZyBvcGVyYXRpb24uXG4gICAqL1xuICAgIHB1YmxpYyBncm91cEJ5KGRhdGE6IGFueVtdLCBzdGF0ZTogSUdyb3VwaW5nU3RhdGUsIGdyaWQ/OiBhbnksXG4gICAgICAgIGdyb3Vwc1JlY29yZHM/OiBhbnlbXSwgZnVsbFJlc3VsdDogSUdyb3VwQnlSZXN1bHQgPSB7IGRhdGE6IFtdLCBtZXRhZGF0YTogW10gfSk6IElHcm91cEJ5UmVzdWx0IHtcbiAgICAgICAgY29uc3QgbWV0YWRhdGE6IElHcm91cEJ5UmVjb3JkW10gPSBbXTtcbiAgICAgICAgY29uc3QgZ3JvdXBpbmcgPSB0aGlzLmdyb3VwRGF0YVJlY3Vyc2l2ZShkYXRhLCBzdGF0ZSwgMCwgbnVsbCwgbWV0YWRhdGEsIGdyaWQsIGdyb3Vwc1JlY29yZHMsIGZ1bGxSZXN1bHQpO1xuICAgICAgICBncmlkPy5ncm91cGluZ1BlcmZvcm1lZFN1YmplY3QubmV4dCgpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGF0YTogZ3JvdXBpbmcsXG4gICAgICAgICAgICBtZXRhZGF0YVxuICAgICAgICB9O1xuICAgIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY2xhc3MgaW1wbGVtZW50aW5nIHRoZSBJR3JpZFNvcnRpbmdTdHJhdGVneSBpbnRlcmZhY2Ugd2l0aCBhIG5vLW9wZXJhdGlvbiBzb3J0aW5nIHN0cmF0ZWd5LlxuICogSXQgcGVyZm9ybXMgbm8gc29ydGluZyBhbmQgcmV0dXJucyB0aGUgZGF0YSBhcyBpdCBpcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE5vb3BTb3J0aW5nU3RyYXRlZ3kgaW1wbGVtZW50cyBJR3JpZFNvcnRpbmdTdHJhdGVneSB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBOb29wU29ydGluZ1N0cmF0ZWd5ID0gbnVsbDtcblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IoKSB7IH1cblxuICAgIHB1YmxpYyBzdGF0aWMgaW5zdGFuY2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZSB8fCAodGhpcy5faW5zdGFuY2UgPSBuZXcgTm9vcFNvcnRpbmdTdHJhdGVneSgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc29ydChkYXRhOiBhbnlbXSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjbGFzcyBleHRlbmRpbmcgdGhlIElneFNvcnRpbmcgY2xhc3NcbiAqIFByb3ZpZHMgY3VzdG9tIGRhdGEgcmVjb3JkIHNvcnRpbmcuXG4gKi9cbmV4cG9ydCBjbGFzcyBJZ3hEYXRhUmVjb3JkU29ydGluZyBleHRlbmRzIElneFNvcnRpbmcge1xuICAgLyoqXG4gICAqIE92ZXJyaWRlcyB0aGUgYmFzZSBtZXRob2QgdG8gcmV0cmlldmUgdGhlIGZpZWxkIHZhbHVlIGZyb20gdGhlIGRhdGEgb2JqZWN0IGluc3RlYWQgb2YgdGhlIHJlY29yZCBvYmplY3QuXG4gICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgZmllbGQgaW4gdGhlIGRhdGEgb2JqZWN0LlxuICAgKi9cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZ2V0RmllbGRWYWx1ZShvYmo6IGFueSwga2V5OiBzdHJpbmcsIGlzRGF0ZSA9IGZhbHNlLCBpc1RpbWUgPSBmYWxzZSk6IGFueSB7XG4gICAgICAgIHJldHVybiBzdXBlci5nZXRGaWVsZFZhbHVlKG9iai5kYXRhLCBrZXksIGlzRGF0ZSwgaXNUaW1lKTtcbiAgICB9XG59XG4iXX0=
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL3N0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFNNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBc0IsTUFBTSx3Q0FBd0MsQ0FBQztBQUdwRyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUM7QUFDekIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDO0FBQ3pCLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQztBQUNsQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUM7QUFnQzdCOzs7R0FHRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBQ25COzs7Ozs7S0FNQztJQUNNLElBQUksQ0FBQyxJQUFXLEVBQUUsV0FBaUMsRUFBRSxJQUFlO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7OztLQUlDO0lBQ1Msa0JBQWtCLENBQ3hCLElBQVcsRUFDWCxLQUFxQixFQUNyQixLQUFhLEVBQ2IsTUFBc0IsRUFDdEIsUUFBMEIsRUFDMUIsT0FBaUIsSUFBSSxFQUNyQixnQkFBdUIsRUFBRSxFQUN6QixhQUE2QixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtRQUV2RCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3RDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDbEMsSUFBSSxD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QVEsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFHLElBQUksRUFBRSx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxPQUFPO1lBQ0gsSUFBSSxFQUFFLFFBQVE7WUFDZCxRQUFRO1NBQ1gsQ0FBQztJQUNOLENBQUM7Q0FDSjtBQUVEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7YUFDYixjQUFTLEdBQXdCLElBQUksQ0FBQztJQUVyRCxnQkFBd0IsQ0FBQztJQUVsQixNQUFNLENBQUMsUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTSxJQUFJLENBQUMsSUFBVztRQUNuQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOztBQUdMOzs7R0FHRztBQUNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxVQUFVO0lBQ2pEOzs7TUFHRTtJQUNrQixhQUFhLENBQUMsR0FBUSxFQUFFLEdBQVcsRUFBRSxNQUFNLEdBQUcsS0FBSyxFQUFFLE1BQU0sR0FBRyxLQUFLO1FBQ2xGLE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2xvbmVBcnJheSwgcGFyc2VEYXRlLCByZXNvbHZlTmVzdGVkUGF0aCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgSUdyb3VwQnlFeHBhbmRTdGF0ZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LWV4cGFuZC1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdyb3VwQnlSZWNvcmQgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBieS1yZWNvcmQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElHcm91cGluZ1N0YXRlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwYnktc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IElHcm91cGluZ0V4cHJlc3Npb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBpbmctZXhwcmVzc2lvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdyb3VwQnlSZXN1bHQgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBpbmctcmVzdWx0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBnZXRIaWVyYXJjaHksIGlzSGllcmFyY2h5TWF0Y2ggfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBEZWZhdWx0U29ydGluZ1N0cmF0ZWd5LCBJU29ydGluZ0V4cHJlc3Npb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvc29ydGluZy1zdHJhdGVneSc7XG5pbXBvcnQgeyBHcmlkVHlwZSB9IGZyb20gJy4vZ3JpZC5pbnRlcmZhY2UnO1xuXG5jb25zdCBEQVRFX1RZUEUgPSAnZGF0ZSc7XG5jb25zdCBUSU1FX1RZUEUgPSAndGltZSc7XG5jb25zdCBEQVRFX1RJTUVfVFlQRSA9ICdkYXRlVGltZSc7XG5jb25zdCBTVFJJTkdfVFlQRSA9ICdzdHJpbmcnO1xuXG4vKiogXG4gKiBSZXByZXNlbnRzIGEgc29ydGluZyBzdHJhdGVneSBmb3IgdGhlIGdyaWQgZGF0YVxuICogQ29udGFpbnMgYSBzaW5nbGUgbWV0aG9kIHNvcnQgdGhhdCBzb3J0cyB0aGUgcHJvdmlkZWQgZGF0YSBiYXNlZCBvbiB0aGUgZ2l2ZW4gc29ydGluZyBleHByZXNzaW9ucyBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJR3JpZFNvcnRpbmdTdHJhdGVneSB7XG4gICAvKipcbiAgICogYGRhdGFgOiBUaGUgYXJyYXkgb2YgZGF0YSB0byBiZSBzb3J0ZWQuIENvdWxkIGJlIG9mIGFueSB0eXBlLlxuICAgKiBgZXhwcmVzc2lvbnNgOiBBbiBhcnJheSBvZiBzb3J0aW5nIGV4cHJlc3Npb25zIHRoYXQgZGVmaW5lIHRoZSBzb3J0aW5nIHJ1bGVzLiBUaGUgZXhwcmVzc2lvbiBjb250YWlucyBpbmZvcm1hdGlvbiBsaWtlIGZpbGUgbmFtZSwgd2hldGhlciB0aGUgbGV0dGVyIGNhc2Ugc2hvdWxkIGJlIHRha2VuIGludG8gYWNjb3VudCwgZXRjLlxuICAgKiBgZ3JpZGA6IChPcHRpb25hbCkgVGhlIGluc3RhbmNlIG9mIHRoZSBncmlkIHdoZXJlIHRoZSBzb3J0aW5nIGlzIGFwcGxpZWQuXG4gICAqIFJldHVybnMgYSBuZXcgYXJyYXkgd2l0aCB0aGUgZGF0YSBzb3J0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzb3J0aW5nIGV4cHJlc3Npb25zLlxuICAgKi9cbiAgICBzb3J0KGRhdGE6IGFueVtdLCBleHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW10sIGdyaWQ/OiBHcmlkVHlwZSk6IGFueVtdO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBncm91cGluZyBzdHJhdGVneSBmb3IgdGhlIGdyaWQgZGF0YSwgZXh0ZW5kaW5nIHRoZSBTb3J0aW5nIFN0cmF0ZWd5IGludGVyZmFjZSAoY29udGFpbnMgYSBzb3J0aW5nIG1ldGhvZCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRHcm91cGluZ1N0cmF0ZWd5IGV4dGVuZHMgSUdyaWRTb3J0aW5nU3RyYXRlZ3kge1xuICAvKipcbiAgICogVGhlIG1ldGhvZCBncm91cHMgdGhlIHByb3ZpZGVkIGRhdGEgYmFzZWQgb24gdGhlIGdpdmVuIGdyb3VwaW5nIHN0YXRlIGFuZCByZXR1cm5zIHRoZSByZXN1bHQuXG4gICAqIGBkYXRhYDogVGhlIGFycmF5IG9mIGRhdGEgdG8gYmUgZ3JvdXBlZC4gQ291bGQgYmUgb2YgYW55IHR5cGUuXG4gICAqIGBzdGF0ZWA6IFRoZSBncm91cGluZyBzdGF0ZSB0aGF0IGRlZmluZXMgdGhlIGdyb3VwaW5nIHNldHRpbmdzIGFuZCBleHByZXNzaW9ucy5cbiAgICogYGdyaWRgOiAoT3B0aW9uYWwpIFRoZSBpbnN0YW5jZSBvZiB0aGUgZ3JpZCB3aGVyZSB0aGUgZ3JvdXBpbmcgaXMgYXBwbGllZC5cbiAgICogYGdyb3Vwc1JlY29yZHNgOiAoT3B0aW9uYWwpIEFuIGFycmF5IHRoYXQgaG9sZHMgdGhlIHJlY29yZHMgZm9yIGVhY2ggZ3JvdXAuXG4gICAqIGBmdWxsUmVzdWx0YDogKE9wdGlvbmFsKSBUaGUgY29tcGxldGUgcmVzdWx0IG9mIGdyb3VwaW5nIGluY2x1ZGluZyBncm91cHMgYW5kIHN1bW1hcnkgZGF0YS5cbiAgICogUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgcmVzdWx0IG9mIHRoZSBncm91cGluZyBvcGVyYXRpb24uXG4gICAqL1xuICAgIGdyb3VwQnkoZGF0YTogYW55W10sIHN0YXRlOiBJR3JvdXBpbmdTdGF0ZSwgZ3JpZD86IGFueSwgZ3JvdXBzUmVjb3Jkcz86IGFueVtdLCBmdWxsUmVzdWx0PzogSUdyb3VwQnlSZXN1bHQpOiBJR3JvdXBCeVJlc3VsdDtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY2xhc3MgaW1wbGVtZW50aW5nIHRoZSBJR3JpZFNvcnRpbmdTdHJhdGVneSBpbnRlcmZhY2UuXG4gKiBJdCBwcm92aWRlcyBzb3J0aW5nIGZ1bmN0aW9uYWxpdHkgZm9yIGdyaWQgZGF0YSBiYXNlZCBvbiBzb3J0aW5nIGV4cHJlc3Npb25zLlxuICovXG5leHBvcnQgY2xhc3MgSWd4U29ydGluZyBpbXBsZW1lbnRzIElHcmlkU29ydGluZ1N0cmF0ZWd5IHtcbiAgICAvKipcbiAgICogU29ydHMgdGhlIHByb3ZpZGVkIGRhdGEgYmFzZWQgb24gdGhlIGdpdmVuIHNvcnRpbmcgZXhwcmVzc2lvbnMuXG4gICAqIGBkYXRhYDogVGhlIGFycmF5IG9mIGRhdGEgdG8gYmUgc29ydGVkLlxuICAgKiBgZXhwcmVzc2lvbnNgOiBBbiBhcnJheSBvZiBzb3J0aW5nIGV4cHJlc3Npb25zIHRoYXQgZGVmaW5lIHRoZSBzb3J0aW5nIHJ1bGVzLiBUaGUgZXhwcmVzc2lvbiBjb250YWlucyBpbmZvcm1hdGlvbiBsaWtlIGZpbGUgbmFtZSwgd2hldGhlciB0aGUgbGV0dGVyIGNhc2Ugc2hvdWxkIGJlIHRha2VuIGludG8gYWNjb3VudCwgZXRjLlxuICAgKiBgZ3JpZGA6IChPcHRpb25hbCkgVGhlIGluc3RhbmNlIG9mIHRoZSBncmlkIHdoZXJlIHRoZSBzb3J0aW5nIGlzIGFwcGxpZWQuXG4gICAqIFJldHVybnMgYSBuZXcgYXJyYXkgd2l0aCB0aGUgZGF0YSBzb3J0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzb3J0aW5nIGV4cHJlc3Npb25zLlxuICAgKi9cbiAgICBwdWJsaWMgc29ydChkYXRhOiBhbnlbXSwgZXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdLCBncmlkPzogR3JpZFR5cGUpOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNvcnREYXRhUmVjdXJzaXZlKGRhdGEsIGV4cHJlc3Npb25zLCAwLCBncmlkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICogUmVjdXJzaXZlbHkgZ3JvdXBzIHRoZSBwcm92aWRlZCBkYXRhIGJhc2VkIG9uIHRoZSBnaXZlbiBncm91cGluZyBzdGF0ZSBhbmQgcmV0dXJucyB0aGUgZ3JvdXBlZCByZXN1bHQuXG4gICAqIFJldHVybnMgYW4gYXJyYXkgY29udGFpbmluZyB0aGUgZ3JvdXBlZCByZXN1bHQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgICBwcm90ZWN0ZWQgZ3JvdXBEYXRhUmVjdXJzaXZlKFxuICAgICAgICBkYXRhOiBhbnlbXSxcbiAgICAgICAgc3RhdGU6IElHcm91cGluZ1N0YXRlLFxuICAgICAgICBsZXZlbDogbnVtYmVyLFxuICAgICAgICBwYXJlbnQ6IElHcm91cEJ5UmVjb3JkLFxuICAgICAgICBtZXRhZGF0YTogSUdyb3VwQnlSZWNvcmRbXSxcbiAgICAgICAgZ3JpZDogR3JpZFR5cGUgPSBudWxsLFxuICAgICAgICBncm91cHNSZWNvcmRzOiBhbnlbXSA9IFtdLFxuICAgICAgICBmdWxsUmVzdWx0OiBJR3JvdXBCeVJlc3VsdCA9IHsgZGF0YTogW10sIG1ldGFkYXRhOiBbXSB9XG4gICAgKTogYW55W10ge1xuICAgICAgICBjb25zdCBleHByZXNzaW9ucyA9IHN0YXRlLmV4cHJlc3Npb25zO1xuICAgICAgICBjb25zdCBleHBhbnNpb24gPSBzdGF0ZS5leHBhbnNpb247XG4gICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgICAgICB3aGlsZSAoaSA8IGRhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBjb2x1bW4gPSBncmlkID8gZ3JpZC5nZXRDb2x1bW5CeU5hbWUoZXhwcmVzc2lvbnNbbGV2ZWxdLmZpZWxkTmFtZSkgOiBudWxsO1xuICAgICAgICAgICAgY29uc3QgaXNEYXRlID0gY29sdW1uPy5kYXRhVHlwZSA9PT0gREFURV9UWVBFIHx8IGNvbHVtbj8uZGF0YVR5cGUgPT09IERBVEVfVElNRV9UWVBFO1xuICAgICAgICAgICAgY29uc3QgaXNUaW1lID0gY29sdW1uPy5kYXRhVHlwZSA9PT0gVElNRV9UWVBFIHx8IGNvbHVtbj8uZGF0YVR5cGUgPT09IERBVEVfVElNRV9UWVBFO1xuICAgICAgICAgICAgY29uc3QgaXNTdHJpbmcgPSBjb2x1bW4/LmRhdGFUeXBlID09PSBTVFJJTkdfVFlQRTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGhpcy5ncm91cGVkUmVjb3Jkc0J5RXhwcmVzc2lvbihkYXRhLCBpLCBleHByZXNzaW9uc1tsZXZlbF0sIGlzRGF0ZSwgaXNUaW1lLCBpc1N0cmluZyk7XG4gICAgICAgICAgICBjb25zdCBncm91cFJvdzogSUdyb3VwQnlSZWNvcmQgPSB7XG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbjogZXhwcmVzc2lvbnNbbGV2ZWxdLFxuICAgICAgICAgICAgICAgIGxldmVsLFxuICAgICAgICAgICAgICAgIHJlY29yZHM6IGNsb25lQXJyYXkoZ3JvdXApLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmdldEZpZWxkVmFsdWUoZ3JvdXBbMF0sIGV4cHJlc3Npb25zW2xldmVsXS5maWVsZE5hbWUsIGlzRGF0ZSwgaXNUaW1lKSxcbiAgICAgICAgICAgICAgICBncm91cFBhcmVudDogcGFyZW50LFxuICAgICAgICAgICAgICAgIGdyb3VwczogW10sXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBncmlkID8gZ3JpZC5yZW5kZXJlZFJvd0hlaWdodCA6IG51bGwsXG4gICAgICAgICAgICAgICAgY29sdW1uXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICAgIHBhcmVudC5ncm91cHMucHVzaChncm91cFJvdyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGdyb3Vwc1JlY29yZHMucHVzaChncm91cFJvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBoaWVyYXJjaHkgPSBnZXRIaWVyYXJjaHkoZ3JvdXBSb3cpO1xuICAgICAgICAgICAgY29uc3QgZXhwYW5kU3RhdGU6IElHcm91cEJ5RXhwYW5kU3RhdGUgPSBleHBhbnNpb24uZmluZCgocykgPT5cbiAgICAgICAgICAgICAgICBpc0hpZXJhcmNoeU1hdGNoKFxuICAgICAgICAgICAgICAgICAgICBzLmhpZXJhcmNoeSB8fCBbeyBmaWVsZE5hbWU6IGdyb3VwUm93LmV4cHJlc3Npb24uZmllbGROYW1lLCB2YWx1ZTogZ3JvdXBSb3cudmFsdWUgfV0sXG4gICAgICAgICAgICAgICAgICAgIGhpZXJhcmNoeSxcbiAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbnNcbiAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgIGNvbnN0IGV4cGFuZGVkID0gZXhwYW5kU3RhdGUgPyBleHBhbmRTdGF0ZS5leHBhbmRlZCA6IHN0YXRlLmRlZmF1bHRFeHBhbmRlZDtcbiAgICAgICAgICAgIGxldCByZWN1cnNpdmVSZXN1bHQ7XG4gICAgICAgICAgICByZXN1bHQucHVzaChncm91cFJvdyk7XG4gICAgICAgICAgICBtZXRhZGF0YS5wdXNoKG51bGwpO1xuICAgICAgICAgICAgZnVsbFJlc3VsdC5kYXRhLnB1c2goZ3JvdXBSb3cpO1xuICAgICAgICAgICAgZnVsbFJlc3VsdC5tZXRhZGF0YS5wdXNoKG51bGwpO1xuICAgICAgICAgICAgaWYgKGxldmVsIDwgZXhwcmVzc2lvbnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIHJlY3Vyc2l2ZVJlc3VsdCA9IHRoaXMuZ3JvdXBEYXRhUmVjdXJzaXZlKGdyb3VwLCBzdGF0ZSwgbGV2ZWwgKyAxLCBncm91cFJvdyxcbiAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWQgPyBtZXRhZGF0YSA6IFtdLCBncmlkLCBncm91cHNSZWNvcmRzLCBmdWxsUmVzdWx0KTtcbiAgICAgICAgICAgICAgICBpZiAoZXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdChyZWN1cnNpdmVSZXN1bHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBncm91cEl0ZW0gb2YgZ3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgZnVsbFJlc3VsdC5tZXRhZGF0YS5wdXNoKGdyb3VwUm93KTtcbiAgICAgICAgICAgICAgICAgICAgZnVsbFJlc3VsdC5kYXRhLnB1c2goZ3JvdXBJdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLnB1c2goLi4uZnVsbFJlc3VsdC5tZXRhZGF0YS5zbGljZShmdWxsUmVzdWx0Lm1ldGFkYXRhLmxlbmd0aCAtIGdyb3VwLmxlbmd0aCkpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCguLi5mdWxsUmVzdWx0LmRhdGEuc2xpY2UoZnVsbFJlc3VsdC5kYXRhLmxlbmd0aCAtIGdyb3VwLmxlbmd0aCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkgKz0gZ3JvdXAubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBmaWVsZCBmcm9tIHRoZSBnaXZlbiBvYmplY3QsIGNvbnNpZGVyaW5nIGRhdGUgYW5kIHRpbWUgZGF0YSB0eXBlcy5cbiAgICogYGtleWA6IFRoZSBrZXkgb2YgdGhlIGZpZWxkIHRvIHJldHJpZXZlLlxuICAgKiBgaXNEYXRlYDogKE9wdGlvbmFsKSBJbmRpY2F0ZXMgaWYgdGhlIGZpZWxkIGlzIG9mIHR5cGUgRGF0ZS5cbiAgICogYGlzVGltZWA6IChPcHRpb25hbCkgSW5kaWNhdGVzIGlmIHRoZSBmaWVsZCBpcyBvZiB0eXBlIFRpbWUuXG4gICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgZmllbGQgaW4gdGhlIGRhdGEgb2JqZWN0LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gICAgcHJvdGVjdGVkIGdldEZpZWxkVmFsdWU8VD4ob2JqOiBULCBrZXk6IHN0cmluZywgaXNEYXRlID0gZmFsc2UsIGlzVGltZSA9IGZhbHNlKSB7XG4gICAgICAgIGxldCByZXNvbHZlZFZhbHVlID0gcmVzb2x2ZU5lc3RlZFBhdGgob2JqLCBrZXkpO1xuICAgICAgICBjb25zdCBkYXRlID0gcGFyc2VEYXRlKHJlc29sdmVkVmFsdWUpO1xuICAgICAgICBpZiAoZGF0ZSAmJiBpc0RhdGUgJiYgaXNUaW1lKSB7XG4gICAgICAgICAgICByZXNvbHZlZFZhbHVlID0gZGF0ZTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRlICYmIGlzRGF0ZSAmJiAhaXNUaW1lKSB7XG4gICAgICAgICAgICByZXNvbHZlZFZhbHVlID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpLCAwLCAwLCAwLCAwKTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRlICYmIGlzVGltZSAmJiAhaXNEYXRlKSB7XG4gICAgICAgICAgICByZXNvbHZlZFZhbHVlID0gbmV3IERhdGUobmV3IERhdGUoKS5zZXRIb3VycyhkYXRlLmdldEhvdXJzKCksIGRhdGUuZ2V0TWludXRlcygpLCBkYXRlLmdldFNlY29uZHMoKSwgZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNvbHZlZFZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgKiBHcm91cHMgdGhlIHJlY29yZHMgaW4gdGhlIHByb3ZpZGVkIGRhdGEgYXJyYXkgYmFzZWQgb24gdGhlIGdpdmVuIGdyb3VwaW5nIGV4cHJlc3Npb24uXG4gICAqIGBncm91cGluZ0NvbXBhcmVyYDogKE9wdGlvbmFsKSBBIGN1c3RvbSBncm91cGluZyBjb21wYXJhdG9yIHRvIGRldGVybWluZSB0aGUgbWVtYmVycyBvZiB0aGUgZ3JvdXAuXG4gICAqIFJldHVybnMgYW4gYXJyYXkgY29udGFpbmluZyB0aGUgcmVjb3JkcyB0aGF0IGJlbG9uZyB0byB0aGUgZ3JvdXAuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgICBwcml2YXRlIGdyb3VwZWRSZWNvcmRzQnlFeHByZXNzaW9uPFQ+KFxuICAgICAgICBkYXRhOiBUW10sXG4gICAgICAgIGluZGV4OiBudW1iZXIsXG4gICAgICAgIGV4cHJlc3Npb246IElHcm91cGluZ0V4cHJlc3Npb24sXG4gICAgICAgIGlzRGF0ZSA9IGZhbHNlLFxuICAgICAgICBpc1RpbWUgPSBmYWxzZSxcbiAgICAgICAgaXNTdHJpbmc6IGJvb2xlYW4sXG4gICAgICAgIGdyb3VwaW5nQ29tcGFyZXI/OiAoYTogYW55LCBiOiBhbnksIGN1cnJSZWM6IGFueSwgZ3JvdXBSZWM6IGFueSkgPT4gbnVtYmVyXG4gICAgKTogVFtdIHtcbiAgICAgICAgY29uc3QgcmVzID0gW107XG4gICAgICAgIGNvbnN0IGtleSA9IGV4cHJlc3Npb24uZmllbGROYW1lO1xuICAgICAgICBjb25zdCBsZW4gPSBkYXRhLmxlbmd0aDtcbiAgICAgICAgY29uc3QgZ3JvdXBSZWNvcmQgPSBkYXRhW2luZGV4XTtcbiAgICAgICAgbGV0IGdyb3VwdmFsID0gdGhpcy5nZXRGaWVsZFZhbHVlKGdyb3VwUmVjb3JkLCBrZXksIGlzRGF0ZSwgaXNUaW1lKTtcbiAgICAgICAgcmVzLnB1c2goZ3JvdXBSZWNvcmQpO1xuICAgICAgICBpbmRleCsrO1xuICAgICAgICBjb25zdCBjb21wYXJlciA9IGV4cHJlc3Npb24uZ3JvdXBpbmdDb21wYXJlciB8fCBncm91cGluZ0NvbXBhcmVyIHx8IERlZmF1bHRTb3J0aW5nU3RyYXRlZ3kuaW5zdGFuY2UoKS5jb21wYXJlVmFsdWVzO1xuICAgICAgICBmb3IgKGxldCBpID0gaW5kZXg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY3VyclJlYyA9IGRhdGFbaV07XG4gICAgICAgICAgICBsZXQgZmllbGRWYWx1ZSA9IHRoaXMuZ2V0RmllbGRWYWx1ZShjdXJyUmVjLCBrZXksIGlzRGF0ZSwgaXNUaW1lKTtcbiAgICAgICAgICAgIGlmIChleHByZXNzaW9uLmlnbm9yZUNhc2UgJiYgaXNTdHJpbmcpIHtcbiAgICAgICAgICAgICAgICAvLyB3aGVuIGNvbHVtbidzIGRhdGFUeXBlIGlzIHN0cmluZyBidXQgdGhlIHZhbHVlIGlzIG51bWJlclxuICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUgPSBmaWVsZFZhbHVlPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgZ3JvdXB2YWwgPSBncm91cHZhbD8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNvbXBhcmVyKGZpZWxkVmFsdWUsIGdyb3VwdmFsLCBjdXJyUmVjLCBncm91cFJlY29yZCkgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXMucHVzaChjdXJyUmVjKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICogU29ydHMgdGhlIHByb3ZpZGVkIGRhdGEgYXJyYXkgYmFzZWQgb24gdGhlIGdpdmVuIHNvcnRpbmcgZXhwcmVzc2lvbnMuXG4gICAqIFRoZSBtZXRob2QgY2FuIGJlIHVzZWQgd2hlbiBtdWx0aXBsZSBzb3J0aW5nIGlzIHBlcmZvcm1lZCwgZ29pbmcgdGhyb3VnaCBlYWNoIG9uZVxuICAgKiBSZXR1cm5zIGEgbmV3IGFycmF5IHdpdGggdGhlIGRhdGEgc29ydGVkIGFjY29yZGluZyB0byB0aGUgc29ydGluZyBleHByZXNzaW9ucy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICAgIHByaXZhdGUgc29ydERhdGFSZWN1cnNpdmU8VD4oXG4gICAgICAgIGRhdGE6IFRbXSxcbiAgICAgICAgZXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdLFxuICAgICAgICBleHByZXNzaW9uSW5kZXggPSAwLFxuICAgICAgICBncmlkOiBHcmlkVHlwZVxuICAgICk6IFRbXSB7XG4gICAgICAgIGxldCBpOiBudW1iZXI7XG4gICAgICAgIGxldCBqOiBudW1iZXI7XG4gICAgICAgIGxldCBnYkRhdGE6IFRbXTtcbiAgICAgICAgbGV0IGdiRGF0YUxlbjogbnVtYmVyO1xuICAgICAgICBjb25zdCBleHByc0xlbiA9IGV4cHJlc3Npb25zLmxlbmd0aDtcbiAgICAgICAgY29uc3QgZGF0YUxlbiA9IGRhdGEubGVuZ3RoO1xuXG4gICAgICAgIGV4cHJlc3Npb25JbmRleCA9IGV4cHJlc3Npb25JbmRleCB8fCAwO1xuICAgICAgICBpZiAoZXhwcmVzc2lvbkluZGV4ID49IGV4cHJzTGVuIHx8IGRhdGFMZW4gPD0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXhwciA9IGV4cHJlc3Npb25zW2V4cHJlc3Npb25JbmRleF07XG4gICAgICAgIGlmICghZXhwci5zdHJhdGVneSkge1xuICAgICAgICAgICAgZXhwci5zdHJhdGVneSA9IERlZmF1bHRTb3J0aW5nU3RyYXRlZ3kuaW5zdGFuY2UoKSBhcyBhbnk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29sdW1uID0gZ3JpZD8uZ2V0Q29sdW1uQnlOYW1lKGV4cHIuZmllbGROYW1lKTtcbiAgICAgICAgY29uc3QgaXNEYXRlID0gY29sdW1uPy5kYXRhVHlwZSA9PT0gREFURV9UWVBFIHx8IGNvbHVtbj8uZGF0YVR5cGUgPT09IERBVEVfVElNRV9UWVBFO1xuICAgICAgICBjb25zdCBpc1RpbWUgPSBjb2x1bW4/LmRhdGFUeXBlID09PSBUSU1FX1RZUEUgfHwgY29sdW1uPy5kYXRhVHlwZSA9PT0gREFURV9USU1FX1RZUEU7XG4gICAgICAgIGNvbnN0IGlzU3RyaW5nID0gY29sdW1uPy5kYXRhVHlwZSA9PT0gU1RSSU5HX1RZUEU7XG4gICAgICAgIGRhdGEgPSBleHByLnN0cmF0ZWd5LnNvcnQoZGF0YSwgZXhwci5maWVsZE5hbWUsIGV4cHIuZGlyLCBleHByLmlnbm9yZUNhc2UsIHRoaXMuZ2V0RmllbGRWYWx1ZSwgaXNEYXRlLCBpc1RpbWUsIGdyaWQpO1xuICAgICAgICBpZiAoZXhwcmVzc2lvbkluZGV4ID09PSBleHByc0xlbiAtIDEpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9XG4gICAgICAgIC8vIGluIGNhc2Ugb2YgbXVsdGlwbGUgc29ydGluZ1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGF0YUxlbjsgaSsrKSB7XG4gICAgICAgICAgICBnYkRhdGEgPSB0aGlzLmdyb3VwZWRSZWNvcmRzQnlFeHByZXNzaW9uKGRhdGEsIGksIGV4cHIsIGlzRGF0ZSwgaXNUaW1lLCBpc1N0cmluZywgY29sdW1uPy5ncm91cGluZ0NvbXBhcmVyKTtcbiAgICAgICAgICAgIGdiRGF0YUxlbiA9IGdiRGF0YS5sZW5ndGg7XG4gICAgICAgICAgICBpZiAoZ2JEYXRhTGVuID4gMSkge1xuICAgICAgICAgICAgICAgIGdiRGF0YSA9IHRoaXMuc29ydERhdGFSZWN1cnNpdmUoZ2JEYXRhLCBleHByZXNzaW9ucywgZXhwcmVzc2lvbkluZGV4ICsgMSwgZ3JpZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgZ2JEYXRhTGVuOyBqKyspIHtcbiAgICAgICAgICAgICAgICBkYXRhW2kgKyBqXSA9IGdiRGF0YVtqXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkgKz0gZ2JEYXRhTGVuIC0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNsYXNzIGltcGxlbWVudGluZyB0aGUgSUdyaWRHcm91cGluZ1N0cmF0ZWd5IGludGVyZmFjZSBhbmQgZXh0ZW5kaW5nIHRoZSBJZ3hTb3J0aW5nIGNsYXNzLlxuICogSXQgcHJvdmlkZXMgYSBtZXRob2QgdG8gZ3JvdXAgZGF0YSBiYXNlZCBvbiB0aGUgZ2l2ZW4gZ3JvdXBpbmcgc3RhdGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBJZ3hHcm91cGluZyBleHRlbmRzIElneFNvcnRpbmcgaW1wbGVtZW50cyBJR3JpZEdyb3VwaW5nU3RyYXRlZ3kge1xuICAvKipcbiAgICogR3JvdXBzIHRoZSBwcm92aWRlZCBkYXRhIGJhc2VkIG9uIHRoZSBnaXZlbiBncm91cGluZyBzdGF0ZS5cbiAgICogUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgcmVzdWx0IG9mIHRoZSBncm91cGluZyBvcGVyYXRpb24uXG4gICAqL1xuICAgIHB1YmxpYyBncm91cEJ5KGRhdGE6IGFueVtdLCBzdGF0ZTogSUdyb3VwaW5nU3RhdGUsIGdyaWQ/OiBhbnksXG4gICAgICAgIGdyb3Vwc1JlY29yZHM/OiBhbnlbXSwgZnVsbFJlc3VsdDogSUdyb3VwQnlSZXN1bHQgPSB7IGRhdGE6IFtdLCBtZXRhZGF0YTogW10gfSk6IElHcm91cEJ5UmVzdWx0IHtcbiAgICAgICAgY29uc3QgbWV0YWRhdGE6IElHcm91cEJ5UmVjb3JkW10gPSBbXTtcbiAgICAgICAgY29uc3QgZ3JvdXBpbmcgPSB0aGlzLmdyb3VwRGF0YVJlY3Vyc2l2ZShkYXRhLCBzdGF0ZSwgMCwgbnVsbCwgbWV0YWRhdGEsIGdyaWQsIGdyb3Vwc1JlY29yZHMsIGZ1bGxSZXN1bHQpO1xuICAgICAgICBncmlkPy5ncm91cGluZ1BlcmZvcm1lZFN1YmplY3QubmV4dCgpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGF0YTogZ3JvdXBpbmcsXG4gICAgICAgICAgICBtZXRhZGF0YVxuICAgICAgICB9O1xuICAgIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY2xhc3MgaW1wbGVtZW50aW5nIHRoZSBJR3JpZFNvcnRpbmdTdHJhdGVneSBpbnRlcmZhY2Ugd2l0aCBhIG5vLW9wZXJhdGlvbiBzb3J0aW5nIHN0cmF0ZWd5LlxuICogSXQgcGVyZm9ybXMgbm8gc29ydGluZyBhbmQgcmV0dXJucyB0aGUgZGF0YSBhcyBpdCBpcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE5vb3BTb3J0aW5nU3RyYXRlZ3kgaW1wbGVtZW50cyBJR3JpZFNvcnRpbmdTdHJhdGVneSB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBOb29wU29ydGluZ1N0cmF0ZWd5ID0gbnVsbDtcblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IoKSB7IH1cblxuICAgIHB1YmxpYyBzdGF0aWMgaW5zdGFuY2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZSB8fCAodGhpcy5faW5zdGFuY2UgPSBuZXcgTm9vcFNvcnRpbmdTdHJhdGVneSgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc29ydChkYXRhOiBhbnlbXSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjbGFzcyBleHRlbmRpbmcgdGhlIElneFNvcnRpbmcgY2xhc3NcbiAqIFByb3ZpZGVzIGN1c3RvbSBkYXRhIHJlY29yZCBzb3J0aW5nLlxuICovXG5leHBvcnQgY2xhc3MgSWd4RGF0YVJlY29yZFNvcnRpbmcgZXh0ZW5kcyBJZ3hTb3J0aW5nIHtcbiAgIC8qKlxuICAgKiBPdmVycmlkZXMgdGhlIGJhc2UgbWV0aG9kIHRvIHJldHJpZXZlIHRoZSBmaWVsZCB2YWx1ZSBmcm9tIHRoZSBkYXRhIG9iamVjdCBpbnN0ZWFkIG9mIHRoZSByZWNvcmQgb2JqZWN0LlxuICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIGZpZWxkIGluIHRoZSBkYXRhIG9iamVjdC5cbiAgICovXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldEZpZWxkVmFsdWUob2JqOiBhbnksIGtleTogc3RyaW5nLCBpc0RhdGUgPSBmYWxzZSwgaXNUaW1lID0gZmFsc2UpOiBhbnkge1xuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0RmllbGRWYWx1ZShvYmouZGF0YSwga2V5LCBpc0RhdGUsIGlzVGltZSk7XG4gICAgfVxufVxuIl19
|
|
@@ -4,4 +4,4 @@ import { InjectionToken } from '@angular/core';
|
|
|
4
4
|
* This allows injecting the grid transaction object into components or services.
|
|
5
5
|
*/
|
|
6
6
|
export const IgxGridTransaction = /*@__PURE__*/ new InjectionToken('IgxGridTransaction');
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFpRy9DOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQSxJQUFJLGNBQWMsQ0FBUyxvQkFBb0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgcmFuZ2Ugc2VsZWN0aW9uIGJldHdlZW4gY2VydGFpbiByb3dzIGFuZCBjb2x1bW5zIG9mIHRoZSBncmlkLlxuICogUmFuZ2Ugc2VsZWN0aW9uIGNhbiBiZSBtYWRlIGVpdGhlciB0aHJvdWdoIGRyYWcgc2VsZWN0aW9uIG9yIHRocm91Z2gga2V5Ym9hcmQgc2VsZWN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRTZWxlY3Rpb25SYW5nZSB7XG4gICAgLyoqIFRoZSBpbmRleCBvZiB0aGUgc3RhcnRpbmcgcm93IG9mIHRoZSBzZWxlY3Rpb24gcmFuZ2UuICovXG4gICAgcm93U3RhcnQ6IG51bWJlcjtcbiAgICAgLyoqIFRoZSBpbmRleCBvZiB0aGUgZW5kaW5nIHJvdyBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLiAqL1xuICAgIHJvd0VuZDogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIFRoZSBpZGVudGlmaWVyIG9yIGluZGV4IG9mIHRoZSBzdGFydGluZyBjb2x1bW4gb2YgdGhlIHNlbGVjdGlvbiByYW5nZS5cbiAgICAgKiBJdCBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY29sdW1uJ3MgZmllbGQgbmFtZSBvciBhIG51bWVyaWMgaW5kZXguXG4gICAgICovXG4gICAgY29sdW1uU3RhcnQ6IHN0cmluZyB8IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBUaGUgaWRlbnRpZmllciBvciBpbmRleCBvZiB0aGUgZW5kaW5nIGNvbHVtbiBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLlxuICAgICAqIEl0IGNhbiBiZSBlaXRoZXIgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBjb2x1bW4ncyBmaWVsZCBuYW1lIG9yIGEgbnVtZXJpYyBpbmRleC5cbiAgICAgKi9cbiAgICBjb2x1bW5FbmQ6IHN0cmluZyB8IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2luZ2xlIHNlbGVjdGVkIGNlbGwgb3Igbm9kZSBpbiBhIGdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVNlbGVjdGlvbk5vZGUge1xuICAgIC8qKlxuICAgICAqIFRoZSBpbmRleCBvZiB0aGUgc2VsZWN0ZWQgcm93LlxuICAgICAqL1xuICAgIHJvdzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIFRoZSBpbmRleCBvZiB0aGUgc2VsZWN0ZWQgY29sdW1uLlxuICAgICAqL1xuICAgIGNvbHVtbjogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIChPcHRpb25hbClcbiAgICAgKiBBZGRpdGlvbmFsIGxheW91dCBpbmZvcm1hdGlvbiBmb3IgbXVsdGktcm93IHNlbGVjdGlvbiBub2Rlcy5cbiAgICAgKi9cbiAgICBsYXlvdXQ/
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFpRy9DOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQSxJQUFJLGNBQWMsQ0FBUyxvQkFBb0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgcmFuZ2Ugc2VsZWN0aW9uIGJldHdlZW4gY2VydGFpbiByb3dzIGFuZCBjb2x1bW5zIG9mIHRoZSBncmlkLlxuICogUmFuZ2Ugc2VsZWN0aW9uIGNhbiBiZSBtYWRlIGVpdGhlciB0aHJvdWdoIGRyYWcgc2VsZWN0aW9uIG9yIHRocm91Z2gga2V5Ym9hcmQgc2VsZWN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRTZWxlY3Rpb25SYW5nZSB7XG4gICAgLyoqIFRoZSBpbmRleCBvZiB0aGUgc3RhcnRpbmcgcm93IG9mIHRoZSBzZWxlY3Rpb24gcmFuZ2UuICovXG4gICAgcm93U3RhcnQ6IG51bWJlcjtcbiAgICAgLyoqIFRoZSBpbmRleCBvZiB0aGUgZW5kaW5nIHJvdyBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLiAqL1xuICAgIHJvd0VuZDogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIFRoZSBpZGVudGlmaWVyIG9yIGluZGV4IG9mIHRoZSBzdGFydGluZyBjb2x1bW4gb2YgdGhlIHNlbGVjdGlvbiByYW5nZS5cbiAgICAgKiBJdCBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY29sdW1uJ3MgZmllbGQgbmFtZSBvciBhIG51bWVyaWMgaW5kZXguXG4gICAgICovXG4gICAgY29sdW1uU3RhcnQ6IHN0cmluZyB8IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBUaGUgaWRlbnRpZmllciBvciBpbmRleCBvZiB0aGUgZW5kaW5nIGNvbHVtbiBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLlxuICAgICAqIEl0IGNhbiBiZSBlaXRoZXIgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBjb2x1bW4ncyBmaWVsZCBuYW1lIG9yIGEgbnVtZXJpYyBpbmRleC5cbiAgICAgKi9cbiAgICBjb2x1bW5FbmQ6IHN0cmluZyB8IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2luZ2xlIHNlbGVjdGVkIGNlbGwgb3Igbm9kZSBpbiBhIGdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVNlbGVjdGlvbk5vZGUge1xuICAgIC8qKlxuICAgICAqIFRoZSBpbmRleCBvZiB0aGUgc2VsZWN0ZWQgcm93LlxuICAgICAqL1xuICAgIHJvdzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIFRoZSBpbmRleCBvZiB0aGUgc2VsZWN0ZWQgY29sdW1uLlxuICAgICAqL1xuICAgIGNvbHVtbjogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIChPcHRpb25hbClcbiAgICAgKiBBZGRpdGlvbmFsIGxheW91dCBpbmZvcm1hdGlvbiBmb3IgbXVsdGktcm93IHNlbGVjdGlvbiBub2Rlcy5cbiAgICAgKi9cbiAgICBsYXlvdXQ/OiBJTXVsdGlSb3dMYXlvdXROb2RlO1xuICAgIC8qKlxuICAgICAqIChPcHRpb25hbClcbiAgICAgKiBJbmRpY2F0ZXMgaWYgdGhlIHNlbGVjdGVkIG5vZGUgaXMgYSBzdW1tYXJ5IHJvdy5cbiAgICAgKiBUaGlzIHByb3BlcnR5IGlzIHRydWUgaWYgdGhlIHNlbGVjdGVkIHJvdyBpcyBhIHN1bW1hcnkgcm93OyBvdGhlcndpc2UsIGl0IGlzIGZhbHNlLlxuICAgICAqL1xuICAgIGlzU3VtbWFyeVJvdz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU11bHRpUm93TGF5b3V0Tm9kZSB7XG4gICAgcm93U3RhcnQ6IG51bWJlcjtcbiAgICBjb2xTdGFydDogbnVtYmVyO1xuICAgIHJvd0VuZDogbnVtYmVyO1xuICAgIGNvbEVuZDogbnVtYmVyO1xuICAgIGNvbHVtblZpc2libGVJbmRleDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHN0YXRlIG9mIHRoZSBrZXlib2FyZCB3aGVuIHNlbGVjdGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJU2VsZWN0aW9uS2V5Ym9hcmRTdGF0ZSB7XG4gICAgLyoqIFRoZSBzZWxlY3RlZCBub2RlIGluIHRoZSBncmlkLCBpZiBhbnkuIENhbiBiZSBudWxsIGlmIG5vIG5vZGUgaXMgc2VsZWN0ZWQuICovXG4gICAgbm9kZTogbnVsbCB8IElTZWxlY3Rpb25Ob2RlO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgU2hpZnQga2V5IGlzIGN1cnJlbnRseSBwcmVzc2VkIGR1cmluZyB0aGUgc2VsZWN0aW9uLiAqL1xuICAgIHNoaWZ0OiBib29sZWFuO1xuICAgIC8qKiBUaGUgcmFuZ2Ugb2YgdGhlIHNlbGVjdGVkIGNlbGxzIGluIHRoZSBncmlkLiBDYW4gYmUgbnVsbCB3aGVuIHJlc2V0dGluZyB0aGUgc2VsZWN0aW9uLiAqL1xuICAgIHJhbmdlOiBHcmlkU2VsZWN0aW9uUmFuZ2U7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBzZWxlY3Rpb24gaXMgY3VycmVudGx5IGFjdGl2ZSAoYmVpbmcgcGVyZm9ybWVkKS4gYEZhbHNlYCB3aGVuIHJlc2V0dGluZyB0aGUgc2VsZWN0aW9uLiAgKi9cbiAgICBhY3RpdmU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgc3RhdGUgb2YgdGhlIGdyaWQgc2VsZWN0aW9uIHVzaW5nIHBvaW50ZXIgaW50ZXJhY3Rpb25zIChtb3VzZSkuXG4gKiBFeHRlbmRzIElTZWxlY3Rpb25LZXlib2FyZFN0YXRlIHRvIGluY2x1ZGUgcG9pbnRlci1zcGVjaWZpYyBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElTZWxlY3Rpb25Qb2ludGVyU3RhdGUgZXh0ZW5kcyBJU2VsZWN0aW9uS2V5Ym9hcmRTdGF0ZSB7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBDdHJsIGtleSBpcyBjdXJyZW50bHkgcHJlc3NlZCBkdXJpbmcgdGhlIHNlbGVjdGlvbi4gKi9cbiAgICBjdHJsOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgcHJpbWFyeSBwb2ludGVyIGJ1dHRvbiBpcyBwcmVzc2VkIGR1cmluZyB0aGUgc2VsZWN0aW9uIChjbGlja2VkKS4gKi9cbiAgICBwcmltYXJ5QnV0dG9uOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHN0YXRlIG9mIHRoZSBjb2x1bW5zIGluIHRoZSBncmlkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDb2x1bW5TZWxlY3Rpb25TdGF0ZSB7XG4gICAgIC8qKiBSZXByZXNlbnRzIHRoZSBmaWVsZCBuYW1lIG9mIHRoZSBzZWxlY3RlZCBjb2x1bW4sIGlmIGFueS4gQ2FuIGJlIG51bGwgaWYgbm8gY29sdW1uIGlzIHNlbGVjdGVkLiAqL1xuICAgIGZpZWxkOiBudWxsIHwgc3RyaW5nO1xuICAgIC8qKiBBbiBhcnJheSBvZiBzdHJpbmdzIHJlcHJlc2VudGluZyB0aGUgcmFuZ2VzIG9mIHNlbGVjdGVkIGNvbHVtbnMgaW4gdGhlIGdyaWQuICovXG4gICAgcmFuZ2U6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIG92ZXJhbGwgc3RhdGUgb2YgZ3JpZCBzZWxlY3Rpb24sIGNvbWJpbmluZyBib3RoIGtleWJvYXJkIGFuZCBwb2ludGVyIGludGVyYWN0aW9uIHN0YXRlcy5cbiAqIEl0IGNhbiBiZSBlaXRoZXIgYW4gSVNlbGVjdGlvbktleWJvYXJkU3RhdGUgb3IgYW4gSVNlbGVjdGlvblBvaW50ZXJTdGF0ZS5cbiAqL1xuZXhwb3J0IHR5cGUgU2VsZWN0aW9uU3RhdGUgPSBJU2VsZWN0aW9uS2V5Ym9hcmRTdGF0ZSB8IElTZWxlY3Rpb25Qb2ludGVyU3RhdGU7XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIGZvciBhY2Nlc3NpbmcgdGhlIGdyaWQgdHJhbnNhY3Rpb24gb2JqZWN0LlxuICogVGhpcyBhbGxvd3MgaW5qZWN0aW5nIHRoZSBncmlkIHRyYW5zYWN0aW9uIG9iamVjdCBpbnRvIGNvbXBvbmVudHMgb3Igc2VydmljZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBJZ3hHcmlkVHJhbnNhY3Rpb24gPSAvKkBfX1BVUkVfXyovbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0lneEdyaWRUcmFuc2FjdGlvbicpO1xuIl19
|