@frankieone/one-sdk 1.7.14-rc.3 → 1.7.14-rc.5

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 (46) hide show
  1. package/dist/cli/darwin-amd64/onesdk-cli +0 -0
  2. package/dist/cli/darwin-arm64/onesdk-cli +0 -0
  3. package/dist/cli/linux-amd64/onesdk-cli +0 -0
  4. package/dist/cli/linux-arm64/onesdk-cli +0 -0
  5. package/dist/cli/templateGenerator.js +20 -2
  6. package/dist/cli/windows-amd64/onesdk-cli.exe +0 -0
  7. package/dist/commit.txt +1 -1
  8. package/dist/esm/modules/cli/index.d.ts +7 -1
  9. package/dist/esm/modules/cli/index.d.ts.map +1 -1
  10. package/dist/esm/modules/cli/index.js +3 -3
  11. package/dist/esm/modules/cli/index.js.map +1 -1
  12. package/dist/esm/modules/cli/template/index.d.ts +6 -9
  13. package/dist/esm/modules/cli/template/index.d.ts.map +1 -1
  14. package/dist/esm/modules/cli/template/index.js +63 -5
  15. package/dist/esm/modules/cli/template/index.js.map +1 -1
  16. package/dist/esm/modules/cli/template/templateIdv.d.ts +1 -1
  17. package/dist/esm/modules/cli/template/templateIdv.d.ts.map +1 -1
  18. package/dist/esm/modules/cli/template/templateIdv.js +73 -90
  19. package/dist/esm/modules/cli/template/templateIdv.js.map +1 -1
  20. package/dist/esm/modules/cli/template/templateIdvReview.d.ts +1 -1
  21. package/dist/esm/modules/cli/template/templateIdvReview.d.ts.map +1 -1
  22. package/dist/esm/modules/cli/template/templateIdvReview.js +121 -134
  23. package/dist/esm/modules/cli/template/templateIdvReview.js.map +1 -1
  24. package/dist/esm/modules/cli/template/templateManualKyc.d.ts +1 -1
  25. package/dist/esm/modules/cli/template/templateManualKyc.d.ts.map +1 -1
  26. package/dist/esm/modules/cli/template/templateManualKyc.js +213 -212
  27. package/dist/esm/modules/cli/template/templateManualKyc.js.map +1 -1
  28. package/dist/esm/modules/form/vendors/react/appConfig.type.d.ts +1 -0
  29. package/dist/esm/modules/form/vendors/react/appConfig.type.d.ts.map +1 -1
  30. package/dist/esm/modules/form/vendors/react/appConfig.type.js +1 -0
  31. package/dist/esm/modules/form/vendors/react/appConfig.type.js.map +1 -1
  32. package/dist/esm/modules/form/vendors/react/components/view/FrankieCardList/FrankieCardList.d.ts.map +1 -1
  33. package/dist/esm/modules/form/vendors/react/components/view/FrankieCardList/FrankieCardList.js +2 -4
  34. package/dist/esm/modules/form/vendors/react/components/view/FrankieCardList/FrankieCardList.js.map +1 -1
  35. package/dist/esm/modules/form/vendors/react/components/view/FrankieCheckbox/FrankieCheckbox.d.ts.map +1 -1
  36. package/dist/esm/modules/form/vendors/react/components/view/FrankieCheckbox/FrankieCheckbox.js +2 -2
  37. package/dist/esm/modules/form/vendors/react/components/view/FrankieCheckbox/FrankieCheckbox.js.map +1 -1
  38. package/dist/esm/modules/form/vendors/react/components/view/FrankieDescription/FrankieDescription.d.ts.map +1 -1
  39. package/dist/esm/modules/form/vendors/react/components/view/FrankieDescription/FrankieDescription.js +2 -4
  40. package/dist/esm/modules/form/vendors/react/components/view/FrankieDescription/FrankieDescription.js.map +1 -1
  41. package/dist/esm/modules/form/vendors/react/components/view/FrankieInstructionList/FrankieInstructionList.d.ts.map +1 -1
  42. package/dist/esm/modules/form/vendors/react/components/view/FrankieInstructionList/FrankieInstructionList.js +2 -4
  43. package/dist/esm/modules/form/vendors/react/components/view/FrankieInstructionList/FrankieInstructionList.js.map +1 -1
  44. package/dist/esm/modules/form/vendors/react/features/PersonalDetails/personalDetails.config.d.ts.map +1 -1
  45. package/dist/esm/modules/meta.json +1 -1
  46. package/package.json +2 -3
