@1upmonster/duel 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -28,17 +28,29 @@ import { AnchorProvider } from "@coral-xyz/anchor";
28
28
  const admin = new MatchmakingAdmin(provider);
29
29
 
30
30
  // 1. Initialize Tenant for your Game Program
31
- // Args: authority, tenantProgramId, eloWindow (default 100), eloOffset (default 40)
32
- await admin.initializeTenant(authority, gameProgramId, 200, 40);
31
+ await admin.initializeTenant(gameProgramId, {
32
+ authority, // optional, defaults to gameProgramId
33
+ eloWindow: 200, // optional, default 100
34
+ eloOffset: 40, // optional, default 40
35
+ eloDataType: 'u16' // optional, default 'u16' (u8/u16/u32/u64)
36
+ });
33
37
 
34
38
  // 2. Initialize a Matchmaking Queue
35
39
  const tenantPda = admin.getTenantPda(authority);
36
40
  await admin.initializeQueue(authority, tenantPda);
37
41
 
38
- // 3. Delegate Queue to TEE Validator
42
+ // 3. Delegate to TEE Validator
39
43
  await admin.delegateQueue(authority, validatorPubkey);
40
44
  ```
41
45
 
46
+ ### ELO Data Types
47
+
48
+ The SDK supports different ELO data types to optimize storage:
49
+ - `'u8'`: 0-255 (1 byte)
50
+ - `'u16'`: 0-65,535 (2 bytes) **[DEFAULT]**
51
+ - `'u32'`: 0-4,294,967,295 (4 bytes)
52
+ - `'u64'`: 0-18,446,744,073,709,551,615 (8 bytes)
53
+
42
54
  ### For Players
43
55
 
44
56
  Join the private matchmaking queue:
package/dist/admin.d.ts CHANGED
@@ -1,6 +1,13 @@
1
1
  import { Program, AnchorProvider } from "@coral-xyz/anchor";
2
2
  import { PublicKey, TransactionSignature, ConfirmOptions, Keypair } from "@solana/web3.js";
3
3
  import { Duel } from "./types";
4
+ export type EloDataType = 'u8' | 'u16' | 'u32' | 'u64';
5
+ export interface InitializeTenantOptions {
6
+ authority?: PublicKey;
7
+ eloWindow?: number;
8
+ eloOffset?: number;
9
+ eloDataType?: EloDataType;
10
+ }
4
11
  export declare class MatchmakingAdmin {
5
12
  program: Program<Duel>;
6
13
  provider: AnchorProvider;
@@ -10,7 +17,7 @@ export declare class MatchmakingAdmin {
10
17
  /**
11
18
  * Initialize a Tenant
12
19
  */
13
- initializeTenant(authority: PublicKey, tenantProgramId: PublicKey, eloWindow?: number, eloOffset?: number, confirmOptions?: ConfirmOptions, signers?: Keypair[]): Promise<TransactionSignature>;
20
+ initializeTenant(tenantProgramId: PublicKey, options?: InitializeTenantOptions, confirmOptions?: ConfirmOptions, signers?: Keypair[]): Promise<TransactionSignature>;
14
21
  /**
15
22
  * Initialize a Queue
16
23
  */
package/dist/admin.js CHANGED
@@ -31,6 +31,14 @@ const anchor = __importStar(require("@coral-xyz/anchor"));
31
31
  const anchor_1 = require("@coral-xyz/anchor");
32
32
  const web3_js_1 = require("@solana/web3.js");
33
33
  const duel_json_1 = __importDefault(require("./duel.json"));
34
+ function getEloSize(dataType) {
35
+ switch (dataType) {
36
+ case 'u8': return 1;
37
+ case 'u16': return 2;
38
+ case 'u32': return 4;
39
+ case 'u64': return 8;
40
+ }
41
+ }
34
42
  class MatchmakingAdmin {
35
43
  constructor(provider, programId) {
36
44
  this.provider = provider;
@@ -52,10 +60,12 @@ class MatchmakingAdmin {
52
60
  /**
53
61
  * Initialize a Tenant
54
62
  */
55
- async initializeTenant(authority, tenantProgramId, eloWindow = 100, eloOffset = 8 + 32, confirmOptions, signers = []) {
63
+ async initializeTenant(tenantProgramId, options, confirmOptions, signers = []) {
64
+ const { authority = tenantProgramId, eloWindow = 100, eloOffset = 40, eloDataType = 'u16' } = options || {};
65
+ const eloSize = getEloSize(eloDataType);
56
66
  const tenantPda = this.getTenantPda(authority);
57
67
  return await this.program.methods
58
- .initializeTenant(tenantProgramId, eloOffset, new anchor.BN(eloWindow))
68
+ .initializeTenant(tenantProgramId, eloOffset, eloSize, new anchor.BN(eloWindow))
59
69
  .accountsPartial({
60
70
  tenant: tenantPda,
61
71
  authority: authority,
@@ -109,4 +119,4 @@ class MatchmakingAdmin {
109
119
  }
110
120
  }
111
121
  exports.MatchmakingAdmin = MatchmakingAdmin;
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYWRtaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwREFBNEM7QUFDNUMsOENBQWlFO0FBQ2pFLDZDQUEwRztBQUUxRyw0REFBOEI7QUFFOUIsTUFBYSxnQkFBZ0I7SUFJM0IsWUFBWSxRQUF3QixFQUFFLFNBQXFCO1FBQ3pELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLE1BQU0sVUFBVSxHQUFHLFNBQVMsSUFBSSxJQUFJLG1CQUFTLENBQUMsOENBQThDLENBQUMsQ0FBQztRQUU5RiwwQkFBMEI7UUFDMUIsTUFBTSxXQUFXLEdBQUcsRUFBRSxHQUFHLG1CQUFHLEVBQVMsQ0FBQztRQUN0QyxXQUFXLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUU1QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksZ0JBQU8sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsV0FBVyxDQUFDLFNBQW9CO1FBQzlCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxtQkFBUyxDQUFDLHNCQUFzQixDQUM1QyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUN2QixDQUFDO1FBQ0YsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQW9CO1FBQy9CLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxtQkFBUyxDQUFDLHNCQUFzQixDQUM1QyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQzdDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUN2QixDQUFDO1FBQ0YsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQ3BCLFNBQW9CLEVBQ3BCLGVBQTBCLEVBQzFCLFlBQW9CLEdBQUcsRUFDdkIsWUFBb0IsQ0FBQyxHQUFHLEVBQUUsRUFDMUIsY0FBK0IsRUFDL0IsVUFBcUIsRUFBRTtRQUV2QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLE9BQU8sTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87YUFDOUIsZ0JBQWdCLENBQ2YsZUFBZSxFQUNmLFNBQVMsRUFDVCxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQ3pCO2FBQ0EsZUFBZSxDQUFDO1lBQ2YsTUFBTSxFQUFFLFNBQVM7WUFDakIsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQzthQUNELE9BQU8sQ0FBQyxPQUFPLENBQUM7YUFDaEIsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQ25CLFNBQW9CLEVBQ3BCLE1BQWlCLEVBQ2pCLGNBQStCLEVBQy9CLFVBQXFCLEVBQUU7UUFFdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QyxPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPO2FBQzlCLGVBQWUsRUFBRTthQUNqQixlQUFlLENBQUM7WUFDZixLQUFLLEVBQUUsUUFBUTtZQUNmLE1BQU0sRUFBRSxNQUFNO1lBQ2QsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQzthQUNELE9BQU8sQ0FBQyxPQUFPLENBQUM7YUFDaEIsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQ2pCLFNBQW9CLEVBQ3BCLFlBQXVCLElBQUksbUJBQVMsQ0FBQyw4Q0FBOEMsQ0FBQyxFQUNwRixjQUErQixFQUMvQixVQUFxQixFQUFFO1FBRXJCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0MsT0FBTyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTzthQUM5QixhQUFhLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBUyxDQUFDO2FBQzlDLFFBQVEsQ0FBQztZQUNOLEdBQUcsRUFBRSxRQUFRO1lBQ2IsS0FBSyxFQUFFLFNBQVM7WUFDaEIsU0FBUyxFQUFFLFNBQVM7U0FDaEIsQ0FBQzthQUNSLE9BQU8sQ0FBQyxPQUFPLENBQUM7YUFDaEIsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxZQUFZLENBQ2hCLEtBQWdCLEVBQ2hCLE1BQWlCLEVBQ2pCLGNBQStCLEVBQy9CLFVBQXFCLEVBQUUsQ0FBQyx5Q0FBeUM7O1FBRWpFLE9BQU8sTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87YUFDOUIsWUFBWSxFQUFFO2FBQ2QsZUFBZSxDQUFDO1lBQ2YsS0FBSyxFQUFFLEtBQUs7WUFDWixNQUFNLEVBQUUsTUFBTTtTQUNmLENBQUM7YUFDRCxPQUFPLENBQUMsT0FBTyxDQUFDO2FBQ2hCLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6QixDQUFDO0NBQ0Y7QUF0SEQsNENBc0hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYW5jaG9yIGZyb20gXCJAY29yYWwteHl6L2FuY2hvclwiO1xuaW1wb3J0IHsgUHJvZ3JhbSwgSWRsLCBBbmNob3JQcm92aWRlciB9IGZyb20gXCJAY29yYWwteHl6L2FuY2hvclwiO1xuaW1wb3J0IHsgUHVibGljS2V5LCBTeXN0ZW1Qcm9ncmFtLCBUcmFuc2FjdGlvblNpZ25hdHVyZSwgQ29uZmlybU9wdGlvbnMsIEtleXBhaXIgfSBmcm9tIFwiQHNvbGFuYS93ZWIzLmpzXCI7XG5pbXBvcnQgeyBEdWVsIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCBJREwgZnJvbSBcIi4vZHVlbC5qc29uXCI7XG5cbmV4cG9ydCBjbGFzcyBNYXRjaG1ha2luZ0FkbWluIHtcbiAgcHJvZ3JhbTogUHJvZ3JhbTxEdWVsPjtcbiAgcHJvdmlkZXI6IEFuY2hvclByb3ZpZGVyO1xuXG4gIGNvbnN0cnVjdG9yKHByb3ZpZGVyOiBBbmNob3JQcm92aWRlciwgcHJvZ3JhbUlkPzogUHVibGljS2V5KSB7XG4gICAgdGhpcy5wcm92aWRlciA9IHByb3ZpZGVyO1xuICAgIGNvbnN0IFBST0dSQU1fSUQgPSBwcm9ncmFtSWQgfHwgbmV3IFB1YmxpY0tleShcIkVkWnpVd0tkMVgyWldqeExQcHoxY3BFek1GN1JVWkM0M1BxNjR2MVZjSzVYXCIpO1xuICAgIFxuICAgIC8vIE92ZXJyaWRlIGFkZHJlc3MgaW4gSURMXG4gICAgY29uc3QgbW9kaWZpZWRJZGwgPSB7IC4uLklETCB9IGFzIGFueTtcbiAgICBtb2RpZmllZElkbC5hZGRyZXNzID0gUFJPR1JBTV9JRC50b0Jhc2U1OCgpO1xuICAgIFxuICAgIHRoaXMucHJvZ3JhbSA9IG5ldyBQcm9ncmFtKG1vZGlmaWVkSWRsLCB0aGlzLnByb3ZpZGVyKTtcbiAgfVxuXG4gIC8vIERlcml2ZSBQREFzIEhlbHBlcnNcbiAgZ2V0UXVldWVQZGEoYXV0aG9yaXR5OiBQdWJsaWNLZXkpOiBQdWJsaWNLZXkge1xuICAgIGNvbnN0IFtwZGFdID0gUHVibGljS2V5LmZpbmRQcm9ncmFtQWRkcmVzc1N5bmMoXG4gICAgICBbQnVmZmVyLmZyb20oXCJxdWV1ZVwiKSwgYXV0aG9yaXR5LnRvQnVmZmVyKCldLFxuICAgICAgdGhpcy5wcm9ncmFtLnByb2dyYW1JZFxuICAgICk7XG4gICAgcmV0dXJuIHBkYTtcbiAgfVxuXG4gIGdldFRlbmFudFBkYShhdXRob3JpdHk6IFB1YmxpY0tleSk6IFB1YmxpY0tleSB7XG4gICAgY29uc3QgW3BkYV0gPSBQdWJsaWNLZXkuZmluZFByb2dyYW1BZGRyZXNzU3luYyhcbiAgICAgIFtCdWZmZXIuZnJvbShcInRlbmFudFwiKSwgYXV0aG9yaXR5LnRvQnVmZmVyKCldLFxuICAgICAgdGhpcy5wcm9ncmFtLnByb2dyYW1JZFxuICAgICk7XG4gICAgcmV0dXJuIHBkYTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIGEgVGVuYW50XG4gICAqL1xuICBhc3luYyBpbml0aWFsaXplVGVuYW50KFxuICAgIGF1dGhvcml0eTogUHVibGljS2V5LFxuICAgIHRlbmFudFByb2dyYW1JZDogUHVibGljS2V5LFxuICAgIGVsb1dpbmRvdzogbnVtYmVyID0gMTAwLFxuICAgIGVsb09mZnNldDogbnVtYmVyID0gOCArIDMyLFxuICAgIGNvbmZpcm1PcHRpb25zPzogQ29uZmlybU9wdGlvbnMsXG4gICAgc2lnbmVyczogS2V5cGFpcltdID0gW11cbiAgKTogUHJvbWlzZTxUcmFuc2FjdGlvblNpZ25hdHVyZT4ge1xuICAgIGNvbnN0IHRlbmFudFBkYSA9IHRoaXMuZ2V0VGVuYW50UGRhKGF1dGhvcml0eSk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvZ3JhbS5tZXRob2RzXG4gICAgICAuaW5pdGlhbGl6ZVRlbmFudChcbiAgICAgICAgdGVuYW50UHJvZ3JhbUlkLFxuICAgICAgICBlbG9PZmZzZXQsXG4gICAgICAgIG5ldyBhbmNob3IuQk4oZWxvV2luZG93KVxuICAgICAgKVxuICAgICAgLmFjY291bnRzUGFydGlhbCh7XG4gICAgICAgIHRlbmFudDogdGVuYW50UGRhLFxuICAgICAgICBhdXRob3JpdHk6IGF1dGhvcml0eSxcbiAgICAgIH0pXG4gICAgICAuc2lnbmVycyhzaWduZXJzKVxuICAgICAgLnJwYyhjb25maXJtT3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSBhIFF1ZXVlXG4gICAqL1xuICBhc3luYyBpbml0aWFsaXplUXVldWUoXG4gICAgYXV0aG9yaXR5OiBQdWJsaWNLZXksXG4gICAgdGVuYW50OiBQdWJsaWNLZXksXG4gICAgY29uZmlybU9wdGlvbnM/OiBDb25maXJtT3B0aW9ucyxcbiAgICBzaWduZXJzOiBLZXlwYWlyW10gPSBbXVxuICApOiBQcm9taXNlPFRyYW5zYWN0aW9uU2lnbmF0dXJlPiB7XG4gICAgY29uc3QgcXVldWVQZGEgPSB0aGlzLmdldFF1ZXVlUGRhKGF1dGhvcml0eSk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvZ3JhbS5tZXRob2RzXG4gICAgICAuaW5pdGlhbGl6ZVF1ZXVlKClcbiAgICAgIC5hY2NvdW50c1BhcnRpYWwoe1xuICAgICAgICBxdWV1ZTogcXVldWVQZGEsXG4gICAgICAgIHRlbmFudDogdGVuYW50LFxuICAgICAgICBhdXRob3JpdHk6IGF1dGhvcml0eSxcbiAgICAgIH0pXG4gICAgICAuc2lnbmVycyhzaWduZXJzKVxuICAgICAgLnJwYyhjb25maXJtT3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZWdhdGUgUXVldWUgdG8gVEVFXG4gICAqL1xuICBhc3luYyBkZWxlZ2F0ZVF1ZXVlKFxuICAgIGF1dGhvcml0eTogUHVibGljS2V5LFxuICAgIHZhbGlkYXRvcjogUHVibGljS2V5ID0gbmV3IFB1YmxpY0tleShcIkZuRTZWSlQ1UU5aZGVkWlBuQ29Mc0FSZ0J3b0U2RGVKTmpCczJIMWd5U1hBXCIpLFxuICAgIGNvbmZpcm1PcHRpb25zPzogQ29uZmlybU9wdGlvbnMsXG4gICAgc2lnbmVyczogS2V5cGFpcltdID0gW11cbiAgKTogUHJvbWlzZTxUcmFuc2FjdGlvblNpZ25hdHVyZT4ge1xuICAgICAgY29uc3QgcXVldWVQZGEgPSB0aGlzLmdldFF1ZXVlUGRhKGF1dGhvcml0eSk7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9ncmFtLm1ldGhvZHNcbiAgICAgICAgLmRlbGVnYXRlUXVldWUoeyBxdWV1ZTogeyBhdXRob3JpdHkgfSB9IGFzIGFueSlcbiAgICAgICAgLmFjY291bnRzKHtcbiAgICAgICAgICAgIHBkYTogcXVldWVQZGEsXG4gICAgICAgICAgICBwYXllcjogYXV0aG9yaXR5LFxuICAgICAgICAgICAgdmFsaWRhdG9yOiB2YWxpZGF0b3IsXG4gICAgICAgIH0gYXMgYW55KVxuICAgICAgICAuc2lnbmVycyhzaWduZXJzKVxuICAgICAgICAucnBjKGNvbmZpcm1PcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIE1hdGNoIChBZG1pbi9NYWludGVuYW5jZSlcbiAgICovXG4gIGFzeW5jIHByb2Nlc3NNYXRjaChcbiAgICBxdWV1ZTogUHVibGljS2V5LFxuICAgIHRlbmFudDogUHVibGljS2V5LFxuICAgIGNvbmZpcm1PcHRpb25zPzogQ29uZmlybU9wdGlvbnMsXG4gICAgc2lnbmVyczogS2V5cGFpcltdID0gW10gLy8gQWRtaW4gbWlnaHQgc2lnbiBpZiBhdXRob3JpdHkgcmVxdWlyZWRcbiAgKTogUHJvbWlzZTxUcmFuc2FjdGlvblNpZ25hdHVyZT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2dyYW0ubWV0aG9kc1xuICAgICAgLnByb2Nlc3NNYXRjaCgpXG4gICAgICAuYWNjb3VudHNQYXJ0aWFsKHtcbiAgICAgICAgcXVldWU6IHF1ZXVlLFxuICAgICAgICB0ZW5hbnQ6IHRlbmFudCxcbiAgICAgIH0pXG4gICAgICAuc2lnbmVycyhzaWduZXJzKVxuICAgICAgLnJwYyhjb25maXJtT3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYWRtaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwREFBNEM7QUFDNUMsOENBQWlFO0FBQ2pFLDZDQUEwRztBQUUxRyw0REFBOEI7QUFXOUIsU0FBUyxVQUFVLENBQUMsUUFBcUI7SUFDdkMsUUFBUSxRQUFRLEVBQUU7UUFDaEIsS0FBSyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQixLQUFLLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JCLEtBQUssS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckIsS0FBSyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUN0QjtBQUNILENBQUM7QUFFRCxNQUFhLGdCQUFnQjtJQUkzQixZQUFZLFFBQXdCLEVBQUUsU0FBcUI7UUFDekQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsTUFBTSxVQUFVLEdBQUcsU0FBUyxJQUFJLElBQUksbUJBQVMsQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1FBRTlGLDBCQUEwQjtRQUMxQixNQUFNLFdBQVcsR0FBRyxFQUFFLEdBQUcsbUJBQUcsRUFBUyxDQUFDO1FBQ3RDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTVDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxnQkFBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixXQUFXLENBQUMsU0FBb0I7UUFDOUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLG1CQUFTLENBQUMsc0JBQXNCLENBQzVDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFF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LENBQUM7WUFDZixLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQzthQUNELE9BQU8sQ0FBQyxPQUFPLENBQUM7YUFDaEIsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7Q0FDRjtBQTlIRCw0Q0E4SEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhbmNob3IgZnJvbSBcIkBjb3JhbC14eXovYW5jaG9yXCI7XG5pbXBvcnQgeyBQcm9ncmFtLCBJZGwsIEFuY2hvclByb3ZpZGVyIH0gZnJvbSBcIkBjb3JhbC14eXovYW5jaG9yXCI7XG5pbXBvcnQgeyBQdWJsaWNLZXksIFN5c3RlbVByb2dyYW0sIFRyYW5zYWN0aW9uU2lnbmF0dXJlLCBDb25maXJtT3B0aW9ucywgS2V5cGFpciB9IGZyb20gXCJAc29sYW5hL3dlYjMuanNcIjtcbmltcG9ydCB7IER1ZWwgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IElETCBmcm9tIFwiLi9kdWVsLmpzb25cIjtcblxuZXhwb3J0IHR5cGUgRWxvRGF0YVR5cGUgPSAndTgnIHwgJ3UxNicgfCAndTMyJyB8ICd1NjQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluaXRpYWxpemVUZW5hbnRPcHRpb25zIHtcbiAgYXV0aG9yaXR5PzogUHVibGljS2V5OyAgICAgLy8gT3B0aW9uYWwsIGRlZmF1bHRzIHRvIHRlbmFudFByb2dyYW1JZFxuICBlbG9XaW5kb3c/OiBudW1iZXI7ICAgICAgICAvLyBEZWZhdWx0OiAxMDBcbiAgZWxvT2Zmc2V0PzogbnVtYmVyOyAgICAgICAgLy8gRGVmYXVsdDogNDBcbiAgZWxvRGF0YVR5cGU/OiBFbG9EYXRhVHlwZTsgLy8gRGVmYXVsdDogJ3UxNidcbn1cblxuZnVuY3Rpb24gZ2V0RWxvU2l6ZShkYXRhVHlwZTogRWxvRGF0YVR5cGUpOiBudW1iZXIge1xuICBzd2l0Y2ggKGRhdGFUeXBlKSB7XG4gICAgY2FzZSAndTgnOiByZXR1cm4gMTtcbiAgICBjYXNlICd1MTYnOiByZXR1cm4gMjtcbiAgICBjYXNlICd1MzInOiByZXR1cm4gNDtcbiAgICBjYXNlICd1NjQnOiByZXR1cm4gODtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWF0Y2htYWtpbmdBZG1pbiB7XG4gIHByb2dyYW06IFByb2dyYW08RHVlbD47XG4gIHByb3ZpZGVyOiBBbmNob3JQcm92aWRlcjtcblxuICBjb25zdHJ1Y3Rvcihwcm92aWRlcjogQW5jaG9yUHJvdmlkZXIsIHByb2dyYW1JZD86IFB1YmxpY0tleSkge1xuICAgIHRoaXMucHJvdmlkZXIgPSBwcm92aWRlcjtcbiAgICBjb25zdCBQUk9HUkFNX0lEID0gcHJvZ3JhbUlkIHx8IG5ldyBQdWJsaWNLZXkoXCJFZFp6VXdLZDFYMlpXanhMUHB6MWNwRXpNRjdSVVpDNDNQcTY0djFWY0s1WFwiKTtcbiAgICBcbiAgICAvLyBPdmVycmlkZSBhZGRyZXNzIGluIElETFxuICAgIGNvbnN0IG1vZGlmaWVkSWRsID0geyAuLi5JREwgfSBhcyBhbnk7XG4gICAgbW9kaWZpZWRJZGwuYWRkcmVzcyA9IFBST0dSQU1fSUQudG9CYXNlNTgoKTtcbiAgICBcbiAgICB0aGlzLnByb2dyYW0gPSBuZXcgUHJvZ3JhbShtb2RpZmllZElkbCwgdGhpcy5wcm92aWRlcik7XG4gIH1cblxuICAvLyBEZXJpdmUgUERBcyBIZWxwZXJzXG4gIGdldFF1ZXVlUGRhKGF1dGhvcml0eTogUHVibGljS2V5KTogUHVibGljS2V5IHtcbiAgICBjb25zdCBbcGRhXSA9IFB1YmxpY0tleS5maW5kUHJvZ3JhbUFkZHJlc3NTeW5jKFxuICAgICAgW0J1ZmZlci5mcm9tKFwicXVldWVcIiksIGF1dGhvcml0eS50b0J1ZmZlcigpXSxcbiAgICAgIHRoaXMucHJvZ3JhbS5wcm9ncmFtSWRcbiAgICApO1xuICAgIHJldHVybiBwZGE7XG4gIH1cblxuICBnZXRUZW5hbnRQZGEoYXV0aG9yaXR5OiBQdWJsaWNLZXkpOiBQdWJsaWNLZXkge1xuICAgIGNvbnN0IFtwZGFdID0gUHVibGljS2V5LmZpbmRQcm9ncmFtQWRkcmVzc1N5bmMoXG4gICAgICBbQnVmZmVyLmZyb20oXCJ0ZW5hbnRcIiksIGF1dGhvcml0eS50b0J1ZmZlcigpXSxcbiAgICAgIHRoaXMucHJvZ3JhbS5wcm9ncmFtSWRcbiAgICApO1xuICAgIHJldHVybiBwZGE7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSBhIFRlbmFudFxuICAgKi9cbiAgYXN5bmMgaW5pdGlhbGl6ZVRlbmFudChcbiAgICB0ZW5hbnRQcm9ncmFtSWQ6IFB1YmxpY0tleSxcbiAgICBvcHRpb25zPzogSW5pdGlhbGl6ZVRlbmFudE9wdGlvbnMsXG4gICAgY29uZmlybU9wdGlvbnM/OiBDb25maXJtT3B0aW9ucyxcbiAgICBzaWduZXJzOiBLZXlwYWlyW10gPSBbXVxuICApOiBQcm9taXNlPFRyYW5zYWN0aW9uU2lnbmF0dXJlPiB7XG4gICAgY29uc3Qge1xuICAgICAgYXV0aG9yaXR5ID0gdGVuYW50UHJvZ3JhbUlkLFxuICAgICAgZWxvV2luZG93ID0gMTAwLFxuICAgICAgZWxvT2Zmc2V0ID0gNDAsXG4gICAgICBlbG9EYXRhVHlwZSA9ICd1MTYnXG4gICAgfSA9IG9wdGlvbnMgfHwge307XG4gICAgXG4gICAgY29uc3QgZWxvU2l6ZSA9IGdldEVsb1NpemUoZWxvRGF0YVR5cGUpO1xuICAgIGNvbnN0IHRlbmFudFBkYSA9IHRoaXMuZ2V0VGVuYW50UGRhKGF1dGhvcml0eSk7XG4gICAgXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvZ3JhbS5tZXRob2RzXG4gICAgICAuaW5pdGlhbGl6ZVRlbmFudChcbiAgICAgICAgdGVuYW50UHJvZ3JhbUlkLFxuICAgICAgICBlbG9PZmZzZXQsXG4gICAgICAgIGVsb1NpemUsXG4gICAgICAgIG5ldyBhbmNob3IuQk4oZWxvV2luZG93KVxuICAgICAgKVxuICAgICAgLmFjY291bnRzUGFydGlhbCh7XG4gICAgICAgIHRlbmFudDogdGVuYW50UGRhLFxuICAgICAgICBhdXRob3JpdHk6IGF1dGhvcml0eSxcbiAgICAgIH0pXG4gICAgICAuc2lnbmVycyhzaWduZXJzKVxuICAgICAgLnJwYyhjb25maXJtT3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSBhIFF1ZXVlXG4gICAqL1xuICBhc3luYyBpbml0aWFsaXplUXVldWUoXG4gICAgYXV0aG9yaXR5OiBQdWJsaWNLZXksXG4gICAgdGVuYW50OiBQdWJsaWNLZXksXG4gICAgY29uZmlybU9wdGlvbnM/OiBDb25maXJtT3B0aW9ucyxcbiAgICBzaWduZXJzOiBLZXlwYWlyW10gPSBbXVxuICApOiBQcm9taXNlPFRyYW5zYWN0aW9uU2lnbmF0dXJlPiB7XG4gICAgY29uc3QgcXVldWVQZGEgPSB0aGlzLmdldFF1ZXVlUGRhKGF1dGhvcml0eSk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvZ3JhbS5tZXRob2RzXG4gICAgICAuaW5pdGlhbGl6ZVF1ZXVlKClcbiAgICAgIC5hY2NvdW50c1BhcnRpYWwoe1xuICAgICAgICBxdWV1ZTogcXVldWVQZGEsXG4gICAgICAgIHRlbmFudDogdGVuYW50LFxuICAgICAgICBhdXRob3JpdHk6IGF1dGhvcml0eSxcbiAgICAgIH0pXG4gICAgICAuc2lnbmVycyhzaWduZXJzKVxuICAgICAgLnJwYyhjb25maXJtT3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZWdhdGUgUXVldWUgdG8gVEVFXG4gICAqL1xuICBhc3luYyBkZWxlZ2F0ZVF1ZXVlKFxuICAgIGF1dGhvcml0eTogUHVibGljS2V5LFxuICAgIHZhbGlkYXRvcjogUHVibGljS2V5ID0gbmV3IFB1YmxpY0tleShcIkZuRTZWSlQ1UU5aZGVkWlBuQ29Mc0FSZ0J3b0U2RGVKTmpCczJIMWd5U1hBXCIpLFxuICAgIGNvbmZpcm1PcHRpb25zPzogQ29uZmlybU9wdGlvbnMsXG4gICAgc2lnbmVyczogS2V5cGFpcltdID0gW11cbiAgKTogUHJvbWlzZTxUcmFuc2FjdGlvblNpZ25hdHVyZT4ge1xuICAgICAgY29uc3QgcXVldWVQZGEgPSB0aGlzLmdldFF1ZXVlUGRhKGF1dGhvcml0eSk7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9ncmFtLm1ldGhvZHNcbiAgICAgICAgLmRlbGVnYXRlUXVldWUoeyBxdWV1ZTogeyBhdXRob3JpdHkgfSB9IGFzIGFueSlcbiAgICAgICAgLmFjY291bnRzKHtcbiAgICAgICAgICAgIHBkYTogcXVldWVQZGEsXG4gICAgICAgICAgICBwYXllcjogYXV0aG9yaXR5LFxuICAgICAgICAgICAgdmFsaWRhdG9yOiB2YWxpZGF0b3IsXG4gICAgICAgIH0gYXMgYW55KVxuICAgICAgICAuc2lnbmVycyhzaWduZXJzKVxuICAgICAgICAucnBjKGNvbmZpcm1PcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIE1hdGNoIChBZG1pbi9NYWludGVuYW5jZSlcbiAgICovXG4gIGFzeW5jIHByb2Nlc3NNYXRjaChcbiAgICBxdWV1ZTogUHVibGljS2V5LFxuICAgIHRlbmFudDogUHVibGljS2V5LFxuICAgIGNvbmZpcm1PcHRpb25zPzogQ29uZmlybU9wdGlvbnMsXG4gICAgc2lnbmVyczogS2V5cGFpcltdID0gW10gLy8gQWRtaW4gbWlnaHQgc2lnbiBpZiBhdXRob3JpdHkgcmVxdWlyZWRcbiAgKTogUHJvbWlzZTxUcmFuc2FjdGlvblNpZ25hdHVyZT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2dyYW0ubWV0aG9kc1xuICAgICAgLnByb2Nlc3NNYXRjaCgpXG4gICAgICAuYWNjb3VudHNQYXJ0aWFsKHtcbiAgICAgICAgcXVldWU6IHF1ZXVlLFxuICAgICAgICB0ZW5hbnQ6IHRlbmFudCxcbiAgICAgIH0pXG4gICAgICAuc2lnbmVycyhzaWduZXJzKVxuICAgICAgLnJwYyhjb25maXJtT3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
package/dist/duel.json CHANGED
@@ -292,6 +292,10 @@
292
292
  "name": "elo_offset",
293
293
  "type": "u32"
294
294
  },
295
+ {
296
+ "name": "elo_size",
297
+ "type": "u8"
298
+ },
295
299
  {
296
300
  "name": "elo_window",
297
301
  "type": "u64"
@@ -440,6 +444,11 @@
440
444
  "code": 6002,
441
445
  "name": "Unauthorized",
442
446
  "msg": "Unauthorized access"
447
+ },
448
+ {
449
+ "code": 6003,
450
+ "name": "InvalidEloSize",
451
+ "msg": "Invalid ELO size (must be 1, 2, 4, or 8 bytes)"
443
452
  }
444
453
  ],
445
454
  "types": [
@@ -523,6 +532,10 @@
523
532
  "name": "elo_offset",
524
533
  "type": "u32"
525
534
  },
535
+ {
536
+ "name": "elo_size",
537
+ "type": "u8"
538
+ },
526
539
  {
527
540
  "name": "elo_window",
528
541
  "type": "u64"
package/dist/types.d.ts CHANGED
@@ -298,6 +298,10 @@ export type Duel = {
298
298
  "name": "eloOffset";
299
299
  "type": "u32";
300
300
  },
301
+ {
302
+ "name": "eloSize";
303
+ "type": "u8";
304
+ },
301
305
  {
302
306
  "name": "eloWindow";
303
307
  "type": "u64";
@@ -446,6 +450,11 @@ export type Duel = {
446
450
  "code": 6002;
447
451
  "name": "unauthorized";
448
452
  "msg": "Unauthorized access";
453
+ },
454
+ {
455
+ "code": 6003;
456
+ "name": "invalidEloSize";
457
+ "msg": "Invalid ELO size (must be 1, 2, 4, or 8 bytes)";
449
458
  }
450
459
  ];
451
460
  "types": [
@@ -529,6 +538,10 @@ export type Duel = {
529
538
  "name": "eloOffset";
530
539
  "type": "u32";
531
540
  },
541
+ {
542
+ "name": "eloSize";
543
+ "type": "u8";
544
+ },
532
545
  {
533
546
  "name": "eloWindow";
534
547
  "type": "u64";
package/dist/types.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUHJvZ3JhbSBJREwgaW4gY2FtZWxDYXNlIGZvcm1hdCBpbiBvcmRlciB0byBiZSB1c2VkIGluIEpTL1RTLlxuICpcbiAqIE5vdGUgdGhhdCB0aGlzIGlzIG9ubHkgYSB0eXBlIGhlbHBlciBhbmQgaXMgbm90IHRoZSBhY3R1YWwgSURMLiBUaGUgb3JpZ2luYWxcbiAqIElETCBjYW4gYmUgZm91bmQgYXQgYHRhcmdldC9pZGwvZHVlbC5qc29uYC5cbiAqL1xuZXhwb3J0IHR5cGUgRHVlbCA9IHtcbiAgXCJhZGRyZXNzXCI6IFwiRWRaelV3S2QxWDJaV2p4TFBwejFjcEV6TUY3UlVaQzQzUHE2NHYxVmNLNVhcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiZHVlbFwiLFxuICAgIFwidmVyc2lvblwiOiBcIjAuMS4wXCIsXG4gICAgXCJzcGVjXCI6IFwiMC4xLjBcIlxuICB9LFxuICBcImluc3RydWN0aW9uc1wiOiBbXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiZGVsZWdhdGVRdWV1ZVwiLFxuICAgICAgXCJkaXNjcmltaW5hdG9yXCI6IFtcbiAgICAgICAgMzEsXG4gICAgICAgIDIwMCxcbiAgICAgICAgMTM5LFxuICAgICAgICAxMjUsXG4gICAgICAgIDkzLFxuICAgICAgICAyMzksXG4gICAgICAgIDgzLFxuICAgICAgICA4N1xuICAgICAgXSxcbiAgICAgIFwiYWNjb3VudHNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwiYnVmZmVyUGRhXCIsXG4gICAgICAgICAgXCJ3cml0YWJsZVwiOiB0cnVlLFxuICAgICAgICAgIFwicGRhXCI6IHtcbiAgICAgICAgICAgIFwic2VlZHNcIjogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJraW5kXCI6IFwiY29uc3RcIixcbiAgICAgICAgICAgICAgICBcInZhbHVlXCI6IFtcbiAgICAgICAgICAgICAgICAgIDk4LFxuICAgICAgICAgICAgICAgICAgMTE3LFxuICAgICAgICAgICAgICAgICAgMTAyLFxuICAgICAgICAgICAgICAgICAgMTAyLFxuICAgICAgICAgICAgICAgICAgMTAxLFxuICAgICAgICAgICAgICAgICAgMTE0XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJraW5kXCI6IFwiYWNjb3VudFwiLFxuICAgICAgICAgICAgICAgIFwicGF0aFwiOiBcInBkYVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcInByb2dyYW1cIjoge1xuICAgICAgICAgICAgICBcImtpbmRcIjogXCJjb25zdFwiLFxuICAgICAgICAgICAgICBcInZhbHVlXCI6IFtcbiAgICAgICAgICAgICAgICAyMDIsXG4gICAgICAgICAgICAgICAgMTM0LFxuICAgICAgICAgICAgICAgIDM2LFxuICAgICAgICAgICAgICAgIDEwOCxcbiAgICAgICAgICAgICAgICAxNzQsXG4gICAgICAgICAgICAgICAgMTQ4LFxuICAgICAgICAgICAgICAgIDI1MixcbiAgICAgICAgICAgICAgICA3MyxcbiAgICAgICAgICAgICAgICAyMTEsXG4gICAgICAgICAgICAgICAgMTI1LFxuICAgICAgICAgICAgICAgIDE1LFxuICAgICAgICAgICAgICAgIDY2LFxuICAgICAgICAgICAgICAgIDE3OCxcbiAgICAgICAgICAgICAgICA0NSxcbiAgICAgICAgICAgICAgICAxMzQsXG4gICAgICAgICAgICAgICAgNDQsXG4gICAgICAgICAgICAgICAgMzcsXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICAyNDAsXG4gICAgICAgICAgICAgICAgMTY0LFxuICAgICAgICAgICAgICAgIDEwNSxcbiAgICAgICAgICAgICAgICAxNTUsXG4gICAgICAgICAgICAgICAgMTYzLFxuICAgICAgICAgICAgICAgIDE5MixcbiAgICAgICAgICAgICAgICAyNDMsXG4gICAgICAgICAgICAgICAgMzEsXG4gICAgICAgICAgICAgICAgODAsXG4gICAgICAgICAgICAgICAgMjksXG4gICAgICAgICAgICAgICAgMTI4LFxuICAgICAgICAgICAgICAgIDEwNCxcbiAgICAgICAgICAgICAgICAyNDYsXG4gICAgICAgICAgICAgICAgMTM0XG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJkZWxlZ2F0aW9uUmVjb3JkUGRhXCIsXG4gICAgICAgICAgXCJ3cml0YWJsZVwiOiB0cnVlLFxuICAgICAgICAgIFwicGRhXCI6IHtcbiAgICAgICAgICAgIFwic2VlZHNcIjogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJraW5kXCI6IFwiY29uc3RcIixcbiAgICAgICAgICAgICAgICBcInZhbHVlXCI6IFtcbiAgICAgICAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgICAgICAgIDEwMSxcbiAgICAgICAgICAgICAgICAgIDEwOCxcbiAgICAgICAgICAgICAgICAgIDEwMSxcbiAgICAgICAgICAgICAgICAgIDEwMyxcbiAgICAgICAgICAgICAgICAgIDk3LFxuICAgICAgICAgICAgICAgICAgMTE2LFxuICAgICAgICAgICAgICAgICAgMTA1LFxuICAgICAgICAgICAgICAgICAgMTExLFxuICAgICAgICAgICAgICAgICAgMTEwXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJraW5kXCI6IFwiYWNjb3VudFwiLFxuICAgICAgICAgICAgICAgIFwicGF0aFwiOiBcInBkYVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcInByb2dyYW1cIjoge1xuICAgICAgICAgICAgICBcImtpbmRcIjogXCJhY2NvdW50XCIsXG4gICAgICAgICAgICAgIFwicGF0aFwiOiBcImRlbGVnYXRpb25Qcm9ncmFtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJkZWxlZ2F0aW9uTWV0YWRhdGFQZGFcIixcbiAgICAgICAgICBcIndyaXRhYmxlXCI6IHRydWUsXG4gICAgICAgICAgXCJwZGFcIjoge1xuICAgICAgICAgICAgXCJzZWVkc1wiOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBcImtpbmRcIjogXCJjb25zdFwiLFxuICAgICAgICAgICAgICAgIFwidmFsdWVcIjogW1xuICAgICAgICAgICAgICAgICAgMTAwLFxuICAgICAgICAgICAgICAgICAgMTAxLFxuICAgICAgICAgICAgICAgICAgMTA4LFxuICAgICAgICAgICAgICAgICAgMTAxLFxuICAgICAgICAgICAgICAgICAgMTAzLFxuICAgICAgICAgICAgICAgICAgOTcsXG4gICAgICAgICAgICAgICAgICAxMTYsXG4gICAgICAgICAgICAgICAgICAxMDUsXG4gICAgICAgICAgICAgICAgICAxMTEsXG4gICAgICAgICAgICAgICAgICAxMTAsXG4gICAgICAgICAgICAgICAgICA0NSxcbiAgICAgICAgICAgICAgICAgIDEwOSxcbiAgICAgICAgICAgICAgICAgIDEwMSxcbiAgICAgICAgICAgICAgICAgIDExNixcbiAgICAgICAgICAgICAgICAgIDk3LFxuICAgICAgICAgICAgICAgICAgMTAwLFxuICAgICAgICAgICAgICAgICAgOTcsXG4gICAgICAgICAgICAgICAgICAxMTYsXG4gICAgICAgICAgICAgICAgICA5N1xuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwia2luZFwiOiBcImFjY291bnRcIixcbiAgICAgICAgICAgICAgICBcInBhdGhcIjogXCJwZGFcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJwcm9ncmFtXCI6IHtcbiAgICAgICAgICAgICAgXCJraW5kXCI6IFwiYWNjb3VudFwiLFxuICAgICAgICAgICAgICBcInBhdGhcIjogXCJkZWxlZ2F0aW9uUHJvZ3JhbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwicGRhXCIsXG4gICAgICAgICAgXCJ3cml0YWJsZVwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJwYXllclwiLFxuICAgICAgICAgIFwid3JpdGFibGVcIjogdHJ1ZSxcbiAgICAgICAgICBcInNpZ25lclwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJ2YWxpZGF0b3JcIixcbiAgICAgICAgICBcIm9wdGlvbmFsXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibmFtZVwiOiBcIm93bmVyUHJvZ3JhbVwiLFxuICAgICAgICAgIFwiYWRkcmVzc1wiOiBcIkVkWnpVd0tkMVgyWldqeExQcHoxY3BFek1GN1JVWkM0M1BxNjR2MVZjSzVYXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibmFtZVwiOiBcImRlbGVnYXRpb25Qcm9ncmFtXCIsXG4gICAgICAgICAgXCJhZGRyZXNzXCI6IFwiREVMZUdHdlhwV1YyZnFKVWhxY0Y1WlNZTVM0SlRManRlYUFNQVJSU2FlU2hcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwic3lzdGVtUHJvZ3JhbVwiLFxuICAgICAgICAgIFwiYWRkcmVzc1wiOiBcIjExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExXCJcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFwiYXJnc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJhY2NvdW50VHlwZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgICBcImRlZmluZWRcIjoge1xuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJhY2NvdW50VHlwZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJpbml0aWFsaXplUXVldWVcIixcbiAgICAgIFwiZGlzY3JpbWluYXRvclwiOiBbXG4gICAgICAgIDE3NCxcbiAgICAgICAgMTAyLFxuICAgICAgICAxMzIsXG4gICAgICAgIDIzMixcbiAgICAgICAgOTAsXG4gICAgICAgIDIwMixcbiAgICAgICAgMjcsXG4gICAgICAgIDIwXG4gICAgICBdLFxuICAgICAgXCJhY2NvdW50c1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJxdWV1ZVwiLFxuICAgICAgICAgIFwid3JpdGFibGVcIjogdHJ1ZSxcbiAgICAgICAgICBcInBkYVwiOiB7XG4gICAgICAgICAgICBcInNlZWRzXCI6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwia2luZFwiOiBcImNvbnN0XCIsXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiBbXG4gICAgICAgICAgICAgICAgICAxMTMsXG4gICAgICAgICAgICAgICAgICAxMTcsXG4gICAgICAgICAgICAgICAgICAxMDEsXG4gICAgICAgICAgICAgICAgICAxMTcsXG4gICAgICAgICAgICAgICAgICAxMDFcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBcImtpbmRcIjogXCJhY2NvdW50XCIsXG4gICAgICAgICAgICAgICAgXCJwYXRoXCI6IFwiYXV0aG9yaXR5XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibmFtZVwiOiBcInRlbmFudFwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJhdXRob3JpdHlcIixcbiAgICAgICAgICBcIndyaXRhYmxlXCI6IHRydWUsXG4gICAgICAgICAgXCJzaWduZXJcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwic3lzdGVtUHJvZ3JhbVwiLFxuICAgICAgICAgIFwiYWRkcmVzc1wiOiBcIjExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExXCJcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFwiYXJnc1wiOiBbXVxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiaW5pdGlhbGl6ZVRlbmFudFwiLFxuICAgICAgXCJkaXNjcmltaW5hdG9yXCI6IFtcbiAgICAgICAgOTQsXG4gICAgICAgIDEyMCxcbiAgICAgICAgMzQsXG4gICAgICAgIDE4NixcbiAgICAgICAgNTcsXG4gICAgICAgIDE2NyxcbiAgICAgICAgMjQxLFxuICAgICAgICAyMDZcbiAgICAgIF0sXG4gICAgICBcImFjY291bnRzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwibmFtZVwiOiBcInRlbmFudFwiLFxuICAgICAgICAgIFwid3JpdGFibGVcIjogdHJ1ZSxcbiAgICAgICAgICBcInBkYVwiOiB7XG4gICAgICAgICAgICBcInNlZWRzXCI6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwia2luZFwiOiBcImNvbnN0XCIsXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiBbXG4gICAgICAgICAgICAgICAgICAxMTYsXG4gICAgICAgICAgICAgICAgICAxMDEsXG4gICAgICAgICAgICAgICAgICAxMTAsXG4gICAgICAgICAgICAgICAgICA5NyxcbiAgICAgICAgICAgICAgICAgIDExMCxcbiAgICAgICAgICAgICAgICAgIDExNlxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwia2luZFwiOiBcImFjY291bnRcIixcbiAgICAgICAgICAgICAgICBcInBhdGhcIjogXCJhdXRob3JpdHlcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwiYXV0aG9yaXR5XCIsXG4gICAgICAgICAgXCJ3cml0YWJsZVwiOiB0cnVlLFxuICAgICAgICAgIFwic2lnbmVyXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibmFtZVwiOiBcInN5c3RlbVByb2dyYW1cIixcbiAgICAgICAgICBcImFkZHJlc3NcIjogXCIxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMVwiXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBcImFyZ3NcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwidGVuYW50UHJvZ3JhbUlkXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwicHVia2V5XCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibmFtZVwiOiBcImVsb09mZnNldFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInUzMlwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJlbG9XaW5kb3dcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJ1NjRcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJqb2luUXVldWVcIixcbiAgICAgIFwiZGlzY3JpbWluYXRvclwiOiBbXG4gICAgICAgIDE1NyxcbiAgICAgICAgMTE1LFxuICAgICAgICA0OCxcbiAgICAgICAgMTA5LFxuICAgICAgICA2NSxcbiAgICAgICAgODYsXG4gICAgICAgIDIwMyxcbiAgICAgICAgMjM4XG4gICAgICBdLFxuICAgICAgXCJhY2NvdW50c1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJxdWV1ZVwiLFxuICAgICAgICAgIFwid3JpdGFibGVcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwidGVuYW50XCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibmFtZVwiOiBcInBsYXllckRhdGFcIixcbiAgICAgICAgICBcIndyaXRhYmxlXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibmFtZVwiOiBcInNpZ25lclwiLFxuICAgICAgICAgIFwic2lnbmVyXCI6IHRydWVcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFwiYXJnc1wiOiBbXVxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwicHJvY2Vzc01hdGNoXCIsXG4gICAgICBcImRpc2NyaW1pbmF0b3JcIjogW1xuICAgICAgICAxMzksXG4gICAgICAgIDU4LFxuICAgICAgICA3NyxcbiAgICAgICAgMTAxLFxuICAgICAgICA0NixcbiAgICAgICAgNTQsXG4gICAgICAgIDIwMixcbiAgICAgICAgMTQwXG4gICAgICBdLFxuICAgICAgXCJhY2NvdW50c1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJxdWV1ZVwiLFxuICAgICAgICAgIFwid3JpdGFibGVcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwidGVuYW50XCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibmFtZVwiOiBcImF1dGhvcml0eVwiLFxuICAgICAgICAgIFwic2lnbmVyXCI6IHRydWUsXG4gICAgICAgICAgXCJyZWxhdGlvbnNcIjogW1xuICAgICAgICAgICAgXCJ0ZW5hbnRcIlxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFwiYXJnc1wiOiBbXVxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwicHJvY2Vzc1VuZGVsZWdhdGlvblwiLFxuICAgICAgXCJkaXNjcmltaW5hdG9yXCI6IFtcbiAgICAgICAgMTk2LFxuICAgICAgICAyOCxcbiAgICAgICAgNDEsXG4gICAgICAgIDIwNixcbiAgICAgICAgNDgsXG4gICAgICAgIDM3LFxuICAgICAgICA1MSxcbiAgICAgICAgMTY3XG4gICAgICBdLFxuICAgICAgXCJhY2NvdW50c1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJiYXNlQWNjb3VudFwiLFxuICAgICAgICAgIFwid3JpdGFibGVcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwiYnVmZmVyXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibmFtZVwiOiBcInBheWVyXCIsXG4gICAgICAgICAgXCJ3cml0YWJsZVwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJzeXN0ZW1Qcm9ncmFtXCJcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFwiYXJnc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJhY2NvdW50U2VlZHNcIixcbiAgICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgICAgXCJ2ZWNcIjogXCJieXRlc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICBdLFxuICBcImFjY291bnRzXCI6IFtcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJxdWV1ZVwiLFxuICAgICAgXCJkaXNjcmltaW5hdG9yXCI6IFtcbiAgICAgICAgMjA0LFxuICAgICAgICAxNjcsXG4gICAgICAgIDYsXG4gICAgICAgIDI0NyxcbiAgICAgICAgMjAsXG4gICAgICAgIDMzLFxuICAgICAgICAyLFxuICAgICAgICAxODhcbiAgICAgIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcInRlbmFudFwiLFxuICAgICAgXCJkaXNjcmltaW5hdG9yXCI6IFtcbiAgICAgICAgNjEsXG4gICAgICAgIDQzLFxuICAgICAgICAyMTUsXG4gICAgICAgIDUxLFxuICAgICAgICAyMzIsXG4gICAgICAgIDI0MixcbiAgICAgICAgMjA5LFxuICAgICAgICAxNzBcbiAgICAgIF1cbiAgICB9XG4gIF0sXG4gIFwiZXJyb3JzXCI6IFtcbiAgICB7XG4gICAgICBcImNvZGVcIjogNjAwMCxcbiAgICAgIFwibmFtZVwiOiBcImludmFsaWRUZW5hbnRcIixcbiAgICAgIFwibXNnXCI6IFwiQWNjb3VudCBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIHNwZWNpZmllZCBUZW5hbnQgUHJvZ3JhbVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcImNvZGVcIjogNjAwMSxcbiAgICAgIFwibmFtZVwiOiBcImRhdGFUb29TbWFsbFwiLFxuICAgICAgXCJtc2dcIjogXCJBY2NvdW50IGRhdGEgdG9vIHNtYWxsIGZvciBFTE8gcmVhZFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcImNvZGVcIjogNjAwMixcbiAgICAgIFwibmFtZVwiOiBcInVuYXV0aG9yaXplZFwiLFxuICAgICAgXCJtc2dcIjogXCJVbmF1dGhvcml6ZWQgYWNjZXNzXCJcbiAgICB9XG4gIF0sXG4gIFwidHlwZXNcIjogW1xuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcImFjY291bnRUeXBlXCIsXG4gICAgICBcInR5cGVcIjoge1xuICAgICAgICBcImtpbmRcIjogXCJlbnVtXCIsXG4gICAgICAgIFwidmFyaWFudHNcIjogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiBcInF1ZXVlXCIsXG4gICAgICAgICAgICBcImZpZWxkc1wiOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBcIm5hbWVcIjogXCJhdXRob3JpdHlcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJwdWJrZXlcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJxdWV1ZVwiLFxuICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgXCJraW5kXCI6IFwic3RydWN0XCIsXG4gICAgICAgIFwiZmllbGRzXCI6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogXCJhdXRob3JpdHlcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInB1YmtleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogXCJ0ZW5hbnRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInB1YmtleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogXCJidW1wXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ1OFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogXCJlbnRyaWVzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgICAgICBcInZlY1wiOiB7XG4gICAgICAgICAgICAgICAgXCJkZWZpbmVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcInF1ZXVlRW50cnlcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwicXVldWVFbnRyeVwiLFxuICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgXCJraW5kXCI6IFwic3RydWN0XCIsXG4gICAgICAgIFwiZmllbGRzXCI6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogXCJwbGF5ZXJcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInB1YmtleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogXCJlbG9cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInU2NFwiXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJ0ZW5hbnRcIixcbiAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgIFwia2luZFwiOiBcInN0cnVjdFwiLFxuICAgICAgICBcImZpZWxkc1wiOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6IFwiYXV0aG9yaXR5XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJwdWJrZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6IFwidGVuYW50UHJvZ3JhbUlkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJwdWJrZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6IFwiZWxvT2Zmc2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ1MzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6IFwiZWxvV2luZG93XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ1NjRcIlxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgXVxufTtcbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUHJvZ3JhbSBJREwgaW4gY2FtZWxDYXNlIGZvcm1hdCBpbiBvcmRlciB0byBiZSB1c2VkIGluIEpTL1RTLlxuICpcbiAqIE5vdGUgdGhhdCB0aGlzIGlzIG9ubHkgYSB0eXBlIGhlbHBlciBhbmQgaXMgbm90IHRoZSBhY3R1YWwgSURMLiBUaGUgb3JpZ2luYWxcbiAqIElETCBjYW4gYmUgZm91bmQgYXQgYHRhcmdldC9pZGwvZHVlbC5qc29uYC5cbiAqL1xuZXhwb3J0IHR5cGUgRHVlbCA9IHtcbiAgXCJhZGRyZXNzXCI6IFwiRWRaelV3S2QxWDJaV2p4TFBwejFjcEV6TUY3UlVaQzQzUHE2NHYxVmNLNVhcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiZHVlbFwiLFxuICAgIFwidmVyc2lvblwiOiBcIjAuMS4wXCIsXG4gICAgXCJzcGVjXCI6IFwiMC4xLjBcIlxuICB9LFxuICBcImluc3RydWN0aW9uc1wiOiBbXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiZGVsZWdhdGVRdWV1ZVwiLFxuICAgICAgXCJkaXNjcmltaW5hdG9yXCI6IFtcbiAgICAgICAgMzEsXG4gICAgICAgIDIwMCxcbiAgICAgICAgMTM5LFxuICAgICAgICAxMjUsXG4gICAgICAgIDkzLFxuICAgICAgICAyMzksXG4gICAgICAgIDgzLFxuICAgICAgICA4N1xuICAgICAgXSxcbiAgICAgIFwiYWNjb3VudHNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwiYnVmZmVyUGRhXCIsXG4gICAgICAgICAgXCJ3cml0YWJsZVwiOiB0cnVlLFxuICAgICAgICAgIFwicGRhXCI6IHtcbiAgICAgICAgICAgIFwic2VlZHNcIjogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJraW5kXCI6IFwiY29uc3RcIixcbiAgICAgICAgICAgICAgICBcInZhbHVlXCI6IFtcbiAgICAgICAgICAgICAgICAgIDk4LFxuICAgICAgICAgICAgICAgICAgMTE3LFxuICAgICAgICAgICAgICAgICAgMTAyLFxuICAgICAgICAgICAgICAgICAgMTAyLFxuICAgICAgICAgICAgICAgICAgMTAxLFxuICAgICAgICAgICAgICAgICAgMTE0XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJraW5kXCI6IFwiYWNjb3VudFwiLFxuICAgICAgICAgICAgICAgIFwicGF0aFwiOiBcInBkYVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcInByb2dyYW1cIjoge1xuICAgICAgICAgICAgICBcImtpbmRcIjogXCJjb25zdFwiLFxuICAgICAgICAgICAgICBcInZhbHVlXCI6IFtcbiAgICAgICAgICAgICAgICAyMDIsXG4gICAgICAgICAgICAgICAgMTM0LFxuICAgICAgICAgICAgICAgIDM2LFxuICAgICAgICAgICAgICAgIDEwOCxcbiAgICAgICAgICAgICAgICAxNzQsXG4gICAgICAgICAgICAgICAgMTQ4LFxuICAgICAgICAgICAgICAgIDI1MixcbiAgICAgICAgICAgICAgICA3MyxcbiAgICAgICAgICAgICAgICAyMTEsXG4gICAgICAgICAgICAgICAgMTI1LFxuICAgICAgICAgICAgICAgIDE1LFxuICAgICAgICAgICAgICAgIDY2LFxuICAgICAgICAgICAgICAgIDE3OCxcbiAgICAgICAgICAgICAgICA0NSxcbiAgICAgICAgICAgICAgICAxMzQsXG4gICAgICAgICAgICAgICAgNDQsXG4gICAgICAgICAgICAgICAgMzcsXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICAyNDAsXG4gICAgICAgICAgICAgICAgMTY0LFxuICAgICAgICAgICAgICAgIDEwNSxcbiAgICAgICAgICAgICAgICAxNTUsXG4gICAgICAgICAgICAgICAgMTYzLFxuICAgICAgICAgICAgICAgIDE5MixcbiAgICAgICAgICAgICAgICAyNDMsXG4gICAgICAgICAgICAgICAgMzEsXG4gICAgICAgICAgICAgICAgODAsXG4gICAgICAgICAgICAgICAgMjksXG4gICAgICAgICAgICAgICAgMTI4LFxuICAgICAgICAgICAgICAgIDEwNCxcbiAgICAgICAgICAgICAgICAyNDYsXG4gICAgICAgICAgICAgICAgMTM0XG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJkZWxlZ2F0aW9uUmVjb3JkUGRhXCIsXG4gICAgICAgICAgXCJ3cml0YWJsZVwiOiB0cnVlLFxuICAgICAgICAgIFwicGRhXCI6IHtcbiAgICAgICAgICAgIFwic2VlZHNcIjogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJraW5kXCI6IFwiY29uc3RcIixcbiAgICAgICAgICAgICAgICBcInZhbHVlXCI6IFtcbiAgICAgICAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgICAgICAgIDEwMSxcbiAgICAgICAgICAgICAgICAgIDEwOCxcbiAgICAgICAgICAgICAgICAgIDEwMSxcbiAgICAgICAgICAgICAgICAgIDEwMyxcbiAgICAgICAgICAgICAgICAgIDk3LFxuICAgICAgICAgICAgICAgICAgMTE2LFxuICAgICAgICAgICAgICAgICAgMTA1LFxuICAgICAgICAgICAgICAgICAgMTExLFxuICAgICAgICAgICAgICAgICAgMTEwXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJraW5kXCI6IFwiYWNjb3VudFwiLFxuICAgICAgICAgICAgICAgIFwicGF0aFwiOiBcInBkYVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcInByb2dyYW1cIjoge1xuICAgICAgICAgICAgICBcImtpbmRcIjogXCJhY2NvdW50XCIsXG4gICAgICAgICAgICAgIFwicGF0aFwiOiBcImRlbGVnYXRpb25Qcm9ncmFtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJkZWxlZ2F0aW9uTWV0YWRhdGFQZGFcIixcbiAgICAgICAgICBcIndyaXRhYmxlXCI6IHRydWUsXG4gICAgICAgICAgXCJwZGFcIjoge1xuICAgICAgICAgICAgXCJzZWVkc1wiOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBcImtpbmRcIjogXCJjb25zdFwiLFxuICAgICAgICAgICAgICAgIFwidmFsdWVcIjogW1xuICAgICAgICAgICAgICAgICAgMTAwLFxuICAgICAgICAgICAgICAgICAgMTAxLFxuICAgICAgICAgICAgICAgICAgMTA4LFxuICAgICAgICAgICAgICAgICAgMTAxLFxuICAgICAgICAgICAgICAgICAgMTAzLFxuICAgICAgICAgICAgICAgICAgOTcsXG4gICAgICAgICAgICAgICAgICAxMTYsXG4gICAgICAgICAgICAgICAgICAxMDUsXG4gICAgICAgICAgICAgICAgICAxMTEsXG4gICAgICAgICAgICAgICAgICAxMTAsXG4gICAgICAgICAgICAgICAgICA0NSxcbiAgICAgICAgICAgICAgICAgIDEwOSxcbiAgICAgICAgICAgICAgICAgIDEwMSxcbiAgICAgICAgICAgICAgICAgIDExNixcbiAgICAgICAgICAgICAgICAgIDk3LFxuICAgICAgICAgICAgICAgICAgMTAwLFxuICAgICAgICAgICAgICAgICAgOTcsXG4gICAgICAgICAgICAgICAgICAxMTYsXG4gICAgICAgICAgICAgICAgICA5N1xuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwia2luZFwiOiBcImFjY291bnRcIixcbiAgICAgICAgICAgICAgICBcInBhdGhcIjogXCJwZGFcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJwcm9ncmFtXCI6IHtcbiAgICAgICAgICAgICAgXCJraW5kXCI6IFwiYWNjb3VudFwiLFxuICAgICAgICAgICAgICBcInBhdGhcIjogXCJkZWxlZ2F0aW9uUHJvZ3JhbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwicGRhXCIsXG4gICAgICAgICAgXCJ3cml0YWJsZVwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJwYXllclwiLFxuICAgICAgICAgIFwid3JpdGFibGVcIjogdHJ1ZSxcbiAgICAgICAgICBcInNpZ25lclwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJ2YWxpZGF0b3JcIixcbiAgICAgICAgICBcIm9wdGlvbmFsXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibmFtZVwiOiBcIm93bmVyUHJvZ3JhbVwiLFxuICAgICAgICAgIFwiYWRkcmVzc1wiOiBcIkVkWnpVd0tkMVgyWldqeExQcHoxY3BFek1GN1JVWkM0M1BxNjR2MVZjSzVYXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibmFtZVwiOiBcImRlbGVnYXRpb25Qcm9ncmFtXCIsXG4gICAgICAgICAgXCJhZGRyZXNzXCI6IFwiREVMZUdHdlhwV1YyZnFKVWhxY0Y1WlNZTVM0SlRManRlYUFNQVJSU2FlU2hcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwic3lzdGVtUHJvZ3JhbVwiLFxuICAgICAgICAgIFwiYWRkcmVzc1wiOiBcIjExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExXCJcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFwiYXJnc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJhY2NvdW50VHlwZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgICBcImRlZmluZWRcIjoge1xuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJhY2NvdW50VHlwZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJpbml0aWFsaXplUXVldWVcIixcbiAgICAgIFwiZGlzY3JpbWluYXRvclwiOiBbXG4gICAgICAgIDE3NCxcbiAgICAgICAgMTAyLFxuICAgICAgICAxMzIsXG4gICAgICAgIDIzMixcbiAgICAgICAgOTAsXG4gICAgICAgIDIwMixcbiAgICAgICAgMjcsXG4gICAgICAgIDIwXG4gICAgICBdLFxuICAgICAgXCJhY2NvdW50c1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJxdWV1ZVwiLFxuICAgICAgICAgIFwid3JpdGFibGVcIjogdHJ1ZSxcbiAgICAgICAgICBcInBkYVwiOiB7XG4gICAgICAgICAgICBcInNlZWRzXCI6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwia2luZFwiOiBcImNvbnN0XCIsXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiBbXG4gICAgICAgICAgICAgICAgICAxMTMsXG4gICAgICAgICAgICAgICAgICAxMTcsXG4gICAgICAgICAgICAgICAgICAxMDEsXG4gICAgICAgICAgICAgICAgICAxMTcsXG4gICAgICAgICAgICAgICAgICAxMDFcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBcImtpbmRcIjogXCJhY2NvdW50XCIsXG4gICAgICAgICAgICAgICAgXCJwYXRoXCI6IFwiYXV0aG9yaXR5XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibmFtZVwiOiBcInRlbmFudFwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJhdXRob3JpdHlcIixcbiAgICAgICAgICBcIndyaXRhYmxlXCI6IHRydWUsXG4gICAgICAgICAgXCJzaWduZXJcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwic3lzdGVtUHJvZ3JhbVwiLFxuICAgICAgICAgIFwiYWRkcmVzc1wiOiBcIjExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExXCJcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFwiYXJnc1wiOiBbXVxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiaW5pdGlhbGl6ZVRlbmFudFwiLFxuICAgICAgXCJkaXNjcmltaW5hdG9yXCI6IFtcbiAgICAgICAgOTQsXG4gICAgICAgIDEyMCxcbiAgICAgICAgMzQsXG4gICAgICAgIDE4NixcbiAgICAgICAgNTcsXG4gICAgICAgIDE2NyxcbiAgICAgICAgMjQxLFxuICAgICAgICAyMDZcbiAgICAgIF0sXG4gICAgICBcImFjY291bnRzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwibmFtZVwiOiBcInRlbmFudFwiLFxuICAgICAgICAgIFwid3JpdGFibGVcIjogdHJ1ZSxcbiAgICAgICAgICBcInBkYVwiOiB7XG4gICAgICAgICAgICBcInNlZWRzXCI6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwia2luZFwiOiBcImNvbnN0XCIsXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiBbXG4gICAgICAgICAgICAgICAgICAxMTYsXG4gICAgICAgICAgICAgICAgICAxMDEsXG4gICAgICAgICAgICAgICAgICAxMTAsXG4gICAgICAgICAgICAgICAgICA5NyxcbiAgICAgICAgICAgICAgICAgIDExMCxcbiAgICAgICAgICAgICAgICAgIDExNlxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwia2luZFwiOiBcImFjY291bnRcIixcbiAgICAgICAgICAgICAgICBcInBhdGhcIjogXCJhdXRob3JpdHlcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwiYXV0aG9yaXR5XCIsXG4gICAgICAgICAgXCJ3cml0YWJsZVwiOiB0cnVlLFxuICAgICAgICAgIFwic2lnbmVyXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibmFtZVwiOiBcInN5c3RlbVByb2dyYW1cIixcbiAgICAgICAgICBcImFkZHJlc3NcIjogXCIxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMVwiXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBcImFyZ3NcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwidGVuYW50UHJvZ3JhbUlkXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwicHVia2V5XCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibmFtZVwiOiBcImVsb09mZnNldFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInUzMlwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJlbG9TaXplXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwidThcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwiZWxvV2luZG93XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwidTY0XCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiam9pblF1ZXVlXCIsXG4gICAgICBcImRpc2NyaW1pbmF0b3JcIjogW1xuICAgICAgICAxNTcsXG4gICAgICAgIDExNSxcbiAgICAgICAgNDgsXG4gICAgICAgIDEwOSxcbiAgICAgICAgNjUsXG4gICAgICAgIDg2LFxuICAgICAgICAyMDMsXG4gICAgICAgIDIzOFxuICAgICAgXSxcbiAgICAgIFwiYWNjb3VudHNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwicXVldWVcIixcbiAgICAgICAgICBcIndyaXRhYmxlXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibmFtZVwiOiBcInRlbmFudFwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJwbGF5ZXJEYXRhXCIsXG4gICAgICAgICAgXCJ3cml0YWJsZVwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJzaWduZXJcIixcbiAgICAgICAgICBcInNpZ25lclwiOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBcImFyZ3NcIjogW11cbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcInByb2Nlc3NNYXRjaFwiLFxuICAgICAgXCJkaXNjcmltaW5hdG9yXCI6IFtcbiAgICAgICAgMTM5LFxuICAgICAgICA1OCxcbiAgICAgICAgNzcsXG4gICAgICAgIDEwMSxcbiAgICAgICAgNDYsXG4gICAgICAgIDU0LFxuICAgICAgICAyMDIsXG4gICAgICAgIDE0MFxuICAgICAgXSxcbiAgICAgIFwiYWNjb3VudHNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwicXVldWVcIixcbiAgICAgICAgICBcIndyaXRhYmxlXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibmFtZVwiOiBcInRlbmFudFwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJhdXRob3JpdHlcIixcbiAgICAgICAgICBcInNpZ25lclwiOiB0cnVlLFxuICAgICAgICAgIFwicmVsYXRpb25zXCI6IFtcbiAgICAgICAgICAgIFwidGVuYW50XCJcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBcImFyZ3NcIjogW11cbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcInByb2Nlc3NVbmRlbGVnYXRpb25cIixcbiAgICAgIFwiZGlzY3JpbWluYXRvclwiOiBbXG4gICAgICAgIDE5NixcbiAgICAgICAgMjgsXG4gICAgICAgIDQxLFxuICAgICAgICAyMDYsXG4gICAgICAgIDQ4LFxuICAgICAgICAzNyxcbiAgICAgICAgNTEsXG4gICAgICAgIDE2N1xuICAgICAgXSxcbiAgICAgIFwiYWNjb3VudHNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwiYmFzZUFjY291bnRcIixcbiAgICAgICAgICBcIndyaXRhYmxlXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibmFtZVwiOiBcImJ1ZmZlclwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJwYXllclwiLFxuICAgICAgICAgIFwid3JpdGFibGVcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwic3lzdGVtUHJvZ3JhbVwiXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBcImFyZ3NcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwiYWNjb3VudFNlZWRzXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICAgIFwidmVjXCI6IFwiYnl0ZXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgXSxcbiAgXCJhY2NvdW50c1wiOiBbXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwicXVldWVcIixcbiAgICAgIFwiZGlzY3JpbWluYXRvclwiOiBbXG4gICAgICAgIDIwNCxcbiAgICAgICAgMTY3LFxuICAgICAgICA2LFxuICAgICAgICAyNDcsXG4gICAgICAgIDIwLFxuICAgICAgICAzMyxcbiAgICAgICAgMixcbiAgICAgICAgMTg4XG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJ0ZW5hbnRcIixcbiAgICAgIFwiZGlzY3JpbWluYXRvclwiOiBbXG4gICAgICAgIDYxLFxuICAgICAgICA0MyxcbiAgICAgICAgMjE1LFxuICAgICAgICA1MSxcbiAgICAgICAgMjMyLFxuICAgICAgICAyNDIsXG4gICAgICAgIDIwOSxcbiAgICAgICAgMTcwXG4gICAgICBdXG4gICAgfVxuICBdLFxuICBcImVycm9yc1wiOiBbXG4gICAge1xuICAgICAgXCJjb2RlXCI6IDYwMDAsXG4gICAgICBcIm5hbWVcIjogXCJpbnZhbGlkVGVuYW50XCIsXG4gICAgICBcIm1zZ1wiOiBcIkFjY291bnQgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBzcGVjaWZpZWQgVGVuYW50IFByb2dyYW1cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJjb2RlXCI6IDYwMDEsXG4gICAgICBcIm5hbWVcIjogXCJkYXRhVG9vU21hbGxcIixcbiAgICAgIFwibXNnXCI6IFwiQWNjb3VudCBkYXRhIHRvbyBzbWFsbCBmb3IgRUxPIHJlYWRcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJjb2RlXCI6IDYwMDIsXG4gICAgICBcIm5hbWVcIjogXCJ1bmF1dGhvcml6ZWRcIixcbiAgICAgIFwibXNnXCI6IFwiVW5hdXRob3JpemVkIGFjY2Vzc1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcImNvZGVcIjogNjAwMyxcbiAgICAgIFwibmFtZVwiOiBcImludmFsaWRFbG9TaXplXCIsXG4gICAgICBcIm1zZ1wiOiBcIkludmFsaWQgRUxPIHNpemUgKG11c3QgYmUgMSwgMiwgNCwgb3IgOCBieXRlcylcIlxuICAgIH1cbiAgXSxcbiAgXCJ0eXBlc1wiOiBbXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiYWNjb3VudFR5cGVcIixcbiAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgIFwia2luZFwiOiBcImVudW1cIixcbiAgICAgICAgXCJ2YXJpYW50c1wiOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6IFwicXVldWVcIixcbiAgICAgICAgICAgIFwiZmllbGRzXCI6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcImF1dGhvcml0eVwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInB1YmtleVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcInF1ZXVlXCIsXG4gICAgICBcInR5cGVcIjoge1xuICAgICAgICBcImtpbmRcIjogXCJzdHJ1Y3RcIixcbiAgICAgICAgXCJmaWVsZHNcIjogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiBcImF1dGhvcml0eVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwicHVia2V5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiBcInRlbmFudFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwicHVia2V5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiBcImJ1bXBcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInU4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiBcImVudHJpZXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgICAgIFwidmVjXCI6IHtcbiAgICAgICAgICAgICAgICBcImRlZmluZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwicXVldWVFbnRyeVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJxdWV1ZUVudHJ5XCIsXG4gICAgICBcInR5cGVcIjoge1xuICAgICAgICBcImtpbmRcIjogXCJzdHJ1Y3RcIixcbiAgICAgICAgXCJmaWVsZHNcIjogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiBcInBsYXllclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwicHVia2V5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiBcImVsb1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidTY0XCJcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcInRlbmFudFwiLFxuICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgXCJraW5kXCI6IFwic3RydWN0XCIsXG4gICAgICAgIFwiZmllbGRzXCI6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogXCJhdXRob3JpdHlcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInB1YmtleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogXCJ0ZW5hbnRQcm9ncmFtSWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInB1YmtleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogXCJlbG9PZmZzZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInUzMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogXCJlbG9TaXplXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ1OFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogXCJlbG9XaW5kb3dcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInU2NFwiXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICBdXG59O1xuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1upmonster/duel",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "SDK for Private Matchmaking on Solana",
5
5
  "license": "MIT",
6
6
  "repository": {
package/src/admin.ts CHANGED
@@ -4,6 +4,24 @@ import { PublicKey, SystemProgram, TransactionSignature, ConfirmOptions, Keypair
4
4
  import { Duel } from "./types";
5
5
  import IDL from "./duel.json";
6
6
 
7
+ export type EloDataType = 'u8' | 'u16' | 'u32' | 'u64';
8
+
9
+ export interface InitializeTenantOptions {
10
+ authority?: PublicKey; // Optional, defaults to tenantProgramId
11
+ eloWindow?: number; // Default: 100
12
+ eloOffset?: number; // Default: 40
13
+ eloDataType?: EloDataType; // Default: 'u16'
14
+ }
15
+
16
+ function getEloSize(dataType: EloDataType): number {
17
+ switch (dataType) {
18
+ case 'u8': return 1;
19
+ case 'u16': return 2;
20
+ case 'u32': return 4;
21
+ case 'u64': return 8;
22
+ }
23
+ }
24
+
7
25
  export class MatchmakingAdmin {
8
26
  program: Program<Duel>;
9
27
  provider: AnchorProvider;
@@ -40,18 +58,26 @@ export class MatchmakingAdmin {
40
58
  * Initialize a Tenant
41
59
  */
42
60
  async initializeTenant(
43
- authority: PublicKey,
44
61
  tenantProgramId: PublicKey,
45
- eloWindow: number = 100,
46
- eloOffset: number = 8 + 32,
62
+ options?: InitializeTenantOptions,
47
63
  confirmOptions?: ConfirmOptions,
48
64
  signers: Keypair[] = []
49
65
  ): Promise<TransactionSignature> {
66
+ const {
67
+ authority = tenantProgramId,
68
+ eloWindow = 100,
69
+ eloOffset = 40,
70
+ eloDataType = 'u16'
71
+ } = options || {};
72
+
73
+ const eloSize = getEloSize(eloDataType);
50
74
  const tenantPda = this.getTenantPda(authority);
75
+
51
76
  return await this.program.methods
52
77
  .initializeTenant(
53
78
  tenantProgramId,
54
79
  eloOffset,
80
+ eloSize,
55
81
  new anchor.BN(eloWindow)
56
82
  )
57
83
  .accountsPartial({
package/src/duel.json CHANGED
@@ -292,6 +292,10 @@
292
292
  "name": "elo_offset",
293
293
  "type": "u32"
294
294
  },
295
+ {
296
+ "name": "elo_size",
297
+ "type": "u8"
298
+ },
295
299
  {
296
300
  "name": "elo_window",
297
301
  "type": "u64"
@@ -440,6 +444,11 @@
440
444
  "code": 6002,
441
445
  "name": "Unauthorized",
442
446
  "msg": "Unauthorized access"
447
+ },
448
+ {
449
+ "code": 6003,
450
+ "name": "InvalidEloSize",
451
+ "msg": "Invalid ELO size (must be 1, 2, 4, or 8 bytes)"
443
452
  }
444
453
  ],
445
454
  "types": [
@@ -523,6 +532,10 @@
523
532
  "name": "elo_offset",
524
533
  "type": "u32"
525
534
  },
535
+ {
536
+ "name": "elo_size",
537
+ "type": "u8"
538
+ },
526
539
  {
527
540
  "name": "elo_window",
528
541
  "type": "u64"
package/src/types.ts CHANGED
@@ -298,6 +298,10 @@ export type Duel = {
298
298
  "name": "eloOffset",
299
299
  "type": "u32"
300
300
  },
301
+ {
302
+ "name": "eloSize",
303
+ "type": "u8"
304
+ },
301
305
  {
302
306
  "name": "eloWindow",
303
307
  "type": "u64"
@@ -446,6 +450,11 @@ export type Duel = {
446
450
  "code": 6002,
447
451
  "name": "unauthorized",
448
452
  "msg": "Unauthorized access"
453
+ },
454
+ {
455
+ "code": 6003,
456
+ "name": "invalidEloSize",
457
+ "msg": "Invalid ELO size (must be 1, 2, 4, or 8 bytes)"
449
458
  }
450
459
  ],
451
460
  "types": [
@@ -529,6 +538,10 @@ export type Duel = {
529
538
  "name": "eloOffset",
530
539
  "type": "u32"
531
540
  },
541
+ {
542
+ "name": "eloSize",
543
+ "type": "u8"
544
+ },
532
545
  {
533
546
  "name": "eloWindow",
534
547
  "type": "u64"