@bitgo-beta/sdk-coin-dot 1.3.3-alpha.4 → 1.3.3-alpha.6

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.
@@ -13,20 +13,96 @@ export declare enum SectionNames {
13
13
  * Method names for the transaction method. Names change based on the type of transaction e.g 'bond' for the staking transaction
14
14
  */
15
15
  export declare enum MethodNames {
16
+ /**
17
+ * Register a proxy account for the sender that is able to make calls on its behalf.
18
+ *
19
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#addproxydelegate-multiaddress-proxy_type-kitchensinkruntimeproxytype-delay-u32
20
+ */
16
21
  AddProxy = "addProxy",
22
+ /**
23
+ * Unregister a proxy account for the sender.
24
+ *
25
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#removeproxydelegate-multiaddress-proxy_type-kitchensinkruntimeproxytype-delay-u32
26
+ */
17
27
  RemoveProxy = "removeProxy",
28
+ /**
29
+ * Dispatch the given call from an account that the sender is authorised for through add_proxy.
30
+ *
31
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#proxyreal-multiaddress-force_proxy_type-optionkitchensinkruntimeproxytype-call-call
32
+ */
18
33
  Proxy = "proxy",
34
+ /**
35
+ * Take the origin account as a stash and lock up value of its balance. controller will be the account that controls it.
36
+ *
37
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#bondcontroller-multiaddress-value-compactu128-payee-palletstakingrewarddestination
38
+ */
19
39
  Bond = "bond",
40
+ /**
41
+ * Add some extra amount that have appeared in the stash free_balance into the balance up for staking.
42
+ *
43
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#bondextramax_additional-compactu128
44
+ */
20
45
  BondExtra = "bondExtra",
46
+ /**
47
+ * Transfer the entire transferable balance from the caller account.
48
+ *
49
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#transferalldest-multiaddress-keep_alive-bool
50
+ */
21
51
  TransferAll = "transferAll",
52
+ /**
53
+ * Same as the transfer call, but with a check that the transfer will not kill the origin account.
54
+ *
55
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#transferkeepalivedest-multiaddress-value-compactu128
56
+ */
22
57
  TransferKeepAlive = "transferKeepAlive",
58
+ /**
59
+ * Schedule a portion of the stash to be unlocked ready for transfer out after the bond period ends.
60
+ *
61
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#unbondvalue-compactu128
62
+ */
23
63
  Unbond = "unbond",
64
+ /**
65
+ * @deprecated Anonymous proxies were renamed to pure proxies.
66
+ *
67
+ * @see PureProxy
68
+ * @see https://polkadot.polkassembly.io/referendum/84
69
+ */
24
70
  Anonymous = "anonymous",
71
+ /**
72
+ * Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and initialize it with a proxy of proxy_type for origin sender.
73
+ *
74
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#createpureproxy_type-kitchensinkruntimeproxytype-delay-u32-index-u16
75
+ */
25
76
  PureProxy = "createPure",
77
+ /**
78
+ * Send a batch of dispatch calls.
79
+ *
80
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#batchcalls-veccall
81
+ */
26
82
  Batch = "batch",
83
+ /**
84
+ * Send a batch of dispatch calls and atomically execute them. The whole transaction will rollback and fail if any of the calls failed.
85
+ *
86
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#batchallcalls-veccall
87
+ */
27
88
  BatchAll = "batchAll",
89
+ /**
90
+ * Declare no desire to either validate or nominate.
91
+ *
92
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#chill
93
+ */
28
94
  Chill = "chill",
95
+ /**
96
+ * Remove any unlocked chunks from the unlocking queue from our management.
97
+ *
98
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#withdrawunbondednum_slashing_spans-u32
99
+ */
29
100
  WithdrawUnbonded = "withdrawUnbonded",
101
+ /**
102
+ * Pay out all the stakers behind a single validator for a single era.
103
+ *
104
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#payoutstakersvalidator_stash-accountid32-era-u32
105
+ */
30
106
  PayoutStakers = "payoutStakers"
31
107
  }
32
108
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"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"}
@@ -14,20 +14,96 @@ var SectionNames;
14
14
  */
15
15
  var MethodNames;
16
16
  (function (MethodNames) {
17
+ /**
18
+ * Register a proxy account for the sender that is able to make calls on its behalf.
19
+ *
20
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#addproxydelegate-multiaddress-proxy_type-kitchensinkruntimeproxytype-delay-u32
21
+ */
17
22
  MethodNames["AddProxy"] = "addProxy";
23
+ /**
24
+ * Unregister a proxy account for the sender.
25
+ *
26
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#removeproxydelegate-multiaddress-proxy_type-kitchensinkruntimeproxytype-delay-u32
27
+ */
18
28
  MethodNames["RemoveProxy"] = "removeProxy";
29
+ /**
30
+ * Dispatch the given call from an account that the sender is authorised for through add_proxy.
31
+ *
32
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#proxyreal-multiaddress-force_proxy_type-optionkitchensinkruntimeproxytype-call-call
33
+ */
19
34
  MethodNames["Proxy"] = "proxy";
35
+ /**
36
+ * Take the origin account as a stash and lock up value of its balance. controller will be the account that controls it.
37
+ *
38
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#bondcontroller-multiaddress-value-compactu128-payee-palletstakingrewarddestination
39
+ */
20
40
  MethodNames["Bond"] = "bond";
41
+ /**
42
+ * Add some extra amount that have appeared in the stash free_balance into the balance up for staking.
43
+ *
44
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#bondextramax_additional-compactu128
45
+ */
21
46
  MethodNames["BondExtra"] = "bondExtra";
47
+ /**
48
+ * Transfer the entire transferable balance from the caller account.
49
+ *
50
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#transferalldest-multiaddress-keep_alive-bool
51
+ */
22
52
  MethodNames["TransferAll"] = "transferAll";
53
+ /**
54
+ * Same as the transfer call, but with a check that the transfer will not kill the origin account.
55
+ *
56
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#transferkeepalivedest-multiaddress-value-compactu128
57
+ */
23
58
  MethodNames["TransferKeepAlive"] = "transferKeepAlive";
59
+ /**
60
+ * Schedule a portion of the stash to be unlocked ready for transfer out after the bond period ends.
61
+ *
62
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#unbondvalue-compactu128
63
+ */
24
64
  MethodNames["Unbond"] = "unbond";
65
+ /**
66
+ * @deprecated Anonymous proxies were renamed to pure proxies.
67
+ *
68
+ * @see PureProxy
69
+ * @see https://polkadot.polkassembly.io/referendum/84
70
+ */
25
71
  MethodNames["Anonymous"] = "anonymous";
72
+ /**
73
+ * Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and initialize it with a proxy of proxy_type for origin sender.
74
+ *
75
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#createpureproxy_type-kitchensinkruntimeproxytype-delay-u32-index-u16
76
+ */
26
77
  MethodNames["PureProxy"] = "createPure";
78
+ /**
79
+ * Send a batch of dispatch calls.
80
+ *
81
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#batchcalls-veccall
82
+ */
27
83
  MethodNames["Batch"] = "batch";
84
+ /**
85
+ * Send a batch of dispatch calls and atomically execute them. The whole transaction will rollback and fail if any of the calls failed.
86
+ *
87
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#batchallcalls-veccall
88
+ */
28
89
  MethodNames["BatchAll"] = "batchAll";
90
+ /**
91
+ * Declare no desire to either validate or nominate.
92
+ *
93
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#chill
94
+ */
29
95
  MethodNames["Chill"] = "chill";
96
+ /**
97
+ * Remove any unlocked chunks from the unlocking queue from our management.
98
+ *
99
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#withdrawunbondednum_slashing_spans-u32
100
+ */
30
101
  MethodNames["WithdrawUnbonded"] = "withdrawUnbonded";
102
+ /**
103
+ * Pay out all the stakers behind a single validator for a single era.
104
+ *
105
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#payoutstakersvalidator_stash-accountid32-era-u32
106
+ */
31
107
  MethodNames["PayoutStakers"] = "payoutStakers";
32
108
  })(MethodNames = exports.MethodNames || (exports.MethodNames = {}));
33
109
  /**
@@ -49,4 +125,4 @@ var TransactionTypes;
49
125
  TransactionTypes["ADDR_INIT"] = "addressInitialization";
50
126
  TransactionTypes["UNSTAKING"] = "unstaking";
51
127
  })(TransactionTypes = exports.TransactionTypes || (exports.TransactionTypes = {}));
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1BOztHQUVHO0FBQ0gsSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3RCLCtCQUFlLENBQUE7SUFDZixtQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsWUFBWSxHQUFaLG9CQUFZLEtBQVosb0JBQVksUUFHdkI7QUFFRDs7R0FFRztBQUNILElBQVksV0FnQlg7QUFoQkQsV0FBWSxXQUFXO0lBQ3JCLG9DQUFxQixDQUFBO0lBQ3JCLDBDQUEyQixDQUFBO0lBQzNCLDhCQUFlLENBQUE7SUFDZiw0QkFBYSxDQUFBO0lBQ2Isc0NBQXVCLENBQUE7SUFDdkIsMENBQTJCLENBQUE7SUFDM0Isc0RBQXVDLENBQUE7SUFDdkMsZ0NBQWlCLENBQUE7SUFDakIsc0NBQXVCLENBQUE7SUFDdkIsdUNBQXdCLENBQUE7SUFDeEIsOEJBQWUsQ0FBQTtJQUNmLG9DQUFxQixDQUFBO0lBQ3JCLDhCQUFlLENBQUE7SUFDZixvREFBcUMsQ0FBQTtJQUNyQyw4Q0FBK0IsQ0FBQTtBQUNqQyxDQUFDLEVBaEJXLFdBQVcsR0FBWCxtQkFBVyxLQUFYLG1CQUFXLFFBZ0J0QjtBQTRGRDs7O0dBR0c7QUFDSCxJQUFZLFNBTVg7QUFORCxXQUFZLFNBQVM7SUFDbkIsd0JBQVcsQ0FBQTtJQUNYLHlDQUE0QixDQUFBO0lBQzVCLGdDQUFtQixDQUFBO0lBQ25CLHNEQUF5QyxDQUFBO0lBQ3pDLHlDQUE0QixDQUFBO0FBQzlCLENBQUMsRUFOVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQU1wQjtBQTRJRCxJQUFZLGdCQUtYO0FBTEQsV0FBWSxnQkFBZ0I7SUFDMUIseUNBQXFCLENBQUE7SUFDckIsdUNBQW1CLENBQUE7SUFDbkIsdURBQW1DLENBQUE7SUFDbkMsMkNBQXVCLENBQUE7QUFDekIsQ0FBQyxFQUxXLGdCQUFnQixHQUFoQix3QkFBZ0IsS0FBaEIsd0JBQWdCLFFBSzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlLCBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGFzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgUG9sa2Fkb3RTcGVjTmFtZVR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJhc2VUeEluZm8sIFR5cGVSZWdpc3RyeSwgRGVjb2RlZFVuc2lnbmVkVHggfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlL2xpYi90eXBlcyc7XG5cbmV4cG9ydCB7IEhleFN0cmluZyB9IGZyb20gJ0Bwb2xrYWRvdC91dGlsL3R5cGVzJztcblxuLyoqXG4gKiBTZWN0aW9uIG5hbWVzIGZvciB0aGUgdHJhbnNhY3Rpb24gbWV0aG9kcy5cbiAqL1xuZXhwb3J0IGVudW0gU2VjdGlvbk5hbWVzIHtcbiAgUHJveHkgPSAncHJveHknLFxuICBTdGFraW5nID0gJ3N0YWtpbmcnLFxufVxuXG4vKipcbiAqIE1ldGhvZCBuYW1lcyBmb3IgdGhlIHRyYW5zYWN0aW9uIG1ldGhvZC4gTmFtZXMgY2hhbmdlIGJhc2VkIG9uIHRoZSB0eXBlIG9mIHRyYW5zYWN0aW9uIGUuZyAnYm9uZCcgZm9yIHRoZSBzdGFraW5nIHRyYW5zYWN0aW9uXG4gKi9cbmV4cG9ydCBlbnVtIE1ldGhvZE5hbWVzIHtcbiAgQWRkUHJveHkgPSAnYWRkUHJveHknLFxuICBSZW1vdmVQcm94eSA9ICdyZW1vdmVQcm94eScsXG4gIFByb3h5ID0gJ3Byb3h5JyxcbiAgQm9uZCA9ICdib25kJyxcbiAgQm9uZEV4dHJhID0gJ2JvbmRFeHRyYScsXG4gIFRyYW5zZmVyQWxsID0gJ3RyYW5zZmVyQWxsJyxcbiAgVHJhbnNmZXJLZWVwQWxpdmUgPSAndHJhbnNmZXJLZWVwQWxpdmUnLFxuICBVbmJvbmQgPSAndW5ib25kJyxcbiAgQW5vbnltb3VzID0gJ2Fub255bW91cycsXG4gIFB1cmVQcm94eSA9ICdjcmVhdGVQdXJlJywgLy8gQW5vbnltb3VzIHByb3hpZXMgd2VyZSByZW5hbWVkIHRvIHB1cmUgcHJveGllc1xuICBCYXRjaCA9ICdiYXRjaCcsXG4gIEJhdGNoQWxsID0gJ2JhdGNoQWxsJyxcbiAgQ2hpbGwgPSAnY2hpbGwnLFxuICBXaXRoZHJhd1VuYm9uZGVkID0gJ3dpdGhkcmF3VW5ib25kZWQnLFxuICBQYXlvdXRTdGFrZXJzID0gJ3BheW91dFN0YWtlcnMnLFxufVxuXG4vKipcbiAqIFRoZSB0cmFuc2FjdGlvbiBkYXRhIHJldHVybmVkIGZyb20gdGhlIHRvSnNvbigpIGZ1bmN0aW9uIG9mIGEgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeERhdGEge1xuICBpZDogc3RyaW5nO1xuICBzZW5kZXI6IHN0cmluZztcbiAgcmVmZXJlbmNlQmxvY2s6IHN0cmluZztcbiAgYmxvY2tOdW1iZXI6IG51bWJlcjtcbiAgZ2VuZXNpc0hhc2g6IHN0cmluZztcbiAgbm9uY2U6IG51bWJlcjtcbiAgc3BlY1ZlcnNpb246IG51bWJlcjtcbiAgdHJhbnNhY3Rpb25WZXJzaW9uOiBudW1iZXI7XG4gIGNoYWluTmFtZTogc3RyaW5nO1xuICBtZXRob2Q/OiBzdHJpbmc7XG4gIHNwZWNOYW1lPzogc3RyaW5nO1xuICBhbW91bnQ/OiBzdHJpbmc7XG4gIHRvPzogc3RyaW5nO1xuICB0aXA/OiBudW1iZXI7XG4gIGVyYVBlcmlvZD86IG51bWJlcjtcbiAgY29udHJvbGxlcj86IHN0cmluZztcbiAgcGF5ZWU/OiBzdHJpbmc7XG4gIG93bmVyPzogc3RyaW5nO1xuICBwcm94eVR5cGU/OiBzdHJpbmc7XG4gIGRlbGF5Pzogc3RyaW5nO1xuICBmb3JjZVByb3h5VHlwZT86IFByb3h5VHlwZTtcbiAgaW5kZXg/OiBzdHJpbmc7XG4gIGJhdGNoQ2FsbHM/OiBCYXRjaENhbGxPYmplY3RbXTtcbiAgbnVtU2xhc2hpbmdTcGFucz86IG51bWJlcjtcbiAgdmFsaWRhdG9yU3Rhc2g/OiBzdHJpbmc7XG4gIGNsYWltRXJhPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRyYW5zYWN0aW9uIG1ldGhvZCBzcGVjaWZpYyBhcmdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmZXJBcmdzIHtcbiAgZGVzdDogeyBpZDogc3RyaW5nIH07XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVHJhbnNhY3Rpb24gbWV0aG9kIHNwZWNpZmljIGFyZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFuc2ZlckFsbEFyZ3Mge1xuICBkZXN0OiB7IGlkOiBzdHJpbmcgfTtcbiAga2VlcEFsaXZlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRyYW5zYWN0aW9uIG1ldGhvZCBzcGVjaWZpYyBhcmdzXG4gKi9cbmV4cG9ydCB0eXBlIFN0YWtlQXJnc1BheWVlID1cbiAgfCAnU3Rha2VkJ1xuICB8ICdTdGFzaCdcbiAgfCAnQ29udHJvbGxlcidcbiAgfCB7XG4gICAgICBBY2NvdW50OiBzdHJpbmc7XG4gICAgfTtcblxuLyoqXG4gKiBUcmFuc2FjdGlvbiBtZXRob2Qgc3BlY2lmaWMgYXJnc1xuICovXG5leHBvcnQgdHlwZSBTdGFrZUFyZ3NQYXllZVJhdyA9IHsgY29udHJvbGxlcj86IG51bGw7IHN0YXNoPzogbnVsbDsgc3Rha2VkPzogbnVsbDsgYWNjb3VudD86IHN0cmluZyB9O1xuXG4vKipcbiAqIFRyYW5zYWN0aW9uIG1ldGhvZCBzcGVjaWZpYyBhcmdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3Rha2VBcmdzIHtcbiAgdmFsdWU6IHN0cmluZztcbiAgY29udHJvbGxlcjogeyBpZDogc3RyaW5nIH07XG4gIHBheWVlOiBTdGFrZUFyZ3NQYXllZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFrZU1vcmVBcmdzIHtcbiAgbWF4QWRkaXRpb25hbDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVuc3Rha2VBcmdzIHtcbiAgdmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXaXRoZHJhd1Vuc3Rha2VkQXJncyB7XG4gIG51bVNsYXNoaW5nU3BhbnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGFpbUFyZ3Mge1xuICB2YWxpZGF0b3JTdGFzaDogc3RyaW5nO1xuICBlcmE6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgdHlwZXMgb2YgcHJveGllcyB0aGF0IGNhbiBiZSBzZXR1cCBhbmQgdXNlZFxuICogaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9sZWFybi1wcm94aWVzI3Byb3h5LXR5cGVzXG4gKi9cbmV4cG9ydCBlbnVtIFByb3h5VHlwZSB7XG4gIEFOWSA9ICdBbnknLFxuICBOT05fVFJBTlNGRVIgPSAnTm9uVHJhbnNmZXInLFxuICBTVEFLSU5HID0gJ1N0YWtpbmcnLFxuICBJREVOVFRJVFlfSlVER0VNRU5UID0gJ0lkZW50aXR5SnVkZ2VtZW50JyxcbiAgQ0FOQ0VMX1BST1hZID0gJ0NhbmNlbFByb3h5Jyxcbn1cblxuLyoqXG4gKiBUcmFuc2FjdGlvbiBtZXRob2Qgc3BlY2lmaWMgYXJnc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFkZFByb3h5QXJncyB7XG4gIGRlbGVnYXRlOiBzdHJpbmcgfCBBY2NvdW50SWQ7XG4gIGRlbGF5OiBzdHJpbmc7XG4gIHByb3h5VHlwZTogUHJveHlUeXBlO1xufVxuXG4vKipcbiAqIFRyYW5zYWN0aW9uIG1ldGhvZCBzcGVjaWZpYyBhcmdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRkQW5vbnltb3VzUHJveHlBcmdzIHtcbiAgcHJveHlUeXBlOiBQcm94eVR5cGU7XG4gIGluZGV4OiBzdHJpbmc7XG4gIGRlbGF5OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVHJhbnNhY3Rpb24gbWV0aG9kIHNwZWNpZmljIGFyZ3NcbiAqL1xuZXhwb3J0IHR5cGUgQmF0Y2hDYWxsT2JqZWN0ID0ge1xuICBjYWxsSW5kZXg6IHN0cmluZztcbiAgYXJnczpcbiAgICB8IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICB8IEFkZFByb3h5QmF0Y2hDYWxsQXJnc1xuICAgIHwgQWRkQW5vbnltb3VzUHJveHlCYXRjaENhbGxBcmdzXG4gICAgfCBTdGFrZUJhdGNoQ2FsbEFyZ3NcbiAgICB8IFN0YWtlTW9yZUNhbGxBcmdzO1xufTtcbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hBcmdzIHtcbiAgY2FsbHM6IEJhdGNoQ2FsbE9iamVjdFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZEFub255bW91c1Byb3h5QmF0Y2hDYWxsQXJncyB7XG4gIHByb3h5X3R5cGU6IFByb3h5VHlwZTtcbiAgaW5kZXg6IG51bWJlcjtcbiAgZGVsYXk6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRQcm94eUJhdGNoQ2FsbEFyZ3Mge1xuICBkZWxlZ2F0ZTogc3RyaW5nIHwgQWNjb3VudElkO1xuICBwcm94eV90eXBlOiBQcm94eVR5cGU7XG4gIGRlbGF5OiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIEFjY291bnRJZCA9IHsgaWQ6IHN0cmluZyB9O1xuXG5leHBvcnQgdHlwZSBTdGFrZUJhdGNoQ2FsbFBheWVlU3Rha2VkID0geyBzdGFrZWQ6IG51bGwgfTtcbmV4cG9ydCB0eXBlIFN0YWtlQmF0Y2hDYWxsUGF5ZWVTdGFzaCA9IHsgc3Rhc2g6IG51bGwgfTtcbmV4cG9ydCB0eXBlIFN0YWtlQmF0Y2hDYWxsUGF5ZWVDb250cm9sbGVyID0geyBjb250cm9sbGVyOiBudWxsIH07XG5leHBvcnQgdHlwZSBTdGFrZUJhdGNoQ2FsbFBheWVlQWNjb3VudCA9IHsgYWNjb3VudDogc3RyaW5nIH07XG5cbmV4cG9ydCB0eXBlIFN0YWtlQmF0Y2hDYWxsUGF5ZWUgPVxuICB8IFN0YWtlQmF0Y2hDYWxsUGF5ZWVTdGFrZWRcbiAgfCBTdGFrZUJhdGNoQ2FsbFBheWVlU3Rhc2hcbiAgfCBTdGFrZUJhdGNoQ2FsbFBheWVlQ29udHJvbGxlclxuICB8IFN0YWtlQmF0Y2hDYWxsUGF5ZWVBY2NvdW50O1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWtlQmF0Y2hDYWxsQXJncyB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGNvbnRyb2xsZXI6IHsgaWQ6IHN0cmluZyB9O1xuICBwYXllZTogU3Rha2VCYXRjaENhbGxQYXllZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbnN0YWtlQmF0Y2hDYWxsQXJncyB7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3Rha2VNb3JlQ2FsbEFyZ3Mge1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRyYW5zYWN0aW9uIG1ldGhvZCBzcGVjaWZpYyBhcmdzXG4gKi9cbmV4cG9ydCB0eXBlIFByb3h5Q2FsbEFyZ3MgPSB7XG4gIGNhbGxJbmRleDogc3RyaW5nO1xuICBhcmdzOiBUcmFuc2ZlckFyZ3M7XG59O1xuXG4vKipcbiAqIFRyYW5zYWN0aW9uIG1ldGhvZCBzcGVjaWZpYyBhcmdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJveHlBcmdzIHtcbiAgcmVhbDogc3RyaW5nIHwgQWNjb3VudElkO1xuICBmb3JjZVByb3h5VHlwZTogUHJveHlUeXBlO1xufVxuXG4vKipcbiAqIERlY29kZWQgVHhNZXRob2QgZnJvbSBhIHRyYW5zYWN0aW9uIGhleFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR4TWV0aG9kIHtcbiAgYXJnczpcbiAgICB8IFRyYW5zZmVyQXJnc1xuICAgIHwgVHJhbnNmZXJBbGxBcmdzXG4gICAgfCBTdGFrZUFyZ3NcbiAgICB8IFN0YWtlTW9yZUFyZ3NcbiAgICB8IEFkZFByb3h5QXJnc1xuICAgIHwgUHJveHlBcmdzXG4gICAgfCBVbnN0YWtlQXJnc1xuICAgIHwgQWRkQW5vbnltb3VzUHJveHlBcmdzXG4gICAgfCBCYXRjaEFyZ3NcbiAgICB8IFdpdGhkcmF3VW5zdGFrZWRBcmdzXG4gICAgfCBDbGFpbUFyZ3M7XG4gIG5hbWU6IE1ldGhvZE5hbWVzO1xuICBwYWxsZXQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBNb2RpZmllZCB1bnNpZ25lZCB0cmFuc2FjdGlvbiB3aXRoIGEgZGVjb2RlZCBtZXRob2QgaW5zdGVhZCBvZiBhIG1ldGhvZCBoZXhcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWNvZGVkVHggZXh0ZW5kcyBPbWl0PERlY29kZWRVbnNpZ25lZFR4LCAnbWV0aG9kJz4ge1xuICBtZXRob2Q6IFR4TWV0aG9kO1xufVxuXG4vKipcbiAqIEJhc2UgdHJhbnNhY3Rpb24gaW5mbyBzaGFyZWQgYWNyb3NzIGFsbCB0eXBlcyBvZiB0cmFuc2FjdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVCYXNlVHhJbmZvIHtcbiAgYmFzZVR4SW5mbzogQmFzZVR4SW5mbztcbiAgb3B0aW9uczoge1xuICAgIG1ldGFkYXRhUnBjOiBgMHgke3N0cmluZ31gO1xuICAgIHJlZ2lzdHJ5OiBUeXBlUmVnaXN0cnk7XG4gICAgaXNJbW1vcnRhbEVyYT86IGJvb2xlYW47XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgdHlwZTogVHJhbnNhY3Rpb25UeXBlO1xuICBmb3JjZVByb3h5VHlwZT86IFByb3h5VHlwZTtcbiAgY29udHJvbGxlcj86IHN0cmluZztcbiAgcGF5ZWU/OiBzdHJpbmc7XG4gIG93bmVyPzogc3RyaW5nO1xuICBwcm94eVR5cGU/OiBzdHJpbmc7XG4gIGRlbGF5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBUcmFuc2FjdGlvblR5cGVzIHtcbiAgVFJBTlNGRVIgPSAndHJhbnNmZXInLFxuICBTVEFLSU5HID0gJ3N0YWtpbmcnLFxuICBBRERSX0lOSVQgPSAnYWRkcmVzc0luaXRpYWxpemF0aW9uJyxcbiAgVU5TVEFLSU5HID0gJ3Vuc3Rha2luZycsXG59XG5leHBvcnQgaW50ZXJmYWNlIE1hdGVyaWFsIHtcbiAgZ2VuZXNpc0hhc2g6IHN0cmluZztcbiAgY2hhaW5OYW1lOiBzdHJpbmc7XG4gIHNwZWNOYW1lOiBQb2xrYWRvdFNwZWNOYW1lVHlwZTtcbiAgc3BlY1ZlcnNpb246IG51bWJlcjtcbiAgdHhWZXJzaW9uOiBudW1iZXI7XG4gIG1ldGFkYXRhOiBgMHgke3N0cmluZ31gO1xufVxuIl19
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1BOztHQUVHO0FBQ0gsSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3RCLCtCQUFlLENBQUE7SUFDZixtQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsWUFBWSxHQUFaLG9CQUFZLEtBQVosb0JBQVksUUFHdkI7QUFFRDs7R0FFRztBQUNILElBQVksV0E0Rlg7QUE1RkQsV0FBWSxXQUFXO0lBQ3JCOzs7O09BSUc7SUFDSCxvQ0FBcUIsQ0FBQTtJQUNyQjs7OztPQUlHO0lBQ0gsMENBQTJCLENBQUE7SUFDM0I7Ozs7T0FJRztJQUNILDhCQUFlLENBQUE7SUFDZjs7OztPQUlHO0lBQ0gsNEJBQWEsQ0FBQTtJQUNiOzs7O09BSUc7SUFDSCxzQ0FBdUIsQ0FBQTtJQUN2Qjs7OztPQUlHO0lBQ0gsMENBQTJCLENBQUE7SUFDM0I7Ozs7T0FJRztJQUNILHNEQUF1QyxDQUFBO0lBQ3ZDOzs7O09BSUc7SUFDSCxnQ0FBaUIsQ0FBQTtJQUNqQjs7Ozs7T0FLRztJQUNILHNDQUF1QixDQUFBO0lBQ3ZCOzs7O09BSUc7SUFDSCx1Q0FBd0IsQ0FBQTtJQUN4Qjs7OztPQUlHO0lBQ0gsOEJBQWUsQ0FBQTtJQUNmOzs7O09BSUc7SUFDSCxvQ0FBcUIsQ0FBQTtJQUNyQjs7OztPQUlHO0lBQ0gsOEJBQWUsQ0FBQTtJQUNmOzs7O09BSUc7SUFDSCxvREFBcUMsQ0FBQTtJQUNyQzs7OztPQUlHO0lBQ0gsOENBQStCLENBQUE7QUFDakMsQ0FBQyxFQTVGVyxXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQTRGdEI7QUE0RkQ7OztHQUdHO0FBQ0gsSUFBWSxTQU1YO0FBTkQsV0FBWSxTQUFTO0lBQ25CLHdCQUFXLENBQUE7SUFDWCx5Q0FBNEIsQ0FBQTtJQUM1QixnQ0FBbUIsQ0FBQTtJQUNuQixzREFBeUMsQ0FBQTtJQUN6Qyx5Q0FBNEIsQ0FBQTtBQUM5QixDQUFDLEVBTlcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFNcEI7QUE4SUQsSUFBWSxnQkFLWDtBQUxELFdBQVksZ0JBQWdCO0lBQzFCLHlDQUFxQixDQUFBO0lBQ3JCLHVDQUFtQixDQUFBO0lBQ25CLHVEQUFtQyxDQUFBO0lBQ25DLDJDQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFMVyxnQkFBZ0IsR0FBaEIsd0JBQWdCLEtBQWhCLHdCQUFnQixRQUszQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSwgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiBhcyBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFBvbGthZG90U3BlY05hbWVUeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBCYXNlVHhJbmZvLCBUeXBlUmVnaXN0cnksIERlY29kZWRVbnNpZ25lZFR4IH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItY29yZS9saWIvdHlwZXMnO1xuXG5leHBvcnQgeyBIZXhTdHJpbmcgfSBmcm9tICdAcG9sa2Fkb3QvdXRpbC90eXBlcyc7XG5cbi8qKlxuICogU2VjdGlvbiBuYW1lcyBmb3IgdGhlIHRyYW5zYWN0aW9uIG1ldGhvZHMuXG4gKi9cbmV4cG9ydCBlbnVtIFNlY3Rpb25OYW1lcyB7XG4gIFByb3h5ID0gJ3Byb3h5JyxcbiAgU3Rha2luZyA9ICdzdGFraW5nJyxcbn1cblxuLyoqXG4gKiBNZXRob2QgbmFtZXMgZm9yIHRoZSB0cmFuc2FjdGlvbiBtZXRob2QuIE5hbWVzIGNoYW5nZSBiYXNlZCBvbiB0aGUgdHlwZSBvZiB0cmFuc2FjdGlvbiBlLmcgJ2JvbmQnIGZvciB0aGUgc3Rha2luZyB0cmFuc2FjdGlvblxuICovXG5leHBvcnQgZW51bSBNZXRob2ROYW1lcyB7XG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIHByb3h5IGFjY291bnQgZm9yIHRoZSBzZW5kZXIgdGhhdCBpcyBhYmxlIHRvIG1ha2UgY2FsbHMgb24gaXRzIGJlaGFsZi5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BvbGthZG90LmpzLm9yZy9kb2NzL3N1YnN0cmF0ZS9leHRyaW5zaWNzLyNhZGRwcm94eWRlbGVnYXRlLW11bHRpYWRkcmVzcy1wcm94eV90eXBlLWtpdGNoZW5zaW5rcnVudGltZXByb3h5dHlwZS1kZWxheS11MzJcbiAgICovXG4gIEFkZFByb3h5ID0gJ2FkZFByb3h5JyxcbiAgLyoqXG4gICAqIFVucmVnaXN0ZXIgYSBwcm94eSBhY2NvdW50IGZvciB0aGUgc2VuZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcG9sa2Fkb3QuanMub3JnL2RvY3Mvc3Vic3RyYXRlL2V4dHJpbnNpY3MvI3JlbW92ZXByb3h5ZGVsZWdhdGUtbXVsdGlhZGRyZXNzLXByb3h5X3R5cGUta2l0Y2hlbnNpbmtydW50aW1lcHJveHl0eXBlLWRlbGF5LXUzMlxuICAgKi9cbiAgUmVtb3ZlUHJveHkgPSAncmVtb3ZlUHJveHknLFxuICAvKipcbiAgICogRGlzcGF0Y2ggdGhlIGdpdmVuIGNhbGwgZnJvbSBhbiBhY2NvdW50IHRoYXQgdGhlIHNlbmRlciBpcyBhdXRob3Jpc2VkIGZvciB0aHJvdWdoIGFkZF9wcm94eS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BvbGthZG90LmpzLm9yZy9kb2NzL3N1YnN0cmF0ZS9leHRyaW5zaWNzLyNwcm94eXJlYWwtbXVsdGlhZGRyZXNzLWZvcmNlX3Byb3h5X3R5cGUtb3B0aW9ua2l0Y2hlbnNpbmtydW50aW1lcHJveHl0eXBlLWNhbGwtY2FsbFxuICAgKi9cbiAgUHJveHkgPSAncHJveHknLFxuICAvKipcbiAgICogVGFrZSB0aGUgb3JpZ2luIGFjY291bnQgYXMgYSBzdGFzaCBhbmQgbG9jayB1cCB2YWx1ZSBvZiBpdHMgYmFsYW5jZS4gY29udHJvbGxlciB3aWxsIGJlIHRoZSBhY2NvdW50IHRoYXQgY29udHJvbHMgaXQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wb2xrYWRvdC5qcy5vcmcvZG9jcy9zdWJzdHJhdGUvZXh0cmluc2ljcy8jYm9uZGNvbnRyb2xsZXItbXVsdGlhZGRyZXNzLXZhbHVlLWNvbXBhY3R1MTI4LXBheWVlLXBhbGxldHN0YWtpbmdyZXdhcmRkZXN0aW5hdGlvblxuICAgKi9cbiAgQm9uZCA9ICdib25kJyxcbiAgLyoqXG4gICAqIEFkZCBzb21lIGV4dHJhIGFtb3VudCB0aGF0IGhhdmUgYXBwZWFyZWQgaW4gdGhlIHN0YXNoIGZyZWVfYmFsYW5jZSBpbnRvIHRoZSBiYWxhbmNlIHVwIGZvciBzdGFraW5nLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcG9sa2Fkb3QuanMub3JnL2RvY3Mvc3Vic3RyYXRlL2V4dHJpbnNpY3MvI2JvbmRleHRyYW1heF9hZGRpdGlvbmFsLWNvbXBhY3R1MTI4XG4gICAqL1xuICBCb25kRXh0cmEgPSAnYm9uZEV4dHJhJyxcbiAgLyoqXG4gICAqIFRyYW5zZmVyIHRoZSBlbnRpcmUgdHJhbnNmZXJhYmxlIGJhbGFuY2UgZnJvbSB0aGUgY2FsbGVyIGFjY291bnQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wb2xrYWRvdC5qcy5vcmcvZG9jcy9zdWJzdHJhdGUvZXh0cmluc2ljcy8jdHJhbnNmZXJhbGxkZXN0LW11bHRpYWRkcmVzcy1rZWVwX2FsaXZlLWJvb2xcbiAgICovXG4gIFRyYW5zZmVyQWxsID0gJ3RyYW5zZmVyQWxsJyxcbiAgLyoqXG4gICAqIFNhbWUgYXMgdGhlIHRyYW5zZmVyIGNhbGwsIGJ1dCB3aXRoIGEgY2hlY2sgdGhhdCB0aGUgdHJhbnNmZXIgd2lsbCBub3Qga2lsbCB0aGUgb3JpZ2luIGFjY291bnQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wb2xrYWRvdC5qcy5vcmcvZG9jcy9zdWJzdHJhdGUvZXh0cmluc2ljcy8jdHJhbnNmZXJrZWVwYWxpdmVkZXN0LW11bHRpYWRkcmVzcy12YWx1ZS1jb21wYWN0dTEyOFxuICAgKi9cbiAgVHJhbnNmZXJLZWVwQWxpdmUgPSAndHJhbnNmZXJLZWVwQWxpdmUnLFxuICAvKipcbiAgICogU2NoZWR1bGUgYSBwb3J0aW9uIG9mIHRoZSBzdGFzaCB0byBiZSB1bmxvY2tlZCByZWFkeSBmb3IgdHJhbnNmZXIgb3V0IGFmdGVyIHRoZSBib25kIHBlcmlvZCBlbmRzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcG9sa2Fkb3QuanMub3JnL2RvY3Mvc3Vic3RyYXRlL2V4dHJpbnNpY3MvI3VuYm9uZHZhbHVlLWNvbXBhY3R1MTI4XG4gICAqL1xuICBVbmJvbmQgPSAndW5ib25kJyxcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIEFub255bW91cyBwcm94aWVzIHdlcmUgcmVuYW1lZCB0byBwdXJlIHByb3hpZXMuXG4gICAqXG4gICAqIEBzZWUgUHVyZVByb3h5XG4gICAqIEBzZWUgaHR0cHM6Ly9wb2xrYWRvdC5wb2xrYXNzZW1ibHkuaW8vcmVmZXJlbmR1bS84NFxuICAgKi9cbiAgQW5vbnltb3VzID0gJ2Fub255bW91cycsXG4gIC8qKlxuICAgKiBTcGF3biBhIGZyZXNoIG5ldyBhY2NvdW50IHRoYXQgaXMgZ3VhcmFudGVlZCB0byBiZSBvdGhlcndpc2UgaW5hY2Nlc3NpYmxlLCBhbmQgaW5pdGlhbGl6ZSBpdCB3aXRoIGEgcHJveHkgb2YgcHJveHlfdHlwZSBmb3Igb3JpZ2luIHNlbmRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BvbGthZG90LmpzLm9yZy9kb2NzL3N1YnN0cmF0ZS9leHRyaW5zaWNzLyNjcmVhdGVwdXJlcHJveHlfdHlwZS1raXRjaGVuc2lua3J1bnRpbWVwcm94eXR5cGUtZGVsYXktdTMyLWluZGV4LXUxNlxuICAgKi9cbiAgUHVyZVByb3h5ID0gJ2NyZWF0ZVB1cmUnLCAvLyBBbm9ueW1vdXMgcHJveGllcyB3ZXJlIHJlbmFtZWQgdG8gcHVyZSBwcm94aWVzXG4gIC8qKlxuICAgKiBTZW5kIGEgYmF0Y2ggb2YgZGlzcGF0Y2ggY2FsbHMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wb2xrYWRvdC5qcy5vcmcvZG9jcy9zdWJzdHJhdGUvZXh0cmluc2ljcy8jYmF0Y2hjYWxscy12ZWNjYWxsXG4gICAqL1xuICBCYXRjaCA9ICdiYXRjaCcsXG4gIC8qKlxuICAgKiBTZW5kIGEgYmF0Y2ggb2YgZGlzcGF0Y2ggY2FsbHMgYW5kIGF0b21pY2FsbHkgZXhlY3V0ZSB0aGVtLiBUaGUgd2hvbGUgdHJhbnNhY3Rpb24gd2lsbCByb2xsYmFjayBhbmQgZmFpbCBpZiBhbnkgb2YgdGhlIGNhbGxzIGZhaWxlZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BvbGthZG90LmpzLm9yZy9kb2NzL3N1YnN0cmF0ZS9leHRyaW5zaWNzLyNiYXRjaGFsbGNhbGxzLXZlY2NhbGxcbiAgICovXG4gIEJhdGNoQWxsID0gJ2JhdGNoQWxsJyxcbiAgLyoqXG4gICAqIERlY2xhcmUgbm8gZGVzaXJlIHRvIGVpdGhlciB2YWxpZGF0ZSBvciBub21pbmF0ZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BvbGthZG90LmpzLm9yZy9kb2NzL3N1YnN0cmF0ZS9leHRyaW5zaWNzLyNjaGlsbFxuICAgKi9cbiAgQ2hpbGwgPSAnY2hpbGwnLFxuICAvKipcbiAgICogUmVtb3ZlIGFueSB1bmxvY2tlZCBjaHVua3MgZnJvbSB0aGUgdW5sb2NraW5nIHF1ZXVlIGZyb20gb3VyIG1hbmFnZW1lbnQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wb2xrYWRvdC5qcy5vcmcvZG9jcy9zdWJzdHJhdGUvZXh0cmluc2ljcy8jd2l0aGRyYXd1bmJvbmRlZG51bV9zbGFzaGluZ19zcGFucy11MzJcbiAgICovXG4gIFdpdGhkcmF3VW5ib25kZWQgPSAnd2l0aGRyYXdVbmJvbmRlZCcsXG4gIC8qKlxuICAgKiBQYXkgb3V0IGFsbCB0aGUgc3Rha2VycyBiZWhpbmQgYSBzaW5nbGUgdmFsaWRhdG9yIGZvciBhIHNpbmdsZSBlcmEuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wb2xrYWRvdC5qcy5vcmcvZG9jcy9zdWJzdHJhdGUvZXh0cmluc2ljcy8jcGF5b3V0c3Rha2Vyc3ZhbGlkYXRvcl9zdGFzaC1hY2NvdW50aWQzMi1lcmEtdTMyXG4gICAqL1xuICBQYXlvdXRTdGFrZXJzID0gJ3BheW91dFN0YWtlcnMnLFxufVxuXG4vKipcbiAqIFRoZSB0cmFuc2FjdGlvbiBkYXRhIHJldHVybmVkIGZyb20gdGhlIHRvSnNvbigpIGZ1bmN0aW9uIG9mIGEgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeERhdGEge1xuICBpZDogc3RyaW5nO1xuICBzZW5kZXI6IHN0cmluZztcbiAgcmVmZXJlbmNlQmxvY2s6IHN0cmluZztcbiAgYmxvY2tOdW1iZXI6IG51bWJlcjtcbiAgZ2VuZXNpc0hhc2g6IHN0cmluZztcbiAgbm9uY2U6IG51bWJlcjtcbiAgc3BlY1ZlcnNpb246IG51bWJlcjtcbiAgdHJhbnNhY3Rpb25WZXJzaW9uOiBudW1iZXI7XG4gIGNoYWluTmFtZTogc3RyaW5nO1xuICBtZXRob2Q/OiBzdHJpbmc7XG4gIHNwZWNOYW1lPzogc3RyaW5nO1xuICBhbW91bnQ/OiBzdHJpbmc7XG4gIHRvPzogc3RyaW5nO1xuICB0aXA/OiBudW1iZXI7XG4gIGVyYVBlcmlvZD86IG51bWJlcjtcbiAgY29udHJvbGxlcj86IHN0cmluZztcbiAgcGF5ZWU/OiBzdHJpbmc7XG4gIG93bmVyPzogc3RyaW5nO1xuICBwcm94eVR5cGU/OiBzdHJpbmc7XG4gIGRlbGF5Pzogc3RyaW5nO1xuICBmb3JjZVByb3h5VHlwZT86IFByb3h5VHlwZTtcbiAgaW5kZXg/OiBzdHJpbmc7XG4gIGJhdGNoQ2FsbHM/OiBCYXRjaENhbGxPYmplY3RbXTtcbiAgbnVtU2xhc2hpbmdTcGFucz86IG51bWJlcjtcbiAgdmFsaWRhdG9yU3Rhc2g/OiBzdHJpbmc7XG4gIGNsYWltRXJhPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRyYW5zYWN0aW9uIG1ldGhvZCBzcGVjaWZpYyBhcmdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmZXJBcmdzIHtcbiAgZGVzdDogeyBpZDogc3RyaW5nIH07XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVHJhbnNhY3Rpb24gbWV0aG9kIHNwZWNpZmljIGFyZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFuc2ZlckFsbEFyZ3Mge1xuICBkZXN0OiB7IGlkOiBzdHJpbmcgfTtcbiAga2VlcEFsaXZlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRyYW5zYWN0aW9uIG1ldGhvZCBzcGVjaWZpYyBhcmdzXG4gKi9cbmV4cG9ydCB0eXBlIFN0YWtlQXJnc1BheWVlID1cbiAgfCAnU3Rha2VkJ1xuICB8ICdTdGFzaCdcbiAgfCAnQ29udHJvbGxlcidcbiAgfCB7XG4gICAgICBBY2NvdW50OiBzdHJpbmc7XG4gICAgfTtcblxuLyoqXG4gKiBUcmFuc2FjdGlvbiBtZXRob2Qgc3BlY2lmaWMgYXJnc1xuICovXG5leHBvcnQgdHlwZSBTdGFrZUFyZ3NQYXllZVJhdyA9IHsgY29udHJvbGxlcj86IG51bGw7IHN0YXNoPzogbnVsbDsgc3Rha2VkPzogbnVsbDsgYWNjb3VudD86IHN0cmluZyB9O1xuXG4vKipcbiAqIFRyYW5zYWN0aW9uIG1ldGhvZCBzcGVjaWZpYyBhcmdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3Rha2VBcmdzIHtcbiAgdmFsdWU6IHN0cmluZztcbiAgY29udHJvbGxlcjogeyBpZDogc3RyaW5nIH07XG4gIHBheWVlOiBTdGFrZUFyZ3NQYXllZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFrZU1vcmVBcmdzIHtcbiAgbWF4QWRkaXRpb25hbDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVuc3Rha2VBcmdzIHtcbiAgdmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXaXRoZHJhd1Vuc3Rha2VkQXJncyB7XG4gIG51bVNsYXNoaW5nU3BhbnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGFpbUFyZ3Mge1xuICB2YWxpZGF0b3JTdGFzaDogc3RyaW5nO1xuICBlcmE6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgdHlwZXMgb2YgcHJveGllcyB0aGF0IGNhbiBiZSBzZXR1cCBhbmQgdXNlZFxuICogaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9sZWFybi1wcm94aWVzI3Byb3h5LXR5cGVzXG4gKi9cbmV4cG9ydCBlbnVtIFByb3h5VHlwZSB7XG4gIEFOWSA9ICdBbnknLFxuICBOT05fVFJBTlNGRVIgPSAnTm9uVHJhbnNmZXInLFxuICBTVEFLSU5HID0gJ1N0YWtpbmcnLFxuICBJREVOVFRJVFlfSlVER0VNRU5UID0gJ0lkZW50aXR5SnVkZ2VtZW50JyxcbiAgQ0FOQ0VMX1BST1hZID0gJ0NhbmNlbFByb3h5Jyxcbn1cblxuLyoqXG4gKiBUcmFuc2FjdGlvbiBtZXRob2Qgc3BlY2lmaWMgYXJnc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFkZFByb3h5QXJncyB7XG4gIGRlbGVnYXRlOiBzdHJpbmcgfCBBY2NvdW50SWQ7XG4gIGRlbGF5OiBzdHJpbmc7XG4gIHByb3h5VHlwZTogUHJveHlUeXBlO1xufVxuXG4vKipcbiAqIFRyYW5zYWN0aW9uIG1ldGhvZCBzcGVjaWZpYyBhcmdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRkQW5vbnltb3VzUHJveHlBcmdzIHtcbiAgcHJveHlUeXBlOiBQcm94eVR5cGU7XG4gIGluZGV4OiBzdHJpbmc7XG4gIGRlbGF5OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVHJhbnNhY3Rpb24gbWV0aG9kIHNwZWNpZmljIGFyZ3NcbiAqL1xuZXhwb3J0IHR5cGUgQmF0Y2hDYWxsT2JqZWN0ID0ge1xuICBjYWxsSW5kZXg6IHN0cmluZztcbiAgYXJnczpcbiAgICB8IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICB8IEFkZFByb3h5QmF0Y2hDYWxsQXJnc1xuICAgIHwgQWRkQW5vbnltb3VzUHJveHlCYXRjaENhbGxBcmdzXG4gICAgfCBTdGFrZUJhdGNoQ2FsbEFyZ3NcbiAgICB8IFN0YWtlTW9yZUNhbGxBcmdzO1xufTtcbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hBcmdzIHtcbiAgY2FsbHM6IEJhdGNoQ2FsbE9iamVjdFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZEFub255bW91c1Byb3h5QmF0Y2hDYWxsQXJncyB7XG4gIC8vIFVzaW5nIHNuYWtlX2Nhc2UgaGVyZSB0byBiZSBjb21wYXRpYmxlIHdpdGggdGhlIGxpYnJhcnkgd2UgdXNlIHRvIGRlY29kZVxuICAvLyBwb2xrYWRvdCB0cmFuc2FjdGlvbnNcbiAgcHJveHlfdHlwZTogUHJveHlUeXBlO1xuICBpbmRleDogbnVtYmVyO1xuICBkZWxheTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZFByb3h5QmF0Y2hDYWxsQXJncyB7XG4gIGRlbGVnYXRlOiBzdHJpbmcgfCBBY2NvdW50SWQ7XG4gIHByb3h5X3R5cGU6IFByb3h5VHlwZTtcbiAgZGVsYXk6IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgQWNjb3VudElkID0geyBpZDogc3RyaW5nIH07XG5cbmV4cG9ydCB0eXBlIFN0YWtlQmF0Y2hDYWxsUGF5ZWVTdGFrZWQgPSB7IHN0YWtlZDogbnVsbCB9O1xuZXhwb3J0IHR5cGUgU3Rha2VCYXRjaENhbGxQYXllZVN0YXNoID0geyBzdGFzaDogbnVsbCB9O1xuZXhwb3J0IHR5cGUgU3Rha2VCYXRjaENhbGxQYXllZUNvbnRyb2xsZXIgPSB7IGNvbnRyb2xsZXI6IG51bGwgfTtcbmV4cG9ydCB0eXBlIFN0YWtlQmF0Y2hDYWxsUGF5ZWVBY2NvdW50ID0geyBhY2NvdW50OiBzdHJpbmcgfTtcblxuZXhwb3J0IHR5cGUgU3Rha2VCYXRjaENhbGxQYXllZSA9XG4gIHwgU3Rha2VCYXRjaENhbGxQYXllZVN0YWtlZFxuICB8IFN0YWtlQmF0Y2hDYWxsUGF5ZWVTdGFzaFxuICB8IFN0YWtlQmF0Y2hDYWxsUGF5ZWVDb250cm9sbGVyXG4gIHwgU3Rha2VCYXRjaENhbGxQYXllZUFjY291bnQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3Rha2VCYXRjaENhbGxBcmdzIHtcbiAgdmFsdWU6IHN0cmluZztcbiAgY29udHJvbGxlcjogeyBpZDogc3RyaW5nIH07XG4gIHBheWVlOiBTdGFrZUJhdGNoQ2FsbFBheWVlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVuc3Rha2VCYXRjaENhbGxBcmdzIHtcbiAgdmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFrZU1vcmVDYWxsQXJncyB7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVHJhbnNhY3Rpb24gbWV0aG9kIHNwZWNpZmljIGFyZ3NcbiAqL1xuZXhwb3J0IHR5cGUgUHJveHlDYWxsQXJncyA9IHtcbiAgY2FsbEluZGV4OiBzdHJpbmc7XG4gIGFyZ3M6IFRyYW5zZmVyQXJncztcbn07XG5cbi8qKlxuICogVHJhbnNhY3Rpb24gbWV0aG9kIHNwZWNpZmljIGFyZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm94eUFyZ3Mge1xuICByZWFsOiBzdHJpbmcgfCBBY2NvdW50SWQ7XG4gIGZvcmNlUHJveHlUeXBlOiBQcm94eVR5cGU7XG59XG5cbi8qKlxuICogRGVjb2RlZCBUeE1ldGhvZCBmcm9tIGEgdHJhbnNhY3Rpb24gaGV4XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHhNZXRob2Qge1xuICBhcmdzOlxuICAgIHwgVHJhbnNmZXJBcmdzXG4gICAgfCBUcmFuc2ZlckFsbEFyZ3NcbiAgICB8IFN0YWtlQXJnc1xuICAgIHwgU3Rha2VNb3JlQXJnc1xuICAgIHwgQWRkUHJveHlBcmdzXG4gICAgfCBQcm94eUFyZ3NcbiAgICB8IFVuc3Rha2VBcmdzXG4gICAgfCBBZGRBbm9ueW1vdXNQcm94eUFyZ3NcbiAgICB8IEJhdGNoQXJnc1xuICAgIHwgV2l0aGRyYXdVbnN0YWtlZEFyZ3NcbiAgICB8IENsYWltQXJncztcbiAgbmFtZTogTWV0aG9kTmFtZXM7XG4gIHBhbGxldDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE1vZGlmaWVkIHVuc2lnbmVkIHRyYW5zYWN0aW9uIHdpdGggYSBkZWNvZGVkIG1ldGhvZCBpbnN0ZWFkIG9mIGEgbWV0aG9kIGhleFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlY29kZWRUeCBleHRlbmRzIE9taXQ8RGVjb2RlZFVuc2lnbmVkVHgsICdtZXRob2QnPiB7XG4gIG1ldGhvZDogVHhNZXRob2Q7XG59XG5cbi8qKlxuICogQmFzZSB0cmFuc2FjdGlvbiBpbmZvIHNoYXJlZCBhY3Jvc3MgYWxsIHR5cGVzIG9mIHRyYW5zYWN0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUJhc2VUeEluZm8ge1xuICBiYXNlVHhJbmZvOiBCYXNlVHhJbmZvO1xuICBvcHRpb25zOiB7XG4gICAgbWV0YWRhdGFScGM6IGAweCR7c3RyaW5nfWA7XG4gICAgcmVnaXN0cnk6IFR5cGVSZWdpc3RyeTtcbiAgICBpc0ltbW9ydGFsRXJhPzogYm9vbGVhbjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICB0eXBlOiBUcmFuc2FjdGlvblR5cGU7XG4gIGZvcmNlUHJveHlUeXBlPzogUHJveHlUeXBlO1xuICBjb250cm9sbGVyPzogc3RyaW5nO1xuICBwYXllZT86IHN0cmluZztcbiAgb3duZXI/OiBzdHJpbmc7XG4gIHByb3h5VHlwZT86IHN0cmluZztcbiAgZGVsYXk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIFRyYW5zYWN0aW9uVHlwZXMge1xuICBUUkFOU0ZFUiA9ICd0cmFuc2ZlcicsXG4gIFNUQUtJTkcgPSAnc3Rha2luZycsXG4gIEFERFJfSU5JVCA9ICdhZGRyZXNzSW5pdGlhbGl6YXRpb24nLFxuICBVTlNUQUtJTkcgPSAndW5zdGFraW5nJyxcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTWF0ZXJpYWwge1xuICBnZW5lc2lzSGFzaDogc3RyaW5nO1xuICBjaGFpbk5hbWU6IHN0cmluZztcbiAgc3BlY05hbWU6IFBvbGthZG90U3BlY05hbWVUeXBlO1xuICBzcGVjVmVyc2lvbjogbnVtYmVyO1xuICB0eFZlcnNpb246IG51bWJlcjtcbiAgbWV0YWRhdGE6IGAweCR7c3RyaW5nfWA7XG59XG4iXX0=
@@ -16,6 +16,7 @@ export declare class Transaction extends BaseTransaction {
16
16
  private _registry;
17
17
  private _chainName;
18
18
  private _sender;
19
+ private static FAKE_SIGNATURE;
19
20
  constructor(coinConfig: Readonly<CoinConfig>);
20
21
  /** @inheritdoc */
