@bitgo/statics 59.9.0 → 59.11.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/dist/src/allCoinsAndTokens.d.ts.map +1 -1
- package/dist/src/allCoinsAndTokens.js +23 -19
- package/dist/src/base.d.ts +104 -2
- package/dist/src/base.d.ts.map +1 -1
- package/dist/src/base.js +100 -3
- package/dist/src/coinFeatures.d.ts +4 -0
- package/dist/src/coinFeatures.d.ts.map +1 -1
- package/dist/src/coinFeatures.js +21 -4
- package/dist/src/coins/adaTokens.js +3 -3
- package/dist/src/coins/bscTokens.d.ts.map +1 -1
- package/dist/src/coins/bscTokens.js +44 -43
- package/dist/src/coins/hoodethTokens.d.ts.map +1 -1
- package/dist/src/coins/hoodethTokens.js +93 -1
- package/dist/src/coins/ofcCoins.d.ts.map +1 -1
- package/dist/src/coins/ofcCoins.js +5 -3
- package/dist/src/coins/ofcErc20Coins.d.ts.map +1 -1
- package/dist/src/coins/ofcErc20Coins.js +9 -7
- package/dist/src/coins/ofcHoodethTokens.d.ts.map +1 -1
- package/dist/src/coins/ofcHoodethTokens.js +93 -1
- package/dist/src/coins/polygonTokens.d.ts.map +1 -1
- package/dist/src/coins/polygonTokens.js +3 -2
- package/dist/src/networks.d.ts.map +1 -1
- package/dist/src/networks.js +3 -3
- package/dist/src/utxo.d.ts +3 -1
- package/dist/src/utxo.d.ts.map +1 -1
- package/dist/src/utxo.js +22 -5
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
package/dist/src/utxo.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ interface UtxoConstructorOptions {
|
|
|
11
11
|
prefix?: string;
|
|
12
12
|
suffix?: string;
|
|
13
13
|
primaryKeyCurve: KeyCurve;
|
|
14
|
+
otherSupportedKeyCurves?: KeyCurve[];
|
|
14
15
|
}
|
|
15
16
|
export declare class UtxoCoin extends BaseCoin {
|
|
16
17
|
static readonly DEFAULT_FEATURES: CoinFeature[];
|
|
@@ -34,10 +35,11 @@ export declare class UtxoCoin extends BaseCoin {
|
|
|
34
35
|
* @param prefix? Optional coin prefix. Defaults to empty string
|
|
35
36
|
* @param suffix? Optional coin suffix. Defaults to coin name.
|
|
36
37
|
* @param primaryKeyCurve The elliptic curve for this chain/token
|
|
38
|
+
* @param otherSupportedKeyCurves? Additional elliptic curves this coin supports, e.g. for shielded pools
|
|
37
39
|
*/
|
|
38
40
|
export declare function utxo(id: string, name: string, fullName: string, network: UtxoNetwork, asset: UnderlyingAsset, baseUnit: BaseUnit, features?: CoinFeature[], prefix?: string, suffix?: string,
|
|
39
41
|
/** All UTXOs BitGo supports are SECP256K1 **/
|
|
40
|
-
primaryKeyCurve?: KeyCurve): Readonly<UtxoCoin>;
|
|
42
|
+
primaryKeyCurve?: KeyCurve, otherSupportedKeyCurves?: KeyCurve[]): Readonly<UtxoCoin>;
|
|
41
43
|
export declare const utxoCoins: Readonly<BaseCoin>[];
|
|
42
44
|
export {};
|
|
43
45
|
//# sourceMappingURL=utxo.d.ts.map
|
package/dist/src/utxo.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utxo.d.ts","sourceRoot":"","sources":["../../src/utxo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAY,QAAQ,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9F,OAAO,EAAY,WAAW,EAAE,MAAM,YAAY,CAAC;AAEnD,UAAU,sBAAsB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"utxo.d.ts","sourceRoot":"","sources":["../../src/utxo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAY,QAAQ,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9F,OAAO,EAAY,WAAW,EAAE,MAAM,YAAY,CAAC;AAEnD,UAAU,sBAAsB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,QAAQ,CAAC;IAC1B,uBAAuB,CAAC,EAAE,QAAQ,EAAE,CAAC;CACtC;AAED,qBAAa,QAAS,SAAQ,QAAQ;IACpC,gBAAuB,gBAAgB,gBAWrC;IAEF;;OAEG;IACH,SAAgB,OAAO,EAAE,WAAW,CAAC;gBAEzB,OAAO,EAAE,sBAAsB;IAW3C,SAAS,CAAC,kBAAkB,IAAI,GAAG,CAAC,WAAW,CAAC;IAIhD,SAAS,CAAC,gBAAgB,IAAI,GAAG,CAAC,WAAW,CAAC;CAG/C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,CAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,GAAE,WAAW,EAA8B,EACnD,MAAM,SAAK,EACX,MAAM,GAAE,MAA2B;AACnC,8CAA8C;AAC9C,eAAe,GAAE,QAA6B,EAC9C,uBAAuB,CAAC,EAAE,QAAQ,EAAE,sBAiBrC;AAkED,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EA6NzC,CAAC"}
|
package/dist/src/utxo.js
CHANGED
|
@@ -46,10 +46,11 @@ UtxoCoin.DEFAULT_FEATURES = [
|
|
|
46
46
|
* @param prefix? Optional coin prefix. Defaults to empty string
|
|
47
47
|
* @param suffix? Optional coin suffix. Defaults to coin name.
|
|
48
48
|
* @param primaryKeyCurve The elliptic curve for this chain/token
|
|
49
|
+
* @param otherSupportedKeyCurves? Additional elliptic curves this coin supports, e.g. for shielded pools
|
|
49
50
|
*/
|
|
50
51
|
function utxo(id, name, fullName, network, asset, baseUnit, features = UtxoCoin.DEFAULT_FEATURES, prefix = '', suffix = name.toUpperCase(),
|
|
51
52
|
/** All UTXOs BitGo supports are SECP256K1 **/
|
|
52
|
-
primaryKeyCurve = base_1.KeyCurve.Secp256k1) {
|
|
53
|
+
primaryKeyCurve = base_1.KeyCurve.Secp256k1, otherSupportedKeyCurves) {
|
|
53
54
|
return Object.freeze(new UtxoCoin({
|
|
54
55
|
id,
|
|
55
56
|
name,
|
|
@@ -60,6 +61,7 @@ primaryKeyCurve = base_1.KeyCurve.Secp256k1) {
|
|
|
60
61
|
features,
|
|
61
62
|
asset,
|
|
62
63
|
primaryKeyCurve,
|
|
64
|
+
otherSupportedKeyCurves,
|
|
63
65
|
baseUnit,
|
|
64
66
|
}));
|
|
65
67
|
}
|
|
@@ -110,7 +112,22 @@ const DOGE_FEATURES = [
|
|
|
110
112
|
];
|
|
111
113
|
const DASH_FEATURES = [...UtxoCoin.DEFAULT_FEATURES, base_1.CoinFeature.CUSTODY_BITGO_FRANKFURT, base_1.CoinFeature.BULK_TRANSACTION];
|
|
112
114
|
const TDASH_FEATURES = [...UtxoCoin.DEFAULT_FEATURES, base_1.CoinFeature.BULK_TRANSACTION];
|
|
113
|
-
const ZEC_FEATURES = [
|
|
115
|
+
const ZEC_FEATURES = [
|
|
116
|
+
...UtxoCoin.DEFAULT_FEATURES,
|
|
117
|
+
base_1.CoinFeature.BULK_TRANSACTION,
|
|
118
|
+
base_1.CoinFeature.CUSTODY_BITGO_FRANKFURT,
|
|
119
|
+
/**
|
|
120
|
+
* Zcash also supports a RedPallas/Orchard shielded pool, selectable via
|
|
121
|
+
* `otherSupportedKeyCurves` (see the `zec`/`tzec` entries below). TSS/TSS_COLD/MPCV2 are added
|
|
122
|
+
* here (alongside the existing MULTISIG/MULTISIG_COLD used for transparent addresses) so
|
|
123
|
+
* downstream OVC/BitGo tooling can treat this coin as TSS-eligible for shielded DKG, without
|
|
124
|
+
* touching the existing transparent multisig flows which remain keyed on `primaryKeyCurve`
|
|
125
|
+
* (secp256k1).
|
|
126
|
+
*/
|
|
127
|
+
base_1.CoinFeature.TSS,
|
|
128
|
+
base_1.CoinFeature.TSS_COLD,
|
|
129
|
+
base_1.CoinFeature.MPCV2,
|
|
130
|
+
];
|
|
114
131
|
const PEARL_FEATURES = [...UtxoCoin.DEFAULT_FEATURES, base_1.CoinFeature.BULK_TRANSACTION, base_1.CoinFeature.DISTRIBUTED_CUSTODY];
|
|
115
132
|
exports.utxoCoins = [
|
|
116
133
|
utxo('8d6e08d5-399f-414f-8430-6ceca1798cbf', 'bch', 'Bitcoin Cash', networks_1.Networks.main.bitcoinCash, base_1.UnderlyingAsset.BCH, base_1.BaseUnit.BTC, BCH_FEATURES),
|
|
@@ -134,11 +151,11 @@ exports.utxoCoins = [
|
|
|
134
151
|
base_1.CoinFeature.CUSTODY_BITGO_MENA_FZE,
|
|
135
152
|
].includes(feature))),
|
|
136
153
|
utxo('5950d78f-e8dd-457a-ab5d-310e6b476bb1', 'tdash', 'Testnet Dash', networks_1.Networks.test.dash, base_1.UnderlyingAsset.DASH, base_1.BaseUnit.DASH, TDASH_FEATURES),
|
|
137
|
-
utxo('508f6b53-1e6e-41fd-b541-b2498b7c4b61', 'zec', 'ZCash', networks_1.Networks.main.zCash, base_1.UnderlyingAsset.ZEC, base_1.BaseUnit.ZEC, ZEC_FEATURES),
|
|
138
|
-
utxo('549a4499-387c-42d3-9048-c01d6724d98a', 'tzec', 'Testnet ZCash', networks_1.Networks.test.zCash, base_1.UnderlyingAsset.ZEC, base_1.BaseUnit.ZEC, ZEC_FEATURES),
|
|
154
|
+
utxo('508f6b53-1e6e-41fd-b541-b2498b7c4b61', 'zec', 'ZCash', networks_1.Networks.main.zCash, base_1.UnderlyingAsset.ZEC, base_1.BaseUnit.ZEC, ZEC_FEATURES, '', 'ZEC', base_1.KeyCurve.Secp256k1, [base_1.KeyCurve.Pallas]),
|
|
155
|
+
utxo('549a4499-387c-42d3-9048-c01d6724d98a', 'tzec', 'Testnet ZCash', networks_1.Networks.test.zCash, base_1.UnderlyingAsset.ZEC, base_1.BaseUnit.ZEC, ZEC_FEATURES, '', 'TZEC', base_1.KeyCurve.Secp256k1, [base_1.KeyCurve.Pallas]),
|
|
139
156
|
utxo('4518a5b9-00d3-476e-bc40-d3f87eb82250', 'pearl', 'Pearl', networks_1.Networks.main.pearl, base_1.UnderlyingAsset.PEARL, base_1.BaseUnit.BTC, PEARL_FEATURES),
|
|
140
157
|
utxo('5d88723a-7e86-43c7-9fb1-f4cee7abc48f', 'tpearl', 'Testnet Pearl', networks_1.Networks.test.pearl, base_1.UnderlyingAsset.PEARL, base_1.BaseUnit.BTC, PEARL_FEATURES),
|
|
141
158
|
utxo('c93a9160-458f-4a31-bea0-4a93ae8b1d2d', 'doge', 'Dogecoin', networks_1.Networks.main.dogecoin, base_1.UnderlyingAsset.DOGE, base_1.BaseUnit.BTC, DOGE_FEATURES),
|
|
142
159
|
utxo('7a1597e8-fd8e-4b68-8086-f9159e37e0ce', 'tdoge', 'Testnet Dogecoin', networks_1.Networks.test.dogecoin, base_1.UnderlyingAsset.DOGE, base_1.BaseUnit.BTC, DOGE_FEATURES),
|
|
143
160
|
];
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXR4by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dHhvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW9FQSxvQkEyQkM7QUEvRkQsaUNBQThGO0FBQzlGLHlDQUFtRDtBQWVuRCxNQUFhLFFBQVMsU0FBUSxlQUFRO0lBbUJwQyxZQUFZLE9BQStCO1FBQ3pDLEtBQUssQ0FBQztZQUNKLEdBQUcsT0FBTztZQUNWLElBQUksRUFBRSxlQUFRLENBQUMsTUFBTTtZQUNyQixPQUFPLEVBQUUsS0FBSztZQUNkLGFBQWEsRUFBRSxDQUFDO1NBQ2pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUNqQyxDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQyxrQkFBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsa0JBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7O0FBcENILDRCQXFDQztBQXBDd0IseUJBQWdCLEdBQUc7SUFDeEMsa0JBQVcsQ0FBQyxhQUFhO0lBQ3pCLGtCQUFXLENBQUMscUJBQXFCO0lBQ2pDLGtCQUFXLENBQUMsT0FBTztJQUNuQixrQkFBVyxDQUFDLG1CQUFtQjtJQUMvQixrQkFBVyxDQUFDLHNCQUFzQjtJQUNsQyxrQkFBVyxDQUFDLDhCQUE4QjtJQUMxQyxrQkFBVyxDQUFDLG1CQUFtQjtJQUMvQixrQkFBVyxDQUFDLGFBQWE7SUFDekIsa0JBQVcsQ0FBQyxRQUFRO0lBQ3BCLGtCQUFXLENBQUMsS0FBSztDQUNsQixDQUFDO0FBMkJKOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQWdCLElBQUksQ0FDbEIsRUFBVSxFQUNWLElBQVksRUFDWixRQUFnQixFQUNoQixPQUFvQixFQUNwQixLQUFzQixF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QUssRUFDTCxPQUFPLEVBQ1AsbUJBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUNuQixzQkFBZSxDQUFDLEdBQUcsRUFDbkIsZUFBUSxDQUFDLEdBQUcsRUFDWixZQUFZLENBQ2I7SUFDRCxJQUFJLENBQ0Ysc0NBQXNDLEVBQ3RDLE1BQU0sRUFDTixlQUFlLEVBQ2YsbUJBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUNuQixzQkFBZSxDQUFDLEdBQUcsRUFDbkIsZUFBUSxDQUFDLEdBQUcsRUFDWixZQUFZLENBQ2I7SUFDRCxJQUFJLENBQ0Ysc0NBQXNDLEVBQ3RDLE9BQU8sRUFDUCxPQUFPLEVBQ1AsbUJBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUNuQixzQkFBZSxDQUFDLEtBQUssRUFDckIsZUFBUSxDQUFDLEdBQUcsRUFDWixjQUFjLENBQ2Y7SUFDRCxJQUFJLENBQ0Ysc0NBQXNDLEVBQ3RDLFFBQVEsRUFDUixlQUFlLEVBQ2YsbUJBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUNuQixzQkFBZSxDQUFDLEtBQUssRUFDckIsZUFBUSxDQUFDLEdBQUcsRUFDWixjQUFjLENBQ2Y7SUFDRCxJQUFJLENBQ0Ysc0NBQXNDLEVBQ3RDLE1BQU0sRUFDTixVQUFVLEVBQ1YsbUJBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUN0QixzQkFBZSxDQUFDLElBQUksRUFDcEIsZUFBUSxDQUFDLEdBQUcsRUFDWixhQUFhLENBQ2Q7SUFDRCxJQUFJLENBQ0Ysc0NBQXNDLEVBQ3RDLE9BQU8sRUFDUCxrQkFBa0IsRUFDbEIsbUJBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUN0QixzQkFBZSxDQUFDLElBQUksRUFDcEIsZUFBUSxDQUFDLEdBQUcsRUFDWixhQUFhLENBQ2Q7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4sIEJhc2VVbml0LCBDb2luRmVhdHVyZSwgQ29pbktpbmQsIEtleUN1cnZlLCBVbmRlcmx5aW5nQXNzZXQgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgTmV0d29ya3MsIFV0eG9OZXR3b3JrIH0gZnJvbSAnLi9uZXR3b3Jrcyc7XG5cbmludGVyZmFjZSBVdHhvQ29uc3RydWN0b3JPcHRpb25zIHtcbiAgaWQ6IHN0cmluZztcbiAgZnVsbE5hbWU6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBuZXR3b3JrOiBVdHhvTmV0d29yaztcbiAgZmVhdHVyZXM6IENvaW5GZWF0dXJlW107XG4gIGFzc2V0OiBVbmRlcmx5aW5nQXNzZXQ7XG4gIGJhc2VVbml0OiBCYXNlVW5pdDtcbiAgcHJlZml4Pzogc3RyaW5nO1xuICBzdWZmaXg/OiBzdHJpbmc7XG4gIHByaW1hcnlLZXlDdXJ2ZTogS2V5Q3VydmU7XG59XG5cbmV4cG9ydCBjbGFzcyBVdHhvQ29pbiBleHRlbmRzIEJhc2VDb2luIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0ZFQVRVUkVTID0gW1xuICAgIENvaW5GZWF0dXJlLlVOU1BFTlRfTU9ERUwsXG4gICAgQ29pbkZlYXR1cmUuQ0hJTERfUEFZU19GT1JfUEFSRU5ULFxuICAgIENvaW5GZWF0dXJlLkNVU1RPRFksXG4gICAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19UUlVTVCxcbiAgICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX01FTkFfRlpFLFxuICAgIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fQ1VTVE9EWV9NRU5BX0ZaRSxcbiAgICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0lORElBLFxuICAgIENvaW5GZWF0dXJlLk1VTFRJU0lHX0NPTEQsXG4gICAgQ29pbkZlYXR1cmUuTVVMVElTSUcsXG4gICAgQ29pbkZlYXR1cmUuUEFZR08sXG4gIF07XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgZmllbGRzIGZvciB1dHhvIGNvaW5zXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmV0d29yazogVXR4b05ldHdvcms7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogVXR4b0NvbnN0cnVjdG9yT3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBraW5kOiBDb2luS2luZC5DUllQVE8sXG4gICAgICBpc1Rva2VuOiBmYWxzZSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IDgsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5ldHdvcmsgPSBvcHRpb25zLm5ldHdvcms7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGlzYWxsb3dlZEZlYXR1cmVzKCk6IFNldDxDb2luRmVhdHVyZT4ge1xuICAgIHJldHVybiBuZXcgU2V0KFtDb2luRmVhdHVyZS5BQ0NPVU5UX01PREVMXSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVxdWlyZWRGZWF0dXJlcygpOiBTZXQ8Q29pbkZlYXR1cmU+IHtcbiAgICByZXR1cm4gbmV3IFNldChbQ29pbkZlYXR1cmUuVU5TUEVOVF9NT0RFTF0pO1xuICB9XG59XG5cbi8qKlxuICogRmFjdG9yeSBmdW5jdGlvbiBmb3IgdXR4byBjb2luIGluc3RhbmNlcy5cbiAqXG4gKiBAcGFyYW0gaWQgdXVpZCB2NCBvZiB0aGUgY29pblxuICogQHBhcmFtIG5hbWUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvaW5cbiAqIEBwYXJhbSBmdWxsTmFtZSBDb21wbGV0ZSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHRoZSBjb2luXG4gKiBAcGFyYW0gbmV0d29yayBOZXR3b3JrIG9iamVjdCBmb3IgdGhpcyBjb2luXG4gKiBAcGFyYW0gYXNzZXQgQXNzZXQgd2hpY2ggdGhpcyBjb2luIHJlcHJlc2VudHMuIFRoaXMgaXMgdGhlIHNhbWUgZm9yIGJvdGggbWFpbm5ldCBhbmQgdGVzdG5ldCB2YXJpYW50cyBvZiBhIGNvaW4uXG4gKiBAcGFyYW0gZmVhdHVyZXM/IEZlYXR1cmVzIG9mIHRoaXMgY29pbi4gRGVmYXVsdHMgdG8gdGhlIERFRkFVTFRfRkVBVFVSRVMgZGVmaW5lZCBpbiBgVXR4b0NvaW5gXG4gKiBAcGFyYW0gcHJlZml4PyBPcHRpb25hbCBjb2luIHByZWZpeC4gRGVmYXVsdHMgdG8gZW1wdHkgc3RyaW5nXG4gKiBAcGFyYW0gc3VmZml4PyBPcHRpb25hbCBjb2luIHN1ZmZpeC4gRGVmYXVsdHMgdG8gY29pbiBuYW1lLlxuICogQHBhcmFtIHByaW1hcnlLZXlDdXJ2ZSBUaGUgZWxsaXB0aWMgY3VydmUgZm9yIHRoaXMgY2hhaW4vdG9rZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHV0eG8oXG4gIGlkOiBzdHJpbmcsXG4gIG5hbWU6IHN0cmluZyxcbiAgZnVsbE5hbWU6IHN0cmluZyxcbiAgbmV0d29yazogVXR4b05ldHdvcmssXG4gIGFzc2V0OiBVbmRlcmx5aW5nQXNzZXQsXG4gIGJhc2VVbml0OiBCYXNlVW5pdCxcbiAgZmVhdHVyZXM6IENvaW5GZWF0dXJlW10gPSBVdHhvQ29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBwcmVmaXggPSAnJyxcbiAgc3VmZml4OiBzdHJpbmcgPSBuYW1lLnRvVXBwZXJDYXNlKCksXG4gIC8qKiBBbGwgVVRYT3MgQml0R28gc3VwcG9ydHMgYXJlIFNFQ1AyNTZLMSAqKi9cbiAgcHJpbWFyeUtleUN1cnZlOiBLZXlDdXJ2ZSA9IEtleUN1cnZlLlNlY3AyNTZrMVxuKSB7XG4gIHJldHVybiBPYmplY3QuZnJlZXplKFxuICAgIG5ldyBVdHhvQ29pbih7XG4gICAgICBpZCxcbiAgICAgIG5hbWUsXG4gICAgICBmdWxsTmFtZSxcbiAgICAgIG5ldHdvcmssXG4gICAgICBwcmVmaXgsXG4gICAgICBzdWZmaXgsXG4gICAgICBmZWF0dXJlcyxcbiAgICAgIGFzc2V0LFxuICAgICAgcHJpbWFyeUtleUN1cnZlLFxuICAgICAgYmFzZVVuaXQsXG4gICAgfSlcbiAgKTtcbn1cblxuY29uc3QgQkNIX0ZFQVRVUkVTID0gW1xuICAuLi5VdHhvQ29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBDb2luRmVhdHVyZS5CVUxLX1RSQU5TQUNUSU9OLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0dFUk1BTlksXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fTkVXX1lPUkssXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fRlJBTktGVVJULFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX1NJTkdBUE9SRSxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CVUxLX1RSQU5TQUNUSU9OLFxuXTtcbmNvbnN0IEJUQ19GRUFUVVJFUyA9IFtcbiAgLi4uVXR4b0NvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19HRVJNQU5ZLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX05FV19ZT1JLLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0ZSQU5LRlVSVCxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19TSVNURVJfVFJVU1RfT05FLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0tPUkVBLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0VVUk9QRV9BUFMsXG4gIENvaW5GZWF0dXJlLkJVTEtfVFJBTlNBQ1RJT04sXG4gIENvaW5GZWF0dXJlLkRJU1RSSUJVVEVEX0NVU1RPRFksXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fU0lOR0FQT1JFLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX1NXSVRaRVJMQU5ELFxuICBDb2luRmVhdHVyZS5TVFVDS19UUkFOU0FDVElPTl9NQU5BR0VNRU5UX09OQ0hBSU4sXG4gIENvaW5GZWF0dXJlLlNUQUtJTkcsXG5dO1xuY29uc3QgQlRHX0ZFQVRVUkVTID0gW1xuICAuLi5VdHhvQ29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0dFUk1BTlksXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fRlJBTktGVVJULFxuXTtcbmNvbnN0IExUQ19GRUFUVVJFUyA9IFtcbiAgLi4uVXR4b0NvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19HRVJNQU5ZLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX05FV19ZT1JLLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0ZSQU5LRlVSVCxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19TSU5HQVBPUkUsXG4gIENvaW5GZWF0dXJlLkJVTEtfVFJBTlNBQ1RJT04sXG5dO1xuY29uc3QgRE9HRV9GRUFUVVJFUyA9IFtcbiAgLi4uVXR4b0NvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19HRVJNQU5ZLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0ZSQU5LRlVSVCxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19TSU5HQVBPUkUsXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fTkVXX1lPUkssXG4gIENvaW5GZWF0dXJlLkJVTEtfVFJBTlNBQ1RJT04sXG5dO1xuY29uc3QgREFTSF9GRUFUVVJFUyA9IFsuLi5VdHhvQ29pbi5ERUZBVUxUX0ZFQVRVUkVTLCBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0ZSQU5LRlVSVCwgQ29pbkZlYXR1cmUuQlVMS19UUkFOU0FDVElPTl07XG5jb25zdCBUREFTSF9GRUFUVVJFUyA9IFsuLi5VdHhvQ29pbi5ERUZBVUxUX0ZFQVRVUkVTLCBDb2luRmVhdHVyZS5CVUxLX1RSQU5TQUNUSU9OXTtcbmNvbnN0IFpFQ19GRUFUVVJFUyA9IFsuLi5VdHhvQ29pbi5ERUZBVUxUX0ZFQVRVUkVTLCBDb2luRmVhdHVyZS5CVUxLX1RSQU5TQUNUSU9OLCBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0ZSQU5LRlVSVF07XG5jb25zdCBQRUFSTF9GRUFUVVJFUyA9IFsuLi5VdHhvQ29pbi5ERUZBVUxUX0ZFQVRVUkVTLCBDb2luRmVhdHVyZS5CVUxLX1RSQU5TQUNUSU9OLCBDb2luRmVhdHVyZS5ESVNUUklCVVRFRF9DVVNUT0RZXTtcbmV4cG9ydCBjb25zdCB1dHhvQ29pbnM6IFJlYWRvbmx5PEJhc2VDb2luPltdID0gW1xuICB1dHhvKFxuICAgICc4ZDZlMDhkNS0zOTlmLTQxNGYtODQzMC02Y2VjYTE3OThjYmYnLFxuICAgICdiY2gnLFxuICAgICdCaXRjb2luIENhc2gnLFxuICAgIE5ldHdvcmtzLm1haW4uYml0Y29pbkNhc2gsXG4gICAgVW5kZXJseWluZ0Fzc2V0LkJDSCxcbiAgICBCYXNlVW5pdC5CVEMsXG4gICAgQkNIX0ZFQVRVUkVTXG4gICksXG4gIHV0eG8oXG4gICAgJ2FhZTZmYWZjLTUwOTEtNGIxMC05YTExLWFhNmNlZmVhMjgwNScsXG4gICAgJ3RiY2gnLFxuICAgICdUZXN0bmV0IEJpdGNvaW4gQ2FzaCcsXG4gICAgTmV0d29ya3MudGVzdC5iaXRjb2luQ2FzaCxcbiAgICBVbmRlcmx5aW5nQXNzZXQuQkNILFxuICAgIEJhc2VVbml0LkJUQyxcbiAgICBCQ0hfRkVBVFVSRVNcbiAgKSxcbiAgdXR4byhcbiAgICAnOTQxNTg3Y2UtMWM3YS00MzA1LWI5MDgtMTU0NTVkMTVlOTYxJyxcbiAgICAnYmNoYScsXG4gICAgJ0VDYXNoJyxcbiAgICBOZXR3b3Jrcy5tYWluLmVDYXNoLFxuICAgIFVuZGVybHlpbmdBc3NldC5CQ0hBLFxuICAgIEJhc2VVbml0LkJUQ1xuICApLFxuICB1dHhvKFxuICAgICdhZjhkZTFlMC0zZTMzLTQ3YmYtOTRkMy1mYjNjMmJlYmVhZDInLFxuICAgICd0YmNoYScsXG4gICAgJ1Rlc3RuZXQgRUNhc2gnLFxuICAgIE5ldHdvcmtzLnRlc3QuZUNhc2gsXG4gICAgVW5kZXJseWluZ0Fzc2V0LkJDSEEsXG4gICAgQmFzZVVuaXQuQlRDXG4gICksXG4gIHV0eG8oXG4gICAgJ2Y3MjhjZmM3LWQwY2YtNGY5OS1iY2EwLWQyNTI3M2U2NWZjZicsXG4gICAgJ2JzdicsXG4gICAgJ0JpdGNvaW4gU1YnLFxuICAgIE5ldHdvcmtzLm1haW4uYml0Y29pblNWLFxuICAgIFVuZGVybHlpbmdBc3NldC5CU1YsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIFtDb2luRmVhdHVyZS5ERVBSRUNBVEVELCAuLi5VdHhvQ29pbi5ERUZBVUxUX0ZFQVRVUkVTXVxuICApLFxuICB1dHhvKFxuICAgICc3Y2I4MTUxOC04NWQ3LTQwMGYtOTYwZS03YmMwMGIzYmZhNjInLFxuICAgICd0YnN2JyxcbiAgICAnVGVzdG5ldCBCaXRjb2luIFNWJyxcbiAgICBOZXR3b3Jrcy50ZXN0LmJpdGNvaW5TVixcbiAgICBVbmRlcmx5aW5nQXNzZXQuQlNWLFxuICAgIEJhc2VVbml0LkJUQyxcbiAgICBbQ29pbkZlYXR1cmUuREVQUkVDQVRFRCwgLi4uVXR4b0NvaW4uREVGQVVMVF9GRUFUVVJFU11cbiAgKSxcbiAgdXR4byhcbiAgICAnNWMxNjkxYzUtYzljYy00OWVkLWFiZTAtYzQzM2RhYjJlZGFhJyxcbiAgICAnYnRjJyxcbiAgICAnQml0Y29pbicsXG4gICAgTmV0d29ya3MubWFpbi5iaXRjb2luLFxuICAgIFVuZGVybHlpbmdBc3NldC5CVEMsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIEJUQ19GRUFUVVJFU1xuICApLFxuICB1dHhvKFxuICAgICdjZGU3NTU5ZC1hNTM2LTRkMTItOGRlNC05MGJhYTA5ZjkwYmQnLFxuICAgICd0YnRjJyxcbiAgICAnVGVzdG5ldCBCaXRjb2luJyxcbiAgICBOZXR3b3Jrcy50ZXN0LmJpdGNvaW4sXG4gICAgVW5kZXJseWluZ0Fzc2V0LkJUQyxcbiAgICBCYXNlVW5pdC5CVEMsXG4gICAgQlRDX0ZFQVRVUkVTLmZpbHRlcigoZikgPT4gZiAhPT0gQ29pbkZlYXR1cmUuU1RBS0lORylcbiAgKSxcbiAgdXR4byhcbiAgICAnYTBkNTNkYzktMmRjYy00ZWJiLWEyZDQtNTE5ODNmZTIwZGE2JyxcbiAgICAndGJ0Y3NpZycsXG4gICAgJ1B1YmxpYyBTaWduZXQgQml0Y29pbicsXG4gICAgTmV0d29ya3MudGVzdC5iaXRjb2luUHVibGljU2lnbmV0LFxuICAgIFVuZGVybHlpbmdBc3NldC5CVEMsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIEJUQ19GRUFUVVJFU1xuICApLFxuICB1dHhvKFxuICAgICdmNzZjZWMzZi03YWVmLTQ3M2QtYWY1ZC00YzQ3ZGQ0MGRmYTgnLFxuICAgICd0YnRjNCcsXG4gICAgJ1Rlc3RuZXQ0IEJpdGNvaW4nLFxuICAgIE5ldHdvcmtzLnRlc3QuYml0Y29pblRlc3RuZXQ0LFxuICAgIFVuZGVybHlpbmdBc3NldC5CVEMsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIEJUQ19GRUFUVVJFU1xuICApLFxuICB1dHhvKFxuICAgICc3MjI1MjJkYy1hNjEzLTRiZmYtYTFkMS0xODNlYmU1MTM4YWUnLFxuICAgICd0YnRjYmdzaWcnLFxuICAgICdCaXRHbyBTaWduZXQgQml0Y29pbicsXG4gICAgTmV0d29ya3MudGVzdC5iaXRjb2luQml0R29TaWduZXQsXG4gICAgVW5kZXJseWluZ0Fzc2V0LkJUQyxcbiAgICBCYXNlVW5pdC5CVEMsXG4gICAgQlRDX0ZFQVRVUkVTXG4gICksXG4gIHV0eG8oXG4gICAgJzhmZWIxMTBkLTBkNjgtNDRjZS1hZTk3LWI4YzMwZWM4NzBhOScsXG4gICAgJ2J0ZycsXG4gICAgJ0JpdGNvaW4gR29sZCcsXG4gICAgTmV0d29ya3MubWFpbi5iaXRjb2luR29sZCxcbiAgICBVbmRlcmx5aW5nQXNzZXQuQlRHLFxuICAgIEJhc2VVbml0LkJUQyxcbiAgICBCVEdfRkVBVFVSRVMuZmlsdGVyKChmKSA9PiBmICE9PSBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX1NJTkdBUE9SRSlcbiAgKSxcbiAgdXR4byhcbiAgICAnNjMzMjQ2ZjItYWYyMS00MWI4LThiOWUtYmE5YWUyNWQzODZmJyxcbiAgICAndGJ0ZycsXG4gICAgJ1Rlc3RuZXQgQml0Y29pbiBHb2xkJyxcbiAgICBOZXR3b3Jrcy50ZXN0LmJpdGNvaW5Hb2xkLFxuICAgIFVuZGVybHlpbmdBc3NldC5CVEcsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIEJhc2VDb2luLmdldEZlYXR1cmVzQnlUeXBlRXhjbHVkaW5nKFtDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX01FTkFfRlpFLCBDb2luRmVhdHVyZS5NVUxUSVNJR19DT0xEXSwgQlRHX0ZFQVRVUkVTKVxuICApLFxuICB1dHhvKFxuICAgICc5YzgwOTdmMS01ZDJjLTRhNjItYTk0Yy05NmMyNzFjMGU1ZTAnLFxuICAgICdsdGMnLFxuICAgICdMaXRlY29pbicsXG4gICAgTmV0d29ya3MubWFpbi5saXRlY29pbixcbiAgICBVbmRlcmx5aW5nQXNzZXQuTFRDLFxuICAgIEJhc2VVbml0LkxUQyxcbiAgICBMVENfRkVBVFVSRVNcbiAgKSxcbiAgdXR4byhcbiAgICAnMWFjYTMyYzgtYTNlNS00MmViLTgyZGYtNGMyNjNkOGJmYzY4JyxcbiAgICAndGx0YycsXG4gICAgJ1Rlc3RuZXQgTGl0ZWNvaW4nLFxuICAgIE5ldHdvcmtzLnRlc3QubGl0ZWNvaW4sXG4gICAgVW5kZXJseWluZ0Fzc2V0LkxUQyxcbiAgICBCYXNlVW5pdC5MVEMsXG4gICAgTFRDX0ZFQVRVUkVTXG4gICksXG4gIHV0eG8oXG4gICAgJzA3MzliZTZhLWM3MmUtNDY4ZC05NDY0LWNhNTYwMTk2NTcwOCcsXG4gICAgJ2Rhc2gnLFxuICAgICdEYXNoJyxcbiAgICBOZXR3b3Jrcy5tYWluLmRhc2gsXG4gICAgVW5kZXJseWluZ0Fzc2V0LkRBU0gsXG4gICAgQmFzZVVuaXQuREFTSCxcbiAgICBEQVNIX0ZFQVRVUkVTLmZpbHRlcihcbiAgICAgIChmZWF0dXJlKSA9PlxuICAgICAgICAhW1xuICAgICAgICAgIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fU0lOR0FQT1JFLFxuICAgICAgICAgIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fQ1VTVE9EWV9NRU5BX0ZaRSxcbiAgICAgICAgICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX01FTkFfRlpFLFxuICAgICAgICBdLmluY2x1ZGVzKGZlYXR1cmUpXG4gICAgKVxuICApLFxuICB1dHhvKFxuICAgICc1OTUwZDc4Zi1lOGRkLTQ1N2EtYWI1ZC0zMTBlNmI0NzZiYjEnLFxuICAgICd0ZGFzaCcsXG4gICAgJ1Rlc3RuZXQgRGFzaCcsXG4gICAgTmV0d29ya3MudGVzdC5kYXNoLFxuICAgIFVuZGVybHlpbmdBc3NldC5EQVNILFxuICAgIEJhc2VVbml0LkRBU0gsXG4gICAgVERBU0hfRkVBVFVSRVNcbiAgKSxcbiAgdXR4byhcbiAgICAnNTA4ZjZiNTMtMWU2ZS00MWZkLWI1NDEtYjI0OThiN2M0YjYxJyxcbiAgICAnemVjJyxcbiAgICAnWkNhc2gnLFxuICAgIE5ldHdvcmtzLm1haW4uekNhc2gsXG4gICAgVW5kZXJseWluZ0Fzc2V0LlpFQyxcbiAgICBCYXNlVW5pdC5aRUMsXG4gICAgWkVDX0ZFQVRVUkVTXG4gICksXG4gIHV0eG8oXG4gICAgJzU0OWE0NDk5LTM4N2MtNDJkMy05MDQ4LWMwMWQ2NzI0ZDk4YScsXG4gICAgJ3R6ZWMnLFxuICAgICdUZXN0bmV0IFpDYXNoJyxcbiAgICBOZXR3b3Jrcy50ZXN0LnpDYXNoLFxuICAgIFVuZGVybHlpbmdBc3NldC5aRUMsXG4gICAgQmFzZVVuaXQuWkVDLFxuICAgIFpFQ19GRUFUVVJFU1xuICApLFxuICB1dHhvKFxuICAgICc0NTE4YTViOS0wMGQzLTQ3NmUtYmM0MC1kM2Y4N2ViODIyNTAnLFxuICAgICdwZWFybCcsXG4gICAgJ1BlYXJsJyxcbiAgICBOZXR3b3Jrcy5tYWluLnBlYXJsLFxuICAgIFVuZGVybHlpbmdBc3NldC5QRUFSTCxcbiAgICBCYXNlVW5pdC5CVEMsXG4gICAgUEVBUkxfRkVBVFVSRVNcbiAgKSxcbiAgdXR4byhcbiAgICAnNWQ4ODcyM2EtN2U4Ni00M2M3LTlmYjEtZjRjZWU3YWJjNDhmJyxcbiAgICAndHBlYXJsJyxcbiAgICAnVGVzdG5ldCBQZWFybCcsXG4gICAgTmV0d29ya3MudGVzdC5wZWFybCxcbiAgICBVbmRlcmx5aW5nQXNzZXQuUEVBUkwsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIFBFQVJMX0ZFQVRVUkVTXG4gICksXG4gIHV0eG8oXG4gICAgJ2M5M2E5MTYwLTQ1OGYtNGEzMS1iZWEwLTRhOTNhZThiMWQyZCcsXG4gICAgJ2RvZ2UnLFxuICAgICdEb2dlY29pbicsXG4gICAgTmV0d29ya3MubWFpbi5kb2dlY29pbixcbiAgICBVbmRlcmx5aW5nQXNzZXQuRE9HRSxcbiAgICBCYXNlVW5pdC5CVEMsXG4gICAgRE9HRV9GRUFUVVJFU1xuICApLFxuICB1dHhvKFxuICAgICc3YTE1OTdlOC1mZDhlLTRiNjgtODA4Ni1mOTE1OWUzN2UwY2UnLFxuICAgICd0ZG9nZScsXG4gICAgJ1Rlc3RuZXQgRG9nZWNvaW4nLFxuICAgIE5ldHdvcmtzLnRlc3QuZG9nZWNvaW4sXG4gICAgVW5kZXJseWluZ0Fzc2V0LkRPR0UsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIERPR0VfRkVBVFVSRVNcbiAgKSxcbl07XG4iXX0=
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXR4by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dHhvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXNFQSxvQkE2QkM7QUFuR0QsaUNBQThGO0FBQzlGLHlDQUFtRDtBQWdCbkQsTUFBYSxRQUFTLFNBQVEsZUFBUTtJQW1CcEMsWUFBWSxPQUErQjtRQUN6QyxLQUFLLENBQUM7WUFDSixHQUFHLE9BQU87WUFDVixJQUFJLEVBQUUsZUFBUSxDQUFDLE1BQU07WUFDckIsT0FBTyxFQUFFLEtBQUs7WUFDZCxhQUFhLEVBQUUsQ0FBQztTQUNqQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDakMsQ0FBQztJQUVTLGtCQUFrQjtRQUMxQixPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsa0JBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFUyxnQkFBZ0I7UUFDeEIsT0FBTyxJQUFJLEdBQUcsQ0FBQyxDQUFDLGtCQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDOztBQXBDSCw0QkFxQ0M7QUFwQ3dCLHlCQUFnQixHQUFHO0lBQ3hDLGtCQUFXLENBQUMsYUFBYTtJQUN6QixrQkFBVyxDQUFDLHFCQUFxQjtJQUNqQyxrQkFBVyxDQUFDLE9BQU87SUFDbkIsa0JBQVcsQ0FBQyxtQkFBbUI7SUFDL0Isa0JBQVcsQ0FBQyxzQkFBc0I7SUFDbEMsa0JBQVcsQ0FBQyw4QkFBOEI7SUFDMUMsa0JBQVcsQ0FBQyxtQkFBbUI7SUFDL0Isa0JBQVcsQ0FBQyxhQUFhO0lBQ3pCLGtCQUFXLENBQUMsUUFBUTtJQUNwQixrQkFBVyxDQUFDLEtBQUs7Q0FDbEIsQ0FBQztBQTJCSjs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsU0FBZ0IsSUFBSSxDQUNsQixFQUFVLEVBQ1YsSUFBWSxFQUNaLFFBQWdCLEVBQ2hCLE9BQW9CLEVBQ3BCLEtBQXNC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LHNDQUFzQyxFQUN0QyxPQUFPLEVBQ1Asa0JBQWtCLEVBQ2xCLG1CQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFDdEIsc0JBQWUsQ0FBQyxJQUFJLEVBQ3BCLGVBQVEsQ0FBQyxHQUFHLEVBQ1osYUFBYSxDQUNkO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luLCBCYXNlVW5pdCwgQ29pbkZlYXR1cmUsIENvaW5LaW5kLCBLZXlDdXJ2ZSwgVW5kZXJseWluZ0Fzc2V0IH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IE5ldHdvcmtzLCBVdHhvTmV0d29yayB9IGZyb20gJy4vbmV0d29ya3MnO1xuXG5pbnRlcmZhY2UgVXR4b0NvbnN0cnVjdG9yT3B0aW9ucyB7XG4gIGlkOiBzdHJpbmc7XG4gIGZ1bGxOYW1lOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgbmV0d29yazogVXR4b05ldHdvcms7XG4gIGZlYXR1cmVzOiBDb2luRmVhdHVyZVtdO1xuICBhc3NldDogVW5kZXJseWluZ0Fzc2V0O1xuICBiYXNlVW5pdDogQmFzZVVuaXQ7XG4gIHByZWZpeD86IHN0cmluZztcbiAgc3VmZml4Pzogc3RyaW5nO1xuICBwcmltYXJ5S2V5Q3VydmU6IEtleUN1cnZlO1xuICBvdGhlclN1cHBvcnRlZEtleUN1cnZlcz86IEtleUN1cnZlW107XG59XG5cbmV4cG9ydCBjbGFzcyBVdHhvQ29pbiBleHRlbmRzIEJhc2VDb2luIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0ZFQVRVUkVTID0gW1xuICAgIENvaW5GZWF0dXJlLlVOU1BFTlRfTU9ERUwsXG4gICAgQ29pbkZlYXR1cmUuQ0hJTERfUEFZU19GT1JfUEFSRU5ULFxuICAgIENvaW5GZWF0dXJlLkNVU1RPRFksXG4gICAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19UUlVTVCxcbiAgICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX01FTkFfRlpFLFxuICAgIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fQ1VTVE9EWV9NRU5BX0ZaRSxcbiAgICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0lORElBLFxuICAgIENvaW5GZWF0dXJlLk1VTFRJU0lHX0NPTEQsXG4gICAgQ29pbkZlYXR1cmUuTVVMVElTSUcsXG4gICAgQ29pbkZlYXR1cmUuUEFZR08sXG4gIF07XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgZmllbGRzIGZvciB1dHhvIGNvaW5zXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmV0d29yazogVXR4b05ldHdvcms7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogVXR4b0NvbnN0cnVjdG9yT3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBraW5kOiBDb2luS2luZC5DUllQVE8sXG4gICAgICBpc1Rva2VuOiBmYWxzZSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IDgsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5ldHdvcmsgPSBvcHRpb25zLm5ldHdvcms7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGlzYWxsb3dlZEZlYXR1cmVzKCk6IFNldDxDb2luRmVhdHVyZT4ge1xuICAgIHJldHVybiBuZXcgU2V0KFtDb2luRmVhdHVyZS5BQ0NPVU5UX01PREVMXSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVxdWlyZWRGZWF0dXJlcygpOiBTZXQ8Q29pbkZlYXR1cmU+IHtcbiAgICByZXR1cm4gbmV3IFNldChbQ29pbkZlYXR1cmUuVU5TUEVOVF9NT0RFTF0pO1xuICB9XG59XG5cbi8qKlxuICogRmFjdG9yeSBmdW5jdGlvbiBmb3IgdXR4byBjb2luIGluc3RhbmNlcy5cbiAqXG4gKiBAcGFyYW0gaWQgdXVpZCB2NCBvZiB0aGUgY29pblxuICogQHBhcmFtIG5hbWUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvaW5cbiAqIEBwYXJhbSBmdWxsTmFtZSBDb21wbGV0ZSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHRoZSBjb2luXG4gKiBAcGFyYW0gbmV0d29yayBOZXR3b3JrIG9iamVjdCBmb3IgdGhpcyBjb2luXG4gKiBAcGFyYW0gYXNzZXQgQXNzZXQgd2hpY2ggdGhpcyBjb2luIHJlcHJlc2VudHMuIFRoaXMgaXMgdGhlIHNhbWUgZm9yIGJvdGggbWFpbm5ldCBhbmQgdGVzdG5ldCB2YXJpYW50cyBvZiBhIGNvaW4uXG4gKiBAcGFyYW0gZmVhdHVyZXM/IEZlYXR1cmVzIG9mIHRoaXMgY29pbi4gRGVmYXVsdHMgdG8gdGhlIERFRkFVTFRfRkVBVFVSRVMgZGVmaW5lZCBpbiBgVXR4b0NvaW5gXG4gKiBAcGFyYW0gcHJlZml4PyBPcHRpb25hbCBjb2luIHByZWZpeC4gRGVmYXVsdHMgdG8gZW1wdHkgc3RyaW5nXG4gKiBAcGFyYW0gc3VmZml4PyBPcHRpb25hbCBjb2luIHN1ZmZpeC4gRGVmYXVsdHMgdG8gY29pbiBuYW1lLlxuICogQHBhcmFtIHByaW1hcnlLZXlDdXJ2ZSBUaGUgZWxsaXB0aWMgY3VydmUgZm9yIHRoaXMgY2hhaW4vdG9rZW5cbiAqIEBwYXJhbSBvdGhlclN1cHBvcnRlZEtleUN1cnZlcz8gQWRkaXRpb25hbCBlbGxpcHRpYyBjdXJ2ZXMgdGhpcyBjb2luIHN1cHBvcnRzLCBlLmcuIGZvciBzaGllbGRlZCBwb29sc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXR4byhcbiAgaWQ6IHN0cmluZyxcbiAgbmFtZTogc3RyaW5nLFxuICBmdWxsTmFtZTogc3RyaW5nLFxuICBuZXR3b3JrOiBVdHhvTmV0d29yayxcbiAgYXNzZXQ6IFVuZGVybHlpbmdBc3NldCxcbiAgYmFzZVVuaXQ6IEJhc2VVbml0LFxuICBmZWF0dXJlczogQ29pbkZlYXR1cmVbXSA9IFV0eG9Db2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIHByZWZpeCA9ICcnLFxuICBzdWZmaXg6IHN0cmluZyA9IG5hbWUudG9VcHBlckNhc2UoKSxcbiAgLyoqIEFsbCBVVFhPcyBCaXRHbyBzdXBwb3J0cyBhcmUgU0VDUDI1NksxICoqL1xuICBwcmltYXJ5S2V5Q3VydmU6IEtleUN1cnZlID0gS2V5Q3VydmUuU2VjcDI1NmsxLFxuICBvdGhlclN1cHBvcnRlZEtleUN1cnZlcz86IEtleUN1cnZlW11cbikge1xuICByZXR1cm4gT2JqZWN0LmZyZWV6ZShcbiAgICBuZXcgVXR4b0NvaW4oe1xuICAgICAgaWQsXG4gICAgICBuYW1lLFxuICAgICAgZnVsbE5hbWUsXG4gICAgICBuZXR3b3JrLFxuICAgICAgcHJlZml4LFxuICAgICAgc3VmZml4LFxuICAgICAgZmVhdHVyZXMsXG4gICAgICBhc3NldCxcbiAgICAgIHByaW1hcnlLZXlDdXJ2ZSxcbiAgICAgIG90aGVyU3VwcG9ydGVkS2V5Q3VydmVzLFxuICAgICAgYmFzZVVuaXQsXG4gICAgfSlcbiAgKTtcbn1cblxuY29uc3QgQkNIX0ZFQVRVUkVTID0gW1xuICAuLi5VdHhvQ29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBDb2luRmVhdHVyZS5CVUxLX1RSQU5TQUNUSU9OLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0dFUk1BTlksXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fTkVXX1lPUkssXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fRlJBTktGVVJULFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX1NJTkdBUE9SRSxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CVUxLX1RSQU5TQUNUSU9OLFxuXTtcbmNvbnN0IEJUQ19GRUFUVVJFUyA9IFtcbiAgLi4uVXR4b0NvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19HRVJNQU5ZLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX05FV19ZT1JLLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0ZSQU5LRlVSVCxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19TSVNURVJfVFJVU1RfT05FLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0tPUkVBLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0VVUk9QRV9BUFMsXG4gIENvaW5GZWF0dXJlLkJVTEtfVFJBTlNBQ1RJT04sXG4gIENvaW5GZWF0dXJlLkRJU1RSSUJVVEVEX0NVU1RPRFksXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fU0lOR0FQT1JFLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX1NXSVRaRVJMQU5ELFxuICBDb2luRmVhdHVyZS5TVFVDS19UUkFOU0FDVElPTl9NQU5BR0VNRU5UX09OQ0hBSU4sXG4gIENvaW5GZWF0dXJlLlNUQUtJTkcsXG5dO1xuY29uc3QgQlRHX0ZFQVRVUkVTID0gW1xuICAuLi5VdHhvQ29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0dFUk1BTlksXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fRlJBTktGVVJULFxuXTtcbmNvbnN0IExUQ19GRUFUVVJFUyA9IFtcbiAgLi4uVXR4b0NvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19HRVJNQU5ZLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX05FV19ZT1JLLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0ZSQU5LRlVSVCxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19TSU5HQVBPUkUsXG4gIENvaW5GZWF0dXJlLkJVTEtfVFJBTlNBQ1RJT04sXG5dO1xuY29uc3QgRE9HRV9GRUFUVVJFUyA9IFtcbiAgLi4uVXR4b0NvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19HRVJNQU5ZLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0ZSQU5LRlVSVCxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19TSU5HQVBPUkUsXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fTkVXX1lPUkssXG4gIENvaW5GZWF0dXJlLkJVTEtfVFJBTlNBQ1RJT04sXG5dO1xuY29uc3QgREFTSF9GRUFUVVJFUyA9IFsuLi5VdHhvQ29pbi5ERUZBVUxUX0ZFQVRVUkVTLCBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0ZSQU5LRlVSVCwgQ29pbkZlYXR1cmUuQlVMS19UUkFOU0FDVElPTl07XG5jb25zdCBUREFTSF9GRUFUVVJFUyA9IFsuLi5VdHhvQ29pbi5ERUZBVUxUX0ZFQVRVUkVTLCBDb2luRmVhdHVyZS5CVUxLX1RSQU5TQUNUSU9OXTtcbmNvbnN0IFpFQ19GRUFUVVJFUyA9IFtcbiAgLi4uVXR4b0NvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgQ29pbkZlYXR1cmUuQlVMS19UUkFOU0FDVElPTixcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19GUkFOS0ZVUlQsXG4gIC8qKlxuICAgKiBaY2FzaCBhbHNvIHN1cHBvcnRzIGEgUmVkUGFsbGFzL09yY2hhcmQgc2hpZWxkZWQgcG9vbCwgc2VsZWN0YWJsZSB2aWFcbiAgICogYG90aGVyU3VwcG9ydGVkS2V5Q3VydmVzYCAoc2VlIHRoZSBgemVjYC9gdHplY2AgZW50cmllcyBiZWxvdykuIFRTUy9UU1NfQ09MRC9NUENWMiBhcmUgYWRkZWRcbiAgICogaGVyZSAoYWxvbmdzaWRlIHRoZSBleGlzdGluZyBNVUxUSVNJRy9NVUxUSVNJR19DT0xEIHVzZWQgZm9yIHRyYW5zcGFyZW50IGFkZHJlc3Nlcykgc29cbiAgICogZG93bnN0cmVhbSBPVkMvQml0R28gdG9vbGluZyBjYW4gdHJlYXQgdGhpcyBjb2luIGFzIFRTUy1lbGlnaWJsZSBmb3Igc2hpZWxkZWQgREtHLCB3aXRob3V0XG4gICAqIHRvdWNoaW5nIHRoZSBleGlzdGluZyB0cmFuc3BhcmVudCBtdWx0aXNpZyBmbG93cyB3aGljaCByZW1haW4ga2V5ZWQgb24gYHByaW1hcnlLZXlDdXJ2ZWBcbiAgICogKHNlY3AyNTZrMSkuXG4gICAqL1xuICBDb2luRmVhdHVyZS5UU1MsXG4gIENvaW5GZWF0dXJlLlRTU19DT0xELFxuICBDb2luRmVhdHVyZS5NUENWMixcbl07XG5jb25zdCBQRUFSTF9GRUFUVVJFUyA9IFsuLi5VdHhvQ29pbi5ERUZBVUxUX0ZFQVRVUkVTLCBDb2luRmVhdHVyZS5CVUxLX1RSQU5TQUNUSU9OLCBDb2luRmVhdHVyZS5ESVNUUklCVVRFRF9DVVNUT0RZXTtcbmV4cG9ydCBjb25zdCB1dHhvQ29pbnM6IFJlYWRvbmx5PEJhc2VDb2luPltdID0gW1xuICB1dHhvKFxuICAgICc4ZDZlMDhkNS0zOTlmLTQxNGYtODQzMC02Y2VjYTE3OThjYmYnLFxuICAgICdiY2gnLFxuICAgICdCaXRjb2luIENhc2gnLFxuICAgIE5ldHdvcmtzLm1haW4uYml0Y29pbkNhc2gsXG4gICAgVW5kZXJseWluZ0Fzc2V0LkJDSCxcbiAgICBCYXNlVW5pdC5CVEMsXG4gICAgQkNIX0ZFQVRVUkVTXG4gICksXG4gIHV0eG8oXG4gICAgJ2FhZTZmYWZjLTUwOTEtNGIxMC05YTExLWFhNmNlZmVhMjgwNScsXG4gICAgJ3RiY2gnLFxuICAgICdUZXN0bmV0IEJpdGNvaW4gQ2FzaCcsXG4gICAgTmV0d29ya3MudGVzdC5iaXRjb2luQ2FzaCxcbiAgICBVbmRlcmx5aW5nQXNzZXQuQkNILFxuICAgIEJhc2VVbml0LkJUQyxcbiAgICBCQ0hfRkVBVFVSRVNcbiAgKSxcbiAgdXR4byhcbiAgICAnOTQxNTg3Y2UtMWM3YS00MzA1LWI5MDgtMTU0NTVkMTVlOTYxJyxcbiAgICAnYmNoYScsXG4gICAgJ0VDYXNoJyxcbiAgICBOZXR3b3Jrcy5tYWluLmVDYXNoLFxuICAgIFVuZGVybHlpbmdBc3NldC5CQ0hBLFxuICAgIEJhc2VVbml0LkJUQ1xuICApLFxuICB1dHhvKFxuICAgICdhZjhkZTFlMC0zZTMzLTQ3YmYtOTRkMy1mYjNjMmJlYmVhZDInLFxuICAgICd0YmNoYScsXG4gICAgJ1Rlc3RuZXQgRUNhc2gnLFxuICAgIE5ldHdvcmtzLnRlc3QuZUNhc2gsXG4gICAgVW5kZXJseWluZ0Fzc2V0LkJDSEEsXG4gICAgQmFzZVVuaXQuQlRDXG4gICksXG4gIHV0eG8oXG4gICAgJ2Y3MjhjZmM3LWQwY2YtNGY5OS1iY2EwLWQyNTI3M2U2NWZjZicsXG4gICAgJ2JzdicsXG4gICAgJ0JpdGNvaW4gU1YnLFxuICAgIE5ldHdvcmtzLm1haW4uYml0Y29pblNWLFxuICAgIFVuZGVybHlpbmdBc3NldC5CU1YsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIFtDb2luRmVhdHVyZS5ERVBSRUNBVEVELCAuLi5VdHhvQ29pbi5ERUZBVUxUX0ZFQVRVUkVTXVxuICApLFxuICB1dHhvKFxuICAgICc3Y2I4MTUxOC04NWQ3LTQwMGYtOTYwZS03YmMwMGIzYmZhNjInLFxuICAgICd0YnN2JyxcbiAgICAnVGVzdG5ldCBCaXRjb2luIFNWJyxcbiAgICBOZXR3b3Jrcy50ZXN0LmJpdGNvaW5TVixcbiAgICBVbmRlcmx5aW5nQXNzZXQuQlNWLFxuICAgIEJhc2VVbml0LkJUQyxcbiAgICBbQ29pbkZlYXR1cmUuREVQUkVDQVRFRCwgLi4uVXR4b0NvaW4uREVGQVVMVF9GRUFUVVJFU11cbiAgKSxcbiAgdXR4byhcbiAgICAnNWMxNjkxYzUtYzljYy00OWVkLWFiZTAtYzQzM2RhYjJlZGFhJyxcbiAgICAnYnRjJyxcbiAgICAnQml0Y29pbicsXG4gICAgTmV0d29ya3MubWFpbi5iaXRjb2luLFxuICAgIFVuZGVybHlpbmdBc3NldC5CVEMsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIEJUQ19GRUFUVVJFU1xuICApLFxuICB1dHhvKFxuICAgICdjZGU3NTU5ZC1hNTM2LTRkMTItOGRlNC05MGJhYTA5ZjkwYmQnLFxuICAgICd0YnRjJyxcbiAgICAnVGVzdG5ldCBCaXRjb2luJyxcbiAgICBOZXR3b3Jrcy50ZXN0LmJpdGNvaW4sXG4gICAgVW5kZXJseWluZ0Fzc2V0LkJUQyxcbiAgICBCYXNlVW5pdC5CVEMsXG4gICAgQlRDX0ZFQVRVUkVTLmZpbHRlcigoZikgPT4gZiAhPT0gQ29pbkZlYXR1cmUuU1RBS0lORylcbiAgKSxcbiAgdXR4byhcbiAgICAnYTBkNTNkYzktMmRjYy00ZWJiLWEyZDQtNTE5ODNmZTIwZGE2JyxcbiAgICAndGJ0Y3NpZycsXG4gICAgJ1B1YmxpYyBTaWduZXQgQml0Y29pbicsXG4gICAgTmV0d29ya3MudGVzdC5iaXRjb2luUHVibGljU2lnbmV0LFxuICAgIFVuZGVybHlpbmdBc3NldC5CVEMsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIEJUQ19GRUFUVVJFU1xuICApLFxuICB1dHhvKFxuICAgICdmNzZjZWMzZi03YWVmLTQ3M2QtYWY1ZC00YzQ3ZGQ0MGRmYTgnLFxuICAgICd0YnRjNCcsXG4gICAgJ1Rlc3RuZXQ0IEJpdGNvaW4nLFxuICAgIE5ldHdvcmtzLnRlc3QuYml0Y29pblRlc3RuZXQ0LFxuICAgIFVuZGVybHlpbmdBc3NldC5CVEMsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIEJUQ19GRUFUVVJFU1xuICApLFxuICB1dHhvKFxuICAgICc3MjI1MjJkYy1hNjEzLTRiZmYtYTFkMS0xODNlYmU1MTM4YWUnLFxuICAgICd0YnRjYmdzaWcnLFxuICAgICdCaXRHbyBTaWduZXQgQml0Y29pbicsXG4gICAgTmV0d29ya3MudGVzdC5iaXRjb2luQml0R29TaWduZXQsXG4gICAgVW5kZXJseWluZ0Fzc2V0LkJUQyxcbiAgICBCYXNlVW5pdC5CVEMsXG4gICAgQlRDX0ZFQVRVUkVTXG4gICksXG4gIHV0eG8oXG4gICAgJzhmZWIxMTBkLTBkNjgtNDRjZS1hZTk3LWI4YzMwZWM4NzBhOScsXG4gICAgJ2J0ZycsXG4gICAgJ0JpdGNvaW4gR29sZCcsXG4gICAgTmV0d29ya3MubWFpbi5iaXRjb2luR29sZCxcbiAgICBVbmRlcmx5aW5nQXNzZXQuQlRHLFxuICAgIEJhc2VVbml0LkJUQyxcbiAgICBCVEdfRkVBVFVSRVMuZmlsdGVyKChmKSA9PiBmICE9PSBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX1NJTkdBUE9SRSlcbiAgKSxcbiAgdXR4byhcbiAgICAnNjMzMjQ2ZjItYWYyMS00MWI4LThiOWUtYmE5YWUyNWQzODZmJyxcbiAgICAndGJ0ZycsXG4gICAgJ1Rlc3RuZXQgQml0Y29pbiBHb2xkJyxcbiAgICBOZXR3b3Jrcy50ZXN0LmJpdGNvaW5Hb2xkLFxuICAgIFVuZGVybHlpbmdBc3NldC5CVEcsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIEJhc2VDb2luLmdldEZlYXR1cmVzQnlUeXBlRXhjbHVkaW5nKFtDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX01FTkFfRlpFLCBDb2luRmVhdHVyZS5NVUxUSVNJR19DT0xEXSwgQlRHX0ZFQVRVUkVTKVxuICApLFxuICB1dHhvKFxuICAgICc5YzgwOTdmMS01ZDJjLTRhNjItYTk0Yy05NmMyNzFjMGU1ZTAnLFxuICAgICdsdGMnLFxuICAgICdMaXRlY29pbicsXG4gICAgTmV0d29ya3MubWFpbi5saXRlY29pbixcbiAgICBVbmRlcmx5aW5nQXNzZXQuTFRDLFxuICAgIEJhc2VVbml0LkxUQyxcbiAgICBMVENfRkVBVFVSRVNcbiAgKSxcbiAgdXR4byhcbiAgICAnMWFjYTMyYzgtYTNlNS00MmViLTgyZGYtNGMyNjNkOGJmYzY4JyxcbiAgICAndGx0YycsXG4gICAgJ1Rlc3RuZXQgTGl0ZWNvaW4nLFxuICAgIE5ldHdvcmtzLnRlc3QubGl0ZWNvaW4sXG4gICAgVW5kZXJseWluZ0Fzc2V0LkxUQyxcbiAgICBCYXNlVW5pdC5MVEMsXG4gICAgTFRDX0ZFQVRVUkVTXG4gICksXG4gIHV0eG8oXG4gICAgJzA3MzliZTZhLWM3MmUtNDY4ZC05NDY0LWNhNTYwMTk2NTcwOCcsXG4gICAgJ2Rhc2gnLFxuICAgICdEYXNoJyxcbiAgICBOZXR3b3Jrcy5tYWluLmRhc2gsXG4gICAgVW5kZXJseWluZ0Fzc2V0LkRBU0gsXG4gICAgQmFzZVVuaXQuREFTSCxcbiAgICBEQVNIX0ZFQVRVUkVTLmZpbHRlcihcbiAgICAgIChmZWF0dXJlKSA9PlxuICAgICAgICAhW1xuICAgICAgICAgIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fU0lOR0FQT1JFLFxuICAgICAgICAgIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fQ1VTVE9EWV9NRU5BX0ZaRSxcbiAgICAgICAgICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX01FTkFfRlpFLFxuICAgICAgICBdLmluY2x1ZGVzKGZlYXR1cmUpXG4gICAgKVxuICApLFxuICB1dHhvKFxuICAgICc1OTUwZDc4Zi1lOGRkLTQ1N2EtYWI1ZC0zMTBlNmI0NzZiYjEnLFxuICAgICd0ZGFzaCcsXG4gICAgJ1Rlc3RuZXQgRGFzaCcsXG4gICAgTmV0d29ya3MudGVzdC5kYXNoLFxuICAgIFVuZGVybHlpbmdBc3NldC5EQVNILFxuICAgIEJhc2VVbml0LkRBU0gsXG4gICAgVERBU0hfRkVBVFVSRVNcbiAgKSxcbiAgdXR4byhcbiAgICAnNTA4ZjZiNTMtMWU2ZS00MWZkLWI1NDEtYjI0OThiN2M0YjYxJyxcbiAgICAnemVjJyxcbiAgICAnWkNhc2gnLFxuICAgIE5ldHdvcmtzLm1haW4uekNhc2gsXG4gICAgVW5kZXJseWluZ0Fzc2V0LlpFQyxcbiAgICBCYXNlVW5pdC5aRUMsXG4gICAgWkVDX0ZFQVRVUkVTLFxuICAgICcnLFxuICAgICdaRUMnLFxuICAgIEtleUN1cnZlLlNlY3AyNTZrMSxcbiAgICBbS2V5Q3VydmUuUGFsbGFzXVxuICApLFxuICB1dHhvKFxuICAgICc1NDlhNDQ5OS0zODdjLTQyZDMtOTA0OC1jMDFkNjcyNGQ5OGEnLFxuICAgICd0emVjJyxcbiAgICAnVGVzdG5ldCBaQ2FzaCcsXG4gICAgTmV0d29ya3MudGVzdC56Q2FzaCxcbiAgICBVbmRlcmx5aW5nQXNzZXQuWkVDLFxuICAgIEJhc2VVbml0LlpFQyxcbiAgICBaRUNfRkVBVFVSRVMsXG4gICAgJycsXG4gICAgJ1RaRUMnLFxuICAgIEtleUN1cnZlLlNlY3AyNTZrMSxcbiAgICBbS2V5Q3VydmUuUGFsbGFzXVxuICApLFxuICB1dHhvKFxuICAgICc0NTE4YTViOS0wMGQzLTQ3NmUtYmM0MC1kM2Y4N2ViODIyNTAnLFxuICAgICdwZWFybCcsXG4gICAgJ1BlYXJsJyxcbiAgICBOZXR3b3Jrcy5tYWluLnBlYXJsLFxuICAgIFVuZGVybHlpbmdBc3NldC5QRUFSTCxcbiAgICBCYXNlVW5pdC5CVEMsXG4gICAgUEVBUkxfRkVBVFVSRVNcbiAgKSxcbiAgdXR4byhcbiAgICAnNWQ4ODcyM2EtN2U4Ni00M2M3LTlmYjEtZjRjZWU3YWJjNDhmJyxcbiAgICAndHBlYXJsJyxcbiAgICAnVGVzdG5ldCBQZWFybCcsXG4gICAgTmV0d29ya3MudGVzdC5wZWFybCxcbiAgICBVbmRlcmx5aW5nQXNzZXQuUEVBUkwsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIFBFQVJMX0ZFQVRVUkVTXG4gICksXG4gIHV0eG8oXG4gICAgJ2M5M2E5MTYwLTQ1OGYtNGEzMS1iZWEwLTRhOTNhZThiMWQyZCcsXG4gICAgJ2RvZ2UnLFxuICAgICdEb2dlY29pbicsXG4gICAgTmV0d29ya3MubWFpbi5kb2dlY29pbixcbiAgICBVbmRlcmx5aW5nQXNzZXQuRE9HRSxcbiAgICBCYXNlVW5pdC5CVEMsXG4gICAgRE9HRV9GRUFUVVJFU1xuICApLFxuICB1dHhvKFxuICAgICc3YTE1OTdlOC1mZDhlLTRiNjgtODA4Ni1mOTE1OWUzN2UwY2UnLFxuICAgICd0ZG9nZScsXG4gICAgJ1Rlc3RuZXQgRG9nZWNvaW4nLFxuICAgIE5ldHdvcmtzLnRlc3QuZG9nZWNvaW4sXG4gICAgVW5kZXJseWluZ0Fzc2V0LkRPR0UsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIERPR0VfRkVBVFVSRVNcbiAgKSxcbl07XG4iXX0=
|