Binary file
Binary file
Binary file
Binary file
@@ -2,6 +2,15 @@
2
2
 
3
3
  /* eslint-disable no-undef */
4
4
  /* eslint-disable no-console */
5
+ function parseArgs(args) {
6
+ return {
7
+ flowId: args[2],
8
+ env: args[3],
9
+ cid: args[4],
10
+ ccid: args[5],
11
+ apiKey: args[6],
12
+ };
13
+ }
5
14
 
6
15
  (async () => {
7
16
  try {
@@ -17,8 +26,17 @@
17
26
  throw new Error('generateOneSdkFlow is not a function');
18
27
  }
19
28
 
20
- const flowId = process.argv[2];
21
- process.stdout.write(generateOneSdkFlow(flowId));
29
+ const { flowId, env, cid, ccid, apiKey } = parseArgs(process.argv);
30
+
31
+ process.stdout.write(
32
+ generateOneSdkFlow({
33
+ flowId,
34
+ env,
35
+ cid,
36
+ ccid,
37
+ apiKey,
38
+ }),
39
+ );
22
40
  } catch (error) {
23
41
  console.error('Error loading module:', error);
24
42
  }
package/dist/commit.txt CHANGED
@@ -1 +1 @@
1
- ef2b97b9e8b4480c0f4133b451d81c7ffad22a65
1
+ af47490785c4ddefdbe83b73959a8bcb7124b97e
@@ -1,2 +1,8 @@
1
- export default function generateOneSdkFlow(flowId: any): any;
1
+ export default function generateOneSdkFlow({ flowId, env, cid, ccid, apiKey }: {
2
+ flowId: any;
3
+ env: any;
4
+ cid: any;
5
+ ccid: any;
6
+ apiKey: any;
7
+ }): string;
2
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../modules/cli/index.js"],"names":[],"mappings":"AAGA,6DAEC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../modules/cli/index.js"],"names":[],"mappings":"AAGA;;;;;;WAEC"}
@@ -1,6 +1,6 @@
1
- import templateObjectMap from './template/index.js';
1
+ import createHTML from './template/index.js';
2
2
  // @param {string} flowId - the id of the flow to generate, idv / idv_review / manual_kyc
3
- export default function generateOneSdkFlow(flowId) {
4
- return templateObjectMap[flowId];
3
+ export default function generateOneSdkFlow({ flowId, env, cid, ccid, apiKey }) {
4
+ return createHTML(flowId)({ env, cid, ccid, apiKey });
5
5
  }
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../modules/cli/index.js"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,yFAAyF;AACzF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,MAAM;IAC/C,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../modules/cli/index.js"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C,yFAAyF;AACzF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;IAC3E,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACxD,CAAC"}
@@ -1,10 +1,7 @@
1
- export default templateObjectMap;
2
- declare namespace templateObjectMap {
3
- export { templateIdv as idv };
4
- export { templateIdvReview as idv_review };
5
- export { templateManualKyc as manual_kyc };
6
- }
7
- import { templateIdv } from './templateIdv.js';
8
- import { templateIdvReview } from './templateIdvReview.js';
9
- import { templateManualKyc } from './templateManualKyc.js';
1
+ export default function createHTML(flowId: any): ({ env, cid, ccid, apiKey }: {
2
+ env: any;
3
+ cid: any;
4
+ ccid: any;
5
+ apiKey: any;
6
+ }) => string;
10
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../modules/cli/template/index.js"],"names":[],"mappings":";;;;;;4BAA4B,kBAAkB;kCACZ,wBAAwB;kCACxB,wBAAwB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../modules/cli/template/index.js"],"names":[],"mappings":"AAuDA;;;;;aAkBC"}
@@ -1,10 +1,68 @@
1
1
  import { templateIdv } from './templateIdv.js';
2
2
  import { templateIdvReview } from './templateIdvReview.js';
3
3
  import { templateManualKyc } from './templateManualKyc.js';
4
- const templateObjectMap = {
5
- idv: templateIdv,
6
- idv_review: templateIdvReview,
7
- manual_kyc: templateManualKyc,
4
+ const backendURL = {
5
+ dev: "https://backend.latest.frankiefinancial.io",
6
+ qa: "https://backend.qa.frankiefinancial.io",
7
+ uat: "https://backend.kycaml.uat.frankiefinancial.io",
8
+ prod: "https://backend.kycaml.frankiefinancial.io",
8
9
  };
9
- export default templateObjectMap;
10
+ const js = String.raw;
11
+ const createRequestTokenFunction = ({ env, cid, ccid, apiKey }) => js `
12
+ // Function to get an authentication token from the FrankieOne API
13
+ // This token is required to initialize OneSDK
14
+ async function getToken() {
15
+ // WARNING: This is for testing purposes only
16
+ // In production, token generation should happen server-side for security
17
+
18
+ // Replace these placeholder values with your actual credentials
19
+ const customerId = '${cid}';
20
+ // Optional: leave empty if not applicable (for multi-tenant setups)
21
+ const customerChildId = '${ccid}';
22
+ const apiKey = '${apiKey}';
23
+
24
+ // Create authentication key by base64 encoding the credentials
25
+ const authKey = btoa(
26
+ [customerId, customerChildId, apiKey].filter(Boolean).join(':'),
27
+ );
28
+
29
+ // Replace this with your own logic to generate a unique customer reference
30
+ const customerReference = Math.random().toString(36).substring(2);
31
+
32
+ // Request a machine session token from FrankieOne
33
+ const tokenResponse = await fetch(
34
+ '${backendURL[env]}/auth/v2/machine-session',
35
+ {
36
+ method: 'POST',
37
+ headers: {
38
+ authorization: 'machine ' + authKey,
39
+ 'Content-Type': 'application/json',
40
+ },
41
+ body: JSON.stringify({
42
+ permissions: {
43
+ preset: 'one-sdk',
44
+ reference: customerReference,
45
+ },
46
+ }),
47
+ },
48
+ );
49
+
50
+ return await tokenResponse.json();
51
+ }`;
52
+ export default function createHTML(flowId) {
53
+ return function ({ env, cid, ccid, apiKey }) {
54
+ const getTokenImpl = createRequestTokenFunction({ env, cid, ccid, apiKey });
55
+ switch (flowId) {
56
+ case 'idv':
57
+ return templateIdv(getTokenImpl);
58
+ case 'idv_review':
59
+ return templateIdvReview(getTokenImpl);
60
+ case 'manual_kyc':
61
+ return templateManualKyc(getTokenImpl);
62
+ default:
63
+ return 'Unknown flow ID';
64
+ }
65
+ };
66
+ }
67
+ ;
10
68
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../modules/cli/template/index.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,iBAAiB,GAAG;IACxB,GAAG,EAAE,WAAW;IAChB,UAAU,EAAE,iBAAiB;IAC7B,UAAU,EAAE,iBAAiB;CAC9B,CAAC;AACF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../modules/cli/template/index.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,UAAU,GAAG;IACjB,GAAG,EAAE,4CAA4C;IACjD,EAAE,EAAE,wCAAwC;IAC5C,GAAG,EAAE,gDAAgD;IACrD,IAAI,EAAE,4CAA4C;CACnD,CAAC;AAEF,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC;AAEtB,MAAM,0BAA0B,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;;;;;;;;4BAQzC,GAAG;;iCAEE,IAAI;wBACb,MAAM;;;;;;;;;;;;WAYnB,UAAU,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;MAiBpB,CAAC;AAEP,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,MAAM;IACvC,OAAO,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;QACzC,MAAM,YAAY,GAAG,0BAA0B,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAE5E,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,KAAK;gBACR,OAAO,WAAW,CAAC,YAAY,CAAC,CAAC;YAEnC,KAAK,YAAY;gBACf,OAAO,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAEzC,KAAK,YAAY;gBACf,OAAO,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAEzC;gBACE,OAAO,iBAAiB,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAAA,CAAC"}
@@ -1,2 +1,2 @@
1
- export const templateIdv: string;
1
+ export function templateIdv(getTokenImpl: any): string;
2
2
  //# sourceMappingURL=templateIdv.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"templateIdv.d.ts","sourceRoot":"","sources":["../../../../../modules/cli/template/templateIdv.js"],"names":[],"mappings":"AAEA,iCAuGW"}
1
+ {"version":3,"file":"templateIdv.d.ts","sourceRoot":"","sources":["../../../../../modules/cli/template/templateIdv.js"],"names":[],"mappings":"AAEO,uDAsFC"}
@@ -1,106 +1,89 @@
1
1
  const html = String.raw;
2
- export const templateIdv = html `<!-- Generated by OneSDK CLI -->
3
- <!-- More information: https://docs.frankieone.com/v1.14.1/docs/about-onesdk -->
2
+ export const templateIdv = (getTokenImpl) => html `<!-- Generated by OneSDK CLI -->
3
+ <!-- More information: https://docs.frankieone.com/v1.14.1/docs/about-onesdk -->
4
4
 
5
- <!doctype html>
6
- <html lang="en">
7
- <head>
8
- <!-- UTF-8 encoding you page is important as some text in the smart UI might not come out as you expect -->
9
- <meta charset="utf-8" />
10
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
11
- <title>OneSDK - IDV</title>
5
+ <!DOCTYPE html>
6
+ <html lang="en">
7
+ <head>
8
+ <!-- UTF-8 encoding ensures proper display of special characters in the UI -->
9
+ <meta charset="utf-8" />
10
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
11
+ <title>OneSDK - IDV</title>
12
12
 
13
- <!-- NOTE: You can change the version of OneSDK to the desired version here -->
14
- <script src="https://assets.frankiefinancial.io/one-sdk/v1/oneSdk.umd.js"></script>
13
+ <!-- Load the OneSDK library from FrankieOne CDN -->
14
+ <!-- You can change the version number in the URL to use a different version -->
15
+ <script src="https://assets.frankiefinancial.io/one-sdk/v1/oneSdk.umd.js"></script>
15
16
 
16
- <script>
17
- async function getToken() {
18
- // WARNING: This is for testing purposes only
19
- // use server-side code to request the token in production for security reasons
17
+ <script>
18
+ ${getTokenImpl}
20
19
 
21
- const customerId = '<CUSTOMER_ID_HERE>';
22
- const customerChildId = '<CUSTOMER_CHILD_ID_HERE>';
23
- const apiKey = '<API_KEY_HERE>';
24
- const authKey = btoa(
25
- customerId + ':' + customerChildId + ':' + apiKey,
26
- );
20
+ // Main function to initialize and start OneSDK
21
+ async function startOneSdk() {
22
+ const sessionToken = await getToken();
27
23
 
28
- const tokenResponse = await fetch(
29
- BACKEND_URL[env] + '/auth/v2/machine-session',
30
- {
31
- method: 'POST',
32
- headers: {
33
- authorization: 'machine ' + authKey,
34
- 'Content-Type': 'application/json',
35
- },
36
- body: JSON.stringify({
37
- permissions: {
38
- preset: 'one-sdk',
39
- reference: '<CUSTOMER_REFERENCE_HERE>',
40
- },
41
- }),
24
+ // Initialize OneSDK with configuration
25
+ const oneSdk = await OneSdk({
26
+ session: {
27
+ token: sessionToken,
28
+ },
29
+ mode: 'production',
30
+ recipe: {
31
+ form: {
32
+ provider: {
33
+ name: 'react',
34
+ // UNCOMMENT AND ADD YOUR KEY to use Google Places address autocomplete
35
+ // googleApiKey: "<GOOGLE_API_KEY>",
42
36
  },
43
- );
37
+ },
38
+ },
39
+ });
44
40
 
45
- return await tokenResponse.json();
46
- }
47
-
48
- async function startOneSdk() {
49
- const sessionToken = await getToken();
41
+ // Create an IDV (Identity Verification) flow instance
42
+ const idv = oneSdk.flow('idv');
50
43
 
51
- const oneSdk = await OneSdk({
52
- session: {
53
- token: sessionToken,
54
- },
55
- mode: 'production',
56
- recipe: {
57
- form: {
58
- provider: {
59
- name: 'react',
60
- // NOTE: This is for the autocomplete feature in the form
61
- // googleApiKey: "<GOOGLE_API_KEY>",
62
- },
63
- },
64
- },
65
- });
44
+ // Mount the IDV flow to the container element
45
+ idv.mount('#idv-el');
66
46
 
67
- const idv = oneSdk.flow('idv');
47
+ // Handle loading states during verification
48
+ idv.on('loading', () => {
49
+ console.log('loading');
50
+ });
68
51
 
69
- idv.mount('#idv-el');
70
- idv.on('loading', () => {
71
- console.log('loading');
72
- });
73
-
74
- idv.on('results', async ({ checkStatus, document, entityId }) => {
75
- if (checkStatus) {
76
- console.log('results succesful');
77
- } else {
78
- console.log('no data returned');
79
- }
80
- });
52
+ // Handle verification results
53
+ idv.on('results', async ({ checkStatus, document, entityId }) => {
54
+ if (checkStatus) {
55
+ console.log('results succesful');
56
+ } else {
57
+ console.log('no data returned');
58
+ }
59
+ });
81
60
 
82
- idv.on('error', ({ message, payload }) => {
83
- console.log('received error');
84
- console.log(message, payload);
85
- });
61
+ // Handle errors during verification
62
+ idv.on('error', ({ message, payload }) => {
63
+ console.log('received error');
64
+ console.log(message, payload);
65
+ });
86
66
 
87
- idv.on('detection_complete', (message) => {
88
- console.log('capture finished');
89
- console.log(message);
90
- });
67
+ // Handle completion of document detection/capture
68
+ idv.on('detection_complete', (message) => {
69
+ console.log('capture finished');
70
+ console.log(message);
71
+ });
91
72
 
92
- idv.on('*', (message) => {
93
- console.log(message);
94
- });
95
- }
96
- </script>
97
- </head>
73
+ // Log all OneSDK events to console for debugging
74
+ idv.on('*', (message) => {
75
+ console.log(message);
76
+ });
77
+ }
78
+ </script>
79
+ </head>
98
80
 
99
- <body style="background-color: white" onload="startOneSdk()">
100
- <div
101
- id="idv-el"
102
- style="top: 0; left: 0; width: 100%; height: 100%; display: block"
103
- ></div>
104
- </body>
105
- </html>`;
81
+ <body style="background-color: white" onload="startOneSdk()">
82
+ <!-- Container element where OneSDK will mount its UI components -->
83
+ <div
84
+ id="idv-el"
85
+ style="top: 0; left: 0; width: 100%; height: 100%; display: block"
86
+ ></div>
87
+ </body>
88
+ </html>`;
106
89
  //# sourceMappingURL=templateIdv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"templateIdv.js","sourceRoot":"","sources":["../../../../../modules/cli/template/templateIdv.js"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC;AAExB,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAuGrB,CAAC"}
1
+ {"version":3,"file":"templateIdv.js","sourceRoot":"","sources":["../../../../../modules/cli/template/templateIdv.js"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC;AAExB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,CAAA;;;;;;;;;;;;;;;;MAgB3C,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsEV,CAAC"}
@@ -1,2 +1,2 @@
1
- export const templateIdvReview: string;
1
+ export function templateIdvReview(getTokenImpl: any): string;
2
2
  //# sourceMappingURL=templateIdvReview.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"templateIdvReview.d.ts","sourceRoot":"","sources":["../../../../../modules/cli/template/templateIdvReview.js"],"names":[],"mappings":"AAEA,uCA0IW"}
1
+ {"version":3,"file":"templateIdvReview.d.ts","sourceRoot":"","sources":["../../../../../modules/cli/template/templateIdvReview.js"],"names":[],"mappings":"AAEO,6DA6HC"}