21
22
  canSign({ key }: BaseKey): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EACP,eAAe,EAOf,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAI7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAaL,sBAAsB,EACtB,MAAM,EAGP,MAAM,SAAS,CAAC;AASjB;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAAsF,CAAC;AAEvH,qBAAa,WAAY,SAAQ,eAAe;IAC9C,SAAS,CAAC,eAAe,EAAE,mBAAmB,CAAC;IAC/C,OAAO,CAAC,kBAAkB,CAAC,CAAS;IACpC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;gBAEZ,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,kBAAkB;IAClB,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,GAAG,OAAO;IAMlC;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IA0B5B;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IASrC;;;OAGG;IACH,QAAQ,IAAI,MAAM;IASlB,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIlC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAa3B,eAAe,IAAI,MAAM;IAIzB,kBAAkB;IAClB,MAAM,IAAI,MAAM;IA2HhB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;IAe3G,iCAAiC,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;IAelH,uCAAuC,CACrC,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,sBAAsB,GACxC,sBAAsB;IAUzB,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;IAYhH,kBAAkB;IAClB,kBAAkB,IAAI,sBAAsB;IAgC5C;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAuB5B,OAAO,CAAC,6BAA6B;IAqDrC,OAAO,CAAC,8BAA8B;IAoGtC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,6BAA6B;IA4BrC,OAAO,CAAC,+BAA+B;IAKvC,OAAO,CAAC,uCAAuC;IAK/C;;;;;;;OAOG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAgB/C,cAAc,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI;IAI7C,mBAAmB;IACnB,IAAI,eAAe,IAAI,MAAM,CAK5B;IAED;;;;OAIG;IACH,eAAe,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;CAGxD"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EACP,eAAe,EAOf,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAI7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAaL,sBAAsB,EACtB,MAAM,EAGP,MAAM,SAAS,CAAC;AAOjB;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAAsF,CAAC;AAEvH,qBAAa,WAAY,SAAQ,eAAe;IAC9C,SAAS,CAAC,eAAe,EAAE,mBAAmB,CAAC;IAC/C,OAAO,CAAC,kBAAkB,CAAC,CAAS;IACpC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,MAAM,CAAC,cAAc,CAAmE;gBAEpF,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,kBAAkB;IAClB,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,GAAG,OAAO;IAMlC;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IA0B5B;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IASrC;;;OAGG;IACH,QAAQ,IAAI,MAAM;IASlB,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIlC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAa3B,eAAe,IAAI,MAAM;IAIzB,kBAAkB;IAClB,MAAM,IAAI,MAAM;IA2HhB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;IAe3G,iCAAiC,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;IAelH,uCAAuC,CACrC,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,sBAAsB,GACxC,sBAAsB;IAUzB,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;IAYhH,kBAAkB;IAClB,kBAAkB,IAAI,sBAAsB;IAgC5C;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAuB5B,OAAO,CAAC,6BAA6B;IAqDrC,OAAO,CAAC,8BAA8B;IAoGtC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,6BAA6B;IA4BrC,OAAO,CAAC,+BAA+B;IAKvC,OAAO,CAAC,uCAAuC;IAK/C;;;;;;;OAOG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAgB/C,cAAc,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI;IAI7C,mBAAmB;IACnB,IAAI,eAAe,IAAI,MAAM,CAK5B;IAED;;;;OAIG;IACH,eAAe,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;CAGxD"}
@@ -32,7 +32,6 @@ const iface_1 = require("./iface");
32
32
  const iface_utils_1 = require("./iface_utils");
33
33
  const utils_1 = __importDefault(require("./utils"));
34
34
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
35
- const FAKE_SIGNATURE = `0x${Buffer.from(new Uint8Array(256).fill(1)).toString('hex')}`;
36
35
  /**
37
36
  * Use a dummy address as the destination of a bond or bondExtra because our inputs and outputs model
38
37
  * doesn't seem to handle the concept of locking funds within a wallet as a method of transferring coins.
@@ -89,7 +88,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
89
88
  * can be used to estimate transaction fees.
90
89
  */
91
90
  fakeSign() {
92
- return utils_1.default.serializeSignedTransaction(this._dotTransaction, FAKE_SIGNATURE, this._dotTransaction.metadataRpc, this._registry);
91
+ return utils_1.default.serializeSignedTransaction(this._dotTransaction, Transaction.FAKE_SIGNATURE, this._dotTransaction.metadataRpc, this._registry);
93
92
  }
94
93
  registry(registry) {
95
94
  this._registry = registry;
@@ -586,4 +585,5 @@ class Transaction extends sdk_core_1.BaseTransaction {
586
585
  }
587
586
  }
588
587
  exports.Transaction = Transaction;
