@bitgo-beta/sdk-coin-sol 7.6.4-beta.260 → 7.6.4-beta.262

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.
@@ -1 +1 @@
1
- {"version":3,"file":"explainTransactionWasm.d.ts","sourceRoot":"","sources":["../../../../src/lib/explainTransactionWasm.ts"],"names":[],"mappings":"AAGA,OAAO,EAA0B,sBAAsB,IAAI,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAGzG,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;CAClB;AA4JD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,6BAA6B,GAAG,4BAA4B,CAoJzG"}
1
+ {"version":3,"file":"explainTransactionWasm.d.ts","sourceRoot":"","sources":["../../../../src/lib/explainTransactionWasm.ts"],"names":[],"mappings":"AAGA,OAAO,EAA0B,sBAAsB,IAAI,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAGzG,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAgKD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,6BAA6B,GAAG,4BAA4B,CAoJzG"}
@@ -69,7 +69,11 @@ function deriveTransactionType(instructions, combined, memo) {
69
69
  // Unknown instructions indicate a custom/unrecognized transaction
70
70
  if (instructions.some((i) => i.type === 'Unknown'))
71
71
  return TransactionType.CustomTx;
72
- return TransactionType.Send;
72
+ // Send requires an explicit Transfer or TokenTransfer instruction.
73
+ // Everything else is a custom/unrecognized transaction.
74
+ if (instructions.some((i) => i.type === 'Transfer' || i.type === 'TokenTransfer'))
75
+ return TransactionType.Send;
76
+ return TransactionType.CustomTx;
73
77
  }
74
78
  // =============================================================================
75
79
  // Transaction ID extraction
@@ -257,4 +261,4 @@ function explainSolTransaction(params) {
257
261
  ...(stakingAuthorize ? { stakingAuthorize } : {}),
258
262
  };
259
263
  }
