@bitgo-beta/statics 10.0.1-alpha.403 → 10.0.1-alpha.404

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.
Files changed (101) hide show
  1. package/dist/tsconfig.tsbuildinfo +1 -1
  2. package/package.json +2 -2
  3. package/dist/src/account.d.ts +0 -1600
  4. package/dist/src/account.d.ts.map +0 -1
  5. package/dist/src/account.js +0 -2491
  6. package/dist/src/ada.d.ts +0 -35
  7. package/dist/src/ada.d.ts.map +0 -1
  8. package/dist/src/ada.js +0 -65
  9. package/dist/src/allCoinsAndTokens.d.ts +0 -2
  10. package/dist/src/allCoinsAndTokens.d.ts.map +0 -1
  11. package/dist/src/allCoinsAndTokens.js +0 -830
  12. package/dist/src/avaxp.d.ts +0 -40
  13. package/dist/src/avaxp.d.ts.map +0 -1
  14. package/dist/src/avaxp.js +0 -65
  15. package/dist/src/base.d.ts +0 -3046
  16. package/dist/src/base.d.ts.map +0 -1
  17. package/dist/src/base.js +0 -3235
  18. package/dist/src/coinFeatures.d.ts +0 -106
  19. package/dist/src/coinFeatures.d.ts.map +0 -1
  20. package/dist/src/coinFeatures.js +0 -627
  21. package/dist/src/coins/adaTokens.d.ts +0 -2
  22. package/dist/src/coins/adaTokens.d.ts.map +0 -1
  23. package/dist/src/coins/adaTokens.js +0 -12
  24. package/dist/src/coins/avaxTokens.d.ts +0 -2
  25. package/dist/src/coins/avaxTokens.d.ts.map +0 -1
  26. package/dist/src/coins/avaxTokens.js +0 -124
  27. package/dist/src/coins/botOfcTokens.d.ts +0 -2
  28. package/dist/src/coins/botOfcTokens.d.ts.map +0 -1
  29. package/dist/src/coins/botOfcTokens.js +0 -5
  30. package/dist/src/coins/botTokens.d.ts +0 -3
  31. package/dist/src/coins/botTokens.d.ts.map +0 -1
  32. package/dist/src/coins/botTokens.js +0 -43
  33. package/dist/src/coins/bscTokens.d.ts +0 -2
  34. package/dist/src/coins/bscTokens.d.ts.map +0 -1
  35. package/dist/src/coins/bscTokens.js +0 -176
  36. package/dist/src/coins/cosmosTokens.d.ts +0 -2
  37. package/dist/src/coins/cosmosTokens.d.ts.map +0 -1
  38. package/dist/src/coins/cosmosTokens.js +0 -12
  39. package/dist/src/coins/erc20Coins.d.ts +0 -2
  40. package/dist/src/coins/erc20Coins.d.ts.map +0 -1
  41. package/dist/src/coins/erc20Coins.js +0 -1743
  42. package/dist/src/coins/jettonTokens.d.ts +0 -2
  43. package/dist/src/coins/jettonTokens.d.ts.map +0 -1
  44. package/dist/src/coins/jettonTokens.js +0 -13
  45. package/dist/src/coins/nep141Tokens.d.ts +0 -2
  46. package/dist/src/coins/nep141Tokens.d.ts.map +0 -1
  47. package/dist/src/coins/nep141Tokens.js +0 -14
  48. package/dist/src/coins/ofcCoins.d.ts +0 -2
  49. package/dist/src/coins/ofcCoins.d.ts.map +0 -1
  50. package/dist/src/coins/ofcCoins.js +0 -708
  51. package/dist/src/coins/ofcErc20Coins.d.ts +0 -3
  52. package/dist/src/coins/ofcErc20Coins.d.ts.map +0 -1
  53. package/dist/src/coins/ofcErc20Coins.js +0 -1539
  54. package/dist/src/coins/polygonTokens.d.ts +0 -2
  55. package/dist/src/coins/polygonTokens.d.ts.map +0 -1
  56. package/dist/src/coins/polygonTokens.js +0 -155
  57. package/dist/src/coins/sip10Tokens.d.ts +0 -2
  58. package/dist/src/coins/sip10Tokens.d.ts.map +0 -1
  59. package/dist/src/coins/sip10Tokens.js +0 -25
  60. package/dist/src/coins/solTokens.d.ts +0 -3
  61. package/dist/src/coins/solTokens.d.ts.map +0 -1
  62. package/dist/src/coins/solTokens.js +0 -396
  63. package/dist/src/coins/vetTokens.d.ts +0 -2
  64. package/dist/src/coins/vetTokens.d.ts.map +0 -1
  65. package/dist/src/coins/vetTokens.js +0 -11
  66. package/dist/src/coins.d.ts +0 -14
  67. package/dist/src/coins.d.ts.map +0 -1
  68. package/dist/src/coins.js +0 -331
  69. package/dist/src/constants.d.ts +0 -3
  70. package/dist/src/constants.d.ts.map +0 -1
  71. package/dist/src/constants.js +0 -6
  72. package/dist/src/errors.d.ts +0 -37
  73. package/dist/src/errors.d.ts.map +0 -1
  74. package/dist/src/errors.js +0 -74
  75. package/dist/src/flrp.d.ts +0 -40
  76. package/dist/src/flrp.d.ts.map +0 -1
  77. package/dist/src/flrp.js +0 -65
  78. package/dist/src/index.d.ts +0 -12
  79. package/dist/src/index.d.ts.map +0 -1
  80. package/dist/src/index.js +0 -60
  81. package/dist/src/lightning.d.ts +0 -43
  82. package/dist/src/lightning.d.ts.map +0 -1
  83. package/dist/src/lightning.js +0 -60
  84. package/dist/src/map.d.ts +0 -32
  85. package/dist/src/map.d.ts.map +0 -1
  86. package/dist/src/map.js +0 -181
  87. package/dist/src/networkFeatureMapForTokens.d.ts +0 -3
  88. package/dist/src/networkFeatureMapForTokens.d.ts.map +0 -1
  89. package/dist/src/networkFeatureMapForTokens.js +0 -31
  90. package/dist/src/networks.d.ts +0 -1952
  91. package/dist/src/networks.d.ts.map +0 -1
  92. package/dist/src/networks.js +0 -2429
  93. package/dist/src/ofc.d.ts +0 -727
  94. package/dist/src/ofc.d.ts.map +0 -1
  95. package/dist/src/ofc.js +0 -1617
  96. package/dist/src/tokenConfig.d.ts +0 -389
  97. package/dist/src/tokenConfig.d.ts.map +0 -1
  98. package/dist/src/tokenConfig.js +0 -1046
  99. package/dist/src/utxo.d.ts +0 -43
  100. package/dist/src/utxo.d.ts.map +0 -1
  101. package/dist/src/utxo.js +0 -141
