@fgv/ts-bcp47
Advanced tools
Comparing version 0.9.2 to 0.9.3
import * as Bcp47 from './bcp47'; | ||
import * as Iana from './iana'; | ||
import * as Unsd from './unsd'; | ||
export { Bcp47, Iana, Unsd }; | ||
import * as Utils from './utils/public'; | ||
export { Bcp47, Iana, Unsd, Utils }; | ||
//# sourceMappingURL=index.d.ts.map |
@@ -47,3 +47,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Unsd = exports.Iana = exports.Bcp47 = void 0; | ||
exports.Utils = exports.Unsd = exports.Iana = exports.Bcp47 = void 0; | ||
const Bcp47 = __importStar(require("./bcp47")); | ||
@@ -55,2 +55,4 @@ exports.Bcp47 = Bcp47; | ||
exports.Unsd = Unsd; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCwrQ0FBaUM7QUFJeEIsc0JBQUs7QUFIZCw2Q0FBK0I7QUFHZixvQkFBSTtBQUZwQiw2Q0FBK0I7QUFFVCxvQkFBSSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjIgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBCY3A0NyBmcm9tICcuL2JjcDQ3JztcbmltcG9ydCAqIGFzIElhbmEgZnJvbSAnLi9pYW5hJztcbmltcG9ydCAqIGFzIFVuc2QgZnJvbSAnLi91bnNkJztcblxuZXhwb3J0IHsgQmNwNDcsIElhbmEsIFVuc2QgfTtcbiJdfQ== | ||
const Utils = __importStar(require("./utils/public")); | ||
exports.Utils = Utils; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCwrQ0FBaUM7QUFLeEIsc0JBQUs7QUFKZCw2Q0FBK0I7QUFJZixvQkFBSTtBQUhwQiw2Q0FBK0I7QUFHVCxvQkFBSTtBQUYxQixzREFBd0M7QUFFWixzQkFBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjIgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBCY3A0NyBmcm9tICcuL2JjcDQ3JztcbmltcG9ydCAqIGFzIElhbmEgZnJvbSAnLi9pYW5hJztcbmltcG9ydCAqIGFzIFVuc2QgZnJvbSAnLi91bnNkJztcbmltcG9ydCAqIGFzIFV0aWxzIGZyb20gJy4vdXRpbHMvcHVibGljJztcblxuZXhwb3J0IHsgQmNwNDcsIElhbmEsIFVuc2QsIFV0aWxzIH07XG4iXX0= |
{ | ||
"name": "@fgv/ts-bcp47", | ||
"version": "0.9.2", | ||
"version": "0.9.3", | ||
"description": "BCP-47 Tag Utilities", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
import { Converter, Result, Validation } from '@fgv/ts-utils'; | ||
import { TypeGuardWithContext } from '@fgv/ts-utils/validation'; | ||
/** | ||
* @internal | ||
* A function which accepts a value of the expected type and reformats it to match | ||
* the canonical presentation form. | ||
* @public | ||
*/ | ||
export type Normalizer<T extends string, TC = unknown> = (val: T, context?: TC) => Result<T>; | ||
/** | ||
* @internal | ||
* Initializer for {@link Utils.ValidationHelpers | validation helpers}. | ||
* @public | ||
*/ | ||
@@ -17,13 +20,64 @@ export interface ValidationHelpersConstructorParams<T extends string, TC = unknown> { | ||
/** | ||
* @internal | ||
A collection of validation and normalization helpers for constrained string | ||
types. | ||
* @public | ||
*/ | ||
export declare class ValidationHelpers<T extends string, TC = unknown> { | ||
/** | ||
* Describes the group of tags validated by these helpers. | ||
*/ | ||
readonly description: string; | ||
/** | ||
* A `Convereter` which converts `unknown` to the tag type | ||
* validated by these helpers, if possible. | ||
*/ | ||
readonly converter: Converter<T, TC>; | ||
/** | ||
* Determines is a supplied tag is well-formed according to the | ||
* lexical rules defined for the tag validated by these helpers. | ||
*/ | ||
readonly isWellFormed: TypeGuardWithContext<T, TC>; | ||
/** | ||
* Determines is a supplied tag is well-formed and uses canonical | ||
* formatting, according to the lexical rules defined for the tag | ||
* validated by these helpers. | ||
*/ | ||
readonly isCanonical: TypeGuardWithContext<T, TC>; | ||
/** | ||
* @internal | ||
*/ | ||
protected readonly _toCanonical?: Normalizer<T, TC>; | ||
/** | ||
* Constructs new {@link Utils.ValidationHelpers | validation helpers} | ||
* from supplied initializers. | ||
* @param init - The {@link Utils.ValidationHelpersConstructorParams | constructor params} | ||
* used to initialize this {@link Utils.ValidationHelpers | validation helpers}. | ||
*/ | ||
constructor(init: ValidationHelpersConstructorParams<T, TC>); | ||
/** | ||
* Converts a supplied `unknown` to the canonical form of the tag | ||
* validated by these helpers. | ||
* @param from - The `unknown` to be converted. | ||
* @param context - Optional context used in the conversion. | ||
* @returns `Success` with the corresponding canonical value, | ||
* or `Failure` with details if an error occurs. | ||
*/ | ||
toCanonical(from: unknown, context?: TC): Result<T>; | ||
/** | ||
* Determints if a supplied `unknown` is a well-formed representation | ||
* of the tag validated by these helpers. | ||
* @param from - The `unknown` to be validated. | ||
* @param context - Optional context used in the validation. | ||
* @returns `Success` with the validated value, or `Failure` with details | ||
* if an error occurs. | ||
*/ | ||
verifyIsWellFormed(from: unknown, context?: TC): Result<T>; | ||
/** | ||
* Determints if a supplied `unknown` is a well-formed, canonical representation | ||
* of the tag validated by these helpers. | ||
* @param from - The `unknown` to be validated. | ||
* @param context - Optional context used in the validation. | ||
* @returns `Success` with the validated canonical value, or `Failure` with | ||
* details if an error occurs. | ||
*/ | ||
verifyIsCanonical(from: unknown, context?: TC): Result<T>; | ||
@@ -30,0 +84,0 @@ } |
@@ -27,5 +27,13 @@ "use strict"; | ||
/** | ||
* @internal | ||
A collection of validation and normalization helpers for constrained string | ||
types. | ||
* @public | ||
*/ | ||
class ValidationHelpers { | ||
/** | ||
* Constructs new {@link Utils.ValidationHelpers | validation helpers} | ||
* from supplied initializers. | ||
* @param init - The {@link Utils.ValidationHelpersConstructorParams | constructor params} | ||
* used to initialize this {@link Utils.ValidationHelpers | validation helpers}. | ||
*/ | ||
constructor(init) { | ||
@@ -38,2 +46,10 @@ this.description = init.description; | ||
} | ||
/** | ||
* Converts a supplied `unknown` to the canonical form of the tag | ||
* validated by these helpers. | ||
* @param from - The `unknown` to be converted. | ||
* @param context - Optional context used in the conversion. | ||
* @returns `Success` with the corresponding canonical value, | ||
* or `Failure` with details if an error occurs. | ||
*/ | ||
toCanonical(from, context) { | ||
@@ -52,2 +68,10 @@ if (this.isWellFormed(from, context)) { | ||
} | ||
/** | ||
* Determints if a supplied `unknown` is a well-formed representation | ||
* of the tag validated by these helpers. | ||
* @param from - The `unknown` to be validated. | ||
* @param context - Optional context used in the validation. | ||
* @returns `Success` with the validated value, or `Failure` with details | ||
* if an error occurs. | ||
*/ | ||
verifyIsWellFormed(from, context) { | ||
@@ -59,2 +83,10 @@ if (this.isWellFormed(from, context)) { | ||
} | ||
/** | ||
* Determints if a supplied `unknown` is a well-formed, canonical representation | ||
* of the tag validated by these helpers. | ||
* @param from - The `unknown` to be validated. | ||
* @param context - Optional context used in the validation. | ||
* @returns `Success` with the validated canonical value, or `Failure` with | ||
* details if an error occurs. | ||
*/ | ||
verifyIsCanonical(from, context) { | ||
@@ -92,2 +124,2 @@ if (this.isCanonical(from, context)) { | ||
exports.RegExpValidationHelpers = RegExpValidationHelpers; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbkhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdmFsaWRhdGlvbkhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7O0FBRUgsNENBQXlGO0FBa0J6Rjs7R0FFRztBQUNILE1BQWEsaUJBQWlCO0lBUTFCLFlBQW1CLElBQStDO1FBQzlELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTSxXQUFXLENBQUMsSUFBYSxFQUFFLE9BQVk7UUFDMUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRTtZQUNsQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ25CLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDM0M7WUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFO2dCQUNqQyxPQUFPLElBQUEsa0JBQU8sRUFBQyxJQUFJLENBQUMsQ0FBQzthQUN4QjtZQUNELHVCQUF1QjtZQUN2QixPQUFPLElBQUEsZUFBSSxFQUFDLG1CQUFtQixJQUFJLGtCQUFrQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztTQUM1RTtRQUNELE9BQU8sSUFBQSxlQUFJLEVBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxJQUFhLEVBQUUsT0FBWTtRQUNqRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQ2xDLE9BQU8sSUFBQSxrQkFBTyxFQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO1FBQ0QsT0FBTyxJQUFBLGVBQUksRUFBQyxhQUFhLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxJQUFhLEVBQUUsT0FBWTtRQUNoRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQ2pDLE9BQU8sSUFBQSxrQkFBTyxFQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO1FBQ0Qsa0VBQWtFO1FBQ2xFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRTtZQUNuQyxPQUFPLElBQUEsZUFBSSxFQUFDLGFBQWEsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7U0FDaEQ7UUFDRCxPQUFPLElBQUEsZUFBSSxFQUFDLGlCQUFpQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0o7QUEvQ0QsOENBK0NDO0FBWUQ7O0dBRUc7QUFDSCxNQUFhLHVCQUF3RCxTQUFRLGlCQUF3QjtJQUlqRyxZQUFtQixNQUFzRDtRQUNyRSxLQUFLLENBQUM7WUFDRixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDL0IsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1lBQy9CLFlBQVksRUFBRSxDQUFDLElBQWEsRUFBYSxFQUFFO2dCQUN2QyxPQUFPLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsRSxDQUFDO1lBQ0QsV0FBVyxFQUFFLENBQUMsSUFBYSxFQUFhLEVBQUU7Z0JBQ3RDLE9BQU8sT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pFLENBQUM7U0FDSixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQ3RDLENBQUM7Q0FDSjtBQWxCRCwwREFrQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDIxIEVyaWsgRm9ydHVuZVxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cblxuaW1wb3J0IHsgQ29udmVydGVyLCBDb252ZXJ0ZXJzLCBSZXN1bHQsIFZhbGlkYXRpb24sIGZhaWwsIHN1Y2NlZWQgfSBmcm9tICdAZmd2L3RzLXV0aWxzJztcbmltcG9ydCB7IFR5cGVHdWFyZFdpdGhDb250ZXh0IH0gZnJvbSAnQGZndi90cy11dGlscy92YWxpZGF0aW9uJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IHR5cGUgTm9ybWFsaXplcjxUIGV4dGVuZHMgc3RyaW5nLCBUQyA9IHVua25vd24+ID0gKHZhbDogVCwgY29udGV4dD86IFRDKSA9PiBSZXN1bHQ8VD47XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvbkhlbHBlcnNDb25zdHJ1Y3RvclBhcmFtczxUIGV4dGVuZHMgc3RyaW5nLCBUQyA9IHVua25vd24+IHtcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIGlzV2VsbEZvcm1lZDogVmFsaWRhdGlvbi5UeXBlR3VhcmRXaXRoQ29udGV4dDxULCBUQz47XG4gICAgaXNDYW5vbmljYWw6IFZhbGlkYXRpb24uVHlwZUd1YXJkV2l0aENvbnRleHQ8VCwgVEM+O1xuICAgIHRvQ2Fub25pY2FsPzogTm9ybWFsaXplcjxULCBUQz47XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uSGVscGVyczxUIGV4dGVuZHMgc3RyaW5nLCBUQyA9IHVua25vd24+IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29udmVydGVyOiBDb252ZXJ0ZXI8VCwgVEM+O1xuICAgIHB1YmxpYyByZWFkb25seSBpc1dlbGxGb3JtZWQ6IFR5cGVHdWFyZFdpdGhDb250ZXh0PFQsIFRDPjtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaXNDYW5vbmljYWw6IFR5cGVHdWFyZFdpdGhDb250ZXh0PFQsIFRDPjtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBfdG9DYW5vbmljYWw/OiBOb3JtYWxpemVyPFQsIFRDPjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihpbml0OiBWYWxpZGF0aW9uSGVscGVyc0NvbnN0cnVjdG9yUGFyYW1zPFQsIFRDPikge1xuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gaW5pdC5kZXNjcmlwdGlvbjtcbiAgICAgICAgdGhpcy5pc1dlbGxGb3JtZWQgPSBpbml0LmlzV2VsbEZvcm1lZDtcbiAgICAgICAgdGhpcy5pc0Nhbm9uaWNhbCA9IGluaXQuaXNDYW5vbmljYWw7XG4gICAgICAgIHRoaXMuX3RvQ2Fub25pY2FsID0gaW5pdC50b0Nhbm9uaWNhbDtcbiAgICAgICAgdGhpcy5jb252ZXJ0ZXIgPSBDb252ZXJ0ZXJzLmlzQSh0aGlzLmRlc2NyaXB0aW9uLCB0aGlzLmlzV2VsbEZvcm1lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvQ2Fub25pY2FsKGZyb206IHVua25vd24sIGNvbnRleHQ/OiBUQyk6IFJlc3VsdDxUPiB7XG4gICAgICAgIGlmICh0aGlzLmlzV2VsbEZvcm1lZChmcm9tLCBjb250ZXh0KSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3RvQ2Fub25pY2FsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RvQ2Fub25pY2FsKGZyb20sIGNvbnRleHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaXNDYW5vbmljYWwoZnJvbSwgY29udGV4dCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3VjY2VlZChmcm9tKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gICAgICAgICAgICByZXR1cm4gZmFpbChgY2Fubm90IGNvbnZlcnQgXCIke2Zyb219XCIgdG8gY2Fub25pY2FsICR7dGhpcy5kZXNjcmlwdGlvbn1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFpbChgaW52YWxpZCAke3RoaXMuZGVzY3JpcHRpb259IChcIiR7SlNPTi5zdHJpbmdpZnkoZnJvbSl9XCIpYCk7XG4gICAgfVxuXG4gICAgcHVibGljIHZlcmlmeUlzV2VsbEZvcm1lZChmcm9tOiB1bmtub3duLCBjb250ZXh0PzogVEMpOiBSZXN1bHQ8VD4ge1xuICAgICAgICBpZiAodGhpcy5pc1dlbGxGb3JtZWQoZnJvbSwgY29udGV4dCkpIHtcbiAgICAgICAgICAgIHJldHVybiBzdWNjZWVkKGZyb20pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWlsKGBtYWxmb3JtZWQgJHt0aGlzLmRlc2NyaXB0aW9ufWApO1xuICAgIH1cblxuICAgIHB1YmxpYyB2ZXJpZnlJc0Nhbm9uaWNhbChmcm9tOiB1bmtub3duLCBjb250ZXh0PzogVEMpOiBSZXN1bHQ8VD4ge1xuICAgICAgICBpZiAodGhpcy5pc0Nhbm9uaWNhbChmcm9tLCBjb250ZXh0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHN1Y2NlZWQoZnJvbSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHQgLSBzaG91bGQgbmV2ZXIgb2NjdXIgYW5kIHZlcnkgaGFyZCB0byB0ZXN0XG4gICAgICAgIGlmICghdGhpcy5pc1dlbGxGb3JtZWQoZnJvbSwgY29udGV4dCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWlsKGBtYWxmb3JtZWQgJHt0aGlzLmRlc2NyaXB0aW9ufWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWlsKGBub24tY2Fub25pY2FsICR7dGhpcy5kZXNjcmlwdGlvbn1gKTtcbiAgICB9XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnRXhwVmFsaWRhdGlvbkhlbHBlckNvbnN0cnVjdG9yUGFyYW1zPFQgZXh0ZW5kcyBzdHJpbmcsIFRDID0gdW5rbm93bj4ge1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgd2VsbEZvcm1lZDogUmVnRXhwO1xuICAgIGNhbm9uaWNhbDogUmVnRXhwO1xuICAgIHRvQ2Fub25pY2FsPzogTm9ybWFsaXplcjxULCBUQz47XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBSZWdFeHBWYWxpZGF0aW9uSGVscGVyczxUIGV4dGVuZHMgc3RyaW5nLCBUQyA9IHVua25vd24+IGV4dGVuZHMgVmFsaWRhdGlvbkhlbHBlcnM8VCwgVEM+IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgd2VsbEZvcm1lZDogUmVnRXhwO1xuICAgIHB1YmxpYyByZWFkb25seSBjYW5vbmljYWw6IFJlZ0V4cDtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IFJlZ0V4cFZhbGlkYXRpb25IZWxwZXJDb25zdHJ1Y3RvclBhcmFtczxULCBUQz4pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IHBhcmFtcy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHRvQ2Fub25pY2FsOiBwYXJhbXMudG9DYW5vbmljYWwsXG4gICAgICAgICAgICBpc1dlbGxGb3JtZWQ6IChmcm9tOiB1bmtub3duKTogZnJvbSBpcyBUID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIGZyb20gPT09ICdzdHJpbmcnICYmIHRoaXMud2VsbEZvcm1lZC50ZXN0KGZyb20pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlzQ2Fub25pY2FsOiAoZnJvbTogdW5rbm93bik6IGZyb20gaXMgVCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBmcm9tID09PSAnc3RyaW5nJyAmJiB0aGlzLmNhbm9uaWNhbC50ZXN0KGZyb20pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMud2VsbEZvcm1lZCA9IHBhcmFtcy53ZWxsRm9ybWVkO1xuICAgICAgICB0aGlzLmNhbm9uaWNhbCA9IHBhcmFtcy5jYW5vbmljYWw7XG4gICAgfVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbkhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdmFsaWRhdGlvbkhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7O0FBRUgsNENBQXlGO0FBcUJ6Rjs7OztHQUlHO0FBQ0gsTUFBYSxpQkFBaUI7SUE4QjFCOzs7OztPQUtHO0lBQ0gsWUFBbUIsSUFBK0M7UUFDOUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxXQUFXLENBQUMsSUFBYSxFQUFFLE9BQVk7UUFDMUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRTtZQUNsQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ25CLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDM0M7WUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFO2dCQUNqQyxPQUFPLElBQUEsa0JBQU8sRUFBQyxJQUFJLENBQUMsQ0FBQzthQUN4QjtZQUNELHVCQUF1QjtZQUN2QixPQUFPLElBQUEsZUFBSSxFQUFDLG1CQUFtQixJQUFJLGtCQUFrQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztTQUM1RTtRQUNELE9BQU8sSUFBQSxlQUFJLEVBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksa0JBQWtCLENBQUMsSUFBYSxFQUFFLE9BQVk7UUFDakQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRTtZQUNsQyxPQUFPLElBQUEsa0JBQU8sRUFBQyxJQUFJLENBQUMsQ0FBQztTQUN4QjtRQUNELE9BQU8sSUFBQSxlQUFJLEVBQUMsYUFBYSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLGlCQUFpQixDQUFDLElBQWEsRUFBRSxPQUFZO1FBQ2hELElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDakMsT0FBTyxJQUFBLGtCQUFPLEVBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEI7UUFDRCxrRUFBa0U7UUFDbEUsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQ25DLE9BQU8sSUFBQSxlQUFJLEVBQUMsYUFBYSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztTQUNoRDtRQUNELE9BQU8sSUFBQSxlQUFJLEVBQUMsaUJBQWlCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7Q0FDSjtBQW5HRCw4Q0FtR0M7QUFZRDs7R0FFRztBQUNILE1BQWEsdUJBQXdELFNBQVEsaUJBQXdCO0lBSWpHLFlBQW1CLE1BQXNEO1FBQ3JFLEtBQUssQ0FBQztZQUNGLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztZQUMvQixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDL0IsWUFBWSxFQUFFLENBQUMsSUFBYSxFQUFhLEVBQUU7Z0JBQ3ZDLE9BQU8sT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xFLENBQUM7WUFDRCxXQUFXLEVBQUUsQ0FBQyxJQUFhLEVBQWEsRUFBRTtnQkFDdEMsT0FBTyxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakUsQ0FBQztTQUNKLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFDdEMsQ0FBQztDQUNKO0FBbEJELDBEQWtCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5pbXBvcnQgeyBDb252ZXJ0ZXIsIENvbnZlcnRlcnMsIFJlc3VsdCwgVmFsaWRhdGlvbiwgZmFpbCwgc3VjY2VlZCB9IGZyb20gJ0BmZ3YvdHMtdXRpbHMnO1xuaW1wb3J0IHsgVHlwZUd1YXJkV2l0aENvbnRleHQgfSBmcm9tICdAZmd2L3RzLXV0aWxzL3ZhbGlkYXRpb24nO1xuXG4vKipcbiAqIEEgZnVuY3Rpb24gd2hpY2ggYWNjZXB0cyBhIHZhbHVlIG9mIHRoZSBleHBlY3RlZCB0eXBlIGFuZCByZWZvcm1hdHMgaXQgdG8gbWF0Y2hcbiAqIHRoZSBjYW5vbmljYWwgcHJlc2VudGF0aW9uIGZvcm0uXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIE5vcm1hbGl6ZXI8VCBleHRlbmRzIHN0cmluZywgVEMgPSB1bmtub3duPiA9ICh2YWw6IFQsIGNvbnRleHQ/OiBUQykgPT4gUmVzdWx0PFQ+O1xuXG4vKipcbiAqIEluaXRpYWxpemVyIGZvciB7QGxpbmsgVXRpbHMuVmFsaWRhdGlvbkhlbHBlcnMgfCB2YWxpZGF0aW9uIGhlbHBlcnN9LlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb25IZWxwZXJzQ29uc3RydWN0b3JQYXJhbXM8VCBleHRlbmRzIHN0cmluZywgVEMgPSB1bmtub3duPiB7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBpc1dlbGxGb3JtZWQ6IFZhbGlkYXRpb24uVHlwZUd1YXJkV2l0aENvbnRleHQ8VCwgVEM+O1xuICAgIGlzQ2Fub25pY2FsOiBWYWxpZGF0aW9uLlR5cGVHdWFyZFdpdGhDb250ZXh0PFQsIFRDPjtcbiAgICB0b0Nhbm9uaWNhbD86IE5vcm1hbGl6ZXI8VCwgVEM+O1xufVxuXG4vKipcbiAgQSBjb2xsZWN0aW9uIG9mIHZhbGlkYXRpb24gYW5kIG5vcm1hbGl6YXRpb24gaGVscGVycyBmb3IgY29uc3RyYWluZWQgc3RyaW5nXG4gIHR5cGVzLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbkhlbHBlcnM8VCBleHRlbmRzIHN0cmluZywgVEMgPSB1bmtub3duPiB7XG4gICAgLyoqXG4gICAgICogRGVzY3JpYmVzIHRoZSBncm91cCBvZiB0YWdzIHZhbGlkYXRlZCBieSB0aGVzZSBoZWxwZXJzLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQSBgQ29udmVyZXRlcmAgd2hpY2ggY29udmVydHMgYHVua25vd25gIHRvIHRoZSB0YWcgdHlwZVxuICAgICAqIHZhbGlkYXRlZCBieSB0aGVzZSBoZWxwZXJzLCBpZiBwb3NzaWJsZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgY29udmVydGVyOiBDb252ZXJ0ZXI8VCwgVEM+O1xuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyBpcyBhIHN1cHBsaWVkIHRhZyBpcyB3ZWxsLWZvcm1lZCBhY2NvcmRpbmcgdG8gdGhlXG4gICAgICogbGV4aWNhbCBydWxlcyBkZWZpbmVkIGZvciB0aGUgdGFnIHZhbGlkYXRlZCBieSB0aGVzZSBoZWxwZXJzLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBpc1dlbGxGb3JtZWQ6IFR5cGVHdWFyZFdpdGhDb250ZXh0PFQsIFRDPjtcblxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgaXMgYSBzdXBwbGllZCB0YWcgaXMgd2VsbC1mb3JtZWQgYW5kIHVzZXMgY2Fub25pY2FsXG4gICAgICogZm9ybWF0dGluZywgYWNjb3JkaW5nIHRvIHRoZSBsZXhpY2FsIHJ1bGVzIGRlZmluZWQgZm9yIHRoZSB0YWdcbiAgICAgKiB2YWxpZGF0ZWQgYnkgdGhlc2UgaGVscGVycy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgaXNDYW5vbmljYWw6IFR5cGVHdWFyZFdpdGhDb250ZXh0PFQsIFRDPjtcblxuICAgIC8qKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfdG9DYW5vbmljYWw/OiBOb3JtYWxpemVyPFQsIFRDPjtcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdHMgbmV3IHtAbGluayBVdGlscy5WYWxpZGF0aW9uSGVscGVycyB8IHZhbGlkYXRpb24gaGVscGVyc31cbiAgICAgKiBmcm9tIHN1cHBsaWVkIGluaXRpYWxpemVycy5cbiAgICAgKiBAcGFyYW0gaW5pdCAtIFRoZSB7QGxpbmsgVXRpbHMuVmFsaWRhdGlvbkhlbHBlcnNDb25zdHJ1Y3RvclBhcmFtcyB8IGNvbnN0cnVjdG9yIHBhcmFtc31cbiAgICAgKiB1c2VkIHRvIGluaXRpYWxpemUgdGhpcyB7QGxpbmsgVXRpbHMuVmFsaWRhdGlvbkhlbHBlcnMgfCB2YWxpZGF0aW9uIGhlbHBlcnN9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihpbml0OiBWYWxpZGF0aW9uSGVscGVyc0NvbnN0cnVjdG9yUGFyYW1zPFQsIFRDPikge1xuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gaW5pdC5kZXNjcmlwdGlvbjtcbiAgICAgICAgdGhpcy5pc1dlbGxGb3JtZWQgPSBpbml0LmlzV2VsbEZvcm1lZDtcbiAgICAgICAgdGhpcy5pc0Nhbm9uaWNhbCA9IGluaXQuaXNDYW5vbmljYWw7XG4gICAgICAgIHRoaXMuX3RvQ2Fub25pY2FsID0gaW5pdC50b0Nhbm9uaWNhbDtcbiAgICAgICAgdGhpcy5jb252ZXJ0ZXIgPSBDb252ZXJ0ZXJzLmlzQSh0aGlzLmRlc2NyaXB0aW9uLCB0aGlzLmlzV2VsbEZvcm1lZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYSBzdXBwbGllZCBgdW5rbm93bmAgdG8gdGhlIGNhbm9uaWNhbCBmb3JtIG9mIHRoZSB0YWdcbiAgICAgKiB2YWxpZGF0ZWQgYnkgdGhlc2UgaGVscGVycy5cbiAgICAgKiBAcGFyYW0gZnJvbSAtIFRoZSBgdW5rbm93bmAgdG8gYmUgY29udmVydGVkLlxuICAgICAqIEBwYXJhbSBjb250ZXh0IC0gT3B0aW9uYWwgY29udGV4dCB1c2VkIGluIHRoZSBjb252ZXJzaW9uLlxuICAgICAqIEByZXR1cm5zIGBTdWNjZXNzYCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGNhbm9uaWNhbCB2YWx1ZSxcbiAgICAgKiBvciBgRmFpbHVyZWAgd2l0aCBkZXRhaWxzIGlmIGFuIGVycm9yIG9jY3Vycy5cbiAgICAgKi9cbiAgICBwdWJsaWMgdG9DYW5vbmljYWwoZnJvbTogdW5rbm93biwgY29udGV4dD86IFRDKTogUmVzdWx0PFQ+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNXZWxsRm9ybWVkKGZyb20sIGNvbnRleHQpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fdG9DYW5vbmljYWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdG9DYW5vbmljYWwoZnJvbSwgY29udGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5pc0Nhbm9uaWNhbChmcm9tLCBjb250ZXh0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdWNjZWVkKGZyb20pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICAgICAgICAgIHJldHVybiBmYWlsKGBjYW5ub3QgY29udmVydCBcIiR7ZnJvbX1cIiB0byBjYW5vbmljYWwgJHt0aGlzLmRlc2NyaXB0aW9ufWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWlsKGBpbnZhbGlkICR7dGhpcy5kZXNjcmlwdGlvbn0gKFwiJHtKU09OLnN0cmluZ2lmeShmcm9tKX1cIilgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbnRzIGlmIGEgc3VwcGxpZWQgYHVua25vd25gIGlzIGEgd2VsbC1mb3JtZWQgcmVwcmVzZW50YXRpb25cbiAgICAgKiBvZiB0aGUgdGFnIHZhbGlkYXRlZCBieSB0aGVzZSBoZWxwZXJzLlxuICAgICAqIEBwYXJhbSBmcm9tIC0gVGhlIGB1bmtub3duYCB0byBiZSB2YWxpZGF0ZWQuXG4gICAgICogQHBhcmFtIGNvbnRleHQgLSBPcHRpb25hbCBjb250ZXh0IHVzZWQgaW4gdGhlIHZhbGlkYXRpb24uXG4gICAgICogQHJldHVybnMgYFN1Y2Nlc3NgIHdpdGggdGhlIHZhbGlkYXRlZCB2YWx1ZSwgb3IgYEZhaWx1cmVgIHdpdGggZGV0YWlsc1xuICAgICAqIGlmIGFuIGVycm9yIG9jY3Vycy5cbiAgICAgKi9cbiAgICBwdWJsaWMgdmVyaWZ5SXNXZWxsRm9ybWVkKGZyb206IHVua25vd24sIGNvbnRleHQ/OiBUQyk6IFJlc3VsdDxUPiB7XG4gICAgICAgIGlmICh0aGlzLmlzV2VsbEZvcm1lZChmcm9tLCBjb250ZXh0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHN1Y2NlZWQoZnJvbSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhaWwoYG1hbGZvcm1lZCAke3RoaXMuZGVzY3JpcHRpb259YCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW50cyBpZiBhIHN1cHBsaWVkIGB1bmtub3duYCBpcyBhIHdlbGwtZm9ybWVkLCBjYW5vbmljYWwgcmVwcmVzZW50YXRpb25cbiAgICAgKiBvZiB0aGUgdGFnIHZhbGlkYXRlZCBieSB0aGVzZSBoZWxwZXJzLlxuICAgICAqIEBwYXJhbSBmcm9tIC0gVGhlIGB1bmtub3duYCB0byBiZSB2YWxpZGF0ZWQuXG4gICAgICogQHBhcmFtIGNvbnRleHQgLSBPcHRpb25hbCBjb250ZXh0IHVzZWQgaW4gdGhlIHZhbGlkYXRpb24uXG4gICAgICogQHJldHVybnMgYFN1Y2Nlc3NgIHdpdGggdGhlIHZhbGlkYXRlZCBjYW5vbmljYWwgdmFsdWUsIG9yIGBGYWlsdXJlYCB3aXRoXG4gICAgICogZGV0YWlscyBpZiBhbiBlcnJvciBvY2N1cnMuXG4gICAgICovXG4gICAgcHVibGljIHZlcmlmeUlzQ2Fub25pY2FsKGZyb206IHVua25vd24sIGNvbnRleHQ/OiBUQyk6IFJlc3VsdDxUPiB7XG4gICAgICAgIGlmICh0aGlzLmlzQ2Fub25pY2FsKGZyb20sIGNvbnRleHQpKSB7XG4gICAgICAgICAgICByZXR1cm4gc3VjY2VlZChmcm9tKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAtIHNob3VsZCBuZXZlciBvY2N1ciBhbmQgdmVyeSBoYXJkIHRvIHRlc3RcbiAgICAgICAgaWYgKCF0aGlzLmlzV2VsbEZvcm1lZChmcm9tLCBjb250ZXh0KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhaWwoYG1hbGZvcm1lZCAke3RoaXMuZGVzY3JpcHRpb259YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhaWwoYG5vbi1jYW5vbmljYWwgJHt0aGlzLmRlc2NyaXB0aW9ufWApO1xuICAgIH1cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWdFeHBWYWxpZGF0aW9uSGVscGVyQ29uc3RydWN0b3JQYXJhbXM8VCBleHRlbmRzIHN0cmluZywgVEMgPSB1bmtub3duPiB7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICB3ZWxsRm9ybWVkOiBSZWdFeHA7XG4gICAgY2Fub25pY2FsOiBSZWdFeHA7XG4gICAgdG9DYW5vbmljYWw/OiBOb3JtYWxpemVyPFQsIFRDPjtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIFJlZ0V4cFZhbGlkYXRpb25IZWxwZXJzPFQgZXh0ZW5kcyBzdHJpbmcsIFRDID0gdW5rbm93bj4gZXh0ZW5kcyBWYWxpZGF0aW9uSGVscGVyczxULCBUQz4ge1xuICAgIHB1YmxpYyByZWFkb25seSB3ZWxsRm9ybWVkOiBSZWdFeHA7XG4gICAgcHVibGljIHJlYWRvbmx5IGNhbm9uaWNhbDogUmVnRXhwO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtczogUmVnRXhwVmFsaWRhdGlvbkhlbHBlckNvbnN0cnVjdG9yUGFyYW1zPFQsIFRDPikge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogcGFyYW1zLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgdG9DYW5vbmljYWw6IHBhcmFtcy50b0Nhbm9uaWNhbCxcbiAgICAgICAgICAgIGlzV2VsbEZvcm1lZDogKGZyb206IHVua25vd24pOiBmcm9tIGlzIFQgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlb2YgZnJvbSA9PT0gJ3N0cmluZycgJiYgdGhpcy53ZWxsRm9ybWVkLnRlc3QoZnJvbSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNDYW5vbmljYWw6IChmcm9tOiB1bmtub3duKTogZnJvbSBpcyBUID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIGZyb20gPT09ICdzdHJpbmcnICYmIHRoaXMuY2Fub25pY2FsLnRlc3QoZnJvbSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy53ZWxsRm9ybWVkID0gcGFyYW1zLndlbGxGb3JtZWQ7XG4gICAgICAgIHRoaXMuY2Fub25pY2FsID0gcGFyYW1zLmNhbm9uaWNhbDtcbiAgICB9XG59XG4iXX0= |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
2979060
277
87302