Socket
Socket
Sign inDemoInstall

ts-essentials

Package Overview
Dependencies
1
Maintainers
1
Versions
57
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 9.1.0 to 9.1.1

7

CHANGELOG.md
# ts-essentials
## 9.1.1
### Patch Changes
- bf05a7e: Fix `DeepPick` and `DeepOmit` for project with TypeScript 4.5 or newer
- c338a99: Fix `DeepOmit` and `DeepPick` for WeakMap in TypeScript 4.1 and 4.2
## 9.1.0

@@ -4,0 +11,0 @@

110

dist/types.d.ts

@@ -244,41 +244,53 @@ /** Essentials */

? Filter extends Map<KeyType, infer FilterValueType>
? Map<KeyType, DeepOmit<ValueType, FilterValueType>>
? FilterValueType extends DeepModify<ValueType>
? Map<KeyType, DeepOmit<ValueType, FilterValueType>>
: T
: T
: T extends ReadonlyMap<infer KeyType, infer ValueType>
? Filter extends ReadonlyMap<KeyType, infer FilterValueType>
? ReadonlyMap<KeyType, DeepOmit<ValueType, FilterValueType>>
? FilterValueType extends DeepModify<ValueType>
? ReadonlyMap<KeyType, DeepOmit<ValueType, FilterValueType>>
: T
: T
: T extends WeakMap<infer KeyType, infer ValueType>
? Filter extends WeakMap<KeyType, infer FilterValueType>
? WeakMap<KeyType, DeepOmit<ValueType, FilterValueType>>
? FilterValueType extends DeepModify<ValueType>
? WeakMap<KeyType, DeepOmit<ValueType, FilterValueType>>
: T
: T
: T extends Set<infer ItemType>
? Filter extends Set<infer FilterItemType>
? Set<DeepOmit<ItemType, FilterItemType>>
? FilterItemType extends DeepModify<ItemType>
? Set<DeepOmit<ItemType, FilterItemType>>
: T
: T
: T extends ReadonlySet<infer ItemType>
? Filter extends ReadonlySet<infer FilterItemType>
? ReadonlySet<DeepOmit<ItemType, FilterItemType>>
? FilterItemType extends DeepModify<ItemType>
? ReadonlySet<DeepOmit<ItemType, FilterItemType>>
: T
: T
: T extends WeakSet<infer ItemType>
? Filter extends WeakSet<infer FilterItemType>
? WeakSet<DeepOmit<ItemType, FilterItemType>>
? FilterItemType extends DeepModify<ItemType>
? WeakSet<DeepOmit<ItemType, FilterItemType>>
: T
: T
: T extends Array<infer ItemType>
? Filter extends Array<infer FilterItemType>
? Array<DeepOmit<ItemType, FilterItemType>>
? FilterItemType extends DeepModify<ItemType>
? Array<DeepOmit<ItemType, FilterItemType>>
: T
: T
: T extends Promise<infer ItemType>
? Filter extends Promise<infer FilterItemType>
? Promise<DeepOmit<ItemType, FilterItemType>>
? FilterItemType extends DeepModify<ItemType>
? Promise<DeepOmit<ItemType, FilterItemType>>
: T
: T
: Filter extends Record<string, unknown>
: Filter extends AnyRecord
? {
[K in keyof T as K extends keyof Filter
? [Filter[K]] extends [true] | [never]
? never
: K
: K]: K extends keyof Filter
? Filter[K & keyof Filter] extends DeepModify<T[K]>
? DeepOmit<T[K], Filter[K & keyof Filter]>
[K in keyof T as K extends keyof Filter ? (Filter[K] extends true ? never : K) : K]: K extends keyof Filter
? Filter[K] extends DeepModify<T[K]>
? DeepOmit<T[K], Filter[K]>
: T[K]

@@ -293,51 +305,73 @@ : T[K];

? Filter extends Map<KeyType, infer FilterValueType>
? Map<KeyType, DeepPick<ValueType, FilterValueType>>
? FilterValueType extends DeepModify<ValueType>
? Map<KeyType, DeepPick<ValueType, FilterValueType>>
: T
: T
: T extends ReadonlyMap<infer KeyType, infer ValueType>
? Filter extends ReadonlyMap<KeyType, infer FilterValueType>
? ReadonlyMap<KeyType, DeepPick<ValueType, FilterValueType>>
? FilterValueType extends DeepModify<ValueType>
? ReadonlyMap<KeyType, DeepPick<ValueType, FilterValueType>>
: T
: T
: T extends WeakMap<infer KeyType, infer ValueType>
? Filter extends WeakMap<KeyType, infer FilterValueType>
? WeakMap<KeyType, DeepPick<ValueType, FilterValueType>>
? FilterValueType extends DeepModify<ValueType>
? WeakMap<KeyType, DeepPick<ValueType, FilterValueType>>
: T
: T
: T extends Set<infer ItemType>
? Filter extends Set<infer FilterItemType>
? Set<DeepPick<ItemType, FilterItemType>>
? FilterItemType extends DeepModify<ItemType>
? Set<DeepPick<ItemType, FilterItemType>>
: T
: T
: T extends ReadonlySet<infer ItemType>
? Filter extends ReadonlySet<infer FilterItemType>
? ReadonlySet<DeepPick<ItemType, FilterItemType>>
? FilterItemType extends DeepModify<ItemType>
? ReadonlySet<DeepPick<ItemType, FilterItemType>>
: T
: T
: T extends WeakSet<infer ItemType>
? Filter extends WeakSet<infer FilterItemType>
? WeakSet<DeepPick<ItemType, FilterItemType>>
? FilterItemType extends DeepModify<ItemType>
? WeakSet<DeepPick<ItemType, FilterItemType>>
: T
: T
: T extends Array<infer ItemType>
? Filter extends Array<infer FilterItemType>
? Array<DeepPick<ItemType, FilterItemType>>
? FilterItemType extends DeepModify<ItemType>
? Array<DeepPick<ItemType, FilterItemType>>
: T
: T
: T extends Promise<infer ItemType>
? Filter extends Promise<infer FilterItemType>
? Promise<DeepPick<ItemType, FilterItemType>>
? FilterItemType extends DeepModify<ItemType>
? Promise<DeepPick<ItemType, FilterItemType>>
: T
: T
: Filter extends Record<string, unknown>
: Filter extends AnyRecord
? {
[K in keyof T as K extends keyof Filter ? K : never]: Filter[K & keyof Filter] extends true
? T[K & keyof T]
: DeepPick<T[K & keyof T], Filter[K & keyof Filter]>;
? T[K]
: K extends keyof Filter
? Filter[K] extends DeepModify<T[K]>
? DeepPick<T[K], Filter[K]>
: never
: never;
}
: never;
declare type DeepModify<T> =
| {
[K in keyof T]?: undefined extends {
[K2 in keyof T]: K2;
}[K]
? NonUndefinable<T[K]> extends object
? true | DeepModify<NonUndefinable<T[K]>>
: true
: T[K] extends object
? true | DeepModify<T[K]>
: true;
}
| (T extends AnyRecord
? {
[K in keyof T]?: undefined extends {
[K2 in keyof T]: K2;
}[K]
? NonUndefinable<T[K]> extends object
? true | DeepModify<NonUndefinable<T[K]>>
: true
: T[K] extends object
? true | DeepModify<T[K]>
: true;
}
: never)
| (T extends Array<infer E> ? Array<DeepModify<E>> : never)

@@ -344,0 +378,0 @@ | (T extends Promise<infer E> ? Promise<DeepModify<E>> : never)

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBFc3NlbnRpYWxzICovXG4vLyBodHRwczovL2RldmJsb2dzLm1pY3Jvc29mdC5jb20vdHlwZXNjcmlwdC9hbm5vdW5jaW5nLXR5cGVzY3JpcHQtMi05LTIvI3N1cHBvcnQtZm9yLXN5bWJvbHMtYW5kLW51bWVyaWMtbGl0ZXJhbHMtaW4ta2V5b2YtYW5kLW1hcHBlZC1vYmplY3QtdHlwZXNcbmV4cG9ydCB0eXBlIEtleW9mQmFzZSA9IGtleW9mIGFueTtcbmV4cG9ydCB0eXBlIFByaW1pdGl2ZSA9IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBiaWdpbnQgfCBzeW1ib2wgfCB1bmRlZmluZWQgfCBudWxsO1xuZXhwb3J0IHR5cGUgQnVpbHRpbiA9IFByaW1pdGl2ZSB8IEZ1bmN0aW9uIHwgRGF0ZSB8IEVycm9yIHwgUmVnRXhwO1xuZXhwb3J0IHR5cGUgSXNUdXBsZTxUPiA9IFQgZXh0ZW5kcyBhbnlbXSA/IChhbnlbXSBleHRlbmRzIFQgPyBuZXZlciA6IFQpIDogbmV2ZXI7XG50eXBlIEFueVJlY29yZDxUID0gYW55PiA9IFJlY29yZDxLZXlvZkJhc2UsIFQ+O1xuLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDk5Mjc1MjMvZGlzYWxsb3ctY2FsbC13aXRoLWFueS80OTkyODM2MCM0OTkyODM2MFxuZXhwb3J0IHR5cGUgSXNBbnk8VD4gPSAwIGV4dGVuZHMgMSAmIFQgPyB0cnVlIDogZmFsc2U7XG5leHBvcnQgdHlwZSBJc05ldmVyPFQ+ID0gW1RdIGV4dGVuZHMgW25ldmVyXSA/IHRydWUgOiBmYWxzZTtcbmV4cG9ydCB0eXBlIElzVW5rbm93bjxUPiA9IElzQW55PFQ+IGV4dGVuZHMgdHJ1ZSA/IGZhbHNlIDogdW5rbm93biBleHRlbmRzIFQgPyB0cnVlIDogZmFsc2U7XG5leHBvcnQgdHlwZSBBbnlBcnJheTxUID0gYW55PiA9IEFycmF5PFQ+IHwgUmVhZG9ubHlBcnJheTxUPjtcblxuZXhwb3J0IHR5cGUgQXJyYXlPclNpbmdsZTxUPiA9IFQgfCBUW107XG5cbnR5cGUgTm9uVW5kZWZpbmFibGU8VD4gPSBUIGV4dGVuZHMgdW5kZWZpbmVkID8gbmV2ZXIgOiBUO1xuXG4vKipcbiAqIExpa2UgUmVjb3JkLCBidXQgY2FuIGJlIHVzZWQgd2l0aCBvbmx5IG9uZSBhcmd1bWVudC5cbiAqIFVzZWZ1bCwgaWYgeW91IHdhbnQgdG8gbWFrZSBzdXJlIHRoYXQgYWxsIG9mIHRoZSBrZXlzIG9mIGEgZmluaXRlIHR5cGUgYXJlIHVzZWQuXG4gKi9cbmV4cG9ydCB0eXBlIERpY3Rpb25hcnk8VCwgSyBleHRlbmRzIEtleW9mQmFzZSA9IHN0cmluZz4gPSB7IFtrZXkgaW4gS106IFQgfTtcbi8qKiBHaXZlbiBEaWN0aW9uYXJ5PFQ+IHJldHVybnMgVCAqL1xuZXhwb3J0IHR5cGUgRGljdGlvbmFyeVZhbHVlczxUPiA9IFRba2V5b2YgVF07XG4vKipcbiAqIExpa2UgRGljdGlvbmFyeSwgYnV0OlxuICogIC0gZW5zdXJlcyB0eXBlIHNhZmV0eSBvZiBpbmRleCBhY2Nlc3NcbiAqICAtIGRvZXMgbm90IGVuZm9yY2Uga2V5IGV4aGF1c3RpdmVuZXNzXG4gKi9cbmV4cG9ydCB0eXBlIFNhZmVEaWN0aW9uYXJ5PFQsIEsgZXh0ZW5kcyBLZXlvZkJhc2UgPSBzdHJpbmc+ID0geyBba2V5IGluIEtdPzogVCB9O1xuXG4vKiogTGlrZSBQYXJ0aWFsIGJ1dCByZWN1cnNpdmUgKi9cbmV4cG9ydCB0eXBlIERlZXBQYXJ0aWFsPFQ+ID0gVCBleHRlbmRzIEJ1aWx0aW5cbiAgPyBUXG4gIDogVCBleHRlbmRzIE1hcDxpbmZlciBLLCBpbmZlciBWPlxuICA/IE1hcDxEZWVwUGFydGlhbDxLPiwgRGVlcFBhcnRpYWw8Vj4+XG4gIDogVCBleHRlbmRzIFJlYWRvbmx5TWFwPGluZmVyIEssIGluZmVyIFY+XG4gID8gUmVhZG9ubHlNYXA8RGVlcFBhcnRpYWw8Sz4sIERlZXBQYXJ0aWFsPFY+PlxuICA6IFQgZXh0ZW5kcyBXZWFrTWFwPGluZmVyIEssIGluZmVyIFY+XG4gID8gV2Vha01hcDxEZWVwUGFydGlhbDxLPiwgRGVlcFBhcnRpYWw8Vj4+XG4gIDogVCBleHRlbmRzIFNldDxpbmZlciBVPlxuICA/IFNldDxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgVT5cbiAgPyBSZWFkb25seVNldDxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgV2Vha1NldDxpbmZlciBVPlxuICA/IFdlYWtTZXQ8RGVlcFBhcnRpYWw8VT4+XG4gIDogVCBleHRlbmRzIEFycmF5PGluZmVyIFU+XG4gID8gVCBleHRlbmRzIElzVHVwbGU8VD5cbiAgICA/IHsgW0sgaW4ga2V5b2YgVF0/OiBEZWVwUGFydGlhbDxUW0tdPiB9XG4gICAgOiBBcnJheTxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgUHJvbWlzZTxpbmZlciBVPlxuICA/IFByb21pc2U8RGVlcFBhcnRpYWw8VT4+XG4gIDogVCBleHRlbmRzIHt9XG4gID8geyBbSyBpbiBrZXlvZiBUXT86IERlZXBQYXJ0aWFsPFRbS10+IH1cbiAgOiBJc1Vua25vd248VD4gZXh0ZW5kcyB0cnVlXG4gID8gdW5rbm93blxuICA6IFBhcnRpYWw8VD47XG5cbi8qKiBSZWN1cnNpdmUgbnVsbGFibGUgKi9cbmV4cG9ydCB0eXBlIERlZXBOdWxsYWJsZTxUPiA9IFQgZXh0ZW5kcyBCdWlsdGluXG4gID8gVCB8IG51bGxcbiAgOiBUIGV4dGVuZHMgTWFwPGluZmVyIEssIGluZmVyIFY+XG4gID8gTWFwPERlZXBOdWxsYWJsZTxLPiwgRGVlcE51bGxhYmxlPFY+PlxuICA6IFQgZXh0ZW5kcyBSZWFkb25seU1hcDxpbmZlciBLLCBpbmZlciBWPlxuICA/IFJlYWRvbmx5TWFwPERlZXBOdWxsYWJsZTxLPiwgRGVlcE51bGxhYmxlPFY+PlxuICA6IFQgZXh0ZW5kcyBXZWFrTWFwPGluZmVyIEssIGluZmVyIFY+XG4gID8gV2Vha01hcDxEZWVwTnVsbGFibGU8Sz4sIERlZXBOdWxsYWJsZTxWPj5cbiAgOiBUIGV4dGVuZHMgU2V0PGluZmVyIFU+XG4gID8gU2V0PERlZXBOdWxsYWJsZTxVPj5cbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgVT5cbiAgPyBSZWFkb25seVNldDxEZWVwTnVsbGFibGU8VT4+XG4gIDogVCBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgVT5cbiAgPyBXZWFrU2V0PERlZXBOdWxsYWJsZTxVPj5cbiAgOiBUIGV4dGVuZHMgQXJyYXk8aW5mZXIgVT5cbiAgPyBUIGV4dGVuZHMgSXNUdXBsZTxUPlxuICAgID8geyBbSyBpbiBrZXlvZiBUXTogRGVlcE51bGxhYmxlPFRbS10+IHwgbnVsbCB9XG4gICAgOiBBcnJheTxEZWVwTnVsbGFibGU8VT4+XG4gIDogVCBleHRlbmRzIFByb21pc2U8aW5mZXIgVT5cbiAgPyBQcm9taXNlPERlZXBOdWxsYWJsZTxVPj5cbiAgOiBUIGV4dGVuZHMge31cbiAgPyB7IFtLIGluIGtleW9mIFRdOiBEZWVwTnVsbGFibGU8VFtLXT4gfVxuICA6IFQgfCBudWxsO1xuXG4vKiogUmVjdXJzaXZlIHVuZGVmaW5hYmxlICovXG5leHBvcnQgdHlwZSBEZWVwVW5kZWZpbmFibGU8VD4gPSBUIGV4dGVuZHMgQnVpbHRpblxuICA/IFQgfCB1bmRlZmluZWRcbiAgOiBUIGV4dGVuZHMgTWFwPGluZmVyIEssIGluZmVyIFY+XG4gID8gTWFwPERlZXBVbmRlZmluYWJsZTxLPiwgRGVlcFVuZGVmaW5hYmxlPFY+PlxuICA6IFQgZXh0ZW5kcyBSZWFkb25seU1hcDxpbmZlciBLLCBpbmZlciBWPlxuICA/IFJlYWRvbmx5TWFwPERlZXBVbmRlZmluYWJsZTxLPiwgRGVlcFVuZGVmaW5hYmxlPFY+PlxuICA6IFQgZXh0ZW5kcyBXZWFrTWFwPGluZmVyIEssIGluZmVyIFY+XG4gID8gV2Vha01hcDxEZWVwVW5kZWZpbmFibGU8Sz4sIERlZXBVbmRlZmluYWJsZTxWPj5cbiAgOiBUIGV4dGVuZHMgU2V0PGluZmVyIFU+XG4gID8gU2V0PERlZXBVbmRlZmluYWJsZTxVPj5cbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgVT5cbiAgPyBSZWFkb25seVNldDxEZWVwVW5kZWZpbmFibGU8VT4+XG4gIDogVCBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgVT5cbiAgPyBXZWFrU2V0PERlZXBVbmRlZmluYWJsZTxVPj5cbiAgOiBUIGV4dGVuZHMgQXJyYXk8aW5mZXIgVT5cbiAgPyBUIGV4dGVuZHMgSXNUdXBsZTxUPlxuICAgID8geyBbSyBpbiBrZXlvZiBUXTogRGVlcFVuZGVmaW5hYmxlPFRbS10+IHwgdW5kZWZpbmVkIH1cbiAgICA6IEFycmF5PERlZXBVbmRlZmluYWJsZTxVPj5cbiAgOiBUIGV4dGVuZHMgUHJvbWlzZTxpbmZlciBVPlxuICA/IFByb21pc2U8RGVlcFVuZGVmaW5hYmxlPFU+PlxuICA6IFQgZXh0ZW5kcyB7fVxuICA/IHsgW0sgaW4ga2V5b2YgVF06IERlZXBVbmRlZmluYWJsZTxUW0tdPiB9XG4gIDogVCB8IHVuZGVmaW5lZDtcblxuLyoqIExpa2UgTm9uTnVsbGFibGUgYnV0IHJlY3Vyc2l2ZSAqL1xuZXhwb3J0IHR5cGUgRGVlcE5vbk51bGxhYmxlPFQ+ID0gVCBleHRlbmRzIEJ1aWx0aW5cbiAgPyBOb25OdWxsYWJsZTxUPlxuICA6IFQgZXh0ZW5kcyBNYXA8aW5mZXIgSywgaW5mZXIgVj5cbiAgPyBNYXA8RGVlcE5vbk51bGxhYmxlPEs+LCBEZWVwTm9uTnVsbGFibGU8Vj4+XG4gIDogVCBleHRlbmRzIFJlYWRvbmx5TWFwPGluZmVyIEssIGluZmVyIFY+XG4gID8gUmVhZG9ubHlNYXA8RGVlcE5vbk51bGxhYmxlPEs+LCBEZWVwTm9uTnVsbGFibGU8Vj4+XG4gIDogVCBleHRlbmRzIFdlYWtNYXA8aW5mZXIgSywgaW5mZXIgVj5cbiAgPyBXZWFrTWFwPERlZXBOb25OdWxsYWJsZTxLPiwgRGVlcE5vbk51bGxhYmxlPFY+PlxuICA6IFQgZXh0ZW5kcyBTZXQ8aW5mZXIgVT5cbiAgPyBTZXQ8RGVlcE5vbk51bGxhYmxlPFU+PlxuICA6IFQgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBVPlxuICA/IFJlYWRvbmx5U2V0PERlZXBOb25OdWxsYWJsZTxVPj5cbiAgOiBUIGV4dGVuZHMgV2Vha1NldDxpbmZlciBVPlxuICA/IFdlYWtTZXQ8RGVlcE5vbk51bGxhYmxlPFU+PlxuICA6IFQgZXh0ZW5kcyBQcm9taXNlPGluZmVyIFU+XG4gID8gUHJvbWlzZTxEZWVwTm9uTnVsbGFibGU8VT4+XG4gIDogVCBleHRlbmRzIHt9XG4gID8geyBbSyBpbiBrZXlvZiBUXTogRGVlcE5vbk51bGxhYmxlPFRbS10+IH1cbiAgOiBOb25OdWxsYWJsZTxUPjtcblxuLyoqIExpa2UgUmVxdWlyZWQgYnV0IHJlY3Vyc2l2ZSAqL1xuZXhwb3J0IHR5cGUgRGVlcFJlcXVpcmVkPFQ+ID0gVCBleHRlbmRzIEVycm9yXG4gID8gUmVxdWlyZWQ8VD5cbiAgOiBUIGV4dGVuZHMgQnVpbHRpblxuICA/IFRcbiAgOiBUIGV4dGVuZHMgTWFwPGluZmVyIEssIGluZmVyIFY+XG4gID8gTWFwPERlZXBSZXF1aXJlZDxLPiwgRGVlcFJlcXVpcmVkPFY+PlxuICA6IFQgZXh0ZW5kcyBSZWFkb25seU1hcDxpbmZlciBLLCBpbmZlciBWPlxuICA/IFJlYWRvbmx5TWFwPERlZXBSZXF1aXJlZDxLPiwgRGVlcFJlcXVpcmVkPFY+PlxuICA6IFQgZXh0ZW5kcyBXZWFrTWFwPGluZmVyIEssIGluZmVyIFY+XG4gID8gV2Vha01hcDxEZWVwUmVxdWlyZWQ8Sz4sIERlZXBSZXF1aXJlZDxWPj5cbiAgOiBUIGV4dGVuZHMgU2V0PGluZmVyIFU+XG4gID8gU2V0PERlZXBSZXF1aXJlZDxVPj5cbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgVT5cbiAgPyBSZWFkb25seVNldDxEZWVwUmVxdWlyZWQ8VT4+XG4gIDogVCBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgVT5cbiAgPyBXZWFrU2V0PERlZXBSZXF1aXJlZDxVPj5cbiAgOiBUIGV4dGVuZHMgUHJvbWlzZTxpbmZlciBVPlxuICA/IFByb21pc2U8RGVlcFJlcXVpcmVkPFU+PlxuICA6IFQgZXh0ZW5kcyB7fVxuICA/IHsgW0sgaW4ga2V5b2YgVF0tPzogRGVlcFJlcXVpcmVkPFRbS10+IH1cbiAgOiBSZXF1aXJlZDxUPjtcblxuLyoqIExpa2UgUmVhZG9ubHkgYnV0IHJlY3Vyc2l2ZSAqL1xuZXhwb3J0IHR5cGUgRGVlcFJlYWRvbmx5PFQ+ID0gVCBleHRlbmRzIEJ1aWx0aW5cbiAgPyBUXG4gIDogVCBleHRlbmRzIE1hcDxpbmZlciBLLCBpbmZlciBWPlxuICA/IFJlYWRvbmx5TWFwPERlZXBSZWFkb25seTxLPiwgRGVlcFJlYWRvbmx5PFY+PlxuICA6IFQgZXh0ZW5kcyBSZWFkb25seU1hcDxpbmZlciBLLCBpbmZlciBWPlxuICA/IFJlYWRvbmx5TWFwPERlZXBSZWFkb25seTxLPiwgRGVlcFJlYWRvbmx5PFY+PlxuICA6IFQgZXh0ZW5kcyBXZWFrTWFwPGluZmVyIEssIGluZmVyIFY+XG4gID8gV2Vha01hcDxEZWVwUmVhZG9ubHk8Sz4sIERlZXBSZWFkb25seTxWPj5cbiAgOiBUIGV4dGVuZHMgU2V0PGluZmVyIFU+XG4gID8gUmVhZG9ubHlTZXQ8RGVlcFJlYWRvbmx5PFU+PlxuICA6IFQgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBVPlxuICA/IFJlYWRvbmx5U2V0PERlZXBSZWFkb25seTxVPj5cbiAgOiBUIGV4dGVuZHMgV2Vha1NldDxpbmZlciBVPlxuICA/IFdlYWtTZXQ8RGVlcFJlYWRvbmx5PFU+PlxuICA6IFQgZXh0ZW5kcyBQcm9taXNlPGluZmVyIFU+XG4gID8gUHJvbWlzZTxEZWVwUmVhZG9ubHk8VT4+XG4gIDogVCBleHRlbmRzIHt9XG4gID8geyByZWFkb25seSBbSyBpbiBrZXlvZiBUXTogRGVlcFJlYWRvbmx5PFRbS10+IH1cbiAgOiBJc1Vua25vd248VD4gZXh0ZW5kcyB0cnVlXG4gID8gdW5rbm93blxuICA6IFJlYWRvbmx5PFQ+O1xuXG4vKiogTWFrZSByZWFkb25seSBvYmplY3Qgd3JpdGFibGUgKi9cbmV4cG9ydCB0eXBlIFdyaXRhYmxlPFQ+ID0geyAtcmVhZG9ubHkgW1AgaW4ga2V5b2YgVF06IFRbUF0gfTtcblxuLyoqIExpa2UgV3JpdGFibGUgYnV0IHJlY3Vyc2l2ZSAqL1xuZXhwb3J0IHR5cGUgRGVlcFdyaXRhYmxlPFQ+ID0gVCBleHRlbmRzIEJ1aWx0aW5cbiAgPyBUXG4gIDogVCBleHRlbmRzIE1hcDxpbmZlciBLLCBpbmZlciBWPlxuICA/IE1hcDxEZWVwV3JpdGFibGU8Sz4sIERlZXBXcml0YWJsZTxWPj5cbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlNYXA8aW5mZXIgSywgaW5mZXIgVj5cbiAgPyBNYXA8RGVlcFdyaXRhYmxlPEs+LCBEZWVwV3JpdGFibGU8Vj4+XG4gIDogVCBleHRlbmRzIFdlYWtNYXA8aW5mZXIgSywgaW5mZXIgVj5cbiAgPyBXZWFrTWFwPERlZXBXcml0YWJsZTxLPiwgRGVlcFdyaXRhYmxlPFY+PlxuICA6IFQgZXh0ZW5kcyBTZXQ8aW5mZXIgVT5cbiAgPyBTZXQ8RGVlcFdyaXRhYmxlPFU+PlxuICA6IFQgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBVPlxuICA/IFNldDxEZWVwV3JpdGFibGU8VT4+XG4gIDogVCBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgVT5cbiAgPyBXZWFrU2V0PERlZXBXcml0YWJsZTxVPj5cbiAgOiBUIGV4dGVuZHMgUHJvbWlzZTxpbmZlciBVPlxuICA/IFByb21pc2U8RGVlcFdyaXRhYmxlPFU+PlxuICA6IFQgZXh0ZW5kcyB7fVxuICA/IHsgLXJlYWRvbmx5IFtLIGluIGtleW9mIFRdOiBEZWVwV3JpdGFibGU8VFtLXT4gfVxuICA6IFQ7XG5cbi8qKiBDb21iaW5hdGlvbiBvZiBEZWVwUGFydGlhbCBhbmQgRGVlcFdyaXRhYmxlICovXG5leHBvcnQgdHlwZSBCdWlsZGFibGU8VD4gPSBEZWVwUGFydGlhbDxEZWVwV3JpdGFibGU8VD4+O1xuXG4vKiogU2ltaWxhciB0byB0aGUgYnVpbHRpbiBPbWl0LCBidXQgY2hlY2tzIHRoZSBmaWx0ZXIgc3RyaWN0bHkuICovXG5leHBvcnQgdHlwZSBTdHJpY3RPbWl0PFQgZXh0ZW5kcyBBbnlSZWNvcmQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IFQgZXh0ZW5kcyBBbnlBcnJheSA/IG5ldmVyIDogT21pdDxULCBLPjtcblxuLyoqIFNpbWlsYXIgdG8gdGhlIGJ1aWx0aW4gRXh0cmFjdCwgYnV0IGNoZWNrcyB0aGUgZmlsdGVyIHN0cmljdGx5ICovXG5leHBvcnQgdHlwZSBTdHJpY3RFeHRyYWN0PFQsIFUgZXh0ZW5kcyBQYXJ0aWFsPFQ+PiA9IEV4dHJhY3Q8VCwgVT47XG5cbnR5cGUgUGlja0tleXNCeVZhbHVlPFQsIFY+ID0geyBbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIFYgPyBLIDogbmV2ZXIgfVtrZXlvZiBUXTtcblxuLyoqIE9taXQgYWxsIHByb3BlcnRpZXMgb2YgZ2l2ZW4gdHlwZSBpbiBvYmplY3QgdHlwZSAqL1xuZXhwb3J0IHR5cGUgT21pdFByb3BlcnRpZXM8VCwgUD4gPSBPbWl0PFQsIFBpY2tLZXlzQnlWYWx1ZTxULCBQPj47XG5cbi8qKiBQaWNrIGFsbCBwcm9wZXJ0aWVzIG9mIGdpdmVuIHR5cGUgaW4gb2JqZWN0IHR5cGUgKi9cbmV4cG9ydCB0eXBlIFBpY2tQcm9wZXJ0aWVzPFQsIFA+ID0gUGljazxULCBQaWNrS2V5c0J5VmFsdWU8VCwgUD4+O1xuXG4vKiogR2V0cyBrZXlzIG9mIGFuIG9iamVjdCB3aGljaCBhcmUgb3B0aW9uYWwgKi9cbmV4cG9ydCB0eXBlIE9wdGlvbmFsS2V5czxUPiA9IFQgZXh0ZW5kcyB1bmtub3duXG4gID8ge1xuICAgICAgW0sgaW4ga2V5b2YgVF0tPzogdW5kZWZpbmVkIGV4dGVuZHMgeyBbSzIgaW4ga2V5b2YgVF06IEsyIH1bS10gPyBLIDogbmV2ZXI7XG4gICAgfVtrZXlvZiBUXVxuICA6IG5ldmVyO1xuXG4vKiogR2V0cyBrZXlzIG9mIGFuIG9iamVjdCB3aGljaCBhcmUgcmVxdWlyZWQgKi9cbmV4cG9ydCB0eXBlIFJlcXVpcmVkS2V5czxUPiA9IFQgZXh0ZW5kcyB1bmtub3duID8gRXhjbHVkZTxrZXlvZiBULCBPcHRpb25hbEtleXM8VD4+IDogbmV2ZXI7XG5cbi8qKiBHZXRzIGtleXMgb2YgcHJvcGVydGllcyBvZiBnaXZlbiB0eXBlIGluIG9iamVjdCB0eXBlICovXG5leHBvcnQgdHlwZSBQaWNrS2V5czxULCBQPiA9IEV4Y2x1ZGU8a2V5b2YgUGlja1Byb3BlcnRpZXM8VCwgUD4sIHVuZGVmaW5lZD47XG5cbi8qKiBSZWN1cnNpdmVseSBvbWl0IGRlZXAgcHJvcGVydGllcyAqL1xuZXhwb3J0IHR5cGUgRGVlcE9taXQ8VCwgRmlsdGVyIGV4dGVuZHMgRGVlcE1vZGlmeTxUPj4gPSBUIGV4dGVuZHMgQnVpbHRpblxuICA/IFRcbiAgOiBUIGV4dGVuZHMgTWFwPGluZmVyIEtleVR5cGUsIGluZmVyIFZhbHVlVHlwZT5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBNYXA8S2V5VHlwZSwgaW5mZXIgRmlsdGVyVmFsdWVUeXBlPlxuICAgID8gTWFwPEtleVR5cGUsIERlZXBPbWl0PFZhbHVlVHlwZSwgRmlsdGVyVmFsdWVUeXBlPj5cbiAgICA6IFRcbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlNYXA8aW5mZXIgS2V5VHlwZSwgaW5mZXIgVmFsdWVUeXBlPlxuICA/IEZpbHRlciBleHRlbmRzIFJlYWRvbmx5TWFwPEtleVR5cGUsIGluZmVyIEZpbHRlclZhbHVlVHlwZT5cbiAgICA/IFJlYWRvbmx5TWFwPEtleVR5cGUsIERlZXBPbWl0PFZhbHVlVHlwZSwgRmlsdGVyVmFsdWVUeXBlPj5cbiAgICA6IFRcbiAgOiBUIGV4dGVuZHMgV2Vha01hcDxpbmZlciBLZXlUeXBlLCBpbmZlciBWYWx1ZVR5cGU+XG4gID8gRmlsdGVyIGV4dGVuZHMgV2Vha01hcDxLZXlUeXBlLCBpbmZlciBGaWx0ZXJWYWx1ZVR5cGU+XG4gICAgPyBXZWFrTWFwPEtleVR5cGUsIERlZXBPbWl0PFZhbHVlVHlwZSwgRmlsdGVyVmFsdWVUeXBlPj5cbiAgICA6IFRcbiAgOiBUIGV4dGVuZHMgU2V0PGluZmVyIEl0ZW1UeXBlPlxuICA/IEZpbHRlciBleHRlbmRzIFNldDxpbmZlciBGaWx0ZXJJdGVtVHlwZT5cbiAgICA/IFNldDxEZWVwT21pdDxJdGVtVHlwZSwgRmlsdGVySXRlbVR5cGU+PlxuICAgIDogVFxuICA6IFQgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBJdGVtVHlwZT5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBGaWx0ZXJJdGVtVHlwZT5cbiAgICA/IFJlYWRvbmx5U2V0PERlZXBPbWl0PEl0ZW1UeXBlLCBGaWx0ZXJJdGVtVHlwZT4+XG4gICAgOiBUXG4gIDogVCBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgSXRlbVR5cGU+XG4gID8gRmlsdGVyIGV4dGVuZHMgV2Vha1NldDxpbmZlciBGaWx0ZXJJdGVtVHlwZT5cbiAgICA/IFdlYWtTZXQ8RGVlcE9taXQ8SXRlbVR5cGUsIEZpbHRlckl0ZW1UeXBlPj5cbiAgICA6IFRcbiAgOiBUIGV4dGVuZHMgQXJyYXk8aW5mZXIgSXRlbVR5cGU+XG4gID8gRmlsdGVyIGV4dGVuZHMgQXJyYXk8aW5mZXIgRmlsdGVySXRlbVR5cGU+XG4gICAgPyBBcnJheTxEZWVwT21pdDxJdGVtVHlwZSwgRmlsdGVySXRlbVR5cGU+PlxuICAgIDogVFxuICA6IFQgZXh0ZW5kcyBQcm9taXNlPGluZmVyIEl0ZW1UeXBlPlxuICA/IEZpbHRlciBleHRlbmRzIFByb21pc2U8aW5mZXIgRmlsdGVySXRlbVR5cGU+XG4gICAgPyBQcm9taXNlPERlZXBPbWl0PEl0ZW1UeXBlLCBGaWx0ZXJJdGVtVHlwZT4+XG4gICAgOiBUXG4gIDogRmlsdGVyIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgPyB7XG4gICAgICBbSyBpbiBrZXlvZiBUIGFzIEsgZXh0ZW5kcyBrZXlvZiBGaWx0ZXJcbiAgICAgICAgPyBbRmlsdGVyW0tdXSBleHRlbmRzIFt0cnVlXSB8IFtuZXZlcl1cbiAgICAgICAgICA/IG5ldmVyXG4gICAgICAgICAgOiBLXG4gICAgICAgIDogS106IEsgZXh0ZW5kcyBrZXlvZiBGaWx0ZXJcbiAgICAgICAgPyBGaWx0ZXJbSyAmIGtleW9mIEZpbHRlcl0gZXh0ZW5kcyBEZWVwTW9kaWZ5PFRbS10+XG4gICAgICAgICAgPyBEZWVwT21pdDxUW0tdLCBGaWx0ZXJbSyAmIGtleW9mIEZpbHRlcl0+XG4gICAgICAgICAgOiBUW0tdXG4gICAgICAgIDogVFtLXTtcbiAgICB9XG4gIDogbmV2ZXI7XG5cbi8qKiBSZWN1cnNpdmVseSBwaWNrIGRlZXAgcHJvcGVydGllcyAqL1xuZXhwb3J0IHR5cGUgRGVlcFBpY2s8VCwgRmlsdGVyIGV4dGVuZHMgRGVlcE1vZGlmeTxUPj4gPSBUIGV4dGVuZHMgQnVpbHRpblxuICA/IFRcbiAgOiBUIGV4dGVuZHMgTWFwPGluZmVyIEtleVR5cGUsIGluZmVyIFZhbHVlVHlwZT5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBNYXA8S2V5VHlwZSwgaW5mZXIgRmlsdGVyVmFsdWVUeXBlPlxuICAgID8gTWFwPEtleVR5cGUsIERlZXBQaWNrPFZhbHVlVHlwZSwgRmlsdGVyVmFsdWVUeXBlPj5cbiAgICA6IFRcbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlNYXA8aW5mZXIgS2V5VHlwZSwgaW5mZXIgVmFsdWVUeXBlPlxuICA/IEZpbHRlciBleHRlbmRzIFJlYWRvbmx5TWFwPEtleVR5cGUsIGluZmVyIEZpbHRlclZhbHVlVHlwZT5cbiAgICA/IFJlYWRvbmx5TWFwPEtleVR5cGUsIERlZXBQaWNrPFZhbHVlVHlwZSwgRmlsdGVyVmFsdWVUeXBlPj5cbiAgICA6IFRcbiAgOiBUIGV4dGVuZHMgV2Vha01hcDxpbmZlciBLZXlUeXBlLCBpbmZlciBWYWx1ZVR5cGU+XG4gID8gRmlsdGVyIGV4dGVuZHMgV2Vha01hcDxLZXlUeXBlLCBpbmZlciBGaWx0ZXJWYWx1ZVR5cGU+XG4gICAgPyBXZWFrTWFwPEtleVR5cGUsIERlZXBQaWNrPFZhbHVlVHlwZSwgRmlsdGVyVmFsdWVUeXBlPj5cbiAgICA6IFRcbiAgOiBUIGV4dGVuZHMgU2V0PGluZmVyIEl0ZW1UeXBlPlxuICA/IEZpbHRlciBleHRlbmRzIFNldDxpbmZlciBGaWx0ZXJJdGVtVHlwZT5cbiAgICA/IFNldDxEZWVwUGljazxJdGVtVHlwZSwgRmlsdGVySXRlbVR5cGU+PlxuICAgIDogVFxuICA6IFQgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBJdGVtVHlwZT5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBGaWx0ZXJJdGVtVHlwZT5cbiAgICA/IFJlYWRvbmx5U2V0PERlZXBQaWNrPEl0ZW1UeXBlLCBGaWx0ZXJJdGVtVHlwZT4+XG4gICAgOiBUXG4gIDogVCBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgSXRlbVR5cGU+XG4gID8gRmlsdGVyIGV4dGVuZHMgV2Vha1NldDxpbmZlciBGaWx0ZXJJdGVtVHlwZT5cbiAgICA/IFdlYWtTZXQ8RGVlcFBpY2s8SXRlbVR5cGUsIEZpbHRlckl0ZW1UeXBlPj5cbiAgICA6IFRcbiAgOiBUIGV4dGVuZHMgQXJyYXk8aW5mZXIgSXRlbVR5cGU+XG4gID8gRmlsdGVyIGV4dGVuZHMgQXJyYXk8aW5mZXIgRmlsdGVySXRlbVR5cGU+XG4gICAgPyBBcnJheTxEZWVwUGljazxJdGVtVHlwZSwgRmlsdGVySXRlbVR5cGU+PlxuICAgIDogVFxuICA6IFQgZXh0ZW5kcyBQcm9taXNlPGluZmVyIEl0ZW1UeXBlPlxuICA/IEZpbHRlciBleHRlbmRzIFByb21pc2U8aW5mZXIgRmlsdGVySXRlbVR5cGU+XG4gICAgPyBQcm9taXNlPERlZXBQaWNrPEl0ZW1UeXBlLCBGaWx0ZXJJdGVtVHlwZT4+XG4gICAgOiBUXG4gIDogRmlsdGVyIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgPyB7XG4gICAgICAvLyBpdGVyYXRlIG92ZXIga2V5cyBvZiBULCB3aGljaCBrZWVwcyB0aGUgaW5mb3JtYXRpb24gYWJvdXQga2V5czogb3B0aW9uYWwsIHJlcXVpcmVkIG9yIHJlYWRvbmx5XG4gICAgICBbSyBpbiBrZXlvZiBUIGFzIEsgZXh0ZW5kcyBrZXlvZiBGaWx0ZXIgPyBLIDogbmV2ZXJdOiBGaWx0ZXJbSyAmIGtleW9mIEZpbHRlcl0gZXh0ZW5kcyB0cnVlXG4gICAgICAgID8gVFtLICYga2V5b2YgVF1cbiAgICAgICAgOiBEZWVwUGljazxUW0sgJiBrZXlvZiBUXSwgRmlsdGVyW0sgJiBrZXlvZiBGaWx0ZXJdPjtcbiAgICB9XG4gIDogbmV2ZXI7XG5cbnR5cGUgRGVlcE1vZGlmeTxUPiA9XG4gIHwge1xuICAgICAgW0sgaW4ga2V5b2YgVF0/OiB1bmRlZmluZWQgZXh0ZW5kcyB7IFtLMiBpbiBrZXlvZiBUXTogSzIgfVtLXVxuICAgICAgICA/IE5vblVuZGVmaW5hYmxlPFRbS10+IGV4dGVuZHMgb2JqZWN0XG4gICAgICAgICAgPyB0cnVlIHwgRGVlcE1vZGlmeTxOb25VbmRlZmluYWJsZTxUW0tdPj5cbiAgICAgICAgICA6IHRydWVcbiAgICAgICAgOiBUW0tdIGV4dGVuZHMgb2JqZWN0XG4gICAgICAgID8gdHJ1ZSB8IERlZXBNb2RpZnk8VFtLXT5cbiAgICAgICAgOiB0cnVlO1xuICAgIH1cbiAgfCAoVCBleHRlbmRzIEFycmF5PGluZmVyIEU+ID8gQXJyYXk8RGVlcE1vZGlmeTxFPj4gOiBuZXZlcilcbiAgfCAoVCBleHRlbmRzIFByb21pc2U8aW5mZXIgRT4gPyBQcm9taXNlPERlZXBNb2RpZnk8RT4+IDogbmV2ZXIpXG4gIHwgKFQgZXh0ZW5kcyBTZXQ8aW5mZXIgRT4gPyBTZXQ8RGVlcE1vZGlmeTxFPj4gOiBuZXZlcilcbiAgfCAoVCBleHRlbmRzIFJlYWRvbmx5U2V0PGluZmVyIEU+ID8gUmVhZG9ubHlTZXQ8RGVlcE1vZGlmeTxFPj4gOiBuZXZlcilcbiAgfCAoVCBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgRT4gPyBXZWFrU2V0PERlZXBNb2RpZnk8RT4+IDogbmV2ZXIpXG4gIHwgKFQgZXh0ZW5kcyBNYXA8aW5mZXIgSywgaW5mZXIgRT4gPyBNYXA8SywgRGVlcE1vZGlmeTxFPj4gOiBuZXZlcilcbiAgfCAoVCBleHRlbmRzIFJlYWRvbmx5TWFwPGluZmVyIEssIGluZmVyIEU+ID8gUmVhZG9ubHlNYXA8SywgRGVlcE1vZGlmeTxFPj4gOiBuZXZlcilcbiAgfCAoVCBleHRlbmRzIFdlYWtNYXA8aW5mZXIgSywgaW5mZXIgRT4gPyBXZWFrTWFwPEssIERlZXBNb2RpZnk8RT4+IDogbmV2ZXIpO1xuXG4vKiogUmVtb3ZlIGtleXMgd2l0aCBgbmV2ZXJgIHZhbHVlIGZyb20gb2JqZWN0IHR5cGUgKi9cbmV4cG9ydCB0eXBlIE5vbk5ldmVyPFQgZXh0ZW5kcyB7fT4gPSBQaWNrPFQsIHsgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBuZXZlciA/IG5ldmVyIDogSyB9W2tleW9mIFRdPjtcblxuZXhwb3J0IHR5cGUgTm9uRW1wdHlPYmplY3Q8VCBleHRlbmRzIHt9PiA9IGtleW9mIFQgZXh0ZW5kcyBuZXZlciA/IG5ldmVyIDogVDtcblxuLyoqIE1lcmdlIDIgdHlwZXMsIHByb3BlcnRpZXMgdHlwZXMgZnJvbSB0aGUgbGF0dGVyIG92ZXJyaWRlIHRoZSBvbmVzIGRlZmluZWQgb24gdGhlIGZvcm1lciB0eXBlICovXG5leHBvcnQgdHlwZSBNZXJnZTxNLCBOPiA9IE9taXQ8TSwga2V5b2YgTj4gJiBOO1xuXG50eXBlIF9NZXJnZU48VCBleHRlbmRzIHJlYWRvbmx5IGFueVtdLCBSZXN1bHQ+ID0gVCBleHRlbmRzIHJlYWRvbmx5IFtpbmZlciBIZWFkLCAuLi5pbmZlciBUYWlsXVxuICA/IF9NZXJnZU48VGFpbCwgTWVyZ2U8UmVzdWx0LCBIZWFkPj5cbiAgOiBSZXN1bHQ7XG5cbi8qKiBNZXJnZSBOIHR5cGVzLCBwcm9wZXJ0aWVzIHR5cGVzIGZyb20gdGhlIGxhdHRlciBvdmVycmlkZSB0aGUgb25lcyBkZWZpbmVkIG9uIHRoZSBmb3JtZXIgdHlwZSAqL1xuZXhwb3J0IHR5cGUgTWVyZ2VOPFQgZXh0ZW5kcyByZWFkb25seSBhbnlbXT4gPSBfTWVyZ2VOPFQsIHt9PjtcblxuLyoqIE1hcmsgc29tZSBwcm9wZXJ0aWVzIGFzIHJlcXVpcmVkLCBsZWF2aW5nIG90aGVycyB1bmNoYW5nZWQgKi9cbmV4cG9ydCB0eXBlIE1hcmtSZXF1aXJlZDxULCBSSyBleHRlbmRzIGtleW9mIFQ+ID0gRXhjbHVkZTxULCBSSz4gJiBSZXF1aXJlZDxQaWNrPFQsIFJLPj47XG5cbi8qKiBNYXJrIHNvbWUgcHJvcGVydGllcyBhcyBvcHRpb25hbCwgbGVhdmluZyBvdGhlcnMgdW5jaGFuZ2VkICovXG5leHBvcnQgdHlwZSBNYXJrT3B0aW9uYWw8VCwgSyBleHRlbmRzIGtleW9mIFQ+ID0gT21pdDxULCBLPiAmIFBhcnRpYWw8UGljazxULCBLPj47XG5cbi8qKiBDb252ZXJ0IHVuaW9uIHR5cGUgdG8gaW50ZXJzZWN0aW9uICNkYXJrbWFnaWMgKi9cbmV4cG9ydCB0eXBlIFVuaW9uVG9JbnRlcnNlY3Rpb248VT4gPSAoVSBleHRlbmRzIGFueSA/IChrOiBVKSA9PiB2b2lkIDogbmV2ZXIpIGV4dGVuZHMgKGs6IGluZmVyIEkpID0+IHZvaWQgPyBJIDogbmV2ZXI7XG5cbnR5cGUgU3RyaW5nTGl0ZXJhbDxUPiA9IFQgZXh0ZW5kcyBzdHJpbmcgPyAoc3RyaW5nIGV4dGVuZHMgVCA/IG5ldmVyIDogVCkgOiBuZXZlcjtcblxuZGVjbGFyZSBjb25zdCBfX09QQVFVRV9UWVBFX186IHVuaXF1ZSBzeW1ib2w7XG5cbi8qKiBFYXNpbHkgY3JlYXRlIG9wYXF1ZSB0eXBlcyBpZS4gdHlwZXMgdGhhdCBhcmUgc3Vic2V0IG9mIHRoZWlyIG9yaWdpbmFsIHR5cGVzIChleDogcG9zaXRpdmUgbnVtYmVycywgdXBwZXJjYXNlZCBzdHJpbmcpICovXG5leHBvcnQgdHlwZSBPcGFxdWU8VHlwZSwgVG9rZW4gZXh0ZW5kcyBzdHJpbmc+ID0gVG9rZW4gZXh0ZW5kcyBTdHJpbmdMaXRlcmFsPFRva2VuPlxuICA/IFR5cGUgJiB7IHJlYWRvbmx5IFtfX09QQVFVRV9UWVBFX19dOiBUb2tlbiB9XG4gIDogbmV2ZXI7XG5cbi8qKiBFYXNpbHkgZXh0cmFjdCB0aGUgdHlwZSBvZiBhIGdpdmVuIG9iamVjdCdzIHZhbHVlcyAqL1xuZXhwb3J0IHR5cGUgVmFsdWVPZjxUPiA9IFRba2V5b2YgVF07XG5cbi8qKiBFYXNpbHkgZXh0cmFjdCB0aGUgdHlwZSBvZiBhIGdpdmVuIGFycmF5J3MgZWxlbWVudHMgKi9cbmV4cG9ydCB0eXBlIEVsZW1lbnRPZjxUIGV4dGVuZHMgcmVhZG9ubHkgYW55W10+ID0gVCBleHRlbmRzIHJlYWRvbmx5IChpbmZlciBFVClbXSA/IEVUIDogbmV2ZXI7XG5cbi8qKiBUeXBlIGNvbnN0cmFpbnQgZm9yIHR1cGxlIGluZmVyZW5jZSAqL1xuZXhwb3J0IHR5cGUgVHVwbGU8VCA9IGFueT4gPSBbVF0gfCBUW107XG5cbi8qKiBVc2VmdWwgYXMgYSByZXR1cm4gdHlwZSBpbiBpbnRlcmZhY2VzIG9yIGFic3RyYWN0IGNsYXNzZXMgd2l0aCBtaXNzaW5nIGltcGxlbWVudGF0aW9uICovXG5leHBvcnQgdHlwZSBBc3luY09yU3luYzxUPiA9IFByb21pc2VMaWtlPFQ+IHwgVDtcblxuZXhwb3J0IHR5cGUgQXdhaXRlZDxUPiA9IFQgZXh0ZW5kcyBQcm9taXNlTGlrZTxpbmZlciBQVD4gPyBQVCA6IG5ldmVyO1xuZXhwb3J0IHR5cGUgQXN5bmNPclN5bmNUeXBlPFQ+ID0gVCBleHRlbmRzIEFzeW5jT3JTeW5jPGluZmVyIFBUPiA/IFBUIDogbmV2ZXI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV3YWJsZTxUPiB7XG4gIG5ldyAoLi4uYXJnczogYW55W10pOiBUO1xufVxuXG4vLyBBIGhlbHBlciBmb3IgYFJlYWRvbmx5S2V5c2AgJiBgV3JpdGFibGVLZXlzYFxuLy8gVGhpcyBwb3RlbnRpYWxseSBhYnVzZXMgY29tcGlsZXIgc29tZSBpbmNvbnNpc3RlbmNpZXMgaW4gY2hlY2tpbmcgdHlwZSBlcXVhbGl0eSBmb3IgZ2VuZXJpY3MsXG4vLyBiZWNhdXNlIG5vcm1hbGx5IGByZWFkb25seWAgZG9lc24ndCBhZmZlY3Qgd2hldGhlciB0eXBlcyBhcmUgYXNzaWduYWJsZS5cbi8vIEBzZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzUyNDczMTA4LzE4MTUyMDkgd2l0aCBjb21tZW50c1xudHlwZSBJc0VxdWFsQ29uc2lkZXJpbmdXcml0YWJpbGl0eTxYLCBZPiA9ICg8VD4oKSA9PiBUIGV4dGVuZHMgWCA/IDEgOiAyKSBleHRlbmRzIDxUPigpID0+IFQgZXh0ZW5kcyBZID8gMSA6IDJcbiAgPyB0cnVlXG4gIDogZmFsc2U7XG5cbi8vIFRoaXMgYWxzbyBwcm9iYWJseSB1c2VzIHNvbWUgaW5jb25zaXN0ZW5jaWVzIC0tIGV2ZW4gdGhvdWdoIGl0IF9zaG91bGRfIGJlIHRoZSBzYW1lIHRvIGp1c3QgdXNlXG4vLyBgVCwgV3JpdGFibGU8VD5gIGZvciBnZW5lcmljIGFyZ3VtZW50cywgaXQgc3RvcHMgd29ya2luZyB0aGVuLCBhbHdheXMgZXZhbHVhdGluZyB0byBgZmFsc2VgLlxuLy8gU3dhcHBpbmcgYFdyaXRhYmxlYCB0byBgUmVhZGFibGVgIGFsd2F5cyByZXR1cm5zIGZhbHNlIHRvbywgaW5zdGVhZCBvZiB5aWVsZGluZyBvcHBvc2l0ZSByZXN1bHRzLlxudHlwZSBJc0Z1bGx5V3JpdGFibGU8VCBleHRlbmRzIG9iamVjdD4gPSBJc0VxdWFsQ29uc2lkZXJpbmdXcml0YWJpbGl0eTxcbiAgeyBbUSBpbiBrZXlvZiBUXTogVFtRXSB9LFxuICBXcml0YWJsZTx7IFtRIGluIGtleW9mIFRdOiBUW1FdIH0+XG4+O1xuXG4vKiogR2V0cyBrZXlzIG9mIGFuIG9iamVjdCB3aGljaCBhcmUgcmVhZG9ubHkgKi9cbmV4cG9ydCB0eXBlIFJlYWRvbmx5S2V5czxUIGV4dGVuZHMgb2JqZWN0PiA9IHtcbiAgW1AgaW4ga2V5b2YgVF0tPzogSXNGdWxseVdyaXRhYmxlPFBpY2s8VCwgUD4+IGV4dGVuZHMgdHJ1ZSA/IG5ldmVyIDogUDtcbn1ba2V5b2YgVF07XG5cbi8qKiBHZXRzIGtleXMgb2YgYW4gb2JqZWN0IHdoaWNoIGFyZSB3cml0YWJsZSAqL1xuZXhwb3J0IHR5cGUgV3JpdGFibGVLZXlzPFQgZXh0ZW5kcyB7fT4gPSB7XG4gIFtQIGluIGtleW9mIFRdLT86IElzRnVsbHlXcml0YWJsZTxQaWNrPFQsIFA+PiBleHRlbmRzIHRydWUgPyBQIDogbmV2ZXI7XG59W2tleW9mIFRdO1xuXG4vKiogTWFyayBzb21lIHByb3BlcnRpZXMgd2hpY2ggb25seSB0aGUgZm9ybWVyIGluY2x1ZGluZyBhcyBvcHRpb25hbCBhbmQgc2V0IHRoZSB2YWx1ZSB0byBuZXZlciAqL1xudHlwZSBXaXRob3V0PFQsIFU+ID0geyBbUCBpbiBFeGNsdWRlPGtleW9mIFQsIGtleW9mIFU+XT86IG5ldmVyIH07XG5cbi8qKiBnZXQgdGhlIFhPUiB0eXBlIHdoaWNoIGNvdWxkIG1ha2UgMiB0eXBlcyBleGNsdWRlIGVhY2ggb3RoZXIgKi9cbmV4cG9ydCB0eXBlIFhPUjxULCBVPiA9IFQgfCBVIGV4dGVuZHMgb2JqZWN0ID8gKFdpdGhvdXQ8VCwgVT4gJiBVKSB8IChXaXRob3V0PFUsIFQ+ICYgVCkgOiBUIHwgVTtcblxuLyoqIEZ1bmN0aW9uYWwgcHJvZ3JhbW1pbmcgZXNzZW50aWFscyAqL1xuZXhwb3J0IHR5cGUgSGVhZDxUIGV4dGVuZHMgQW55QXJyYXk+ID0gVFtcImxlbmd0aFwiXSBleHRlbmRzIDAgPyBuZXZlciA6IFRbMF07XG5leHBvcnQgdHlwZSBUYWlsPFQgZXh0ZW5kcyBBbnlBcnJheT4gPSBUW1wibGVuZ3RoXCJdIGV4dGVuZHMgMFxuICA/IG5ldmVyXG4gIDogKCguLi50OiBUKSA9PiB2b2lkKSBleHRlbmRzIChmaXJzdDogYW55LCAuLi5yZXN0OiBpbmZlciBSZXN0KSA9PiB2b2lkXG4gID8gUmVzdFxuICA6IG5ldmVyO1xuXG5leHBvcnQgdHlwZSBFeGFjdDxULCBTSEFQRT4gPSBUIGV4dGVuZHMgU0hBUEUgPyAoRXhjbHVkZTxrZXlvZiBULCBrZXlvZiBTSEFQRT4gZXh0ZW5kcyBuZXZlciA/IFQgOiBuZXZlcikgOiBuZXZlcjtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBFc3NlbnRpYWxzICovXG4vLyBodHRwczovL2RldmJsb2dzLm1pY3Jvc29mdC5jb20vdHlwZXNjcmlwdC9hbm5vdW5jaW5nLXR5cGVzY3JpcHQtMi05LTIvI3N1cHBvcnQtZm9yLXN5bWJvbHMtYW5kLW51bWVyaWMtbGl0ZXJhbHMtaW4ta2V5b2YtYW5kLW1hcHBlZC1vYmplY3QtdHlwZXNcbmV4cG9ydCB0eXBlIEtleW9mQmFzZSA9IGtleW9mIGFueTtcbmV4cG9ydCB0eXBlIFByaW1pdGl2ZSA9IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBiaWdpbnQgfCBzeW1ib2wgfCB1bmRlZmluZWQgfCBudWxsO1xuZXhwb3J0IHR5cGUgQnVpbHRpbiA9IFByaW1pdGl2ZSB8IEZ1bmN0aW9uIHwgRGF0ZSB8IEVycm9yIHwgUmVnRXhwO1xuZXhwb3J0IHR5cGUgSXNUdXBsZTxUPiA9IFQgZXh0ZW5kcyBhbnlbXSA/IChhbnlbXSBleHRlbmRzIFQgPyBuZXZlciA6IFQpIDogbmV2ZXI7XG50eXBlIEFueVJlY29yZDxUID0gYW55PiA9IFJlY29yZDxLZXlvZkJhc2UsIFQ+O1xuLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDk5Mjc1MjMvZGlzYWxsb3ctY2FsbC13aXRoLWFueS80OTkyODM2MCM0OTkyODM2MFxuZXhwb3J0IHR5cGUgSXNBbnk8VD4gPSAwIGV4dGVuZHMgMSAmIFQgPyB0cnVlIDogZmFsc2U7XG5leHBvcnQgdHlwZSBJc05ldmVyPFQ+ID0gW1RdIGV4dGVuZHMgW25ldmVyXSA/IHRydWUgOiBmYWxzZTtcbmV4cG9ydCB0eXBlIElzVW5rbm93bjxUPiA9IElzQW55PFQ+IGV4dGVuZHMgdHJ1ZSA/IGZhbHNlIDogdW5rbm93biBleHRlbmRzIFQgPyB0cnVlIDogZmFsc2U7XG5leHBvcnQgdHlwZSBBbnlBcnJheTxUID0gYW55PiA9IEFycmF5PFQ+IHwgUmVhZG9ubHlBcnJheTxUPjtcblxuZXhwb3J0IHR5cGUgQXJyYXlPclNpbmdsZTxUPiA9IFQgfCBUW107XG5cbnR5cGUgTm9uVW5kZWZpbmFibGU8VD4gPSBUIGV4dGVuZHMgdW5kZWZpbmVkID8gbmV2ZXIgOiBUO1xuXG4vKipcbiAqIExpa2UgUmVjb3JkLCBidXQgY2FuIGJlIHVzZWQgd2l0aCBvbmx5IG9uZSBhcmd1bWVudC5cbiAqIFVzZWZ1bCwgaWYgeW91IHdhbnQgdG8gbWFrZSBzdXJlIHRoYXQgYWxsIG9mIHRoZSBrZXlzIG9mIGEgZmluaXRlIHR5cGUgYXJlIHVzZWQuXG4gKi9cbmV4cG9ydCB0eXBlIERpY3Rpb25hcnk8VCwgSyBleHRlbmRzIEtleW9mQmFzZSA9IHN0cmluZz4gPSB7IFtrZXkgaW4gS106IFQgfTtcbi8qKiBHaXZlbiBEaWN0aW9uYXJ5PFQ+IHJldHVybnMgVCAqL1xuZXhwb3J0IHR5cGUgRGljdGlvbmFyeVZhbHVlczxUPiA9IFRba2V5b2YgVF07XG4vKipcbiAqIExpa2UgRGljdGlvbmFyeSwgYnV0OlxuICogIC0gZW5zdXJlcyB0eXBlIHNhZmV0eSBvZiBpbmRleCBhY2Nlc3NcbiAqICAtIGRvZXMgbm90IGVuZm9yY2Uga2V5IGV4aGF1c3RpdmVuZXNzXG4gKi9cbmV4cG9ydCB0eXBlIFNhZmVEaWN0aW9uYXJ5PFQsIEsgZXh0ZW5kcyBLZXlvZkJhc2UgPSBzdHJpbmc+ID0geyBba2V5IGluIEtdPzogVCB9O1xuXG4vKiogTGlrZSBQYXJ0aWFsIGJ1dCByZWN1cnNpdmUgKi9cbmV4cG9ydCB0eXBlIERlZXBQYXJ0aWFsPFQ+ID0gVCBleHRlbmRzIEJ1aWx0aW5cbiAgPyBUXG4gIDogVCBleHRlbmRzIE1hcDxpbmZlciBLLCBpbmZlciBWPlxuICA/IE1hcDxEZWVwUGFydGlhbDxLPiwgRGVlcFBhcnRpYWw8Vj4+XG4gIDogVCBleHRlbmRzIFJlYWRvbmx5TWFwPGluZmVyIEssIGluZmVyIFY+XG4gID8gUmVhZG9ubHlNYXA8RGVlcFBhcnRpYWw8Sz4sIERlZXBQYXJ0aWFsPFY+PlxuICA6IFQgZXh0ZW5kcyBXZWFrTWFwPGluZmVyIEssIGluZmVyIFY+XG4gID8gV2Vha01hcDxEZWVwUGFydGlhbDxLPiwgRGVlcFBhcnRpYWw8Vj4+XG4gIDogVCBleHRlbmRzIFNldDxpbmZlciBVPlxuICA/IFNldDxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgVT5cbiAgPyBSZWFkb25seVNldDxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgV2Vha1NldDxpbmZlciBVPlxuICA/IFdlYWtTZXQ8RGVlcFBhcnRpYWw8VT4+XG4gIDogVCBleHRlbmRzIEFycmF5PGluZmVyIFU+XG4gID8gVCBleHRlbmRzIElzVHVwbGU8VD5cbiAgICA/IHsgW0sgaW4ga2V5b2YgVF0/OiBEZWVwUGFydGlhbDxUW0tdPiB9XG4gICAgOiBBcnJheTxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgUHJvbWlzZTxpbmZlciBVPlxuICA/IFByb21pc2U8RGVlcFBhcnRpYWw8VT4+XG4gIDogVCBleHRlbmRzIHt9XG4gID8geyBbSyBpbiBrZXlvZiBUXT86IERlZXBQYXJ0aWFsPFRbS10+IH1cbiAgOiBJc1Vua25vd248VD4gZXh0ZW5kcyB0cnVlXG4gID8gdW5rbm93blxuICA6IFBhcnRpYWw8VD47XG5cbi8qKiBSZWN1cnNpdmUgbnVsbGFibGUgKi9cbmV4cG9ydCB0eXBlIERlZXBOdWxsYWJsZTxUPiA9IFQgZXh0ZW5kcyBCdWlsdGluXG4gID8gVCB8IG51bGxcbiAgOiBUIGV4dGVuZHMgTWFwPGluZmVyIEssIGluZmVyIFY+XG4gID8gTWFwPERlZXBOdWxsYWJsZTxLPiwgRGVlcE51bGxhYmxlPFY+PlxuICA6IFQgZXh0ZW5kcyBSZWFkb25seU1hcDxpbmZlciBLLCBpbmZlciBWPlxuICA/IFJlYWRvbmx5TWFwPERlZXBOdWxsYWJsZTxLPiwgRGVlcE51bGxhYmxlPFY+PlxuICA6IFQgZXh0ZW5kcyBXZWFrTWFwPGluZmVyIEssIGluZmVyIFY+XG4gID8gV2Vha01hcDxEZWVwTnVsbGFibGU8Sz4sIERlZXBOdWxsYWJsZTxWPj5cbiAgOiBUIGV4dGVuZHMgU2V0PGluZmVyIFU+XG4gID8gU2V0PERlZXBOdWxsYWJsZTxVPj5cbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgVT5cbiAgPyBSZWFkb25seVNldDxEZWVwTnVsbGFibGU8VT4+XG4gIDogVCBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgVT5cbiAgPyBXZWFrU2V0PERlZXBOdWxsYWJsZTxVPj5cbiAgOiBUIGV4dGVuZHMgQXJyYXk8aW5mZXIgVT5cbiAgPyBUIGV4dGVuZHMgSXNUdXBsZTxUPlxuICAgID8geyBbSyBpbiBrZXlvZiBUXTogRGVlcE51bGxhYmxlPFRbS10+IHwgbnVsbCB9XG4gICAgOiBBcnJheTxEZWVwTnVsbGFibGU8VT4+XG4gIDogVCBleHRlbmRzIFByb21pc2U8aW5mZXIgVT5cbiAgPyBQcm9taXNlPERlZXBOdWxsYWJsZTxVPj5cbiAgOiBUIGV4dGVuZHMge31cbiAgPyB7IFtLIGluIGtleW9mIFRdOiBEZWVwTnVsbGFibGU8VFtLXT4gfVxuICA6IFQgfCBudWxsO1xuXG4vKiogUmVjdXJzaXZlIHVuZGVmaW5hYmxlICovXG5leHBvcnQgdHlwZSBEZWVwVW5kZWZpbmFibGU8VD4gPSBUIGV4dGVuZHMgQnVpbHRpblxuICA/IFQgfCB1bmRlZmluZWRcbiAgOiBUIGV4dGVuZHMgTWFwPGluZmVyIEssIGluZmVyIFY+XG4gID8gTWFwPERlZXBVbmRlZmluYWJsZTxLPiwgRGVlcFVuZGVmaW5hYmxlPFY+PlxuICA6IFQgZXh0ZW5kcyBSZWFkb25seU1hcDxpbmZlciBLLCBpbmZlciBWPlxuICA/IFJlYWRvbmx5TWFwPERlZXBVbmRlZmluYWJsZTxLPiwgRGVlcFVuZGVmaW5hYmxlPFY+PlxuICA6IFQgZXh0ZW5kcyBXZWFrTWFwPGluZmVyIEssIGluZmVyIFY+XG4gID8gV2Vha01hcDxEZWVwVW5kZWZpbmFibGU8Sz4sIERlZXBVbmRlZmluYWJsZTxWPj5cbiAgOiBUIGV4dGVuZHMgU2V0PGluZmVyIFU+XG4gID8gU2V0PERlZXBVbmRlZmluYWJsZTxVPj5cbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgVT5cbiAgPyBSZWFkb25seVNldDxEZWVwVW5kZWZpbmFibGU8VT4+XG4gIDogVCBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgVT5cbiAgPyBXZWFrU2V0PERlZXBVbmRlZmluYWJsZTxVPj5cbiAgOiBUIGV4dGVuZHMgQXJyYXk8aW5mZXIgVT5cbiAgPyBUIGV4dGVuZHMgSXNUdXBsZTxUPlxuICAgID8geyBbSyBpbiBrZXlvZiBUXTogRGVlcFVuZGVmaW5hYmxlPFRbS10+IHwgdW5kZWZpbmVkIH1cbiAgICA6IEFycmF5PERlZXBVbmRlZmluYWJsZTxVPj5cbiAgOiBUIGV4dGVuZHMgUHJvbWlzZTxpbmZlciBVPlxuICA/IFByb21pc2U8RGVlcFVuZGVmaW5hYmxlPFU+PlxuICA6IFQgZXh0ZW5kcyB7fVxuICA/IHsgW0sgaW4ga2V5b2YgVF06IERlZXBVbmRlZmluYWJsZTxUW0tdPiB9XG4gIDogVCB8IHVuZGVmaW5lZDtcblxuLyoqIExpa2UgTm9uTnVsbGFibGUgYnV0IHJlY3Vyc2l2ZSAqL1xuZXhwb3J0IHR5cGUgRGVlcE5vbk51bGxhYmxlPFQ+ID0gVCBleHRlbmRzIEJ1aWx0aW5cbiAgPyBOb25OdWxsYWJsZTxUPlxuICA6IFQgZXh0ZW5kcyBNYXA8aW5mZXIgSywgaW5mZXIgVj5cbiAgPyBNYXA8RGVlcE5vbk51bGxhYmxlPEs+LCBEZWVwTm9uTnVsbGFibGU8Vj4+XG4gIDogVCBleHRlbmRzIFJlYWRvbmx5TWFwPGluZmVyIEssIGluZmVyIFY+XG4gID8gUmVhZG9ubHlNYXA8RGVlcE5vbk51bGxhYmxlPEs+LCBEZWVwTm9uTnVsbGFibGU8Vj4+XG4gIDogVCBleHRlbmRzIFdlYWtNYXA8aW5mZXIgSywgaW5mZXIgVj5cbiAgPyBXZWFrTWFwPERlZXBOb25OdWxsYWJsZTxLPiwgRGVlcE5vbk51bGxhYmxlPFY+PlxuICA6IFQgZXh0ZW5kcyBTZXQ8aW5mZXIgVT5cbiAgPyBTZXQ8RGVlcE5vbk51bGxhYmxlPFU+PlxuICA6IFQgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBVPlxuICA/IFJlYWRvbmx5U2V0PERlZXBOb25OdWxsYWJsZTxVPj5cbiAgOiBUIGV4dGVuZHMgV2Vha1NldDxpbmZlciBVPlxuICA/IFdlYWtTZXQ8RGVlcE5vbk51bGxhYmxlPFU+PlxuICA6IFQgZXh0ZW5kcyBQcm9taXNlPGluZmVyIFU+XG4gID8gUHJvbWlzZTxEZWVwTm9uTnVsbGFibGU8VT4+XG4gIDogVCBleHRlbmRzIHt9XG4gID8geyBbSyBpbiBrZXlvZiBUXTogRGVlcE5vbk51bGxhYmxlPFRbS10+IH1cbiAgOiBOb25OdWxsYWJsZTxUPjtcblxuLyoqIExpa2UgUmVxdWlyZWQgYnV0IHJlY3Vyc2l2ZSAqL1xuZXhwb3J0IHR5cGUgRGVlcFJlcXVpcmVkPFQ+ID0gVCBleHRlbmRzIEVycm9yXG4gID8gUmVxdWlyZWQ8VD5cbiAgOiBUIGV4dGVuZHMgQnVpbHRpblxuICA/IFRcbiAgOiBUIGV4dGVuZHMgTWFwPGluZmVyIEssIGluZmVyIFY+XG4gID8gTWFwPERlZXBSZXF1aXJlZDxLPiwgRGVlcFJlcXVpcmVkPFY+PlxuICA6IFQgZXh0ZW5kcyBSZWFkb25seU1hcDxpbmZlciBLLCBpbmZlciBWPlxuICA/IFJlYWRvbmx5TWFwPERlZXBSZXF1aXJlZDxLPiwgRGVlcFJlcXVpcmVkPFY+PlxuICA6IFQgZXh0ZW5kcyBXZWFrTWFwPGluZmVyIEssIGluZmVyIFY+XG4gID8gV2Vha01hcDxEZWVwUmVxdWlyZWQ8Sz4sIERlZXBSZXF1aXJlZDxWPj5cbiAgOiBUIGV4dGVuZHMgU2V0PGluZmVyIFU+XG4gID8gU2V0PERlZXBSZXF1aXJlZDxVPj5cbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgVT5cbiAgPyBSZWFkb25seVNldDxEZWVwUmVxdWlyZWQ8VT4+XG4gIDogVCBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgVT5cbiAgPyBXZWFrU2V0PERlZXBSZXF1aXJlZDxVPj5cbiAgOiBUIGV4dGVuZHMgUHJvbWlzZTxpbmZlciBVPlxuICA/IFByb21pc2U8RGVlcFJlcXVpcmVkPFU+PlxuICA6IFQgZXh0ZW5kcyB7fVxuICA/IHsgW0sgaW4ga2V5b2YgVF0tPzogRGVlcFJlcXVpcmVkPFRbS10+IH1cbiAgOiBSZXF1aXJlZDxUPjtcblxuLyoqIExpa2UgUmVhZG9ubHkgYnV0IHJlY3Vyc2l2ZSAqL1xuZXhwb3J0IHR5cGUgRGVlcFJlYWRvbmx5PFQ+ID0gVCBleHRlbmRzIEJ1aWx0aW5cbiAgPyBUXG4gIDogVCBleHRlbmRzIE1hcDxpbmZlciBLLCBpbmZlciBWPlxuICA/IFJlYWRvbmx5TWFwPERlZXBSZWFkb25seTxLPiwgRGVlcFJlYWRvbmx5PFY+PlxuICA6IFQgZXh0ZW5kcyBSZWFkb25seU1hcDxpbmZlciBLLCBpbmZlciBWPlxuICA/IFJlYWRvbmx5TWFwPERlZXBSZWFkb25seTxLPiwgRGVlcFJlYWRvbmx5PFY+PlxuICA6IFQgZXh0ZW5kcyBXZWFrTWFwPGluZmVyIEssIGluZmVyIFY+XG4gID8gV2Vha01hcDxEZWVwUmVhZG9ubHk8Sz4sIERlZXBSZWFkb25seTxWPj5cbiAgOiBUIGV4dGVuZHMgU2V0PGluZmVyIFU+XG4gID8gUmVhZG9ubHlTZXQ8RGVlcFJlYWRvbmx5PFU+PlxuICA6IFQgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBVPlxuICA/IFJlYWRvbmx5U2V0PERlZXBSZWFkb25seTxVPj5cbiAgOiBUIGV4dGVuZHMgV2Vha1NldDxpbmZlciBVPlxuICA/IFdlYWtTZXQ8RGVlcFJlYWRvbmx5PFU+PlxuICA6IFQgZXh0ZW5kcyBQcm9taXNlPGluZmVyIFU+XG4gID8gUHJvbWlzZTxEZWVwUmVhZG9ubHk8VT4+XG4gIDogVCBleHRlbmRzIHt9XG4gID8geyByZWFkb25seSBbSyBpbiBrZXlvZiBUXTogRGVlcFJlYWRvbmx5PFRbS10+IH1cbiAgOiBJc1Vua25vd248VD4gZXh0ZW5kcyB0cnVlXG4gID8gdW5rbm93blxuICA6IFJlYWRvbmx5PFQ+O1xuXG4vKiogTWFrZSByZWFkb25seSBvYmplY3Qgd3JpdGFibGUgKi9cbmV4cG9ydCB0eXBlIFdyaXRhYmxlPFQ+ID0geyAtcmVhZG9ubHkgW1AgaW4ga2V5b2YgVF06IFRbUF0gfTtcblxuLyoqIExpa2UgV3JpdGFibGUgYnV0IHJlY3Vyc2l2ZSAqL1xuZXhwb3J0IHR5cGUgRGVlcFdyaXRhYmxlPFQ+ID0gVCBleHRlbmRzIEJ1aWx0aW5cbiAgPyBUXG4gIDogVCBleHRlbmRzIE1hcDxpbmZlciBLLCBpbmZlciBWPlxuICA/IE1hcDxEZWVwV3JpdGFibGU8Sz4sIERlZXBXcml0YWJsZTxWPj5cbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlNYXA8aW5mZXIgSywgaW5mZXIgVj5cbiAgPyBNYXA8RGVlcFdyaXRhYmxlPEs+LCBEZWVwV3JpdGFibGU8Vj4+XG4gIDogVCBleHRlbmRzIFdlYWtNYXA8aW5mZXIgSywgaW5mZXIgVj5cbiAgPyBXZWFrTWFwPERlZXBXcml0YWJsZTxLPiwgRGVlcFdyaXRhYmxlPFY+PlxuICA6IFQgZXh0ZW5kcyBTZXQ8aW5mZXIgVT5cbiAgPyBTZXQ8RGVlcFdyaXRhYmxlPFU+PlxuICA6IFQgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBVPlxuICA/IFNldDxEZWVwV3JpdGFibGU8VT4+XG4gIDogVCBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgVT5cbiAgPyBXZWFrU2V0PERlZXBXcml0YWJsZTxVPj5cbiAgOiBUIGV4dGVuZHMgUHJvbWlzZTxpbmZlciBVPlxuICA/IFByb21pc2U8RGVlcFdyaXRhYmxlPFU+PlxuICA6IFQgZXh0ZW5kcyB7fVxuICA/IHsgLXJlYWRvbmx5IFtLIGluIGtleW9mIFRdOiBEZWVwV3JpdGFibGU8VFtLXT4gfVxuICA6IFQ7XG5cbi8qKiBDb21iaW5hdGlvbiBvZiBEZWVwUGFydGlhbCBhbmQgRGVlcFdyaXRhYmxlICovXG5leHBvcnQgdHlwZSBCdWlsZGFibGU8VD4gPSBEZWVwUGFydGlhbDxEZWVwV3JpdGFibGU8VD4+O1xuXG4vKiogU2ltaWxhciB0byB0aGUgYnVpbHRpbiBPbWl0LCBidXQgY2hlY2tzIHRoZSBmaWx0ZXIgc3RyaWN0bHkuICovXG5leHBvcnQgdHlwZSBTdHJpY3RPbWl0PFQgZXh0ZW5kcyBBbnlSZWNvcmQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IFQgZXh0ZW5kcyBBbnlBcnJheSA/IG5ldmVyIDogT21pdDxULCBLPjtcblxuLyoqIFNpbWlsYXIgdG8gdGhlIGJ1aWx0aW4gRXh0cmFjdCwgYnV0IGNoZWNrcyB0aGUgZmlsdGVyIHN0cmljdGx5ICovXG5leHBvcnQgdHlwZSBTdHJpY3RFeHRyYWN0PFQsIFUgZXh0ZW5kcyBQYXJ0aWFsPFQ+PiA9IEV4dHJhY3Q8VCwgVT47XG5cbnR5cGUgUGlja0tleXNCeVZhbHVlPFQsIFY+ID0geyBbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIFYgPyBLIDogbmV2ZXIgfVtrZXlvZiBUXTtcblxuLyoqIE9taXQgYWxsIHByb3BlcnRpZXMgb2YgZ2l2ZW4gdHlwZSBpbiBvYmplY3QgdHlwZSAqL1xuZXhwb3J0IHR5cGUgT21pdFByb3BlcnRpZXM8VCwgUD4gPSBPbWl0PFQsIFBpY2tLZXlzQnlWYWx1ZTxULCBQPj47XG5cbi8qKiBQaWNrIGFsbCBwcm9wZXJ0aWVzIG9mIGdpdmVuIHR5cGUgaW4gb2JqZWN0IHR5cGUgKi9cbmV4cG9ydCB0eXBlIFBpY2tQcm9wZXJ0aWVzPFQsIFA+ID0gUGljazxULCBQaWNrS2V5c0J5VmFsdWU8VCwgUD4+O1xuXG4vKiogR2V0cyBrZXlzIG9mIGFuIG9iamVjdCB3aGljaCBhcmUgb3B0aW9uYWwgKi9cbmV4cG9ydCB0eXBlIE9wdGlvbmFsS2V5czxUPiA9IFQgZXh0ZW5kcyB1bmtub3duXG4gID8ge1xuICAgICAgW0sgaW4ga2V5b2YgVF0tPzogdW5kZWZpbmVkIGV4dGVuZHMgeyBbSzIgaW4ga2V5b2YgVF06IEsyIH1bS10gPyBLIDogbmV2ZXI7XG4gICAgfVtrZXlvZiBUXVxuICA6IG5ldmVyO1xuXG4vKiogR2V0cyBrZXlzIG9mIGFuIG9iamVjdCB3aGljaCBhcmUgcmVxdWlyZWQgKi9cbmV4cG9ydCB0eXBlIFJlcXVpcmVkS2V5czxUPiA9IFQgZXh0ZW5kcyB1bmtub3duID8gRXhjbHVkZTxrZXlvZiBULCBPcHRpb25hbEtleXM8VD4+IDogbmV2ZXI7XG5cbi8qKiBHZXRzIGtleXMgb2YgcHJvcGVydGllcyBvZiBnaXZlbiB0eXBlIGluIG9iamVjdCB0eXBlICovXG5leHBvcnQgdHlwZSBQaWNrS2V5czxULCBQPiA9IEV4Y2x1ZGU8a2V5b2YgUGlja1Byb3BlcnRpZXM8VCwgUD4sIHVuZGVmaW5lZD47XG5cbi8qKiBSZWN1cnNpdmVseSBvbWl0IGRlZXAgcHJvcGVydGllcyAqL1xuZXhwb3J0IHR5cGUgRGVlcE9taXQ8VCwgRmlsdGVyIGV4dGVuZHMgRGVlcE1vZGlmeTxUPj4gPSBUIGV4dGVuZHMgQnVpbHRpblxuICA/IFRcbiAgOiBUIGV4dGVuZHMgTWFwPGluZmVyIEtleVR5cGUsIGluZmVyIFZhbHVlVHlwZT5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBNYXA8S2V5VHlwZSwgaW5mZXIgRmlsdGVyVmFsdWVUeXBlPlxuICAgID8gRmlsdGVyVmFsdWVUeXBlIGV4dGVuZHMgRGVlcE1vZGlmeTxWYWx1ZVR5cGU+XG4gICAgICA/IE1hcDxLZXlUeXBlLCBEZWVwT21pdDxWYWx1ZVR5cGUsIEZpbHRlclZhbHVlVHlwZT4+XG4gICAgICA6IFRcbiAgICA6IFRcbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlNYXA8aW5mZXIgS2V5VHlwZSwgaW5mZXIgVmFsdWVUeXBlPlxuICA/IEZpbHRlciBleHRlbmRzIFJlYWRvbmx5TWFwPEtleVR5cGUsIGluZmVyIEZpbHRlclZhbHVlVHlwZT5cbiAgICA/IEZpbHRlclZhbHVlVHlwZSBleHRlbmRzIERlZXBNb2RpZnk8VmFsdWVUeXBlPlxuICAgICAgPyBSZWFkb25seU1hcDxLZXlUeXBlLCBEZWVwT21pdDxWYWx1ZVR5cGUsIEZpbHRlclZhbHVlVHlwZT4+XG4gICAgICA6IFRcbiAgICA6IFRcbiAgOiBUIGV4dGVuZHMgV2Vha01hcDxpbmZlciBLZXlUeXBlLCBpbmZlciBWYWx1ZVR5cGU+XG4gID8gRmlsdGVyIGV4dGVuZHMgV2Vha01hcDxLZXlUeXBlLCBpbmZlciBGaWx0ZXJWYWx1ZVR5cGU+XG4gICAgPyBGaWx0ZXJWYWx1ZVR5cGUgZXh0ZW5kcyBEZWVwTW9kaWZ5PFZhbHVlVHlwZT5cbiAgICAgID8gV2Vha01hcDxLZXlUeXBlLCBEZWVwT21pdDxWYWx1ZVR5cGUsIEZpbHRlclZhbHVlVHlwZT4+XG4gICAgICA6IFRcbiAgICA6IFRcbiAgOiBUIGV4dGVuZHMgU2V0PGluZmVyIEl0ZW1UeXBlPlxuICA/IEZpbHRlciBleHRlbmRzIFNldDxpbmZlciBGaWx0ZXJJdGVtVHlwZT5cbiAgICA/IEZpbHRlckl0ZW1UeXBlIGV4dGVuZHMgRGVlcE1vZGlmeTxJdGVtVHlwZT5cbiAgICAgID8gU2V0PERlZXBPbWl0PEl0ZW1UeXBlLCBGaWx0ZXJJdGVtVHlwZT4+XG4gICAgICA6IFRcbiAgICA6IFRcbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgSXRlbVR5cGU+XG4gID8gRmlsdGVyIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgRmlsdGVySXRlbVR5cGU+XG4gICAgPyBGaWx0ZXJJdGVtVHlwZSBleHRlbmRzIERlZXBNb2RpZnk8SXRlbVR5cGU+XG4gICAgICA/IFJlYWRvbmx5U2V0PERlZXBPbWl0PEl0ZW1UeXBlLCBGaWx0ZXJJdGVtVHlwZT4+XG4gICAgICA6IFRcbiAgICA6IFRcbiAgOiBUIGV4dGVuZHMgV2Vha1NldDxpbmZlciBJdGVtVHlwZT5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBXZWFrU2V0PGluZmVyIEZpbHRlckl0ZW1UeXBlPlxuICAgID8gRmlsdGVySXRlbVR5cGUgZXh0ZW5kcyBEZWVwTW9kaWZ5PEl0ZW1UeXBlPlxuICAgICAgPyBXZWFrU2V0PERlZXBPbWl0PEl0ZW1UeXBlLCBGaWx0ZXJJdGVtVHlwZT4+XG4gICAgICA6IFRcbiAgICA6IFRcbiAgOiBUIGV4dGVuZHMgQXJyYXk8aW5mZXIgSXRlbVR5cGU+XG4gID8gRmlsdGVyIGV4dGVuZHMgQXJyYXk8aW5mZXIgRmlsdGVySXRlbVR5cGU+XG4gICAgPyBGaWx0ZXJJdGVtVHlwZSBleHRlbmRzIERlZXBNb2RpZnk8SXRlbVR5cGU+XG4gICAgICA/IEFycmF5PERlZXBPbWl0PEl0ZW1UeXBlLCBGaWx0ZXJJdGVtVHlwZT4+XG4gICAgICA6IFRcbiAgICA6IFRcbiAgOiBUIGV4dGVuZHMgUHJvbWlzZTxpbmZlciBJdGVtVHlwZT5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBQcm9taXNlPGluZmVyIEZpbHRlckl0ZW1UeXBlPlxuICAgID8gRmlsdGVySXRlbVR5cGUgZXh0ZW5kcyBEZWVwTW9kaWZ5PEl0ZW1UeXBlPlxuICAgICAgPyBQcm9taXNlPERlZXBPbWl0PEl0ZW1UeXBlLCBGaWx0ZXJJdGVtVHlwZT4+XG4gICAgICA6IFRcbiAgICA6IFRcbiAgOiBGaWx0ZXIgZXh0ZW5kcyBBbnlSZWNvcmRcbiAgPyB7XG4gICAgICBbSyBpbiBrZXlvZiBUIGFzIEsgZXh0ZW5kcyBrZXlvZiBGaWx0ZXIgPyAoRmlsdGVyW0tdIGV4dGVuZHMgdHJ1ZSA/IG5ldmVyIDogSykgOiBLXTogSyBleHRlbmRzIGtleW9mIEZpbHRlclxuICAgICAgICA/IEZpbHRlcltLXSBleHRlbmRzIERlZXBNb2RpZnk8VFtLXT5cbiAgICAgICAgICA/IERlZXBPbWl0PFRbS10sIEZpbHRlcltLXT5cbiAgICAgICAgICA6IFRbS11cbiAgICAgICAgOiBUW0tdO1xuICAgIH1cbiAgOiBuZXZlcjtcblxuLyoqIFJlY3Vyc2l2ZWx5IHBpY2sgZGVlcCBwcm9wZXJ0aWVzICovXG5leHBvcnQgdHlwZSBEZWVwUGljazxULCBGaWx0ZXIgZXh0ZW5kcyBEZWVwTW9kaWZ5PFQ+PiA9IFQgZXh0ZW5kcyBCdWlsdGluXG4gID8gVFxuICA6IFQgZXh0ZW5kcyBNYXA8aW5mZXIgS2V5VHlwZSwgaW5mZXIgVmFsdWVUeXBlPlxuICA/IEZpbHRlciBleHRlbmRzIE1hcDxLZXlUeXBlLCBpbmZlciBGaWx0ZXJWYWx1ZVR5cGU+XG4gICAgPyBGaWx0ZXJWYWx1ZVR5cGUgZXh0ZW5kcyBEZWVwTW9kaWZ5PFZhbHVlVHlwZT5cbiAgICAgID8gTWFwPEtleVR5cGUsIERlZXBQaWNrPFZhbHVlVHlwZSwgRmlsdGVyVmFsdWVUeXBlPj5cbiAgICAgIDogVFxuICAgIDogVFxuICA6IFQgZXh0ZW5kcyBSZWFkb25seU1hcDxpbmZlciBLZXlUeXBlLCBpbmZlciBWYWx1ZVR5cGU+XG4gID8gRmlsdGVyIGV4dGVuZHMgUmVhZG9ubHlNYXA8S2V5VHlwZSwgaW5mZXIgRmlsdGVyVmFsdWVUeXBlPlxuICAgID8gRmlsdGVyVmFsdWVUeXBlIGV4dGVuZHMgRGVlcE1vZGlmeTxWYWx1ZVR5cGU+XG4gICAgICA/IFJlYWRvbmx5TWFwPEtleVR5cGUsIERlZXBQaWNrPFZhbHVlVHlwZSwgRmlsdGVyVmFsdWVUeXBlPj5cbiAgICAgIDogVFxuICAgIDogVFxuICA6IFQgZXh0ZW5kcyBXZWFrTWFwPGluZmVyIEtleVR5cGUsIGluZmVyIFZhbHVlVHlwZT5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBXZWFrTWFwPEtleVR5cGUsIGluZmVyIEZpbHRlclZhbHVlVHlwZT5cbiAgICA/IEZpbHRlclZhbHVlVHlwZSBleHRlbmRzIERlZXBNb2RpZnk8VmFsdWVUeXBlPlxuICAgICAgPyBXZWFrTWFwPEtleVR5cGUsIERlZXBQaWNrPFZhbHVlVHlwZSwgRmlsdGVyVmFsdWVUeXBlPj5cbiAgICAgIDogVFxuICAgIDogVFxuICA6IFQgZXh0ZW5kcyBTZXQ8aW5mZXIgSXRlbVR5cGU+XG4gID8gRmlsdGVyIGV4dGVuZHMgU2V0PGluZmVyIEZpbHRlckl0ZW1UeXBlPlxuICAgID8gRmlsdGVySXRlbVR5cGUgZXh0ZW5kcyBEZWVwTW9kaWZ5PEl0ZW1UeXBlPlxuICAgICAgPyBTZXQ8RGVlcFBpY2s8SXRlbVR5cGUsIEZpbHRlckl0ZW1UeXBlPj5cbiAgICAgIDogVFxuICAgIDogVFxuICA6IFQgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBJdGVtVHlwZT5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBGaWx0ZXJJdGVtVHlwZT5cbiAgICA/IEZpbHRlckl0ZW1UeXBlIGV4dGVuZHMgRGVlcE1vZGlmeTxJdGVtVHlwZT5cbiAgICAgID8gUmVhZG9ubHlTZXQ8RGVlcFBpY2s8SXRlbVR5cGUsIEZpbHRlckl0ZW1UeXBlPj5cbiAgICAgIDogVFxuICAgIDogVFxuICA6IFQgZXh0ZW5kcyBXZWFrU2V0PGluZmVyIEl0ZW1UeXBlPlxuICA/IEZpbHRlciBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgRmlsdGVySXRlbVR5cGU+XG4gICAgPyBGaWx0ZXJJdGVtVHlwZSBleHRlbmRzIERlZXBNb2RpZnk8SXRlbVR5cGU+XG4gICAgICA/IFdlYWtTZXQ8RGVlcFBpY2s8SXRlbVR5cGUsIEZpbHRlckl0ZW1UeXBlPj5cbiAgICAgIDogVFxuICAgIDogVFxuICA6IFQgZXh0ZW5kcyBBcnJheTxpbmZlciBJdGVtVHlwZT5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBBcnJheTxpbmZlciBGaWx0ZXJJdGVtVHlwZT5cbiAgICA/IEZpbHRlckl0ZW1UeXBlIGV4dGVuZHMgRGVlcE1vZGlmeTxJdGVtVHlwZT5cbiAgICAgID8gQXJyYXk8RGVlcFBpY2s8SXRlbVR5cGUsIEZpbHRlckl0ZW1UeXBlPj5cbiAgICAgIDogVFxuICAgIDogVFxuICA6IFQgZXh0ZW5kcyBQcm9taXNlPGluZmVyIEl0ZW1UeXBlPlxuICA/IEZpbHRlciBleHRlbmRzIFByb21pc2U8aW5mZXIgRmlsdGVySXRlbVR5cGU+XG4gICAgPyBGaWx0ZXJJdGVtVHlwZSBleHRlbmRzIERlZXBNb2RpZnk8SXRlbVR5cGU+XG4gICAgICA/IFByb21pc2U8RGVlcFBpY2s8SXRlbVR5cGUsIEZpbHRlckl0ZW1UeXBlPj5cbiAgICAgIDogVFxuICAgIDogVFxuICA6IEZpbHRlciBleHRlbmRzIEFueVJlY29yZFxuICA/IHtcbiAgICAgIC8vIGl0ZXJhdGUgb3ZlciBrZXlzIG9mIFQsIHdoaWNoIGtlZXBzIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBrZXlzOiBvcHRpb25hbCwgcmVxdWlyZWQgb3IgcmVhZG9ubHlcbiAgICAgIFtLIGluIGtleW9mIFQgYXMgSyBleHRlbmRzIGtleW9mIEZpbHRlciA/IEsgOiBuZXZlcl06IEZpbHRlcltLICYga2V5b2YgRmlsdGVyXSBleHRlbmRzIHRydWVcbiAgICAgICAgPyBUW0tdXG4gICAgICAgIDogSyBleHRlbmRzIGtleW9mIEZpbHRlclxuICAgICAgICA/IEZpbHRlcltLXSBleHRlbmRzIERlZXBNb2RpZnk8VFtLXT5cbiAgICAgICAgICA/IERlZXBQaWNrPFRbS10sIEZpbHRlcltLXT5cbiAgICAgICAgICA6IG5ldmVyXG4gICAgICAgIDogbmV2ZXI7XG4gICAgfVxuICA6IG5ldmVyO1xuXG50eXBlIERlZXBNb2RpZnk8VD4gPVxuICB8IChUIGV4dGVuZHMgQW55UmVjb3JkXG4gICAgICA/IHtcbiAgICAgICAgICBbSyBpbiBrZXlvZiBUXT86IHVuZGVmaW5lZCBleHRlbmRzIHsgW0syIGluIGtleW9mIFRdOiBLMiB9W0tdXG4gICAgICAgICAgICA/IE5vblVuZGVmaW5hYmxlPFRbS10+IGV4dGVuZHMgb2JqZWN0XG4gICAgICAgICAgICAgID8gdHJ1ZSB8IERlZXBNb2RpZnk8Tm9uVW5kZWZpbmFibGU8VFtLXT4+XG4gICAgICAgICAgICAgIDogdHJ1ZVxuICAgICAgICAgICAgOiBUW0tdIGV4dGVuZHMgb2JqZWN0XG4gICAgICAgICAgICA/IHRydWUgfCBEZWVwTW9kaWZ5PFRbS10+XG4gICAgICAgICAgICA6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIDogbmV2ZXIpXG4gIHwgKFQgZXh0ZW5kcyBBcnJheTxpbmZlciBFPiA/IEFycmF5PERlZXBNb2RpZnk8RT4+IDogbmV2ZXIpXG4gIHwgKFQgZXh0ZW5kcyBQcm9taXNlPGluZmVyIEU+ID8gUHJvbWlzZTxEZWVwTW9kaWZ5PEU+PiA6IG5ldmVyKVxuICB8IChUIGV4dGVuZHMgU2V0PGluZmVyIEU+ID8gU2V0PERlZXBNb2RpZnk8RT4+IDogbmV2ZXIpXG4gIHwgKFQgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBFPiA/IFJlYWRvbmx5U2V0PERlZXBNb2RpZnk8RT4+IDogbmV2ZXIpXG4gIHwgKFQgZXh0ZW5kcyBXZWFrU2V0PGluZmVyIEU+ID8gV2Vha1NldDxEZWVwTW9kaWZ5PEU+PiA6IG5ldmVyKVxuICB8IChUIGV4dGVuZHMgTWFwPGluZmVyIEssIGluZmVyIEU+ID8gTWFwPEssIERlZXBNb2RpZnk8RT4+IDogbmV2ZXIpXG4gIHwgKFQgZXh0ZW5kcyBSZWFkb25seU1hcDxpbmZlciBLLCBpbmZlciBFPiA/IFJlYWRvbmx5TWFwPEssIERlZXBNb2RpZnk8RT4+IDogbmV2ZXIpXG4gIHwgKFQgZXh0ZW5kcyBXZWFrTWFwPGluZmVyIEssIGluZmVyIEU+ID8gV2Vha01hcDxLLCBEZWVwTW9kaWZ5PEU+PiA6IG5ldmVyKTtcblxuLyoqIFJlbW92ZSBrZXlzIHdpdGggYG5ldmVyYCB2YWx1ZSBmcm9tIG9iamVjdCB0eXBlICovXG5leHBvcnQgdHlwZSBOb25OZXZlcjxUIGV4dGVuZHMge30+ID0gUGljazxULCB7IFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgbmV2ZXIgPyBuZXZlciA6IEsgfVtrZXlvZiBUXT47XG5cbmV4cG9ydCB0eXBlIE5vbkVtcHR5T2JqZWN0PFQgZXh0ZW5kcyB7fT4gPSBrZXlvZiBUIGV4dGVuZHMgbmV2ZXIgPyBuZXZlciA6IFQ7XG5cbi8qKiBNZXJnZSAyIHR5cGVzLCBwcm9wZXJ0aWVzIHR5cGVzIGZyb20gdGhlIGxhdHRlciBvdmVycmlkZSB0aGUgb25lcyBkZWZpbmVkIG9uIHRoZSBmb3JtZXIgdHlwZSAqL1xuZXhwb3J0IHR5cGUgTWVyZ2U8TSwgTj4gPSBPbWl0PE0sIGtleW9mIE4+ICYgTjtcblxudHlwZSBfTWVyZ2VOPFQgZXh0ZW5kcyByZWFkb25seSBhbnlbXSwgUmVzdWx0PiA9IFQgZXh0ZW5kcyByZWFkb25seSBbaW5mZXIgSGVhZCwgLi4uaW5mZXIgVGFpbF1cbiAgPyBfTWVyZ2VOPFRhaWwsIE1lcmdlPFJlc3VsdCwgSGVhZD4+XG4gIDogUmVzdWx0O1xuXG4vKiogTWVyZ2UgTiB0eXBlcywgcHJvcGVydGllcyB0eXBlcyBmcm9tIHRoZSBsYXR0ZXIgb3ZlcnJpZGUgdGhlIG9uZXMgZGVmaW5lZCBvbiB0aGUgZm9ybWVyIHR5cGUgKi9cbmV4cG9ydCB0eXBlIE1lcmdlTjxUIGV4dGVuZHMgcmVhZG9ubHkgYW55W10+ID0gX01lcmdlTjxULCB7fT47XG5cbi8qKiBNYXJrIHNvbWUgcHJvcGVydGllcyBhcyByZXF1aXJlZCwgbGVhdmluZyBvdGhlcnMgdW5jaGFuZ2VkICovXG5leHBvcnQgdHlwZSBNYXJrUmVxdWlyZWQ8VCwgUksgZXh0ZW5kcyBrZXlvZiBUPiA9IEV4Y2x1ZGU8VCwgUks+ICYgUmVxdWlyZWQ8UGljazxULCBSSz4+O1xuXG4vKiogTWFyayBzb21lIHByb3BlcnRpZXMgYXMgb3B0aW9uYWwsIGxlYXZpbmcgb3RoZXJzIHVuY2hhbmdlZCAqL1xuZXhwb3J0IHR5cGUgTWFya09wdGlvbmFsPFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IE9taXQ8VCwgSz4gJiBQYXJ0aWFsPFBpY2s8VCwgSz4+O1xuXG4vKiogQ29udmVydCB1bmlvbiB0eXBlIHRvIGludGVyc2VjdGlvbiAjZGFya21hZ2ljICovXG5leHBvcnQgdHlwZSBVbmlvblRvSW50ZXJzZWN0aW9uPFU+ID0gKFUgZXh0ZW5kcyBhbnkgPyAoazogVSkgPT4gdm9pZCA6IG5ldmVyKSBleHRlbmRzIChrOiBpbmZlciBJKSA9PiB2b2lkID8gSSA6IG5ldmVyO1xuXG50eXBlIFN0cmluZ0xpdGVyYWw8VD4gPSBUIGV4dGVuZHMgc3RyaW5nID8gKHN0cmluZyBleHRlbmRzIFQgPyBuZXZlciA6IFQpIDogbmV2ZXI7XG5cbmRlY2xhcmUgY29uc3QgX19PUEFRVUVfVFlQRV9fOiB1bmlxdWUgc3ltYm9sO1xuXG4vKiogRWFzaWx5IGNyZWF0ZSBvcGFxdWUgdHlwZXMgaWUuIHR5cGVzIHRoYXQgYXJlIHN1YnNldCBvZiB0aGVpciBvcmlnaW5hbCB0eXBlcyAoZXg6IHBvc2l0aXZlIG51bWJlcnMsIHVwcGVyY2FzZWQgc3RyaW5nKSAqL1xuZXhwb3J0IHR5cGUgT3BhcXVlPFR5cGUsIFRva2VuIGV4dGVuZHMgc3RyaW5nPiA9IFRva2VuIGV4dGVuZHMgU3RyaW5nTGl0ZXJhbDxUb2tlbj5cbiAgPyBUeXBlICYgeyByZWFkb25seSBbX19PUEFRVUVfVFlQRV9fXTogVG9rZW4gfVxuICA6IG5ldmVyO1xuXG4vKiogRWFzaWx5IGV4dHJhY3QgdGhlIHR5cGUgb2YgYSBnaXZlbiBvYmplY3QncyB2YWx1ZXMgKi9cbmV4cG9ydCB0eXBlIFZhbHVlT2Y8VD4gPSBUW2tleW9mIFRdO1xuXG4vKiogRWFzaWx5IGV4dHJhY3QgdGhlIHR5cGUgb2YgYSBnaXZlbiBhcnJheSdzIGVsZW1lbnRzICovXG5leHBvcnQgdHlwZSBFbGVtZW50T2Y8VCBleHRlbmRzIHJlYWRvbmx5IGFueVtdPiA9IFQgZXh0ZW5kcyByZWFkb25seSAoaW5mZXIgRVQpW10gPyBFVCA6IG5ldmVyO1xuXG4vKiogVHlwZSBjb25zdHJhaW50IGZvciB0dXBsZSBpbmZlcmVuY2UgKi9cbmV4cG9ydCB0eXBlIFR1cGxlPFQgPSBhbnk+ID0gW1RdIHwgVFtdO1xuXG4vKiogVXNlZnVsIGFzIGEgcmV0dXJuIHR5cGUgaW4gaW50ZXJmYWNlcyBvciBhYnN0cmFjdCBjbGFzc2VzIHdpdGggbWlzc2luZyBpbXBsZW1lbnRhdGlvbiAqL1xuZXhwb3J0IHR5cGUgQXN5bmNPclN5bmM8VD4gPSBQcm9taXNlTGlrZTxUPiB8IFQ7XG5cbmV4cG9ydCB0eXBlIEF3YWl0ZWQ8VD4gPSBUIGV4dGVuZHMgUHJvbWlzZUxpa2U8aW5mZXIgUFQ+ID8gUFQgOiBuZXZlcjtcbmV4cG9ydCB0eXBlIEFzeW5jT3JTeW5jVHlwZTxUPiA9IFQgZXh0ZW5kcyBBc3luY09yU3luYzxpbmZlciBQVD4gPyBQVCA6IG5ldmVyO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ld2FibGU8VD4ge1xuICBuZXcgKC4uLmFyZ3M6IGFueVtdKTogVDtcbn1cblxuLy8gQSBoZWxwZXIgZm9yIGBSZWFkb25seUtleXNgICYgYFdyaXRhYmxlS2V5c2Bcbi8vIFRoaXMgcG90ZW50aWFsbHkgYWJ1c2VzIGNvbXBpbGVyIHNvbWUgaW5jb25zaXN0ZW5jaWVzIGluIGNoZWNraW5nIHR5cGUgZXF1YWxpdHkgZm9yIGdlbmVyaWNzLFxuLy8gYmVjYXVzZSBub3JtYWxseSBgcmVhZG9ubHlgIGRvZXNuJ3QgYWZmZWN0IHdoZXRoZXIgdHlwZXMgYXJlIGFzc2lnbmFibGUuXG4vLyBAc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS81MjQ3MzEwOC8xODE1MjA5IHdpdGggY29tbWVudHNcbnR5cGUgSXNFcXVhbENvbnNpZGVyaW5nV3JpdGFiaWxpdHk8WCwgWT4gPSAoPFQ+KCkgPT4gVCBleHRlbmRzIFggPyAxIDogMikgZXh0ZW5kcyA8VD4oKSA9PiBUIGV4dGVuZHMgWSA/IDEgOiAyXG4gID8gdHJ1ZVxuICA6IGZhbHNlO1xuXG4vLyBUaGlzIGFsc28gcHJvYmFibHkgdXNlcyBzb21lIGluY29uc2lzdGVuY2llcyAtLSBldmVuIHRob3VnaCBpdCBfc2hvdWxkXyBiZSB0aGUgc2FtZSB0byBqdXN0IHVzZVxuLy8gYFQsIFdyaXRhYmxlPFQ+YCBmb3IgZ2VuZXJpYyBhcmd1bWVudHMsIGl0IHN0b3BzIHdvcmtpbmcgdGhlbiwgYWx3YXlzIGV2YWx1YXRpbmcgdG8gYGZhbHNlYC5cbi8vIFN3YXBwaW5nIGBXcml0YWJsZWAgdG8gYFJlYWRhYmxlYCBhbHdheXMgcmV0dXJucyBmYWxzZSB0b28sIGluc3RlYWQgb2YgeWllbGRpbmcgb3Bwb3NpdGUgcmVzdWx0cy5cbnR5cGUgSXNGdWxseVdyaXRhYmxlPFQgZXh0ZW5kcyBvYmplY3Q+ID0gSXNFcXVhbENvbnNpZGVyaW5nV3JpdGFiaWxpdHk8XG4gIHsgW1EgaW4ga2V5b2YgVF06IFRbUV0gfSxcbiAgV3JpdGFibGU8eyBbUSBpbiBrZXlvZiBUXTogVFtRXSB9PlxuPjtcblxuLyoqIEdldHMga2V5cyBvZiBhbiBvYmplY3Qgd2hpY2ggYXJlIHJlYWRvbmx5ICovXG5leHBvcnQgdHlwZSBSZWFkb25seUtleXM8VCBleHRlbmRzIG9iamVjdD4gPSB7XG4gIFtQIGluIGtleW9mIFRdLT86IElzRnVsbHlXcml0YWJsZTxQaWNrPFQsIFA+PiBleHRlbmRzIHRydWUgPyBuZXZlciA6IFA7XG59W2tleW9mIFRdO1xuXG4vKiogR2V0cyBrZXlzIG9mIGFuIG9iamVjdCB3aGljaCBhcmUgd3JpdGFibGUgKi9cbmV4cG9ydCB0eXBlIFdyaXRhYmxlS2V5czxUIGV4dGVuZHMge30+ID0ge1xuICBbUCBpbiBrZXlvZiBUXS0/OiBJc0Z1bGx5V3JpdGFibGU8UGljazxULCBQPj4gZXh0ZW5kcyB0cnVlID8gUCA6IG5ldmVyO1xufVtrZXlvZiBUXTtcblxuLyoqIE1hcmsgc29tZSBwcm9wZXJ0aWVzIHdoaWNoIG9ubHkgdGhlIGZvcm1lciBpbmNsdWRpbmcgYXMgb3B0aW9uYWwgYW5kIHNldCB0aGUgdmFsdWUgdG8gbmV2ZXIgKi9cbnR5cGUgV2l0aG91dDxULCBVPiA9IHsgW1AgaW4gRXhjbHVkZTxrZXlvZiBULCBrZXlvZiBVPl0/OiBuZXZlciB9O1xuXG4vKiogZ2V0IHRoZSBYT1IgdHlwZSB3aGljaCBjb3VsZCBtYWtlIDIgdHlwZXMgZXhjbHVkZSBlYWNoIG90aGVyICovXG5leHBvcnQgdHlwZSBYT1I8VCwgVT4gPSBUIHwgVSBleHRlbmRzIG9iamVjdCA/IChXaXRob3V0PFQsIFU+ICYgVSkgfCAoV2l0aG91dDxVLCBUPiAmIFQpIDogVCB8IFU7XG5cbi8qKiBGdW5jdGlvbmFsIHByb2dyYW1taW5nIGVzc2VudGlhbHMgKi9cbmV4cG9ydCB0eXBlIEhlYWQ8VCBleHRlbmRzIEFueUFycmF5PiA9IFRbXCJsZW5ndGhcIl0gZXh0ZW5kcyAwID8gbmV2ZXIgOiBUWzBdO1xuZXhwb3J0IHR5cGUgVGFpbDxUIGV4dGVuZHMgQW55QXJyYXk+ID0gVFtcImxlbmd0aFwiXSBleHRlbmRzIDBcbiAgPyBuZXZlclxuICA6ICgoLi4udDogVCkgPT4gdm9pZCkgZXh0ZW5kcyAoZmlyc3Q6IGFueSwgLi4ucmVzdDogaW5mZXIgUmVzdCkgPT4gdm9pZFxuICA/IFJlc3RcbiAgOiBuZXZlcjtcblxuZXhwb3J0IHR5cGUgRXhhY3Q8VCwgU0hBUEU+ID0gVCBleHRlbmRzIFNIQVBFID8gKEV4Y2x1ZGU8a2V5b2YgVCwga2V5b2YgU0hBUEU+IGV4dGVuZHMgbmV2ZXIgPyBUIDogbmV2ZXIpIDogbmV2ZXI7XG4iXX0=

@@ -14,3 +14,3 @@ {

],
"version": "9.1.0",
"version": "9.1.1",
"main": "dist/index.js",

@@ -22,2 +22,3 @@ "types": "dist/index.d.ts",

"scripts": {
"postinstall": "yarn setTsVersion",
"build": "rimraf ./dist && tsc -p tsconfig.prod.json --outDir ./dist",

@@ -29,3 +30,4 @@ "formatDeclarations": "prettier --ignore-path *.js --write dist/*.d.ts",

"prerelease": "yarn test",
"release": "yarn build && yarn formatDeclarations && yarn changeset publish"
"release": "yarn build && yarn formatDeclarations && yarn changeset publish",
"setTsVersion": "node scripts/sync-ts-version.js"
},

@@ -32,0 +34,0 @@ "files": [

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc