@witnet/solidity 3.0.12 → 3.0.13
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/lib/utils.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export declare function fetchWitOracleFramework(provider: JsonRpcProvider): Prom
|
|
|
8
8
|
}>;
|
|
9
9
|
export declare function getEvmNetworkAddresses(network: string): any;
|
|
10
10
|
export declare function getEvmNetworkByChainId(chainId: number): string | undefined;
|
|
11
|
+
export declare function getEvmNetworkId(network: string): number | undefined;
|
|
11
12
|
export declare function getEvmNetworkSymbol(network: string): string;
|
|
12
13
|
export declare function getEvmNetworks(): string[];
|
|
13
14
|
export declare function isEvmNetworkMainnet(network: string): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAIpC,OAAO,EAGN,KAAK,eAAe,EAEpB,MAAM,QAAQ,CAAA;AAKf,OAAO,KAAK,EACX,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,MAAM,YAAY,CAAA;AAUnB,cAAc,mBAAmB,CAAA;AAEjC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,SAEvD;AAED,wBAAsB,uBAAuB,CAC5C,QAAQ,EAAE,eAAe,GACvB,OAAO,CAAC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;CAAE,CAAC,CA6J/C;AAgBD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAE3D;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO1E;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM3D;AAED,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAEzC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAK5D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAiBzE;AA4CD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,GAAG,GAAG,CAS1E;AAED,wBAAgB,8BAA8B,CAC7C,MAAM,EAAE,MAAM,CAAC,cAAc,GAC3B,MAAM,CAAC,SAAS,CAKlB;AAED,wBAAgB,6BAA6B,CAC5C,MAAM,EAAE,MAAM,CAAC,cAAc,GAC3B,MAAM,CAAC,SAAS,CAKlB;AAED,wBAAgB,kCAAkC,CACjD,UAAU,EAAE,yBAAyB,GACnC,GAAG,CASL;AAED,wBAAgB,6BAA6B,CAC5C,WAAW,EAAE,oBAAoB,GAC/B,GAAG,CAML;AACD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAwBnD"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAIpC,OAAO,EAGN,KAAK,eAAe,EAEpB,MAAM,QAAQ,CAAA;AAKf,OAAO,KAAK,EACX,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,MAAM,YAAY,CAAA;AAUnB,cAAc,mBAAmB,CAAA;AAEjC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,SAEvD;AAED,wBAAsB,uBAAuB,CAC5C,QAAQ,EAAE,eAAe,GACvB,OAAO,CAAC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;CAAE,CAAC,CA6J/C;AAgBD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAE3D;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO1E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMnE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM3D;AAED,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAEzC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAK5D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAiBzE;AA4CD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,GAAG,GAAG,CAS1E;AAED,wBAAgB,8BAA8B,CAC7C,MAAM,EAAE,MAAM,CAAC,cAAc,GAC3B,MAAM,CAAC,SAAS,CAKlB;AAED,wBAAgB,6BAA6B,CAC5C,MAAM,EAAE,MAAM,CAAC,cAAc,GAC3B,MAAM,CAAC,SAAS,CAKlB;AAED,wBAAgB,kCAAkC,CACjD,UAAU,EAAE,yBAAyB,GACnC,GAAG,CASL;AAED,wBAAgB,6BAA6B,CAC5C,WAAW,EAAE,oBAAoB,GAC/B,GAAG,CAML;AACD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAwBnD"}
|
package/dist/src/lib/utils.js
CHANGED
|
@@ -154,6 +154,13 @@ export function getEvmNetworkByChainId(chainId) {
|
|
|
154
154
|
else
|
|
155
155
|
return undefined;
|
|
156
156
|
}
|
|
157
|
+
export function getEvmNetworkId(network) {
|
|
158
|
+
const found = Object.entries(helpers.supportedNetworks()).find(([key]) => key.toLowerCase() === network.toLowerCase());
|
|
159
|
+
if (found)
|
|
160
|
+
return found[1]?.network_id;
|
|
161
|
+
else
|
|
162
|
+
return undefined;
|
|
163
|
+
}
|
|
157
164
|
export function getEvmNetworkSymbol(network) {
|
|
158
165
|
const found = Object.entries(helpers.supportedNetworks()).find(([key]) => key.toLowerCase() === network.toLowerCase());
|
|
159
166
|
if (found)
|
|
@@ -264,4 +271,4 @@ export function abiEncodeRadonAsset(asset) {
|
|
|
264
271
|
throw new TypeError(`Not a Radon asset: ${asset}`);
|
|
265
272
|
}
|
|
266
273
|
}
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFcEMsT0FBTyxFQUFFLE9BQU8sSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFdEMsT0FBTyxFQUNOLFFBQVEsRUFDUixRQUFRLEVBRVIsdUJBQXVCLEdBQ3ZCLE1BQU0sUUFBUSxDQUFBO0FBQ2YsT0FBTyxFQUFFLE9BQU8sSUFBSSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDL0MsT0FBTyxFQUFFLE9BQU8sSUFBSSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBUWxDLE9BQU8sRUFDTixTQUFTLEVBQ1Qsc0JBQXNCLEVBQ3RCLDRCQUE0QixFQUM1QixhQUFhLEVBQ2IsbUJBQW1CLEVBQ25CLGFBQWEsR0FDYixNQUFNLGVBQWUsQ0FBQTtBQUV0QixjQUFjLG1CQUFtQixDQUFBO0FBRWpDLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxPQUFlO0lBQ3ZELE9BQU8sT0FBTyxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQ2pELENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLHVCQUF1QixDQUM1QyxRQUF5QjtJQUV6QixPQUFPLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ2pELE1BQU0sT0FBTyxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUM3RCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTSxVQUFVLEdBQUc7Z0JBQ2xCLG9DQUFvQztnQkFDcEMsdUNBQXVDO2FBQ3ZDLENBQUE7WUFD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LEtBQUssWUFBWSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN4RCxPQUFPO1lBQ04sS0FBSyxDQUFDLE1BQU07WUFDWixLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1NBQ2hFLENBQUE7SUFDRixDQUFDO1NBQU0sQ0FBQztRQUNQLE1BQU0sSUFBSSxTQUFTLENBQUMsc0JBQXNCLEtBQUssRUFBRSxDQUFDLENBQUE7SUFDbkQsQ0FBQztBQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXaXRuZXQgfSBmcm9tIFwiQHdpdG5ldC9zZGtcIlxuXG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNib3IgfSBmcm9tIFwiY2JvclwiXG5cbmltcG9ydCB7XG5cdEFiaUNvZGVyLFxuXHRDb250cmFjdCxcblx0dHlwZSBKc29uUnBjUHJvdmlkZXIsXG5cdHNvbGlkaXR5UGFja2VkS2VjY2FrMjU2LFxufSBmcm9tIFwiZXRoZXJzXCJcbmltcG9ydCB7IGRlZmF1bHQgYXMgbWVyZ2UgfSBmcm9tIFwibG9kYXNoLm1lcmdlXCJcbmltcG9ydCB7IGRlZmF1bHQgYXMgaGVscGVycyB9IGZyb20gXCIuLi9iaW4vaGVscGVycy5janNcIlxuaW1wb3J0IHsgQUJJcyB9IGZyb20gXCIuLi9pbmRleC5qc1wiXG5cbmltcG9ydCB0eXBlIHtcblx0UHJpY2VGZWVkVXBkYXRlQ29uZGl0aW9ucyxcblx0V2l0T3JhY2xlQXJ0aWZhY3QsXG5cdFdpdE9yYWNsZVF1ZXJ5UGFyYW1zLFxuXHRXaXRPcmFjbGVRdWVyeVN0YXR1cyxcbn0gZnJvbSBcIi4vdHlwZXMuanNcIlxuaW1wb3J0IHtcblx0V2l0T3JhY2xlLFxuXHRXaXRPcmFjbGVSYWRvblJlZ2lzdHJ5LFxuXHRXaXRPcmFjbGVSYWRvblJlcXVlc3RGYWN0b3J5LFxuXHRXaXRQcmljZUZlZWRzLFxuXHRXaXRQcmljZUZlZWRzTGVnYWN5LFxuXHRXaXRSYW5kb21uZXNzLFxufSBmcm9tIFwiLi93cmFwcGVycy5qc1wiXG5cbmV4cG9ydCAqIGZyb20gXCJAd2l0bmV0L3Nkay91dGlsc1wiXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXR3b3JrVGFnc0Zyb21TdHJpbmcobmV0d29yazogc3RyaW5nKSB7XG5cdHJldHVybiBoZWxwZXJzLmdldE5ldHdvcmtUYWdzRnJvbVN0cmluZyhuZXR3b3JrKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hXaXRPcmFjbGVGcmFtZXdvcmsoXG5cdHByb3ZpZGVyOiBKc29uUnBjUHJvdmlkZXIsXG4pOiBQcm9taXNlPHsgW2tleTogc3RyaW5nXTogV2l0T3JhY2xlQXJ0aWZhY3QgfT4ge1xuXHRyZXR1cm4gcHJvdmlkZXIuZ2V0TmV0d29yaygpLnRoZW4oYXN5bmMgKHZhbHVlKSA9PiB7XG5cdFx0Y29uc3QgbmV0d29yayA9IGdldEV2bU5ldHdvcmtCeUNoYWluSWQoTnVtYmVyKHZhbHVlLmNoYWluSWQpKVxuXHRcdGlmIChuZXR3b3JrKSB7XG5cdFx0XHRjb25zdCBleGNsdXNpb25zID0gW1xuXHRcdFx0XHRcIldpdE9yYWNsZVJhZG9uUmVxdWVzdEZhY3RvcnlNb2RhbHNcIixcblx0XHRcdFx0XCJXaXRPcmFjbGVSYWRvblJlcXVlc3RGYWN0b3J5VGVtcGxhdGVzXCIsXG5cdFx0XHRdXG5cdFx0XHRjb25zdCB0YXJnZXRzID0gW1xuXHRcdFx0XHRcIldpdE9yYWNsZVwiLFxuXHRcdFx0XHRcIldpdE9yYWNsZVJhZG9uUmVnaXN0cnlcIixcblx0XHRcdFx0XCJXaXRPcmFjbGVSYWRvblJlcXVlc3RGYWN0b3J5XCIsXG5cdFx0XHRcdFwiV2l0UHJpY2VGZWVkc1wiLFxuXHRcdFx0XHRcIldpdFByaWNlRmVlZHNMZWdhY3lcIixcblx0XHRcdFx0XCJXaXRSYW5kb21uZXNzVjJcIixcblx0XHRcdFx0XCJXaXRSYW5kb21uZXNzVjNcIixcblx0XHRcdF1cblx0XHRcdGNvbnN0IGNvbnRyYWN0cyA9IE9iamVjdC5mcm9tRW50cmllcyhcblx0XHRcdFx0T2JqZWN0LmVudHJpZXMoXG5cdFx0XHRcdFx0aGVscGVycy5mbGF0dGVuT2JqZWN0KGhlbHBlcnMuZ2V0TmV0d29ya0FydGlmYWN0cyhuZXR3b3JrKSksXG5cdFx0XHRcdCkubWFwKChba2V5LCB2YWx1ZV0pID0+IFtrZXkuc3BsaXQoXCIuXCIpLnBvcCgpLCB2YWx1ZV0pLFxuXHRcdFx0KVxuXHRcdFx0bGV0IHsgYWRkcmVzc2VzIH0gPSBoZWxwZXJzLnJlYWRXaXRuZXRKc29uRmlsZXMoXCJhZGRyZXNzZXNcIilcblx0XHRcdGFkZHJlc3NlcyA9IG1lcmdlKFxuXHRcdFx0XHRoZWxwZXJzLmdldE5ldHdvcmtBZGRyZXNzZXMobmV0d29yayksXG5cdFx0XHRcdGFkZHJlc3Nlc1tuZXR3b3JrXSxcblx0XHRcdClcblx0XHRcdHJldHVybiBhd2FpdCBQcm9taXNlLmFsbChcblx0XHRcdFx0T2JqZWN0LmVudHJpZXMoaGVscGVycy5mbGF0dGVuT2JqZWN0KGFkZHJlc3NlcykpXG5cdFx0XHRcdFx0Lm1hcCgoW2tleSwgYWRkcmVzc10pID0+IFtrZXkuc3BsaXQoXCIuXCIpLnBvcCgpLCBhZGRyZXNzXSlcblx0XHRcdFx0XHQuc29ydCgoW2FdLCBbYl0pID0+IChhIGFzIHN0cmluZykubG9jYWxlQ29tcGFyZShiKSlcblx0XHRcdFx0XHQuZmlsdGVyKChba2V5XSkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgYmFzZSA9IF9maW5kQmFzZShjb250cmFjdHMsIGtleSlcblx0XHRcdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0XHRcdHRhcmdldHMuaW5jbHVkZXMoa2V5KSAmJlxuXHRcdFx0XHRcdFx0XHQhZXhjbHVzaW9ucy5pbmNsdWRlcyhiYXNlKSAmJlxuXHRcdFx0XHRcdFx0XHQoQUJJc1trZXldIHx8IEFCSXNbYmFzZV0pXG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQubWFwKGFzeW5jIChba2V5LCBhZGRyZXNzXSkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgYnl0ZWNvZGUgPSBhd2FpdCBwcm92aWRlclxuXHRcdFx0XHRcdFx0XHQuZ2V0Q29kZShhZGRyZXNzKVxuXHRcdFx0XHRcdFx0XHQuY2F0Y2goKGVycikgPT4gY29uc29sZS5lcnJvcihgV2FybmluZzogJHtrZXl9OiAke2Vycn1gKSlcblx0XHRcdFx0XHRcdGlmIChieXRlY29kZT8ubGVuZ3RoICYmIGJ5dGVjb2RlLmxlbmd0aCA+IDIpIHtcblx0XHRcdFx0XHRcdFx0bGV0IGltcGwsXG5cdFx0XHRcdFx0XHRcdFx0aXNVcGdyYWRhYmxlID0gZmFsc2UsXG5cdFx0XHRcdFx0XHRcdFx0aW50ZXJmYWNlSWQsXG5cdFx0XHRcdFx0XHRcdFx0dmVyc2lvblxuXHRcdFx0XHRcdFx0XHRjb25zdCBhcHBsaWFuY2UgPSBuZXcgQ29udHJhY3QoXG5cdFx0XHRcdFx0XHRcdFx0YWRkcmVzcyxcblx0XHRcdFx0XHRcdFx0XHRBQklzLldpdEFwcGxpYW5jZSxcblx0XHRcdFx0XHRcdFx0XHRwcm92aWRlcixcblx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0XHRcdGltcGwgPSBhd2FpdCBhcHBsaWFuY2UuY2xhc3Muc3RhdGljQ2FsbCgpXG5cdFx0XHRcdFx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRcdFx0XHRcdGltcGwgPSBrZXlcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0XHRcdGludGVyZmFjZUlkID0gYXdhaXQgYXBwbGlhbmNlLnNwZWNzLnN0YXRpY0NhbGwoKVxuXHRcdFx0XHRcdFx0XHR9IGNhdGNoIHt9XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHVwZ3JhZGFibGUgPSBuZXcgQ29udHJhY3QoXG5cdFx0XHRcdFx0XHRcdFx0YWRkcmVzcyxcblx0XHRcdFx0XHRcdFx0XHRBQklzLldpdG5ldFVwZ3JhZGFibGVCYXNlLFxuXHRcdFx0XHRcdFx0XHRcdHByb3ZpZGVyLFxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRcdFx0aXNVcGdyYWRhYmxlID0gYXdhaXQgdXBncmFkYWJsZS5pc1VwZ3JhZGFibGUuc3RhdGljQ2FsbCgpXG5cdFx0XHRcdFx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRcdFx0XHRcdGlzVXBncmFkYWJsZSA9IGZhbHNlXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0XHR2ZXJzaW9uID0gYXdhaXQgdXBncmFkYWJsZS52ZXJzaW9uLnN0YXRpY0NhbGwoKVxuXHRcdFx0XHRcdFx0XHR9IGNhdGNoIHt9XG5cdFx0XHRcdFx0XHRcdHJldHVybiBbXG5cdFx0XHRcdFx0XHRcdFx0a2V5LFxuXHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdGFiaTogQUJJc1trZXldIHx8IEFCSXNbaW1wbF0sXG5cdFx0XHRcdFx0XHRcdFx0XHRhZGRyZXNzLFxuXHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M6IGltcGwsXG5cdFx0XHRcdFx0XHRcdFx0XHRnaXRIYXNoOiBfdmVyc2lvbkxhc3RDb21taXRPZih2ZXJzaW9uKSxcblx0XHRcdFx0XHRcdFx0XHRcdGludGVyZmFjZUlkLFxuXHRcdFx0XHRcdFx0XHRcdFx0aXNVcGdyYWRhYmxlLFxuXHRcdFx0XHRcdFx0XHRcdFx0c2VtVmVyOiBfdmVyc2lvblRhZ09mKHZlcnNpb24pLFxuXHRcdFx0XHRcdFx0XHRcdFx0dmVyc2lvbixcblx0XHRcdFx0XHRcdFx0XHR9IGFzIFdpdE9yYWNsZUFydGlmYWN0LFxuXHRcdFx0XHRcdFx0XHRdXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gW2tleSwgdW5kZWZpbmVkXVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pLFxuXHRcdFx0KVxuXHRcdFx0XHQudGhlbigoYXJ0aWZhY3RzKSA9PlxuXHRcdFx0XHRcdGFydGlmYWN0cy5maWx0ZXIoKFssIGFydGlmYWN0XSkgPT4gYXJ0aWZhY3QgIT09IHVuZGVmaW5lZCksXG5cdFx0XHRcdClcblx0XHRcdFx0LnRoZW4oYXN5bmMgKGFydGlmYWN0cykgPT4ge1xuXHRcdFx0XHRcdGlmIChPYmplY3QuZnJvbUVudHJpZXMoYXJ0aWZhY3RzKS5XaXRPcmFjbGUpIHtcblx0XHRcdFx0XHRcdGNvbnN0IHNpZ25lciA9IGF3YWl0IHByb3ZpZGVyLmdldFNpZ25lcigpXG5cdFx0XHRcdFx0XHRjb25zdCB3aXRPcmFjbGUgPSBuZXcgV2l0T3JhY2xlKHNpZ25lciwgbmV0d29yaylcblx0XHRcdFx0XHRcdGxldCB3aXRPcmFjbGVSYWRvblJlZ2lzdHJ5OiBXaXRPcmFjbGVSYWRvblJlZ2lzdHJ5XG5cdFx0XHRcdFx0XHRpZiAoT2JqZWN0LmZyb21FbnRyaWVzKGFydGlmYWN0cykuV2l0T3JhY2xSYWRvblJlZ2lzdHJ5KSB7XG5cdFx0XHRcdFx0XHRcdHdpdE9yYWNsZVJhZG9uUmVnaXN0cnkgPSBuZXcgV2l0T3JhY2xlUmFkb25SZWdpc3RyeShcblx0XHRcdFx0XHRcdFx0XHRzaWduZXIsXG5cdFx0XHRcdFx0XHRcdFx0bmV0d29yayxcblx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0YXJ0aWZhY3RzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG5cdFx0XHRcdFx0XHRcdGFydGlmYWN0cy5tYXAoYXN5bmMgKFtrZXksIGFydGlmYWN0XSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGxldCB3cmFwcGVyXG5cdFx0XHRcdFx0XHRcdFx0c3dpdGNoIChrZXkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNhc2UgXCJXaXRPcmFjbGVcIjpcblx0XHRcdFx0XHRcdFx0XHRcdFx0d3JhcHBlciA9IHdpdE9yYWNsZVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHRcdFx0XHRcdFx0Y2FzZSBcIldpdE9yYWNsZVJhZG9uUmVnaXN0cnlcIjpcblx0XHRcdFx0XHRcdFx0XHRcdFx0d3JhcHBlciA9IHdpdE9yYWNsZVJhZG9uUmVnaXN0cnlcblx0XHRcdFx0XHRcdFx0XHRcdFx0YnJlYWtcblx0XHRcdFx0XHRcdFx0XHRcdGNhc2UgXCJXaXRPcmFjbGVSYWRvblJlcXVlc3RGYWN0b3J5XCI6XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmICh3aXRPcmFjbGVSYWRvblJlZ2lzdHJ5KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0d3JhcHBlciA9IGF3YWl0IFdpdE9yYWNsZVJhZG9uUmVxdWVzdEZhY3RvcnkuZGVwbG95ZWQoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR3aXRPcmFjbGUsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR3aXRPcmFjbGVSYWRvblJlZ2lzdHJ5LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHRcdFx0XHRcdFx0Y2FzZSBcIldpdFByaWNlRmVlZHNcIjpcblx0XHRcdFx0XHRcdFx0XHRcdFx0d3JhcHBlciA9IGF3YWl0IFdpdFByaWNlRmVlZHMuYXQoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0d2l0T3JhY2xlLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGFydGlmYWN0LmFkZHJlc3MsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdFx0XHRcdFx0YnJlYWtcblx0XHRcdFx0XHRcdFx0XHRcdGNhc2UgXCJXaXRQcmljZUZlZWRzTGVnYWN5XCI6XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHdyYXBwZXIgPSBhd2FpdCBXaXRQcmljZUZlZWRzTGVnYWN5LmF0KFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHdpdE9yYWNsZSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRhcnRpZmFjdC5hZGRyZXNzLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdFx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0a2V5LnN0YXJ0c1dpdGgoXCJXaXRSYW5kb21uZXNzXCIpIHx8XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0a2V5LnN0YXJ0c1dpdGgoXCJXaXRuZXRSYW5kb21uZXNzXCIpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHdyYXBwZXIgPSBhd2FpdCBXaXRSYW5kb21uZXNzLmF0KFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0d2l0T3JhY2xlLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0YXJ0aWZhY3QuYWRkcmVzcyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIFtrZXksIHsgLi4uYXJ0aWZhY3QsIHdyYXBwZXIgfSBhcyBXaXRPcmFjbGVBcnRpZmFjdF1cblx0XHRcdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoYXJ0aWZhY3RzKVxuXHRcdFx0XHR9KVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4ge31cblx0XHR9XG5cdH0pXG59XG5cbmZ1bmN0aW9uIF9maW5kQmFzZShvYmo6IHsgW2s6IHN0cmluZ106IGFueSB9LCB2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iaikuZmluZCgoWywgaW1wbF0pID0+IGltcGwgPT09IHZhbHVlKT8uWzBdIHx8IFwiXCJcbn1cbmZ1bmN0aW9uIF92ZXJzaW9uVGFnT2YodmVyc2lvbj86IHN0cmluZykge1xuXHRyZXR1cm4gdmVyc2lvbj8uc2xpY2UoMCwgNSlcbn1cbmZ1bmN0aW9uIF92ZXJzaW9uTGFzdENvbW1pdE9mKHZlcnNpb24/OiBzdHJpbmcpIHtcblx0aWYgKHZlcnNpb24pIHtcblx0XHRyZXR1cm4gdmVyc2lvbj8ubGVuZ3RoID49IDIxID8gdmVyc2lvbj8uc2xpY2UoLTE1LCAtOCkgOiBcIlwiXG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZFxuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFdm1OZXR3b3JrQWRkcmVzc2VzKG5ldHdvcms6IHN0cmluZyk6IGFueSB7XG5cdHJldHVybiBoZWxwZXJzLmdldE5ldHdvcmtBZGRyZXNzZXMobmV0d29yaylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV2bU5ldHdvcmtCeUNoYWluSWQoY2hhaW5JZDogbnVtYmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgZm91bmQgPSBPYmplY3QuZW50cmllcyhoZWxwZXJzLnN1cHBvcnRlZE5ldHdvcmtzKCkpLmZpbmQoXG5cdFx0KFssIGNvbmZpZ106IFtzdHJpbmcsIGFueV0pID0+XG5cdFx0XHRjb25maWc/Lm5ldHdvcmtfaWQudG9TdHJpbmcoKSA9PT0gY2hhaW5JZC50b1N0cmluZygpLFxuXHQpXG5cdGlmIChmb3VuZCkgcmV0dXJuIGZvdW5kWzBdXG5cdGVsc2UgcmV0dXJuIHVuZGVmaW5lZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXZtTmV0d29ya1N5bWJvbChuZXR3b3JrOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRjb25zdCBmb3VuZCA9IE9iamVjdC5lbnRyaWVzKGhlbHBlcnMuc3VwcG9ydGVkTmV0d29ya3MoKSkuZmluZChcblx0XHQoW2tleV06IFtzdHJpbmcsIGFueV0pID0+IGtleS50b0xvd2VyQ2FzZSgpID09PSBuZXR3b3JrLnRvTG93ZXJDYXNlKCksXG5cdClcblx0aWYgKGZvdW5kKSByZXR1cm4gKGZvdW5kWzFdIGFzIGFueSk/LnN5bWJvbFxuXHRlbHNlIHJldHVybiBcIkVUSFwiXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFdm1OZXR3b3JrcygpOiBzdHJpbmdbXSB7XG5cdHJldHVybiBPYmplY3Qua2V5cyhoZWxwZXJzLnN1cHBvcnRlZE5ldHdvcmtzKCkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0V2bU5ldHdvcmtNYWlubmV0KG5ldHdvcms6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRjb25zdCBmb3VuZCA9IE9iamVjdC5lbnRyaWVzKGhlbHBlcnMuc3VwcG9ydGVkTmV0d29ya3MoKSkuZmluZChcblx0XHQoW2tleV0pID0+IGtleSA9PT0gbmV0d29yay50b0xvd2VyQ2FzZSgpLFxuXHQpXG5cdHJldHVybiAoZm91bmQgYXMgYW55KT8uWzFdLm1haW5uZXRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRXZtTmV0d29ya1N1cHBvcnRlZChuZXR3b3JrOiBzdHJpbmcpOiBib29sZWFuIHtcblx0cmV0dXJuIGhlbHBlcnMuc3VwcG9ydHNOZXR3b3JrKG5ldHdvcmspXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhYmlEZWNvZGVRdWVyeVN0YXR1cyhzdGF0dXM6IGJpZ2ludCk6IFdpdE9yYWNsZVF1ZXJ5U3RhdHVzIHtcblx0c3dpdGNoIChzdGF0dXMpIHtcblx0XHRjYXNlIDFuOlxuXHRcdFx0cmV0dXJuIFwiUG9zdGVkXCJcblx0XHRjYXNlIDJuOlxuXHRcdFx0cmV0dXJuIFwiUmVwb3J0ZWRcIlxuXHRcdGNhc2UgM246XG5cdFx0XHRyZXR1cm4gXCJGaW5hbGl6ZWRcIlxuXHRcdGNhc2UgNG46XG5cdFx0XHRyZXR1cm4gXCJEZWxheWVkXCJcblx0XHRjYXNlIDVuOlxuXHRcdFx0cmV0dXJuIFwiRXhwaXJlZFwiXG5cdFx0Y2FzZSA2bjpcblx0XHRcdHJldHVybiBcIkRpc3B1dGVkXCJcblx0XHRkZWZhdWx0OlxuXHRcdFx0cmV0dXJuIFwiVm9pZFwiXG5cdH1cbn1cblxuLyoqXG4gKiBDb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVzb2x1dGlvbiBvZiBzb21lIERhdGEgUmVxdWVzdCBUcmFuc2FjdGlvbiBpbiB0aGUgV2l0bmV0IGJsb2NrY2hhaW4uXG4gKi9cbnR5cGUgX0RhdGFQdXNoUmVwb3J0U29saWRpdHkgPSB7XG5cdC8qKlxuXHQgKiBVbmlxdWUgaGFzaCBvZiB0aGUgRGF0YSBSZXF1ZXN0IFRyYW5zYWN0aW9uIHRoYXQgcHJvZHVjZWQgdGhlIG91dGNvbWluZyByZXN1bHQuXG5cdCAqL1xuXHRkclR4SGFzaDogV2l0bmV0Lkhhc2hcblx0LyoqXG5cdCAqIFJBRCBoYXNoIG9mIHRoZSBSYWRvbiBSZXF1ZXN0IGJlaW5nIHNvbHZlZC5cblx0ICovXG5cdHF1ZXJ5UmFkSGFzaDogV2l0bmV0Lkhhc2hcblx0LyoqXG5cdCAqIFNMQSBwYXJhbWV0ZXJzIHJlcXVpcmVkIHRvIGJlIGZ1bGZpbGxlZCBieSB0aGUgV2l0bmV0IGJsb2NrY2hhaW4uXG5cdCAqL1xuXHRxdWVyeVBhcmFtczogV2l0T3JhY2xlUXVlcnlQYXJhbXNcblx0LyoqXG5cdCAqIFRpbWVzdGFtcCB3aGVuIHRoZSBkYXRhIHNvdXJjZXMgd2hlcmUgcXVlcmllZCBhbmQgdGhlIGNvbnRhaW5lZCByZXN1bHQgcHJvZHVjZWQuXG5cdCAqL1xuXHRyZXN1bHRUaW1lc3RhbXA6IG51bWJlclxuXHQvKipcblx0ICogQ0JPUi1lbmNvZGVkIGJ1ZmZlciBjb250YWluaW5nIHRoZSBhY3R1YWwgcmVzdWx0IGRhdGEgdG8gc29tZSBxdWVyeSBhcyBzb2x2ZWQgYnkgdGhlIFdpdG5ldCBibG9ja2NoYWluLlxuXHQgKi9cblx0cmVzdWx0Q2JvckJ5dGVzOiBXaXRuZXQuSGV4U3RyaW5nXG59XG5cbmZ1bmN0aW9uIF9pbnRvRGF0YVB1c2hSZXBvcnRTb2xpZGl0eShcblx0cmVwb3J0OiBXaXRuZXQuRGF0YVB1c2hSZXBvcnQsXG4pOiBfRGF0YVB1c2hSZXBvcnRTb2xpZGl0eSB7XG5cdHJldHVybiB7XG5cdFx0ZHJUeEhhc2g6IGAweCR7cmVwb3J0Lmhhc2h9YCxcblx0XHRxdWVyeVBhcmFtczoge1xuXHRcdFx0d2l0bmVzc2VzOiByZXBvcnQucXVlcnk/LndpdG5lc3NlcyB8fCAwLFxuXHRcdFx0dW5pdGFyeVJld2FyZDogcmVwb3J0LnF1ZXJ5Py51bml0YXJ5X3Jld2FyZCB8fCAwbixcblx0XHRcdHJlc3VsdE1heFNpemU6IDAsXG5cdFx0fSxcblx0XHRxdWVyeVJhZEhhc2g6IGAweCR7cmVwb3J0LnF1ZXJ5Py5yYWRfaGFzaH1gLFxuXHRcdHJlc3VsdENib3JCeXRlczogYDB4JHtyZXBvcnQucmVzdWx0Py5jYm9yX2J5dGVzfWAsXG5cdFx0cmVzdWx0VGltZXN0YW1wOiByZXBvcnQucmVzdWx0Py50aW1lc3RhbXAgfHwgMCxcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWJpRW5jb2RlRGF0YVB1c2hSZXBvcnQocmVwb3J0OiBXaXRuZXQuRGF0YVB1c2hSZXBvcnQpOiBhbnkge1xuXHRjb25zdCBpbnRlcm5hbCA9IF9pbnRvRGF0YVB1c2hSZXBvcnRTb2xpZGl0eShyZXBvcnQpXG5cdHJldHVybiBbXG5cdFx0aW50ZXJuYWwuZHJUeEhhc2gsXG5cdFx0aW50ZXJuYWwucXVlcnlSYWRIYXNoLFxuXHRcdGFiaUVuY29kZVdpdE9yYWNsZVF1ZXJ5UGFyYW1zKGludGVybmFsLnF1ZXJ5UGFyYW1zKSxcblx0XHRpbnRlcm5hbC5yZXN1bHRUaW1lc3RhbXAsXG5cdFx0aW50ZXJuYWwucmVzdWx0Q2JvckJ5dGVzLFxuXHRdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhYmlFbmNvZGVEYXRhUHVzaFJlcG9ydE1lc3NhZ2UoXG5cdHJlcG9ydDogV2l0bmV0LkRhdGFQdXNoUmVwb3J0LFxuKTogV2l0bmV0LkhleFN0cmluZyB7XG5cdHJldHVybiBBYmlDb2Rlci5kZWZhdWx0QWJpQ29kZXIoKS5lbmNvZGUoXG5cdFx0W1wiYnl0ZXMzMlwiLCBcImJ5dGVzMzJcIiwgXCIodWludDE2LCB1aW50MTYsIHVpbnQ2NClcIiwgXCJ1aW50NjRcIiwgXCJieXRlc1wiXSxcblx0XHRhYmlFbmNvZGVEYXRhUHVzaFJlcG9ydChyZXBvcnQpLFxuXHQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhYmlFbmNvZGVEYXRhUHVzaFJlcG9ydERpZ2VzdChcblx0cmVwb3J0OiBXaXRuZXQuRGF0YVB1c2hSZXBvcnQsXG4pOiBXaXRuZXQuSGV4U3RyaW5nIHtcblx0cmV0dXJuIHNvbGlkaXR5UGFja2VkS2VjY2FrMjU2KFxuXHRcdFtcImJ5dGVzXCJdLFxuXHRcdFthYmlFbmNvZGVEYXRhUHVzaFJlcG9ydE1lc3NhZ2UocmVwb3J0KV0sXG5cdClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFiaUVuY29kZVByaWNlRmVlZFVwZGF0ZUNvbmRpdGlvbnMoXG5cdGNvbmRpdGlvbnM6IFByaWNlRmVlZFVwZGF0ZUNvbmRpdGlvbnMsXG4pOiBhbnkge1xuXHRyZXR1cm4gW1xuXHRcdGNvbmRpdGlvbnMuY2FsbGJhY2tHYXMsXG5cdFx0Y29uZGl0aW9ucy5jb21wdXRlRU1BLFxuXHRcdGNvbmRpdGlvbnMuY29vbGRvd25TZWNzLFxuXHRcdGNvbmRpdGlvbnMuaGVhcnRiZWF0U2Vjcyxcblx0XHRNYXRoLmZsb29yKGNvbmRpdGlvbnMubWF4RGV2aWF0aW9uUGVyY2VudGFnZSAqIDEwKSxcblx0XHRjb25kaXRpb25zLm1pbldpdG5lc3Nlcyxcblx0XVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWJpRW5jb2RlV2l0T3JhY2xlUXVlcnlQYXJhbXMoXG5cdHF1ZXJ5UGFyYW1zOiBXaXRPcmFjbGVRdWVyeVBhcmFtcyxcbik6IGFueSB7XG5cdHJldHVybiBbXG5cdFx0cXVlcnlQYXJhbXM/LnJlc3VsdE1heFNpemUgfHwgMCxcblx0XHRxdWVyeVBhcmFtcz8ud2l0bmVzc2VzIHx8IDAsXG5cdFx0cXVlcnlQYXJhbXM/LnVuaXRhcnlSZXdhcmQgfHwgMCxcblx0XVxufVxuZXhwb3J0IGZ1bmN0aW9uIGFiaUVuY29kZVJhZG9uQXNzZXQoYXNzZXQ6IGFueSk6IGFueSB7XG5cdGlmIChhc3NldCBpbnN0YW5jZW9mIFdpdG5ldC5SYWRvbi5SYWRvblJldHJpZXZhbCkge1xuXHRcdHJldHVybiBbXG5cdFx0XHRhc3NldC5tZXRob2QsXG5cdFx0XHRhc3NldC51cmwgfHwgXCJcIixcblx0XHRcdGFzc2V0LmJvZHkgfHwgXCJcIixcblx0XHRcdGFzc2V0Py5oZWFkZXJzID8gT2JqZWN0LmVudHJpZXMoYXNzZXQuaGVhZGVycykgOiBbXSxcblx0XHRcdGFiaUVuY29kZVJhZG9uQXNzZXQoYXNzZXQuc2NyaXB0KSB8fCBcIjB4ODBcIixcblx0XHRdXG5cdH0gZWxzZSBpZiAoYXNzZXQgaW5zdGFuY2VvZiBXaXRuZXQuUmFkb24udHlwZXMuUmFkb25TY3JpcHQpIHtcblx0XHRyZXR1cm4gYXNzZXQudG9CeXRlY29kZSgpXG5cdH0gZWxzZSBpZiAoYXNzZXQgaW5zdGFuY2VvZiBXaXRuZXQuUmFkb24ucmVkdWNlcnMuQ2xhc3MpIHtcblx0XHRyZXR1cm4gW1xuXHRcdFx0YXNzZXQub3Bjb2RlLFxuXHRcdFx0YXNzZXQuZmlsdGVycz8ubWFwKChmaWx0ZXIpID0+IGFiaUVuY29kZVJhZG9uQXNzZXQoZmlsdGVyKSkgfHwgW10sXG5cdFx0XVxuXHR9IGVsc2UgaWYgKGFzc2V0IGluc3RhbmNlb2YgV2l0bmV0LlJhZG9uLmZpbHRlcnMuQ2xhc3MpIHtcblx0XHRyZXR1cm4gW1xuXHRcdFx0YXNzZXQub3Bjb2RlLFxuXHRcdFx0YDB4JHthc3NldC5hcmdzID8gY2Jvci5lbmNvZGUoYXNzZXQuYXJncykudG9TdHJpbmcoXCJoZXhcIikgOiBcIlwifWAsXG5cdFx0XVxuXHR9IGVsc2Uge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoYE5vdCBhIFJhZG9uIGFzc2V0OiAke2Fzc2V0fWApXG5cdH1cbn1cbiJdfQ==
|
|
274
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFcEMsT0FBTyxFQUFFLE9BQU8sSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFdEMsT0FBTyxFQUNOLFFBQVEsRUFDUixRQUFRLEVBRVIsdUJBQXVCLEdBQ3ZCLE1BQU0sUUFBUSxDQUFBO0FBQ2YsT0FBTyxFQUFFLE9BQU8sSUFBSSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDL0MsT0FBTyxFQUFFLE9BQU8sSUFBSSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBUWxDLE9BQU8sRUFDTixTQUFTLEVBQ1Qsc0JBQXNCLEVBQ3RCLDRCQUE0QixFQUM1QixhQUFhLEVBQ2IsbUJBQW1CLEVBQ25CLGFBQWEsR0FDYixNQUFNLGVBQWUsQ0FBQTtBQUV0QixjQUFjLG1CQUFtQixDQUFBO0FBRWpDLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxPQUFlO0lBQ3ZELE9BQU8sT0FBTyxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQ2pELENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLHVCQUF1QixDQUM1QyxRQUF5QjtJQUV6QixPQUFPLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ2pELE1BQU0sT0FBTyxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUM3RCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTSxVQUFVLEdBQUc7Z0JBQ2xCLG9DQUFvQztnQkFDcEMsdUNBQXVDO2FBQ3ZDLENBQUE7WUFD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QUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM1RCxPQUFPLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQTtJQUMxQixDQUFDO1NBQU0sSUFBSSxLQUFLLFlBQVksTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekQsT0FBTztZQUNOLEtBQUssQ0FBQyxNQUFNO1lBQ1osS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRTtTQUNqRSxDQUFBO0lBQ0YsQ0FBQztTQUFNLElBQUksS0FBSyxZQUFZLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hELE9BQU87WUFDTixLQUFLLENBQUMsTUFBTTtZQUNaLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7U0FDaEUsQ0FBQTtJQUNGLENBQUM7U0FBTSxDQUFDO1FBQ1AsTUFBTSxJQUFJLFNBQVMsQ0FBQyxzQkFBc0IsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0FBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdpdG5ldCB9IGZyb20gXCJAd2l0bmV0L3Nka1wiXG5cbmltcG9ydCB7IGRlZmF1bHQgYXMgY2JvciB9IGZyb20gXCJjYm9yXCJcblxuaW1wb3J0IHtcblx0QWJpQ29kZXIsXG5cdENvbnRyYWN0LFxuXHR0eXBlIEpzb25ScGNQcm92aWRlcixcblx0c29saWRpdHlQYWNrZWRLZWNjYWsyNTYsXG59IGZyb20gXCJldGhlcnNcIlxuaW1wb3J0IHsgZGVmYXVsdCBhcyBtZXJnZSB9IGZyb20gXCJsb2Rhc2gubWVyZ2VcIlxuaW1wb3J0IHsgZGVmYXVsdCBhcyBoZWxwZXJzIH0gZnJvbSBcIi4uL2Jpbi9oZWxwZXJzLmNqc1wiXG5pbXBvcnQgeyBBQklzIH0gZnJvbSBcIi4uL2luZGV4LmpzXCJcblxuaW1wb3J0IHR5cGUge1xuXHRQcmljZUZlZWRVcGRhdGVDb25kaXRpb25zLFxuXHRXaXRPcmFjbGVBcnRpZmFjdCxcblx0V2l0T3JhY2xlUXVlcnlQYXJhbXMsXG5cdFdpdE9yYWNsZVF1ZXJ5U3RhdHVzLFxufSBmcm9tIFwiLi90eXBlcy5qc1wiXG5pbXBvcnQge1xuXHRXaXRPcmFjbGUsXG5cdFdpdE9yYWNsZVJhZG9uUmVnaXN0cnksXG5cdFdpdE9yYWNsZVJhZG9uUmVxdWVzdEZhY3RvcnksXG5cdFdpdFByaWNlRmVlZHMsXG5cdFdpdFByaWNlRmVlZHNMZWdhY3ksXG5cdFdpdFJhbmRvbW5lc3MsXG59IGZyb20gXCIuL3dyYXBwZXJzLmpzXCJcblxuZXhwb3J0ICogZnJvbSBcIkB3aXRuZXQvc2RrL3V0aWxzXCJcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5ldHdvcmtUYWdzRnJvbVN0cmluZyhuZXR3b3JrOiBzdHJpbmcpIHtcblx0cmV0dXJuIGhlbHBlcnMuZ2V0TmV0d29ya1RhZ3NGcm9tU3RyaW5nKG5ldHdvcmspXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaFdpdE9yYWNsZUZyYW1ld29yayhcblx0cHJvdmlkZXI6IEpzb25ScGNQcm92aWRlcixcbik6IFByb21pc2U8eyBba2V5OiBzdHJpbmddOiBXaXRPcmFjbGVBcnRpZmFjdCB9PiB7XG5cdHJldHVybiBwcm92aWRlci5nZXROZXR3b3JrKCkudGhlbihhc3luYyAodmFsdWUpID0+IHtcblx0XHRjb25zdCBuZXR3b3JrID0gZ2V0RXZtTmV0d29ya0J5Q2hhaW5JZChOdW1iZXIodmFsdWUuY2hhaW5JZCkpXG5cdFx0aWYgKG5ldHdvcmspIHtcblx0XHRcdGNvbnN0IGV4Y2x1c2lvbnMgPSBbXG5cdFx0XHRcdFwiV2l0T3JhY2xlUmFkb25SZXF1ZXN0RmFjdG9yeU1vZGFsc1wiLFxuXHRcdFx0XHRcIldpdE9yYWNsZVJhZG9uUmVxdWVzdEZhY3RvcnlUZW1wbGF0ZXNcIixcblx0XHRcdF1cblx0XHRcdGNvbnN0IHRhcmdldHMgPSBbXG5cdFx0XHRcdFwiV2l0T3JhY2xlXCIsXG5cdFx0XHRcdFwiV2l0T3JhY2xlUmFkb25SZWdpc3RyeVwiLFxuXHRcdFx0XHRcIldpdE9yYWNsZVJhZG9uUmVxdWVzdEZhY3RvcnlcIixcblx0XHRcdFx0XCJXaXRQcmljZUZlZWRzXCIsXG5cdFx0XHRcdFwiV2l0UHJpY2VGZWVkc0xlZ2FjeVwiLFxuXHRcdFx0XHRcIldpdFJhbmRvbW5lc3NWMlwiLFxuXHRcdFx0XHRcIldpdFJhbmRvbW5lc3NWM1wiLFxuXHRcdFx0XVxuXHRcdFx0Y29uc3QgY29udHJhY3RzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0XHRPYmplY3QuZW50cmllcyhcblx0XHRcdFx0XHRoZWxwZXJzLmZsYXR0ZW5PYmplY3QoaGVscGVycy5nZXROZXR3b3JrQXJ0aWZhY3RzKG5ldHdvcmspKSxcblx0XHRcdFx0KS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gW2tleS5zcGxpdChcIi5cIikucG9wKCksIHZhbHVlXSksXG5cdFx0XHQpXG5cdFx0XHRsZXQgeyBhZGRyZXNzZXMgfSA9IGhlbHBlcnMucmVhZFdpdG5ldEpzb25GaWxlcyhcImFkZHJlc3Nlc1wiKVxuXHRcdFx0YWRkcmVzc2VzID0gbWVyZ2UoXG5cdFx0XHRcdGhlbHBlcnMuZ2V0TmV0d29ya0FkZHJlc3NlcyhuZXR3b3JrKSxcblx0XHRcdFx0YWRkcmVzc2VzW25ldHdvcmtdLFxuXHRcdFx0KVxuXHRcdFx0cmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKFxuXHRcdFx0XHRPYmplY3QuZW50cmllcyhoZWxwZXJzLmZsYXR0ZW5PYmplY3QoYWRkcmVzc2VzKSlcblx0XHRcdFx0XHQubWFwKChba2V5LCBhZGRyZXNzXSkgPT4gW2tleS5zcGxpdChcIi5cIikucG9wKCksIGFkZHJlc3NdKVxuXHRcdFx0XHRcdC5zb3J0KChbYV0sIFtiXSkgPT4gKGEgYXMgc3RyaW5nKS5sb2NhbGVDb21wYXJlKGIpKVxuXHRcdFx0XHRcdC5maWx0ZXIoKFtrZXldKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zdCBiYXNlID0gX2ZpbmRCYXNlKGNvbnRyYWN0cywga2V5KVxuXHRcdFx0XHRcdFx0cmV0dXJuIChcblx0XHRcdFx0XHRcdFx0dGFyZ2V0cy5pbmNsdWRlcyhrZXkpICYmXG5cdFx0XHRcdFx0XHRcdCFleGNsdXNpb25zLmluY2x1ZGVzKGJhc2UpICYmXG5cdFx0XHRcdFx0XHRcdChBQklzW2tleV0gfHwgQUJJc1tiYXNlXSlcblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdC5tYXAoYXN5bmMgKFtrZXksIGFkZHJlc3NdKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zdCBieXRlY29kZSA9IGF3YWl0IHByb3ZpZGVyXG5cdFx0XHRcdFx0XHRcdC5nZXRDb2RlKGFkZHJlc3MpXG5cdFx0XHRcdFx0XHRcdC5jYXRjaCgoZXJyKSA9PiBjb25zb2xlLmVycm9yKGBXYXJuaW5nOiAke2tleX06ICR7ZXJyfWApKVxuXHRcdFx0XHRcdFx0aWYgKGJ5dGVjb2RlPy5sZW5ndGggJiYgYnl0ZWNvZGUubGVuZ3RoID4gMikge1xuXHRcdFx0XHRcdFx0XHRsZXQgaW1wbCxcblx0XHRcdFx0XHRcdFx0XHRpc1VwZ3JhZGFibGUgPSBmYWxzZSxcblx0XHRcdFx0XHRcdFx0XHRpbnRlcmZhY2VJZCxcblx0XHRcdFx0XHRcdFx0XHR2ZXJzaW9uXG5cdFx0XHRcdFx0XHRcdGNvbnN0IGFwcGxpYW5jZSA9IG5ldyBDb250cmFjdChcblx0XHRcdFx0XHRcdFx0XHRhZGRyZXNzLFxuXHRcdFx0XHRcdFx0XHRcdEFCSXMuV2l0QXBwbGlhbmNlLFxuXHRcdFx0XHRcdFx0XHRcdHByb3ZpZGVyLFxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRcdFx0aW1wbCA9IGF3YWl0IGFwcGxpYW5jZS5jbGFzcy5zdGF0aWNDYWxsKClcblx0XHRcdFx0XHRcdFx0fSBjYXRjaCB7XG5cdFx0XHRcdFx0XHRcdFx0aW1wbCA9IGtleVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRcdFx0aW50ZXJmYWNlSWQgPSBhd2FpdCBhcHBsaWFuY2Uuc3BlY3Muc3RhdGljQ2FsbCgpXG5cdFx0XHRcdFx0XHRcdH0gY2F0Y2gge31cblx0XHRcdFx0XHRcdFx0Y29uc3QgdXBncmFkYWJsZSA9IG5ldyBDb250cmFjdChcblx0XHRcdFx0XHRcdFx0XHRhZGRyZXNzLFxuXHRcdFx0XHRcdFx0XHRcdEFCSXMuV2l0bmV0VXBncmFkYWJsZUJhc2UsXG5cdFx0XHRcdFx0XHRcdFx0cHJvdmlkZXIsXG5cdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0XHRpc1VwZ3JhZGFibGUgPSBhd2FpdCB1cGdyYWRhYmxlLmlzVXBncmFkYWJsZS5zdGF0aWNDYWxsKClcblx0XHRcdFx0XHRcdFx0fSBjYXRjaCB7XG5cdFx0XHRcdFx0XHRcdFx0aXNVcGdyYWRhYmxlID0gZmFsc2Vcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0XHRcdHZlcnNpb24gPSBhd2FpdCB1cGdyYWRhYmxlLnZlcnNpb24uc3RhdGljQ2FsbCgpXG5cdFx0XHRcdFx0XHRcdH0gY2F0Y2gge31cblx0XHRcdFx0XHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0XHRcdFx0XHRrZXksXG5cdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0YWJpOiBBQklzW2tleV0gfHwgQUJJc1tpbXBsXSxcblx0XHRcdFx0XHRcdFx0XHRcdGFkZHJlc3MsXG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzczogaW1wbCxcblx0XHRcdFx0XHRcdFx0XHRcdGdpdEhhc2g6IF92ZXJzaW9uTGFzdENvbW1pdE9mKHZlcnNpb24pLFxuXHRcdFx0XHRcdFx0XHRcdFx0aW50ZXJmYWNlSWQsXG5cdFx0XHRcdFx0XHRcdFx0XHRpc1VwZ3JhZGFibGUsXG5cdFx0XHRcdFx0XHRcdFx0XHRzZW1WZXI6IF92ZXJzaW9uVGFnT2YodmVyc2lvbiksXG5cdFx0XHRcdFx0XHRcdFx0XHR2ZXJzaW9uLFxuXHRcdFx0XHRcdFx0XHRcdH0gYXMgV2l0T3JhY2xlQXJ0aWZhY3QsXG5cdFx0XHRcdFx0XHRcdF1cblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBba2V5LCB1bmRlZmluZWRdXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSksXG5cdFx0XHQpXG5cdFx0XHRcdC50aGVuKChhcnRpZmFjdHMpID0+XG5cdFx0XHRcdFx0YXJ0aWZhY3RzLmZpbHRlcigoWywgYXJ0aWZhY3RdKSA9PiBhcnRpZmFjdCAhPT0gdW5kZWZpbmVkKSxcblx0XHRcdFx0KVxuXHRcdFx0XHQudGhlbihhc3luYyAoYXJ0aWZhY3RzKSA9PiB7XG5cdFx0XHRcdFx0aWYgKE9iamVjdC5mcm9tRW50cmllcyhhcnRpZmFjdHMpLldpdE9yYWNsZSkge1xuXHRcdFx0XHRcdFx0Y29uc3Qgc2lnbmVyID0gYXdhaXQgcHJvdmlkZXIuZ2V0U2lnbmVyKClcblx0XHRcdFx0XHRcdGNvbnN0IHdpdE9yYWNsZSA9IG5ldyBXaXRPcmFjbGUoc2lnbmVyLCBuZXR3b3JrKVxuXHRcdFx0XHRcdFx0bGV0IHdpdE9yYWNsZVJhZG9uUmVnaXN0cnk6IFdpdE9yYWNsZVJhZG9uUmVnaXN0cnlcblx0XHRcdFx0XHRcdGlmIChPYmplY3QuZnJvbUVudHJpZXMoYXJ0aWZhY3RzKS5XaXRPcmFjbFJhZG9uUmVnaXN0cnkpIHtcblx0XHRcdFx0XHRcdFx0d2l0T3JhY2xlUmFkb25SZWdpc3RyeSA9IG5ldyBXaXRPcmFjbGVSYWRvblJlZ2lzdHJ5KFxuXHRcdFx0XHRcdFx0XHRcdHNpZ25lcixcblx0XHRcdFx0XHRcdFx0XHRuZXR3b3JrLFxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRhcnRpZmFjdHMgPSBhd2FpdCBQcm9taXNlLmFsbChcblx0XHRcdFx0XHRcdFx0YXJ0aWZhY3RzLm1hcChhc3luYyAoW2tleSwgYXJ0aWZhY3RdKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0bGV0IHdyYXBwZXJcblx0XHRcdFx0XHRcdFx0XHRzd2l0Y2ggKGtleSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y2FzZSBcIldpdE9yYWNsZVwiOlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR3cmFwcGVyID0gd2l0T3JhY2xlXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdFx0XHRcdFx0XHRjYXNlIFwiV2l0T3JhY2xlUmFkb25SZWdpc3RyeVwiOlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR3cmFwcGVyID0gd2l0T3JhY2xlUmFkb25SZWdpc3RyeVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHRcdFx0XHRcdFx0Y2FzZSBcIldpdE9yYWNsZVJhZG9uUmVxdWVzdEZhY3RvcnlcIjpcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKHdpdE9yYWNsZVJhZG9uUmVnaXN0cnkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR3cmFwcGVyID0gYXdhaXQgV2l0T3JhY2xlUmFkb25SZXF1ZXN0RmFjdG9yeS5kZXBsb3llZChcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHdpdE9yYWNsZSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHdpdE9yYWNsZVJhZG9uUmVnaXN0cnksXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdFx0XHRcdFx0XHRjYXNlIFwiV2l0UHJpY2VGZWVkc1wiOlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR3cmFwcGVyID0gYXdhaXQgV2l0UHJpY2VGZWVkcy5hdChcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR3aXRPcmFjbGUsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0YXJ0aWZhY3QuYWRkcmVzcyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHRcdFx0XHRcdFx0Y2FzZSBcIldpdFByaWNlRmVlZHNMZWdhY3lcIjpcblx0XHRcdFx0XHRcdFx0XHRcdFx0d3JhcHBlciA9IGF3YWl0IFdpdFByaWNlRmVlZHNMZWdhY3kuYXQoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0d2l0T3JhY2xlLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGFydGlmYWN0LmFkZHJlc3MsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdFx0XHRcdFx0YnJlYWtcblx0XHRcdFx0XHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRrZXkuc3RhcnRzV2l0aChcIldpdFJhbmRvbW5lc3NcIikgfHxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRrZXkuc3RhcnRzV2l0aChcIldpdG5ldFJhbmRvbW5lc3NcIilcblx0XHRcdFx0XHRcdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0d3JhcHBlciA9IGF3YWl0IFdpdFJhbmRvbW5lc3MuYXQoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR3aXRPcmFjbGUsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRhcnRpZmFjdC5hZGRyZXNzLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gW2tleSwgeyAuLi5hcnRpZmFjdCwgd3JhcHBlciB9IGFzIFdpdE9yYWNsZUFydGlmYWN0XVxuXHRcdFx0XHRcdFx0XHR9KSxcblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhhcnRpZmFjdHMpXG5cdFx0XHRcdH0pXG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB7fVxuXHRcdH1cblx0fSlcbn1cblxuZnVuY3Rpb24gX2ZpbmRCYXNlKG9iajogeyBbazogc3RyaW5nXTogYW55IH0sIHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gT2JqZWN0LmVudHJpZXMob2JqKS5maW5kKChbLCBpbXBsXSkgPT4gaW1wbCA9PT0gdmFsdWUpPy5bMF0gfHwgXCJcIlxufVxuZnVuY3Rpb24gX3ZlcnNpb25UYWdPZih2ZXJzaW9uPzogc3RyaW5nKSB7XG5cdHJldHVybiB2ZXJzaW9uPy5zbGljZSgwLCA1KVxufVxuZnVuY3Rpb24gX3ZlcnNpb25MYXN0Q29tbWl0T2YodmVyc2lvbj86IHN0cmluZykge1xuXHRpZiAodmVyc2lvbikge1xuXHRcdHJldHVybiB2ZXJzaW9uPy5sZW5ndGggPj0gMjEgPyB2ZXJzaW9uPy5zbGljZSgtMTUsIC04KSA6IFwiXCJcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gdW5kZWZpbmVkXG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV2bU5ldHdvcmtBZGRyZXNzZXMobmV0d29yazogc3RyaW5nKTogYW55IHtcblx0cmV0dXJuIGhlbHBlcnMuZ2V0TmV0d29ya0FkZHJlc3NlcyhuZXR3b3JrKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXZtTmV0d29ya0J5Q2hhaW5JZChjaGFpbklkOiBudW1iZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRjb25zdCBmb3VuZCA9IE9iamVjdC5lbnRyaWVzKGhlbHBlcnMuc3VwcG9ydGVkTmV0d29ya3MoKSkuZmluZChcblx0XHQoWywgY29uZmlnXTogW3N0cmluZywgYW55XSkgPT5cblx0XHRcdGNvbmZpZz8ubmV0d29ya19pZC50b1N0cmluZygpID09PSBjaGFpbklkLnRvU3RyaW5nKCksXG5cdClcblx0aWYgKGZvdW5kKSByZXR1cm4gZm91bmRbMF1cblx0ZWxzZSByZXR1cm4gdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFdm1OZXR3b3JrSWQobmV0d29yazogc3RyaW5nKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgZm91bmQgPSBPYmplY3QuZW50cmllcyhoZWxwZXJzLnN1cHBvcnRlZE5ldHdvcmtzKCkpLmZpbmQoXG5cdFx0KFtrZXldOiBbc3RyaW5nLCBhbnldKSA9PiBrZXkudG9Mb3dlckNhc2UoKSA9PT0gbmV0d29yay50b0xvd2VyQ2FzZSgpLFxuXHQpXG5cdGlmIChmb3VuZCkgcmV0dXJuIChmb3VuZFsxXSBhcyBhbnkpPy5uZXR3b3JrX2lkO1xuXHRlbHNlIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFdm1OZXR3b3JrU3ltYm9sKG5ldHdvcms6IHN0cmluZyk6IHN0cmluZyB7XG5cdGNvbnN0IGZvdW5kID0gT2JqZWN0LmVudHJpZXMoaGVscGVycy5zdXBwb3J0ZWROZXR3b3JrcygpKS5maW5kKFxuXHRcdChba2V5XTogW3N0cmluZywgYW55XSkgPT4ga2V5LnRvTG93ZXJDYXNlKCkgPT09IG5ldHdvcmsudG9Mb3dlckNhc2UoKSxcblx0KVxuXHRpZiAoZm91bmQpIHJldHVybiAoZm91bmRbMV0gYXMgYW55KT8uc3ltYm9sXG5cdGVsc2UgcmV0dXJuIFwiRVRIXCJcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV2bU5ldHdvcmtzKCk6IHN0cmluZ1tdIHtcblx0cmV0dXJuIE9iamVjdC5rZXlzKGhlbHBlcnMuc3VwcG9ydGVkTmV0d29ya3MoKSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRXZtTmV0d29ya01haW5uZXQobmV0d29yazogc3RyaW5nKTogYm9vbGVhbiB7XG5cdGNvbnN0IGZvdW5kID0gT2JqZWN0LmVudHJpZXMoaGVscGVycy5zdXBwb3J0ZWROZXR3b3JrcygpKS5maW5kKFxuXHRcdChba2V5XSkgPT4ga2V5ID09PSBuZXR3b3JrLnRvTG93ZXJDYXNlKCksXG5cdClcblx0cmV0dXJuIChmb3VuZCBhcyBhbnkpPy5bMV0ubWFpbm5ldFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFdm1OZXR3b3JrU3VwcG9ydGVkKG5ldHdvcms6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gaGVscGVycy5zdXBwb3J0c05ldHdvcmsobmV0d29yaylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFiaURlY29kZVF1ZXJ5U3RhdHVzKHN0YXR1czogYmlnaW50KTogV2l0T3JhY2xlUXVlcnlTdGF0dXMge1xuXHRzd2l0Y2ggKHN0YXR1cykge1xuXHRcdGNhc2UgMW46XG5cdFx0XHRyZXR1cm4gXCJQb3N0ZWRcIlxuXHRcdGNhc2UgMm46XG5cdFx0XHRyZXR1cm4gXCJSZXBvcnRlZFwiXG5cdFx0Y2FzZSAzbjpcblx0XHRcdHJldHVybiBcIkZpbmFsaXplZFwiXG5cdFx0Y2FzZSA0bjpcblx0XHRcdHJldHVybiBcIkRlbGF5ZWRcIlxuXHRcdGNhc2UgNW46XG5cdFx0XHRyZXR1cm4gXCJFeHBpcmVkXCJcblx0XHRjYXNlIDZuOlxuXHRcdFx0cmV0dXJuIFwiRGlzcHV0ZWRcIlxuXHRcdGRlZmF1bHQ6XG5cdFx0XHRyZXR1cm4gXCJWb2lkXCJcblx0fVxufVxuXG4vKipcbiAqIENvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSByZXNvbHV0aW9uIG9mIHNvbWUgRGF0YSBSZXF1ZXN0IFRyYW5zYWN0aW9uIGluIHRoZSBXaXRuZXQgYmxvY2tjaGFpbi5cbiAqL1xudHlwZSBfRGF0YVB1c2hSZXBvcnRTb2xpZGl0eSA9IHtcblx0LyoqXG5cdCAqIFVuaXF1ZSBoYXNoIG9mIHRoZSBEYXRhIFJlcXVlc3QgVHJhbnNhY3Rpb24gdGhhdCBwcm9kdWNlZCB0aGUgb3V0Y29taW5nIHJlc3VsdC5cblx0ICovXG5cdGRyVHhIYXNoOiBXaXRuZXQuSGFzaFxuXHQvKipcblx0ICogUkFEIGhhc2ggb2YgdGhlIFJhZG9uIFJlcXVlc3QgYmVpbmcgc29sdmVkLlxuXHQgKi9cblx0cXVlcnlSYWRIYXNoOiBXaXRuZXQuSGFzaFxuXHQvKipcblx0ICogU0xBIHBhcmFtZXRlcnMgcmVxdWlyZWQgdG8gYmUgZnVsZmlsbGVkIGJ5IHRoZSBXaXRuZXQgYmxvY2tjaGFpbi5cblx0ICovXG5cdHF1ZXJ5UGFyYW1zOiBXaXRPcmFjbGVRdWVyeVBhcmFtc1xuXHQvKipcblx0ICogVGltZXN0YW1wIHdoZW4gdGhlIGRhdGEgc291cmNlcyB3aGVyZSBxdWVyaWVkIGFuZCB0aGUgY29udGFpbmVkIHJlc3VsdCBwcm9kdWNlZC5cblx0ICovXG5cdHJlc3VsdFRpbWVzdGFtcDogbnVtYmVyXG5cdC8qKlxuXHQgKiBDQk9SLWVuY29kZWQgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGFjdHVhbCByZXN1bHQgZGF0YSB0byBzb21lIHF1ZXJ5IGFzIHNvbHZlZCBieSB0aGUgV2l0bmV0IGJsb2NrY2hhaW4uXG5cdCAqL1xuXHRyZXN1bHRDYm9yQnl0ZXM6IFdpdG5ldC5IZXhTdHJpbmdcbn1cblxuZnVuY3Rpb24gX2ludG9EYXRhUHVzaFJlcG9ydFNvbGlkaXR5KFxuXHRyZXBvcnQ6IFdpdG5ldC5EYXRhUHVzaFJlcG9ydCxcbik6IF9EYXRhUHVzaFJlcG9ydFNvbGlkaXR5IHtcblx0cmV0dXJuIHtcblx0XHRkclR4SGFzaDogYDB4JHtyZXBvcnQuaGFzaH1gLFxuXHRcdHF1ZXJ5UGFyYW1zOiB7XG5cdFx0XHR3aXRuZXNzZXM6IHJlcG9ydC5xdWVyeT8ud2l0bmVzc2VzIHx8IDAsXG5cdFx0XHR1bml0YXJ5UmV3YXJkOiByZXBvcnQucXVlcnk/LnVuaXRhcnlfcmV3YXJkIHx8IDBuLFxuXHRcdFx0cmVzdWx0TWF4U2l6ZTogMCxcblx0XHR9LFxuXHRcdHF1ZXJ5UmFkSGFzaDogYDB4JHtyZXBvcnQucXVlcnk/LnJhZF9oYXNofWAsXG5cdFx0cmVzdWx0Q2JvckJ5dGVzOiBgMHgke3JlcG9ydC5yZXN1bHQ/LmNib3JfYnl0ZXN9YCxcblx0XHRyZXN1bHRUaW1lc3RhbXA6IHJlcG9ydC5yZXN1bHQ/LnRpbWVzdGFtcCB8fCAwLFxuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhYmlFbmNvZGVEYXRhUHVzaFJlcG9ydChyZXBvcnQ6IFdpdG5ldC5EYXRhUHVzaFJlcG9ydCk6IGFueSB7XG5cdGNvbnN0IGludGVybmFsID0gX2ludG9EYXRhUHVzaFJlcG9ydFNvbGlkaXR5KHJlcG9ydClcblx0cmV0dXJuIFtcblx0XHRpbnRlcm5hbC5kclR4SGFzaCxcblx0XHRpbnRlcm5hbC5xdWVyeVJhZEhhc2gsXG5cdFx0YWJpRW5jb2RlV2l0T3JhY2xlUXVlcnlQYXJhbXMoaW50ZXJuYWwucXVlcnlQYXJhbXMpLFxuXHRcdGludGVybmFsLnJlc3VsdFRpbWVzdGFtcCxcblx0XHRpbnRlcm5hbC5yZXN1bHRDYm9yQnl0ZXMsXG5cdF1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFiaUVuY29kZURhdGFQdXNoUmVwb3J0TWVzc2FnZShcblx0cmVwb3J0OiBXaXRuZXQuRGF0YVB1c2hSZXBvcnQsXG4pOiBXaXRuZXQuSGV4U3RyaW5nIHtcblx0cmV0dXJuIEFiaUNvZGVyLmRlZmF1bHRBYmlDb2RlcigpLmVuY29kZShcblx0XHRbXCJieXRlczMyXCIsIFwiYnl0ZXMzMlwiLCBcIih1aW50MTYsIHVpbnQxNiwgdWludDY0KVwiLCBcInVpbnQ2NFwiLCBcImJ5dGVzXCJdLFxuXHRcdGFiaUVuY29kZURhdGFQdXNoUmVwb3J0KHJlcG9ydCksXG5cdClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFiaUVuY29kZURhdGFQdXNoUmVwb3J0RGlnZXN0KFxuXHRyZXBvcnQ6IFdpdG5ldC5EYXRhUHVzaFJlcG9ydCxcbik6IFdpdG5ldC5IZXhTdHJpbmcge1xuXHRyZXR1cm4gc29saWRpdHlQYWNrZWRLZWNjYWsyNTYoXG5cdFx0W1wiYnl0ZXNcIl0sXG5cdFx0W2FiaUVuY29kZURhdGFQdXNoUmVwb3J0TWVzc2FnZShyZXBvcnQpXSxcblx0KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWJpRW5jb2RlUHJpY2VGZWVkVXBkYXRlQ29uZGl0aW9ucyhcblx0Y29uZGl0aW9uczogUHJpY2VGZWVkVXBkYXRlQ29uZGl0aW9ucyxcbik6IGFueSB7XG5cdHJldHVybiBbXG5cdFx0Y29uZGl0aW9ucy5jYWxsYmFja0dhcyxcblx0XHRjb25kaXRpb25zLmNvbXB1dGVFTUEsXG5cdFx0Y29uZGl0aW9ucy5jb29sZG93blNlY3MsXG5cdFx0Y29uZGl0aW9ucy5oZWFydGJlYXRTZWNzLFxuXHRcdE1hdGguZmxvb3IoY29uZGl0aW9ucy5tYXhEZXZpYXRpb25QZXJjZW50YWdlICogMTApLFxuXHRcdGNvbmRpdGlvbnMubWluV2l0bmVzc2VzLFxuXHRdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhYmlFbmNvZGVXaXRPcmFjbGVRdWVyeVBhcmFtcyhcblx0cXVlcnlQYXJhbXM6IFdpdE9yYWNsZVF1ZXJ5UGFyYW1zLFxuKTogYW55IHtcblx0cmV0dXJuIFtcblx0XHRxdWVyeVBhcmFtcz8ucmVzdWx0TWF4U2l6ZSB8fCAwLFxuXHRcdHF1ZXJ5UGFyYW1zPy53aXRuZXNzZXMgfHwgMCxcblx0XHRxdWVyeVBhcmFtcz8udW5pdGFyeVJld2FyZCB8fCAwLFxuXHRdXG59XG5leHBvcnQgZnVuY3Rpb24gYWJpRW5jb2RlUmFkb25Bc3NldChhc3NldDogYW55KTogYW55IHtcblx0aWYgKGFzc2V0IGluc3RhbmNlb2YgV2l0bmV0LlJhZG9uLlJhZG9uUmV0cmlldmFsKSB7XG5cdFx0cmV0dXJuIFtcblx0XHRcdGFzc2V0Lm1ldGhvZCxcblx0XHRcdGFzc2V0LnVybCB8fCBcIlwiLFxuXHRcdFx0YXNzZXQuYm9keSB8fCBcIlwiLFxuXHRcdFx0YXNzZXQ/LmhlYWRlcnMgPyBPYmplY3QuZW50cmllcyhhc3NldC5oZWFkZXJzKSA6IFtdLFxuXHRcdFx0YWJpRW5jb2RlUmFkb25Bc3NldChhc3NldC5zY3JpcHQpIHx8IFwiMHg4MFwiLFxuXHRcdF1cblx0fSBlbHNlIGlmIChhc3NldCBpbnN0YW5jZW9mIFdpdG5ldC5SYWRvbi50eXBlcy5SYWRvblNjcmlwdCkge1xuXHRcdHJldHVybiBhc3NldC50b0J5dGVjb2RlKClcblx0fSBlbHNlIGlmIChhc3NldCBpbnN0YW5jZW9mIFdpdG5ldC5SYWRvbi5yZWR1Y2Vycy5DbGFzcykge1xuXHRcdHJldHVybiBbXG5cdFx0XHRhc3NldC5vcGNvZGUsXG5cdFx0XHRhc3NldC5maWx0ZXJzPy5tYXAoKGZpbHRlcikgPT4gYWJpRW5jb2RlUmFkb25Bc3NldChmaWx0ZXIpKSB8fCBbXSxcblx0XHRdXG5cdH0gZWxzZSBpZiAoYXNzZXQgaW5zdGFuY2VvZiBXaXRuZXQuUmFkb24uZmlsdGVycy5DbGFzcykge1xuXHRcdHJldHVybiBbXG5cdFx0XHRhc3NldC5vcGNvZGUsXG5cdFx0XHRgMHgke2Fzc2V0LmFyZ3MgPyBjYm9yLmVuY29kZShhc3NldC5hcmdzKS50b1N0cmluZyhcImhleFwiKSA6IFwiXCJ9YCxcblx0XHRdXG5cdH0gZWxzZSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihgTm90IGEgUmFkb24gYXNzZXQ6ICR7YXNzZXR9YClcblx0fVxufVxuIl19
|