@bitgo-beta/statics 10.0.1-alpha.506 → 10.0.1-alpha.507

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.
@@ -6,9 +6,11 @@
6
6
  * decryption via the Zama Gateway before they can be displayed.
7
7
  *
8
8
  * Mainnet contract addresses are TBD pending Zama fhEVM mainnet launch.
9
- * Testnet tokens (hteth:*) are deployed on the BitGo-supported ETH testnet (Hoodi).
9
+ * Testnet tokens (hteth:*) are deployed on Hoodi using Zama's cleartext FHE stack.
10
+ * Hoodi ACL: 0x6D3FAf6f86e1fF9F3B0831Dda920AbA1cBd5bd68 (Networks.test.hoodi.zamaAclContractAddress)
11
+ * Hoodi RPC: https://rpc.hoodi.ethpandaops.io (chain ID 560048)
10
12
  *
11
- * Sandbox development contracts (Sepolia):
13
+ * Sandbox development contracts (Sepolia, real FHE stack):
12
14
  * CTKN: 0x94167129172A35ab093B44b8b96213DDbc3cD387
13
15
  * cUSDT: 0x4E7B06D78965594eB5EF5414c357ca21E1554491
14
16
  */
@@ -1 +1 @@
1
- {"version":3,"file":"erc7984Tokens.d.ts","sourceRoot":"","sources":["../../../src/coins/erc7984Tokens.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,8CAqCzB,CAAC"}
1
+ {"version":3,"file":"erc7984Tokens.d.ts","sourceRoot":"","sources":["../../../src/coins/erc7984Tokens.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,aAAa,8CAoCzB,CAAC"}
@@ -11,9 +11,11 @@ const base_1 = require("../base");
11
11
  * decryption via the Zama Gateway before they can be displayed.
12
12
  *
13
13
  * Mainnet contract addresses are TBD pending Zama fhEVM mainnet launch.
14
- * Testnet tokens (hteth:*) are deployed on the BitGo-supported ETH testnet (Hoodi).
14
+ * Testnet tokens (hteth:*) are deployed on Hoodi using Zama's cleartext FHE stack.
15
+ * Hoodi ACL: 0x6D3FAf6f86e1fF9F3B0831Dda920AbA1cBd5bd68 (Networks.test.hoodi.zamaAclContractAddress)
16
+ * Hoodi RPC: https://rpc.hoodi.ethpandaops.io (chain ID 560048)
15
17
  *
16
- * Sandbox development contracts (Sepolia):
18
+ * Sandbox development contracts (Sepolia, real FHE stack):
17
19
  * CTKN: 0x94167129172A35ab093B44b8b96213DDbc3cD387
18
20
  * cUSDT: 0x4E7B06D78965594eB5EF5414c357ca21E1554491
19
21
  */
@@ -23,11 +25,8 @@ exports.erc7984Tokens = [
23
25
  base_1.UnderlyingAsset['eth:ctkn']),
24
26
  (0, account_1.erc7984)('f47ac10b-58cc-4372-a567-0e02b2c3d480', 'eth:cusdt', 'Confidential USDT', 6, '0x0000000000000000000000000000000000000000', // TODO: update with mainnet contract address
25
27
  base_1.UnderlyingAsset['eth:cusdt']),
26
- // Testnet tokens (hteth / Hoodi)
27
- // Note: sandbox development contracts are on Ethereum Sepolia; deploy to Hoodi for BitGo testnet support
28
- (0, account_1.terc7984)('f47ac10b-58cc-4372-a567-0e02b2c3d481', 'hteth:ctkn', 'Confidential Test Token', 6, '0x0000000000000000000000000000000000000000', // TODO: deploy to Hoodi and update address (Sepolia dev: 0x94167129172A35ab093B44b8b96213DDbc3cD387)
29
- base_1.UnderlyingAsset['hteth:ctkn']),
30
- (0, account_1.terc7984)('f47ac10b-58cc-4372-a567-0e02b2c3d482', 'hteth:cusdt', 'Confidential USDT', 6, '0x0000000000000000000000000000000000000000', // TODO: deploy to Hoodi and update address (Sepolia dev: 0x4E7B06D78965594eB5EF5414c357ca21E1554491)
31
- base_1.UnderlyingAsset['hteth:cusdt']),
28
+ // Testnet tokens (hteth / Hoodi) — Zama cleartext FHE stack (chain ID 560048)
29
+ (0, account_1.terc7984)('f47ac10b-58cc-4372-a567-0e02b2c3d481', 'hteth:ctest1', 'Confidential Token Test 1', 6, '0x7b1d59bbcd291daa59cb6c8c5bc04de1afc4aba1', base_1.UnderlyingAsset['hteth:ctest1']),
30
+ (0, account_1.terc7984)('f47ac10b-58cc-4372-a567-0e02b2c3d482', 'hteth:cusdt', 'Confidential USDT', 6, '0x2debbe0487ef921df4457f9e36ed05be2df1ac75', base_1.UnderlyingAsset['hteth:cusdt']),
32
31
  ];
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJjNzk4NFRva2Vucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2lucy9lcmM3OTg0VG9rZW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHdDQUErQztBQUMvQyxrQ0FBMEM7QUFFMUM7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNVLFFBQUEsYUFBYSxHQUFHO0lBQzNCLDRFQUE0RTtJQUM1RSxJQUFBLGlCQUFPLEVBQ0wsc0NBQXNDLEVBQ3RDLFVBQVUsRUFDVix5QkFBeUIsRUFDekIsQ0FBQyxFQUNELDRDQUE0QyxFQUFFLDZDQUE2QztJQUMzRixzQkFBZSxDQUFDLFVBQVUsQ0FBQyxDQUM1QjtJQUNELElBQUEsaUJBQU8sRUFDTCxzQ0FBc0MsRUFDdEMsV0FBVyxFQUNYLG1CQUFtQixFQUNuQixDQUFDLEVBQ0QsNENBQTRDLEVBQUUsNkNBQTZDO0lBQzNGLHNCQUFlLENBQUMsV0FBVyxDQUFDLENBQzdCO0lBRUQsaUNBQWlDO0lBQ2pDLHlHQUF5RztJQUN6RyxJQUFBLGtCQUFRLEVBQ04sc0NBQXNDLEVBQ3RDLFlBQVksRUFDWix5QkFBeUIsRUFDekIsQ0FBQyxFQUNELDRDQUE0QyxFQUFFLHFHQUFxRztJQUNuSixzQkFBZSxDQUFDLFlBQVksQ0FBQyxDQUM5QjtJQUNELElBQUEsa0JBQVEsRUFDTixzQ0FBc0MsRUFDdEMsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixDQUFDLEVBQ0QsNENBQTRDLEVBQUUscUdBQXFHO0lBQ25KLHNCQUFlLENBQUMsYUFBYSxDQUFDLENBQy9CO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVyYzc5ODQsIHRlcmM3OTg0IH0gZnJvbSAnLi4vYWNjb3VudCc7XG5pbXBvcnQgeyBVbmRlcmx5aW5nQXNzZXQgfSBmcm9tICcuLi9iYXNlJztcblxuLyoqXG4gKiBFUkMtNzk4NCBjb25maWRlbnRpYWwgdG9rZW5zIChaYW1hIGZoRVZNKS5cbiAqXG4gKiBUaGVzZSB0b2tlbnMgdXNlIGZ1bGx5IGhvbW9tb3JwaGljIGVuY3J5cHRpb24gKEZIRSkgZm9yIG9uLWNoYWluIGNvbmZpZGVudGlhbCB0cmFuc2ZlcnMuXG4gKiBCYWxhbmNlcyBhcmUgc3RvcmVkIGFzIGVuY3J5cHRlZCBjaXBoZXJ0ZXh0czsgcGxhaW50ZXh0IGFtb3VudHMgcmVxdWlyZSBBQ0wtZGVsZWdhdGVkXG4gKiBkZWNyeXB0aW9uIHZpYSB0aGUgWmFtYSBHYXRld2F5IGJlZm9yZSB0aGV5IGNhbiBiZSBkaXNwbGF5ZWQuXG4gKlxuICogTWFpbm5ldCBjb250cmFjdCBhZGRyZXNzZXMgYXJlIFRCRCBwZW5kaW5nIFphbWEgZmhFVk0gbWFpbm5ldCBsYXVuY2guXG4gKiBUZXN0bmV0IHRva2VucyAoaHRldGg6KikgYXJlIGRlcGxveWVkIG9uIHRoZSBCaXRHby1zdXBwb3J0ZWQgRVRIIHRlc3RuZXQgKEhvb2RpKS5cbiAqXG4gKiBTYW5kYm94IGRldmVsb3BtZW50IGNvbnRyYWN0cyAoU2Vwb2xpYSk6XG4gKiAgIENUS046ICAweDk0MTY3MTI5MTcyQTM1YWIwOTNCNDRiOGI5NjIxM0REYmMzY0QzODdcbiAqICAgY1VTRFQ6IDB4NEU3QjA2RDc4OTY1NTk0ZUI1RUY1NDE0YzM1N2NhMjFFMTU1NDQ5MVxuICovXG5leHBvcnQgY29uc3QgZXJjNzk4NFRva2VucyA9IFtcbiAgLy8gTWFpbm5ldCB0b2tlbnMgKGNvbnRyYWN0IGFkZHJlc3NlcyBUQkQgcGVuZGluZyBaYW1hIGZoRVZNIG1haW5uZXQgbGF1bmNoKVxuICBlcmM3OTg0KFxuICAgICdmNDdhYzEwYi01OGNjLTQzNzItYTU2Ny0wZTAyYjJjM2Q0NzknLFxuICAgICdldGg6Y3RrbicsXG4gICAgJ0NvbmZpZGVudGlhbCBUZXN0IFRva2VuJyxcbiAgICA2LFxuICAgICcweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnLCAvLyBUT0RPOiB1cGRhdGUgd2l0aCBtYWlubmV0IGNvbnRyYWN0IGFkZHJlc3NcbiAgICBVbmRlcmx5aW5nQXNzZXRbJ2V0aDpjdGtuJ11cbiAgKSxcbiAgZXJjNzk4NChcbiAgICAnZjQ3YWMxMGItNThjYy00MzcyLWE1NjctMGUwMmIyYzNkNDgwJyxcbiAgICAnZXRoOmN1c2R0JyxcbiAgICAnQ29uZmlkZW50aWFsIFVTRFQnLFxuICAgIDYsXG4gICAgJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcsIC8vIFRPRE86IHVwZGF0ZSB3aXRoIG1haW5uZXQgY29udHJhY3QgYWRkcmVzc1xuICAgIFVuZGVybHlpbmdBc3NldFsnZXRoOmN1c2R0J11cbiAgKSxcblxuICAvLyBUZXN0bmV0IHRva2VucyAoaHRldGggLyBIb29kaSlcbiAgLy8gTm90ZTogc2FuZGJveCBkZXZlbG9wbWVudCBjb250cmFjdHMgYXJlIG9uIEV0aGVyZXVtIFNlcG9saWE7IGRlcGxveSB0byBIb29kaSBmb3IgQml0R28gdGVzdG5ldCBzdXBwb3J0XG4gIHRlcmM3OTg0KFxuICAgICdmNDdhYzEwYi01OGNjLTQzNzItYTU2Ny0wZTAyYjJjM2Q0ODEnLFxuICAgICdodGV0aDpjdGtuJyxcbiAgICAnQ29uZmlkZW50aWFsIFRlc3QgVG9rZW4nLFxuICAgIDYsXG4gICAgJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcsIC8vIFRPRE86IGRlcGxveSB0byBIb29kaSBhbmQgdXBkYXRlIGFkZHJlc3MgKFNlcG9saWEgZGV2OiAweDk0MTY3MTI5MTcyQTM1YWIwOTNCNDRiOGI5NjIxM0REYmMzY0QzODcpXG4gICAgVW5kZXJseWluZ0Fzc2V0WydodGV0aDpjdGtuJ11cbiAgKSxcbiAgdGVyYzc5ODQoXG4gICAgJ2Y0N2FjMTBiLTU4Y2MtNDM3Mi1hNTY3LTBlMDJiMmMzZDQ4MicsXG4gICAgJ2h0ZXRoOmN1c2R0JyxcbiAgICAnQ29uZmlkZW50aWFsIFVTRFQnLFxuICAgIDYsXG4gICAgJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcsIC8vIFRPRE86IGRlcGxveSB0byBIb29kaSBhbmQgdXBkYXRlIGFkZHJlc3MgKFNlcG9saWEgZGV2OiAweDRFN0IwNkQ3ODk2NTU5NGVCNUVGNTQxNGMzNTdjYTIxRTE1NTQ0OTEpXG4gICAgVW5kZXJseWluZ0Fzc2V0WydodGV0aDpjdXNkdCddXG4gICksXG5dO1xuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJjNzk4NFRva2Vucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2lucy9lcmM3OTg0VG9rZW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHdDQUErQztBQUMvQyxrQ0FBMEM7QUFFMUM7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ1UsUUFBQSxhQUFhLEdBQUc7SUFDM0IsNEVBQTRFO0lBQzVFLElBQUEsaUJBQU8sRUFDTCxzQ0FBc0MsRUFDdEMsVUFBVSxFQUNWLHlCQUF5QixFQUN6QixDQUFDLEVBQ0QsNENBQTRDLEVBQUUsNkNBQTZDO0lBQzNGLHNCQUFlLENBQUMsVUFBVSxDQUFDLENBQzVCO0lBQ0QsSUFBQSxpQkFBTyxFQUNMLHNDQUFzQyxFQUN0QyxXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLENBQUMsRUFDRCw0Q0FBNEMsRUFBRSw2Q0FBNkM7SUFDM0Ysc0JBQWUsQ0FBQyxXQUFXLENBQUMsQ0FDN0I7SUFFRCw4RUFBOEU7SUFDOUUsSUFBQSxrQkFBUSxFQUNOLHNDQUFzQyxFQUN0QyxjQUFjLEVBQ2QsMkJBQTJCLEVBQzNCLENBQUMsRUFDRCw0Q0FBNEMsRUFDNUMsc0JBQWUsQ0FBQyxjQUFjLENBQUMsQ0FDaEM7SUFDRCxJQUFBLGtCQUFRLEVBQ04sc0NBQXNDLEVBQ3RDLGFBQWEsRUFDYixtQkFBbUIsRUFDbkIsQ0FBQyxFQUNELDRDQUE0QyxFQUM1QyxzQkFBZSxDQUFDLGFBQWEsQ0FBQyxDQUMvQjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlcmM3OTg0LCB0ZXJjNzk4NCB9IGZyb20gJy4uL2FjY291bnQnO1xuaW1wb3J0IHsgVW5kZXJseWluZ0Fzc2V0IH0gZnJvbSAnLi4vYmFzZSc7XG5cbi8qKlxuICogRVJDLTc5ODQgY29uZmlkZW50aWFsIHRva2VucyAoWmFtYSBmaEVWTSkuXG4gKlxuICogVGhlc2UgdG9rZW5zIHVzZSBmdWxseSBob21vbW9ycGhpYyBlbmNyeXB0aW9uIChGSEUpIGZvciBvbi1jaGFpbiBjb25maWRlbnRpYWwgdHJhbnNmZXJzLlxuICogQmFsYW5jZXMgYXJlIHN0b3JlZCBhcyBlbmNyeXB0ZWQgY2lwaGVydGV4dHM7IHBsYWludGV4dCBhbW91bnRzIHJlcXVpcmUgQUNMLWRlbGVnYXRlZFxuICogZGVjcnlwdGlvbiB2aWEgdGhlIFphbWEgR2F0ZXdheSBiZWZvcmUgdGhleSBjYW4gYmUgZGlzcGxheWVkLlxuICpcbiAqIE1haW5uZXQgY29udHJhY3QgYWRkcmVzc2VzIGFyZSBUQkQgcGVuZGluZyBaYW1hIGZoRVZNIG1haW5uZXQgbGF1bmNoLlxuICogVGVzdG5ldCB0b2tlbnMgKGh0ZXRoOiopIGFyZSBkZXBsb3llZCBvbiBIb29kaSB1c2luZyBaYW1hJ3MgY2xlYXJ0ZXh0IEZIRSBzdGFjay5cbiAqICAgSG9vZGkgQUNMOiAweDZEM0ZBZjZmODZlMWZGOUYzQjA4MzFEZGE5MjBBYkExY0JkNWJkNjggIChOZXR3b3Jrcy50ZXN0Lmhvb2RpLnphbWFBY2xDb250cmFjdEFkZHJlc3MpXG4gKiAgIEhvb2RpIFJQQzogaHR0cHM6Ly9ycGMuaG9vZGkuZXRocGFuZGFvcHMuaW8gIChjaGFpbiBJRCA1NjAwNDgpXG4gKlxuICogU2FuZGJveCBkZXZlbG9wbWVudCBjb250cmFjdHMgKFNlcG9saWEsIHJlYWwgRkhFIHN0YWNrKTpcbiAqICAgQ1RLTjogIDB4OTQxNjcxMjkxNzJBMzVhYjA5M0I0NGI4Yjk2MjEzRERiYzNjRDM4N1xuICogICBjVVNEVDogMHg0RTdCMDZENzg5NjU1OTRlQjVFRjU0MTRjMzU3Y2EyMUUxNTU0NDkxXG4gKi9cbmV4cG9ydCBjb25zdCBlcmM3OTg0VG9rZW5zID0gW1xuICAvLyBNYWlubmV0IHRva2VucyAoY29udHJhY3QgYWRkcmVzc2VzIFRCRCBwZW5kaW5nIFphbWEgZmhFVk0gbWFpbm5ldCBsYXVuY2gpXG4gIGVyYzc5ODQoXG4gICAgJ2Y0N2FjMTBiLTU4Y2MtNDM3Mi1hNTY3LTBlMDJiMmMzZDQ3OScsXG4gICAgJ2V0aDpjdGtuJyxcbiAgICAnQ29uZmlkZW50aWFsIFRlc3QgVG9rZW4nLFxuICAgIDYsXG4gICAgJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcsIC8vIFRPRE86IHVwZGF0ZSB3aXRoIG1haW5uZXQgY29udHJhY3QgYWRkcmVzc1xuICAgIFVuZGVybHlpbmdBc3NldFsnZXRoOmN0a24nXVxuICApLFxuICBlcmM3OTg0KFxuICAgICdmNDdhYzEwYi01OGNjLTQzNzItYTU2Ny0wZTAyYjJjM2Q0ODAnLFxuICAgICdldGg6Y3VzZHQnLFxuICAgICdDb25maWRlbnRpYWwgVVNEVCcsXG4gICAgNixcbiAgICAnMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJywgLy8gVE9ETzogdXBkYXRlIHdpdGggbWFpbm5ldCBjb250cmFjdCBhZGRyZXNzXG4gICAgVW5kZXJseWluZ0Fzc2V0WydldGg6Y3VzZHQnXVxuICApLFxuXG4gIC8vIFRlc3RuZXQgdG9rZW5zIChodGV0aCAvIEhvb2RpKSDigJQgWmFtYSBjbGVhcnRleHQgRkhFIHN0YWNrIChjaGFpbiBJRCA1NjAwNDgpXG4gIHRlcmM3OTg0KFxuICAgICdmNDdhYzEwYi01OGNjLTQzNzItYTU2Ny0wZTAyYjJjM2Q0ODEnLFxuICAgICdodGV0aDpjdGVzdDEnLFxuICAgICdDb25maWRlbnRpYWwgVG9rZW4gVGVzdCAxJyxcbiAgICA2LFxuICAgICcweDdiMWQ1OWJiY2QyOTFkYWE1OWNiNmM4YzViYzA0ZGUxYWZjNGFiYTEnLFxuICAgIFVuZGVybHlpbmdBc3NldFsnaHRldGg6Y3Rlc3QxJ11cbiAgKSxcbiAgdGVyYzc5ODQoXG4gICAgJ2Y0N2FjMTBiLTU4Y2MtNDM3Mi1hNTY3LTBlMDJiMmMzZDQ4MicsXG4gICAgJ2h0ZXRoOmN1c2R0JyxcbiAgICAnQ29uZmlkZW50aWFsIFVTRFQnLFxuICAgIDYsXG4gICAgJzB4MmRlYmJlMDQ4N2VmOTIxZGY0NDU3ZjllMzZlZDA1YmUyZGYxYWM3NScsXG4gICAgVW5kZXJseWluZ0Fzc2V0WydodGV0aDpjdXNkdCddXG4gICksXG5dO1xuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"coins.d.ts","sourceRoot":"","sources":["../../src/coins.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAE,QAAQ,EAA4B,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAQhC,eAAO,MAAM,KAAK,SAMhB,CAAC;AA2BH,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,CAySjF;AA6DD,wBAAgB,sBAAsB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAElH;AAED,wBAAgB,gCAAgC,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,GAAG,OAAO,CA8C1G;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAC,EACrD,WAAW,EAAE,mBAAmB,GAC/B,MAAM,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAczC;AAED,wBAAgB,uCAAuC,CACrD,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAC,GAC7D,OAAO,CA4BT;AAED,wBAAgB,oCAAoC,CAClD,WAAW,EAAE,qBAAqB,GACjC,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,CAwBhC"}
1
+ {"version":3,"file":"coins.d.ts","sourceRoot":"","sources":["../../src/coins.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAE,QAAQ,EAA4B,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAQhC,eAAO,MAAM,KAAK,SAMhB,CAAC;AA2BH,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,CAySjF;AA6DD,wBAAgB,sBAAsB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAElH;AAED,wBAAgB,gCAAgC,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,GAAG,OAAO,CAuD1G;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAC,EACrD,WAAW,EAAE,mBAAmB,GAC/B,MAAM,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAczC;AAED,wBAAgB,uCAAuC,CACrD,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAC,GAC7D,OAAO,CA6BT;AAED,wBAAgB,oCAAoC,CAClD,WAAW,EAAE,qBAAqB,GACjC,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,CAwBhC"}
package/dist/src/coins.js CHANGED
@@ -367,11 +367,18 @@ function createTokenMapUsingConfigDetails(tokenConfigMap) {
367
367
  });
368
368
  // add the tokens not present in the static coin map
369
369
  for (const tokenConfigs of Object.values(tokenConfigMap)) {
370
+ if (!tokenConfigs.length)
371
+ continue;
370
372
  const tokenConfig = tokenConfigs[0];
371
373
  if (!isCoinPresentInCoinMap({ ...tokenConfig }) && !nftAndOtherTokens.has(tokenConfig.name)) {
372
- const token = createToken(tokenConfig);
373
- if (token) {
374
- BaseCoins.set(token.name, token);
374
+ try {
375
+ const token = createToken(tokenConfig);
376
+ if (token) {
377
+ BaseCoins.set(token.name, token);
378
+ }
379
+ }
380
+ catch (e) {
381
+ console.warn(`Skipping malformed token: name="${tokenConfig.name}" id="${tokenConfig.id}" family="${tokenConfig.family}" error=${e.message}`);
375
382
  }
376
383
  }
377
384
  }
@@ -403,6 +410,8 @@ function createTokenMapUsingTrimmedConfigDetails(reducedTokenConfigMap) {
403
410
  const amsTokenConfigMap = {};
404
411
  const networkNameMap = (0, networks_1.getNetworksMap)();
405
412
  for (const tokenConfigs of Object.values(reducedTokenConfigMap)) {
413
+ if (!tokenConfigs.length)
414
+ continue;
406
415
  const tokenConfig = tokenConfigs[0];
407
416
  const network = networkNameMap.get(tokenConfig.network.name);
408
417
  if (isCoinPresentInCoinMap({ ...tokenConfig }))
@@ -449,4 +458,4 @@ function createTokenUsingTrimmedConfigDetails(tokenConfig) {
449
458
  return createToken(fullTokenConfig);
450
459
  }
451
460
  }
452
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29pbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMkVBLGtDQXlTQztBQTZERCx3REFFQztBQUVELDRFQThDQztBQVlELDBEQWlCQztBQUVELDBGQThCQztBQUVELG9GQTBCQztBQTVqQkQsdUNBOEJtQjtBQUNuQiwrQkFBaUM7QUFDakMsaUNBQTREO0FBRTVELCtCQUFnQztBQUNoQyx5Q0FBa0Y7QUFDbEYsNkVBQWtFO0FBQ2xFLHlEQUFzRTtBQUN0RSwrQ0FBNEM7QUFDNUMsMkRBQXdEO0FBQ3hELHVEQUFvRDtBQUV2QyxRQUFBLEtBQUssR0FBRyxhQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3JDLEdBQUcscUNBQWlCO0lBQ3BCLEdBQUcsNkJBQWE7SUFDaEIsR0FBRyw4QkFBYztJQUNqQixHQUFHLG1CQUFRO0lBQ1gsR0FBRywyQkFBWTtDQUNoQixDQUFDLENBQUM7QUFFSCxpRkFBaUY7QUFDakYsZ0RBQWdEO0FBQ2hELE1BQU0sbUJBQW1CLEdBQTJCLEVBQUUsQ0FBQztBQUV2RCxxQ0FBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtJQUNqQyxJQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGtCQUFXLENBQUMsY0FBYyxDQUFDO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTztRQUN6QyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQ2IsQ0FBQztRQUNELG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQy9DLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQztBQUVILE1BQU0sb0JBQW9CLEdBQTJCLEVBQUUsQ0FBQztBQUN4RCxxQ0FBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtJQUNqQyxJQUNFLElBQUks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aEcsT0FBTyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdEMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhbGdvVG9rZW4sXG4gIGFwdE5GVENvbGxlY3Rpb24sXG4gIGFwdFRva2VuLFxuICBhcmJldGhFcmMyMCxcbiAgYXZheEVyYzIwLFxuICBiZXJhRXJjMjAsXG4gIGJzY1Rva2VuLFxuICBjZWxvVG9rZW4sXG4gIGNvc21vc1Rva2VuLFxuICBlb3NUb2tlbixcbiAgZXJjMjAsXG4gIGhlZGVyYVRva2VuLFxuICBqZXR0b25Ub2tlbixcbiAgbmVwMTQxVG9rZW4sXG4gIG9wZXRoRXJjMjAsXG4gIHBvbHlnb25FcmMyMCxcbiAgcG9seXhUb2tlbixcbiAgc2lwMTBUb2tlbixcbiAgc29sVG9rZW4sXG4gIHN0ZWxsYXJUb2tlbixcbiAgc3VpVG9rZW4sXG4gIHRhb1Rva2VuLFxuICB0cm9uVG9rZW4sXG4gIHZldE5GVENvbGxlY3Rpb24sXG4gIHZldFRva2VuLFxuICB4cnBUb2tlbixcbiAgYWRhVG9rZW4sXG4gIGVyYzIwVG9rZW4sXG4gIGVyYzcyMVRva2VuLFxufSBmcm9tICcuL2FjY291bnQnO1xuaW1wb3J0IHsgb2ZjVG9rZW4gfSBmcm9tICcuL29mYyc7XG5pbXBvcnQgeyBCYXNlQ29pbiwgQ29pbkZlYXR1cmUsIER5bmFtaWNDb2luIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEFtc05ldHdvcmtDb25maWdNYXAsIEFtc1Rva2VuQ29uZmlnLCBUcmltbWVkQW1zVG9rZW5Db25maWcgfSBmcm9tICcuL3Rva2VuQ29uZmlnJztcbmltcG9ydCB7IENvaW5NYXAgfSBmcm9tICcuL21hcCc7XG5pbXBvcnQgeyBCYXNlTmV0d29yaywgZ2V0TmV0d29yaywgZ2V0TmV0d29ya3NNYXAsIE5ldHdvcmtUeXBlIH0gZnJvbSAnLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBnZXROZXR3b3JrRmVhdHVyZXMgfSBmcm9tICcuL25ldHdvcmtGZWF0dXJlTWFwRm9yVG9rZW5zJztcbmltcG9ydCB7IG9mY0VyYzIwQ29pbnMsIHRPZmNFcmMyMENvaW5zIH0gZnJvbSAnLi9jb2lucy9vZmNFcmMyMENvaW5zJztcbmltcG9ydCB7IG9mY0NvaW5zIH0gZnJvbSAnLi9jb2lucy9vZmNDb2lucyc7XG5pbXBvcnQgeyBhbGxDb2luc0FuZFRva2VucyB9IGZyb20gJy4vYWxsQ29pbnNBbmRUb2tlbnMnO1xuaW1wb3J0IHsgYm90T2ZjVG9rZW5zIH0gZnJvbSAnLi9jb2lucy9ib3RPZmNUb2tlbnMnO1xuXG5leHBvcnQgY29uc3QgY29pbnMgPSBDb2luTWFwLmZyb21Db2lucyhbXG4gIC4uLmFsbENvaW5zQW5kVG9rZW5zLFxuICAuLi5vZmNFcmMyMENvaW5zLFxuICAuLi50T2ZjRXJjMjBDb2lucyxcbiAgLi4ub2ZjQ29pbnMsXG4gIC4uLmJvdE9mY1Rva2Vucyxcbl0pO1xuXG4vLyBCdWlsZCBhIG1hcCBvZiBFUkMyMC1zdXBwb3J0aW5nIGNoYWluIGZhbWlseSBuYW1lcyB0byB0aGVpciBtYWlubmV0IGNvaW4gbmFtZXNcbi8vIE1hcHMgZmFtaWx5IC0+IGNvaW4gbmFtZSAoZS5nLiwgJ2lwJyAtPiAnaXAnKVxuY29uc3QgZXJjMjBDaGFpblRvTmFtZU1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG5hbGxDb2luc0FuZFRva2Vucy5mb3JFYWNoKChjb2luKSA9PiB7XG4gIGlmIChcbiAgICBjb2luLmZlYXR1cmVzLmluY2x1ZGVzKENvaW5GZWF0dXJlLlNVUFBPUlRTX0VSQzIwKSAmJlxuICAgIGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUICYmXG4gICAgIWNvaW4uaXNUb2tlblxuICApIHtcbiAgICBlcmMyMENoYWluVG9OYW1lTWFwW2NvaW4uZmFtaWx5XSA9IGNvaW4ubmFtZTtcbiAgfVxufSk7XG5cbmNvbnN0IGVyYzcyMUNoYWluVG9OYW1lTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5hbGxDb2luc0FuZFRva2Vucy5mb3JFYWNoKChjb2luKSA9PiB7XG4gIGlmIChcbiAgICBjb2luLmZlYXR1cmVzLmluY2x1ZGVzKENvaW5GZWF0dXJlLlNVUFBPUlRTX0VSQzcyMSkgJiZcbiAgICBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCAmJlxuICAgICFjb2luLmlzVG9rZW5cbiAgKSB7XG4gICAgZXJjNzIxQ2hhaW5Ub05hbWVNYXBbY29pbi5mYW1pbHldID0gY29pbi5uYW1lO1xuICB9XG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRva2VuKHRva2VuOiBBbXNUb2tlbkNvbmZpZyk6IFJlYWRvbmx5PEJhc2VDb2luPiB8IHVuZGVmaW5lZCB7XG4gIGlmICghdG9rZW4uaXNUb2tlbikge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYnVpbGREeW5hbWljQ29pbih0b2tlbik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIGJ1aWxkIGR5bmFtaWMgY29pbiBmb3IgJHt0b2tlbi5uYW1lfSAoJHt0b2tlbi5pZH0pOmAsIGVycm9yKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG4gIGNvbnN0IGluaXRpYWxpemVyTWFwOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICBhbGdvOiBhbGdvVG9rZW4sXG4gICAgYXB0OiBhcHRUb2tlbixcbiAgICBhcmJldGg6IGFyYmV0aEVyYzIwLFxuICAgIGF2YXhjOiBhdmF4RXJjMjAsXG4gICAgYmFzZWV0aDogZXJjMjBUb2tlbixcbiAgICBiZXJhOiBiZXJhRXJjMjAsXG4gICAgZmxvdzogZXJjMjBUb2tlbixcbiAgICBsaW5lYWV0aDogZXJjMjBUb2tlbixcbiAgICBzZWlldm06IGVyYzIwVG9rZW4sXG4gICAgbW9uOiBlcmMyMFRva2VuLFxuICAgIHhkYzogZXJjMjBUb2tlbixcbiAgICBic2M6IGJzY1Rva2VuLFxuICAgIGNlbG86IGNlbG9Ub2tlbixcbiAgICBjb3Ntb3M6IGNvc21vc1Rva2VuLFxuICAgIGV0aDogZXJjMjAsXG4gICAgZW9zOiBlb3NUb2tlbixcbiAgICBoYmFyOiBoZWRlcmFUb2tlbixcbiAgICBuZWFyOiBuZXAxNDFUb2tlbixcbiAgICBvcGV0aDogb3BldGhFcmMyMCxcbiAgICBwb2x5Z29uOiBwb2x5Z29uRXJjMjAsXG4gICAgc29sOiBzb2xUb2tlbixcbiAgICBzdHg6IHNpcDEwVG9rZW4sXG4gICAgc3VpOiBzdWlUb2tlbixcbiAgICB0YW86IHRhb1Rva2VuLFxuICAgIHBvbHl4OiBwb2x5eFRva2VuLFxuICAgIHRyeDogdHJvblRva2VuLFxuICAgIHZldDogdmV0VG9rZW4sXG4gICAgeGxtOiBzdGVsbGFyVG9rZW4sXG4gICAgeHJwOiB4cnBUb2tlbixcbiAgICBvZmM6IG9mY1Rva2VuLFxuICAgIGFkYTogYWRhVG9rZW4sXG4gICAgdG9uOiBqZXR0b25Ub2tlbixcbiAgfTtcblxuICAvLyBFVk0tY29tcGF0aWJsZSBjaGFpbnMgYXJlIGlkZW50aWZpZWQgYnkgYSBudW1lcmljIGNoYWluSWQgb24gdGhlaXIgbmV0d29yayBvYmplY3QuXG4gIGNvbnN0IHRva2VuTmV0d29yayA9IHRva2VuLm5ldHdvcmsgaW5zdGFuY2VvZiBCYXNlTmV0d29yayA/IHRva2VuLm5ldHdvcmsgOiB1bmRlZmluZWQ7XG4gIGlmIChcbiAgICB0b2tlbk5ldHdvcmsgJiZcbiAgICAnY2hhaW5JZCcgaW4gdG9rZW5OZXR3b3JrICYmXG4gICAgdHlwZW9mICh0b2tlbk5ldHdvcmsgYXMgeyBjaGFpbklkPzogdW5rbm93biB9KS5jaGFpbklkID09PSAnbnVtYmVyJ1xuICApIHtcbiAgICBpZiAoIWVyYzIwQ2hhaW5Ub05hbWVNYXBbdG9rZW4uZmFtaWx5XSkge1xuICAgICAgZXJjMjBDaGFpblRvTmFtZU1hcFt0b2tlbi5mYW1pbHldID0gdG9rZW4uZmFtaWx5O1xuICAgIH1cbiAgfVxuXG4gIC8vIGR5bmFtaWNhbGx5IGFkZCBlcmMyMCB0b2tlbiBpbml0aWFsaXplcnMgZm9yIGV0aCBsaWtlIGNoYWlucyB0byB0aGUgaW5pdGlhbGl6ZXIgbWFwXG4gIE9iamVjdC5rZXlzKGVyYzIwQ2hhaW5Ub05hbWVNYXApLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGluaXRpYWxpemVyTWFwW2tleV0gPSBlcmMyMFRva2VuO1xuICB9KTtcblxuICBPYmplY3Qua2V5cyhlcmM3MjFDaGFpblRvTmFtZU1hcCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgaW5pdGlhbGl6ZXJNYXBba2V5XSA9IGVyYzcyMVRva2VuO1xuICB9KTtcblxuICAvL3JldHVybiB0aGUgQmFzZUNvaW4gZnJvbSBkZWZhdWx0IGNvaW4gbWFwIGlmIHByZXNlbnRcbiAgaWYgKGlzQ29pblByZXNlbnRJbkNvaW5NYXAoeyAuLi50b2tlbiB9KSkge1xuICAgIGlmIChjb2lucy5oYXModG9rZW4ubmFtZSkpIHtcbiAgICAgIHJldHVybiBjb2lucy5nZXQodG9rZW4ubmFtZSk7XG4gICAgfVxuICAgIGlmIChjb2lucy5oYXModG9rZW4uaWQpKSB7XG4gICAgICByZXR1cm4gY29pbnMuZ2V0KHRva2VuLmlkKTtcbiAgICB9XG4gICAgaWYgKHRva2VuLmFsaWFzICYmIGNvaW5zLmhhcyh0b2tlbi5hbGlhcykpIHtcbiAgICAgIHJldHVybiBjb2lucy5nZXQodG9rZW4uYWxpYXMpO1xuICAgIH1cbiAgfVxuICBjb25zdCBmYW1pbHkgPSB0b2tlbi5mYW1pbHk7XG4gIGNvbnN0IGluaXRpYWxpemVyID0gaW5pdGlhbGl6ZXJNYXBbZmFtaWx5XSBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBSZWFkb25seTxCYXNlQ29pbj47XG4gIGlmICghaW5pdGlhbGl6ZXIpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgY29tbW9uQXJncyA9IFtcbiAgICB0b2tlbi5pZCxcbiAgICB0b2tlbi5uYW1lLFxuICAgIHRva2VuLmZ1bGxOYW1lLFxuICAgIHRva2VuLmRlY2ltYWxQbGFjZXMsXG4gICAgdG9rZW4uYXNzZXQsXG4gICAgdG9rZW4uZmVhdHVyZXMsXG4gICAgdG9rZW4ucHJlZml4LFxuICAgIHRva2VuLnN1ZmZpeCxcbiAgICB0b2tlbi5uZXR3b3JrLFxuICAgIHRva2VuLnByaW1hcnlLZXlDdXJ2ZSxcbiAgXTtcblxuICBzd2l0Y2ggKGZhbWlseSkge1xuICAgIGNhc2UgZXJjMjBDaGFpblRvTmFtZU1hcFtmYW1pbHldOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzIHx8IHRva2VuLnRva2VuQWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIHRva2VuLmFzc2V0LFxuICAgICAgICB0b2tlbi5uZXR3b3JrLFxuICAgICAgICB0b2tlbi5mZWF0dXJlcyxcbiAgICAgICAgdG9rZW4ucHJlZml4LFxuICAgICAgICB0b2tlbi5zdWZmaXgsXG4gICAgICAgIHRva2VuLnByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcbiAgICBjYXNlIGVyYzcyMUNoYWluVG9OYW1lTWFwW2ZhbWlseV06XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgMyksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZVxuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICB0b2tlbi5uZXR3b3JrLFxuICAgICAgICB0b2tlbi5mZWF0dXJlcyxcbiAgICAgICAgdG9rZW4ucHJlZml4LFxuICAgICAgICB0b2tlbi5zdWZmaXgsXG4gICAgICAgIHRva2VuLnByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcbiAgICBjYXNlICdhcmJldGgnOlxuICAgIGNhc2UgJ2F2YXhjJzpcbiAgICBjYXNlICdiYXNlZXRoJzpcbiAgICBjYXNlICdiZXJhJzpcbiAgICBjYXNlICdic2MnOlxuICAgIGNhc2UgJ2Zsb3cnOlxuICAgIGNhc2UgJ2xpbmVhZXRoJzpcbiAgICBjYXNlICdzZWlldm0nOlxuICAgIGNhc2UgJ21vbic6XG4gICAgY2FzZSAneGRjJzpcbiAgICBjYXNlICdjZWxvJzpcbiAgICBjYXNlICdldGgnOlxuICAgIGNhc2UgJ29wZXRoJzpcbiAgICBjYXNlICdwb2x5Z29uJzpcbiAgICBjYXNlICd0cngnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzIHx8IHRva2VuLnRva2VuQWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuXG4gICAgY2FzZSAnYXB0JzpcbiAgICAgIGNvbnN0IHsgaW5pdEZ1bmMsIG9iamVjdElkIH0gPSBnZXRBcHRUb2tlbkluaXRpYWxpemVyKHRva2VuKTtcbiAgICAgIHJldHVybiBpbml0RnVuYyhcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIG9iamVjdElkLFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3ZldCc6XG4gICAgICBjb25zdCB7IHZldEluaXRGdW5jLCB2ZXRPYmplY3RJZCwgaXNORlQgfSA9IGdldFZldFRva2VuSW5pdGlhbGl6ZXIodG9rZW4pO1xuICAgICAgaWYgKGlzTkZUKSB7XG4gICAgICAgIHJldHVybiB2ZXRJbml0RnVuYyhcbiAgICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDMpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWVcbiAgICAgICAgICB2ZXRPYmplY3RJZCxcbiAgICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZldEluaXRGdW5jKFxuICAgICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICAgIHZldE9iamVjdElkLFxuICAgICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICBjYXNlICdzdHgnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uYXNzZXRJZCwgLy8gYXNzZXRJZFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ2FsZ28nOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDIpLCAvLyBpZCwgbmFtZVxuICAgICAgICB0b2tlbi5hbGlhcywgLy8gYWxpYXNcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgyKSAvLyBmdWxsTmFtZSwgZGVjaW1hbCwgYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuXG4gICAgY2FzZSAnZW9zJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmNvbnRyYWN0TmFtZSwgLy8gY29udHJhY3ROYW1lXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCwgOCksIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXhcbiAgICAgICAgdG9rZW4uc3ltYm9sLCAvLyBzeW1ib2xcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg4KSAvLyBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICdoYmFyJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCAzKSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lXG4gICAgICAgIHRva2VuLm5ldHdvcmssIC8vIG5ldHdvcmtcbiAgICAgICAgdG9rZW4uZGVjaW1hbFBsYWNlcyxcbiAgICAgICAgdG9rZW4uYXNzZXQsXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNSwgOCksIC8vIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeFxuICAgICAgICB0b2tlbi5wcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICdzb2wnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4udG9rZW5BZGRyZXNzLCAvLyB0b2tlbkFkZHJlc3NcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzLCAvLyBjb250cmFjdEFkZHJlc3NcbiAgICAgICAgdG9rZW4uYXNzZXQsXG4gICAgICAgIHRva2VuLmZlYXR1cmVzLFxuICAgICAgICB0b2tlbi5wcm9ncmFtSWQsXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNikgLy8gcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3N1aSc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5wYWNrYWdlSWQsIC8vIHBhY2thZ2VJZFxuICAgICAgICB0b2tlbi5tb2R1bGUsIC8vIG1vZHVsZVxuICAgICAgICB0b2tlbi5zeW1ib2wsIC8vIHN5bWJvbFxuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3Rhbyc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5zdWJuZXRJZCwgLy8gc3VibmV0SWRcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG4gICAgY2FzZSAncG9seXgnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4udGlja2VyLCAvLyB0aWNrZXJcbiAgICAgICAgdG9rZW4uYXNzZXRJZCwgLy8gYXNzZXRJZFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3hsbSc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNSksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlcywgYXNzZXRcbiAgICAgICAgdG9rZW4uZG9tYWluLCAvLyBkb21haW5cbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg1KSAvLyBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3hycCc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5pc3N1ZXJBZGRyZXNzLCAvLyBpc3N1ZXJBZGRyZXNzXG4gICAgICAgIHRva2VuLmN1cnJlY255Y29kZSwgLy8gY3VycmVuY3lDb2RlXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIHRva2VuLmRvbWFpbiwgLy8gZG9tYWluXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuICAgIGNhc2UgJ29mYyc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3MsIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlcywgYXNzZXQsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICAgdG9rZW4uYmFzZVVuaXQsIC8vIGJhc2VVbml0XG4gICAgICAgIHRva2VuLmlzVG9rZW4sIC8vIGlzVG9rZW5cbiAgICAgICAgdG9rZW4ua2luZCwgLy8ga2luZFxuICAgICAgICB0b2tlbi5hZGRyZXNzQ29pbiAvLyBhZGRyZXNzQ29pblxuICAgICAgKTtcbiAgICBjYXNlICdhc2knOlxuICAgIGNhc2UgJ2F0b20nOlxuICAgIGNhc2UgJ2JhYnknOlxuICAgIGNhc2UgJ2JsZCc6XG4gICAgY2FzZSAnY29yZXVtJzpcbiAgICBjYXNlICdjcm9ub3MnOlxuICAgIGNhc2UgJ2hhc2gnOlxuICAgIGNhc2UgJ2luamVjdGl2ZSc6XG4gICAgY2FzZSAnaW5pdGlhJzpcbiAgICBjYXNlICdvc21vJzpcbiAgICBjYXNlICd0aG9yJzpcbiAgICBjYXNlICdzZWknOlxuICAgIGNhc2UgJ3RpYSc6XG4gICAgY2FzZSAnemV0YSc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgMyksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZVxuICAgICAgICB0b2tlbi5kZW5vbSwgLy8gZGVub21cbiAgICAgICAgdG9rZW4uZGVjaW1hbFBsYWNlcywgLy8gZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5uZXR3b3JrLCAvLyBuZXR3b3JrXG4gICAgICAgIHRva2VuLmJhc2VVbml0LCAvLyBiYXNlVW5pdFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQsIDgpLCAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4XG4gICAgICAgIHRva2VuLnByaW1hcnlLZXlDdXJ2ZSAvLyBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG4gICAgY2FzZSAnYWRhJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmFzc2V0TmFtZSxcbiAgICAgICAgdG9rZW4ucG9saWN5SWQsXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcyxcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG4gICAgY2FzZSAndG9uJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogQnVpbGQgYSByZWFsIER5bmFtaWNDb2luICsgRHluYW1pY05ldHdvcmsgaW5zdGFuY2UgZm9yIEFNUy1kaXNjb3ZlcmVkIGJhc2UgY2hhaW5zXG4gKiB3aG9zZSBmYW1pbHkgaXMgbm90IHlldCByZWdpc3RlcmVkIGluIHRoZSBTREsncyBpbml0aWFsaXplck1hcC5cbiAqIENhbGxlZCBmcm9tIGNyZWF0ZVRva2VuKCkgYXMgYSBmYWxsYmFjayB3aGVuIG5vIGluaXRpYWxpemVyIGV4aXN0cyBhbmQgaXNUb2tlbiBpcyBmYWxzZS5cbiAqL1xuZnVuY3Rpb24gYnVpbGREeW5hbWljQ29pbih0b2tlbjogQW1zVG9rZW5Db25maWcpOiBSZWFkb25seTxCYXNlQ29pbj4ge1xuICBjb25zdCBuZXR3b3JrID0gdG9rZW4ubmV0d29yayBpbnN0YW5jZW9mIEJhc2VOZXR3b3JrID8gdG9rZW4ubmV0d29yayA6IGdldE5ldHdvcmsodG9rZW4ubmV0d29yayBhcyBzdHJpbmcpO1xuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKFxuICAgIG5ldyBEeW5hbWljQ29pbih7XG4gICAgICBpZDogdG9rZW4uaWQsXG4gICAgICBuYW1lOiB0b2tlbi5uYW1lLFxuICAgICAgZnVsbE5hbWU6IHRva2VuLmZ1bGxOYW1lLFxuICAgICAgZGVjaW1hbFBsYWNlczogdG9rZW4uZGVjaW1hbFBsYWNlcyxcbiAgICAgIGFzc2V0OiB0b2tlbi5hc3NldCBhcyBzdHJpbmcsXG4gICAgICBpc1Rva2VuOiB0b2tlbi5pc1Rva2VuLFxuICAgICAgZmVhdHVyZXM6ICh0b2tlbi5mZWF0dXJlcyA/PyBbXSkgYXMgc3RyaW5nW10sXG4gICAgICBuZXR3b3JrLFxuICAgICAgcHJpbWFyeUtleUN1cnZlOiAodG9rZW4ucHJpbWFyeUtleUN1cnZlIGFzIHN0cmluZykgPz8gJ3NlY3AyNTZrMScsXG4gICAgICBwcmVmaXg6IHRva2VuLnByZWZpeCA/PyAnJyxcbiAgICAgIHN1ZmZpeDogdG9rZW4uc3VmZml4ID8/IHRva2VuLm5hbWUudG9VcHBlckNhc2UoKSxcbiAgICAgIGJhc2VVbml0OiAodG9rZW4uYmFzZVVuaXQgYXMgc3RyaW5nKSA/PyAnJyxcbiAgICAgIGtpbmQ6ICh0b2tlbi5raW5kIGFzIHN0cmluZykgPz8gJ2NyeXB0bycsXG4gICAgICBhbGlhczogdG9rZW4uYWxpYXMsXG4gICAgfSlcbiAgKTtcbn1cblxuZnVuY3Rpb24gZ2V0QXB0VG9rZW5Jbml0aWFsaXplcih0b2tlbjogQW1zVG9rZW5Db25maWcpIHtcbiAgaWYgKHRva2VuLmFzc2V0SWQpIHtcbiAgICAvLyB1c2VkIGZvciBmdW5naWJsZS1hc3NldHMgLyBsZWdhY3kgY29pbnMgZXRjLlxuICAgIHJldHVybiB7XG4gICAgICBpbml0RnVuYzogYXB0VG9rZW4gYXMgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gUmVhZG9ubHk8QmFzZUNvaW4+LFxuICAgICAgb2JqZWN0SWQ6IHRva2VuLmFzc2V0SWQsXG4gICAgfTtcbiAgfVxuICAvLyB1c2VkIGZvciBub24tZnVuZ2libGUgdG9rZW4gKE5GVCkgY29sbGVjdGlvbnNcbiAgcmV0dXJuIHtcbiAgICBpbml0RnVuYzogYXB0TkZUQ29sbGVjdGlvbiBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBSZWFkb25seTxCYXNlQ29pbj4sXG4gICAgb2JqZWN0SWQ6IHRva2VuLm5mdENvbGxlY3Rpb25JZCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0VmV0VG9rZW5Jbml0aWFsaXplcih0b2tlbjogQW1zVG9rZW5Db25maWcpIHtcbiAgaWYgKHRva2VuLm5mdENvbGxlY3Rpb25JZCkge1xuICAgIHJldHVybiB7XG4gICAgICB2ZXRJbml0RnVuYzogdmV0TkZUQ29sbGVjdGlvbiBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBSZWFkb25seTxCYXNlQ29pbj4sXG4gICAgICB2ZXRPYmplY3RJZDogdG9rZW4ubmZ0Q29sbGVjdGlvbklkLFxuICAgICAgaXNORlQ6IHRydWUsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdmV0SW5pdEZ1bmM6IHZldFRva2VuIGFzICguLi5hcmdzOiB1bmtub3duW10pID0+IFJlYWRvbmx5PEJhc2VDb2luPixcbiAgICB2ZXRPYmplY3RJZDogdG9rZW4uY29udHJhY3RBZGRyZXNzLFxuICAgIGlzTkZUOiBmYWxzZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29pblByZXNlbnRJbkNvaW5NYXAoeyBuYW1lLCBpZCwgYWxpYXMgfTogeyBuYW1lOiBzdHJpbmc7IGlkPzogc3RyaW5nOyBhbGlhcz86IHN0cmluZyB9KTogYm9vbGVhbiB7XG4gIHJldHVybiBCb29sZWFuKGNvaW5zLmhhcyhuYW1lKSB8fCAoaWQgJiYgY29pbnMuaGFzKGlkKSkgfHwgKGFsaWFzICYmIGNvaW5zLmhhcyhhbGlhcykpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRva2VuTWFwVXNpbmdDb25maWdEZXRhaWxzKHRva2VuQ29uZmlnTWFwOiBSZWNvcmQ8c3RyaW5nLCBBbXNUb2tlbkNvbmZpZ1tdPik6IENvaW5NYXAge1xuICBjb25zdCBCYXNlQ29pbnM6IE1hcDxzdHJpbmcsIFJlYWRvbmx5PEJhc2VDb2luPj4gPSBuZXcgTWFwKCk7XG5cbiAgY29uc3QgbmZ0QW5kT3RoZXJUb2tlbnMgPSBuZXcgU2V0KFtcbiAgICAnZXJjNzIxOmJzY3Rva2VuJyxcbiAgICAndGVyYzcyMTpic2N0b2tlbicsXG4gICAgJ2VyYzExNTU6YnNjdG9rZW4nLFxuICAgICd0ZXJjMTE1NTpic2N0b2tlbicsXG4gICAgJ2VyYzcyMTp3aXRjaCcsXG4gICAgJ2VyYzcyMTp0b2tlbicsXG4gICAgJ2VyYzExNTU6dG9rZW4nLFxuICAgICdub25zdGFuZGFyZDp0b2tlbicsXG4gICAgJ3RlcmM3MjE6dG9rZW4nLFxuICAgICd0ZXJjMTE1NTp0b2tlbicsXG4gICAgJ3Rub25zdGFuZGFyZDp0b2tlbicsXG4gICAgJ3RlcmM3MjE6Yml0Z29lcmM3MjEnLFxuICAgICd0ZXJjMTE1NTpiaXRnb2VyYzExNTUnLFxuICAgICd0ZXJjNzIxOmhvb2RpZGonLFxuICAgICdlcmM3MjE6cG9seWdvbnRva2VuJyxcbiAgICAnZXJjMTE1NTpwb2x5Z29udG9rZW4nLFxuICAgICd0ZXJjNzIxOnBvbHlnb250b2tlbicsXG4gICAgJ3RlcmMxMTU1OnBvbHlnb250b2tlbicsXG4gICAgJ2VyYzcyMTpzb25laXVtdG9rZW4nLFxuICAgICdlcmMxMTU1OnNvbmVpdW10b2tlbicsXG4gICAgJ3RlcmM3MjE6c29uZWl1bXRva2VuJyxcbiAgICAndGVyYzExNTU6c29uZWl1bXRva2VuJyxcbiAgXSk7XG5cbiAgLy8gQWRkIGFsbCB0aGUgY29pbnMgZnJvbSBzdGF0aWNzIGNvaW4gbWFwIGZpcnN0XG4gIGNvaW5zLmZvckVhY2goKGNvaW4sIGNvaW5OYW1lKSA9PiB7XG4gICAgQmFzZUNvaW5zLnNldChjb2luTmFtZSwgY29pbik7XG4gIH0pO1xuXG4gIC8vIGFkZCB0aGUgdG9rZW5zIG5vdCBwcmVzZW50IGluIHRoZSBzdGF0aWMgY29pbiBtYXBcbiAgZm9yIChjb25zdCB0b2tlbkNvbmZpZ3Mgb2YgT2JqZWN0LnZhbHVlcyh0b2tlbkNvbmZpZ01hcCkpIHtcbiAgICBjb25zdCB0b2tlbkNvbmZpZyA9IHRva2VuQ29uZmlnc1swXTtcblxuICAgIGlmICghaXNDb2luUHJlc2VudEluQ29pbk1hcCh7IC4uLnRva2VuQ29uZmlnIH0pICYmICFuZnRBbmRPdGhlclRva2Vucy5oYXModG9rZW5Db25maWcubmFtZSkpIHtcbiAgICAgIGNvbnN0IHRva2VuID0gY3JlYXRlVG9rZW4odG9rZW5Db25maWcpO1xuICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgIEJhc2VDb2lucy5zZXQodG9rZW4ubmFtZSwgdG9rZW4pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBDb2luTWFwLmZyb21Db2lucyhBcnJheS5mcm9tKEJhc2VDb2lucy52YWx1ZXMoKSkpO1xufVxuXG4vKipcbiAqIEVucmljaCBiYXNlIGNoYWluIGNvaW5zIChpc1Rva2VuPWZhbHNlKSB3aXRoIGZlYXR1cmVzIGZyb20gdGhlIEFNUyBuZXR3b3JrcyBtYXAuXG4gKlxuICogY3JlYXRlVG9rZW5NYXBVc2luZ1RyaW1tZWRDb25maWdEZXRhaWxzIHJlYWRzIGZlYXR1cmVzIGZvciBiYXNlIGNoYWlucyBmcm9tXG4gKiBUcmltbWVkQW1zVG9rZW5Db25maWcuYWRkaXRpb25hbEZlYXR1cmVzLiBUaGUgYXNzZXRzTGlzdCBlbmRwb2ludCByZXR1cm5zIGJhc2UgY2hhaW5zIHdpdGggbm8gZmVhdHVyZXM7XG4gKiBmZWF0dXJlcyBhcmUgaW4gdGhlIG5ldHdvcmtzIGVuZHBvaW50ICgvYXBpL3YxL25ldHdvcmtzLzpuZXR3b3JrKSwgbWF0Y2hlZCBieSBjb2luLm5ldHdvcmsubmFtZSA9PT0gbmV0d29ya3NFbnRyeS5uYW1lLlxuICpcbiAqIENvaW5zIHRoYXQgYWxyZWFkeSBoYXZlIGFkZGl0aW9uYWxGZWF0dXJlcyBkZWZpbmVkIGFyZSBsZWZ0IHVuY2hhbmdlZC5cbiAqIENvaW5zIHdob3NlIG5ldHdvcmsubmFtZSBoYXMgbm8gbWF0Y2ggaW4gbmV0d29ya3NNYXAgYXJlIGxlZnQgdW5jaGFuZ2VkIChlbXB0eSBmZWF0dXJlcykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnJpY2hCYXNlQ2hhaW5GZWF0dXJlcyhcbiAgY29pblRva2VuTWFwOiBSZWNvcmQ8c3RyaW5nLCBUcmltbWVkQW1zVG9rZW5Db25maWdbXT4sXG4gIG5ldHdvcmtzTWFwOiBBbXNOZXR3b3JrQ29uZmlnTWFwXG4pOiBSZWNvcmQ8c3RyaW5nLCBUcmltbWVkQW1zVG9rZW5Db25maWdbXT4ge1xuICBjb25zdCBmZWF0dXJlc0J5TmV0d29ya05hbWUgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nW10+KFxuICAgIE9iamVjdC52YWx1ZXMobmV0d29ya3NNYXApLm1hcCgobmV0KTogW3N0cmluZywgc3RyaW5nW11dID0+IFtuZXQubmFtZSwgbmV0LmZlYXR1cmVzXSlcbiAgKTtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3QuZW50cmllcyhjb2luVG9rZW5NYXApLm1hcCgoW2tleSwgY29pbnNdKSA9PiBbXG4gICAgICBrZXksXG4gICAgICBjb2lucy5tYXAoKGNvaW4pID0+IHtcbiAgICAgICAgaWYgKGNvaW4uaXNUb2tlbiB8fCBjb2luLmFkZGl0aW9uYWxGZWF0dXJlcyAhPT0gdW5kZWZpbmVkIHx8IGNvaW4ubmV0d29yayA9PT0gdW5kZWZpbmVkKSByZXR1cm4gY29pbjtcbiAgICAgICAgY29uc3QgZmVhdHVyZXMgPSBmZWF0dXJlc0J5TmV0d29ya05hbWUuZ2V0KGNvaW4ubmV0d29yay5uYW1lKTtcbiAgICAgICAgcmV0dXJuIGZlYXR1cmVzICE9PSB1bmRlZmluZWQgPyB7IC4uLmNvaW4sIGFkZGl0aW9uYWxGZWF0dXJlczogZmVhdHVyZXMgfSA6IGNvaW47XG4gICAgICB9KSxcbiAgICBdKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9rZW5NYXBVc2luZ1RyaW1tZWRDb25maWdEZXRhaWxzKFxuICByZWR1Y2VkVG9rZW5Db25maWdNYXA6IFJlY29yZDxzdHJpbmcsIFRyaW1tZWRBbXNUb2tlbkNvbmZpZ1tdPlxuKTogQ29pbk1hcCB7XG4gIGNvbnN0IGFtc1Rva2VuQ29uZmlnTWFwOiBSZWNvcmQ8c3RyaW5nLCBBbXNUb2tlbkNvbmZpZ1tdPiA9IHt9O1xuICBjb25zdCBuZXR3b3JrTmFtZU1hcCA9IGdldE5ldHdvcmtzTWFwKCk7XG5cbiAgZm9yIChjb25zdCB0b2tlbkNvbmZpZ3Mgb2YgT2JqZWN0LnZhbHVlcyhyZWR1Y2VkVG9rZW5Db25maWdNYXApKSB7XG4gICAgY29uc3QgdG9rZW5Db25maWcgPSB0b2tlbkNvbmZpZ3NbMF07XG4gICAgY29uc3QgbmV0d29yayA9IG5ldHdvcmtOYW1lTWFwLmdldCh0b2tlbkNvbmZpZy5uZXR3b3JrLm5hbWUpO1xuXG4gICAgaWYgKGlzQ29pblByZXNlbnRJbkNvaW5NYXAoeyAuLi50b2tlbkNvbmZpZyB9KSkgY29udGludWU7XG5cbiAgICBpZiAoIXRva2VuQ29uZmlnLmlzVG9rZW4pIHtcbiAgICAgIC8vIER5bmFtaWMgYmFzZSBjaGFpbiDigJQgbmV0d29yayBtdXN0IGJlIHByZS1yZWdpc3RlcmVkIGluIG5ldHdvcmtCeU5hbWUgbWFwIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uXG4gICAgICBpZiAobmV0d29yaykge1xuICAgICAgICBhbXNUb2tlbkNvbmZpZ01hcFt0b2tlbkNvbmZpZy5uYW1lXSA9IFtcbiAgICAgICAgICB7IC4uLnRva2VuQ29uZmlnLCBmZWF0dXJlczogdG9rZW5Db25maWcuYWRkaXRpb25hbEZlYXR1cmVzID8/IFtdLCBuZXR3b3JrIH0sXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChuZXR3b3JrICYmIGdldE5ldHdvcmtGZWF0dXJlcyhuZXR3b3JrLmZhbWlseSBhcyBzdHJpbmcpKSB7XG4gICAgICBjb25zdCBmZWF0dXJlcyA9IG5ldyBTZXQoW1xuICAgICAgICAuLi4oZ2V0TmV0d29ya0ZlYXR1cmVzKG5ldHdvcmsuZmFtaWx5IGFzIHN0cmluZykgfHwgW10pLFxuICAgICAgICAuLi4odG9rZW5Db25maWcuYWRkaXRpb25hbEZlYXR1cmVzIHx8IFtdKSxcbiAgICAgIF0pO1xuICAgICAgdG9rZW5Db25maWcuZXhjbHVkZWRGZWF0dXJlcz8uZm9yRWFjaCgoZmVhdHVyZSkgPT4gZmVhdHVyZXMuZGVsZXRlKGZlYXR1cmUpKTtcbiAgICAgIGFtc1Rva2VuQ29uZmlnTWFwW3Rva2VuQ29uZmlnLm5hbWVdID0gW3sgLi4udG9rZW5Db25maWcsIGZlYXR1cmVzOiBBcnJheS5mcm9tKGZlYXR1cmVzKSwgbmV0d29yayB9XTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY3JlYXRlVG9rZW5NYXBVc2luZ0NvbmZpZ0RldGFpbHMoYW1zVG9rZW5Db25maWdNYXApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9rZW5Vc2luZ1RyaW1tZWRDb25maWdEZXRhaWxzKFxuICB0b2tlbkNvbmZpZzogVHJpbW1lZEFtc1Rva2VuQ29uZmlnXG4pOiBSZWFkb25seTxCYXNlQ29pbj4gfCB1bmRlZmluZWQge1xuICBsZXQgZnVsbFRva2VuQ29uZmlnOiBBbXNUb2tlbkNvbmZpZyB8IHVuZGVmaW5lZDtcbiAgY29uc3QgbmV0d29ya05hbWVNYXAgPSBnZXROZXR3b3Jrc01hcCgpO1xuICBjb25zdCBuZXR3b3JrID0gbmV0d29ya05hbWVNYXAuZ2V0KHRva2VuQ29uZmlnLm5ldHdvcmsubmFtZSk7XG5cbiAgaWYgKGlzQ29pblByZXNlbnRJbkNvaW5NYXAoeyAuLi50b2tlbkNvbmZpZyB9KSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICBpZiAoIXRva2VuQ29uZmlnLmlzVG9rZW4pIHtcbiAgICAvLyBEeW5hbWljIGJhc2UgY2hhaW4g4oCUIG5ldHdvcmsgbXVzdCBiZSBwcmUtcmVnaXN0ZXJlZCBpbiBuZXR3b3JrQnlOYW1lIG1hcCBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLlxuICAgIGlmIChuZXR3b3JrKSB7XG4gICAgICByZXR1cm4gY3JlYXRlVG9rZW4oeyAuLi50b2tlbkNvbmZpZywgZmVhdHVyZXM6IHRva2VuQ29uZmlnLmFkZGl0aW9uYWxGZWF0dXJlcyA/PyBbXSwgbmV0d29yayB9IGFzIEFtc1Rva2VuQ29uZmlnKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChuZXR3b3JrICYmIGdldE5ldHdvcmtGZWF0dXJlcyhuZXR3b3JrLmZhbWlseSBhcyBzdHJpbmcpKSB7XG4gICAgY29uc3QgZmVhdHVyZXMgPSBuZXcgU2V0KFtcbiAgICAgIC4uLihnZXROZXR3b3JrRmVhdHVyZXMobmV0d29yay5mYW1pbHkgYXMgc3RyaW5nKSB8fCBbXSksXG4gICAgICAuLi4odG9rZW5Db25maWcuYWRkaXRpb25hbEZlYXR1cmVzIHx8IFtdKSxcbiAgICBdKTtcbiAgICB0b2tlbkNvbmZpZy5leGNsdWRlZEZlYXR1cmVzPy5mb3JFYWNoKChmZWF0dXJlKSA9PiBmZWF0dXJlcy5kZWxldGUoZmVhdHVyZSkpO1xuICAgIGZ1bGxUb2tlbkNvbmZpZyA9IHsgLi4udG9rZW5Db25maWcsIGZlYXR1cmVzOiBBcnJheS5mcm9tKGZlYXR1cmVzKSwgbmV0d29yayB9IGFzIEFtc1Rva2VuQ29uZmlnO1xuICAgIHJldHVybiBjcmVhdGVUb2tlbihmdWxsVG9rZW5Db25maWcpO1xuICB9XG59XG4iXX0=
461
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29pbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMkVBLGtDQXlTQztBQTZERCx3REFFQztBQUVELDRFQXVEQztBQVlELDBEQWlCQztBQUVELDBGQStCQztBQUVELG9GQTBCQztBQXRrQkQsdUNBOEJtQjtBQUNuQiwrQkFBaUM7QUFDakMsaUNBQTREO0FBRTVELCtCQUFnQztBQUNoQyx5Q0FBa0Y7QUFDbEYsNkVBQWtFO0FBQ2xFLHlEQUFzRTtBQUN0RSwrQ0FBNEM7QUFDNUMsMkRBQXdEO0FBQ3hELHVEQUFvRDtBQUV2QyxRQUFBLEtBQUssR0FBRyxhQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3JDLEdBQUcscUNBQWlCO0lBQ3BCLEdBQUcsNkJBQWE7SUFDaEIsR0FBRyw4QkFBYztJQUNqQixHQUFHLG1CQUFRO0lBQ1gsR0FBRywyQkFBWTtDQUNoQixDQUFDLENBQUM7QUFFSCxpRkFBaUY7QUFDakYsZ0RBQWdEO0FBQ2hELE1BQU0sbUJBQW1CLEdBQTJCLEVBQUUsQ0FBQztBQUV2RCxxQ0FBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtJQUNqQyxJQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGtCQUFXLENBQUMsY0FBYyxDQUFDO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTztRQUN6QyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQ2IsQ0FBQztRQUNELG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQy9DLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQztBQUVILE1BQU0sb0JBQW9CLEdBQTJCLEVBQUUsQ0FBQztBQUN4RCxxQ0FBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtJQUNqQyxJQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGtCQUFXLENBQUMsZUFBZSxDQUFDO1FBQ25ELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTztRQUN6QyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQ2IsQ0FBQztRQUNELG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ2hELENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQztBQUVILFNBQWdCLFdBQVcsQ0FBQyxLQUFxQjtJQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQztZQUNILE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLG9DQUFvQyxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNyRixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUNELE1BQU0sY0FBYyxHQUE0QjtRQUM5QyxJQUFJLEVBQUUsbUJBQVM7UUFDZixHQUFHLEVBQUUsa0JBQVE7UUFDYixNQUFNLEVBQUUscUJBQVc7UUFDbkIsS0FBSyxFQUFFLG1CQUFTO1FBQ2hCLE9BQU8sRUFBRSxvQkFBVTtRQUNuQixJQUFJLEVBQUUsbUJBQVM7UUFDZixJQUFJLEVBQUUsb0JBQVU7UUFDaEIsUUFBUSxFQUFFLG9CQUFVO1FBQ3BCLE1BQU0sRUFBRSxvQkFBVTtRQUNsQixHQUFHLEVBQUUsb0JBQVU7UUFDZixHQUFHLEVBQUUsb0JBQVU7UUFDZixHQUFHLEVBQUUsa0JBQVE7UUFDYixJQUFJLEVBQUUsbUJBQVM7UUFDZixNQUFNLEVBQUUscUJBQVc7UUFDbkIsR0FBRyxFQUFFLGVBQUs7UUFDVixHQUFHLEVBQUUsa0JBQVE7UUFDYixJQUFJLEVBQUUscUJBQVc7UUFDakIsSUFBSSxFQUFFLHFCQUFXO1FBQ2pCLEtBQUssRUFBRSxvQkFBVTtRQUNqQixPQUFPLEVBQUUsc0JBQVk7UUFDckIsR0FBRyxFQUFFLGtCQUFRO1FBQ2IsR0FBRyxFQUFFLG9CQUFVO1FBQ2YsR0FBRyxFQUFFLGtCQUFRO1FBQ2IsR0FBRyxFQUFFLGtCQUFRO1FBQ2IsS0FBSyxFQUFFLG9CQUFVO1FBQ2pCLEdBQUcsRUFBRSxtQkFBUztRQUNkLEdBQUcsRUFBRSxrQkFBUTtRQUNiLEdBQUcsRUFBRSxzQkFBWTtRQUNqQixHQUFHLEVBQUUsa0JBQVE7UUFDYixHQUFHLEVBQUUsY0FBUTtRQUNiLEdBQUcsRUFBRSxrQkFBUTtRQUNiLEdBQUcsRUFBRSxxQkFBVztLQUNqQixDQUFDO0lBRUYscUZBQXFGO0lBQ3JGLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxPQUFPLFlBQVksc0JBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3RGLElBQ0UsWUFBWTtRQUNaLFNBQVMsSUFBSSxZQUFZO1FBQ3pCLE9BQVEsWUFBc0MsQ0FBQyxPQUFPLEtBQUssUUFBUSxFQUNuRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDO0lBRUQsc0ZBQXNGO0lBQ3RGLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUMvQyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsb0JBQVUsQ0FBQztJQUNuQyxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNoRCxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcscUJBQVcsQ0FBQztJQUNwQyxDQUFDLENBQUMsQ0FBQztJQUVILHNEQUFzRDtJQUN0RCxJQUFJLHNCQUFzQixDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDekMsSUFBSSxhQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzFCLE9BQU8sYUFBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELElBQUksYUFBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN4QixPQUFPLGFBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksYUFBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxPQUFPLGFBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUM1QixNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUErQyxDQUFDO0lBQ3pGLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUc7UUFDakIsS0FBSyxDQUFDLEVBQUU7UUFDUixLQUFLLENBQUMsSUFBSTtRQUNWLEtBQUssQ0FBQyxRQUFRO1FBQ2QsS0FBSyxDQUFDLGFBQWE7UUFDbkIsS0FBSyxDQUFDLEtBQUs7UUFDWCxLQUFLLENBQUMsUUFBUTtRQUNkLEtBQUssQ0FBQyxNQUFNO1FBQ1osS0FBSyxDQUFDLE1BQU07UUFDWixLQUFLLENBQUMsT0FBTztRQUNiLEtBQUssQ0FBQyxlQUFlO0tBQ3RCLENBQUM7SUFFRixRQUFRLE1BQU0sRUFBRSxDQUFDO1FBQ2YsS0FBSyxtQkFBbUIsQ0FBQyxNQUFNLENBQUM7WUFDOUIsT0FBTyxXQUFXLENBQ2hCLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsb0NBQW9DO1lBQy9ELEtBQUssQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxrQkFBa0I7WUFDL0QsS0FBSyxDQUFDLEtBQUssRUFDWCxLQUFLLENBQUMsT0FBTyxFQUNiLEtBQUssQ0FBQyxRQUFRLEVBQ2QsS0FBSyxDQUFDLE1BQU0sRUFDWixLQUFLLENBQUMsTUFBTSxFQUNaLEtBQUssQ0FBQyxlQUFlLENBQ3RCLENBQUM7UUFDSixLQUFLLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztZQUMvQixPQUFPLFdBQVcsQ0FDaEIsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxxQkFBcUI7WUFDaEQsS0FBSyxDQUFDLGVBQWUsRUFBRSxrQkFBa0I7WUFDekMsS0FBSyxDQUFDLE9BQU8sRUFDYixLQUFLLENBQUMsUUFBUSxFQUNkLEtBQUssQ0FBQyxNQUFNLEVBQ1osS0FBSyxDQUFDLE1BQU0sRUFDWixLQUFLLENBQUMsZUFBZSxDQUN0QixDQUFDO1FBQ0osS0FBSyxRQUFRLENBQUM7UUFDZCxLQUFLLE9BQU8sQ0FBQztRQUNiLEtBQUssU0FBUyxDQUFDO1FBQ2YsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxVQUFVLENBQUM7UUFDaEIsS0FBSyxRQUFRLENBQUM7UUFDZCxLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssS0FBSyxDQUFDO1FBQ1gsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssT0FBTyxDQUFDO1FBQ2IsS0FBSyxTQUFTLENBQUM7UUFDZixLQUFLLEtBQUs7WUFDUixPQUFPLFdBQVcsQ0FDaEIsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxvQ0FBb0M7WUFDL0QsS0FBSyxDQUFDLGVBQWUsSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFLGtCQUFrQjtZQUMvRCxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsNERBQTREO2FBQ3BGLENBQUM7UUFFSixLQUFLLEtBQUs7WUFDUixNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdELE9BQU8sUUFBUSxDQUNiLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsb0NBQW9DO1lBQy9ELFFBQVEsRUFDUixHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsNERBQTREO2FBQ3BGLENBQUM7UUFFSixLQUFLLEtBQUs7WUFDUixNQUFNLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsR0FBRyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxRSxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLE9BQU8sV0FBVyxDQUNoQixHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLHFCQUFxQjtnQkFDaEQsV0FBVyxFQUNYLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyw0REFBNEQ7aUJBQ3BGLENBQUM7WUFDSixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxXQUFXLENBQ2hCLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsb0NBQW9DO2dCQUMvRCxXQUFXLEVBQ1gsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLDREQUE0RDtpQkFDcEYsQ0FBQztZQUNKLENBQUM7UUFFSCxLQUFLLEtBQUs7WUFDUixPQUFPLFdBQVcsQ0FDaEIsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxvQ0FBb0M7WUFDL0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxVQUFVO1lBQ3pCLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyw0REFBNEQ7YUFDcEYsQ0FBQztRQUVKLEtBQUssTUFBTTtZQUNULE9BQU8sV0FBVyxDQUNoQixHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVc7WUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRO1lBQ3JCLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQywrRUFBK0U7YUFDdkcsQ0FBQztRQUVKLEtBQUssS0FBSztZQUNSLE9BQU8sV0FBVyxDQUNoQixHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLG9DQUFvQztZQUMvRCxLQUFLLENBQUMsWUFBWSxFQUFFLGVBQWU7WUFDbkMsS0FBSyxDQUFDLGVBQWUsRUFBRSxrQkFBa0I7WUFDekMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxrQ0FBa0M7WUFDN0QsS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTO1lBQ3ZCLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQywyQkFBMkI7YUFDbkQsQ0FBQztRQUVKLEtBQUssTUFBTTtZQUNULE9BQU8sV0FBVyxDQUNoQixHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLHFCQUFxQjtZQUNoRCxLQUFLLENBQUMsT0FBTyxFQUFFLFVBQVU7WUFDekIsS0FBSyxDQUFDLGFBQWEsRUFDbkIsS0FBSyxDQUFDLEtBQUssRUFDWCxLQUFLLENBQUMsZUFBZSxFQUFFLGtCQUFrQjtZQUN6QyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLDJCQUEyQjtZQUN0RCxLQUFLLENBQUMsZUFBZSxDQUN0QixDQUFDO1FBRUosS0FBSyxLQUFLO1lBQ1IsT0FBTyxXQUFXLENBQ2hCLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsb0NBQW9DO1lBQy9ELEtBQUssQ0FBQyxZQUFZLEVBQUUsZUFBZTtZQUNuQyxLQUFLLENBQUMsZUFBZSxFQUFFLGtCQUFrQjtZQUN6QyxLQUFLLENBQUMsS0FBSyxFQUNYLEtBQUssQ0FBQyxRQUFRLEVBQ2QsS0FBSyxDQUFDLFNBQVMsRUFDZixHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsMkNBQTJDO2FBQ25FLENBQUM7UUFFSixLQUFLLEtBQUs7WUFDUixPQUFPLFdBQVcsQ0FDaEIsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxvQ0FBb0M7WUFDL0QsS0FBSyxDQUFDLFNBQVMsRUFBRSxZQUFZO1lBQzdCLEtBQUssQ0FBQyxNQUFNLEVBQUUsU0FBUztZQUN2QixLQUFLLENBQUMsTUFBTSxFQUFFLFNBQVM7WUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxrQkFBa0I7WUFDekMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLDREQUE0RDthQUNwRixDQUFDO1FBRUosS0FBSyxLQUFLO1lBQ1IsT0FBTyxXQUFXLENBQ2hCLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsb0NBQW9DO1lBQy9ELEtBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVztZQUMzQixHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsNERBQTREO2FBQ3BGLENBQUM7UUFDSixLQUFLLE9BQU87WUFDVixPQUFPLFdBQVcsQ0FDaEIsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxvQ0FBb0M7WUFDL0QsS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTO1lBQ3ZCLEtBQUssQ0FBQyxPQUFPLEVBQUUsVUFBVTtZQUN6QixHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsNERBQTREO2FBQ3BGLENBQUM7UUFFSixLQUFLLEtBQUs7WUFDUixPQUFPLFdBQVcsQ0FDaEIsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSwyQ0FBMkM7WUFDdEUsS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTO1lBQ3ZCLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxxREFBcUQ7YUFDN0UsQ0FBQztRQUVKLEtBQUssS0FBSztZQUNSLE9BQU8sV0FBVyxDQUNoQixHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLG9DQUFvQztZQUMvRCxLQUFLLENBQUMsYUFBYSxFQUFFLGdCQUFnQjtZQUNyQyxLQUFLLENBQUMsWUFBWSxFQUFFLGVBQWU7WUFDbkMsS0FBSyxDQUFDLGVBQWUsRUFBRSxrQkFBa0I7WUFDekMsS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTO1lBQ3ZCLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyw0REFBNEQ7YUFDcEYsQ0FBQztRQUNKLEtBQUssS0FBSztZQUNSLE9BQU8sV0FBVyxDQUNoQixHQUFHLFVBQVUsRUFBRSxxRkFBcUY7WUFDcEcsS0FBSyxDQUFDLFFBQVEsRUFBRSxXQUFXO1lBQzNCLEtBQUssQ0FBQyxPQUFPLEVBQUUsVUFBVTtZQUN6QixLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU87WUFDbkIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxjQUFjO2FBQ2pDLENBQUM7UUFDSixLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssUUFBUSxDQUFDO1FBQ2QsS0FBSyxRQUFRLENBQUM7UUFDZCxLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssV0FBVyxDQUFDO1FBQ2pCLEtBQUssUUFBUSxDQUFDO1FBQ2QsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssS0FBSyxDQUFDO1FBQ1gsS0FBSyxLQUFLLENBQUM7UUFDWCxLQUFLLE1BQU07WUFDVCxPQUFPLFdBQVcsQ0FDaEIsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxxQkFBcUI7WUFDaEQsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRO1lBQ3JCLEtBQUssQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCO1lBQ3JDLEtBQUssQ0FBQyxPQUFPLEVBQUUsVUFBVTtZQUN6QixLQUFLLENBQUMsUUFBUSxFQUFFLFdBQVc7WUFDM0IsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxrQ0FBa0M7WUFDN0QsS0FBSyxDQUFDLGVBQWUsQ0FBQyxrQkFBa0I7YUFDekMsQ0FBQztRQUNKLEtBQUssS0FBSztZQUNSLE9BQU8sV0FBVyxDQUNoQixHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLG9DQUFvQztZQUMvRCxLQUFLLENBQUMsU0FBUyxFQUNmLEtBQUssQ0FBQyxRQUFRLEVBQ2QsS0FBSyxDQUFDLGVBQWUsRUFDckIsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLDREQUE0RDthQUNwRixDQUFDO1FBQ0osS0FBSyxLQUFLO1lBQ1IsT0FBTyxXQUFXLENBQ2hCLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsb0NBQW9DO1lBQy9ELEtBQUssQ0FBQyxlQUFlLEVBQUUsa0JBQWtCO1lBQ3pDLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyw0REFBNEQ7YUFDcEYsQ0FBQztRQUNKO1lBQ0UsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztBQUNILENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFxQjtJQUM3QyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxZQUFZLHNCQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUEscUJBQVUsRUFBQyxLQUFLLENBQUMsT0FBaUIsQ0FBQyxDQUFDO0lBRTNHLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FDbEIsSUFBSSxrQkFBVyxDQUFDO1FBQ2QsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFO1FBQ1osSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1FBQ2hCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtRQUN4QixhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7UUFDbEMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFlO1FBQzVCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztRQUN0QixRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBYTtRQUM1QyxPQUFPO1FBQ1AsZUFBZSxFQUFHLEtBQUssQ0FBQyxlQUEwQixJQUFJLFdBQVc7UUFDakUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksRUFBRTtRQUMxQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNoRCxRQUFRLEVBQUcsS0FBSyxDQUFDLFFBQW1CLElBQUksRUFBRTtRQUMxQyxJQUFJLEVBQUcsS0FBSyxDQUFDLElBQWUsSUFBSSxRQUFRO1FBQ3hDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztLQUNuQixDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUFDLEtBQXFCO0lBQ25ELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLCtDQUErQztRQUMvQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGtCQUFzRDtZQUNoRSxRQUFRLEVBQUUsS0FBSyxDQUFDLE9BQU87U0FDeEIsQ0FBQztJQUNKLENBQUM7SUFDRCxnREFBZ0Q7SUFDaEQsT0FBTztRQUNMLFFBQVEsRUFBRSwwQkFBOEQ7UUFDeEUsUUFBUSxFQUFFLEtBQUssQ0FBQyxlQUFlO0tBQ2hDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxLQUFxQjtJQUNuRCxJQUFJLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMxQixPQUFPO1lBQ0wsV0FBVyxFQUFFLDBCQUE4RDtZQUMzRSxXQUFXLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDbEMsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU87UUFDTCxXQUFXLEVBQUUsa0JBQXNEO1FBQ25FLFdBQVcsRUFBRSxLQUFLLENBQUMsZUFBZTtRQUNsQyxLQUFLLEVBQUUsS0FBSztLQUNiLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBaUQ7SUFDdkcsT0FBTyxPQUFPLENBQUMsYUFBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxhQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksYUFBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUYsQ0FBQztBQUVELFNBQWdCLGdDQUFnQyxDQUFDLGNBQWdEO0lBQy9GLE1BQU0sU0FBUyxHQUFvQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRTdELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQUM7UUFDaEMsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixrQkFBa0I7UUFDbEIsbUJBQW1CO1FBQ25CLGNBQWM7UUFDZCxjQUFjO1FBQ2QsZUFBZTtRQUNmLG1CQUFtQjtRQUNuQixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLG9CQUFvQjtRQUNwQixxQkFBcUI7UUFDckIsdUJBQXVCO1FBQ3ZCLGlCQUFpQjtRQUNqQixxQkFBcUI7UUFDckIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0Qix1QkFBdUI7UUFDdkIscUJBQXFCO1FBQ3JCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsdUJBQXVCO0tBQ3hCLENBQUMsQ0FBQztJQUVILGdEQUFnRDtJQUNoRCxhQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFO1FBQy9CLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBRUgsb0RBQW9EO0lBQ3BELEtBQUssTUFBTSxZQUFZLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1FBQ3pELElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTTtZQUFFLFNBQVM7UUFDbkMsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXBDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLEdBQUcsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM1RixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLEtBQUssRUFBRSxDQUFDO29CQUNWLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDbkMsQ0FBQztZQUNILENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNYLE9BQU8sQ0FBQyxJQUFJLENBQ1YsbUNBQW1DLFdBQVcsQ0FBQyxJQUFJLFNBQVMsV0FBVyxDQUFDLEVBQUUsYUFDeEUsV0FBVyxDQUFDLE1BQ2QsV0FBWSxDQUFXLENBQUMsT0FBTyxFQUFFLENBQ2xDLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLGFBQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQix1QkFBdUIsQ0FDckMsWUFBcUQsRUFDckQsV0FBZ0M7SUFFaEMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLEdBQUcsQ0FDbkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQXNCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQ3RGLENBQUM7SUFDRixPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQ3ZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pELEdBQUc7UUFDSCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDakIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQ3JHLE1BQU0sUUFBUSxHQUFHLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlELE9BQU8sUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ25GLENBQUMsQ0FBQztLQUNILENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLHVDQUF1QyxDQUNyRCxxQkFBOEQ7SUFFOUQsTUFBTSxpQkFBaUIsR0FBcUMsRUFBRSxDQUFDO0lBQy9ELE1BQU0sY0FBYyxHQUFHLElBQUEseUJBQWMsR0FBRSxDQUFDO0lBRXhDLEtBQUssTUFBTSxZQUFZLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUM7UUFDaEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNO1lBQUUsU0FBUztRQUNuQyxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEMsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdELElBQUksc0JBQXNCLENBQUMsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDO1lBQUUsU0FBUztRQUV6RCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3pCLHlHQUF5RztZQUN6RyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRztvQkFDcEMsRUFBRSxHQUFHLFdBQVcsRUFBRSxRQUFRLEVBQUUsV0FBVyxDQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUU7aUJBQzVFLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQUksT0FBTyxJQUFJLElBQUEsK0NBQWtCLEVBQUMsT0FBTyxDQUFDLE1BQWdCLENBQUMsRUFBRSxDQUFDO1lBQ25FLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDO2dCQUN2QixHQUFHLENBQUMsSUFBQSwrQ0FBa0IsRUFBQyxPQUFPLENBQUMsTUFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdkQsR0FBRyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsSUFBSSxFQUFFLENBQUM7YUFDMUMsQ0FBQyxDQUFDO1lBQ0gsV0FBVyxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzdFLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxXQUFXLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN0RyxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sZ0NBQWdDLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBRUQsU0FBZ0Isb0NBQW9DLENBQ2xELFdBQWtDO0lBRWxDLElBQUksZUFBMkMsQ0FBQztJQUNoRCxNQUFNLGNBQWMsR0FBRyxJQUFBLHlCQUFjLEdBQUUsQ0FBQztJQUN4QyxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFN0QsSUFBSSxzQkFBc0IsQ0FBQyxFQUFFLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUVqRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pCLHlHQUF5RztRQUN6RyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osT0FBTyxXQUFXLENBQUMsRUFBRSxHQUFHLFdBQVcsRUFBRSxRQUFRLEVBQUUsV0FBVyxDQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQW9CLENBQUMsQ0FBQztRQUNwSCxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksT0FBTyxJQUFJLElBQUEsK0NBQWtCLEVBQUMsT0FBTyxDQUFDLE1BQWdCLENBQUMsRUFBRSxDQUFDO1FBQzVELE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDO1lBQ3ZCLEdBQUcsQ0FBQyxJQUFBLCtDQUFrQixFQUFDLE9BQU8sQ0FBQyxNQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZELEdBQUcsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLElBQUksRUFBRSxDQUFDO1NBQzFDLENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM3RSxlQUFlLEdBQUcsRUFBRSxHQUFHLFdBQVcsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxPQUFPLEVBQW9CLENBQUM7UUFDaEcsT0FBTyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdEMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhbGdvVG9rZW4sXG4gIGFwdE5GVENvbGxlY3Rpb24sXG4gIGFwdFRva2VuLFxuICBhcmJldGhFcmMyMCxcbiAgYXZheEVyYzIwLFxuICBiZXJhRXJjMjAsXG4gIGJzY1Rva2VuLFxuICBjZWxvVG9rZW4sXG4gIGNvc21vc1Rva2VuLFxuICBlb3NUb2tlbixcbiAgZXJjMjAsXG4gIGhlZGVyYVRva2VuLFxuICBqZXR0b25Ub2tlbixcbiAgbmVwMTQxVG9rZW4sXG4gIG9wZXRoRXJjMjAsXG4gIHBvbHlnb25FcmMyMCxcbiAgcG9seXhUb2tlbixcbiAgc2lwMTBUb2tlbixcbiAgc29sVG9rZW4sXG4gIHN0ZWxsYXJUb2tlbixcbiAgc3VpVG9rZW4sXG4gIHRhb1Rva2VuLFxuICB0cm9uVG9rZW4sXG4gIHZldE5GVENvbGxlY3Rpb24sXG4gIHZldFRva2VuLFxuICB4cnBUb2tlbixcbiAgYWRhVG9rZW4sXG4gIGVyYzIwVG9rZW4sXG4gIGVyYzcyMVRva2VuLFxufSBmcm9tICcuL2FjY291bnQnO1xuaW1wb3J0IHsgb2ZjVG9rZW4gfSBmcm9tICcuL29mYyc7XG5pbXBvcnQgeyBCYXNlQ29pbiwgQ29pbkZlYXR1cmUsIER5bmFtaWNDb2luIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEFtc05ldHdvcmtDb25maWdNYXAsIEFtc1Rva2VuQ29uZmlnLCBUcmltbWVkQW1zVG9rZW5Db25maWcgfSBmcm9tICcuL3Rva2VuQ29uZmlnJztcbmltcG9ydCB7IENvaW5NYXAgfSBmcm9tICcuL21hcCc7XG5pbXBvcnQgeyBCYXNlTmV0d29yaywgZ2V0TmV0d29yaywgZ2V0TmV0d29ya3NNYXAsIE5ldHdvcmtUeXBlIH0gZnJvbSAnLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBnZXROZXR3b3JrRmVhdHVyZXMgfSBmcm9tICcuL25ldHdvcmtGZWF0dXJlTWFwRm9yVG9rZW5zJztcbmltcG9ydCB7IG9mY0VyYzIwQ29pbnMsIHRPZmNFcmMyMENvaW5zIH0gZnJvbSAnLi9jb2lucy9vZmNFcmMyMENvaW5zJztcbmltcG9ydCB7IG9mY0NvaW5zIH0gZnJvbSAnLi9jb2lucy9vZmNDb2lucyc7XG5pbXBvcnQgeyBhbGxDb2luc0FuZFRva2VucyB9IGZyb20gJy4vYWxsQ29pbnNBbmRUb2tlbnMnO1xuaW1wb3J0IHsgYm90T2ZjVG9rZW5zIH0gZnJvbSAnLi9jb2lucy9ib3RPZmNUb2tlbnMnO1xuXG5leHBvcnQgY29uc3QgY29pbnMgPSBDb2luTWFwLmZyb21Db2lucyhbXG4gIC4uLmFsbENvaW5zQW5kVG9rZW5zLFxuICAuLi5vZmNFcmMyMENvaW5zLFxuICAuLi50T2ZjRXJjMjBDb2lucyxcbiAgLi4ub2ZjQ29pbnMsXG4gIC4uLmJvdE9mY1Rva2Vucyxcbl0pO1xuXG4vLyBCdWlsZCBhIG1hcCBvZiBFUkMyMC1zdXBwb3J0aW5nIGNoYWluIGZhbWlseSBuYW1lcyB0byB0aGVpciBtYWlubmV0IGNvaW4gbmFtZXNcbi8vIE1hcHMgZmFtaWx5IC0+IGNvaW4gbmFtZSAoZS5nLiwgJ2lwJyAtPiAnaXAnKVxuY29uc3QgZXJjMjBDaGFpblRvTmFtZU1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG5hbGxDb2luc0FuZFRva2Vucy5mb3JFYWNoKChjb2luKSA9PiB7XG4gIGlmIChcbiAgICBjb2luLmZlYXR1cmVzLmluY2x1ZGVzKENvaW5GZWF0dXJlLlNVUFBPUlRTX0VSQzIwKSAmJlxuICAgIGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUICYmXG4gICAgIWNvaW4uaXNUb2tlblxuICApIHtcbiAgICBlcmMyMENoYWluVG9OYW1lTWFwW2NvaW4uZmFtaWx5XSA9IGNvaW4ubmFtZTtcbiAgfVxufSk7XG5cbmNvbnN0IGVyYzcyMUNoYWluVG9OYW1lTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5hbGxDb2luc0FuZFRva2Vucy5mb3JFYWNoKChjb2luKSA9PiB7XG4gIGlmIChcbiAgICBjb2luLmZlYXR1cmVzLmluY2x1ZGVzKENvaW5GZWF0dXJlLlNVUFBPUlRTX0VSQzcyMSkgJiZcbiAgICBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCAmJlxuICAgICFjb2luLmlzVG9rZW5cbiAgKSB7XG4gICAgZXJjNzIxQ2hhaW5Ub05hbWVNYXBbY29pbi5mYW1pbHldID0gY29pbi5uYW1lO1xuICB9XG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRva2VuKHRva2VuOiBBbXNUb2tlbkNvbmZpZyk6IFJlYWRvbmx5PEJhc2VDb2luPiB8IHVuZGVmaW5lZCB7XG4gIGlmICghdG9rZW4uaXNUb2tlbikge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYnVpbGREeW5hbWljQ29pbih0b2tlbik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIGJ1aWxkIGR5bmFtaWMgY29pbiBmb3IgJHt0b2tlbi5uYW1lfSAoJHt0b2tlbi5pZH0pOmAsIGVycm9yKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG4gIGNvbnN0IGluaXRpYWxpemVyTWFwOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICBhbGdvOiBhbGdvVG9rZW4sXG4gICAgYXB0OiBhcHRUb2tlbixcbiAgICBhcmJldGg6IGFyYmV0aEVyYzIwLFxuICAgIGF2YXhjOiBhdmF4RXJjMjAsXG4gICAgYmFzZWV0aDogZXJjMjBUb2tlbixcbiAgICBiZXJhOiBiZXJhRXJjMjAsXG4gICAgZmxvdzogZXJjMjBUb2tlbixcbiAgICBsaW5lYWV0aDogZXJjMjBUb2tlbixcbiAgICBzZWlldm06IGVyYzIwVG9rZW4sXG4gICAgbW9uOiBlcmMyMFRva2VuLFxuICAgIHhkYzogZXJjMjBUb2tlbixcbiAgICBic2M6IGJzY1Rva2VuLFxuICAgIGNlbG86IGNlbG9Ub2tlbixcbiAgICBjb3Ntb3M6IGNvc21vc1Rva2VuLFxuICAgIGV0aDogZXJjMjAsXG4gICAgZW9zOiBlb3NUb2tlbixcbiAgICBoYmFyOiBoZWRlcmFUb2tlbixcbiAgICBuZWFyOiBuZXAxNDFUb2tlbixcbiAgICBvcGV0aDogb3BldGhFcmMyMCxcbiAgICBwb2x5Z29uOiBwb2x5Z29uRXJjMjAsXG4gICAgc29sOiBzb2xUb2tlbixcbiAgICBzdHg6IHNpcDEwVG9rZW4sXG4gICAgc3VpOiBzdWlUb2tlbixcbiAgICB0YW86IHRhb1Rva2VuLFxuICAgIHBvbHl4OiBwb2x5eFRva2VuLFxuICAgIHRyeDogdHJvblRva2VuLFxuICAgIHZldDogdmV0VG9rZW4sXG4gICAgeGxtOiBzdGVsbGFyVG9rZW4sXG4gICAgeHJwOiB4cnBUb2tlbixcbiAgICBvZmM6IG9mY1Rva2VuLFxuICAgIGFkYTogYWRhVG9rZW4sXG4gICAgdG9uOiBqZXR0b25Ub2tlbixcbiAgfTtcblxuICAvLyBFVk0tY29tcGF0aWJsZSBjaGFpbnMgYXJlIGlkZW50aWZpZWQgYnkgYSBudW1lcmljIGNoYWluSWQgb24gdGhlaXIgbmV0d29yayBvYmplY3QuXG4gIGNvbnN0IHRva2VuTmV0d29yayA9IHRva2VuLm5ldHdvcmsgaW5zdGFuY2VvZiBCYXNlTmV0d29yayA/IHRva2VuLm5ldHdvcmsgOiB1bmRlZmluZWQ7XG4gIGlmIChcbiAgICB0b2tlbk5ldHdvcmsgJiZcbiAgICAnY2hhaW5JZCcgaW4gdG9rZW5OZXR3b3JrICYmXG4gICAgdHlwZW9mICh0b2tlbk5ldHdvcmsgYXMgeyBjaGFpbklkPzogdW5rbm93biB9KS5jaGFpbklkID09PSAnbnVtYmVyJ1xuICApIHtcbiAgICBpZiAoIWVyYzIwQ2hhaW5Ub05hbWVNYXBbdG9rZW4uZmFtaWx5XSkge1xuICAgICAgZXJjMjBDaGFpblRvTmFtZU1hcFt0b2tlbi5mYW1pbHldID0gdG9rZW4uZmFtaWx5O1xuICAgIH1cbiAgfVxuXG4gIC8vIGR5bmFtaWNhbGx5IGFkZCBlcmMyMCB0b2tlbiBpbml0aWFsaXplcnMgZm9yIGV0aCBsaWtlIGNoYWlucyB0byB0aGUgaW5pdGlhbGl6ZXIgbWFwXG4gIE9iamVjdC5rZXlzKGVyYzIwQ2hhaW5Ub05hbWVNYXApLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGluaXRpYWxpemVyTWFwW2tleV0gPSBlcmMyMFRva2VuO1xuICB9KTtcblxuICBPYmplY3Qua2V5cyhlcmM3MjFDaGFpblRvTmFtZU1hcCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgaW5pdGlhbGl6ZXJNYXBba2V5XSA9IGVyYzcyMVRva2VuO1xuICB9KTtcblxuICAvL3JldHVybiB0aGUgQmFzZUNvaW4gZnJvbSBkZWZhdWx0IGNvaW4gbWFwIGlmIHByZXNlbnRcbiAgaWYgKGlzQ29pblByZXNlbnRJbkNvaW5NYXAoeyAuLi50b2tlbiB9KSkge1xuICAgIGlmIChjb2lucy5oYXModG9rZW4ubmFtZSkpIHtcbiAgICAgIHJldHVybiBjb2lucy5nZXQodG9rZW4ubmFtZSk7XG4gICAgfVxuICAgIGlmIChjb2lucy5oYXModG9rZW4uaWQpKSB7XG4gICAgICByZXR1cm4gY29pbnMuZ2V0KHRva2VuLmlkKTtcbiAgICB9XG4gICAgaWYgKHRva2VuLmFsaWFzICYmIGNvaW5zLmhhcyh0b2tlbi5hbGlhcykpIHtcbiAgICAgIHJldHVybiBjb2lucy5nZXQodG9rZW4uYWxpYXMpO1xuICAgIH1cbiAgfVxuICBjb25zdCBmYW1pbHkgPSB0b2tlbi5mYW1pbHk7XG4gIGNvbnN0IGluaXRpYWxpemVyID0gaW5pdGlhbGl6ZXJNYXBbZmFtaWx5XSBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBSZWFkb25seTxCYXNlQ29pbj47XG4gIGlmICghaW5pdGlhbGl6ZXIpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgY29tbW9uQXJncyA9IFtcbiAgICB0b2tlbi5pZCxcbiAgICB0b2tlbi5uYW1lLFxuICAgIHRva2VuLmZ1bGxOYW1lLFxuICAgIHRva2VuLmRlY2ltYWxQbGFjZXMsXG4gICAgdG9rZW4uYXNzZXQsXG4gICAgdG9rZW4uZmVhdHVyZXMsXG4gICAgdG9rZW4ucHJlZml4LFxuICAgIHRva2VuLnN1ZmZpeCxcbiAgICB0b2tlbi5uZXR3b3JrLFxuICAgIHRva2VuLnByaW1hcnlLZXlDdXJ2ZSxcbiAgXTtcblxuICBzd2l0Y2ggKGZhbWlseSkge1xuICAgIGNhc2UgZXJjMjBDaGFpblRvTmFtZU1hcFtmYW1pbHldOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzIHx8IHRva2VuLnRva2VuQWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIHRva2VuLmFzc2V0LFxuICAgICAgICB0b2tlbi5uZXR3b3JrLFxuICAgICAgICB0b2tlbi5mZWF0dXJlcyxcbiAgICAgICAgdG9rZW4ucHJlZml4LFxuICAgICAgICB0b2tlbi5zdWZmaXgsXG4gICAgICAgIHRva2VuLnByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcbiAgICBjYXNlIGVyYzcyMUNoYWluVG9OYW1lTWFwW2ZhbWlseV06XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgMyksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZVxuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICB0b2tlbi5uZXR3b3JrLFxuICAgICAgICB0b2tlbi5mZWF0dXJlcyxcbiAgICAgICAgdG9rZW4ucHJlZml4LFxuICAgICAgICB0b2tlbi5zdWZmaXgsXG4gICAgICAgIHRva2VuLnByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcbiAgICBjYXNlICdhcmJldGgnOlxuICAgIGNhc2UgJ2F2YXhjJzpcbiAgICBjYXNlICdiYXNlZXRoJzpcbiAgICBjYXNlICdiZXJhJzpcbiAgICBjYXNlICdic2MnOlxuICAgIGNhc2UgJ2Zsb3cnOlxuICAgIGNhc2UgJ2xpbmVhZXRoJzpcbiAgICBjYXNlICdzZWlldm0nOlxuICAgIGNhc2UgJ21vbic6XG4gICAgY2FzZSAneGRjJzpcbiAgICBjYXNlICdjZWxvJzpcbiAgICBjYXNlICdldGgnOlxuICAgIGNhc2UgJ29wZXRoJzpcbiAgICBjYXNlICdwb2x5Z29uJzpcbiAgICBjYXNlICd0cngnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzIHx8IHRva2VuLnRva2VuQWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuXG4gICAgY2FzZSAnYXB0JzpcbiAgICAgIGNvbnN0IHsgaW5pdEZ1bmMsIG9iamVjdElkIH0gPSBnZXRBcHRUb2tlbkluaXRpYWxpemVyKHRva2VuKTtcbiAgICAgIHJldHVybiBpbml0RnVuYyhcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIG9iamVjdElkLFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3ZldCc6XG4gICAgICBjb25zdCB7IHZldEluaXRGdW5jLCB2ZXRPYmplY3RJZCwgaXNORlQgfSA9IGdldFZldFRva2VuSW5pdGlhbGl6ZXIodG9rZW4pO1xuICAgICAgaWYgKGlzTkZUKSB7XG4gICAgICAgIHJldHVybiB2ZXRJbml0RnVuYyhcbiAgICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDMpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWVcbiAgICAgICAgICB2ZXRPYmplY3RJZCxcbiAgICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZldEluaXRGdW5jKFxuICAgICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICAgIHZldE9iamVjdElkLFxuICAgICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICBjYXNlICdzdHgnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uYXNzZXRJZCwgLy8gYXNzZXRJZFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ2FsZ28nOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDIpLCAvLyBpZCwgbmFtZVxuICAgICAgICB0b2tlbi5hbGlhcywgLy8gYWxpYXNcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgyKSAvLyBmdWxsTmFtZSwgZGVjaW1hbCwgYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuXG4gICAgY2FzZSAnZW9zJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmNvbnRyYWN0TmFtZSwgLy8gY29udHJhY3ROYW1lXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCwgOCksIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXhcbiAgICAgICAgdG9rZW4uc3ltYm9sLCAvLyBzeW1ib2xcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg4KSAvLyBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICdoYmFyJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCAzKSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lXG4gICAgICAgIHRva2VuLm5ldHdvcmssIC8vIG5ldHdvcmtcbiAgICAgICAgdG9rZW4uZGVjaW1hbFBsYWNlcyxcbiAgICAgICAgdG9rZW4uYXNzZXQsXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNSwgOCksIC8vIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeFxuICAgICAgICB0b2tlbi5wcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICdzb2wnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4udG9rZW5BZGRyZXNzLCAvLyB0b2tlbkFkZHJlc3NcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzLCAvLyBjb250cmFjdEFkZHJlc3NcbiAgICAgICAgdG9rZW4uYXNzZXQsXG4gICAgICAgIHRva2VuLmZlYXR1cmVzLFxuICAgICAgICB0b2tlbi5wcm9ncmFtSWQsXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNikgLy8gcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3N1aSc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5wYWNrYWdlSWQsIC8vIHBhY2thZ2VJZFxuICAgICAgICB0b2tlbi5tb2R1bGUsIC8vIG1vZHVsZVxuICAgICAgICB0b2tlbi5zeW1ib2wsIC8vIHN5bWJvbFxuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3Rhbyc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5zdWJuZXRJZCwgLy8gc3VibmV0SWRcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG4gICAgY2FzZSAncG9seXgnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4udGlja2VyLCAvLyB0aWNrZXJcbiAgICAgICAgdG9rZW4uYXNzZXRJZCwgLy8gYXNzZXRJZFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3hsbSc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNSksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlcywgYXNzZXRcbiAgICAgICAgdG9rZW4uZG9tYWluLCAvLyBkb21haW5cbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg1KSAvLyBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3hycCc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5pc3N1ZXJBZGRyZXNzLCAvLyBpc3N1ZXJBZGRyZXNzXG4gICAgICAgIHRva2VuLmN1cnJlY255Y29kZSwgLy8gY3VycmVuY3lDb2RlXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIHRva2VuLmRvbWFpbiwgLy8gZG9tYWluXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuICAgIGNhc2UgJ29mYyc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3MsIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlcywgYXNzZXQsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICAgdG9rZW4uYmFzZVVuaXQsIC8vIGJhc2VVbml0XG4gICAgICAgIHRva2VuLmlzVG9rZW4sIC8vIGlzVG9rZW5cbiAgICAgICAgdG9rZW4ua2luZCwgLy8ga2luZFxuICAgICAgICB0b2tlbi5hZGRyZXNzQ29pbiAvLyBhZGRyZXNzQ29pblxuICAgICAgKTtcbiAgICBjYXNlICdhc2knOlxuICAgIGNhc2UgJ2F0b20nOlxuICAgIGNhc2UgJ2JhYnknOlxuICAgIGNhc2UgJ2JsZCc6XG4gICAgY2FzZSAnY29yZXVtJzpcbiAgICBjYXNlICdjcm9ub3MnOlxuICAgIGNhc2UgJ2hhc2gnOlxuICAgIGNhc2UgJ2luamVjdGl2ZSc6XG4gICAgY2FzZSAnaW5pdGlhJzpcbiAgICBjYXNlICdvc21vJzpcbiAgICBjYXNlICd0aG9yJzpcbiAgICBjYXNlICdzZWknOlxuICAgIGNhc2UgJ3RpYSc6XG4gICAgY2FzZSAnemV0YSc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgMyksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZVxuICAgICAgICB0b2tlbi5kZW5vbSwgLy8gZGVub21cbiAgICAgICAgdG9rZW4uZGVjaW1hbFBsYWNlcywgLy8gZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5uZXR3b3JrLCAvLyBuZXR3b3JrXG4gICAgICAgIHRva2VuLmJhc2VVbml0LCAvLyBiYXNlVW5pdFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQsIDgpLCAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4XG4gICAgICAgIHRva2VuLnByaW1hcnlLZXlDdXJ2ZSAvLyBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG4gICAgY2FzZSAnYWRhJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmFzc2V0TmFtZSxcbiAgICAgICAgdG9rZW4ucG9saWN5SWQsXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcyxcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG4gICAgY2FzZSAndG9uJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogQnVpbGQgYSByZWFsIER5bmFtaWNDb2luICsgRHluYW1pY05ldHdvcmsgaW5zdGFuY2UgZm9yIEFNUy1kaXNjb3ZlcmVkIGJhc2UgY2hhaW5zXG4gKiB3aG9zZSBmYW1pbHkgaXMgbm90IHlldCByZWdpc3RlcmVkIGluIHRoZSBTREsncyBpbml0aWFsaXplck1hcC5cbiAqIENhbGxlZCBmcm9tIGNyZWF0ZVRva2VuKCkgYXMgYSBmYWxsYmFjayB3aGVuIG5vIGluaXRpYWxpemVyIGV4aXN0cyBhbmQgaXNUb2tlbiBpcyBmYWxzZS5cbiAqL1xuZnVuY3Rpb24gYnVpbGREeW5hbWljQ29pbih0b2tlbjogQW1zVG9rZW5Db25maWcpOiBSZWFkb25seTxCYXNlQ29pbj4ge1xuICBjb25zdCBuZXR3b3JrID0gdG9rZW4ubmV0d29yayBpbnN0YW5jZW9mIEJhc2VOZXR3b3JrID8gdG9rZW4ubmV0d29yayA6IGdldE5ldHdvcmsodG9rZW4ubmV0d29yayBhcyBzdHJpbmcpO1xuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKFxuICAgIG5ldyBEeW5hbWljQ29pbih7XG4gICAgICBpZDogdG9rZW4uaWQsXG4gICAgICBuYW1lOiB0b2tlbi5uYW1lLFxuICAgICAgZnVsbE5hbWU6IHRva2VuLmZ1bGxOYW1lLFxuICAgICAgZGVjaW1hbFBsYWNlczogdG9rZW4uZGVjaW1hbFBsYWNlcyxcbiAgICAgIGFzc2V0OiB0b2tlbi5hc3NldCBhcyBzdHJpbmcsXG4gICAgICBpc1Rva2VuOiB0b2tlbi5pc1Rva2VuLFxuICAgICAgZmVhdHVyZXM6ICh0b2tlbi5mZWF0dXJlcyA/PyBbXSkgYXMgc3RyaW5nW10sXG4gICAgICBuZXR3b3JrLFxuICAgICAgcHJpbWFyeUtleUN1cnZlOiAodG9rZW4ucHJpbWFyeUtleUN1cnZlIGFzIHN0cmluZykgPz8gJ3NlY3AyNTZrMScsXG4gICAgICBwcmVmaXg6IHRva2VuLnByZWZpeCA/PyAnJyxcbiAgICAgIHN1ZmZpeDogdG9rZW4uc3VmZml4ID8/IHRva2VuLm5hbWUudG9VcHBlckNhc2UoKSxcbiAgICAgIGJhc2VVbml0OiAodG9rZW4uYmFzZVVuaXQgYXMgc3RyaW5nKSA/PyAnJyxcbiAgICAgIGtpbmQ6ICh0b2tlbi5raW5kIGFzIHN0cmluZykgPz8gJ2NyeXB0bycsXG4gICAgICBhbGlhczogdG9rZW4uYWxpYXMsXG4gICAgfSlcbiAgKTtcbn1cblxuZnVuY3Rpb24gZ2V0QXB0VG9rZW5Jbml0aWFsaXplcih0b2tlbjogQW1zVG9rZW5Db25maWcpIHtcbiAgaWYgKHRva2VuLmFzc2V0SWQpIHtcbiAgICAvLyB1c2VkIGZvciBmdW5naWJsZS1hc3NldHMgLyBsZWdhY3kgY29pbnMgZXRjLlxuICAgIHJldHVybiB7XG4gICAgICBpbml0RnVuYzogYXB0VG9rZW4gYXMgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gUmVhZG9ubHk8QmFzZUNvaW4+LFxuICAgICAgb2JqZWN0SWQ6IHRva2VuLmFzc2V0SWQsXG4gICAgfTtcbiAgfVxuICAvLyB1c2VkIGZvciBub24tZnVuZ2libGUgdG9rZW4gKE5GVCkgY29sbGVjdGlvbnNcbiAgcmV0dXJuIHtcbiAgICBpbml0RnVuYzogYXB0TkZUQ29sbGVjdGlvbiBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBSZWFkb25seTxCYXNlQ29pbj4sXG4gICAgb2JqZWN0SWQ6IHRva2VuLm5mdENvbGxlY3Rpb25JZCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0VmV0VG9rZW5Jbml0aWFsaXplcih0b2tlbjogQW1zVG9rZW5Db25maWcpIHtcbiAgaWYgKHRva2VuLm5mdENvbGxlY3Rpb25JZCkge1xuICAgIHJldHVybiB7XG4gICAgICB2ZXRJbml0RnVuYzogdmV0TkZUQ29sbGVjdGlvbiBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBSZWFkb25seTxCYXNlQ29pbj4sXG4gICAgICB2ZXRPYmplY3RJZDogdG9rZW4ubmZ0Q29sbGVjdGlvbklkLFxuICAgICAgaXNORlQ6IHRydWUsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdmV0SW5pdEZ1bmM6IHZldFRva2VuIGFzICguLi5hcmdzOiB1bmtub3duW10pID0+IFJlYWRvbmx5PEJhc2VDb2luPixcbiAgICB2ZXRPYmplY3RJZDogdG9rZW4uY29udHJhY3RBZGRyZXNzLFxuICAgIGlzTkZUOiBmYWxzZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29pblByZXNlbnRJbkNvaW5NYXAoeyBuYW1lLCBpZCwgYWxpYXMgfTogeyBuYW1lOiBzdHJpbmc7IGlkPzogc3RyaW5nOyBhbGlhcz86IHN0cmluZyB9KTogYm9vbGVhbiB7XG4gIHJldHVybiBCb29sZWFuKGNvaW5zLmhhcyhuYW1lKSB8fCAoaWQgJiYgY29pbnMuaGFzKGlkKSkgfHwgKGFsaWFzICYmIGNvaW5zLmhhcyhhbGlhcykpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRva2VuTWFwVXNpbmdDb25maWdEZXRhaWxzKHRva2VuQ29uZmlnTWFwOiBSZWNvcmQ8c3RyaW5nLCBBbXNUb2tlbkNvbmZpZ1tdPik6IENvaW5NYXAge1xuICBjb25zdCBCYXNlQ29pbnM6IE1hcDxzdHJpbmcsIFJlYWRvbmx5PEJhc2VDb2luPj4gPSBuZXcgTWFwKCk7XG5cbiAgY29uc3QgbmZ0QW5kT3RoZXJUb2tlbnMgPSBuZXcgU2V0KFtcbiAgICAnZXJjNzIxOmJzY3Rva2VuJyxcbiAgICAndGVyYzcyMTpic2N0b2tlbicsXG4gICAgJ2VyYzExNTU6YnNjdG9rZW4nLFxuICAgICd0ZXJjMTE1NTpic2N0b2tlbicsXG4gICAgJ2VyYzcyMTp3aXRjaCcsXG4gICAgJ2VyYzcyMTp0b2tlbicsXG4gICAgJ2VyYzExNTU6dG9rZW4nLFxuICAgICdub25zdGFuZGFyZDp0b2tlbicsXG4gICAgJ3RlcmM3MjE6dG9rZW4nLFxuICAgICd0ZXJjMTE1NTp0b2tlbicsXG4gICAgJ3Rub25zdGFuZGFyZDp0b2tlbicsXG4gICAgJ3RlcmM3MjE6Yml0Z29lcmM3MjEnLFxuICAgICd0ZXJjMTE1NTpiaXRnb2VyYzExNTUnLFxuICAgICd0ZXJjNzIxOmhvb2RpZGonLFxuICAgICdlcmM3MjE6cG9seWdvbnRva2VuJyxcbiAgICAnZXJjMTE1NTpwb2x5Z29udG9rZW4nLFxuICAgICd0ZXJjNzIxOnBvbHlnb250b2tlbicsXG4gICAgJ3RlcmMxMTU1OnBvbHlnb250b2tlbicsXG4gICAgJ2VyYzcyMTpzb25laXVtdG9rZW4nLFxuICAgICdlcmMxMTU1OnNvbmVpdW10b2tlbicsXG4gICAgJ3RlcmM3MjE6c29uZWl1bXRva2VuJyxcbiAgICAndGVyYzExNTU6c29uZWl1bXRva2VuJyxcbiAgXSk7XG5cbiAgLy8gQWRkIGFsbCB0aGUgY29pbnMgZnJvbSBzdGF0aWNzIGNvaW4gbWFwIGZpcnN0XG4gIGNvaW5zLmZvckVhY2goKGNvaW4sIGNvaW5OYW1lKSA9PiB7XG4gICAgQmFzZUNvaW5zLnNldChjb2luTmFtZSwgY29pbik7XG4gIH0pO1xuXG4gIC8vIGFkZCB0aGUgdG9rZW5zIG5vdCBwcmVzZW50IGluIHRoZSBzdGF0aWMgY29pbiBtYXBcbiAgZm9yIChjb25zdCB0b2tlbkNvbmZpZ3Mgb2YgT2JqZWN0LnZhbHVlcyh0b2tlbkNvbmZpZ01hcCkpIHtcbiAgICBpZiAoIXRva2VuQ29uZmlncy5sZW5ndGgpIGNvbnRpbnVlO1xuICAgIGNvbnN0IHRva2VuQ29uZmlnID0gdG9rZW5Db25maWdzWzBdO1xuXG4gICAgaWYgKCFpc0NvaW5QcmVzZW50SW5Db2luTWFwKHsgLi4udG9rZW5Db25maWcgfSkgJiYgIW5mdEFuZE90aGVyVG9rZW5zLmhhcyh0b2tlbkNvbmZpZy5uYW1lKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSBjcmVhdGVUb2tlbih0b2tlbkNvbmZpZyk7XG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgIEJhc2VDb2lucy5zZXQodG9rZW4ubmFtZSwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgU2tpcHBpbmcgbWFsZm9ybWVkIHRva2VuOiBuYW1lPVwiJHt0b2tlbkNvbmZpZy5uYW1lfVwiIGlkPVwiJHt0b2tlbkNvbmZpZy5pZH1cIiBmYW1pbHk9XCIke1xuICAgICAgICAgICAgdG9rZW5Db25maWcuZmFtaWx5XG4gICAgICAgICAgfVwiIGVycm9yPSR7KGUgYXMgRXJyb3IpLm1lc3NhZ2V9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBDb2luTWFwLmZyb21Db2lucyhBcnJheS5mcm9tKEJhc2VDb2lucy52YWx1ZXMoKSkpO1xufVxuXG4vKipcbiAqIEVucmljaCBiYXNlIGNoYWluIGNvaW5zIChpc1Rva2VuPWZhbHNlKSB3aXRoIGZlYXR1cmVzIGZyb20gdGhlIEFNUyBuZXR3b3JrcyBtYXAuXG4gKlxuICogY3JlYXRlVG9rZW5NYXBVc2luZ1RyaW1tZWRDb25maWdEZXRhaWxzIHJlYWRzIGZlYXR1cmVzIGZvciBiYXNlIGNoYWlucyBmcm9tXG4gKiBUcmltbWVkQW1zVG9rZW5Db25maWcuYWRkaXRpb25hbEZlYXR1cmVzLiBUaGUgYXNzZXRzTGlzdCBlbmRwb2ludCByZXR1cm5zIGJhc2UgY2hhaW5zIHdpdGggbm8gZmVhdHVyZXM7XG4gKiBmZWF0dXJlcyBhcmUgaW4gdGhlIG5ldHdvcmtzIGVuZHBvaW50ICgvYXBpL3YxL25ldHdvcmtzLzpuZXR3b3JrKSwgbWF0Y2hlZCBieSBjb2luLm5ldHdvcmsubmFtZSA9PT0gbmV0d29ya3NFbnRyeS5uYW1lLlxuICpcbiAqIENvaW5zIHRoYXQgYWxyZWFkeSBoYXZlIGFkZGl0aW9uYWxGZWF0dXJlcyBkZWZpbmVkIGFyZSBsZWZ0IHVuY2hhbmdlZC5cbiAqIENvaW5zIHdob3NlIG5ldHdvcmsubmFtZSBoYXMgbm8gbWF0Y2ggaW4gbmV0d29ya3NNYXAgYXJlIGxlZnQgdW5jaGFuZ2VkIChlbXB0eSBmZWF0dXJlcykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnJpY2hCYXNlQ2hhaW5GZWF0dXJlcyhcbiAgY29pblRva2VuTWFwOiBSZWNvcmQ8c3RyaW5nLCBUcmltbWVkQW1zVG9rZW5Db25maWdbXT4sXG4gIG5ldHdvcmtzTWFwOiBBbXNOZXR3b3JrQ29uZmlnTWFwXG4pOiBSZWNvcmQ8c3RyaW5nLCBUcmltbWVkQW1zVG9rZW5Db25maWdbXT4ge1xuICBjb25zdCBmZWF0dXJlc0J5TmV0d29ya05hbWUgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nW10+KFxuICAgIE9iamVjdC52YWx1ZXMobmV0d29ya3NNYXApLm1hcCgobmV0KTogW3N0cmluZywgc3RyaW5nW11dID0+IFtuZXQubmFtZSwgbmV0LmZlYXR1cmVzXSlcbiAgKTtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3QuZW50cmllcyhjb2luVG9rZW5NYXApLm1hcCgoW2tleSwgY29pbnNdKSA9PiBbXG4gICAgICBrZXksXG4gICAgICBjb2lucy5tYXAoKGNvaW4pID0+IHtcbiAgICAgICAgaWYgKGNvaW4uaXNUb2tlbiB8fCBjb2luLmFkZGl0aW9uYWxGZWF0dXJlcyAhPT0gdW5kZWZpbmVkIHx8IGNvaW4ubmV0d29yayA9PT0gdW5kZWZpbmVkKSByZXR1cm4gY29pbjtcbiAgICAgICAgY29uc3QgZmVhdHVyZXMgPSBmZWF0dXJlc0J5TmV0d29ya05hbWUuZ2V0KGNvaW4ubmV0d29yay5uYW1lKTtcbiAgICAgICAgcmV0dXJuIGZlYXR1cmVzICE9PSB1bmRlZmluZWQgPyB7IC4uLmNvaW4sIGFkZGl0aW9uYWxGZWF0dXJlczogZmVhdHVyZXMgfSA6IGNvaW47XG4gICAgICB9KSxcbiAgICBdKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9rZW5NYXBVc2luZ1RyaW1tZWRDb25maWdEZXRhaWxzKFxuICByZWR1Y2VkVG9rZW5Db25maWdNYXA6IFJlY29yZDxzdHJpbmcsIFRyaW1tZWRBbXNUb2tlbkNvbmZpZ1tdPlxuKTogQ29pbk1hcCB7XG4gIGNvbnN0IGFtc1Rva2VuQ29uZmlnTWFwOiBSZWNvcmQ8c3RyaW5nLCBBbXNUb2tlbkNvbmZpZ1tdPiA9IHt9O1xuICBjb25zdCBuZXR3b3JrTmFtZU1hcCA9IGdldE5ldHdvcmtzTWFwKCk7XG5cbiAgZm9yIChjb25zdCB0b2tlbkNvbmZpZ3Mgb2YgT2JqZWN0LnZhbHVlcyhyZWR1Y2VkVG9rZW5Db25maWdNYXApKSB7XG4gICAgaWYgKCF0b2tlbkNvbmZpZ3MubGVuZ3RoKSBjb250aW51ZTtcbiAgICBjb25zdCB0b2tlbkNvbmZpZyA9IHRva2VuQ29uZmlnc1swXTtcbiAgICBjb25zdCBuZXR3b3JrID0gbmV0d29ya05hbWVNYXAuZ2V0KHRva2VuQ29uZmlnLm5ldHdvcmsubmFtZSk7XG5cbiAgICBpZiAoaXNDb2luUHJlc2VudEluQ29pbk1hcCh7IC4uLnRva2VuQ29uZmlnIH0pKSBjb250aW51ZTtcblxuICAgIGlmICghdG9rZW5Db25maWcuaXNUb2tlbikge1xuICAgICAgLy8gRHluYW1pYyBiYXNlIGNoYWluIOKAlCBuZXR3b3JrIG11c3QgYmUgcHJlLXJlZ2lzdGVyZWQgaW4gbmV0d29ya0J5TmFtZSBtYXAgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi5cbiAgICAgIGlmIChuZXR3b3JrKSB7XG4gICAgICAgIGFtc1Rva2VuQ29uZmlnTWFwW3Rva2VuQ29uZmlnLm5hbWVdID0gW1xuICAgICAgICAgIHsgLi4udG9rZW5Db25maWcsIGZlYXR1cmVzOiB0b2tlbkNvbmZpZy5hZGRpdGlvbmFsRmVhdHVyZXMgPz8gW10sIG5ldHdvcmsgfSxcbiAgICAgICAgXTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5ldHdvcmsgJiYgZ2V0TmV0d29ya0ZlYXR1cmVzKG5ldHdvcmsuZmFtaWx5IGFzIHN0cmluZykpIHtcbiAgICAgIGNvbnN0IGZlYXR1cmVzID0gbmV3IFNldChbXG4gICAgICAgIC4uLihnZXROZXR3b3JrRmVhdHVyZXMobmV0d29yay5mYW1pbHkgYXMgc3RyaW5nKSB8fCBbXSksXG4gICAgICAgIC4uLih0b2tlbkNvbmZpZy5hZGRpdGlvbmFsRmVhdHVyZXMgfHwgW10pLFxuICAgICAgXSk7XG4gICAgICB0b2tlbkNvbmZpZy5leGNsdWRlZEZlYXR1cmVzPy5mb3JFYWNoKChmZWF0dXJlKSA9PiBmZWF0dXJlcy5kZWxldGUoZmVhdHVyZSkpO1xuICAgICAgYW1zVG9rZW5Db25maWdNYXBbdG9rZW5Db25maWcubmFtZV0gPSBbeyAuLi50b2tlbkNvbmZpZywgZmVhdHVyZXM6IEFycmF5LmZyb20oZmVhdHVyZXMpLCBuZXR3b3JrIH1dO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjcmVhdGVUb2tlbk1hcFVzaW5nQ29uZmlnRGV0YWlscyhhbXNUb2tlbkNvbmZpZ01hcCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb2tlblVzaW5nVHJpbW1lZENvbmZpZ0RldGFpbHMoXG4gIHRva2VuQ29uZmlnOiBUcmltbWVkQW1zVG9rZW5Db25maWdcbik6IFJlYWRvbmx5PEJhc2VDb2luPiB8IHVuZGVmaW5lZCB7XG4gIGxldCBmdWxsVG9rZW5Db25maWc6IEFtc1Rva2VuQ29uZmlnIHwgdW5kZWZpbmVkO1xuICBjb25zdCBuZXR3b3JrTmFtZU1hcCA9IGdldE5ldHdvcmtzTWFwKCk7XG4gIGNvbnN0IG5ldHdvcmsgPSBuZXR3b3JrTmFtZU1hcC5nZXQodG9rZW5Db25maWcubmV0d29yay5uYW1lKTtcblxuICBpZiAoaXNDb2luUHJlc2VudEluQ29pbk1hcCh7IC4uLnRva2VuQ29uZmlnIH0pKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIGlmICghdG9rZW5Db25maWcuaXNUb2tlbikge1xuICAgIC8vIER5bmFtaWMgYmFzZSBjaGFpbiDigJQgbmV0d29yayBtdXN0IGJlIHByZS1yZWdpc3RlcmVkIGluIG5ldHdvcmtCeU5hbWUgbWFwIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uXG4gICAgaWYgKG5ldHdvcmspIHtcbiAgICAgIHJldHVybiBjcmVhdGVUb2tlbih7IC4uLnRva2VuQ29uZmlnLCBmZWF0dXJlczogdG9rZW5Db25maWcuYWRkaXRpb25hbEZlYXR1cmVzID8/IFtdLCBuZXR3b3JrIH0gYXMgQW1zVG9rZW5Db25maWcpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKG5ldHdvcmsgJiYgZ2V0TmV0d29ya0ZlYXR1cmVzKG5ldHdvcmsuZmFtaWx5IGFzIHN0cmluZykpIHtcbiAgICBjb25zdCBmZWF0dXJlcyA9IG5ldyBTZXQoW1xuICAgICAgLi4uKGdldE5ldHdvcmtGZWF0dXJlcyhuZXR3b3JrLmZhbWlseSBhcyBzdHJpbmcpIHx8IFtdKSxcbiAgICAgIC4uLih0b2tlbkNvbmZpZy5hZGRpdGlvbmFsRmVhdHVyZXMgfHwgW10pLFxuICAgIF0pO1xuICAgIHRva2VuQ29uZmlnLmV4Y2x1ZGVkRmVhdHVyZXM/LmZvckVhY2goKGZlYXR1cmUpID0+IGZlYXR1cmVzLmRlbGV0ZShmZWF0dXJlKSk7XG4gICAgZnVsbFRva2VuQ29uZmlnID0geyAuLi50b2tlbkNvbmZpZywgZmVhdHVyZXM6IEFycmF5LmZyb20oZmVhdHVyZXMpLCBuZXR3b3JrIH0gYXMgQW1zVG9rZW5Db25maWc7XG4gICAgcmV0dXJuIGNyZWF0ZVRva2VuKGZ1bGxUb2tlbkNvbmZpZyk7XG4gIH1cbn1cbiJdfQ==
@@ -1,20 +1,19 @@
1
1
  import { BaseCoin, CoinFeature, KeyCurve, UnderlyingAsset } from './base';
2
2
  import { KaspaMainnet, KaspaTestnet } from './networks';
3
- export interface KaspaConstructorOptions {
4
- id: string;
5
- fullName: string;
6
- name: string;
7
- network: KaspaMainnet | KaspaTestnet;
8
- features: CoinFeature[];
9
- asset: UnderlyingAsset;
10
- prefix?: string;
11
- suffix?: string;
12
- primaryKeyCurve: KeyCurve;
13
- }
14
3
  export declare class KaspaCoin extends BaseCoin {
15
4
  static readonly DEFAULT_FEATURES: CoinFeature[];
16
5
  readonly network: KaspaMainnet | KaspaTestnet;
17
- constructor(options: KaspaConstructorOptions);
6
+ constructor(options: {
7
+ id: string;
8
+ fullName: string;
9
+ name: string;
10
+ network: KaspaMainnet | KaspaTestnet;
11
+ features: CoinFeature[];
12
+ asset: UnderlyingAsset;
13
+ prefix?: string;
14
+ suffix?: string;
15
+ primaryKeyCurve: KeyCurve;
16
+ });
18
17
  protected disallowedFeatures(): Set<CoinFeature>;
19
18
  protected requiredFeatures(): Set<CoinFeature>;
20
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"kaspa.d.ts","sourceRoot":"","sources":["../../src/kaspa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAY,WAAW,EAAY,QAAQ,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,GAAG,YAAY,CAAC;IACrC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,QAAQ,CAAC;CAC3B;AAED,qBAAa,SAAU,SAAQ,QAAQ;IACrC,gBAAuB,gBAAgB,gBAWrC;IAEF,SAAgB,OAAO,EAAE,YAAY,GAAG,YAAY,CAAC;gBAEzC,OAAO,EAAE,uBAAuB;IAY5C,SAAS,CAAC,kBAAkB,IAAI,GAAG,CAAC,WAAW,CAAC;IAIhD,SAAS,CAAC,gBAAgB,IAAI,GAAG,CAAC,WAAW,CAAC;CAG/C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CACnB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,YAAY,GAAG,YAAY,EACpC,KAAK,EAAE,eAAe,EACtB,QAAQ,GAAE,WAAW,EAA+B,EACpD,MAAM,SAAK,EACX,MAAM,GAAE,MAA2B,EACnC,eAAe,GAAE,QAA6B,uBAe/C"}
1
+ {"version":3,"file":"kaspa.d.ts","sourceRoot":"","sources":["../../src/kaspa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAY,WAAW,EAAY,QAAQ,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAExD,qBAAa,SAAU,SAAQ,QAAQ;IACrC,gBAAuB,gBAAgB,gBAWrC;IAEF,SAAgB,OAAO,EAAE,YAAY,GAAG,YAAY,CAAC;gBAEzC,OAAO,EAAE;QACnB,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,YAAY,GAAG,YAAY,CAAC;QACrC,QAAQ,EAAE,WAAW,EAAE,CAAC;QACxB,KAAK,EAAE,eAAe,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,eAAe,EAAE,QAAQ,CAAC;KAC3B;IAYD,SAAS,CAAC,kBAAkB,IAAI,GAAG,CAAC,WAAW,CAAC;IAIhD,SAAS,CAAC,gBAAgB,IAAI,GAAG,CAAC,WAAW,CAAC;CAG/C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CACnB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,YAAY,GAAG,YAAY,EACpC,KAAK,EAAE,eAAe,EACtB,QAAQ,GAAE,WAAW,EAA+B,EACpD,MAAM,SAAK,EACX,MAAM,GAAE,MAA2B,EACnC,eAAe,GAAE,QAA6B,uBAe/C"}
package/dist/src/kaspa.js CHANGED
@@ -60,4 +60,4 @@ function kaspa(id, name, fullName, network, asset, features = KaspaCoin.DEFAULT_
60
60
  primaryKeyCurve,
61
61
  }));
62
62
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FzcGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMva2FzcGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUVBLHNCQXdCQztBQXpGRCxpQ0FBOEY7QUFlOUYsTUFBYSxTQUFVLFNBQVEsZUFBUTtJQWdCckMsWUFBWSxPQUFnQztRQUMxQyxLQUFLLENBQUM7WUFDSixHQUFHLE9BQU87WUFDVixJQUFJLEVBQUUsZUFBUSxDQUFDLE1BQU07WUFDckIsT0FBTyxFQUFFLEtBQUs7WUFDZCxhQUFhLEVBQUUsQ0FBQztZQUNoQixRQUFRLEVBQUUsZUFBUSxDQUFDLEtBQUs7U0FDekIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFFUyxrQkFBa0I7UUFDMUIsT0FBTyxJQUFJLEdBQUcsQ0FBQyxDQUFDLGtCQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRVMsZ0JBQWdCO1FBQ3hCLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQyxrQkFBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7QUFsQ0gsOEJBbUNDO0FBbEN3QiwwQkFBZ0IsR0FBRztJQUN4QyxrQkFBVyxDQUFDLGFBQWE7SUFDekIsa0JBQVcsQ0FBQyxHQUFHO0lBQ2Ysa0JBQVcsQ0FBQyxRQUFRO0lBQ3BCLGtCQUFXLENBQUMsT0FBTztJQUNuQixrQkFBVyxDQUFDLG1CQUFtQjtJQUMvQixrQkFBVyxDQUFDLG1CQUFtQjtJQUMvQixrQkFBVyxDQUFDLHNCQUFzQjtJQUNsQyxrQkFBVyxDQUFDLDhCQUE4QjtJQUMxQyxrQkFBVyxDQUFDLHFCQUFxQjtJQUNqQyxrQkFBVyxDQUFDLHVCQUF1QjtDQUNwQyxDQUFDO0FBeUJKOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQWdCLEtBQUssQ0FDbkIsRUFBVSxFQUNWLElBQVksRUFDWixRQUFnQixFQUNoQixPQUFvQyxFQUNwQyxLQUFzQixFQUN0QixXQUEwQixTQUFTLENBQUMsZ0JBQWdCLEVBQ3BELE1BQU0sR0FBRyxFQUFFLEVBQ1gsU0FBaUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUNuQyxrQkFBNEIsZUFBUSxDQUFDLFNBQVM7SUFFOUMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUNsQixJQUFJLFNBQVMsQ0FBQztRQUNaLEVBQUU7UUFDRixJQUFJO1FBQ0osUUFBUTtRQUNSLE9BQU87UUFDUCxNQUFNO1FBQ04sTUFBTTtRQUNOLFFBQVE7UUFDUixLQUFLO1FBQ0wsZUFBZTtLQUNoQixDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiwgQmFzZVVuaXQsIENvaW5GZWF0dXJlLCBDb2luS2luZCwgS2V5Q3VydmUsIFVuZGVybHlpbmdBc3NldCB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBLYXNwYU1haW5uZXQsIEthc3BhVGVzdG5ldCB9IGZyb20gJy4vbmV0d29ya3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEthc3BhQ29uc3RydWN0b3JPcHRpb25zIHtcbiAgaWQ6IHN0cmluZztcbiAgZnVsbE5hbWU6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBuZXR3b3JrOiBLYXNwYU1haW5uZXQgfCBLYXNwYVRlc3RuZXQ7XG4gIGZlYXR1cmVzOiBDb2luRmVhdHVyZVtdO1xuICBhc3NldDogVW5kZXJseWluZ0Fzc2V0O1xuICBwcmVmaXg/OiBzdHJpbmc7XG4gIHN1ZmZpeD86IHN0cmluZztcbiAgcHJpbWFyeUtleUN1cnZlOiBLZXlDdXJ2ZTtcbn1cblxuZXhwb3J0IGNsYXNzIEthc3BhQ29pbiBleHRlbmRzIEJhc2VDb2luIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0ZFQVRVUkVTID0gW1xuICAgIENvaW5GZWF0dXJlLlVOU1BFTlRfTU9ERUwsXG4gICAgQ29pbkZlYXR1cmUuVFNTLFxuICAgIENvaW5GZWF0dXJlLlRTU19DT0xELFxuICAgIENvaW5GZWF0dXJlLkNVU1RPRFksXG4gICAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19UUlVTVCxcbiAgICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0lORElBLFxuICAgIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fTUVOQV9GWkUsXG4gICAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19DVVNUT0RZX01FTkFfRlpFLFxuICAgIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fR0VSTUFOWSxcbiAgICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0ZSQU5LRlVSVCxcbiAgXTtcblxuICBwdWJsaWMgcmVhZG9ubHkgbmV0d29yazogS2FzcGFNYWlubmV0IHwgS2FzcGFUZXN0bmV0O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEthc3BhQ29uc3RydWN0b3JPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGtpbmQ6IENvaW5LaW5kLkNSWVBUTyxcbiAgICAgIGlzVG9rZW46IGZhbHNlLFxuICAgICAgZGVjaW1hbFBsYWNlczogOCxcbiAgICAgIGJhc2VVbml0OiBCYXNlVW5pdC5LQVNQQSxcbiAgICB9KTtcblxuICAgIHRoaXMubmV0d29yayA9IG9wdGlvbnMubmV0d29yaztcbiAgfVxuXG4gIHByb3RlY3RlZCBkaXNhbGxvd2VkRmVhdHVyZXMoKTogU2V0PENvaW5GZWF0dXJlPiB7XG4gICAgcmV0dXJuIG5ldyBTZXQoW0NvaW5GZWF0dXJlLkFDQ09VTlRfTU9ERUxdKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXF1aXJlZEZlYXR1cmVzKCk6IFNldDxDb2luRmVhdHVyZT4ge1xuICAgIHJldHVybiBuZXcgU2V0KFtDb2luRmVhdHVyZS5VTlNQRU5UX01PREVMXSk7XG4gIH1cbn1cblxuLyoqXG4gKiBGYWN0b3J5IGZ1bmN0aW9uIGZvciBLYXNwYSBjb2luIGluc3RhbmNlcy5cbiAqXG4gKiBAcGFyYW0gaWQgdXVpZCB2NFxuICogQHBhcmFtIG5hbWUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvaW5cbiAqIEBwYXJhbSBmdWxsTmFtZSBDb21wbGV0ZSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHRoZSBjb2luXG4gKiBAcGFyYW0gbmV0d29yayBOZXR3b3JrIG9iamVjdCBmb3IgdGhpcyBjb2luXG4gKiBAcGFyYW0gYXNzZXQgQXNzZXQgd2hpY2ggdGhpcyBjb2luIHJlcHJlc2VudHMuIFRoaXMgaXMgdGhlIHNhbWUgZm9yIGJvdGggbWFpbm5ldCBhbmQgdGVzdG5ldCB2YXJpYW50cyBvZiBhIGNvaW4uXG4gKiBAcGFyYW0gZmVhdHVyZXM/IEZlYXR1cmVzIG9mIHRoaXMgY29pbi4gRGVmYXVsdHMgdG8gdGhlIERFRkFVTFRfRkVBVFVSRVMgZGVmaW5lZCBpbiBgS2FzcGFDb2luYFxuICogQHBhcmFtIHByZWZpeD8gT3B0aW9uYWwgY29pbiBwcmVmaXguIERlZmF1bHRzIHRvIGVtcHR5IHN0cmluZ1xuICogQHBhcmFtIHN1ZmZpeD8gT3B0aW9uYWwgY29pbiBzdWZmaXguIERlZmF1bHRzIHRvIGNvaW4gbmFtZS5cbiAqIEBwYXJhbSBwcmltYXJ5S2V5Q3VydmUgVGhlIGVsbGlwdGljIGN1cnZlIGZvciB0aGlzIGNoYWluL3Rva2VuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBrYXNwYShcbiAgaWQ6IHN0cmluZyxcbiAgbmFtZTogc3RyaW5nLFxuICBmdWxsTmFtZTogc3RyaW5nLFxuICBuZXR3b3JrOiBLYXNwYU1haW5uZXQgfCBLYXNwYVRlc3RuZXQsXG4gIGFzc2V0OiBVbmRlcmx5aW5nQXNzZXQsXG4gIGZlYXR1cmVzOiBDb2luRmVhdHVyZVtdID0gS2FzcGFDb2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIHByZWZpeCA9ICcnLFxuICBzdWZmaXg6IHN0cmluZyA9IG5hbWUudG9VcHBlckNhc2UoKSxcbiAgcHJpbWFyeUtleUN1cnZlOiBLZXlDdXJ2ZSA9IEtleUN1cnZlLlNlY3AyNTZrMVxuKSB7XG4gIHJldHVybiBPYmplY3QuZnJlZXplKFxuICAgIG5ldyBLYXNwYUNvaW4oe1xuICAgICAgaWQsXG4gICAgICBuYW1lLFxuICAgICAgZnVsbE5hbWUsXG4gICAgICBuZXR3b3JrLFxuICAgICAgcHJlZml4LFxuICAgICAgc3VmZml4LFxuICAgICAgZmVhdHVyZXMsXG4gICAgICBhc3NldCxcbiAgICAgIHByaW1hcnlLZXlDdXJ2ZSxcbiAgICB9KVxuICApO1xufVxuIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FzcGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMva2FzcGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBK0RBLHNCQXdCQztBQXZGRCxpQ0FBOEY7QUFHOUYsTUFBYSxTQUFVLFNBQVEsZUFBUTtJQWdCckMsWUFBWSxPQVVYO1FBQ0MsS0FBSyxDQUFDO1lBQ0osR0FBRyxPQUFPO1lBQ1YsSUFBSSxFQUFFLGVBQVEsQ0FBQyxNQUFNO1lBQ3JCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsYUFBYSxFQUFFLENBQUM7WUFDaEIsUUFBUSxFQUFFLGVBQVEsQ0FBQyxLQUFLO1NBQ3pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUNqQyxDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQyxrQkFBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsa0JBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7O0FBNUNILDhCQTZDQztBQTVDd0IsMEJBQWdCLEdBQUc7SUFDeEMsa0JBQVcsQ0FBQyxhQUFhO0lBQ3pCLGtCQUFXLENBQUMsR0FBRztJQUNmLGtCQUFXLENBQUMsUUFBUTtJQUNwQixrQkFBVyxDQUFDLE9BQU87SUFDbkIsa0JBQVcsQ0FBQyxtQkFBbUI7SUFDL0Isa0JBQVcsQ0FBQyxtQkFBbUI7SUFDL0Isa0JBQVcsQ0FBQyxzQkFBc0I7SUFDbEMsa0JBQVcsQ0FBQyw4QkFBOEI7SUFDMUMsa0JBQVcsQ0FBQyxxQkFBcUI7SUFDakMsa0JBQVcsQ0FBQyx1QkFBdUI7Q0FDcEMsQ0FBQztBQW1DSjs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxTQUFnQixLQUFLLENBQ25CLEVBQVUsRUFDVixJQUFZLEVBQ1osUUFBZ0IsRUFDaEIsT0FBb0MsRUFDcEMsS0FBc0IsRUFDdEIsV0FBMEIsU0FBUyxDQUFDLGdCQUFnQixFQUNwRCxNQUFNLEdBQUcsRUFBRSxFQUNYLFNBQWlCLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFDbkMsa0JBQTRCLGVBQVEsQ0FBQyxTQUFTO0lBRTlDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FDbEIsSUFBSSxTQUFTLENBQUM7UUFDWixFQUFFO1FBQ0YsSUFBSTtRQUNKLFFBQVE7UUFDUixPQUFPO1FBQ1AsTUFBTTtRQUNOLE1BQU07UUFDTixRQUFRO1FBQ1IsS0FBSztRQUNMLGVBQWU7S0FDaEIsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4sIEJhc2VVbml0LCBDb2luRmVhdHVyZSwgQ29pbktpbmQsIEtleUN1cnZlLCBVbmRlcmx5aW5nQXNzZXQgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgS2FzcGFNYWlubmV0LCBLYXNwYVRlc3RuZXQgfSBmcm9tICcuL25ldHdvcmtzJztcblxuZXhwb3J0IGNsYXNzIEthc3BhQ29pbiBleHRlbmRzIEJhc2VDb2luIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0ZFQVRVUkVTID0gW1xuICAgIENvaW5GZWF0dXJlLlVOU1BFTlRfTU9ERUwsXG4gICAgQ29pbkZlYXR1cmUuVFNTLFxuICAgIENvaW5GZWF0dXJlLlRTU19DT0xELFxuICAgIENvaW5GZWF0dXJlLkNVU1RPRFksXG4gICAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19UUlVTVCxcbiAgICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0lORElBLFxuICAgIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fTUVOQV9GWkUsXG4gICAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19DVVNUT0RZX01FTkFfRlpFLFxuICAgIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fR0VSTUFOWSxcbiAgICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0ZSQU5LRlVSVCxcbiAgXTtcblxuICBwdWJsaWMgcmVhZG9ubHkgbmV0d29yazogS2FzcGFNYWlubmV0IHwgS2FzcGFUZXN0bmV0O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGZ1bGxOYW1lOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIG5ldHdvcms6IEthc3BhTWFpbm5ldCB8IEthc3BhVGVzdG5ldDtcbiAgICBmZWF0dXJlczogQ29pbkZlYXR1cmVbXTtcbiAgICBhc3NldDogVW5kZXJseWluZ0Fzc2V0O1xuICAgIHByZWZpeD86IHN0cmluZztcbiAgICBzdWZmaXg/OiBzdHJpbmc7XG4gICAgcHJpbWFyeUtleUN1cnZlOiBLZXlDdXJ2ZTtcbiAgfSkge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBraW5kOiBDb2luS2luZC5DUllQVE8sXG4gICAgICBpc1Rva2VuOiBmYWxzZSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IDgsXG4gICAgICBiYXNlVW5pdDogQmFzZVVuaXQuS0FTUEEsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5ldHdvcmsgPSBvcHRpb25zLm5ldHdvcms7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGlzYWxsb3dlZEZlYXR1cmVzKCk6IFNldDxDb2luRmVhdHVyZT4ge1xuICAgIHJldHVybiBuZXcgU2V0KFtDb2luRmVhdHVyZS5BQ0NPVU5UX01PREVMXSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVxdWlyZWRGZWF0dXJlcygpOiBTZXQ8Q29pbkZlYXR1cmU+IHtcbiAgICByZXR1cm4gbmV3IFNldChbQ29pbkZlYXR1cmUuVU5TUEVOVF9NT0RFTF0pO1xuICB9XG59XG5cbi8qKlxuICogRmFjdG9yeSBmdW5jdGlvbiBmb3IgS2FzcGEgY29pbiBpbnN0YW5jZXMuXG4gKlxuICogQHBhcmFtIGlkIHV1aWQgdjRcbiAqIEBwYXJhbSBuYW1lIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb2luXG4gKiBAcGFyYW0gZnVsbE5hbWUgQ29tcGxldGUgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGUgY29pblxuICogQHBhcmFtIG5ldHdvcmsgTmV0d29yayBvYmplY3QgZm9yIHRoaXMgY29pblxuICogQHBhcmFtIGFzc2V0IEFzc2V0IHdoaWNoIHRoaXMgY29pbiByZXByZXNlbnRzLiBUaGlzIGlzIHRoZSBzYW1lIGZvciBib3RoIG1haW5uZXQgYW5kIHRlc3RuZXQgdmFyaWFudHMgb2YgYSBjb2luLlxuICogQHBhcmFtIGZlYXR1cmVzPyBGZWF0dXJlcyBvZiB0aGlzIGNvaW4uIERlZmF1bHRzIHRvIHRoZSBERUZBVUxUX0ZFQVRVUkVTIGRlZmluZWQgaW4gYEthc3BhQ29pbmBcbiAqIEBwYXJhbSBwcmVmaXg/IE9wdGlvbmFsIGNvaW4gcHJlZml4LiBEZWZhdWx0cyB0byBlbXB0eSBzdHJpbmdcbiAqIEBwYXJhbSBzdWZmaXg/IE9wdGlvbmFsIGNvaW4gc3VmZml4LiBEZWZhdWx0cyB0byBjb2luIG5hbWUuXG4gKiBAcGFyYW0gcHJpbWFyeUtleUN1cnZlIFRoZSBlbGxpcHRpYyBjdXJ2ZSBmb3IgdGhpcyBjaGFpbi90b2tlblxuICovXG5leHBvcnQgZnVuY3Rpb24ga2FzcGEoXG4gIGlkOiBzdHJpbmcsXG4gIG5hbWU6IHN0cmluZyxcbiAgZnVsbE5hbWU6IHN0cmluZyxcbiAgbmV0d29yazogS2FzcGFNYWlubmV0IHwgS2FzcGFUZXN0bmV0LFxuICBhc3NldDogVW5kZXJseWluZ0Fzc2V0LFxuICBmZWF0dXJlczogQ29pbkZlYXR1cmVbXSA9IEthc3BhQ29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBwcmVmaXggPSAnJyxcbiAgc3VmZml4OiBzdHJpbmcgPSBuYW1lLnRvVXBwZXJDYXNlKCksXG4gIHByaW1hcnlLZXlDdXJ2ZTogS2V5Q3VydmUgPSBLZXlDdXJ2ZS5TZWNwMjU2azFcbikge1xuICByZXR1cm4gT2JqZWN0LmZyZWV6ZShcbiAgICBuZXcgS2FzcGFDb2luKHtcbiAgICAgIGlkLFxuICAgICAgbmFtZSxcbiAgICAgIGZ1bGxOYW1lLFxuICAgICAgbmV0d29yayxcbiAgICAgIHByZWZpeCxcbiAgICAgIHN1ZmZpeCxcbiAgICAgIGZlYXR1cmVzLFxuICAgICAgYXNzZXQsXG4gICAgICBwcmltYXJ5S2V5Q3VydmUsXG4gICAgfSlcbiAgKTtcbn1cbiJdfQ==
@@ -145,6 +145,7 @@ export interface EthereumNetwork extends AccountNetwork {
145
145
  readonly walletV4ImplementationAddress?: string;
146
146
  readonly nativeCoinOperationHashPrefix?: string;
147
147
  readonly tokenOperationHashPrefix?: string;
148
+ readonly zamaAclContractAddress?: string;
148
149
  }
149
150
  export interface TronNetwork extends AccountNetwork {
150
151
  maxFeeLimit: string;
@@ -717,6 +718,7 @@ declare class Hoodi extends Testnet implements EthereumNetwork {
717
718
  walletV4ImplementationAddress: string;
718
719
  nativeCoinOperationHashPrefix: string;
719
720
  tokenOperationHashPrefix: string;
721
+ zamaAclContractAddress: string;
720
722
  }
721
723
  declare class EthereumClassic extends Mainnet implements EthereumNetwork {
722
724
  name: string;