@@ -1,43 +0,0 @@
1
- import { BaseCoin, BaseUnit, CoinFeature, KeyCurve, UnderlyingAsset } from './base';
2
- import { UtxoNetwork } from './networks';
3
- interface UtxoConstructorOptions {
4
- id: string;
5
- fullName: string;
6
- name: string;
7
- network: UtxoNetwork;
8
- features: CoinFeature[];
9
- asset: UnderlyingAsset;
10
- baseUnit: BaseUnit;
11
- prefix?: string;
12
- suffix?: string;
13
- primaryKeyCurve: KeyCurve;
14
- }
15
- export declare class UtxoCoin extends BaseCoin {
16
- static readonly DEFAULT_FEATURES: CoinFeature[];
17
- /**
18
- * Additional fields for utxo coins
19
- */
20
- readonly network: UtxoNetwork;
21
- constructor(options: UtxoConstructorOptions);
22
- protected disallowedFeatures(): Set<CoinFeature>;
23
- protected requiredFeatures(): Set<CoinFeature>;
24
- }
25
- /**
26
- * Factory function for utxo coin instances.
27
- *
28
- * @param id uuid v4 of the coin
29
- * @param name unique identifier of the coin
30
- * @param fullName Complete human-readable name of the coin
31
- * @param network Network object for this coin
32
- * @param asset Asset which this coin represents. This is the same for both mainnet and testnet variants of a coin.
33
- * @param features? Features of this coin. Defaults to the DEFAULT_FEATURES defined in `UtxoCoin`
34
- * @param prefix? Optional coin prefix. Defaults to empty string
35
- * @param suffix? Optional coin suffix. Defaults to coin name.
36
- * @param primaryKeyCurve The elliptic curve for this chain/token
37
- */
38
- export declare function utxo(id: string, name: string, fullName: string, network: UtxoNetwork, asset: UnderlyingAsset, baseUnit: BaseUnit, features?: CoinFeature[], prefix?: string, suffix?: string,
39
- /** All UTXOs BitGo supports are SECP256K1 **/
40
- primaryKeyCurve?: KeyCurve): Readonly<UtxoCoin>;
41
- export declare const utxoCoins: Readonly<BaseCoin>[];
42
- export {};
43
- //# sourceMappingURL=utxo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utxo.d.ts","sourceRoot":"","sources":["../../src/utxo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAY,QAAQ,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9F,OAAO,EAAY,WAAW,EAAE,MAAM,YAAY,CAAC;AAEnD,UAAU,sBAAsB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,QAAQ,CAAC;CAC3B;AAED,qBAAa,QAAS,SAAQ,QAAQ;IACpC,gBAAuB,gBAAgB,gBAWrC;IAEF;;OAEG;IACH,SAAgB,OAAO,EAAE,WAAW,CAAC;gBAEzB,OAAO,EAAE,sBAAsB;IAW3C,SAAS,CAAC,kBAAkB,IAAI,GAAG,CAAC,WAAW,CAAC;IAIhD,SAAS,CAAC,gBAAgB,IAAI,GAAG,CAAC,WAAW,CAAC;CAG/C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,IAAI,CAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,GAAE,WAAW,EAA8B,EACnD,MAAM,SAAK,EACX,MAAM,GAAE,MAA2B;AACnC,8CAA8C;AAC9C,eAAe,GAAE,QAA6B,sBAgB/C;AAkDD,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAmMzC,CAAC"}
package/dist/src/utxo.js DELETED
@@ -1,141 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.utxoCoins = exports.UtxoCoin = void 0;
4
- exports.utxo = utxo;
5
- const base_1 = require("./base");
6
- const networks_1 = require("./networks");
7
- class UtxoCoin extends base_1.BaseCoin {
8
- constructor(options) {
9
- super({
10
- ...options,
11
- kind: base_1.CoinKind.CRYPTO,
12
- isToken: false,
13
- decimalPlaces: 8,
14
- });
15
- this.network = options.network;
16
- }
17
- disallowedFeatures() {
18
- return new Set([base_1.CoinFeature.ACCOUNT_MODEL]);
19
- }
20
- requiredFeatures() {
21
- return new Set([base_1.CoinFeature.UNSPENT_MODEL]);
22
- }
23
- }
24
- exports.UtxoCoin = UtxoCoin;
25
- UtxoCoin.DEFAULT_FEATURES = [
26
- base_1.CoinFeature.UNSPENT_MODEL,
27
- base_1.CoinFeature.CHILD_PAYS_FOR_PARENT,
28
- base_1.CoinFeature.CUSTODY,
29
- base_1.CoinFeature.CUSTODY_BITGO_TRUST,
30
- base_1.CoinFeature.CUSTODY_BITGO_MENA_FZE,
31
- base_1.CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE,
32
- base_1.CoinFeature.CUSTODY_BITGO_INDIA,
33
- base_1.CoinFeature.MULTISIG_COLD,
34
- base_1.CoinFeature.MULTISIG,
35
- base_1.CoinFeature.PAYGO,
36
- ];
37
- /**
38
- * Factory function for utxo coin instances.
39
- *
40
- * @param id uuid v4 of the coin
41
- * @param name unique identifier of the coin
42
- * @param fullName Complete human-readable name of the coin
43
- * @param network Network object for this coin
44
- * @param asset Asset which this coin represents. This is the same for both mainnet and testnet variants of a coin.
45
- * @param features? Features of this coin. Defaults to the DEFAULT_FEATURES defined in `UtxoCoin`
46
- * @param prefix? Optional coin prefix. Defaults to empty string
47
- * @param suffix? Optional coin suffix. Defaults to coin name.
48
- * @param primaryKeyCurve The elliptic curve for this chain/token
49
- */
50
- function utxo(id, name, fullName, network, asset, baseUnit, features = UtxoCoin.DEFAULT_FEATURES, prefix = '', suffix = name.toUpperCase(),
51
- /** All UTXOs BitGo supports are SECP256K1 **/
52
- primaryKeyCurve = base_1.KeyCurve.Secp256k1) {
53
- return Object.freeze(new UtxoCoin({
54
- id,
55
- name,
56
- fullName,
57
- network,
58
- prefix,
59
- suffix,
60
- features,
61
- asset,
62
- primaryKeyCurve,
63
- baseUnit,
64
- }));
65
- }
66
- const BCH_FEATURES = [
67
- ...UtxoCoin.DEFAULT_FEATURES,
68
- base_1.CoinFeature.BULK_TRANSACTION,
69
- base_1.CoinFeature.CUSTODY_BITGO_GERMANY,
70
- base_1.CoinFeature.CUSTODY_BITGO_NEW_YORK,
71
- base_1.CoinFeature.CUSTODY_BITGO_FRANKFURT,
72
- base_1.CoinFeature.CUSTODY_BITGO_SINGAPORE,
73
- base_1.CoinFeature.CUSTODY_BULK_TRANSACTION,
74
- ];
75
- const BTC_FEATURES = [
76
- ...UtxoCoin.DEFAULT_FEATURES,
77
- base_1.CoinFeature.CUSTODY_BITGO_GERMANY,
78
- base_1.CoinFeature.CUSTODY_BITGO_NEW_YORK,
79
- base_1.CoinFeature.CUSTODY_BITGO_FRANKFURT,
80
- base_1.CoinFeature.CUSTODY_BITGO_SISTER_TRUST_ONE,
81
- base_1.CoinFeature.CUSTODY_BITGO_KOREA,
82
- base_1.CoinFeature.CUSTODY_BITGO_EUROPE_APS,
83
- base_1.CoinFeature.BULK_TRANSACTION,
84
- base_1.CoinFeature.DISTRIBUTED_CUSTODY,
85
- base_1.CoinFeature.CUSTODY_BITGO_SINGAPORE,
86
- base_1.CoinFeature.CUSTODY_BITGO_SWITZERLAND,
87
- base_1.CoinFeature.STUCK_TRANSACTION_MANAGEMENT_ONCHAIN,
88
- base_1.CoinFeature.STAKING,
89
- ];
90
- const BTG_FEATURES = [
91
- ...UtxoCoin.DEFAULT_FEATURES,
92
- base_1.CoinFeature.CUSTODY_BITGO_GERMANY,
93
- base_1.CoinFeature.CUSTODY_BITGO_FRANKFURT,
94
- ];
95
- const LTC_FEATURES = [
96
- ...UtxoCoin.DEFAULT_FEATURES,
97
- base_1.CoinFeature.CUSTODY_BITGO_GERMANY,
98
- base_1.CoinFeature.CUSTODY_BITGO_NEW_YORK,
99
- base_1.CoinFeature.CUSTODY_BITGO_FRANKFURT,
100
- base_1.CoinFeature.CUSTODY_BITGO_SINGAPORE,
101
- base_1.CoinFeature.BULK_TRANSACTION,
102
- ];
103
- const DOGE_FEATURES = [
104
- ...UtxoCoin.DEFAULT_FEATURES,
105
- base_1.CoinFeature.CUSTODY_BITGO_GERMANY,
106
- base_1.CoinFeature.CUSTODY_BITGO_FRANKFURT,
107
- base_1.CoinFeature.CUSTODY_BITGO_SINGAPORE,
108
- base_1.CoinFeature.CUSTODY_BITGO_NEW_YORK,
109
- base_1.CoinFeature.BULK_TRANSACTION,
110
- ];
111
- const DASH_FEATURES = [...UtxoCoin.DEFAULT_FEATURES, base_1.CoinFeature.CUSTODY_BITGO_FRANKFURT, base_1.CoinFeature.BULK_TRANSACTION];
112
- const TDASH_FEATURES = [...UtxoCoin.DEFAULT_FEATURES, base_1.CoinFeature.BULK_TRANSACTION];
113
- const ZEC_FEATURES = [...UtxoCoin.DEFAULT_FEATURES, base_1.CoinFeature.BULK_TRANSACTION];
114
- exports.utxoCoins = [
115
- utxo('8d6e08d5-399f-414f-8430-6ceca1798cbf', 'bch', 'Bitcoin Cash', networks_1.Networks.main.bitcoinCash, base_1.UnderlyingAsset.BCH, base_1.BaseUnit.BTC, BCH_FEATURES),
116
- utxo('aae6fafc-5091-4b10-9a11-aa6cefea2805', 'tbch', 'Testnet Bitcoin Cash', networks_1.Networks.test.bitcoinCash, base_1.UnderlyingAsset.BCH, base_1.BaseUnit.BTC, BCH_FEATURES),
117
- utxo('941587ce-1c7a-4305-b908-15455d15e961', 'bcha', 'ECash', networks_1.Networks.main.eCash, base_1.UnderlyingAsset.BCHA, base_1.BaseUnit.BTC),
118
- utxo('af8de1e0-3e33-47bf-94d3-fb3c2bebead2', 'tbcha', 'Testnet ECash', networks_1.Networks.test.eCash, base_1.UnderlyingAsset.BCHA, base_1.BaseUnit.BTC),
119
- utxo('f728cfc7-d0cf-4f99-bca0-d25273e65fcf', 'bsv', 'Bitcoin SV', networks_1.Networks.main.bitcoinSV, base_1.UnderlyingAsset.BSV, base_1.BaseUnit.BTC, [base_1.CoinFeature.DEPRECATED, ...UtxoCoin.DEFAULT_FEATURES]),
120
- utxo('7cb81518-85d7-400f-960e-7bc00b3bfa62', 'tbsv', 'Testnet Bitcoin SV', networks_1.Networks.test.bitcoinSV, base_1.UnderlyingAsset.BSV, base_1.BaseUnit.BTC, [base_1.CoinFeature.DEPRECATED, ...UtxoCoin.DEFAULT_FEATURES]),
121
- utxo('5c1691c5-c9cc-49ed-abe0-c433dab2edaa', 'btc', 'Bitcoin', networks_1.Networks.main.bitcoin, base_1.UnderlyingAsset.BTC, base_1.BaseUnit.BTC, BTC_FEATURES),
122
- utxo('cde7559d-a536-4d12-8de4-90baa09f90bd', 'tbtc', 'Testnet Bitcoin', networks_1.Networks.test.bitcoin, base_1.UnderlyingAsset.BTC, base_1.BaseUnit.BTC, BTC_FEATURES.filter((f) => f !== base_1.CoinFeature.STAKING)),
123
- utxo('a0d53dc9-2dcc-4ebb-a2d4-51983fe20da6', 'tbtcsig', 'Public Signet Bitcoin', networks_1.Networks.test.bitcoinPublicSignet, base_1.UnderlyingAsset.BTC, base_1.BaseUnit.BTC, BTC_FEATURES),
124
- utxo('f76cec3f-7aef-473d-af5d-4c47dd40dfa8', 'tbtc4', 'Testnet4 Bitcoin', networks_1.Networks.test.bitcoinTestnet4, base_1.UnderlyingAsset.BTC, base_1.BaseUnit.BTC, BTC_FEATURES),
125
- utxo('722522dc-a613-4bff-a1d1-183ebe5138ae', 'tbtcbgsig', 'BitGo Signet Bitcoin', networks_1.Networks.test.bitcoinBitGoSignet, base_1.UnderlyingAsset.BTC, base_1.BaseUnit.BTC, BTC_FEATURES),
126
- utxo('8feb110d-0d68-44ce-ae97-b8c30ec870a9', 'btg', 'Bitcoin Gold', networks_1.Networks.main.bitcoinGold, base_1.UnderlyingAsset.BTG, base_1.BaseUnit.BTC, BTG_FEATURES),
127
- utxo('633246f2-af21-41b8-8b9e-ba9ae25d386f', 'tbtg', 'Testnet Bitcoin Gold', networks_1.Networks.test.bitcoinGold, base_1.UnderlyingAsset.BTG, base_1.BaseUnit.BTC, BTG_FEATURES.filter((f) => f !== base_1.CoinFeature.MULTISIG_COLD)),
128
- utxo('9c8097f1-5d2c-4a62-a94c-96c271c0e5e0', 'ltc', 'Litecoin', networks_1.Networks.main.litecoin, base_1.UnderlyingAsset.LTC, base_1.BaseUnit.LTC, LTC_FEATURES),
129
- utxo('1aca32c8-a3e5-42eb-82df-4c263d8bfc68', 'tltc', 'Testnet Litecoin', networks_1.Networks.test.litecoin, base_1.UnderlyingAsset.LTC, base_1.BaseUnit.LTC, LTC_FEATURES),
130
- utxo('0739be6a-c72e-468d-9464-ca5601965708', 'dash', 'Dash', networks_1.Networks.main.dash, base_1.UnderlyingAsset.DASH, base_1.BaseUnit.DASH, DASH_FEATURES.filter((feature) => ![
131
- base_1.CoinFeature.CUSTODY_BITGO_SINGAPORE,
132
- base_1.CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE,
133
- base_1.CoinFeature.CUSTODY_BITGO_MENA_FZE,
134
- ].includes(feature))),
135
- utxo('5950d78f-e8dd-457a-ab5d-310e6b476bb1', 'tdash', 'Testnet Dash', networks_1.Networks.test.dash, base_1.UnderlyingAsset.DASH, base_1.BaseUnit.DASH, TDASH_FEATURES),
136
- utxo('508f6b53-1e6e-41fd-b541-b2498b7c4b61', 'zec', 'ZCash', networks_1.Networks.main.zCash, base_1.UnderlyingAsset.ZEC, base_1.BaseUnit.ZEC, ZEC_FEATURES),
137
- utxo('549a4499-387c-42d3-9048-c01d6724d98a', 'tzec', 'Testnet ZCash', networks_1.Networks.test.zCash, base_1.UnderlyingAsset.ZEC, base_1.BaseUnit.ZEC, ZEC_FEATURES),
138
- utxo('c93a9160-458f-4a31-bea0-4a93ae8b1d2d', 'doge', 'Dogecoin', networks_1.Networks.main.dogecoin, base_1.UnderlyingAsset.DOGE, base_1.BaseUnit.BTC, DOGE_FEATURES),
139
- utxo('7a1597e8-fd8e-4b68-8086-f9159e37e0ce', 'tdoge', 'Testnet Dogecoin', networks_1.Networks.test.dogecoin, base_1.UnderlyingAsset.DOGE, base_1.BaseUnit.BTC, DOGE_FEATURES),
140
- ];
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXR4by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dHhvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW9FQSxvQkEyQkM7QUEvRkQsaUNBQThGO0FBQzlGLHlDQUFtRDtBQWVuRCxNQUFhLFFBQVMsU0FBUSxlQUFRO0lBbUJwQyxZQUFZLE9BQStCO1FBQ3pDLEtBQUssQ0FBQztZQUNKLEdBQUcsT0FBTztZQUNWLElBQUksRUFBRSxlQUFRLENBQUMsTUFBTTtZQUNyQixPQUFPLEVBQUUsS0FBSztZQUNkLGFBQWEsRUFBRSxDQUFDO1NBQ2pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUNqQyxDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQyxrQkFBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsa0JBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7O0FBcENILDRCQXFDQztBQXBDd0IseUJBQWdCLEdBQUc7SUFDeEMsa0JBQVcsQ0FBQyxhQUFhO0lBQ3pCLGtCQUFXLENBQUMscUJBQXFCO0lBQ2pDLGtCQUFXLENBQUMsT0FBTztJQUNuQixrQkFBVyxDQUFDLG1CQUFtQjtJQUMvQixrQkFBVyxDQUFDLHNCQUFzQjtJQUNsQyxrQkFBVyxDQUFDLDhCQUE4QjtJQUMxQyxrQkFBVyxDQUFDLG1CQUFtQjtJQUMvQixrQkFBVyxDQUFDLGFBQWE7SUFDekIsa0JBQVcsQ0FBQyxRQUFRO0lBQ3BCLGtCQUFXLENBQUMsS0FBSztDQUNsQixDQUFDO0FBMkJKOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQWdCLElBQUksQ0FDbEIsRUFBVSxFQUNWLElBQVksRUFDWixRQUFnQixFQUNoQixPQUFvQixFQUNwQixLQUFzQixF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QUMsR0FBRyxFQUNaLFlBQVksQ0FDYjtJQUNELElBQUksQ0FDRixzQ0FBc0MsRUFDdEMsTUFBTSxFQUNOLFVBQVUsRUFDVixtQkFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQ3RCLHNCQUFlLENBQUMsSUFBSSxFQUNwQixlQUFRLENBQUMsR0FBRyxFQUNaLGFBQWEsQ0FDZDtJQUNELElBQUksQ0FDRixzQ0FBc0MsRUFDdEMsT0FBTyxFQUNQLGtCQUFrQixFQUNsQixtQkFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQ3RCLHNCQUFlLENBQUMsSUFBSSxFQUNwQixlQUFRLENBQUMsR0FBRyxFQUNaLGFBQWEsQ0FDZDtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiwgQmFzZVVuaXQsIENvaW5GZWF0dXJlLCBDb2luS2luZCwgS2V5Q3VydmUsIFVuZGVybHlpbmdBc3NldCB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBOZXR3b3JrcywgVXR4b05ldHdvcmsgfSBmcm9tICcuL25ldHdvcmtzJztcblxuaW50ZXJmYWNlIFV0eG9Db25zdHJ1Y3Rvck9wdGlvbnMge1xuICBpZDogc3RyaW5nO1xuICBmdWxsTmFtZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIG5ldHdvcms6IFV0eG9OZXR3b3JrO1xuICBmZWF0dXJlczogQ29pbkZlYXR1cmVbXTtcbiAgYXNzZXQ6IFVuZGVybHlpbmdBc3NldDtcbiAgYmFzZVVuaXQ6IEJhc2VVbml0O1xuICBwcmVmaXg/OiBzdHJpbmc7XG4gIHN1ZmZpeD86IHN0cmluZztcbiAgcHJpbWFyeUtleUN1cnZlOiBLZXlDdXJ2ZTtcbn1cblxuZXhwb3J0IGNsYXNzIFV0eG9Db2luIGV4dGVuZHMgQmFzZUNvaW4ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfRkVBVFVSRVMgPSBbXG4gICAgQ29pbkZlYXR1cmUuVU5TUEVOVF9NT0RFTCxcbiAgICBDb2luRmVhdHVyZS5DSElMRF9QQVlTX0ZPUl9QQVJFTlQsXG4gICAgQ29pbkZlYXR1cmUuQ1VTVE9EWSxcbiAgICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX1RSVVNULFxuICAgIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fTUVOQV9GWkUsXG4gICAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19DVVNUT0RZX01FTkFfRlpFLFxuICAgIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fSU5ESUEsXG4gICAgQ29pbkZlYXR1cmUuTVVMVElTSUdfQ09MRCxcbiAgICBDb2luRmVhdHVyZS5NVUxUSVNJRyxcbiAgICBDb2luRmVhdHVyZS5QQVlHTyxcbiAgXTtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBmaWVsZHMgZm9yIHV0eG8gY29pbnNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuZXR3b3JrOiBVdHhvTmV0d29yaztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBVdHhvQ29uc3RydWN0b3JPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGtpbmQ6IENvaW5LaW5kLkNSWVBUTyxcbiAgICAgIGlzVG9rZW46IGZhbHNlLFxuICAgICAgZGVjaW1hbFBsYWNlczogOCxcbiAgICB9KTtcblxuICAgIHRoaXMubmV0d29yayA9IG9wdGlvbnMubmV0d29yaztcbiAgfVxuXG4gIHByb3RlY3RlZCBkaXNhbGxvd2VkRmVhdHVyZXMoKTogU2V0PENvaW5GZWF0dXJlPiB7XG4gICAgcmV0dXJuIG5ldyBTZXQoW0NvaW5GZWF0dXJlLkFDQ09VTlRfTU9ERUxdKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXF1aXJlZEZlYXR1cmVzKCk6IFNldDxDb2luRmVhdHVyZT4ge1xuICAgIHJldHVybiBuZXcgU2V0KFtDb2luRmVhdHVyZS5VTlNQRU5UX01PREVMXSk7XG4gIH1cbn1cblxuLyoqXG4gKiBGYWN0b3J5IGZ1bmN0aW9uIGZvciB1dHhvIGNvaW4gaW5zdGFuY2VzLlxuICpcbiAqIEBwYXJhbSBpZCB1dWlkIHY0IG9mIHRoZSBjb2luXG4gKiBAcGFyYW0gbmFtZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29pblxuICogQHBhcmFtIGZ1bGxOYW1lIENvbXBsZXRlIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhlIGNvaW5cbiAqIEBwYXJhbSBuZXR3b3JrIE5ldHdvcmsgb2JqZWN0IGZvciB0aGlzIGNvaW5cbiAqIEBwYXJhbSBhc3NldCBBc3NldCB3aGljaCB0aGlzIGNvaW4gcmVwcmVzZW50cy4gVGhpcyBpcyB0aGUgc2FtZSBmb3IgYm90aCBtYWlubmV0IGFuZCB0ZXN0bmV0IHZhcmlhbnRzIG9mIGEgY29pbi5cbiAqIEBwYXJhbSBmZWF0dXJlcz8gRmVhdHVyZXMgb2YgdGhpcyBjb2luLiBEZWZhdWx0cyB0byB0aGUgREVGQVVMVF9GRUFUVVJFUyBkZWZpbmVkIGluIGBVdHhvQ29pbmBcbiAqIEBwYXJhbSBwcmVmaXg/IE9wdGlvbmFsIGNvaW4gcHJlZml4LiBEZWZhdWx0cyB0byBlbXB0eSBzdHJpbmdcbiAqIEBwYXJhbSBzdWZmaXg/IE9wdGlvbmFsIGNvaW4gc3VmZml4LiBEZWZhdWx0cyB0byBjb2luIG5hbWUuXG4gKiBAcGFyYW0gcHJpbWFyeUtleUN1cnZlIFRoZSBlbGxpcHRpYyBjdXJ2ZSBmb3IgdGhpcyBjaGFpbi90b2tlblxuICovXG5leHBvcnQgZnVuY3Rpb24gdXR4byhcbiAgaWQ6IHN0cmluZyxcbiAgbmFtZTogc3RyaW5nLFxuICBmdWxsTmFtZTogc3RyaW5nLFxuICBuZXR3b3JrOiBVdHhvTmV0d29yayxcbiAgYXNzZXQ6IFVuZGVybHlpbmdBc3NldCxcbiAgYmFzZVVuaXQ6IEJhc2VVbml0LFxuICBmZWF0dXJlczogQ29pbkZlYXR1cmVbXSA9IFV0eG9Db2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIHByZWZpeCA9ICcnLFxuICBzdWZmaXg6IHN0cmluZyA9IG5hbWUudG9VcHBlckNhc2UoKSxcbiAgLyoqIEFsbCBVVFhPcyBCaXRHbyBzdXBwb3J0cyBhcmUgU0VDUDI1NksxICoqL1xuICBwcmltYXJ5S2V5Q3VydmU6IEtleUN1cnZlID0gS2V5Q3VydmUuU2VjcDI1NmsxXG4pIHtcbiAgcmV0dXJuIE9iamVjdC5mcmVlemUoXG4gICAgbmV3IFV0eG9Db2luKHtcbiAgICAgIGlkLFxuICAgICAgbmFtZSxcbiAgICAgIGZ1bGxOYW1lLFxuICAgICAgbmV0d29yayxcbiAgICAgIHByZWZpeCxcbiAgICAgIHN1ZmZpeCxcbiAgICAgIGZlYXR1cmVzLFxuICAgICAgYXNzZXQsXG4gICAgICBwcmltYXJ5S2V5Q3VydmUsXG4gICAgICBiYXNlVW5pdCxcbiAgICB9KVxuICApO1xufVxuXG5jb25zdCBCQ0hfRkVBVFVSRVMgPSBbXG4gIC4uLlV0eG9Db2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIENvaW5GZWF0dXJlLkJVTEtfVFJBTlNBQ1RJT04sXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fR0VSTUFOWSxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19ORVdfWU9SSyxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19GUkFOS0ZVUlQsXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fU0lOR0FQT1JFLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JVTEtfVFJBTlNBQ1RJT04sXG5dO1xuY29uc3QgQlRDX0ZFQVRVUkVTID0gW1xuICAuLi5VdHhvQ29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0dFUk1BTlksXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fTkVXX1lPUkssXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fRlJBTktGVVJULFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX1NJU1RFUl9UUlVTVF9PTkUsXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fS09SRUEsXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fRVVST1BFX0FQUyxcbiAgQ29pbkZlYXR1cmUuQlVMS19UUkFOU0FDVElPTixcbiAgQ29pbkZlYXR1cmUuRElTVFJJQlVURURfQ1VTVE9EWSxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19TSU5HQVBPUkUsXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fU1dJVFpFUkxBTkQsXG4gIENvaW5GZWF0dXJlLlNUVUNLX1RSQU5TQUNUSU9OX01BTkFHRU1FTlRfT05DSEFJTixcbiAgQ29pbkZlYXR1cmUuU1RBS0lORyxcbl07XG5jb25zdCBCVEdfRkVBVFVSRVMgPSBbXG4gIC4uLlV0eG9Db2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fR0VSTUFOWSxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19GUkFOS0ZVUlQsXG5dO1xuY29uc3QgTFRDX0ZFQVRVUkVTID0gW1xuICAuLi5VdHhvQ29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0dFUk1BTlksXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fTkVXX1lPUkssXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fRlJBTktGVVJULFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX1NJTkdBUE9SRSxcbiAgQ29pbkZlYXR1cmUuQlVMS19UUkFOU0FDVElPTixcbl07XG5jb25zdCBET0dFX0ZFQVRVUkVTID0gW1xuICAuLi5VdHhvQ29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0dFUk1BTlksXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fRlJBTktGVVJULFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX1NJTkdBUE9SRSxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19ORVdfWU9SSyxcbiAgQ29pbkZlYXR1cmUuQlVMS19UUkFOU0FDVElPTixcbl07XG5jb25zdCBEQVNIX0ZFQVRVUkVTID0gWy4uLlV0eG9Db2luLkRFRkFVTFRfRkVBVFVSRVMsIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fRlJBTktGVVJULCBDb2luRmVhdHVyZS5CVUxLX1RSQU5TQUNUSU9OXTtcbmNvbnN0IFREQVNIX0ZFQVRVUkVTID0gWy4uLlV0eG9Db2luLkRFRkFVTFRfRkVBVFVSRVMsIENvaW5GZWF0dXJlLkJVTEtfVFJBTlNBQ1RJT05dO1xuY29uc3QgWkVDX0ZFQVRVUkVTID0gWy4uLlV0eG9Db2luLkRFRkFVTFRfRkVBVFVSRVMsIENvaW5GZWF0dXJlLkJVTEtfVFJBTlNBQ1RJT05dO1xuZXhwb3J0IGNvbnN0IHV0eG9Db2luczogUmVhZG9ubHk8QmFzZUNvaW4+W10gPSBbXG4gIHV0eG8oXG4gICAgJzhkNmUwOGQ1LTM5OWYtNDE0Zi04NDMwLTZjZWNhMTc5OGNiZicsXG4gICAgJ2JjaCcsXG4gICAgJ0JpdGNvaW4gQ2FzaCcsXG4gICAgTmV0d29ya3MubWFpbi5iaXRjb2luQ2FzaCxcbiAgICBVbmRlcmx5aW5nQXNzZXQuQkNILFxuICAgIEJhc2VVbml0LkJUQyxcbiAgICBCQ0hfRkVBVFVSRVNcbiAgKSxcbiAgdXR4byhcbiAgICAnYWFlNmZhZmMtNTA5MS00YjEwLTlhMTEtYWE2Y2VmZWEyODA1JyxcbiAgICAndGJjaCcsXG4gICAgJ1Rlc3RuZXQgQml0Y29pbiBDYXNoJyxcbiAgICBOZXR3b3Jrcy50ZXN0LmJpdGNvaW5DYXNoLFxuICAgIFVuZGVybHlpbmdBc3NldC5CQ0gsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIEJDSF9GRUFUVVJFU1xuICApLFxuICB1dHhvKFxuICAgICc5NDE1ODdjZS0xYzdhLTQzMDUtYjkwOC0xNTQ1NWQxNWU5NjEnLFxuICAgICdiY2hhJyxcbiAgICAnRUNhc2gnLFxuICAgIE5ldHdvcmtzLm1haW4uZUNhc2gsXG4gICAgVW5kZXJseWluZ0Fzc2V0LkJDSEEsXG4gICAgQmFzZVVuaXQuQlRDXG4gICksXG4gIHV0eG8oXG4gICAgJ2FmOGRlMWUwLTNlMzMtNDdiZi05NGQzLWZiM2MyYmViZWFkMicsXG4gICAgJ3RiY2hhJyxcbiAgICAnVGVzdG5ldCBFQ2FzaCcsXG4gICAgTmV0d29ya3MudGVzdC5lQ2FzaCxcbiAgICBVbmRlcmx5aW5nQXNzZXQuQkNIQSxcbiAgICBCYXNlVW5pdC5CVENcbiAgKSxcbiAgdXR4byhcbiAgICAnZjcyOGNmYzctZDBjZi00Zjk5LWJjYTAtZDI1MjczZTY1ZmNmJyxcbiAgICAnYnN2JyxcbiAgICAnQml0Y29pbiBTVicsXG4gICAgTmV0d29ya3MubWFpbi5iaXRjb2luU1YsXG4gICAgVW5kZXJseWluZ0Fzc2V0LkJTVixcbiAgICBCYXNlVW5pdC5CVEMsXG4gICAgW0NvaW5GZWF0dXJlLkRFUFJFQ0FURUQsIC4uLlV0eG9Db2luLkRFRkFVTFRfRkVBVFVSRVNdXG4gICksXG4gIHV0eG8oXG4gICAgJzdjYjgxNTE4LTg1ZDctNDAwZi05NjBlLTdiYzAwYjNiZmE2MicsXG4gICAgJ3Ric3YnLFxuICAgICdUZXN0bmV0IEJpdGNvaW4gU1YnLFxuICAgIE5ldHdvcmtzLnRlc3QuYml0Y29pblNWLFxuICAgIFVuZGVybHlpbmdBc3NldC5CU1YsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIFtDb2luRmVhdHVyZS5ERVBSRUNBVEVELCAuLi5VdHhvQ29pbi5ERUZBVUxUX0ZFQVRVUkVTXVxuICApLFxuICB1dHhvKFxuICAgICc1YzE2OTFjNS1jOWNjLTQ5ZWQtYWJlMC1jNDMzZGFiMmVkYWEnLFxuICAgICdidGMnLFxuICAgICdCaXRjb2luJyxcbiAgICBOZXR3b3Jrcy5tYWluLmJpdGNvaW4sXG4gICAgVW5kZXJseWluZ0Fzc2V0LkJUQyxcbiAgICBCYXNlVW5pdC5CVEMsXG4gICAgQlRDX0ZFQVRVUkVTXG4gICksXG4gIHV0eG8oXG4gICAgJ2NkZTc1NTlkLWE1MzYtNGQxMi04ZGU0LTkwYmFhMDlmOTBiZCcsXG4gICAgJ3RidGMnLFxuICAgICdUZXN0bmV0IEJpdGNvaW4nLFxuICAgIE5ldHdvcmtzLnRlc3QuYml0Y29pbixcbiAgICBVbmRlcmx5aW5nQXNzZXQuQlRDLFxuICAgIEJhc2VVbml0LkJUQyxcbiAgICBCVENfRkVBVFVSRVMuZmlsdGVyKChmKSA9PiBmICE9PSBDb2luRmVhdHVyZS5TVEFLSU5HKVxuICApLFxuICB1dHhvKFxuICAgICdhMGQ1M2RjOS0yZGNjLTRlYmItYTJkNC01MTk4M2ZlMjBkYTYnLFxuICAgICd0YnRjc2lnJyxcbiAgICAnUHVibGljIFNpZ25ldCBCaXRjb2luJyxcbiAgICBOZXR3b3Jrcy50ZXN0LmJpdGNvaW5QdWJsaWNTaWduZXQsXG4gICAgVW5kZXJseWluZ0Fzc2V0LkJUQyxcbiAgICBCYXNlVW5pdC5CVEMsXG4gICAgQlRDX0ZFQVRVUkVTXG4gICksXG4gIHV0eG8oXG4gICAgJ2Y3NmNlYzNmLTdhZWYtNDczZC1hZjVkLTRjNDdkZDQwZGZhOCcsXG4gICAgJ3RidGM0JyxcbiAgICAnVGVzdG5ldDQgQml0Y29pbicsXG4gICAgTmV0d29ya3MudGVzdC5iaXRjb2luVGVzdG5ldDQsXG4gICAgVW5kZXJseWluZ0Fzc2V0LkJUQyxcbiAgICBCYXNlVW5pdC5CVEMsXG4gICAgQlRDX0ZFQVRVUkVTXG4gICksXG4gIHV0eG8oXG4gICAgJzcyMjUyMmRjLWE2MTMtNGJmZi1hMWQxLTE4M2ViZTUxMzhhZScsXG4gICAgJ3RidGNiZ3NpZycsXG4gICAgJ0JpdEdvIFNpZ25ldCBCaXRjb2luJyxcbiAgICBOZXR3b3Jrcy50ZXN0LmJpdGNvaW5CaXRHb1NpZ25ldCxcbiAgICBVbmRlcmx5aW5nQXNzZXQuQlRDLFxuICAgIEJhc2VVbml0LkJUQyxcbiAgICBCVENfRkVBVFVSRVNcbiAgKSxcbiAgdXR4byhcbiAgICAnOGZlYjExMGQtMGQ2OC00NGNlLWFlOTctYjhjMzBlYzg3MGE5JyxcbiAgICAnYnRnJyxcbiAgICAnQml0Y29pbiBHb2xkJyxcbiAgICBOZXR3b3Jrcy5tYWluLmJpdGNvaW5Hb2xkLFxuICAgIFVuZGVybHlpbmdBc3NldC5CVEcsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIEJUR19GRUFUVVJFU1xuICApLFxuICB1dHhvKFxuICAgICc2MzMyNDZmMi1hZjIxLTQxYjgtOGI5ZS1iYTlhZTI1ZDM4NmYnLFxuICAgICd0YnRnJyxcbiAgICAnVGVzdG5ldCBCaXRjb2luIEdvbGQnLFxuICAgIE5ldHdvcmtzLnRlc3QuYml0Y29pbkdvbGQsXG4gICAgVW5kZXJseWluZ0Fzc2V0LkJURyxcbiAgICBCYXNlVW5pdC5CVEMsXG4gICAgQlRHX0ZFQVRVUkVTLmZpbHRlcigoZikgPT4gZiAhPT0gQ29pbkZlYXR1cmUuTVVMVElTSUdfQ09MRClcbiAgKSxcbiAgdXR4byhcbiAgICAnOWM4MDk3ZjEtNWQyYy00YTYyLWE5NGMtOTZjMjcxYzBlNWUwJyxcbiAgICAnbHRjJyxcbiAgICAnTGl0ZWNvaW4nLFxuICAgIE5ldHdvcmtzLm1haW4ubGl0ZWNvaW4sXG4gICAgVW5kZXJseWluZ0Fzc2V0LkxUQyxcbiAgICBCYXNlVW5pdC5MVEMsXG4gICAgTFRDX0ZFQVRVUkVTXG4gICksXG4gIHV0eG8oXG4gICAgJzFhY2EzMmM4LWEzZTUtNDJlYi04MmRmLTRjMjYzZDhiZmM2OCcsXG4gICAgJ3RsdGMnLFxuICAgICdUZXN0bmV0IExpdGVjb2luJyxcbiAgICBOZXR3b3Jrcy50ZXN0LmxpdGVjb2luLFxuICAgIFVuZGVybHlpbmdBc3NldC5MVEMsXG4gICAgQmFzZVVuaXQuTFRDLFxuICAgIExUQ19GRUFUVVJFU1xuICApLFxuICB1dHhvKFxuICAgICcwNzM5YmU2YS1jNzJlLTQ2OGQtOTQ2NC1jYTU2MDE5NjU3MDgnLFxuICAgICdkYXNoJyxcbiAgICAnRGFzaCcsXG4gICAgTmV0d29ya3MubWFpbi5kYXNoLFxuICAgIFVuZGVybHlpbmdBc3NldC5EQVNILFxuICAgIEJhc2VVbml0LkRBU0gsXG4gICAgREFTSF9GRUFUVVJFUy5maWx0ZXIoXG4gICAgICAoZmVhdHVyZSkgPT5cbiAgICAgICAgIVtcbiAgICAgICAgICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX1NJTkdBUE9SRSxcbiAgICAgICAgICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0NVU1RPRFlfTUVOQV9GWkUsXG4gICAgICAgICAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19NRU5BX0ZaRSxcbiAgICAgICAgXS5pbmNsdWRlcyhmZWF0dXJlKVxuICAgIClcbiAgKSxcbiAgdXR4byhcbiAgICAnNTk1MGQ3OGYtZThkZC00NTdhLWFiNWQtMzEwZTZiNDc2YmIxJyxcbiAgICAndGRhc2gnLFxuICAgICdUZXN0bmV0IERhc2gnLFxuICAgIE5ldHdvcmtzLnRlc3QuZGFzaCxcbiAgICBVbmRlcmx5aW5nQXNzZXQuREFTSCxcbiAgICBCYXNlVW5pdC5EQVNILFxuICAgIFREQVNIX0ZFQVRVUkVTXG4gICksXG4gIHV0eG8oXG4gICAgJzUwOGY2YjUzLTFlNmUtNDFmZC1iNTQxLWIyNDk4YjdjNGI2MScsXG4gICAgJ3plYycsXG4gICAgJ1pDYXNoJyxcbiAgICBOZXR3b3Jrcy5tYWluLnpDYXNoLFxuICAgIFVuZGVybHlpbmdBc3NldC5aRUMsXG4gICAgQmFzZVVuaXQuWkVDLFxuICAgIFpFQ19GRUFUVVJFU1xuICApLFxuICB1dHhvKFxuICAgICc1NDlhNDQ5OS0zODdjLTQyZDMtOTA0OC1jMDFkNjcyNGQ5OGEnLFxuICAgICd0emVjJyxcbiAgICAnVGVzdG5ldCBaQ2FzaCcsXG4gICAgTmV0d29ya3MudGVzdC56Q2FzaCxcbiAgICBVbmRlcmx5aW5nQXNzZXQuWkVDLFxuICAgIEJhc2VVbml0LlpFQyxcbiAgICBaRUNfRkVBVFVSRVNcbiAgKSxcbiAgdXR4byhcbiAgICAnYzkzYTkxNjAtNDU4Zi00YTMxLWJlYTAtNGE5M2FlOGIxZDJkJyxcbiAgICAnZG9nZScsXG4gICAgJ0RvZ2Vjb2luJyxcbiAgICBOZXR3b3Jrcy5tYWluLmRvZ2Vjb2luLFxuICAgIFVuZGVybHlpbmdBc3NldC5ET0dFLFxuICAgIEJhc2VVbml0LkJUQyxcbiAgICBET0dFX0ZFQVRVUkVTXG4gICksXG4gIHV0eG8oXG4gICAgJzdhMTU5N2U4LWZkOGUtNGI2OC04MDg2LWY5MTU5ZTM3ZTBjZScsXG4gICAgJ3Rkb2dlJyxcbiAgICAnVGVzdG5ldCBEb2dlY29pbicsXG4gICAgTmV0d29ya3MudGVzdC5kb2dlY29pbixcbiAgICBVbmRlcmx5aW5nQXNzZXQuRE9HRSxcbiAgICBCYXNlVW5pdC5CVEMsXG4gICAgRE9HRV9GRUFUVVJFU1xuICApLFxuXTtcbiJdfQ==