@1upmonster/duel 0.1.8 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/README.md +110 -59
  2. package/dist/admin.d.ts +25 -40
  3. package/dist/admin.js +93 -114
  4. package/dist/encryption.js +1 -2
  5. package/dist/generated/duel/accounts/index.d.ts +10 -0
  6. package/dist/generated/duel/accounts/index.js +11 -0
  7. package/dist/generated/duel/accounts/matchTicket.d.ts +38 -0
  8. package/dist/generated/duel/accounts/matchTicket.js +45 -0
  9. package/dist/generated/duel/accounts/queue.d.ts +42 -0
  10. package/dist/generated/duel/accounts/queue.js +45 -0
  11. package/dist/generated/duel/accounts/tenant.d.ts +41 -0
  12. package/dist/generated/duel/accounts/tenant.js +44 -0
  13. package/dist/generated/duel/errors/duel.d.ts +31 -0
  14. package/dist/generated/duel/errors/duel.js +35 -0
  15. package/dist/generated/duel/errors/index.d.ts +8 -0
  16. package/dist/generated/duel/errors/index.js +9 -0
  17. package/dist/generated/duel/index.d.ts +12 -0
  18. package/dist/generated/duel/index.js +13 -0
  19. package/dist/generated/duel/instructions/cancelTicket.d.ts +45 -0
  20. package/dist/generated/duel/instructions/cancelTicket.js +56 -0
  21. package/dist/generated/duel/instructions/closeTicket.d.ts +45 -0
  22. package/dist/generated/duel/instructions/closeTicket.js +56 -0
  23. package/dist/generated/duel/instructions/commitTickets.d.ts +39 -0
  24. package/dist/generated/duel/instructions/commitTickets.js +50 -0
  25. package/dist/generated/duel/instructions/createTicket.d.ts +48 -0
  26. package/dist/generated/duel/instructions/createTicket.js +63 -0
  27. package/dist/generated/duel/instructions/delegateQueue.d.ts +69 -0
  28. package/dist/generated/duel/instructions/delegateQueue.js +90 -0
  29. package/dist/generated/duel/instructions/delegateTicket.d.ts +69 -0
  30. package/dist/generated/duel/instructions/delegateTicket.js +90 -0
  31. package/dist/generated/duel/instructions/flushMatches.d.ts +37 -0
  32. package/dist/generated/duel/instructions/flushMatches.js +43 -0
  33. package/dist/generated/duel/instructions/index.d.ts +19 -0
  34. package/dist/generated/duel/instructions/index.js +20 -0
  35. package/dist/generated/duel/instructions/initializeQueue.d.ts +48 -0
  36. package/dist/generated/duel/instructions/initializeQueue.js +63 -0
  37. package/dist/generated/duel/instructions/initializeTenant.d.ts +70 -0
  38. package/dist/generated/duel/instructions/initializeTenant.js +67 -0
  39. package/dist/generated/duel/instructions/joinQueue.d.ts +51 -0
  40. package/dist/generated/duel/instructions/joinQueue.js +56 -0
  41. package/dist/generated/duel/instructions/processUndelegation.d.ts +43 -0
  42. package/dist/generated/duel/instructions/processUndelegation.js +49 -0
  43. package/dist/generated/duel/instructions/setupTicketPermission.d.ts +54 -0
  44. package/dist/generated/duel/instructions/setupTicketPermission.js +63 -0
  45. package/dist/generated/duel/programs/duel.d.ts +92 -0
  46. package/dist/generated/duel/programs/duel.js +146 -0
  47. package/dist/generated/duel/programs/index.d.ts +8 -0
  48. package/dist/generated/duel/programs/index.js +9 -0
  49. package/dist/generated/duel/types/accountType.d.ts +25 -0
  50. package/dist/generated/duel/types/accountType.js +25 -0
  51. package/dist/generated/duel/types/index.d.ts +13 -0
  52. package/dist/generated/duel/types/index.js +14 -0
  53. package/dist/generated/duel/types/matchEntry.d.ts +23 -0
  54. package/dist/generated/duel/types/matchEntry.js +18 -0
  55. package/dist/generated/duel/types/matchFound.d.ts +23 -0
  56. package/dist/generated/duel/types/matchFound.js +18 -0
  57. package/dist/generated/duel/types/pendingMatch.d.ts +21 -0
  58. package/dist/generated/duel/types/pendingMatch.js +18 -0
  59. package/dist/generated/duel/types/queueEntry.d.ts +19 -0
  60. package/dist/generated/duel/types/queueEntry.js +18 -0
  61. package/dist/generated/duel/types/ticketStatus.d.ts +40 -0
  62. package/dist/generated/duel/types/ticketStatus.js +25 -0
  63. package/dist/generated/rps-game/accounts/gameSession.d.ts +40 -0
  64. package/dist/generated/rps-game/accounts/gameSession.js +45 -0
  65. package/dist/generated/rps-game/accounts/index.d.ts +9 -0
  66. package/dist/generated/rps-game/accounts/index.js +10 -0
  67. package/dist/generated/rps-game/accounts/playerProfile.d.ts +36 -0
  68. package/dist/generated/rps-game/accounts/playerProfile.js +47 -0
  69. package/dist/generated/rps-game/errors/index.d.ts +8 -0
  70. package/dist/generated/rps-game/errors/index.js +9 -0
  71. package/dist/generated/rps-game/errors/rpsGame.d.ts +25 -0
  72. package/dist/generated/rps-game/errors/rpsGame.js +29 -0
  73. package/dist/generated/rps-game/index.d.ts +12 -0
  74. package/dist/generated/rps-game/index.js +13 -0
  75. package/dist/generated/rps-game/instructions/closePlayer.d.ts +45 -0
  76. package/dist/generated/rps-game/instructions/closePlayer.js +56 -0
  77. package/dist/generated/rps-game/instructions/delegatePda.d.ts +69 -0
  78. package/dist/generated/rps-game/instructions/delegatePda.js +90 -0
  79. package/dist/generated/rps-game/instructions/index.d.ts +16 -0
  80. package/dist/generated/rps-game/instructions/index.js +17 -0
  81. package/dist/generated/rps-game/instructions/initializePlayer.d.ts +48 -0
  82. package/dist/generated/rps-game/instructions/initializePlayer.js +63 -0
  83. package/dist/generated/rps-game/instructions/makeChoice.d.ts +44 -0
  84. package/dist/generated/rps-game/instructions/makeChoice.js +46 -0
  85. package/dist/generated/rps-game/instructions/onMatchFound.d.ts +43 -0
  86. package/dist/generated/rps-game/instructions/onMatchFound.js +45 -0
  87. package/dist/generated/rps-game/instructions/persistResults.d.ts +43 -0
  88. package/dist/generated/rps-game/instructions/persistResults.js +50 -0
  89. package/dist/generated/rps-game/instructions/processUndelegation.d.ts +43 -0
  90. package/dist/generated/rps-game/instructions/processUndelegation.js +49 -0
  91. package/dist/generated/rps-game/instructions/startGame.d.ts +54 -0
  92. package/dist/generated/rps-game/instructions/startGame.js +67 -0
  93. package/dist/generated/rps-game/instructions/startGameWithTicket.d.ts +57 -0
  94. package/dist/generated/rps-game/instructions/startGameWithTicket.js +67 -0
  95. package/dist/generated/rps-game/programs/index.d.ts +8 -0
  96. package/dist/generated/rps-game/programs/index.js +9 -0
  97. package/dist/generated/rps-game/programs/rpsGame.d.ts +78 -0
  98. package/dist/generated/rps-game/programs/rpsGame.js +118 -0
  99. package/dist/generated/rps-game/types/accountType.d.ts +34 -0
  100. package/dist/generated/rps-game/types/accountType.js +25 -0
  101. package/dist/generated/rps-game/types/choice.d.ts +17 -0
  102. package/dist/generated/rps-game/types/choice.js +25 -0
  103. package/dist/generated/rps-game/types/gameResult.d.ts +26 -0
  104. package/dist/generated/rps-game/types/gameResult.js +25 -0
  105. package/dist/generated/rps-game/types/index.d.ts +10 -0
  106. package/dist/generated/rps-game/types/index.js +11 -0
  107. package/dist/index.d.ts +2 -1
  108. package/dist/index.js +3 -2
  109. package/dist/player.d.ts +25 -46
  110. package/dist/player.js +81 -140
  111. package/dist/tee.d.ts +14 -0
  112. package/dist/tee.js +62 -0
  113. package/dist/transaction.d.ts +11 -0
  114. package/dist/transaction.js +50 -0
  115. package/dist/utils.d.ts +4 -4
  116. package/dist/utils.js +23 -8
  117. package/package.json +3 -6
  118. package/src/admin.ts +151 -161
  119. package/src/duel.json +66 -7
  120. package/src/encryption.ts +0 -3
  121. package/src/generated/duel/accounts/index.ts +11 -0
  122. package/src/generated/duel/accounts/matchTicket.ts +77 -0
  123. package/src/generated/duel/accounts/queue.ts +77 -0
  124. package/src/generated/duel/accounts/tenant.ts +76 -0
  125. package/src/generated/duel/errors/duel.ts +46 -0
  126. package/src/generated/duel/errors/index.ts +9 -0
  127. package/src/generated/duel/index.ts +13 -0
  128. package/src/generated/duel/instructions/cancelTicket.ts +100 -0
  129. package/src/generated/duel/instructions/closeTicket.ts +100 -0
  130. package/src/generated/duel/instructions/commitTickets.ts +84 -0
  131. package/src/generated/duel/instructions/createTicket.ts +109 -0
  132. package/src/generated/duel/instructions/delegateQueue.ts +157 -0
  133. package/src/generated/duel/instructions/delegateTicket.ts +157 -0
  134. package/src/generated/duel/instructions/flushMatches.ts +76 -0
  135. package/src/generated/duel/instructions/index.ts +20 -0
  136. package/src/generated/duel/instructions/initializeQueue.ts +109 -0
  137. package/src/generated/duel/instructions/initializeTenant.ts +126 -0
  138. package/src/generated/duel/instructions/joinQueue.ts +106 -0
  139. package/src/generated/duel/instructions/processUndelegation.ts +86 -0
  140. package/src/generated/duel/instructions/setupTicketPermission.ts +115 -0
  141. package/src/generated/duel/programs/duel.ts +108 -0
  142. package/src/generated/duel/programs/index.ts +9 -0
  143. package/src/generated/duel/types/accountType.ts +36 -0
  144. package/src/generated/duel/types/index.ts +14 -0
  145. package/src/generated/duel/types/matchEntry.ts +25 -0
  146. package/src/generated/duel/types/matchFound.ts +25 -0
  147. package/src/generated/duel/types/pendingMatch.ts +25 -0
  148. package/src/generated/duel/types/queueEntry.ts +25 -0
  149. package/src/generated/duel/types/ticketStatus.ts +38 -0
  150. package/src/generated/rps-game/accounts/gameSession.ts +77 -0
  151. package/src/generated/rps-game/accounts/index.ts +10 -0
  152. package/src/generated/rps-game/accounts/playerProfile.ts +80 -0
  153. package/src/generated/rps-game/errors/index.ts +9 -0
  154. package/src/generated/rps-game/errors/rpsGame.ts +40 -0
  155. package/src/generated/rps-game/index.ts +13 -0
  156. package/src/generated/rps-game/instructions/closePlayer.ts +100 -0
  157. package/src/generated/rps-game/instructions/delegatePda.ts +157 -0
  158. package/src/generated/rps-game/instructions/index.ts +17 -0
  159. package/src/generated/rps-game/instructions/initializePlayer.ts +109 -0
  160. package/src/generated/rps-game/instructions/makeChoice.ts +84 -0
  161. package/src/generated/rps-game/instructions/onMatchFound.ts +79 -0
  162. package/src/generated/rps-game/instructions/persistResults.ts +88 -0
  163. package/src/generated/rps-game/instructions/processUndelegation.ts +86 -0
  164. package/src/generated/rps-game/instructions/startGame.ts +118 -0
  165. package/src/generated/rps-game/instructions/startGameWithTicket.ts +121 -0
  166. package/src/generated/rps-game/programs/index.ts +9 -0
  167. package/src/generated/rps-game/programs/rpsGame.ts +95 -0
  168. package/src/generated/rps-game/types/accountType.ts +36 -0
  169. package/src/generated/rps-game/types/choice.ts +25 -0
  170. package/src/generated/rps-game/types/gameResult.ts +37 -0
  171. package/src/generated/rps-game/types/index.ts +11 -0
  172. package/src/index.ts +2 -1
  173. package/src/player.ts +129 -192
  174. package/src/{idl/private_matchmaking.json → rps_game.json} +547 -583
  175. package/src/tee.ts +79 -0
  176. package/src/transaction.ts +90 -0
  177. package/src/utils.ts +35 -20
  178. package/tsconfig.json +2 -2
  179. package/dist/client.d.ts +0 -54
  180. package/dist/client.js +0 -265
  181. package/dist/duel.json +0 -1207
  182. package/dist/private_matchmaking.json +0 -534
  183. package/dist/types.d.ts +0 -635
  184. package/dist/types.js +0 -2
  185. package/src/idl/private_matchmaking.ts +0 -1033
  186. package/src/types.ts +0 -300