260
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblRyYW5zYWN0aW9uV2FzbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZXhwbGFpblRyYW5zYWN0aW9uV2FzbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlMQSxzREFvSkM7QUFwVUQsb0RBQW1IO0FBQ25ILDJDQUErQztBQUUvQyx5RUFBMkQ7QUFTM0QsZ0ZBQWdGO0FBQ2hGLDBFQUEwRTtBQUMxRSxnRkFBZ0Y7QUFFaEYsSUFBSyxlQVVKO0FBVkQsV0FBSyxlQUFlO0lBQ2xCLGdDQUFhLENBQUE7SUFDYixzREFBbUMsQ0FBQTtJQUNuQywwREFBdUMsQ0FBQTtJQUN2QyxzREFBbUMsQ0FBQTtJQUNuQyx3REFBcUMsQ0FBQTtJQUNyQyxzREFBbUMsQ0FBQTtJQUNuQyxnRUFBNkMsQ0FBQTtJQUM3QyxnR0FBNkUsQ0FBQTtJQUM3RSx3Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBVkksZUFBZSxLQUFmLGVBQWUsUUFVbkI7QUEyQkQsU0FBUyxxQkFBcUIsQ0FBQyxZQUFpQztJQUM5RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNqRCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVqQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssaUJBQWlCLEVBQUUsQ0FBQztZQUNyRSxPQUFPO2dCQUNMLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDN0IsY0FBYyxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUMvQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1B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YUFBYSxFQUFFLEVBQUU7UUFDakIsWUFBWSxFQUFFLEdBQUc7UUFDakIsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDbEMsT0FBTyxFQUFFLGVBQWU7UUFDeEIsTUFBTSxFQUFFLGNBQWM7UUFDdEIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1FBQ3pCLEdBQUcsRUFBRTtZQUNILEdBQUcsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUc7WUFDdkMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ2pFO1FBQ0QsSUFBSTtRQUNKLFNBQVMsRUFBRSxNQUFNLENBQUMsS0FBSztRQUN2QixZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVk7UUFDakMsZ0JBQWdCO1FBQ2hCLFdBQVc7UUFDWCxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQ2xELENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVRva2VuRW5hYmxlbWVudCB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uLCBwYXJzZVRyYW5zYWN0aW9uLCB0eXBlIFBhcnNlZFRyYW5zYWN0aW9uLCB0eXBlIEluc3RydWN0aW9uUGFyYW1zIH0gZnJvbSAnQGJpdGdvL3dhc20tc29sYW5hJztcbmltcG9ydCB7IFVOQVZBSUxBQkxFX1RFWFQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBTdGFraW5nQXV0aG9yaXplUGFyYW1zLCBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGFzIFNvbExpYlRyYW5zYWN0aW9uRXhwbGFuYXRpb24gfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IGZpbmRUb2tlbk5hbWUgfSBmcm9tICcuL2luc3RydWN0aW9uUGFyYW1zRmFjdG9yeSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhwbGFpblRyYW5zYWN0aW9uV2FzbU9wdGlvbnMge1xuICB0eEJhc2U2NDogc3RyaW5nO1xuICBmZWVJbmZvPzogeyBmZWU6IHN0cmluZyB9O1xuICB0b2tlbkFjY291bnRSZW50RXhlbXB0QW1vdW50Pzogc3RyaW5nO1xuICBjb2luTmFtZTogc3RyaW5nO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVHJhbnNhY3Rpb24gdHlwZSBkZXJpdmF0aW9uIChwb3J0ZWQgZnJvbSBAYml0Z28vd2FzbS1zb2xhbmEgZXhwbGFpbi50cylcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmVudW0gVHJhbnNhY3Rpb25UeXBlIHtcbiAgU2VuZCA9ICdTZW5kJyxcbiAgU3Rha2luZ0FjdGl2YXRlID0gJ1N0YWtpbmdBY3RpdmF0ZScsXG4gIFN0YWtpbmdEZWFjdGl2YXRlID0gJ1N0YWtpbmdEZWFjdGl2YXRlJyxcbiAgU3Rha2luZ1dpdGhkcmF3ID0gJ1N0YWtpbmdXaXRoZHJhdycsXG4gIFN0YWtpbmdBdXRob3JpemUgPSAnU3Rha2luZ0F1dGhvcml6ZScsXG4gIFN0YWtpbmdEZWxlZ2F0ZSA9ICdTdGFraW5nRGVsZWdhdGUnLFxuICBXYWxsZXRJbml0aWFsaXphdGlvbiA9ICdXYWxsZXRJbml0aWFsaXphdGlvbicsXG4gIEFzc29jaWF0ZWRUb2tlbkFjY291bnRJbml0aWFsaXphdGlvbiA9ICdBc3NvY2lhdGVkVG9rZW5BY2NvdW50SW5pdGlhbGl6YXRpb24nLFxuICBDdXN0b21UeCA9ICdDdXN0b21UeCcsXG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDb21iaW5lZCBpbnN0cnVjdGlvbiBwYXR0ZXJuIGRldGVjdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gU29sYW5hIG5hdGl2ZSBzdGFraW5nIHJlcXVpcmVzIDMgc2VwYXJhdGUgaW5zdHJ1Y3Rpb25zOlxuLy8gICBDcmVhdGVBY2NvdW50IChmdW5kKSArIFN0YWtlSW5pdGlhbGl6ZSAoc2V0IGF1dGhvcml0aWVzKSArIERlbGVnYXRlU3Rha2UgKHBpY2sgdmFsaWRhdG9yKVxuLy8gTWFyaW5hZGUgc3Rha2luZyB1c2VzIG9ubHkgQ3JlYXRlQWNjb3VudCArIFN0YWtlSW5pdGlhbGl6ZSAobm8gRGVsZWdhdGUpLlxuLy8gV2FsbGV0IGluaXQgdXNlcyBDcmVhdGVBY2NvdW50ICsgTm9uY2VJbml0aWFsaXplLlxuXG5pbnRlcmZhY2UgQ29tYmluZWRTdGFrZUFjdGl2YXRlIHtcbiAga2luZDogJ1N0YWtpbmdBY3RpdmF0ZSc7XG4gIGZyb21BZGRyZXNzOiBzdHJpbmc7XG4gIHN0YWtpbmdBZGRyZXNzOiBzdHJpbmc7XG4gIGFtb3VudDogYmlnaW50O1xufVxuXG5pbnRlcmZhY2UgQ29tYmluZWRXYWxsZXRJbml0IHtcbiAga2luZDogJ1dhbGxldEluaXRpYWxpemF0aW9uJztcbiAgZnJvbUFkZHJlc3M6IHN0cmluZztcbiAgbm9uY2VBZGRyZXNzOiBzdHJpbmc7XG4gIGFtb3VudDogYmlnaW50O1xufVxuXG50eXBlIENvbWJpbmVkUGF0dGVybiA9IENvbWJpbmVkU3Rha2VBY3RpdmF0ZSB8IENvbWJpbmVkV2FsbGV0SW5pdDtcblxuZnVuY3Rpb24gZGV0ZWN0Q29tYmluZWRQYXR0ZXJuKGluc3RydWN0aW9uczogSW5zdHJ1Y3Rpb25QYXJhbXNbXSk6IENvbWJpbmVkUGF0dGVybiB8IG51bGwge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGluc3RydWN0aW9ucy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICBjb25zdCBjdXJyID0gaW5zdHJ1Y3Rpb25zW2ldO1xuICAgIGNvbnN0IG5leHQgPSBpbnN0cnVjdGlvbnNbaSArIDFdO1xuXG4gICAgaWYgKGN1cnIudHlwZSA9PT0gJ0NyZWF0ZUFjY291bnQnICYmIG5leHQudHlwZSA9PT0gJ1N0YWtlSW5pdGlhbGl6ZScpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGtpbmQ6ICdTdGFraW5nQWN0aXZhdGUnLFxuICAgICAgICBmcm9tQWRkcmVzczogY3Vyci5mcm9tQWRkcmVzcyxcbiAgICAgICAgc3Rha2luZ0FkZHJlc3M6IGN1cnIubmV3QWRkcmVzcyxcbiAgICAgICAgYW1vdW50OiBjdXJyLmFtb3VudCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKGN1cnIudHlwZSA9PT0gJ0NyZWF0ZUFjY291bnQnICYmIG5leHQudHlwZSA9PT0gJ05vbmNlSW5pdGlhbGl6ZScpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGtpbmQ6ICdXYWxsZXRJbml0aWFsaXphdGlvbicsXG4gICAgICAgIGZyb21BZGRyZXNzOiBjdXJyLmZyb21BZGRyZXNzLFxuICAgICAgICBub25jZUFkZHJlc3M6IGN1cnIubmV3QWRkcmVzcyxcbiAgICAgICAgYW1vdW50OiBjdXJyLmFtb3VudCxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUcmFuc2FjdGlvbiB0eXBlIGRlcml2YXRpb25cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmNvbnN0IEJPSUxFUlBMQVRFX1RZUEVTID0gbmV3IFNldChbJ05vbmNlQWR2YW5jZScsICdNZW1vJywgJ1NldENvbXB1dGVVbml0TGltaXQnLCAnU2V0UHJpb3JpdHlGZWUnXSk7XG5cbmZ1bmN0aW9uIGRlcml2ZVRyYW5zYWN0aW9uVHlwZShcbiAgaW5zdHJ1Y3Rpb25zOiBJbnN0cnVjdGlvblBhcmFtc1tdLFxuICBjb21iaW5lZDogQ29tYmluZWRQYXR0ZXJuIHwgbnVsbCxcbiAgbWVtbzogc3RyaW5nIHwgdW5kZWZpbmVkXG4pOiBUcmFuc2FjdGlvblR5cGUge1xuICBpZiAoY29tYmluZWQpIHJldHVybiBUcmFuc2FjdGlvblR5cGVbY29tYmluZWQua2luZF07XG5cbiAgLy8gTWFyaW5hZGUgZGVhY3RpdmF0ZTogVHJhbnNmZXIgKyBtZW1vIGNvbnRhaW5pbmcgXCJQcmVwYXJlRm9yUmV2b2tlXCJcbiAgaWYgKG1lbW8/LmluY2x1ZGVzKCdQcmVwYXJlRm9yUmV2b2tlJykpIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0RlYWN0aXZhdGU7XG5cbiAgLy8gSml0byBwb29sIG9wZXJhdGlvbnNcbiAgaWYgKGluc3RydWN0aW9ucy5zb21lKChpKSA9PiBpLnR5cGUgPT09ICdTdGFrZVBvb2xEZXBvc2l0U29sJykpIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0FjdGl2YXRlO1xuICBpZiAoaW5zdHJ1Y3Rpb25zLnNvbWUoKGkpID0+IGkudHlwZSA9PT0gJ1N0YWtlUG9vbFdpdGhkcmF3U3Rha2UnKSkgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nRGVhY3RpdmF0ZTtcblxuICAvLyBBVEEtb25seSB0cmFuc2FjdGlvbnMgKGlnbm9yaW5nIGJvaWxlcnBsYXRlKVxuICBjb25zdCBtZWFuaW5nZnVsID0gaW5zdHJ1Y3Rpb25zLmZpbHRlcigoaSkgPT4gIUJPSUxFUlBMQVRFX1RZUEVTLmhhcyhpLnR5cGUpKTtcbiAgaWYgKG1lYW5pbmdmdWwubGVuZ3RoID4gMCAmJiBtZWFuaW5nZnVsLmV2ZXJ5KChpKSA9PiBpLnR5cGUgPT09ICdDcmVhdGVBc3NvY2lhdGVkVG9rZW5BY2NvdW50JykpIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLkFzc29jaWF0ZWRUb2tlbkFjY291bnRJbml0aWFsaXphdGlvbjtcbiAgfVxuXG4gIC8vIERpcmVjdCBzdGFraW5nIGluc3RydWN0aW9uIG1hcHBpbmdcbiAgY29uc3Qgc3Rha2luZyA9IGluc3RydWN0aW9ucy5maW5kKChpKSA9PiBpLnR5cGUgaW4gVHJhbnNhY3Rpb25UeXBlKTtcbiAgaWYgKHN0YWtpbmcpIHJldHVybiBUcmFuc2FjdGlvblR5cGVbc3Rha2luZy50eXBlIGFzIGtleW9mIHR5cGVvZiBUcmFuc2FjdGlvblR5cGVdO1xuXG4gIC8vIFVua25vd24gaW5zdHJ1Y3Rpb25zIGluZGljYXRlIGEgY3VzdG9tL3VucmVjb2duaXplZCB0cmFuc2FjdGlvblxuICBpZiAoaW5zdHJ1Y3Rpb25zLnNvbWUoKGkpID0+IGkudHlwZSA9PT0gJ1Vua25vd24nKSkgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5DdXN0b21UeDtcblxuICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNlbmQ7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUcmFuc2FjdGlvbiBJRCBleHRyYWN0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBCYXNlNTggZW5jb2Rpbmcgb2YgNjQgemVybyBieXRlcyAodW5zaWduZWQgdHJhbnNhY3Rpb25zIGhhdmUgYWxsLXplcm8gc2lnbmF0dXJlcylcbmNvbnN0IEFMTF9aRVJPU19CQVNFNTggPSAnMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMSc7XG5cbmZ1bmN0aW9uIGV4dHJhY3RUcmFuc2FjdGlvbklkKHNpZ25hdHVyZXM6IHN0cmluZ1tdKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc2lnID0gc2lnbmF0dXJlc1swXTtcbiAgaWYgKCFzaWcgfHwgc2lnID09PSBBTExfWkVST1NfQkFTRTU4KSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4gc2lnO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU3Rha2luZyBhdXRob3JpemUgbWFwcGluZ1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBNYXAgV0FTTSBTdGFraW5nQXV0aG9yaXplIGluc3RydWN0aW9uIHRvIHRoZSBsZWdhY3kgQml0R29KUyBzaGFwZS5cbiAqIEJpdEdvSlMgdXNlcyBkaWZmZXJlbnQgZmllbGQgbmFtZXMgZm9yIFN0YWtlciB2cyBXaXRoZHJhd2VyIGF1dGhvcml0eSBjaGFuZ2VzLlxuICovXG5mdW5jdGlvbiBtYXBTdGFraW5nQXV0aG9yaXplKGluc3RyOiB7XG4gIHN0YWtpbmdBZGRyZXNzOiBzdHJpbmc7XG4gIG9sZEF1dGhvcml6ZUFkZHJlc3M6IHN0cmluZztcbiAgbmV3QXV0aG9yaXplQWRkcmVzczogc3RyaW5nO1xuICBhdXRob3JpemVUeXBlOiAnU3Rha2VyJyB8ICdXaXRoZHJhd2VyJztcbiAgY3VzdG9kaWFuQWRkcmVzcz86IHN0cmluZztcbn0pOiBTdGFraW5nQXV0aG9yaXplUGFyYW1zIHtcbiAgaWYgKGluc3RyLmF1dGhvcml6ZVR5cGUgPT09ICdXaXRoZHJhd2VyJykge1xuICAgIHJldHVybiB7XG4gICAgICBzdGFraW5nQWRkcmVzczogaW5zdHIuc3Rha2luZ0FkZHJlc3MsXG4gICAgICBvbGRXaXRoZHJhd0FkZHJlc3M6IGluc3RyLm9sZEF1dGhvcml6ZUFkZHJlc3MsXG4gICAgICBuZXdXaXRoZHJhd0FkZHJlc3M6IGluc3RyLm5ld0F1dGhvcml6ZUFkZHJlc3MsXG4gICAgICBjdXN0b2RpYW5BZGRyZXNzOiBpbnN0ci5jdXN0b2RpYW5BZGRyZXNzLFxuICAgIH07XG4gIH1cbiAgLy8gU3Rha2VyIGF1dGhvcml0eSBjaGFuZ2VcbiAgcmV0dXJuIHtcbiAgICBzdGFraW5nQWRkcmVzczogaW5zdHIuc3Rha2luZ0FkZHJlc3MsXG4gICAgb2xkV2l0aGRyYXdBZGRyZXNzOiAnJyxcbiAgICBuZXdXaXRoZHJhd0FkZHJlc3M6ICcnLFxuICAgIG9sZFN0YWtpbmdBdXRob3JpdHlBZGRyZXNzOiBpbnN0ci5vbGRBdXRob3JpemVBZGRyZXNzLFxuICAgIG5ld1N0YWtpbmdBdXRob3JpdHlBZGRyZXNzOiBpbnN0ci5uZXdBdXRob3JpemVBZGRyZXNzLFxuICB9O1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWFpbiBleHBsYWluIGZ1bmN0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFN0YW5kYWxvbmUgV0FTTS1iYXNlZCB0cmFuc2FjdGlvbiBleHBsYW5hdGlvbi5cbiAqXG4gKiBQYXJzZXMgdGhlIHRyYW5zYWN0aW9uIHZpYSBgcGFyc2VUcmFuc2FjdGlvbih0eClgIGZyb20gQGJpdGdvL3dhc20tc29sYW5hLFxuICogdGhlbiBkZXJpdmVzIHRoZSB0cmFuc2FjdGlvbiB0eXBlLCBleHRyYWN0cyBvdXRwdXRzL2lucHV0cywgY29tcHV0ZXMgZmVlcyxcbiAqIGFuZCBtYXBzIHRvIEJpdEdvSlMgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiBmb3JtYXQuXG4gKlxuICogVGhlIGV4cGxhaW4gbG9naWMgd2FzIHBvcnRlZCBmcm9tIHdhc20tc29sYW5hIHBlciB0aGUgY29udmVudGlvbiB0aGF0XG4gKiBgZXhwbGFpblRyYW5zYWN0aW9uYCBiZWxvbmdzIGluIEJpdEdvSlMsIG5vdCBpbiB3YXNtLSogcGFja2FnZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHBsYWluU29sVHJhbnNhY3Rpb24ocGFyYW1zOiBFeHBsYWluVHJhbnNhY3Rpb25XYXNtT3B0aW9ucyk6IFNvbExpYlRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICBjb25zdCB0eEJ5dGVzID0gQnVmZmVyLmZyb20ocGFyYW1zLnR4QmFzZTY0LCAnYmFzZTY0Jyk7XG4gIGNvbnN0IHR4ID0gVHJhbnNhY3Rpb24uZnJvbUJ5dGVzKHR4Qnl0ZXMpO1xuICBjb25zdCBwYXJzZWQ6IFBhcnNlZFRyYW5zYWN0aW9uID0gcGFyc2VUcmFuc2FjdGlvbih0eCk7XG5cbiAgLy8gLS0tIFRyYW5zYWN0aW9uIElEIC0tLVxuICBjb25zdCBpZCA9IGV4dHJhY3RUcmFuc2FjdGlvbklkKHBhcnNlZC5zaWduYXR1cmVzKTtcblxuICAvLyAtLS0gRmVlIGNhbGN1bGF0aW9uIC0tLVxuICBjb25zdCBsYW1wb3J0c1BlclNpZ25hdHVyZSA9IHBhcmFtcy5mZWVJbmZvID8gQmlnSW50KHBhcmFtcy5mZWVJbmZvLmZlZSkgOiAwbjtcbiAgbGV0IGZlZSA9IEJpZ0ludChwYXJzZWQubnVtU2lnbmF0dXJlcykgKiBsYW1wb3J0c1BlclNpZ25hdHVyZTtcblxuICAvLyBFYWNoIENyZWF0ZUFzc29jaWF0ZWRUb2tlbkFjY291bnQgY3JlYXRlcyBhIG5ldyB0b2tlbiBhY2NvdW50IHJlcXVpcmluZyBhIHJlbnQgZGVwb3NpdC5cbiAgY29uc3QgYXRhQ291bnQgPSBwYXJzZWQuaW5zdHJ1Y3Rpb25zRGF0YS5maWx0ZXIoKGkpID0+IGkudHlwZSA9PT0gJ0NyZWF0ZUFzc29jaWF0ZWRUb2tlbkFjY291bnQnKS5sZW5ndGg7XG4gIGlmIChhdGFDb3VudCA+IDAgJiYgcGFyYW1zLnRva2VuQWNjb3VudFJlbnRFeGVtcHRBbW91bnQpIHtcbiAgICBmZWUgKz0gQmlnSW50KGF0YUNvdW50KSAqIEJpZ0ludChwYXJhbXMudG9rZW5BY2NvdW50UmVudEV4ZW1wdEFtb3VudCk7XG4gIH1cblxuICAvLyAtLS0gRXh0cmFjdCBtZW1vIChuZWVkZWQgYmVmb3JlIHR5cGUgZGVyaXZhdGlvbikgLS0tXG4gIGxldCBtZW1vOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGZvciAoY29uc3QgaW5zdHIgb2YgcGFyc2VkLmluc3RydWN0aW9uc0RhdGEpIHtcbiAgICBpZiAoaW5zdHIudHlwZSA9PT0gJ01lbW8nKSB7XG4gICAgICBtZW1vID0gaW5zdHIubWVtbztcbiAgICB9XG4gIH1cblxuICAvLyAtLS0gRGV0ZWN0IGNvbWJpbmVkIHBhdHRlcm5zIGFuZCBkZXJpdmUgdHlwZSAtLS1cbiAgY29uc3QgY29tYmluZWQgPSBkZXRlY3RDb21iaW5lZFBhdHRlcm4ocGFyc2VkLmluc3RydWN0aW9uc0RhdGEpO1xuICBjb25zdCB0eFR5cGUgPSBkZXJpdmVUcmFuc2FjdGlvblR5cGUocGFyc2VkLmluc3RydWN0aW9uc0RhdGEsIGNvbWJpbmVkLCBtZW1vKTtcblxuICAvLyBNYXJpbmFkZSBkZWFjdGl2YXRlOiBUcmFuc2ZlciArIFByZXBhcmVGb3JSZXZva2UgbWVtby5cbiAgLy8gVGhlIFRyYW5zZmVyIGlzIGEgY29udHJhY3QgaW50ZXJhY3Rpb24sIG5vdCByZWFsIHZhbHVlIHRyYW5zZmVyIOKAlCBza2lwIGZyb20gb3V0cHV0cy5cbiAgY29uc3QgaXNNYXJpbmFkZURlYWN0aXZhdGUgPVxuICAgIHR4VHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdEZWFjdGl2YXRlICYmIG1lbW8gIT09IHVuZGVmaW5lZCAmJiBtZW1vLmluY2x1ZGVzKCdQcmVwYXJlRm9yUmV2b2tlJyk7XG5cbiAgLy8gLS0tIEV4dHJhY3Qgb3V0cHV0cyBhbmQgaW5wdXRzIC0tLVxuICBjb25zdCBvdXRwdXRzOiB7IGFkZHJlc3M6IHN0cmluZzsgYW1vdW50OiBiaWdpbnQ7IHRva2VuTmFtZT86IHN0cmluZyB9W10gPSBbXTtcbiAgY29uc3QgaW5wdXRzOiB7IGFkZHJlc3M6IHN0cmluZzsgdmFsdWU6IGJpZ2ludCB9W10gPSBbXTtcblxuICBpZiAoY29tYmluZWQ/LmtpbmQgPT09ICdTdGFraW5nQWN0aXZhdGUnKSB7XG4gICAgb3V0cHV0cy5wdXNoKHsgYWRkcmVzczogY29tYmluZWQuc3Rha2luZ0FkZHJlc3MsIGFtb3VudDogY29tYmluZWQuYW1vdW50IH0pO1xuICAgIGlucHV0cy5wdXNoKHsgYWRkcmVzczogY29tYmluZWQuZnJvbUFkZHJlc3MsIHZhbHVlOiBjb21iaW5lZC5hbW91bnQgfSk7XG4gIH0gZWxzZSBpZiAoY29tYmluZWQ/LmtpbmQgPT09ICdXYWxsZXRJbml0aWFsaXphdGlvbicpIHtcbiAgICBvdXRwdXRzLnB1c2goeyBhZGRyZXNzOiBjb21iaW5lZC5ub25jZUFkZHJlc3MsIGFtb3VudDogY29tYmluZWQuYW1vdW50IH0pO1xuICAgIGlucHV0cy5wdXNoKHsgYWRkcmVzczogY29tYmluZWQuZnJvbUFkZHJlc3MsIHZhbHVlOiBjb21iaW5lZC5hbW91bnQgfSk7XG4gIH0gZWxzZSB7XG4gICAgZm9yIChjb25zdCBpbnN0ciBvZiBwYXJzZWQuaW5zdHJ1Y3Rpb25zRGF0YSkge1xuICAgICAgc3dpdGNoIChpbnN0ci50eXBlKSB7XG4gICAgICAgIGNhc2UgJ1RyYW5zZmVyJzpcbiAgICAgICAgICBpZiAoaXNNYXJpbmFkZURlYWN0aXZhdGUpIGJyZWFrO1xuICAgICAgICAgIG91dHB1dHMucHVzaCh7IGFkZHJlc3M6IGluc3RyLnRvQWRkcmVzcywgYW1vdW50OiBpbnN0ci5hbW91bnQgfSk7XG4gICAgICAgICAgaW5wdXRzLnB1c2goeyBhZGRyZXNzOiBpbnN0ci5mcm9tQWRkcmVzcywgdmFsdWU6IGluc3RyLmFtb3VudCB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnVG9rZW5UcmFuc2Zlcic6XG4gICAgICAgICAgb3V0cHV0cy5wdXNoKHsgYWRkcmVzczogaW5zdHIudG9BZGRyZXNzLCBhbW91bnQ6IGluc3RyLmFtb3VudCwgdG9rZW5OYW1lOiBpbnN0ci50b2tlbkFkZHJlc3MgfSk7XG4gICAgICAgICAgaW5wdXRzLnB1c2goeyBhZGRyZXNzOiBpbnN0ci5mcm9tQWRkcmVzcywgdmFsdWU6IGluc3RyLmFtb3VudCB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnU3Rha2luZ0FjdGl2YXRlJzpcbiAgICAgICAgICBvdXRwdXRzLnB1c2goeyBhZGRyZXNzOiBpbnN0ci5zdGFraW5nQWRkcmVzcywgYW1vdW50OiBpbnN0ci5hbW91bnQgfSk7XG4gICAgICAgICAgaW5wdXRzLnB1c2goeyBhZGRyZXNzOiBpbnN0ci5mcm9tQWRkcmVzcywgdmFsdWU6IGluc3RyLmFtb3VudCB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnU3Rha2luZ1dpdGhkcmF3JzpcbiAgICAgICAgICAvLyBXaXRoZHJhdzogU09MIGZsb3dzIEZST00gc3Rha2luZyBhZGRyZXNzIFRPIHRoZSByZWNpcGllbnQgKGZyb21BZGRyZXNzKVxuICAgICAgICAgIG91dHB1dHMucHVzaCh7IGFkZHJlc3M6IGluc3RyLmZyb21BZGRyZXNzLCBhbW91bnQ6IGluc3RyLmFtb3VudCB9KTtcbiAgICAgICAgICBpbnB1dHMucHVzaCh7IGFkZHJlc3M6IGluc3RyLnN0YWtpbmdBZGRyZXNzLCB2YWx1ZTogaW5zdHIuYW1vdW50IH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdTdGFrZVBvb2xEZXBvc2l0U29sJzpcbiAgICAgICAgICAvLyBKaXRvIGxpcXVpZCBzdGFraW5nIGRlcG9zaXRcbiAgICAgICAgICBvdXRwdXRzLnB1c2goeyBhZGRyZXNzOiBpbnN0ci5zdGFrZVBvb2wsIGFtb3VudDogaW5zdHIubGFtcG9ydHMgfSk7XG4gICAgICAgICAgaW5wdXRzLnB1c2goeyBhZGRyZXNzOiBpbnN0ci5mdW5kaW5nQWNjb3VudCwgdmFsdWU6IGluc3RyLmxhbXBvcnRzIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIC0tLSBPdXRwdXQgYW1vdW50IChuYXRpdmUgU09MIG9ubHksIG5vdCB0b2tlbiBhbW91bnRzKSAtLS1cbiAgY29uc3Qgb3V0cHV0QW1vdW50ID0gb3V0cHV0cy5maWx0ZXIoKG8pID0+ICFvLnRva2VuTmFtZSkucmVkdWNlKChzdW0sIG8pID0+IHN1bSArIG8uYW1vdW50LCAwbik7XG5cbiAgLy8gLS0tIEFUQSBvd25lciBtYXBwaW5nIGFuZCB0b2tlbiBlbmFibGVtZW50cyAtLS1cbiAgY29uc3QgYXRhT3duZXJNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgY29uc3QgdG9rZW5FbmFibGVtZW50czogSVRva2VuRW5hYmxlbWVudFtdID0gW107XG4gIGZvciAoY29uc3QgaW5zdHIgb2YgcGFyc2VkLmluc3RydWN0aW9uc0RhdGEpIHtcbiAgICBpZiAoaW5zdHIudHlwZSA9PT0gJ0NyZWF0ZUFzc29jaWF0ZWRUb2tlbkFjY291bnQnKSB7XG4gICAgICBhdGFPd25lck1hcFtpbnN0ci5hdGFBZGRyZXNzXSA9IGluc3RyLm93bmVyQWRkcmVzcztcbiAgICAgIHRva2VuRW5hYmxlbWVudHMucHVzaCh7XG4gICAgICAgIGFkZHJlc3M6IGluc3RyLmF0YUFkZHJlc3MsXG4gICAgICAgIHRva2VuTmFtZTogZmluZFRva2VuTmFtZShpbnN0ci5taW50QWRkcmVzcywgdW5kZWZpbmVkLCB0cnVlKSxcbiAgICAgICAgdG9rZW5BZGRyZXNzOiBpbnN0ci5taW50QWRkcmVzcyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tLSBTdGFraW5nIGF1dGhvcml6ZSAtLS1cbiAgbGV0IHN0YWtpbmdBdXRob3JpemU6IFN0YWtpbmdBdXRob3JpemVQYXJhbXMgfCB1bmRlZmluZWQ7XG4gIGZvciAoY29uc3QgaW5zdHIgb2YgcGFyc2VkLmluc3RydWN0aW9uc0RhdGEpIHtcbiAgICBpZiAoaW5zdHIudHlwZSA9PT0gJ1N0YWtpbmdBdXRob3JpemUnKSB7XG4gICAgICBzdGFraW5nQXV0aG9yaXplID0gbWFwU3Rha2luZ0F1dGhvcml6ZShpbnN0cik7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvLyAtLS0gUmVzb2x2ZSB0b2tlbiBuYW1lcyBhbmQgY29udmVydCBiaWdpbnQgdG8gc3RyaW5nIGF0IHNlcmlhbGl6YXRpb24gYm91bmRhcnkgLS0tXG4gIGNvbnN0IHJlc29sdmVkT3V0cHV0cyA9IG91dHB1dHMubWFwKChvKSA9PiAoe1xuICAgIGFkZHJlc3M6IG8uYWRkcmVzcyxcbiAgICBhbW91bnQ6IFN0cmluZyhvLmFtb3VudCksXG4gICAgLi4uKG8udG9rZW5OYW1lID8geyB0b2tlbk5hbWU6IGZpbmRUb2tlbk5hbWUoby50b2tlbk5hbWUsIHVuZGVmaW5lZCwgdHJ1ZSkgfSA6IHt9KSxcbiAgfSkpO1xuXG4gIGNvbnN0IHJlc29sdmVkSW5wdXRzID0gaW5wdXRzLm1hcCgoaSkgPT4gKHtcbiAgICBhZGRyZXNzOiBpLmFkZHJlc3MsXG4gICAgdmFsdWU6IFN0cmluZyhpLnZhbHVlKSxcbiAgfSkpO1xuXG4gIHJldHVybiB7XG4gICAgZGlzcGxheU9yZGVyOiBbXG4gICAgICAnaWQnLFxuICAgICAgJ3R5cGUnLFxuICAgICAgJ2Jsb2NraGFzaCcsXG4gICAgICAnZHVyYWJsZU5vbmNlJyxcbiAgICAgICdvdXRwdXRBbW91bnQnLFxuICAgICAgJ2NoYW5nZUFtb3VudCcsXG4gICAgICAnb3V0cHV0cycsXG4gICAgICAnY2hhbmdlT3V0cHV0cycsXG4gICAgICAndG9rZW5FbmFibGVtZW50cycsXG4gICAgICAnZmVlJyxcbiAgICAgICdtZW1vJyxcbiAgICBdLFxuICAgIGlkOiBpZCA/PyBVTkFWQUlMQUJMRV9URVhULFxuICAgIC8vIFdBU00gcmV0dXJucyBcIlN0YWtpbmdBdXRob3JpemVcIiBidXQgQml0R29KUyB1c2VzIFwiU3Rha2luZ0F1dGhvcml6ZVJhd1wiXG4gICAgLy8gd2hlbiBkZXNlcmlhbGl6aW5nIGZyb20gYnl0ZXMgKHRoZSBub24tcmF3IHR5cGUgb25seSBleGlzdHMgZHVyaW5nIGJ1aWxkaW5nKS5cbiAgICB0eXBlOiB0eFR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQXV0aG9yaXplID8gJ1N0YWtpbmdBdXRob3JpemVSYXcnIDogdHhUeXBlLFxuICAgIGNoYW5nZU91dHB1dHM6IFtdLFxuICAgIGNoYW5nZUFtb3VudDogJzAnLFxuICAgIG91dHB1dEFtb3VudDogU3RyaW5nKG91dHB1dEFtb3VudCksXG4gICAgb3V0cHV0czogcmVzb2x2ZWRPdXRwdXRzLFxuICAgIGlucHV0czogcmVzb2x2ZWRJbnB1dHMsXG4gICAgZmVlUGF5ZXI6IHBhcnNlZC5mZWVQYXllcixcbiAgICBmZWU6IHtcbiAgICAgIGZlZTogcGFyYW1zLmZlZUluZm8gPyBTdHJpbmcoZmVlKSA6ICcwJyxcbiAgICAgIGZlZVJhdGU6IHBhcmFtcy5mZWVJbmZvID8gTnVtYmVyKHBhcmFtcy5mZWVJbmZvLmZlZSkgOiB1bmRlZmluZWQsXG4gICAgfSxcbiAgICBtZW1vLFxuICAgIGJsb2NraGFzaDogcGFyc2VkLm5vbmNlLFxuICAgIGR1cmFibGVOb25jZTogcGFyc2VkLmR1cmFibGVOb25jZSxcbiAgICB0b2tlbkVuYWJsZW1lbnRzLFxuICAgIGF0YU93bmVyTWFwLFxuICAgIC4uLihzdGFraW5nQXV0aG9yaXplID8geyBzdGFraW5nQXV0aG9yaXplIH0gOiB7fSksXG4gIH07XG59XG4iXX0=
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblRyYW5zYWN0aW9uV2FzbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZXhwbGFpblRyYW5zYWN0aW9uV2FzbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFMQSxzREFvSkM7QUF4VUQsb0RBQW1IO0FBQ25ILDJDQUErQztBQUUvQyx5RUFBMkQ7QUFTM0QsZ0ZBQWdGO0FBQ2hGLDBFQUEwRTtBQUMxRSxnRkFBZ0Y7QUFFaEYsSUFBSyxlQVVKO0FBVkQsV0FBSyxlQUFlO0lBQ2xCLGdDQUFhLENBQUE7SUFDYixzREFBbUMsQ0FBQTtJQUNuQywwREFBdUMsQ0FBQTtJQUN2QyxzREFBbUMsQ0FBQTtJQUNuQyx3REFBcUMsQ0FBQTtJQUNyQyxzREFBbUMsQ0FBQTtJQUNuQyxnRUFBNkMsQ0FBQTtJQUM3QyxnR0FBNkUsQ0FBQTtJQUM3RSx3Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBVkksZUFBZSxLQUFmLGVBQWUsUUFVbkI7QUEyQkQsU0FBUyxxQkFBcUIsQ0FBQyxZQUFpQztJQUM5RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNqRCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVqQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssaUJBQWlCLEVBQUUsQ0FBQztZQUNyRSxPQUFPO2dCQUNMLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDN0IsY0FBYyxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUMvQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1B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bEIsS0FBSztZQUNMLE1BQU07U0FDUDtRQUNELEVBQUUsRUFBRSxFQUFFLElBQUksNEJBQWdCO1FBQzFCLHlFQUF5RTtRQUN6RSxnRkFBZ0Y7UUFDaEYsSUFBSSxFQUFFLE1BQU0sS0FBSyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxNQUFNO1FBQ2xGLGFBQWEsRUFBRSxFQUFFO1FBQ2pCLFlBQVksRUFBRSxHQUFHO1FBQ2pCLFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQ2xDLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLE1BQU0sRUFBRSxjQUFjO1FBQ3RCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtRQUN6QixHQUFHLEVBQUU7WUFDSCxHQUFHLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHO1lBQ3ZDLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUNqRTtRQUNELElBQUk7UUFDSixTQUFTLEVBQUUsTUFBTSxDQUFDLEtBQUs7UUFDdkIsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZO1FBQ2pDLGdCQUFnQjtRQUNoQixXQUFXO1FBQ1gsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUNsRCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElUb2tlbkVuYWJsZW1lbnQgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiwgcGFyc2VUcmFuc2FjdGlvbiwgdHlwZSBQYXJzZWRUcmFuc2FjdGlvbiwgdHlwZSBJbnN0cnVjdGlvblBhcmFtcyB9IGZyb20gJ0BiaXRnby93YXNtLXNvbGFuYSc7XG5pbXBvcnQgeyBVTkFWQUlMQUJMRV9URVhUIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU3Rha2luZ0F1dGhvcml6ZVBhcmFtcywgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiBhcyBTb2xMaWJUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBmaW5kVG9rZW5OYW1lIH0gZnJvbSAnLi9pbnN0cnVjdGlvblBhcmFtc0ZhY3RvcnknO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4cGxhaW5UcmFuc2FjdGlvbldhc21PcHRpb25zIHtcbiAgdHhCYXNlNjQ6IHN0cmluZztcbiAgZmVlSW5mbz86IHsgZmVlOiBzdHJpbmcgfTtcbiAgdG9rZW5BY2NvdW50UmVudEV4ZW1wdEFtb3VudD86IHN0cmluZztcbiAgY29pbk5hbWU6IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRyYW5zYWN0aW9uIHR5cGUgZGVyaXZhdGlvbiAocG9ydGVkIGZyb20gQGJpdGdvL3dhc20tc29sYW5hIGV4cGxhaW4udHMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5lbnVtIFRyYW5zYWN0aW9uVHlwZSB7XG4gIFNlbmQgPSAnU2VuZCcsXG4gIFN0YWtpbmdBY3RpdmF0ZSA9ICdTdGFraW5nQWN0aXZhdGUnLFxuICBTdGFraW5nRGVhY3RpdmF0ZSA9ICdTdGFraW5nRGVhY3RpdmF0ZScsXG4gIFN0YWtpbmdXaXRoZHJhdyA9ICdTdGFraW5nV2l0aGRyYXcnLFxuICBTdGFraW5nQXV0aG9yaXplID0gJ1N0YWtpbmdBdXRob3JpemUnLFxuICBTdGFraW5nRGVsZWdhdGUgPSAnU3Rha2luZ0RlbGVnYXRlJyxcbiAgV2FsbGV0SW5pdGlhbGl6YXRpb24gPSAnV2FsbGV0SW5pdGlhbGl6YXRpb24nLFxuICBBc3NvY2lhdGVkVG9rZW5BY2NvdW50SW5pdGlhbGl6YXRpb24gPSAnQXNzb2NpYXRlZFRva2VuQWNjb3VudEluaXRpYWxpemF0aW9uJyxcbiAgQ3VzdG9tVHggPSAnQ3VzdG9tVHgnLFxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ29tYmluZWQgaW5zdHJ1Y3Rpb24gcGF0dGVybiBkZXRlY3Rpb25cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFNvbGFuYSBuYXRpdmUgc3Rha2luZyByZXF1aXJlcyAzIHNlcGFyYXRlIGluc3RydWN0aW9uczpcbi8vICAgQ3JlYXRlQWNjb3VudCAoZnVuZCkgKyBTdGFrZUluaXRpYWxpemUgKHNldCBhdXRob3JpdGllcykgKyBEZWxlZ2F0ZVN0YWtlIChwaWNrIHZhbGlkYXRvcilcbi8vIE1hcmluYWRlIHN0YWtpbmcgdXNlcyBvbmx5IENyZWF0ZUFjY291bnQgKyBTdGFrZUluaXRpYWxpemUgKG5vIERlbGVnYXRlKS5cbi8vIFdhbGxldCBpbml0IHVzZXMgQ3JlYXRlQWNjb3VudCArIE5vbmNlSW5pdGlhbGl6ZS5cblxuaW50ZXJmYWNlIENvbWJpbmVkU3Rha2VBY3RpdmF0ZSB7XG4gIGtpbmQ6ICdTdGFraW5nQWN0aXZhdGUnO1xuICBmcm9tQWRkcmVzczogc3RyaW5nO1xuICBzdGFraW5nQWRkcmVzczogc3RyaW5nO1xuICBhbW91bnQ6IGJpZ2ludDtcbn1cblxuaW50ZXJmYWNlIENvbWJpbmVkV2FsbGV0SW5pdCB7XG4gIGtpbmQ6ICdXYWxsZXRJbml0aWFsaXphdGlvbic7XG4gIGZyb21BZGRyZXNzOiBzdHJpbmc7XG4gIG5vbmNlQWRkcmVzczogc3RyaW5nO1xuICBhbW91bnQ6IGJpZ2ludDtcbn1cblxudHlwZSBDb21iaW5lZFBhdHRlcm4gPSBDb21iaW5lZFN0YWtlQWN0aXZhdGUgfCBDb21iaW5lZFdhbGxldEluaXQ7XG5cbmZ1bmN0aW9uIGRldGVjdENvbWJpbmVkUGF0dGVybihpbnN0cnVjdGlvbnM6IEluc3RydWN0aW9uUGFyYW1zW10pOiBDb21iaW5lZFBhdHRlcm4gfCBudWxsIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnN0cnVjdGlvbnMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgY29uc3QgY3VyciA9IGluc3RydWN0aW9uc1tpXTtcbiAgICBjb25zdCBuZXh0ID0gaW5zdHJ1Y3Rpb25zW2kgKyAxXTtcblxuICAgIGlmIChjdXJyLnR5cGUgPT09ICdDcmVhdGVBY2NvdW50JyAmJiBuZXh0LnR5cGUgPT09ICdTdGFrZUluaXRpYWxpemUnKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBraW5kOiAnU3Rha2luZ0FjdGl2YXRlJyxcbiAgICAgICAgZnJvbUFkZHJlc3M6IGN1cnIuZnJvbUFkZHJlc3MsXG4gICAgICAgIHN0YWtpbmdBZGRyZXNzOiBjdXJyLm5ld0FkZHJlc3MsXG4gICAgICAgIGFtb3VudDogY3Vyci5hbW91bnQsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChjdXJyLnR5cGUgPT09ICdDcmVhdGVBY2NvdW50JyAmJiBuZXh0LnR5cGUgPT09ICdOb25jZUluaXRpYWxpemUnKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBraW5kOiAnV2FsbGV0SW5pdGlhbGl6YXRpb24nLFxuICAgICAgICBmcm9tQWRkcmVzczogY3Vyci5mcm9tQWRkcmVzcyxcbiAgICAgICAgbm9uY2VBZGRyZXNzOiBjdXJyLm5ld0FkZHJlc3MsXG4gICAgICAgIGFtb3VudDogY3Vyci5hbW91bnQsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVHJhbnNhY3Rpb24gdHlwZSBkZXJpdmF0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5jb25zdCBCT0lMRVJQTEFURV9UWVBFUyA9IG5ldyBTZXQoWydOb25jZUFkdmFuY2UnLCAnTWVtbycsICdTZXRDb21wdXRlVW5pdExpbWl0JywgJ1NldFByaW9yaXR5RmVlJ10pO1xuXG5mdW5jdGlvbiBkZXJpdmVUcmFuc2FjdGlvblR5cGUoXG4gIGluc3RydWN0aW9uczogSW5zdHJ1Y3Rpb25QYXJhbXNbXSxcbiAgY29tYmluZWQ6IENvbWJpbmVkUGF0dGVybiB8IG51bGwsXG4gIG1lbW86IHN0cmluZyB8IHVuZGVmaW5lZFxuKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgaWYgKGNvbWJpbmVkKSByZXR1cm4gVHJhbnNhY3Rpb25UeXBlW2NvbWJpbmVkLmtpbmRdO1xuXG4gIC8vIE1hcmluYWRlIGRlYWN0aXZhdGU6IFRyYW5zZmVyICsgbWVtbyBjb250YWluaW5nIFwiUHJlcGFyZUZvclJldm9rZVwiXG4gIGlmIChtZW1vPy5pbmNsdWRlcygnUHJlcGFyZUZvclJldm9rZScpKSByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdEZWFjdGl2YXRlO1xuXG4gIC8vIEppdG8gcG9vbCBvcGVyYXRpb25zXG4gIGlmIChpbnN0cnVjdGlvbnMuc29tZSgoaSkgPT4gaS50eXBlID09PSAnU3Rha2VQb29sRGVwb3NpdFNvbCcpKSByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBY3RpdmF0ZTtcbiAgaWYgKGluc3RydWN0aW9ucy5zb21lKChpKSA9PiBpLnR5cGUgPT09ICdTdGFrZVBvb2xXaXRoZHJhd1N0YWtlJykpIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0RlYWN0aXZhdGU7XG5cbiAgLy8gQVRBLW9ubHkgdHJhbnNhY3Rpb25zIChpZ25vcmluZyBib2lsZXJwbGF0ZSlcbiAgY29uc3QgbWVhbmluZ2Z1bCA9IGluc3RydWN0aW9ucy5maWx0ZXIoKGkpID0+ICFCT0lMRVJQTEFURV9UWVBFUy5oYXMoaS50eXBlKSk7XG4gIGlmIChtZWFuaW5nZnVsLmxlbmd0aCA+IDAgJiYgbWVhbmluZ2Z1bC5ldmVyeSgoaSkgPT4gaS50eXBlID09PSAnQ3JlYXRlQXNzb2NpYXRlZFRva2VuQWNjb3VudCcpKSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5Bc3NvY2lhdGVkVG9rZW5BY2NvdW50SW5pdGlhbGl6YXRpb247XG4gIH1cblxuICAvLyBEaXJlY3Qgc3Rha2luZyBpbnN0cnVjdGlvbiBtYXBwaW5nXG4gIGNvbnN0IHN0YWtpbmcgPSBpbnN0cnVjdGlvbnMuZmluZCgoaSkgPT4gaS50eXBlIGluIFRyYW5zYWN0aW9uVHlwZSk7XG4gIGlmIChzdGFraW5nKSByZXR1cm4gVHJhbnNhY3Rpb25UeXBlW3N0YWtpbmcudHlwZSBhcyBrZXlvZiB0eXBlb2YgVHJhbnNhY3Rpb25UeXBlXTtcblxuICAvLyBVbmtub3duIGluc3RydWN0aW9ucyBpbmRpY2F0ZSBhIGN1c3RvbS91bnJlY29nbml6ZWQgdHJhbnNhY3Rpb25cbiAgaWYgKGluc3RydWN0aW9ucy5zb21lKChpKSA9PiBpLnR5cGUgPT09ICdVbmtub3duJykpIHJldHVybiBUcmFuc2FjdGlvblR5cGUuQ3VzdG9tVHg7XG5cbiAgLy8gU2VuZCByZXF1aXJlcyBhbiBleHBsaWNpdCBUcmFuc2ZlciBvciBUb2tlblRyYW5zZmVyIGluc3RydWN0aW9uLlxuICAvLyBFdmVyeXRoaW5nIGVsc2UgaXMgYSBjdXN0b20vdW5yZWNvZ25pemVkIHRyYW5zYWN0aW9uLlxuICBpZiAoaW5zdHJ1Y3Rpb25zLnNvbWUoKGkpID0+IGkudHlwZSA9PT0gJ1RyYW5zZmVyJyB8fCBpLnR5cGUgPT09ICdUb2tlblRyYW5zZmVyJykpIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU2VuZDtcblxuICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLkN1c3RvbVR4O1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVHJhbnNhY3Rpb24gSUQgZXh0cmFjdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gQmFzZTU4IGVuY29kaW5nIG9mIDY0IHplcm8gYnl0ZXMgKHVuc2lnbmVkIHRyYW5zYWN0aW9ucyBoYXZlIGFsbC16ZXJvIHNpZ25hdHVyZXMpXG5jb25zdCBBTExfWkVST1NfQkFTRTU4ID0gJzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEnO1xuXG5mdW5jdGlvbiBleHRyYWN0VHJhbnNhY3Rpb25JZChzaWduYXR1cmVzOiBzdHJpbmdbXSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHNpZyA9IHNpZ25hdHVyZXNbMF07XG4gIGlmICghc2lnIHx8IHNpZyA9PT0gQUxMX1pFUk9TX0JBU0U1OCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgcmV0dXJuIHNpZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFN0YWtpbmcgYXV0aG9yaXplIG1hcHBpbmdcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogTWFwIFdBU00gU3Rha2luZ0F1dGhvcml6ZSBpbnN0cnVjdGlvbiB0byB0aGUgbGVnYWN5IEJpdEdvSlMgc2hhcGUuXG4gKiBCaXRHb0pTIHVzZXMgZGlmZmVyZW50IGZpZWxkIG5hbWVzIGZvciBTdGFrZXIgdnMgV2l0aGRyYXdlciBhdXRob3JpdHkgY2hhbmdlcy5cbiAqL1xuZnVuY3Rpb24gbWFwU3Rha2luZ0F1dGhvcml6ZShpbnN0cjoge1xuICBzdGFraW5nQWRkcmVzczogc3RyaW5nO1xuICBvbGRBdXRob3JpemVBZGRyZXNzOiBzdHJpbmc7XG4gIG5ld0F1dGhvcml6ZUFkZHJlc3M6IHN0cmluZztcbiAgYXV0aG9yaXplVHlwZTogJ1N0YWtlcicgfCAnV2l0aGRyYXdlcic7XG4gIGN1c3RvZGlhbkFkZHJlc3M/OiBzdHJpbmc7XG59KTogU3Rha2luZ0F1dGhvcml6ZVBhcmFtcyB7XG4gIGlmIChpbnN0ci5hdXRob3JpemVUeXBlID09PSAnV2l0aGRyYXdlcicpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3Rha2luZ0FkZHJlc3M6IGluc3RyLnN0YWtpbmdBZGRyZXNzLFxuICAgICAgb2xkV2l0aGRyYXdBZGRyZXNzOiBpbnN0ci5vbGRBdXRob3JpemVBZGRyZXNzLFxuICAgICAgbmV3V2l0aGRyYXdBZGRyZXNzOiBpbnN0ci5uZXdBdXRob3JpemVBZGRyZXNzLFxuICAgICAgY3VzdG9kaWFuQWRkcmVzczogaW5zdHIuY3VzdG9kaWFuQWRkcmVzcyxcbiAgICB9O1xuICB9XG4gIC8vIFN0YWtlciBhdXRob3JpdHkgY2hhbmdlXG4gIHJldHVybiB7XG4gICAgc3Rha2luZ0FkZHJlc3M6IGluc3RyLnN0YWtpbmdBZGRyZXNzLFxuICAgIG9sZFdpdGhkcmF3QWRkcmVzczogJycsXG4gICAgbmV3V2l0aGRyYXdBZGRyZXNzOiAnJyxcbiAgICBvbGRTdGFraW5nQXV0aG9yaXR5QWRkcmVzczogaW5zdHIub2xkQXV0aG9yaXplQWRkcmVzcyxcbiAgICBuZXdTdGFraW5nQXV0aG9yaXR5QWRkcmVzczogaW5zdHIubmV3QXV0aG9yaXplQWRkcmVzcyxcbiAgfTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1haW4gZXhwbGFpbiBmdW5jdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBTdGFuZGFsb25lIFdBU00tYmFzZWQgdHJhbnNhY3Rpb24gZXhwbGFuYXRpb24uXG4gKlxuICogUGFyc2VzIHRoZSB0cmFuc2FjdGlvbiB2aWEgYHBhcnNlVHJhbnNhY3Rpb24odHgpYCBmcm9tIEBiaXRnby93YXNtLXNvbGFuYSxcbiAqIHRoZW4gZGVyaXZlcyB0aGUgdHJhbnNhY3Rpb24gdHlwZSwgZXh0cmFjdHMgb3V0cHV0cy9pbnB1dHMsIGNvbXB1dGVzIGZlZXMsXG4gKiBhbmQgbWFwcyB0byBCaXRHb0pTIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gZm9ybWF0LlxuICpcbiAqIFRoZSBleHBsYWluIGxvZ2ljIHdhcyBwb3J0ZWQgZnJvbSB3YXNtLXNvbGFuYSBwZXIgdGhlIGNvbnZlbnRpb24gdGhhdFxuICogYGV4cGxhaW5UcmFuc2FjdGlvbmAgYmVsb25ncyBpbiBCaXRHb0pTLCBub3QgaW4gd2FzbS0qIHBhY2thZ2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhwbGFpblNvbFRyYW5zYWN0aW9uKHBhcmFtczogRXhwbGFpblRyYW5zYWN0aW9uV2FzbU9wdGlvbnMpOiBTb2xMaWJUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgY29uc3QgdHhCeXRlcyA9IEJ1ZmZlci5mcm9tKHBhcmFtcy50eEJhc2U2NCwgJ2Jhc2U2NCcpO1xuICBjb25zdCB0eCA9IFRyYW5zYWN0aW9uLmZyb21CeXRlcyh0eEJ5dGVzKTtcbiAgY29uc3QgcGFyc2VkOiBQYXJzZWRUcmFuc2FjdGlvbiA9IHBhcnNlVHJhbnNhY3Rpb24odHgpO1xuXG4gIC8vIC0tLSBUcmFuc2FjdGlvbiBJRCAtLS1cbiAgY29uc3QgaWQgPSBleHRyYWN0VHJhbnNhY3Rpb25JZChwYXJzZWQuc2lnbmF0dXJlcyk7XG5cbiAgLy8gLS0tIEZlZSBjYWxjdWxhdGlvbiAtLS1cbiAgY29uc3QgbGFtcG9ydHNQZXJTaWduYXR1cmUgPSBwYXJhbXMuZmVlSW5mbyA/IEJpZ0ludChwYXJhbXMuZmVlSW5mby5mZWUpIDogMG47XG4gIGxldCBmZWUgPSBCaWdJbnQocGFyc2VkLm51bVNpZ25hdHVyZXMpICogbGFtcG9ydHNQZXJTaWduYXR1cmU7XG5cbiAgLy8gRWFjaCBDcmVhdGVBc3NvY2lhdGVkVG9rZW5BY2NvdW50IGNyZWF0ZXMgYSBuZXcgdG9rZW4gYWNjb3VudCByZXF1aXJpbmcgYSByZW50IGRlcG9zaXQuXG4gIGNvbnN0IGF0YUNvdW50ID0gcGFyc2VkLmluc3RydWN0aW9uc0RhdGEuZmlsdGVyKChpKSA9PiBpLnR5cGUgPT09ICdDcmVhdGVBc3NvY2lhdGVkVG9rZW5BY2NvdW50JykubGVuZ3RoO1xuICBpZiAoYXRhQ291bnQgPiAwICYmIHBhcmFtcy50b2tlbkFjY291bnRSZW50RXhlbXB0QW1vdW50KSB7XG4gICAgZmVlICs9IEJpZ0ludChhdGFDb3VudCkgKiBCaWdJbnQocGFyYW1zLnRva2VuQWNjb3VudFJlbnRFeGVtcHRBbW91bnQpO1xuICB9XG5cbiAgLy8gLS0tIEV4dHJhY3QgbWVtbyAobmVlZGVkIGJlZm9yZSB0eXBlIGRlcml2YXRpb24pIC0tLVxuICBsZXQgbWVtbzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBmb3IgKGNvbnN0IGluc3RyIG9mIHBhcnNlZC5pbnN0cnVjdGlvbnNEYXRhKSB7XG4gICAgaWYgKGluc3RyLnR5cGUgPT09ICdNZW1vJykge1xuICAgICAgbWVtbyA9IGluc3RyLm1lbW87XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tIERldGVjdCBjb21iaW5lZCBwYXR0ZXJucyBhbmQgZGVyaXZlIHR5cGUgLS0tXG4gIGNvbnN0IGNvbWJpbmVkID0gZGV0ZWN0Q29tYmluZWRQYXR0ZXJuKHBhcnNlZC5pbnN0cnVjdGlvbnNEYXRhKTtcbiAgY29uc3QgdHhUeXBlID0gZGVyaXZlVHJhbnNhY3Rpb25UeXBlKHBhcnNlZC5pbnN0cnVjdGlvbnNEYXRhLCBjb21iaW5lZCwgbWVtbyk7XG5cbiAgLy8gTWFyaW5hZGUgZGVhY3RpdmF0ZTogVHJhbnNmZXIgKyBQcmVwYXJlRm9yUmV2b2tlIG1lbW8uXG4gIC8vIFRoZSBUcmFuc2ZlciBpcyBhIGNvbnRyYWN0IGludGVyYWN0aW9uLCBub3QgcmVhbCB2YWx1ZSB0cmFuc2ZlciDigJQgc2tpcCBmcm9tIG91dHB1dHMuXG4gIGNvbnN0IGlzTWFyaW5hZGVEZWFjdGl2YXRlID1cbiAgICB0eFR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nRGVhY3RpdmF0ZSAmJiBtZW1vICE9PSB1bmRlZmluZWQgJiYgbWVtby5pbmNsdWRlcygnUHJlcGFyZUZvclJldm9rZScpO1xuXG4gIC8vIC0tLSBFeHRyYWN0IG91dHB1dHMgYW5kIGlucHV0cyAtLS1cbiAgY29uc3Qgb3V0cHV0czogeyBhZGRyZXNzOiBzdHJpbmc7IGFtb3VudDogYmlnaW50OyB0b2tlbk5hbWU/OiBzdHJpbmcgfVtdID0gW107XG4gIGNvbnN0IGlucHV0czogeyBhZGRyZXNzOiBzdHJpbmc7IHZhbHVlOiBiaWdpbnQgfVtdID0gW107XG5cbiAgaWYgKGNvbWJpbmVkPy5raW5kID09PSAnU3Rha2luZ0FjdGl2YXRlJykge1xuICAgIG91dHB1dHMucHVzaCh7IGFkZHJlc3M6IGNvbWJpbmVkLnN0YWtpbmdBZGRyZXNzLCBhbW91bnQ6IGNvbWJpbmVkLmFtb3VudCB9KTtcbiAgICBpbnB1dHMucHVzaCh7IGFkZHJlc3M6IGNvbWJpbmVkLmZyb21BZGRyZXNzLCB2YWx1ZTogY29tYmluZWQuYW1vdW50IH0pO1xuICB9IGVsc2UgaWYgKGNvbWJpbmVkPy5raW5kID09PSAnV2FsbGV0SW5pdGlhbGl6YXRpb24nKSB7XG4gICAgb3V0cHV0cy5wdXNoKHsgYWRkcmVzczogY29tYmluZWQubm9uY2VBZGRyZXNzLCBhbW91bnQ6IGNvbWJpbmVkLmFtb3VudCB9KTtcbiAgICBpbnB1dHMucHVzaCh7IGFkZHJlc3M6IGNvbWJpbmVkLmZyb21BZGRyZXNzLCB2YWx1ZTogY29tYmluZWQuYW1vdW50IH0pO1xuICB9IGVsc2Uge1xuICAgIGZvciAoY29uc3QgaW5zdHIgb2YgcGFyc2VkLmluc3RydWN0aW9uc0RhdGEpIHtcbiAgICAgIHN3aXRjaCAoaW5zdHIudHlwZSkge1xuICAgICAgICBjYXNlICdUcmFuc2Zlcic6XG4gICAgICAgICAgaWYgKGlzTWFyaW5hZGVEZWFjdGl2YXRlKSBicmVhaztcbiAgICAgICAgICBvdXRwdXRzLnB1c2goeyBhZGRyZXNzOiBpbnN0ci50b0FkZHJlc3MsIGFtb3VudDogaW5zdHIuYW1vdW50IH0pO1xuICAgICAgICAgIGlucHV0cy5wdXNoKHsgYWRkcmVzczogaW5zdHIuZnJvbUFkZHJlc3MsIHZhbHVlOiBpbnN0ci5hbW91bnQgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ1Rva2VuVHJhbnNmZXInOlxuICAgICAgICAgIG91dHB1dHMucHVzaCh7IGFkZHJlc3M6IGluc3RyLnRvQWRkcmVzcywgYW1vdW50OiBpbnN0ci5hbW91bnQsIHRva2VuTmFtZTogaW5zdHIudG9rZW5BZGRyZXNzIH0pO1xuICAgICAgICAgIGlucHV0cy5wdXNoKHsgYWRkcmVzczogaW5zdHIuZnJvbUFkZHJlc3MsIHZhbHVlOiBpbnN0ci5hbW91bnQgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ1N0YWtpbmdBY3RpdmF0ZSc6XG4gICAgICAgICAgb3V0cHV0cy5wdXNoKHsgYWRkcmVzczogaW5zdHIuc3Rha2luZ0FkZHJlc3MsIGFtb3VudDogaW5zdHIuYW1vdW50IH0pO1xuICAgICAgICAgIGlucHV0cy5wdXNoKHsgYWRkcmVzczogaW5zdHIuZnJvbUFkZHJlc3MsIHZhbHVlOiBpbnN0ci5hbW91bnQgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ1N0YWtpbmdXaXRoZHJhdyc6XG4gICAgICAgICAgLy8gV2l0aGRyYXc6IFNPTCBmbG93cyBGUk9NIHN0YWtpbmcgYWRkcmVzcyBUTyB0aGUgcmVjaXBpZW50IChmcm9tQWRkcmVzcylcbiAgICAgICAgICBvdXRwdXRzLnB1c2goeyBhZGRyZXNzOiBpbnN0ci5mcm9tQWRkcmVzcywgYW1vdW50OiBpbnN0ci5hbW91bnQgfSk7XG4gICAgICAgICAgaW5wdXRzLnB1c2goeyBhZGRyZXNzOiBpbnN0ci5zdGFraW5nQWRkcmVzcywgdmFsdWU6IGluc3RyLmFtb3VudCB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnU3Rha2VQb29sRGVwb3NpdFNvbCc6XG4gICAgICAgICAgLy8gSml0byBsaXF1aWQgc3Rha2luZyBkZXBvc2l0XG4gICAgICAgICAgb3V0cHV0cy5wdXNoKHsgYWRkcmVzczogaW5zdHIuc3Rha2VQb29sLCBhbW91bnQ6IGluc3RyLmxhbXBvcnRzIH0pO1xuICAgICAgICAgIGlucHV0cy5wdXNoKHsgYWRkcmVzczogaW5zdHIuZnVuZGluZ0FjY291bnQsIHZhbHVlOiBpbnN0ci5sYW1wb3J0cyB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyAtLS0gT3V0cHV0IGFtb3VudCAobmF0aXZlIFNPTCBvbmx5LCBub3QgdG9rZW4gYW1vdW50cykgLS0tXG4gIGNvbnN0IG91dHB1dEFtb3VudCA9IG91dHB1dHMuZmlsdGVyKChvKSA9PiAhby50b2tlbk5hbWUpLnJlZHVjZSgoc3VtLCBvKSA9PiBzdW0gKyBvLmFtb3VudCwgMG4pO1xuXG4gIC8vIC0tLSBBVEEgb3duZXIgbWFwcGluZyBhbmQgdG9rZW4gZW5hYmxlbWVudHMgLS0tXG4gIGNvbnN0IGF0YU93bmVyTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGNvbnN0IHRva2VuRW5hYmxlbWVudHM6IElUb2tlbkVuYWJsZW1lbnRbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGluc3RyIG9mIHBhcnNlZC5pbnN0cnVjdGlvbnNEYXRhKSB7XG4gICAgaWYgKGluc3RyLnR5cGUgPT09ICdDcmVhdGVBc3NvY2lhdGVkVG9rZW5BY2NvdW50Jykge1xuICAgICAgYXRhT3duZXJNYXBbaW5zdHIuYXRhQWRkcmVzc10gPSBpbnN0ci5vd25lckFkZHJlc3M7XG4gICAgICB0b2tlbkVuYWJsZW1lbnRzLnB1c2goe1xuICAgICAgICBhZGRyZXNzOiBpbnN0ci5hdGFBZGRyZXNzLFxuICAgICAgICB0b2tlbk5hbWU6IGZpbmRUb2tlbk5hbWUoaW5zdHIubWludEFkZHJlc3MsIHVuZGVmaW5lZCwgdHJ1ZSksXG4gICAgICAgIHRva2VuQWRkcmVzczogaW5zdHIubWludEFkZHJlc3MsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvLyAtLS0gU3Rha2luZyBhdXRob3JpemUgLS0tXG4gIGxldCBzdGFraW5nQXV0aG9yaXplOiBTdGFraW5nQXV0aG9yaXplUGFyYW1zIHwgdW5kZWZpbmVkO1xuICBmb3IgKGNvbnN0IGluc3RyIG9mIHBhcnNlZC5pbnN0cnVjdGlvbnNEYXRhKSB7XG4gICAgaWYgKGluc3RyLnR5cGUgPT09ICdTdGFraW5nQXV0aG9yaXplJykge1xuICAgICAgc3Rha2luZ0F1dGhvcml6ZSA9IG1hcFN0YWtpbmdBdXRob3JpemUoaW5zdHIpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tIFJlc29sdmUgdG9rZW4gbmFtZXMgYW5kIGNvbnZlcnQgYmlnaW50IHRvIHN0cmluZyBhdCBzZXJpYWxpemF0aW9uIGJvdW5kYXJ5IC0tLVxuICBjb25zdCByZXNvbHZlZE91dHB1dHMgPSBvdXRwdXRzLm1hcCgobykgPT4gKHtcbiAgICBhZGRyZXNzOiBvLmFkZHJlc3MsXG4gICAgYW1vdW50OiBTdHJpbmcoby5hbW91bnQpLFxuICAgIC4uLihvLnRva2VuTmFtZSA/IHsgdG9rZW5OYW1lOiBmaW5kVG9rZW5OYW1lKG8udG9rZW5OYW1lLCB1bmRlZmluZWQsIHRydWUpIH0gOiB7fSksXG4gIH0pKTtcblxuICBjb25zdCByZXNvbHZlZElucHV0cyA9IGlucHV0cy5tYXAoKGkpID0+ICh7XG4gICAgYWRkcmVzczogaS5hZGRyZXNzLFxuICAgIHZhbHVlOiBTdHJpbmcoaS52YWx1ZSksXG4gIH0pKTtcblxuICByZXR1cm4ge1xuICAgIGRpc3BsYXlPcmRlcjogW1xuICAgICAgJ2lkJyxcbiAgICAgICd0eXBlJyxcbiAgICAgICdibG9ja2hhc2gnLFxuICAgICAgJ2R1cmFibGVOb25jZScsXG4gICAgICAnb3V0cHV0QW1vdW50JyxcbiAgICAgICdjaGFuZ2VBbW91bnQnLFxuICAgICAgJ291dHB1dHMnLFxuICAgICAgJ2NoYW5nZU91dHB1dHMnLFxuICAgICAgJ3Rva2VuRW5hYmxlbWVudHMnLFxuICAgICAgJ2ZlZScsXG4gICAgICAnbWVtbycsXG4gICAgXSxcbiAgICBpZDogaWQgPz8gVU5BVkFJTEFCTEVfVEVYVCxcbiAgICAvLyBXQVNNIHJldHVybnMgXCJTdGFraW5nQXV0aG9yaXplXCIgYnV0IEJpdEdvSlMgdXNlcyBcIlN0YWtpbmdBdXRob3JpemVSYXdcIlxuICAgIC8vIHdoZW4gZGVzZXJpYWxpemluZyBmcm9tIGJ5dGVzICh0aGUgbm9uLXJhdyB0eXBlIG9ubHkgZXhpc3RzIGR1cmluZyBidWlsZGluZykuXG4gICAgdHlwZTogdHhUeXBlID09PSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0F1dGhvcml6ZSA/ICdTdGFraW5nQXV0aG9yaXplUmF3JyA6IHR4VHlwZSxcbiAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICBvdXRwdXRBbW91bnQ6IFN0cmluZyhvdXRwdXRBbW91bnQpLFxuICAgIG91dHB1dHM6IHJlc29sdmVkT3V0cHV0cyxcbiAgICBpbnB1dHM6IHJlc29sdmVkSW5wdXRzLFxuICAgIGZlZVBheWVyOiBwYXJzZWQuZmVlUGF5ZXIsXG4gICAgZmVlOiB7XG4gICAgICBmZWU6IHBhcmFtcy5mZWVJbmZvID8gU3RyaW5nKGZlZSkgOiAnMCcsXG4gICAgICBmZWVSYXRlOiBwYXJhbXMuZmVlSW5mbyA/IE51bWJlcihwYXJhbXMuZmVlSW5mby5mZWUpIDogdW5kZWZpbmVkLFxuICAgIH0sXG4gICAgbWVtbyxcbiAgICBibG9ja2hhc2g6IHBhcnNlZC5ub25jZSxcbiAgICBkdXJhYmxlTm9uY2U6IHBhcnNlZC5kdXJhYmxlTm9uY2UsXG4gICAgdG9rZW5FbmFibGVtZW50cyxcbiAgICBhdGFPd25lck1hcCxcbiAgICAuLi4oc3Rha2luZ0F1dGhvcml6ZSA/IHsgc3Rha2luZ0F1dGhvcml6ZSB9IDoge30pLFxuICB9O1xufVxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tests for explainTransactionWasm (WASM-based Solana transaction explanation).
3
+ */
4
+ import 'should';
5
+ //# sourceMappingURL=explainTransactionWasm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explainTransactionWasm.d.ts","sourceRoot":"","sources":["../../../../test/unit/explainTransactionWasm.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,QAAQ,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Tests for explainTransactionWasm (WASM-based Solana transaction explanation).
5
+ */
6
+ require("should");
7
+ const explainTransactionWasm_1 = require("../../src/lib/explainTransactionWasm");
8
+ describe('explainTransactionWasm', function () {
9
+ describe('deriveTransactionType', function () {
10
+ it('should classify boilerplate-only transaction as CustomTx', function () {
11
+ // Transaction with only NonceAdvance + Memo instructions (no Transfer or TokenTransfer).
12
+ // Previously this would incorrectly fall through to 'Send'.
13
+ const BOILERPLATE_ONLY_TX_BASE64 = 'AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADE3aDK9nmEccOmQJ4crZzPuTnRVa3woFSjKzE2hcsFbNkpvA8Lnj7CVeJ+/UfXwLI5g223D02m4+REUfPc50QCAgEEB8OpoX+Ybq/j8xi80DhFtj8AUVHPrjhK1E3DnT5Bmx346iUtYQKMMBolIAO6PmfJh3w7huFcYcGNOB8sgXN38Wg6ZrWANNJfb64q8B242qfRiT7dffb80H2OoXGQ0aq0lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0Gp9UXGMd0yShWY5hpHV62i164o5tLbVxzVVshAAAAAAan1RcZLFaO4IqEX3PSl4jPA1wxRbIas0TYBi6pQAAAEHPqtGYOjjqVfHgg1S32M4qMe2AQO/kDy1+CEYQwkisDAwMCBgEEBAAAAAQCAAUJSGVsbG8gQVBJBAAnQVBJIEludGVncmF0aW9uIHRlc3QgY3VzdG9tIHRyYW5zYWN0aW9u';
14
+ const explained = (0, explainTransactionWasm_1.explainSolTransaction)({
15
+ txBase64: BOILERPLATE_ONLY_TX_BASE64,
16
+ feeInfo: { fee: '5000' },
17
+ coinName: 'tsol',
18
+ });
19
+ explained.type.should.equal('CustomTx');
20
+ explained.outputAmount.should.equal('0');
21
+ explained.outputs.length.should.equal(0);
22
+ (typeof explained.memo).should.equal('string');
23
+ });
24
+ });
25
+ });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblRyYW5zYWN0aW9uV2FzbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9leHBsYWluVHJhbnNhY3Rpb25XYXNtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7O0dBRUc7QUFDSCxrQkFBZ0I7QUFDaEIsaUZBQTZFO0FBRTdFLFFBQVEsQ0FBQyx3QkFBd0IsRUFBRTtJQUNqQyxRQUFRLENBQUMsdUJBQXVCLEVBQUU7UUFDaEMsRUFBRSxDQUFDLDBEQUEwRCxFQUFFO1lBQzdELHlGQUF5RjtZQUN6Riw0REFBNEQ7WUFDNUQsTUFBTSwwQkFBMEIsR0FDOUIsa21CQUFrbUIsQ0FBQztZQUVybUIsTUFBTSxTQUFTLEdBQUcsSUFBQSw4Q0FBcUIsRUFBQztnQkFDdEMsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRTtnQkFDeEIsUUFBUSxFQUFFLE1BQU07YUFDakIsQ0FBQyxDQUFDO1lBRUgsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3hDLFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLENBQUMsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRlc3RzIGZvciBleHBsYWluVHJhbnNhY3Rpb25XYXNtIChXQVNNLWJhc2VkIFNvbGFuYSB0cmFuc2FjdGlvbiBleHBsYW5hdGlvbikuXG4gKi9cbmltcG9ydCAnc2hvdWxkJztcbmltcG9ydCB7IGV4cGxhaW5Tb2xUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3NyYy9saWIvZXhwbGFpblRyYW5zYWN0aW9uV2FzbSc7XG5cbmRlc2NyaWJlKCdleHBsYWluVHJhbnNhY3Rpb25XYXNtJywgZnVuY3Rpb24gKCkge1xuICBkZXNjcmliZSgnZGVyaXZlVHJhbnNhY3Rpb25UeXBlJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgY2xhc3NpZnkgYm9pbGVycGxhdGUtb25seSB0cmFuc2FjdGlvbiBhcyBDdXN0b21UeCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIFRyYW5zYWN0aW9uIHdpdGggb25seSBOb25jZUFkdmFuY2UgKyBNZW1vIGluc3RydWN0aW9ucyAobm8gVHJhbnNmZXIgb3IgVG9rZW5UcmFuc2ZlcikuXG4gICAgICAvLyBQcmV2aW91c2x5IHRoaXMgd291bGQgaW5jb3JyZWN0bHkgZmFsbCB0aHJvdWdoIHRvICdTZW5kJy5cbiAgICAgIGNvbnN0IEJPSUxFUlBMQVRFX09OTFlfVFhfQkFTRTY0ID1cbiAgICAgICAgJ0FnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBREUzYURLOW5tRWNjT21RSjRjclp6UHVUblJWYTN3b0ZTakt6RTJoY3NGYk5rcHZBOExuajdDVmVKKy9VZlh3TEk1ZzIyM0QwMm00K1JFVWZQYzUwUUNBZ0VFQjhPcG9YK1licS9qOHhpODBEaEZ0ajhBVVZIUHJqaEsxRTNEblQ1Qm14MzQ2aVV0WVFLTU1Cb2xJQU82UG1mSmgzdzdodUZjWWNHTk9COHNnWE4zOFdnNlpyV0FOTkpmYjY0cThCMjQycWZSaVQ3ZGZmYjgwSDJPb1hHUTBhcTBsQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJVcFRXcGtwSVFaTkpPaHhZTm80Zkh3MXRkMjhrcnVCNUIrb1FFRUZSSTBHcDlVWEdNZDB5U2hXWTVocEhWNjJpMTY0bzV0TGJWeHpWVnNoQUFBQUFBYW4xUmNaTEZhTzRJcUVYM1BTbDRqUEExd3hSYklhczBUWUJpNnBRQUFBRUhQcXRHWU9qanFWZkhnZzFTMzJNNHFNZTJBUU8va0R5MStDRVlRd2tpc0RBd01DQmdFRUJBQUFBQVFDQUFVSlNHVnNiRzhnUVZCSkJBQW5RVkJKSUVsdWRHVm5jbUYwYVc5dUlIUmxjM1FnWTNWemRHOXRJSFJ5WVc1ellXTjBhVzl1JztcblxuICAgICAgY29uc3QgZXhwbGFpbmVkID0gZXhwbGFpblNvbFRyYW5zYWN0aW9uKHtcbiAgICAgICAgdHhCYXNlNjQ6IEJPSUxFUlBMQVRFX09OTFlfVFhfQkFTRTY0LFxuICAgICAgICBmZWVJbmZvOiB7IGZlZTogJzUwMDAnIH0sXG4gICAgICAgIGNvaW5OYW1lOiAndHNvbCcsXG4gICAgICB9KTtcblxuICAgICAgZXhwbGFpbmVkLnR5cGUuc2hvdWxkLmVxdWFsKCdDdXN0b21UeCcpO1xuICAgICAgZXhwbGFpbmVkLm91dHB1dEFtb3VudC5zaG91bGQuZXF1YWwoJzAnKTtcbiAgICAgIGV4cGxhaW5lZC5vdXRwdXRzLmxlbmd0aC5zaG91bGQuZXF1YWwoMCk7XG4gICAgICAodHlwZW9mIGV4cGxhaW5lZC5tZW1vKS5zaG91bGQuZXF1YWwoJ3N0cmluZycpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19