589
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFVOEI7QUFFOUIsNkRBQTBFO0FBQzFFLHlDQUE2QztBQUM3QyxzRUFBa0U7QUFHbEUsdUNBQW9DO0FBQ3BDLG1DQWlCaUI7QUFDakIsK0NBQStEO0FBQy9ELG9EQUE0QjtBQUM1QixnRUFBcUM7QUFJckMsTUFBTSxjQUFjLEdBQUcsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0FBRXZGOzs7R0FHRztBQUNVLFFBQUEsbUJBQW1CLEdBQUcsdUJBQWEsQ0FBQyxvRUFBb0UsQ0FBQyxDQUFDO0FBRXZILE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBTzlDLFlBQVksVUFBZ0M7UUFDMUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFXO1FBQ3RCLE1BQU0sRUFBRSxHQUFHLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBcUIsQ0FBQyxDQUFDLENBQUM7UUFDM0YsT0FBTyxJQUFJLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksQ0FBQyxPQUFnQjtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN6QixNQUFN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LEVBQUUsV0FBVyxFQUFFO2dCQUM5RSxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3hCLFdBQVcsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVc7YUFDOUMsQ0FBQyxDQUFDO1NBQ0o7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE1BQU0sSUFBSSx1QkFBWSxDQUFDLGlEQUFpRCxXQUFXLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUM3RjtRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGNBQWMsQ0FBQyxFQUF1QjtRQUNwQyxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsbUJBQW1CO0lBQ25CLElBQUksZUFBZTtRQUNqQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDM0YsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTztTQUN0QyxDQUFDLENBQUM7UUFDSCxPQUFPLGtCQUFXLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGVBQWUsQ0FBQyxlQUFnQztRQUM5QyxJQUFJLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQztJQUMvQixDQUFDO0NBQ0Y7QUFobUJELGtDQWdtQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb24sXG4gIERvdEFzc2V0VHlwZXMsXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsXG4gIFNpZ25pbmdFcnJvcixcbiAgdG9VaW50OEFycmF5LFxuICBUcmFuc2FjdGlvblJlY2lwaWVudCxcbiAgVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgS2V5cmluZywgeyBkZWNvZGVBZGRyZXNzLCBlbmNvZGVBZGRyZXNzIH0gZnJvbSAnQHBvbGthZG90L2tleXJpbmcnO1xuaW1wb3J0IHsgdThhVG9CdWZmZXIgfSBmcm9tICdAcG9sa2Fkb3QvdXRpbCc7XG5pbXBvcnQgeyBjb25zdHJ1Y3QsIGRlY29kZSB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCB7IFVuc2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlJztcbmltcG9ydCB7IFR5cGVSZWdpc3RyeSB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUvbGliL3R5cGVzJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHtcbiAgQWRkQW5vbnltb3VzUHJveHlBcmdzLFxuICBBZGRQcm94eUFyZ3MsXG4gIEFkZFByb3h5QmF0Y2hDYWxsQXJncyxcbiAgQmF0Y2hBcmdzLFxuICBCYXRjaENhbGxPYmplY3QsXG4gIENsYWltQXJncyxcbiAgRGVjb2RlZFR4LFxuICBIZXhTdHJpbmcsXG4gIE1ldGhvZE5hbWVzLFxuICBTZWN0aW9uTmFtZXMsXG4gIFN0YWtlQXJnc1BheWVlUmF3LFxuICBTdGFrZUJhdGNoQ2FsbEFyZ3MsXG4gIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIFR4RGF0YSxcbiAgVW5zdGFrZUFyZ3MsXG4gIFdpdGhkcmF3VW5zdGFrZWRBcmdzLFxufSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IGdldEFkZHJlc3MsIGdldERlbGVnYXRlQWRkcmVzcyB9IGZyb20gJy4vaWZhY2VfdXRpbHMnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgVmVjIH0gZnJvbSAnQHBvbGthZG90L3R5cGVzJztcbmltcG9ydCB7IFBhbGxldENvbnN0YW50TWV0YWRhdGFWMTQgfSBmcm9tICdAcG9sa2Fkb3QvdHlwZXMvaW50ZXJmYWNlcyc7XG5cbmNvbnN0IEZBS0VfU0lHTkFUVVJFID0gYDB4JHtCdWZmZXIuZnJvbShuZXcgVWludDhBcnJheSgyNTYpLmZpbGwoMSkpLnRvU3RyaW5nKCdoZXgnKX1gO1xuXG4vKipcbiAqIFVzZSBhIGR1bW15IGFkZHJlc3MgYXMgdGhlIGRlc3RpbmF0aW9uIG9mIGEgYm9uZCBvciBib25kRXh0cmEgYmVjYXVzZSBvdXIgaW5wdXRzIGFuZCBvdXRwdXRzIG1vZGVsXG4gKiBkb2Vzbid0IHNlZW0gdG8gaGFuZGxlIHRoZSBjb25jZXB0IG9mIGxvY2tpbmcgZnVuZHMgd2l0aGluIGEgd2FsbGV0IGFzIGEgbWV0aG9kIG9mIHRyYW5zZmVycmluZyBjb2lucy5cbiAqL1xuZXhwb3J0IGNvbnN0IFNUQUtJTkdfREVTVElOQVRJT04gPSBlbmNvZGVBZGRyZXNzKCcweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnKTtcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJvdGVjdGVkIF9kb3RUcmFuc2FjdGlvbjogVW5zaWduZWRUcmFuc2FjdGlvbjtcbiAgcHJpdmF0ZSBfc2lnbmVkVHJhbnNhY3Rpb24/OiBzdHJpbmc7XG4gIHByaXZhdGUgX3JlZ2lzdHJ5OiBUeXBlUmVnaXN0cnk7XG4gIHByaXZhdGUgX2NoYWluTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIF9zZW5kZXI6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGNhblNpZ24oeyBrZXkgfTogQmFzZUtleSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGtwID0gbmV3IEtleVBhaXIoeyBwcnY6IGtleSB9KTtcbiAgICBjb25zdCBhZGRyID0ga3AuZ2V0QWRkcmVzcyh1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKSk7XG4gICAgcmV0dXJuIGFkZHIgPT09IHRoaXMuX3NlbmRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIGEgcG9sa2Fkb3QgdHJhbnNhY3Rpb24gYW5kIHVwZGF0ZSB0aGUgdHJhbnNhY3Rpb24gaGV4XG4gICAqXG4gICAqIEBwYXJhbSB7S2V5UGFpcn0ga2V5UGFpciAtIGVkIHNpZ25hdHVyZVxuICAgKi9cbiAgc2lnbihrZXlQYWlyOiBLZXlQYWlyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9kb3RUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdObyB0cmFuc2FjdGlvbiBkYXRhIHRvIHNpZ24nKTtcbiAgICB9XG4gICAgY29uc3QgeyBwcnYsIHB1YiB9ID0ga2V5UGFpci5nZXRLZXlzKCk7XG4gICAgaWYgKCFwcnYpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgICB9XG4gICAgY29uc3Qgc2lnbmluZ1BheWxvYWQgPSBjb25zdHJ1Y3Quc2lnbmluZ1BheWxvYWQodGhpcy5fZG90VHJhbnNhY3Rpb24sIHtcbiAgICAgIHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSxcbiAgICB9KTtcbiAgICAvLyBTaWduIGEgcGF5bG9hZC4gVGhpcyBvcGVyYXRpb24gc2hvdWxkIGJlIHBlcmZvcm1lZCBvbiBhbiBvZmZsaW5lIGRldmljZS5cbiAgICBjb25zdCBrZXlyaW5nID0gbmV3IEtleXJpbmcoeyB0eXBlOiAnZWQyNTUxOScgfSk7XG4gICAgY29uc3Qgc2VjcmV0S2V5ID0gbmV3IFVpbnQ4QXJyYXkoQnVmZmVyLmZyb20ocHJ2LCAnaGV4JykpO1xuICAgIGNvbnN0IHB1YmxpY0tleSA9IG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKHB1YiwgJ2hleCcpKTtcbiAgICBjb25zdCBzaWduaW5nS2V5UGFpciA9IGtleXJpbmcuYWRkRnJvbVBhaXIoeyBzZWNyZXRLZXksIHB1YmxpY0tleSB9KTtcbiAgICBjb25zdCB0eEhleCA9IHV0aWxzLmNyZWF0ZVNpZ25lZFR4KHNpZ25pbmdLZXlQYWlyLCBzaWduaW5nUGF5bG9hZCwgdGhpcy5fZG90VHJhbnNhY3Rpb24sIHtcbiAgICAgIG1ldGFkYXRhUnBjOiB0aGlzLl9kb3RUcmFuc2FjdGlvbi5tZXRhZGF0YVJwYyxcbiAgICAgIHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSxcbiAgICB9KTtcblxuICAgIC8vIGdldCBzaWduYXR1cmUgZnJvbSBzaWduZWQgdHhIZXggZ2VuZXJhdGVkIGFib3ZlXG4gICAgdGhpcy5fc2lnbmF0dXJlcyA9IFt1dGlscy5yZWNvdmVyU2lnbmF0dXJlRnJvbVJhd1R4KHR4SGV4LCB7IHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSB9KV07XG4gICAgdGhpcy5fc2lnbmVkVHJhbnNhY3Rpb24gPSB0eEhleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHRoZSBzaWduYXR1cmUgdG8gdGhlIERPVCBUcmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2lnbmF0dXJlXG4gICAqL1xuICBhZGRTaWduYXR1cmUoc2lnbmF0dXJlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9zaWduZWRUcmFuc2FjdGlvbiA9IHV0aWxzLnNlcmlhbGl6ZVNpZ25lZFRyYW5zYWN0aW9uKFxuICAgICAgdGhpcy5fZG90VHJhbnNhY3Rpb24sXG4gICAgICBzaWduYXR1cmUsXG4gICAgICB0aGlzLl9kb3RUcmFuc2FjdGlvbi5tZXRhZGF0YVJwYyxcbiAgICAgIHRoaXMuX3JlZ2lzdHJ5XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHRyYW5zYWN0aW9uIHdpdGggYSBmYWtlIHNpZ25hdHVyZSBhdHRhY2hlZCB3aGljaFxuICAgKiBjYW4gYmUgdXNlZCB0byBlc3RpbWF0ZSB0cmFuc2FjdGlvbiBmZWVzLlxuICAgKi9cbiAgZmFrZVNpZ24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdXRpbHMuc2VyaWFsaXplU2lnbmVkVHJhbnNhY3Rpb24oXG4gICAgICB0aGlzLl9kb3RUcmFuc2FjdGlvbixcbiAgICAgIEZBS0VfU0lHTkFUVVJFLFxuICAgICAgdGhpcy5fZG90VHJhbnNhY3Rpb24ubWV0YWRhdGFScGMsXG4gICAgICB0aGlzLl9yZWdpc3RyeVxuICAgICk7XG4gIH1cblxuICByZWdpc3RyeShyZWdpc3RyeTogVHlwZVJlZ2lzdHJ5KTogdm9pZCB7XG4gICAgdGhpcy5fcmVnaXN0cnkgPSByZWdpc3RyeTtcbiAgfVxuXG4gIGNoYWluTmFtZShjaGFpbk5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2NoYWluTmFtZSA9IGNoYWluTmFtZTtcbiAgfVxuXG4gIHNlbmRlcihzZW5kZXI6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3NlbmRlciA9IHNlbmRlcjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5fZG90VHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3NpZ25lZFRyYW5zYWN0aW9uICYmIHRoaXMuX3NpZ25lZFRyYW5zYWN0aW9uLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLl9zaWduZWRUcmFuc2FjdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGNvbnN0cnVjdC5zaWduaW5nUGF5bG9hZCh0aGlzLl9kb3RUcmFuc2FjdGlvbiwge1xuICAgICAgICByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB0cmFuc2FjdGlvblNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy50b0Jyb2FkY2FzdEZvcm1hdCgpLmxlbmd0aCAvIDI7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Kc29uKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl9kb3RUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBjb25zdCBkZWNvZGVkVHggPSBkZWNvZGUodGhpcy5fZG90VHJhbnNhY3Rpb24sIHtcbiAgICAgIG1ldGFkYXRhUnBjOiB0aGlzLl9kb3RUcmFuc2FjdGlvbi5tZXRhZGF0YVJwYyxcbiAgICAgIHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSxcbiAgICAgIGlzSW1tb3J0YWxFcmE6IHV0aWxzLmlzWmVyb0hleCh0aGlzLl9kb3RUcmFuc2FjdGlvbi5lcmEpLFxuICAgIH0pIGFzIHVua25vd24gYXMgRGVjb2RlZFR4O1xuXG4gICAgY29uc3QgcmVzdWx0OiBUeERhdGEgPSB7XG4gICAgICBpZDogY29uc3RydWN0LnR4SGFzaCh0aGlzLnRvQnJvYWRjYXN0Rm9ybWF0KCkpLFxuICAgICAgc2VuZGVyOiBkZWNvZGVkVHguYWRkcmVzcyxcbiAgICAgIHJlZmVyZW5jZUJsb2NrOiBkZWNvZGVkVHguYmxvY2tIYXNoLFxuICAgICAgYmxvY2tOdW1iZXI6IGRlY29kZWRUeC5ibG9ja051bWJlcixcbiAgICAgIGdlbmVzaXNIYXNoOiBkZWNvZGVkVHguZ2VuZXNpc0hhc2gsXG4gICAgICBub25jZTogZGVjb2RlZFR4Lm5vbmNlLFxuICAgICAgc3BlY1ZlcnNpb246IGRlY29kZWRUeC5zcGVjVmVyc2lvbixcbiAgICAgIHRyYW5zYWN0aW9uVmVyc2lvbjogZGVjb2RlZFR4LnRyYW5zYWN0aW9uVmVyc2lvbixcbiAgICAgIGVyYVBlcmlvZDogZGVjb2RlZFR4LmVyYVBlcmlvZCxcbiAgICAgIGNoYWluTmFtZTogdGhpcy5fY2hhaW5OYW1lLFxuICAgICAgdGlwOiBkZWNvZGVkVHgudGlwLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuU2VuZCkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHgubWV0aG9kLmFyZ3M7XG4gICAgICBpZiAodXRpbHMuaXNQcm94eVRyYW5zZmVyKHR4TWV0aG9kKSkge1xuICAgICAgICBjb25zdCBrZXlwYWlyUmVhbCA9IG5ldyBLZXlQYWlyKHtcbiAgICAgICAgICBwdWI6IEJ1ZmZlci5mcm9tKGRlY29kZUFkZHJlc3MoZ2V0QWRkcmVzcyh0eE1ldGhvZCkpKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIH0pO1xuICAgICAgICByZXN1bHQub3duZXIgPSBrZXlwYWlyUmVhbC5nZXRBZGRyZXNzKHV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lIGFzIERvdEFzc2V0VHlwZXMpKTtcbiAgICAgICAgcmVzdWx0LmZvcmNlUHJveHlUeXBlID0gdHhNZXRob2QuZm9yY2VQcm94eVR5cGU7XG4gICAgICAgIGNvbnN0IGRlY29kZWRDYWxsID0gdXRpbHMuZGVjb2RlQ2FsbE1ldGhvZCh0aGlzLl9kb3RUcmFuc2FjdGlvbiwge1xuICAgICAgICAgIG1ldGFkYXRhUnBjOiB0aGlzLl9kb3RUcmFuc2FjdGlvbi5tZXRhZGF0YVJwYyxcbiAgICAgICAgICByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnksXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBrZXlwYWlyRGVzdCA9IG5ldyBLZXlQYWlyKHtcbiAgICAgICAgICBwdWI6IEJ1ZmZlci5mcm9tKGRlY29kZUFkZHJlc3MoZGVjb2RlZENhbGwuZGVzdC5pZCkpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJlc3VsdC50byA9IGtleXBhaXJEZXN0LmdldEFkZHJlc3ModXRpbHMuZ2V0QWRkcmVzc0Zvcm1hdCh0aGlzLl9jb2luQ29uZmlnLm5hbWUgYXMgRG90QXNzZXRUeXBlcykpO1xuICAgICAgICByZXN1bHQuYW1vdW50ID0gZGVjb2RlZENhbGwudmFsdWU7XG4gICAgICB9IGVsc2UgaWYgKHV0aWxzLmlzVHJhbnNmZXIodHhNZXRob2QpKSB7XG4gICAgICAgIGNvbnN0IGtleXBhaXJEZXN0ID0gbmV3IEtleVBhaXIoe1xuICAgICAgICAgIHB1YjogQnVmZmVyLmZyb20oZGVjb2RlQWRkcmVzcyh0eE1ldGhvZC5kZXN0LmlkKSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICB9KTtcbiAgICAgICAgcmVzdWx0LnRvID0ga2V5cGFpckRlc3QuZ2V0QWRkcmVzcyh1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKSk7XG4gICAgICAgIHJlc3VsdC5hbW91bnQgPSB0eE1ldGhvZC52YWx1ZTtcbiAgICAgIH0gZWxzZSBpZiAodXRpbHMuaXNUcmFuc2ZlckFsbCh0eE1ldGhvZCkpIHtcbiAgICAgICAgY29uc3Qga2V5cGFpckRlc3QgPSBuZXcgS2V5UGFpcih7XG4gICAgICAgICAgcHViOiBCdWZmZXIuZnJvbShkZWNvZGVBZGRyZXNzKHR4TWV0aG9kLmRlc3QuaWQpKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIH0pO1xuICAgICAgICByZXN1bHQudG8gPSBrZXlwYWlyRGVzdC5nZXRBZGRyZXNzKHV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lIGFzIERvdEFzc2V0VHlwZXMpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoYFNlcmlhbGl6aW5nIHVua25vd24gVHJhbnNmZXIgdHlwZSBwYXJhbWV0ZXJzYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBY3RpdmF0ZSkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHgubWV0aG9kLmFyZ3M7XG4gICAgICBpZiAodXRpbHMuaXNCb25kKHR4TWV0aG9kKSkge1xuICAgICAgICBjb25zdCBrZXlwYWlyID0gbmV3IEtleVBhaXIoe1xuICAgICAgICAgIHB1YjogQnVmZmVyLmZyb20oZGVjb2RlQWRkcmVzcyh0eE1ldGhvZC5jb250cm9sbGVyLmlkLCBmYWxzZSwgdGhpcy5fcmVnaXN0cnkuY2hhaW5TUzU4KSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXN1bHQuY29udHJvbGxlciA9IGtleXBhaXIuZ2V0QWRkcmVzcyh1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKSk7XG4gICAgICAgIHJlc3VsdC5hbW91bnQgPSB0eE1ldGhvZC52YWx1ZTtcblxuICAgICAgICBjb25zdCBwYXllZSA9IHR4TWV0aG9kLnBheWVlIGFzIFN0YWtlQXJnc1BheWVlUmF3O1xuICAgICAgICBpZiAocGF5ZWUuYWNjb3VudCkge1xuICAgICAgICAgIGNvbnN0IGtleXBhaXIgPSBuZXcgS2V5UGFpcih7XG4gICAgICAgICAgICBwdWI6IEJ1ZmZlci5mcm9tKGRlY29kZUFkZHJlc3MocGF5ZWUuYWNjb3VudCwgZmFsc2UsIHRoaXMuX3JlZ2lzdHJ5LmNoYWluU1M1OCkpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXN1bHQucGF5ZWUgPSBrZXlwYWlyLmdldEFkZHJlc3ModXRpbHMuZ2V0QWRkcmVzc0Zvcm1hdCh0aGlzLl9jb2luQ29uZmlnLm5hbWUgYXMgRG90QXNzZXRUeXBlcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHBheWVlVHlwZSA9IHV0aWxzLmNhcGl0YWxpemVGaXJzdExldHRlcihPYmplY3Qua2V5cyhwYXllZSlbMF0pIGFzIHN0cmluZztcbiAgICAgICAgICByZXN1bHQucGF5ZWUgPSBwYXllZVR5cGU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodXRpbHMuaXNCb25kRXh0cmEoZGVjb2RlZFR4Lm1ldGhvZC5hcmdzKSkge1xuICAgICAgICByZXN1bHQuYW1vdW50ID0gZGVjb2RlZFR4Lm1ldGhvZC5hcmdzLm1heEFkZGl0aW9uYWw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbikge1xuICAgICAgbGV0IHR4TWV0aG9kOiBBZGRBbm9ueW1vdXNQcm94eUFyZ3MgfCBBZGRQcm94eUFyZ3M7XG4gICAgICBpZiAoKGRlY29kZWRUeC5tZXRob2Q/LmFyZ3MgYXMgQWRkUHJveHlBcmdzKS5kZWxlZ2F0ZSkge1xuICAgICAgICB0eE1ldGhvZCA9IGRlY29kZWRUeC5tZXRob2QuYXJncyBhcyBBZGRQcm94eUFyZ3M7XG4gICAgICAgIGNvbnN0IGRlbGVnYXRlQWRkcmVzcyA9IGdldERlbGVnYXRlQWRkcmVzcyh0eE1ldGhvZCk7XG4gICAgICAgIGNvbnN0IGRlY29kZWRBZGRyZXNzID0gZGVjb2RlQWRkcmVzcyhkZWxlZ2F0ZUFkZHJlc3MsIGZhbHNlLCB0aGlzLl9yZWdpc3RyeS5jaGFpblNTNTgpO1xuICAgICAgICBjb25zdCBrZXlwYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IEJ1ZmZlci5mcm9tKGRlY29kZWRBZGRyZXNzKS50b1N0cmluZygnaGV4JykgfSk7XG4gICAgICAgIHJlc3VsdC5vd25lciA9IGtleXBhaXIuZ2V0QWRkcmVzcyh1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0eE1ldGhvZCA9IGRlY29kZWRUeC5tZXRob2QuYXJncyBhcyBBZGRBbm9ueW1vdXNQcm94eUFyZ3M7XG4gICAgICAgIHJlc3VsdC5pbmRleCA9IHR4TWV0aG9kLmluZGV4O1xuICAgICAgfVxuICAgICAgcmVzdWx0Lm1ldGhvZCA9IHRoaXMuX2RvdFRyYW5zYWN0aW9uLm1ldGhvZDtcbiAgICAgIHJlc3VsdC5wcm94eVR5cGUgPSB0eE1ldGhvZC5wcm94eVR5cGU7XG4gICAgICByZXN1bHQuZGVsYXkgPSB0eE1ldGhvZC5kZWxheTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1VubG9jaykge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHgubWV0aG9kLmFyZ3MgYXMgVW5zdGFrZUFyZ3M7XG4gICAgICByZXN1bHQuYW1vdW50ID0gdHhNZXRob2QudmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdykge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHgubWV0aG9kLmFyZ3MgYXMgV2l0aGRyYXdVbnN0YWtlZEFyZ3M7XG4gICAgICByZXN1bHQubnVtU2xhc2hpbmdTcGFucyA9IHR4TWV0aG9kLm51bVNsYXNoaW5nU3BhbnM7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdDbGFpbSkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHgubWV0aG9kLmFyZ3MgYXMgQ2xhaW1BcmdzO1xuICAgICAgcmVzdWx0LnZhbGlkYXRvclN0YXNoID0gdHhNZXRob2QudmFsaWRhdG9yU3Rhc2g7XG4gICAgICByZXN1bHQuY2xhaW1FcmEgPSB0eE1ldGhvZC5lcmE7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkJhdGNoKSB7XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeC5tZXRob2QuYXJncyBhcyBCYXRjaEFyZ3M7XG4gICAgICByZXN1bHQuYmF0Y2hDYWxscyA9IHR4TWV0aG9kLmNhbGxzO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBleHBsYWluVHJhbnNmZXJUcmFuc2FjdGlvbihqc29uOiBUeERhdGEsIGV4cGxhbmF0aW9uUmVzdWx0OiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgZXhwbGFuYXRpb25SZXN1bHQuZGlzcGxheU9yZGVyLnB1c2goJ293bmVyJywgJ2ZvcmNlUHJveHlUeXBlJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmV4cGxhbmF0aW9uUmVzdWx0LFxuICAgICAgb3V0cHV0czogW1xuICAgICAgICB7XG4gICAgICAgICAgYWRkcmVzczoganNvbi50bz8udG9TdHJpbmcoKSB8fCAnJyxcbiAgICAgICAgICBhbW91bnQ6IGpzb24uYW1vdW50Py50b1N0cmluZygpIHx8ICcnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIG93bmVyOiBqc29uLm93bmVyLFxuICAgICAgZm9yY2VQcm94eVR5cGU6IGpzb24uZm9yY2VQcm94eVR5cGUsXG4gICAgfTtcbiAgfVxuXG4gIGV4cGxhaW5TdGFraW5nQWN0aXZhdGVUcmFuc2FjdGlvbihqc29uOiBUeERhdGEsIGV4cGxhbmF0aW9uUmVzdWx0OiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgZXhwbGFuYXRpb25SZXN1bHQuZGlzcGxheU9yZGVyLnB1c2goJ3BheWVlJywgJ2ZvcmNlUHJveHlUeXBlJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmV4cGxhbmF0aW9uUmVzdWx0LFxuICAgICAgb3V0cHV0czogW1xuICAgICAgICB7XG4gICAgICAgICAgYWRkcmVzczoganNvbi5jb250cm9sbGVyPy50b1N0cmluZygpIHx8ICcnLFxuICAgICAgICAgIGFtb3VudDoganNvbi5hbW91bnQgfHwgJycsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcGF5ZWU6IGpzb24ucGF5ZWUsXG4gICAgICBmb3JjZVByb3h5VHlwZToganNvbi5mb3JjZVByb3h5VHlwZSxcbiAgICB9O1xuICB9XG5cbiAgZXhwbGFpbkFkZHJlc3NJbml0aWFsaXphdGlvblRyYW5zYWN0aW9uKFxuICAgIGpzb246IFR4RGF0YSxcbiAgICBleHBsYW5hdGlvblJlc3VsdDogVHJhbnNhY3Rpb25FeHBsYW5hdGlvblxuICApOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBleHBsYW5hdGlvblJlc3VsdC5kaXNwbGF5T3JkZXIucHVzaCgnb3duZXInLCAncHJveHlUeXBlJywgJ2RlbGF5Jyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmV4cGxhbmF0aW9uUmVzdWx0LFxuICAgICAgb3duZXI6IGpzb24ub3duZXIsXG4gICAgICBwcm94eVR5cGU6IGpzb24ucHJveHlUeXBlLFxuICAgICAgZGVsYXk6IGpzb24uZGVsYXksXG4gICAgfTtcbiAgfVxuXG4gIGV4cGxhaW5TdGFraW5nVW5sb2NrVHJhbnNhY3Rpb24oanNvbjogVHhEYXRhLCBleHBsYW5hdGlvblJlc3VsdDogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbik6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5leHBsYW5hdGlvblJlc3VsdCxcbiAgICAgIG91dHB1dHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFkZHJlc3M6IGpzb24uc2VuZGVyLnRvU3RyaW5nKCksXG4gICAgICAgICAgYW1vdW50OiBqc29uLmFtb3VudCB8fCAnJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBleHBsYWluVHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy50b0pzb24oKTtcbiAgICBjb25zdCBkaXNwbGF5T3JkZXIgPSBbJ291dHB1dEFtb3VudCcsICdjaGFuZ2VBbW91bnQnLCAnb3V0cHV0cycsICdjaGFuZ2VPdXRwdXRzJywgJ2ZlZScsICd0eXBlJ107XG4gICAgY29uc3Qgb3V0cHV0czogVHJhbnNhY3Rpb25SZWNpcGllbnRbXSA9IFtdO1xuICAgIGNvbnN0IGV4cGxhbmF0aW9uUmVzdWx0OiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uID0ge1xuICAgICAgLy8gdHhoYXNoIHVzZWQgdG8gaWRlbnRpZnkgdGhlIHRyYW5zYWN0aW9uc1xuICAgICAgaWQ6IHJlc3VsdC5pZCxcbiAgICAgIGRpc3BsYXlPcmRlcixcbiAgICAgIG91dHB1dEFtb3VudDogcmVzdWx0LmFtb3VudD8udG9TdHJpbmcoKSB8fCAnMCcsXG4gICAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICAgIGNoYW5nZU91dHB1dHM6IFtdLFxuICAgICAgb3V0cHV0cyxcbiAgICAgIGZlZToge1xuICAgICAgICBmZWU6IHJlc3VsdC50aXA/LnRvU3RyaW5nKCkgfHwgJycsXG4gICAgICAgIHR5cGU6ICd0aXAnLFxuICAgICAgfSxcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICB9O1xuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TZW5kOlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluVHJhbnNmZXJUcmFuc2FjdGlvbihyZXN1bHQsIGV4cGxhbmF0aW9uUmVzdWx0KTtcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBY3RpdmF0ZTpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwbGFpblN0YWtpbmdBY3RpdmF0ZVRyYW5zYWN0aW9uKHJlc3VsdCwgZXhwbGFuYXRpb25SZXN1bHQpO1xuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuQWRkcmVzc0luaXRpYWxpemF0aW9uOlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluQWRkcmVzc0luaXRpYWxpemF0aW9uVHJhbnNhY3Rpb24ocmVzdWx0LCBleHBsYW5hdGlvblJlc3VsdCk7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW5sb2NrOlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluU3Rha2luZ1VubG9ja1RyYW5zYWN0aW9uKHJlc3VsdCwgZXhwbGFuYXRpb25SZXN1bHQpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdUcmFuc2FjdGlvbiB0eXBlIG5vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgaW5wdXQgYW5kIG91dHB1dCBkYXRhIG9uIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqL1xuICBsb2FkSW5wdXRzQW5kT3V0cHV0cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2RvdFRyYW5zYWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGRlY29kZWRUeCA9IGRlY29kZSh0aGlzLl9kb3RUcmFuc2FjdGlvbiwge1xuICAgICAgbWV0YWRhdGFScGM6IHRoaXMuX2RvdFRyYW5zYWN0aW9uLm1ldGFkYXRhUnBjLFxuICAgICAgcmVnaXN0cnk6IHRoaXMuX3JlZ2lzdHJ5LFxuICAgICAgaXNJbW1vcnRhbEVyYTogdXRpbHMuaXNaZXJvSGV4KHRoaXMuX2RvdFRyYW5zYWN0aW9uLmVyYSksXG4gICAgfSkgYXMgdW5rbm93biBhcyBEZWNvZGVkVHg7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuU2VuZCkge1xuICAgICAgdGhpcy5kZWNvZGVJbnB1dHNBbmRPdXRwdXRzRm9yU2VuZChkZWNvZGVkVHgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQmF0Y2gpIHtcbiAgICAgIHRoaXMuZGVjb2RlSW5wdXRzQW5kT3V0cHV0c0ZvckJhdGNoKGRlY29kZWRUeCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWN0aXZhdGUpIHtcbiAgICAgIHRoaXMuZGVjb2RlSW5wdXRzQW5kT3V0cHV0c0ZvckJvbmQoZGVjb2RlZFR4KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdVbmxvY2spIHtcbiAgICAgIHRoaXMuZGVjb2RlSW5wdXRzQW5kT3V0cHV0c0ZvclVuYm9uZChkZWNvZGVkVHgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1dpdGhkcmF3KSB7XG4gICAgICB0aGlzLmRlY29kZUlucHV0c0FuZE91dHB1dHNGb3JXaXRoZHJhd1VuYm9uZChkZWNvZGVkVHgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGVjb2RlSW5wdXRzQW5kT3V0cHV0c0ZvclNlbmQoZGVjb2RlZFR4OiBEZWNvZGVkVHgpIHtcbiAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeC5tZXRob2QuYXJncztcbiAgICBsZXQgdG86IHN0cmluZztcbiAgICBsZXQgdmFsdWU6IHN0cmluZztcbiAgICBsZXQgZnJvbTogc3RyaW5nO1xuICAgIGlmICh1dGlscy5pc1Byb3h5VHJhbnNmZXIodHhNZXRob2QpKSB7XG4gICAgICBjb25zdCBkZWNvZGVkQ2FsbCA9IHV0aWxzLmRlY29kZUNhbGxNZXRob2QodGhpcy5fZG90VHJhbnNhY3Rpb24sIHtcbiAgICAgICAgbWV0YWRhdGFScGM6IHRoaXMuX2RvdFRyYW5zYWN0aW9uLm1ldGFkYXRhUnBjLFxuICAgICAgICByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnksXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGtleXBhaXJEZXN0ID0gbmV3IEtleVBhaXIoe1xuICAgICAgICBwdWI6IEJ1ZmZlci5mcm9tKGRlY29kZUFkZHJlc3MoZGVjb2RlZENhbGwuZGVzdC5pZCkpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIH0pO1xuICAgICAgY29uc3Qga2V5cGFpckZyb20gPSBuZXcgS2V5UGFpcih7XG4gICAgICAgIHB1YjogQnVmZmVyLmZyb20oZGVjb2RlQWRkcmVzcyhnZXRBZGRyZXNzKHR4TWV0aG9kKSkpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIH0pO1xuICAgICAgdG8gPSBrZXlwYWlyRGVzdC5nZXRBZGRyZXNzKHV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lIGFzIERvdEFzc2V0VHlwZXMpKTtcbiAgICAgIHZhbHVlID0gYCR7ZGVjb2RlZENhbGwudmFsdWV9YDtcbiAgICAgIGZyb20gPSBrZXlwYWlyRnJvbS5nZXRBZGRyZXNzKHV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lIGFzIERvdEFzc2V0VHlwZXMpKTtcbiAgICB9IGVsc2UgaWYgKHV0aWxzLmlzVHJhbnNmZXJBbGwodHhNZXRob2QpKSB7XG4gICAgICBjb25zdCBrZXlwYWlyRGVzdCA9IG5ldyBLZXlQYWlyKHtcbiAgICAgICAgcHViOiBCdWZmZXIuZnJvbShkZWNvZGVBZGRyZXNzKHR4TWV0aG9kLmRlc3QuaWQpKS50b1N0cmluZygnaGV4JyksXG4gICAgICB9KTtcbiAgICAgIHRvID0ga2V5cGFpckRlc3QuZ2V0QWRkcmVzcyh1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKSk7XG4gICAgICB2YWx1ZSA9ICdzd2VlcCc7XG4gICAgICBmcm9tID0gZGVjb2RlZFR4LmFkZHJlc3M7XG4gICAgfSBlbHNlIGlmICh1dGlscy5pc1RyYW5zZmVyKHR4TWV0aG9kKSkge1xuICAgICAgY29uc3Qga2V5cGFpckRlc3QgPSBuZXcgS2V5UGFpcih7XG4gICAgICAgIHB1YjogQnVmZmVyLmZyb20oZGVjb2RlQWRkcmVzcyh0eE1ldGhvZC5kZXN0LmlkKSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgfSk7XG4gICAgICB0byA9IGtleXBhaXJEZXN0LmdldEFkZHJlc3ModXRpbHMuZ2V0QWRkcmVzc0Zvcm1hdCh0aGlzLl9jb2luQ29uZmlnLm5hbWUgYXMgRG90QXNzZXRUeXBlcykpO1xuICAgICAgdmFsdWUgPSB0eE1ldGhvZC52YWx1ZTtcbiAgICAgIGZyb20gPSBkZWNvZGVkVHguYWRkcmVzcztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcihgTG9hZGluZyBpbnB1dHMgb2YgdW5rbm93biBUcmFuc2ZlciB0eXBlIHBhcmFtZXRlcnNgKTtcbiAgICB9XG4gICAgdGhpcy5fb3V0cHV0cyA9IFtcbiAgICAgIHtcbiAgICAgICAgYWRkcmVzczogdG8sXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICB0aGlzLl9pbnB1dHMgPSBbXG4gICAgICB7XG4gICAgICAgIGFkZHJlc3M6IGZyb20sXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIGRlY29kZUlucHV0c0FuZE91dHB1dHNGb3JCYXRjaChkZWNvZGVkVHg6IERlY29kZWRUeCkge1xuICAgIGNvbnN0IHNlbmRlciA9IGRlY29kZWRUeC5hZGRyZXNzO1xuICAgIHRoaXMuX2lucHV0cyA9IFtdO1xuICAgIHRoaXMuX291dHB1dHMgPSBbXTtcblxuICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4Lm1ldGhvZC5hcmdzO1xuICAgIGlmICh1dGlscy5pc1N0YWtpbmdCYXRjaCh0eE1ldGhvZCkpIHtcbiAgICAgIGlmICghdHhNZXRob2QuY2FsbHMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdmYWlsZWQgdG8gZGVjb2RlIGNhbGxzIGZyb20gYmF0Y2ggdHJhbnNhY3Rpb24nKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYm9uZE1ldGhvZCA9ICh0eE1ldGhvZC5jYWxsc1swXSBhcyBCYXRjaENhbGxPYmplY3QpLmNhbGxJbmRleDtcbiAgICAgIGNvbnN0IGRlY29kZWRCb25kQ2FsbCA9IHRoaXMuX3JlZ2lzdHJ5LmZpbmRNZXRhQ2FsbCh0b1VpbnQ4QXJyYXkodXRpbHMuc3RyaXBIZXhQcmVmaXgoYm9uZE1ldGhvZCkpKTtcbiAgICAgIGlmIChkZWNvZGVkQm9uZENhbGwuc2VjdGlvbiAhPT0gU2VjdGlvbk5hbWVzLlN0YWtpbmcgfHwgZGVjb2RlZEJvbmRDYWxsLm1ldGhvZCAhPT0gTWV0aG9kTmFtZXMuQm9uZCkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgICAgJ0ludmFsaWQgYmF0Y2ggdHJhbnNhY3Rpb24sIG9ubHkgc3Rha2luZyBiYXRjaCBjYWxscyBhcmUgc3VwcG9ydGVkLCBleHBlY3RlZCBmaXJzdCBjYWxsIHRvIGJlIGJvbmQuJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3QgYWRkUHJveHlNZXRob2QgPSAodHhNZXRob2QuY2FsbHNbMV0gYXMgQmF0Y2hDYWxsT2JqZWN0KS5jYWxsSW5kZXg7XG4gICAgICBjb25zdCBkZWNvZGVkQWRkUHJveHlDYWxsID0gdGhpcy5fcmVnaXN0cnkuZmluZE1ldGFDYWxsKHRvVWludDhBcnJheSh1dGlscy5zdHJpcEhleFByZWZpeChhZGRQcm94eU1ldGhvZCkpKTtcbiAgICAgIGlmIChkZWNvZGVkQWRkUHJveHlDYWxsLnNlY3Rpb24gIT09IFNlY3Rpb25OYW1lcy5Qcm94eSB8fCBkZWNvZGVkQWRkUHJveHlDYWxsLm1ldGhvZCAhPT0gTWV0aG9kTmFtZXMuQWRkUHJveHkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICAgICdJbnZhbGlkIGJhdGNoIHRyYW5zYWN0aW9uLCBvbmx5IHN0YWtpbmcgYmF0Y2ggY2FsbHMgYXJlIHN1cHBvcnRlZCwgZXhwZWN0ZWQgc2Vjb25kIGNhbGwgdG8gYmUgYWRkUHJveHkuJ1xuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzdGFrZUFyZ3MgPSB0eE1ldGhvZC5jYWxsc1swXS5hcmdzIGFzIFN0YWtlQmF0Y2hDYWxsQXJncztcbiAgICAgIGNvbnN0IGFkZFByb3h5QXJncyA9IHR4TWV0aG9kLmNhbGxzWzFdLmFyZ3MgYXMgQWRkUHJveHlCYXRjaENhbGxBcmdzO1xuICAgICAgY29uc3QgYm9uZFZhbHVlID0gYCR7c3Rha2VBcmdzLnZhbHVlfWA7XG4gICAgICBjb25zdCBwcm94eUFkZHJlc3MgPSBnZXREZWxlZ2F0ZUFkZHJlc3MoYWRkUHJveHlBcmdzKTtcblxuICAgICAgdGhpcy5faW5wdXRzLnB1c2goe1xuICAgICAgICBhZGRyZXNzOiBzZW5kZXIsXG4gICAgICAgIHZhbHVlOiBib25kVmFsdWUsXG4gICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5fb3V0cHV0cy5wdXNoKHtcbiAgICAgICAgYWRkcmVzczogU1RBS0lOR19ERVNUSU5BVElPTixcbiAgICAgICAgdmFsdWU6IGJvbmRWYWx1ZSxcbiAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGFkZFByb3h5Q29zdCA9IHRoaXMuZ2V0QWRkUHJveHlDb3N0KCkudG9TdHJpbmcoMTApO1xuICAgICAgdGhpcy5faW5wdXRzLnB1c2goe1xuICAgICAgICBhZGRyZXNzOiBzZW5kZXIsXG4gICAgICAgIHZhbHVlOiBhZGRQcm94eUNvc3QsXG4gICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5fb3V0cHV0cy5wdXNoKHtcbiAgICAgICAgYWRkcmVzczogcHJveHlBZGRyZXNzLFxuICAgICAgICB2YWx1ZTogYWRkUHJveHlDb3N0LFxuICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHV0aWxzLmlzVW5zdGFraW5nQmF0Y2godHhNZXRob2QpKSB7XG4gICAgICBpZiAoIXR4TWV0aG9kLmNhbGxzKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignZmFpbGVkIHRvIGRlY29kZSBjYWxscyBmcm9tIGJhdGNoIHRyYW5zYWN0aW9uJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlbW92ZVByb3h5TWV0aG9kID0gKHR4TWV0aG9kLmNhbGxzWzBdIGFzIEJhdGNoQ2FsbE9iamVjdCkuY2FsbEluZGV4O1xuICAgICAgY29uc3QgZGVjb2RlZFJlbW92ZVByb3h5Q2FsbCA9IHRoaXMuX3JlZ2lzdHJ5LmZpbmRNZXRhQ2FsbCh0b1VpbnQ4QXJyYXkodXRpbHMuc3RyaXBIZXhQcmVmaXgocmVtb3ZlUHJveHlNZXRob2QpKSk7XG4gICAgICBpZiAoXG4gICAgICAgIGRlY29kZWRSZW1vdmVQcm94eUNhbGwuc2VjdGlvbiAhPT0gU2VjdGlvbk5hbWVzLlByb3h5IHx8XG4gICAgICAgIGRlY29kZWRSZW1vdmVQcm94eUNhbGwubWV0aG9kICE9PSBNZXRob2ROYW1lcy5SZW1vdmVQcm94eVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgICAnSW52YWxpZCBiYXRjaCB0cmFuc2FjdGlvbiwgb25seSBzdGFraW5nIGJhdGNoIGNhbGxzIGFyZSBzdXBwb3J0ZWQsIGV4cGVjdGVkIGZpcnN0IGNhbGwgdG8gYmUgcmVtb3ZlUHJveHkuJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3QgY2hpbGxNZXRob2QgPSAodHhNZXRob2QuY2FsbHNbMV0gYXMgQmF0Y2hDYWxsT2JqZWN0KS5jYWxsSW5kZXg7XG4gICAgICBjb25zdCBkZWNvZGVkQ2hpbGxDYWxsID0gdGhpcy5fcmVnaXN0cnkuZmluZE1ldGFDYWxsKHRvVWludDhBcnJheSh1dGlscy5zdHJpcEhleFByZWZpeChjaGlsbE1ldGhvZCkpKTtcbiAgICAgIGlmIChkZWNvZGVkQ2hpbGxDYWxsLnNlY3Rpb24gIT09IFNlY3Rpb25OYW1lcy5TdGFraW5nIHx8IGRlY29kZWRDaGlsbENhbGwubWV0aG9kICE9PSBNZXRob2ROYW1lcy5DaGlsbCkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgICAgJ0ludmFsaWQgYmF0Y2ggdHJhbnNhY3Rpb24sIG9ubHkgc3Rha2luZyBiYXRjaCBjYWxscyBhcmUgc3VwcG9ydGVkLCBleHBlY3RlZCBzZWNvbmQgY2FsbCB0byBiZSBjaGlsbC4nXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBjb25zdCB1bnN0YWtlTWV0aG9kID0gKHR4TWV0aG9kLmNhbGxzWzJdIGFzIEJhdGNoQ2FsbE9iamVjdCkuY2FsbEluZGV4O1xuICAgICAgY29uc3QgZGVjb2RlZFVuc3Rha2VDYWxsID0gdGhpcy5fcmVnaXN0cnkuZmluZE1ldGFDYWxsKHRvVWludDhBcnJheSh1dGlscy5zdHJpcEhleFByZWZpeCh1bnN0YWtlTWV0aG9kKSkpO1xuICAgICAgaWYgKGRlY29kZWRVbnN0YWtlQ2FsbC5zZWN0aW9uICE9PSBTZWN0aW9uTmFtZXMuU3Rha2luZyB8fCBkZWNvZGVkVW5zdGFrZUNhbGwubWV0aG9kICE9PSBNZXRob2ROYW1lcy5VbmJvbmQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICAgICdJbnZhbGlkIGJhdGNoIHRyYW5zYWN0aW9uLCBvbmx5IHN0YWtpbmcgYmF0Y2ggY2FsbHMgYXJlIHN1cHBvcnRlZCwgZXhwZWN0ZWQgdGhpcmQgY2FsbCB0byBiZSB1bmJvbmQuJ1xuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZW1vdmVQcm94eUFyZ3MgPSB0eE1ldGhvZC5jYWxsc1swXS5hcmdzIGFzIEFkZFByb3h5QmF0Y2hDYWxsQXJncztcbiAgICAgIGNvbnN0IHByb3h5QWRkcmVzcyA9IGdldERlbGVnYXRlQWRkcmVzcyhyZW1vdmVQcm94eUFyZ3MpO1xuXG4gICAgICBjb25zdCByZW1vdmVQcm94eUNvc3QgPSB0aGlzLmdldFJlbW92ZVByb3h5Q29zdCgpLnRvU3RyaW5nKDEwKTtcbiAgICAgIHRoaXMuX2lucHV0cy5wdXNoKHtcbiAgICAgICAgYWRkcmVzczogcHJveHlBZGRyZXNzLFxuICAgICAgICB2YWx1ZTogcmVtb3ZlUHJveHlDb3N0LFxuICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuX291dHB1dHMucHVzaCh7XG4gICAgICAgIGFkZHJlc3M6IHNlbmRlcixcbiAgICAgICAgdmFsdWU6IHJlbW92ZVByb3h5Q29zdCxcbiAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZW1vdmVQcm94eUNvc3QoKTogQmlnTnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBZGRQcm94eUNvc3QoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWRkUHJveHlDb3N0KCk6IEJpZ051bWJlciB7XG4gICAgY29uc3QgcHJveHlQYWxsZXQgPSB0aGlzLl9yZWdpc3RyeS5tZXRhZGF0YS5wYWxsZXRzLmZpbmQoXG4gICAgICAocCkgPT4gcC5uYW1lLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gU2VjdGlvbk5hbWVzLlByb3h5XG4gICAgKTtcbiAgICBpZiAocHJveHlQYWxsZXQpIHtcbiAgICAgIGNvbnN0IHByb3h5RGVwb3NpdEJhc2UgPSB0aGlzLmdldENvbnN0YW50KCdQcm94eURlcG9zaXRCYXNlJywgcHJveHlQYWxsZXQuY29uc3RhbnRzKTtcbiAgICAgIGNvbnN0IHByb3h5RGVwb3NpdEZhY3RvciA9IHRoaXMuZ2V0Q29uc3RhbnQoJ1Byb3h5RGVwb3NpdEZhY3RvcicsIHByb3h5UGFsbGV0LmNvbnN0YW50cyk7XG4gICAgICByZXR1cm4gcHJveHlEZXBvc2l0QmFzZS5wbHVzKHByb3h5RGVwb3NpdEZhY3Rvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHBhbGxldE5hbWVzID0gdGhpcy5fcmVnaXN0cnkubWV0YWRhdGEucGFsbGV0cy5tYXAoKHApID0+IHAubmFtZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCAke1NlY3Rpb25OYW1lcy5Qcm94eX0gcGFsbGV0IGluIFske3BhbGxldE5hbWVzfV1gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldENvbnN0YW50KG5hbWU6IHN0cmluZywgY29uc3RhbnRzOiBWZWM8UGFsbGV0Q29uc3RhbnRNZXRhZGF0YVYxND4pOiBCaWdOdW1iZXIge1xuICAgIGNvbnN0IGNvbnN0YW50ID0gY29uc3RhbnRzLmZpbmQoKGMpID0+IGMubmFtZS50b1N0cmluZygpID09PSBuYW1lKTtcbiAgICBpZiAoY29uc3RhbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgY29uc3RhbnROYW1lcyA9IGNvbnN0YW50cy5tYXAoKHApID0+IHAubmFtZS50b1N0cmluZygpKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGZpbmQgY29uc3RhbnQgJHtuYW1lfSBpbiBbJHtjb25zdGFudE5hbWVzfV1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ29udmVydCBmcm9tIExpdHRsZS1FbmRpYW4gdG8gQmlnLUVuZGlhblxuICAgICAgY29uc3QgdmFsdWVCZSA9IEJ1ZmZlci5mcm9tKGNvbnN0YW50LnZhbHVlLnRvVThhKHRydWUpLnJldmVyc2UoKSkudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgcmV0dXJuIEJpZ051bWJlcih2YWx1ZUJlLCAxNik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZWNvZGVJbnB1dHNBbmRPdXRwdXRzRm9yQm9uZChkZWNvZGVkVHg6IERlY29kZWRUeCkge1xuICAgIGNvbnN0IHNlbmRlciA9IGRlY29kZWRUeC5hZGRyZXNzO1xuICAgIHRoaXMuX2lucHV0cyA9IFtdO1xuICAgIHRoaXMuX291dHB1dHMgPSBbXTtcblxuICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4Lm1ldGhvZC5hcmdzO1xuICAgIGlmIChkZWNvZGVkVHgubWV0aG9kLnBhbGxldCA9PT0gU2VjdGlvbk5hbWVzLlN0YWtpbmcpIHtcbiAgICAgIGxldCBib25kVmFsdWUgPSAnMCc7XG4gICAgICBpZiAoZGVjb2RlZFR4Lm1ldGhvZC5uYW1lID09PSBNZXRob2ROYW1lcy5Cb25kICYmIHV0aWxzLmlzQm9uZCh0eE1ldGhvZCkpIHtcbiAgICAgICAgYm9uZFZhbHVlID0gdHhNZXRob2QudmFsdWU7XG4gICAgICB9IGVsc2UgaWYgKGRlY29kZWRUeC5tZXRob2QubmFtZSA9PT0gTWV0aG9kTmFtZXMuQm9uZEV4dHJhICYmIHV0aWxzLmlzQm9uZEV4dHJhKHR4TWV0aG9kKSkge1xuICAgICAgICBib25kVmFsdWUgPSB0eE1ldGhvZC5tYXhBZGRpdGlvbmFsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcihgTG9hZGluZyBpbnB1dHMgb2YgdW5rbm93biBTdGFraW5nQWN0aXZhdGUgdHlwZSBwYXJhbWV0ZXJzYCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9pbnB1dHMucHVzaCh7XG4gICAgICAgIGFkZHJlc3M6IHNlbmRlcixcbiAgICAgICAgdmFsdWU6IGJvbmRWYWx1ZSxcbiAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgfSk7XG4gICAgICB0aGlzLl9vdXRwdXRzLnB1c2goe1xuICAgICAgICBhZGRyZXNzOiBTVEFLSU5HX0RFU1RJTkFUSU9OLFxuICAgICAgICB2YWx1ZTogYm9uZFZhbHVlLFxuICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlY29kZUlucHV0c0FuZE91dHB1dHNGb3JVbmJvbmQoZGVjb2RlZFR4OiBEZWNvZGVkVHgpIHtcbiAgICB0aGlzLl9pbnB1dHMgPSBbXTtcbiAgICB0aGlzLl9vdXRwdXRzID0gW107XG4gIH1cblxuICBwcml2YXRlIGRlY29kZUlucHV0c0FuZE91dHB1dHNGb3JXaXRoZHJhd1VuYm9uZChkZWNvZGVkVHg6IERlY29kZWRUeCkge1xuICAgIHRoaXMuX2lucHV0cyA9IFtdO1xuICAgIHRoaXMuX291dHB1dHMgPSBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgc2lnbmVkIHBheWxvYWQgdXNpbmcgY29uc3RydWN0LnNpZ25UeFxuICAgKiBUaGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBkdXJpbmcgdGhlIGJ1aWxkIHN0ZXAgaWYgYSBUU1Mgc2lnbmF0dXJlXG4gICAqIGlzIGFkZGVkIGFuZCB3aWxsIHNldCB0aGUgc2lnblRyYW5zYWN0aW9uIHdoaWNoIGlzIHRoZSB0eEhleCB0aGF0IHdpbGwgYmUgYnJvYWRjYXN0ZWRcbiAgICogQXMgd2VsbCBhcyBhZGQgdGhlIHNpZ25hdHVyZSB1c2VkIHRvIHNpZ24gdG8gdGhlIHNpZ25hdHVyZSBhcnJheSBpbiBoZXggZm9ybWF0XG4gICAqXG4gICAqIEBwYXJhbSB7QnVmZmVyfSBzaWduYXR1cmUgVGhlIHNpZ25hdHVyZSB0byBiZSBhZGRlZCB0byBhIGRvdCB0cmFuc2FjdGlvblxuICAgKi9cbiAgY29uc3RydWN0U2lnbmVkUGF5bG9hZChzaWduYXR1cmU6IEJ1ZmZlcik6IHZvaWQge1xuICAgIC8vIDB4MDAgbWVhbnMgaXRzIGFuIEVEMjU1MTkgc2lnbmF0dXJlXG4gICAgY29uc3QgZWRTaWduYXR1cmUgPSBgMHgwMCR7c2lnbmF0dXJlLnRvU3RyaW5nKCdoZXgnKX1gIGFzIEhleFN0cmluZztcblxuICAgIHRyeSB7XG4gICAgICB0aGlzLl9zaWduZWRUcmFuc2FjdGlvbiA9IGNvbnN0cnVjdC5zaWduZWRUeCh0aGlzLl9kb3RUcmFuc2FjdGlvbiwgZWRTaWduYXR1cmUsIHtcbiAgICAgICAgcmVnaXN0cnk6IHRoaXMuX3JlZ2lzdHJ5LFxuICAgICAgICBtZXRhZGF0YVJwYzogdGhpcy5fZG90VHJhbnNhY3Rpb24ubWV0YWRhdGFScGMsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKGBVbmFibGUgdG8gc2lnbiBkb3QgdHJhbnNhY3Rpb24gd2l0aCBzaWduYXR1cmUgJHtlZFNpZ25hdHVyZX0gYCArIGUpO1xuICAgIH1cblxuICAgIHRoaXMuX3NpZ25hdHVyZXMgPSBbc2lnbmF0dXJlLnRvU3RyaW5nKCdoZXgnKV07XG4gIH1cblxuICBzZXRUcmFuc2FjdGlvbih0eDogVW5zaWduZWRUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX2RvdFRyYW5zYWN0aW9uID0gdHg7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKiovXG4gIGdldCBzaWduYWJsZVBheWxvYWQoKTogQnVmZmVyIHtcbiAgICBjb25zdCBleHRyaW5zaWNQYXlsb2FkID0gdGhpcy5fcmVnaXN0cnkuY3JlYXRlVHlwZSgnRXh0cmluc2ljUGF5bG9hZCcsIHRoaXMuX2RvdFRyYW5zYWN0aW9uLCB7XG4gICAgICB2ZXJzaW9uOiB0aGlzLl9kb3RUcmFuc2FjdGlvbi52ZXJzaW9uLFxuICAgIH0pO1xuICAgIHJldHVybiB1OGFUb0J1ZmZlcihleHRyaW5zaWNQYXlsb2FkLnRvVThhKHsgbWV0aG9kOiB0cnVlIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25UeXBlfSB0cmFuc2FjdGlvblR5cGUgVGhlIHRyYW5zYWN0aW9uIHR5cGUgdG8gYmUgc2V0LlxuICAgKi9cbiAgdHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxufVxuIl19
588
+ Transaction.FAKE_SIGNATURE = `0x${Buffer.from(new Uint8Array(256).fill(1)).toString('hex')}`;
589
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFVOEI7QUFFOUIsNkRBQTBFO0FBQzFFLHlDQUE2QztBQUM3QyxzRUFBa0U7QUFHbEUsdUNBQW9DO0FBQ3BDLG1DQWlCaUI7QUFDakIsK0NBQStEO0FBQy9ELG9EQUE0QjtBQUM1QixnRUFBcUM7QUFJckM7OztHQUdHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRyx1QkFBYSxDQUFDLG9FQUFvRSxDQUFDLENBQUM7QUFFdkgsTUFBYSxXQUFZLFNBQVEsMEJBQWU7SUFTOUMsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixPQUFPLENBQUMsRUFBRSxHQUFHLEVBQVc7UUFDdEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxpQkFBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDckMsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxlQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFxQixDQUFDLENBQUMsQ0FBQztRQUMzRixPQUFPLElBQUksS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxDQUFDLE9BQWdCO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1NBQ2xFO1FBQ0QsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNS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LEVBQUU7WUFDVixNQUFNLElBQUksdUJBQVksQ0FBQyxpREFBaUQsV0FBVyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDN0Y7UUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxjQUFjLENBQUMsRUFBdUI7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixJQUFJLGVBQWU7UUFDakIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQzNGLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU87U0FDdEMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxrQkFBVyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxlQUFlLENBQUMsZUFBZ0M7UUFDOUMsSUFBSSxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUM7SUFDL0IsQ0FBQzs7QUFqbUJILGtDQWttQkM7QUEzbEJnQiwwQkFBYyxHQUFHLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbixcbiAgRG90QXNzZXRUeXBlcyxcbiAgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsXG4gIFBhcnNlVHJhbnNhY3Rpb25FcnJvcixcbiAgU2lnbmluZ0Vycm9yLFxuICB0b1VpbnQ4QXJyYXksXG4gIFRyYW5zYWN0aW9uUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCBLZXlyaW5nLCB7IGRlY29kZUFkZHJlc3MsIGVuY29kZUFkZHJlc3MgfSBmcm9tICdAcG9sa2Fkb3Qva2V5cmluZyc7XG5pbXBvcnQgeyB1OGFUb0J1ZmZlciB9IGZyb20gJ0Bwb2xrYWRvdC91dGlsJztcbmltcG9ydCB7IGNvbnN0cnVjdCwgZGVjb2RlIH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItcG9sa2Fkb3QnO1xuaW1wb3J0IHsgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IHsgVHlwZVJlZ2lzdHJ5IH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItY29yZS9saWIvdHlwZXMnO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5pbXBvcnQge1xuICBBZGRBbm9ueW1vdXNQcm94eUFyZ3MsXG4gIEFkZFByb3h5QXJncyxcbiAgQWRkUHJveHlCYXRjaENhbGxBcmdzLFxuICBCYXRjaEFyZ3MsXG4gIEJhdGNoQ2FsbE9iamVjdCxcbiAgQ2xhaW1BcmdzLFxuICBEZWNvZGVkVHgsXG4gIEhleFN0cmluZyxcbiAgTWV0aG9kTmFtZXMsXG4gIFNlY3Rpb25OYW1lcyxcbiAgU3Rha2VBcmdzUGF5ZWVSYXcsXG4gIFN0YWtlQmF0Y2hDYWxsQXJncyxcbiAgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbixcbiAgVHhEYXRhLFxuICBVbnN0YWtlQXJncyxcbiAgV2l0aGRyYXdVbnN0YWtlZEFyZ3MsXG59IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgZ2V0QWRkcmVzcywgZ2V0RGVsZWdhdGVBZGRyZXNzIH0gZnJvbSAnLi9pZmFjZV91dGlscyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBWZWMgfSBmcm9tICdAcG9sa2Fkb3QvdHlwZXMnO1xuaW1wb3J0IHsgUGFsbGV0Q29uc3RhbnRNZXRhZGF0YVYxNCB9IGZyb20gJ0Bwb2xrYWRvdC90eXBlcy9pbnRlcmZhY2VzJztcblxuLyoqXG4gKiBVc2UgYSBkdW1teSBhZGRyZXNzIGFzIHRoZSBkZXN0aW5hdGlvbiBvZiBhIGJvbmQgb3IgYm9uZEV4dHJhIGJlY2F1c2Ugb3VyIGlucHV0cyBhbmQgb3V0cHV0cyBtb2RlbFxuICogZG9lc24ndCBzZWVtIHRvIGhhbmRsZSB0aGUgY29uY2VwdCBvZiBsb2NraW5nIGZ1bmRzIHdpdGhpbiBhIHdhbGxldCBhcyBhIG1ldGhvZCBvZiB0cmFuc2ZlcnJpbmcgY29pbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBTVEFLSU5HX0RFU1RJTkFUSU9OID0gZW5jb2RlQWRkcmVzcygnMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyk7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIHByb3RlY3RlZCBfZG90VHJhbnNhY3Rpb246IFVuc2lnbmVkVHJhbnNhY3Rpb247XG4gIHByaXZhdGUgX3NpZ25lZFRyYW5zYWN0aW9uPzogc3RyaW5nO1xuICBwcml2YXRlIF9yZWdpc3RyeTogVHlwZVJlZ2lzdHJ5O1xuICBwcml2YXRlIF9jaGFpbk5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBfc2VuZGVyOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgRkFLRV9TSUdOQVRVUkUgPSBgMHgke0J1ZmZlci5mcm9tKG5ldyBVaW50OEFycmF5KDI1NikuZmlsbCgxKSkudG9TdHJpbmcoJ2hleCcpfWA7XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBjYW5TaWduKHsga2V5IH06IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICBjb25zdCBrcCA9IG5ldyBLZXlQYWlyKHsgcHJ2OiBrZXkgfSk7XG4gICAgY29uc3QgYWRkciA9IGtwLmdldEFkZHJlc3ModXRpbHMuZ2V0QWRkcmVzc0Zvcm1hdCh0aGlzLl9jb2luQ29uZmlnLm5hbWUgYXMgRG90QXNzZXRUeXBlcykpO1xuICAgIHJldHVybiBhZGRyID09PSB0aGlzLl9zZW5kZXI7XG4gIH1cblxuICAvKipcbiAgICogU2lnbiBhIHBvbGthZG90IHRyYW5zYWN0aW9uIGFuZCB1cGRhdGUgdGhlIHRyYW5zYWN0aW9uIGhleFxuICAgKlxuICAgKiBAcGFyYW0ge0tleVBhaXJ9IGtleVBhaXIgLSBlZCBzaWduYXR1cmVcbiAgICovXG4gIHNpZ24oa2V5UGFpcjogS2V5UGFpcik6IHZvaWQge1xuICAgIGlmICghdGhpcy5fZG90VHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignTm8gdHJhbnNhY3Rpb24gZGF0YSB0byBzaWduJyk7XG4gICAgfVxuICAgIGNvbnN0IHsgcHJ2LCBwdWIgfSA9IGtleVBhaXIuZ2V0S2V5cygpO1xuICAgIGlmICghcHJ2KSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdNaXNzaW5nIHByaXZhdGUga2V5Jyk7XG4gICAgfVxuICAgIGNvbnN0IHNpZ25pbmdQYXlsb2FkID0gY29uc3RydWN0LnNpZ25pbmdQYXlsb2FkKHRoaXMuX2RvdFRyYW5zYWN0aW9uLCB7XG4gICAgICByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnksXG4gICAgfSk7XG4gICAgLy8gU2lnbiBhIHBheWxvYWQuIFRoaXMgb3BlcmF0aW9uIHNob3VsZCBiZSBwZXJmb3JtZWQgb24gYW4gb2ZmbGluZSBkZXZpY2UuXG4gICAgY29uc3Qga2V5cmluZyA9IG5ldyBLZXlyaW5nKHsgdHlwZTogJ2VkMjU1MTknIH0pO1xuICAgIGNvbnN0IHNlY3JldEtleSA9IG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKHBydiwgJ2hleCcpKTtcbiAgICBjb25zdCBwdWJsaWNLZXkgPSBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbShwdWIsICdoZXgnKSk7XG4gICAgY29uc3Qgc2lnbmluZ0tleVBhaXIgPSBrZXlyaW5nLmFkZEZyb21QYWlyKHsgc2VjcmV0S2V5LCBwdWJsaWNLZXkgfSk7XG4gICAgY29uc3QgdHhIZXggPSB1dGlscy5jcmVhdGVTaWduZWRUeChzaWduaW5nS2V5UGFpciwgc2lnbmluZ1BheWxvYWQsIHRoaXMuX2RvdFRyYW5zYWN0aW9uLCB7XG4gICAgICBtZXRhZGF0YVJwYzogdGhpcy5fZG90VHJhbnNhY3Rpb24ubWV0YWRhdGFScGMsXG4gICAgICByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnksXG4gICAgfSk7XG5cbiAgICAvLyBnZXQgc2lnbmF0dXJlIGZyb20gc2lnbmVkIHR4SGV4IGdlbmVyYXRlZCBhYm92ZVxuICAgIHRoaXMuX3NpZ25hdHVyZXMgPSBbdXRpbHMucmVjb3ZlclNpZ25hdHVyZUZyb21SYXdUeCh0eEhleCwgeyByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnkgfSldO1xuICAgIHRoaXMuX3NpZ25lZFRyYW5zYWN0aW9uID0gdHhIZXg7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyB0aGUgc2lnbmF0dXJlIHRvIHRoZSBET1QgVHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IHNpZ25hdHVyZVxuICAgKi9cbiAgYWRkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fc2lnbmVkVHJhbnNhY3Rpb24gPSB1dGlscy5zZXJpYWxpemVTaWduZWRUcmFuc2FjdGlvbihcbiAgICAgIHRoaXMuX2RvdFRyYW5zYWN0aW9uLFxuICAgICAgc2lnbmF0dXJlLFxuICAgICAgdGhpcy5fZG90VHJhbnNhY3Rpb24ubWV0YWRhdGFScGMsXG4gICAgICB0aGlzLl9yZWdpc3RyeVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhpcyB0cmFuc2FjdGlvbiB3aXRoIGEgZmFrZSBzaWduYXR1cmUgYXR0YWNoZWQgd2hpY2hcbiAgICogY2FuIGJlIHVzZWQgdG8gZXN0aW1hdGUgdHJhbnNhY3Rpb24gZmVlcy5cbiAgICovXG4gIGZha2VTaWduKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHV0aWxzLnNlcmlhbGl6ZVNpZ25lZFRyYW5zYWN0aW9uKFxuICAgICAgdGhpcy5fZG90VHJhbnNhY3Rpb24sXG4gICAgICBUcmFuc2FjdGlvbi5GQUtFX1NJR05BVFVSRSxcbiAgICAgIHRoaXMuX2RvdFRyYW5zYWN0aW9uLm1ldGFkYXRhUnBjLFxuICAgICAgdGhpcy5fcmVnaXN0cnlcbiAgICApO1xuICB9XG5cbiAgcmVnaXN0cnkocmVnaXN0cnk6IFR5cGVSZWdpc3RyeSk6IHZvaWQge1xuICAgIHRoaXMuX3JlZ2lzdHJ5ID0gcmVnaXN0cnk7XG4gIH1cblxuICBjaGFpbk5hbWUoY2hhaW5OYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9jaGFpbk5hbWUgPSBjaGFpbk5hbWU7XG4gIH1cblxuICBzZW5kZXIoc2VuZGVyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9zZW5kZXIgPSBzZW5kZXI7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX2RvdFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zaWduZWRUcmFuc2FjdGlvbiAmJiB0aGlzLl9zaWduZWRUcmFuc2FjdGlvbi5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2lnbmVkVHJhbnNhY3Rpb247XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjb25zdHJ1Y3Quc2lnbmluZ1BheWxvYWQodGhpcy5fZG90VHJhbnNhY3Rpb24sIHtcbiAgICAgICAgcmVnaXN0cnk6IHRoaXMuX3JlZ2lzdHJ5LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdHJhbnNhY3Rpb25TaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudG9Ccm9hZGNhc3RGb3JtYXQoKS5sZW5ndGggLyAyO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGlmICghdGhpcy5fZG90VHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgY29uc3QgZGVjb2RlZFR4ID0gZGVjb2RlKHRoaXMuX2RvdFRyYW5zYWN0aW9uLCB7XG4gICAgICBtZXRhZGF0YVJwYzogdGhpcy5fZG90VHJhbnNhY3Rpb24ubWV0YWRhdGFScGMsXG4gICAgICByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnksXG4gICAgICBpc0ltbW9ydGFsRXJhOiB1dGlscy5pc1plcm9IZXgodGhpcy5fZG90VHJhbnNhY3Rpb24uZXJhKSxcbiAgICB9KSBhcyB1bmtub3duIGFzIERlY29kZWRUeDtcblxuICAgIGNvbnN0IHJlc3VsdDogVHhEYXRhID0ge1xuICAgICAgaWQ6IGNvbnN0cnVjdC50eEhhc2godGhpcy50b0Jyb2FkY2FzdEZvcm1hdCgpKSxcbiAgICAgIHNlbmRlcjogZGVjb2RlZFR4LmFkZHJlc3MsXG4gICAgICByZWZlcmVuY2VCbG9jazogZGVjb2RlZFR4LmJsb2NrSGFzaCxcbiAgICAgIGJsb2NrTnVtYmVyOiBkZWNvZGVkVHguYmxvY2tOdW1iZXIsXG4gICAgICBnZW5lc2lzSGFzaDogZGVjb2RlZFR4LmdlbmVzaXNIYXNoLFxuICAgICAgbm9uY2U6IGRlY29kZWRUeC5ub25jZSxcbiAgICAgIHNwZWNWZXJzaW9uOiBkZWNvZGVkVHguc3BlY1ZlcnNpb24sXG4gICAgICB0cmFuc2FjdGlvblZlcnNpb246IGRlY29kZWRUeC50cmFuc2FjdGlvblZlcnNpb24sXG4gICAgICBlcmFQZXJpb2Q6IGRlY29kZWRUeC5lcmFQZXJpb2QsXG4gICAgICBjaGFpbk5hbWU6IHRoaXMuX2NoYWluTmFtZSxcbiAgICAgIHRpcDogZGVjb2RlZFR4LnRpcCxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlNlbmQpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4Lm1ldGhvZC5hcmdzO1xuICAgICAgaWYgKHV0aWxzLmlzUHJveHlUcmFuc2Zlcih0eE1ldGhvZCkpIHtcbiAgICAgICAgY29uc3Qga2V5cGFpclJlYWwgPSBuZXcgS2V5UGFpcih7XG4gICAgICAgICAgcHViOiBCdWZmZXIuZnJvbShkZWNvZGVBZGRyZXNzKGdldEFkZHJlc3ModHhNZXRob2QpKSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICB9KTtcbiAgICAgICAgcmVzdWx0Lm93bmVyID0ga2V5cGFpclJlYWwuZ2V0QWRkcmVzcyh1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKSk7XG4gICAgICAgIHJlc3VsdC5mb3JjZVByb3h5VHlwZSA9IHR4TWV0aG9kLmZvcmNlUHJveHlUeXBlO1xuICAgICAgICBjb25zdCBkZWNvZGVkQ2FsbCA9IHV0aWxzLmRlY29kZUNhbGxNZXRob2QodGhpcy5fZG90VHJhbnNhY3Rpb24sIHtcbiAgICAgICAgICBtZXRhZGF0YVJwYzogdGhpcy5fZG90VHJhbnNhY3Rpb24ubWV0YWRhdGFScGMsXG4gICAgICAgICAgcmVnaXN0cnk6IHRoaXMuX3JlZ2lzdHJ5LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qga2V5cGFpckRlc3QgPSBuZXcgS2V5UGFpcih7XG4gICAgICAgICAgcHViOiBCdWZmZXIuZnJvbShkZWNvZGVBZGRyZXNzKGRlY29kZWRDYWxsLmRlc3QuaWQpKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIH0pO1xuICAgICAgICByZXN1bHQudG8gPSBrZXlwYWlyRGVzdC5nZXRBZGRyZXNzKHV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lIGFzIERvdEFzc2V0VHlwZXMpKTtcbiAgICAgICAgcmVzdWx0LmFtb3VudCA9IGRlY29kZWRDYWxsLnZhbHVlO1xuICAgICAgfSBlbHNlIGlmICh1dGlscy5pc1RyYW5zZmVyKHR4TWV0aG9kKSkge1xuICAgICAgICBjb25zdCBrZXlwYWlyRGVzdCA9IG5ldyBLZXlQYWlyKHtcbiAgICAgICAgICBwdWI6IEJ1ZmZlci5mcm9tKGRlY29kZUFkZHJlc3ModHhNZXRob2QuZGVzdC5pZCkpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJlc3VsdC50byA9IGtleXBhaXJEZXN0LmdldEFkZHJlc3ModXRpbHMuZ2V0QWRkcmVzc0Zvcm1hdCh0aGlzLl9jb2luQ29uZmlnLm5hbWUgYXMgRG90QXNzZXRUeXBlcykpO1xuICAgICAgICByZXN1bHQuYW1vdW50ID0gdHhNZXRob2QudmFsdWU7XG4gICAgICB9IGVsc2UgaWYgKHV0aWxzLmlzVHJhbnNmZXJBbGwodHhNZXRob2QpKSB7XG4gICAgICAgIGNvbnN0IGtleXBhaXJEZXN0ID0gbmV3IEtleVBhaXIoe1xuICAgICAgICAgIHB1YjogQnVmZmVyLmZyb20oZGVjb2RlQWRkcmVzcyh0eE1ldGhvZC5kZXN0LmlkKSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICB9KTtcbiAgICAgICAgcmVzdWx0LnRvID0ga2V5cGFpckRlc3QuZ2V0QWRkcmVzcyh1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKGBTZXJpYWxpemluZyB1bmtub3duIFRyYW5zZmVyIHR5cGUgcGFyYW1ldGVyc2ApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWN0aXZhdGUpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4Lm1ldGhvZC5hcmdzO1xuICAgICAgaWYgKHV0aWxzLmlzQm9uZCh0eE1ldGhvZCkpIHtcbiAgICAgICAgY29uc3Qga2V5cGFpciA9IG5ldyBLZXlQYWlyKHtcbiAgICAgICAgICBwdWI6IEJ1ZmZlci5mcm9tKGRlY29kZUFkZHJlc3ModHhNZXRob2QuY29udHJvbGxlci5pZCwgZmFsc2UsIHRoaXMuX3JlZ2lzdHJ5LmNoYWluU1M1OCkpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmVzdWx0LmNvbnRyb2xsZXIgPSBrZXlwYWlyLmdldEFkZHJlc3ModXRpbHMuZ2V0QWRkcmVzc0Zvcm1hdCh0aGlzLl9jb2luQ29uZmlnLm5hbWUgYXMgRG90QXNzZXRUeXBlcykpO1xuICAgICAgICByZXN1bHQuYW1vdW50ID0gdHhNZXRob2QudmFsdWU7XG5cbiAgICAgICAgY29uc3QgcGF5ZWUgPSB0eE1ldGhvZC5wYXllZSBhcyBTdGFrZUFyZ3NQYXllZVJhdztcbiAgICAgICAgaWYgKHBheWVlLmFjY291bnQpIHtcbiAgICAgICAgICBjb25zdCBrZXlwYWlyID0gbmV3IEtleVBhaXIoe1xuICAgICAgICAgICAgcHViOiBCdWZmZXIuZnJvbShkZWNvZGVBZGRyZXNzKHBheWVlLmFjY291bnQsIGZhbHNlLCB0aGlzLl9yZWdpc3RyeS5jaGFpblNTNTgpKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmVzdWx0LnBheWVlID0ga2V5cGFpci5nZXRBZGRyZXNzKHV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lIGFzIERvdEFzc2V0VHlwZXMpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBwYXllZVR5cGUgPSB1dGlscy5jYXBpdGFsaXplRmlyc3RMZXR0ZXIoT2JqZWN0LmtleXMocGF5ZWUpWzBdKSBhcyBzdHJpbmc7XG4gICAgICAgICAgcmVzdWx0LnBheWVlID0gcGF5ZWVUeXBlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHV0aWxzLmlzQm9uZEV4dHJhKGRlY29kZWRUeC5tZXRob2QuYXJncykpIHtcbiAgICAgICAgcmVzdWx0LmFtb3VudCA9IGRlY29kZWRUeC5tZXRob2QuYXJncy5tYXhBZGRpdGlvbmFsO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5BZGRyZXNzSW5pdGlhbGl6YXRpb24pIHtcbiAgICAgIGxldCB0eE1ldGhvZDogQWRkQW5vbnltb3VzUHJveHlBcmdzIHwgQWRkUHJveHlBcmdzO1xuICAgICAgaWYgKChkZWNvZGVkVHgubWV0aG9kPy5hcmdzIGFzIEFkZFByb3h5QXJncykuZGVsZWdhdGUpIHtcbiAgICAgICAgdHhNZXRob2QgPSBkZWNvZGVkVHgubWV0aG9kLmFyZ3MgYXMgQWRkUHJveHlBcmdzO1xuICAgICAgICBjb25zdCBkZWxlZ2F0ZUFkZHJlc3MgPSBnZXREZWxlZ2F0ZUFkZHJlc3ModHhNZXRob2QpO1xuICAgICAgICBjb25zdCBkZWNvZGVkQWRkcmVzcyA9IGRlY29kZUFkZHJlc3MoZGVsZWdhdGVBZGRyZXNzLCBmYWxzZSwgdGhpcy5fcmVnaXN0cnkuY2hhaW5TUzU4KTtcbiAgICAgICAgY29uc3Qga2V5cGFpciA9IG5ldyBLZXlQYWlyKHsgcHViOiBCdWZmZXIuZnJvbShkZWNvZGVkQWRkcmVzcykudG9TdHJpbmcoJ2hleCcpIH0pO1xuICAgICAgICByZXN1bHQub3duZXIgPSBrZXlwYWlyLmdldEFkZHJlc3ModXRpbHMuZ2V0QWRkcmVzc0Zvcm1hdCh0aGlzLl9jb2luQ29uZmlnLm5hbWUgYXMgRG90QXNzZXRUeXBlcykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHhNZXRob2QgPSBkZWNvZGVkVHgubWV0aG9kLmFyZ3MgYXMgQWRkQW5vbnltb3VzUHJveHlBcmdzO1xuICAgICAgICByZXN1bHQuaW5kZXggPSB0eE1ldGhvZC5pbmRleDtcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5tZXRob2QgPSB0aGlzLl9kb3RUcmFuc2FjdGlvbi5tZXRob2Q7XG4gICAgICByZXN1bHQucHJveHlUeXBlID0gdHhNZXRob2QucHJveHlUeXBlO1xuICAgICAgcmVzdWx0LmRlbGF5ID0gdHhNZXRob2QuZGVsYXk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdVbmxvY2spIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4Lm1ldGhvZC5hcmdzIGFzIFVuc3Rha2VBcmdzO1xuICAgICAgcmVzdWx0LmFtb3VudCA9IHR4TWV0aG9kLnZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nV2l0aGRyYXcpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4Lm1ldGhvZC5hcmdzIGFzIFdpdGhkcmF3VW5zdGFrZWRBcmdzO1xuICAgICAgcmVzdWx0Lm51bVNsYXNoaW5nU3BhbnMgPSB0eE1ldGhvZC5udW1TbGFzaGluZ1NwYW5zO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQ2xhaW0pIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4Lm1ldGhvZC5hcmdzIGFzIENsYWltQXJncztcbiAgICAgIHJlc3VsdC52YWxpZGF0b3JTdGFzaCA9IHR4TWV0aG9kLnZhbGlkYXRvclN0YXNoO1xuICAgICAgcmVzdWx0LmNsYWltRXJhID0gdHhNZXRob2QuZXJhO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5CYXRjaCkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHgubWV0aG9kLmFyZ3MgYXMgQmF0Y2hBcmdzO1xuICAgICAgcmVzdWx0LmJhdGNoQ2FsbHMgPSB0eE1ldGhvZC5jYWxscztcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZXhwbGFpblRyYW5zZmVyVHJhbnNhY3Rpb24oanNvbjogVHhEYXRhLCBleHBsYW5hdGlvblJlc3VsdDogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbik6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGV4cGxhbmF0aW9uUmVzdWx0LmRpc3BsYXlPcmRlci5wdXNoKCdvd25lcicsICdmb3JjZVByb3h5VHlwZScpO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5leHBsYW5hdGlvblJlc3VsdCxcbiAgICAgIG91dHB1dHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFkZHJlc3M6IGpzb24udG8/LnRvU3RyaW5nKCkgfHwgJycsXG4gICAgICAgICAgYW1vdW50OiBqc29uLmFtb3VudD8udG9TdHJpbmcoKSB8fCAnJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBvd25lcjoganNvbi5vd25lcixcbiAgICAgIGZvcmNlUHJveHlUeXBlOiBqc29uLmZvcmNlUHJveHlUeXBlLFxuICAgIH07XG4gIH1cblxuICBleHBsYWluU3Rha2luZ0FjdGl2YXRlVHJhbnNhY3Rpb24oanNvbjogVHhEYXRhLCBleHBsYW5hdGlvblJlc3VsdDogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbik6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGV4cGxhbmF0aW9uUmVzdWx0LmRpc3BsYXlPcmRlci5wdXNoKCdwYXllZScsICdmb3JjZVByb3h5VHlwZScpO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5leHBsYW5hdGlvblJlc3VsdCxcbiAgICAgIG91dHB1dHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFkZHJlc3M6IGpzb24uY29udHJvbGxlcj8udG9TdHJpbmcoKSB8fCAnJyxcbiAgICAgICAgICBhbW91bnQ6IGpzb24uYW1vdW50IHx8ICcnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHBheWVlOiBqc29uLnBheWVlLFxuICAgICAgZm9yY2VQcm94eVR5cGU6IGpzb24uZm9yY2VQcm94eVR5cGUsXG4gICAgfTtcbiAgfVxuXG4gIGV4cGxhaW5BZGRyZXNzSW5pdGlhbGl6YXRpb25UcmFuc2FjdGlvbihcbiAgICBqc29uOiBUeERhdGEsXG4gICAgZXhwbGFuYXRpb25SZXN1bHQ6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb25cbiAgKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgZXhwbGFuYXRpb25SZXN1bHQuZGlzcGxheU9yZGVyLnB1c2goJ293bmVyJywgJ3Byb3h5VHlwZScsICdkZWxheScpO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5leHBsYW5hdGlvblJlc3VsdCxcbiAgICAgIG93bmVyOiBqc29uLm93bmVyLFxuICAgICAgcHJveHlUeXBlOiBqc29uLnByb3h5VHlwZSxcbiAgICAgIGRlbGF5OiBqc29uLmRlbGF5LFxuICAgIH07XG4gIH1cblxuICBleHBsYWluU3Rha2luZ1VubG9ja1RyYW5zYWN0aW9uKGpzb246IFR4RGF0YSwgZXhwbGFuYXRpb25SZXN1bHQ6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24pOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZXhwbGFuYXRpb25SZXN1bHQsXG4gICAgICBvdXRwdXRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhZGRyZXNzOiBqc29uLnNlbmRlci50b1N0cmluZygpLFxuICAgICAgICAgIGFtb3VudDoganNvbi5hbW91bnQgfHwgJycsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZXhwbGFpblRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMudG9Kc29uKCk7XG4gICAgY29uc3QgZGlzcGxheU9yZGVyID0gWydvdXRwdXRBbW91bnQnLCAnY2hhbmdlQW1vdW50JywgJ291dHB1dHMnLCAnY2hhbmdlT3V0cHV0cycsICdmZWUnLCAndHlwZSddO1xuICAgIGNvbnN0IG91dHB1dHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W10gPSBbXTtcbiAgICBjb25zdCBleHBsYW5hdGlvblJlc3VsdDogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiA9IHtcbiAgICAgIC8vIHR4aGFzaCB1c2VkIHRvIGlkZW50aWZ5IHRoZSB0cmFuc2FjdGlvbnNcbiAgICAgIGlkOiByZXN1bHQuaWQsXG4gICAgICBkaXNwbGF5T3JkZXIsXG4gICAgICBvdXRwdXRBbW91bnQ6IHJlc3VsdC5hbW91bnQ/LnRvU3RyaW5nKCkgfHwgJzAnLFxuICAgICAgY2hhbmdlQW1vdW50OiAnMCcsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgIG91dHB1dHMsXG4gICAgICBmZWU6IHtcbiAgICAgICAgZmVlOiByZXN1bHQudGlwPy50b1N0cmluZygpIHx8ICcnLFxuICAgICAgICB0eXBlOiAndGlwJyxcbiAgICAgIH0sXG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgfTtcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZDpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwbGFpblRyYW5zZmVyVHJhbnNhY3Rpb24ocmVzdWx0LCBleHBsYW5hdGlvblJlc3VsdCk7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWN0aXZhdGU6XG4gICAgICAgIHJldHVybiB0aGlzLmV4cGxhaW5TdGFraW5nQWN0aXZhdGVUcmFuc2FjdGlvbihyZXN1bHQsIGV4cGxhbmF0aW9uUmVzdWx0KTtcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbjpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwbGFpbkFkZHJlc3NJbml0aWFsaXphdGlvblRyYW5zYWN0aW9uKHJlc3VsdCwgZXhwbGFuYXRpb25SZXN1bHQpO1xuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1VubG9jazpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwbGFpblN0YWtpbmdVbmxvY2tUcmFuc2FjdGlvbihyZXN1bHQsIGV4cGxhbmF0aW9uUmVzdWx0KTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignVHJhbnNhY3Rpb24gdHlwZSBub3Qgc3VwcG9ydGVkJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgdGhlIGlucHV0IGFuZCBvdXRwdXQgZGF0YSBvbiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgbG9hZElucHV0c0FuZE91dHB1dHMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9kb3RUcmFuc2FjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkZWNvZGVkVHggPSBkZWNvZGUodGhpcy5fZG90VHJhbnNhY3Rpb24sIHtcbiAgICAgIG1ldGFkYXRhUnBjOiB0aGlzLl9kb3RUcmFuc2FjdGlvbi5tZXRhZGF0YVJwYyxcbiAgICAgIHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSxcbiAgICAgIGlzSW1tb3J0YWxFcmE6IHV0aWxzLmlzWmVyb0hleCh0aGlzLl9kb3RUcmFuc2FjdGlvbi5lcmEpLFxuICAgIH0pIGFzIHVua25vd24gYXMgRGVjb2RlZFR4O1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlNlbmQpIHtcbiAgICAgIHRoaXMuZGVjb2RlSW5wdXRzQW5kT3V0cHV0c0ZvclNlbmQoZGVjb2RlZFR4KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkJhdGNoKSB7XG4gICAgICB0aGlzLmRlY29kZUlucHV0c0FuZE91dHB1dHNGb3JCYXRjaChkZWNvZGVkVHgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0FjdGl2YXRlKSB7XG4gICAgICB0aGlzLmRlY29kZUlucHV0c0FuZE91dHB1dHNGb3JCb25kKGRlY29kZWRUeCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW5sb2NrKSB7XG4gICAgICB0aGlzLmRlY29kZUlucHV0c0FuZE91dHB1dHNGb3JVbmJvbmQoZGVjb2RlZFR4KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdykge1xuICAgICAgdGhpcy5kZWNvZGVJbnB1dHNBbmRPdXRwdXRzRm9yV2l0aGRyYXdVbmJvbmQoZGVjb2RlZFR4KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlY29kZUlucHV0c0FuZE91dHB1dHNGb3JTZW5kKGRlY29kZWRUeDogRGVjb2RlZFR4KSB7XG4gICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHgubWV0aG9kLmFyZ3M7XG4gICAgbGV0IHRvOiBzdHJpbmc7XG4gICAgbGV0IHZhbHVlOiBzdHJpbmc7XG4gICAgbGV0IGZyb206IHN0cmluZztcbiAgICBpZiAodXRpbHMuaXNQcm94eVRyYW5zZmVyKHR4TWV0aG9kKSkge1xuICAgICAgY29uc3QgZGVjb2RlZENhbGwgPSB1dGlscy5kZWNvZGVDYWxsTWV0aG9kKHRoaXMuX2RvdFRyYW5zYWN0aW9uLCB7XG4gICAgICAgIG1ldGFkYXRhUnBjOiB0aGlzLl9kb3RUcmFuc2FjdGlvbi5tZXRhZGF0YVJwYyxcbiAgICAgICAgcmVnaXN0cnk6IHRoaXMuX3JlZ2lzdHJ5LFxuICAgICAgfSk7XG4gICAgICBjb25zdCBrZXlwYWlyRGVzdCA9IG5ldyBLZXlQYWlyKHtcbiAgICAgICAgcHViOiBCdWZmZXIuZnJvbShkZWNvZGVBZGRyZXNzKGRlY29kZWRDYWxsLmRlc3QuaWQpKS50b1N0cmluZygnaGV4JyksXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGtleXBhaXJGcm9tID0gbmV3IEtleVBhaXIoe1xuICAgICAgICBwdWI6IEJ1ZmZlci5mcm9tKGRlY29kZUFkZHJlc3MoZ2V0QWRkcmVzcyh0eE1ldGhvZCkpKS50b1N0cmluZygnaGV4JyksXG4gICAgICB9KTtcbiAgICAgIHRvID0ga2V5cGFpckRlc3QuZ2V0QWRkcmVzcyh1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKSk7XG4gICAgICB2YWx1ZSA9IGAke2RlY29kZWRDYWxsLnZhbHVlfWA7XG4gICAgICBmcm9tID0ga2V5cGFpckZyb20uZ2V0QWRkcmVzcyh1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKSk7XG4gICAgfSBlbHNlIGlmICh1dGlscy5pc1RyYW5zZmVyQWxsKHR4TWV0aG9kKSkge1xuICAgICAgY29uc3Qga2V5cGFpckRlc3QgPSBuZXcgS2V5UGFpcih7XG4gICAgICAgIHB1YjogQnVmZmVyLmZyb20oZGVjb2RlQWRkcmVzcyh0eE1ldGhvZC5kZXN0LmlkKSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgfSk7XG4gICAgICB0byA9IGtleXBhaXJEZXN0LmdldEFkZHJlc3ModXRpbHMuZ2V0QWRkcmVzc0Zvcm1hdCh0aGlzLl9jb2luQ29uZmlnLm5hbWUgYXMgRG90QXNzZXRUeXBlcykpO1xuICAgICAgdmFsdWUgPSAnc3dlZXAnO1xuICAgICAgZnJvbSA9IGRlY29kZWRUeC5hZGRyZXNzO1xuICAgIH0gZWxzZSBpZiAodXRpbHMuaXNUcmFuc2Zlcih0eE1ldGhvZCkpIHtcbiAgICAgIGNvbnN0IGtleXBhaXJEZXN0ID0gbmV3IEtleVBhaXIoe1xuICAgICAgICBwdWI6IEJ1ZmZlci5mcm9tKGRlY29kZUFkZHJlc3ModHhNZXRob2QuZGVzdC5pZCkpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIH0pO1xuICAgICAgdG8gPSBrZXlwYWlyRGVzdC5nZXRBZGRyZXNzKHV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lIGFzIERvdEFzc2V0VHlwZXMpKTtcbiAgICAgIHZhbHVlID0gdHhNZXRob2QudmFsdWU7XG4gICAgICBmcm9tID0gZGVjb2RlZFR4LmFkZHJlc3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoYExvYWRpbmcgaW5wdXRzIG9mIHVua25vd24gVHJhbnNmZXIgdHlwZSBwYXJhbWV0ZXJzYCk7XG4gICAgfVxuICAgIHRoaXMuX291dHB1dHMgPSBbXG4gICAgICB7XG4gICAgICAgIGFkZHJlc3M6IHRvLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgdGhpcy5faW5wdXRzID0gW1xuICAgICAge1xuICAgICAgICBhZGRyZXNzOiBmcm9tLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWNvZGVJbnB1dHNBbmRPdXRwdXRzRm9yQmF0Y2goZGVjb2RlZFR4OiBEZWNvZGVkVHgpIHtcbiAgICBjb25zdCBzZW5kZXIgPSBkZWNvZGVkVHguYWRkcmVzcztcbiAgICB0aGlzLl9pbnB1dHMgPSBbXTtcbiAgICB0aGlzLl9vdXRwdXRzID0gW107XG5cbiAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeC5tZXRob2QuYXJncztcbiAgICBpZiAodXRpbHMuaXNTdGFraW5nQmF0Y2godHhNZXRob2QpKSB7XG4gICAgICBpZiAoIXR4TWV0aG9kLmNhbGxzKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignZmFpbGVkIHRvIGRlY29kZSBjYWxscyBmcm9tIGJhdGNoIHRyYW5zYWN0aW9uJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJvbmRNZXRob2QgPSAodHhNZXRob2QuY2FsbHNbMF0gYXMgQmF0Y2hDYWxsT2JqZWN0KS5jYWxsSW5kZXg7XG4gICAgICBjb25zdCBkZWNvZGVkQm9uZENhbGwgPSB0aGlzLl9yZWdpc3RyeS5maW5kTWV0YUNhbGwodG9VaW50OEFycmF5KHV0aWxzLnN0cmlwSGV4UHJlZml4KGJvbmRNZXRob2QpKSk7XG4gICAgICBpZiAoZGVjb2RlZEJvbmRDYWxsLnNlY3Rpb24gIT09IFNlY3Rpb25OYW1lcy5TdGFraW5nIHx8IGRlY29kZWRCb25kQ2FsbC5tZXRob2QgIT09IE1ldGhvZE5hbWVzLkJvbmQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICAgICdJbnZhbGlkIGJhdGNoIHRyYW5zYWN0aW9uLCBvbmx5IHN0YWtpbmcgYmF0Y2ggY2FsbHMgYXJlIHN1cHBvcnRlZCwgZXhwZWN0ZWQgZmlyc3QgY2FsbCB0byBiZSBib25kLidcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFkZFByb3h5TWV0aG9kID0gKHR4TWV0aG9kLmNhbGxzWzFdIGFzIEJhdGNoQ2FsbE9iamVjdCkuY2FsbEluZGV4O1xuICAgICAgY29uc3QgZGVjb2RlZEFkZFByb3h5Q2FsbCA9IHRoaXMuX3JlZ2lzdHJ5LmZpbmRNZXRhQ2FsbCh0b1VpbnQ4QXJyYXkodXRpbHMuc3RyaXBIZXhQcmVmaXgoYWRkUHJveHlNZXRob2QpKSk7XG4gICAgICBpZiAoZGVjb2RlZEFkZFByb3h5Q2FsbC5zZWN0aW9uICE9PSBTZWN0aW9uTmFtZXMuUHJveHkgfHwgZGVjb2RlZEFkZFByb3h5Q2FsbC5tZXRob2QgIT09IE1ldGhvZE5hbWVzLkFkZFByb3h5KSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgICAnSW52YWxpZCBiYXRjaCB0cmFuc2FjdGlvbiwgb25seSBzdGFraW5nIGJhdGNoIGNhbGxzIGFyZSBzdXBwb3J0ZWQsIGV4cGVjdGVkIHNlY29uZCBjYWxsIHRvIGJlIGFkZFByb3h5LidcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc3Rha2VBcmdzID0gdHhNZXRob2QuY2FsbHNbMF0uYXJncyBhcyBTdGFrZUJhdGNoQ2FsbEFyZ3M7XG4gICAgICBjb25zdCBhZGRQcm94eUFyZ3MgPSB0eE1ldGhvZC5jYWxsc1sxXS5hcmdzIGFzIEFkZFByb3h5QmF0Y2hDYWxsQXJncztcbiAgICAgIGNvbnN0IGJvbmRWYWx1ZSA9IGAke3N0YWtlQXJncy52YWx1ZX1gO1xuICAgICAgY29uc3QgcHJveHlBZGRyZXNzID0gZ2V0RGVsZWdhdGVBZGRyZXNzKGFkZFByb3h5QXJncyk7XG5cbiAgICAgIHRoaXMuX2lucHV0cy5wdXNoKHtcbiAgICAgICAgYWRkcmVzczogc2VuZGVyLFxuICAgICAgICB2YWx1ZTogYm9uZFZhbHVlLFxuICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuX291dHB1dHMucHVzaCh7XG4gICAgICAgIGFkZHJlc3M6IFNUQUtJTkdfREVTVElOQVRJT04sXG4gICAgICAgIHZhbHVlOiBib25kVmFsdWUsXG4gICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBhZGRQcm94eUNvc3QgPSB0aGlzLmdldEFkZFByb3h5Q29zdCgpLnRvU3RyaW5nKDEwKTtcbiAgICAgIHRoaXMuX2lucHV0cy5wdXNoKHtcbiAgICAgICAgYWRkcmVzczogc2VuZGVyLFxuICAgICAgICB2YWx1ZTogYWRkUHJveHlDb3N0LFxuICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuX291dHB1dHMucHVzaCh7XG4gICAgICAgIGFkZHJlc3M6IHByb3h5QWRkcmVzcyxcbiAgICAgICAgdmFsdWU6IGFkZFByb3h5Q29zdCxcbiAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh1dGlscy5pc1Vuc3Rha2luZ0JhdGNoKHR4TWV0aG9kKSkge1xuICAgICAgaWYgKCF0eE1ldGhvZC5jYWxscykge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ2ZhaWxlZCB0byBkZWNvZGUgY2FsbHMgZnJvbSBiYXRjaCB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZW1vdmVQcm94eU1ldGhvZCA9ICh0eE1ldGhvZC5jYWxsc1swXSBhcyBCYXRjaENhbGxPYmplY3QpLmNhbGxJbmRleDtcbiAgICAgIGNvbnN0IGRlY29kZWRSZW1vdmVQcm94eUNhbGwgPSB0aGlzLl9yZWdpc3RyeS5maW5kTWV0YUNhbGwodG9VaW50OEFycmF5KHV0aWxzLnN0cmlwSGV4UHJlZml4KHJlbW92ZVByb3h5TWV0aG9kKSkpO1xuICAgICAgaWYgKFxuICAgICAgICBkZWNvZGVkUmVtb3ZlUHJveHlDYWxsLnNlY3Rpb24gIT09IFNlY3Rpb25OYW1lcy5Qcm94eSB8fFxuICAgICAgICBkZWNvZGVkUmVtb3ZlUHJveHlDYWxsLm1ldGhvZCAhPT0gTWV0aG9kTmFtZXMuUmVtb3ZlUHJveHlcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgICAgJ0ludmFsaWQgYmF0Y2ggdHJhbnNhY3Rpb24sIG9ubHkgc3Rha2luZyBiYXRjaCBjYWxscyBhcmUgc3VwcG9ydGVkLCBleHBlY3RlZCBmaXJzdCBjYWxsIHRvIGJlIHJlbW92ZVByb3h5LidcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNoaWxsTWV0aG9kID0gKHR4TWV0aG9kLmNhbGxzWzFdIGFzIEJhdGNoQ2FsbE9iamVjdCkuY2FsbEluZGV4O1xuICAgICAgY29uc3QgZGVjb2RlZENoaWxsQ2FsbCA9IHRoaXMuX3JlZ2lzdHJ5LmZpbmRNZXRhQ2FsbCh0b1VpbnQ4QXJyYXkodXRpbHMuc3RyaXBIZXhQcmVmaXgoY2hpbGxNZXRob2QpKSk7XG4gICAgICBpZiAoZGVjb2RlZENoaWxsQ2FsbC5zZWN0aW9uICE9PSBTZWN0aW9uTmFtZXMuU3Rha2luZyB8fCBkZWNvZGVkQ2hpbGxDYWxsLm1ldGhvZCAhPT0gTWV0aG9kTmFtZXMuQ2hpbGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICAgICdJbnZhbGlkIGJhdGNoIHRyYW5zYWN0aW9uLCBvbmx5IHN0YWtpbmcgYmF0Y2ggY2FsbHMgYXJlIHN1cHBvcnRlZCwgZXhwZWN0ZWQgc2Vjb25kIGNhbGwgdG8gYmUgY2hpbGwuJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3QgdW5zdGFrZU1ldGhvZCA9ICh0eE1ldGhvZC5jYWxsc1syXSBhcyBCYXRjaENhbGxPYmplY3QpLmNhbGxJbmRleDtcbiAgICAgIGNvbnN0IGRlY29kZWRVbnN0YWtlQ2FsbCA9IHRoaXMuX3JlZ2lzdHJ5LmZpbmRNZXRhQ2FsbCh0b1VpbnQ4QXJyYXkodXRpbHMuc3RyaXBIZXhQcmVmaXgodW5zdGFrZU1ldGhvZCkpKTtcbiAgICAgIGlmIChkZWNvZGVkVW5zdGFrZUNhbGwuc2VjdGlvbiAhPT0gU2VjdGlvbk5hbWVzLlN0YWtpbmcgfHwgZGVjb2RlZFVuc3Rha2VDYWxsLm1ldGhvZCAhPT0gTWV0aG9kTmFtZXMuVW5ib25kKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgICAnSW52YWxpZCBiYXRjaCB0cmFuc2FjdGlvbiwgb25seSBzdGFraW5nIGJhdGNoIGNhbGxzIGFyZSBzdXBwb3J0ZWQsIGV4cGVjdGVkIHRoaXJkIGNhbGwgdG8gYmUgdW5ib25kLidcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVtb3ZlUHJveHlBcmdzID0gdHhNZXRob2QuY2FsbHNbMF0uYXJncyBhcyBBZGRQcm94eUJhdGNoQ2FsbEFyZ3M7XG4gICAgICBjb25zdCBwcm94eUFkZHJlc3MgPSBnZXREZWxlZ2F0ZUFkZHJlc3MocmVtb3ZlUHJveHlBcmdzKTtcblxuICAgICAgY29uc3QgcmVtb3ZlUHJveHlDb3N0ID0gdGhpcy5nZXRSZW1vdmVQcm94eUNvc3QoKS50b1N0cmluZygxMCk7XG4gICAgICB0aGlzLl9pbnB1dHMucHVzaCh7XG4gICAgICAgIGFkZHJlc3M6IHByb3h5QWRkcmVzcyxcbiAgICAgICAgdmFsdWU6IHJlbW92ZVByb3h5Q29zdCxcbiAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgfSk7XG4gICAgICB0aGlzLl9vdXRwdXRzLnB1c2goe1xuICAgICAgICBhZGRyZXNzOiBzZW5kZXIsXG4gICAgICAgIHZhbHVlOiByZW1vdmVQcm94eUNvc3QsXG4gICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVtb3ZlUHJveHlDb3N0KCk6IEJpZ051bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWRkUHJveHlDb3N0KCk7XG4gIH1cblxuICBwcml2YXRlIGdldEFkZFByb3h5Q29zdCgpOiBCaWdOdW1iZXIge1xuICAgIGNvbnN0IHByb3h5UGFsbGV0ID0gdGhpcy5fcmVnaXN0cnkubWV0YWRhdGEucGFsbGV0cy5maW5kKFxuICAgICAgKHApID0+IHAubmFtZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT09IFNlY3Rpb25OYW1lcy5Qcm94eVxuICAgICk7XG4gICAgaWYgKHByb3h5UGFsbGV0KSB7XG4gICAgICBjb25zdCBwcm94eURlcG9zaXRCYXNlID0gdGhpcy5nZXRDb25zdGFudCgnUHJveHlEZXBvc2l0QmFzZScsIHByb3h5UGFsbGV0LmNvbnN0YW50cyk7XG4gICAgICBjb25zdCBwcm94eURlcG9zaXRGYWN0b3IgPSB0aGlzLmdldENvbnN0YW50KCdQcm94eURlcG9zaXRGYWN0b3InLCBwcm94eVBhbGxldC5jb25zdGFudHMpO1xuICAgICAgcmV0dXJuIHByb3h5RGVwb3NpdEJhc2UucGx1cyhwcm94eURlcG9zaXRGYWN0b3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwYWxsZXROYW1lcyA9IHRoaXMuX3JlZ2lzdHJ5Lm1ldGFkYXRhLnBhbGxldHMubWFwKChwKSA9PiBwLm5hbWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGZpbmQgJHtTZWN0aW9uTmFtZXMuUHJveHl9IHBhbGxldCBpbiBbJHtwYWxsZXROYW1lc31dYCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25zdGFudChuYW1lOiBzdHJpbmcsIGNvbnN0YW50czogVmVjPFBhbGxldENvbnN0YW50TWV0YWRhdGFWMTQ+KTogQmlnTnVtYmVyIHtcbiAgICBjb25zdCBjb25zdGFudCA9IGNvbnN0YW50cy5maW5kKChjKSA9PiBjLm5hbWUudG9TdHJpbmcoKSA9PT0gbmFtZSk7XG4gICAgaWYgKGNvbnN0YW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGNvbnN0YW50TmFtZXMgPSBjb25zdGFudHMubWFwKChwKSA9PiBwLm5hbWUudG9TdHJpbmcoKSk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5kIGNvbnN0YW50ICR7bmFtZX0gaW4gWyR7Y29uc3RhbnROYW1lc31dYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENvbnZlcnQgZnJvbSBMaXR0bGUtRW5kaWFuIHRvIEJpZy1FbmRpYW5cbiAgICAgIGNvbnN0IHZhbHVlQmUgPSBCdWZmZXIuZnJvbShjb25zdGFudC52YWx1ZS50b1U4YSh0cnVlKS5yZXZlcnNlKCkpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIHJldHVybiBCaWdOdW1iZXIodmFsdWVCZSwgMTYpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGVjb2RlSW5wdXRzQW5kT3V0cHV0c0ZvckJvbmQoZGVjb2RlZFR4OiBEZWNvZGVkVHgpIHtcbiAgICBjb25zdCBzZW5kZXIgPSBkZWNvZGVkVHguYWRkcmVzcztcbiAgICB0aGlzLl9pbnB1dHMgPSBbXTtcbiAgICB0aGlzLl9vdXRwdXRzID0gW107XG5cbiAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeC5tZXRob2QuYXJncztcbiAgICBpZiAoZGVjb2RlZFR4Lm1ldGhvZC5wYWxsZXQgPT09IFNlY3Rpb25OYW1lcy5TdGFraW5nKSB7XG4gICAgICBsZXQgYm9uZFZhbHVlID0gJzAnO1xuICAgICAgaWYgKGRlY29kZWRUeC5tZXRob2QubmFtZSA9PT0gTWV0aG9kTmFtZXMuQm9uZCAmJiB1dGlscy5pc0JvbmQodHhNZXRob2QpKSB7XG4gICAgICAgIGJvbmRWYWx1ZSA9IHR4TWV0aG9kLnZhbHVlO1xuICAgICAgfSBlbHNlIGlmIChkZWNvZGVkVHgubWV0aG9kLm5hbWUgPT09IE1ldGhvZE5hbWVzLkJvbmRFeHRyYSAmJiB1dGlscy5pc0JvbmRFeHRyYSh0eE1ldGhvZCkpIHtcbiAgICAgICAgYm9uZFZhbHVlID0gdHhNZXRob2QubWF4QWRkaXRpb25hbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoYExvYWRpbmcgaW5wdXRzIG9mIHVua25vd24gU3Rha2luZ0FjdGl2YXRlIHR5cGUgcGFyYW1ldGVyc2ApO1xuICAgICAgfVxuICAgICAgdGhpcy5faW5wdXRzLnB1c2goe1xuICAgICAgICBhZGRyZXNzOiBzZW5kZXIsXG4gICAgICAgIHZhbHVlOiBib25kVmFsdWUsXG4gICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5fb3V0cHV0cy5wdXNoKHtcbiAgICAgICAgYWRkcmVzczogU1RBS0lOR19ERVNUSU5BVElPTixcbiAgICAgICAgdmFsdWU6IGJvbmRWYWx1ZSxcbiAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZWNvZGVJbnB1dHNBbmRPdXRwdXRzRm9yVW5ib25kKGRlY29kZWRUeDogRGVjb2RlZFR4KSB7XG4gICAgdGhpcy5faW5wdXRzID0gW107XG4gICAgdGhpcy5fb3V0cHV0cyA9IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWNvZGVJbnB1dHNBbmRPdXRwdXRzRm9yV2l0aGRyYXdVbmJvbmQoZGVjb2RlZFR4OiBEZWNvZGVkVHgpIHtcbiAgICB0aGlzLl9pbnB1dHMgPSBbXTtcbiAgICB0aGlzLl9vdXRwdXRzID0gW107XG4gIH1cblxuICAvKipcbiAgICogQ29uc3RydWN0cyBhIHNpZ25lZCBwYXlsb2FkIHVzaW5nIGNvbnN0cnVjdC5zaWduVHhcbiAgICogVGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgZHVyaW5nIHRoZSBidWlsZCBzdGVwIGlmIGEgVFNTIHNpZ25hdHVyZVxuICAgKiBpcyBhZGRlZCBhbmQgd2lsbCBzZXQgdGhlIHNpZ25UcmFuc2FjdGlvbiB3aGljaCBpcyB0aGUgdHhIZXggdGhhdCB3aWxsIGJlIGJyb2FkY2FzdGVkXG4gICAqIEFzIHdlbGwgYXMgYWRkIHRoZSBzaWduYXR1cmUgdXNlZCB0byBzaWduIHRvIHRoZSBzaWduYXR1cmUgYXJyYXkgaW4gaGV4IGZvcm1hdFxuICAgKlxuICAgKiBAcGFyYW0ge0J1ZmZlcn0gc2lnbmF0dXJlIFRoZSBzaWduYXR1cmUgdG8gYmUgYWRkZWQgdG8gYSBkb3QgdHJhbnNhY3Rpb25cbiAgICovXG4gIGNvbnN0cnVjdFNpZ25lZFBheWxvYWQoc2lnbmF0dXJlOiBCdWZmZXIpOiB2b2lkIHtcbiAgICAvLyAweDAwIG1lYW5zIGl0cyBhbiBFRDI1NTE5IHNpZ25hdHVyZVxuICAgIGNvbnN0IGVkU2lnbmF0dXJlID0gYDB4MDAke3NpZ25hdHVyZS50b1N0cmluZygnaGV4Jyl9YCBhcyBIZXhTdHJpbmc7XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5fc2lnbmVkVHJhbnNhY3Rpb24gPSBjb25zdHJ1Y3Quc2lnbmVkVHgodGhpcy5fZG90VHJhbnNhY3Rpb24sIGVkU2lnbmF0dXJlLCB7XG4gICAgICAgIHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSxcbiAgICAgICAgbWV0YWRhdGFScGM6IHRoaXMuX2RvdFRyYW5zYWN0aW9uLm1ldGFkYXRhUnBjLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcihgVW5hYmxlIHRvIHNpZ24gZG90IHRyYW5zYWN0aW9uIHdpdGggc2lnbmF0dXJlICR7ZWRTaWduYXR1cmV9IGAgKyBlKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zaWduYXR1cmVzID0gW3NpZ25hdHVyZS50b1N0cmluZygnaGV4JyldO1xuICB9XG5cbiAgc2V0VHJhbnNhY3Rpb24odHg6IFVuc2lnbmVkVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl9kb3RUcmFuc2FjdGlvbiA9IHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICoqL1xuICBnZXQgc2lnbmFibGVQYXlsb2FkKCk6IEJ1ZmZlciB7XG4gICAgY29uc3QgZXh0cmluc2ljUGF5bG9hZCA9IHRoaXMuX3JlZ2lzdHJ5LmNyZWF0ZVR5cGUoJ0V4dHJpbnNpY1BheWxvYWQnLCB0aGlzLl9kb3RUcmFuc2FjdGlvbiwge1xuICAgICAgdmVyc2lvbjogdGhpcy5fZG90VHJhbnNhY3Rpb24udmVyc2lvbixcbiAgICB9KTtcbiAgICByZXR1cm4gdThhVG9CdWZmZXIoZXh0cmluc2ljUGF5bG9hZC50b1U4YSh7IG1ldGhvZDogdHJ1ZSB9KSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uVHlwZX0gdHJhbnNhY3Rpb25UeXBlIFRoZSB0cmFuc2FjdGlvbiB0eXBlIHRvIGJlIHNldC5cbiAgICovXG4gIHRyYW5zYWN0aW9uVHlwZSh0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uVHlwZSk6IHZvaWQge1xuICAgIHRoaXMuX3R5cGUgPSB0cmFuc2FjdGlvblR5cGU7XG4gIH1cbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,23 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
2
21
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
23
  };