@@ -0,0 +1,56 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ import { combineCodec, fixDecoderSize, fixEncoderSize, getAddressEncoder, getBytesDecoder, getBytesEncoder, getProgramDerivedAddress, getStructDecoder, getStructEncoder, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, SolanaError, transformEncoder } from '@solana/kit';
9
+ import { getAccountMetaFactory, getAddressFromResolvedInstructionAccount } from '@solana/program-client-core';
10
+ import { DUEL_PROGRAM_ADDRESS } from '../programs';
11
+ export const CANCEL_TICKET_DISCRIMINATOR = new Uint8Array([216, 28, 247, 206, 195, 171, 100, 143]);
12
+ export function getCancelTicketDiscriminatorBytes() { return fixEncoderSize(getBytesEncoder(), 8).encode(CANCEL_TICKET_DISCRIMINATOR); }
13
+ export function getCancelTicketInstructionDataEncoder() {
14
+ return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)]]), (value) => ({ ...value, discriminator: CANCEL_TICKET_DISCRIMINATOR }));
15
+ }
16
+ export function getCancelTicketInstructionDataDecoder() {
17
+ return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)]]);
18
+ }
19
+ export function getCancelTicketInstructionDataCodec() {
20
+ return combineCodec(getCancelTicketInstructionDataEncoder(), getCancelTicketInstructionDataDecoder());
21
+ }
22
+ export async function getCancelTicketInstructionAsync(input, config) {
23
+ // Program address.
24
+ const programAddress = config?.programAddress ?? DUEL_PROGRAM_ADDRESS;
25
+ // Original accounts.
26
+ const originalAccounts = { ticket: { value: input.ticket ?? null, isWritable: true }, tenant: { value: input.tenant ?? null, isWritable: false }, player: { value: input.player ?? null, isWritable: false } };
27
+ const accounts = originalAccounts;
28
+ // Resolve default values.
29
+ if (!accounts.ticket.value) {
30
+ accounts.ticket.value = await getProgramDerivedAddress({ programAddress, seeds: [getBytesEncoder().encode(new Uint8Array([116, 105, 99, 107, 101, 116])), getAddressEncoder().encode(getAddressFromResolvedInstructionAccount("player", accounts.player.value)), getAddressEncoder().encode(getAddressFromResolvedInstructionAccount("tenant", accounts.tenant.value))] });
31
+ }
32
+ const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
33
+ return Object.freeze({ accounts: [getAccountMeta("ticket", accounts.ticket), getAccountMeta("tenant", accounts.tenant), getAccountMeta("player", accounts.player)], data: getCancelTicketInstructionDataEncoder().encode({}), programAddress });
34
+ }
35
+ export function getCancelTicketInstruction(input, config) {
36
+ // Program address.
37
+ const programAddress = config?.programAddress ?? DUEL_PROGRAM_ADDRESS;
38
+ // Original accounts.
39
+ const originalAccounts = { ticket: { value: input.ticket ?? null, isWritable: true }, tenant: { value: input.tenant ?? null, isWritable: false }, player: { value: input.player ?? null, isWritable: false } };
40
+ const accounts = originalAccounts;
41
+ const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
42
+ return Object.freeze({ accounts: [getAccountMeta("ticket", accounts.ticket), getAccountMeta("tenant", accounts.tenant), getAccountMeta("player", accounts.player)], data: getCancelTicketInstructionDataEncoder().encode({}), programAddress });
43
+ }
44
+ export function parseCancelTicketInstruction(instruction) {
45
+ if (instruction.accounts.length < 3) {
46
+ throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, { actualAccountMetas: instruction.accounts.length, expectedAccountMetas: 3 });
47
+ }
48
+ let accountIndex = 0;
49
+ const getNextAccount = () => {
50
+ const accountMeta = instruction.accounts[accountIndex];
51
+ accountIndex += 1;
52
+ return accountMeta;
53
+ };
54
+ return { programAddress: instruction.programAddress, accounts: { ticket: getNextAccount(), tenant: getNextAccount(), player: getNextAccount() }, data: getCancelTicketInstructionDataDecoder().decode(instruction.data) };
55
+ }
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuY2VsVGlja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9kdWVsL2luc3RydWN0aW9ucy9jYW5jZWxUaWNrZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUseURBQXlELEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFnVSxNQUFNLGFBQWEsQ0FBQztBQUN0bEIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHdDQUF3QyxFQUFtQyxNQUFNLDZCQUE2QixDQUFDO0FBQy9JLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBRW5HLE1BQU0sVUFBVSxpQ0FBaUMsS0FBSyxPQUFPLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFTeEksTUFBTSxVQUFVLHFDQUFxQztJQUNqRCxPQUFPLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsYUFBYSxFQUFFLDJCQUEyQixFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2hMLENBQUM7QUFFRCxNQUFNLFVBQVUscUNBQXFDO0lBQ2pELE9BQU8sZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkYsQ0FBQztBQUVELE1BQU0sVUFBVSxtQ0FBbUM7SUFDL0MsT0FBTyxZQUFZLENBQUMscUNBQXFDLEVBQUUsRUFBRSxxQ0FBcUMsRUFBRSxDQUFDLENBQUM7QUFDMUcsQ0FBQztBQVFELE1BQU0sQ0FBQyxLQUFLLFVBQVUsK0JBQStCLENBQTZKLEtBQTZFLEVBQUUsTUFBNkM7SUFDNVUsbUJBQW1CO0lBQ3JCLE1BQU0sY0FBYyxHQUFHLE1BQU0sRUFBRSxjQUFjLElBQUksb0JBQW9CLENBQUM7SUFFckUscUJBQXFCO0lBQ3RCLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFBO0lBQzlNLE1BQU0sUUFBUSxHQUFHLGdCQUFxRixDQUFDO0lBR3ZHLDBCQUEwQjtJQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLHdCQUF3QixDQUFDLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLENBQUMsTUFBTSxDQUFDLHdDQUF3QyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxNQUFNLENBQUMsd0NBQXdDLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzVyxDQUFDO0lBRUQsTUFBTSxjQUFjLEdBQUcscUJBQXFCLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzFFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLHFDQUFxQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBOEYsQ0FBQyxDQUFDO0FBQzVVLENBQUM7QUFRRCxNQUFNLFVBQVUsMEJBQTBCLENBQTZKLEtBQXdFLEVBQUUsTUFBNkM7SUFDNVQsbUJBQW1CO0lBQ3JCLE1BQU0sY0FBYyxHQUFHLE1BQU0sRUFBRSxjQUFjLElBQUksb0JBQW9CLENBQUM7SUFFckUscUJBQXFCO0lBQ3RCLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFBO0lBQzlNLE1BQU0sUUFBUSxHQUFHLGdCQUFxRixDQUFDO0lBS3ZHLE1BQU0sY0FBYyxHQUFHLHFCQUFxQixDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMxRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxxQ0FBcUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxjQUFjLEVBQThGLENBQUMsQ0FBQztBQUM1VSxDQUFDO0FBVUQsTUFBTSxVQUFVLDRCQUE0QixDQUF3RSxXQUFxSDtJQUN2TyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxXQUFXLENBQUMseURBQXlELEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pLLENBQUM7SUFDRCxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDckIsTUFBTSxjQUFjLEdBQUcsR0FBRyxFQUFFO1FBQzFCLE1BQU0sV0FBVyxHQUFJLFdBQVcsQ0FBQyxRQUEwQixDQUFDLFlBQVksQ0FBRSxDQUFDO1FBQzNFLFlBQVksSUFBSSxDQUFDLENBQUM7UUFDbEIsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQyxDQUFBO0lBQ0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLHFDQUFxQyxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0FBQzVOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgY29kZSB3YXMgQVVUT0dFTkVSQVRFRCB1c2luZyB0aGUgQ29kYW1hIGxpYnJhcnkuXG4gKiBQbGVhc2UgRE8gTk9UIEVESVQgVEhJUyBGSUxFLCBpbnN0ZWFkIHVzZSB2aXNpdG9yc1xuICogdG8gYWRkIGZlYXR1cmVzLCB0aGVuIHJlcnVuIENvZGFtYSB0byB1cGRhdGUgaXQuXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vY29kYW1hLWlkbC9jb2RhbWFcbiAqL1xuXG5pbXBvcnQgeyBjb21iaW5lQ29kZWMsIGZpeERlY29kZXJTaXplLCBmaXhFbmNvZGVyU2l6ZSwgZ2V0QWRkcmVzc0VuY29kZXIsIGdldEJ5dGVzRGVjb2RlciwgZ2V0Qnl0ZXNFbmNvZGVyLCBnZXRQcm9ncmFtRGVyaXZlZEFkZHJlc3MsIGdldFN0cnVjdERlY29kZXIsIGdldFN0cnVjdEVuY29kZXIsIFNPTEFOQV9FUlJPUl9fUFJPR1JBTV9DTElFTlRTX19JTlNVRkZJQ0lFTlRfQUNDT1VOVF9NRVRBUywgU29sYW5hRXJyb3IsIHRyYW5zZm9ybUVuY29kZXIsIHR5cGUgQWNjb3VudE1ldGEsIHR5cGUgQWNjb3VudFNpZ25lck1ldGEsIHR5cGUgQWRkcmVzcywgdHlwZSBGaXhlZFNpemVDb2RlYywgdHlwZSBGaXhlZFNpemVEZWNvZGVyLCB0eXBlIEZpeGVkU2l6ZUVuY29kZXIsIHR5cGUgSW5zdHJ1Y3Rpb24sIHR5cGUgSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHMsIHR5cGUgSW5zdHJ1Y3Rpb25XaXRoRGF0YSwgdHlwZSBSZWFkb25seUFjY291bnQsIHR5cGUgUmVhZG9ubHlTaWduZXJBY2NvdW50LCB0eXBlIFJlYWRvbmx5VWludDhBcnJheSwgdHlwZSBUcmFuc2FjdGlvblNpZ25lciwgdHlwZSBXcml0YWJsZUFjY291bnQgfSBmcm9tICdAc29sYW5hL2tpdCc7XG5pbXBvcnQgeyBnZXRBY2NvdW50TWV0YUZhY3RvcnksIGdldEFkZHJlc3NGcm9tUmVzb2x2ZWRJbnN0cnVjdGlvbkFjY291bnQsIHR5cGUgUmVzb2x2ZWRJbnN0cnVjdGlvbkFjY291bnQgfSBmcm9tICdAc29sYW5hL3Byb2dyYW0tY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgRFVFTF9QUk9HUkFNX0FERFJFU1MgfSBmcm9tICcuLi9wcm9ncmFtcyc7XG5cbmV4cG9ydCBjb25zdCBDQU5DRUxfVElDS0VUX0RJU0NSSU1JTkFUT1IgPSBuZXcgVWludDhBcnJheShbMjE2LCAyOCwgMjQ3LCAyMDYsIDE5NSwgMTcxLCAxMDAsIDE0M10pO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2FuY2VsVGlja2V0RGlzY3JpbWluYXRvckJ5dGVzKCkgeyByZXR1cm4gZml4RW5jb2RlclNpemUoZ2V0Qnl0ZXNFbmNvZGVyKCksIDgpLmVuY29kZShDQU5DRUxfVElDS0VUX0RJU0NSSU1JTkFUT1IpOyB9XG5cbmV4cG9ydCB0eXBlIENhbmNlbFRpY2tldEluc3RydWN0aW9uPFRQcm9ncmFtIGV4dGVuZHMgc3RyaW5nID0gdHlwZW9mIERVRUxfUFJPR1JBTV9BRERSRVNTLCBUQWNjb3VudFRpY2tldCBleHRlbmRzIHN0cmluZyB8IEFjY291bnRNZXRhPHN0cmluZz4gPSBzdHJpbmcsIFRBY2NvdW50VGVuYW50IGV4dGVuZHMgc3RyaW5nIHwgQWNjb3VudE1ldGE8c3RyaW5nPiA9IHN0cmluZywgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcgfCBBY2NvdW50TWV0YTxzdHJpbmc+ID0gc3RyaW5nLCBUUmVtYWluaW5nQWNjb3VudHMgZXh0ZW5kcyByZWFkb25seSBBY2NvdW50TWV0YTxzdHJpbmc+W10gPSBbXT4gPVxuSW5zdHJ1Y3Rpb248VFByb2dyYW0+ICYgSW5zdHJ1Y3Rpb25XaXRoRGF0YTxSZWFkb25seVVpbnQ4QXJyYXk+ICYgSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHM8W1RBY2NvdW50VGlja2V0IGV4dGVuZHMgc3RyaW5nID8gV3JpdGFibGVBY2NvdW50PFRBY2NvdW50VGlja2V0PiA6IFRBY2NvdW50VGlja2V0LCBUQWNjb3VudFRlbmFudCBleHRlbmRzIHN0cmluZyA/IFJlYWRvbmx5QWNjb3VudDxUQWNjb3VudFRlbmFudD4gOiBUQWNjb3VudFRlbmFudCwgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcgPyBSZWFkb25seVNpZ25lckFjY291bnQ8VEFjY291bnRQbGF5ZXI+ICYgQWNjb3VudFNpZ25lck1ldGE8VEFjY291bnRQbGF5ZXI+IDogVEFjY291bnRQbGF5ZXIsIC4uLlRSZW1haW5pbmdBY2NvdW50c10+O1xuXG5leHBvcnQgdHlwZSBDYW5jZWxUaWNrZXRJbnN0cnVjdGlvbkRhdGEgPSB7IGRpc2NyaW1pbmF0b3I6IFJlYWRvbmx5VWludDhBcnJheTsgIH07XG5cbmV4cG9ydCB0eXBlIENhbmNlbFRpY2tldEluc3RydWN0aW9uRGF0YUFyZ3MgPSB7ICB9O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2FuY2VsVGlja2V0SW5zdHJ1Y3Rpb25EYXRhRW5jb2RlcigpOiBGaXhlZFNpemVFbmNvZGVyPENhbmNlbFRpY2tldEluc3RydWN0aW9uRGF0YUFyZ3M+IHtcbiAgICByZXR1cm4gdHJhbnNmb3JtRW5jb2RlcihnZXRTdHJ1Y3RFbmNvZGVyKFtbJ2Rpc2NyaW1pbmF0b3InLCBmaXhFbmNvZGVyU2l6ZShnZXRCeXRlc0VuY29kZXIoKSwgOCldXSksICh2YWx1ZSkgPT4gKHsgLi4udmFsdWUsIGRpc2NyaW1pbmF0b3I6IENBTkNFTF9USUNLRVRfRElTQ1JJTUlOQVRPUiB9KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDYW5jZWxUaWNrZXRJbnN0cnVjdGlvbkRhdGFEZWNvZGVyKCk6IEZpeGVkU2l6ZURlY29kZXI8Q2FuY2VsVGlja2V0SW5zdHJ1Y3Rpb25EYXRhPiB7XG4gICAgcmV0dXJuIGdldFN0cnVjdERlY29kZXIoW1snZGlzY3JpbWluYXRvcicsIGZpeERlY29kZXJTaXplKGdldEJ5dGVzRGVjb2RlcigpLCA4KV1dKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENhbmNlbFRpY2tldEluc3RydWN0aW9uRGF0YUNvZGVjKCk6IEZpeGVkU2l6ZUNvZGVjPENhbmNlbFRpY2tldEluc3RydWN0aW9uRGF0YUFyZ3MsIENhbmNlbFRpY2tldEluc3RydWN0aW9uRGF0YT4ge1xuICAgIHJldHVybiBjb21iaW5lQ29kZWMoZ2V0Q2FuY2VsVGlja2V0SW5zdHJ1Y3Rpb25EYXRhRW5jb2RlcigpLCBnZXRDYW5jZWxUaWNrZXRJbnN0cnVjdGlvbkRhdGFEZWNvZGVyKCkpO1xufVxuXG5leHBvcnQgdHlwZSBDYW5jZWxUaWNrZXRBc3luY0lucHV0PFRBY2NvdW50VGlja2V0IGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLCBUQWNjb3VudFRlbmFudCBleHRlbmRzIHN0cmluZyA9IHN0cmluZywgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+ID0gIHtcbiAgdGlja2V0PzogQWRkcmVzczxUQWNjb3VudFRpY2tldD47XG50ZW5hbnQ6IEFkZHJlc3M8VEFjY291bnRUZW5hbnQ+O1xucGxheWVyOiBUcmFuc2FjdGlvblNpZ25lcjxUQWNjb3VudFBsYXllcj47XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDYW5jZWxUaWNrZXRJbnN0cnVjdGlvbkFzeW5jPFRBY2NvdW50VGlja2V0IGV4dGVuZHMgc3RyaW5nLCBUQWNjb3VudFRlbmFudCBleHRlbmRzIHN0cmluZywgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcsIFRQcm9ncmFtQWRkcmVzcyBleHRlbmRzIEFkZHJlc3MgPSB0eXBlb2YgRFVFTF9QUk9HUkFNX0FERFJFU1M+KGlucHV0OiBDYW5jZWxUaWNrZXRBc3luY0lucHV0PFRBY2NvdW50VGlja2V0LCBUQWNjb3VudFRlbmFudCwgVEFjY291bnRQbGF5ZXI+LCBjb25maWc/OiB7IHByb2dyYW1BZGRyZXNzPzogVFByb2dyYW1BZGRyZXNzIH0gKTogUHJvbWlzZTxDYW5jZWxUaWNrZXRJbnN0cnVjdGlvbjxUUHJvZ3JhbUFkZHJlc3MsIFRBY2NvdW50VGlja2V0LCBUQWNjb3VudFRlbmFudCwgVEFjY291bnRQbGF5ZXI+PiB7XG4gIC8vIFByb2dyYW0gYWRkcmVzcy5cbmNvbnN0IHByb2dyYW1BZGRyZXNzID0gY29uZmlnPy5wcm9ncmFtQWRkcmVzcyA/PyBEVUVMX1BST0dSQU1fQUREUkVTUztcblxuIC8vIE9yaWdpbmFsIGFjY291bnRzLlxuY29uc3Qgb3JpZ2luYWxBY2NvdW50cyA9IHsgdGlja2V0OiB7IHZhbHVlOiBpbnB1dC50aWNrZXQgPz8gbnVsbCwgaXNXcml0YWJsZTogdHJ1ZSB9LCB0ZW5hbnQ6IHsgdmFsdWU6IGlucHV0LnRlbmFudCA/PyBudWxsLCBpc1dyaXRhYmxlOiBmYWxzZSB9LCBwbGF5ZXI6IHsgdmFsdWU6IGlucHV0LnBsYXllciA/PyBudWxsLCBpc1dyaXRhYmxlOiBmYWxzZSB9IH1cbmNvbnN0IGFjY291bnRzID0gb3JpZ2luYWxBY2NvdW50cyBhcyBSZWNvcmQ8a2V5b2YgdHlwZW9mIG9yaWdpbmFsQWNjb3VudHMsIFJlc29sdmVkSW5zdHJ1Y3Rpb25BY2NvdW50PjtcblxuXG4vLyBSZXNvbHZlIGRlZmF1bHQgdmFsdWVzLlxuaWYgKCFhY2NvdW50cy50aWNrZXQudmFsdWUpIHtcbmFjY291bnRzLnRpY2tldC52YWx1ZSA9IGF3YWl0IGdldFByb2dyYW1EZXJpdmVkQWRkcmVzcyh7IHByb2dyYW1BZGRyZXNzLCBzZWVkczogW2dldEJ5dGVzRW5jb2RlcigpLmVuY29kZShuZXcgVWludDhBcnJheShbMTE2LCAxMDUsIDk5LCAxMDcsIDEwMSwgMTE2XSkpLCBnZXRBZGRyZXNzRW5jb2RlcigpLmVuY29kZShnZXRBZGRyZXNzRnJvbVJlc29sdmVkSW5zdHJ1Y3Rpb25BY2NvdW50KFwicGxheWVyXCIsIGFjY291bnRzLnBsYXllci52YWx1ZSkpLCBnZXRBZGRyZXNzRW5jb2RlcigpLmVuY29kZShnZXRBZGRyZXNzRnJvbVJlc29sdmVkSW5zdHJ1Y3Rpb25BY2NvdW50KFwidGVuYW50XCIsIGFjY291bnRzLnRlbmFudC52YWx1ZSkpXSB9KTtcbn1cblxuY29uc3QgZ2V0QWNjb3VudE1ldGEgPSBnZXRBY2NvdW50TWV0YUZhY3RvcnkocHJvZ3JhbUFkZHJlc3MsICdwcm9ncmFtSWQnKTtcbnJldHVybiBPYmplY3QuZnJlZXplKHsgYWNjb3VudHM6IFtnZXRBY2NvdW50TWV0YShcInRpY2tldFwiLCBhY2NvdW50cy50aWNrZXQpLCBnZXRBY2NvdW50TWV0YShcInRlbmFudFwiLCBhY2NvdW50cy50ZW5hbnQpLCBnZXRBY2NvdW50TWV0YShcInBsYXllclwiLCBhY2NvdW50cy5wbGF5ZXIpXSwgZGF0YTogZ2V0Q2FuY2VsVGlja2V0SW5zdHJ1Y3Rpb25EYXRhRW5jb2RlcigpLmVuY29kZSh7fSksIHByb2dyYW1BZGRyZXNzIH0gYXMgQ2FuY2VsVGlja2V0SW5zdHJ1Y3Rpb248VFByb2dyYW1BZGRyZXNzLCBUQWNjb3VudFRpY2tldCwgVEFjY291bnRUZW5hbnQsIFRBY2NvdW50UGxheWVyPik7XG59XG5cbmV4cG9ydCB0eXBlIENhbmNlbFRpY2tldElucHV0PFRBY2NvdW50VGlja2V0IGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLCBUQWNjb3VudFRlbmFudCBleHRlbmRzIHN0cmluZyA9IHN0cmluZywgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+ID0gIHtcbiAgdGlja2V0OiBBZGRyZXNzPFRBY2NvdW50VGlja2V0PjtcbnRlbmFudDogQWRkcmVzczxUQWNjb3VudFRlbmFudD47XG5wbGF5ZXI6IFRyYW5zYWN0aW9uU2lnbmVyPFRBY2NvdW50UGxheWVyPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENhbmNlbFRpY2tldEluc3RydWN0aW9uPFRBY2NvdW50VGlja2V0IGV4dGVuZHMgc3RyaW5nLCBUQWNjb3VudFRlbmFudCBleHRlbmRzIHN0cmluZywgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcsIFRQcm9ncmFtQWRkcmVzcyBleHRlbmRzIEFkZHJlc3MgPSB0eXBlb2YgRFVFTF9QUk9HUkFNX0FERFJFU1M+KGlucHV0OiBDYW5jZWxUaWNrZXRJbnB1dDxUQWNjb3VudFRpY2tldCwgVEFjY291bnRUZW5hbnQsIFRBY2NvdW50UGxheWVyPiwgY29uZmlnPzogeyBwcm9ncmFtQWRkcmVzcz86IFRQcm9ncmFtQWRkcmVzcyB9ICk6IENhbmNlbFRpY2tldEluc3RydWN0aW9uPFRQcm9ncmFtQWRkcmVzcywgVEFjY291bnRUaWNrZXQsIFRBY2NvdW50VGVuYW50LCBUQWNjb3VudFBsYXllcj4ge1xuICAvLyBQcm9ncmFtIGFkZHJlc3MuXG5jb25zdCBwcm9ncmFtQWRkcmVzcyA9IGNvbmZpZz8ucHJvZ3JhbUFkZHJlc3MgPz8gRFVFTF9QUk9HUkFNX0FERFJFU1M7XG5cbiAvLyBPcmlnaW5hbCBhY2NvdW50cy5cbmNvbnN0IG9yaWdpbmFsQWNjb3VudHMgPSB7IHRpY2tldDogeyB2YWx1ZTogaW5wdXQudGlja2V0ID8/IG51bGwsIGlzV3JpdGFibGU6IHRydWUgfSwgdGVuYW50OiB7IHZhbHVlOiBpbnB1dC50ZW5hbnQgPz8gbnVsbCwgaXNXcml0YWJsZTogZmFsc2UgfSwgcGxheWVyOiB7IHZhbHVlOiBpbnB1dC5wbGF5ZXIgPz8gbnVsbCwgaXNXcml0YWJsZTogZmFsc2UgfSB9XG5jb25zdCBhY2NvdW50cyA9IG9yaWdpbmFsQWNjb3VudHMgYXMgUmVjb3JkPGtleW9mIHR5cGVvZiBvcmlnaW5hbEFjY291bnRzLCBSZXNvbHZlZEluc3RydWN0aW9uQWNjb3VudD47XG5cblxuXG5cbmNvbnN0IGdldEFjY291bnRNZXRhID0gZ2V0QWNjb3VudE1ldGFGYWN0b3J5KHByb2dyYW1BZGRyZXNzLCAncHJvZ3JhbUlkJyk7XG5yZXR1cm4gT2JqZWN0LmZyZWV6ZSh7IGFjY291bnRzOiBbZ2V0QWNjb3VudE1ldGEoXCJ0aWNrZXRcIiwgYWNjb3VudHMudGlja2V0KSwgZ2V0QWNjb3VudE1ldGEoXCJ0ZW5hbnRcIiwgYWNjb3VudHMudGVuYW50KSwgZ2V0QWNjb3VudE1ldGEoXCJwbGF5ZXJcIiwgYWNjb3VudHMucGxheWVyKV0sIGRhdGE6IGdldENhbmNlbFRpY2tldEluc3RydWN0aW9uRGF0YUVuY29kZXIoKS5lbmNvZGUoe30pLCBwcm9ncmFtQWRkcmVzcyB9IGFzIENhbmNlbFRpY2tldEluc3RydWN0aW9uPFRQcm9ncmFtQWRkcmVzcywgVEFjY291bnRUaWNrZXQsIFRBY2NvdW50VGVuYW50LCBUQWNjb3VudFBsYXllcj4pO1xufVxuXG5leHBvcnQgdHlwZSBQYXJzZWRDYW5jZWxUaWNrZXRJbnN0cnVjdGlvbjxUUHJvZ3JhbSBleHRlbmRzIHN0cmluZyA9IHR5cGVvZiBEVUVMX1BST0dSQU1fQUREUkVTUywgVEFjY291bnRNZXRhcyBleHRlbmRzIHJlYWRvbmx5IEFjY291bnRNZXRhW10gPSByZWFkb25seSBBY2NvdW50TWV0YVtdPiA9IHsgcHJvZ3JhbUFkZHJlc3M6IEFkZHJlc3M8VFByb2dyYW0+O1xuYWNjb3VudHM6IHtcbnRpY2tldDogVEFjY291bnRNZXRhc1swXTtcbnRlbmFudDogVEFjY291bnRNZXRhc1sxXTtcbnBsYXllcjogVEFjY291bnRNZXRhc1syXTtcbn07XG5kYXRhOiBDYW5jZWxUaWNrZXRJbnN0cnVjdGlvbkRhdGE7IH07XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNhbmNlbFRpY2tldEluc3RydWN0aW9uPFRQcm9ncmFtIGV4dGVuZHMgc3RyaW5nLCBUQWNjb3VudE1ldGFzIGV4dGVuZHMgcmVhZG9ubHkgQWNjb3VudE1ldGFbXT4oaW5zdHJ1Y3Rpb246IEluc3RydWN0aW9uPFRQcm9ncmFtPiAmIEluc3RydWN0aW9uV2l0aEFjY291bnRzPFRBY2NvdW50TWV0YXM+ICYgSW5zdHJ1Y3Rpb25XaXRoRGF0YTxSZWFkb25seVVpbnQ4QXJyYXk+KTogUGFyc2VkQ2FuY2VsVGlja2V0SW5zdHJ1Y3Rpb248VFByb2dyYW0sIFRBY2NvdW50TWV0YXM+IHtcbiAgaWYgKGluc3RydWN0aW9uLmFjY291bnRzLmxlbmd0aCA8IDMpIHtcbiAgdGhyb3cgbmV3IFNvbGFuYUVycm9yKFNPTEFOQV9FUlJPUl9fUFJPR1JBTV9DTElFTlRTX19JTlNVRkZJQ0lFTlRfQUNDT1VOVF9NRVRBUywgeyBhY3R1YWxBY2NvdW50TWV0YXM6IGluc3RydWN0aW9uLmFjY291bnRzLmxlbmd0aCwgZXhwZWN0ZWRBY2NvdW50TWV0YXM6IDMgfSk7XG59XG5sZXQgYWNjb3VudEluZGV4ID0gMDtcbmNvbnN0IGdldE5leHRBY2NvdW50ID0gKCkgPT4ge1xuICBjb25zdCBhY2NvdW50TWV0YSA9IChpbnN0cnVjdGlvbi5hY2NvdW50cyBhcyBUQWNjb3VudE1ldGFzKVthY2NvdW50SW5kZXhdITtcbiAgYWNjb3VudEluZGV4ICs9IDE7XG4gIHJldHVybiBhY2NvdW50TWV0YTtcbn1cbiAgcmV0dXJuIHsgcHJvZ3JhbUFkZHJlc3M6IGluc3RydWN0aW9uLnByb2dyYW1BZGRyZXNzLCBhY2NvdW50czogeyB0aWNrZXQ6IGdldE5leHRBY2NvdW50KCksIHRlbmFudDogZ2V0TmV4dEFjY291bnQoKSwgcGxheWVyOiBnZXROZXh0QWNjb3VudCgpIH0sIGRhdGE6IGdldENhbmNlbFRpY2tldEluc3RydWN0aW9uRGF0YURlY29kZXIoKS5kZWNvZGUoaW5zdHJ1Y3Rpb24uZGF0YSkgfTtcbn0iXX0=
@@ -0,0 +1,45 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ import { type AccountMeta, type AccountSignerMeta, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type WritableSignerAccount } from '@solana/kit';
9
+ import { DUEL_PROGRAM_ADDRESS } from '../programs';
10
+ export declare const CLOSE_TICKET_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
11
+ export declare function getCloseTicketDiscriminatorBytes(): ReadonlyUint8Array<ArrayBuffer>;
12
+ export type CloseTicketInstruction<TProgram extends string = typeof DUEL_PROGRAM_ADDRESS, TAccountTicket extends string | AccountMeta<string> = string, TAccountTenant extends string | AccountMeta<string> = string, TAccountPlayer extends string | AccountMeta<string> = string, TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountTicket extends string ? WritableAccount<TAccountTicket> : TAccountTicket, TAccountTenant extends string ? ReadonlyAccount<TAccountTenant> : TAccountTenant, TAccountPlayer extends string ? WritableSignerAccount<TAccountPlayer> & AccountSignerMeta<TAccountPlayer> : TAccountPlayer, ...TRemainingAccounts]>;
13
+ export type CloseTicketInstructionData = {
14
+ discriminator: ReadonlyUint8Array;
15
+ };
16
+ export type CloseTicketInstructionDataArgs = {};
17
+ export declare function getCloseTicketInstructionDataEncoder(): FixedSizeEncoder<CloseTicketInstructionDataArgs>;
18
+ export declare function getCloseTicketInstructionDataDecoder(): FixedSizeDecoder<CloseTicketInstructionData>;
19
+ export declare function getCloseTicketInstructionDataCodec(): FixedSizeCodec<CloseTicketInstructionDataArgs, CloseTicketInstructionData>;
20
+ export type CloseTicketAsyncInput<TAccountTicket extends string = string, TAccountTenant extends string = string, TAccountPlayer extends string = string> = {
21
+ ticket?: Address<TAccountTicket>;
22
+ tenant: Address<TAccountTenant>;
23
+ player: TransactionSigner<TAccountPlayer>;
24
+ };
25
+ export declare function getCloseTicketInstructionAsync<TAccountTicket extends string, TAccountTenant extends string, TAccountPlayer extends string, TProgramAddress extends Address = typeof DUEL_PROGRAM_ADDRESS>(input: CloseTicketAsyncInput<TAccountTicket, TAccountTenant, TAccountPlayer>, config?: {
26
+ programAddress?: TProgramAddress;
27
+ }): Promise<CloseTicketInstruction<TProgramAddress, TAccountTicket, TAccountTenant, TAccountPlayer>>;
28
+ export type CloseTicketInput<TAccountTicket extends string = string, TAccountTenant extends string = string, TAccountPlayer extends string = string> = {
29
+ ticket: Address<TAccountTicket>;
30
+ tenant: Address<TAccountTenant>;
31
+ player: TransactionSigner<TAccountPlayer>;
32
+ };
33
+ export declare function getCloseTicketInstruction<TAccountTicket extends string, TAccountTenant extends string, TAccountPlayer extends string, TProgramAddress extends Address = typeof DUEL_PROGRAM_ADDRESS>(input: CloseTicketInput<TAccountTicket, TAccountTenant, TAccountPlayer>, config?: {
34
+ programAddress?: TProgramAddress;
35
+ }): CloseTicketInstruction<TProgramAddress, TAccountTicket, TAccountTenant, TAccountPlayer>;
36
+ export type ParsedCloseTicketInstruction<TProgram extends string = typeof DUEL_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
37
+ programAddress: Address<TProgram>;
38
+ accounts: {
39
+ ticket: TAccountMetas[0];
40
+ tenant: TAccountMetas[1];
41
+ player: TAccountMetas[2];
42
+ };
43
+ data: CloseTicketInstructionData;
44
+ };
45
+ export declare function parseCloseTicketInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedCloseTicketInstruction<TProgram, TAccountMetas>;
@@ -0,0 +1,56 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ import { combineCodec, fixDecoderSize, fixEncoderSize, getAddressEncoder, getBytesDecoder, getBytesEncoder, getProgramDerivedAddress, getStructDecoder, getStructEncoder, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, SolanaError, transformEncoder } from '@solana/kit';
9
+ import { getAccountMetaFactory, getAddressFromResolvedInstructionAccount } from '@solana/program-client-core';
10
+ import { DUEL_PROGRAM_ADDRESS } from '../programs';
11
+ export const CLOSE_TICKET_DISCRIMINATOR = new Uint8Array([66, 209, 114, 197, 75, 27, 182, 117]);
12
+ export function getCloseTicketDiscriminatorBytes() { return fixEncoderSize(getBytesEncoder(), 8).encode(CLOSE_TICKET_DISCRIMINATOR); }
13
+ export function getCloseTicketInstructionDataEncoder() {
14
+ return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)]]), (value) => ({ ...value, discriminator: CLOSE_TICKET_DISCRIMINATOR }));
15
+ }
16
+ export function getCloseTicketInstructionDataDecoder() {
17
+ return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)]]);
18
+ }
19
+ export function getCloseTicketInstructionDataCodec() {
20
+ return combineCodec(getCloseTicketInstructionDataEncoder(), getCloseTicketInstructionDataDecoder());
21
+ }
22
+ export async function getCloseTicketInstructionAsync(input, config) {
23
+ // Program address.
24
+ const programAddress = config?.programAddress ?? DUEL_PROGRAM_ADDRESS;
25
+ // Original accounts.
26
+ const originalAccounts = { ticket: { value: input.ticket ?? null, isWritable: true }, tenant: { value: input.tenant ?? null, isWritable: false }, player: { value: input.player ?? null, isWritable: true } };
27
+ const accounts = originalAccounts;
28
+ // Resolve default values.
29
+ if (!accounts.ticket.value) {
30
+ accounts.ticket.value = await getProgramDerivedAddress({ programAddress, seeds: [getBytesEncoder().encode(new Uint8Array([116, 105, 99, 107, 101, 116])), getAddressEncoder().encode(getAddressFromResolvedInstructionAccount("player", accounts.player.value)), getAddressEncoder().encode(getAddressFromResolvedInstructionAccount("tenant", accounts.tenant.value))] });
31
+ }
32
+ const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
33
+ return Object.freeze({ accounts: [getAccountMeta("ticket", accounts.ticket), getAccountMeta("tenant", accounts.tenant), getAccountMeta("player", accounts.player)], data: getCloseTicketInstructionDataEncoder().encode({}), programAddress });
34
+ }
35
+ export function getCloseTicketInstruction(input, config) {
36
+ // Program address.
37
+ const programAddress = config?.programAddress ?? DUEL_PROGRAM_ADDRESS;
38
+ // Original accounts.
39
+ const originalAccounts = { ticket: { value: input.ticket ?? null, isWritable: true }, tenant: { value: input.tenant ?? null, isWritable: false }, player: { value: input.player ?? null, isWritable: true } };
40
+ const accounts = originalAccounts;
41
+ const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
42
+ return Object.freeze({ accounts: [getAccountMeta("ticket", accounts.ticket), getAccountMeta("tenant", accounts.tenant), getAccountMeta("player", accounts.player)], data: getCloseTicketInstructionDataEncoder().encode({}), programAddress });
43
+ }
44
+ export function parseCloseTicketInstruction(instruction) {
45
+ if (instruction.accounts.length < 3) {
46
+ throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, { actualAccountMetas: instruction.accounts.length, expectedAccountMetas: 3 });
47
+ }
48
+ let accountIndex = 0;
49
+ const getNextAccount = () => {
50
+ const accountMeta = instruction.accounts[accountIndex];
51
+ accountIndex += 1;
52
+ return accountMeta;
53
+ };
54
+ return { programAddress: instruction.programAddress, accounts: { ticket: getNextAccount(), tenant: getNextAccount(), player: getNextAccount() }, data: getCloseTicketInstructionDataDecoder().decode(instruction.data) };
55
+ }
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvc2VUaWNrZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL2R1ZWwvaW5zdHJ1Y3Rpb25zL2Nsb3NlVGlja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLHlEQUF5RCxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBZ1UsTUFBTSxhQUFhLENBQUM7QUFDdGxCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx3Q0FBd0MsRUFBbUMsTUFBTSw2QkFBNkIsQ0FBQztBQUMvSSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUVoRyxNQUFNLFVBQVUsZ0NBQWdDLEtBQUssT0FBTyxjQUFjLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBU3RJLE1BQU0sVUFBVSxvQ0FBb0M7SUFDaEQsT0FBTyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLGFBQWEsRUFBRSwwQkFBMEIsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMvSyxDQUFDO0FBRUQsTUFBTSxVQUFVLG9DQUFvQztJQUNoRCxPQUFPLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZGLENBQUM7QUFFRCxNQUFNLFVBQVUsa0NBQWtDO0lBQzlDLE9BQU8sWUFBWSxDQUFDLG9DQUFvQyxFQUFFLEVBQUUsb0NBQW9DLEVBQUUsQ0FBQyxDQUFDO0FBQ3hHLENBQUM7QUFRRCxNQUFNLENBQUMsS0FBSyxVQUFVLDhCQUE4QixDQUE2SixLQUE0RSxFQUFFLE1BQTZDO0lBQzFVLG1CQUFtQjtJQUNyQixNQUFNLGNBQWMsR0FBRyxNQUFNLEVBQUUsY0FBYyxJQUFJLG9CQUFvQixDQUFDO0lBRXJFLHFCQUFxQjtJQUN0QixNQUFNLGdCQUFnQixHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQTtJQUM3TSxNQUFNLFFBQVEsR0FBRyxnQkFBcUYsQ0FBQztJQUd2RywwQkFBMEI7SUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSx3QkFBd0IsQ0FBQyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyx3Q0FBd0MsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLENBQUMsTUFBTSxDQUFDLHdDQUF3QyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM1csQ0FBQztJQUVELE1BQU0sY0FBYyxHQUFHLHFCQUFxQixDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMxRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxvQ0FBb0MsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxjQUFjLEVBQTZGLENBQUMsQ0FBQztBQUMxVSxDQUFDO0FBUUQsTUFBTSxVQUFVLHlCQUF5QixDQUE2SixLQUF1RSxFQUFFLE1BQTZDO0lBQzFULG1CQUFtQjtJQUNyQixNQUFNLGNBQWMsR0FBRyxNQUFNLEVBQUUsY0FBYyxJQUFJLG9CQUFvQixDQUFDO0lBRXJFLHFCQUFxQjtJQUN0QixNQUFNLGdCQUFnQixHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQTtJQUM3TSxNQUFNLFFBQVEsR0FBRyxnQkFBcUYsQ0FBQztJQUt2RyxNQUFNLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDMUUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsb0NBQW9DLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsY0FBYyxFQUE2RixDQUFDLENBQUM7QUFDMVUsQ0FBQztBQVVELE1BQU0sVUFBVSwyQkFBMkIsQ0FBd0UsV0FBcUg7SUFDdE8sSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxNQUFNLElBQUksV0FBVyxDQUFDLHlEQUF5RCxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqSyxDQUFDO0lBQ0QsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRTtRQUMxQixNQUFNLFdBQVcsR0FBSSxXQUFXLENBQUMsUUFBMEIsQ0FBQyxZQUFZLENBQUUsQ0FBQztRQUMzRSxZQUFZLElBQUksQ0FBQyxDQUFDO1FBQ2xCLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUMsQ0FBQTtJQUNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxvQ0FBb0MsRUFBRSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztBQUMzTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGNvZGUgd2FzIEFVVE9HRU5FUkFURUQgdXNpbmcgdGhlIENvZGFtYSBsaWJyYXJ5LlxuICogUGxlYXNlIERPIE5PVCBFRElUIFRISVMgRklMRSwgaW5zdGVhZCB1c2UgdmlzaXRvcnNcbiAqIHRvIGFkZCBmZWF0dXJlcywgdGhlbiByZXJ1biBDb2RhbWEgdG8gdXBkYXRlIGl0LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NvZGFtYS1pZGwvY29kYW1hXG4gKi9cblxuaW1wb3J0IHsgY29tYmluZUNvZGVjLCBmaXhEZWNvZGVyU2l6ZSwgZml4RW5jb2RlclNpemUsIGdldEFkZHJlc3NFbmNvZGVyLCBnZXRCeXRlc0RlY29kZXIsIGdldEJ5dGVzRW5jb2RlciwgZ2V0UHJvZ3JhbURlcml2ZWRBZGRyZXNzLCBnZXRTdHJ1Y3REZWNvZGVyLCBnZXRTdHJ1Y3RFbmNvZGVyLCBTT0xBTkFfRVJST1JfX1BST0dSQU1fQ0xJRU5UU19fSU5TVUZGSUNJRU5UX0FDQ09VTlRfTUVUQVMsIFNvbGFuYUVycm9yLCB0cmFuc2Zvcm1FbmNvZGVyLCB0eXBlIEFjY291bnRNZXRhLCB0eXBlIEFjY291bnRTaWduZXJNZXRhLCB0eXBlIEFkZHJlc3MsIHR5cGUgRml4ZWRTaXplQ29kZWMsIHR5cGUgRml4ZWRTaXplRGVjb2RlciwgdHlwZSBGaXhlZFNpemVFbmNvZGVyLCB0eXBlIEluc3RydWN0aW9uLCB0eXBlIEluc3RydWN0aW9uV2l0aEFjY291bnRzLCB0eXBlIEluc3RydWN0aW9uV2l0aERhdGEsIHR5cGUgUmVhZG9ubHlBY2NvdW50LCB0eXBlIFJlYWRvbmx5VWludDhBcnJheSwgdHlwZSBUcmFuc2FjdGlvblNpZ25lciwgdHlwZSBXcml0YWJsZUFjY291bnQsIHR5cGUgV3JpdGFibGVTaWduZXJBY2NvdW50IH0gZnJvbSAnQHNvbGFuYS9raXQnO1xuaW1wb3J0IHsgZ2V0QWNjb3VudE1ldGFGYWN0b3J5LCBnZXRBZGRyZXNzRnJvbVJlc29sdmVkSW5zdHJ1Y3Rpb25BY2NvdW50LCB0eXBlIFJlc29sdmVkSW5zdHJ1Y3Rpb25BY2NvdW50IH0gZnJvbSAnQHNvbGFuYS9wcm9ncmFtLWNsaWVudC1jb3JlJztcbmltcG9ydCB7IERVRUxfUFJPR1JBTV9BRERSRVNTIH0gZnJvbSAnLi4vcHJvZ3JhbXMnO1xuXG5leHBvcnQgY29uc3QgQ0xPU0VfVElDS0VUX0RJU0NSSU1JTkFUT1IgPSBuZXcgVWludDhBcnJheShbNjYsIDIwOSwgMTE0LCAxOTcsIDc1LCAyNywgMTgyLCAxMTddKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENsb3NlVGlja2V0RGlzY3JpbWluYXRvckJ5dGVzKCkgeyByZXR1cm4gZml4RW5jb2RlclNpemUoZ2V0Qnl0ZXNFbmNvZGVyKCksIDgpLmVuY29kZShDTE9TRV9USUNLRVRfRElTQ1JJTUlOQVRPUik7IH1cblxuZXhwb3J0IHR5cGUgQ2xvc2VUaWNrZXRJbnN0cnVjdGlvbjxUUHJvZ3JhbSBleHRlbmRzIHN0cmluZyA9IHR5cGVvZiBEVUVMX1BST0dSQU1fQUREUkVTUywgVEFjY291bnRUaWNrZXQgZXh0ZW5kcyBzdHJpbmcgfCBBY2NvdW50TWV0YTxzdHJpbmc+ID0gc3RyaW5nLCBUQWNjb3VudFRlbmFudCBleHRlbmRzIHN0cmluZyB8IEFjY291bnRNZXRhPHN0cmluZz4gPSBzdHJpbmcsIFRBY2NvdW50UGxheWVyIGV4dGVuZHMgc3RyaW5nIHwgQWNjb3VudE1ldGE8c3RyaW5nPiA9IHN0cmluZywgVFJlbWFpbmluZ0FjY291bnRzIGV4dGVuZHMgcmVhZG9ubHkgQWNjb3VudE1ldGE8c3RyaW5nPltdID0gW10+ID1cbkluc3RydWN0aW9uPFRQcm9ncmFtPiAmIEluc3RydWN0aW9uV2l0aERhdGE8UmVhZG9ubHlVaW50OEFycmF5PiAmIEluc3RydWN0aW9uV2l0aEFjY291bnRzPFtUQWNjb3VudFRpY2tldCBleHRlbmRzIHN0cmluZyA/IFdyaXRhYmxlQWNjb3VudDxUQWNjb3VudFRpY2tldD4gOiBUQWNjb3VudFRpY2tldCwgVEFjY291bnRUZW5hbnQgZXh0ZW5kcyBzdHJpbmcgPyBSZWFkb25seUFjY291bnQ8VEFjY291bnRUZW5hbnQ+IDogVEFjY291bnRUZW5hbnQsIFRBY2NvdW50UGxheWVyIGV4dGVuZHMgc3RyaW5nID8gV3JpdGFibGVTaWduZXJBY2NvdW50PFRBY2NvdW50UGxheWVyPiAmIEFjY291bnRTaWduZXJNZXRhPFRBY2NvdW50UGxheWVyPiA6IFRBY2NvdW50UGxheWVyLCAuLi5UUmVtYWluaW5nQWNjb3VudHNdPjtcblxuZXhwb3J0IHR5cGUgQ2xvc2VUaWNrZXRJbnN0cnVjdGlvbkRhdGEgPSB7IGRpc2NyaW1pbmF0b3I6IFJlYWRvbmx5VWludDhBcnJheTsgIH07XG5cbmV4cG9ydCB0eXBlIENsb3NlVGlja2V0SW5zdHJ1Y3Rpb25EYXRhQXJncyA9IHsgIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbG9zZVRpY2tldEluc3RydWN0aW9uRGF0YUVuY29kZXIoKTogRml4ZWRTaXplRW5jb2RlcjxDbG9zZVRpY2tldEluc3RydWN0aW9uRGF0YUFyZ3M+IHtcbiAgICByZXR1cm4gdHJhbnNmb3JtRW5jb2RlcihnZXRTdHJ1Y3RFbmNvZGVyKFtbJ2Rpc2NyaW1pbmF0b3InLCBmaXhFbmNvZGVyU2l6ZShnZXRCeXRlc0VuY29kZXIoKSwgOCldXSksICh2YWx1ZSkgPT4gKHsgLi4udmFsdWUsIGRpc2NyaW1pbmF0b3I6IENMT1NFX1RJQ0tFVF9ESVNDUklNSU5BVE9SIH0pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENsb3NlVGlja2V0SW5zdHJ1Y3Rpb25EYXRhRGVjb2RlcigpOiBGaXhlZFNpemVEZWNvZGVyPENsb3NlVGlja2V0SW5zdHJ1Y3Rpb25EYXRhPiB7XG4gICAgcmV0dXJuIGdldFN0cnVjdERlY29kZXIoW1snZGlzY3JpbWluYXRvcicsIGZpeERlY29kZXJTaXplKGdldEJ5dGVzRGVjb2RlcigpLCA4KV1dKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENsb3NlVGlja2V0SW5zdHJ1Y3Rpb25EYXRhQ29kZWMoKTogRml4ZWRTaXplQ29kZWM8Q2xvc2VUaWNrZXRJbnN0cnVjdGlvbkRhdGFBcmdzLCBDbG9zZVRpY2tldEluc3RydWN0aW9uRGF0YT4ge1xuICAgIHJldHVybiBjb21iaW5lQ29kZWMoZ2V0Q2xvc2VUaWNrZXRJbnN0cnVjdGlvbkRhdGFFbmNvZGVyKCksIGdldENsb3NlVGlja2V0SW5zdHJ1Y3Rpb25EYXRhRGVjb2RlcigpKTtcbn1cblxuZXhwb3J0IHR5cGUgQ2xvc2VUaWNrZXRBc3luY0lucHV0PFRBY2NvdW50VGlja2V0IGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLCBUQWNjb3VudFRlbmFudCBleHRlbmRzIHN0cmluZyA9IHN0cmluZywgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+ID0gIHtcbiAgdGlja2V0PzogQWRkcmVzczxUQWNjb3VudFRpY2tldD47XG50ZW5hbnQ6IEFkZHJlc3M8VEFjY291bnRUZW5hbnQ+O1xucGxheWVyOiBUcmFuc2FjdGlvblNpZ25lcjxUQWNjb3VudFBsYXllcj47XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDbG9zZVRpY2tldEluc3RydWN0aW9uQXN5bmM8VEFjY291bnRUaWNrZXQgZXh0ZW5kcyBzdHJpbmcsIFRBY2NvdW50VGVuYW50IGV4dGVuZHMgc3RyaW5nLCBUQWNjb3VudFBsYXllciBleHRlbmRzIHN0cmluZywgVFByb2dyYW1BZGRyZXNzIGV4dGVuZHMgQWRkcmVzcyA9IHR5cGVvZiBEVUVMX1BST0dSQU1fQUREUkVTUz4oaW5wdXQ6IENsb3NlVGlja2V0QXN5bmNJbnB1dDxUQWNjb3VudFRpY2tldCwgVEFjY291bnRUZW5hbnQsIFRBY2NvdW50UGxheWVyPiwgY29uZmlnPzogeyBwcm9ncmFtQWRkcmVzcz86IFRQcm9ncmFtQWRkcmVzcyB9ICk6IFByb21pc2U8Q2xvc2VUaWNrZXRJbnN0cnVjdGlvbjxUUHJvZ3JhbUFkZHJlc3MsIFRBY2NvdW50VGlja2V0LCBUQWNjb3VudFRlbmFudCwgVEFjY291bnRQbGF5ZXI+PiB7XG4gIC8vIFByb2dyYW0gYWRkcmVzcy5cbmNvbnN0IHByb2dyYW1BZGRyZXNzID0gY29uZmlnPy5wcm9ncmFtQWRkcmVzcyA/PyBEVUVMX1BST0dSQU1fQUREUkVTUztcblxuIC8vIE9yaWdpbmFsIGFjY291bnRzLlxuY29uc3Qgb3JpZ2luYWxBY2NvdW50cyA9IHsgdGlja2V0OiB7IHZhbHVlOiBpbnB1dC50aWNrZXQgPz8gbnVsbCwgaXNXcml0YWJsZTogdHJ1ZSB9LCB0ZW5hbnQ6IHsgdmFsdWU6IGlucHV0LnRlbmFudCA/PyBudWxsLCBpc1dyaXRhYmxlOiBmYWxzZSB9LCBwbGF5ZXI6IHsgdmFsdWU6IGlucHV0LnBsYXllciA/PyBudWxsLCBpc1dyaXRhYmxlOiB0cnVlIH0gfVxuY29uc3QgYWNjb3VudHMgPSBvcmlnaW5hbEFjY291bnRzIGFzIFJlY29yZDxrZXlvZiB0eXBlb2Ygb3JpZ2luYWxBY2NvdW50cywgUmVzb2x2ZWRJbnN0cnVjdGlvbkFjY291bnQ+O1xuXG5cbi8vIFJlc29sdmUgZGVmYXVsdCB2YWx1ZXMuXG5pZiAoIWFjY291bnRzLnRpY2tldC52YWx1ZSkge1xuYWNjb3VudHMudGlja2V0LnZhbHVlID0gYXdhaXQgZ2V0UHJvZ3JhbURlcml2ZWRBZGRyZXNzKHsgcHJvZ3JhbUFkZHJlc3MsIHNlZWRzOiBbZ2V0Qnl0ZXNFbmNvZGVyKCkuZW5jb2RlKG5ldyBVaW50OEFycmF5KFsxMTYsIDEwNSwgOTksIDEwNywgMTAxLCAxMTZdKSksIGdldEFkZHJlc3NFbmNvZGVyKCkuZW5jb2RlKGdldEFkZHJlc3NGcm9tUmVzb2x2ZWRJbnN0cnVjdGlvbkFjY291bnQoXCJwbGF5ZXJcIiwgYWNjb3VudHMucGxheWVyLnZhbHVlKSksIGdldEFkZHJlc3NFbmNvZGVyKCkuZW5jb2RlKGdldEFkZHJlc3NGcm9tUmVzb2x2ZWRJbnN0cnVjdGlvbkFjY291bnQoXCJ0ZW5hbnRcIiwgYWNjb3VudHMudGVuYW50LnZhbHVlKSldIH0pO1xufVxuXG5jb25zdCBnZXRBY2NvdW50TWV0YSA9IGdldEFjY291bnRNZXRhRmFjdG9yeShwcm9ncmFtQWRkcmVzcywgJ3Byb2dyYW1JZCcpO1xucmV0dXJuIE9iamVjdC5mcmVlemUoeyBhY2NvdW50czogW2dldEFjY291bnRNZXRhKFwidGlja2V0XCIsIGFjY291bnRzLnRpY2tldCksIGdldEFjY291bnRNZXRhKFwidGVuYW50XCIsIGFjY291bnRzLnRlbmFudCksIGdldEFjY291bnRNZXRhKFwicGxheWVyXCIsIGFjY291bnRzLnBsYXllcildLCBkYXRhOiBnZXRDbG9zZVRpY2tldEluc3RydWN0aW9uRGF0YUVuY29kZXIoKS5lbmNvZGUoe30pLCBwcm9ncmFtQWRkcmVzcyB9IGFzIENsb3NlVGlja2V0SW5zdHJ1Y3Rpb248VFByb2dyYW1BZGRyZXNzLCBUQWNjb3VudFRpY2tldCwgVEFjY291bnRUZW5hbnQsIFRBY2NvdW50UGxheWVyPik7XG59XG5cbmV4cG9ydCB0eXBlIENsb3NlVGlja2V0SW5wdXQ8VEFjY291bnRUaWNrZXQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsIFRBY2NvdW50VGVuYW50IGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLCBUQWNjb3VudFBsYXllciBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4gPSAge1xuICB0aWNrZXQ6IEFkZHJlc3M8VEFjY291bnRUaWNrZXQ+O1xudGVuYW50OiBBZGRyZXNzPFRBY2NvdW50VGVuYW50PjtcbnBsYXllcjogVHJhbnNhY3Rpb25TaWduZXI8VEFjY291bnRQbGF5ZXI+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xvc2VUaWNrZXRJbnN0cnVjdGlvbjxUQWNjb3VudFRpY2tldCBleHRlbmRzIHN0cmluZywgVEFjY291bnRUZW5hbnQgZXh0ZW5kcyBzdHJpbmcsIFRBY2NvdW50UGxheWVyIGV4dGVuZHMgc3RyaW5nLCBUUHJvZ3JhbUFkZHJlc3MgZXh0ZW5kcyBBZGRyZXNzID0gdHlwZW9mIERVRUxfUFJPR1JBTV9BRERSRVNTPihpbnB1dDogQ2xvc2VUaWNrZXRJbnB1dDxUQWNjb3VudFRpY2tldCwgVEFjY291bnRUZW5hbnQsIFRBY2NvdW50UGxheWVyPiwgY29uZmlnPzogeyBwcm9ncmFtQWRkcmVzcz86IFRQcm9ncmFtQWRkcmVzcyB9ICk6IENsb3NlVGlja2V0SW5zdHJ1Y3Rpb248VFByb2dyYW1BZGRyZXNzLCBUQWNjb3VudFRpY2tldCwgVEFjY291bnRUZW5hbnQsIFRBY2NvdW50UGxheWVyPiB7XG4gIC8vIFByb2dyYW0gYWRkcmVzcy5cbmNvbnN0IHByb2dyYW1BZGRyZXNzID0gY29uZmlnPy5wcm9ncmFtQWRkcmVzcyA/PyBEVUVMX1BST0dSQU1fQUREUkVTUztcblxuIC8vIE9yaWdpbmFsIGFjY291bnRzLlxuY29uc3Qgb3JpZ2luYWxBY2NvdW50cyA9IHsgdGlja2V0OiB7IHZhbHVlOiBpbnB1dC50aWNrZXQgPz8gbnVsbCwgaXNXcml0YWJsZTogdHJ1ZSB9LCB0ZW5hbnQ6IHsgdmFsdWU6IGlucHV0LnRlbmFudCA/PyBudWxsLCBpc1dyaXRhYmxlOiBmYWxzZSB9LCBwbGF5ZXI6IHsgdmFsdWU6IGlucHV0LnBsYXllciA/PyBudWxsLCBpc1dyaXRhYmxlOiB0cnVlIH0gfVxuY29uc3QgYWNjb3VudHMgPSBvcmlnaW5hbEFjY291bnRzIGFzIFJlY29yZDxrZXlvZiB0eXBlb2Ygb3JpZ2luYWxBY2NvdW50cywgUmVzb2x2ZWRJbnN0cnVjdGlvbkFjY291bnQ+O1xuXG5cblxuXG5jb25zdCBnZXRBY2NvdW50TWV0YSA9IGdldEFjY291bnRNZXRhRmFjdG9yeShwcm9ncmFtQWRkcmVzcywgJ3Byb2dyYW1JZCcpO1xucmV0dXJuIE9iamVjdC5mcmVlemUoeyBhY2NvdW50czogW2dldEFjY291bnRNZXRhKFwidGlja2V0XCIsIGFjY291bnRzLnRpY2tldCksIGdldEFjY291bnRNZXRhKFwidGVuYW50XCIsIGFjY291bnRzLnRlbmFudCksIGdldEFjY291bnRNZXRhKFwicGxheWVyXCIsIGFjY291bnRzLnBsYXllcildLCBkYXRhOiBnZXRDbG9zZVRpY2tldEluc3RydWN0aW9uRGF0YUVuY29kZXIoKS5lbmNvZGUoe30pLCBwcm9ncmFtQWRkcmVzcyB9IGFzIENsb3NlVGlja2V0SW5zdHJ1Y3Rpb248VFByb2dyYW1BZGRyZXNzLCBUQWNjb3VudFRpY2tldCwgVEFjY291bnRUZW5hbnQsIFRBY2NvdW50UGxheWVyPik7XG59XG5cbmV4cG9ydCB0eXBlIFBhcnNlZENsb3NlVGlja2V0SW5zdHJ1Y3Rpb248VFByb2dyYW0gZXh0ZW5kcyBzdHJpbmcgPSB0eXBlb2YgRFVFTF9QUk9HUkFNX0FERFJFU1MsIFRBY2NvdW50TWV0YXMgZXh0ZW5kcyByZWFkb25seSBBY2NvdW50TWV0YVtdID0gcmVhZG9ubHkgQWNjb3VudE1ldGFbXT4gPSB7IHByb2dyYW1BZGRyZXNzOiBBZGRyZXNzPFRQcm9ncmFtPjtcbmFjY291bnRzOiB7XG50aWNrZXQ6IFRBY2NvdW50TWV0YXNbMF07XG50ZW5hbnQ6IFRBY2NvdW50TWV0YXNbMV07XG5wbGF5ZXI6IFRBY2NvdW50TWV0YXNbMl07XG59O1xuZGF0YTogQ2xvc2VUaWNrZXRJbnN0cnVjdGlvbkRhdGE7IH07XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNsb3NlVGlja2V0SW5zdHJ1Y3Rpb248VFByb2dyYW0gZXh0ZW5kcyBzdHJpbmcsIFRBY2NvdW50TWV0YXMgZXh0ZW5kcyByZWFkb25seSBBY2NvdW50TWV0YVtdPihpbnN0cnVjdGlvbjogSW5zdHJ1Y3Rpb248VFByb2dyYW0+ICYgSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHM8VEFjY291bnRNZXRhcz4gJiBJbnN0cnVjdGlvbldpdGhEYXRhPFJlYWRvbmx5VWludDhBcnJheT4pOiBQYXJzZWRDbG9zZVRpY2tldEluc3RydWN0aW9uPFRQcm9ncmFtLCBUQWNjb3VudE1ldGFzPiB7XG4gIGlmIChpbnN0cnVjdGlvbi5hY2NvdW50cy5sZW5ndGggPCAzKSB7XG4gIHRocm93IG5ldyBTb2xhbmFFcnJvcihTT0xBTkFfRVJST1JfX1BST0dSQU1fQ0xJRU5UU19fSU5TVUZGSUNJRU5UX0FDQ09VTlRfTUVUQVMsIHsgYWN0dWFsQWNjb3VudE1ldGFzOiBpbnN0cnVjdGlvbi5hY2NvdW50cy5sZW5ndGgsIGV4cGVjdGVkQWNjb3VudE1ldGFzOiAzIH0pO1xufVxubGV0IGFjY291bnRJbmRleCA9IDA7XG5jb25zdCBnZXROZXh0QWNjb3VudCA9ICgpID0+IHtcbiAgY29uc3QgYWNjb3VudE1ldGEgPSAoaW5zdHJ1Y3Rpb24uYWNjb3VudHMgYXMgVEFjY291bnRNZXRhcylbYWNjb3VudEluZGV4XSE7XG4gIGFjY291bnRJbmRleCArPSAxO1xuICByZXR1cm4gYWNjb3VudE1ldGE7XG59XG4gIHJldHVybiB7IHByb2dyYW1BZGRyZXNzOiBpbnN0cnVjdGlvbi5wcm9ncmFtQWRkcmVzcywgYWNjb3VudHM6IHsgdGlja2V0OiBnZXROZXh0QWNjb3VudCgpLCB0ZW5hbnQ6IGdldE5leHRBY2NvdW50KCksIHBsYXllcjogZ2V0TmV4dEFjY291bnQoKSB9LCBkYXRhOiBnZXRDbG9zZVRpY2tldEluc3RydWN0aW9uRGF0YURlY29kZXIoKS5kZWNvZGUoaW5zdHJ1Y3Rpb24uZGF0YSkgfTtcbn0iXX0=
@@ -0,0 +1,39 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ import { type AccountMeta, type AccountSignerMeta, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type WritableSignerAccount } from '@solana/kit';
9
+ import { DUEL_PROGRAM_ADDRESS } from '../programs';
10
+ export declare const COMMIT_TICKETS_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
11
+ export declare function getCommitTicketsDiscriminatorBytes(): ReadonlyUint8Array<ArrayBuffer>;
12
+ export type CommitTicketsInstruction<TProgram extends string = typeof DUEL_PROGRAM_ADDRESS, TAccountTenant extends string | AccountMeta<string> = string, TAccountPayer extends string | AccountMeta<string> = string, TAccountMagicProgram extends string | AccountMeta<string> = "Magic11111111111111111111111111111111111111", TAccountMagicContext extends string | AccountMeta<string> = "MagicContext1111111111111111111111111111111", TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountTenant extends string ? ReadonlyAccount<TAccountTenant> : TAccountTenant, TAccountPayer extends string ? WritableSignerAccount<TAccountPayer> & AccountSignerMeta<TAccountPayer> : TAccountPayer, TAccountMagicProgram extends string ? ReadonlyAccount<TAccountMagicProgram> : TAccountMagicProgram, TAccountMagicContext extends string ? WritableAccount<TAccountMagicContext> : TAccountMagicContext, ...TRemainingAccounts]>;
13
+ export type CommitTicketsInstructionData = {
14
+ discriminator: ReadonlyUint8Array;
15
+ };
16
+ export type CommitTicketsInstructionDataArgs = {};
17
+ export declare function getCommitTicketsInstructionDataEncoder(): FixedSizeEncoder<CommitTicketsInstructionDataArgs>;
18
+ export declare function getCommitTicketsInstructionDataDecoder(): FixedSizeDecoder<CommitTicketsInstructionData>;
19
+ export declare function getCommitTicketsInstructionDataCodec(): FixedSizeCodec<CommitTicketsInstructionDataArgs, CommitTicketsInstructionData>;
20
+ export type CommitTicketsInput<TAccountTenant extends string = string, TAccountPayer extends string = string, TAccountMagicProgram extends string = string, TAccountMagicContext extends string = string> = {
21
+ tenant: Address<TAccountTenant>;
22
+ payer: TransactionSigner<TAccountPayer>;
23
+ magicProgram?: Address<TAccountMagicProgram>;
24
+ magicContext?: Address<TAccountMagicContext>;
25
+ };
26
+ export declare function getCommitTicketsInstruction<TAccountTenant extends string, TAccountPayer extends string, TAccountMagicProgram extends string, TAccountMagicContext extends string, TProgramAddress extends Address = typeof DUEL_PROGRAM_ADDRESS>(input: CommitTicketsInput<TAccountTenant, TAccountPayer, TAccountMagicProgram, TAccountMagicContext>, config?: {
27
+ programAddress?: TProgramAddress;
28
+ }): CommitTicketsInstruction<TProgramAddress, TAccountTenant, TAccountPayer, TAccountMagicProgram, TAccountMagicContext>;
29
+ export type ParsedCommitTicketsInstruction<TProgram extends string = typeof DUEL_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
30
+ programAddress: Address<TProgram>;
31
+ accounts: {
32
+ tenant: TAccountMetas[0];
33
+ payer: TAccountMetas[1];
34
+ magicProgram: TAccountMetas[2];
35
+ magicContext: TAccountMetas[3];
36
+ };
37
+ data: CommitTicketsInstructionData;
38
+ };
39
+ export declare function parseCommitTicketsInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedCommitTicketsInstruction<TProgram, TAccountMetas>;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ import { combineCodec, fixDecoderSize, fixEncoderSize, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, SolanaError, transformEncoder } from '@solana/kit';
9
+ import { getAccountMetaFactory } from '@solana/program-client-core';
10
+ import { DUEL_PROGRAM_ADDRESS } from '../programs';
11
+ export const COMMIT_TICKETS_DISCRIMINATOR = new Uint8Array([245, 199, 81, 0, 62, 133, 18, 22]);
12
+ export function getCommitTicketsDiscriminatorBytes() { return fixEncoderSize(getBytesEncoder(), 8).encode(COMMIT_TICKETS_DISCRIMINATOR); }
13
+ export function getCommitTicketsInstructionDataEncoder() {
14
+ return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)]]), (value) => ({ ...value, discriminator: COMMIT_TICKETS_DISCRIMINATOR }));
15
+ }
16
+ export function getCommitTicketsInstructionDataDecoder() {
17
+ return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)]]);
18
+ }
19
+ export function getCommitTicketsInstructionDataCodec() {
20
+ return combineCodec(getCommitTicketsInstructionDataEncoder(), getCommitTicketsInstructionDataDecoder());
21
+ }
22
+ export function getCommitTicketsInstruction(input, config) {
23
+ // Program address.
24
+ const programAddress = config?.programAddress ?? DUEL_PROGRAM_ADDRESS;
25
+ // Original accounts.
26
+ const originalAccounts = { tenant: { value: input.tenant ?? null, isWritable: false }, payer: { value: input.payer ?? null, isWritable: true }, magicProgram: { value: input.magicProgram ?? null, isWritable: false }, magicContext: { value: input.magicContext ?? null, isWritable: true } };
27
+ const accounts = originalAccounts;
28
+ // Resolve default values.
29
+ if (!accounts.magicProgram.value) {
30
+ accounts.magicProgram.value = 'Magic11111111111111111111111111111111111111';
31
+ }
32
+ if (!accounts.magicContext.value) {
33
+ accounts.magicContext.value = 'MagicContext1111111111111111111111111111111';
34
+ }
35
+ const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
36
+ return Object.freeze({ accounts: [getAccountMeta("tenant", accounts.tenant), getAccountMeta("payer", accounts.payer), getAccountMeta("magicProgram", accounts.magicProgram), getAccountMeta("magicContext", accounts.magicContext)], data: getCommitTicketsInstructionDataEncoder().encode({}), programAddress });
37
+ }
38
+ export function parseCommitTicketsInstruction(instruction) {
39
+ if (instruction.accounts.length < 4) {
40
+ throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, { actualAccountMetas: instruction.accounts.length, expectedAccountMetas: 4 });
41
+ }
42
+ let accountIndex = 0;
43
+ const getNextAccount = () => {
44
+ const accountMeta = instruction.accounts[accountIndex];
45
+ accountIndex += 1;
46
+ return accountMeta;
47
+ };
48
+ return { programAddress: instruction.programAddress, accounts: { tenant: getNextAccount(), payer: getNextAccount(), magicProgram: getNextAccount(), magicContext: getNextAccount() }, data: getCommitTicketsInstructionDataDecoder().decode(instruction.data) };
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0VGlja2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvZHVlbC9pbnN0cnVjdGlvbnMvY29tbWl0VGlja2V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSx5REFBeUQsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQWdVLE1BQU0sYUFBYSxDQUFDO0FBQ3ppQixPQUFPLEVBQUUscUJBQXFCLEVBQW1DLE1BQU0sNkJBQTZCLENBQUM7QUFDckcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRW5ELE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFL0YsTUFBTSxVQUFVLGtDQUFrQyxLQUFLLE9BQU8sY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQVMxSSxNQUFNLFVBQVUsc0NBQXNDO0lBQ2xELE9BQU8sZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxhQUFhLEVBQUUsNEJBQTRCLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDakwsQ0FBQztBQUVELE1BQU0sVUFBVSxzQ0FB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QUUsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxzQ0FBc0MsRUFBRSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztBQUNsUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGNvZGUgd2FzIEFVVE9HRU5FUkFURUQgdXNpbmcgdGhlIENvZGFtYSBsaWJyYXJ5LlxuICogUGxlYXNlIERPIE5PVCBFRElUIFRISVMgRklMRSwgaW5zdGVhZCB1c2UgdmlzaXRvcnNcbiAqIHRvIGFkZCBmZWF0dXJlcywgdGhlbiByZXJ1biBDb2RhbWEgdG8gdXBkYXRlIGl0LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NvZGFtYS1pZGwvY29kYW1hXG4gKi9cblxuaW1wb3J0IHsgY29tYmluZUNvZGVjLCBmaXhEZWNvZGVyU2l6ZSwgZml4RW5jb2RlclNpemUsIGdldEJ5dGVzRGVjb2RlciwgZ2V0Qnl0ZXNFbmNvZGVyLCBnZXRTdHJ1Y3REZWNvZGVyLCBnZXRTdHJ1Y3RFbmNvZGVyLCBTT0xBTkFfRVJST1JfX1BST0dSQU1fQ0xJRU5UU19fSU5TVUZGSUNJRU5UX0FDQ09VTlRfTUVUQVMsIFNvbGFuYUVycm9yLCB0cmFuc2Zvcm1FbmNvZGVyLCB0eXBlIEFjY291bnRNZXRhLCB0eXBlIEFjY291bnRTaWduZXJNZXRhLCB0eXBlIEFkZHJlc3MsIHR5cGUgRml4ZWRTaXplQ29kZWMsIHR5cGUgRml4ZWRTaXplRGVjb2RlciwgdHlwZSBGaXhlZFNpemVFbmNvZGVyLCB0eXBlIEluc3RydWN0aW9uLCB0eXBlIEluc3RydWN0aW9uV2l0aEFjY291bnRzLCB0eXBlIEluc3RydWN0aW9uV2l0aERhdGEsIHR5cGUgUmVhZG9ubHlBY2NvdW50LCB0eXBlIFJlYWRvbmx5VWludDhBcnJheSwgdHlwZSBUcmFuc2FjdGlvblNpZ25lciwgdHlwZSBXcml0YWJsZUFjY291bnQsIHR5cGUgV3JpdGFibGVTaWduZXJBY2NvdW50IH0gZnJvbSAnQHNvbGFuYS9raXQnO1xuaW1wb3J0IHsgZ2V0QWNjb3VudE1ldGFGYWN0b3J5LCB0eXBlIFJlc29sdmVkSW5zdHJ1Y3Rpb25BY2NvdW50IH0gZnJvbSAnQHNvbGFuYS9wcm9ncmFtLWNsaWVudC1jb3JlJztcbmltcG9ydCB7IERVRUxfUFJPR1JBTV9BRERSRVNTIH0gZnJvbSAnLi4vcHJvZ3JhbXMnO1xuXG5leHBvcnQgY29uc3QgQ09NTUlUX1RJQ0tFVFNfRElTQ1JJTUlOQVRPUiA9IG5ldyBVaW50OEFycmF5KFsyNDUsIDE5OSwgODEsIDAsIDYyLCAxMzMsIDE4LCAyMl0pO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29tbWl0VGlja2V0c0Rpc2NyaW1pbmF0b3JCeXRlcygpIHsgcmV0dXJuIGZpeEVuY29kZXJTaXplKGdldEJ5dGVzRW5jb2RlcigpLCA4KS5lbmNvZGUoQ09NTUlUX1RJQ0tFVFNfRElTQ1JJTUlOQVRPUik7IH1cblxuZXhwb3J0IHR5cGUgQ29tbWl0VGlja2V0c0luc3RydWN0aW9uPFRQcm9ncmFtIGV4dGVuZHMgc3RyaW5nID0gdHlwZW9mIERVRUxfUFJPR1JBTV9BRERSRVNTLCBUQWNjb3VudFRlbmFudCBleHRlbmRzIHN0cmluZyB8IEFjY291bnRNZXRhPHN0cmluZz4gPSBzdHJpbmcsIFRBY2NvdW50UGF5ZXIgZXh0ZW5kcyBzdHJpbmcgfCBBY2NvdW50TWV0YTxzdHJpbmc+ID0gc3RyaW5nLCBUQWNjb3VudE1hZ2ljUHJvZ3JhbSBleHRlbmRzIHN0cmluZyB8IEFjY291bnRNZXRhPHN0cmluZz4gPSBcIk1hZ2ljMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTFcIiwgVEFjY291bnRNYWdpY0NvbnRleHQgZXh0ZW5kcyBzdHJpbmcgfCBBY2NvdW50TWV0YTxzdHJpbmc+ID0gXCJNYWdpY0NvbnRleHQxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExXCIsIFRSZW1haW5pbmdBY2NvdW50cyBleHRlbmRzIHJlYWRvbmx5IEFjY291bnRNZXRhPHN0cmluZz5bXSA9IFtdPiA9XG5JbnN0cnVjdGlvbjxUUHJvZ3JhbT4gJiBJbnN0cnVjdGlvbldpdGhEYXRhPFJlYWRvbmx5VWludDhBcnJheT4gJiBJbnN0cnVjdGlvbldpdGhBY2NvdW50czxbVEFjY291bnRUZW5hbnQgZXh0ZW5kcyBzdHJpbmcgPyBSZWFkb25seUFjY291bnQ8VEFjY291bnRUZW5hbnQ+IDogVEFjY291bnRUZW5hbnQsIFRBY2NvdW50UGF5ZXIgZXh0ZW5kcyBzdHJpbmcgPyBXcml0YWJsZVNpZ25lckFjY291bnQ8VEFjY291bnRQYXllcj4gJiBBY2NvdW50U2lnbmVyTWV0YTxUQWNjb3VudFBheWVyPiA6IFRBY2NvdW50UGF5ZXIsIFRBY2NvdW50TWFnaWNQcm9ncmFtIGV4dGVuZHMgc3RyaW5nID8gUmVhZG9ubHlBY2NvdW50PFRBY2NvdW50TWFnaWNQcm9ncmFtPiA6IFRBY2NvdW50TWFnaWNQcm9ncmFtLCBUQWNjb3VudE1hZ2ljQ29udGV4dCBleHRlbmRzIHN0cmluZyA/IFdyaXRhYmxlQWNjb3VudDxUQWNjb3VudE1hZ2ljQ29udGV4dD4gOiBUQWNjb3VudE1hZ2ljQ29udGV4dCwgLi4uVFJlbWFpbmluZ0FjY291bnRzXT47XG5cbmV4cG9ydCB0eXBlIENvbW1pdFRpY2tldHNJbnN0cnVjdGlvbkRhdGEgPSB7IGRpc2NyaW1pbmF0b3I6IFJlYWRvbmx5VWludDhBcnJheTsgIH07XG5cbmV4cG9ydCB0eXBlIENvbW1pdFRpY2tldHNJbnN0cnVjdGlvbkRhdGFBcmdzID0geyAgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbW1pdFRpY2tldHNJbnN0cnVjdGlvbkRhdGFFbmNvZGVyKCk6IEZpeGVkU2l6ZUVuY29kZXI8Q29tbWl0VGlja2V0c0luc3RydWN0aW9uRGF0YUFyZ3M+IHtcbiAgICByZXR1cm4gdHJhbnNmb3JtRW5jb2RlcihnZXRTdHJ1Y3RFbmNvZGVyKFtbJ2Rpc2NyaW1pbmF0b3InLCBmaXhFbmNvZGVyU2l6ZShnZXRCeXRlc0VuY29kZXIoKSwgOCldXSksICh2YWx1ZSkgPT4gKHsgLi4udmFsdWUsIGRpc2NyaW1pbmF0b3I6IENPTU1JVF9USUNLRVRTX0RJU0NSSU1JTkFUT1IgfSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29tbWl0VGlja2V0c0luc3RydWN0aW9uRGF0YURlY29kZXIoKTogRml4ZWRTaXplRGVjb2RlcjxDb21taXRUaWNrZXRzSW5zdHJ1Y3Rpb25EYXRhPiB7XG4gICAgcmV0dXJuIGdldFN0cnVjdERlY29kZXIoW1snZGlzY3JpbWluYXRvcicsIGZpeERlY29kZXJTaXplKGdldEJ5dGVzRGVjb2RlcigpLCA4KV1dKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbW1pdFRpY2tldHNJbnN0cnVjdGlvbkRhdGFDb2RlYygpOiBGaXhlZFNpemVDb2RlYzxDb21taXRUaWNrZXRzSW5zdHJ1Y3Rpb25EYXRhQXJncywgQ29tbWl0VGlja2V0c0luc3RydWN0aW9uRGF0YT4ge1xuICAgIHJldHVybiBjb21iaW5lQ29kZWMoZ2V0Q29tbWl0VGlja2V0c0luc3RydWN0aW9uRGF0YUVuY29kZXIoKSwgZ2V0Q29tbWl0VGlja2V0c0luc3RydWN0aW9uRGF0YURlY29kZXIoKSk7XG59XG5cbmV4cG9ydCB0eXBlIENvbW1pdFRpY2tldHNJbnB1dDxUQWNjb3VudFRlbmFudCBleHRlbmRzIHN0cmluZyA9IHN0cmluZywgVEFjY291bnRQYXllciBleHRlbmRzIHN0cmluZyA9IHN0cmluZywgVEFjY291bnRNYWdpY1Byb2dyYW0gZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsIFRBY2NvdW50TWFnaWNDb250ZXh0IGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiA9ICB7XG4gIHRlbmFudDogQWRkcmVzczxUQWNjb3VudFRlbmFudD47XG5wYXllcjogVHJhbnNhY3Rpb25TaWduZXI8VEFjY291bnRQYXllcj47XG5tYWdpY1Byb2dyYW0/OiBBZGRyZXNzPFRBY2NvdW50TWFnaWNQcm9ncmFtPjtcbm1hZ2ljQ29udGV4dD86IEFkZHJlc3M8VEFjY291bnRNYWdpY0NvbnRleHQ+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29tbWl0VGlja2V0c0luc3RydWN0aW9uPFRBY2NvdW50VGVuYW50IGV4dGVuZHMgc3RyaW5nLCBUQWNjb3VudFBheWVyIGV4dGVuZHMgc3RyaW5nLCBUQWNjb3VudE1hZ2ljUHJvZ3JhbSBleHRlbmRzIHN0cmluZywgVEFjY291bnRNYWdpY0NvbnRleHQgZXh0ZW5kcyBzdHJpbmcsIFRQcm9ncmFtQWRkcmVzcyBleHRlbmRzIEFkZHJlc3MgPSB0eXBlb2YgRFVFTF9QUk9HUkFNX0FERFJFU1M+KGlucHV0OiBDb21taXRUaWNrZXRzSW5wdXQ8VEFjY291bnRUZW5hbnQsIFRBY2NvdW50UGF5ZXIsIFRBY2NvdW50TWFnaWNQcm9ncmFtLCBUQWNjb3VudE1hZ2ljQ29udGV4dD4sIGNvbmZpZz86IHsgcHJvZ3JhbUFkZHJlc3M/OiBUUHJvZ3JhbUFkZHJlc3MgfSApOiBDb21taXRUaWNrZXRzSW5zdHJ1Y3Rpb248VFByb2dyYW1BZGRyZXNzLCBUQWNjb3VudFRlbmFudCwgVEFjY291bnRQYXllciwgVEFjY291bnRNYWdpY1Byb2dyYW0sIFRBY2NvdW50TWFnaWNDb250ZXh0PiB7XG4gIC8vIFByb2dyYW0gYWRkcmVzcy5cbmNvbnN0IHByb2dyYW1BZGRyZXNzID0gY29uZmlnPy5wcm9ncmFtQWRkcmVzcyA/PyBEVUVMX1BST0dSQU1fQUREUkVTUztcblxuIC8vIE9yaWdpbmFsIGFjY291bnRzLlxuY29uc3Qgb3JpZ2luYWxBY2NvdW50cyA9IHsgdGVuYW50OiB7IHZhbHVlOiBpbnB1dC50ZW5hbnQgPz8gbnVsbCwgaXNXcml0YWJsZTogZmFsc2UgfSwgcGF5ZXI6IHsgdmFsdWU6IGlucHV0LnBheWVyID8/IG51bGwsIGlzV3JpdGFibGU6IHRydWUgfSwgbWFnaWNQcm9ncmFtOiB7IHZhbHVlOiBpbnB1dC5tYWdpY1Byb2dyYW0gPz8gbnVsbCwgaXNXcml0YWJsZTogZmFsc2UgfSwgbWFnaWNDb250ZXh0OiB7IHZhbHVlOiBpbnB1dC5tYWdpY0NvbnRleHQgPz8gbnVsbCwgaXNXcml0YWJsZTogdHJ1ZSB9IH1cbmNvbnN0IGFjY291bnRzID0gb3JpZ2luYWxBY2NvdW50cyBhcyBSZWNvcmQ8a2V5b2YgdHlwZW9mIG9yaWdpbmFsQWNjb3VudHMsIFJlc29sdmVkSW5zdHJ1Y3Rpb25BY2NvdW50PjtcblxuXG4vLyBSZXNvbHZlIGRlZmF1bHQgdmFsdWVzLlxuaWYgKCFhY2NvdW50cy5tYWdpY1Byb2dyYW0udmFsdWUpIHtcbmFjY291bnRzLm1hZ2ljUHJvZ3JhbS52YWx1ZSA9ICdNYWdpYzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExJyBhcyBBZGRyZXNzPCdNYWdpYzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExJz47XG59XG5pZiAoIWFjY291bnRzLm1hZ2ljQ29udGV4dC52YWx1ZSkge1xuYWNjb3VudHMubWFnaWNDb250ZXh0LnZhbHVlID0gJ01hZ2ljQ29udGV4dDExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEnIGFzIEFkZHJlc3M8J01hZ2ljQ29udGV4dDExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEnPjtcbn1cblxuY29uc3QgZ2V0QWNjb3VudE1ldGEgPSBnZXRBY2NvdW50TWV0YUZhY3RvcnkocHJvZ3JhbUFkZHJlc3MsICdwcm9ncmFtSWQnKTtcbnJldHVybiBPYmplY3QuZnJlZXplKHsgYWNjb3VudHM6IFtnZXRBY2NvdW50TWV0YShcInRlbmFudFwiLCBhY2NvdW50cy50ZW5hbnQpLCBnZXRBY2NvdW50TWV0YShcInBheWVyXCIsIGFjY291bnRzLnBheWVyKSwgZ2V0QWNjb3VudE1ldGEoXCJtYWdpY1Byb2dyYW1cIiwgYWNjb3VudHMubWFnaWNQcm9ncmFtKSwgZ2V0QWNjb3VudE1ldGEoXCJtYWdpY0NvbnRleHRcIiwgYWNjb3VudHMubWFnaWNDb250ZXh0KV0sIGRhdGE6IGdldENvbW1pdFRpY2tldHNJbnN0cnVjdGlvbkRhdGFFbmNvZGVyKCkuZW5jb2RlKHt9KSwgcHJvZ3JhbUFkZHJlc3MgfSBhcyBDb21taXRUaWNrZXRzSW5zdHJ1Y3Rpb248VFByb2dyYW1BZGRyZXNzLCBUQWNjb3VudFRlbmFudCwgVEFjY291bnRQYXllciwgVEFjY291bnRNYWdpY1Byb2dyYW0sIFRBY2NvdW50TWFnaWNDb250ZXh0Pik7XG59XG5cbmV4cG9ydCB0eXBlIFBhcnNlZENvbW1pdFRpY2tldHNJbnN0cnVjdGlvbjxUUHJvZ3JhbSBleHRlbmRzIHN0cmluZyA9IHR5cGVvZiBEVUVMX1BST0dSQU1fQUREUkVTUywgVEFjY291bnRNZXRhcyBleHRlbmRzIHJlYWRvbmx5IEFjY291bnRNZXRhW10gPSByZWFkb25seSBBY2NvdW50TWV0YVtdPiA9IHsgcHJvZ3JhbUFkZHJlc3M6IEFkZHJlc3M8VFByb2dyYW0+O1xuYWNjb3VudHM6IHtcbnRlbmFudDogVEFjY291bnRNZXRhc1swXTtcbnBheWVyOiBUQWNjb3VudE1ldGFzWzFdO1xubWFnaWNQcm9ncmFtOiBUQWNjb3VudE1ldGFzWzJdO1xubWFnaWNDb250ZXh0OiBUQWNjb3VudE1ldGFzWzNdO1xufTtcbmRhdGE6IENvbW1pdFRpY2tldHNJbnN0cnVjdGlvbkRhdGE7IH07XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNvbW1pdFRpY2tldHNJbnN0cnVjdGlvbjxUUHJvZ3JhbSBleHRlbmRzIHN0cmluZywgVEFjY291bnRNZXRhcyBleHRlbmRzIHJlYWRvbmx5IEFjY291bnRNZXRhW10+KGluc3RydWN0aW9uOiBJbnN0cnVjdGlvbjxUUHJvZ3JhbT4gJiBJbnN0cnVjdGlvbldpdGhBY2NvdW50czxUQWNjb3VudE1ldGFzPiAmIEluc3RydWN0aW9uV2l0aERhdGE8UmVhZG9ubHlVaW50OEFycmF5Pik6IFBhcnNlZENvbW1pdFRpY2tldHNJbnN0cnVjdGlvbjxUUHJvZ3JhbSwgVEFjY291bnRNZXRhcz4ge1xuICBpZiAoaW5zdHJ1Y3Rpb24uYWNjb3VudHMubGVuZ3RoIDwgNCkge1xuICB0aHJvdyBuZXcgU29sYW5hRXJyb3IoU09MQU5BX0VSUk9SX19QUk9HUkFNX0NMSUVOVFNfX0lOU1VGRklDSUVOVF9BQ0NPVU5UX01FVEFTLCB7IGFjdHVhbEFjY291bnRNZXRhczogaW5zdHJ1Y3Rpb24uYWNjb3VudHMubGVuZ3RoLCBleHBlY3RlZEFjY291bnRNZXRhczogNCB9KTtcbn1cbmxldCBhY2NvdW50SW5kZXggPSAwO1xuY29uc3QgZ2V0TmV4dEFjY291bnQgPSAoKSA9PiB7XG4gIGNvbnN0IGFjY291bnRNZXRhID0gKGluc3RydWN0aW9uLmFjY291bnRzIGFzIFRBY2NvdW50TWV0YXMpW2FjY291bnRJbmRleF0hO1xuICBhY2NvdW50SW5kZXggKz0gMTtcbiAgcmV0dXJuIGFjY291bnRNZXRhO1xufVxuICByZXR1cm4geyBwcm9ncmFtQWRkcmVzczogaW5zdHJ1Y3Rpb24ucHJvZ3JhbUFkZHJlc3MsIGFjY291bnRzOiB7IHRlbmFudDogZ2V0TmV4dEFjY291bnQoKSwgcGF5ZXI6IGdldE5leHRBY2NvdW50KCksIG1hZ2ljUHJvZ3JhbTogZ2V0TmV4dEFjY291bnQoKSwgbWFnaWNDb250ZXh0OiBnZXROZXh0QWNjb3VudCgpIH0sIGRhdGE6IGdldENvbW1pdFRpY2tldHNJbnN0cnVjdGlvbkRhdGFEZWNvZGVyKCkuZGVjb2RlKGluc3RydWN0aW9uLmRhdGEpIH07XG59Il19
@@ -0,0 +1,48 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ import { type AccountMeta, type AccountSignerMeta, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type WritableSignerAccount } from '@solana/kit';
9
+ import { DUEL_PROGRAM_ADDRESS } from '../programs';
10
+ export declare const CREATE_TICKET_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
11
+ export declare function getCreateTicketDiscriminatorBytes(): ReadonlyUint8Array<ArrayBuffer>;
12
+ export type CreateTicketInstruction<TProgram extends string = typeof DUEL_PROGRAM_ADDRESS, TAccountTicket extends string | AccountMeta<string> = string, TAccountTenant extends string | AccountMeta<string> = string, TAccountPlayer extends string | AccountMeta<string> = string, TAccountSystemProgram extends string | AccountMeta<string> = "11111111111111111111111111111111", TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountTicket extends string ? WritableAccount<TAccountTicket> : TAccountTicket, TAccountTenant extends string ? ReadonlyAccount<TAccountTenant> : TAccountTenant, TAccountPlayer extends string ? WritableSignerAccount<TAccountPlayer> & AccountSignerMeta<TAccountPlayer> : TAccountPlayer, TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram, ...TRemainingAccounts]>;
13
+ export type CreateTicketInstructionData = {
14
+ discriminator: ReadonlyUint8Array;
15
+ };
16
+ export type CreateTicketInstructionDataArgs = {};
17
+ export declare function getCreateTicketInstructionDataEncoder(): FixedSizeEncoder<CreateTicketInstructionDataArgs>;
18
+ export declare function getCreateTicketInstructionDataDecoder(): FixedSizeDecoder<CreateTicketInstructionData>;
19
+ export declare function getCreateTicketInstructionDataCodec(): FixedSizeCodec<CreateTicketInstructionDataArgs, CreateTicketInstructionData>;
20
+ export type CreateTicketAsyncInput<TAccountTicket extends string = string, TAccountTenant extends string = string, TAccountPlayer extends string = string, TAccountSystemProgram extends string = string> = {
21
+ ticket?: Address<TAccountTicket>;
22
+ tenant: Address<TAccountTenant>;
23
+ player: TransactionSigner<TAccountPlayer>;
24
+ systemProgram?: Address<TAccountSystemProgram>;
25
+ };
26
+ export declare function getCreateTicketInstructionAsync<TAccountTicket extends string, TAccountTenant extends string, TAccountPlayer extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof DUEL_PROGRAM_ADDRESS>(input: CreateTicketAsyncInput<TAccountTicket, TAccountTenant, TAccountPlayer, TAccountSystemProgram>, config?: {
27
+ programAddress?: TProgramAddress;
28
+ }): Promise<CreateTicketInstruction<TProgramAddress, TAccountTicket, TAccountTenant, TAccountPlayer, TAccountSystemProgram>>;
29
+ export type CreateTicketInput<TAccountTicket extends string = string, TAccountTenant extends string = string, TAccountPlayer extends string = string, TAccountSystemProgram extends string = string> = {
30
+ ticket: Address<TAccountTicket>;
31
+ tenant: Address<TAccountTenant>;
32
+ player: TransactionSigner<TAccountPlayer>;
33
+ systemProgram?: Address<TAccountSystemProgram>;
34
+ };
35
+ export declare function getCreateTicketInstruction<TAccountTicket extends string, TAccountTenant extends string, TAccountPlayer extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof DUEL_PROGRAM_ADDRESS>(input: CreateTicketInput<TAccountTicket, TAccountTenant, TAccountPlayer, TAccountSystemProgram>, config?: {
36
+ programAddress?: TProgramAddress;
37
+ }): CreateTicketInstruction<TProgramAddress, TAccountTicket, TAccountTenant, TAccountPlayer, TAccountSystemProgram>;
38
+ export type ParsedCreateTicketInstruction<TProgram extends string = typeof DUEL_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
39
+ programAddress: Address<TProgram>;
40
+ accounts: {
41
+ ticket: TAccountMetas[0];
42
+ tenant: TAccountMetas[1];
43
+ player: TAccountMetas[2];
44
+ systemProgram: TAccountMetas[3];
45
+ };
46
+ data: CreateTicketInstructionData;
47
+ };
48
+ export declare function parseCreateTicketInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedCreateTicketInstruction<TProgram, TAccountMetas>;
@@ -0,0 +1,63 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ import { combineCodec, fixDecoderSize, fixEncoderSize, getAddressEncoder, getBytesDecoder, getBytesEncoder, getProgramDerivedAddress, getStructDecoder, getStructEncoder, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, SolanaError, transformEncoder } from '@solana/kit';
9
+ import { getAccountMetaFactory, getAddressFromResolvedInstructionAccount } from '@solana/program-client-core';
10
+ import { DUEL_PROGRAM_ADDRESS } from '../programs';
11
+ export const CREATE_TICKET_DISCRIMINATOR = new Uint8Array([16, 178, 122, 25, 213, 85, 96, 129]);
12
+ export function getCreateTicketDiscriminatorBytes() { return fixEncoderSize(getBytesEncoder(), 8).encode(CREATE_TICKET_DISCRIMINATOR); }
13
+ export function getCreateTicketInstructionDataEncoder() {
14
+ return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)]]), (value) => ({ ...value, discriminator: CREATE_TICKET_DISCRIMINATOR }));
15
+ }
16
+ export function getCreateTicketInstructionDataDecoder() {
17
+ return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)]]);
18
+ }
19
+ export function getCreateTicketInstructionDataCodec() {
20
+ return combineCodec(getCreateTicketInstructionDataEncoder(), getCreateTicketInstructionDataDecoder());
21
+ }
22
+ export async function getCreateTicketInstructionAsync(input, config) {
23
+ // Program address.
24
+ const programAddress = config?.programAddress ?? DUEL_PROGRAM_ADDRESS;
25
+ // Original accounts.
26
+ const originalAccounts = { ticket: { value: input.ticket ?? null, isWritable: true }, tenant: { value: input.tenant ?? null, isWritable: false }, player: { value: input.player ?? null, isWritable: true }, systemProgram: { value: input.systemProgram ?? null, isWritable: false } };
27
+ const accounts = originalAccounts;
28
+ // Resolve default values.
29
+ if (!accounts.ticket.value) {
30
+ accounts.ticket.value = await getProgramDerivedAddress({ programAddress, seeds: [getBytesEncoder().encode(new Uint8Array([116, 105, 99, 107, 101, 116])), getAddressEncoder().encode(getAddressFromResolvedInstructionAccount("player", accounts.player.value)), getAddressEncoder().encode(getAddressFromResolvedInstructionAccount("tenant", accounts.tenant.value))] });
31
+ }
32
+ if (!accounts.systemProgram.value) {
33
+ accounts.systemProgram.value = '11111111111111111111111111111111';
34
+ }
35
+ const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
36
+ return Object.freeze({ accounts: [getAccountMeta("ticket", accounts.ticket), getAccountMeta("tenant", accounts.tenant), getAccountMeta("player", accounts.player), getAccountMeta("systemProgram", accounts.systemProgram)], data: getCreateTicketInstructionDataEncoder().encode({}), programAddress });
37
+ }
38
+ export function getCreateTicketInstruction(input, config) {
39
+ // Program address.
40
+ const programAddress = config?.programAddress ?? DUEL_PROGRAM_ADDRESS;
41
+ // Original accounts.
42
+ const originalAccounts = { ticket: { value: input.ticket ?? null, isWritable: true }, tenant: { value: input.tenant ?? null, isWritable: false }, player: { value: input.player ?? null, isWritable: true }, systemProgram: { value: input.systemProgram ?? null, isWritable: false } };
43
+ const accounts = originalAccounts;
44
+ // Resolve default values.
45
+ if (!accounts.systemProgram.value) {
46
+ accounts.systemProgram.value = '11111111111111111111111111111111';
47
+ }
48
+ const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
49
+ return Object.freeze({ accounts: [getAccountMeta("ticket", accounts.ticket), getAccountMeta("tenant", accounts.tenant), getAccountMeta("player", accounts.player), getAccountMeta("systemProgram", accounts.systemProgram)], data: getCreateTicketInstructionDataEncoder().encode({}), programAddress });
50
+ }
51
+ export function parseCreateTicketInstruction(instruction) {
52
+ if (instruction.accounts.length < 4) {
53
+ throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, { actualAccountMetas: instruction.accounts.length, expectedAccountMetas: 4 });
54
+ }
55
+ let accountIndex = 0;
56
+ const getNextAccount = () => {
57
+ const accountMeta = instruction.accounts[accountIndex];
58
+ accountIndex += 1;
59
+ return accountMeta;
60
+ };
61
+ return { programAddress: instruction.programAddress, accounts: { ticket: getNextAccount(), tenant: getNextAccount(), player: getNextAccount(), systemProgram: getNextAccount() }, data: getCreateTicketInstructionDataDecoder().decode(instruction.data) };
62
+ }
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlVGlja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9kdWVsL2luc3RydWN0aW9ucy9jcmVhdGVUaWNrZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUseURBQXlELEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFnVSxNQUFNLGFBQWEsQ0FBQztBQUN0bEIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHdDQUF3QyxFQUFtQyxNQUFNLDZCQUE2QixDQUFDO0FBQy9JLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBRWhHLE1BQU0sVUFBVSxpQ0FBaUMsS0FBSyxPQUFPLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFTeEksTUFBTSxVQUFVLHFDQUFxQztJQUNqRCxPQUFPLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsYUFBYSxFQUFFLDJCQUEyQixFQUFFLENBQUMsQ0FBQyxD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QUFxSCxDQUFDLENBQUM7QUFDNVosQ0FBQztBQVdELE1BQU0sVUFBVSw0QkFBNEIsQ0FBd0UsV0FBcUg7SUFDdk8sSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxNQUFNLElBQUksV0FBVyxDQUFDLHlEQUF5RCxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqSyxDQUFDO0lBQ0QsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRTtRQUMxQixNQUFNLFdBQVcsR0FBSSxXQUFXLENBQUMsUUFBMEIsQ0FBQyxZQUFZLENBQUUsQ0FBQztRQUMzRSxZQUFZLElBQUksQ0FBQyxDQUFDO1FBQ2xCLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUMsQ0FBQTtJQUNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUscUNBQXFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7QUFDN1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBjb2RlIHdhcyBBVVRPR0VORVJBVEVEIHVzaW5nIHRoZSBDb2RhbWEgbGlicmFyeS5cbiAqIFBsZWFzZSBETyBOT1QgRURJVCBUSElTIEZJTEUsIGluc3RlYWQgdXNlIHZpc2l0b3JzXG4gKiB0byBhZGQgZmVhdHVyZXMsIHRoZW4gcmVydW4gQ29kYW1hIHRvIHVwZGF0ZSBpdC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9jb2RhbWEtaWRsL2NvZGFtYVxuICovXG5cbmltcG9ydCB7IGNvbWJpbmVDb2RlYywgZml4RGVjb2RlclNpemUsIGZpeEVuY29kZXJTaXplLCBnZXRBZGRyZXNzRW5jb2RlciwgZ2V0Qnl0ZXNEZWNvZGVyLCBnZXRCeXRlc0VuY29kZXIsIGdldFByb2dyYW1EZXJpdmVkQWRkcmVzcywgZ2V0U3RydWN0RGVjb2RlciwgZ2V0U3RydWN0RW5jb2RlciwgU09MQU5BX0VSUk9SX19QUk9HUkFNX0NMSUVOVFNfX0lOU1VGRklDSUVOVF9BQ0NPVU5UX01FVEFTLCBTb2xhbmFFcnJvciwgdHJhbnNmb3JtRW5jb2RlciwgdHlwZSBBY2NvdW50TWV0YSwgdHlwZSBBY2NvdW50U2lnbmVyTWV0YSwgdHlwZSBBZGRyZXNzLCB0eXBlIEZpeGVkU2l6ZUNvZGVjLCB0eXBlIEZpeGVkU2l6ZURlY29kZXIsIHR5cGUgRml4ZWRTaXplRW5jb2RlciwgdHlwZSBJbnN0cnVjdGlvbiwgdHlwZSBJbnN0cnVjdGlvbldpdGhBY2NvdW50cywgdHlwZSBJbnN0cnVjdGlvbldpdGhEYXRhLCB0eXBlIFJlYWRvbmx5QWNjb3VudCwgdHlwZSBSZWFkb25seVVpbnQ4QXJyYXksIHR5cGUgVHJhbnNhY3Rpb25TaWduZXIsIHR5cGUgV3JpdGFibGVBY2NvdW50LCB0eXBlIFdyaXRhYmxlU2lnbmVyQWNjb3VudCB9IGZyb20gJ0Bzb2xhbmEva2l0JztcbmltcG9ydCB7IGdldEFjY291bnRNZXRhRmFjdG9yeSwgZ2V0QWRkcmVzc0Zyb21SZXNvbHZlZEluc3RydWN0aW9uQWNjb3VudCwgdHlwZSBSZXNvbHZlZEluc3RydWN0aW9uQWNjb3VudCB9IGZyb20gJ0Bzb2xhbmEvcHJvZ3JhbS1jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBEVUVMX1BST0dSQU1fQUREUkVTUyB9IGZyb20gJy4uL3Byb2dyYW1zJztcblxuZXhwb3J0IGNvbnN0IENSRUFURV9USUNLRVRfRElTQ1JJTUlOQVRPUiA9IG5ldyBVaW50OEFycmF5KFsxNiwgMTc4LCAxMjIsIDI1LCAyMTMsIDg1LCA5NiwgMTI5XSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDcmVhdGVUaWNrZXREaXNjcmltaW5hdG9yQnl0ZXMoKSB7IHJldHVybiBmaXhFbmNvZGVyU2l6ZShnZXRCeXRlc0VuY29kZXIoKSwgOCkuZW5jb2RlKENSRUFURV9USUNLRVRfRElTQ1JJTUlOQVRPUik7IH1cblxuZXhwb3J0IHR5cGUgQ3JlYXRlVGlja2V0SW5zdHJ1Y3Rpb248VFByb2dyYW0gZXh0ZW5kcyBzdHJpbmcgPSB0eXBlb2YgRFVFTF9QUk9HUkFNX0FERFJFU1MsIFRBY2NvdW50VGlja2V0IGV4dGVuZHMgc3RyaW5nIHwgQWNjb3VudE1ldGE8c3RyaW5nPiA9IHN0cmluZywgVEFjY291bnRUZW5hbnQgZXh0ZW5kcyBzdHJpbmcgfCBBY2NvdW50TWV0YTxzdHJpbmc+ID0gc3RyaW5nLCBUQWNjb3VudFBsYXllciBleHRlbmRzIHN0cmluZyB8IEFjY291bnRNZXRhPHN0cmluZz4gPSBzdHJpbmcsIFRBY2NvdW50U3lzdGVtUHJvZ3JhbSBleHRlbmRzIHN0cmluZyB8IEFjY291bnRNZXRhPHN0cmluZz4gPSBcIjExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExXCIsIFRSZW1haW5pbmdBY2NvdW50cyBleHRlbmRzIHJlYWRvbmx5IEFjY291bnRNZXRhPHN0cmluZz5bXSA9IFtdPiA9XG5JbnN0cnVjdGlvbjxUUHJvZ3JhbT4gJiBJbnN0cnVjdGlvbldpdGhEYXRhPFJlYWRvbmx5VWludDhBcnJheT4gJiBJbnN0cnVjdGlvbldpdGhBY2NvdW50czxbVEFjY291bnRUaWNrZXQgZXh0ZW5kcyBzdHJpbmcgPyBXcml0YWJsZUFjY291bnQ8VEFjY291bnRUaWNrZXQ+IDogVEFjY291bnRUaWNrZXQsIFRBY2NvdW50VGVuYW50IGV4dGVuZHMgc3RyaW5nID8gUmVhZG9ubHlBY2NvdW50PFRBY2NvdW50VGVuYW50PiA6IFRBY2NvdW50VGVuYW50LCBUQWNjb3VudFBsYXllciBleHRlbmRzIHN0cmluZyA/IFdyaXRhYmxlU2lnbmVyQWNjb3VudDxUQWNjb3VudFBsYXllcj4gJiBBY2NvdW50U2lnbmVyTWV0YTxUQWNjb3VudFBsYXllcj4gOiBUQWNjb3VudFBsYXllciwgVEFjY291bnRTeXN0ZW1Qcm9ncmFtIGV4dGVuZHMgc3RyaW5nID8gUmVhZG9ubHlBY2NvdW50PFRBY2NvdW50U3lzdGVtUHJvZ3JhbT4gOiBUQWNjb3VudFN5c3RlbVByb2dyYW0sIC4uLlRSZW1haW5pbmdBY2NvdW50c10+O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVUaWNrZXRJbnN0cnVjdGlvbkRhdGEgPSB7IGRpc2NyaW1pbmF0b3I6IFJlYWRvbmx5VWludDhBcnJheTsgIH07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZVRpY2tldEluc3RydWN0aW9uRGF0YUFyZ3MgPSB7ICB9O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3JlYXRlVGlja2V0SW5zdHJ1Y3Rpb25EYXRhRW5jb2RlcigpOiBGaXhlZFNpemVFbmNvZGVyPENyZWF0ZVRpY2tldEluc3RydWN0aW9uRGF0YUFyZ3M+IHtcbiAgICByZXR1cm4gdHJhbnNmb3JtRW5jb2RlcihnZXRTdHJ1Y3RFbmNvZGVyKFtbJ2Rpc2NyaW1pbmF0b3InLCBmaXhFbmNvZGVyU2l6ZShnZXRCeXRlc0VuY29kZXIoKSwgOCldXSksICh2YWx1ZSkgPT4gKHsgLi4udmFsdWUsIGRpc2NyaW1pbmF0b3I6IENSRUFURV9USUNLRVRfRElTQ1JJTUlOQVRPUiB9KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDcmVhdGVUaWNrZXRJbnN0cnVjdGlvbkRhdGFEZWNvZGVyKCk6IEZpeGVkU2l6ZURlY29kZXI8Q3JlYXRlVGlja2V0SW5zdHJ1Y3Rpb25EYXRhPiB7XG4gICAgcmV0dXJuIGdldFN0cnVjdERlY29kZXIoW1snZGlzY3JpbWluYXRvcicsIGZpeERlY29kZXJTaXplKGdldEJ5dGVzRGVjb2RlcigpLCA4KV1dKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENyZWF0ZVRpY2tldEluc3RydWN0aW9uRGF0YUNvZGVjKCk6IEZpeGVkU2l6ZUNvZGVjPENyZWF0ZVRpY2tldEluc3RydWN0aW9uRGF0YUFyZ3MsIENyZWF0ZVRpY2tldEluc3RydWN0aW9uRGF0YT4ge1xuICAgIHJldHVybiBjb21iaW5lQ29kZWMoZ2V0Q3JlYXRlVGlja2V0SW5zdHJ1Y3Rpb25EYXRhRW5jb2RlcigpLCBnZXRDcmVhdGVUaWNrZXRJbnN0cnVjdGlvbkRhdGFEZWNvZGVyKCkpO1xufVxuXG5leHBvcnQgdHlwZSBDcmVhdGVUaWNrZXRBc3luY0lucHV0PFRBY2NvdW50VGlja2V0IGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLCBUQWNjb3VudFRlbmFudCBleHRlbmRzIHN0cmluZyA9IHN0cmluZywgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsIFRBY2NvdW50U3lzdGVtUHJvZ3JhbSBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4gPSAge1xuICB0aWNrZXQ/OiBBZGRyZXNzPFRBY2NvdW50VGlja2V0PjtcbnRlbmFudDogQWRkcmVzczxUQWNjb3VudFRlbmFudD47XG5wbGF5ZXI6IFRyYW5zYWN0aW9uU2lnbmVyPFRBY2NvdW50UGxheWVyPjtcbnN5c3RlbVByb2dyYW0/OiBBZGRyZXNzPFRBY2NvdW50U3lzdGVtUHJvZ3JhbT47XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDcmVhdGVUaWNrZXRJbnN0cnVjdGlvbkFzeW5jPFRBY2NvdW50VGlja2V0IGV4dGVuZHMgc3RyaW5nLCBUQWNjb3VudFRlbmFudCBleHRlbmRzIHN0cmluZywgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcsIFRBY2NvdW50U3lzdGVtUHJvZ3JhbSBleHRlbmRzIHN0cmluZywgVFByb2dyYW1BZGRyZXNzIGV4dGVuZHMgQWRkcmVzcyA9IHR5cGVvZiBEVUVMX1BST0dSQU1fQUREUkVTUz4oaW5wdXQ6IENyZWF0ZVRpY2tldEFzeW5jSW5wdXQ8VEFjY291bnRUaWNrZXQsIFRBY2NvdW50VGVuYW50LCBUQWNjb3VudFBsYXllciwgVEFjY291bnRTeXN0ZW1Qcm9ncmFtPiwgY29uZmlnPzogeyBwcm9ncmFtQWRkcmVzcz86IFRQcm9ncmFtQWRkcmVzcyB9ICk6IFByb21pc2U8Q3JlYXRlVGlja2V0SW5zdHJ1Y3Rpb248VFByb2dyYW1BZGRyZXNzLCBUQWNjb3VudFRpY2tldCwgVEFjY291bnRUZW5hbnQsIFRBY2NvdW50UGxheWVyLCBUQWNjb3VudFN5c3RlbVByb2dyYW0+PiB7XG4gIC8vIFByb2dyYW0gYWRkcmVzcy5cbmNvbnN0IHByb2dyYW1BZGRyZXNzID0gY29uZmlnPy5wcm9ncmFtQWRkcmVzcyA/PyBEVUVMX1BST0dSQU1fQUREUkVTUztcblxuIC8vIE9yaWdpbmFsIGFjY291bnRzLlxuY29uc3Qgb3JpZ2luYWxBY2NvdW50cyA9IHsgdGlja2V0OiB7IHZhbHVlOiBpbnB1dC50aWNrZXQgPz8gbnVsbCwgaXNXcml0YWJsZTogdHJ1ZSB9LCB0ZW5hbnQ6IHsgdmFsdWU6IGlucHV0LnRlbmFudCA/PyBudWxsLCBpc1dyaXRhYmxlOiBmYWxzZSB9LCBwbGF5ZXI6IHsgdmFsdWU6IGlucHV0LnBsYXllciA/PyBudWxsLCBpc1dyaXRhYmxlOiB0cnVlIH0sIHN5c3RlbVByb2dyYW06IHsgdmFsdWU6IGlucHV0LnN5c3RlbVByb2dyYW0gPz8gbnVsbCwgaXNXcml0YWJsZTogZmFsc2UgfSB9XG5jb25zdCBhY2NvdW50cyA9IG9yaWdpbmFsQWNjb3VudHMgYXMgUmVjb3JkPGtleW9mIHR5cGVvZiBvcmlnaW5hbEFjY291bnRzLCBSZXNvbHZlZEluc3RydWN0aW9uQWNjb3VudD47XG5cblxuLy8gUmVzb2x2ZSBkZWZhdWx0IHZhbHVlcy5cbmlmICghYWNjb3VudHMudGlja2V0LnZhbHVlKSB7XG5hY2NvdW50cy50aWNrZXQudmFsdWUgPSBhd2FpdCBnZXRQcm9ncmFtRGVyaXZlZEFkZHJlc3MoeyBwcm9ncmFtQWRkcmVzcywgc2VlZHM6IFtnZXRCeXRlc0VuY29kZXIoKS5lbmNvZGUobmV3IFVpbnQ4QXJyYXkoWzExNiwgMTA1LCA5OSwgMTA3LCAxMDEsIDExNl0pKSwgZ2V0QWRkcmVzc0VuY29kZXIoKS5lbmNvZGUoZ2V0QWRkcmVzc0Zyb21SZXNvbHZlZEluc3RydWN0aW9uQWNjb3VudChcInBsYXllclwiLCBhY2NvdW50cy5wbGF5ZXIudmFsdWUpKSwgZ2V0QWRkcmVzc0VuY29kZXIoKS5lbmNvZGUoZ2V0QWRkcmVzc0Zyb21SZXNvbHZlZEluc3RydWN0aW9uQWNjb3VudChcInRlbmFudFwiLCBhY2NvdW50cy50ZW5hbnQudmFsdWUpKV0gfSk7XG59XG5pZiAoIWFjY291bnRzLnN5c3RlbVByb2dyYW0udmFsdWUpIHtcbmFjY291bnRzLnN5c3RlbVByb2dyYW0udmFsdWUgPSAnMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEnIGFzIEFkZHJlc3M8JzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExJz47XG59XG5cbmNvbnN0IGdldEFjY291bnRNZXRhID0gZ2V0QWNjb3VudE1ldGFGYWN0b3J5KHByb2dyYW1BZGRyZXNzLCAncHJvZ3JhbUlkJyk7XG5yZXR1cm4gT2JqZWN0LmZyZWV6ZSh7IGFjY291bnRzOiBbZ2V0QWNjb3VudE1ldGEoXCJ0aWNrZXRcIiwgYWNjb3VudHMudGlja2V0KSwgZ2V0QWNjb3VudE1ldGEoXCJ0ZW5hbnRcIiwgYWNjb3VudHMudGVuYW50KSwgZ2V0QWNjb3VudE1ldGEoXCJwbGF5ZXJcIiwgYWNjb3VudHMucGxheWVyKSwgZ2V0QWNjb3VudE1ldGEoXCJzeXN0ZW1Qcm9ncmFtXCIsIGFjY291bnRzLnN5c3RlbVByb2dyYW0pXSwgZGF0YTogZ2V0Q3JlYXRlVGlja2V0SW5zdHJ1Y3Rpb25EYXRhRW5jb2RlcigpLmVuY29kZSh7fSksIHByb2dyYW1BZGRyZXNzIH0gYXMgQ3JlYXRlVGlja2V0SW5zdHJ1Y3Rpb248VFByb2dyYW1BZGRyZXNzLCBUQWNjb3VudFRpY2tldCwgVEFjY291bnRUZW5hbnQsIFRBY2NvdW50UGxheWVyLCBUQWNjb3VudFN5c3RlbVByb2dyYW0+KTtcbn1cblxuZXhwb3J0IHR5cGUgQ3JlYXRlVGlja2V0SW5wdXQ8VEFjY291bnRUaWNrZXQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsIFRBY2NvdW50VGVuYW50IGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLCBUQWNjb3VudFBsYXllciBleHRlbmRzIHN0cmluZyA9IHN0cmluZywgVEFjY291bnRTeXN0ZW1Qcm9ncmFtIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiA9ICB7XG4gIHRpY2tldDogQWRkcmVzczxUQWNjb3VudFRpY2tldD47XG50ZW5hbnQ6IEFkZHJlc3M8VEFjY291bnRUZW5hbnQ+O1xucGxheWVyOiBUcmFuc2FjdGlvblNpZ25lcjxUQWNjb3VudFBsYXllcj47XG5zeXN0ZW1Qcm9ncmFtPzogQWRkcmVzczxUQWNjb3VudFN5c3RlbVByb2dyYW0+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3JlYXRlVGlja2V0SW5zdHJ1Y3Rpb248VEFjY291bnRUaWNrZXQgZXh0ZW5kcyBzdHJpbmcsIFRBY2NvdW50VGVuYW50IGV4dGVuZHMgc3RyaW5nLCBUQWNjb3VudFBsYXllciBleHRlbmRzIHN0cmluZywgVEFjY291bnRTeXN0ZW1Qcm9ncmFtIGV4dGVuZHMgc3RyaW5nLCBUUHJvZ3JhbUFkZHJlc3MgZXh0ZW5kcyBBZGRyZXNzID0gdHlwZW9mIERVRUxfUFJPR1JBTV9BRERSRVNTPihpbnB1dDogQ3JlYXRlVGlja2V0SW5wdXQ8VEFjY291bnRUaWNrZXQsIFRBY2NvdW50VGVuYW50LCBUQWNjb3VudFBsYXllciwgVEFjY291bnRTeXN0ZW1Qcm9ncmFtPiwgY29uZmlnPzogeyBwcm9ncmFtQWRkcmVzcz86IFRQcm9ncmFtQWRkcmVzcyB9ICk6IENyZWF0ZVRpY2tldEluc3RydWN0aW9uPFRQcm9ncmFtQWRkcmVzcywgVEFjY291bnRUaWNrZXQsIFRBY2NvdW50VGVuYW50LCBUQWNjb3VudFBsYXllciwgVEFjY291bnRTeXN0ZW1Qcm9ncmFtPiB7XG4gIC8vIFByb2dyYW0gYWRkcmVzcy5cbmNvbnN0IHByb2dyYW1BZGRyZXNzID0gY29uZmlnPy5wcm9ncmFtQWRkcmVzcyA/PyBEVUVMX1BST0dSQU1fQUREUkVTUztcblxuIC8vIE9yaWdpbmFsIGFjY291bnRzLlxuY29uc3Qgb3JpZ2luYWxBY2NvdW50cyA9IHsgdGlja2V0OiB7IHZhbHVlOiBpbnB1dC50aWNrZXQgPz8gbnVsbCwgaXNXcml0YWJsZTogdHJ1ZSB9LCB0ZW5hbnQ6IHsgdmFsdWU6IGlucHV0LnRlbmFudCA/PyBudWxsLCBpc1dyaXRhYmxlOiBmYWxzZSB9LCBwbGF5ZXI6IHsgdmFsdWU6IGlucHV0LnBsYXllciA/PyBudWxsLCBpc1dyaXRhYmxlOiB0cnVlIH0sIHN5c3RlbVByb2dyYW06IHsgdmFsdWU6IGlucHV0LnN5c3RlbVByb2dyYW0gPz8gbnVsbCwgaXNXcml0YWJsZTogZmFsc2UgfSB9XG5jb25zdCBhY2NvdW50cyA9IG9yaWdpbmFsQWNjb3VudHMgYXMgUmVjb3JkPGtleW9mIHR5cGVvZiBvcmlnaW5hbEFjY291bnRzLCBSZXNvbHZlZEluc3RydWN0aW9uQWNjb3VudD47XG5cblxuLy8gUmVzb2x2ZSBkZWZhdWx0IHZhbHVlcy5cbmlmICghYWNjb3VudHMuc3lzdGVtUHJvZ3JhbS52YWx1ZSkge1xuYWNjb3VudHMuc3lzdGVtUHJvZ3JhbS52YWx1ZSA9ICcxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMScgYXMgQWRkcmVzczwnMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEnPjtcbn1cblxuY29uc3QgZ2V0QWNjb3VudE1ldGEgPSBnZXRBY2NvdW50TWV0YUZhY3RvcnkocHJvZ3JhbUFkZHJlc3MsICdwcm9ncmFtSWQnKTtcbnJldHVybiBPYmplY3QuZnJlZXplKHsgYWNjb3VudHM6IFtnZXRBY2NvdW50TWV0YShcInRpY2tldFwiLCBhY2NvdW50cy50aWNrZXQpLCBnZXRBY2NvdW50TWV0YShcInRlbmFudFwiLCBhY2NvdW50cy50ZW5hbnQpLCBnZXRBY2NvdW50TWV0YShcInBsYXllclwiLCBhY2NvdW50cy5wbGF5ZXIpLCBnZXRBY2NvdW50TWV0YShcInN5c3RlbVByb2dyYW1cIiwgYWNjb3VudHMuc3lzdGVtUHJvZ3JhbSldLCBkYXRhOiBnZXRDcmVhdGVUaWNrZXRJbnN0cnVjdGlvbkRhdGFFbmNvZGVyKCkuZW5jb2RlKHt9KSwgcHJvZ3JhbUFkZHJlc3MgfSBhcyBDcmVhdGVUaWNrZXRJbnN0cnVjdGlvbjxUUHJvZ3JhbUFkZHJlc3MsIFRBY2NvdW50VGlja2V0LCBUQWNjb3VudFRlbmFudCwgVEFjY291bnRQbGF5ZXIsIFRBY2NvdW50U3lzdGVtUHJvZ3JhbT4pO1xufVxuXG5leHBvcnQgdHlwZSBQYXJzZWRDcmVhdGVUaWNrZXRJbnN0cnVjdGlvbjxUUHJvZ3JhbSBleHRlbmRzIHN0cmluZyA9IHR5cGVvZiBEVUVMX1BST0dSQU1fQUREUkVTUywgVEFjY291bnRNZXRhcyBleHRlbmRzIHJlYWRvbmx5IEFjY291bnRNZXRhW10gPSByZWFkb25seSBBY2NvdW50TWV0YVtdPiA9IHsgcHJvZ3JhbUFkZHJlc3M6IEFkZHJlc3M8VFByb2dyYW0+O1xuYWNjb3VudHM6IHtcbnRpY2tldDogVEFjY291bnRNZXRhc1swXTtcbnRlbmFudDogVEFjY291bnRNZXRhc1sxXTtcbnBsYXllcjogVEFjY291bnRNZXRhc1syXTtcbnN5c3RlbVByb2dyYW06IFRBY2NvdW50TWV0YXNbM107XG59O1xuZGF0YTogQ3JlYXRlVGlja2V0SW5zdHJ1Y3Rpb25EYXRhOyB9O1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDcmVhdGVUaWNrZXRJbnN0cnVjdGlvbjxUUHJvZ3JhbSBleHRlbmRzIHN0cmluZywgVEFjY291bnRNZXRhcyBleHRlbmRzIHJlYWRvbmx5IEFjY291bnRNZXRhW10+KGluc3RydWN0aW9uOiBJbnN0cnVjdGlvbjxUUHJvZ3JhbT4gJiBJbnN0cnVjdGlvbldpdGhBY2NvdW50czxUQWNjb3VudE1ldGFzPiAmIEluc3RydWN0aW9uV2l0aERhdGE8UmVhZG9ubHlVaW50OEFycmF5Pik6IFBhcnNlZENyZWF0ZVRpY2tldEluc3RydWN0aW9uPFRQcm9ncmFtLCBUQWNjb3VudE1ldGFzPiB7XG4gIGlmIChpbnN0cnVjdGlvbi5hY2NvdW50cy5sZW5ndGggPCA0KSB7XG4gIHRocm93IG5ldyBTb2xhbmFFcnJvcihTT0xBTkFfRVJST1JfX1BST0dSQU1fQ0xJRU5UU19fSU5TVUZGSUNJRU5UX0FDQ09VTlRfTUVUQVMsIHsgYWN0dWFsQWNjb3VudE1ldGFzOiBpbnN0cnVjdGlvbi5hY2NvdW50cy5sZW5ndGgsIGV4cGVjdGVkQWNjb3VudE1ldGFzOiA0IH0pO1xufVxubGV0IGFjY291bnRJbmRleCA9IDA7XG5jb25zdCBnZXROZXh0QWNjb3VudCA9ICgpID0+IHtcbiAgY29uc3QgYWNjb3VudE1ldGEgPSAoaW5zdHJ1Y3Rpb24uYWNjb3VudHMgYXMgVEFjY291bnRNZXRhcylbYWNjb3VudEluZGV4XSE7XG4gIGFjY291bnRJbmRleCArPSAxO1xuICByZXR1cm4gYWNjb3VudE1ldGE7XG59XG4gIHJldHVybiB7IHByb2dyYW1BZGRyZXNzOiBpbnN0cnVjdGlvbi5wcm9ncmFtQWRkcmVzcywgYWNjb3VudHM6IHsgdGlja2V0OiBnZXROZXh0QWNjb3VudCgpLCB0ZW5hbnQ6IGdldE5leHRBY2NvdW50KCksIHBsYXllcjogZ2V0TmV4dEFjY291bnQoKSwgc3lzdGVtUHJvZ3JhbTogZ2V0TmV4dEFjY291bnQoKSB9LCBkYXRhOiBnZXRDcmVhdGVUaWNrZXRJbnN0cnVjdGlvbkRhdGFEZWNvZGVyKCkuZGVjb2RlKGluc3RydWN0aW9uLmRhdGEpIH07XG59Il19
@@ -0,0 +1,69 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ import { type AccountMeta, type AccountSignerMeta, type Address, type Codec, type Decoder, type Encoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type WritableSignerAccount } from '@solana/kit';
9
+ import { DUEL_PROGRAM_ADDRESS } from '../programs';
10
+ import { type AccountType, type AccountTypeArgs } from '../types';
11
+ export declare const DELEGATE_QUEUE_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
12
+ export declare function getDelegateQueueDiscriminatorBytes(): ReadonlyUint8Array<ArrayBuffer>;
13
+ export type DelegateQueueInstruction<TProgram extends string = typeof DUEL_PROGRAM_ADDRESS, TAccountBufferPda extends string | AccountMeta<string> = string, TAccountDelegationRecordPda extends string | AccountMeta<string> = string, TAccountDelegationMetadataPda extends string | AccountMeta<string> = string, TAccountPda extends string | AccountMeta<string> = string, TAccountPayer extends string | AccountMeta<string> = string, TAccountValidator extends string | AccountMeta<string> = string, TAccountOwnerProgram extends string | AccountMeta<string> = "EdZzUwKd1X2ZWjxLPpz1cpEzMF7RUZC43Pq64v1VcK5X", TAccountDelegationProgram extends string | AccountMeta<string> = "DELeGGvXpWV2fqJUhqcF5ZSYMS4JTLjteaAMARRSaeSh", TAccountSystemProgram extends string | AccountMeta<string> = "11111111111111111111111111111111", TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountBufferPda extends string ? WritableAccount<TAccountBufferPda> : TAccountBufferPda, TAccountDelegationRecordPda extends string ? WritableAccount<TAccountDelegationRecordPda> : TAccountDelegationRecordPda, TAccountDelegationMetadataPda extends string ? WritableAccount<TAccountDelegationMetadataPda> : TAccountDelegationMetadataPda, TAccountPda extends string ? WritableAccount<TAccountPda> : TAccountPda, TAccountPayer extends string ? WritableSignerAccount<TAccountPayer> & AccountSignerMeta<TAccountPayer> : TAccountPayer, TAccountValidator extends string ? ReadonlyAccount<TAccountValidator> : TAccountValidator, TAccountOwnerProgram extends string ? ReadonlyAccount<TAccountOwnerProgram> : TAccountOwnerProgram, TAccountDelegationProgram extends string ? ReadonlyAccount<TAccountDelegationProgram> : TAccountDelegationProgram, TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram, ...TRemainingAccounts]>;
14
+ export type DelegateQueueInstructionData = {
15
+ discriminator: ReadonlyUint8Array;
16
+ accountType: AccountType;
17
+ };
18
+ export type DelegateQueueInstructionDataArgs = {
19
+ accountType: AccountTypeArgs;
20
+ };
21
+ export declare function getDelegateQueueInstructionDataEncoder(): Encoder<DelegateQueueInstructionDataArgs>;
22
+ export declare function getDelegateQueueInstructionDataDecoder(): Decoder<DelegateQueueInstructionData>;
23
+ export declare function getDelegateQueueInstructionDataCodec(): Codec<DelegateQueueInstructionDataArgs, DelegateQueueInstructionData>;
24
+ export type DelegateQueueAsyncInput<TAccountBufferPda extends string = string, TAccountDelegationRecordPda extends string = string, TAccountDelegationMetadataPda extends string = string, TAccountPda extends string = string, TAccountPayer extends string = string, TAccountValidator extends string = string, TAccountOwnerProgram extends string = string, TAccountDelegationProgram extends string = string, TAccountSystemProgram extends string = string> = {
25
+ bufferPda?: Address<TAccountBufferPda>;
26
+ delegationRecordPda?: Address<TAccountDelegationRecordPda>;
27
+ delegationMetadataPda?: Address<TAccountDelegationMetadataPda>;
28
+ pda: Address<TAccountPda>;
29
+ payer: TransactionSigner<TAccountPayer>;
30
+ validator?: Address<TAccountValidator>;
31
+ ownerProgram?: Address<TAccountOwnerProgram>;
32
+ delegationProgram?: Address<TAccountDelegationProgram>;
33
+ systemProgram?: Address<TAccountSystemProgram>;
34
+ accountType: DelegateQueueInstructionDataArgs["accountType"];
35
+ };
36
+ export declare function getDelegateQueueInstructionAsync<TAccountBufferPda extends string, TAccountDelegationRecordPda extends string, TAccountDelegationMetadataPda extends string, TAccountPda extends string, TAccountPayer extends string, TAccountValidator extends string, TAccountOwnerProgram extends string, TAccountDelegationProgram extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof DUEL_PROGRAM_ADDRESS>(input: DelegateQueueAsyncInput<TAccountBufferPda, TAccountDelegationRecordPda, TAccountDelegationMetadataPda, TAccountPda, TAccountPayer, TAccountValidator, TAccountOwnerProgram, TAccountDelegationProgram, TAccountSystemProgram>, config?: {
37
+ programAddress?: TProgramAddress;
38
+ }): Promise<DelegateQueueInstruction<TProgramAddress, TAccountBufferPda, TAccountDelegationRecordPda, TAccountDelegationMetadataPda, TAccountPda, TAccountPayer, TAccountValidator, TAccountOwnerProgram, TAccountDelegationProgram, TAccountSystemProgram>>;
39
+ export type DelegateQueueInput<TAccountBufferPda extends string = string, TAccountDelegationRecordPda extends string = string, TAccountDelegationMetadataPda extends string = string, TAccountPda extends string = string, TAccountPayer extends string = string, TAccountValidator extends string = string, TAccountOwnerProgram extends string = string, TAccountDelegationProgram extends string = string, TAccountSystemProgram extends string = string> = {
40
+ bufferPda: Address<TAccountBufferPda>;
41
+ delegationRecordPda: Address<TAccountDelegationRecordPda>;
42
+ delegationMetadataPda: Address<TAccountDelegationMetadataPda>;
43
+ pda: Address<TAccountPda>;
44
+ payer: TransactionSigner<TAccountPayer>;
45
+ validator?: Address<TAccountValidator>;
46
+ ownerProgram?: Address<TAccountOwnerProgram>;
47
+ delegationProgram?: Address<TAccountDelegationProgram>;
48
+ systemProgram?: Address<TAccountSystemProgram>;
49
+ accountType: DelegateQueueInstructionDataArgs["accountType"];
50
+ };
51
+ export declare function getDelegateQueueInstruction<TAccountBufferPda extends string, TAccountDelegationRecordPda extends string, TAccountDelegationMetadataPda extends string, TAccountPda extends string, TAccountPayer extends string, TAccountValidator extends string, TAccountOwnerProgram extends string, TAccountDelegationProgram extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof DUEL_PROGRAM_ADDRESS>(input: DelegateQueueInput<TAccountBufferPda, TAccountDelegationRecordPda, TAccountDelegationMetadataPda, TAccountPda, TAccountPayer, TAccountValidator, TAccountOwnerProgram, TAccountDelegationProgram, TAccountSystemProgram>, config?: {
52
+ programAddress?: TProgramAddress;
53
+ }): DelegateQueueInstruction<TProgramAddress, TAccountBufferPda, TAccountDelegationRecordPda, TAccountDelegationMetadataPda, TAccountPda, TAccountPayer, TAccountValidator, TAccountOwnerProgram, TAccountDelegationProgram, TAccountSystemProgram>;
54
+ export type ParsedDelegateQueueInstruction<TProgram extends string = typeof DUEL_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
55
+ programAddress: Address<TProgram>;
56
+ accounts: {
57
+ bufferPda: TAccountMetas[0];
58
+ delegationRecordPda: TAccountMetas[1];
59
+ delegationMetadataPda: TAccountMetas[2];
60
+ pda: TAccountMetas[3];
61
+ payer: TAccountMetas[4];
62
+ validator?: TAccountMetas[5] | undefined;
63
+ ownerProgram: TAccountMetas[6];
64
+ delegationProgram: TAccountMetas[7];
65
+ systemProgram: TAccountMetas[8];
66
+ };
67
+ data: DelegateQueueInstructionData;
68
+ };
69
+ export declare function parseDelegateQueueInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedDelegateQueueInstruction<TProgram, TAccountMetas>;