@fgv/ts-utils 1.5.2 → 1.6.0
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/converter.d.ts +2 -2
- package/converter.js +1 -1
- package/converters.d.ts +9 -0
- package/converters.d.ts.map +1 -1
- package/converters.js +14 -2
- package/index.d.ts +2 -1
- package/index.d.ts.map +1 -1
- package/index.js +4 -2
- package/package.json +9 -6
- package/recordJarHelpers.d.ts +23 -0
- package/recordJarHelpers.d.ts.map +1 -0
- package/recordJarHelpers.js +217 -0
- package/utils.d.ts +2 -0
- package/utils.d.ts.map +1 -1
- package/utils.js +3 -1
- package/validation/array.d.ts +38 -0
- package/validation/array.d.ts.map +1 -0
- package/validation/array.js +65 -0
- package/validation/classes.d.ts +1 -0
- package/validation/classes.d.ts.map +1 -1
- package/validation/classes.js +4 -2
- package/validation/validators.d.ts +12 -1
- package/validation/validators.d.ts.map +1 -1
- package/validation/validators.js +15 -2
package/converter.d.ts
CHANGED
|
@@ -96,7 +96,7 @@ export interface Converter<T, TC = undefined> extends ConverterTraits {
|
|
|
96
96
|
mapConvert<T2>(mapConverter: Converter<T2>): Converter<T2, TC>;
|
|
97
97
|
/**
|
|
98
98
|
* Creates a {@link Converter} which maps the individual items of a collection
|
|
99
|
-
* resulting from this {@link Converter} using the supplied map
|
|
99
|
+
* resulting from this {@link Converter} using the supplied map function.
|
|
100
100
|
*
|
|
101
101
|
* @remarks
|
|
102
102
|
* Fails if `from` is not an array.
|
|
@@ -163,7 +163,7 @@ export interface Converter<T, TC = undefined> extends ConverterTraits {
|
|
|
163
163
|
*/
|
|
164
164
|
type InnerInferredType<TCONV> = TCONV extends Converter<infer TTO> ? (TTO extends Array<infer TTOELEM> ? InnerInferredType<TTOELEM>[] : TTO) : (TCONV extends Array<infer TELEM> ? InnerInferredType<TELEM>[] : TCONV);
|
|
165
165
|
/**
|
|
166
|
-
* Infers the type that will be returned by an
|
|
166
|
+
* Infers the type that will be returned by an instantiated converter. Works
|
|
167
167
|
* for complex as well as simple types.
|
|
168
168
|
* @example `Infer<typeof Converters.mapOf(Converters.stringArray)>` is `Map<string, string[]>`
|
|
169
169
|
* @beta
|
package/converter.js
CHANGED
|
@@ -219,4 +219,4 @@ class BaseConverter {
|
|
|
219
219
|
}
|
|
220
220
|
}
|
|
221
221
|
exports.BaseConverter = BaseConverter;
|
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxxQ0FBNkQ7QUEyTTdEOzs7R0FHRztBQUNILE1BQWEsYUFBYTtJQWdCdEI7Ozs7OztPQU1HO0lBQ0gsWUFDSSxTQUE2RSxFQUM3RSxjQUFtQixFQUNuQixNQUF3QjtRQXJCNUI7O1dBRUc7UUFDTyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQW9CMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUM7UUFDdEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFVBQVUsTUFBSyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU8sQ0FBQyxJQUFhLEVBQUUsT0FBWTtRQUN0QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLGFBQVAsT0FBTyxjQUFQLE9BQU8sR0FBSSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZUFBZSxDQUFDLElBQWEsRUFBRSxPQUFZLEVBQUUsT0FBaUI7UUFDakUsTUFBTSxNQUFNLEdBQUcsSUFB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RUQsT0FBTyxJQUFJLGFBQWEsQ0FBa0IsQ0FBQyxJQUFhLEVBQUUsS0FBdUIsRUFBRSxPQUFZLEVBQUUsRUFBRTtZQUMvRixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3ZFLE9BQU8sSUFBQSxnQkFBTyxFQUFDLENBQWdCLENBQUMsQ0FBQztZQUNyQyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNPLFFBQVEsQ0FBQyxRQUFhO1FBQzVCLE9BQU8sUUFBUSxhQUFSLFFBQVEsY0FBUixRQUFRLEdBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7O09BRUc7SUFDTyxPQUFPLENBQUMsTUFBaUM7UUFDL0MsT0FBTztZQUNILFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsR0FBRyxDQUFDLE1BQU0sYUFBTixNQUFNLGNBQU4sTUFBTSxHQUFJLEVBQUUsQ0FBQztTQUNwQixDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ08sS0FBSyxDQUFDLE1BQWdDO1FBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKO0FBbE9ELHNDQWtPQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjAgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuaW1wb3J0IHsgUmVzdWx0LCBmYWlsLCBtYXBSZXN1bHRzLCBzdWNjZWVkIH0gZnJvbSAnLi9yZXN1bHQnO1xuaW1wb3J0IHsgQnJhbmQgfSBmcm9tICcuL2JyYW5kJztcblxudHlwZSBPbkVycm9yID0gJ2ZhaWxPbkVycm9yJyB8ICdpZ25vcmVFcnJvcnMnO1xuXG4vKipcbiAqIENvbnZlcnRlciB0cmFpdHMuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udmVydGVyVHJhaXRzIHtcbiAgICByZWFkb25seSBpc09wdGlvbmFsOiBib29sZWFuO1xuICAgIHJlYWRvbmx5IGJyYW5kPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBDb252ZXJ0ZXIud2l0aENvbnN0cmFpbnR9LlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnN0cmFpbnRPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBkZXNjcmlwdGlvbiBmb3IgZXJyb3IgbWVzc2FnZXMgd2hlbiBjb25zdHJhaW50XG4gICAgICogZnVuY3Rpb24gcmV0dXJucyBmYWxzZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEdlbmVyaWMgY29udmVydGVyIHRvIGNvbnZlcnQgdW5rbm93biB0byBhIHRlbXBsYXRlZCB0eXBlIGA8VD5gLCB1c2luZ1xuICogaW50cmluc2ljIHJ1bGVzIG9yIGFzIG1vZGlmaWVkIGJ5IGFuIG9wdGlvbmFsIGNvbnZlcnNpb24gY29udGV4dFxuICogb2Ygb3B0aW9uYWwgdGVtcGxhdGVkIHR5cGUgYDxUQz5gIChkZWZhdWx0IGB1bmRlZmluZWRgKS5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb252ZXJ0ZXI8VCwgVEM9dW5kZWZpbmVkPiBleHRlbmRzIENvbnZlcnRlclRyYWl0cyB7XG4gICAgLyoqXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhpcyBlbGVtZW50IGlzIGV4cGxpY2l0bHkgb3B0aW9uYWwuXG4gICAgICovXG4gICAgIHJlYWRvbmx5IGlzT3B0aW9uYWw6IGJvb2xlYW47XG5cbiAgICAgLyoqXG4gICAgICAqIFJldHVybnMgdGhlIGJyYW5kIGZvciBhIGJyYW5kZWQgdHlwZS5cbiAgICAgICovXG4gICAgIHJlYWRvbmx5IGJyYW5kPzogc3RyaW5nO1xuXG4gICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGZyb20gYHVua25vd25gIHRvIGA8VD5gLlxuICAgICAqIEBwYXJhbSBmcm9tIC0gVGhlIGB1bmtub3duYCB0byBiZSBjb252ZXJ0ZWRcbiAgICAgKiBAcGFyYW0gY29udGV4dCAtIEFuIG9wdGlvbmFsIGNvbnZlcnNpb24gY29udGV4dCBvZiB0eXBlIGA8VEM+YCB0byBiZSB1c2VkIGluXG4gICAgICogdGhlIGNvbnZlcnNpb24uXG4gICAgICogQHJldHVybnMgQSB7QGxpbmsgUmVzdWx0fSB3aXRoIGEge0BsaW5rIFN1Y2Nlc3N9IGFuZCBhIHZhbHVlIG9uIHN1Y2Nlc3Mgb3IgYW5cbiAgICAgKiB7QGxpbmsgRmFpbHVyZX0gd2l0aCBhIGEgbWVzc2FnZSBvbiBmYWlsdXJlLlxuICAgICAqL1xuICAgIGNvbnZlcnQoZnJvbTogdW5rbm93biwgY29udGV4dD86IFRDKTogUmVzdWx0PFQ+O1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgZnJvbSBgdW5rbm93bmAgdG8gYDxUPmAgb3IgYHVuZGVmaW5lZGAsIGFzIGFwcHJvcHJpYXRlLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBJZiBgb25FcnJvcmAgaXMgYGZhaWxPbkVycm9yYCwgdGhlIGNvbnZlcnRlciBzdWNjZWVkcyBmb3JcbiAgICAgKiBgdW5kZWZpbmVkYCBvciBhbnkgY29udmVydGlibGUgdmFsdWUsIGJ1dCByZXBvcnRzIGFuIGVycm9yXG4gICAgICogaWYgaXQgZW5jb3VudGVycyBhIHZhbHVlIHRoYXQgY2Fubm90IGJlIGNvbnZlcnRlZC5cbiAgICAgKlxuICAgICAqIElmIGBvbkVycm9yYCBpcyBgaWdub3JlRXJyb3JzYCAoZGVmYXVsdCkgdGhlbiB2YWx1ZXMgdGhhdFxuICAgICAqIGNhbm5vdCBiZSBjb252ZXJ0ZWQgcmVzdWx0IGluIGEgc3VjY2Vzc2Z1bCByZXR1cm4gb2YgYHVuZGVmaW5lZGAuXG4gICAgICogQHBhcmFtIGZyb20gLSBUaGUgYHVua25vd25gIHRvIGJlIGNvbnZlcnRlZFxuICAgICAqIEBwYXJhbSBjb250ZXh0IC0gQW4gb3B0aW9uYWwgY29udmVyc2lvbiBjb250ZXh0IG9mIHR5cGUgYDxUQz5gIHRvIGJlIHVzZWQgaW5cbiAgICAgKiB0aGUgY29udmVyc2lvbi5cbiAgICAgKiBAcGFyYW0gb25FcnJvciAtIFNwZWNpZmllcyBoYW5kbGluZyBvZiB2YWx1ZXMgdGhhdCBjYW5ub3QgYmUgY29udmVydGVkIChkZWZhdWx0IGBpZ25vcmVFcnJvcnNgKS5cbiAgICAgKiBAcmV0dXJucyBBIHtAbGluayBSZXN1bHR9IHdpdGggYSB7QGxpbmsgU3VjY2Vzc30gYW5kIGEgdmFsdWUgb24gc3VjY2VzcyBvciBhblxuICAgICAqIHtAbGluayBGYWlsdXJlfSB3aXRoIGEgYSBtZXNzYWdlIG9uIGZhaWx1cmUuXG4gICAgICovXG4gICAgY29udmVydE9wdGlvbmFsKGZyb206IHVua25vd24sIGNvbnRleHQ/OiBUQywgb25FcnJvcj86IE9uRXJyb3IpOiBSZXN1bHQ8VHx1bmRlZmluZWQ+O1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHtAbGluayBDb252ZXJ0ZXJ9IGZvciBhbiBvcHRpb25hbCB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogSWYgYG9uRXJyb3JgIGlzIGBmYWlsT25FcnJvcmAsIHRoZSByZXN1bHRpbmcgY29udmVydGVyIHdpbGwgYWNjZXB0IGB1bmRlZmluZWRgXG4gICAgICogb3IgYSBjb252ZXJ0aWJsZSB2YWx1ZSwgYnV0IHJlcG9ydCBhbiBlcnJvciBpZiBpdCBlbmNvdW50ZXJzIGEgdmFsdWUgdGhhdCBjYW5ub3QgYmVcbiAgICAgKiBjb252ZXJ0ZWQuXG4gICAgICpcbiAgICAgKiBJZiBgb25FcnJvcmAgaXMgYGlnbm9yZUVycm9yc2AgKGRlZmF1bHQpIHRoZW4gdmFsdWVzIHRoYXQgY2Fubm90IGJlIGNvbnZlcnRlZCB3aWxsXG4gICAgICogcmVzdWx0IGluIGEgc3VjY2Vzc2Z1bCByZXR1cm4gb2YgYHVuZGVmaW5lZGAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb25FcnJvciAtIFNwZWNpZmllcyBoYW5kbGluZyBvZiB2YWx1ZXMgdGhhdCBjYW5ub3QgYmUgY29udmVydGVkIChkZWZhdWx0IGBpZ25vcmVFcnJvcnNgKS5cbiAgICAgKiBAcmV0dXJucyBBIG5ldyB7QGxpbmsgQ29udmVydGVyfSByZXR1cm5pbmcgYDxUfHVuZGVmaW5lZD5gLlxuICAgICAqICovXG4gICAgb3B0aW9uYWwob25FcnJvcj86IE9uRXJyb3IpOiBDb252ZXJ0ZXI8VHx1bmRlZmluZWQsIFRDPjtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSB7QGxpbmsgQ29udmVydGVyfSB3aGljaCBhcHBsaWVzIGEgKHBvc3NpYmx5KSBtYXBwaW5nIGNvbnZlcnNpb24gdG9cbiAgICAgKiB0aGUgY29udmVydGVkIHZhbHVlIG9mIHRoaXMge0BsaW5rIENvbnZlcnRlcn0uXG4gICAgICogQHBhcmFtIG1hcHBlciAtIEEgZnVuY3Rpb24gd2hpY2ggbWFwcyBmcm9tIHRoZSB0aGUgcmVzdWx0IHR5cGUgYDxUPmAgb2YgdGhpc1xuICAgICAqIGNvbnZlcnRlciB0byBhIG5ldyByZXN1bHQgdHlwZSBgPFQyPmAuXG4gICAgICogQHJldHVybnMgQSBuZXcge0BsaW5rIENvbnZlcnRlcn0gcmV0dXJuaW5nIGA8VDI+YC5cbiAgICAgKi9cbiAgICBtYXA8VDI+KG1hcHBlcjogKGZyb206IFQpID0+IFJlc3VsdDxUMj4pOiBDb252ZXJ0ZXI8VDIsIFRDPjtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSB7QGxpbmsgQ29udmVydGVyfSB3aGljaCBhcHBsaWVzIGFuIGFkZGl0aW9uYWwgc3VwcGxpZWRcbiAgICAgKiBjb252ZXJ0ZXIgdG8gdGhlIHJlc3VsdCBvZiB0aGlzIGNvbnZlcnRlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBtYXBDb252ZXJ0ZXIgLSBUaGUge0BsaW5rIENvbnZlcnRlcn0gdG8gYmUgYXBwbGllZCB0byB0aGVcbiAgICAgKiBjb252ZXJ0ZWQgcmVzdWx0IGZyb20gdGhpcyB7QGxpbmsgQ29udmVydGVyfS5cbiAgICAgKiBAcmV0dXJucyBBIG5ldyB7QGxpbmsgQ29udmVydGVyfSByZXR1cm5pbmcgYDxUMj5gLlxuICAgICAqL1xuICAgIG1hcENvbnZlcnQ8VDI+KG1hcENvbnZlcnRlcjogQ29udmVydGVyPFQyPik6IENvbnZlcnRlcjxUMiwgVEM+O1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHtAbGluayBDb252ZXJ0ZXJ9IHdoaWNoIG1hcHMgdGhlIGluZGl2aWR1YWwgaXRlbXMgb2YgYSBjb2xsZWN0aW9uXG4gICAgICogcmVzdWx0aW5nIGZyb20gdGhpcyB7QGxpbmsgQ29udmVydGVyfSB1c2luZyB0aGUgc3VwcGxpZWQgbWFwIGZ1Y3Rpb24uXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIEZhaWxzIGlmIGBmcm9tYCBpcyBub3QgYW4gYXJyYXkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWFwcGVyIC0gVGhlIG1hcCBmdW5jdGlvbiB0byBiZSBhcHBsaWVkIHRvIGVhY2ggZWxlbWVudCBvZiB0aGVcbiAgICAgKiByZXN1bHQgb2YgdGhpcyB7QGxpbmsgQ29udmVydGVyfS5cbiAgICAgKiBAcmV0dXJucyBBIG5ldyB7QGxpbmsgQ29udmVydGVyfSByZXR1cm5pbmcgYDxUSVtdPmAuXG4gICAgICovXG4gICAgbWFwSXRlbXM8VEk+KG1hcHBlcjogKGZyb206IHVua25vd24pID0+IFJlc3VsdDxUST4pOiBDb252ZXJ0ZXI8VElbXSwgVEM+O1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHtAbGluayBDb252ZXJ0ZXJ9IHdoaWNoIG1hcHMgdGhlIGluZGl2aWR1YWwgaXRlbXMgb2YgYSBjb2xsZWN0aW9uXG4gICAgICogcmVzdWx0aW5nIGZyb20gdGhpcyB7QGxpbmsgQ29udmVydGVyfSB1c2luZyB0aGUgc3VwcGxpZWQge0BsaW5rIENvbnZlcnRlcn0uXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIEZhaWxzIGlmIGBmcm9tYCBpcyBub3QgYW4gYXJyYXkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWFwQ29udmVydGVyIC0gVGhlIHtAbGluayBDb252ZXJ0ZXJ9IHRvIGJlIGFwcGxpZWQgdG8gZWFjaCBlbGVtZW50IG9mIHRoZVxuICAgICAqIHJlc3VsdCBvZiB0aGlzIHtAbGluayBDb252ZXJ0ZXJ9LlxuICAgICAqIEByZXR1cm5zIEEgbmV3IHtAbGluayBDb252ZXJ0ZXJ9IHJldHVybmluZyBgPFRJW10+YC5cbiAgICAgKi9cbiAgICAgbWFwQ29udmVydEl0ZW1zPFRJPihtYXBDb252ZXJ0ZXI6IENvbnZlcnRlcjxUSSwgdW5rbm93bj4pOiBDb252ZXJ0ZXI8VElbXSwgVEM+O1xuXG4gICAgIC8qKlxuICAgICAgKiBDcmVhdGVzIGEge0BsaW5rIENvbnZlcnRlcn0gd2hpY2ggYXBwbGllcyBhIHN1cHBsaWVkIHR5cGUgZ3VhcmQgdG8gdGhlIGNvbnZlcnNpb25cbiAgICAgICogcmVzdWx0LlxuICAgICAgKiBAcGFyYW0gZ3VhcmQgLSBUaGUgdHlwZSBndWFyZCBmdW5jdGlvbiB0byBhcHBseS5cbiAgICAgICogQHBhcmFtIG1lc3NhZ2UgLSBPcHRpb25hbCBtZXNzYWdlIHRvIGJlIHJlcG9ydGVkIGlmIHRoZSB0eXBlIGd1YXJkIGZhaWxzLlxuICAgICAgKiBAcmV0dXJucyBBIG5ldyB7QGxpbmsgQ29udmVydGVyfSByZXR1cm5pbmcgYDxUST5gLlxuICAgICAgKi9cbiAgICB3aXRoVHlwZUd1YXJkPFRJPihndWFyZDogKGZyb206IHVua25vd24pID0+IGZyb20gaXMgVEksIG1lc3NhZ2U/OiBzdHJpbmcpOiBDb252ZXJ0ZXI8VEksIFRDPjtcblxuICAgICAvKipcbiAgICAgICogQ3JlYXRlcyBhIHtAbGluayBDb252ZXJ0ZXJ9IHdoaWNoIGFwcGxpZXMgYSBzdXBwbGllZCB0eXBlIGd1YXJkIHRvIGVhY2ggbWVtYmVyIG9mXG4gICAgICAqIHRoZSBjb252ZXJzaW9uIHJlc3VsdCBmcm9tIHRoaXMgY29udmVydGVyLlxuICAgICAgKlxuICAgICAgKiBAcmVtYXJrc1xuICAgICAgKiBGYWlscyBpZiB0aGUgY29udmVyc2lvbiByZXN1bHQgaXMgbm90IGFuIGFycmF5IG9yIGlmIGFueSBtZW1iZXIgZmFpbHMgdGhlXG4gICAgICAqIHR5cGUgZ3VhcmQuXG4gICAgICAqIEBwYXJhbSBndWFyZCAtIFRoZSB0eXBlIGd1YXJkIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIGVhY2ggZWxlbWVudC5cbiAgICAgICogQHBhcmFtIG1lc3NhZ2UgLSBPcHRpb25hbCBtZXNzYWdlIHRvIGJlIHJlcG9ydGVkIGlmIHRoZSB0eXBlIGd1YXJkIGZhaWxzLlxuICAgICAgKiBAcmV0dXJucyBBIG5ldyB7QGxpbmsgQ29udmVydGVyfSByZXR1cm5pbmcgYDxUST5gLlxuICAgICAgKi9cbiAgICAgIHdpdGhJdGVtVHlwZUd1YXJkPFRJPihndWFyZDogKGZyb206IHVua25vd24pID0+IGZyb20gaXMgVEksIG1lc3NhZ2U/OiBzdHJpbmcpOiBDb252ZXJ0ZXI8VElbXSwgVEM+O1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHtAbGluayBDb252ZXJ0ZXJ9IHdoaWNoIGFwcGxpZXMgYW4gb3B0aW9uYWwgY29uc3RyYWludCB0byB0aGUgcmVzdWx0XG4gICAgICogb2YgdGhpcyBjb252ZXJzaW9uLiAgSWYgdGhpcyB7QGxpbmsgQ29udmVydGVyfSAodGhlIGJhc2UgY29udmVydGVyKSBzdWNjZWVkcywgdGhlIG5ld1xuICAgICAqIGNvbnZlcnRlciBjYWxscyBhIHN1cHBsaWVkIGNvbnN0cmFpbnQgZXZhbHVhdGlvbiBmdW5jdGlvbiB3aXRoIHRoZSBjb252ZXJzaW9uLCB3aGljaFxuICAgICAqIGZhaWxzIHRoZSBlbnRpcmUgY29udmVyc2lvbiBpZiB0aGUgY29uc3RyYWludCBmdW5jdGlvbiByZXR1cm5zIGVpdGhlciBgZmFsc2VgIG9yXG4gICAgICoge0BsaW5rIEZhaWx1cmUgfCBGYWlsdXJlPFQ+fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb25zdHJhaW50IC0gQ29uc3RyYWludCBldmFsdWF0aW9uIGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0ge0BsaW5rIENvbnN0cmFpbnRPcHRpb25zIHwgT3B0aW9uc30gZm9yIGNvbnN0cmFpbnQgZXZhbHVhdGlvbi5cbiAgICAgKiBAcmV0dXJucyBBIG5ldyB7QGxpbmsgQ29udmVydGVyfSByZXR1cm5pbmcgYDxUPmAuXG4gICAgICovXG4gICAgd2l0aENvbnN0cmFpbnQoXG4gICAgICAgIGNvbnN0cmFpbnQ6ICh2YWw6IFQpID0+IGJvb2xlYW58UmVzdWx0PFQ+LFxuICAgICAgICBvcHRpb25zPzogQ29uc3RyYWludE9wdGlvbnMsXG4gICAgKTogQ29udmVydGVyPFQsIFRDPjtcblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgYSBjb252ZXJ0ZXIgd2hpY2ggYWRkcyBhIGJyYW5kIHRvIHRoZSB0eXBlIHRvIHByZXZlbnQgbWlzbWF0Y2hlZCB1c2FnZVxuICAgICAqIG9mIHNpbXBsZSB0eXBlcy5cbiAgICAgKiBAcGFyYW0gYnJhbmQgLSBUaGUgYnJhbmQgdG8gYmUgYXBwbGllZCB0byB0aGUgcmVzdWx0IHZhbHVlLlxuICAgICAqIEByZXR1cm5zIEEge0BsaW5rIENvbnZlcnRlcn0gcmV0dXJuaW5nIGBCcmFuZDxULCBCPmAuXG4gICAgICovXG4gICAgd2l0aEJyYW5kPEIgZXh0ZW5kcyBzdHJpbmc+KGJyYW5kOiBCKTogQ29udmVydGVyPEJyYW5kPFQsIEI+LCBUQz47XG59XG5cbi8qKlxuICogaW50ZXJuYWxcbiAqL1xudHlwZSBJbm5lckluZmVycmVkVHlwZTxUQ09OVj4gPVxuICAgIFRDT05WIGV4dGVuZHMgQ29udmVydGVyPGluZmVyIFRUTz5cbiAgICAgICAgPyAoVFRPIGV4dGVuZHMgQXJyYXk8aW5mZXIgVFRPRUxFTT4gPyBJbm5lckluZmVycmVkVHlwZTxUVE9FTEVNPltdIDogVFRPKVxuICAgICAgICA6IChUQ09OViBleHRlbmRzIEFycmF5PGluZmVyIFRFTEVNPiA/IElubmVySW5mZXJyZWRUeXBlPFRFTEVNPltdIDogVENPTlYpO1xuXG4vKipcbiAqIEluZmVycyB0aGUgdHlwZSB0aGF0IHdpbGwgYmUgcmV0dXJuZWQgYnkgYW4gaW50c3RhbnRpYXRlZCBjb252ZXJ0ZXIuICBXb3Jrc1xuICogZm9yIGNvbXBsZXggYXMgd2VsbCBhcyBzaW1wbGUgdHlwZXMuXG4gKiBAZXhhbXBsZSBgSW5mZXI8dHlwZW9mIENvbnZlcnRlcnMubWFwT2YoQ29udmVydGVycy5zdHJpbmdBcnJheSk+YCBpcyBgTWFwPHN0cmluZywgc3RyaW5nW10+YFxuICogQGJldGFcbiAqL1xuZXhwb3J0IHR5cGUgSW5mZXI8VENPTlY+ID0gVENPTlYgZXh0ZW5kcyBDb252ZXJ0ZXI8aW5mZXIgVFRPPiA/IElubmVySW5mZXJyZWRUeXBlPFRUTz4gOiBuZXZlcjtcblxuLyoqXG4gKiBEZXByZWNhdGVkIG5hbWUgZm9yIEluZmVyPFQ+IHJldGFpbmVkIGZvciBjb21wYXRpYmlsaXR5XG4gKiBAZGVwcmVjYXRlZCB1c2UgQHNlZSBJbmZlciBpbnN0ZWFkXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IHR5cGUgQ29udmVydGVkVG9UeXBlPFRDT05WPiA9IEluZmVyPFRDT05WPjtcblxuLyoqXG4gKiBCYXNlIHRlbXBsYXRlZCB3cmFwcGVyIHRvIHNpbXBsaWZ5IGNyZWF0aW9uIG9mIG5ldyB7QGxpbmsgQ29udmVydGVyfXMuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXNlQ29udmVydGVyPFQsIFRDPXVuZGVmaW5lZD4gaW1wbGVtZW50cyBDb252ZXJ0ZXI8VCwgVEM+IHtcbiAgICAvKipcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2RlZmF1bHRDb250ZXh0PzogVEM7XG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9pc09wdGlvbmFsID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9icmFuZD86IHN0cmluZztcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbnZlcnRlcjogKGZyb206IHVua25vd24sIHNlbGY6IENvbnZlcnRlcjxULCBUQz4sIGNvbnRleHQ/OiBUQykgPT4gUmVzdWx0PFQ+O1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0cyBhIG5ldyB7QGxpbmsgQ29udmVydGVyfSB3aGljaCB1c2VzIHRoZSBzdXBwbGllZCBmdW5jdGlvbiB0byBwZXJmb3JtIHRoZSBjb252ZXJzaW9uLlxuICAgICAqIEBwYXJhbSBjb252ZXJ0ZXIgLSBUaGUgY29udmVyc2lvbiBmdW5jdGlvbiB0byBiZSBhcHBsaWVkLlxuICAgICAqIEBwYXJhbSBkZWZhdWx0Q29udGV4dCAtIE9wdGlvbmFsIGNvbnZlcnNpb24gY29udGV4dCB0byBiZSB1c2VkIGJ5IGRlZmF1bHQuXG4gICAgICogQHBhcmFtIHRyYWl0cyAtIE9wdGlvbmFsIHtAbGluayBDb252ZXJ0ZXJUcmFpdHMgfCB0cmFpdHN9IHRvIGJlIGFzc2lnbmVkIHRvIHRoZSByZXN1bHRpbmdcbiAgICAgKiBjb252ZXJ0ZXIuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBjb252ZXJ0ZXI6IChmcm9tOiB1bmtub3duLCBzZWxmOiBDb252ZXJ0ZXI8VCwgVEM+LCBjb250ZXh0PzogVEMpID0+IFJlc3VsdDxUPixcbiAgICAgICAgZGVmYXVsdENvbnRleHQ/OiBUQyxcbiAgICAgICAgdHJhaXRzPzogQ29udmVydGVyVHJhaXRzLFxuICAgICkge1xuICAgICAgICB0aGlzLl9jb252ZXJ0ZXIgPSBjb252ZXJ0ZXI7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRDb250ZXh0ID0gZGVmYXVsdENvbnRleHQ7XG4gICAgICAgIHRoaXMuX2lzT3B0aW9uYWwgPSAodHJhaXRzPy5pc09wdGlvbmFsID09PSB0cnVlKTtcbiAgICAgICAgdGhpcy5fYnJhbmQgPSAodHJhaXRzPy5icmFuZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICoge0Bpbmhlcml0ZG9jIENvbnZlcnRlci5pc09wdGlvbmFsfVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNPcHRpb25hbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzT3B0aW9uYWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICoge0Bpbmhlcml0ZG9jIENvbnZlcnRlci5icmFuZH1cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGJyYW5kKCk6IHN0cmluZ3x1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fYnJhbmQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICoge0Bpbmhlcml0ZG9jIENvbnZlcnRlci5jb252ZXJ0fVxuICAgICAqL1xuICAgIHB1YmxpYyBjb252ZXJ0KGZyb206IHVua25vd24sIGNvbnRleHQ/OiBUQyk6IFJlc3VsdDxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb252ZXJ0ZXIoZnJvbSwgdGhpcywgY29udGV4dCA/PyB0aGlzLl9kZWZhdWx0Q29udGV4dCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICoge0Bpbmhlcml0ZG9jIENvbnZlcnRlci5jb252ZXJ0T3B0aW9uYWx9XG4gICAgICovXG4gICAgcHVibGljIGNvbnZlcnRPcHRpb25hbChmcm9tOiB1bmtub3duLCBjb250ZXh0PzogVEMsIG9uRXJyb3I/OiBPbkVycm9yKTogUmVzdWx0PFR8dW5kZWZpbmVkPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2NvbnZlcnRlcihmcm9tLCB0aGlzLCB0aGlzLl9jb250ZXh0KGNvbnRleHQpKTtcbiAgICAgICAgaWYgKHJlc3VsdC5pc0ZhaWx1cmUoKSkge1xuICAgICAgICAgICAgb25FcnJvciA9IG9uRXJyb3IgPz8gJ2lnbm9yZUVycm9ycyc7XG4gICAgICAgICAgICByZXR1cm4gKChmcm9tID09PSB1bmRlZmluZWQpIHx8IG9uRXJyb3IgPT09ICdpZ25vcmVFcnJvcnMnKSA/IHN1Y2NlZWQodW5kZWZpbmVkKSA6IHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHtAaW5oZXJpdGRvYyBDb252ZXJ0ZXIub3B0aW9uYWx9XG4gICAgICovXG4gICAgcHVibGljIG9wdGlvbmFsKG9uRXJyb3I/OiBPbkVycm9yKTogQ29udmVydGVyPFR8dW5kZWZpbmVkLCBUQz4ge1xuICAgICAgICByZXR1cm4gbmV3IEJhc2VDb252ZXJ0ZXIoKGZyb206IHVua25vd24sIF9zZWxmOiBDb252ZXJ0ZXI8VHx1bmRlZmluZWQsIFRDPiwgY29udGV4dD86IFRDKSA9PiB7XG4gICAgICAgICAgICBvbkVycm9yID0gb25FcnJvciA/PyAnZmFpbE9uRXJyb3InO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udmVydE9wdGlvbmFsKGZyb20sIHRoaXMuX2NvbnRleHQoY29udGV4dCksIG9uRXJyb3IpO1xuICAgICAgICB9KS5fd2l0aCh0aGlzLl90cmFpdHMoeyBpc09wdGlvbmFsOiB0cnVlIH0pKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB7QGluaGVyaXRkb2MgQ29udmVydGVyLm1hcH1cbiAgICAgKi9cbiAgICBwdWJsaWMgbWFwPFQyPihtYXBwZXI6IChmcm9tOiBUKSA9PiBSZXN1bHQ8VDI+KTogQ29udmVydGVyPFQyLCBUQz4ge1xuICAgICAgICByZXR1cm4gbmV3IEJhc2VDb252ZXJ0ZXI8VDIsIFRDPigoZnJvbTogdW5rbm93biwgX3NlbGY6IENvbnZlcnRlcjxUMiwgVEM+LCBjb250ZXh0PzogVEMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlubmVyUmVzdWx0ID0gdGhpcy5fY29udmVydGVyKGZyb20sIHRoaXMsIHRoaXMuX2NvbnRleHQoY29udGV4dCkpO1xuICAgICAgICAgICAgaWYgKGlubmVyUmVzdWx0LmlzU3VjY2VzcygpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hcHBlcihpbm5lclJlc3VsdC52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFpbChpbm5lclJlc3VsdC5tZXNzYWdlKTtcbiAgICAgICAgfSkuX3dpdGgodGhpcy5fdHJhaXRzKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHtAaW5oZXJpdGRvYyBDb252ZXJ0ZXIubWFwQ29udmVydH1cbiAgICAgKi9cbiAgICBwdWJsaWMgbWFwQ29udmVydDxUMj4obWFwQ29udmVydGVyOiBDb252ZXJ0ZXI8VDI+KTogQ29udmVydGVyPFQyLCBUQz4ge1xuICAgICAgICByZXR1cm4gbmV3IEJhc2VDb252ZXJ0ZXI8VDIsIFRDPigoZnJvbTogdW5rbm93biwgX3NlbGY6IENvbnZlcnRlcjxUMiwgVEM+LCBjb250ZXh0PzogVEMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlubmVyUmVzdWx0ID0gdGhpcy5fY29udmVydGVyKGZyb20sIHRoaXMsIHRoaXMuX2NvbnRleHQoY29udGV4dCkpO1xuICAgICAgICAgICAgaWYgKGlubmVyUmVzdWx0LmlzU3VjY2VzcygpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hcENvbnZlcnRlci5jb252ZXJ0KGlubmVyUmVzdWx0LnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWlsKGlubmVyUmVzdWx0Lm1lc3NhZ2UpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmV0dXJuLWFzc2lnblxuICAgICAgICB9KS5fd2l0aCh0aGlzLl90cmFpdHMoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICoge0Bpbmhlcml0ZG9jIENvbnZlcnRlci5tYXBJdGVtc31cbiAgICAgKi9cbiAgICBwdWJsaWMgbWFwSXRlbXM8VEk+KG1hcHBlcjogKGZyb206IHVua25vd24pID0+IFJlc3VsdDxUST4pOiBDb252ZXJ0ZXI8VElbXSwgVEM+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBCYXNlQ29udmVydGVyPFRJW10sIFRDPigoZnJvbTogdW5rbm93biwgX3NlbGY6IENvbnZlcnRlcjxUSVtdLCBUQz4sIGNvbnRleHQ/OiBUQykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRlcihmcm9tLCB0aGlzLCB0aGlzLl9jb250ZXh0KGNvbnRleHQpKS5vblN1Y2Nlc3MoKGl0ZW1zKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbXMpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXBSZXN1bHRzKGl0ZW1zLm1hcCgoaSkgPT4gbWFwcGVyKGkpKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWlsKCdDYW5ub3QgbWFwIGl0ZW1zIC0gbm90IGFuIGFycmF5Jyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICoge0Bpbmhlcml0ZG9jIENvbnZlcnRlci5tYXBDb252ZXJ0SXRlbXN9XG4gICAgICovXG4gICAgcHVibGljIG1hcENvbnZlcnRJdGVtczxUST4obWFwQ29udmVydGVyOiBDb252ZXJ0ZXI8VEksIHVua25vd24+KTogQ29udmVydGVyPFRJW10sIFRDPiB7XG4gICAgICAgIHJldHVybiBuZXcgQmFzZUNvbnZlcnRlcjxUSVtdLCBUQz4oKGZyb206IHVua25vd24sIF9zZWxmOiBDb252ZXJ0ZXI8VElbXSwgVEM+LCBjb250ZXh0PzogVEMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb252ZXJ0ZXIoZnJvbSwgdGhpcywgdGhpcy5fY29udGV4dChjb250ZXh0KSkub25TdWNjZXNzKChpdGVtcykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFwUmVzdWx0cyhpdGVtcy5tYXAoKGkpID0+IG1hcENvbnZlcnRlci5jb252ZXJ0KGkpKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWlsKCdDYW5ub3QgbWFwIGl0ZW1zIC0gbm90IGFuIGFycmF5Jyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICoge0Bpbmhlcml0ZG9jIENvbnZlcnRlci53aXRoVHlwZUd1YXJkfVxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoVHlwZUd1YXJkPFRJPihndWFyZDogKGZyb206IHVua25vd24pID0+IGZyb20gaXMgVEksIG1lc3NhZ2U/OiBzdHJpbmcpOiBDb252ZXJ0ZXI8VEksIFRDPiB7XG4gICAgICAgIHJldHVybiBuZXcgQmFzZUNvbnZlcnRlcjxUSSwgVEM+KChmcm9tOiB1bmtub3duLCBfc2VsZjogQ29udmVydGVyPFRJLCBUQz4sIGNvbnRleHQ/OiBUQykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRlcihmcm9tLCB0aGlzLCB0aGlzLl9jb250ZXh0KGNvbnRleHQpKS5vblN1Y2Nlc3MoKGlubmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UgPz8gJ2ludmFsaWQgdHlwZSc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGd1YXJkKGlubmVyKSA/IHN1Y2NlZWQoaW5uZXIpIDogZmFpbChgJHttZXNzYWdlfTogJHtKU09OLnN0cmluZ2lmeShmcm9tKX1gKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB7QGluaGVyaXRkb2MgQ29udmVydGVyLndpdGhJdGVtVHlwZUd1YXJkfVxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoSXRlbVR5cGVHdWFyZDxUST4oZ3VhcmQ6IChmcm9tOiB1bmtub3duKSA9PiBmcm9tIGlzIFRJLCBtZXNzYWdlPzogc3RyaW5nKTogQ29udmVydGVyPFRJW10sIFRDPiB7XG4gICAgICAgIHJldHVybiBuZXcgQmFzZUNvbnZlcnRlcjxUSVtdLCBUQz4oKGZyb206IHVua25vd24sIF9zZWxmOiBDb252ZXJ0ZXI8VElbXSwgVEM+LCBjb250ZXh0PzogVEMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb252ZXJ0ZXIoZnJvbSwgdGhpcywgdGhpcy5fY29udGV4dChjb250ZXh0KSkub25TdWNjZXNzKChpdGVtcykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFwUmVzdWx0cyhpdGVtcy5tYXAoKGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlID8/ICdpbnZhbGlkIHR5cGUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGd1YXJkKGkpID8gc3VjY2VlZChpKSA6IGZhaWwoYCR7bWVzc2FnZX06ICR7SlNPTi5zdHJpbmdpZnkoZnJvbSl9YCk7XG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhaWwoJ0Nhbm5vdCBndWFyZCBpdGVtIHR5cGUgLSBub3QgYW4gYXJyYXknKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB7QGluaGVyaXRkb2MgQ29udmVydGVyLndpdGhDb25zdHJhaW50fVxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoQ29uc3RyYWludChcbiAgICAgICAgY29uc3RyYWludDogKHZhbDogVCkgPT4gYm9vbGVhbnxSZXN1bHQ8VD4sXG4gICAgICAgIG9wdGlvbnM/OiBDb25zdHJhaW50T3B0aW9ucyxcbiAgICApOiBDb252ZXJ0ZXI8VCwgVEM+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBCYXNlQ29udmVydGVyPFQsIFRDPigoZnJvbTogdW5rbm93biwgX3NlbGY6IENvbnZlcnRlcjxULCBUQz4sIGNvbnRleHQ/OiBUQykgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fY29udmVydGVyKGZyb20sIHRoaXMsIHRoaXMuX2NvbnRleHQoY29udGV4dCkpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdC5pc1N1Y2Nlc3MoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnN0cmFpbnRSZXN1bHQgPSBjb25zdHJhaW50KHJlc3VsdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb25zdHJhaW50UmVzdWx0ID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnN0cmFpbnRSZXN1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gcmVzdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICA6IGZhaWwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYFwiJHtKU09OLnN0cmluZ2lmeShyZXN1bHQudmFsdWUpfVwiOiAke29wdGlvbnM/LmRlc2NyaXB0aW9uID8/ICdkb2VzIG5vdCBtZWV0IGNvbnN0cmFpbnQnfWBcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBjb25zdHJhaW50UmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSkuX3dpdGgodGhpcy5fdHJhaXRzKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHtAaW5oZXJpdGRvYyBDb252ZXJ0ZXIud2l0aEJyYW5kfVxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoQnJhbmQ8QiBleHRlbmRzIHN0cmluZz4oYnJhbmQ6IEIpOiBDb252ZXJ0ZXI8QnJhbmQ8VCwgQj4sIFRDPiB7XG4gICAgICAgIGlmICh0aGlzLl9icmFuZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcmVwbGFjZSBleGlzdGluZyBicmFuZCBcIiR7dGhpcy5fYnJhbmR9XCIgd2l0aCBcIiR7YnJhbmR9XCIuYCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3IEJhc2VDb252ZXJ0ZXI8QnJhbmQ8VCwgQj4sIFRDPigoZnJvbTogdW5rbm93biwgX3NlbGY6IENvbnZlcnRlcjxULCBUQz4sIGNvbnRleHQ/OiBUQykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRlcihmcm9tLCB0aGlzLCB0aGlzLl9jb250ZXh0KGNvbnRleHQpKS5vblN1Y2Nlc3MoKHYpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3VjY2VlZCh2IGFzIEJyYW5kPFQsIEI+KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KS5fd2l0aCh0aGlzLl90cmFpdHMoeyBicmFuZCB9KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9jb250ZXh0KHN1cHBsaWVkPzogVEMpOiBUQ3x1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gc3VwcGxpZWQgPz8gdGhpcy5fZGVmYXVsdENvbnRleHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF90cmFpdHModHJhaXRzPzogUGFydGlhbDxDb252ZXJ0ZXJUcmFpdHM+KTogQ29udmVydGVyVHJhaXRzIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlzT3B0aW9uYWw6IHRoaXMuaXNPcHRpb25hbCxcbiAgICAgICAgICAgIGJyYW5kOiB0aGlzLmJyYW5kLFxuICAgICAgICAgICAgLi4uKHRyYWl0cyA/PyB7fSksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF93aXRoKHRyYWl0czogUGFydGlhbDxDb252ZXJ0ZXJUcmFpdHM+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2lzT3B0aW9uYWwgPSAodHJhaXRzLmlzT3B0aW9uYWwgPT09IHRydWUpO1xuICAgICAgICB0aGlzLl9icmFuZCA9ICh0cmFpdHMuYnJhbmQpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG4iXX0=
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxxQ0FBNkQ7QUEyTTdEOzs7R0FHRztBQUNILE1BQWEsYUFBYTtJQWdCdEI7Ozs7OztPQU1HO0lBQ0gsWUFDSSxTQUE2RSxFQUM3RSxjQUFtQixFQUNuQixNQUF3QjtRQXJCNUI7O1dBRUc7UUFDTyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQW9CMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUM7UUFDdEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFVBQVUsTUFBSyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU8sQ0FBQyxJQUFhLEVBQUUsT0FBWTtRQUN0QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLGFBQVAsT0FBTyxjQUFQLE9BQU8sR0FBSSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZUFBZSxDQUFDLElBQWEsRUFBRSxPQUFZLEVBQUUsT0FBaUI7UUFDakUsTUFBTSxNQUFNLEdBQUcsSUFB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RUQsT0FBTyxJQUFJLGFBQWEsQ0FBa0IsQ0FBQyxJQUFhLEVBQUUsS0FBdUIsRUFBRSxPQUFZLEVBQUUsRUFBRTtZQUMvRixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3ZFLE9BQU8sSUFBQSxnQkFBTyxFQUFDLENBQWdCLENBQUMsQ0FBQztZQUNyQyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNPLFFBQVEsQ0FBQyxRQUFhO1FBQzVCLE9BQU8sUUFBUSxhQUFSLFFBQVEsY0FBUixRQUFRLEdBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7O09BRUc7SUFDTyxPQUFPLENBQUMsTUFBaUM7UUFDL0MsT0FBTztZQUNILFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsR0FBRyxDQUFDLE1BQU0sYUFBTixNQUFNLGNBQU4sTUFBTSxHQUFJLEVBQUUsQ0FBQztTQUNwQixDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ08sS0FBSyxDQUFDLE1BQWdDO1FBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKO0FBbE9ELHNDQWtPQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjAgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuaW1wb3J0IHsgUmVzdWx0LCBmYWlsLCBtYXBSZXN1bHRzLCBzdWNjZWVkIH0gZnJvbSAnLi9yZXN1bHQnO1xuaW1wb3J0IHsgQnJhbmQgfSBmcm9tICcuL2JyYW5kJztcblxudHlwZSBPbkVycm9yID0gJ2ZhaWxPbkVycm9yJyB8ICdpZ25vcmVFcnJvcnMnO1xuXG4vKipcbiAqIENvbnZlcnRlciB0cmFpdHMuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udmVydGVyVHJhaXRzIHtcbiAgICByZWFkb25seSBpc09wdGlvbmFsOiBib29sZWFuO1xuICAgIHJlYWRvbmx5IGJyYW5kPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBDb252ZXJ0ZXIud2l0aENvbnN0cmFpbnR9LlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnN0cmFpbnRPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBkZXNjcmlwdGlvbiBmb3IgZXJyb3IgbWVzc2FnZXMgd2hlbiBjb25zdHJhaW50XG4gICAgICogZnVuY3Rpb24gcmV0dXJucyBmYWxzZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEdlbmVyaWMgY29udmVydGVyIHRvIGNvbnZlcnQgdW5rbm93biB0byBhIHRlbXBsYXRlZCB0eXBlIGA8VD5gLCB1c2luZ1xuICogaW50cmluc2ljIHJ1bGVzIG9yIGFzIG1vZGlmaWVkIGJ5IGFuIG9wdGlvbmFsIGNvbnZlcnNpb24gY29udGV4dFxuICogb2Ygb3B0aW9uYWwgdGVtcGxhdGVkIHR5cGUgYDxUQz5gIChkZWZhdWx0IGB1bmRlZmluZWRgKS5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb252ZXJ0ZXI8VCwgVEM9dW5kZWZpbmVkPiBleHRlbmRzIENvbnZlcnRlclRyYWl0cyB7XG4gICAgLyoqXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhpcyBlbGVtZW50IGlzIGV4cGxpY2l0bHkgb3B0aW9uYWwuXG4gICAgICovXG4gICAgIHJlYWRvbmx5IGlzT3B0aW9uYWw6IGJvb2xlYW47XG5cbiAgICAgLyoqXG4gICAgICAqIFJldHVybnMgdGhlIGJyYW5kIGZvciBhIGJyYW5kZWQgdHlwZS5cbiAgICAgICovXG4gICAgIHJlYWRvbmx5IGJyYW5kPzogc3RyaW5nO1xuXG4gICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGZyb20gYHVua25vd25gIHRvIGA8VD5gLlxuICAgICAqIEBwYXJhbSBmcm9tIC0gVGhlIGB1bmtub3duYCB0byBiZSBjb252ZXJ0ZWRcbiAgICAgKiBAcGFyYW0gY29udGV4dCAtIEFuIG9wdGlvbmFsIGNvbnZlcnNpb24gY29udGV4dCBvZiB0eXBlIGA8VEM+YCB0byBiZSB1c2VkIGluXG4gICAgICogdGhlIGNvbnZlcnNpb24uXG4gICAgICogQHJldHVybnMgQSB7QGxpbmsgUmVzdWx0fSB3aXRoIGEge0BsaW5rIFN1Y2Nlc3N9IGFuZCBhIHZhbHVlIG9uIHN1Y2Nlc3Mgb3IgYW5cbiAgICAgKiB7QGxpbmsgRmFpbHVyZX0gd2l0aCBhIGEgbWVzc2FnZSBvbiBmYWlsdXJlLlxuICAgICAqL1xuICAgIGNvbnZlcnQoZnJvbTogdW5rbm93biwgY29udGV4dD86IFRDKTogUmVzdWx0PFQ+O1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgZnJvbSBgdW5rbm93bmAgdG8gYDxUPmAgb3IgYHVuZGVmaW5lZGAsIGFzIGFwcHJvcHJpYXRlLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBJZiBgb25FcnJvcmAgaXMgYGZhaWxPbkVycm9yYCwgdGhlIGNvbnZlcnRlciBzdWNjZWVkcyBmb3JcbiAgICAgKiBgdW5kZWZpbmVkYCBvciBhbnkgY29udmVydGlibGUgdmFsdWUsIGJ1dCByZXBvcnRzIGFuIGVycm9yXG4gICAgICogaWYgaXQgZW5jb3VudGVycyBhIHZhbHVlIHRoYXQgY2Fubm90IGJlIGNvbnZlcnRlZC5cbiAgICAgKlxuICAgICAqIElmIGBvbkVycm9yYCBpcyBgaWdub3JlRXJyb3JzYCAoZGVmYXVsdCkgdGhlbiB2YWx1ZXMgdGhhdFxuICAgICAqIGNhbm5vdCBiZSBjb252ZXJ0ZWQgcmVzdWx0IGluIGEgc3VjY2Vzc2Z1bCByZXR1cm4gb2YgYHVuZGVmaW5lZGAuXG4gICAgICogQHBhcmFtIGZyb20gLSBUaGUgYHVua25vd25gIHRvIGJlIGNvbnZlcnRlZFxuICAgICAqIEBwYXJhbSBjb250ZXh0IC0gQW4gb3B0aW9uYWwgY29udmVyc2lvbiBjb250ZXh0IG9mIHR5cGUgYDxUQz5gIHRvIGJlIHVzZWQgaW5cbiAgICAgKiB0aGUgY29udmVyc2lvbi5cbiAgICAgKiBAcGFyYW0gb25FcnJvciAtIFNwZWNpZmllcyBoYW5kbGluZyBvZiB2YWx1ZXMgdGhhdCBjYW5ub3QgYmUgY29udmVydGVkIChkZWZhdWx0IGBpZ25vcmVFcnJvcnNgKS5cbiAgICAgKiBAcmV0dXJucyBBIHtAbGluayBSZXN1bHR9IHdpdGggYSB7QGxpbmsgU3VjY2Vzc30gYW5kIGEgdmFsdWUgb24gc3VjY2VzcyBvciBhblxuICAgICAqIHtAbGluayBGYWlsdXJlfSB3aXRoIGEgYSBtZXNzYWdlIG9uIGZhaWx1cmUuXG4gICAgICovXG4gICAgY29udmVydE9wdGlvbmFsKGZyb206IHVua25vd24sIGNvbnRleHQ/OiBUQywgb25FcnJvcj86IE9uRXJyb3IpOiBSZXN1bHQ8VHx1bmRlZmluZWQ+O1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHtAbGluayBDb252ZXJ0ZXJ9IGZvciBhbiBvcHRpb25hbCB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogSWYgYG9uRXJyb3JgIGlzIGBmYWlsT25FcnJvcmAsIHRoZSByZXN1bHRpbmcgY29udmVydGVyIHdpbGwgYWNjZXB0IGB1bmRlZmluZWRgXG4gICAgICogb3IgYSBjb252ZXJ0aWJsZSB2YWx1ZSwgYnV0IHJlcG9ydCBhbiBlcnJvciBpZiBpdCBlbmNvdW50ZXJzIGEgdmFsdWUgdGhhdCBjYW5ub3QgYmVcbiAgICAgKiBjb252ZXJ0ZWQuXG4gICAgICpcbiAgICAgKiBJZiBgb25FcnJvcmAgaXMgYGlnbm9yZUVycm9yc2AgKGRlZmF1bHQpIHRoZW4gdmFsdWVzIHRoYXQgY2Fubm90IGJlIGNvbnZlcnRlZCB3aWxsXG4gICAgICogcmVzdWx0IGluIGEgc3VjY2Vzc2Z1bCByZXR1cm4gb2YgYHVuZGVmaW5lZGAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb25FcnJvciAtIFNwZWNpZmllcyBoYW5kbGluZyBvZiB2YWx1ZXMgdGhhdCBjYW5ub3QgYmUgY29udmVydGVkIChkZWZhdWx0IGBpZ25vcmVFcnJvcnNgKS5cbiAgICAgKiBAcmV0dXJucyBBIG5ldyB7QGxpbmsgQ29udmVydGVyfSByZXR1cm5pbmcgYDxUfHVuZGVmaW5lZD5gLlxuICAgICAqICovXG4gICAgb3B0aW9uYWwob25FcnJvcj86IE9uRXJyb3IpOiBDb252ZXJ0ZXI8VHx1bmRlZmluZWQsIFRDPjtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSB7QGxpbmsgQ29udmVydGVyfSB3aGljaCBhcHBsaWVzIGEgKHBvc3NpYmx5KSBtYXBwaW5nIGNvbnZlcnNpb24gdG9cbiAgICAgKiB0aGUgY29udmVydGVkIHZhbHVlIG9mIHRoaXMge0BsaW5rIENvbnZlcnRlcn0uXG4gICAgICogQHBhcmFtIG1hcHBlciAtIEEgZnVuY3Rpb24gd2hpY2ggbWFwcyBmcm9tIHRoZSB0aGUgcmVzdWx0IHR5cGUgYDxUPmAgb2YgdGhpc1xuICAgICAqIGNvbnZlcnRlciB0byBhIG5ldyByZXN1bHQgdHlwZSBgPFQyPmAuXG4gICAgICogQHJldHVybnMgQSBuZXcge0BsaW5rIENvbnZlcnRlcn0gcmV0dXJuaW5nIGA8VDI+YC5cbiAgICAgKi9cbiAgICBtYXA8VDI+KG1hcHBlcjogKGZyb206IFQpID0+IFJlc3VsdDxUMj4pOiBDb252ZXJ0ZXI8VDIsIFRDPjtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSB7QGxpbmsgQ29udmVydGVyfSB3aGljaCBhcHBsaWVzIGFuIGFkZGl0aW9uYWwgc3VwcGxpZWRcbiAgICAgKiBjb252ZXJ0ZXIgdG8gdGhlIHJlc3VsdCBvZiB0aGlzIGNvbnZlcnRlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBtYXBDb252ZXJ0ZXIgLSBUaGUge0BsaW5rIENvbnZlcnRlcn0gdG8gYmUgYXBwbGllZCB0byB0aGVcbiAgICAgKiBjb252ZXJ0ZWQgcmVzdWx0IGZyb20gdGhpcyB7QGxpbmsgQ29udmVydGVyfS5cbiAgICAgKiBAcmV0dXJucyBBIG5ldyB7QGxpbmsgQ29udmVydGVyfSByZXR1cm5pbmcgYDxUMj5gLlxuICAgICAqL1xuICAgIG1hcENvbnZlcnQ8VDI+KG1hcENvbnZlcnRlcjogQ29udmVydGVyPFQyPik6IENvbnZlcnRlcjxUMiwgVEM+O1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHtAbGluayBDb252ZXJ0ZXJ9IHdoaWNoIG1hcHMgdGhlIGluZGl2aWR1YWwgaXRlbXMgb2YgYSBjb2xsZWN0aW9uXG4gICAgICogcmVzdWx0aW5nIGZyb20gdGhpcyB7QGxpbmsgQ29udmVydGVyfSB1c2luZyB0aGUgc3VwcGxpZWQgbWFwIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBGYWlscyBpZiBgZnJvbWAgaXMgbm90IGFuIGFycmF5LlxuICAgICAqXG4gICAgICogQHBhcmFtIG1hcHBlciAtIFRoZSBtYXAgZnVuY3Rpb24gdG8gYmUgYXBwbGllZCB0byBlYWNoIGVsZW1lbnQgb2YgdGhlXG4gICAgICogcmVzdWx0IG9mIHRoaXMge0BsaW5rIENvbnZlcnRlcn0uXG4gICAgICogQHJldHVybnMgQSBuZXcge0BsaW5rIENvbnZlcnRlcn0gcmV0dXJuaW5nIGA8VElbXT5gLlxuICAgICAqL1xuICAgIG1hcEl0ZW1zPFRJPihtYXBwZXI6IChmcm9tOiB1bmtub3duKSA9PiBSZXN1bHQ8VEk+KTogQ29udmVydGVyPFRJW10sIFRDPjtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSB7QGxpbmsgQ29udmVydGVyfSB3aGljaCBtYXBzIHRoZSBpbmRpdmlkdWFsIGl0ZW1zIG9mIGEgY29sbGVjdGlvblxuICAgICAqIHJlc3VsdGluZyBmcm9tIHRoaXMge0BsaW5rIENvbnZlcnRlcn0gdXNpbmcgdGhlIHN1cHBsaWVkIHtAbGluayBDb252ZXJ0ZXJ9LlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBGYWlscyBpZiBgZnJvbWAgaXMgbm90IGFuIGFycmF5LlxuICAgICAqXG4gICAgICogQHBhcmFtIG1hcENvbnZlcnRlciAtIFRoZSB7QGxpbmsgQ29udmVydGVyfSB0byBiZSBhcHBsaWVkIHRvIGVhY2ggZWxlbWVudCBvZiB0aGVcbiAgICAgKiByZXN1bHQgb2YgdGhpcyB7QGxpbmsgQ29udmVydGVyfS5cbiAgICAgKiBAcmV0dXJucyBBIG5ldyB7QGxpbmsgQ29udmVydGVyfSByZXR1cm5pbmcgYDxUSVtdPmAuXG4gICAgICovXG4gICAgIG1hcENvbnZlcnRJdGVtczxUST4obWFwQ29udmVydGVyOiBDb252ZXJ0ZXI8VEksIHVua25vd24+KTogQ29udmVydGVyPFRJW10sIFRDPjtcblxuICAgICAvKipcbiAgICAgICogQ3JlYXRlcyBhIHtAbGluayBDb252ZXJ0ZXJ9IHdoaWNoIGFwcGxpZXMgYSBzdXBwbGllZCB0eXBlIGd1YXJkIHRvIHRoZSBjb252ZXJzaW9uXG4gICAgICAqIHJlc3VsdC5cbiAgICAgICogQHBhcmFtIGd1YXJkIC0gVGhlIHR5cGUgZ3VhcmQgZnVuY3Rpb24gdG8gYXBwbHkuXG4gICAgICAqIEBwYXJhbSBtZXNzYWdlIC0gT3B0aW9uYWwgbWVzc2FnZSB0byBiZSByZXBvcnRlZCBpZiB0aGUgdHlwZSBndWFyZCBmYWlscy5cbiAgICAgICogQHJldHVybnMgQSBuZXcge0BsaW5rIENvbnZlcnRlcn0gcmV0dXJuaW5nIGA8VEk+YC5cbiAgICAgICovXG4gICAgd2l0aFR5cGVHdWFyZDxUST4oZ3VhcmQ6IChmcm9tOiB1bmtub3duKSA9PiBmcm9tIGlzIFRJLCBtZXNzYWdlPzogc3RyaW5nKTogQ29udmVydGVyPFRJLCBUQz47XG5cbiAgICAgLyoqXG4gICAgICAqIENyZWF0ZXMgYSB7QGxpbmsgQ29udmVydGVyfSB3aGljaCBhcHBsaWVzIGEgc3VwcGxpZWQgdHlwZSBndWFyZCB0byBlYWNoIG1lbWJlciBvZlxuICAgICAgKiB0aGUgY29udmVyc2lvbiByZXN1bHQgZnJvbSB0aGlzIGNvbnZlcnRlci5cbiAgICAgICpcbiAgICAgICogQHJlbWFya3NcbiAgICAgICogRmFpbHMgaWYgdGhlIGNvbnZlcnNpb24gcmVzdWx0IGlzIG5vdCBhbiBhcnJheSBvciBpZiBhbnkgbWVtYmVyIGZhaWxzIHRoZVxuICAgICAgKiB0eXBlIGd1YXJkLlxuICAgICAgKiBAcGFyYW0gZ3VhcmQgLSBUaGUgdHlwZSBndWFyZCBmdW5jdGlvbiB0byBhcHBseSB0byBlYWNoIGVsZW1lbnQuXG4gICAgICAqIEBwYXJhbSBtZXNzYWdlIC0gT3B0aW9uYWwgbWVzc2FnZSB0byBiZSByZXBvcnRlZCBpZiB0aGUgdHlwZSBndWFyZCBmYWlscy5cbiAgICAgICogQHJldHVybnMgQSBuZXcge0BsaW5rIENvbnZlcnRlcn0gcmV0dXJuaW5nIGA8VEk+YC5cbiAgICAgICovXG4gICAgICB3aXRoSXRlbVR5cGVHdWFyZDxUST4oZ3VhcmQ6IChmcm9tOiB1bmtub3duKSA9PiBmcm9tIGlzIFRJLCBtZXNzYWdlPzogc3RyaW5nKTogQ29udmVydGVyPFRJW10sIFRDPjtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSB7QGxpbmsgQ29udmVydGVyfSB3aGljaCBhcHBsaWVzIGFuIG9wdGlvbmFsIGNvbnN0cmFpbnQgdG8gdGhlIHJlc3VsdFxuICAgICAqIG9mIHRoaXMgY29udmVyc2lvbi4gIElmIHRoaXMge0BsaW5rIENvbnZlcnRlcn0gKHRoZSBiYXNlIGNvbnZlcnRlcikgc3VjY2VlZHMsIHRoZSBuZXdcbiAgICAgKiBjb252ZXJ0ZXIgY2FsbHMgYSBzdXBwbGllZCBjb25zdHJhaW50IGV2YWx1YXRpb24gZnVuY3Rpb24gd2l0aCB0aGUgY29udmVyc2lvbiwgd2hpY2hcbiAgICAgKiBmYWlscyB0aGUgZW50aXJlIGNvbnZlcnNpb24gaWYgdGhlIGNvbnN0cmFpbnQgZnVuY3Rpb24gcmV0dXJucyBlaXRoZXIgYGZhbHNlYCBvclxuICAgICAqIHtAbGluayBGYWlsdXJlIHwgRmFpbHVyZTxUPn0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29uc3RyYWludCAtIENvbnN0cmFpbnQgZXZhbHVhdGlvbiBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIHtAbGluayBDb25zdHJhaW50T3B0aW9ucyB8IE9wdGlvbnN9IGZvciBjb25zdHJhaW50IGV2YWx1YXRpb24uXG4gICAgICogQHJldHVybnMgQSBuZXcge0BsaW5rIENvbnZlcnRlcn0gcmV0dXJuaW5nIGA8VD5gLlxuICAgICAqL1xuICAgIHdpdGhDb25zdHJhaW50KFxuICAgICAgICBjb25zdHJhaW50OiAodmFsOiBUKSA9PiBib29sZWFufFJlc3VsdDxUPixcbiAgICAgICAgb3B0aW9ucz86IENvbnN0cmFpbnRPcHRpb25zLFxuICAgICk6IENvbnZlcnRlcjxULCBUQz47XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIGEgY29udmVydGVyIHdoaWNoIGFkZHMgYSBicmFuZCB0byB0aGUgdHlwZSB0byBwcmV2ZW50IG1pc21hdGNoZWQgdXNhZ2VcbiAgICAgKiBvZiBzaW1wbGUgdHlwZXMuXG4gICAgICogQHBhcmFtIGJyYW5kIC0gVGhlIGJyYW5kIHRvIGJlIGFwcGxpZWQgdG8gdGhlIHJlc3VsdCB2YWx1ZS5cbiAgICAgKiBAcmV0dXJucyBBIHtAbGluayBDb252ZXJ0ZXJ9IHJldHVybmluZyBgQnJhbmQ8VCwgQj5gLlxuICAgICAqL1xuICAgIHdpdGhCcmFuZDxCIGV4dGVuZHMgc3RyaW5nPihicmFuZDogQik6IENvbnZlcnRlcjxCcmFuZDxULCBCPiwgVEM+O1xufVxuXG4vKipcbiAqIGludGVybmFsXG4gKi9cbnR5cGUgSW5uZXJJbmZlcnJlZFR5cGU8VENPTlY+ID1cbiAgICBUQ09OViBleHRlbmRzIENvbnZlcnRlcjxpbmZlciBUVE8+XG4gICAgICAgID8gKFRUTyBleHRlbmRzIEFycmF5PGluZmVyIFRUT0VMRU0+ID8gSW5uZXJJbmZlcnJlZFR5cGU8VFRPRUxFTT5bXSA6IFRUTylcbiAgICAgICAgOiAoVENPTlYgZXh0ZW5kcyBBcnJheTxpbmZlciBURUxFTT4gPyBJbm5lckluZmVycmVkVHlwZTxURUxFTT5bXSA6IFRDT05WKTtcblxuLyoqXG4gKiBJbmZlcnMgdGhlIHR5cGUgdGhhdCB3aWxsIGJlIHJldHVybmVkIGJ5IGFuIGluc3RhbnRpYXRlZCBjb252ZXJ0ZXIuICBXb3Jrc1xuICogZm9yIGNvbXBsZXggYXMgd2VsbCBhcyBzaW1wbGUgdHlwZXMuXG4gKiBAZXhhbXBsZSBgSW5mZXI8dHlwZW9mIENvbnZlcnRlcnMubWFwT2YoQ29udmVydGVycy5zdHJpbmdBcnJheSk+YCBpcyBgTWFwPHN0cmluZywgc3RyaW5nW10+YFxuICogQGJldGFcbiAqL1xuZXhwb3J0IHR5cGUgSW5mZXI8VENPTlY+ID0gVENPTlYgZXh0ZW5kcyBDb252ZXJ0ZXI8aW5mZXIgVFRPPiA/IElubmVySW5mZXJyZWRUeXBlPFRUTz4gOiBuZXZlcjtcblxuLyoqXG4gKiBEZXByZWNhdGVkIG5hbWUgZm9yIEluZmVyPFQ+IHJldGFpbmVkIGZvciBjb21wYXRpYmlsaXR5XG4gKiBAZGVwcmVjYXRlZCB1c2UgQHNlZSBJbmZlciBpbnN0ZWFkXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IHR5cGUgQ29udmVydGVkVG9UeXBlPFRDT05WPiA9IEluZmVyPFRDT05WPjtcblxuLyoqXG4gKiBCYXNlIHRlbXBsYXRlZCB3cmFwcGVyIHRvIHNpbXBsaWZ5IGNyZWF0aW9uIG9mIG5ldyB7QGxpbmsgQ29udmVydGVyfXMuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXNlQ29udmVydGVyPFQsIFRDPXVuZGVmaW5lZD4gaW1wbGVtZW50cyBDb252ZXJ0ZXI8VCwgVEM+IHtcbiAgICAvKipcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2RlZmF1bHRDb250ZXh0PzogVEM7XG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9pc09wdGlvbmFsID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9icmFuZD86IHN0cmluZztcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbnZlcnRlcjogKGZyb206IHVua25vd24sIHNlbGY6IENvbnZlcnRlcjxULCBUQz4sIGNvbnRleHQ/OiBUQykgPT4gUmVzdWx0PFQ+O1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0cyBhIG5ldyB7QGxpbmsgQ29udmVydGVyfSB3aGljaCB1c2VzIHRoZSBzdXBwbGllZCBmdW5jdGlvbiB0byBwZXJmb3JtIHRoZSBjb252ZXJzaW9uLlxuICAgICAqIEBwYXJhbSBjb252ZXJ0ZXIgLSBUaGUgY29udmVyc2lvbiBmdW5jdGlvbiB0byBiZSBhcHBsaWVkLlxuICAgICAqIEBwYXJhbSBkZWZhdWx0Q29udGV4dCAtIE9wdGlvbmFsIGNvbnZlcnNpb24gY29udGV4dCB0byBiZSB1c2VkIGJ5IGRlZmF1bHQuXG4gICAgICogQHBhcmFtIHRyYWl0cyAtIE9wdGlvbmFsIHtAbGluayBDb252ZXJ0ZXJUcmFpdHMgfCB0cmFpdHN9IHRvIGJlIGFzc2lnbmVkIHRvIHRoZSByZXN1bHRpbmdcbiAgICAgKiBjb252ZXJ0ZXIuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBjb252ZXJ0ZXI6IChmcm9tOiB1bmtub3duLCBzZWxmOiBDb252ZXJ0ZXI8VCwgVEM+LCBjb250ZXh0PzogVEMpID0+IFJlc3VsdDxUPixcbiAgICAgICAgZGVmYXVsdENvbnRleHQ/OiBUQyxcbiAgICAgICAgdHJhaXRzPzogQ29udmVydGVyVHJhaXRzLFxuICAgICkge1xuICAgICAgICB0aGlzLl9jb252ZXJ0ZXIgPSBjb252ZXJ0ZXI7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRDb250ZXh0ID0gZGVmYXVsdENvbnRleHQ7XG4gICAgICAgIHRoaXMuX2lzT3B0aW9uYWwgPSAodHJhaXRzPy5pc09wdGlvbmFsID09PSB0cnVlKTtcbiAgICAgICAgdGhpcy5fYnJhbmQgPSAodHJhaXRzPy5icmFuZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICoge0Bpbmhlcml0ZG9jIENvbnZlcnRlci5pc09wdGlvbmFsfVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNPcHRpb25hbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzT3B0aW9uYWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICoge0Bpbmhlcml0ZG9jIENvbnZlcnRlci5icmFuZH1cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGJyYW5kKCk6IHN0cmluZ3x1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fYnJhbmQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICoge0Bpbmhlcml0ZG9jIENvbnZlcnRlci5jb252ZXJ0fVxuICAgICAqL1xuICAgIHB1YmxpYyBjb252ZXJ0KGZyb206IHVua25vd24sIGNvbnRleHQ/OiBUQyk6IFJlc3VsdDxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb252ZXJ0ZXIoZnJvbSwgdGhpcywgY29udGV4dCA/PyB0aGlzLl9kZWZhdWx0Q29udGV4dCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICoge0Bpbmhlcml0ZG9jIENvbnZlcnRlci5jb252ZXJ0T3B0aW9uYWx9XG4gICAgICovXG4gICAgcHVibGljIGNvbnZlcnRPcHRpb25hbChmcm9tOiB1bmtub3duLCBjb250ZXh0PzogVEMsIG9uRXJyb3I/OiBPbkVycm9yKTogUmVzdWx0PFR8dW5kZWZpbmVkPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2NvbnZlcnRlcihmcm9tLCB0aGlzLCB0aGlzLl9jb250ZXh0KGNvbnRleHQpKTtcbiAgICAgICAgaWYgKHJlc3VsdC5pc0ZhaWx1cmUoKSkge1xuICAgICAgICAgICAgb25FcnJvciA9IG9uRXJyb3IgPz8gJ2lnbm9yZUVycm9ycyc7XG4gICAgICAgICAgICByZXR1cm4gKChmcm9tID09PSB1bmRlZmluZWQpIHx8IG9uRXJyb3IgPT09ICdpZ25vcmVFcnJvcnMnKSA/IHN1Y2NlZWQodW5kZWZpbmVkKSA6IHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHtAaW5oZXJpdGRvYyBDb252ZXJ0ZXIub3B0aW9uYWx9XG4gICAgICovXG4gICAgcHVibGljIG9wdGlvbmFsKG9uRXJyb3I/OiBPbkVycm9yKTogQ29udmVydGVyPFR8dW5kZWZpbmVkLCBUQz4ge1xuICAgICAgICByZXR1cm4gbmV3IEJhc2VDb252ZXJ0ZXIoKGZyb206IHVua25vd24sIF9zZWxmOiBDb252ZXJ0ZXI8VHx1bmRlZmluZWQsIFRDPiwgY29udGV4dD86IFRDKSA9PiB7XG4gICAgICAgICAgICBvbkVycm9yID0gb25FcnJvciA/PyAnZmFpbE9uRXJyb3InO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udmVydE9wdGlvbmFsKGZyb20sIHRoaXMuX2NvbnRleHQoY29udGV4dCksIG9uRXJyb3IpO1xuICAgICAgICB9KS5fd2l0aCh0aGlzLl90cmFpdHMoeyBpc09wdGlvbmFsOiB0cnVlIH0pKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB7QGluaGVyaXRkb2MgQ29udmVydGVyLm1hcH1cbiAgICAgKi9cbiAgICBwdWJsaWMgbWFwPFQyPihtYXBwZXI6IChmcm9tOiBUKSA9PiBSZXN1bHQ8VDI+KTogQ29udmVydGVyPFQyLCBUQz4ge1xuICAgICAgICByZXR1cm4gbmV3IEJhc2VDb252ZXJ0ZXI8VDIsIFRDPigoZnJvbTogdW5rbm93biwgX3NlbGY6IENvbnZlcnRlcjxUMiwgVEM+LCBjb250ZXh0PzogVEMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlubmVyUmVzdWx0ID0gdGhpcy5fY29udmVydGVyKGZyb20sIHRoaXMsIHRoaXMuX2NvbnRleHQoY29udGV4dCkpO1xuICAgICAgICAgICAgaWYgKGlubmVyUmVzdWx0LmlzU3VjY2VzcygpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hcHBlcihpbm5lclJlc3VsdC52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFpbChpbm5lclJlc3VsdC5tZXNzYWdlKTtcbiAgICAgICAgfSkuX3dpdGgodGhpcy5fdHJhaXRzKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHtAaW5oZXJpdGRvYyBDb252ZXJ0ZXIubWFwQ29udmVydH1cbiAgICAgKi9cbiAgICBwdWJsaWMgbWFwQ29udmVydDxUMj4obWFwQ29udmVydGVyOiBDb252ZXJ0ZXI8VDI+KTogQ29udmVydGVyPFQyLCBUQz4ge1xuICAgICAgICByZXR1cm4gbmV3IEJhc2VDb252ZXJ0ZXI8VDIsIFRDPigoZnJvbTogdW5rbm93biwgX3NlbGY6IENvbnZlcnRlcjxUMiwgVEM+LCBjb250ZXh0PzogVEMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlubmVyUmVzdWx0ID0gdGhpcy5fY29udmVydGVyKGZyb20sIHRoaXMsIHRoaXMuX2NvbnRleHQoY29udGV4dCkpO1xuICAgICAgICAgICAgaWYgKGlubmVyUmVzdWx0LmlzU3VjY2VzcygpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hcENvbnZlcnRlci5jb252ZXJ0KGlubmVyUmVzdWx0LnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWlsKGlubmVyUmVzdWx0Lm1lc3NhZ2UpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmV0dXJuLWFzc2lnblxuICAgICAgICB9KS5fd2l0aCh0aGlzLl90cmFpdHMoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICoge0Bpbmhlcml0ZG9jIENvbnZlcnRlci5tYXBJdGVtc31cbiAgICAgKi9cbiAgICBwdWJsaWMgbWFwSXRlbXM8VEk+KG1hcHBlcjogKGZyb206IHVua25vd24pID0+IFJlc3VsdDxUST4pOiBDb252ZXJ0ZXI8VElbXSwgVEM+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBCYXNlQ29udmVydGVyPFRJW10sIFRDPigoZnJvbTogdW5rbm93biwgX3NlbGY6IENvbnZlcnRlcjxUSVtdLCBUQz4sIGNvbnRleHQ/OiBUQykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRlcihmcm9tLCB0aGlzLCB0aGlzLl9jb250ZXh0KGNvbnRleHQpKS5vblN1Y2Nlc3MoKGl0ZW1zKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbXMpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXBSZXN1bHRzKGl0ZW1zLm1hcCgoaSkgPT4gbWFwcGVyKGkpKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWlsKCdDYW5ub3QgbWFwIGl0ZW1zIC0gbm90IGFuIGFycmF5Jyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICoge0Bpbmhlcml0ZG9jIENvbnZlcnRlci5tYXBDb252ZXJ0SXRlbXN9XG4gICAgICovXG4gICAgcHVibGljIG1hcENvbnZlcnRJdGVtczxUST4obWFwQ29udmVydGVyOiBDb252ZXJ0ZXI8VEksIHVua25vd24+KTogQ29udmVydGVyPFRJW10sIFRDPiB7XG4gICAgICAgIHJldHVybiBuZXcgQmFzZUNvbnZlcnRlcjxUSVtdLCBUQz4oKGZyb206IHVua25vd24sIF9zZWxmOiBDb252ZXJ0ZXI8VElbXSwgVEM+LCBjb250ZXh0PzogVEMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb252ZXJ0ZXIoZnJvbSwgdGhpcywgdGhpcy5fY29udGV4dChjb250ZXh0KSkub25TdWNjZXNzKChpdGVtcykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFwUmVzdWx0cyhpdGVtcy5tYXAoKGkpID0+IG1hcENvbnZlcnRlci5jb252ZXJ0KGkpKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWlsKCdDYW5ub3QgbWFwIGl0ZW1zIC0gbm90IGFuIGFycmF5Jyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICoge0Bpbmhlcml0ZG9jIENvbnZlcnRlci53aXRoVHlwZUd1YXJkfVxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoVHlwZUd1YXJkPFRJPihndWFyZDogKGZyb206IHVua25vd24pID0+IGZyb20gaXMgVEksIG1lc3NhZ2U/OiBzdHJpbmcpOiBDb252ZXJ0ZXI8VEksIFRDPiB7XG4gICAgICAgIHJldHVybiBuZXcgQmFzZUNvbnZlcnRlcjxUSSwgVEM+KChmcm9tOiB1bmtub3duLCBfc2VsZjogQ29udmVydGVyPFRJLCBUQz4sIGNvbnRleHQ/OiBUQykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRlcihmcm9tLCB0aGlzLCB0aGlzLl9jb250ZXh0KGNvbnRleHQpKS5vblN1Y2Nlc3MoKGlubmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UgPz8gJ2ludmFsaWQgdHlwZSc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGd1YXJkKGlubmVyKSA/IHN1Y2NlZWQoaW5uZXIpIDogZmFpbChgJHttZXNzYWdlfTogJHtKU09OLnN0cmluZ2lmeShmcm9tKX1gKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB7QGluaGVyaXRkb2MgQ29udmVydGVyLndpdGhJdGVtVHlwZUd1YXJkfVxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoSXRlbVR5cGVHdWFyZDxUST4oZ3VhcmQ6IChmcm9tOiB1bmtub3duKSA9PiBmcm9tIGlzIFRJLCBtZXNzYWdlPzogc3RyaW5nKTogQ29udmVydGVyPFRJW10sIFRDPiB7XG4gICAgICAgIHJldHVybiBuZXcgQmFzZUNvbnZlcnRlcjxUSVtdLCBUQz4oKGZyb206IHVua25vd24sIF9zZWxmOiBDb252ZXJ0ZXI8VElbXSwgVEM+LCBjb250ZXh0PzogVEMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb252ZXJ0ZXIoZnJvbSwgdGhpcywgdGhpcy5fY29udGV4dChjb250ZXh0KSkub25TdWNjZXNzKChpdGVtcykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFwUmVzdWx0cyhpdGVtcy5tYXAoKGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlID8/ICdpbnZhbGlkIHR5cGUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGd1YXJkKGkpID8gc3VjY2VlZChpKSA6IGZhaWwoYCR7bWVzc2FnZX06ICR7SlNPTi5zdHJpbmdpZnkoZnJvbSl9YCk7XG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhaWwoJ0Nhbm5vdCBndWFyZCBpdGVtIHR5cGUgLSBub3QgYW4gYXJyYXknKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB7QGluaGVyaXRkb2MgQ29udmVydGVyLndpdGhDb25zdHJhaW50fVxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoQ29uc3RyYWludChcbiAgICAgICAgY29uc3RyYWludDogKHZhbDogVCkgPT4gYm9vbGVhbnxSZXN1bHQ8VD4sXG4gICAgICAgIG9wdGlvbnM/OiBDb25zdHJhaW50T3B0aW9ucyxcbiAgICApOiBDb252ZXJ0ZXI8VCwgVEM+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBCYXNlQ29udmVydGVyPFQsIFRDPigoZnJvbTogdW5rbm93biwgX3NlbGY6IENvbnZlcnRlcjxULCBUQz4sIGNvbnRleHQ/OiBUQykgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fY29udmVydGVyKGZyb20sIHRoaXMsIHRoaXMuX2NvbnRleHQoY29udGV4dCkpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdC5pc1N1Y2Nlc3MoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnN0cmFpbnRSZXN1bHQgPSBjb25zdHJhaW50KHJlc3VsdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb25zdHJhaW50UmVzdWx0ID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnN0cmFpbnRSZXN1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gcmVzdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICA6IGZhaWwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYFwiJHtKU09OLnN0cmluZ2lmeShyZXN1bHQudmFsdWUpfVwiOiAke29wdGlvbnM/LmRlc2NyaXB0aW9uID8/ICdkb2VzIG5vdCBtZWV0IGNvbnN0cmFpbnQnfWBcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBjb25zdHJhaW50UmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSkuX3dpdGgodGhpcy5fdHJhaXRzKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHtAaW5oZXJpdGRvYyBDb252ZXJ0ZXIud2l0aEJyYW5kfVxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoQnJhbmQ8QiBleHRlbmRzIHN0cmluZz4oYnJhbmQ6IEIpOiBDb252ZXJ0ZXI8QnJhbmQ8VCwgQj4sIFRDPiB7XG4gICAgICAgIGlmICh0aGlzLl9icmFuZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcmVwbGFjZSBleGlzdGluZyBicmFuZCBcIiR7dGhpcy5fYnJhbmR9XCIgd2l0aCBcIiR7YnJhbmR9XCIuYCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3IEJhc2VDb252ZXJ0ZXI8QnJhbmQ8VCwgQj4sIFRDPigoZnJvbTogdW5rbm93biwgX3NlbGY6IENvbnZlcnRlcjxULCBUQz4sIGNvbnRleHQ/OiBUQykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRlcihmcm9tLCB0aGlzLCB0aGlzLl9jb250ZXh0KGNvbnRleHQpKS5vblN1Y2Nlc3MoKHYpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3VjY2VlZCh2IGFzIEJyYW5kPFQsIEI+KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KS5fd2l0aCh0aGlzLl90cmFpdHMoeyBicmFuZCB9KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9jb250ZXh0KHN1cHBsaWVkPzogVEMpOiBUQ3x1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gc3VwcGxpZWQgPz8gdGhpcy5fZGVmYXVsdENvbnRleHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF90cmFpdHModHJhaXRzPzogUGFydGlhbDxDb252ZXJ0ZXJUcmFpdHM+KTogQ29udmVydGVyVHJhaXRzIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlzT3B0aW9uYWw6IHRoaXMuaXNPcHRpb25hbCxcbiAgICAgICAgICAgIGJyYW5kOiB0aGlzLmJyYW5kLFxuICAgICAgICAgICAgLi4uKHRyYWl0cyA/PyB7fSksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF93aXRoKHRyYWl0czogUGFydGlhbDxDb252ZXJ0ZXJUcmFpdHM+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2lzT3B0aW9uYWwgPSAodHJhaXRzLmlzT3B0aW9uYWwgPT09IHRydWUpO1xuICAgICAgICB0aGlzLl9icmFuZCA9ICh0cmFpdHMuYnJhbmQpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG4iXX0=
|
package/converters.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { BaseConverter, Converter, ConverterTraits } from './converter';
|
|
|
2
2
|
import { RangeOf, RangeOfProperties } from './rangeOf';
|
|
3
3
|
import { Result } from './result';
|
|
4
4
|
import { ExtendedArray } from './extendedArray';
|
|
5
|
+
import { Validator } from './validation';
|
|
5
6
|
type OnError = 'failOnError' | 'ignoreErrors';
|
|
6
7
|
/**
|
|
7
8
|
* Options for {@link Converters.StringConverter | StringConverter}
|
|
@@ -171,6 +172,13 @@ export declare function delimitedString(delimiter: string, options?: 'filtered'
|
|
|
171
172
|
* @public
|
|
172
173
|
*/
|
|
173
174
|
export declare const isoDate: BaseConverter<Date, undefined>;
|
|
175
|
+
/**
|
|
176
|
+
* Helper function to create a {@link Converter} from any {@link Validation.Validator}
|
|
177
|
+
* @param validator - the validator to be wrapped
|
|
178
|
+
* @returns A {@link Converter} which uses the supplied validator.
|
|
179
|
+
* @public
|
|
180
|
+
*/
|
|
181
|
+
export declare function validated<T, TC = unknown>(validator: Validator<T, TC>): Converter<T, TC>;
|
|
174
182
|
/**
|
|
175
183
|
* A {@link Converter} which converts an optional `number` value.
|
|
176
184
|
* @remarks
|
|
@@ -644,6 +652,7 @@ export type FieldTransformers<TSRC, TDEST, TC = unknown> = {
|
|
|
644
652
|
};
|
|
645
653
|
/**
|
|
646
654
|
* Options for a {@link Converters.transformObject} call.
|
|
655
|
+
* @public
|
|
647
656
|
*/
|
|
648
657
|
export interface TransformObjectOptions<TSRC> {
|
|
649
658
|
/**
|
package/converters.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"converters.d.ts","sourceRoot":"","sources":["../src/converters.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,MAAM,EAAgC,MAAM,UAAU,CAAC;AAGhE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"converters.d.ts","sourceRoot":"","sources":["../src/converters.ts"],"names":[],"mappings":"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"}
|