@@ -15,6 +34,7 @@ const txwrapper_core_1 = require("@substrate/txwrapper-core");
15
34
  const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
16
35
  const bs58_1 = __importDefault(require("bs58"));
17
36
  const hi_base32_1 = __importDefault(require("hi-base32"));
37
+ const _ = __importStar(require("lodash"));
18
38
  const tweetnacl_1 = __importDefault(require("tweetnacl"));
19
39
  const _1 = require(".");
20
40
  const PROXY_METHOD_ARG = 2;
@@ -300,6 +320,7 @@ class Utils {
300
320
  if (calls !== undefined) {
301
321
  return (calls.length === 3 &&
302
322
  this.isRemoveProxyBatchCallArgs(calls[0].args) &&
323
+ _.isEmpty(calls[1].args) &&
303
324
  this.isUnstakeBatchCallArgs(calls[2].args));
304
325
  }
305
326
  return false;
@@ -436,4 +457,4 @@ class Utils {
436
457
  exports.Utils = Utils;
437
458
  const utils = new Utils();
438
459
  exports.default = utils;
439
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUEySDtBQUUzSCwrQ0FBMEU7QUFDMUUsMERBQTJEO0FBRTNELDJDQUEyRztBQUMzRyxzRUFBMkU7QUFDM0UseUNBQXFFO0FBQ3JFLHVEQUFzRTtBQUN0RSw4REFBaUg7QUFFakgsc0VBQTBEO0FBQzFELGdEQUF3QjtBQUN4QiwwREFBK0I7QUFDL0IsMERBQTZCO0FBaUI3Qix3QkFBNEI7QUFFNUIsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7QUFDM0IsNkVBQTZFO0FBQzdFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLENBQWtDO0lBQ2hFLENBQUMsS0FBSyxFQUFFLDJCQUFnQixDQUFDLFFBQVEsQ0FBQztJQUNsQyxDQUFDLE1BQU0sRUFBRSwyQkFBZ0IsQ0FBQyxTQUFTLENBQUM7Q0FDckMsQ0FBQyxDQUFDO0FBRUgsTUFBYSxLQUFLO0lBQ2hCLGtCQUFrQjtJQUNsQixjQUFjLENBQUMsT0FBZTtRQUM1QixJQUFJO1lBQ0YsdUJBQWEsQ0FBQyxZQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsdUJBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzNFLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLE9BQU8sWUFBSyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGlCQUFpQixDQUFDLEdBQVc7UUFDM0IsSUFBSTtZQUNGLE1BQU0sVUFBVSxHQUFHLGVBQVEsQ0FBQyxHQUFH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QUMsUUFBZ0I7UUFDeEIsT0FBTyxRQUFRLEtBQUssTUFBTSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQixDQUFDLGVBQThCO1FBQzdDLE9BQU8sZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBcUIsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxTQUFTLENBQUMsSUFBbUIsRUFBRSxJQUFnQixFQUFFLE9BQXdCO1FBQ3ZFLE9BQU8sNkJBQVksQ0FDakI7WUFDRSxNQUFNLEVBQUU7Z0JBQ04sSUFBSTtnQkFDSixJQUFJLEVBQUUsWUFBWTtnQkFDbEIsTUFBTSxFQUFFLE9BQU87YUFDaEI7WUFDRCxHQUFHLElBQUk7U0FDUixFQUNELE9BQU8sQ0FDUixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGNBQWMsQ0FBQyxHQUFXO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxhQUFhLENBQUMsR0FBVztRQUN2QixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUFwZEQsc0JBb2RDO0FBUUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUUxQixrQkFBZSxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb3RBc3NldFR5cGVzLCBCYXNlVXRpbHMsIERvdEFkZHJlc3NGb3JtYXQsIGlzQmFzZTU4LCBpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleSwgU2VlZCB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcsIERvdE5ldHdvcmsgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IGRlY29kZUFkZHJlc3MsIGVuY29kZUFkZHJlc3MsIEtleXJpbmcgfSBmcm9tICdAcG9sa2Fkb3Qva2V5cmluZyc7XG5pbXBvcnQgeyBkZWNvZGVQYWlyIH0gZnJvbSAnQHBvbGthZG90L2tleXJpbmcvcGFpci9kZWNvZGUnO1xuaW1wb3J0IHsgS2V5cmluZ1BhaXIgfSBmcm9tICdAcG9sa2Fkb3Qva2V5cmluZy90eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVUeXBlVW5zYWZlLCBHZW5lcmljQ2FsbCwgR2VuZXJpY0V4dHJpbnNpYywgR2VuZXJpY0V4dHJpbnNpY1BheWxvYWQgfSBmcm9tICdAcG9sa2Fkb3QvdHlwZXMnO1xuaW1wb3J0IHsgRVhUUklOU0lDX1ZFUlNJT04gfSBmcm9tICdAcG9sa2Fkb3QvdHlwZXMvZXh0cmluc2ljL3Y0L0V4dHJpbnNpYyc7XG5pbXBvcnQgeyBoZXhUb1U4YSwgaXNIZXgsIHU4YVRvSGV4LCB1OGFUb1U4YSB9IGZyb20gJ0Bwb2xrYWRvdC91dGlsJztcbmltcG9ydCB7IGJhc2U2NERlY29kZSwgc2lnbmF0dXJlVmVyaWZ5IH0gZnJvbSAnQHBvbGthZG90L3V0aWwtY3J5cHRvJztcbmltcG9ydCB7IEFyZ3MsIEJhc2VUeEluZm8sIGRlZmluZU1ldGhvZCwgT3B0aW9uc1dpdGhNZXRhLCBVbnNpZ25lZFRyYW5zYWN0aW9uIH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItY29yZSc7XG5pbXBvcnQgeyBEZWNvZGVkU2lnbmVkVHgsIERlY29kZWRTaWduaW5nUGF5bG9hZCwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItY29yZS9saWIvdHlwZXMnO1xuaW1wb3J0IHsgY29uc3RydWN0IH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItcG9sa2Fkb3QnO1xuaW1wb3J0IGJzNTggZnJvbSAnYnM1OCc7XG5pbXBvcnQgYmFzZTMyIGZyb20gJ2hpLWJhc2UzMic7XG5pbXBvcnQgbmFjbCBmcm9tICd0d2VldG5hY2wnO1xuaW1wb3J0IHtcbiAgQWRkUHJveHlCYXRjaENhbGxBcmdzLFxuICBCYXRjaEFyZ3MsXG4gIEJhdGNoQ2FsbE9iamVjdCxcbiAgSGV4U3RyaW5nLFxuICBNYXRlcmlhbCxcbiAgUHJveHlBcmdzLFxuICBQcm94eUNhbGxBcmdzLFxuICBTdGFrZUFyZ3MsXG4gIFN0YWtlQmF0Y2hDYWxsQXJncyxcbiAgU3Rha2VNb3JlQXJncyxcbiAgVHJhbnNmZXJBbGxBcmdzLFxuICBUcmFuc2ZlckFyZ3MsXG4gIFR4TWV0aG9kLFxuICBVbnN0YWtlQmF0Y2hDYWxsQXJncyxcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLic7XG5cbmNvbnN0IFBST1hZX01FVEhPRF9BUkcgPSAyO1xuLy8gbWFwIHRvIHJldHJpZXZlIHRoZSBhZGRyZXNzIGVuY29kaW5nIGZvcm1hdCB3aGVuIHRoZSBrZXkgaXMgdGhlIGFzc2V0IG5hbWVcbmNvbnN0IGNvaW5Ub0FkZHJlc3NNYXAgPSBuZXcgTWFwPERvdEFzc2V0VHlwZXMsIERvdEFkZHJlc3NGb3JtYXQ+KFtcbiAgWydkb3QnLCBEb3RBZGRyZXNzRm9ybWF0LnBvbGthZG90XSxcbiAgWyd0ZG90JywgRG90QWRkcmVzc0Zvcm1hdC5zdWJzdHJhdGVdLFxuXSk7XG5cbmV4cG9ydCBjbGFzcyBVdGlscyBpbXBsZW1lbnRzIEJhc2VVdGlscyB7XG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgZW5jb2RlQWRkcmVzcyhpc0hleChhZGRyZXNzKSA/IGhleFRvVThhKGFkZHJlc3MpIDogZGVjb2RlQWRkcmVzcyhhZGRyZXNzKSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQmxvY2tJZChoYXNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNIZXgoaGFzaCwgMjU2KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHJpdmF0ZUtleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkZWNvZGVkUHJ2ID0gaGV4VG9VOGEoa2V5KTtcbiAgICAgIHJldHVybiBkZWNvZGVkUHJ2Lmxlbmd0aCA9PT0gbmFjbC5zaWduLnNlY3JldEtleUxlbmd0aCAvIDI7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHVibGljS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbGV0IHB1YktleSA9IGtleTtcblxuICAgIC8vIGNvbnZlcnQgYmFzZTU4IHB1YiBrZXkgdG8gaGV4IGZvcm1hdFxuICAgIC8vIHRzcyBjb21tb24gcHViIGlzIGluIGJhc2U1OCBmb3JtYXQgYW5kIGRlY29kZXMgdG8gbGVuZ3RoIG9mIDMyXG4gICAgaWYgKGlzQmFzZTU4KHB1YktleSwgMzIpKSB7XG4gICAgICBjb25zdCBiYXNlNThEZWNvZGUgPSBiczU4LmRlY29kZShwdWJLZXkpO1xuICAgICAgcHViS2V5ID0gYmFzZTU4RGVjb2RlLnRvU3RyaW5nKCdoZXgnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXkocHViS2V5KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2lnbmF0dXJlVThhID0gdThhVG9VOGEoc2lnbmF0dXJlKTtcbiAgICByZXR1cm4gWzY0LCA2NSwgNjZdLmluY2x1ZGVzKHNpZ25hdHVyZVU4YS5sZW5ndGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIHRoZSBzaWduYXR1cmUgb24gYSBnaXZlbiBtZXNzYWdlXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzaWduZWRNZXNzYWdlIHRoZSBzaWduZWQgbWVzc2FnZSBmb3IgdGhlIHNpZ25hdHVyZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2lnbmF0dXJlIHRoZSBzaWduYXR1cmUgdG8gdmVyaWZ5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIHRoZSBhZGRyZXNzIG9mIHRoZSBzaWduZXJcbiAgICogQHJldHVybnMge2Jvb2xlYW59IHdoZXRoZXIgdGhlIHNpZ25hdHVyZSBpcyB2YWxpZCBvciBub3RcbiAgICovXG4gIHZlcmlmeVNpZ25hdHVyZShzaWduZWRNZXNzYWdlOiBzdHJpbmcsIHNpZ25hdHVyZTogc3RyaW5nLCBhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBwdWJsaWNLZXkgPSBkZWNvZGVBZGRyZXNzKGFkZHJlc3MpO1xuICAgIGNvbnN0IGhleFB1YmxpY0tleSA9IHU4YVRvSGV4KHB1YmxpY0tleSk7XG5cbiAgICByZXR1cm4gc2lnbmF0dXJlVmVyaWZ5KHNpZ25lZE1lc3NhZ2UsIHNpZ25hdHVyZSwgaGV4UHVibGljS2V5KS5pc1ZhbGlkO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRUcmFuc2FjdGlvbklkKHR4SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0hleCh0eElkLCAyNTYpO1xuICB9XG5cbiAgLyoqXG4gICAqIGRlY29kZVNlZWQgZGVjb2RlcyBhIGRvdCBzZWVkXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWVkIC0gdGhlIHNlZWQgdG8gYmUgdmFsaWRhdGVkLlxuICAgKiBAcmV0dXJucyB7U2VlZH0gLSB0aGUgb2JqZWN0IFNlZWRcbiAgICovXG4gIGRlY29kZVNlZWQoc2VlZDogc3RyaW5nKTogU2VlZCB7XG4gICAgY29uc3QgZGVjb2RlZCA9IGJhc2UzMi5kZWNvZGUuYXNCeXRlcyhzZWVkKTtcbiAgICByZXR1cm4ge1xuICAgICAgc2VlZDogQnVmZmVyLmZyb20oZGVjb2RlZCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgZnVuY3Rpb24gdG8gY2FwaXRhbGl6ZSB0aGUgZmlyc3QgbGV0dGVyIG9mIGEgc3RyaW5nXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWxcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGNhcGl0YWxpemVGaXJzdExldHRlcih2YWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHZhbC5zbGljZSgxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgZnVuY3Rpb24gdG8gZGVjb2RlIHRoZSBpbnRlcm5hbCBtZXRob2QgaGV4IGluIGNhc2Ugb2YgYSBwcm94eSB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IFVuc2lnbmVkVHJhbnNhY3Rpb259IHR4XG4gICAqIEBwYXJhbSB7IG1ldGFkYXRhUnBjOiBzdHJpbmc7IHJlZ2lzdHJ5OiBUeXBlUmVnaXN0cnkgfSBvcHRpb25zXG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckFyZ3N9XG4gICAqL1xuICBkZWNvZGVDYWxsTWV0aG9kKFxuICAgIHR4OiBzdHJpbmcgfCBVbnNpZ25lZFRyYW5zYWN0aW9uLFxuICAgIG9wdGlvbnM6IHsgbWV0YWRhdGFScGM6IHN0cmluZzsgcmVnaXN0cnk6IFR5cGVSZWdpc3RyeSB9XG4gICk6IFRyYW5zZmVyQXJncyB7XG4gICAgY29uc3QgeyByZWdpc3RyeSB9ID0gb3B0aW9ucztcbiAgICBsZXQgbWV0aG9kQ2FsbDogR2VuZXJpY0NhbGwgfCBHZW5lcmljRXh0cmluc2ljO1xuICAgIGlmICh0eXBlb2YgdHggPT09ICdzdHJpbmcnKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBwYXlsb2FkOiBHZW5lcmljRXh0cmluc2ljUGF5bG9hZCA9IGNyZWF0ZVR5cGVVbnNhZmUocmVnaXN0cnksICdFeHRyaW5zaWNQYXlsb2FkJywgW1xuICAgICAgICAgIHR4LFxuICAgICAgICAgIHsgdmVyc2lvbjogRVhUUklOU0lDX1ZFUlNJT04gfSxcbiAgICAgICAgXSk7XG4gICAgICAgIG1ldGhvZENhbGwgPSBjcmVhdGVUeXBlVW5zYWZlKHJlZ2lzdHJ5LCAnQ2FsbCcsIFtwYXlsb2FkLm1ldGhvZF0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBtZXRob2RDYWxsID0gcmVnaXN0cnkuY3JlYXRlVHlwZSgnRXh0cmluc2ljJywgaGV4VG9VOGEodHgpLCB7XG4gICAgICAgICAgaXNTaWduZWQ6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBtZXRob2RDYWxsID0gcmVnaXN0cnkuY3JlYXRlVHlwZSgnQ2FsbCcsIHR4Lm1ldGhvZCk7XG4gICAgfVxuICAgIGNvbnN0IG1ldGhvZCA9IG1ldGhvZENhbGwuYXJnc1tQUk9YWV9NRVRIT0RfQVJHXTtcbiAgICBjb25zdCBkZWNvZGVkQXJncyA9IG1ldGhvZC50b0pTT04oKSBhcyB1bmtub3duIGFzIFByb3h5Q2FsbEFyZ3M7XG4gICAgcmV0dXJuIGRlY29kZWRBcmdzLmFyZ3M7XG4gIH1cblxuICAvKipcbiAgICoga2V5UGFpckZyb21TZWVkIGdlbmVyYXRlcyBhbiBvYmplY3Qgd2l0aCBzZWNyZXRLZXkgYW5kIHB1YmxpY0tleSB1c2luZyB0aGUgcG9sa2Fkb3Qgc2RrXG4gICAqIEBwYXJhbSBzZWVkIDMyIGJ5dGVzIGxvbmcgc2VlZFxuICAgKiBAcmV0dXJucyBLZXlQYWlyXG4gICAqL1xuICBrZXlQYWlyRnJvbVNlZWQoc2VlZDogVWludDhBcnJheSk6IEtleVBhaXIge1xuICAgIGNvbnN0IGtleXJpbmcgPSBuZXcgS2V5cmluZyh7IHR5cGU6ICdlZDI1NTE5JyB9KTtcbiAgICBjb25zdCBrZXlyaW5nUGFpciA9IGtleXJpbmcuYWRkRnJvbVNlZWQoc2VlZCk7XG4gICAgY29uc3QgcGFpckpzb24gPSBrZXlyaW5nUGFpci50b0pzb24oKTtcbiAgICBjb25zdCBkZWNvZGVkS2V5UGFpciA9IGRlY29kZVBhaXIoJycsIGJhc2U2NERlY29kZShwYWlySnNvbi5lbmNvZGVkKSwgcGFpckpzb24uZW5jb2RpbmcudHlwZSk7XG4gICAgcmV0dXJuIG5ldyBLZXlQYWlyKHsgcHJ2OiBCdWZmZXIuZnJvbShkZWNvZGVkS2V5UGFpci5zZWNyZXRLZXkpLnRvU3RyaW5nKCdoZXgnKSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduaW5nIGZ1bmN0aW9uLiBJbXBsZW1lbnQgdGhpcyBvbiB0aGUgT0ZGTElORSBzaWduaW5nIGRldmljZS5cbiAgICpcbiAgICogQHBhcmFtIHtLZXlyaW5nUGFpcn0gcGFpciAtIFRoZSBzaWduaW5nIHBhaXIuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzaWduaW5nUGF5bG9hZCAtIFBheWxvYWQgdG8gc2lnbi5cbiAgICogQHBhcmFtIHtVbnNpZ25lZFRyYW5zYWN0aW9ufSB0cmFuc2FjdGlvbiAtIHJhdyB0cmFuc2FjdGlvbiB0byBzaWduXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAqIEBwYXJhbSB7SGV4U3RyaW5nfSBvcHRpb25zLm1ldGFkYXRhUnBjIC0gbWV0YWRhdGEgdGhhdCBpcyBuZWVkZWQgZm9yIGRvdCB0byBzaWduXG4gICAqIEBwYXJhbSB7VHlwZVJlZ2lzdHJ5fSBvcHRpb25zLnJlZ2lzdHJ5IC0gbWV0YWRhdGEgdGhhdCBpcyBuZWVkZWQgZm9yIGRvdCB0byBzaWduXG4gICAqL1xuICBjcmVhdGVTaWduZWRUeChcbiAgICBwYWlyOiBLZXlyaW5nUGFpcixcbiAgICBzaWduaW5nUGF5bG9hZDogc3RyaW5nLFxuICAgIHRyYW5zYWN0aW9uOiBVbnNpZ25lZFRyYW5zYWN0aW9uLFxuICAgIG9wdGlvbnM6IHsgbWV0YWRhdGFScGM6IEhleFN0cmluZzsgcmVnaXN0cnk6IFR5cGVSZWdpc3RyeSB9XG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgeyByZWdpc3RyeSwgbWV0YWRhdGFScGMgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgeyBzaWduYXR1cmUgfSA9IHJlZ2lzdHJ5XG4gICAgICAuY3JlYXRlVHlwZSgnRXh0cmluc2ljUGF5bG9hZCcsIHNpZ25pbmdQYXlsb2FkLCB7XG4gICAgICAgIHZlcnNpb246IEVYVFJJTlNJQ19WRVJTSU9OLFxuICAgICAgfSlcbiAgICAgIC5zaWduKHBhaXIpO1xuXG4gICAgLy8gU2VyaWFsaXplIGEgc2lnbmVkIHRyYW5zYWN0aW9uLlxuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZVNpZ25lZFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uLCBzaWduYXR1cmUsIG1ldGFkYXRhUnBjLCByZWdpc3RyeSk7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplcyB0aGUgc2lnbmVkIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiBUcmFuc2FjdGlvbiB0byBzZXJpYWxpemVcbiAgICogQHBhcmFtIHNpZ25hdHVyZSBTaWduYXR1cmUgb2YgdGhlIG1lc3NhZ2VcbiAgICogQHBhcmFtIG1ldGFkYXRhUnBjIE5ldHdvcmsgbWV0YWRhdGFcbiAgICogQHBhcmFtIHJlZ2lzdHJ5IFRyYW5zYWN0aW9uIHJlZ2lzdHJ5XG4gICAqIEByZXR1cm5zIHN0cmluZyBTZXJpYWxpemVkIHRyYW5zYWN0aW9uXG4gICAqL1xuICBzZXJpYWxpemVTaWduZWRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbiwgc2lnbmF0dXJlLCBtZXRhZGF0YVJwYzogYDB4JHtzdHJpbmd9YCwgcmVnaXN0cnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBjb25zdHJ1Y3Quc2lnbmVkVHgodHJhbnNhY3Rpb24sIHNpZ25hdHVyZSwge1xuICAgICAgbWV0YWRhdGFScGMsXG4gICAgICByZWdpc3RyeSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGVzIHRoZSBkb3QgYWRkcmVzcyBmcm9tIHRoZSBnaXZlbiBmb3JtYXRcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3NcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtzczU4Rm9ybWF0XVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgZGVjb2RlRG90QWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcsIHNzNThGb3JtYXQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3Qga2V5cGFpciA9IG5ldyBLZXlQYWlyKHsgcHViOiBCdWZmZXIuZnJvbShkZWNvZGVBZGRyZXNzKGFkZHJlc3MsIHVuZGVmaW5lZCwgc3M1OEZvcm1hdCkpLnRvU3RyaW5nKCdoZXgnKSB9KTtcbiAgICByZXR1cm4ga2V5cGFpci5nZXRBZGRyZXNzKHNzNThGb3JtYXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlY29kZXMgdGhlIGRvdCBhZGRyZXNzIGZyb20gdGhlIGdpdmVuIGZvcm1hdFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzc1xuICAgKiBAcGFyYW0ge251bWJlcn0gW3NzNThGb3JtYXRdXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBlbmNvZGVEb3RBZGRyZXNzKGFkZHJlc3M6IHN0cmluZywgc3M1OEZvcm1hdD86IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGVuY29kZUFkZHJlc3MoYWRkcmVzcywgc3M1OEZvcm1hdCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSB0eEhhc2ggb2YgYSBzaWduZWQgdHhIZXhcbiAgICpcbiAgICogQHBhcmFtIHR4SGV4IHNpZ25lZCB0cmFuc2FjdGlvbiBoZXhcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGdldFR4SGFzaCh0eEhleDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY29uc3RydWN0LnR4SGFzaCh0eEhleCk7XG4gIH1cblxuICBnZXRNYXRlcmlhbChjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPik6IE1hdGVyaWFsIHtcbiAgICBjb25zdCBuZXR3b3JrQ29uZmlnID0gY29pbkNvbmZpZy5uZXR3b3JrIGFzIERvdE5ldHdvcms7XG4gICAgY29uc3QgeyBzcGVjTmFtZSwgc3BlY1ZlcnNpb24sIGNoYWluTmFtZSwgdHhWZXJzaW9uLCBnZW5lc2lzSGFzaCB9ID0gbmV0d29ya0NvbmZpZztcblxuICAgIHJldHVybiB7XG4gICAgICBzcGVjTmFtZSxcbiAgICAgIHNwZWNWZXJzaW9uLFxuICAgICAgY2hhaW5OYW1lLFxuICAgICAgbWV0YWRhdGE6IG5ldHdvcmtDb25maWcubWV0YWRhdGFScGMsXG4gICAgICB0eFZlcnNpb24sXG4gICAgICBnZW5lc2lzSGFzaCxcbiAgICB9IGFzIE1hdGVyaWFsO1xuICB9XG5cbiAgaXNTaWduaW5nUGF5bG9hZChwYXlsb2FkOiBEZWNvZGVkU2lnbmluZ1BheWxvYWQgfCBEZWNvZGVkU2lnbmVkVHgpOiBwYXlsb2FkIGlzIERlY29kZWRTaWduaW5nUGF5bG9hZCB7XG4gICAgcmV0dXJuIChwYXlsb2FkIGFzIERlY29kZWRTaWduaW5nUGF5bG9hZCkuYmxvY2tIYXNoICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBpc1Byb3h5VHJhbnNmZXIoYXJnOiBUeE1ldGhvZFsnYXJncyddKTogYXJnIGlzIFByb3h5QXJncyB7XG4gICAgcmV0dXJuIChhcmcgYXMgUHJveHlBcmdzKS5yZWFsICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBpc1RyYW5zZmVyKGFyZzogVHhNZXRob2RbJ2FyZ3MnXSk6IGFyZyBpcyBUcmFuc2ZlckFyZ3Mge1xuICAgIHJldHVybiAoYXJnIGFzIFRyYW5zZmVyQXJncykuZGVzdD8uaWQgIT09IHVuZGVmaW5lZCAmJiAoYXJnIGFzIFRyYW5zZmVyQXJncykudmFsdWUgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlzVHJhbnNmZXJBbGwoYXJnOiBUeE1ldGhvZFsnYXJncyddKTogYXJnIGlzIFRyYW5zZmVyQWxsQXJncyB7XG4gICAgcmV0dXJuIChhcmcgYXMgVHJhbnNmZXJBbGxBcmdzKS5kZXN0Py5pZCAhPT0gdW5kZWZpbmVkICYmIChhcmcgYXMgVHJhbnNmZXJBbGxBcmdzKS5rZWVwQWxpdmUgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgYXJnIGlzIG9mIHR5cGUgQmF0Y2hBcmdzLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqXG4gICAqIEBwYXJhbSBhcmcgVGhlIG9iamVjdCB0byB0ZXN0LlxuICAgKlxuICAgKiBAcmV0dXJuIHRydWUgaWYgYXJnIGlzIG9mIHR5cGUgQmF0Y2hBcmdzLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBpc0JhdGNoKGFyZzogVHhNZXRob2RbJ2FyZ3MnXSk6IGFyZyBpcyBCYXRjaEFyZ3Mge1xuICAgIHJldHVybiAoYXJnIGFzIEJhdGNoQXJncykuY2FsbHMgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgYXJnIGlzIG9mIHR5cGUgQmF0Y2hBcmdzIGFuZCB0aGUgY2FsbHMgb2YgdGhlIGJhdGNoIGFyZSBzdGFraW5nIGNhbGxzOiBhIHN0YWtlXG4gICAqIGNhbGwgKGJvbmQpIGZvbGxvd2VkIGJ5IGFuIGFkZCBwcm94eSBjYWxsIChhZGRQcm94eSksIGZhbHNlIG90aGVyd2lzZS5cbiAgICpcbiAgICogQHBhcmFtIGFyZyBUaGUgb2JqZWN0IHRvIHRlc3QuXG4gICAqXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiBhcmcgaXMgb2YgdHlwZSBCYXRjaEFyZ3MgYW5kIHRoZSBjYWxscyBvZiB0aGUgYmF0Y2ggYXJlIHN0YWtpbmcgY2FsbHM6IGEgc3Rha2VcbiAgICogY2FsbCAoYm9uZCkgZm9sbG93ZWQgYnkgYW4gYWRkIHByb3h5IGNhbGwgKGFkZFByb3h5KSwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgaXNTdGFraW5nQmF0Y2goYXJnOiBUeE1ldGhvZFsnYXJncyddKTogYXJnIGlzIEJhdGNoQXJncyB7XG4gICAgY29uc3QgY2FsbHMgPSAoYXJnIGFzIEJhdGNoQXJncykuY2FsbHM7XG4gICAgaWYgKGNhbGxzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGNhbGxzLmxlbmd0aCA9PT0gMiAmJiB0aGlzLmlzU3Rha2VCYXRjaENhbGxBcmdzKGNhbGxzWzBdLmFyZ3MpICYmIHRoaXMuaXNBZGRQcm94eUJhdGNoQ2FsbEFyZ3MoY2FsbHNbMV0uYXJncylcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgYXJnIGlzIG9mIHR5cGUgU3Rha2VCYXRjaENhbGxBcmdzLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqXG4gICAqIEBwYXJhbSBhcmcgVGhlIG9iamVjdCB0byB0ZXN0LlxuICAgKlxuICAgKiBAcmV0dXJuIHRydWUgaWYgYXJnIGlzIG9mIHR5cGUgU3Rha2VCYXRjaENhbGxBcmdzLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBpc1N0YWtlQmF0Y2hDYWxsQXJncyhhcmc6IEJhdGNoQ2FsbE9iamVjdFsnYXJncyddKTogYXJnIGlzIFN0YWtlQmF0Y2hDYWxsQXJncyB7XG4gICAgcmV0dXJuIChcbiAgICAgIChhcmcgYXMgU3Rha2VCYXRjaENhbGxBcmdzKS52YWx1ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAoYXJnIGFzIFN0YWtlQmF0Y2hDYWxsQXJncykuY29udHJvbGxlciAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAoYXJnIGFzIFN0YWtlQmF0Y2hDYWxsQXJncykucGF5ZWUgIT09IHVuZGVmaW5lZFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIGFyZyBpcyBvZiB0eXBlIEFkZFByb3h5QmF0Y2hDYWxsQXJncywgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKlxuICAgKiBAcGFyYW0gYXJnIFRoZSBvYmplY3QgdG8gdGVzdC5cbiAgICpcbiAgICogQHJldHVybiB0cnVlIGlmIGFyZyBpcyBvZiB0eXBlIEFkZFByb3h5QmF0Y2hDYWxsQXJncywgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgaXNBZGRQcm94eUJhdGNoQ2FsbEFyZ3MoYXJnOiBCYXRjaENhbGxPYmplY3RbJ2FyZ3MnXSk6IGFyZyBpcyBBZGRQcm94eUJhdGNoQ2FsbEFyZ3Mge1xuICAgIHJldHVybiAoXG4gICAgICAoYXJnIGFzIEFkZFByb3h5QmF0Y2hDYWxsQXJncykuZGVsZWdhdGUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgKGFyZyBhcyBBZGRQcm94eUJhdGNoQ2FsbEFyZ3MpLnByb3h5X3R5cGUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgKGFyZyBhcyBBZGRQcm94eUJhdGNoQ2FsbEFyZ3MpLmRlbGF5ICE9PSB1bmRlZmluZWRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhcmcgaXMgb2YgdHlwZSBCYXRjaEFyZ3MgYW5kIHRoZSBjYWxscyBvZiB0aGUgYmF0Y2ggYXJlIHVuc3Rha2luZyBjYWxsczogYSByZW1vdmVcbiAgICogcHJveHkgY2FsbCAocmVtb3ZlUHJveHkpLCBmb2xsb3dlZCBieSBhIGNoaWxsIGNhbGwsIGFuZCBhbiB1bnN0YWtlIGNhbGwgKHVuYm9uZCksIGZhbHNlIG90aGVyd2lzZS5cbiAgICpcbiAgICogQHBhcmFtIGFyZyBUaGUgb2JqZWN0IHRvIHRlc3QuXG4gICAqXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiBhcmcgaXMgb2YgdHlwZSBCYXRjaEFyZ3MgYW5kIHRoZSBjYWxscyBvZiB0aGUgYmF0Y2ggYXJlIHVuc3Rha2luZyBjYWxsczogYSByZW1vdmVcbiAgICogcHJveHkgY2FsbCAocmVtb3ZlUHJveHkpLCBmb2xsb3dlZCBieSBhIGNoaWxsIGNhbGwsIGFuZCBhbiB1bnN0YWtlIGNhbGwgKHVuYm9uZCksIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIGlzVW5zdGFraW5nQmF0Y2goYXJnOiBUeE1ldGhvZFsnYXJncyddKTogYXJnIGlzIEJhdGNoQXJncyB7XG4gICAgY29uc3QgY2FsbHMgPSAoYXJnIGFzIEJhdGNoQXJncykuY2FsbHM7XG4gICAgaWYgKGNhbGxzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGNhbGxzLmxlbmd0aCA9PT0gMyAmJlxuICAgICAgICB0aGlzLmlzUmVtb3ZlUHJveHlCYXRjaENhbGxBcmdzKGNhbGxzWzBdLmFyZ3MpICYmXG4gICAgICAgIHRoaXMuaXNVbnN0YWtlQmF0Y2hDYWxsQXJncyhjYWxsc1syXS5hcmdzKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhcmcgaXMgb2YgdHlwZSBBZGRQcm94eUJhdGNoQ2FsbEFyZ3MsIGZhbHNlIG90aGVyd2lzZS5cbiAgICpcbiAgICogQHBhcmFtIGFyZyBUaGUgb2JqZWN0IHRvIHRlc3QuXG4gICAqXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiBhcmcgaXMgb2YgdHlwZSBBZGRQcm94eUJhdGNoQ2FsbEFyZ3MsIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIGlzUmVtb3ZlUHJveHlCYXRjaENhbGxBcmdzKGFyZzogQmF0Y2hDYWxsT2JqZWN0WydhcmdzJ10pOiBhcmcgaXMgQWRkUHJveHlCYXRjaENhbGxBcmdzIHtcbiAgICByZXR1cm4gKFxuICAgICAgKGFyZyBhcyBBZGRQcm94eUJhdGNoQ2FsbEFyZ3MpLmRlbGVnYXRlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIChhcmcgYXMgQWRkUHJveHlCYXRjaENhbGxBcmdzKS5wcm94eV90eXBlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIChhcmcgYXMgQWRkUHJveHlCYXRjaENhbGxBcmdzKS5kZWxheSAhPT0gdW5kZWZpbmVkXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgYXJnIGlzIG9mIHR5cGUgVW5zdGFrZUJhdGNoQ2FsbEFyZ3MsIGZhbHNlIG90aGVyd2lzZS5cbiAgICpcbiAgICogQHBhcmFtIGFyZyBUaGUgb2JqZWN0IHRvIHRlc3QuXG4gICAqXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiBhcmcgaXMgb2YgdHlwZSBVbnN0YWtlQmF0Y2hDYWxsQXJncywgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgaXNVbnN0YWtlQmF0Y2hDYWxsQXJncyhhcmc6IEJhdGNoQ2FsbE9iamVjdFsnYXJncyddKTogYXJnIGlzIFVuc3Rha2VCYXRjaENhbGxBcmdzIHtcbiAgICByZXR1cm4gKGFyZyBhcyBVbnN0YWtlQmF0Y2hDYWxsQXJncykudmFsdWUgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgYXJnIGlzIG9mIHR5cGUgU3Rha2VBcmdzLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqXG4gICAqIEBwYXJhbSBhcmcgVGhlIG9iamVjdCB0byB0ZXN0LlxuICAgKlxuICAgKiBAcmV0dXJuIHRydWUgaWYgYXJnIGlzIG9mIHR5cGUgU3Rha2VBcmdzLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBpc0JvbmQoYXJnOiBUeE1ldGhvZFsnYXJncyddKTogYXJnIGlzIFN0YWtlQXJncyB7XG4gICAgcmV0dXJuIChcbiAgICAgIChhcmcgYXMgU3Rha2VBcmdzKS52YWx1ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAoYXJnIGFzIFN0YWtlQXJncykuY29udHJvbGxlciAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAoYXJnIGFzIFN0YWtlQXJncykucGF5ZWUgIT09IHVuZGVmaW5lZFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIGFyZyBpcyBvZiB0eXBlIFN0YWtlTW9yZUFyZ3MsIGZhbHNlIG90aGVyd2lzZS5cbiAgICpcbiAgICogQHBhcmFtIGFyZyBUaGUgb2JqZWN0IHRvIHRlc3QuXG4gICAqXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiBhcmcgaXMgb2YgdHlwZSBTdGFrZU1vcmVBcmdzLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBpc0JvbmRFeHRyYShhcmc6IFR4TWV0aG9kWydhcmdzJ10pOiBhcmcgaXMgU3Rha2VNb3JlQXJncyB7XG4gICAgcmV0dXJuIChhcmcgYXMgU3Rha2VNb3JlQXJncykubWF4QWRkaXRpb25hbCAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIGFuZCByZXR1cm5zIHRoZSBzaWduYXR1cmUgaW4gaGV4IGZvcm1hdCBnaXZlbiBhIHJhdyBzaWduZWQgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJhd1R4IHNpZ25lZCByYXcgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIG9wdGlvbnMgcmVnaXN0cnkgZG90IHJlZ2lzdHJ5IHVzZWQgdG8gcmV0cmlldmUgdGhlIHNpZ25hdHVyZVxuICAgKi9cbiAgcmVjb3ZlclNpZ25hdHVyZUZyb21SYXdUeChyYXdUeDogc3RyaW5nLCBvcHRpb25zOiB7IHJlZ2lzdHJ5OiBUeXBlUmVnaXN0cnkgfSk6IHN0cmluZyB7XG4gICAgY29uc3QgeyByZWdpc3RyeSB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBtZXRob2RDYWxsID0gcmVnaXN0cnkuY3JlYXRlVHlwZSgnRXh0cmluc2ljJywgcmF3VHgsIHtcbiAgICAgIGlzU2lnbmVkOiB0cnVlLFxuICAgIH0pO1xuICAgIGxldCBzaWduYXR1cmUgPSB1OGFUb0hleChtZXRob2RDYWxsLnNpZ25hdHVyZSkgYXMgc3RyaW5nO1xuXG4gICAgLy8gcmVtb3ZlIDB4IGZyb20gdGhlIHNpZ25hdHVyZSBzaW5jZSB0aGlzIGlzIGhvdyBpdCdzIHJldHVybmVkIGZyb20gVFNTIHNpZ25pbmdcbiAgICBpZiAoc2lnbmF0dXJlLnN0YXJ0c1dpdGgoJzB4JykpIHtcbiAgICAgIHNpZ25hdHVyZSA9IHNpZ25hdHVyZS5zdWJzdHIoMik7XG4gICAgfVxuICAgIHJldHVybiBzaWduYXR1cmU7XG4gIH1cblxuICAvKipcbiAgICogRGVjb2RlcyB0aGUgZG90IGFkZHJlc3MgZnJvbSB0aGUgZ2l2ZW4gZm9ybWF0XG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbc3M1OEZvcm1hdF1cbiAgICogQHJldHVybnMge0tleVBhaXJ9XG4gICAqL1xuICBkZWNvZGVEb3RBZGRyZXNzVG9LZXlQYWlyKGFkZHJlc3M6IHN0cmluZywgc3M1OEZvcm1hdD86IG51bWJlcik6IEtleVBhaXIge1xuICAgIHJldHVybiBuZXcgS2V5UGFpcih7IHB1YjogQnVmZmVyLmZyb20oZGVjb2RlQWRkcmVzcyhhZGRyZXNzLCB1bmRlZmluZWQsIHNzNThGb3JtYXQpKS50b1N0cmluZygnaGV4JykgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGlucHV0IGlzIGEgaGV4IHN0cmluZyB3aXRoIHdpdGggMCB2YWx1ZVxuICAgKiB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgYSBnaXZlbiB0cmFuc2FjdGlvbiBpcyBpbW1vcnRhbCBvciBtb3J0YWxcbiAgICogQHBhcmFtIGhleFZhbHVlXG4gICAqL1xuICBpc1plcm9IZXgoaGV4VmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBoZXhWYWx1ZSA9PT0gJzB4MDAnO1xuICB9XG5cbiAgLyoqXG4gICAqIFRha2VzIGFuIGFzc2V0IG5hbWUgYW5kIHJldHVybnMgdGhlIHJlc3BlY3RpdmUgYWRkcmVzcyB0byBmb3JtYXQgdG9cbiAgICogc2luY2UgcG9sa2Fkb3QgYWRkcmVzc2VzIGRpZmZlciBkZXBlbmRpbmcgb24gdGhlIG5ldHdvcmtcbiAgICogcmVmOiBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2xlYXJuLWFjY291bnRzXG4gICAqIEBwYXJhbSBuZXR3b3JrQ29pbk5hbWVcbiAgICovXG4gIGdldEFkZHJlc3NGb3JtYXQobmV0d29ya0NvaW5OYW1lOiBEb3RBc3NldFR5cGVzKTogRG90QWRkcmVzc0Zvcm1hdCB7XG4gICAgcmV0dXJuIGNvaW5Ub0FkZHJlc3NNYXAuZ2V0KG5ldHdvcmtDb2luTmFtZSkgYXMgRG90QWRkcmVzc0Zvcm1hdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcHVyZSBwcm94eSBleHRyaW5zaWMuIFBvbGthZG90IGhhcyByZW5hbWVkIGFub255bW91cyBwcm94aWVzIHRvIHB1cmUgcHJveGllcywgYnV0XG4gICAqIHRoZSBsaWJyYXJpZXMgd2UgYXJlIHVzaW5nIHRvIGJ1aWxkIHRyYW5zYWN0aW9ucyBoYXZlIG5vdCBiZWVuIHVwZGF0ZWQsIGFzIGEgc3RvcCBnYXAgd2UgYXJlXG4gICAqIGRlZmluaW5nIHRoZSBwdXJlIHByb3h5IGV4dHJpbnNpYyBoZXJlLlxuICAgKlxuICAgKiBAcGFyYW0gYXJncyBBcmd1bWVudHMgdG8gdGhlIGNyZWF0ZVB1cmUgZXh0cmluc2ljLlxuICAgKiBAcGFyYW0gaW5mbyBDb21tb24gaW5mb3JtYXRpb24gdG8gYWxsIHRyYW5zYWN0aW9ucy5cbiAgICogQHBhcmFtIG9wdGlvbnMgQ2hhaW4gcmVnaXN0cnkgYW5kIG1ldGFkYXRhLlxuICAgKi9cbiAgcHVyZVByb3h5KGFyZ3M6IFB1cmVQcm94eUFyZ3MsIGluZm86IEJhc2VUeEluZm8sIG9wdGlvbnM6IE9wdGlvbnNXaXRoTWV0YSk6IFVuc2lnbmVkVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBkZWZpbmVNZXRob2QoXG4gICAgICB7XG4gICAgICAgIG1ldGhvZDoge1xuICAgICAgICAgIGFyZ3MsXG4gICAgICAgICAgbmFtZTogJ2NyZWF0ZVB1cmUnLFxuICAgICAgICAgIHBhbGxldDogJ3Byb3h5JyxcbiAgICAgICAgfSxcbiAgICAgICAgLi4uaW5mbyxcbiAgICAgIH0sXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzICcweCcgZnJvbSBhIGdpdmVuIGBzdHJpbmdgIGlmIHByZXNlbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgdGhlIHN0cmluZyB2YWx1ZS5cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nfSBhIHN0cmluZyB3aXRob3V0IGEgJzB4JyBwcmVmaXguXG4gICAqL1xuICBzdHJpcEhleFByZWZpeChzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNIZXhQcmVmaXhlZChzdHIpID8gc3RyLnNsaWNlKDIpIDogc3RyO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhIHN0cmluZyBzdGFydHMgd2l0aCAnMHgnLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgdGhlIHN0cmluZyB2YWx1ZS5cbiAgICpcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gdHJ1ZSBpZiBhIHN0cmluZyBzdGFydHMgd2l0aCAnMHgnLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBpc0hleFByZWZpeGVkKHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0ci5zbGljZSgwLCAyKSA9PT0gJzB4JztcbiAgfVxufVxuXG5pbnRlcmZhY2UgUHVyZVByb3h5QXJncyBleHRlbmRzIEFyZ3Mge1xuICBwcm94eVR5cGU6IHN0cmluZztcbiAgZGVsYXk6IG51bWJlcjtcbiAgaW5kZXg6IG51bWJlcjtcbn1cblxuY29uc3QgdXRpbHMgPSBuZXcgVXRpbHMoKTtcblxuZXhwb3J0IGRlZmF1bHQgdXRpbHM7XG4iXX0=
460
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFBMkg7QUFFM0gsK0NBQTBFO0FBQzFFLDBEQUEyRDtBQUUzRCwyQ0FBMkc7QUFDM0csc0VBQTJFO0FBQzNFLHlDQUFxRTtBQUNyRSx1REFBc0U7QUFDdEUsOERBQWlIO0FBRWpILHNFQUEwRDtBQUMxRCxnREFBd0I7QUFDeEIsMERBQStCO0FBQy9CLDBDQUE0QjtBQUM1QiwwREFBNkI7QUFpQjdCLHdCQUE0QjtBQUU1QixNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQUMzQiw2RUFBNkU7QUFDN0UsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsQ0FBa0M7SUFDaEUsQ0FBQyxLQUFLLEVBQUUsMkJBQWdCLENBQUMsUUFBUSxDQUFDO0lBQ2xDLENBQUMsTUFBTSxFQUFFLDJCQUFnQixDQUFDLFNBQVMsQ0FBQztDQUNyQyxDQUFDLENBQUM7QUFFSCxNQUFhLEtBQUs7SUFDaEIsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxPQUFlO1FBQzVCLElBQUk7WUFDRix1QkFBYSxDQUFDLFlBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyx1QkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDM0UsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsY0FBYyxDQUFDLElBQVk7UUFDekIsT0FBTyxZQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsaUJBQWlCLENBQUMsR0FBVztRQUMzQixJQUFJO1lB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QUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFHLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxDQUFDLFFBQWdCO1FBQ3hCLE9BQU8sUUFBUSxLQUFLLE1BQU0sQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsQ0FBQyxlQUE4QjtRQUM3QyxPQUFPLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQXFCLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsU0FBUyxDQUFDLElBQW1CLEVBQUUsSUFBZ0IsRUFBRSxPQUF3QjtRQUN2RSxPQUFPLDZCQUFZLENBQ2pCO1lBQ0UsTUFBTSxFQUFFO2dCQUNOLElBQUk7Z0JBQ0osSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLE1BQU0sRUFBRSxPQUFPO2FBQ2hCO1lBQ0QsR0FBRyxJQUFJO1NBQ1IsRUFDRCxPQUFPLENBQ1IsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxjQUFjLENBQUMsR0FBVztRQUN4QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsYUFBYSxDQUFDLEdBQVc7UUFDdkIsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUM7SUFDbEMsQ0FBQztDQUNGO0FBcmRELHNCQXFkQztBQVFELE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7QUFFMUIsa0JBQWUsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG90QXNzZXRUeXBlcywgQmFzZVV0aWxzLCBEb3RBZGRyZXNzRm9ybWF0LCBpc0Jhc2U1OCwgaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXksIFNlZWQgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnLCBEb3ROZXR3b3JrIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBkZWNvZGVBZGRyZXNzLCBlbmNvZGVBZGRyZXNzLCBLZXlyaW5nIH0gZnJvbSAnQHBvbGthZG90L2tleXJpbmcnO1xuaW1wb3J0IHsgZGVjb2RlUGFpciB9IGZyb20gJ0Bwb2xrYWRvdC9rZXlyaW5nL3BhaXIvZGVjb2RlJztcbmltcG9ydCB7IEtleXJpbmdQYWlyIH0gZnJvbSAnQHBvbGthZG90L2tleXJpbmcvdHlwZXMnO1xuaW1wb3J0IHsgY3JlYXRlVHlwZVVuc2FmZSwgR2VuZXJpY0NhbGwsIEdlbmVyaWNFeHRyaW5zaWMsIEdlbmVyaWNFeHRyaW5zaWNQYXlsb2FkIH0gZnJvbSAnQHBvbGthZG90L3R5cGVzJztcbmltcG9ydCB7IEVYVFJJTlNJQ19WRVJTSU9OIH0gZnJvbSAnQHBvbGthZG90L3R5cGVzL2V4dHJpbnNpYy92NC9FeHRyaW5zaWMnO1xuaW1wb3J0IHsgaGV4VG9VOGEsIGlzSGV4LCB1OGFUb0hleCwgdThhVG9VOGEgfSBmcm9tICdAcG9sa2Fkb3QvdXRpbCc7XG5pbXBvcnQgeyBiYXNlNjREZWNvZGUsIHNpZ25hdHVyZVZlcmlmeSB9IGZyb20gJ0Bwb2xrYWRvdC91dGlsLWNyeXB0byc7XG5pbXBvcnQgeyBBcmdzLCBCYXNlVHhJbmZvLCBkZWZpbmVNZXRob2QsIE9wdGlvbnNXaXRoTWV0YSwgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IHsgRGVjb2RlZFNpZ25lZFR4LCBEZWNvZGVkU2lnbmluZ1BheWxvYWQsIFR5cGVSZWdpc3RyeSB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUvbGliL3R5cGVzJztcbmltcG9ydCB7IGNvbnN0cnVjdCB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCBiczU4IGZyb20gJ2JzNTgnO1xuaW1wb3J0IGJhc2UzMiBmcm9tICdoaS1iYXNlMzInO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IG5hY2wgZnJvbSAndHdlZXRuYWNsJztcbmltcG9ydCB7XG4gIEFkZFByb3h5QmF0Y2hDYWxsQXJncyxcbiAgQmF0Y2hBcmdzLFxuICBCYXRjaENhbGxPYmplY3QsXG4gIEhleFN0cmluZyxcbiAgTWF0ZXJpYWwsXG4gIFByb3h5QXJncyxcbiAgUHJveHlDYWxsQXJncyxcbiAgU3Rha2VBcmdzLFxuICBTdGFrZUJhdGNoQ2FsbEFyZ3MsXG4gIFN0YWtlTW9yZUFyZ3MsXG4gIFRyYW5zZmVyQWxsQXJncyxcbiAgVHJhbnNmZXJBcmdzLFxuICBUeE1ldGhvZCxcbiAgVW5zdGFrZUJhdGNoQ2FsbEFyZ3MsXG59IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4nO1xuXG5jb25zdCBQUk9YWV9NRVRIT0RfQVJHID0gMjtcbi8vIG1hcCB0byByZXRyaWV2ZSB0aGUgYWRkcmVzcyBlbmNvZGluZyBmb3JtYXQgd2hlbiB0aGUga2V5IGlzIHRoZSBhc3NldCBuYW1lXG5jb25zdCBjb2luVG9BZGRyZXNzTWFwID0gbmV3IE1hcDxEb3RBc3NldFR5cGVzLCBEb3RBZGRyZXNzRm9ybWF0PihbXG4gIFsnZG90JywgRG90QWRkcmVzc0Zvcm1hdC5wb2xrYWRvdF0sXG4gIFsndGRvdCcsIERvdEFkZHJlc3NGb3JtYXQuc3Vic3RyYXRlXSxcbl0pO1xuXG5leHBvcnQgY2xhc3MgVXRpbHMgaW1wbGVtZW50cyBCYXNlVXRpbHMge1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGVuY29kZUFkZHJlc3MoaXNIZXgoYWRkcmVzcykgPyBoZXhUb1U4YShhZGRyZXNzKSA6IGRlY29kZUFkZHJlc3MoYWRkcmVzcykpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZEJsb2NrSWQoaGFzaDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzSGV4KGhhc2gsIDI1Nik7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFByaXZhdGVLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGVjb2RlZFBydiA9IGhleFRvVThhKGtleSk7XG4gICAgICByZXR1cm4gZGVjb2RlZFBydi5sZW5ndGggPT09IG5hY2wuc2lnbi5zZWNyZXRLZXlMZW5ndGggLyAyO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFB1YmxpY0tleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGxldCBwdWJLZXkgPSBrZXk7XG5cbiAgICAvLyBjb252ZXJ0IGJhc2U1OCBwdWIga2V5IHRvIGhleCBmb3JtYXRcbiAgICAvLyB0c3MgY29tbW9uIHB1YiBpcyBpbiBiYXNlNTggZm9ybWF0IGFuZCBkZWNvZGVzIHRvIGxlbmd0aCBvZiAzMlxuICAgIGlmIChpc0Jhc2U1OChwdWJLZXksIDMyKSkge1xuICAgICAgY29uc3QgYmFzZTU4RGVjb2RlID0gYnM1OC5kZWNvZGUocHViS2V5KTtcbiAgICAgIHB1YktleSA9IGJhc2U1OERlY29kZS50b1N0cmluZygnaGV4Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzVmFsaWRFZDI1NTE5UHVibGljS2V5KHB1YktleSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFNpZ25hdHVyZShzaWduYXR1cmU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNpZ25hdHVyZVU4YSA9IHU4YVRvVThhKHNpZ25hdHVyZSk7XG4gICAgcmV0dXJuIFs2NCwgNjUsIDY2XS5pbmNsdWRlcyhzaWduYXR1cmVVOGEubGVuZ3RoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmllcyB0aGUgc2lnbmF0dXJlIG9uIGEgZ2l2ZW4gbWVzc2FnZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2lnbmVkTWVzc2FnZSB0aGUgc2lnbmVkIG1lc3NhZ2UgZm9yIHRoZSBzaWduYXR1cmVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNpZ25hdHVyZSB0aGUgc2lnbmF0dXJlIHRvIHZlcmlmeVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyB0aGUgYWRkcmVzcyBvZiB0aGUgc2lnbmVyXG4gICAqIEByZXR1cm5zIHtib29sZWFufSB3aGV0aGVyIHRoZSBzaWduYXR1cmUgaXMgdmFsaWQgb3Igbm90XG4gICAqL1xuICB2ZXJpZnlTaWduYXR1cmUoc2lnbmVkTWVzc2FnZTogc3RyaW5nLCBzaWduYXR1cmU6IHN0cmluZywgYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcHVibGljS2V5ID0gZGVjb2RlQWRkcmVzcyhhZGRyZXNzKTtcbiAgICBjb25zdCBoZXhQdWJsaWNLZXkgPSB1OGFUb0hleChwdWJsaWNLZXkpO1xuXG4gICAgcmV0dXJuIHNpZ25hdHVyZVZlcmlmeShzaWduZWRNZXNzYWdlLCBzaWduYXR1cmUsIGhleFB1YmxpY0tleSkuaXNWYWxpZDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkVHJhbnNhY3Rpb25JZCh0eElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNIZXgodHhJZCwgMjU2KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWNvZGVTZWVkIGRlY29kZXMgYSBkb3Qgc2VlZFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VlZCAtIHRoZSBzZWVkIHRvIGJlIHZhbGlkYXRlZC5cbiAgICogQHJldHVybnMge1NlZWR9IC0gdGhlIG9iamVjdCBTZWVkXG4gICAqL1xuICBkZWNvZGVTZWVkKHNlZWQ6IHN0cmluZyk6IFNlZWQge1xuICAgIGNvbnN0IGRlY29kZWQgPSBiYXNlMzIuZGVjb2RlLmFzQnl0ZXMoc2VlZCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlZWQ6IEJ1ZmZlci5mcm9tKGRlY29kZWQpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIGZ1bmN0aW9uIHRvIGNhcGl0YWxpemUgdGhlIGZpcnN0IGxldHRlciBvZiBhIHN0cmluZ1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBjYXBpdGFsaXplRmlyc3RMZXR0ZXIodmFsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB2YWwuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB2YWwuc2xpY2UoMSk7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIGZ1bmN0aW9uIHRvIGRlY29kZSB0aGUgaW50ZXJuYWwgbWV0aG9kIGhleCBpbiBjYXNlIG9mIGEgcHJveHkgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBVbnNpZ25lZFRyYW5zYWN0aW9ufSB0eFxuICAgKiBAcGFyYW0geyBtZXRhZGF0YVJwYzogc3RyaW5nOyByZWdpc3RyeTogVHlwZVJlZ2lzdHJ5IH0gb3B0aW9uc1xuICAgKiBAcmV0dXJucyB7VHJhbnNmZXJBcmdzfVxuICAgKi9cbiAgZGVjb2RlQ2FsbE1ldGhvZChcbiAgICB0eDogc3RyaW5nIHwgVW5zaWduZWRUcmFuc2FjdGlvbixcbiAgICBvcHRpb25zOiB7IG1ldGFkYXRhUnBjOiBzdHJpbmc7IHJlZ2lzdHJ5OiBUeXBlUmVnaXN0cnkgfVxuICApOiBUcmFuc2ZlckFyZ3Mge1xuICAgIGNvbnN0IHsgcmVnaXN0cnkgfSA9IG9wdGlvbnM7XG4gICAgbGV0IG1ldGhvZENhbGw6IEdlbmVyaWNDYWxsIHwgR2VuZXJpY0V4dHJpbnNpYztcbiAgICBpZiAodHlwZW9mIHR4ID09PSAnc3RyaW5nJykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcGF5bG9hZDogR2VuZXJpY0V4dHJpbnNpY1BheWxvYWQgPSBjcmVhdGVUeXBlVW5zYWZlKHJlZ2lzdHJ5LCAnRXh0cmluc2ljUGF5bG9hZCcsIFtcbiAgICAgICAgICB0eCxcbiAgICAgICAgICB7IHZlcnNpb246IEVYVFJJTlNJQ19WRVJTSU9OIH0sXG4gICAgICAgIF0pO1xuICAgICAgICBtZXRob2RDYWxsID0gY3JlYXRlVHlwZVVuc2FmZShyZWdpc3RyeSwgJ0NhbGwnLCBbcGF5bG9hZC5tZXRob2RdKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgbWV0aG9kQ2FsbCA9IHJlZ2lzdHJ5LmNyZWF0ZVR5cGUoJ0V4dHJpbnNpYycsIGhleFRvVThhKHR4KSwge1xuICAgICAgICAgIGlzU2lnbmVkOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbWV0aG9kQ2FsbCA9IHJlZ2lzdHJ5LmNyZWF0ZVR5cGUoJ0NhbGwnLCB0eC5tZXRob2QpO1xuICAgIH1cbiAgICBjb25zdCBtZXRob2QgPSBtZXRob2RDYWxsLmFyZ3NbUFJPWFlfTUVUSE9EX0FSR107XG4gICAgY29uc3QgZGVjb2RlZEFyZ3MgPSBtZXRob2QudG9KU09OKCkgYXMgdW5rbm93biBhcyBQcm94eUNhbGxBcmdzO1xuICAgIHJldHVybiBkZWNvZGVkQXJncy5hcmdzO1xuICB9XG5cbiAgLyoqXG4gICAqIGtleVBhaXJGcm9tU2VlZCBnZW5lcmF0ZXMgYW4gb2JqZWN0IHdpdGggc2VjcmV0S2V5IGFuZCBwdWJsaWNLZXkgdXNpbmcgdGhlIHBvbGthZG90IHNka1xuICAgKiBAcGFyYW0gc2VlZCAzMiBieXRlcyBsb25nIHNlZWRcbiAgICogQHJldHVybnMgS2V5UGFpclxuICAgKi9cbiAga2V5UGFpckZyb21TZWVkKHNlZWQ6IFVpbnQ4QXJyYXkpOiBLZXlQYWlyIHtcbiAgICBjb25zdCBrZXlyaW5nID0gbmV3IEtleXJpbmcoeyB0eXBlOiAnZWQyNTUxOScgfSk7XG4gICAgY29uc3Qga2V5cmluZ1BhaXIgPSBrZXlyaW5nLmFkZEZyb21TZWVkKHNlZWQpO1xuICAgIGNvbnN0IHBhaXJKc29uID0ga2V5cmluZ1BhaXIudG9Kc29uKCk7XG4gICAgY29uc3QgZGVjb2RlZEtleVBhaXIgPSBkZWNvZGVQYWlyKCcnLCBiYXNlNjREZWNvZGUocGFpckpzb24uZW5jb2RlZCksIHBhaXJKc29uLmVuY29kaW5nLnR5cGUpO1xuICAgIHJldHVybiBuZXcgS2V5UGFpcih7IHBydjogQnVmZmVyLmZyb20oZGVjb2RlZEtleVBhaXIuc2VjcmV0S2V5KS50b1N0cmluZygnaGV4JykgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbmluZyBmdW5jdGlvbi4gSW1wbGVtZW50IHRoaXMgb24gdGhlIE9GRkxJTkUgc2lnbmluZyBkZXZpY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7S2V5cmluZ1BhaXJ9IHBhaXIgLSBUaGUgc2lnbmluZyBwYWlyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2lnbmluZ1BheWxvYWQgLSBQYXlsb2FkIHRvIHNpZ24uXG4gICAqIEBwYXJhbSB7VW5zaWduZWRUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb24gLSByYXcgdHJhbnNhY3Rpb24gdG8gc2lnblxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge0hleFN0cmluZ30gb3B0aW9ucy5tZXRhZGF0YVJwYyAtIG1ldGFkYXRhIHRoYXQgaXMgbmVlZGVkIGZvciBkb3QgdG8gc2lnblxuICAgKiBAcGFyYW0ge1R5cGVSZWdpc3RyeX0gb3B0aW9ucy5yZWdpc3RyeSAtIG1ldGFkYXRhIHRoYXQgaXMgbmVlZGVkIGZvciBkb3QgdG8gc2lnblxuICAgKi9cbiAgY3JlYXRlU2lnbmVkVHgoXG4gICAgcGFpcjogS2V5cmluZ1BhaXIsXG4gICAgc2lnbmluZ1BheWxvYWQ6IHN0cmluZyxcbiAgICB0cmFuc2FjdGlvbjogVW5zaWduZWRUcmFuc2FjdGlvbixcbiAgICBvcHRpb25zOiB7IG1ldGFkYXRhUnBjOiBIZXhTdHJpbmc7IHJlZ2lzdHJ5OiBUeXBlUmVnaXN0cnkgfVxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IHsgcmVnaXN0cnksIG1ldGFkYXRhUnBjIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IHsgc2lnbmF0dXJlIH0gPSByZWdpc3RyeVxuICAgICAgLmNyZWF0ZVR5cGUoJ0V4dHJpbnNpY1BheWxvYWQnLCBzaWduaW5nUGF5bG9hZCwge1xuICAgICAgICB2ZXJzaW9uOiBFWFRSSU5TSUNfVkVSU0lPTixcbiAgICAgIH0pXG4gICAgICAuc2lnbihwYWlyKTtcblxuICAgIC8vIFNlcmlhbGl6ZSBhIHNpZ25lZCB0cmFuc2FjdGlvbi5cbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemVTaWduZWRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbiwgc2lnbmF0dXJlLCBtZXRhZGF0YVJwYywgcmVnaXN0cnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZXMgdGhlIHNpZ25lZCB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb24gVHJhbnNhY3Rpb24gdG8gc2VyaWFsaXplXG4gICAqIEBwYXJhbSBzaWduYXR1cmUgU2lnbmF0dXJlIG9mIHRoZSBtZXNzYWdlXG4gICAqIEBwYXJhbSBtZXRhZGF0YVJwYyBOZXR3b3JrIG1ldGFkYXRhXG4gICAqIEBwYXJhbSByZWdpc3RyeSBUcmFuc2FjdGlvbiByZWdpc3RyeVxuICAgKiBAcmV0dXJucyBzdHJpbmcgU2VyaWFsaXplZCB0cmFuc2FjdGlvblxuICAgKi9cbiAgc2VyaWFsaXplU2lnbmVkVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24sIHNpZ25hdHVyZSwgbWV0YWRhdGFScGM6IGAweCR7c3RyaW5nfWAsIHJlZ2lzdHJ5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gY29uc3RydWN0LnNpZ25lZFR4KHRyYW5zYWN0aW9uLCBzaWduYXR1cmUsIHtcbiAgICAgIG1ldGFkYXRhUnBjLFxuICAgICAgcmVnaXN0cnksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGVjb2RlcyB0aGUgZG90IGFkZHJlc3MgZnJvbSB0aGUgZ2l2ZW4gZm9ybWF0XG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbc3M1OEZvcm1hdF1cbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGRlY29kZURvdEFkZHJlc3MoYWRkcmVzczogc3RyaW5nLCBzczU4Rm9ybWF0OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGtleXBhaXIgPSBuZXcgS2V5UGFpcih7IHB1YjogQnVmZmVyLmZyb20oZGVjb2RlQWRkcmVzcyhhZGRyZXNzLCB1bmRlZmluZWQsIHNzNThGb3JtYXQpKS50b1N0cmluZygnaGV4JykgfSk7XG4gICAgcmV0dXJuIGtleXBhaXIuZ2V0QWRkcmVzcyhzczU4Rm9ybWF0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGVzIHRoZSBkb3QgYWRkcmVzcyBmcm9tIHRoZSBnaXZlbiBmb3JtYXRcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3NcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtzczU4Rm9ybWF0XVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgZW5jb2RlRG90QWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcsIHNzNThGb3JtYXQ/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBlbmNvZGVBZGRyZXNzKGFkZHJlc3MsIHNzNThGb3JtYXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgdHhIYXNoIG9mIGEgc2lnbmVkIHR4SGV4XG4gICAqXG4gICAqIEBwYXJhbSB0eEhleCBzaWduZWQgdHJhbnNhY3Rpb24gaGV4XG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBnZXRUeEhhc2godHhIZXg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNvbnN0cnVjdC50eEhhc2godHhIZXgpO1xuICB9XG5cbiAgZ2V0TWF0ZXJpYWwoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pOiBNYXRlcmlhbCB7XG4gICAgY29uc3QgbmV0d29ya0NvbmZpZyA9IGNvaW5Db25maWcubmV0d29yayBhcyBEb3ROZXR3b3JrO1xuICAgIGNvbnN0IHsgc3BlY05hbWUsIHNwZWNWZXJzaW9uLCBjaGFpbk5hbWUsIHR4VmVyc2lvbiwgZ2VuZXNpc0hhc2ggfSA9IG5ldHdvcmtDb25maWc7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3BlY05hbWUsXG4gICAgICBzcGVjVmVyc2lvbixcbiAgICAgIGNoYWluTmFtZSxcbiAgICAgIG1ldGFkYXRhOiBuZXR3b3JrQ29uZmlnLm1ldGFkYXRhUnBjLFxuICAgICAgdHhWZXJzaW9uLFxuICAgICAgZ2VuZXNpc0hhc2gsXG4gICAgfSBhcyBNYXRlcmlhbDtcbiAgfVxuXG4gIGlzU2lnbmluZ1BheWxvYWQocGF5bG9hZDogRGVjb2RlZFNpZ25pbmdQYXlsb2FkIHwgRGVjb2RlZFNpZ25lZFR4KTogcGF5bG9hZCBpcyBEZWNvZGVkU2lnbmluZ1BheWxvYWQge1xuICAgIHJldHVybiAocGF5bG9hZCBhcyBEZWNvZGVkU2lnbmluZ1BheWxvYWQpLmJsb2NrSGFzaCAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgaXNQcm94eVRyYW5zZmVyKGFyZzogVHhNZXRob2RbJ2FyZ3MnXSk6IGFyZyBpcyBQcm94eUFyZ3Mge1xuICAgIHJldHVybiAoYXJnIGFzIFByb3h5QXJncykucmVhbCAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgaXNUcmFuc2Zlcihhcmc6IFR4TWV0aG9kWydhcmdzJ10pOiBhcmcgaXMgVHJhbnNmZXJBcmdzIHtcbiAgICByZXR1cm4gKGFyZyBhcyBUcmFuc2ZlckFyZ3MpLmRlc3Q/LmlkICE9PSB1bmRlZmluZWQgJiYgKGFyZyBhcyBUcmFuc2ZlckFyZ3MpLnZhbHVlICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBpc1RyYW5zZmVyQWxsKGFyZzogVHhNZXRob2RbJ2FyZ3MnXSk6IGFyZyBpcyBUcmFuc2ZlckFsbEFyZ3Mge1xuICAgIHJldHVybiAoYXJnIGFzIFRyYW5zZmVyQWxsQXJncykuZGVzdD8uaWQgIT09IHVuZGVmaW5lZCAmJiAoYXJnIGFzIFRyYW5zZmVyQWxsQXJncykua2VlcEFsaXZlICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIGFyZyBpcyBvZiB0eXBlIEJhdGNoQXJncywgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKlxuICAgKiBAcGFyYW0gYXJnIFRoZSBvYmplY3QgdG8gdGVzdC5cbiAgICpcbiAgICogQHJldHVybiB0cnVlIGlmIGFyZyBpcyBvZiB0eXBlIEJhdGNoQXJncywgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgaXNCYXRjaChhcmc6IFR4TWV0aG9kWydhcmdzJ10pOiBhcmcgaXMgQmF0Y2hBcmdzIHtcbiAgICByZXR1cm4gKGFyZyBhcyBCYXRjaEFyZ3MpLmNhbGxzICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIGFyZyBpcyBvZiB0eXBlIEJhdGNoQXJncyBhbmQgdGhlIGNhbGxzIG9mIHRoZSBiYXRjaCBhcmUgc3Rha2luZyBjYWxsczogYSBzdGFrZVxuICAgKiBjYWxsIChib25kKSBmb2xsb3dlZCBieSBhbiBhZGQgcHJveHkgY2FsbCAoYWRkUHJveHkpLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqXG4gICAqIEBwYXJhbSBhcmcgVGhlIG9iamVjdCB0byB0ZXN0LlxuICAgKlxuICAgKiBAcmV0dXJuIHRydWUgaWYgYXJnIGlzIG9mIHR5cGUgQmF0Y2hBcmdzIGFuZCB0aGUgY2FsbHMgb2YgdGhlIGJhdGNoIGFyZSBzdGFraW5nIGNhbGxzOiBhIHN0YWtlXG4gICAqIGNhbGwgKGJvbmQpIGZvbGxvd2VkIGJ5IGFuIGFkZCBwcm94eSBjYWxsIChhZGRQcm94eSksIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIGlzU3Rha2luZ0JhdGNoKGFyZzogVHhNZXRob2RbJ2FyZ3MnXSk6IGFyZyBpcyBCYXRjaEFyZ3Mge1xuICAgIGNvbnN0IGNhbGxzID0gKGFyZyBhcyBCYXRjaEFyZ3MpLmNhbGxzO1xuICAgIGlmIChjYWxscyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBjYWxscy5sZW5ndGggPT09IDIgJiYgdGhpcy5pc1N0YWtlQmF0Y2hDYWxsQXJncyhjYWxsc1swXS5hcmdzKSAmJiB0aGlzLmlzQWRkUHJveHlCYXRjaENhbGxBcmdzKGNhbGxzWzFdLmFyZ3MpXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIGFyZyBpcyBvZiB0eXBlIFN0YWtlQmF0Y2hDYWxsQXJncywgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKlxuICAgKiBAcGFyYW0gYXJnIFRoZSBvYmplY3QgdG8gdGVzdC5cbiAgICpcbiAgICogQHJldHVybiB0cnVlIGlmIGFyZyBpcyBvZiB0eXBlIFN0YWtlQmF0Y2hDYWxsQXJncywgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgaXNTdGFrZUJhdGNoQ2FsbEFyZ3MoYXJnOiBCYXRjaENhbGxPYmplY3RbJ2FyZ3MnXSk6IGFyZyBpcyBTdGFrZUJhdGNoQ2FsbEFyZ3Mge1xuICAgIHJldHVybiAoXG4gICAgICAoYXJnIGFzIFN0YWtlQmF0Y2hDYWxsQXJncykudmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgKGFyZyBhcyBTdGFrZUJhdGNoQ2FsbEFyZ3MpLmNvbnRyb2xsZXIgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgKGFyZyBhcyBTdGFrZUJhdGNoQ2FsbEFyZ3MpLnBheWVlICE9PSB1bmRlZmluZWRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhcmcgaXMgb2YgdHlwZSBBZGRQcm94eUJhdGNoQ2FsbEFyZ3MsIGZhbHNlIG90aGVyd2lzZS5cbiAgICpcbiAgICogQHBhcmFtIGFyZyBUaGUgb2JqZWN0IHRvIHRlc3QuXG4gICAqXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiBhcmcgaXMgb2YgdHlwZSBBZGRQcm94eUJhdGNoQ2FsbEFyZ3MsIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIGlzQWRkUHJveHlCYXRjaENhbGxBcmdzKGFyZzogQmF0Y2hDYWxsT2JqZWN0WydhcmdzJ10pOiBhcmcgaXMgQWRkUHJveHlCYXRjaENhbGxBcmdzIHtcbiAgICByZXR1cm4gKFxuICAgICAgKGFyZyBhcyBBZGRQcm94eUJhdGNoQ2FsbEFyZ3MpLmRlbGVnYXRlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIChhcmcgYXMgQWRkUHJveHlCYXRjaENhbGxBcmdzKS5wcm94eV90eXBlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIChhcmcgYXMgQWRkUHJveHlCYXRjaENhbGxBcmdzKS5kZWxheSAhPT0gdW5kZWZpbmVkXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgYXJnIGlzIG9mIHR5cGUgQmF0Y2hBcmdzIGFuZCB0aGUgY2FsbHMgb2YgdGhlIGJhdGNoIGFyZSB1bnN0YWtpbmcgY2FsbHM6IGEgcmVtb3ZlXG4gICAqIHByb3h5IGNhbGwgKHJlbW92ZVByb3h5KSwgZm9sbG93ZWQgYnkgYSBjaGlsbCBjYWxsLCBhbmQgYW4gdW5zdGFrZSBjYWxsICh1bmJvbmQpLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqXG4gICAqIEBwYXJhbSBhcmcgVGhlIG9iamVjdCB0byB0ZXN0LlxuICAgKlxuICAgKiBAcmV0dXJuIHRydWUgaWYgYXJnIGlzIG9mIHR5cGUgQmF0Y2hBcmdzIGFuZCB0aGUgY2FsbHMgb2YgdGhlIGJhdGNoIGFyZSB1bnN0YWtpbmcgY2FsbHM6IGEgcmVtb3ZlXG4gICAqIHByb3h5IGNhbGwgKHJlbW92ZVByb3h5KSwgZm9sbG93ZWQgYnkgYSBjaGlsbCBjYWxsLCBhbmQgYW4gdW5zdGFrZSBjYWxsICh1bmJvbmQpLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBpc1Vuc3Rha2luZ0JhdGNoKGFyZzogVHhNZXRob2RbJ2FyZ3MnXSk6IGFyZyBpcyBCYXRjaEFyZ3Mge1xuICAgIGNvbnN0IGNhbGxzID0gKGFyZyBhcyBCYXRjaEFyZ3MpLmNhbGxzO1xuICAgIGlmIChjYWxscyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBjYWxscy5sZW5ndGggPT09IDMgJiZcbiAgICAgICAgdGhpcy5pc1JlbW92ZVByb3h5QmF0Y2hDYWxsQXJncyhjYWxsc1swXS5hcmdzKSAmJlxuICAgICAgICBfLmlzRW1wdHkoY2FsbHNbMV0uYXJncykgJiZcbiAgICAgICAgdGhpcy5pc1Vuc3Rha2VCYXRjaENhbGxBcmdzKGNhbGxzWzJdLmFyZ3MpXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIGFyZyBpcyBvZiB0eXBlIEFkZFByb3h5QmF0Y2hDYWxsQXJncywgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKlxuICAgKiBAcGFyYW0gYXJnIFRoZSBvYmplY3QgdG8gdGVzdC5cbiAgICpcbiAgICogQHJldHVybiB0cnVlIGlmIGFyZyBpcyBvZiB0eXBlIEFkZFByb3h5QmF0Y2hDYWxsQXJncywgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgaXNSZW1vdmVQcm94eUJhdGNoQ2FsbEFyZ3MoYXJnOiBCYXRjaENhbGxPYmplY3RbJ2FyZ3MnXSk6IGFyZyBpcyBBZGRQcm94eUJhdGNoQ2FsbEFyZ3Mge1xuICAgIHJldHVybiAoXG4gICAgICAoYXJnIGFzIEFkZFByb3h5QmF0Y2hDYWxsQXJncykuZGVsZWdhdGUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgKGFyZyBhcyBBZGRQcm94eUJhdGNoQ2FsbEFyZ3MpLnByb3h5X3R5cGUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgKGFyZyBhcyBBZGRQcm94eUJhdGNoQ2FsbEFyZ3MpLmRlbGF5ICE9PSB1bmRlZmluZWRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhcmcgaXMgb2YgdHlwZSBVbnN0YWtlQmF0Y2hDYWxsQXJncywgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKlxuICAgKiBAcGFyYW0gYXJnIFRoZSBvYmplY3QgdG8gdGVzdC5cbiAgICpcbiAgICogQHJldHVybiB0cnVlIGlmIGFyZyBpcyBvZiB0eXBlIFVuc3Rha2VCYXRjaENhbGxBcmdzLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBpc1Vuc3Rha2VCYXRjaENhbGxBcmdzKGFyZzogQmF0Y2hDYWxsT2JqZWN0WydhcmdzJ10pOiBhcmcgaXMgVW5zdGFrZUJhdGNoQ2FsbEFyZ3Mge1xuICAgIHJldHVybiAoYXJnIGFzIFVuc3Rha2VCYXRjaENhbGxBcmdzKS52YWx1ZSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhcmcgaXMgb2YgdHlwZSBTdGFrZUFyZ3MsIGZhbHNlIG90aGVyd2lzZS5cbiAgICpcbiAgICogQHBhcmFtIGFyZyBUaGUgb2JqZWN0IHRvIHRlc3QuXG4gICAqXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiBhcmcgaXMgb2YgdHlwZSBTdGFrZUFyZ3MsIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIGlzQm9uZChhcmc6IFR4TWV0aG9kWydhcmdzJ10pOiBhcmcgaXMgU3Rha2VBcmdzIHtcbiAgICByZXR1cm4gKFxuICAgICAgKGFyZyBhcyBTdGFrZUFyZ3MpLnZhbHVlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIChhcmcgYXMgU3Rha2VBcmdzKS5jb250cm9sbGVyICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIChhcmcgYXMgU3Rha2VBcmdzKS5wYXllZSAhPT0gdW5kZWZpbmVkXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgYXJnIGlzIG9mIHR5cGUgU3Rha2VNb3JlQXJncywgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKlxuICAgKiBAcGFyYW0gYXJnIFRoZSBvYmplY3QgdG8gdGVzdC5cbiAgICpcbiAgICogQHJldHVybiB0cnVlIGlmIGFyZyBpcyBvZiB0eXBlIFN0YWtlTW9yZUFyZ3MsIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIGlzQm9uZEV4dHJhKGFyZzogVHhNZXRob2RbJ2FyZ3MnXSk6IGFyZyBpcyBTdGFrZU1vcmVBcmdzIHtcbiAgICByZXR1cm4gKGFyZyBhcyBTdGFrZU1vcmVBcmdzKS5tYXhBZGRpdGlvbmFsICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogZXh0cmFjdHMgYW5kIHJldHVybnMgdGhlIHNpZ25hdHVyZSBpbiBoZXggZm9ybWF0IGdpdmVuIGEgcmF3IHNpZ25lZCB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmF3VHggc2lnbmVkIHJhdyB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gb3B0aW9ucyByZWdpc3RyeSBkb3QgcmVnaXN0cnkgdXNlZCB0byByZXRyaWV2ZSB0aGUgc2lnbmF0dXJlXG4gICAqL1xuICByZWNvdmVyU2lnbmF0dXJlRnJvbVJhd1R4KHJhd1R4OiBzdHJpbmcsIG9wdGlvbnM6IHsgcmVnaXN0cnk6IFR5cGVSZWdpc3RyeSB9KTogc3RyaW5nIHtcbiAgICBjb25zdCB7IHJlZ2lzdHJ5IH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IG1ldGhvZENhbGwgPSByZWdpc3RyeS5jcmVhdGVUeXBlKCdFeHRyaW5zaWMnLCByYXdUeCwge1xuICAgICAgaXNTaWduZWQ6IHRydWUsXG4gICAgfSk7XG4gICAgbGV0IHNpZ25hdHVyZSA9IHU4YVRvSGV4KG1ldGhvZENhbGwuc2lnbmF0dXJlKSBhcyBzdHJpbmc7XG5cbiAgICAvLyByZW1vdmUgMHggZnJvbSB0aGUgc2lnbmF0dXJlIHNpbmNlIHRoaXMgaXMgaG93IGl0J3MgcmV0dXJuZWQgZnJvbSBUU1Mgc2lnbmluZ1xuICAgIGlmIChzaWduYXR1cmUuc3RhcnRzV2l0aCgnMHgnKSkge1xuICAgICAgc2lnbmF0dXJlID0gc2lnbmF0dXJlLnN1YnN0cigyKTtcbiAgICB9XG4gICAgcmV0dXJuIHNpZ25hdHVyZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGVzIHRoZSBkb3QgYWRkcmVzcyBmcm9tIHRoZSBnaXZlbiBmb3JtYXRcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3NcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtzczU4Rm9ybWF0XVxuICAgKiBAcmV0dXJucyB7S2V5UGFpcn1cbiAgICovXG4gIGRlY29kZURvdEFkZHJlc3NUb0tleVBhaXIoYWRkcmVzczogc3RyaW5nLCBzczU4Rm9ybWF0PzogbnVtYmVyKTogS2V5UGFpciB7XG4gICAgcmV0dXJuIG5ldyBLZXlQYWlyKHsgcHViOiBCdWZmZXIuZnJvbShkZWNvZGVBZGRyZXNzKGFkZHJlc3MsIHVuZGVmaW5lZCwgc3M1OEZvcm1hdCkpLnRvU3RyaW5nKCdoZXgnKSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gaW5wdXQgaXMgYSBoZXggc3RyaW5nIHdpdGggd2l0aCAwIHZhbHVlXG4gICAqIHVzZWQgdG8gY2hlY2sgd2hldGhlciBhIGdpdmVuIHRyYW5zYWN0aW9uIGlzIGltbW9ydGFsIG9yIG1vcnRhbFxuICAgKiBAcGFyYW0gaGV4VmFsdWVcbiAgICovXG4gIGlzWmVyb0hleChoZXhWYWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGhleFZhbHVlID09PSAnMHgwMCc7XG4gIH1cblxuICAvKipcbiAgICogVGFrZXMgYW4gYXNzZXQgbmFtZSBhbmQgcmV0dXJucyB0aGUgcmVzcGVjdGl2ZSBhZGRyZXNzIHRvIGZvcm1hdCB0b1xuICAgKiBzaW5jZSBwb2xrYWRvdCBhZGRyZXNzZXMgZGlmZmVyIGRlcGVuZGluZyBvbiB0aGUgbmV0d29ya1xuICAgKiByZWY6IGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvbGVhcm4tYWNjb3VudHNcbiAgICogQHBhcmFtIG5ldHdvcmtDb2luTmFtZVxuICAgKi9cbiAgZ2V0QWRkcmVzc0Zvcm1hdChuZXR3b3JrQ29pbk5hbWU6IERvdEFzc2V0VHlwZXMpOiBEb3RBZGRyZXNzRm9ybWF0IHtcbiAgICByZXR1cm4gY29pblRvQWRkcmVzc01hcC5nZXQobmV0d29ya0NvaW5OYW1lKSBhcyBEb3RBZGRyZXNzRm9ybWF0O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBwdXJlIHByb3h5IGV4dHJpbnNpYy4gUG9sa2Fkb3QgaGFzIHJlbmFtZWQgYW5vbnltb3VzIHByb3hpZXMgdG8gcHVyZSBwcm94aWVzLCBidXRcbiAgICogdGhlIGxpYnJhcmllcyB3ZSBhcmUgdXNpbmcgdG8gYnVpbGQgdHJhbnNhY3Rpb25zIGhhdmUgbm90IGJlZW4gdXBkYXRlZCwgYXMgYSBzdG9wIGdhcCB3ZSBhcmVcbiAgICogZGVmaW5pbmcgdGhlIHB1cmUgcHJveHkgZXh0cmluc2ljIGhlcmUuXG4gICAqXG4gICAqIEBwYXJhbSBhcmdzIEFyZ3VtZW50cyB0byB0aGUgY3JlYXRlUHVyZSBleHRyaW5zaWMuXG4gICAqIEBwYXJhbSBpbmZvIENvbW1vbiBpbmZvcm1hdGlvbiB0byBhbGwgdHJhbnNhY3Rpb25zLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBDaGFpbiByZWdpc3RyeSBhbmQgbWV0YWRhdGEuXG4gICAqL1xuICBwdXJlUHJveHkoYXJnczogUHVyZVByb3h5QXJncywgaW5mbzogQmFzZVR4SW5mbywgb3B0aW9uczogT3B0aW9uc1dpdGhNZXRhKTogVW5zaWduZWRUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIGRlZmluZU1ldGhvZChcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kOiB7XG4gICAgICAgICAgYXJncyxcbiAgICAgICAgICBuYW1lOiAnY3JlYXRlUHVyZScsXG4gICAgICAgICAgcGFsbGV0OiAncHJveHknLFxuICAgICAgICB9LFxuICAgICAgICAuLi5pbmZvLFxuICAgICAgfSxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgJzB4JyBmcm9tIGEgZ2l2ZW4gYHN0cmluZ2AgaWYgcHJlc2VudC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0ciB0aGUgc3RyaW5nIHZhbHVlLlxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IGEgc3RyaW5nIHdpdGhvdXQgYSAnMHgnIHByZWZpeC5cbiAgICovXG4gIHN0cmlwSGV4UHJlZml4KHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc0hleFByZWZpeGVkKHN0cikgPyBzdHIuc2xpY2UoMikgOiBzdHI7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIGEgc3RyaW5nIHN0YXJ0cyB3aXRoICcweCcsIGZhbHNlIG90aGVyd2lzZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0ciB0aGUgc3RyaW5nIHZhbHVlLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufSB0cnVlIGlmIGEgc3RyaW5nIHN0YXJ0cyB3aXRoICcweCcsIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIGlzSGV4UHJlZml4ZWQoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3RyLnNsaWNlKDAsIDIpID09PSAnMHgnO1xuICB9XG59XG5cbmludGVyZmFjZSBQdXJlUHJveHlBcmdzIGV4dGVuZHMgQXJncyB7XG4gIHByb3h5VHlwZTogc3RyaW5nO1xuICBkZWxheTogbnVtYmVyO1xuICBpbmRleDogbnVtYmVyO1xufVxuXG5jb25zdCB1dGlscyA9IG5ldyBVdGlscygpO1xuXG5leHBvcnQgZGVmYXVsdCB1dGlscztcbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo-beta/sdk-coin-dot",
3
- "version": "1.3.3-alpha.4",
3
+ "version": "1.3.3-alpha.6",
4
4
  "description": "BitGo SDK coin library for Polkadot",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -40,8 +40,8 @@
40
40
  ]
41
41
  },
42
42
  "dependencies": {
43
- "@bitgo-beta/sdk-core": "2.4.1-alpha.4",
44
- "@bitgo-beta/statics": "10.0.1-alpha.4",
43
+ "@bitgo-beta/sdk-core": "2.4.1-alpha.6",
44
+ "@bitgo-beta/statics": "10.0.1-alpha.6",
45
45
  "@polkadot/api": "9.3.3",
46
46
  "@polkadot/keyring": "^10.1.8",
47
47
  "@polkadot/types": "9.3.3",
@@ -57,9 +57,9 @@
57
57
  "tweetnacl": "^1.0.3"
58
58
  },
59
59
  "devDependencies": {
60
- "@bitgo-beta/sdk-api": "1.6.1-alpha.4",
60
+ "@bitgo-beta/sdk-api": "1.6.1-alpha.6",
61
61
  "@bitgo-beta/sdk-test": "^1.2.4",
62
62
  "@types/lodash": "^4.14.151"
63
63
  },
64
- "gitHead": "9faa2bf745fe452fd7f640b58bc43d8d552a1e10"
64
+ "gitHead": "4df27e639602ec913e29d3517428f4e7d74732c2"
65
65
  }