@onairos/react-native 3.7.2 → 3.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/lib/commonjs/api/index.js +219 -9
  2. package/lib/commonjs/components/BodyText.js +27 -9
  3. package/lib/commonjs/components/BrandMark.js +111 -10
  4. package/lib/commonjs/components/CodeInput.js +116 -9
  5. package/lib/commonjs/components/EmailInput.js +30 -8
  6. package/lib/commonjs/components/GoogleButton.js +56 -9
  7. package/lib/commonjs/components/HeadingGroup.js +43 -9
  8. package/lib/commonjs/components/LLMDataInputModal.js +664 -14
  9. package/lib/commonjs/components/ModalHeader.js +99 -9
  10. package/lib/commonjs/components/ModalSheet.js +47 -9
  11. package/lib/commonjs/components/Onairos.js +380 -14
  12. package/lib/commonjs/components/OnairosButton.js +313 -13
  13. package/lib/commonjs/components/OnairosSignInButton.js +130 -12
  14. package/lib/commonjs/components/Overlay.js +465 -13
  15. package/lib/commonjs/components/PersonaImage.js +137 -10
  16. package/lib/commonjs/components/PersonaLoadingScreen.js +318 -12
  17. package/lib/commonjs/components/PersonalizationConsentScreen.js +467 -13
  18. package/lib/commonjs/components/PinCreationScreen.js +403 -12
  19. package/lib/commonjs/components/PinInput.js +464 -9
  20. package/lib/commonjs/components/PlatformConnectorsStep.js +1311 -23
  21. package/lib/commonjs/components/PlatformList.js +137 -10
  22. package/lib/commonjs/components/PlatformToggle.js +180 -9
  23. package/lib/commonjs/components/PrimaryButton.js +180 -10
  24. package/lib/commonjs/components/SignInMatchAnimation.js +197 -9
  25. package/lib/commonjs/components/SignInStep.js +345 -12
  26. package/lib/commonjs/components/UniversalOnboarding.js +2780 -30
  27. package/lib/commonjs/components/VerificationStep.js +176 -11
  28. package/lib/commonjs/components/WelcomeScreen.js +461 -22
  29. package/lib/commonjs/components/icons/Basicproficon.js +37 -8
  30. package/lib/commonjs/components/icons/Basicprofile.js +21 -8
  31. package/lib/commonjs/components/icons/Checkbox.js +21 -8
  32. package/lib/commonjs/components/icons/Checkmark.js +27 -8
  33. package/lib/commonjs/components/icons/Contentanalysis.js +21 -8
  34. package/lib/commonjs/components/icons/Contenticon.js +39 -8
  35. package/lib/commonjs/components/icons/EnochE.js +41 -8
  36. package/lib/commonjs/components/icons/Personalityicon.js +30 -8
  37. package/lib/commonjs/components/icons/Personalityprofile.js +21 -8
  38. package/lib/commonjs/components/icons/Personalitytraits.js +21 -8
  39. package/lib/commonjs/components/icons/Userpreferences.js +21 -8
  40. package/lib/commonjs/components/icons/index.js +84 -17
  41. package/lib/commonjs/components/onboarding/OAuthWebView.js +1754 -18
  42. package/lib/commonjs/components/onboarding/OnboardingHeader.js +74 -10
  43. package/lib/commonjs/components/onboarding/PinInput.js +283 -10
  44. package/lib/commonjs/components/onboarding/PlatformConnector.js +249 -11
  45. package/lib/commonjs/config/PLATFORM_APIS.md +849 -0
  46. package/lib/commonjs/config/api.js +56 -7
  47. package/lib/commonjs/constants/index.js +120 -7
  48. package/lib/commonjs/context/AuthContext.js +345 -10
  49. package/lib/commonjs/hooks/useConnectedAccounts.js +111 -9
  50. package/lib/commonjs/hooks/useConnections.js +102 -8
  51. package/lib/commonjs/hooks/useCredentials.js +178 -10
  52. package/lib/commonjs/hooks/useUserConnections.js +148 -10
  53. package/lib/commonjs/index.js +439 -34
  54. package/lib/commonjs/services/apiClient.js +298 -8
  55. package/lib/commonjs/services/biometricPinService.js +180 -8
  56. package/lib/commonjs/services/chatGPTConversationExtractor.js +155 -8
  57. package/lib/commonjs/services/chatGPTConversationService.js +275 -9
  58. package/lib/commonjs/services/claudeConversationExtractor.js +103 -8
  59. package/lib/commonjs/services/claudeConversationService.js +158 -9
  60. package/lib/commonjs/services/connectedAccountsService.js +310 -10
  61. package/lib/commonjs/services/googleAuthService.js +252 -11
  62. package/lib/commonjs/services/hingeDataExtractor.js +105 -8
  63. package/lib/commonjs/services/hingeDataService.js +150 -9
  64. package/lib/commonjs/services/imageCompressionService.js +260 -7
  65. package/lib/commonjs/services/instagramDataExtractor.js +126 -8
  66. package/lib/commonjs/services/instagramDataService.js +163 -9
  67. package/lib/commonjs/services/jwtStorageService.js +276 -7
  68. package/lib/commonjs/services/linkedinDOMExtractor.js +245 -7
  69. package/lib/commonjs/services/linkedinProfileService.js +222 -9
  70. package/lib/commonjs/services/linkedinScrapingService.js +230 -8
  71. package/lib/commonjs/services/llmDataStorage.js +294 -8
  72. package/lib/commonjs/services/mobileTrainingService.js +186 -8
  73. package/lib/commonjs/services/netflixDataExtractor.js +120 -8
  74. package/lib/commonjs/services/netflixDataService.js +198 -9
  75. package/lib/commonjs/services/pinEncryptionService.js +84 -8
  76. package/lib/commonjs/services/pinStorageUtils.js +105 -7
  77. package/lib/commonjs/services/platformAuthService.js +1484 -12
  78. package/lib/commonjs/services/sephoraDataExtractor.js +140 -8
  79. package/lib/commonjs/services/sephoraDataService.js +200 -9
  80. package/lib/commonjs/services/spotifyDataExtractor.js +148 -8
  81. package/lib/commonjs/services/spotifyDataService.js +241 -9
  82. package/lib/commonjs/services/storageService.js +404 -8
  83. package/lib/commonjs/services/telegramDataExtractor.js +115 -8
  84. package/lib/commonjs/services/telegramDataService.js +499 -9
  85. package/lib/commonjs/services/trainingApiHelpers.js +73 -7
  86. package/lib/commonjs/services/userConnectionsService.js +340 -10
  87. package/lib/commonjs/services/youtubeMigrationService.js +416 -10
  88. package/lib/commonjs/theme/index.js +250 -7
  89. package/lib/commonjs/types/ambient.d.js +2 -1
  90. package/lib/commonjs/types/declarations.d.js +2 -1
  91. package/lib/commonjs/types/index.js +6 -1
  92. package/lib/commonjs/types/node-fix.d.js +2 -1
  93. package/lib/commonjs/types/node-override.d.js +2 -1
  94. package/lib/commonjs/types/opacity.d.js +2 -1
  95. package/lib/commonjs/types.js +14 -1
  96. package/lib/commonjs/utils/Portal.js +98 -8
  97. package/lib/commonjs/utils/api.js +130 -9
  98. package/lib/commonjs/utils/assetRegistry.js +210 -35
  99. package/lib/commonjs/utils/auth.js +112 -9
  100. package/lib/commonjs/utils/connectorTests.js +613 -29
  101. package/lib/commonjs/utils/crypto.js +62 -8
  102. package/lib/commonjs/utils/debugHelper.js +64 -1
  103. package/lib/commonjs/utils/encryption.js +76 -7
  104. package/lib/commonjs/utils/eventUtils.js +288 -1
  105. package/lib/commonjs/utils/haptics.js +66 -9
  106. package/lib/commonjs/utils/imagePreloader.js +6 -1
  107. package/lib/commonjs/utils/networkDiagnostics.js +226 -8
  108. package/lib/commonjs/utils/onairosApi.js +350 -9
  109. package/lib/commonjs/utils/programmaticFlow.js +117 -9
  110. package/lib/commonjs/utils/retryHelper.js +220 -1
  111. package/lib/commonjs/utils/secureStorage.js +349 -10
  112. package/lib/commonjs/utils/webviewScripts/chatgpt.js +551 -1
  113. package/lib/commonjs/utils/webviewScripts/claude.js +376 -1
  114. package/lib/commonjs/utils/webviewScripts/hinge.js +411 -1
  115. package/lib/commonjs/utils/webviewScripts/index.js +698 -15
  116. package/lib/commonjs/utils/webviewScripts/instagram.js +454 -1
  117. package/lib/commonjs/utils/webviewScripts/linkedin.js +880 -1
  118. package/lib/commonjs/utils/webviewScripts/netflix.js +382 -1
  119. package/lib/commonjs/utils/webviewScripts/sephora.js +516 -1
  120. package/lib/commonjs/utils/webviewScripts/spotify.js +419 -1
  121. package/lib/commonjs/utils/webviewScripts/telegram.js +678 -1
  122. package/lib/module/api/index.js +211 -1
  123. package/lib/module/components/BodyText.js +20 -1
  124. package/lib/module/components/BrandMark.js +104 -1
  125. package/lib/module/components/CodeInput.js +109 -1
  126. package/lib/module/components/EmailInput.js +23 -1
  127. package/lib/module/components/GoogleButton.js +49 -1
  128. package/lib/module/components/HeadingGroup.js +36 -1
  129. package/lib/module/components/LLMDataInputModal.js +656 -7
  130. package/lib/module/components/ModalHeader.js +92 -1
  131. package/lib/module/components/ModalSheet.js +39 -1
  132. package/lib/module/components/Onairos.js +373 -1
  133. package/lib/module/components/OnairosButton.js +305 -1
  134. package/lib/module/components/OnairosSignInButton.js +121 -1
  135. package/lib/module/components/Overlay.js +456 -1
  136. package/lib/module/components/PersonaImage.js +129 -1
  137. package/lib/module/components/PersonaLoadingScreen.js +310 -1
  138. package/lib/module/components/PersonalizationConsentScreen.js +460 -1
  139. package/lib/module/components/PinCreationScreen.js +396 -1
  140. package/lib/module/components/PinInput.js +456 -1
  141. package/lib/module/components/PlatformConnectorsStep.js +1302 -6
  142. package/lib/module/components/PlatformList.js +129 -1
  143. package/lib/module/components/PlatformToggle.js +173 -1
  144. package/lib/module/components/PrimaryButton.js +172 -1
  145. package/lib/module/components/SignInMatchAnimation.js +189 -1
  146. package/lib/module/components/SignInStep.js +338 -1
  147. package/lib/module/components/UniversalOnboarding.js +2770 -1
  148. package/lib/module/components/VerificationStep.js +168 -1
  149. package/lib/module/components/WelcomeScreen.js +453 -1
  150. package/lib/module/components/icons/Basicproficon.js +30 -1
  151. package/lib/module/components/icons/Basicprofile.js +14 -1
  152. package/lib/module/components/icons/Checkbox.js +14 -1
  153. package/lib/module/components/icons/Checkmark.js +20 -1
  154. package/lib/module/components/icons/Contentanalysis.js +14 -1
  155. package/lib/module/components/icons/Contenticon.js +32 -1
  156. package/lib/module/components/icons/EnochE.js +34 -1
  157. package/lib/module/components/icons/Personalityicon.js +23 -1
  158. package/lib/module/components/icons/Personalityprofile.js +14 -1
  159. package/lib/module/components/icons/Personalitytraits.js +14 -1
  160. package/lib/module/components/icons/Userpreferences.js +14 -1
  161. package/lib/module/components/icons/index.js +13 -1
  162. package/lib/module/components/onboarding/OAuthWebView.js +1746 -1
  163. package/lib/module/components/onboarding/OnboardingHeader.js +66 -1
  164. package/lib/module/components/onboarding/PinInput.js +274 -1
  165. package/lib/module/components/onboarding/PlatformConnector.js +240 -1
  166. package/lib/module/config/PLATFORM_APIS.md +849 -0
  167. package/lib/module/config/api.js +47 -1
  168. package/lib/module/constants/index.js +114 -1
  169. package/lib/module/context/AuthContext.js +335 -1
  170. package/lib/module/hooks/useConnectedAccounts.js +106 -1
  171. package/lib/module/hooks/useConnections.js +95 -1
  172. package/lib/module/hooks/useCredentials.js +171 -6
  173. package/lib/module/hooks/useUserConnections.js +140 -1
  174. package/lib/module/index.js +172 -1
  175. package/lib/module/services/apiClient.js +295 -1
  176. package/lib/module/services/biometricPinService.js +169 -1
  177. package/lib/module/services/chatGPTConversationExtractor.js +149 -1
  178. package/lib/module/services/chatGPTConversationService.js +268 -1
  179. package/lib/module/services/claudeConversationExtractor.js +97 -1
  180. package/lib/module/services/claudeConversationService.js +151 -1
  181. package/lib/module/services/connectedAccountsService.js +293 -1
  182. package/lib/module/services/googleAuthService.js +241 -1
  183. package/lib/module/services/hingeDataExtractor.js +99 -1
  184. package/lib/module/services/hingeDataService.js +143 -1
  185. package/lib/module/services/imageCompressionService.js +250 -1
  186. package/lib/module/services/instagramDataExtractor.js +120 -1
  187. package/lib/module/services/instagramDataService.js +156 -1
  188. package/lib/module/services/jwtStorageService.js +257 -1
  189. package/lib/module/services/linkedinDOMExtractor.js +234 -1
  190. package/lib/module/services/linkedinProfileService.js +210 -1
  191. package/lib/module/services/linkedinScrapingService.js +219 -1
  192. package/lib/module/services/llmDataStorage.js +277 -1
  193. package/lib/module/services/mobileTrainingService.js +173 -1
  194. package/lib/module/services/netflixDataExtractor.js +114 -1
  195. package/lib/module/services/netflixDataService.js +191 -1
  196. package/lib/module/services/pinEncryptionService.js +74 -6
  197. package/lib/module/services/pinStorageUtils.js +93 -1
  198. package/lib/module/services/platformAuthService.js +1461 -1
  199. package/lib/module/services/sephoraDataExtractor.js +134 -1
  200. package/lib/module/services/sephoraDataService.js +193 -1
  201. package/lib/module/services/spotifyDataExtractor.js +142 -1
  202. package/lib/module/services/spotifyDataService.js +234 -1
  203. package/lib/module/services/storageService.js +383 -1
  204. package/lib/module/services/telegramDataExtractor.js +109 -1
  205. package/lib/module/services/telegramDataService.js +493 -1
  206. package/lib/module/services/trainingApiHelpers.js +67 -1
  207. package/lib/module/services/userConnectionsService.js +329 -1
  208. package/lib/module/services/youtubeMigrationService.js +405 -1
  209. package/lib/module/theme/index.js +245 -1
  210. package/lib/module/types.js +10 -1
  211. package/lib/module/utils/Portal.js +90 -1
  212. package/lib/module/utils/api.js +118 -1
  213. package/lib/module/utils/assetRegistry.js +200 -34
  214. package/lib/module/utils/auth.js +100 -1
  215. package/lib/module/utils/connectorTests.js +600 -27
  216. package/lib/module/utils/crypto.js +54 -1
  217. package/lib/module/utils/debugHelper.js +54 -1
  218. package/lib/module/utils/encryption.js +67 -1
  219. package/lib/module/utils/eventUtils.js +270 -1
  220. package/lib/module/utils/haptics.js +59 -8
  221. package/lib/module/utils/imagePreloader.js +3 -1
  222. package/lib/module/utils/networkDiagnostics.js +217 -1
  223. package/lib/module/utils/onairosApi.js +333 -1
  224. package/lib/module/utils/programmaticFlow.js +111 -1
  225. package/lib/module/utils/retryHelper.js +211 -1
  226. package/lib/module/utils/secureStorage.js +330 -6
  227. package/lib/module/utils/webviewScripts/chatgpt.js +545 -1
  228. package/lib/module/utils/webviewScripts/claude.js +370 -1
  229. package/lib/module/utils/webviewScripts/hinge.js +405 -1
  230. package/lib/module/utils/webviewScripts/index.js +434 -1
  231. package/lib/module/utils/webviewScripts/instagram.js +448 -1
  232. package/lib/module/utils/webviewScripts/linkedin.js +874 -1
  233. package/lib/module/utils/webviewScripts/netflix.js +376 -1
  234. package/lib/module/utils/webviewScripts/sephora.js +510 -1
  235. package/lib/module/utils/webviewScripts/spotify.js +413 -1
  236. package/lib/module/utils/webviewScripts/telegram.js +672 -1
  237. package/package.json +2 -2
@@ -1,30 +1,2780 @@
1
- 'use strict';
2
- // Onairos SDK - Asset Registry (auto-generated)
3
- var __ONAIROS_REQ_REGISTRY__ = [
4
- require("react"),
5
- require("react-native"),
6
- require("@react-native-async-storage/async-storage"),
7
- require("./BrandMark"),
8
- require("./HeadingGroup"),
9
- require("./BodyText"),
10
- require("./PrimaryButton"),
11
- require("./SignInStep"),
12
- require("./VerificationStep"),
13
- require("./PlatformConnectorsStep"),
14
- require("./PersonalizationConsentScreen"),
15
- require("../services/platformAuthService"),
16
- require("../utils/assetRegistry"),
17
- require("../services/googleAuthService"),
18
- require("../utils/haptics"),
19
- require("../services/authService"),
20
- require("socket.io-client"),
21
- require("../services/pinStorageUtils"),
22
- require("../services/pinEncryptionService"),
23
- require("../services/mobileTrainingService"),
24
- require("../services/llmDataStorage"),
25
- require("../services/connectedAccountsService"),
26
- require("../config/api"),
27
- require("../services/jwtStorageService")
28
- ];
29
- function __ONAIROS_REQ_FUNC__(i) { return __ONAIROS_REQ_REGISTRY__[i]; }
30
- function _0xe5d4(_0x25a91c,_0xe5d4e){_0x25a91c=_0x25a91c-0x0;const _0x26e476=_0x25a9();let _0x287769=_0x26e476[_0x25a91c];return _0x287769;}Object['defineProperty'](exports,_0xe5d4(0x0),{'value':!![]}),exports[_0xe5d4(0x1)]=void 0x0;var _react=_interopRequireWildcard(__ONAIROS_REQ_FUNC__(0x0)),_reactNative=__ONAIROS_REQ_FUNC__(0x1),_asyncStorage=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x2)),_BrandMark=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x3)),_HeadingGroup=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x4)),_BodyText=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x5)),_PrimaryButton=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x6)),_SignInStep=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x7)),_VerificationStep=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x8)),_PlatformConnectorsStep=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x9)),_PersonalizationConsentScreen=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0xa)),_platformAuthService=__ONAIROS_REQ_FUNC__(0xb),_assetRegistry=__ONAIROS_REQ_FUNC__(0xc),_googleAuthService=__ONAIROS_REQ_FUNC__(0xd),_haptics=__ONAIROS_REQ_FUNC__(0xe),_authService=__ONAIROS_REQ_FUNC__(0xf),_socket=__ONAIROS_REQ_FUNC__(0x10),_pinStorageUtils=__ONAIROS_REQ_FUNC__(0x11),_pinEncryptionService=__ONAIROS_REQ_FUNC__(0x12),_mobileTrainingService=__ONAIROS_REQ_FUNC__(0x13),_llmDataStorage=__ONAIROS_REQ_FUNC__(0x14),_connectedAccountsService=__ONAIROS_REQ_FUNC__(0x15),_api=__ONAIROS_REQ_FUNC__(0x16),_jwtStorageService=__ONAIROS_REQ_FUNC__(0x17);function _interopRequireDefault(_0x105b66){return _0x105b66&&_0x105b66[_0xe5d4(0x0)]?_0x105b66:{'default':_0x105b66};}function _interopRequireWildcard(_0x315a2e,_0x1b8d51){const _0x3eb9bc={'wWrYV':function(_0xf02a1,_0x11da9a){return _0xf02a1&&_0x11da9a;},'drLDp':function(_0x5b3e27,_0x116686){return _0x5b3e27===_0x116686;},'YaouS':function(_0x2bb52f,_0x2690f1){return _0x2bb52f!=_0x2690f1;},'eMwjA':_0xe5d4(0x2),'zkAJb':function(_0x194945,_0x4a6536){return _0x194945!=_0x4a6536;},'CuPFP':function(_0xfaf5e0,_0x25aedf){return _0xfaf5e0!==_0x25aedf;},'awTdi':_0xe5d4(0x3),'uOvjb':function(_0x5a880a,_0x5417cc,_0x46a41a,_0x1ee429){return _0x5a880a(_0x5417cc,_0x46a41a,_0x1ee429);},'TGmNP':function(_0x44bb8e,_0x3c7692){return _0x44bb8e==_0x3c7692;}};if(_0x3eb9bc[_0xe5d4(0x4)](_0xe5d4(0x5),typeof WeakMap))var _0x405e8b=new WeakMap(),_0xc54dd=new WeakMap();return(_interopRequireWildcard=function(_0x4d5bfa,_0x15d37f){if(_0x3eb9bc[_0xe5d4(0x6)](!_0x15d37f,_0x4d5bfa)&&_0x4d5bfa[_0xe5d4(0x0)])return _0x4d5bfa;var _0x226c24,_0x32e59a,_0x635e90={'__proto__':null,'default':_0x4d5bfa};if(_0x3eb9bc['drLDp'](null,_0x4d5bfa)||_0x3eb9bc[_0xe5d4(0x7)](_0x3eb9bc[_0xe5d4(0x8)],typeof _0x4d5bfa)&&_0x3eb9bc[_0xe5d4(0x9)]('function',typeof _0x4d5bfa))return _0x635e90;if(_0x226c24=_0x15d37f?_0xc54dd:_0x405e8b){if(_0x226c24[_0xe5d4(0xa)](_0x4d5bfa))return _0x226c24['get'](_0x4d5bfa);_0x226c24['set'](_0x4d5bfa,_0x635e90);}for(const _0x2cc2f5 in _0x4d5bfa)_0x3eb9bc[_0xe5d4(0xb)](_0x3eb9bc[_0xe5d4(0xc)],_0x2cc2f5)&&{}[_0xe5d4(0xd)][_0xe5d4(0xe)](_0x4d5bfa,_0x2cc2f5)&&((_0x32e59a=(_0x226c24=Object['defineProperty'])&&Object[_0xe5d4(0xf)](_0x4d5bfa,_0x2cc2f5))&&(_0x32e59a[_0xe5d4(0x10)]||_0x32e59a['set'])?_0x3eb9bc[_0xe5d4(0x11)](_0x226c24,_0x635e90,_0x2cc2f5,_0x32e59a):_0x635e90[_0x2cc2f5]=_0x4d5bfa[_0x2cc2f5]);return _0x635e90;})(_0x315a2e,_0x1b8d51);}const {height,width}=_reactNative[_0xe5d4(0x12)][_0xe5d4(0x10)](_0xe5d4(0x13)),UniversalOnboarding=({visible:_0x114320,onClose:_0x2847d6,AppName:_0x140c16,requestData:_0x5280d1,returnLink:_0x2c87a0,onComplete:_0x6ff4bf,embedd:embedd=![],debug:debug=![],test:test=![],preferredPlatform:_0x2ae1be,primaryAuthOnly:primaryAuthOnly=![],allowedPlatforms:_0x22c693,recommendedPlatforms:_0x1b1375,allowSkip:allowSkip=!![]})=>{const _0x3d33ba={'lbvgd':'✅\x20Socket\x20connected\x20for\x20training','btiVL':function(_0x209749,_0x37b99d){return _0x209749===_0x37b99d;},'YPGzF':function(_0x52fa37,_0x314b74){return _0x52fa37===_0x314b74;},'gItXL':'Starting\x20training','qDZnl':function(_0x3dad45,_0x4393a1){return _0x3dad45===_0x4393a1;},'KoMiu':function(_0x280abb,_0x198561){return _0x280abb===_0x198561;},'DRyvv':_0xe5d4(0x14),'vJpcE':_0xe5d4(0x15),'chuJN':function(_0x33e106,_0x187c80){return _0x33e106(_0x187c80);},'SOSig':function(_0x318795){return _0x318795();},'LKDoR':function(_0x1b1b9a,_0x489cc9){return _0x1b1b9a===_0x489cc9;},'pvFEL':_0xe5d4(0x16),'SONqq':_0xe5d4(0x17),'CWvpo':_0xe5d4(0x18),'cDdaV':'🔍\x20UniversalOnboarding:\x20current\x20step\x20is:','Nmpnt':'🔍\x20UniversalOnboarding:\x20primaryAuthOnly\x20is:','zltac':_0xe5d4(0x19),'mAGtq':function(_0x3a13ca,_0x48d9ba){return _0x3a13ca===_0x48d9ba;},'tzJpd':_0xe5d4(0x1a),'gGWRC':_0xe5d4(0x1b),'hjYcO':_0xe5d4(0x1c),'MNCNk':_0xe5d4(0x1d),'ZEXIA':_0xe5d4(0x1e),'UJyDO':_0xe5d4(0x1f),'tJccn':_0xe5d4(0x20),'SxePP':_0xe5d4(0x21),'uPQzL':'code','lhWeu':_0xe5d4(0x22),'JVRIo':function(_0x9cdaa,_0x3990a6){return _0x9cdaa&&_0x3990a6;},'JBoGk':function(_0x59276a,_0x5df274){return _0x59276a(_0x5df274);},'Ftnqe':function(_0xbc5905,_0x5f1f28){return _0xbc5905(_0x5f1f28);},'jIaUX':function(_0x42bd92,_0x123308){return _0x42bd92(_0x123308);},'vGQMz':_0xe5d4(0x23),'bEgcZ':_0xe5d4(0x24),'lWCpo':_0xe5d4(0x25),'EINoy':_0xe5d4(0x26),'gtfVa':function(_0x3e8656,_0x1aaba2){return _0x3e8656(_0x1aaba2);},'QDwFJ':function(_0x465788,_0x2e9d20){return _0x465788(_0x2e9d20);},'jTMDM':_0xe5d4(0x27),'wqRXm':function(_0x18f8d6,_0x2a21d1){return _0x18f8d6!==_0x2a21d1;},'hlCCj':_0xe5d4(0x28),'JTqwh':_0xe5d4(0x29),'Viomg':function(_0x5e9dd4,_0x26de52){return _0x5e9dd4===_0x26de52;},'FquXe':'Vgxkp','ubnGZ':'Disconnect\x20Platform','xaUdK':'Yes','yMgTH':'❌\x20YouTube\x20reconnection\x20failed:','cQmEf':_0xe5d4(0x2a),'mCjiK':function(_0x29028d,_0x43965f){return _0x29028d(_0x43965f);},'xqxCs':function(_0x451111,_0x216457){return _0x451111%_0x216457;},'ZaPxY':function(_0x5a869e,_0x16d487){return _0x5a869e+_0x16d487;},'NGrjv':function(_0x3765f9,_0x490d2e){return _0x3765f9===_0x490d2e;},'VtTYi':function(_0x992285,_0x4db1b2){return _0x992285===_0x4db1b2;},'kRRUT':'uwsPq','tAFyR':function(_0x5d9eb8,_0x3657fa,_0x523c20){return _0x5d9eb8(_0x3657fa,_0x523c20);},'LRFbY':_0xe5d4(0x2b),'ENjRH':_0xe5d4(0x2c),'pyesh':function(_0x1c458e,_0x44d6a2){return _0x1c458e(_0x44d6a2);},'SqkfG':_0xe5d4(0x2d),'tDTaE':function(_0x50eb04,_0x429692){return _0x50eb04(_0x429692);},'prFNd':function(_0xf13101,_0x30f60e){return _0xf13101!==_0x30f60e;},'absbG':'BUhta','mYaSm':_0xe5d4(0x2e),'woUdn':function(_0x19c687,_0x515c65){return _0x19c687(_0x515c65);},'KSWLH':_0xe5d4(0x2f),'GXPWU':_0xe5d4(0x30),'UfrZb':'pkXeh','MiGmp':function(_0x57e007,_0x503e58){return _0x57e007(_0x503e58);},'bPXCt':_0xe5d4(0x31),'MaBEz':_0xe5d4(0x32),'HrcEX':'Error:\x20Failed\x20to\x20continue\x20training','vAafG':_0xe5d4(0x33),'tkkiL':_0xe5d4(0x34),'hIPCr':'🔑\x20Using\x20auth\x20token:','cHDRx':_0xe5d4(0x35),'BAZgp':function(_0x711b92,_0x550f8e){return _0x711b92===_0x550f8e;},'gQvOE':function(_0x101495,_0x4abf81){return _0x101495===_0x4abf81;},'FrDEF':function(_0x16cae3,_0x3aba39){return _0x16cae3===_0x3aba39;},'USSJD':_0xe5d4(0x36),'JTBGH':function(_0xa8d153,_0x4420f4){return _0xa8d153===_0x4420f4;},'ycxYw':'🔍\x20Returning\x20user\x20check:','hgpQf':function(_0x1705f0,_0x5c4fcd){return _0x1705f0(_0x5c4fcd);},'FrxOJ':_0xe5d4(0x37),'cBLjt':function(_0x34073e,_0x3482b9){return _0x34073e(_0x3482b9);},'kodcC':function(_0x44b407,_0x23d408){return _0x44b407(_0x23d408);},'KGgOJ':'Kmsza','wRgfn':_0xe5d4(0x38),'hemcO':_0xe5d4(0x39),'qfrtI':function(_0x58ca1f,_0x8e6523){return _0x58ca1f(_0x8e6523);},'GlhYw':_0xe5d4(0x3a),'gyxAK':function(_0x2438a3,_0x3e9cb9){return _0x2438a3!==_0x3e9cb9;},'ylReh':'KNlnB','esdng':_0xe5d4(0x3b),'ZJsTl':_0xe5d4(0x3c),'rMJTg':_0xe5d4(0x3d),'uTlPS':'🔌\x20Cleaning\x20up\x20socket\x20connection...','uBXky':function(_0x329211){return _0x329211();},'GDIPZ':_0xe5d4(0x3e),'nGtjM':'tHPyS','jomPu':_0xe5d4(0x3f),'IaAww':'1|0|4|3|2','QjMWC':function(_0x5ab41b,_0x4d9f9f){return _0x5ab41b(_0x4d9f9f);},'YQtkd':_0xe5d4(0x40),'LbVFf':function(_0x1df89a,_0x52c5c4){return _0x1df89a(_0x52c5c4);},'wzXKp':_0xe5d4(0x41),'KYvDT':_0xe5d4(0x42),'wotBk':_0xe5d4(0x43),'QrcwA':function(_0x250fa9,_0xfcf381){return _0x250fa9&&_0xfcf381;},'LClSF':'1|5|2|3|0|4','GDfjh':_0xe5d4(0x44),'IEBoG':function(_0x27a18c,_0x1c45e6){return _0x27a18c===_0x1c45e6;},'UxGCM':function(_0x4139cd,_0x3c3621){return _0x4139cd===_0x3c3621;},'ieqeu':_0xe5d4(0x45),'GwzJZ':_0xe5d4(0x46),'rTyaI':function(_0x129b2d,_0x4beb8f){return _0x129b2d(_0x4beb8f);},'AfzyB':function(_0x32d6aa,_0xb33ee5){return _0x32d6aa>_0xb33ee5;},'SNrAL':_0xe5d4(0x47),'GIctd':_0xe5d4(0x48),'knVEA':function(_0x201c72,_0x3d576b){return _0x201c72(_0x3d576b);},'cicdD':function(_0x13efae,_0x2c9714){return _0x13efae(_0x2c9714);},'soBma':_0xe5d4(0x49),'rMWPl':_0xe5d4(0x4a),'bBpRc':function(_0x2550e9,_0x56d16a){return _0x2550e9(_0x56d16a);},'bUWqw':'kVqIl','qDMDt':_0xe5d4(0x4b),'lYMrA':_0xe5d4(0x4c),'uMFUT':function(_0x38c245,_0x53502a){return _0x38c245===_0x53502a;},'pZuaF':function(_0x3125f5,_0x5a3b6f){return _0x3125f5===_0x5a3b6f;},'HZKbJ':function(_0x90da12,_0x380ae8){return _0x90da12===_0x380ae8;},'jCQTL':function(_0x435c82,_0x5cf5bf){return _0x435c82!==_0x5cf5bf;},'hthHF':function(_0x99e195,_0x2eb4d2){return _0x99e195!==_0x2eb4d2;},'XfSSD':_0xe5d4(0x4d),'wImoO':_0xe5d4(0x4e),'mYKuO':function(_0x17208b,_0x5818fc){return _0x17208b===_0x5818fc;},'hjenb':_0xe5d4(0x4f),'qFgeQ':_0xe5d4(0x50),'TYMzE':'hFDvl','JEnMK':function(_0xcf1799,_0x345836){return _0xcf1799===_0x345836;},'rSdwV':function(_0x294896,_0x36f553){return _0x294896*_0x36f553;},'bUvwU':function(_0x22bbd5,_0x5e6050){return _0x22bbd5||_0x5e6050;},'xNThB':'🔍\x20Loading\x20username\x20for\x20data\x20connections:','yQvPg':'Initial\x20connection\x20status:','Zysjz':function(_0x2a88bb,_0x39b5ec){return _0x2a88bb(_0x39b5ec);},'VDbHF':_0xe5d4(0x51),'LjQlh':_0xe5d4(0x52),'DzYAt':function(_0xf944a4,_0x2de167){return _0xf944a4(_0x2de167);},'JJRPy':function(_0x3a7722,_0x2df21f){return _0x3a7722(_0x2df21f);},'bPvjU':function(_0x466918,_0x1f3056){return _0x466918===_0x1f3056;},'VClkC':function(_0x3dd0db,_0xf38ab4){return _0x3dd0db*_0xf38ab4;},'pwFJv':function(_0x2d66a7,_0x3aefaf){return _0x2d66a7!==_0x3aefaf;},'RWFSI':function(_0x2f1b12,_0x3d0df8,_0x52d585){return _0x2f1b12(_0x3d0df8,_0x52d585);},'IknjW':_0xe5d4(0x53),'XgDqY':function(_0x33e248,_0x4f0819){return _0x33e248(_0x4f0819);},'WDeux':'qpiQQ','kxzTk':function(_0x403e4f,_0x2c85aa){return _0x403e4f(_0x2c85aa);},'xPcSc':function(_0x59b339,_0x4ffad6){return _0x59b339===_0x4ffad6;},'kQOIJ':'neRMN','Uahsv':_0xe5d4(0x54),'LgyKu':'🚀\x20Get\x20Started\x20pressed\x20-\x20moving\x20to\x20signin','QHYCi':_0xe5d4(0x55),'Fhykc':_0xe5d4(0x56),'dEzCv':_0xe5d4(0x57),'kepAy':function(_0x3a7e82,_0xa6ed25){return _0x3a7e82===_0xa6ed25;},'BBtnk':_0xe5d4(0x58),'EmkFg':_0xe5d4(0x59),'JlvCo':_0xe5d4(0x5a),'RASfl':_0xe5d4(0x5b),'GUuhL':_0xe5d4(0x5c),'TfKCT':'true','KpKWh':_0xe5d4(0x5d),'ikqyH':function(_0x1eed3e,_0x40d476){return _0x1eed3e(_0x40d476);},'nTXRs':function(_0x54913f,_0x3e7970){return _0x54913f(_0x3e7970);},'awDNp':function(_0x2dca47,_0x34ea56){return _0x2dca47(_0x34ea56);},'LcOAg':function(_0x53d5ab,_0x104884){return _0x53d5ab===_0x104884;},'lmSaP':function(_0x4fe395,_0x553083){return _0x4fe395!==_0x553083;},'eTbXw':'YzkiH','mykGV':function(_0x5472a8,_0x479e05){return _0x5472a8(_0x479e05);},'MkIDi':_0xe5d4(0x5e),'LQJuP':function(_0x3209f0,_0x525863){return _0x3209f0(_0x525863);},'TPswF':function(_0x5c404b,_0x1a1d1f){return _0x5c404b===_0x1a1d1f;},'Wftvr':_0xe5d4(0x5f),'PBgDe':_0xe5d4(0x60),'tKCOd':_0xe5d4(0x61),'VJxJl':function(_0x4ad78a,_0x535a07){return _0x4ad78a(_0x535a07);},'NfDNt':'Failed\x20to\x20send\x20verification\x20code.\x20Please\x20try\x20again.','vKbdo':function(_0x5e8946,_0x4aad95){return _0x5e8946(_0x4aad95);},'fiiZI':'Network\x20error.\x20Please\x20check\x20your\x20connection\x20and\x20try\x20again.','WILyb':_0xe5d4(0x62),'zQyDY':function(_0x1bfba4,_0x190b8a){return _0x1bfba4(_0x190b8a);},'dOpiF':function(_0x223154,_0x56d543){return _0x223154(_0x56d543);},'oQBkT':function(_0x35d506,_0x4d3c01){return _0x35d506(_0x4d3c01);},'CRAkD':_0xe5d4(0x63),'YTbYR':_0xe5d4(0x64),'plCPB':function(_0x4f532b,_0x5abae6){return _0x4f532b(_0x5abae6);},'ecFJZ':_0xe5d4(0x65),'HWLsX':_0xe5d4(0x66),'PnVey':'🗄️\x20Databases:','YgkRC':'✅\x20Inference\x20enabled:','gCOdX':_0xe5d4(0x67),'Gjykz':_0xe5d4(0x68),'vxzYz':'🔐\x20Encryption\x20enabled:','LNxpl':'📊\x20Training\x20type:','JrIDa':_0xe5d4(0x69),'jWQtr':function(_0x5b855d,_0x1f1bc3){return _0x5b855d(_0x1f1bc3);},'hfHMk':'ROIGO','fUbde':_0xe5d4(0x6a),'FBPRT':_0xe5d4(0x6b),'akMOX':function(_0x17f2f1,_0x49a316){return _0x17f2f1(_0x49a316);},'nnXlV':_0xe5d4(0x6c),'YJoKB':_0xe5d4(0x6d),'VRwiG':function(_0x4aefc9,_0x152e2f){return _0x4aefc9(_0x152e2f);},'wYsLp':_0xe5d4(0x6e),'rOlmE':_0xe5d4(0x6f),'skFIH':_0xe5d4(0x70),'ZyAMt':'Google\x20Sign-In\x20failed.\x20Please\x20try\x20again.','RysPl':function(_0x4c80ba,_0x148c5f){return _0x4c80ba(_0x148c5f);},'wvGUW':function(_0x34886f,_0x11af6a){return _0x34886f%_0x11af6a;},'jGoml':function(_0x4ee861,_0x44201f){return _0x4ee861===_0x44201f;},'UgxPl':function(_0x24a926,_0x40ee1f){return _0x24a926(_0x40ee1f);},'chQBK':_0xe5d4(0x71),'ktBGM':_0xe5d4(0x72),'ZnWmW':_0xe5d4(0x73),'ewtsg':function(_0x12fb8f,_0xed77f7){return _0x12fb8f(_0xed77f7);},'VgsGX':function(_0x4c367c){return _0x4c367c();},'pnQGj':_0xe5d4(0x74),'KFdcO':function(_0x90a1ee,_0x1af99b){return _0x90a1ee(_0x1af99b);},'IQFHN':function(_0x29dbf6,_0x4d14ce){return _0x29dbf6===_0x4d14ce;},'tmyLY':_0xe5d4(0x75),'BEJQK':'🔍\x20App\x20name:','RvZja':function(_0x52baf5,_0x49684e){return _0x52baf5===_0x49684e;},'lqCCZ':_0xe5d4(0x76),'icTCp':_0xe5d4(0x77),'dCTok':'🔍\x20Checking\x20for\x20returning\x20user\x20data...','HUFNG':function(_0x40c658,_0x3e364f){return _0x40c658===_0x3e364f;},'EmhwQ':function(_0x3277b3,_0x2952e2){return _0x3277b3===_0x2952e2;},'Jrcez':function(_0x2bbd5f,_0x41be1c){return _0x2bbd5f===_0x41be1c;},'spwqN':function(_0x30bbd2,_0x2a18bb){return _0x30bbd2===_0x2a18bb;},'mYhkh':function(_0x1780dd,_0x198870){return _0x1780dd===_0x198870;},'PiGdL':'👋\x20Welcome\x20back!\x20User\x20has\x20existing\x20connections,\x20skipping\x20to\x20consent\x20screen','qKUwz':function(_0x2aaac6,_0x3ffe16){return _0x2aaac6(_0x3ffe16);},'IckZS':function(_0x3d2708,_0x1e2129){return _0x3d2708(_0x1e2129);},'gfLVp':function(_0x1ae1af,_0x18ce11){return _0x1ae1af===_0x18ce11;},'QFjDM':_0xe5d4(0x78),'HsehD':_0xe5d4(0x79),'lZEMx':function(_0x1f0f64,_0x27a317){return _0x1f0f64===_0x27a317;},'XMNED':_0xe5d4(0x7a),'ptcwS':_0xe5d4(0x7b),'BbuRG':function(_0x363a73,_0x17c076){return _0x363a73(_0x17c076);},'DXgLv':_0xe5d4(0x7c),'VvWbl':_0xe5d4(0x7d),'kZfJS':_0xe5d4(0x7e),'tHdil':function(_0x5cdaac,_0x2e18f1){return _0x5cdaac(_0x2e18f1);},'EwUZZ':function(_0x26399f,_0x1fd9f0){return _0x26399f(_0x1fd9f0);},'axonT':_0xe5d4(0x7f),'hpEey':'onairos_jwt_token','AmxVA':_0xe5d4(0x80),'yfUSu':_0xe5d4(0x81),'uoJDU':_0xe5d4(0x82),'sNUvO':function(_0x587bd4,_0xc01187){return _0x587bd4!==_0xc01187;},'BsicT':_0xe5d4(0x83),'DhOdr':_0xe5d4(0x84),'JDGlN':function(_0x4e97c4,_0x9dd676){return _0x4e97c4(_0x9dd676);},'lKzZT':_0xe5d4(0x85),'qCEuR':function(_0x4163d5,_0x39f40c){return _0x4163d5(_0x39f40c);},'DLwby':_0xe5d4(0x86),'WbmOM':_0xe5d4(0x87),'yCIVw':function(_0x423149,_0x3df27c){return _0x423149(_0x3df27c);},'IWtAp':_0xe5d4(0x88),'znCAF':_0xe5d4(0x89),'qHaLj':'3|5|0|1|4|2','RCreQ':_0xe5d4(0x8a),'ItlHT':_0xe5d4(0x8b),'gjwhH':_0xe5d4(0x8c),'felZD':_0xe5d4(0x8d),'vSPzb':function(_0x3d436d,_0x548efd){return _0x3d436d||_0x548efd;},'cOjtr':_0xe5d4(0x8e),'cErCG':_0xe5d4(0x8f),'DiGCU':function(_0xf4f1cd,_0x4caedf){return _0xf4f1cd&&_0x4caedf;},'POcmH':_0xe5d4(0x90),'VPZAb':function(_0xec6060,_0x2d2d86,_0x43d7f2,_0x2944c6){return _0xec6060(_0x2d2d86,_0x43d7f2,_0x2944c6);},'nzgsJ':_0xe5d4(0x91),'EcJaV':function(_0x4bc020,_0x58b19a){return _0x4bc020===_0x58b19a;},'loRMM':_0xe5d4(0x92),'CYBKl':_0xe5d4(0x93),'nPnBR':function(_0x195d71,_0x4658e5){return _0x195d71===_0x4658e5;},'nvlNH':function(_0x2229ef,_0xf1821){return _0x2229ef===_0xf1821;},'XrnQV':function(_0x5311ad,_0x450736){return _0x5311ad===_0x450736;},'ECjnK':function(_0x1cf416,_0x51f624){return _0x1cf416&&_0x51f624;},'MSzhx':_0xe5d4(0x94),'nObrS':_0xe5d4(0x95),'asTbY':_0xe5d4(0x96),'SCEWo':_0xe5d4(0x97),'uMybb':function(_0x2ca33d,_0x14bd25,_0x3f6257,_0x388679){return _0x2ca33d(_0x14bd25,_0x3f6257,_0x388679);},'HtRud':_0xe5d4(0x98),'HknGP':function(_0x7d7f56,_0xb11692){return _0x7d7f56===_0xb11692;},'KZWZm':_0xe5d4(0x99),'Cpxqd':_0xe5d4(0x9a),'RmaWz':_0xe5d4(0x9b),'KJvsZ':function(_0x80bfe3,_0x5eb448){return _0x80bfe3===_0x5eb448;},'NRvwG':function(_0x245979,_0x22e6d9){return _0x245979===_0x22e6d9;},'gqDeN':_0xe5d4(0x9c),'LwRzr':_0xe5d4(0x9d),'jRPAr':function(_0x32256d){return _0x32256d();},'rHaJR':'❌\x20[TRANSITION]\x20Background\x20training\x20failed\x20during\x20transition:','Jssqz':_0xe5d4(0x9e),'fHzjt':function(_0x53d51b,_0x5db1ae){return _0x53d51b(_0x5db1ae);},'VgEuE':_0xe5d4(0x9f),'JDzRL':'Finalizing\x20your\x20unique\x20persona','wUhCx':function(_0x5b1392,_0x27bd65){return _0x5b1392!=_0x27bd65;},'EguGS':_0xe5d4(0x2),'raJUz':function(_0x1b41b3,_0x11f842){return _0x1b41b3!==_0x11f842;},'vtmFn':_0xe5d4(0x3),'DJsik':function(_0x38edaa,_0x36c12d,_0x195b7a,_0x4ad6d9){return _0x38edaa(_0x36c12d,_0x195b7a,_0x4ad6d9);},'xbsYa':function(_0x5def5c,_0x35dac5){return _0x5def5c!==_0x35dac5;},'fKbka':_0xe5d4(0xa0),'tKoXv':_0xe5d4(0xa1),'AthIH':_0xe5d4(0xa2),'FAPET':_0xe5d4(0xa3),'UZZia':function(_0x418f9c,_0x5378ee){return _0x418f9c(_0x5378ee);},'SnkXj':function(_0xe406f,_0xec9135){return _0xe406f(_0xec9135);},'RUhYq':function(_0x40b87b,_0x21b4df){return _0x40b87b(_0x21b4df);},'JHgMW':_0xe5d4(0xa4),'KkEia':'SRIxr','YavXx':_0xe5d4(0xa5),'mUcPb':_0xe5d4(0xa6),'GArqv':_0xe5d4(0xa7),'NbKGt':'3|0|2|1|5|4|6','sglLj':'ℹ️\x20[PIN\x20SUBMIT]\x20No\x20background\x20training\x20detected','IKpUh':_0xe5d4(0xa8),'IjkWa':function(_0x394579,_0x55e49a){return _0x394579(_0x55e49a);},'UYnEC':function(_0xef04b5,_0x3f245e){return _0xef04b5===_0x3f245e;},'PehOw':function(_0x429157,_0x575c62){return _0x429157!==_0x575c62;},'jLrTs':'hnVYO','sKAju':function(_0x4f5b75,_0x5046ec){return _0x4f5b75(_0x5046ec);},'mPtCa':function(_0x3f0130,_0x107b8d){return _0x3f0130(_0x107b8d);},'IezBg':function(_0x36afdb,_0x4753ef){return _0x36afdb(_0x4753ef);},'YxlAQ':_0xe5d4(0xa9),'cjBed':function(_0x383d60,_0x424a23){return _0x383d60===_0x424a23;},'CavLb':_0xe5d4(0xaa),'SNXFj':_0xe5d4(0xab),'TNjRu':_0xe5d4(0xac),'UDRCm':function(_0x2f5976,_0x23cd97){return _0x2f5976(_0x23cd97);},'DbqbB':function(_0x40cf92,_0x2650b6){return _0x40cf92(_0x2650b6);},'cGPaQ':function(_0x354864,_0x4a3eca){return _0x354864(_0x4a3eca);},'lbiQV':_0xe5d4(0xad),'oZaZp':_0xe5d4(0xae),'EKaaV':function(_0x18058b,_0x22c295){return _0x18058b(_0x22c295);},'ZuuzJ':_0xe5d4(0xaf),'EPKwu':_0xe5d4(0xb0),'bgCPq':_0xe5d4(0xb1),'gOMqf':_0xe5d4(0xb2),'ikTJV':function(_0x1a4644,_0xb11b20){return _0x1a4644(_0xb11b20);},'BjemO':function(_0x312500,_0x16a620){return _0x312500(_0x16a620);},'cLXko':'Connections\x20required','QkZwY':'CONNECTIONS_REQUIRED','TQTLs':function(_0x599f8e){return _0x599f8e();},'CsjCB':_0xe5d4(0xb3),'SoAka':function(_0x4c701d,_0x38eb75){return _0x4c701d(_0x38eb75);},'HDOIf':function(_0x2945a5,_0x423891){return _0x2945a5!==_0x423891;},'RWKpv':'STOly','jYGWb':_0xe5d4(0xb4),'dJLor':'terMe','jFCvd':function(_0x1d5b40,_0x5392fb){return _0x1d5b40(_0x5392fb);},'FVsoE':function(_0x1bd051,_0x49326d){return _0x1bd051(_0x49326d);},'AGRBz':_0xe5d4(0xb5),'pnxhS':function(_0x244497,_0x380a82){return _0x244497(_0x380a82);},'lLCYx':_0xe5d4(0xb6),'DyUBf':function(_0x26401e,_0x2b9f47){return _0x26401e===_0x2b9f47;},'tAoIP':function(_0x1ca7b1,_0x30221e){return _0x1ca7b1(_0x30221e);},'JmmFX':_0xe5d4(0xb7),'LkvfG':function(_0x7964e1,_0x3d17e4){return _0x7964e1===_0x3d17e4;},'bJAvE':_0xe5d4(0xb8),'axXEh':_0xe5d4(0xb9),'LfASO':_0xe5d4(0xba),'ZNLux':_0xe5d4(0xbb),'XBktD':_0xe5d4(0xbc),'rqBJf':'🔐\x20[PIN\x20SUBMIT]\x20PIN\x20stored\x20securely,\x20moved\x20to\x20persona\x20step','lAKjq':function(_0x34c269,_0x31ef59){return _0x34c269(_0x31ef59);},'NliVq':'🔑\x20[CACHED\x20LOGIN]\x20Skipping\x20to\x20consent\x20screen','ulQQk':_0xe5d4(0xbd),'PaSox':_0xe5d4(0xbe),'XIqYV':function(_0x291686,_0xa0dec4){return _0x291686===_0xa0dec4;},'OrXuG':function(_0x5785c4,_0x16b2a5){return _0x5785c4(_0x16b2a5);},'BLeOF':function(_0x230ce0){return _0x230ce0();},'cAoXk':_0xe5d4(0xbf),'aUcng':_0xe5d4(0xc0),'cfRPL':function(_0x198b2d,_0x12a8d1){return _0x198b2d(_0x12a8d1);},'SdftC':'No\x20authentication\x20token\x20available','CArAd':_0xe5d4(0xc1),'CCxzA':_0xe5d4(0xc2),'gslKU':_0xe5d4(0xc3),'xALXd':_0xe5d4(0xc4),'TiijI':_0xe5d4(0xc5),'XKvuk':function(_0x5d4bed,_0x21f8f7){return _0x5d4bed(_0x21f8f7);},'YvbjN':function(_0x42e235,_0x3dc7c6){return _0x42e235(_0x3dc7c6);},'GWleM':function(_0x4ba210){return _0x4ba210();},'jljhS':function(_0x23a904,_0x48807b){return _0x23a904(_0x48807b);},'hjAXE':_0xe5d4(0xc6),'uoQHx':_0xe5d4(0xc7),'XgJTu':_0xe5d4(0xc8),'IjYLX':_0xe5d4(0xc9),'FIeYR':function(_0x3776c0,_0x4785d8){return _0x3776c0(_0x4785d8);},'HmSRi':_0xe5d4(0xca),'nPwMV':_0xe5d4(0xcb),'tDceb':'Training\x20failed\x20to\x20start','wETmU':_0xe5d4(0xcc),'czjJo':function(_0x1c5ed8,_0x3f4e0e){return _0x1c5ed8(_0x3f4e0e);},'HcqQr':_0xe5d4(0xcd),'QlxbL':'➕\x20Returning\x20user\x20wants\x20to\x20connect\x20more\x20platforms','YEDrN':function(_0x3cc3aa,_0x517472){return _0x3cc3aa===_0x517472;},'FBgpm':_0xe5d4(0xce),'qtUkq':_0xe5d4(0xcf),'tYCyC':function(_0x2f61ef,_0x325f22){return _0x2f61ef===_0x325f22;},'dtvkw':function(_0x4b65fc,_0x354512){return _0x4b65fc===_0x354512;},'XRuXD':_0xe5d4(0xd0),'YUPdm':_0xe5d4(0xd1),'JJqvp':_0xe5d4(0xd2),'ogiSv':function(_0x1daaa1,_0x3695d5){return _0x1daaa1===_0x3695d5;},'baDHX':'CpzBl','Huucl':_0xe5d4(0xd3),'URGmX':_0xe5d4(0xd4),'OfJxI':_0xe5d4(0xd5),'iLYAw':function(_0x39c968,_0x4fb2db){return _0x39c968(_0x4fb2db);},'oMZgG':_0xe5d4(0xd6),'BUYbL':'fviTr','ylLEc':_0xe5d4(0xd7),'zgARR':_0xe5d4(0xd8),'aTFjO':_0xe5d4(0xd9),'yxaoi':function(_0x3f8443,_0x252a03){return _0x3f8443(_0x252a03);},'EZJhX':'youtube','RgtNO':_0xe5d4(0xda),'GdExf':function(_0x1382d9){return _0x1382d9();},'EOdps':_0xe5d4(0xdb),'ayKib':function(_0x25dc9b,_0x13c9ef){return _0x25dc9b(_0x13c9ef);},'DHxNt':function(_0xd75de4,_0x2870b7){return _0xd75de4(_0x2870b7);},'QqfsD':function(_0x5b2eb1,_0x5b7fd6){return _0x5b2eb1!==_0x5b7fd6;},'fLMaI':_0xe5d4(0xdc),'MXUAt':_0xe5d4(0xdd),'fQlkj':_0xe5d4(0xde),'WwcIp':_0xe5d4(0xdf),'aQUBn':function(_0x4f56a8,_0x3ed9dc){return _0x4f56a8(_0x3ed9dc);},'DOwoi':function(_0x31d770,_0x5ece10){return _0x31d770(_0x5ece10);},'hMBjm':function(_0x4255c9,_0x5a834d){return _0x4255c9(_0x5a834d);},'UAASd':function(_0x4046e6,_0x40eb4c,_0x29e5cf){return _0x4046e6(_0x40eb4c,_0x29e5cf);},'euuWP':function(_0x2dd8ea,_0x43bf64){return _0x2dd8ea(_0x43bf64);},'Yqtkl':_0xe5d4(0xe0),'LlPoe':_0xe5d4(0xe1),'MsTLE':function(_0x4bfb17,_0x3de2ca){return _0x4bfb17(_0x3de2ca);},'ugezR':function(_0x1eb254,_0x44eb92){return _0x1eb254(_0x44eb92);},'XsHyo':_0xe5d4(0xe2),'xDJDf':function(_0x12882e,_0x392302){return _0x12882e(_0x392302);},'YGsPF':_0xe5d4(0xe3),'WCHRK':_0xe5d4(0xe4),'GvoGV':'Creating\x20your\x20persona\x20with\x20available\x20data','gPxxB':_0xe5d4(0xe5),'aJUIT':_0xe5d4(0xe6),'LSQct':function(_0x2e4ec7,_0x9dff3){return _0x2e4ec7(_0x9dff3);},'bmOTS':_0xe5d4(0xe7),'ZrEOT':_0xe5d4(0xe8),'Obkva':_0xe5d4(0xe9),'RqzMH':function(_0x231e1c,_0x1164a3){return _0x231e1c===_0x1164a3;},'pnfQt':function(_0x230655,_0x1a3885){return _0x230655===_0x1a3885;},'UwrZQ':function(_0x1d52b0,_0x2d22f9){return _0x1d52b0===_0x2d22f9;},'HstSc':function(_0x5d2e18,_0x461b75){return _0x5d2e18(_0x461b75);},'WMBAZ':function(_0x2d00d4,_0x44d7ce){return _0x2d00d4!==_0x44d7ce;},'EpREy':_0xe5d4(0xea),'dxtZM':'hzSGE','EfDMr':_0xe5d4(0xeb),'rfuIB':function(_0x267234,_0x56da26){return _0x267234(_0x56da26);},'Wjtkc':function(_0x440b1d,_0x4311c6){return _0x440b1d(_0x4311c6);},'zdOJq':function(_0x3c1ad3,_0x1b50b2){return _0x3c1ad3(_0x1b50b2);},'IKbkK':function(_0x171d4c,_0x1bc056){return _0x171d4c(_0x1bc056);},'GsAGb':_0xe5d4(0xec),'WxzLl':function(_0x24ebaa,_0x35fbb6){return _0x24ebaa===_0x35fbb6;},'ntfVV':function(_0x3f7cd0,_0x40e4d8){return _0x3f7cd0(_0x40e4d8);},'IGmNt':function(_0x417832,_0x404dad){return _0x417832===_0x404dad;},'BlZZp':_0xe5d4(0xed),'bdXWz':'🔍\x20Disconnect\x20details:','vDRHc':_0xe5d4(0xee),'zdRBA':_0xe5d4(0xef),'ydHMZ':_0xe5d4(0xf0),'oSrkh':function(_0x3bf515,_0x2d23a7){return _0x3bf515===_0x2d23a7;},'QRRsp':function(_0x2f598b,_0x270e96){return _0x2f598b===_0x270e96;},'eiJVj':'❌\x20Socket\x20reconnection\x20failed\x20after\x20all\x20attempts','FjENW':function(_0x38091b,_0x519290){return _0x38091b(_0x519290);},'rbAfw':'Connection\x20failed.\x20Please\x20try\x20again.','SDiwn':'hGiTI','tTjUt':_0xe5d4(0xf1),'AwjKh':function(_0xfd1cf5,_0x2db512){return _0xfd1cf5(_0x2db512);},'HzYNY':function(_0x59ff13){return _0x59ff13();},'pfXfi':function(_0x3b6543,_0x42b722,_0x5b843d,_0x3501fa){return _0x3b6543(_0x42b722,_0x5b843d,_0x3501fa);},'KLcUh':function(_0x29b9f5,_0x8023b2){return _0x29b9f5===_0x8023b2;},'aBcoQ':'pLYnv','ItbmV':_0xe5d4(0xf2),'fXcNT':_0xe5d4(0xf3),'DWjgV':_0xe5d4(0xf4),'mhzjX':'ubaSE','yItNa':_0xe5d4(0xf5),'PSKll':_0xe5d4(0xf6),'iyoRQ':function(_0x18794a,_0x5b963b){return _0x18794a===_0x5b963b;},'FMcfe':function(_0x5c204b,_0x55e28f){return _0x5c204b(_0x55e28f);},'fVEFe':_0xe5d4(0xf7),'qNXTq':function(_0x3dbe7c){return _0x3dbe7c();},'izppH':_0xe5d4(0xf8),'pYcQN':_0xe5d4(0xf9),'CnGIn':_0xe5d4(0xfa),'Ltbms':'Failed\x20to\x20create\x20or\x20retrieve\x20authentication\x20token','tHfZH':function(_0x230ef8,_0x5b185e){return _0x230ef8(_0x5b185e);},'ouuuz':_0xe5d4(0xfb),'JQxvo':_0xe5d4(0xfc),'cCCuu':function(_0x25aa70,_0x498b32){return _0x25aa70===_0x498b32;},'oEryC':function(_0x4eed71,_0x235577){return _0x4eed71===_0x235577;},'IGdlY':function(_0x2ba0c1,_0x1383fd){return _0x2ba0c1===_0x1383fd;},'KnGXE':function(_0x4ec0e9,_0x5b649c){return _0x4ec0e9===_0x5b649c;},'YTexA':_0xe5d4(0xfd),'Zwkzg':function(_0x320da2,_0x1d78bb){return _0x320da2||_0x1d78bb;},'XdSXJ':function(_0x13f735,_0x55d3c9){return _0x13f735===_0x55d3c9;},'zjhuS':function(_0x4f5cc3,_0xe618ef){return _0x4f5cc3===_0xe618ef;},'xYjrJ':function(_0x3cb5cc,_0x48993a){return _0x3cb5cc===_0x48993a;},'HOwsB':function(_0x331056,_0x4ac84b){return _0x331056===_0x4ac84b;},'TIzBi':function(_0x5b510a,_0x13aada){return _0x5b510a!==_0x13aada;},'emVYg':_0xe5d4(0xfe),'FYnEl':_0xe5d4(0xff),'dXfrp':_0xe5d4(0x100),'TCyRd':'🔗\x20Network\x20connectivity\x20check\x20starting...','sXyes':function(_0x4d8a73,_0x237b2c){return _0x4d8a73(_0x237b2c);},'GpugP':_0xe5d4(0x101),'AfTYW':_0xe5d4(0x102),'PXYTQ':'disconnect','YXjVM':_0xe5d4(0x103),'KdgAB':_0xe5d4(0x104),'FsCvr':_0xe5d4(0x105),'cPnMc':'connect_error','PbdbH':'trainingCompleted','rMnyB':_0xe5d4(0x106),'CGQIe':_0xe5d4(0x107),'jhprw':'trainingUpdate','SjJYD':'🔌\x20Attempting\x20to\x20connect\x20to\x20socket...','QBqhd':'🔌\x20Socket\x20config:','YCszD':_0xe5d4(0x108),'cnfJO':function(_0x2b4fbb,_0x38fcd2,_0x5ed212){return _0x2b4fbb(_0x38fcd2,_0x5ed212);},'dzSUc':function(_0x535f51,_0x3fb93a,_0x3837ef){return _0x535f51(_0x3fb93a,_0x3837ef);},'hxMXw':function(_0x4a7d89,_0x1e6035){return _0x4a7d89===_0x1e6035;},'yKMmC':_0xe5d4(0x109),'ZymQf':_0xe5d4(0x10a),'vJcKT':function(_0x47544d,_0x1e3479){return _0x47544d(_0x1e3479);},'Uoiic':'Failed\x20to\x20initialize\x20training.\x20Please\x20try\x20again.','IZsHN':function(_0x1dfc6c){return _0x1dfc6c();},'VRGCV':function(_0xebde91,_0x1ae676){return _0xebde91(_0x1ae676);},'hjbGN':function(_0xb6237e,_0x49871b){return _0xb6237e!==_0x49871b;},'PkuiM':_0xe5d4(0x10b),'aPluN':'Something\x20went\x20wrong.\x20Please\x20try\x20again.','NbIcg':_0xe5d4(0x10c),'XgJqp':function(_0x43ea9a,_0x5d4944){return _0x43ea9a<_0x5d4944;},'IOpWB':_0xe5d4(0x10d),'sbzrX':function(_0x3774a3,_0x29156e){return _0x3774a3<_0x29156e;},'JvqmN':function(_0x29f9d2,_0x3b261c){return _0x29f9d2<_0x3b261c;},'hHqJp':function(_0x3d4b81,_0x4b27d7){return _0x3d4b81===_0x4b27d7;},'GwSrx':_0xe5d4(0x10e),'DAbPa':function(_0x11b542,_0x538f22){return _0x11b542<_0x538f22;},'iKALx':function(_0x11a63d,_0x1ea1b4){return _0x11a63d===_0x1ea1b4;},'bXsil':_0xe5d4(0x10f),'lXWdB':_0xe5d4(0x110),'cpiNL':function(_0x453561,_0x338001){return _0x453561(_0x338001);},'wxabq':function(_0x14e043){return _0x14e043();},'tinHN':_0xe5d4(0x111),'DxPAn':'🔌\x20Disconnecting\x20training\x20socket...','sFhhj':_0xe5d4(0x112),'BvbFI':function(_0xb2aad6,_0x4324e3,_0x5b4327,_0x544e09){return _0xb2aad6(_0x4324e3,_0x5b4327,_0x544e09);},'TufFj':function(_0x265f8a,_0xf39535){return _0x265f8a===_0xf39535;},'VKHSF':_0xe5d4(0x113),'BCAuK':_0xe5d4(0x114),'tTwuR':_0xe5d4(0x115),'JkAKm':function(_0x5d8276,_0x326648){return _0x5d8276===_0x326648;},'Fpaiv':function(_0x286e1b,_0xb8975c){return _0x286e1b(_0xb8975c);},'nMmSC':function(_0x2a5a1b,_0x23c453){return _0x2a5a1b>_0x23c453;},'scGcP':function(_0x3fc344,_0x380e10){return _0x3fc344!==_0x380e10;},'VfFQK':_0xe5d4(0x116),'EKUuH':_0xe5d4(0x117),'Efwrb':function(_0x55c391,_0x1a25c7){return _0x55c391===_0x1a25c7;},'yhWXR':_0xe5d4(0x118),'Aocrh':_0xe5d4(0x119),'jqQTx':function(_0x1771a5,_0x3e809d,_0x31d58c,_0x39bc8e){return _0x1771a5(_0x3e809d,_0x31d58c,_0x39bc8e);},'OhJZg':_0xe5d4(0x11a),'medbW':function(_0x5e18f6,_0x5ba29a){return _0x5e18f6===_0x5ba29a;},'vHTaY':function(_0x5255e7,_0x4b06a6){return _0x5255e7===_0x4b06a6;},'PYkAI':_0xe5d4(0x11b),'gsMQG':_0xe5d4(0x11c),'KnZVY':function(_0x26d21b,_0x36a574){return _0x26d21b(_0x36a574);},'Khohe':function(_0x26bb9a,_0x2f5618){return _0x26bb9a||_0x2f5618;},'stKGr':_0xe5d4(0x11d),'rQYvj':_0xe5d4(0x11e),'uOdzz':function(_0x5b9cee,_0x3a199a){return _0x5b9cee(_0x3a199a);},'BYIci':_0xe5d4(0x11f),'rwksc':_0xe5d4(0x120),'JXbuz':'SDakt','WuMwN':_0xe5d4(0x121),'Tcgiu':_0xe5d4(0x122),'AqmIT':function(_0x1ecea5,_0x194961){return _0x1ecea5===_0x194961;},'aSykS':function(_0x35484d,_0x36138f){return _0x35484d===_0x36138f;},'DpSDb':function(_0x43acb1,_0x2ca762){return _0x43acb1(_0x2ca762);},'HJJTV':_0xe5d4(0x123),'dwlBO':function(_0x160dc9,_0x5e5ef2){return _0x160dc9(_0x5e5ef2);},'nRivA':_0xe5d4(0x124),'nImUj':_0xe5d4(0x125),'kWFqX':_0xe5d4(0x126),'XvzbJ':_0xe5d4(0x127),'agKBF':'YaPRe','OfqEc':'🚀\x20[BACKGROUND]\x20Starting\x20background\x20training\x20with\x20socketId:','tJQPY':function(_0x3d4e92,_0x5e1f8b){return _0x3d4e92===_0x5e1f8b;},'xHtQS':function(_0x196466,_0x671113){return _0x196466===_0x671113;},'aKtwo':_0xe5d4(0x128),'gXFnG':_0xe5d4(0x129),'dyVdI':_0xe5d4(0x12a),'fTure':function(_0x24850d,_0x49cf30){return _0x24850d(_0x49cf30);},'AzcyQ':_0xe5d4(0x12b),'XhmsY':'1|3|6|0|4|2|5','gpZSE':function(_0x442d0b,_0x172e9a){return _0x442d0b(_0x172e9a);},'lilUG':function(_0x5e989b,_0x14a97b){return _0x5e989b(_0x14a97b);},'jJawG':_0xe5d4(0x12c),'nxFeW':_0xe5d4(0x12d),'wGwOh':_0xe5d4(0x12e),'ApZyu':'❌\x20Background\x20training\x20start\x20error:','DMvIC':function(_0x37262e,_0x17c411){return _0x37262e instanceof _0x17c411;},'jAPLd':function(_0x489506,_0x53c600){return _0x489506(_0x53c600);},'dEsaF':function(_0x377555,_0x341fe8){return _0x377555&&_0x341fe8;},'cHXvY':_0xe5d4(0x12f),'YxjZI':function(_0x22bb4e,_0x274861){return _0x22bb4e===_0x274861;},'FwDEl':function(_0x3c8b50,_0x44022a){return _0x3c8b50!==_0x44022a;},'vsifk':'EvxlW','glupx':_0xe5d4(0x130),'RWXRe':_0xe5d4(0x131),'MevgR':function(_0x147bf4,_0x4a45d3){return _0x147bf4===_0x4a45d3;},'TvrOI':function(_0x174130,_0x42f5ef){return _0x174130===_0x42f5ef;},'UavaJ':function(_0x36361e,_0x538145){return _0x36361e===_0x538145;},'YhJrD':_0xe5d4(0x132),'KKpbz':'❌\x20Returning\x20user\x20declined\x20consent','tOqsx':'Error\x20loading\x20initial\x20connection\x20status:','frKng':function(_0x2b9484,_0x5966f2){return _0x2b9484===_0x5966f2;},'IeZcD':function(_0x3ddc66,_0x3c57bd){return _0x3ddc66===_0x3c57bd;},'Mxulc':_0xe5d4(0x133),'GvtfA':_0xe5d4(0x134),'qGUdS':_0xe5d4(0x135),'mSRmx':_0xe5d4(0x136),'TSMxW':_0xe5d4(0x137),'vISDd':'#E60023','LewJT':_0xe5d4(0x138),'eNqqX':'#FFFFFF','XTcra':_0xe5d4(0x139),'vagEW':_0xe5d4(0x13a),'IIugG':_0xe5d4(0x13b),'TygNg':'slide','xzvAE':function(_0x4ed9dd,_0x55a0da){return _0x4ed9dd===_0x55a0da;},'AtfpN':_0xe5d4(0x13c),'WRicZ':_0xe5d4(0x13d),'MoQZm':_0xe5d4(0x13e),'GjhMr':function(_0x442d2a,_0xd59c7a){return _0x442d2a===_0xd59c7a;},'ZboJs':_0xe5d4(0x13f),'RKglV':_0xe5d4(0x140),'RPnLQ':function(_0x7ff948,_0x212e7d){return _0x7ff948===_0x212e7d;},'aensG':function(_0x4abea4,_0x460033){return _0x4abea4===_0x460033;},'cVYXV':function(_0x33824d,_0x30be4f){return _0x33824d===_0x30be4f;}},[_0x203f9b,_0xb016cd]=(0x0,_react[_0xe5d4(0x141)])(primaryAuthOnly?_0x3d33ba[_0xe5d4(0x142)]:_0x3d33ba['MNCNk']),[_0x478fc8,_0x3ec4d2]=(0x0,_react[_0xe5d4(0x141)])({}),[_0x2af8af,_0x556afd]=(0x0,_react['useState'])(''),[_0x31c3c6,_0x275ba6]=(0x0,_react[_0xe5d4(0x141)])(_0xe5d4(0x143)),[_0x1d7ab8]=(0x0,_react[_0xe5d4(0x141)])(new _reactNative[(_0xe5d4(0x144))]['Value'](height)),[_0x42b287]=(0x0,_react[_0xe5d4(0x141)])(new _reactNative[(_0xe5d4(0x144))][(_0xe5d4(0x145))](0x0)),[_0x282855,_0x405cee]=(0x0,_react[_0xe5d4(0x141)])({}),[_0x2ca293,_0x251fe2]=(0x0,_react[_0xe5d4(0x141)])(''),[_0x3ebca6,_0x402bd0]=(0x0,_react[_0xe5d4(0x141)])(''),[_0x38f790,_0x63b90c]=(0x0,_react[_0xe5d4(0x141)])(''),[_0x5baaf4,_0x20bf47]=(0x0,_react[_0xe5d4(0x141)])(''),[_0x3985c7,_0xcf797b]=(0x0,_react[_0xe5d4(0x141)])(![]),[_0x54f0ea,_0x3a50ee]=(0x0,_react['useState'])(''),[_0x4aa3e9,_0xae51cf]=(0x0,_react[_0xe5d4(0x141)])(![]),[_0x17a955,_0x31603f]=(0x0,_react[_0xe5d4(0x141)])([]),[_0x429083,_0x5a6ef1]=(0x0,_react[_0xe5d4(0x141)])(null),[_0x3c56b0,_0x273ebb]=(0x0,_react[_0xe5d4(0x141)])(![]),[_0x157beb,_0x863673]=(0x0,_react[_0xe5d4(0x141)])(![]),[_0x477e91,_0x96346c]=(0x0,_react[_0xe5d4(0x141)])(![]),[_0x48b312,_0x518568]=(0x0,_react[_0xe5d4(0x141)])(0x0),[_0x271e58,_0x2ad212]=(0x0,_react[_0xe5d4(0x141)])(0x8),[_0x26510e,_0x4aaee2]=(0x0,_react['useState'])(0x6);(0x0,_react[_0xe5d4(0x146)])(()=>{const _0x1a69e7={'RwhcY':_0x3d33ba[_0xe5d4(0x147)],'etPjo':_0xe5d4(0xec),'sylNZ':function(_0x265dc5,_0x16f353){return _0x3d33ba[_0xe5d4(0x148)](_0x265dc5,_0x16f353);},'EazAf':function(_0xd72985,_0x1a6c23){return _0x3d33ba[_0xe5d4(0x148)](_0xd72985,_0x1a6c23);},'zobXI':function(_0x2ec1eb,_0x891be3){return _0x3d33ba[_0xe5d4(0x148)](_0x2ec1eb,_0x891be3);},'OpjeW':function(_0x429178,_0x27a119){return _0x3d33ba['btiVL'](_0x429178,_0x27a119);},'brmHO':function(_0x93a80d,_0xabf0c4){return _0x3d33ba[_0xe5d4(0x149)](_0x93a80d,_0xabf0c4);},'XnjlD':function(_0x515a90,_0x14aa4c){return _0x515a90(_0x14aa4c);},'ENilo':_0x3d33ba[_0xe5d4(0x14a)],'TjsAV':function(_0x56679e,_0x7ee495){return _0x3d33ba[_0xe5d4(0x14b)](_0x56679e,_0x7ee495);},'eZQDh':function(_0x2fca79,_0x4b7684){return _0x3d33ba[_0xe5d4(0x14c)](_0x2fca79,_0x4b7684);},'UZiTx':'🔄\x20Socket\x20ready\x20for\x20persona\x20display\x20with\x20token:','aOlgg':_0x3d33ba[_0xe5d4(0x14d)],'cYMAm':_0x3d33ba[_0xe5d4(0x14e)],'LBRRw':function(_0x595a61,_0x57968d){return _0x3d33ba[_0xe5d4(0x14f)](_0x595a61,_0x57968d);},'gLzCN':'Connection\x20error.\x20Please\x20try\x20again.','LAQlF':function(_0x14aa9b){return _0x3d33ba['SOSig'](_0x14aa9b);}};if(_0x3d33ba[_0xe5d4(0x150)](_0x3d33ba['pvFEL'],_0x3d33ba[_0xe5d4(0x151)]))console[_0xe5d4(0x152)](_0x3d33ba['SONqq'],_0x114320),console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x153)],_0x3c56b0),console[_0xe5d4(0x152)](_0x3d33ba['cDdaV'],_0x203f9b),console[_0xe5d4(0x152)](_0x3d33ba['Nmpnt'],primaryAuthOnly);else{var _0x6399a6,_0x16d0c0,_0x5eb904,_0x135525;_0x37c4ba['log'](_0x1a69e7[_0xe5d4(0x154)]),_0x2bc60b['log'](_0x1a69e7['etPjo'],{'id':(_0x6399a6=_0xa8b54c[_0xe5d4(0x155)])===null||_0x6399a6===void 0x0?void 0x0:_0x6399a6['id'],'connected':(_0x16d0c0=_0x1fb1f4[_0xe5d4(0x155)])===null||_0x1a69e7[_0xe5d4(0x156)](_0x16d0c0,void 0x0)?void 0x0:_0x16d0c0[_0xe5d4(0x4d)],'transport':(_0x5eb904=_0x46bfeb[_0xe5d4(0x155)])===null||_0x1a69e7['EazAf'](_0x5eb904,void 0x0)||(_0x5eb904=_0x5eb904['io'])===null||_0x1a69e7[_0xe5d4(0x156)](_0x5eb904,void 0x0)||_0x1a69e7[_0xe5d4(0x156)](_0x5eb904=_0x5eb904[_0xe5d4(0x157)],null)||_0x1a69e7[_0xe5d4(0x158)](_0x5eb904,void 0x0)||_0x1a69e7[_0xe5d4(0x159)](_0x5eb904=_0x5eb904[_0xe5d4(0x15a)],null)||_0x1a69e7['brmHO'](_0x5eb904,void 0x0)?void 0x0:_0x5eb904['name']}),_0x1a69e7[_0xe5d4(0x15b)](_0x2c5fb8,!![]),_0x1a69e7[_0xe5d4(0x15b)](_0x5132b0,_0x1a69e7['ENilo']),_0x44d783(0xa);const _0x108aeb=_0x1a69e7[_0xe5d4(0x15c)](_0x135525=_0x103159[_0xe5d4(0x155)],null)||_0x1a69e7['eZQDh'](_0x135525,void 0x0)?void 0x0:_0x135525['id'];_0x3368bf[_0xe5d4(0x152)](_0xe5d4(0x15d),_0x108aeb),_0x108aeb?(_0x14973c[_0xe5d4(0x152)](_0x1a69e7[_0xe5d4(0x15e)],_0x551199?_0x235432['substring'](0x0,0x14)+_0xe5d4(0x15f):_0xe5d4(0x160)),_0x31684d[_0xe5d4(0x152)](_0x1a69e7[_0xe5d4(0x161)]),_0x1a69e7[_0xe5d4(0x15b)](_0x40d65a,_0xe5d4(0xed))):(_0x45ecb5['error'](_0x1a69e7[_0xe5d4(0x162)]),_0x1a69e7[_0xe5d4(0x163)](_0x2e1006,_0x1a69e7[_0xe5d4(0x164)]),_0x1a69e7[_0xe5d4(0x163)](_0x1ad6f2,!![]),_0x1a69e7[_0xe5d4(0x165)](_0x39cef7));}},[_0x114320,_0x3c56b0,_0x203f9b,primaryAuthOnly]),(0x0,_react['useEffect'])(()=>{primaryAuthOnly&&_0x114320&&(_0x203f9b===_0x3d33ba[_0xe5d4(0x166)]||_0x3d33ba[_0xe5d4(0x167)](_0x203f9b,_0x3d33ba[_0xe5d4(0x168)]))&&(console[_0xe5d4(0x152)](_0x3d33ba['gGWRC']),console[_0xe5d4(0x152)](_0xe5d4(0x94),_0x203f9b,_0x3d33ba[_0xe5d4(0x169)]),_0x3d33ba[_0xe5d4(0x14f)](_0xb016cd,_0x3d33ba['MNCNk']));},[primaryAuthOnly,_0x114320]);const _0x2af44b=(0x0,_react[_0xe5d4(0x16a)])(![]),[_0x454aa0,_0x49ba2a]=(0x0,_react['useState'])(0x5),[_0x5248f3,_0x549eff]=(0x0,_react[_0xe5d4(0x141)])(![]),[_0x269dad]=(0x0,_react['useState'])(new _reactNative[(_0xe5d4(0x144))][(_0xe5d4(0x145))](0x0)),_0xdbde65=(0x0,_react[_0xe5d4(0x16a)])(null),_0x15ff12=null,[_0x5357a7,_0x2f47ae]=(0x0,_react[_0xe5d4(0x141)])(''),[_0xd27379,_0xe4021b]=(0x0,_react['useState'])(0x0),[_0xbdd58c,_0x418195]=(0x0,_react[_0xe5d4(0x141)])(_0x3d33ba[_0xe5d4(0x16b)]),[_0x4174c2,_0x38c401]=(0x0,_react[_0xe5d4(0x141)])(![]),[_0x5972fe,_0x577f52]=(0x0,_react[_0xe5d4(0x141)])(![]),[_0x57c1e3,_0x3e08ff]=(0x0,_react[_0xe5d4(0x141)])(![]),[_0x57a068,_0x6adcb0]=(0x0,_react[_0xe5d4(0x141)])(null),[_0x4e7d5e,_0xcc46d3]=(0x0,_react[_0xe5d4(0x141)])(null),[_0x4e77d3,_0x491998]=(0x0,_react['useState'])(null),[_0x1114c2,_0x13d180]=(0x0,_react['useState'])(null),[_0x58de93,_0x514cdf]=(0x0,_react[_0xe5d4(0x141)])(''),_0x2d570b=(0x0,_react[_0xe5d4(0x16a)])(null),_0x5f3039=(0x0,_react[_0xe5d4(0x16a)])(null),[_0x558abc,_0x5bc8e1]=(0x0,_react[_0xe5d4(0x141)])(![]),[_0x33ad56,_0x14842b]=(0x0,_react['useState'])(null),[_0x4d43d8,_0x20453a]=(0x0,_react[_0xe5d4(0x141)])(null),[_0x190ecc,_0x56cc22]=(0x0,_react[_0xe5d4(0x141)])(null),[_0x1ce36d,_0x5d7b48]=(0x0,_react[_0xe5d4(0x141)])(null),[_0x39d6aa,_0x59d51c]=(0x0,_react[_0xe5d4(0x141)])(![]),[_0x4ab9e9,_0x1a6ed7]=(0x0,_react[_0xe5d4(0x141)])(![]),[_0x5a9ba8,_0x274574]=(0x0,_react['useState'])(''),[_0x6e32ce,_0x4bfdb7]=(0x0,_react[_0xe5d4(0x141)])(null),_0x2a7e78=async _0x55e4a1=>{try{const _0x3d5899=await _asyncStorage[_0xe5d4(0x3)]['getItem'](_0x3d33ba[_0xe5d4(0x16c)]);let _0x27cac9=_0x3d5899?JSON[_0xe5d4(0x16d)](_0x3d5899):[];!_0x27cac9[_0xe5d4(0x16e)](_0x55e4a1)&&(_0x27cac9[_0xe5d4(0x16f)](_0x55e4a1),await _asyncStorage[_0xe5d4(0x3)]['setItem'](_0x3d33ba[_0xe5d4(0x16c)],JSON['stringify'](_0x27cac9)),console[_0xe5d4(0x152)](_0x3d33ba['UJyDO'],_0x55e4a1,_0x3d33ba['tJccn'],_0x27cac9));}catch(_0x359ac6){console[_0xe5d4(0x170)](_0x3d33ba[_0xe5d4(0x171)],_0x359ac6);}},_0x30ccc4=async _0x4c462e=>{const _0x3d2fc8={'wDNcD':_0x3d33ba[_0xe5d4(0x172)],'KJvPY':_0x3d33ba[_0xe5d4(0x173)],'Yzpfy':function(_0x453ca8,_0x492dc4){return _0x3d33ba[_0xe5d4(0x174)](_0x453ca8,_0x492dc4);},'YNZxN':function(_0x48b738,_0x5021fa){return _0x3d33ba[_0xe5d4(0x175)](_0x48b738,_0x5021fa);},'fxTPj':function(_0x3a8288,_0x58de7a){return _0x3d33ba[_0xe5d4(0x176)](_0x3a8288,_0x58de7a);},'xvjtR':function(_0x130475,_0x31e95b){return _0x3d33ba['jIaUX'](_0x130475,_0x31e95b);},'wkhMC':_0x3d33ba[_0xe5d4(0x177)]};if(_0xe5d4(0x178)===_0xe5d4(0x178))try{const _0x29b9e2=await _asyncStorage[_0xe5d4(0x3)][_0xe5d4(0x179)](_0x3d33ba[_0xe5d4(0x16c)]);let _0x35f9ef=_0x29b9e2?JSON['parse'](_0x29b9e2):[];_0x35f9ef=_0x35f9ef[_0xe5d4(0x17a)](_0x45bc1c=>_0x45bc1c!==_0x4c462e),await _asyncStorage['default'][_0xe5d4(0x17b)]('connectedPlatforms',JSON[_0xe5d4(0x17c)](_0x35f9ef)),console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x17d)],_0x4c462e,_0xe5d4(0x17e),_0x35f9ef);}catch(_0x293c29){console['error'](_0x3d33ba[_0xe5d4(0x17f)],_0x293c29);}else try{const _0x5c8a4c=new _0x5b353e(_0x3bb58a),_0x3cb1a7=_0x5c8a4c['searchParams'][_0xe5d4(0x10)](_0x3d2fc8[_0xe5d4(0x180)]),_0x4badd4=_0x5c8a4c[_0xe5d4(0x181)][_0xe5d4(0x10)](_0x3d2fc8[_0xe5d4(0x182)])||_0x380e48;_0x3d2fc8[_0xe5d4(0x183)](_0x3cb1a7,_0x4badd4)&&(_0x3d2fc8[_0xe5d4(0x184)](_0x392d40,_0x296039=>({..._0x296039,[_0x4badd4]:{'userName':_0x256660,'connected':!![]}})),_0x3d2fc8[_0xe5d4(0x185)](_0x11edff,_0xf5d81=>({..._0xf5d81,[_0x4badd4]:!![]})),_0x3d2fc8[_0xe5d4(0x186)](_0x803f3d,_0xe5d4(0xb6)));}catch(_0x1811f0){_0x562c7d[_0xe5d4(0x170)](_0x3d2fc8['wkhMC'],_0x1811f0);}},_0x3c9caf=(_0x61711,_0x58b5f0)=>{const _0x296e52={'SfLNu':function(_0x56709b,_0x1bc053){return _0x3d33ba['gtfVa'](_0x56709b,_0x1bc053);},'qIhFn':_0xe5d4(0x187),'DFsFH':function(_0x5a3d05,_0x1bd34b){return _0x3d33ba[_0xe5d4(0x188)](_0x5a3d05,_0x1bd34b);},'MGLGV':function(_0x5dd789){return _0x3d33ba[_0xe5d4(0x189)](_0x5dd789);},'gwNYk':_0x3d33ba['jTMDM'],'rPpya':function(_0x276890,_0x370b6c){return _0x3d33ba['wqRXm'](_0x276890,_0x370b6c);},'lPwTV':_0x3d33ba[_0xe5d4(0x18a)],'IsLQh':_0xe5d4(0x18b),'yMIiV':_0x3d33ba['JTqwh']};_0x3d33ba[_0xe5d4(0x18c)](_0x3d33ba[_0xe5d4(0x18d)],_0x3d33ba[_0xe5d4(0x18d)])?_reactNative[_0xe5d4(0x18e)][_0xe5d4(0x18f)](_0x3d33ba[_0xe5d4(0x190)],_0xe5d4(0x191)+_0x58b5f0+'?',[{'text':'No','style':_0xe5d4(0x192)},{'text':_0x3d33ba[_0xe5d4(0x193)],'style':_0xe5d4(0x194),'onPress':async()=>{const _0x3db5d3={'ysbNv':function(_0x32aea6,_0xbb12fb){return _0x296e52[_0xe5d4(0x195)](_0x32aea6,_0xbb12fb);},'upgjl':_0x296e52[_0xe5d4(0x196)],'SaSrA':function(_0x30aef3,_0x265d25){return _0x30aef3(_0x265d25);}};try{_0x296e52['SfLNu'](_0x5a57b2,_0x23c29f=>({..._0x23c29f,[_0x61711]:_0xe5d4(0x4e)})),_0x296e52[_0xe5d4(0x197)](_0x3ec4d2,_0x1da535=>{const _0x364bf7={..._0x1da535};return delete _0x364bf7[_0x61711],_0x364bf7;}),_0x405cee(_0x229e6d=>({..._0x229e6d,[_0x61711]:![]})),await _0x30ccc4(_0x61711),await _0x296e52[_0xe5d4(0x198)](_0xbf5ef2),console['log'](_0x296e52[_0xe5d4(0x199)],_0x61711);}catch(_0x18c374){_0x296e52['rPpya'](_0x296e52[_0xe5d4(0x19a)],_0x296e52[_0xe5d4(0x19b)])?console[_0xe5d4(0x170)](_0x296e52[_0xe5d4(0x19c)],_0x18c374):(_0x2a3215[_0xe5d4(0x170)](_0xe5d4(0x19d),_0x2eec38),_0x3db5d3['ysbNv'](_0x14cc79,_0x46f4f3[_0xe5d4(0x19e)]||_0x3db5d3['upgjl']),(0x0,_0xc18f1e[_0xe5d4(0x19f)])(_0x7cc852[_0xe5d4(0x1a0)][_0xe5d4(0x1a1)]),_0x3db5d3['SaSrA'](_0x4c0725,_0x3db5d3[_0xe5d4(0x1a2)]));}}}]):(_0x4c6bef[_0xe5d4(0x152)](_0x3d33ba['EINoy']),_0x20e071(_0x21702c),_0x3d33ba[_0xe5d4(0x176)](_0x3f757e,_0x3d33ba['tzJpd']));},_0x379b38=()=>{const _0x14bddf={'TSCfz':_0x3d33ba['yMgTH'],'TNtTR':function(_0x29c214,_0x23559c){return _0x3d33ba[_0xe5d4(0x1a3)](_0x29c214,_0x23559c);},'nqVIF':_0x3d33ba['cQmEf'],'OQTrQ':function(_0xba1580,_0x259150){return _0x3d33ba[_0xe5d4(0x1a4)](_0xba1580,_0x259150);},'yDFjb':function(_0x1caeed){return _0x3d33ba[_0xe5d4(0x189)](_0x1caeed);},'FRviI':function(_0x13d60f,_0x8027d8){return _0x3d33ba['xqxCs'](_0x13d60f,_0x8027d8);},'uaZYn':function(_0x30ea0f,_0x260482){return _0x3d33ba[_0xe5d4(0x1a5)](_0x30ea0f,_0x260482);},'Nyyxi':function(_0x2d03a8,_0x532545){return _0x3d33ba[_0xe5d4(0x1a6)](_0x2d03a8,_0x532545);},'HVvVp':function(_0x431bc7,_0x4cf474){return _0x3d33ba['VtTYi'](_0x431bc7,_0x4cf474);},'JZtAV':_0x3d33ba['kRRUT']};_0x5f3039[_0xe5d4(0x155)]&&_0x3d33ba[_0xe5d4(0x188)](clearInterval,_0x5f3039[_0xe5d4(0x155)]);let _0x593144=0x0;_0x5f3039[_0xe5d4(0x155)]=_0x3d33ba['tAFyR'](setInterval,()=>{_0x593144=_0x14bddf[_0xe5d4(0x1a7)](_0x14bddf[_0xe5d4(0x1a8)](_0x593144,0x1),0x4),_0x14bddf[_0xe5d4(0x1a9)](_0x593144,0x0)?_0x514cdf(''):_0x14bddf[_0xe5d4(0x1aa)](_0x14bddf[_0xe5d4(0x1ab)],_0xe5d4(0x1ac))?_0x14bddf[_0xe5d4(0x1ad)](_0x514cdf,'.'[_0xe5d4(0x1ae)](_0x593144)):(_0x2c0a96['error'](_0x14bddf[_0xe5d4(0x1af)],_0x10a1b7),_0x14bddf[_0xe5d4(0x1b0)](_0x24b6b6,_0x14bddf[_0xe5d4(0x1b1)]),_0x14bddf[_0xe5d4(0x1ad)](_0x12ee59,!![]),_0x14bddf[_0xe5d4(0x1b2)](_0x28e84c));},0x1f4);},_0xcbbaa1=()=>{const _0x243272={'RspZX':_0xe5d4(0x1b3)};_0x3d33ba[_0xe5d4(0x1b4)]('McUNH',_0x3d33ba[_0xe5d4(0x1b5)])?(_0x5f3039[_0xe5d4(0x155)]&&(_0x3d33ba[_0xe5d4(0x1b4)](_0x3d33ba[_0xe5d4(0x1b6)],_0x3d33ba[_0xe5d4(0x1b6)])?(_0x4f4895[_0xe5d4(0x1b7)]=_0x5f1b53,_0x1ed3fc[_0xe5d4(0x1b8)]=_0x987e9a||_0xbbca2f[_0xe5d4(0x1b9)]('@')[0x0]):(_0x3d33ba[_0xe5d4(0x1ba)](clearInterval,_0x5f3039[_0xe5d4(0x155)]),_0x5f3039[_0xe5d4(0x155)]=null)),_0x3d33ba['chuJN'](_0x514cdf,'')):_0x106144=_0x243272['RspZX'];},_0x59bb12=[{'id':_0x3d33ba[_0xe5d4(0x1bb)],'name':_0x3d33ba['TSMxW'],'color':_0x3d33ba[_0xe5d4(0x1bc)]},{'id':_0x3d33ba['EZJhX'],'name':_0x3d33ba['LewJT'],'color':_0x3d33ba[_0xe5d4(0x1bd)]},{'id':_0xe5d4(0x1be),'name':_0x3d33ba[_0xe5d4(0x1bf)],'color':'#0077B5'}],_0x1cd16b=[{'id':_0xe5d4(0x1c0),'name':'Reddit','color':_0x3d33ba[_0xe5d4(0x1bd)]},{'id':_0x3d33ba[_0xe5d4(0x1c1)],'name':_0x3d33ba['IIugG'],'color':'#EA4335'},{'id':_0x3d33ba[_0xe5d4(0x1c2)],'name':_0xe5d4(0x1c3),'color':_0xe5d4(0x1c4)}],_0x321f11=[..._0x59bb12,..._0x1cd16b],_0x7df4cc=async()=>{},_0xbf5ef2=async()=>{},_0xd41758=()=>'disconnected',_0x40ba10=![],_0x49511b=()=>![],[_0x50ac7d,_0x5a57b2]=(0x0,_react['useState'])({}),[_0x36392b,_0x3de518]=(0x0,_react['useState'])(null),_0x58078d=_0x28a0eb=>{return(0x0,_assetRegistry[_0xe5d4(0x1c5)])(_0x28a0eb);},_0x5e9523=(0x0,_react['useRef'])(![]),_0x264792=(0x0,_react['useRef'])(_0x2847d6);(0x0,_react[_0xe5d4(0x146)])(()=>{_0x3d33ba['prFNd'](_0xe5d4(0x1c6),_0x3d33ba[_0xe5d4(0x1c7)])?_0x264792[_0xe5d4(0x155)]=_0x2847d6:(_0x164343[_0xe5d4(0x170)](_0xe5d4(0xeb)),_0x1f83d2[_0xe5d4(0x170)]('🔍\x20Socket\x20state:',{'connected':_0x383e16[_0xe5d4(0x155)]['connected'],'disconnected':_0x3e82f4['current'][_0xe5d4(0x4e)],'id':_0x500d63['current']['id']}),_0x5095ae(_0x3d33ba[_0xe5d4(0x1c8)]),_0x3d33ba[_0xe5d4(0x1c9)](_0x4825d8,!![]),_0x58a710(),_0x4f91bf[_0xe5d4(0x155)]&&(_0x32bacd['current']['disconnect'](),_0x3444c2[_0xe5d4(0x155)]=null));},[_0x2847d6]),(0x0,_react[_0xe5d4(0x146)])(()=>{const _0x51d2af={'MHJJe':'❌\x20[PIN\x20SUBMIT]\x20Failed\x20to\x20continue\x20background\x20training:','DVBZX':function(_0x794f16,_0x3c67c0){return _0x794f16(_0x3c67c0);},'USkGI':function(_0x1f440b,_0x47f376){return _0x1f440b(_0x47f376);},'VaUTo':_0x3d33ba[_0xe5d4(0x1ca)],'xFyyU':function(_0x15493e,_0x17fca3){return _0x15493e===_0x17fca3;},'TCfZN':_0xe5d4(0x1cb),'vbwGb':_0x3d33ba['vAafG'],'niKaq':_0x3d33ba['tkkiL'],'boyaJ':_0x3d33ba[_0xe5d4(0x1cc)],'wywAJ':function(_0x3d564c,_0x279c93){return _0x3d33ba[_0xe5d4(0x167)](_0x3d564c,_0x279c93);},'Lpduv':_0x3d33ba[_0xe5d4(0x1cd)],'EcVtM':function(_0x56151f,_0x5e6a1a){return _0x3d33ba[_0xe5d4(0x1ce)](_0x56151f,_0x5e6a1a);},'ZUlJv':function(_0x31a280,_0x40f233){return _0x31a280===_0x40f233;},'StatX':function(_0x1a3d32,_0x52626d){return _0x3d33ba['gQvOE'](_0x1a3d32,_0x52626d);},'uWqDa':function(_0x1aa501,_0x28da07){return _0x3d33ba[_0xe5d4(0x1cf)](_0x1aa501,_0x28da07);},'witir':_0x3d33ba[_0xe5d4(0x1d0)],'yUaMF':function(_0xa89146,_0x326a86){return _0x3d33ba['JTBGH'](_0xa89146,_0x326a86);},'ZZxFP':_0x3d33ba[_0xe5d4(0x1d1)],'YqLZz':function(_0x12b02b,_0x5cfe3c){return _0x3d33ba[_0xe5d4(0x14b)](_0x12b02b,_0x5cfe3c);},'PyTPi':'👋\x20Welcome\x20back!\x20User\x20has\x20existing\x20connections,\x20skipping\x20to\x20consent\x20screen','RFLgD':function(_0x4e4f07,_0x53fb8d){return _0x3d33ba[_0xe5d4(0x1d2)](_0x4e4f07,_0x53fb8d);},'qwZXU':_0x3d33ba[_0xe5d4(0x1d3)],'GYkpH':function(_0x4311a9,_0x31c608){return _0x3d33ba[_0xe5d4(0x1d4)](_0x4311a9,_0x31c608);},'JtNss':function(_0x2841a5,_0x4b03b8){return _0x3d33ba[_0xe5d4(0x175)](_0x2841a5,_0x4b03b8);},'mrqYE':_0x3d33ba['KSWLH'],'oKBAj':function(_0x4c5c92,_0x3eef34){return _0x3d33ba['kodcC'](_0x4c5c92,_0x3eef34);}};if(_0x3d33ba[_0xe5d4(0x1d5)]!==_0x3d33ba[_0xe5d4(0x1d6)]){if(_0x114320){if(_0x3d33ba[_0xe5d4(0x1d7)]===_0xe5d4(0x1d8))return(0x0,_0x361ce5[_0xe5d4(0x1c5)])(_0xa530e5);else{_0x5e9523['current']=!![],_0x2af44b[_0xe5d4(0x155)]=![],_0x42b287[_0xe5d4(0x1d9)](0x0),_0x3d33ba[_0xe5d4(0x1a3)](_0x273ebb,!![]),_0x3d33ba[_0xe5d4(0x189)](_0x36cb00),_0x3d33ba[_0xe5d4(0x1da)](requestAnimationFrame,()=>{const _0x34eb3c={'iDRyp':_0x3d33ba[_0xe5d4(0x1db)],'XZStN':function(_0x4d0a33,_0x171719){return _0x3d33ba[_0xe5d4(0x1dc)](_0x4d0a33,_0x171719);},'GDHdD':function(_0x8f29b7,_0x281929){return _0x3d33ba[_0xe5d4(0x188)](_0x8f29b7,_0x281929);},'OgKuX':_0x3d33ba[_0xe5d4(0x142)]};_0x3d33ba[_0xe5d4(0x1dd)]===_0x3d33ba[_0xe5d4(0x1de)]?(_0x1ee097[_0xe5d4(0x152)](_0x34eb3c[_0xe5d4(0x1df)]),_0x34eb3c[_0xe5d4(0x1e0)](_0x2eb1a1,![]),_0x34eb3c[_0xe5d4(0x1e0)](_0x530103,[]),_0x34eb3c['GDHdD'](_0xff449b,_0x34eb3c[_0xe5d4(0x1e1)])):_reactNative[_0xe5d4(0x144)][_0xe5d4(0x1e2)](_0x42b287,{'toValue':0x1,'duration':0x12c,'useNativeDriver':!![]})['start']();});const _0x2d6291=_reactNative[_0xe5d4(0x1e3)][_0xe5d4(0x1e4)](_0x3d33ba[_0xe5d4(0x1e5)],_0x437b01);return()=>{_0x51d2af[_0xe5d4(0x1e6)](_0x51d2af[_0xe5d4(0x1e7)],_0xe5d4(0x1cb))?_0x2d6291[_0xe5d4(0x1e8)]():(_0x4a8179[_0xe5d4(0x170)](_0x51d2af[_0xe5d4(0x1e9)],_0x3312d0),_0x51d2af[_0xe5d4(0x1ea)](_0x458ae6,_0xe5d4(0xba)),_0x51d2af[_0xe5d4(0x1eb)](_0x3c9c0f,_0x51d2af[_0xe5d4(0x1ec)]),_0x51d2af[_0xe5d4(0x1ea)](_0x282b6d,!![]));};}}else{if(_0x5e9523['current']&&!_0x2af44b[_0xe5d4(0x155)]){if(_0x3d33ba['gyxAK'](_0xe5d4(0x1ed),_0x3d33ba[_0xe5d4(0x1ee)]))_reactNative[_0xe5d4(0x144)][_0xe5d4(0x1e2)](_0x42b287,{'toValue':0x0,'duration':0xfa,'useNativeDriver':!![]})[_0xe5d4(0x1ef)](()=>{const _0x56f8db={'kSBZQ':function(_0x236b25,_0x46bac9){return _0x3d33ba[_0xe5d4(0x1f0)](_0x236b25,_0x46bac9);},'Kkhzr':function(_0x17ed6c,_0x662407){return _0x3d33ba[_0xe5d4(0x1a6)](_0x17ed6c,_0x662407);}};if(_0x3d33ba[_0xe5d4(0x1f1)](_0x3d33ba[_0xe5d4(0x1f2)],_0x3d33ba[_0xe5d4(0x1f3)]))setTimeout(()=>{var _0x42fd83;_0x56f8db['kSBZQ'](_0x273ebb,![]),_0x56f8db[_0xe5d4(0x1f4)](_0x42fd83=_0x264792[_0xe5d4(0x155)],null)||_0x42fd83===void 0x0||_0x42fd83['call'](_0x264792);},0x10);else{const _0x2d0750=_0xe5d4(0x1f5)['split']('|');let _0x98e63e=0x0;while(!![]){switch(_0x2d0750[_0x98e63e++]){case'0':_0x34db35['log'](_0x51d2af[_0xe5d4(0x1f6)]);continue;case'1':_0x5a1638[_0xe5d4(0x152)](_0xe5d4(0x1f7));continue;case'2':if(!_0x56394c)throw new _0x4ac3fb(_0x51d2af[_0xe5d4(0x1f8)]);continue;case'3':_0x17ac3c[_0xe5d4(0x152)](_0xe5d4(0xd2));continue;case'4':_0x529357[_0xe5d4(0x152)](_0x51d2af['boyaJ'],(_0x51d2af[_0xe5d4(0x1f9)](_0x372f44,null)||_0x51d2af[_0xe5d4(0x1e6)](_0x196c35,void 0x0)?void 0x0:_0x269588[_0xe5d4(0x1fa)](0x0,0x14))+_0xe5d4(0x15f));continue;case'5':_0x4a2931[_0xe5d4(0x152)](_0xe5d4(0x1fb),_0x495940);continue;}break;}}});else{var _0x319b35,_0x4755e8,_0x47b877,_0x5f1d16;_0x56801c[_0xe5d4(0x152)](_0x51d2af[_0xe5d4(0x1fc)]),_0x1e588b['log'](_0xe5d4(0x1fd),{'isNewUser':_0x35eb93['isNewUser'],'flowType':_0xa0ffb2[_0xe5d4(0x1fe)],'hasExistingData':_0x51d2af[_0xe5d4(0x1ff)](_0x319b35=_0x176c85[_0xe5d4(0x200)],null)||_0x51d2af['xFyyU'](_0x319b35,void 0x0)?void 0x0:_0x319b35[_0xe5d4(0x201)],'connectionsCount':((_0x4755e8=_0x439d29['existingUserData'])===null||_0x51d2af[_0xe5d4(0x202)](_0x4755e8,void 0x0)||_0x51d2af['StatX'](_0x4755e8=_0x4755e8[_0xe5d4(0x203)],null)||_0x51d2af[_0xe5d4(0x1e6)](_0x4755e8,void 0x0)?void 0x0:_0x4755e8[_0xe5d4(0x204)])||0x0});const _0x5173de=_0x51d2af[_0xe5d4(0x202)](_0x53ccea[_0xe5d4(0x205)],![])||_0x51d2af['uWqDa'](_0x498f0c['flowType'],_0x51d2af['witir']),_0x26c501=_0x51d2af[_0xe5d4(0x206)](_0x47b877=_0x1ed244[_0xe5d4(0x200)],null)||_0x51d2af[_0xe5d4(0x207)](_0x47b877,void 0x0)?void 0x0:_0x47b877['connections'],_0xd5324f=_0x3629f9[_0xe5d4(0x208)](_0x26c501)?_0x26c501:[],_0x17655f=_0xd5324f[_0xe5d4(0x17a)](_0x511523=>_0x511523&&(_0x511523['hasData']||_0x511523[_0xe5d4(0x209)]==='active'))[_0xe5d4(0x20a)](_0x27894f=>_0x27894f===null||_0x27894f===void 0x0?void 0x0:_0x27894f['platform'])[_0xe5d4(0x17a)](_0x2418f7);_0x2a9d00[_0xe5d4(0x152)](_0x51d2af['ZZxFP'],{'isReturning':_0x5173de,'connectedPlatformNames':_0x17655f,'showWelcomeBack':_0x51d2af['YqLZz'](_0x5f1d16=_0x392ed6[_0xe5d4(0x20b)],null)||_0x5f1d16===void 0x0?void 0x0:_0x5f1d16[_0xe5d4(0x20c)]}),_0x5173de&&_0x17655f[_0xe5d4(0x204)]>0x0?(_0x7ff8f4[_0xe5d4(0x152)](_0x51d2af['PyTPi']),_0x51d2af[_0xe5d4(0x1ea)](_0x183b72,!![]),_0x51d2af[_0xe5d4(0x20d)](_0x2e8163,_0x17655f),_0x51d2af[_0xe5d4(0x1ea)](_0x10b53b,_0x51d2af['qwZXU'])):(_0x22e081[_0xe5d4(0x152)]('🆕\x20New\x20user\x20or\x20no\x20existing\x20connections,\x20showing\x20platform\x20connection\x20screen'),_0x51d2af[_0xe5d4(0x20e)](_0x44b265,![]),_0x51d2af[_0xe5d4(0x1eb)](_0x2ef9ff,[]),_0x51d2af[_0xe5d4(0x20f)](_0x5df3dc,_0x51d2af[_0xe5d4(0x210)]));}}else _0x5e9523['current']&&_0x2af44b['current']&&(_0x3d33ba['BAZgp'](_0x3d33ba[_0xe5d4(0x211)],_0x3d33ba[_0xe5d4(0x212)])?(_0x336d35['log']('🔌\x20Cleaning\x20up\x20socket\x20connection...'),_0x1e27ec[_0xe5d4(0x155)][_0xe5d4(0x213)](),_0x21d111[_0xe5d4(0x155)]=null):(_0x3d33ba[_0xe5d4(0x1f0)](_0x273ebb,![]),_0x2af44b['current']=![]));}}else _0x51d2af['oKBAj'](_0x17cb1e,![]);},[_0x114320]),(0x0,_react['useEffect'])(()=>{const _0x34ce43={'KiYHE':_0x3d33ba[_0xe5d4(0x214)],'kTnji':_0x3d33ba[_0xe5d4(0x215)],'Bndak':function(_0x1a4a54){return _0x3d33ba[_0xe5d4(0x216)](_0x1a4a54);}};if(_0x3d33ba[_0xe5d4(0x1b4)](_0xe5d4(0x217),_0x3d33ba[_0xe5d4(0x218)]))return()=>{if(_0x2d570b['current']){if(_0x34ce43[_0xe5d4(0x219)]!==_0x34ce43['KiYHE'])return _0x4574a9&&_0x18aacb[_0xe5d4(0x0)]?_0x5de1f4:{'default':_0x52b5f7};else console[_0xe5d4(0x152)](_0x34ce43[_0xe5d4(0x21a)]),_0x2d570b[_0xe5d4(0x155)]['disconnect'](),_0x2d570b[_0xe5d4(0x155)]=null;}_0x34ce43[_0xe5d4(0x21b)](_0xcbbaa1);};else _0x457417(![]),_0x531ac3[_0xe5d4(0x155)]=![];},[_0x114320]);const _0x437b01=(0x0,_react[_0xe5d4(0x21c)])(({url:_0x33e39c})=>{(0x0,_platformAuthService[_0xe5d4(0x21d)])(_0x33e39c)&&(_0x3d33ba[_0xe5d4(0x18c)](_0x3d33ba[_0xe5d4(0x21e)],_0x3d33ba[_0xe5d4(0x21f)])?_0x550273['error'](_0xe5d4(0x21),_0xac3849):_0x1eef51(_0x33e39c));},[]);(0x0,_react['useEffect'])(()=>{const _0x457ed9={'nNKWg':function(_0x562c0e,_0x1b5238){return _0x562c0e(_0x1b5238);},'MYnAC':function(_0x59b226){return _0x59b226();},'zrnVx':_0x3d33ba['GlhYw']},_0x23b1fb=async()=>{const _0x57bb35={'jAeqY':_0x3d33ba['IaAww'],'UWfPx':function(_0x2e1309,_0x4f7307){return _0x3d33ba['QjMWC'](_0x2e1309,_0x4f7307);},'CBRdX':_0x3d33ba[_0xe5d4(0x220)],'dzLFV':function(_0x569ce1,_0x2dc020){return _0x3d33ba[_0xe5d4(0x221)](_0x569ce1,_0x2dc020);},'EfUHn':'verification','dxAqs':function(_0x27d507,_0x50a630){return _0x3d33ba[_0xe5d4(0x175)](_0x27d507,_0x50a630);}};try{if(_0x3d33ba[_0xe5d4(0x222)]===_0x3d33ba[_0xe5d4(0x222)]){const _0x1787b9=await _asyncStorage['default'][_0xe5d4(0x179)](_0x3d33ba['KYvDT']),_0x17252c=await _asyncStorage[_0xe5d4(0x3)][_0xe5d4(0x179)](_0x3d33ba['wotBk']);if(_0x3d33ba[_0xe5d4(0x223)](_0x1787b9,_0x17252c)){const _0x3b6ad7=_0x3d33ba[_0xe5d4(0x224)][_0xe5d4(0x1b9)]('|');let _0x1ab308=0x0;while(!![]){switch(_0x3b6ad7[_0x1ab308++]){case'0':await _asyncStorage[_0xe5d4(0x3)][_0xe5d4(0x225)](_0x3d33ba['KYvDT']);continue;case'1':console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x226)]);continue;case'2':_0x14842b(_0x1787b9);continue;case'3':_0x3d33ba[_0xe5d4(0x14f)](_0x20453a,JSON[_0xe5d4(0x16d)](_0x17252c));continue;case'4':await _asyncStorage[_0xe5d4(0x3)][_0xe5d4(0x225)](_0x3d33ba['wotBk']);continue;case'5':_0x3d33ba[_0xe5d4(0x1d4)](_0x5bc8e1,!![]);continue;}break;}}const _0x2d009b=await(0x0,_jwtStorageService[_0xe5d4(0x227)])();_0x3d33ba['MiGmp'](_0x491998,_0x2d009b);if(_0x2d009b){var _0x2da973;const _0x236e47=await(0x0,_authService[_0xe5d4(0x228)])(),_0x5904cb=await _asyncStorage[_0xe5d4(0x3)][_0xe5d4(0x179)]('user_email'),_0x863749=_0x236e47||(_0x15ff12===null||_0x3d33ba[_0xe5d4(0x229)](_0x15ff12,void 0x0)||_0x3d33ba[_0xe5d4(0x22a)](_0x2da973=_0x15ff12['email'],null)||_0x2da973===void 0x0?void 0x0:_0x2da973['split']('@')[0x0])||(_0x15ff12===null||_0x3d33ba[_0xe5d4(0x14c)](_0x15ff12,void 0x0)?void 0x0:_0x15ff12[_0xe5d4(0x22b)])||_0x3d33ba[_0xe5d4(0x22c)];console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x22d)],_0x863749),_0x3d33ba[_0xe5d4(0x22e)](_0x13d180,{'username':_0x863749,'email':_0x5904cb||(_0x3d33ba[_0xe5d4(0x167)](_0x15ff12,null)||_0x3d33ba['IEBoG'](_0x15ff12,void 0x0)?void 0x0:_0x15ff12[_0xe5d4(0x1b7)])||null,'id':null}),_0x3d33ba[_0xe5d4(0x1d4)](_0x2f47ae,_0x863749);if(_0x5904cb&&_0x3d33ba[_0xe5d4(0x148)](_0x203f9b,_0x3d33ba[_0xe5d4(0x22f)])&&!primaryAuthOnly){console[_0xe5d4(0x152)](_0xe5d4(0x230),_0x5904cb);const _0x8b66f7=await _asyncStorage[_0xe5d4(0x3)]['getItem'](_0x3d33ba[_0xe5d4(0x16c)]),_0x20342c=_0x8b66f7?JSON['parse'](_0x8b66f7):[];if(_0x3d33ba[_0xe5d4(0x231)](_0x20342c[_0xe5d4(0x204)],0x0)){if(_0x3d33ba['mAGtq'](_0x3d33ba[_0xe5d4(0x232)],_0x3d33ba['SNrAL']))console['log'](_0x3d33ba[_0xe5d4(0x233)],_0x20342c),console[_0xe5d4(0x152)](_0xe5d4(0x234)),_0x3d33ba['LbVFf'](_0x20bf47,_0x5904cb),_0x3d33ba[_0xe5d4(0x235)](_0xae51cf,!![]),_0x3d33ba[_0xe5d4(0x236)](_0x31603f,_0x20342c),_0x3d33ba[_0xe5d4(0x188)](_0xb016cd,'consent');else{const _0xcc8fc5=_0x57bb35[_0xe5d4(0x237)]['split']('|');let _0x3a2b19=0x0;while(!![]){switch(_0xcc8fc5[_0x3a2b19++]){case'0':_0x57bb35[_0xe5d4(0x238)](_0x1009c4,_0x57bb35[_0xe5d4(0x239)]);continue;case'1':_0x1e24f5[_0xe5d4(0x152)]('🧪\x20Test\x20bypass\x20detected\x20-\x20skipping\x20to\x20verification\x20screen');continue;case'2':return;case'3':_0x57bb35[_0xe5d4(0x238)](_0x343222,![]);continue;case'4':_0x57bb35[_0xe5d4(0x23a)](_0x37af49,_0x57bb35[_0xe5d4(0x23b)]);continue;}break;}}}else _0x3d33ba[_0xe5d4(0x1cf)](_0xe5d4(0x23c),_0x3d33ba[_0xe5d4(0x23d)])?(_0x57bb35[_0xe5d4(0x23a)](_0xa166e8,_0x3cba82=>({..._0x3cba82,[_0x30c43e]:!_0x3cba82[_0xa81212]})),_0x57bb35[_0xe5d4(0x23e)](_0x3ad6aa,_0x32004a=>{const _0x531c3f={..._0x32004a};return delete _0x531c3f[_0x1cbcb0],_0x531c3f;})):(console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x23f)]),_0x3d33ba['gtfVa'](_0x20bf47,_0x5904cb),_0x3d33ba[_0xe5d4(0x240)](_0xb016cd,_0x3d33ba[_0xe5d4(0x142)]));}}}else{_0x288163['error'](_0xe5d4(0x241),_0x50ed38);throw _0x4d7da1;}}catch(_0x3dd03){if(_0x3d33ba[_0xe5d4(0x229)](_0x3d33ba['bUWqw'],_0x3d33ba['qDMDt'])){_0x1a01c1['current']=!![],_0xdb364c['current']=![],_0x3d8740[_0xe5d4(0x1d9)](0x0),_0x457ed9[_0xe5d4(0x242)](_0x25cc8e,!![]),_0x457ed9[_0xe5d4(0x243)](_0x3ba763),_0x192e95(()=>{_0x1f1203[_0xe5d4(0x144)][_0xe5d4(0x1e2)](_0x461923,{'toValue':0x1,'duration':0x12c,'useNativeDriver':!![]})[_0xe5d4(0x1ef)]();});const _0x5dc4d3=_0x2e0356['Linking']['addEventListener'](_0x457ed9[_0xe5d4(0x244)],_0x2c579e);return()=>{_0x5dc4d3['remove']();};}else{var _0x36d8fa;console[_0xe5d4(0x170)](_0x3d33ba['lYMrA'],_0x3dd03);const _0x178a96=(_0x3d33ba[_0xe5d4(0x245)](_0x15ff12,null)||_0x3d33ba[_0xe5d4(0x148)](_0x15ff12,void 0x0)||_0x3d33ba[_0xe5d4(0x246)](_0x36d8fa=_0x15ff12['email'],null)||_0x3d33ba['uMFUT'](_0x36d8fa,void 0x0)?void 0x0:_0x36d8fa['split']('@')[0x0])||(_0x15ff12===null||_0x15ff12===void 0x0?void 0x0:_0x15ff12[_0xe5d4(0x22b)])||_0x3d33ba[_0xe5d4(0x22c)];_0x3d33ba[_0xe5d4(0x1f0)](_0x13d180,{'username':_0x178a96,'email':(_0x3d33ba[_0xe5d4(0x247)](_0x15ff12,null)||_0x3d33ba['uMFUT'](_0x15ff12,void 0x0)?void 0x0:_0x15ff12[_0xe5d4(0x1b7)])||null,'id':null}),_0x2f47ae(_0x178a96);}}};_0x114320&&_0x23b1fb();},[_0x114320,_0x15ff12,_0x203f9b,primaryAuthOnly]);const _0x36cb00=async()=>{const _0xb29fe2={'Yzkts':_0x3d33ba[_0xe5d4(0x248)],'OJShv':_0xe5d4(0x160),'gmcrs':_0xe5d4(0x14),'xUoLT':_0xe5d4(0xed)};if(_0x3d33ba[_0xe5d4(0x1b4)](_0x3d33ba['qFgeQ'],_0x3d33ba[_0xe5d4(0x249)]))_0x1a0d8f(![]);else try{if(_0x3d33ba[_0xe5d4(0x1f1)](_0xe5d4(0x24a),_0x3d33ba[_0xe5d4(0x24b)]))_0x1ab306[_0xe5d4(0x152)](_0xb29fe2[_0xe5d4(0x24c)],_0xce6736?_0x3b0b83[_0xe5d4(0x1fa)](0x0,0x14)+_0xe5d4(0x15f):_0xb29fe2[_0xe5d4(0x24d)]),_0x2f69cb[_0xe5d4(0x152)](_0xb29fe2[_0xe5d4(0x24e)]),_0x1c3ea9(_0xb29fe2[_0xe5d4(0x24f)]);else{const _0x44f385=await(0x0,_authService['getOnairosUsername'])(),_0x40ad18=(_0x3d33ba[_0xe5d4(0x1a6)](_0x15ff12,null)||_0x15ff12===void 0x0?void 0x0:_0x15ff12[_0xe5d4(0x1b7)])||(_0x3d33ba[_0xe5d4(0x250)](_0x15ff12,null)||_0x3d33ba[_0xe5d4(0x251)](_0x15ff12,void 0x0)?void 0x0:_0x15ff12[_0xe5d4(0x22b)])||_0xe5d4(0x252)+Math[_0xe5d4(0x253)](_0x3d33ba[_0xe5d4(0x254)](Math[_0xe5d4(0x255)](),0x2710)),_0x4da718=_0x3d33ba[_0xe5d4(0x256)](_0x44f385,_0x40ad18);console['log'](_0x3d33ba[_0xe5d4(0x257)],{'storedUsername':_0x44f385,'fallbackUsername':_0x40ad18,'finalUsername':_0x4da718}),_0x2f47ae(_0x4da718);const _0x4a4d60=await _0x3d33ba[_0xe5d4(0x216)](_0xd41758);console['log'](_0x3d33ba[_0xe5d4(0x258)],_0x4a4d60),_0x3d33ba[_0xe5d4(0x236)](_0x3ec4d2,_0x4a4d60);const _0x440b85={};Object[_0xe5d4(0x259)](_0x4a4d60)[_0xe5d4(0x25a)](_0x166efd=>{var _0x37e1e8;_0x440b85[_0x166efd]=_0x3d33ba[_0xe5d4(0x25b)](_0x37e1e8=_0x4a4d60[_0x166efd],null)&&_0x3d33ba[_0xe5d4(0x25c)](_0x37e1e8,void 0x0)&&_0x37e1e8[_0xe5d4(0x4d)]?_0x3d33ba[_0xe5d4(0x25d)]:_0x3d33ba[_0xe5d4(0x25e)];}),_0x3d33ba[_0xe5d4(0x221)](_0x5a57b2,_0x440b85);const _0x5a9cf7={};Object[_0xe5d4(0x259)](_0x4a4d60)[_0xe5d4(0x25a)](_0x4181ae=>{var _0x92fd81;_0x5a9cf7[_0x4181ae]=(_0x3d33ba[_0xe5d4(0x25f)](_0x92fd81=_0x4a4d60[_0x4181ae],null)||_0x3d33ba[_0xe5d4(0x246)](_0x92fd81,void 0x0)?void 0x0:_0x92fd81[_0xe5d4(0x4d)])||![];}),_0x3d33ba[_0xe5d4(0x260)](_0x405cee,_0x5a9cf7),console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x261)],_0x440b85),console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x262)],_0x5a9cf7);}}catch(_0x1cf389){console[_0xe5d4(0x170)](_0xe5d4(0x263),_0x1cf389),_0x3d33ba['DzYAt'](_0x3ec4d2,{}),_0x3d33ba['JJRPy'](_0x5a57b2,{}),_0x405cee({});const _0x236f56=(_0x15ff12===null||_0x3d33ba['bPvjU'](_0x15ff12,void 0x0)?void 0x0:_0x15ff12[_0xe5d4(0x1b7)])||(_0x15ff12===null||_0x3d33ba[_0xe5d4(0x251)](_0x15ff12,void 0x0)?void 0x0:_0x15ff12[_0xe5d4(0x22b)])||_0xe5d4(0x252)+Math['floor'](_0x3d33ba[_0xe5d4(0x264)](Math[_0xe5d4(0x255)](),0x2710));_0x2f47ae(_0x236f56);}},_0x4763ba=()=>{const _0x40a6c9={'TfWJe':function(_0x5b947b,_0x4581eb){return _0x5b947b===_0x4581eb;},'qVhIJ':_0x3d33ba[_0xe5d4(0x265)],'ICpaC':function(_0x33a214,_0x3eab0d){return _0x3d33ba[_0xe5d4(0x266)](_0x33a214,_0x3eab0d);},'eRIFU':function(_0x310acf){return _0x3d33ba[_0xe5d4(0x216)](_0x310acf);},'tXftA':function(_0x372d8b,_0x198683){return _0x3d33ba[_0xe5d4(0x221)](_0x372d8b,_0x198683);}};if(_0xe5d4(0x267)!==_0x3d33ba[_0xe5d4(0x268)]){const _0x13b4fd=_0x2af44b['current'];_reactNative[_0xe5d4(0x144)][_0xe5d4(0x1e2)](_0x42b287,{'toValue':0x0,'duration':0xfa,'useNativeDriver':!![]})[_0xe5d4(0x1ef)](()=>{const _0x4c6308={'ObKMX':function(_0x345889,_0x22986a){return _0x3d33ba[_0xe5d4(0x1d2)](_0x345889,_0x22986a);},'CGlZM':_0x3d33ba[_0xe5d4(0x269)],'LbVoP':_0x3d33ba[_0xe5d4(0x153)],'UgwMs':_0x3d33ba[_0xe5d4(0x26a)],'SVcRN':_0x3d33ba[_0xe5d4(0x26b)]};_0x3d33ba[_0xe5d4(0x26c)]('ZNqiv',_0xe5d4(0x26d))?_0x3d33ba[_0xe5d4(0x26e)](setTimeout,()=>{_0x40a6c9[_0xe5d4(0x26f)](_0x40a6c9[_0xe5d4(0x270)],_0x40a6c9[_0xe5d4(0x270)])?(_0x40a6c9[_0xe5d4(0x271)](_0x273ebb,![]),!_0x13b4fd&&_0x40a6c9['eRIFU'](_0x2847d6)):(_0x8933e0[_0xe5d4(0x152)](_0xe5d4(0x61),_0x491364[_0xe5d4(0x19e)]),_0x4c6308['ObKMX'](_0x218484,_0x449a59['message']||_0xe5d4(0x272)));},0x64):(_0x16204f[_0xe5d4(0x152)](_0x4c6308[_0xe5d4(0x273)],_0x656078),_0xb7807c[_0xe5d4(0x152)](_0x4c6308[_0xe5d4(0x274)],_0x43ece5),_0x24645d[_0xe5d4(0x152)](_0x4c6308[_0xe5d4(0x275)],_0x1a8cdc),_0x3b34f3[_0xe5d4(0x152)](_0x4c6308[_0xe5d4(0x276)],_0x2de1d5));});}else _0x40a6c9[_0xe5d4(0x277)](_0x1734c1,![]);},_0x5f11e4=()=>{const _0x1879a5={'BKpGa':_0x3d33ba[_0xe5d4(0x23f)],'HcOlX':function(_0x16a7ee,_0x850f6){return _0x3d33ba[_0xe5d4(0x1a4)](_0x16a7ee,_0x850f6);},'Hclwv':function(_0x1b4e56,_0x97d75d){return _0x3d33ba[_0xe5d4(0x278)](_0x1b4e56,_0x97d75d);},'rYcKV':_0x3d33ba[_0xe5d4(0x142)]};if(_0x3d33ba['xPcSc'](_0x3d33ba[_0xe5d4(0x279)],_0x3d33ba[_0xe5d4(0x279)])){(0x0,_haptics['triggerHaptic'])(_haptics['HapticType'][_0xe5d4(0x27a)]);if(primaryAuthOnly){console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x27b)]),_0x3d33ba['woUdn'](_0xb016cd,_0xe5d4(0x2f));return;}console[_0xe5d4(0x152)](_0x3d33ba['LgyKu']),_0x3d33ba[_0xe5d4(0x27c)](_0xb016cd,_0x3d33ba[_0xe5d4(0x166)]);}else _0x853817['log'](_0x1879a5[_0xe5d4(0x27d)]),_0x1879a5[_0xe5d4(0x27e)](_0x5dda0f,_0xb2143e),_0x1879a5['Hclwv'](_0x9035c7,_0x1879a5[_0xe5d4(0x27f)]);},_0x20e2da=async _0x2492dd=>{const _0x1c1b4f={'moaTL':'ℹ️\x20No\x20existing\x20connections\x20found\x20-\x20proceeding\x20to\x20platforms\x20step'};(0x0,_haptics[_0xe5d4(0x19f)])(_haptics[_0xe5d4(0x1a0)][_0xe5d4(0x27a)]),_0xcf797b(!![]),_0x3d33ba[_0xe5d4(0x280)](_0x3a50ee,'');try{if(_0x3d33ba[_0xe5d4(0x281)](_0x2492dd,_0x3d33ba['EmkFg'])){if(_0x3d33ba[_0xe5d4(0x282)]!==_0x3d33ba['JlvCo'])_0x3341c2[_0xe5d4(0x152)](_0x1c1b4f[_0xe5d4(0x283)]);else{console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x284)]),await _asyncStorage[_0xe5d4(0x3)]['setItem'](_0x3d33ba['GUuhL'],_0x3d33ba[_0xe5d4(0x285)]),await(0x0,_jwtStorageService[_0xe5d4(0x286)])(_0x3d33ba[_0xe5d4(0x287)]),_0x3d33ba[_0xe5d4(0x288)](_0x20bf47,_0x2492dd),_0x3d33ba[_0xe5d4(0x289)](_0xb016cd,_0x3d33ba['KSWLH']),_0x3d33ba[_0xe5d4(0x28a)](_0xcf797b,![]);return;}}if(_0x3d33ba[_0xe5d4(0x28b)](_0x2492dd,'test@bypass.com')){if(_0x3d33ba['lmSaP'](_0x3d33ba[_0xe5d4(0x28c)],_0x3d33ba[_0xe5d4(0x28c)]))_0x3d33ba[_0xe5d4(0x27c)](_0x536605,_0x4daafe['status']||_0x3d33ba[_0xe5d4(0x28d)]),_0x16d901[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x28e)],_0x5844c7['progress'],'%');else{const _0x4a18d4=_0xe5d4(0x28f)['split']('|');let _0x1c3dda=0x0;while(!![]){switch(_0x4a18d4[_0x1c3dda++]){case'0':_0x3d33ba[_0xe5d4(0x290)](_0x20bf47,_0x3d33ba['YQtkd']);continue;case'1':_0x3d33ba[_0xe5d4(0x291)](_0xb016cd,_0xe5d4(0x1a));continue;case'2':_0xcf797b(![]);continue;case'3':console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x292)]);continue;case'4':return;}break;}}}console[_0xe5d4(0x152)](_0xe5d4(0x293),_0x2492dd);const _0x44a1a4=await(0x0,_authService[_0xe5d4(0x294)])(_0x2492dd);if(_0x44a1a4[_0xe5d4(0x295)])console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x296)]),_0x20bf47(_0x2492dd),_0x3d33ba['LQJuP'](_0xb016cd,_0x3d33ba['tzJpd']);else{if(_0x3d33ba[_0xe5d4(0x297)](_0x3d33ba[_0xe5d4(0x298)],_0x3d33ba[_0xe5d4(0x299)])){var _0x4c2265;_0x35b693['log'](_0x3d33ba[_0xe5d4(0x29a)],_0x4c2663),_0x2f0478['log'](_0xe5d4(0x29b),{'reason':_0x308690,'wasConnected':_0x54127a,'socketId':(_0x4c2265=_0x583ddd[_0xe5d4(0x155)])===null||_0x3d33ba[_0xe5d4(0x29c)](_0x4c2265,void 0x0)?void 0x0:_0x4c2265['id']}),_0x3d33ba[_0xe5d4(0x1ba)](_0x5a4aab,![]);}else console['log'](_0x3d33ba['tKCOd'],_0x44a1a4[_0xe5d4(0x19e)]),_0x3d33ba['VJxJl'](_0x3a50ee,_0x44a1a4[_0xe5d4(0x19e)]||_0x3d33ba[_0xe5d4(0x29d)]);}}catch(_0x226cee){console['error'](_0xe5d4(0x29e),_0x226cee),_0x3d33ba[_0xe5d4(0x29f)](_0x3a50ee,_0x3d33ba[_0xe5d4(0x2a0)]);}finally{_0xe5d4(0x62)===_0x3d33ba['WILyb']?_0x3d33ba['zQyDY'](_0xcf797b,![]):_0x4be3d6=_0x3d33ba['BBtnk'];}},_0xd0a0a=async()=>{(0x0,_haptics[_0xe5d4(0x19f)])(_haptics['HapticType']['BUTTON_PRESS']),_0x3d33ba[_0xe5d4(0x2a1)](_0xcf797b,!![]),_0x3d33ba[_0xe5d4(0x176)](_0x3a50ee,'');try{if(_0x3d33ba[_0xe5d4(0x2a2)](_0x3d33ba['hfHMk'],_0x3d33ba[_0xe5d4(0x2a3)]))_0x3d33ba[_0xe5d4(0x2a4)](_0x160721,null);else{console[_0xe5d4(0x152)](_0x3d33ba['fUbde']);const _0x726884=await(0x0,_googleAuthService[_0xe5d4(0x2a5)])();if(_0x726884[_0xe5d4(0x295)]&&_0x726884['user']){console[_0xe5d4(0x152)](_0xe5d4(0x2a6),_0x726884['user'][_0xe5d4(0x1b7)]),console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2a7)],_0x726884[_0xe5d4(0x205)]),_0x3d33ba[_0xe5d4(0x291)](_0x20bf47,_0x726884['user']['email']);const _0x182c6e=_0x726884[_0xe5d4(0x2a8)]['username']||_0x726884[_0xe5d4(0x2a8)][_0xe5d4(0x1b7)][_0xe5d4(0x1b9)]('@')[0x0];_0x3d33ba[_0xe5d4(0x2a9)](_0x2f47ae,_0x182c6e);if(_0x726884[_0xe5d4(0x205)]===![]){console[_0xe5d4(0x152)](_0x3d33ba['nnXlV']);try{if(_0x3d33ba[_0xe5d4(0x2aa)]===_0x3d33ba[_0xe5d4(0x2aa)]){const _0x393d65=await(0x0,_connectedAccountsService[_0xe5d4(0x2ab)])(_0x726884[_0xe5d4(0x2a8)]['email'],_0x726884[_0xe5d4(0x2a8)]['id'],_0x182c6e);if(_0x393d65&&_0x3d33ba[_0xe5d4(0x231)](_0x393d65['length'],0x0)){console['log'](_0xe5d4(0x2ac)+_0x393d65[_0xe5d4(0x204)]+_0xe5d4(0x2ad)),_0x3d33ba['tDTaE'](_0xae51cf,!![]),_0x31603f(_0x393d65[_0xe5d4(0x20a)](_0x40050a=>_0x40050a[_0xe5d4(0x22)])),_0x3d33ba[_0xe5d4(0x2ae)](_0xb016cd,_0x3d33ba[_0xe5d4(0x1d3)]),(0x0,_haptics[_0xe5d4(0x19f)])(_haptics['HapticType']['SUCCESS']);return;}else console[_0xe5d4(0x152)](_0x3d33ba['wYsLp']);}else _0x5a3804[_0xe5d4(0x155)]&&(_0x3d33ba['oQBkT'](_0x28b6f5,_0x1c96fb[_0xe5d4(0x155)]),_0x338dba[_0xe5d4(0x155)]=null),_0x3d33ba[_0xe5d4(0x280)](_0xff686d,'');}catch(_0x13f5a2){if(_0x3d33ba[_0xe5d4(0x25c)](_0xe5d4(0x2af),'WCMfY')){_0x34274f[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2b0)],_0x566bcf[_0xe5d4(0x19e)]),_0xe0a77a['log'](_0x3d33ba['YTbYR'],_0x51e0ec['features']),_0x3d33ba[_0xe5d4(0x2b1)](_0x5b1023,!![]);if(_0x396b89[_0xe5d4(0x2b2)]){const _0x44f8b9=_0x3d33ba[_0xe5d4(0x2b3)][_0xe5d4(0x1b9)]('|');let _0x108e4e=0x0;while(!![]){switch(_0x44f8b9[_0x108e4e++]){case'0':_0x659540[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2b4)],_0x296cec['features']['compression']);continue;case'1':_0x4b1362[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2b5)],_0x1e1e4e[_0xe5d4(0x2b2)]['databases']);continue;case'2':_0x170038['log'](_0x3d33ba[_0xe5d4(0x2b6)],_0x14bb89['features']['inference']);continue;case'3':_0x300fae['log'](_0x3d33ba[_0xe5d4(0x2b7)],_0x6d03f[_0xe5d4(0x2b2)][_0xe5d4(0x2b8)]);continue;case'4':_0x174cf5[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2b9)],_0x504283[_0xe5d4(0x2b2)][_0xe5d4(0x2ba)]);continue;case'5':_0xc1261[_0xe5d4(0x152)](_0x3d33ba['vxzYz'],_0x30ab8c['features'][_0xe5d4(0x2bb)]);continue;case'6':_0x553534[_0xe5d4(0x152)](_0x3d33ba['LNxpl'],_0x29a3e4['features'][_0xe5d4(0x2bc)]);continue;}break;}}_0x3d33ba[_0xe5d4(0x1a3)](_0x44f24e,_0x3d33ba[_0xe5d4(0x2bd)]),_0x3d33ba[_0xe5d4(0x14f)](_0x5c5bef,0x19);}else console['log'](_0x3d33ba[_0xe5d4(0x2be)],_0x13f5a2);}}_0x3d33ba[_0xe5d4(0x188)](_0xb016cd,_0xe5d4(0x2f)),(0x0,_haptics['triggerHaptic'])(_haptics['HapticType'][_0xe5d4(0x2bf)]);}else _0x726884['cancelled']?console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2c0)]):(_0x3d33ba[_0xe5d4(0x2c1)](_0x3a50ee,_0x726884[_0xe5d4(0x19e)]||_0x3d33ba[_0xe5d4(0x2c2)]),(0x0,_haptics['triggerHaptic'])(_haptics[_0xe5d4(0x1a0)][_0xe5d4(0x1a1)]));}}catch(_0x22d96d){console[_0xe5d4(0x170)](_0xe5d4(0x19d),_0x22d96d),_0x3d33ba['knVEA'](_0x3a50ee,_0x22d96d[_0xe5d4(0x19e)]||_0x3d33ba['ZyAMt']),(0x0,_haptics[_0xe5d4(0x19f)])(_haptics['HapticType'][_0xe5d4(0x1a1)]),_0x3d33ba[_0xe5d4(0x2a1)](_0x3a50ee,_0xe5d4(0x187));}finally{_0x3d33ba[_0xe5d4(0x2c3)](_0xcf797b,![]);}},_0x5c3ffb=async _0xb06d46=>{const _0x5ca8da={'cWbEy':_0x3d33ba[_0xe5d4(0x2c4)],'YWsmA':_0x3d33ba[_0xe5d4(0x2c5)],'jZrCH':_0x3d33ba[_0xe5d4(0x2c6)],'dDCqM':function(_0x500bcb,_0x5cbe09){return _0x3d33ba[_0xe5d4(0x2c7)](_0x500bcb,_0x5cbe09);},'FxkDx':function(_0x161316){return _0x3d33ba['VgsGX'](_0x161316);},'xijKc':_0x3d33ba[_0xe5d4(0x2c8)],'snUEF':function(_0x265ad6,_0x520a0c){return _0x3d33ba['ewtsg'](_0x265ad6,_0x520a0c);}};(0x0,_haptics[_0xe5d4(0x19f)])(_haptics[_0xe5d4(0x1a0)][_0xe5d4(0x27a)]),_0xcf797b(!![]),_0x3d33ba['KFdcO'](_0x3a50ee,'');try{if(_0x3d33ba[_0xe5d4(0x2c9)](_0x5baaf4,_0xe5d4(0x40))){console['log'](_0x3d33ba[_0xe5d4(0x2ca)]),_0x3d33ba[_0xe5d4(0x2c3)](_0xb016cd,_0x3d33ba[_0xe5d4(0x142)]),_0xcf797b(![]);return;}console['log'](_0xe5d4(0x2cb),_0x5baaf4,_0xb06d46),console['log'](_0x3d33ba[_0xe5d4(0x2cc)],_0x140c16);const _0x2b9785=await(0x0,_authService[_0xe5d4(0x2cd)])(_0x5baaf4,_0xb06d46);if(_0x2b9785['success']){if(_0x3d33ba[_0xe5d4(0x2ce)](_0x3d33ba['lqCCZ'],_0x3d33ba['icTCp']))_0x5d3c96[_0xe5d4(0x170)](_0x5ca8da[_0xe5d4(0x2cf)],_0x5b8d2c),_0x7288d0[_0xe5d4(0x170)](_0x5ca8da[_0xe5d4(0x2d0)],{'message':_0x36e3c3[_0xe5d4(0x19e)],'name':_0x40d86e[_0xe5d4(0x22b)],'stack':_0x3bb3f8[_0xe5d4(0x2d1)],'errorObject':_0x49b342}),_0x55f77c(_0x5ca8da[_0xe5d4(0x2d2)]),_0x5ca8da[_0xe5d4(0x2d3)](_0x103245,!![]),_0x5ca8da['FxkDx'](_0x397f5f);else{var _0x2924ba,_0x3ab893,_0x498385,_0x18a633;console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x1cd)]),console[_0xe5d4(0x152)](_0x3d33ba['dCTok'],{'isNewUser':_0x2b9785[_0xe5d4(0x205)],'flowType':_0x2b9785[_0xe5d4(0x1fe)],'hasExistingData':_0x3d33ba['HUFNG'](_0x2924ba=_0x2b9785['existingUserData'],null)||_0x2924ba===void 0x0?void 0x0:_0x2924ba[_0xe5d4(0x201)],'connectionsCount':(_0x3d33ba[_0xe5d4(0x2d4)](_0x3ab893=_0x2b9785['existingUserData'],null)||_0x3d33ba['FrDEF'](_0x3ab893,void 0x0)||_0x3d33ba[_0xe5d4(0x251)](_0x3ab893=_0x3ab893['connections'],null)||_0x3d33ba[_0xe5d4(0x2d5)](_0x3ab893,void 0x0)?void 0x0:_0x3ab893[_0xe5d4(0x204)])||0x0});const _0x2a0095=_0x2b9785[_0xe5d4(0x205)]===![]||_0x2b9785[_0xe5d4(0x1fe)]===_0xe5d4(0x36),_0x2b39a2=_0x3d33ba['kepAy'](_0x498385=_0x2b9785[_0xe5d4(0x200)],null)||_0x3d33ba[_0xe5d4(0x2d6)](_0x498385,void 0x0)?void 0x0:_0x498385[_0xe5d4(0x203)],_0x206e21=Array[_0xe5d4(0x208)](_0x2b39a2)?_0x2b39a2:[],_0x15f609=_0x206e21[_0xe5d4(0x17a)](_0x373392=>_0x373392&&(_0x373392['hasData']||_0x373392[_0xe5d4(0x209)]===_0xe5d4(0x2d7)))[_0xe5d4(0x20a)](_0x354730=>_0x354730===null||_0x354730===void 0x0?void 0x0:_0x354730['platform'])[_0xe5d4(0x17a)](Boolean);console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x1d1)],{'isReturning':_0x2a0095,'connectedPlatformNames':_0x15f609,'showWelcomeBack':_0x3d33ba[_0xe5d4(0x2d8)](_0x18a633=_0x2b9785[_0xe5d4(0x20b)],null)||_0x3d33ba[_0xe5d4(0x2d9)](_0x18a633,void 0x0)?void 0x0:_0x18a633[_0xe5d4(0x20c)]}),_0x2a0095&&_0x3d33ba[_0xe5d4(0x231)](_0x15f609['length'],0x0)?(console['log'](_0x3d33ba[_0xe5d4(0x2da)]),_0x3d33ba[_0xe5d4(0x2c7)](_0xae51cf,!![]),_0x31603f(_0x15f609),_0x3d33ba[_0xe5d4(0x2db)](_0xb016cd,_0x3d33ba[_0xe5d4(0x1d3)])):(console['log'](_0xe5d4(0x2e)),_0x3d33ba[_0xe5d4(0x2dc)](_0xae51cf,![]),_0x3d33ba['Ftnqe'](_0x31603f,[]),_0xb016cd(_0xe5d4(0x2f)));}}else _0x3d33ba[_0xe5d4(0x2dd)]('mBKUW',_0x3d33ba[_0xe5d4(0x2de)])?(console[_0xe5d4(0x152)](_0xe5d4(0x2df),_0x2b9785['message']),_0x3d33ba[_0xe5d4(0x2e0)](_0x3a50ee,_0x2b9785[_0xe5d4(0x19e)]||_0x3d33ba['HsehD'])):((0x0,_0x2b0fef[_0xe5d4(0x19f)])(_0x813254[_0xe5d4(0x1a0)][_0xe5d4(0x27a)]),_0x3d33ba[_0xe5d4(0x2c1)](_0x4b6711,''),_0x5930de(_0xe5d4(0x19)));}catch(_0x404d7f){_0x3d33ba[_0xe5d4(0x2e1)](_0x3d33ba[_0xe5d4(0x2e2)],_0x3d33ba[_0xe5d4(0x2e2)])?(console[_0xe5d4(0x170)](_0xe5d4(0x2e3),_0x404d7f),_0x3d33ba['ikqyH'](_0x3a50ee,_0xe5d4(0x2e4))):(_0x52983e=_0x3d33ba['wvGUW'](_0x3d33ba[_0xe5d4(0x1a5)](_0x234fde,0x1),0x4),_0x3d33ba['jGoml'](_0x32e42a,0x0)?_0x3d33ba[_0xe5d4(0x236)](_0x144189,''):_0x3d33ba[_0xe5d4(0x2e0)](_0x448d52,'.'[_0xe5d4(0x1ae)](_0x34e56f)));}finally{_0x3d33ba[_0xe5d4(0x1a6)](_0x3d33ba[_0xe5d4(0x2e5)],_0x3d33ba['ptcwS'])?_0xcf797b(![]):(_0x4217a6[_0xe5d4(0x170)](_0x5ca8da['xijKc'],_0x3b6e03),_0x5ca8da[_0xe5d4(0x2e6)](_0x130450,'Failed\x20to\x20initialize\x20training.\x20Please\x20try\x20again.'),_0x5ca8da['dDCqM'](_0x7307b3,!![]),_0x5ca8da['FxkDx'](_0x5d82c8));}},_0x535e0a=()=>{(0x0,_haptics[_0xe5d4(0x19f)])(_haptics[_0xe5d4(0x1a0)]['BUTTON_PRESS']),_0x3d33ba['BbuRG'](_0x3a50ee,''),_0x3d33ba[_0xe5d4(0x288)](_0xb016cd,'signin');},_0x298ab3=async()=>{(0x0,_haptics[_0xe5d4(0x19f)])(_haptics[_0xe5d4(0x1a0)]['BUTTON_PRESS']),console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2e7)]);try{const _0x5bb2ad=_0x3d33ba[_0xe5d4(0x2e8)]['split']('|');let _0x2f18fa=0x0;while(!![]){switch(_0x5bb2ad[_0x2f18fa++]){case'0':_0x3d33ba['chuJN'](_0x20bf47,'');continue;case'1':_0x3d33ba[_0xe5d4(0x2e0)](_0x3a50ee,'');continue;case'2':console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2e9)]);continue;case'3':_0x3d33ba['tHdil'](_0x491998,null);continue;case'4':_0xae51cf(![]);continue;case'5':_0x3d33ba[_0xe5d4(0x2ea)](_0x31603f,[]);continue;case'6':_0x3d33ba[_0xe5d4(0x291)](_0xb016cd,_0x3d33ba[_0xe5d4(0x166)]);continue;case'7':_0x3d33ba['tDTaE'](_0x13d180,null);continue;case'8':await _asyncStorage[_0xe5d4(0x3)][_0xe5d4(0x2eb)]([_0x3d33ba[_0xe5d4(0x2ec)],_0x3d33ba['hpEey'],_0x3d33ba[_0xe5d4(0x2ed)],_0x3d33ba[_0xe5d4(0x2ee)],_0x3d33ba[_0xe5d4(0x2ef)],_0x3d33ba[_0xe5d4(0x2f0)]]);continue;}break;}}catch(_0x171bf4){if(_0x3d33ba[_0xe5d4(0x2f1)](_0x3d33ba[_0xe5d4(0x2f2)],'dfDrK'))console[_0xe5d4(0x170)](_0x3d33ba[_0xe5d4(0x2f3)],_0x171bf4),_0xb016cd(_0xe5d4(0x19));else{const _0x2e7fbf={..._0x59c86b};return delete _0x2e7fbf[_0x451d07],_0x2e7fbf;}}},_0x4c88b3=async()=>{(0x0,_haptics['triggerHaptic'])(_haptics[_0xe5d4(0x1a0)]['BUTTON_PRESS']),_0x3d33ba[_0xe5d4(0x1d2)](_0xcf797b,!![]),_0x3d33ba[_0xe5d4(0x2f4)](_0x3a50ee,'');try{console[_0xe5d4(0x152)](_0xe5d4(0x2f5),_0x5baaf4);const _0xc3ce06=await(0x0,_authService['sendEmailVerificationCode'])(_0x5baaf4);_0xc3ce06['success']?console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2f6)]):_0x3d33ba[_0xe5d4(0x2f7)](_0x3a50ee,_0xc3ce06[_0xe5d4(0x19e)]||_0xe5d4(0x2f8));}catch(_0x3fa0e8){_0x3d33ba[_0xe5d4(0x2a2)](_0x3d33ba[_0xe5d4(0x2f9)],_0xe5d4(0x2fa))?(console[_0xe5d4(0x170)](_0xe5d4(0x2fb),_0x3fa0e8),_0x3d33ba[_0xe5d4(0x2c7)](_0x3a50ee,_0x3d33ba[_0xe5d4(0x2fc)])):_0x4d3cb5(![]);}finally{_0x3d33ba['yCIVw'](_0xcf797b,![]);}},_0x5b6b66=async _0x51a2e9=>{const _0x3c0bcf={'ViKqA':_0xe5d4(0x2e3),'lUhEv':function(_0x745fa1,_0x55b578){return _0x745fa1(_0x55b578);}};if(_0x3d33ba[_0xe5d4(0x26c)](_0xe5d4(0x2fd),_0xe5d4(0x2fd)))return _0x131ff3[_0xe5d4(0x152)](_0x3d33ba['IWtAp'],_0x3c2a30[_0xe5d4(0x1fa)](0x0,0x14)+'...'),_0x7fbd4a['log'](_0x3d33ba['znCAF'],_0x55e928['length']),_0x1462d8;else{(0x0,_haptics[_0xe5d4(0x19f)])(_haptics[_0xe5d4(0x1a0)][_0xe5d4(0x2bf)]),console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2fe)],_0x51a2e9);try{const [_0x464342,_0x2e8f42,_0x3d382b]=await Promise[_0xe5d4(0x2ff)]([(0x0,_authService[_0xe5d4(0x300)])(),_asyncStorage['default'][_0xe5d4(0x179)](_0xe5d4(0x80)),(0x0,_authService[_0xe5d4(0x228)])()]);console[_0xe5d4(0x152)](_0x3d33ba['gjwhH']),console[_0xe5d4(0x152)](_0xe5d4(0x301),_0x464342?_0x464342[_0xe5d4(0x1fa)](0x0,0x14)+_0xe5d4(0x15f):'NO'),console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x302)],_0x3d33ba[_0xe5d4(0x303)](_0x2e8f42,'NO')),_0x2af44b[_0xe5d4(0x155)]=!![];const _0x14f692={'connectedPlatforms':_0x51a2e9};_0x2e8f42&&(_0x3d33ba[_0xe5d4(0x1b4)](_0x3d33ba['cOjtr'],_0x3d33ba[_0xe5d4(0x304)])?(_0x14f692[_0xe5d4(0x1b7)]=_0x2e8f42,_0x14f692[_0xe5d4(0x1b8)]=_0x3d382b||_0x2e8f42[_0xe5d4(0x1b9)]('@')[0x0]):(_0x291f2b[_0xe5d4(0x170)](_0x3c0bcf[_0xe5d4(0x305)],_0x5763e7),_0x3c0bcf[_0xe5d4(0x306)](_0x17d4c7,_0xe5d4(0x2e4))));if(_0x3d33ba['DiGCU'](_0x464342,_0x2e8f42))console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x307)]),await(_0x6ff4bf===null||_0x3d33ba[_0xe5d4(0x25f)](_0x6ff4bf,void 0x0)?void 0x0:_0x3d33ba['VPZAb'](_0x6ff4bf,_api[_0xe5d4(0x308)][_0xe5d4(0x309)],_0x464342,_0x14f692));else{if(_0x2e8f42)console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x30a)]),await(_0x6ff4bf===null||_0x3d33ba[_0xe5d4(0x25f)](_0x6ff4bf,void 0x0)?void 0x0:_0x3d33ba[_0xe5d4(0x30b)](_0x6ff4bf,_api[_0xe5d4(0x308)]['BASE_URL'],'',_0x14f692));else{if(_0x3d33ba[_0xe5d4(0x30c)](_0x3d33ba[_0xe5d4(0x30d)],_0xe5d4(0x30e))){const _0x46ec8e=_0x3d33ba[_0xe5d4(0x30f)][_0xe5d4(0x1b9)]('|');let _0x3107ab=0x0;while(!![]){switch(_0x46ec8e[_0x3107ab++]){case'0':_0x27df05['log'](_0x3d33ba[_0xe5d4(0x310)],_0x5abd4a['encryption']);continue;case'1':_0x23c8dd[_0xe5d4(0x152)](_0xe5d4(0x311),_0x464dd2[_0xe5d4(0x312)]);continue;case'2':_0x3f507b[_0xe5d4(0x313)]&&_0x3ee117['log'](_0xe5d4(0x314));continue;case'3':_0x36317b[_0xe5d4(0x152)](_0xe5d4(0xf2),_0x1863d2['message']);continue;case'4':_0x483de8[_0xe5d4(0x315)]&&_0x43db22[_0xe5d4(0x208)](_0x39e62[_0xe5d4(0x315)])&&_0x49dd9e[_0xe5d4(0x152)](_0x3d33ba['RCreQ'],_0x50d299[_0xe5d4(0x315)][_0xe5d4(0x316)](',\x20'));continue;case'5':_0x17c000['log'](_0x3d33ba['gCOdX'],_0x55a2e5[_0xe5d4(0x2b8)]);continue;}break;}}else console['warn'](_0x3d33ba['CYBKl']),await(_0x3d33ba[_0xe5d4(0x317)](_0x6ff4bf,null)||_0x3d33ba['nvlNH'](_0x6ff4bf,void 0x0)?void 0x0:_0x6ff4bf(_api['API_CONFIG'][_0xe5d4(0x309)],'',_0x14f692));}}}catch(_0x1023d0){console['error'](_0xe5d4(0x318),_0x1023d0);const _0x131f8b=await _asyncStorage['default'][_0xe5d4(0x179)](_0x3d33ba[_0xe5d4(0x2ed)])['catch'](()=>null);await(_0x3d33ba[_0xe5d4(0x319)](_0x6ff4bf,null)||_0x3d33ba[_0xe5d4(0x29c)](_0x6ff4bf,void 0x0)?void 0x0:_0x3d33ba[_0xe5d4(0x30b)](_0x6ff4bf,_api['API_CONFIG'][_0xe5d4(0x309)],'',{'connectedPlatforms':_0x51a2e9,..._0x3d33ba[_0xe5d4(0x31a)](_0x131f8b,{'email':_0x131f8b})}));}console[_0xe5d4(0x152)](_0xe5d4(0x31b));}},_0x13f716=async()=>{const _0x5806bd={'joSGN':_0x3d33ba[_0xe5d4(0x31c)]};if(_0x3d33ba[_0xe5d4(0x31d)](_0x3d33ba[_0xe5d4(0x31e)],_0x3d33ba[_0xe5d4(0x31e)])){(0x0,_haptics[_0xe5d4(0x19f)])(_haptics[_0xe5d4(0x1a0)][_0xe5d4(0x27a)]),console[_0xe5d4(0x152)](_0xe5d4(0x31f));try{if(_0xe5d4(0x97)===_0x3d33ba[_0xe5d4(0x320)]){const [_0x2ecdb1,_0x5146fb,_0x5d1bb4]=await Promise['all']([(0x0,_authService['getAuthToken'])(),_asyncStorage[_0xe5d4(0x3)][_0xe5d4(0x179)](_0x3d33ba[_0xe5d4(0x2ed)]),(0x0,_authService[_0xe5d4(0x228)])()]);_0x2af44b[_0xe5d4(0x155)]=!![],_0x2ecdb1&&_0x5146fb?(console[_0xe5d4(0x152)](_0xe5d4(0x321)),await(_0x3d33ba['KoMiu'](_0x6ff4bf,null)||_0x6ff4bf===void 0x0?void 0x0:_0x3d33ba[_0xe5d4(0x322)](_0x6ff4bf,_api['API_CONFIG'][_0xe5d4(0x309)],_0x2ecdb1,{'email':_0x5146fb,'connectedPlatforms':[],'username':_0x5d1bb4||_0x5146fb[_0xe5d4(0x1b9)]('@')[0x0],'skipped':!![]}))):(console['warn'](_0x3d33ba[_0xe5d4(0x323)]),await(_0x3d33ba[_0xe5d4(0x324)](_0x6ff4bf,null)||_0x3d33ba[_0xe5d4(0x325)](_0x6ff4bf,void 0x0)?void 0x0:_0x3d33ba[_0xe5d4(0x322)](_0x6ff4bf,_api[_0xe5d4(0x308)][_0xe5d4(0x309)],'',{'connectedPlatforms':[],'skipped':!![]})));}else _0x4c7b77=_0x5806bd[_0xe5d4(0x326)];}catch(_0x299435){if(_0x3d33ba[_0xe5d4(0x2f1)](_0x3d33ba[_0xe5d4(0x327)],_0x3d33ba['Cpxqd']))console[_0xe5d4(0x170)](_0x3d33ba['RmaWz'],_0x299435),await(_0x3d33ba[_0xe5d4(0x328)](_0x6ff4bf,null)||_0x3d33ba['NRvwG'](_0x6ff4bf,void 0x0)?void 0x0:_0x3d33ba[_0xe5d4(0x30b)](_0x6ff4bf,_api[_0xe5d4(0x308)]['BASE_URL'],'',{'connectedPlatforms':[],'skipped':!![]}));else throw new _0x286a11(_0xe5d4(0x34));}console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x329)]);}else _0x45bc89['log'](_0x3d33ba[_0xe5d4(0x32a)]),_0x17b132[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x32b)],_0x787228,_0x3d33ba[_0xe5d4(0x169)]),_0x3feefb('welcome');},_0x233957=async()=>{console['log'](_0xe5d4(0x32c)),(0x0,_haptics['triggerHaptic'])(_haptics[_0xe5d4(0x1a0)]['BUTTON_PRESS']);try{await _asyncStorage[_0xe5d4(0x3)][_0xe5d4(0x17b)](_0x3d33ba[_0xe5d4(0x2f0)],_0xe5d4(0x32d)),await(0x0,_jwtStorageService[_0xe5d4(0x286)])(_0xe5d4(0x5d)),console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x32e)]),_0x3d33ba[_0xe5d4(0x189)](_0x4763ba);}catch(_0x319e96){console[_0xe5d4(0x170)](_0xe5d4(0x32f),_0x319e96),_0x3d33ba[_0xe5d4(0x330)](_0x4763ba);}},_0x55c0ef=async _0x3dd25b=>{const _0x4680d7={'NTrUx':_0x3d33ba[_0xe5d4(0x331)],'OaiLH':function(_0x55ed1d,_0x41c3d8){return _0x3d33ba[_0xe5d4(0x174)](_0x55ed1d,_0x41c3d8);},'LDnbR':function(_0x2d5712,_0x401c4a){return _0x2d5712===_0x401c4a;},'jsdGd':function(_0x24e375,_0x125463){return _0x3d33ba['wUhCx'](_0x24e375,_0x125463);},'nwdKS':_0x3d33ba[_0xe5d4(0x332)],'NXZkP':function(_0x8231d0,_0x4561b9){return _0x8231d0!=_0x4561b9;},'DrAlQ':function(_0x5b73a5,_0x1b3399){return _0x3d33ba[_0xe5d4(0x333)](_0x5b73a5,_0x1b3399);},'gWHmc':_0x3d33ba['vtmFn'],'Cmowg':function(_0x39b2f4,_0x4cb5a2,_0x294e68,_0x39a67d){return _0x3d33ba[_0xe5d4(0x334)](_0x39b2f4,_0x4cb5a2,_0x294e68,_0x39a67d);}};if(_0x3d33ba[_0xe5d4(0x335)](_0x3d33ba[_0xe5d4(0x336)],_0x3d33ba['tKoXv'])){(0x0,_haptics[_0xe5d4(0x19f)])(_haptics[_0xe5d4(0x1a0)][_0xe5d4(0x27a)]),_0x3de518(_0x3dd25b);try{if(_0x3d33ba['AthIH']===_0x3d33ba['FAPET']){const _0x21d1de={'jwxHC':_0x3d33ba['rHaJR']};_0x590782&&((0x0,_0xdc51b4[_0xe5d4(0x19f)])(_0x17fb01[_0xe5d4(0x1a0)][_0xe5d4(0x27a)]),_0x1b7d1f[_0xe5d4(0x152)](_0x3d33ba['Jssqz']),_0x3d33ba[_0xe5d4(0x337)](_0x1a668e)[_0xe5d4(0x338)](_0x4e4918=>{_0x50c1fb['error'](_0x21d1de[_0xe5d4(0x339)],_0x4e4918);}),_0x3d33ba['fHzjt'](_0x1e69f0,_0x3d33ba[_0xe5d4(0x33a)]));}else{if((0x0,_platformAuthService[_0xe5d4(0x33b)])(_0x3dd25b)){_0x402bd0(_0x3dd25b);const _0x2f36f=await(0x0,_platformAuthService[_0xe5d4(0x33c)])(_0x3dd25b,_0x5357a7);_0x2f36f&&(_0x3ec4d2(_0x5848a7=>({..._0x5848a7,[_0x3dd25b]:{'userName':_0x5357a7,'connected':!![]}})),_0x405cee(_0x35cbad=>({..._0x35cbad,[_0x3dd25b]:!![]})),_0x5a57b2(_0x377c80=>({..._0x377c80,[_0x3dd25b]:'connected'})),await _0x3d33ba[_0xe5d4(0x33d)](_0x2a7e78,_0x3dd25b));}else{_0x3d33ba[_0xe5d4(0x1a3)](_0x402bd0,_0x3dd25b);const _0x5ceff0=await(0x0,_platformAuthService[_0xe5d4(0x33e)])(_0x3dd25b,_0x5357a7);_0x5ceff0&&(_0x3d33ba[_0xe5d4(0x33f)](_0x251fe2,_0x5ceff0),_0x3d33ba[_0xe5d4(0x340)](_0xb016cd,_0x3d33ba[_0xe5d4(0x341)]));}}}catch(_0x2933b2){_0x3d33ba[_0xe5d4(0x1f1)](_0x3d33ba[_0xe5d4(0x342)],_0x3d33ba[_0xe5d4(0x342)])?_0x570cc5=_0x4680d7[_0xe5d4(0x343)]:console[_0xe5d4(0x170)](_0xe5d4(0x344)+_0x3dd25b+':',_0x2933b2);}finally{_0x3d33ba[_0xe5d4(0x266)](_0x3de518,null);}}else{if(_0x4680d7[_0xe5d4(0x345)](!_0x82174d,_0x881c22)&&_0x1980b1[_0xe5d4(0x0)])return _0x2188d3;var _0x439106,_0x2163db,_0x365490={'__proto__':null,'default':_0x2bc3c9};if(_0x4680d7[_0xe5d4(0x346)](null,_0x2bd79b)||_0x4680d7['jsdGd'](_0x4680d7['nwdKS'],typeof _0x293d47)&&_0x4680d7[_0xe5d4(0x347)](_0xe5d4(0x5),typeof _0x4efc97))return _0x365490;if(_0x439106=_0x16eb36?_0x4fd491:_0x40b9ba){if(_0x439106[_0xe5d4(0xa)](_0x30ae36))return _0x439106['get'](_0x30ba66);_0x439106[_0xe5d4(0x348)](_0xa8c626,_0x365490);}for(const _0x153843 in _0x49b5bb)_0x4680d7[_0xe5d4(0x349)](_0x4680d7[_0xe5d4(0x34a)],_0x153843)&&{}['hasOwnProperty'][_0xe5d4(0xe)](_0x94080f,_0x153843)&&((_0x2163db=(_0x439106=_0x56fad0[_0xe5d4(0x34b)])&&_0x289d67[_0xe5d4(0xf)](_0x2692bf,_0x153843))&&(_0x2163db[_0xe5d4(0x10)]||_0x2163db[_0xe5d4(0x348)])?_0x4680d7['Cmowg'](_0x439106,_0x365490,_0x153843,_0x2163db):_0x365490[_0x153843]=_0xd6bd36[_0x153843]);return _0x365490;}},_0x15eeb4=(0x0,_react[_0xe5d4(0x21c)])(async _0x4caa27=>{const _0x60472e={'DyMCv':_0x3d33ba[_0xe5d4(0x34c)],'XBbLi':'persona','Hhugj':function(_0x4bb54e,_0x55356d){return _0x4bb54e(_0x55356d);},'FSRfq':_0x3d33ba['IKpUh'],'QlBkY':function(_0x578d6b,_0x1076b8){return _0x3d33ba[_0xe5d4(0x34d)](_0x578d6b,_0x1076b8);},'pxABT':_0x3d33ba[_0xe5d4(0x14e)],'CGOsT':function(_0x1bc180,_0x4323e6){return _0x1bc180(_0x4323e6);},'cGxPx':_0x3d33ba[_0xe5d4(0x2c6)],'WhSaR':function(_0x1fc9d0,_0x27cac2){return _0x3d33ba[_0xe5d4(0x27c)](_0x1fc9d0,_0x27cac2);},'yjiaT':function(_0x448a15,_0x2d4026){return _0x3d33ba[_0xe5d4(0x34e)](_0x448a15,_0x2d4026);},'lMfMs':_0xe5d4(0x34f),'PlEGY':_0xe5d4(0x350)};if(!_0x282855[_0x4caa27])try{if(_0x3d33ba['PehOw']('XbTsS',_0x3d33ba[_0xe5d4(0x351)])){if(_0x3d33ba[_0xe5d4(0x229)](_0x4caa27,_0xe5d4(0x352))){_0x3d33ba[_0xe5d4(0x353)](_0x405cee,_0x132a07=>({..._0x132a07,[_0x4caa27]:!_0x132a07[_0x4caa27]})),_0x3d33ba['mPtCa'](_0x3ec4d2,_0x53dd86=>({..._0x53dd86,[_0x4caa27]:{'userName':_0x4caa27+'_user','connected':!![]}})),await _0x3d33ba[_0xe5d4(0x354)](_0x2a7e78,_0x4caa27);return;}if(_0x3d33ba['nvlNH'](_0x4caa27,_0x3d33ba[_0xe5d4(0x1c2)])||_0x3d33ba['cjBed'](_0x4caa27,_0x3d33ba[_0xe5d4(0x355)])){console['log']('🤖\x20Handling\x20LLM/ChatGPT\x20connection\x20-\x20sending\x20to\x20backend...');const _0x55fd5a={'userId':_0x3d33ba[_0xe5d4(0x303)](_0x38f790,_0x5357a7),'email':_0x38f790||_0x5357a7+_0xe5d4(0x356),'appName':_0x140c16,'timestamp':Date['now'](),'data':{'conversations':[],'chatHistory':[],'preferences':{},'customData':{}},'accessToken':undefined,'refreshToken':undefined,'tokenExpiry':undefined},_0xfb2aff=await(0x0,_llmDataStorage['sendLLMDataToBackend'])(_0x55fd5a);if(_0xfb2aff[_0xe5d4(0x295)]){const _0x51b1b8=_0x3d33ba[_0xe5d4(0x357)]['split']('|');let _0x263cd7=0x0;while(!![]){switch(_0x51b1b8[_0x263cd7++]){case'0':await _0x3d33ba['JDGlN'](_0x2a7e78,_0x4caa27);continue;case'1':console['log'](_0x3d33ba[_0xe5d4(0x358)],_0xfb2aff[_0xe5d4(0x359)]);continue;case'2':console[_0xe5d4(0x152)](_0xe5d4(0x35a));continue;case'3':_0x3d33ba[_0xe5d4(0x35b)](_0x405cee,_0x4d0df8=>({..._0x4d0df8,[_0x4caa27]:!![]}));continue;case'4':console['log']('✅\x20'+_0x4caa27+_0xe5d4(0x35c));continue;case'5':_0x3d33ba['DbqbB'](_0x3ec4d2,_0x2ccbcc=>({..._0x2ccbcc,[_0x4caa27]:{'userName':_0x5357a7,'connected':!![],'connectionId':_0xfb2aff[_0xe5d4(0x359)],'storedInBackend':!![]}}));continue;}break;}}else throw new Error(_0xe5d4(0x35d)+_0xfb2aff[_0xe5d4(0x19e)]);return;}if((0x0,_platformAuthService[_0xe5d4(0x33b)])(_0x4caa27)){_0x3d33ba[_0xe5d4(0x35e)](_0x402bd0,_0x4caa27);const _0x3b3796=await(0x0,_platformAuthService[_0xe5d4(0x33c)])(_0x4caa27,_0x5357a7);_0x3b3796&&(_0x3ec4d2(_0x21810b=>({..._0x21810b,[_0x4caa27]:{'userName':_0x5357a7,'connected':!![]}})),_0x3d33ba['qKUwz'](_0x405cee,_0x56606a=>({..._0x56606a,[_0x4caa27]:!![]})),await _0x3d33ba[_0xe5d4(0x35f)](_0x2a7e78,_0x4caa27));return;}_0x402bd0(_0x4caa27);const _0x5917fb=await(0x0,_platformAuthService[_0xe5d4(0x33e)])(_0x4caa27,_0x5357a7);_0x5917fb&&(_0x3d33ba[_0xe5d4(0x360)]!==_0x3d33ba['oZaZp']?(_0x3d33ba['ewtsg'](_0x251fe2,_0x5917fb),_0x3d33ba[_0xe5d4(0x361)](_0xb016cd,_0xe5d4(0xa4))):(_0x1c91dd['log'](_0x60472e[_0xe5d4(0x362)]),_0x7c86b2(_0x60472e['XBbLi']),_0x60472e[_0xe5d4(0x363)](_0x4f109e,_0x60472e[_0xe5d4(0x364)]),_0x60472e['QlBkY'](_0x1f269e,!![])));}else{_0x15b0c2[_0xe5d4(0x152)](_0x3d33ba['YavXx'],_0x535f08[_0xe5d4(0x19e)]),_0xf6caad[_0xe5d4(0x152)]('🎯\x20Training\x20Features:',_0x55a778[_0xe5d4(0x2b2)]);if(_0x1bc944[_0xe5d4(0x2b2)]){const _0x5344dd=_0x3d33ba['mUcPb']['split']('|');let _0x449770=0x0;while(!![]){switch(_0x5344dd[_0x449770++]){case'0':_0x3f41d4[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2b5)],_0x25b007['features'][_0xe5d4(0x315)]);continue;case'1':_0x436ad3[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x365)],_0x594ef2[_0xe5d4(0x2b2)][_0xe5d4(0x2bc)]);continue;case'2':_0xc8a951[_0xe5d4(0x152)](_0xe5d4(0x68),_0x41ef61[_0xe5d4(0x2b2)][_0xe5d4(0x2ba)]);continue;case'3':_0xd11a86['log'](_0x3d33ba[_0xe5d4(0x2b4)],_0x25ad13[_0xe5d4(0x2b2)][_0xe5d4(0x366)]);continue;case'4':_0x5e98d1[_0xe5d4(0x152)](_0xe5d4(0x367),_0xc07dc2[_0xe5d4(0x2b2)][_0xe5d4(0x312)]);continue;case'5':_0x3a7af6['log'](_0x3d33ba[_0xe5d4(0x2b7)],_0x2f18f6[_0xe5d4(0x2b2)]['storage']);continue;case'6':_0x40a207[_0xe5d4(0x152)](_0xe5d4(0x368),_0x177437[_0xe5d4(0x2b2)][_0xe5d4(0x2bb)]);continue;}break;}}_0x3d33ba[_0xe5d4(0x266)](_0x222999,'Training\x20model...'),_0x3d33ba[_0xe5d4(0x2c3)](_0x30cfae,0x19);}}catch(_0x449d7a){if(_0x3d33ba['mYKuO'](_0x3d33ba['ZuuzJ'],_0x3d33ba[_0xe5d4(0x369)])){const _0x3fb128=_0x3d33ba[_0xe5d4(0x36a)][_0xe5d4(0x1b9)]('|');let _0x6998d5=0x0;while(!![]){switch(_0x3fb128[_0x6998d5++]){case'0':_0x14d455[_0xe5d4(0x152)](_0x3d33ba['vxzYz'],_0xb652fe[_0xe5d4(0x2b2)]['encryption']);continue;case'1':_0x347357[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2b6)],_0x5d27f0[_0xe5d4(0x2b2)][_0xe5d4(0x312)]);continue;case'2':_0x466246[_0xe5d4(0x152)](_0x3d33ba['gCOdX'],_0x196ff6[_0xe5d4(0x2b2)]['storage']);continue;case'3':_0x560c58[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2b5)],_0x1d4274[_0xe5d4(0x2b2)][_0xe5d4(0x315)]);continue;case'4':_0x94579e['log'](_0x3d33ba[_0xe5d4(0x2b9)],_0x4b1a5d['features'][_0xe5d4(0x2ba)]);continue;case'5':_0x50276c[_0xe5d4(0x152)](_0x3d33ba['LNxpl'],_0x5f5123['features'][_0xe5d4(0x2bc)]);continue;case'6':_0x339cf9[_0xe5d4(0x152)](_0xe5d4(0x66),_0x19c6c3['features'][_0xe5d4(0x366)]);continue;}break;}}else{console[_0xe5d4(0x170)](_0xe5d4(0x36b)+_0x4caa27+':',_0x449d7a);return;}}else{if(_0x3d33ba[_0xe5d4(0x25b)](_0x3d33ba['bgCPq'],_0x3d33ba[_0xe5d4(0x36c)]))_0x3d33ba[_0xe5d4(0x36d)](_0x405cee,_0xd68727=>({..._0xd68727,[_0x4caa27]:!_0xd68727[_0x4caa27]})),_0x3d33ba[_0xe5d4(0x2db)](_0x3ec4d2,_0x5227bd=>{const _0x4b654e={'oCgUW':_0x60472e[_0xe5d4(0x36e)],'wtVuZ':function(_0x9d70b9,_0x571779){return _0x60472e[_0xe5d4(0x36f)](_0x9d70b9,_0x571779);},'euUZx':_0x60472e[_0xe5d4(0x370)],'vUXGe':function(_0x14d301,_0x54e496){return _0x60472e[_0xe5d4(0x371)](_0x14d301,_0x54e496);},'oCOqo':function(_0x3e173c){return _0x3e173c();}};if(_0x60472e[_0xe5d4(0x372)](_0x60472e['lMfMs'],_0x60472e[_0xe5d4(0x373)]))_0x2e963e['error'](_0x4b654e[_0xe5d4(0x374)]),_0x4b654e[_0xe5d4(0x375)](_0x7629b1,_0x4b654e['euUZx']),_0x4b654e[_0xe5d4(0x376)](_0x23db4a,!![]),_0x4b654e[_0xe5d4(0x377)](_0x19f0dc);else{const _0x27e714={..._0x5227bd};return delete _0x27e714[_0x4caa27],_0x27e714;}});else{const _0x336c1a=_0x3d33ba[_0xe5d4(0x378)][_0xe5d4(0x1b9)]('|');let _0x36e7ac=0x0;while(!![]){switch(_0x336c1a[_0x36e7ac++]){case'0':_0x25701f[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2b7)],_0x26c01c['features'][_0xe5d4(0x2b8)]);continue;case'1':_0x47cb07[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x310)],_0x5215dc['features'][_0xe5d4(0x2bb)]);continue;case'2':_0x277c69[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2b4)],_0x28e01d[_0xe5d4(0x2b2)][_0xe5d4(0x366)]);continue;case'3':_0x360570[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2b6)],_0x31b2d9[_0xe5d4(0x2b2)][_0xe5d4(0x312)]);continue;case'4':_0x52fd73[_0xe5d4(0x152)]('🗄️\x20Databases:',_0x56f89e['features'][_0xe5d4(0x315)]);continue;case'5':_0x1b61f9[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x365)],_0x1bd94f[_0xe5d4(0x2b2)][_0xe5d4(0x2bc)]);continue;case'6':_0x222aa1[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2b9)],_0x1e8f9a[_0xe5d4(0x2b2)][_0xe5d4(0x2ba)]);continue;}break;}}}},[_0x282855,_0x5357a7]),_0x1eef51=(0x0,_react[_0xe5d4(0x21c)])(_0x4b68dc=>{const _0x2ff9b={'YHtHX':'3|1|6|7|0|5|2|4','yBeLJ':function(_0x2d6945,_0x3ae123){return _0x3d33ba['BjemO'](_0x2d6945,_0x3ae123);},'ldCVS':_0x3d33ba[_0xe5d4(0x379)],'MaxQm':_0x3d33ba[_0xe5d4(0x37a)],'VorTh':function(_0x538911){return _0x3d33ba[_0xe5d4(0x37b)](_0x538911);},'ZJcAj':_0x3d33ba[_0xe5d4(0x37c)],'bnYIk':function(_0x1911d0,_0x2dce47){return _0x3d33ba[_0xe5d4(0x37d)](_0x1911d0,_0x2dce47);},'LmphA':function(_0x10edc1,_0x43bcef){return _0x3d33ba[_0xe5d4(0x221)](_0x10edc1,_0x43bcef);}};try{const _0x54541b=new URL(_0x4b68dc),_0x289c3e=_0x54541b[_0xe5d4(0x181)][_0xe5d4(0x10)](_0x3d33ba[_0xe5d4(0x172)]),_0x3a4ceb=_0x54541b[_0xe5d4(0x181)]['get'](_0xe5d4(0x22))||_0x3ebca6;if(_0x289c3e&&_0x3a4ceb){if(_0x3d33ba[_0xe5d4(0x37e)](_0x3d33ba[_0xe5d4(0x37f)],_0x3d33ba[_0xe5d4(0x37f)])){const _0x420fe9=_0x2ff9b['YHtHX'][_0xe5d4(0x1b9)]('|');let _0x41a8a4=0x0;while(!![]){switch(_0x420fe9[_0x41a8a4++]){case'0':_0x2ff9b[_0xe5d4(0x380)](_0x4bef74,_0x2ff9b['ldCVS']);continue;case'1':_0x960710(_0x2ff9b[_0xe5d4(0x381)]);continue;case'2':_0x2ff9b['VorTh'](_0xa1dd77);continue;case'3':_0x867a21[_0xe5d4(0x152)](_0x2ff9b[_0xe5d4(0x382)]);continue;case'4':return;case'5':_0x2ff9b[_0xe5d4(0x380)](_0x538a61,!![]);continue;case'6':_0x2ff9b[_0xe5d4(0x383)](_0x664f6f,_0x5de9f6);continue;case'7':_0x2ff9b['LmphA'](_0x2bf5e2,!![]);continue;}break;}}else _0x3d33ba['tDTaE'](_0x3ec4d2,_0x544dc9=>({..._0x544dc9,[_0x3a4ceb]:{'userName':_0x5357a7,'connected':!![]}})),_0x405cee(_0x32ce3c=>({..._0x32ce3c,[_0x3a4ceb]:!![]})),_0x3d33ba[_0xe5d4(0x240)](_0xb016cd,_0xe5d4(0xb6));}}catch(_0x238719){console[_0xe5d4(0x170)](_0x3d33ba[_0xe5d4(0x177)],_0x238719);}},[_0x3ebca6,_0x5357a7]),_0x1dceb6=(0x0,_react['useCallback'])(async _0x2bc2f6=>{console['log'](_0xe5d4(0x384)+_0x3ebca6+'\x20-\x20backend\x20callback\x20completed'),console[_0xe5d4(0x152)]('📝\x20Received\x20result:',_0x2bc2f6);if(_0x3ebca6){if(_0x3d33ba['mYKuO'](_0x3d33ba[_0xe5d4(0x385)],_0x3d33ba['dJLor']))console[_0xe5d4(0x152)]('✅\x20Updating\x20connection\x20state\x20for\x20'+_0x3ebca6),_0x3d33ba[_0xe5d4(0x386)](_0x3ec4d2,_0x11d44c=>({..._0x11d44c,[_0x3ebca6]:{'userName':_0x5357a7,'connected':!![]}})),_0x405cee(_0x1eb3db=>({..._0x1eb3db,[_0x3ebca6]:!![]})),_0x3d33ba['FVsoE'](_0x5a57b2,_0x20565c=>({..._0x20565c,[_0x3ebca6]:_0xe5d4(0x4d)})),await _0x3d33ba[_0xe5d4(0x35f)](_0x2a7e78,_0x3ebca6),console[_0xe5d4(0x152)](_0xe5d4(0x387)+_0x3ebca6+_0xe5d4(0x388));else{_0x21f9b0[_0xe5d4(0x170)](_0x3d33ba[_0xe5d4(0x389)],_0x57176d);throw _0x592b82;}}console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x38a)]),_0x3d33ba[_0xe5d4(0x38b)](_0x251fe2,''),_0xb016cd(_0x3d33ba['lLCYx']);},[_0x3ebca6,_0x5357a7,_0x2a7e78]),_0x319331=(0x0,_react[_0xe5d4(0x21c)])(async _0x20c750=>{const _0x38bf0f={'oQxsW':function(_0x117f02,_0x12456e,_0x54ee3f){return _0x3d33ba['tAFyR'](_0x117f02,_0x12456e,_0x54ee3f);}};_0x3d33ba[_0xe5d4(0x38c)](_0x556afd,_0x20c750),(0x0,_pinStorageUtils[_0xe5d4(0x38d)])(_0x20c750),console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x38e)]);if(_0x3d33ba[_0xe5d4(0x223)](_0x4ab9e9,_0x6e32ce)){if(_0x3d33ba['LkvfG'](_0xe5d4(0x38f),_0x3d33ba[_0xe5d4(0x390)]))_0x3d33ba[_0xe5d4(0x2ea)](_0x4934d8,_0x130e68['current']),_0x3ed9f2[_0xe5d4(0x155)]=null;else{console['log'](_0x3d33ba[_0xe5d4(0x391)]);try{await _0x3d33ba['knVEA'](_0x25c965,_0x20c750),_0xb016cd(_0x3d33ba[_0xe5d4(0x392)]);}catch(_0x447943){if(_0x3d33ba['ZNLux']!==_0x3d33ba[_0xe5d4(0x393)])console['error'](_0xe5d4(0x394),_0x447943),_0x3d33ba['rTyaI'](_0xb016cd,_0x3d33ba[_0xe5d4(0x392)]),_0x3d33ba[_0xe5d4(0x395)](_0x418195,_0x3d33ba[_0xe5d4(0x1ca)]),_0x3d33ba[_0xe5d4(0x1ba)](_0x3e08ff,!![]);else{const _0x4a5d7f={'FWqcW':function(_0x37b6f1,_0xb49263){return _0x37b6f1(_0xb49263);},'wxAVd':function(_0xa5421a,_0x1164d6){return _0x3d33ba[_0xe5d4(0x396)](_0xa5421a,_0x1164d6);},'xCLrQ':function(_0x17042a,_0x12cadc){return _0x3d33ba['mYKuO'](_0x17042a,_0x12cadc);}};_0x394352[_0xe5d4(0x144)][_0xe5d4(0x1e2)](_0x1453c3,{'toValue':0x0,'duration':0xfa,'useNativeDriver':!![]})['start'](()=>{_0x38bf0f['oQxsW'](_0x9c7dd3,()=>{var _0x4d61ed;_0x4a5d7f[_0xe5d4(0x397)](_0x232867,![]),_0x4a5d7f[_0xe5d4(0x398)](_0x4d61ed=_0x5b2c07['current'],null)||_0x4a5d7f[_0xe5d4(0x399)](_0x4d61ed,void 0x0)||_0x4d61ed[_0xe5d4(0xe)](_0x506471);},0x10);});}}}}else console[_0xe5d4(0x152)](_0xe5d4(0x39a)),_0x3d33ba['Ftnqe'](_0xb016cd,'persona'),_0x418195(_0x3d33ba['IKpUh']),_0x3d33ba[_0xe5d4(0x386)](_0x3e08ff,!![]);console['log'](_0x3d33ba[_0xe5d4(0x39b)]);},[_0x4ab9e9,_0x6e32ce]),_0x6cf142=async(_0x4e2de1,_0x52a99f)=>{const _0xe96d04={'ohnyW':'5|0|4|2|1|6|7|3','gVLfT':_0x3d33ba[_0xe5d4(0x37a)],'XZSlq':function(_0x5c5281,_0x4efdd2){return _0x5c5281(_0x4efdd2);},'FnZVS':function(_0x268b01,_0x1b505a){return _0x3d33ba[_0xe5d4(0x39c)](_0x268b01,_0x1b505a);},'oElRl':function(_0x5d54eb){return _0x3d33ba['BLeOF'](_0x5d54eb);}};if(_0x3d33ba[_0xe5d4(0x1b4)](_0x3d33ba['cAoXk'],_0xe5d4(0xbf))){const _0x5b86f6=_0xe96d04['ohnyW']['split']('|');let _0x1ee822=0x0;while(!![]){switch(_0x5b86f6[_0x1ee822++]){case'0':_0x20b5d8(_0xe96d04[_0xe5d4(0x39d)]);continue;case'1':_0x4a10ce('Connections\x20required');continue;case'2':_0xe96d04['XZSlq'](_0x2ed2b5,!![]);continue;case'3':return;case'4':_0xe96d04[_0xe5d4(0x39e)](_0x4c8b9a,_0x1bcd62);continue;case'5':_0x2ebb31['log'](_0xe5d4(0xc6));continue;case'6':_0xe96d04[_0xe5d4(0x39f)](_0x51583d,!![]);continue;case'7':_0xe96d04[_0xe5d4(0x3a0)](_0x3dcf4a);continue;}break;}}else try{_0x418195(_0x3d33ba[_0xe5d4(0x3a1)]),_0x3d33ba[_0xe5d4(0x3a2)](_0xe4021b,0xf);const _0x4886ef=_0x52a99f||await(0x0,_jwtStorageService[_0xe5d4(0x227)])();if(!_0x4886ef){console['error'](_0xe5d4(0x3a3));throw new Error(_0x3d33ba[_0xe5d4(0x3a4)]);}console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x3a5)],_0x4e2de1),console['log'](_0xe5d4(0x3a6),_0x4886ef?_0x4886ef[_0xe5d4(0x1fa)](0x0,0x14)+_0xe5d4(0x15f):'None');const _0x197c22=await(0x0,_authService[_0xe5d4(0x228)])(),_0x3c0c7e=_0x197c22||(_0x1114c2===null||_0x1114c2===void 0x0?void 0x0:_0x1114c2[_0xe5d4(0x1b8)])||(_0x1114c2===null||_0x3d33ba[_0xe5d4(0x18c)](_0x1114c2,void 0x0)?void 0x0:_0x1114c2[_0xe5d4(0x22b)])||_0x5357a7||_0x3d33ba[_0xe5d4(0x22c)],_0xa4cb78=await _asyncStorage[_0xe5d4(0x3)][_0xe5d4(0x179)](_0x3d33ba[_0xe5d4(0x16c)]),_0x1d1657=_0xa4cb78?JSON['parse'](_0xa4cb78):[];console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x3a7)],_0x1d1657);const _0x39cf00=await(0x0,_pinEncryptionService[_0xe5d4(0x3a8)])()['catch'](_0x4f091c=>{const _0x2311af={'xPdea':'2|5|0|3|1|4','mcioT':function(_0x5d80e6,_0x2a58da){return _0x3d33ba[_0xe5d4(0x2c3)](_0x5d80e6,_0x2a58da);},'nQGmp':_0x3d33ba['GIctd'],'qLGRF':function(_0x11771c,_0x232408){return _0x3d33ba[_0xe5d4(0x3a9)](_0x11771c,_0x232408);},'OtCsU':_0x3d33ba[_0xe5d4(0x1d3)],'WSjkg':_0x3d33ba[_0xe5d4(0x3aa)]};if(_0x3d33ba[_0xe5d4(0x18c)](_0x3d33ba[_0xe5d4(0x3ab)],_0x3d33ba['ulQQk']))return console['warn'](_0x3d33ba[_0xe5d4(0x3ac)],_0x4f091c),null;else{const _0x17bb71=_0x2311af[_0xe5d4(0x3ad)][_0xe5d4(0x1b9)]('|');let _0x52f107=0x0;while(!![]){switch(_0x17bb71[_0x52f107++]){case'0':_0x2311af['mcioT'](_0x1ed60f,_0x19a38a);continue;case'1':_0x3c6f3f(_0x515290);continue;case'2':_0x55fbf3[_0xe5d4(0x152)](_0x2311af[_0xe5d4(0x3ae)],_0xaf278c);continue;case'3':_0x2311af[_0xe5d4(0x3af)](_0x3a7db1,!![]);continue;case'4':_0x1c8a31(_0x2311af[_0xe5d4(0x3b0)]);continue;case'5':_0x27af1c[_0xe5d4(0x152)](_0x2311af['WSjkg']);continue;}break;}}}),_0x3f4457={'socketId':_0x4e2de1,'username':_0x3c0c7e,'email':(_0x3d33ba['qDZnl'](_0x1114c2,null)||_0x3d33ba[_0xe5d4(0x2dd)](_0x1114c2,void 0x0)?void 0x0:_0x1114c2[_0xe5d4(0x1b7)])||null,'modelKey':null,'connectedPlatforms':_0x1d1657,'platformConnections':_0x478fc8,..._0x3d33ba[_0xe5d4(0x223)](_0x39cf00,{'encryptedPin':_0x39cf00,'hasPinData':!![]})};console[_0xe5d4(0x152)](_0x3d33ba['gslKU'],_0x3f4457);const _0x1c7af7=await(0x0,_mobileTrainingService['startEnochTrainingWithYouTubeCheck'])(_0x3f4457);console['log'](_0x3d33ba[_0xe5d4(0x3b1)],_0x1c7af7);if(_0x1c7af7['requiresConnections']||_0x1c7af7[_0xe5d4(0x3b2)]===_0x3d33ba[_0xe5d4(0x37a)]){const _0x18460d=_0x3d33ba[_0xe5d4(0x3b3)]['split']('|');let _0x5435a9=0x0;while(!![]){switch(_0x18460d[_0x5435a9++]){case'0':_0x3d33ba[_0xe5d4(0x3b4)](_0x56cc22,_0x3d33ba[_0xe5d4(0x37a)]);continue;case'1':return;case'2':_0x3d33ba['YvbjN'](_0x5d7b48,_0x1c7af7);continue;case'3':_0x3d33ba[_0xe5d4(0x28a)](_0x3e08ff,!![]);continue;case'4':_0x3d33ba['GWleM'](_0xcbbaa1);continue;case'5':_0x3d33ba[_0xe5d4(0x175)](_0x59d51c,!![]);continue;case'6':_0x3d33ba['jljhS'](_0x418195,_0x3d33ba['cLXko']);continue;case'7':console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x3b5)]);continue;}break;}}if(_0x1c7af7[_0xe5d4(0x295)]){console[_0xe5d4(0x152)](_0x3d33ba['YavXx'],_0x1c7af7[_0xe5d4(0x19e)]),console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x3b6)],_0x1c7af7['features']);if(_0x1c7af7[_0xe5d4(0x2b2)]){if(_0x3d33ba[_0xe5d4(0x18c)](_0xe5d4(0xc8),_0x3d33ba[_0xe5d4(0x3b7)])){const _0x3086b4=_0xe5d4(0x3b8)['split']('|');let _0x4c8e33=0x0;while(!![]){switch(_0x3086b4[_0x4c8e33++]){case'0':console[_0xe5d4(0x152)](_0x3d33ba['gCOdX'],_0x1c7af7['features']['storage']);continue;case'1':console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2b9)],_0x1c7af7['features']['queryScores']);continue;case'2':console[_0xe5d4(0x152)](_0xe5d4(0x66),_0x1c7af7[_0xe5d4(0x2b2)][_0xe5d4(0x366)]);continue;case'3':console[_0xe5d4(0x152)]('✅\x20Inference\x20enabled:',_0x1c7af7[_0xe5d4(0x2b2)][_0xe5d4(0x312)]);continue;case'4':console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x310)],_0x1c7af7[_0xe5d4(0x2b2)][_0xe5d4(0x2bb)]);continue;case'5':console[_0xe5d4(0x152)](_0x3d33ba['PnVey'],_0x1c7af7[_0xe5d4(0x2b2)][_0xe5d4(0x315)]);continue;case'6':console[_0xe5d4(0x152)](_0x3d33ba['LNxpl'],_0x1c7af7[_0xe5d4(0x2b2)][_0xe5d4(0x2bc)]);continue;}break;}}else _0x4851a7[_0xe5d4(0x152)](_0xe5d4(0x3b9)),_0x1da037();}_0x3d33ba[_0xe5d4(0x3ba)](_0x418195,_0x3d33ba[_0xe5d4(0x3bb)]),_0x3d33ba[_0xe5d4(0x3bc)](_0xe4021b,0x19);}else{if(_0x3d33ba['HmSRi']!=='jWQju')console[_0xe5d4(0x170)](_0x3d33ba[_0xe5d4(0x3bd)],_0x1c7af7['error']),_0x3d33ba[_0xe5d4(0x3b4)](_0x418195,_0xe5d4(0x3be)+(_0x1c7af7[_0xe5d4(0x170)]||_0x3d33ba[_0xe5d4(0x3bf)])),_0x3e08ff(!![]),_0xcbbaa1();else{var _0x439b1b;_0x4aec88[_0x5494d1]=(_0x3d33ba['XIqYV'](_0x439b1b=_0x5c4341[_0x30ae0f],null)||_0x439b1b===void 0x0?void 0x0:_0x439b1b['connected'])||![];}}}catch(_0x21155c){console[_0xe5d4(0x170)](_0x3d33ba['wETmU'],_0x21155c),_0x3d33ba[_0xe5d4(0x3c0)](_0x418195,'Error:\x20'+(_0x21155c instanceof Error?_0x21155c[_0xe5d4(0x19e)]:_0x3d33ba[_0xe5d4(0x3c1)])),_0x3e08ff(!![]),_0xcbbaa1();}},_0x25c965=async _0x3517f9=>{const _0x8b3b0={'CIMXG':_0x3d33ba[_0xe5d4(0x3c2)],'GzNQF':_0xe5d4(0x2f)};if(_0x3d33ba[_0xe5d4(0x3c3)](_0x3d33ba['FBgpm'],_0x3d33ba[_0xe5d4(0x3c4)]))_0x4ba16b[_0xe5d4(0x152)](_0x8b3b0[_0xe5d4(0x3c5)]),_0x511741(_0x8b3b0[_0xe5d4(0x3c6)]);else try{console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x3c7)]),console['log'](_0x3d33ba[_0xe5d4(0x1cc)],(_0x3d33ba[_0xe5d4(0x18c)](_0x4e77d3,null)||_0x3d33ba['tYCyC'](_0x4e77d3,void 0x0)?void 0x0:_0x4e77d3[_0xe5d4(0x1fa)](0x0,0x14))+_0xe5d4(0x15f));if(!_0x6e32ce){if(_0x3d33ba[_0xe5d4(0x3c8)](_0x3d33ba['XRuXD'],_0x3d33ba[_0xe5d4(0x3c9)]))_0x19976b[_0xe5d4(0x152)](_0xe5d4(0x3ca),_0x3b332f),_0x3d33ba[_0xe5d4(0x235)](_0x157908,_0xe5d4(0x3cb)+_0x563a59+_0xe5d4(0x3cc));else throw new Error(_0x3d33ba[_0xe5d4(0x3cd)]);}console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x3ce)]),console['log'](_0xe5d4(0x1fb),_0x6e32ce),console[_0xe5d4(0x152)]('✅\x20[BACKGROUND]\x20PIN\x20submitted\x20for\x20existing\x20training\x20session');}catch(_0x179e7c){console[_0xe5d4(0x170)](_0x3d33ba[_0xe5d4(0x389)],_0x179e7c);throw _0x179e7c;}},_0x4c9083=async()=>{const _0x500cdd={'sjzNX':_0xe5d4(0x2df),'zYMKL':function(_0x3351a1,_0x452a6d){return _0x3d33ba[_0xe5d4(0x3cf)](_0x3351a1,_0x452a6d);},'EqQCD':_0x3d33ba[_0xe5d4(0x3d0)],'pRDWn':_0x3d33ba['GsAGb'],'unSxA':function(_0x321df6,_0x21738d){return _0x321df6===_0x21738d;},'UQbiB':function(_0x1da9bf,_0x220a8c){return _0x3d33ba['WxzLl'](_0x1da9bf,_0x220a8c);},'ttiiZ':function(_0x236572,_0x289158){return _0x236572===_0x289158;},'HfSjM':function(_0x4ae956,_0x4f76f1){return _0x3d33ba[_0xe5d4(0x2d9)](_0x4ae956,_0x4f76f1);},'IrYeE':_0x3d33ba[_0xe5d4(0x14a)],'UpYRV':function(_0x6d13c9,_0x503e8b){return _0x3d33ba[_0xe5d4(0x3d1)](_0x6d13c9,_0x503e8b);},'vVRIG':function(_0x4e3276,_0x3036f8){return _0x4e3276===_0x3036f8;},'LcudD':function(_0x3d3460,_0x284b85){return _0x3d33ba[_0xe5d4(0x3d2)](_0x3d3460,_0x284b85);},'BSHUt':'🔌\x20Socket\x20ID\x20for\x20training:','hPWBm':_0x3d33ba[_0xe5d4(0x248)],'mRVQA':_0xe5d4(0x160),'hJcba':_0x3d33ba[_0xe5d4(0x3d3)],'dULkr':_0x3d33ba['vJpcE'],'WIlRP':function(_0x34ed2c,_0x4f447a){return _0x3d33ba[_0xe5d4(0x289)](_0x34ed2c,_0x4f447a);},'xYfUq':_0x3d33ba['bdXWz'],'AXmgt':_0x3d33ba[_0xe5d4(0x2c0)],'QqJIv':_0x3d33ba['vDRHc'],'iOMUX':_0x3d33ba[_0xe5d4(0x3d4)],'rkCYl':_0x3d33ba[_0xe5d4(0x3d5)],'vrMom':_0x3d33ba['Obkva'],'WHQdD':function(_0x364696,_0x5e9396){return _0x3d33ba[_0xe5d4(0x3d6)](_0x364696,_0x5e9396);},'WKdWf':function(_0xaa4c6c,_0x47eb1a){return _0x3d33ba['QRRsp'](_0xaa4c6c,_0x47eb1a);},'XwPVj':_0xe5d4(0x25),'mzPXV':function(_0xf313c4,_0x1cebbd){return _0x3d33ba[_0xe5d4(0x28b)](_0xf313c4,_0x1cebbd);},'HHhol':'CJRBM','vPAti':_0xe5d4(0x3d7),'wCEOF':_0x3d33ba[_0xe5d4(0x3d8)],'RyOPD':function(_0x190cf5,_0x1ddbbb){return _0x3d33ba[_0xe5d4(0x3d9)](_0x190cf5,_0x1ddbbb);},'QBRYp':_0x3d33ba[_0xe5d4(0x3da)],'VsEGD':function(_0x20d4cf,_0x412539){return _0x20d4cf(_0x412539);},'AEelJ':function(_0x331b68,_0x53b47f){return _0x3d33ba[_0xe5d4(0x3db)](_0x331b68,_0x53b47f);},'AmolQ':_0x3d33ba[_0xe5d4(0x3dc)],'EZvRT':_0x3d33ba[_0xe5d4(0x3dd)],'PzfqE':_0xe5d4(0x3de),'GntLy':function(_0x439c21,_0x188a5e){return _0x3d33ba[_0xe5d4(0x3df)](_0x439c21,_0x188a5e);},'XtbEu':_0xe5d4(0x3e0),'dcsmu':function(_0x5e377a,_0x1153f7){return _0x3d33ba[_0xe5d4(0x1dc)](_0x5e377a,_0x1153f7);},'XewkD':function(_0x48552d,_0x103124){return _0x48552d(_0x103124);},'HtJSp':function(_0x1f3431){return _0x3d33ba[_0xe5d4(0x3e1)](_0x1f3431);},'wavgj':function(_0x57e2f0,_0x1fa2c0,_0x3449ac,_0x2180ca){return _0x3d33ba[_0xe5d4(0x3e2)](_0x57e2f0,_0x1fa2c0,_0x3449ac,_0x2180ca);},'BcWDq':'training-complete-token','cPiAy':function(_0x4881b1,_0x507cab){return _0x3d33ba['KLcUh'](_0x4881b1,_0x507cab);},'gQdat':_0xe5d4(0x3e3),'yqDEo':_0x3d33ba[_0xe5d4(0x3e4)],'KOFhw':_0x3d33ba[_0xe5d4(0x3e5)],'bKJHL':_0x3d33ba[_0xe5d4(0x310)],'yvdwe':_0xe5d4(0x311),'nhhpI':_0x3d33ba[_0xe5d4(0x3e6)],'uEMIq':_0x3d33ba[_0xe5d4(0x3e7)],'hKqNI':_0x3d33ba[_0xe5d4(0x3e8)],'yKsyG':_0x3d33ba['mhzjX'],'cwOqI':_0xe5d4(0x314),'SOPVo':function(_0x396d10,_0x1970b9){return _0x3d33ba['mykGV'](_0x396d10,_0x1970b9);},'KdiPx':_0x3d33ba[_0xe5d4(0x3e9)],'IljVG':function(_0x488b4b,_0x12e150){return _0x3d33ba[_0xe5d4(0x3ea)](_0x488b4b,_0x12e150);},'XrMSJ':_0x3d33ba[_0xe5d4(0x341)],'NXoNa':_0x3d33ba[_0xe5d4(0x3eb)],'XBlZW':function(_0x43a056,_0x5d12bd){return _0x3d33ba[_0xe5d4(0x3ec)](_0x43a056,_0x5d12bd);},'THlcv':function(_0x290df3,_0x23fbb6){return _0x290df3===_0x23fbb6;},'IrheQ':function(_0x3a769b,_0x4f1ae0){return _0x3d33ba[_0xe5d4(0x2d6)](_0x3a769b,_0x4f1ae0);},'LooJz':function(_0x38a97f,_0x33472d){return _0x3d33ba[_0xe5d4(0x150)](_0x38a97f,_0x33472d);},'FYQnr':function(_0x42861b,_0x3993cc){return _0x42861b(_0x3993cc);}};_0x3d33ba[_0xe5d4(0x3ed)](_0xe4021b,0x0),_0x3d33ba[_0xe5d4(0x3ee)](_0x418195,_0x3d33ba[_0xe5d4(0x3ef)]),_0x3d33ba[_0xe5d4(0x35f)](_0x38c401,![]),_0x3e08ff(![]),_0x3d33ba[_0xe5d4(0x3f0)](_0x379b38);try{if(_0x3d33ba[_0xe5d4(0x3f1)]===_0x3d33ba[_0xe5d4(0x3f1)]){var _0x243aa7;console['log'](_0x3d33ba['pYcQN']),console['log'](_0x3d33ba['CnGIn']);const _0x3506ff=await _0x75147d();if(!_0x3506ff)throw new Error(_0x3d33ba[_0xe5d4(0x3f2)]);_0x3d33ba[_0xe5d4(0x3f3)](_0x491998,_0x3506ff),console[_0xe5d4(0x152)](_0xe5d4(0x3f4),_0x3506ff[_0xe5d4(0x1fa)](0x0,0x14)+'...'),console[_0xe5d4(0x152)](_0x3d33ba['znCAF'],_0x3506ff[_0xe5d4(0x204)]);const _0x541ee3=await(0x0,_jwtStorageService['getJWT'])();console[_0xe5d4(0x152)](_0x3d33ba['ouuuz'],_0x541ee3?_0x541ee3[_0xe5d4(0x1fa)](0x0,0x14)+_0xe5d4(0x15f):_0x3d33ba[_0xe5d4(0x3f5)]);if(!_0x1114c2){var _0x33e498;console[_0xe5d4(0x152)](_0xe5d4(0x3f6));const _0x283e59=await(0x0,_authService[_0xe5d4(0x228)])(),_0x18a363=_0x283e59||(_0x3d33ba['cCCuu'](_0x15ff12,null)||_0x15ff12===void 0x0||_0x3d33ba[_0xe5d4(0x3f7)](_0x33e498=_0x15ff12[_0xe5d4(0x1b7)],null)||_0x3d33ba[_0xe5d4(0x3d6)](_0x33e498,void 0x0)?void 0x0:_0x33e498[_0xe5d4(0x1b9)]('@')[0x0])||(_0x3d33ba[_0xe5d4(0x3f8)](_0x15ff12,null)||_0x3d33ba['IGdlY'](_0x15ff12,void 0x0)?void 0x0:_0x15ff12[_0xe5d4(0x22b)])||'mobile_user',_0x3b0e7b={'username':_0x18a363,'email':(_0x3d33ba[_0xe5d4(0x281)](_0x15ff12,null)||_0x3d33ba[_0xe5d4(0x3f9)](_0x15ff12,void 0x0)?void 0x0:_0x15ff12[_0xe5d4(0x1b7)])||null,'id':null};_0x3d33ba[_0xe5d4(0x36d)](_0x13d180,_0x3b0e7b),_0x3d33ba[_0xe5d4(0x35f)](_0x2f47ae,_0x18a363),console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x3fa)],_0x3b0e7b),await new Promise(_0x1ccbc9=>setTimeout(()=>_0x1ccbc9(),0xc8));}const _0x14d1ce=_0x3d33ba[_0xe5d4(0x3fb)](_0x1114c2,{'username':_0x5357a7||(_0x3d33ba['bPvjU'](_0x15ff12,null)||_0x3d33ba[_0xe5d4(0x3fc)](_0x15ff12,void 0x0)||(_0x243aa7=_0x15ff12[_0xe5d4(0x1b7)])===null||_0x3d33ba['FrDEF'](_0x243aa7,void 0x0)?void 0x0:_0x243aa7[_0xe5d4(0x1b9)]('@')[0x0])||(_0x3d33ba[_0xe5d4(0x3fd)](_0x15ff12,null)||_0x3d33ba['xYjrJ'](_0x15ff12,void 0x0)?void 0x0:_0x15ff12[_0xe5d4(0x22b)])||_0x3d33ba[_0xe5d4(0x22c)],'email':(_0x15ff12===null||_0x3d33ba[_0xe5d4(0x3fe)](_0x15ff12,void 0x0)?void 0x0:_0x15ff12['email'])||null,'id':null});if(!_0x3506ff){if(_0x3d33ba['TIzBi'](_0xe5d4(0x3ff),_0x3d33ba[_0xe5d4(0x400)])){console['error'](_0xe5d4(0x127));throw new Error(_0x3d33ba[_0xe5d4(0x3a4)]);}else _0x3dd8c4[_0xe5d4(0x152)](_0x500cdd[_0xe5d4(0x401)],_0x477e02[_0xe5d4(0x19e)]),_0x500cdd[_0xe5d4(0x402)](_0x220a6f,_0x20b1fd[_0xe5d4(0x19e)]||_0x500cdd[_0xe5d4(0x403)]);}console['log'](_0xe5d4(0x404)),console[_0xe5d4(0x152)](_0xe5d4(0x405),_0x14d1ce),console[_0xe5d4(0x152)](_0xe5d4(0x406),!!_0x3506ff),console[_0xe5d4(0x152)](_0x3d33ba['FYnEl']),console['log'](_0x3d33ba[_0xe5d4(0x407)],_reactNative[_0xe5d4(0x408)]['OS']),console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x409)]),_0x3d33ba[_0xe5d4(0x40a)](_0x418195,_0xe5d4(0x40b)),_0x3d33ba['ugezR'](_0xe4021b,0x5),_0x2d570b['current']=(0x0,_socket['io'])(_api['API_CONFIG']['BASE_URL'],{'transports':[_0x3d33ba['GpugP'],_0x3d33ba['AfTYW']],'autoConnect':![],'timeout':0x3a98,'reconnection':!![],'reconnectionAttempts':0x3,'reconnectionDelay':0x3e8,'forceNew':!![]}),console['log'](_0xe5d4(0x40c),{'connected':_0x2d570b[_0xe5d4(0x155)]['connected'],'id':_0x2d570b[_0xe5d4(0x155)]['id'],'disconnected':_0x2d570b[_0xe5d4(0x155)]['disconnected']}),_0x2d570b[_0xe5d4(0x155)]['on'](_0x3d33ba[_0xe5d4(0x40d)],()=>{var _0x1f89c1,_0x243db0,_0x372432,_0x3d9c27;console[_0xe5d4(0x152)](_0xe5d4(0x40e)),console[_0xe5d4(0x152)](_0x500cdd[_0xe5d4(0x40f)],{'id':_0x500cdd[_0xe5d4(0x410)](_0x1f89c1=_0x2d570b['current'],null)||_0x500cdd[_0xe5d4(0x410)](_0x1f89c1,void 0x0)?void 0x0:_0x1f89c1['id'],'connected':_0x500cdd[_0xe5d4(0x410)](_0x243db0=_0x2d570b[_0xe5d4(0x155)],null)||_0x500cdd[_0xe5d4(0x410)](_0x243db0,void 0x0)?void 0x0:_0x243db0[_0xe5d4(0x4d)],'transport':_0x500cdd[_0xe5d4(0x411)](_0x372432=_0x2d570b[_0xe5d4(0x155)],null)||_0x500cdd[_0xe5d4(0x412)](_0x372432,void 0x0)||_0x500cdd[_0xe5d4(0x413)](_0x372432=_0x372432['io'],null)||_0x500cdd['UQbiB'](_0x372432,void 0x0)||_0x500cdd[_0xe5d4(0x411)](_0x372432=_0x372432[_0xe5d4(0x157)],null)||_0x500cdd[_0xe5d4(0x411)](_0x372432,void 0x0)||(_0x372432=_0x372432['transport'])===null||_0x372432===void 0x0?void 0x0:_0x372432[_0xe5d4(0x22b)]}),_0x500cdd[_0xe5d4(0x402)](_0x577f52,!![]),_0x418195(_0x500cdd['IrYeE']),_0x500cdd[_0xe5d4(0x414)](_0xe4021b,0xa);const _0x5408c6=_0x500cdd[_0xe5d4(0x415)](_0x3d9c27=_0x2d570b[_0xe5d4(0x155)],null)||_0x500cdd[_0xe5d4(0x416)](_0x3d9c27,void 0x0)?void 0x0:_0x3d9c27['id'];console[_0xe5d4(0x152)](_0x500cdd[_0xe5d4(0x417)],_0x5408c6),_0x5408c6?(console[_0xe5d4(0x152)](_0x500cdd['hPWBm'],_0x3506ff?_0x3506ff[_0xe5d4(0x1fa)](0x0,0x14)+_0xe5d4(0x15f):_0x500cdd[_0xe5d4(0x418)]),console[_0xe5d4(0x152)](_0xe5d4(0x14)),_0x500cdd[_0xe5d4(0x402)](_0x418195,_0x500cdd[_0xe5d4(0x419)])):(console[_0xe5d4(0x170)](_0x500cdd['dULkr']),_0x500cdd['WIlRP'](_0x418195,_0xe5d4(0x73)),_0x500cdd[_0xe5d4(0x414)](_0x3e08ff,!![]),_0xcbbaa1());}),_0x2d570b[_0xe5d4(0x155)]['on'](_0x3d33ba[_0xe5d4(0x41a)],_0x3a161a=>{var _0x3aa677;console[_0xe5d4(0x152)](_0xe5d4(0x57),_0x3a161a),console[_0xe5d4(0x152)](_0x500cdd[_0xe5d4(0x41b)],{'reason':_0x3a161a,'wasConnected':_0x5972fe,'socketId':_0x500cdd['UQbiB'](_0x3aa677=_0x2d570b[_0xe5d4(0x155)],null)||_0x500cdd[_0xe5d4(0x411)](_0x3aa677,void 0x0)?void 0x0:_0x3aa677['id']}),_0x500cdd['zYMKL'](_0x577f52,![]);}),_0x2d570b[_0xe5d4(0x155)]['on'](_0x3d33ba['YXjVM'],_0x4fa488=>{const _0x5ef5d2={'hHlic':_0x500cdd[_0xe5d4(0x41c)]};_0xe5d4(0x41d)===_0x500cdd[_0xe5d4(0x41e)]?_0x474ec9[_0xe5d4(0x152)](_0x5ef5d2[_0xe5d4(0x41f)]):(console[_0xe5d4(0x152)](_0x500cdd[_0xe5d4(0x420)],_0x4fa488,_0x500cdd[_0xe5d4(0x421)]),_0x577f52(!![]));}),_0x2d570b[_0xe5d4(0x155)]['on'](_0x3d33ba[_0xe5d4(0x422)],_0x4a889f=>{if(_0x3d33ba['ogiSv'](_0x3d33ba[_0xe5d4(0x423)],_0x3d33ba[_0xe5d4(0x424)])){var _0x32cd1f,_0x361c4d,_0x20ace8,_0x280c4a;_0x116a12['log'](_0x500cdd[_0xe5d4(0x425)],{'connected':_0x500cdd[_0xe5d4(0x410)](_0x32cd1f=_0x57dcf6[_0xe5d4(0x155)],null)||_0x32cd1f===void 0x0?void 0x0:_0x32cd1f['connected'],'disconnected':_0x500cdd[_0xe5d4(0x412)](_0x361c4d=_0x10b804[_0xe5d4(0x155)],null)||_0x500cdd[_0xe5d4(0x416)](_0x361c4d,void 0x0)?void 0x0:_0x361c4d[_0xe5d4(0x4e)],'id':(_0x20ace8=_0x4cee0f[_0xe5d4(0x155)])===null||_0x500cdd[_0xe5d4(0x426)](_0x20ace8,void 0x0)?void 0x0:_0x20ace8['id'],'engineConnected':(_0x280c4a=_0x173716[_0xe5d4(0x155)])===null||_0x500cdd[_0xe5d4(0x427)](_0x280c4a,void 0x0)||(_0x280c4a=_0x280c4a['io'])===null||_0x500cdd[_0xe5d4(0x410)](_0x280c4a,void 0x0)||_0x500cdd[_0xe5d4(0x427)](_0x280c4a=_0x280c4a[_0xe5d4(0x157)],null)||_0x500cdd[_0xe5d4(0x412)](_0x280c4a,void 0x0)?void 0x0:_0x280c4a[_0xe5d4(0x428)]});}else console[_0xe5d4(0x152)](_0xe5d4(0x3ca),_0x4a889f),_0x3d33ba[_0xe5d4(0x1c9)](_0x418195,'Reconnecting...\x20('+_0x4a889f+_0xe5d4(0x3cc));}),_0x2d570b[_0xe5d4(0x155)]['on'](_0xe5d4(0x429),_0x33b197=>{_0x500cdd['mzPXV'](_0x500cdd[_0xe5d4(0x42a)],_0x500cdd[_0xe5d4(0x42a)])?console[_0xe5d4(0x170)](_0x500cdd[_0xe5d4(0x42b)],_0x33b197):_0x3eb329[_0xe5d4(0x170)](_0x500cdd[_0xe5d4(0x42c)],_0x39e6cf);}),_0x2d570b['current']['on'](_0x3d33ba[_0xe5d4(0x42d)],()=>{console['error'](_0x500cdd[_0xe5d4(0x42e)]),_0x500cdd[_0xe5d4(0x42f)](_0x418195,_0x500cdd[_0xe5d4(0x430)]),_0x3e08ff(!![]),_0xcbbaa1();}),_0x2d570b[_0xe5d4(0x155)]['on'](_0x3d33ba[_0xe5d4(0x431)],_0x329f63=>{const _0x5a25cf=_0xe5d4(0x432)[_0xe5d4(0x1b9)]('|');let _0x32ca9c=0x0;while(!![]){switch(_0x5a25cf[_0x32ca9c++]){case'0':_0x3e08ff(!![]);continue;case'1':_0x3d33ba['TQTLs'](_0xcbbaa1);continue;case'2':console[_0xe5d4(0x170)](_0x3d33ba[_0xe5d4(0x2c4)],_0x329f63);continue;case'3':console[_0xe5d4(0x170)](_0x3d33ba[_0xe5d4(0x2c5)],{'message':_0x329f63[_0xe5d4(0x19e)],'name':_0x329f63[_0xe5d4(0x22b)],'stack':_0x329f63[_0xe5d4(0x2d1)],'errorObject':_0x329f63});continue;case'4':_0x3d33ba[_0xe5d4(0x1c9)](_0x418195,_0x3d33ba['ZnWmW']);continue;}break;}}),_0x2d570b[_0xe5d4(0x155)]['on'](_0x3d33ba[_0xe5d4(0x433)],_0xff109=>{const _0x41c95b={'KHtpK':function(_0x390349,_0x46ff50){return _0x3d33ba[_0xe5d4(0x1d4)](_0x390349,_0x46ff50);}};_0xe5d4(0x434)!==_0x3d33ba[_0xe5d4(0x435)]?(console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x436)],_0xff109),_0x3d33ba[_0xe5d4(0x3ea)](_0x418195,_0xe5d4(0x437)),_0x3d33ba[_0xe5d4(0x438)](_0xe4021b,0x3c)):_0x41c95b[_0xe5d4(0x439)](_0x13dc6b,'.'[_0xe5d4(0x1ae)](_0x3effb4));}),_0x2d570b[_0xe5d4(0x155)]['on'](_0x3d33ba[_0xe5d4(0x43a)],_0x20f56a=>{const _0x36975c={'oQxEk':function(_0x524a38,_0x28d1f0){return _0x500cdd[_0xe5d4(0x43b)](_0x524a38,_0x28d1f0);}};if(_0x500cdd['AEelJ'](_0x500cdd[_0xe5d4(0x43c)],_0xe5d4(0x43d))){const _0x11effe=_0x500cdd[_0xe5d4(0x43e)][_0xe5d4(0x1b9)]('|');let _0x35a91a=0x0;while(!![]){switch(_0x11effe[_0x35a91a++]){case'0':_0x500cdd[_0xe5d4(0x414)](_0xe4021b,0x50);continue;case'1':console['log'](_0x500cdd['PzfqE'],_0x20f56a);continue;case'2':_0x500cdd[_0xe5d4(0x43f)](_0x6adcb0,_0x20f56a[_0xe5d4(0x440)]);continue;case'3':_0xcc46d3(_0x20f56a[_0xe5d4(0x441)]);continue;case'4':_0x418195(_0x500cdd[_0xe5d4(0x442)]);continue;}break;}}else _0x36975c[_0xe5d4(0x443)](_0x2d85c3,![]);}),_0x2d570b['current']['on'](_0x3d33ba[_0xe5d4(0x444)],_0x39270e=>{const _0x284739={'yzlZP':function(_0x544ea9,_0x2244b1,_0x46320c,_0x4845e7){return _0x500cdd['wavgj'](_0x544ea9,_0x2244b1,_0x46320c,_0x4845e7);},'VNLYk':_0x500cdd[_0xe5d4(0x445)],'NsNtE':function(_0x19c7ab,_0x2b96ab){return _0x500cdd['LcudD'](_0x19c7ab,_0x2b96ab);}};_0x500cdd['cPiAy'](_0x500cdd[_0xe5d4(0x446)],_0x500cdd[_0xe5d4(0x447)])?(_0x5bcad6[_0xe5d4(0x170)](_0x500cdd[_0xe5d4(0x42e)]),_0x500cdd[_0xe5d4(0x448)](_0xfabf8b,_0x500cdd[_0xe5d4(0x430)]),_0x500cdd[_0xe5d4(0x449)](_0x52c057,!![]),_0x500cdd[_0xe5d4(0x44a)](_0x1fb67f)):(console[_0xe5d4(0x152)](_0xe5d4(0x44b),_0x39270e),_0x39270e[_0xe5d4(0x44c)]&&(console[_0xe5d4(0x152)](_0x500cdd[_0xe5d4(0x44d)],_0x39270e['message']),console['log'](_0xe5d4(0x67),_0x39270e['storage']),console[_0xe5d4(0x152)](_0x500cdd[_0xe5d4(0x44e)],_0x39270e['encryption']),console[_0xe5d4(0x152)](_0x500cdd[_0xe5d4(0x44f)],_0x39270e['inference']),_0x39270e[_0xe5d4(0x315)]&&Array[_0xe5d4(0x208)](_0x39270e[_0xe5d4(0x315)])&&(_0x500cdd[_0xe5d4(0x427)](_0xe5d4(0xf3),_0x500cdd['nhhpI'])?console[_0xe5d4(0x152)](_0x500cdd[_0xe5d4(0x450)],_0x39270e[_0xe5d4(0x315)][_0xe5d4(0x316)](',\x20')):(_0x40ae08[_0xe5d4(0x170)](_0xe5d4(0x451),_0x2ca111),_0x842df0===null||_0xef47e4===void 0x0||_0x284739[_0xe5d4(0x452)](_0x121947,_0x219b09['API_CONFIG'][_0xe5d4(0x309)],_0x284739[_0xe5d4(0x453)],{'email':(_0x30f393===null||_0x284739[_0xe5d4(0x454)](_0x8a0f53,void 0x0)?void 0x0:_0x241a84[_0xe5d4(0x1b7)])||'',..._0x58b39b}))),_0x39270e[_0xe5d4(0x313)]&&(_0x500cdd[_0xe5d4(0x455)](_0x500cdd[_0xe5d4(0x456)],_0x500cdd['yKsyG'])?console[_0xe5d4(0x152)](_0x500cdd[_0xe5d4(0x457)]):_0x488868())),_0x500cdd[_0xe5d4(0x402)](_0x38c401,!![]),_0x500cdd[_0xe5d4(0x458)](_0x418195,_0x500cdd[_0xe5d4(0x459)]),_0x500cdd[_0xe5d4(0x42f)](_0xe4021b,0x64),_0xcbbaa1());}),_0x2d570b[_0xe5d4(0x155)]['on'](_0x3d33ba[_0xe5d4(0x45a)],_0x1fcd14=>{const _0x41e491={'jQmKZ':_0x3d33ba[_0xe5d4(0x3a4)],'tQfgo':_0x3d33ba['oMZgG'],'BDswx':function(_0x262841,_0x9a08a8){return _0x262841(_0x9a08a8);},'PUrIK':_0xe5d4(0xe3),'pYwsU':function(_0x47a336,_0x1c0a2c){return _0x3d33ba['mPtCa'](_0x47a336,_0x1c0a2c);},'ICztB':_0x3d33ba[_0xe5d4(0x45b)],'POUkn':_0x3d33ba['ylLEc'],'yGxpd':_0x3d33ba['zgARR'],'inwlw':_0x3d33ba[_0xe5d4(0x45c)],'YMPYi':function(_0x5a864c,_0x1664e4){return _0x3d33ba[_0xe5d4(0x45d)](_0x5a864c,_0x1664e4);},'cxAaR':_0xe5d4(0x45e),'neyET':_0x3d33ba[_0xe5d4(0x45f)],'TdDmD':_0xe5d4(0x460),'iQVAt':_0x3d33ba['RgtNO'],'pNtCq':function(_0x2a98b0,_0x55b6a5){return _0x3d33ba[_0xe5d4(0x2f1)](_0x2a98b0,_0x55b6a5);},'vSLFD':_0xe5d4(0x461),'BpbaS':_0x3d33ba[_0xe5d4(0x462)],'zFUPG':function(_0xe36732,_0xde2d9b){return _0x3d33ba['BbuRG'](_0xe36732,_0xde2d9b);},'iHnvW':_0x3d33ba[_0xe5d4(0x463)],'MwMyW':function(_0x1b113c){return _0x3d33ba[_0xe5d4(0x464)](_0x1b113c);},'bhDKx':_0xe5d4(0x465),'BKZPS':_0x3d33ba[_0xe5d4(0x466)],'dwrfm':function(_0x2d5120,_0x11fe92){return _0x2d5120(_0x11fe92);},'EIhiR':function(_0x3edb00,_0x314a3e){return _0x3d33ba[_0xe5d4(0x467)](_0x3edb00,_0x314a3e);},'IZXVD':_0xe5d4(0x12e),'BiJte':function(_0x552fd3,_0x529a33){return _0x3d33ba['DHxNt'](_0x552fd3,_0x529a33);}};if(_0x3d33ba[_0xe5d4(0x468)](_0x3d33ba[_0xe5d4(0x469)],_0x3d33ba[_0xe5d4(0x469)]))_0x500cdd['IljVG'](_0x44548c,_0x3f762f),_0xce1530(_0x500cdd[_0xe5d4(0x46a)]);else{console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x46b)],_0x1fcd14);if(_0x1fcd14[_0xe5d4(0x170)]&&_0x1fcd14[_0xe5d4(0x170)][_0xe5d4(0x16e)](_0x3d33ba[_0xe5d4(0x46c)])){console[_0xe5d4(0x152)](_0x3d33ba['WwcIp']),_0x3d33ba[_0xe5d4(0x46d)](_0x56cc22,null),_0x3d33ba[_0xe5d4(0x46e)](_0x59d51c,![]),_0x3d33ba[_0xe5d4(0x46f)](_0x418195,'YouTube\x20token\x20expired\x20-\x20reconnecting...'),_0x3d33ba['UAASd'](setTimeout,async()=>{const _0x29a710={'eTmyx':_0x41e491[_0xe5d4(0x470)],'ovBtv':function(_0x479d4a,_0x556e5c){return _0x41e491['BDswx'](_0x479d4a,_0x556e5c);},'jNQtt':_0x41e491['PUrIK'],'zLrZd':function(_0x46a80d,_0x1c9068){return _0x41e491[_0xe5d4(0x471)](_0x46a80d,_0x1c9068);},'RSkAv':function(_0x1615e1,_0x53dade){return _0x1615e1(_0x53dade);},'PkWbr':function(_0x3066c7,_0x20c954){return _0x41e491[_0xe5d4(0x472)](_0x3066c7,_0x20c954);}};try{if(_0xe5d4(0x473)===_0x41e491[_0xe5d4(0x474)]){_0x2887e1[_0xe5d4(0x152)](_0x29a710[_0xe5d4(0x475)]),_0x29a710['ovBtv'](_0x201165,_0x29a710['jNQtt']),_0x29a710['zLrZd'](_0x2879ee,_0x49cd47[_0xe5d4(0x476)]),_0x29a710[_0xe5d4(0x477)](_0x489308,!![]),_0x29a710[_0xe5d4(0x478)](_0x4dbace,_0xe5d4(0x479));return;}else{console[_0xe5d4(0x152)](_0x41e491['POUkn']);const _0xe0098c=await(0x0,_platformAuthService[_0xe5d4(0x47a)])();if(_0xe0098c){if(_0xe5d4(0xd8)!==_0x41e491[_0xe5d4(0x47b)]){_0x1db4e4['error'](_0xe5d4(0x3a3));throw new _0x50cfe6(_0x41e491['jQmKZ']);}else console[_0xe5d4(0x152)](_0xe5d4(0x47c)),_0x41e491[_0xe5d4(0x471)](_0x418195,_0x41e491[_0xe5d4(0x47d)]),_0x41e491[_0xe5d4(0x47e)](_0x3e08ff,!![]);}else{console[_0xe5d4(0x152)]('❌\x20Token\x20refresh\x20failed,\x20attempting\x20full\x20reconnection...'),_0x41e491['BDswx'](_0x418195,_0x41e491[_0xe5d4(0x47f)]);try{await _0x41e491[_0xe5d4(0x471)](_0x55c0ef,_0x41e491[_0xe5d4(0x480)]),console[_0xe5d4(0x152)](_0x41e491[_0xe5d4(0x481)]),_0x418195(_0x41e491[_0xe5d4(0x482)]),_0x3e08ff(!![]);}catch(_0x1c750b){_0x41e491['pNtCq'](_0xe5d4(0x461),_0x41e491[_0xe5d4(0x483)])?_0x29a710[_0xe5d4(0x484)](_0x5229fd,_0x2d356b[_0xe5d4(0x155)]):(console[_0xe5d4(0x170)](_0x41e491[_0xe5d4(0x485)],_0x1c750b),_0x41e491['zFUPG'](_0x418195,_0x41e491[_0xe5d4(0x486)]),_0x3e08ff(!![]),_0x41e491[_0xe5d4(0x487)](_0xcbbaa1));}}}}catch(_0x388de7){console[_0xe5d4(0x170)](_0x41e491[_0xe5d4(0x488)],_0x388de7),_0x418195(_0x41e491[_0xe5d4(0x489)]),_0x41e491[_0xe5d4(0x48a)](_0x3e08ff,!![]),_0xcbbaa1();}},0x3e8);return;}if(_0x1fcd14[_0xe5d4(0x48b)]||_0x1fcd14[_0xe5d4(0x3b2)]===_0x3d33ba[_0xe5d4(0x37a)]){const _0x1c2103=_0xe5d4(0x48c)[_0xe5d4(0x1b9)]('|');let _0x451908=0x0;while(!![]){switch(_0x1c2103[_0x451908++]){case'0':return;case'1':_0x5d7b48(_0x1fcd14);continue;case'2':_0x3d33ba['uBXky'](_0xcbbaa1);continue;case'3':_0x3e08ff(!![]);continue;case'4':_0x3d33ba[_0xe5d4(0x48d)](_0x418195,_0x3d33ba[_0xe5d4(0x379)]);continue;case'5':_0x3d33ba[_0xe5d4(0x38b)](_0x59d51c,!![]);continue;case'6':console[_0xe5d4(0x152)]('🔗\x20Connections\x20required\x20detected\x20from\x20socket');continue;case'7':_0x3d33ba[_0xe5d4(0x35b)](_0x56cc22,_0x3d33ba[_0xe5d4(0x37a)]);continue;}break;}}if(_0x3d33ba['dtvkw'](_0x1fcd14[_0xe5d4(0x3b2)],'NO_DATA')){console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x48e)]),_0x56cc22(_0x3d33ba[_0xe5d4(0x48f)]),_0x3d33ba[_0xe5d4(0x490)](_0x5d7b48,_0x1fcd14[_0xe5d4(0x476)]),_0x3d33ba[_0xe5d4(0x491)](_0x59d51c,!![]),_0x3d33ba[_0xe5d4(0x492)](_0x418195,_0x3d33ba['XsHyo']),_0x3d33ba[_0xe5d4(0x493)](_0x3e08ff,!![]),_0xcbbaa1();return;}if(_0x3d33ba['mYhkh'](_0x1fcd14[_0xe5d4(0x3b2)],_0x3d33ba['YGsPF'])){const _0x37fb5e=_0x3d33ba['WCHRK'][_0xe5d4(0x1b9)]('|');let _0x3712ff=0x0;while(!![]){switch(_0x37fb5e[_0x3712ff++]){case'0':_0x418195(_0x3d33ba['GvoGV']);continue;case'1':console['log'](_0x3d33ba[_0xe5d4(0x494)]);continue;case'2':_0x56cc22(_0x3d33ba[_0xe5d4(0x495)]);continue;case'3':_0x3d33ba[_0xe5d4(0x36d)](_0x59d51c,!![]);continue;case'4':return;case'5':_0x3d33ba[_0xe5d4(0x38b)](_0x5d7b48,_0x1fcd14[_0xe5d4(0x476)]);continue;}break;}}if(_0x1fcd14[_0xe5d4(0x170)])console[_0xe5d4(0x170)](_0xe5d4(0x496),_0x1fcd14[_0xe5d4(0x170)]),_0x3d33ba[_0xe5d4(0x497)](_0x418195,'Error:\x20'+_0x1fcd14[_0xe5d4(0x170)]),_0x3d33ba[_0xe5d4(0x48d)](_0x3e08ff,!![]),_0x3d33ba[_0xe5d4(0x464)](_0xcbbaa1);else{if(_0x1fcd14['progress']){if(_0x3d33ba[_0xe5d4(0x498)]===_0x3d33ba[_0xe5d4(0x499)])_0x216641[_0xe5d4(0x170)](_0xe5d4(0x12d),_0x2202a7[_0xe5d4(0x170)]),_0x41e491['EIhiR'](_0x1c6882,_0xe5d4(0x3be)+(_0x15b38b[_0xe5d4(0x170)]||_0x41e491[_0xe5d4(0x49a)])),_0x41e491[_0xe5d4(0x49b)](_0x4113fb,!![]),_0x41e491['MwMyW'](_0x26c0fa);else{_0x3d33ba[_0xe5d4(0x49c)](_0xe4021b,_0x1fcd14[_0xe5d4(0x49d)]),_0x3d33ba[_0xe5d4(0x46f)](_0x418195,_0x1fcd14['status']||_0x3d33ba['bmOTS']);if(_0x39d6aa&&_0x1fcd14['progress']>0x1e){if(_0x3d33ba[_0xe5d4(0x325)](_0x3d33ba[_0xe5d4(0x49e)],_0x3d33ba[_0xe5d4(0x49e)]))_0x59d51c(![]);else throw new _0x2fa311(_0xe5d4(0x35d)+_0x1e113e[_0xe5d4(0x19e)]);}}}}}}),console['log'](_0x3d33ba[_0xe5d4(0x49f)]),console['log'](_0x3d33ba['QBqhd'],{'url':_api[_0xe5d4(0x308)][_0xe5d4(0x309)],'transports':[_0x3d33ba[_0xe5d4(0x4a0)]],'autoConnect':![],'timeout':0x2710,'reconnection':![]}),_0x2d570b[_0xe5d4(0x155)][_0xe5d4(0xb6)](),console['log'](_0x3d33ba[_0xe5d4(0x4a1)]),_0x3d33ba[_0xe5d4(0x4a2)](setTimeout,()=>{var _0xb77f18,_0x191d7f,_0x4e861f,_0x55e3b2;console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x4a3)],{'connected':_0x3d33ba['cjBed'](_0xb77f18=_0x2d570b['current'],null)||_0x3d33ba['RqzMH'](_0xb77f18,void 0x0)?void 0x0:_0xb77f18['connected'],'disconnected':_0x3d33ba['pZuaF'](_0x191d7f=_0x2d570b[_0xe5d4(0x155)],null)||_0x191d7f===void 0x0?void 0x0:_0x191d7f['disconnected'],'id':_0x3d33ba[_0xe5d4(0x246)](_0x4e861f=_0x2d570b[_0xe5d4(0x155)],null)||_0x3d33ba[_0xe5d4(0x3f8)](_0x4e861f,void 0x0)?void 0x0:_0x4e861f['id'],'engineConnected':_0x3d33ba[_0xe5d4(0x4a4)](_0x55e3b2=_0x2d570b['current'],null)||_0x3d33ba[_0xe5d4(0x4a5)](_0x55e3b2,void 0x0)||_0x3d33ba[_0xe5d4(0x325)](_0x55e3b2=_0x55e3b2['io'],null)||_0x3d33ba['EmhwQ'](_0x55e3b2,void 0x0)||_0x3d33ba['NGrjv'](_0x55e3b2=_0x55e3b2[_0xe5d4(0x157)],null)||_0x3d33ba['HknGP'](_0x55e3b2,void 0x0)?void 0x0:_0x55e3b2['readyState']});},0x3e8),setTimeout(()=>{var _0x220e15,_0x306b7a,_0x48fed3,_0x387df4;console[_0xe5d4(0x152)](_0x500cdd[_0xe5d4(0x4a6)],{'connected':_0x500cdd[_0xe5d4(0x4a7)](_0x220e15=_0x2d570b[_0xe5d4(0x155)],null)||_0x500cdd['mzPXV'](_0x220e15,void 0x0)?void 0x0:_0x220e15[_0xe5d4(0x4d)],'disconnected':_0x500cdd[_0xe5d4(0x4a8)](_0x306b7a=_0x2d570b[_0xe5d4(0x155)],null)||_0x500cdd[_0xe5d4(0x415)](_0x306b7a,void 0x0)?void 0x0:_0x306b7a[_0xe5d4(0x4e)],'id':_0x500cdd[_0xe5d4(0x412)](_0x48fed3=_0x2d570b[_0xe5d4(0x155)],null)||_0x48fed3===void 0x0?void 0x0:_0x48fed3['id'],'engineConnected':_0x500cdd['IrheQ'](_0x387df4=_0x2d570b[_0xe5d4(0x155)],null)||_0x500cdd[_0xe5d4(0x410)](_0x387df4,void 0x0)||_0x500cdd[_0xe5d4(0x410)](_0x387df4=_0x387df4['io'],null)||_0x500cdd[_0xe5d4(0x4a9)](_0x387df4,void 0x0)||_0x500cdd[_0xe5d4(0x412)](_0x387df4=_0x387df4[_0xe5d4(0x157)],null)||_0x500cdd[_0xe5d4(0x4aa)](_0x387df4,void 0x0)?void 0x0:_0x387df4[_0xe5d4(0x428)]});},0x1388),_0x3d33ba[_0xe5d4(0x4ab)](setTimeout,()=>{const _0x4890fa={'mnoGo':function(_0x56255a,_0x2c2231){return _0x3d33ba[_0xe5d4(0x4ac)](_0x56255a,_0x2c2231);},'xNvxK':_0x3d33ba[_0xe5d4(0x3bf)],'rHRpv':function(_0x40d4e2,_0x1fc96a){return _0x3d33ba[_0xe5d4(0x27c)](_0x40d4e2,_0x1fc96a);},'shteB':function(_0x3369a4){return _0x3369a4();}};if(_0x3d33ba[_0xe5d4(0x4ad)]('mYlYq',_0x3d33ba[_0xe5d4(0x4ae)]))_0x22c2f9[_0xe5d4(0x170)](_0x500cdd[_0xe5d4(0x42b)],_0x25abd9);else{if(!_0x5972fe&&_0x2d570b[_0xe5d4(0x155)]&&!_0x2d570b[_0xe5d4(0x155)]['connected']){if(_0x3d33ba[_0xe5d4(0x247)](_0x3d33ba[_0xe5d4(0x4af)],_0xe5d4(0x4b0))){const _0x4ebbb4=_0xe5d4(0x4b1)[_0xe5d4(0x1b9)]('|');let _0x39f052=0x0;while(!![]){switch(_0x4ebbb4[_0x39f052++]){case'0':console[_0xe5d4(0x170)](_0xe5d4(0x4b2),{'connected':_0x2d570b['current'][_0xe5d4(0x4d)],'disconnected':_0x2d570b[_0xe5d4(0x155)]['disconnected'],'id':_0x2d570b[_0xe5d4(0x155)]['id']});continue;case'1':_0x2d570b[_0xe5d4(0x155)]&&(_0x2d570b[_0xe5d4(0x155)]['disconnect'](),_0x2d570b[_0xe5d4(0x155)]=null);continue;case'2':console[_0xe5d4(0x170)](_0x3d33ba['EfDMr']);continue;case'3':_0xcbbaa1();continue;case'4':_0x3d33ba[_0xe5d4(0x4b3)](_0x418195,_0x3d33ba[_0xe5d4(0x1c8)]);continue;case'5':_0x3d33ba[_0xe5d4(0x4b4)](_0x3e08ff,!![]);continue;}break;}}else _0x3bad32[_0xe5d4(0x170)]('❌\x20Training\x20start\x20failed:',_0x4640f1['error']),_0x4890fa[_0xe5d4(0x4b5)](_0x276150,'Error:\x20'+(_0x2237fb[_0xe5d4(0x170)]||_0x4890fa['xNvxK'])),_0x4890fa[_0xe5d4(0x4b6)](_0x4a70e3,!![]),_0x4890fa[_0xe5d4(0x4b7)](_0x576707);}}},0x4e20);}else _0x3d33ba['zdOJq'](_0xf7c8c8,_0xd6db41);}catch(_0x5dce0e){_0x3d33ba[_0xe5d4(0x4b8)](_0x3d33ba[_0xe5d4(0x4b9)],_0x3d33ba[_0xe5d4(0x4ba)])?_0x500cdd[_0xe5d4(0x4bb)](_0x2c51af,''):(console[_0xe5d4(0x170)](_0x3d33ba[_0xe5d4(0x2c8)],_0x5dce0e),_0x3d33ba[_0xe5d4(0x4bc)](_0x418195,_0x3d33ba[_0xe5d4(0x4bd)]),_0x3d33ba[_0xe5d4(0x235)](_0x3e08ff,!![]),_0x3d33ba[_0xe5d4(0x4be)](_0xcbbaa1));}},_0x4b0748=_0x5368ed=>{const _0x2df394={'ffnYt':_0x3d33ba[_0xe5d4(0x27b)],'SKiJW':function(_0x342f7f,_0x7f7a9e){return _0x3d33ba[_0xe5d4(0x4bf)](_0x342f7f,_0x7f7a9e);},'erjJc':_0xe5d4(0x2f),'uFWsk':_0xe5d4(0x4c0),'TliBJ':_0x3d33ba['zltac'],'qloEH':_0x3d33ba[_0xe5d4(0x3d4)],'NjgaX':_0x3d33ba['ydHMZ']};if(_0x3d33ba[_0xe5d4(0x4c1)](_0xe5d4(0x4c2),_0x3d33ba[_0xe5d4(0x4c3)])){if(_0x57c1e3)return _0x3d33ba[_0xe5d4(0x4c4)];if(_0x4174c2)return _0x3d33ba[_0xe5d4(0x4c5)];let _0x2d180e='';if(_0x3d33ba[_0xe5d4(0x4c6)](_0x5368ed,0x14))_0x2d180e=_0x3d33ba['IOpWB'];else{if(_0x3d33ba[_0xe5d4(0x4c7)](_0x5368ed,0x28))_0x2d180e=_0x3d33ba['BBtnk'];else{if(_0x3d33ba[_0xe5d4(0x4c8)](_0x5368ed,0x3c))_0x2d180e=_0xe5d4(0x1b3);else{if(_0x3d33ba[_0xe5d4(0x4c8)](_0x5368ed,0x50)){if(_0x3d33ba[_0xe5d4(0x4c9)](_0x3d33ba[_0xe5d4(0x4ca)],'soZdU')){(0x0,_0x4849fb[_0xe5d4(0x19f)])(_0x44dc6e[_0xe5d4(0x1a0)]['BUTTON_PRESS']);if(_0x474d87){_0x31a9d1['log'](_0x2df394['ffnYt']),_0x2df394[_0xe5d4(0x4cb)](_0x13605f,_0x2df394[_0xe5d4(0x4cc)]);return;}_0x19b454[_0xe5d4(0x152)](_0x2df394[_0xe5d4(0x4cd)]),_0x2df394[_0xe5d4(0x4cb)](_0xf9932e,_0x2df394[_0xe5d4(0x4ce)]);}else _0x2d180e=_0xe5d4(0x4cf);}else _0x3d33ba[_0xe5d4(0x4d0)](_0x5368ed,0x5f)?_0x3d33ba['iKALx'](_0x3d33ba['bXsil'],_0x3d33ba[_0xe5d4(0x4d1)])?(_0x304889[_0xe5d4(0x152)](_0x2df394[_0xe5d4(0x4d2)],_0x176c87,_0x2df394[_0xe5d4(0x4d3)]),_0x1870bd(!![])):_0x2d180e='Almost\x20done':_0x2d180e=_0x3d33ba[_0xe5d4(0x31c)];}}}return _0x3d33ba[_0xe5d4(0x1a5)](_0x2d180e,_0x58de93);}else{_0x1a692a['log'](_0x3d33ba['tmyLY']),_0x2ec872(_0x3d33ba[_0xe5d4(0x142)]),_0x1a3292(![]);return;}},_0x601fe9=async()=>{const _0x2975d2={'Gcwza':_0x3d33ba[_0xe5d4(0x4d4)],'vupAR':function(_0x454f15,_0x54b288){return _0x454f15(_0x54b288);},'TuzSW':function(_0x5871b5,_0x5c65c6){return _0x5871b5 instanceof _0x5c65c6;},'EUIkl':function(_0x19717d){return _0x3d33ba[_0xe5d4(0x4d5)](_0x19717d);}};console[_0xe5d4(0x152)](_0xe5d4(0x4d6));_0x2d570b[_0xe5d4(0x155)]&&(_0x3d33ba['prFNd'](_0xe5d4(0x111),_0x3d33ba['tinHN'])?(_0x2f8e60[_0xe5d4(0x170)](_0x3d33ba[_0xe5d4(0x2f3)],_0x2e9447),_0x3d33ba[_0xe5d4(0x4d7)](_0x42fc3a,_0x3d33ba[_0xe5d4(0x166)])):(console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x4d8)]),_0x2d570b[_0xe5d4(0x155)][_0xe5d4(0x213)](),_0x2d570b[_0xe5d4(0x155)]=null));(0x0,_pinStorageUtils[_0xe5d4(0x4d9)])(),_0x2af44b['current']=!![];try{const _0x245cf0=await(0x0,_jwtStorageService[_0xe5d4(0x227)])();_0x245cf0?(console[_0xe5d4(0x152)](_0x3d33ba['sFhhj'],_0x245cf0['substring'](0x0,0x1e)+_0xe5d4(0x15f)),_0x6ff4bf===null||_0x6ff4bf===void 0x0||_0x3d33ba[_0xe5d4(0x4da)](_0x6ff4bf,_api[_0xe5d4(0x308)]['BASE_URL'],_0x245cf0,{'email':(_0x3d33ba[_0xe5d4(0x2d5)](_0x1114c2,null)||_0x3d33ba[_0xe5d4(0x251)](_0x1114c2,void 0x0)?void 0x0:_0x1114c2[_0xe5d4(0x1b7)])||'',..._0x1114c2})):(console[_0xe5d4(0x170)]('❌\x20No\x20real\x20authentication\x20token\x20found\x20after\x20training\x20completion'),_0x6ff4bf===null||_0x3d33ba['TufFj'](_0x6ff4bf,void 0x0)||_0x6ff4bf(_api[_0xe5d4(0x308)][_0xe5d4(0x309)],_0x3d33ba[_0xe5d4(0x4db)],{'email':(_0x3d33ba[_0xe5d4(0x3fd)](_0x1114c2,null)||_0x3d33ba['WxzLl'](_0x1114c2,void 0x0)?void 0x0:_0x1114c2[_0xe5d4(0x1b7)])||'',..._0x1114c2}));}catch(_0x2bbd98){_0x3d33ba[_0xe5d4(0x335)](_0x3d33ba[_0xe5d4(0x4dc)],_0x3d33ba['tTwuR'])?(console['error'](_0xe5d4(0x451),_0x2bbd98),_0x6ff4bf===null||_0x3d33ba[_0xe5d4(0x4dd)](_0x6ff4bf,void 0x0)||_0x3d33ba[_0xe5d4(0x30b)](_0x6ff4bf,_api[_0xe5d4(0x308)][_0xe5d4(0x309)],_0xe5d4(0x113),{'email':(_0x3d33ba[_0xe5d4(0x30c)](_0x1114c2,null)||_0x1114c2===void 0x0?void 0x0:_0x1114c2[_0xe5d4(0x1b7)])||'',..._0x1114c2})):(_0x47ef8b['error'](_0x2975d2[_0xe5d4(0x4de)],_0x28068d),_0x2975d2[_0xe5d4(0x4df)](_0x59c816,_0xe5d4(0x3be)+(_0x2975d2['TuzSW'](_0x5968a5,_0x28b75b)?_0x59bd69[_0xe5d4(0x19e)]:'Unknown\x20error')),_0x2975d2[_0xe5d4(0x4df)](_0x4362f4,!![]),_0x2975d2['EUIkl'](_0x4b8932));}},_0x75147d=async()=>{try{const _0x14d228=await(0x0,_jwtStorageService['getJWT'])();if(_0x14d228&&_0x3d33ba[_0xe5d4(0x4e0)](_0x14d228['trim']()[_0xe5d4(0x204)],0x14)){if(_0x3d33ba[_0xe5d4(0x4e1)](_0xe5d4(0x4e2),_0xe5d4(0x4e2)))_0x11ee7d['progress']&&(_0x3d33ba[_0xe5d4(0x39c)](_0xdcc7e1,_0x13987c[_0xe5d4(0x209)]||_0x3d33ba[_0xe5d4(0x28d)]),_0x306d0b[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x28e)],_0x339f8a[_0xe5d4(0x49d)],'%'));else return console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x4e3)],_0x14d228['substring'](0x0,0x14)+_0xe5d4(0x15f)),console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x4e4)],_0x14d228[_0xe5d4(0x204)]),_0x14d228;}return console[_0xe5d4(0x4e5)](_0xe5d4(0x4e6)),console[_0xe5d4(0x4e5)](_0x3d33ba[_0xe5d4(0x4e7)]),console[_0xe5d4(0x4e5)](_0x3d33ba['EKUuH']),null;}catch(_0x165048){if(_0x3d33ba['Efwrb']('XenfK',_0x3d33ba[_0xe5d4(0x4e8)]))_0x1a138a[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2da)]),_0x3d33ba['Fpaiv'](_0x1b28f2,!![]),_0x3d33ba[_0xe5d4(0x3ea)](_0x5dcdb4,_0x38f5e6),_0x3d33ba['qKUwz'](_0x3857b5,_0xe5d4(0x37));else{console[_0xe5d4(0x170)]('❌\x20Error\x20checking\x20authentication\x20token:',_0x165048);throw _0x165048;}}},_0x42131b=Object[_0xe5d4(0x4e9)](_0x282855)['some'](_0x1d64be=>_0x1d64be),_0x24dfff=()=>{const _0x233ed5={'ZVIKn':_0x3d33ba[_0xe5d4(0x4ea)],'siBEx':function(_0x3c8029,_0x38f00c){return _0x3d33ba[_0xe5d4(0x3f9)](_0x3c8029,_0x38f00c);},'ZilKI':function(_0x4ce4ad,_0x42cbfe,_0x1cf93a,_0x1aba13){return _0x3d33ba[_0xe5d4(0x4eb)](_0x4ce4ad,_0x42cbfe,_0x1cf93a,_0x1aba13);},'mzHsw':_0x3d33ba['VKHSF'],'RRAgl':function(_0x3aa0cb,_0xedcf1a){return _0x3d33ba[_0xe5d4(0x14b)](_0x3aa0cb,_0xedcf1a);},'jmgOD':_0x3d33ba[_0xe5d4(0x4ec)],'qHvKH':_0x3d33ba[_0xe5d4(0x4ed)]};_0x42131b&&((0x0,_haptics[_0xe5d4(0x19f)])(_haptics[_0xe5d4(0x1a0)]['BUTTON_PRESS']),console[_0xe5d4(0x152)](_0x3d33ba['Jssqz']),_0x3d33ba[_0xe5d4(0x37b)](_0x317d75)[_0xe5d4(0x338)](_0x431fbc=>{_0x233ed5[_0xe5d4(0x4ee)](_0xe5d4(0x4ef),_0x233ed5[_0xe5d4(0x4f0)])?(_0x14ce4b[_0xe5d4(0x170)](_0x233ed5['ZVIKn']),_0xc0e9df===null||_0x233ed5[_0xe5d4(0x4f1)](_0x52f891,void 0x0)||_0x233ed5[_0xe5d4(0x4f2)](_0x4995a6,_0x177b59[_0xe5d4(0x308)][_0xe5d4(0x309)],_0x233ed5[_0xe5d4(0x4f3)],{'email':(_0x580389===null||_0x405dd0===void 0x0?void 0x0:_0x61003a['email'])||'',..._0x3b7f6f})):console[_0xe5d4(0x170)](_0x233ed5[_0xe5d4(0x4f4)],_0x431fbc);}),_0x3d33ba[_0xe5d4(0x3ea)](_0xb016cd,_0xe5d4(0x9f)));},_0x317d75=(0x0,_react[_0xe5d4(0x21c)])(async()=>{const _0x228fcb={'haBeo':_0x3d33ba[_0xe5d4(0x215)],'ugGou':function(_0x4bbee4){return _0x4bbee4();},'aLFCu':_0x3d33ba[_0xe5d4(0x2f6)],'iVhaR':function(_0x6cfa8,_0x477475,_0x49fc92){return _0x3d33ba[_0xe5d4(0x4a2)](_0x6cfa8,_0x477475,_0x49fc92);},'geVOu':function(_0x2d810e,_0x827151){return _0x3d33ba['uOdzz'](_0x2d810e,_0x827151);}};try{console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x4f5)]),_0x3d33ba[_0xe5d4(0x492)](_0x274574,_0x3d33ba[_0xe5d4(0x4f6)]);const _0x465ef8=await _0x3d33ba['TQTLs'](_0x75147d);if(!_0x465ef8){if(_0x3d33ba[_0xe5d4(0x4f7)]!==_0xe5d4(0x4f8))throw new Error(_0x3d33ba[_0xe5d4(0x4f9)]);else return()=>{_0x56b3f4['current']&&(_0x29c4b8[_0xe5d4(0x152)](_0x228fcb['haBeo']),_0x52fb73[_0xe5d4(0x155)][_0xe5d4(0x213)](),_0xc92e6c[_0xe5d4(0x155)]=null),_0x228fcb[_0xe5d4(0x4fa)](_0x43fcc9);};}console[_0xe5d4(0x152)]('✅\x20[BACKGROUND]\x20Auth\x20token\x20ready:',_0x465ef8['substring'](0x0,0x14)+_0xe5d4(0x15f)),_0x3d33ba['plCPB'](_0x491998,_0x465ef8);if(!_0x1114c2){if(_0x3d33ba['Tcgiu']===_0x3d33ba[_0xe5d4(0x4fb)]){var _0x18ee0d;const _0x44f639=await(0x0,_authService['getOnairosUsername'])(),_0x3bf3d1=_0x44f639||(_0x15ff12===null||_0x3d33ba['ogiSv'](_0x15ff12,void 0x0)||_0x3d33ba['AqmIT'](_0x18ee0d=_0x15ff12['email'],null)||_0x18ee0d===void 0x0?void 0x0:_0x18ee0d[_0xe5d4(0x1b9)]('@')[0x0])||(_0x3d33ba[_0xe5d4(0x4fc)](_0x15ff12,null)||_0x15ff12===void 0x0?void 0x0:_0x15ff12['name'])||_0x3d33ba['ieqeu'],_0x5ddb6a={'username':_0x3bf3d1,'email':(_0x3d33ba[_0xe5d4(0x34e)](_0x15ff12,null)||_0x3d33ba[_0xe5d4(0x325)](_0x15ff12,void 0x0)?void 0x0:_0x15ff12[_0xe5d4(0x1b7)])||null,'id':null};_0x3d33ba[_0xe5d4(0x4fd)](_0x13d180,_0x5ddb6a),_0x3d33ba['UDRCm'](_0x2f47ae,_0x3bf3d1),console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x4fe)],_0x5ddb6a);}else _0x385f03['log'](_0x228fcb['aLFCu']);}console[_0xe5d4(0x152)](_0xe5d4(0x4ff)),_0x3d33ba[_0xe5d4(0x500)](_0x274574,_0x3d33ba[_0xe5d4(0x501)]);const _0x2e033a=(0x0,_socket['io'])(_api[_0xe5d4(0x308)][_0xe5d4(0x309)],{'transports':[_0xe5d4(0x101),_0xe5d4(0x102)],'autoConnect':![],'timeout':0x3a98,'reconnection':!![],'reconnectionAttempts':0x3,'reconnectionDelay':0x3e8,'forceNew':!![]});_0x2e033a['on'](_0xe5d4(0xb6),async()=>{const _0xe868d8={'EmWvx':function(_0x4966ba,_0x2f6efe){return _0x3d33ba[_0xe5d4(0x502)](_0x4966ba,_0x2f6efe);},'WfZbe':function(_0x5cadc5,_0x2d0cd0){return _0x3d33ba['medbW'](_0x5cadc5,_0x2d0cd0);}};if(_0x3d33ba[_0xe5d4(0x503)](_0x3d33ba['PYkAI'],_0xe5d4(0x11b))){console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x504)]);const _0x43c44e=_0x2e033a['id'];_0x3d33ba[_0xe5d4(0x505)](_0x4bfdb7,_0x3d33ba[_0xe5d4(0x506)](_0x43c44e,null)),_0x274574(_0x3d33ba[_0xe5d4(0x507)]),_0x43c44e&&await _0x2fd98b(_0x43c44e,_0x465ef8);}else _0x228fcb['iVhaR'](_0x20caf4,()=>{var _0x23d083;_0xe868d8[_0xe5d4(0x508)](_0x296af8,![]),_0xe868d8['WfZbe'](_0x23d083=_0x294008[_0xe5d4(0x155)],null)||_0xe868d8[_0xe5d4(0x509)](_0x23d083,void 0x0)||_0x23d083[_0xe5d4(0xe)](_0x2223ad);},0x10);}),_0x2e033a['on'](_0xe5d4(0x50a),_0x1bfad0=>{_0x1bfad0['progress']&&(_0x228fcb[_0xe5d4(0x50b)](_0x274574,_0x1bfad0['status']||_0xe5d4(0x55)),console[_0xe5d4(0x152)](_0xe5d4(0x56),_0x1bfad0[_0xe5d4(0x49d)],'%'));}),_0x2e033a['on'](_0x3d33ba[_0xe5d4(0x41a)],()=>{console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x50c)]);}),_0x2d570b[_0xe5d4(0x155)]=_0x2e033a,_0x2e033a[_0xe5d4(0xb6)](),console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x50d)]);}catch(_0x1d9932){console[_0xe5d4(0x170)](_0x3d33ba['kWFqX'],_0x1d9932),_0x274574('');throw _0x1d9932;}},[_0x1114c2,_0x5357a7,_0x15ff12]),_0x2fd98b=async(_0x19f2e1,_0x9c0d64)=>{const _0x4ede93={'IKVQb':function(_0x10507a,_0x2a3206){return _0x3d33ba[_0xe5d4(0x2c3)](_0x10507a,_0x2a3206);}};try{if(_0x3d33ba[_0xe5d4(0x2f1)](_0x3d33ba['agKBF'],_0xe5d4(0x50e))){console['log'](_0x3d33ba[_0xe5d4(0x50f)],_0x19f2e1),console[_0xe5d4(0x152)](_0x3d33ba['hIPCr'],_0x9c0d64[_0xe5d4(0x1fa)](0x0,0x14)+_0xe5d4(0x15f));const _0x4cac94={'socketId':_0x19f2e1,'username':(_0x1114c2===null||_0x3d33ba[_0xe5d4(0x510)](_0x1114c2,void 0x0)?void 0x0:_0x1114c2[_0xe5d4(0x1b8)])||(_0x1114c2===null||_0x3d33ba[_0xe5d4(0x511)](_0x1114c2,void 0x0)?void 0x0:_0x1114c2['name'])||_0x5357a7||_0x3d33ba[_0xe5d4(0x22c)],'email':(_0x3d33ba['lZEMx'](_0x1114c2,null)||_0x3d33ba[_0xe5d4(0x512)](_0x1114c2,void 0x0)?void 0x0:_0x1114c2[_0xe5d4(0x1b7)])||null,'modelKey':null,'connectedPlatforms':[],'platformConnections':{}};console['log'](_0x3d33ba[_0xe5d4(0x513)],_0x4cac94);const _0x75d18=await(0x0,_mobileTrainingService['startEnochTrainingWithYouTubeCheck'])(_0x4cac94);console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x514)],_0x75d18);if(_0x75d18[_0xe5d4(0x48b)]||_0x75d18[_0xe5d4(0x3b2)]===_0x3d33ba[_0xe5d4(0x37a)]){if(_0x3d33ba[_0xe5d4(0x3ec)](_0x3d33ba[_0xe5d4(0x515)],_0xe5d4(0x12a))){const _0xa9538c=_0xe5d4(0x516)['split']('|');let _0x138e06=0x0;while(!![]){switch(_0xa9538c[_0x138e06++]){case'0':return;case'1':_0x418195(_0x3d33ba['cLXko']);continue;case'2':_0x3d33ba[_0xe5d4(0x517)](_0x5d7b48,_0x75d18);continue;case'3':_0x3e08ff(!![]);continue;case'4':_0x3d33ba[_0xe5d4(0x518)](_0x56cc22,'CONNECTIONS_REQUIRED');continue;case'5':_0xcbbaa1();continue;case'6':_0x59d51c(!![]);continue;case'7':console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x519)]);continue;}break;}}else _0x4ede93['IKVQb'](_0x1332d9,_0x302892),_0x4ede93[_0xe5d4(0x51a)](_0x109c8d,_0xe5d4(0xa4));}if(_0x75d18[_0xe5d4(0x295)]){console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2b0)],_0x75d18[_0xe5d4(0x19e)]),console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x51b)],_0x75d18[_0xe5d4(0x2b2)]),_0x1a6ed7(!![]);if(_0x75d18[_0xe5d4(0x2b2)]){const _0x5cfe06=_0x3d33ba['XhmsY']['split']('|');let _0x261863=0x0;while(!![]){switch(_0x5cfe06[_0x261863++]){case'0':console[_0xe5d4(0x152)](_0x3d33ba['vxzYz'],_0x75d18[_0xe5d4(0x2b2)]['encryption']);continue;case'1':console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2b6)],_0x75d18[_0xe5d4(0x2b2)][_0xe5d4(0x312)]);continue;case'2':console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2b5)],_0x75d18[_0xe5d4(0x2b2)][_0xe5d4(0x315)]);continue;case'3':console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2b7)],_0x75d18[_0xe5d4(0x2b2)][_0xe5d4(0x2b8)]);continue;case'4':console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x365)],_0x75d18['features'][_0xe5d4(0x2bc)]);continue;case'5':console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x2b9)],_0x75d18[_0xe5d4(0x2b2)][_0xe5d4(0x2ba)]);continue;case'6':console[_0xe5d4(0x152)](_0xe5d4(0x66),_0x75d18[_0xe5d4(0x2b2)][_0xe5d4(0x366)]);continue;}break;}}_0x3d33ba['gpZSE'](_0x418195,_0x3d33ba[_0xe5d4(0x2bd)]),_0x3d33ba[_0xe5d4(0x51c)](_0xe4021b,0x19);}else{if(_0x3d33ba[_0xe5d4(0x4c1)](_0x3d33ba[_0xe5d4(0x51d)],_0xe5d4(0x12c))){_0x195b0c[_0xe5d4(0x170)](_0x3d33ba[_0xe5d4(0x51e)]);throw new _0x8a21(_0x3d33ba[_0xe5d4(0x3a4)]);}else console[_0xe5d4(0x170)](_0x3d33ba[_0xe5d4(0x51f)],_0x75d18[_0xe5d4(0x170)]),_0x418195(_0xe5d4(0x3be)+(_0x75d18[_0xe5d4(0x170)]||_0x3d33ba[_0xe5d4(0x520)])),_0x3d33ba[_0xe5d4(0x280)](_0x3e08ff,!![]),_0x3d33ba[_0xe5d4(0x521)](_0xcbbaa1);}}else _0x249ce3(_0x922790[_0xe5d4(0x19e)]||_0xe5d4(0x2f8));}catch(_0x4d8847){console[_0xe5d4(0x170)](_0x3d33ba[_0xe5d4(0x522)],_0x4d8847),_0x3d33ba[_0xe5d4(0x4bf)](_0x418195,_0xe5d4(0x3be)+(_0x3d33ba[_0xe5d4(0x523)](_0x4d8847,Error)?_0x4d8847[_0xe5d4(0x19e)]:_0xe5d4(0xcd))),_0x3d33ba['IjkWa'](_0x3e08ff,!![]),_0xcbbaa1();}};return _react[_0xe5d4(0x3)]['createElement'](_reactNative[_0xe5d4(0x524)],{'transparent':!![],'visible':_0x3c56b0,'animationType':_0x3d33ba[_0xe5d4(0x525)],'onRequestClose':_0x4763ba,'statusBarTranslucent':!![]},_react['default'][_0xe5d4(0x526)](_reactNative['View'],{'style':styles[_0xe5d4(0x527)]},_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x528)],{'onPress':_0x4763ba},_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative['Animated']['View'],{'style':[styles[_0xe5d4(0x529)],{'opacity':_0x42b287}]})),_react[_0xe5d4(0x3)]['createElement'](_reactNative[_0xe5d4(0x52a)],{'style':styles[_0xe5d4(0x52b)]},_react['default'][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x52a)],{'style':styles[_0xe5d4(0x52c)]},_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x52a)],{'style':styles[_0xe5d4(0x52d)]},_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x52e)],{'onPress':_0x4763ba,'style':styles[_0xe5d4(0x52f)]},_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x52a)],{'style':styles[_0xe5d4(0x530)]}))),_0x477e91&&_0x3d33ba[_0xe5d4(0x531)](_0x203f9b,_0xe5d4(0x2f))&&_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative['View'],{'style':styles[_0xe5d4(0x532)]},_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x533)],{'style':styles['debugTitle']},_0x3d33ba[_0xe5d4(0x534)]),_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x52a)],{'style':styles[_0xe5d4(0x535)]},_react['default']['createElement'](_reactNative[_0xe5d4(0x533)],{'style':styles[_0xe5d4(0x536)]},_0xe5d4(0x537),_0x48b312),_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x52e)],{'onPress':()=>_0x518568(_0x2e0120=>Math['max'](0x0,_0x2e0120-0x2)),'style':styles[_0xe5d4(0x538)]},_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x533)],null,'-')),_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x52e)],{'onPress':()=>_0x518568(_0x4a2e12=>_0x4a2e12+0x2),'style':styles[_0xe5d4(0x538)]},_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x533)],null,'+'))),_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative['View'],{'style':styles['debugRow']},_react['default'][_0xe5d4(0x526)](_reactNative['Text'],{'style':styles['debugLabel']},_0xe5d4(0x539),_0x271e58),_react['default']['createElement'](_reactNative[_0xe5d4(0x52e)],{'onPress':()=>_0x2ad212(_0x1ba615=>Math['max'](0x0,_0x1ba615-0x2)),'style':styles['debugBtn']},_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x533)],null,'-')),_react['default'][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x52e)],{'onPress':()=>_0x2ad212(_0x6bbdb6=>_0x6bbdb6+0x2),'style':styles['debugBtn']},_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x533)],null,'+'))),_react['default']['createElement'](_reactNative[_0xe5d4(0x52a)],{'style':styles[_0xe5d4(0x535)]},_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x533)],{'style':styles[_0xe5d4(0x536)]},_0x3d33ba[_0xe5d4(0x53a)],_0x26510e),_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x52e)],{'onPress':()=>_0x4aaee2(_0x2d3aaf=>Math[_0xe5d4(0x53b)](0x0,_0x2d3aaf-0x2)),'style':styles[_0xe5d4(0x538)]},_react[_0xe5d4(0x3)]['createElement'](_reactNative[_0xe5d4(0x533)],null,'-')),_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x52e)],{'onPress':()=>_0x4aaee2(_0x8713c1=>_0x8713c1+0x2),'style':styles[_0xe5d4(0x538)]},_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x533)],null,'+'))),_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative['TouchableOpacity'],{'onPress':()=>_0x96346c(![]),'style':styles['debugCloseBtn']},_react['default']['createElement'](_reactNative[_0xe5d4(0x533)],{'style':styles[_0xe5d4(0x53c)]},_0x3d33ba['MoQZm']))),_0x3d33ba[_0xe5d4(0x53d)](_0x203f9b,_0x3d33ba[_0xe5d4(0x22f)])&&_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x52a)],{'style':styles['welcomeContainer']},_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x52a)],{'style':styles[_0xe5d4(0x53e)]},_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_BrandMark['default'],null)),_react[_0xe5d4(0x3)]['createElement'](_reactNative[_0xe5d4(0x52a)],{'style':styles[_0xe5d4(0x53f)]},_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_HeadingGroup[_0xe5d4(0x3)],null)),_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x52a)],{'style':styles[_0xe5d4(0x540)]},_react[_0xe5d4(0x3)]['createElement'](_BodyText[_0xe5d4(0x3)],null)),_react[_0xe5d4(0x3)]['createElement'](_reactNative['View'],{'style':styles[_0xe5d4(0x541)]}),_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_reactNative[_0xe5d4(0x52a)],{'style':styles[_0xe5d4(0x542)]},_react['default'][_0xe5d4(0x526)](_PrimaryButton[_0xe5d4(0x3)],{'label':_0x3d33ba[_0xe5d4(0x543)],'onPress':_0x5f11e4,'testID':_0x3d33ba['RKglV']}))),_0x203f9b===_0x3d33ba[_0xe5d4(0x166)]&&_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_SignInStep[_0xe5d4(0x3)],{'onEmailSubmit':_0x20e2da,'onGoogleSignIn':_0xd0a0a,'onContinue':()=>_0xb016cd(_0xe5d4(0x1a)),'loading':_0x3985c7,'error':_0x54f0ea,'initialEmail':_0x5baaf4}),_0x3d33ba[_0xe5d4(0x544)](_0x203f9b,_0x3d33ba[_0xe5d4(0x168)])&&_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_VerificationStep[_0xe5d4(0x3)],{'email':_0x5baaf4,'onCodeSubmit':_0x5c3ffb,'onBack':_0x535e0a,'loading':_0x3985c7,'error':_0x54f0ea,'onResendCode':_0x4c88b3}),_0x3d33ba[_0xe5d4(0x545)](_0x203f9b,_0xe5d4(0x2f))&&_react[_0xe5d4(0x3)]['createElement'](_PlatformConnectorsStep[_0xe5d4(0x3)],{'onUpdate':_0x5b6b66,'onSkip':allowSkip?_0x13f716:undefined,'onReviewerBypass':_0x233957,'onLogout':_0x298ab3,'allowedPlatforms':_0x22c693,'recommendedPlatforms':_0x1b1375,'initialConnectedPlatforms':_0x17a955}),_0x3d33ba[_0xe5d4(0x546)](_0x203f9b,_0x3d33ba[_0xe5d4(0x1d3)])&&_react[_0xe5d4(0x3)][_0xe5d4(0x526)](_PersonalizationConsentScreen[_0xe5d4(0x3)],{'visible':!![],'loading':_0x157beb,'onLogout':_0x298ab3,'onAccept':async()=>{console[_0xe5d4(0x152)](_0xe5d4(0x547)),_0x3d33ba[_0xe5d4(0x548)](_0x863673,!![]),await new Promise(_0x468eda=>setTimeout(_0x468eda,0x32));try{const [_0x237933,_0x4a4cf9,_0x224ed2]=await Promise[_0xe5d4(0x2ff)]([(0x0,_authService[_0xe5d4(0x300)])(),_asyncStorage[_0xe5d4(0x3)]['getItem'](_0x3d33ba[_0xe5d4(0x2ed)]),(0x0,_authService['getOnairosUsername'])()]);console[_0xe5d4(0x152)](_0xe5d4(0x549)),_0x2af44b['current']=!![];if(_0x3d33ba[_0xe5d4(0x54a)](_0x237933,_0x4a4cf9))console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x54b)]),await(_0x3d33ba[_0xe5d4(0x54c)](_0x6ff4bf,null)||_0x6ff4bf===void 0x0?void 0x0:_0x3d33ba[_0xe5d4(0x4da)](_0x6ff4bf,_api[_0xe5d4(0x308)][_0xe5d4(0x309)],_0x237933,{'email':_0x4a4cf9,'connectedPlatforms':_0x17a955,'username':_0x224ed2||_0x4a4cf9[_0xe5d4(0x1b9)]('@')[0x0],'isReturningUser':!![]}));else{if(_0x3d33ba[_0xe5d4(0x54d)](_0x3d33ba[_0xe5d4(0x54e)],_0x3d33ba['glupx']))console[_0xe5d4(0x4e5)](_0x3d33ba['RWXRe']),await(_0x3d33ba[_0xe5d4(0x54f)](_0x6ff4bf,null)||_0x3d33ba[_0xe5d4(0x550)](_0x6ff4bf,void 0x0)?void 0x0:_0x6ff4bf(_api[_0xe5d4(0x308)]['BASE_URL'],'',{'connectedPlatforms':_0x17a955,'isReturningUser':!![]}));else{_0x16e869[_0xe5d4(0x170)](_0xe5d4(0x36b)+_0x3cff25+':',_0x5d719a);return;}}}catch(_0x4b69b1){console[_0xe5d4(0x170)](_0xe5d4(0x551),_0x4b69b1),await(_0x3d33ba[_0xe5d4(0x552)](_0x6ff4bf,null)||_0x3d33ba[_0xe5d4(0x553)](_0x6ff4bf,void 0x0)?void 0x0:_0x3d33ba['VPZAb'](_0x6ff4bf,_api[_0xe5d4(0x308)]['BASE_URL'],'',{'connectedPlatforms':_0x17a955,'isReturningUser':!![]}));}console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x554)]);},'onDecline':()=>{console[_0xe5d4(0x152)](_0x3d33ba['KKpbz']),_0x4763ba();},'connectedPlatforms':_0x17a955,'onConnectMore':()=>{if(_0x3d33ba['Mxulc']===_0x3d33ba[_0xe5d4(0x555)]){_0x30c6b0['error'](_0x3d33ba['tOqsx'],_0x488d15),_0x10abdf({}),_0x49470d({}),_0x8c11b1({});const _0x307345=(_0x30ac7a===null||_0x3d33ba[_0xe5d4(0x556)](_0x593397,void 0x0)?void 0x0:_0x57cf76['email'])||(_0x39985c===null||_0x3d33ba[_0xe5d4(0x557)](_0x15bc42,void 0x0)?void 0x0:_0x24e272['name'])||'user_'+_0x240884[_0xe5d4(0x253)](_0x3d33ba[_0xe5d4(0x264)](_0x371076[_0xe5d4(0x255)](),0x2710));_0x46dceb(_0x307345);}else console[_0xe5d4(0x152)](_0x3d33ba[_0xe5d4(0x3c2)]),_0xb016cd(_0x3d33ba[_0xe5d4(0x142)]);},'isReturningUser':_0x4aa3e9,'appName':_0x140c16})))));};exports[_0xe5d4(0x1)]=UniversalOnboarding;function _0x25a9(){const _0x5bea15=['__esModule','UniversalOnboarding','object','default','TGmNP','function','wWrYV','YaouS','eMwjA','zkAJb','has','CuPFP','awTdi','hasOwnProperty','call','getOwnPropertyDescriptor','get','uOvjb','Dimensions','window','⏰\x20Socket\x20registered\x20but\x20training\x20will\x20not\x20start\x20from\x20persona\x20screen...','❌\x20No\x20socket\x20ID\x20available\x20after\x20connection','BlSBJ','🔍\x20UniversalOnboarding:\x20visible\x20prop\x20changed\x20to:','🔍\x20UniversalOnboarding:\x20modalVisible\x20state\x20is:','signin','verification','🍎\x20[APPLE\x20FIX]\x20primaryAuthOnly\x20detected\x20-\x20resetting\x20to\x20welcome\x20step','->\x20Setting\x20to:\x20welcome','welcome','connectedPlatforms','📱\x20Stored\x20connected\x20platform:','Total\x20platforms:','Error\x20storing\x20connected\x20platform:','platform','Error\x20handling\x20OAuth\x20callback:','📱\x20Removed\x20connected\x20platform:','Error\x20removing\x20connected\x20platform:','✅\x20Verification\x20code\x20sent\x20successfully','🔌\x20Disconnected\x20platform:','xKMMV','Error\x20disconnecting\x20platform:','YouTube\x20reconnection\x20failed.\x20Please\x20restart\x20from\x20connector\x20screen.','wiqXd','gKtgL','Connection\x20timeout.\x20Please\x20check\x20your\x20internet\x20and\x20try\x20again.','🆕\x20New\x20user\x20or\x20no\x20existing\x20connections,\x20showing\x20platform\x20connection\x20screen','platforms','xgtGW','cqINY','bYdXB','🔐\x20[BACKGROUND]\x20Continuing\x20existing\x20background\x20training\x20with\x20PIN\x20validation','No\x20background\x20socket\x20ID\x20available','✅\x20Email\x20verification\x20successful','returning_user','consent','AfYNF','zpGwv','url','xCsvx','kEXGU','QpsLO','IbCpF','WvnhF','test@example.com','ORwNP','existing_user_token','existing_user_info','🔍\x20Found\x20existing\x20user\x20info\x20-\x20user\x20wants\x20to\x20add\x20more\x20data','mobile_user','🔍\x20Using\x20username\x20for\x20training:','etYBC','🔑\x20[CACHED\x20LOGIN]\x20User\x20has\x20existing\x20connections:','SWCbn','🔑\x20[CACHED\x20LOGIN]\x20User\x20authenticated\x20but\x20no\x20connections\x20-\x20skipping\x20to\x20platforms','gQPxF','Error\x20loading\x20user\x20data:','connected','disconnected','🔄\x20Socket\x20ready\x20for\x20persona\x20display\x20with\x20token:','wgYaR','Connection\x20statuses\x20set:','Platform\x20toggles\x20set:','lwZBl','🍎\x20Get\x20Started\x20pressed\x20(Apple\x20user)\x20-\x20skipping\x20signin,\x20going\x20to\x20platforms','Processing...','📊\x20[BACKGROUND]\x20Training\x20progress:','❌\x20Socket\x20disconnected,\x20reason:','Trying\x20to\x20understand\x20your\x20mind','reviewer@bypass.com','tPVcG','🔍\x20Reviewer\x20bypass\x20detected','onairos_user','eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXZpZXdlciI6dHJ1ZSwiaWF0IjoxNzA0MDY3MjAwfQ.reviewer-bypass-signature-placeholder','🧪\x20Test\x20bypass\x20detected\x20-\x20skipping\x20to\x20verification\x20screen','NLaEA','ZjxPt','❌\x20Failed\x20to\x20send\x20verification\x20code:','bgAPY','🚀\x20Background\x20training\x20started:','🎯\x20Background\x20training\x20Features:','2|3|0|5|6|1|4','🔒\x20Compression\x20enabled:','💾\x20Storage\x20method:','📈\x20Query\x20scores\x20enabled:','Background\x20training\x20model...','🔗\x20Initiating\x20Google\x20Sign-In','🔍\x20Is\x20new\x20user?','👤\x20Returning\x20user\x20detected\x20via\x20Google\x20Sign-In\x20-\x20checking\x20for\x20existing\x20connections','yPtkT','ℹ️\x20No\x20existing\x20connections\x20found\x20-\x20proceeding\x20to\x20platforms\x20step','⚠️\x20Could\x20not\x20fetch\x20existing\x20connections,\x20proceeding\x20to\x20platforms:','ℹ️\x20Google\x20Sign-In\x20cancelled\x20by\x20user','❌\x20Socket\x20connection\x20error:','❌\x20Socket\x20error\x20details:','Connection\x20error.\x20Please\x20try\x20again.','❌\x20Error\x20in\x20startPersonaCreation:','🧪\x20Test\x20bypass\x20-\x20skipping\x20code\x20verification,\x20going\x20to\x20platforms','VwcPQ','yJRZF','mBKUW','Invalid\x20verification\x20code.\x20Please\x20try\x20again.','smVvn','TaTCt','👋\x20Logout\x20requested\x20-\x20clearing\x20tokens\x20and\x20navigating\x20to\x20login','8|3|7|0|4|5|1|6|2','✅\x20Logout\x20complete\x20-\x20user\x20is\x20now\x20on\x20login\x20page','sdk_jwt_token','user_email','onairos_username','auth_method','PAvLc','❌\x20Error\x20during\x20logout:','✅\x20Verification\x20code\x20resent\x20successfully','goMYO','Network\x20error.\x20Please\x20try\x20again.','✅\x20Authentication\x20token\x20already\x20exists:','🔍\x20Token\x20length:','🗄️\x20Databases\x20used:','✅\x20Onboarding\x20complete!\x20Connected\x20platforms:','🔑\x20[SDK]\x20Auth\x20data\x20retrieved\x20in\x20parallel','📧\x20[SDK]\x20Email\x20available:','peMQv','vdTXo','✅\x20[SDK]\x20Calling\x20onComplete\x20with\x20token\x20and\x20user\x20data','🍎\x20[SDK]\x20Calling\x20onComplete\x20with\x20email\x20(no\x20SDK\x20token\x20-\x20Apple\x20auth)','rFrPZ','⚠️\x20[SDK]\x20No\x20email\x20found\x20-\x20calling\x20onComplete\x20with\x20limited\x20data','🍎\x20[APPLE\x20FIX]\x20Current\x20step\x20was:','Just\x20a\x20few\x20more\x20seconds','hUSeV','IKsMu','⚠️\x20[SDK]\x20User\x20skipped\x20-\x20no\x20auth\x20data\x20available','inzic','PFAhh','❌\x20[SDK]\x20Error\x20during\x20skip:','✅\x20[SDK]\x20Skip\x20complete\x20-\x20waiting\x20for\x20parent\x20to\x20close\x20modal','✅\x20Stored\x20reviewer\x20bypass\x20markers','🚀\x20[TRANSITION]\x20Starting\x20background\x20training\x20during\x20connect\x20→\x20pin\x20transition','pin','jfGDt','moxwu','FZHbe','hklMv','oauth','🚀\x20Training\x20Started:','4|5|3|6|1|0|2','1|2|6|0|5|3|4','No\x20training\x20in\x20progress.\x20Please\x20restart\x20the\x20flow.','chatgpt','llm','2|1|3|5|0|4','📝\x20Connection\x20ID:','McDZp','TuSvK','mDgyX','YLNZb','WrQgo','dcnNx','🔗\x20Connections\x20required\x20detected\x20from\x20socket','❌\x20[BACKGROUND]\x20Failed\x20to\x20continue\x20background\x20training:','🔄\x20Returning\x20to\x20connect\x20step','connect','🔐\x20[PIN\x20SUBMIT]\x20PIN\x20submitted,\x20checking\x20for\x20background\x20training...','xirWA','✅\x20[PIN\x20SUBMIT]\x20Background\x20training\x20detected,\x20continuing\x20with\x20PIN\x20validation...','persona','WrOQf','cGuBA','AChGP','⚠️\x20Could\x20not\x20get\x20encrypted\x20PIN\x20for\x20training:','YhPRr','Starting\x20training...','🚀\x20Starting\x20Enoch\x20training\x20with\x20socketId:','📱\x20Connected\x20platforms\x20for\x20training:','📤\x20Sending\x20training\x20data\x20to\x20/mobile-training/enoch:','📡\x20Training\x20API\x20response:','7|0|2|5|6|3|4|1','🔗\x20Connections\x20required\x20detected\x20from\x20HTTP\x20response','🎯\x20Training\x20Features:','JNxsW','Training\x20model...','ecQSA','❌\x20Training\x20start\x20failed:','❌\x20Training\x20start\x20error:','Unknown\x20error','HHRDt','BQsHB','YaJhI','HfgUm','🔐\x20[BACKGROUND]\x20PIN\x20validation\x20-\x20continuing\x20with\x20existing\x20training\x20session','EStbM','ZgNjK','✅\x20Training\x20Complete:','ℹ️\x20Limited\x20data\x20scenario\x20detected','🔄\x20Attempting\x20to\x20refresh\x20YouTube\x20tokens...','BLfnW','YouTube\x20tokens\x20refreshed\x20-\x20but\x20training\x20only\x20starts\x20from\x20connector→PIN','YouTube\x20reconnected\x20-\x20please\x20restart\x20from\x20connector\x20screen','YouTube\x20connection\x20failed.\x20Please\x20try\x20again.','rhlXf','📊\x20Training\x20update:','YouTube\x20access\x20token\x20has\x20expired','🔄\x20YouTube\x20token\x20expired,\x20triggering\x20reconnection...','🚫\x20No\x20data\x20scenario\x20detected','NO_DATA','No\x20interaction\x20data\x20found','LIMITED_DATA','1|2|5|3|0|4','sANyC','FRwDR','Training\x20in\x20progress','bFPSB','🔍\x20Socket\x20state\x20after\x201\x20second:','mYlYq','❌\x20Socket\x20connection\x20timeout\x20after\x2020\x20seconds','🔌\x20Socket\x20connection\x20details:','Waiting\x20for\x20training\x20to\x20start\x20from\x20connector→PIN\x20transition','sAzQw','🔄\x20Socket\x20reconnected\x20after','attempts','1|4|0|2|3','✅\x20Training\x20completed:','rCDYS','mhPnR','Complete!','🔍\x20Socket\x20state\x20after\x205\x20seconds:','Initializing','rNusR','🚀\x20Starting\x20persona\x20creation...','🔐\x20Step\x201:\x20Ensuring\x20authentication\x20token...','🔑\x20Token\x20stored\x20verification:','Not\x20stored','🧑‍💻\x20Set\x20user\x20info:','rnPHj','🌐\x20Attempting\x20to\x20connect\x20to:\x20${API_CONFIG.BASE_URL}','📱\x20Device\x20platform:','websocket','polling','reconnect','reconnect_attempt','reconnect_failed','inferenceCompleted','modelStandby','🔌\x20Socket\x20connect()\x20called\x20-\x20waiting\x20for\x20connection...','ylbwc','fYQmd','FnSJk','Your\x20persona\x20is\x20ready!\x20🎉','Keeping\x20your\x20data\x20private','KohmI','tzYnd','iOgHm','kksgj','✅\x20Using\x20real\x20authentication\x20token\x20for\x20onComplete:','training-complete-token','wChVe','VbgVO','ℹ️\x20SDK\x20does\x20not\x20create\x20users\x20during\x20onboarding','ℹ️\x20User\x20should\x20authenticate\x20first\x20via\x20Google/Apple/Email','fExRB','❌\x20No\x20real\x20authentication\x20token\x20found\x20after\x20training\x20completion','dqKms','uKrqf','✅\x20[BACKGROUND]\x20Socket\x20connected,\x20starting\x20background\x20data\x20collection...','Collecting\x20your\x20data...','❌\x20[BACKGROUND]\x20Socket\x20disconnected','🚀\x20[BACKGROUND]\x20Starting\x20background\x20training\x20optimization...','Connecting...','Failed\x20to\x20create\x20authentication\x20token\x20for\x20background\x20training','BoerM','🧑‍💻\x20[BACKGROUND]\x20User\x20info\x20set:','Initializing\x20data\x20collection...','✅\x20[BACKGROUND]\x20Background\x20training\x20initiated\x20successfully','❌\x20[BACKGROUND]\x20Background\x20training\x20failed:','❌\x20No\x20authentication\x20token\x20available\x20after\x20ensureAuthToken','📤\x20Sending\x20background\x20training\x20data\x20to\x20/mobile-training/enoch:','📡\x20Background\x20training\x20API\x20response:','nhppr','🔗\x20Connections\x20required\x20detected\x20from\x20background\x20training','yalKU','❌\x20Background\x20training\x20start\x20failed:','Background\x20training\x20failed\x20to\x20start','✅\x20[SDK]\x20Calling\x20onComplete\x20for\x20returning\x20user','lTZKD','⚠️\x20[SDK]\x20No\x20token/email\x20found\x20for\x20returning\x20user','✅\x20[SDK]\x20Returning\x20user\x20onComplete\x20finished\x20-\x20waiting\x20for\x20parent\x20to\x20close\x20modal','aaadm','wVxvE','Initializing...','pinterest','Pinterest','YouTube','LinkedIn','gmail','Gmail','Debug\x20Padding','Handle\x20Top:\x20','Hide\x20Debug','Get\x20Started','welcome-get-started-button','useState','KSWLH','Medium','Animated','Value','useEffect','lbvgd','btiVL','YPGzF','gItXL','qDZnl','KoMiu','DRyvv','vJpcE','chuJN','LKDoR','pvFEL','log','CWvpo','RwhcY','current','sylNZ','engine','zobXI','OpjeW','transport','XnjlD','TjsAV','🔌\x20Socket\x20ID\x20for\x20training:','UZiTx','...','None','aOlgg','cYMAm','LBRRw','gLzCN','LAQlF','zltac','mAGtq','tzJpd','hjYcO','useRef','qGUdS','ZEXIA','parse','includes','push','error','SxePP','uPQzL','lhWeu','JVRIo','JBoGk','Ftnqe','vGQMz','ETBsq','getItem','filter','setItem','stringify','bEgcZ','Remaining\x20platforms:','lWCpo','wDNcD','searchParams','KJvPY','Yzpfy','YNZxN','fxTPj','xvjtR','Google\x20Sign-In\x20failed.\x20Please\x20try\x20again.','QDwFJ','SOSig','hlCCj','DltAJ','Viomg','FquXe','Alert','alert','ubnGZ','Are\x20you\x20sure\x20you\x20want\x20to\x20disconnect\x20','cancel','xaUdK','destructive','SfLNu','qIhFn','DFsFH','MGLGV','gwNYk','lPwTV','IsLQh','yMIiV','❌\x20Google\x20Sign-In\x20error:','message','triggerHaptic','HapticType','ERROR','upgjl','jIaUX','mCjiK','ZaPxY','NGrjv','FRviI','uaZYn','Nyyxi','HVvVp','JZtAV','uwsPq','OQTrQ','repeat','TSCfz','TNtTR','nqVIF','yDFjb','You\x27re\x20more\x20interesting\x20than\x20I\x20expected','wqRXm','LRFbY','ENjRH','email','username','split','pyesh','mSRmx','vISDd','eNqqX','linkedin','XTcra','reddit','vagEW','YxlAQ','ChatGPT','#10A37F','getUniversalOnboardingIcon','GiAYa','absbG','SqkfG','tDTaE','HrcEX','AvcHP','hIPCr','cHDRx','BAZgp','FrDEF','USSJD','ycxYw','hgpQf','FrxOJ','cBLjt','KGgOJ','wRgfn','hemcO','kiDda','setValue','qfrtI','mYaSm','woUdn','GXPWU','UfrZb','iDRyp','XZStN','OgKuX','timing','Linking','addEventListener','GlhYw','xFyyU','TCfZN','remove','MHJJe','DVBZX','USkGI','VaUTo','rePyw','ylReh','start','MiGmp','prFNd','bPXCt','MaBEz','Kkhzr','0|4|2|3|5|1','vbwGb','✅\x20[BACKGROUND]\x20PIN\x20submitted\x20for\x20existing\x20training\x20session','niKaq','wywAJ','substring','🔌\x20[BACKGROUND]\x20Using\x20existing\x20socket\x20ID:','Lpduv','🔍\x20Checking\x20for\x20returning\x20user\x20data...','flowType','EcVtM','existingUserData','hasExistingData','ZUlJv','connections','length','isNewUser','yUaMF','StatX','isArray','status','map','enochInstructions','showWelcomeBack','RFLgD','GYkpH','JtNss','mrqYE','esdng','ZJsTl','disconnect','rMJTg','uTlPS','uBXky','wAdGr','GDIPZ','KiYHE','kTnji','Bndak','useCallback','isOAuthCallback','nGtjM','jomPu','YQtkd','LbVFf','wzXKp','QrcwA','LClSF','removeItem','GDfjh','getJWT','getOnairosUsername','IEBoG','UxGCM','name','ieqeu','GwzJZ','rTyaI','MNCNk','🔑\x20[CACHED\x20LOGIN]\x20Found\x20valid\x20token\x20for\x20user:','AfzyB','SNrAL','GIctd','🔑\x20[CACHED\x20LOGIN]\x20Skipping\x20to\x20consent\x20screen','knVEA','cicdD','jAeqY','UWfPx','CBRdX','dzLFV','EfUHn','xHffp','soBma','dxAqs','rMWPl','bBpRc','❌\x20Error\x20checking\x20authentication\x20token:','nNKWg','MYnAC','zrnVx','uMFUT','pZuaF','HZKbJ','hjenb','qFgeQ','hFDvl','TYMzE','Yzkts','OJShv','gmcrs','xUoLT','gQvOE','JEnMK','user_','floor','rSdwV','random','bUvwU','xNThB','yQvPg','keys','forEach','jCQTL','hthHF','XfSSD','wImoO','mYKuO','Zysjz','VDbHF','LjQlh','Error\x20loading\x20initial\x20connection\x20status:','VClkC','IknjW','XgDqY','ENWfa','WDeux','SONqq','cDdaV','Nmpnt','pwFJv','ptAyF','RWFSI','TfWJe','qVhIJ','ICpaC','Failed\x20to\x20send\x20verification\x20code.\x20Please\x20try\x20again.','CGlZM','LbVoP','UgwMs','SVcRN','tXftA','kxzTk','kQOIJ','BUTTON_PRESS','Uahsv','gtfVa','BKpGa','HcOlX','rYcKV','JJRPy','xPcSc','JlvCo','moaTL','RASfl','TfKCT','storeJWT','KpKWh','ikqyH','nTXRs','awDNp','LcOAg','eTbXw','QHYCi','Fhykc','3|0|1|2|4','mykGV','kodcC','MkIDi','📧\x20Sending\x20verification\x20code\x20to:','sendEmailVerificationCode','success','EINoy','TPswF','Wftvr','PBgDe','dEzCv','🔍\x20Disconnect\x20details:','kepAy','NfDNt','❌\x20Error\x20sending\x20verification\x20code:','vKbdo','fiiZI','jWQtr','gyxAK','hfHMk','dOpiF','signInWithGoogle','✅\x20Google\x20Sign-In\x20successful:','FBPRT','user','akMOX','YJoKB','getConnectedAccountsSmart','✅\x20Found\x20','\x20existing\x20connections\x20-\x20skipping\x20to\x20consent','VRwiG','WCMfY','CRAkD','plCPB','features','ecFJZ','HWLsX','PnVey','YgkRC','gCOdX','storage','Gjykz','queryScores','encryption','type','JrIDa','rOlmE','SUCCESS','skFIH','zQyDY','ZyAMt','RysPl','chQBK','ktBGM','ZnWmW','ewtsg','pnQGj','IQFHN','tmyLY','🔍\x20Verifying\x20email\x20code:','BEJQK','confirmEmailVerificationCode','RvZja','cWbEy','YWsmA','stack','jZrCH','dDCqM','EmhwQ','Jrcez','spwqN','active','JTBGH','mYhkh','PiGdL','qKUwz','IckZS','gfLVp','QFjDM','❌\x20Email\x20verification\x20failed:','UgxPl','lZEMx','XMNED','❌\x20Error\x20verifying\x20email\x20code:','Verification\x20failed.\x20Please\x20try\x20again.','ptcwS','snUEF','DXgLv','VvWbl','kZfJS','EwUZZ','multiRemove','axonT','AmxVA','yfUSu','uoJDU','GUuhL','sNUvO','BsicT','DhOdr','JDGlN','🔄\x20Resending\x20verification\x20code\x20to:','lKzZT','qCEuR','Failed\x20to\x20resend\x20verification\x20code.','DLwby','neVzr','❌\x20Error\x20resending\x20verification\x20code:','WbmOM','bKWqN','ItlHT','all','getAuthToken','🔑\x20[SDK]\x20Token\x20available:','felZD','vSPzb','cErCG','ViKqA','lUhEv','POcmH','API_CONFIG','BASE_URL','nzgsJ','VPZAb','EcJaV','loRMM','XHmPD','qHaLj','vxzYz','🧠\x20Inference\x20enabled:','inference','testing','🧪\x20Testing\x20mode\x20enabled','databases','join','nPnBR','❌\x20[SDK]\x20Error\x20retrieving\x20auth\x20data\x20for\x20onComplete:','XrnQV','ECjnK','✅\x20[SDK]\x20onComplete\x20finished\x20-\x20waiting\x20for\x20parent\x20to\x20close\x20modal','nObrS','bPvjU','asTbY','⏭️\x20Skipping\x20platform\x20connections','SCEWo','✅\x20[SDK]\x20User\x20skipped\x20platforms\x20-\x20still\x20calling\x20onComplete\x20with\x20auth\x20data','uMybb','HtRud','jGoml','HknGP','joSGN','KZWZm','KJvsZ','gqDeN','gGWRC','MSzhx','🔍\x20Reviewer\x20bypass\x20triggered\x20from\x20platforms','true','LwRzr','❌\x20Failed\x20to\x20store\x20reviewer\x20bypass:','jRPAr','JDzRL','EguGS','raJUz','DJsik','xbsYa','fKbka','VgsGX','catch','jwxHC','VgEuE','hasNativeSDK','initiateNativeAuth','UZZia','initiateOAuth','SnkXj','RUhYq','JHgMW','KkEia','NTrUx','Error\x20connecting\x20to\x20','OaiLH','LDnbR','NXZkP','set','DrAlQ','gWHmc','defineProperty','sglLj','IjkWa','UYnEC','Zbyqa','gGNls','jLrTs','instagram','sKAju','IezBg','CavLb','@temp.com','SNXFj','TNjRu','connectionId','✅\x20Backend\x20received\x20and\x20stored\x20LLM\x20data','UDRCm','\x20successfully\x20connected\x20and\x20stored\x20in\x20backend','Failed\x20to\x20send\x20LLM\x20data\x20to\x20backend:\x20','cGPaQ','yCIVw','lbiQV','EKaaV','DyMCv','Hhugj','FSRfq','LNxpl','compression','✅\x20Inference\x20enabled:','🔐\x20Encryption\x20enabled:','EPKwu','GArqv','Error\x20initiating\x20OAuth\x20for\x20','gOMqf','ikTJV','pxABT','CGOsT','cGxPx','WhSaR','yjiaT','PlEGY','oCgUW','wtVuZ','vUXGe','oCOqo','NbKGt','cLXko','QkZwY','TQTLs','CsjCB','SoAka','HDOIf','RWKpv','yBeLJ','MaxQm','ZJcAj','bnYIk','🎉\x20OAuth\x20success\x20for\x20','dJLor','jFCvd','💾\x20','\x20connection\x20stored\x20successfully','jYGWb','AGRBz','pnxhS','tAoIP','setTemporaryPin','JmmFX','KXTYk','bJAvE','axXEh','LfASO','XBktD','❌\x20[PIN\x20SUBMIT]\x20Failed\x20to\x20continue\x20background\x20training:','tHdil','DyUBf','FWqcW','wxAVd','xCLrQ','ℹ️\x20[PIN\x20SUBMIT]\x20No\x20background\x20training\x20detected','rqBJf','OrXuG','gVLfT','XZSlq','FnZVS','oElRl','aUcng','cfRPL','❌\x20No\x20authentication\x20token\x20available','SdftC','CArAd','🔑\x20Using\x20auth\x20token:','CCxzA','getEncryptedPinForAPI','lAKjq','NliVq','ulQQk','PaSox','xPdea','nQGmp','qLGRF','OtCsU','xALXd','code','TiijI','XKvuk','hjAXE','uoQHx','XgJTu','3|0|2|4|6|5|1','❌\x20Returning\x20user\x20declined\x20consent','mPtCa','IjYLX','FIeYR','nPwMV','Error:\x20','tDceb','czjJo','HcqQr','QlxbL','YEDrN','qtUkq','CIMXG','GzNQF','vAafG','dtvkw','YUPdm','🔄\x20Socket\x20reconnection\x20attempt:','Reconnecting...\x20(','/3)','tkkiL','JJqvp','IKbkK','HsehD','ntfVV','IGmNt','BlZZp','zdRBA','ydHMZ','oSrkh','❌\x20Socket\x20reconnection\x20error:','eiJVj','FjENW','rbAfw','PehOw','SDiwn','tTjUt','🧠\x20Inference\x20Complete:','AwjKh','Uploading\x20to\x20S3','HzYNY','pfXfi','FKXNZ','aBcoQ','ItbmV','fXcNT','RCreQ','DWjgV','yItNa','DzYAt','PSKll','iyoRQ','FMcfe','oQBkT','fVEFe','qNXTq','izppH','Ltbms','tHfZH','✅\x20Authentication\x20token\x20set\x20in\x20state:','JQxvo','🔄\x20UserInfo\x20not\x20available,\x20attempting\x20to\x20reload...','oEryC','nvlNH','KnGXE','YTexA','Zwkzg','XdSXJ','zjhuS','HOwsB','ndeNb','emVYg','sjzNX','zYMKL','EqQCD','🔧\x20Setting\x20up\x20socket\x20connection\x20for\x20real\x20training...','🧑‍💻\x20User\x20info\x20available:','🔑\x20Token\x20available:','dXfrp','Platform','TCyRd','sXyes','Connecting','🔌\x20Socket\x20instance\x20created:','lLCYx','✅\x20Socket\x20connected\x20for\x20training','pRDWn','unSxA','UQbiB','ttiiZ','HfSjM','UpYRV','vVRIG','LcudD','BSHUt','mRVQA','hJcba','PXYTQ','xYfUq','AXmgt','kMDUj','QqJIv','hHlic','iOMUX','rkCYl','KdgAB','baDHX','Huucl','vrMom','WHQdD','WKdWf','readyState','reconnect_error','HHhol','vPAti','XwPVj','FsCvr','wCEOF','RyOPD','QBRYp','cPnMc','2|3|4|0|1','PbdbH','UwXCT','URGmX','OfJxI','Running\x20test\x20inference','iLYAw','KHtpK','rMnyB','VsEGD','AmolQ','NLklE','EZvRT','GntLy','traits','inferenceResults','XtbEu','oQxEk','CGQIe','BcWDq','gQdat','yqDEo','dcsmu','XewkD','HtJSp','🎉\x20All\x20Complete:','completed','KOFhw','bKJHL','yvdwe','uEMIq','❌\x20Error\x20retrieving\x20real\x20token\x20for\x20onComplete:','yzlZP','VNLYk','NsNtE','AEelJ','hKqNI','cwOqI','SOPVo','KdiPx','jhprw','BUYbL','aTFjO','yxaoi','Token\x20refresh\x20failed\x20-\x20please\x20restart\x20from\x20connector\x20screen','EZJhX','✅\x20YouTube\x20reconnected,\x20but\x20training\x20restart\x20disabled','EhpuS','yMgTH','cQmEf','GdExf','❌\x20YouTube\x20token\x20refresh/reconnection\x20error:','EOdps','ayKib','QqfsD','fLMaI','XrMSJ','MXUAt','fQlkj','aQUBn','DOwoi','hMBjm','tQfgo','BDswx','pYwsU','eGJFM','ICztB','eTmyx','details','ovBtv','RSkAv','Creating\x20your\x20persona\x20with\x20available\x20data','refreshYouTubeTokens','yGxpd','✅\x20YouTube\x20tokens\x20refreshed,\x20but\x20training\x20restart\x20disabled','inwlw','YMPYi','cxAaR','neyET','TdDmD','iQVAt','vSLFD','PkWbr','BpbaS','iHnvW','MwMyW','bhDKx','BKZPS','dwrfm','requiresConnections','6|7|1|5|4|3|2|0','euuWP','Yqtkl','LlPoe','MsTLE','fHzjt','ugezR','xDJDf','oMZgG','YGsPF','❌\x20Training\x20update\x20error:','BjemO','gPxxB','aJUIT','IZXVD','BiJte','LSQct','progress','ZrEOT','SjJYD','GpugP','YCszD','cnfJO','Obkva','pnfQt','UwrZQ','NXoNa','XBlZW','THlcv','cPiAy','LooJz','dzSUc','HstSc','WMBAZ','EpREy','dxtZM','hzSGE','2|0|4|5|3|1','🔍\x20Socket\x20state:','rfuIB','Wjtkc','mnoGo','rHRpv','shteB','hxMXw','yKMmC','ZymQf','FYQnr','vJcKT','Uoiic','IZsHN','VRGCV','🚀\x20Get\x20Started\x20pressed\x20-\x20moving\x20to\x20signin','hjbGN','SwSly','PkuiM','aPluN','NbIcg','XgJqp','sbzrX','JvqmN','hHqJp','GwSrx','SKiJW','erjJc','uFWsk','TliBJ','Finalizing\x20your\x20unique\x20persona','DAbPa','lXWdB','qloEH','NjgaX','wETmU','wxabq','🎉\x20Real\x20persona\x20creation\x20completed\x20successfully','cpiNL','DxPAn','clearTemporaryPin','BvbFI','VKHSF','BCAuK','JkAKm','Gcwza','vupAR','nMmSC','scGcP','bLuKX','IWtAp','znCAF','warn','⚠️\x20No\x20authentication\x20token\x20found','VfFQK','yhWXR','values','Aocrh','jqQTx','OhJZg','rHaJR','RRAgl','vxKLr','jmgOD','siBEx','ZilKI','mzHsw','qHvKH','BYIci','rwksc','JXbuz','DPRln','WuMwN','ugGou','Tcgiu','aSykS','DpSDb','HJJTV','🔌\x20[BACKGROUND]\x20Setting\x20up\x20socket\x20for\x20background\x20training...','dwlBO','nRivA','VJxJl','vHTaY','gsMQG','KnZVY','Khohe','stKGr','EmWvx','WfZbe','trainingUpdate','geVOu','rQYvj','nImUj','OANmB','OfqEc','tJQPY','LkvfG','xHtQS','aKtwo','gXFnG','dyVdI','7|4|2|6|1|3|5|0','YvbjN','fTure','AzcyQ','IKVQb','YTbYR','lilUG','jJawG','XvzbJ','nxFeW','wGwOh','GWleM','ApZyu','DMvIC','Modal','TygNg','createElement','modalOverlay','TouchableWithoutFeedback','backdrop','View','bottomSheet','container','handleContainer','TouchableOpacity','handleButton','handle','xzvAE','debugPanel','Text','AtfpN','debugRow','debugLabel','Container\x20Top:\x20','debugBtn','Container\x20Bottom:\x20','WRicZ','max','debugCloseBtnText','GjhMr','brandMarkContainer','headingContainer','bodyContainer','welcomeSpacer','welcomeButtonContainer','ZboJs','RPnLQ','aensG','cVYXV','✅\x20Returning\x20user\x20accepted\x20consent','jAPLd','🔑\x20[SDK]\x20Auth\x20data\x20retrieved\x20in\x20parallel\x20for\x20returning\x20user','dEsaF','cHXvY','YxjZI','FwDEl','vsifk','MevgR','iKALx','❌\x20[SDK]\x20Error\x20during\x20returning\x20user\x20consent:','TvrOI','UavaJ','YhJrD','GvtfA','frKng','IeZcD','StyleSheet','create','absoluteFillObject','rgba(0,\x200,\x200,\x200.5)','#FAFAFA','center','100%','transparent','#D0D0D0','#fff','row','#444','#666','bold','#333','600','#000000','underline','space-between','#E5E5E5','#F5F5F5','#E9C46A','#000','#FFFFFF','#F0F0F0','hidden','#1BA9D4','500','italic','#FFF5F5','#FEB2B2','#F0F9FF','#BAE6FD','#FF6B6B','#F8F9FA','#6B7280','#0EA5E9','#0C4A6E'];_0x25a9=function(){return _0x5bea15;};return _0x25a9();}const LEGACY_REMOVED=!![],styles=_reactNative[_0xe5d4(0x558)][_0xe5d4(0x559)]({'modalOverlay':{'flex':0x1,'justifyContent':'flex-end'},'backdrop':{..._reactNative[_0xe5d4(0x558)][_0xe5d4(0x55a)],'backgroundColor':_0xe5d4(0x55b)},'bottomSheet':{'backgroundColor':_0xe5d4(0x55c),'borderTopLeftRadius':0x18,'borderTopRightRadius':0x18,'paddingTop':0x0,'paddingBottom':0x0,'minHeight':height*0.86,'overflow':'hidden','width':'100%'},'container':{'flex':0x1,'backgroundColor':_0xe5d4(0x55c)},'welcomeContainer':{'flex':0x1,'alignItems':_0xe5d4(0x55d),'paddingTop':0x46,'paddingHorizontal':0x18},'brandMarkContainer':{'marginBottom':0x20},'headingContainer':{'marginBottom':0x18},'bodyContainer':{'marginBottom':0x20,'width':'100%'},'welcomeSpacer':{'flex':0x1,'minHeight':0x14},'welcomeButtonContainer':{'width':_0xe5d4(0x55e),'paddingBottom':0x14},'handleContainer':{'alignItems':_0xe5d4(0x55d),'paddingTop':0xc,'paddingBottom':0x4,'backgroundColor':_0xe5d4(0x55f)},'handleButton':{'padding':0x0,'width':0x78,'alignItems':_0xe5d4(0x55d)},'handle':{'width':0x64,'height':0x6,'borderRadius':0x3,'backgroundColor':_0xe5d4(0x560)},'debugPanel':{'position':'absolute','top':0x3c,'right':0xa,'backgroundColor':'rgba(0,0,0,0.85)','padding':0xc,'borderRadius':0x8,'zIndex':0x270f,'minWidth':0xc8},'debugTitle':{'color':_0xe5d4(0x561),'fontSize':0xe,'fontWeight':'700','marginBottom':0x8},'debugRow':{'flexDirection':_0xe5d4(0x562),'alignItems':'center','marginBottom':0x6},'debugLabel':{'color':'#fff','fontSize':0xc,'flex':0x1},'debugBtn':{'backgroundColor':_0xe5d4(0x563),'paddingHorizontal':0xc,'paddingVertical':0x4,'borderRadius':0x4,'marginLeft':0x4},'debugCloseBtn':{'backgroundColor':_0xe5d4(0x564),'paddingVertical':0x6,'borderRadius':0x4,'marginTop':0x8,'alignItems':_0xe5d4(0x55d)},'debugCloseBtnText':{'color':_0xe5d4(0x561),'fontSize':0xc},'header':{'alignItems':'center','marginBottom':0x14,'paddingHorizontal':0x18},'headerContent':{'flexDirection':'row','alignItems':'center','justifyContent':_0xe5d4(0x55d),'marginBottom':0x18},'appIcon':{'width':0x30,'height':0x30,'borderRadius':0x18,'backgroundColor':'#F5F5F5','alignItems':_0xe5d4(0x55d),'justifyContent':_0xe5d4(0x55d)},'appIconText':{'fontSize':0x18,'fontWeight':_0xe5d4(0x565),'color':_0xe5d4(0x566)},'arrow':{'marginHorizontal':0x10,'fontSize':0x18,'color':'#666'},'onairosIcon':{'width':0x36,'height':0x36,'borderRadius':0x20,'backgroundColor':'transparent','alignItems':_0xe5d4(0x55d),'justifyContent':_0xe5d4(0x55d)},'onairosIconText':{'fontSize':0x18,'fontWeight':_0xe5d4(0x565),'color':'#fff'},'onairosIconImage':{'width':0x36,'height':0x36},'titleContainer':{'alignItems':_0xe5d4(0x55d)},'mainTitle':{'fontSize':0x18,'fontWeight':_0xe5d4(0x567),'color':'#333','textAlign':_0xe5d4(0x55d),'marginBottom':0xc},'privacyMessage':{'fontSize':0xe,'color':_0xe5d4(0x564),'textAlign':'center','marginBottom':0x14},'privacyLink':{'color':_0xe5d4(0x568),'fontWeight':'600','textDecorationLine':_0xe5d4(0x569)},'boldText':{'fontWeight':_0xe5d4(0x565)},'content':{'flex':0x1,'paddingHorizontal':0x18},'platformsScrollView':{'flex':0x1,'width':_0xe5d4(0x55e)},'platformsScrollContent':{'paddingBottom':0x0,'paddingHorizontal':0x18},'platformsContainer':{'marginTop':0x10},'platformItem':{'flexDirection':_0xe5d4(0x562),'alignItems':_0xe5d4(0x55d),'justifyContent':_0xe5d4(0x56a),'paddingVertical':0x10,'paddingHorizontal':0x8,'borderBottomWidth':0x1,'borderBottomColor':_0xe5d4(0x56b)},'platformInfo':{'flexDirection':_0xe5d4(0x562),'alignItems':_0xe5d4(0x55d)},'platformIcon':{'width':0x28,'height':0x28,'borderRadius':0x14,'backgroundColor':'#F5F5F5','alignItems':_0xe5d4(0x55d),'justifyContent':_0xe5d4(0x55d),'marginRight':0x10},'platformIconText':{'fontSize':0x12,'fontWeight':_0xe5d4(0x565),'color':_0xe5d4(0x566),'textAlign':_0xe5d4(0x55d),'textAlignVertical':'center'},'platformIconImage':{'width':0x18,'height':0x18},'youtubeIconImage':{'width':0x3a,'height':0x3a},'redditIconImage':{'width':0x22,'height':0x22},'pinterestIconImage':{'width':0x30,'height':0x30},'gmailIconImage':{'width':0x20,'height':0x20},'linkedinPlatformIcon':{'width':0x28,'height':0x28,'borderRadius':0x8,'backgroundColor':_0xe5d4(0x56c),'alignItems':_0xe5d4(0x55d),'justifyContent':_0xe5d4(0x55d),'marginRight':0x10},'pinterestPlatformIcon':{'width':0x22,'height':0x22,'borderRadius':0x11,'backgroundColor':_0xe5d4(0x56c),'alignItems':_0xe5d4(0x55d),'justifyContent':'center','marginRight':0x10},'platformName':{'fontSize':0x10,'color':_0xe5d4(0x566),'textAlignVertical':_0xe5d4(0x55d)},'footer':{'flexDirection':_0xe5d4(0x562),'alignItems':_0xe5d4(0x55d),'justifyContent':_0xe5d4(0x56a),'padding':0x18,'borderTopWidth':0x1,'borderTopColor':_0xe5d4(0x56b)},'footerButtonCancel':{'paddingVertical':0xc,'paddingHorizontal':0x10},'footerButtonText':{'color':_0xe5d4(0x564),'fontSize':0x10},'footerButtonConfirm':{'paddingVertical':0xc,'paddingHorizontal':0x18,'backgroundColor':_0xe5d4(0x568),'borderRadius':0x8,'marginTop':0x14},'footerButtonConnected':{'paddingVertical':0xc,'paddingHorizontal':0x18,'backgroundColor':_0xe5d4(0x56d),'borderRadius':0x8},'footerButtonDisabled':{'backgroundColor':_0xe5d4(0x56b)},'footerButtonTextConfirm':{'color':_0xe5d4(0x561),'fontSize':0x10,'fontWeight':'600'},'footerButtonTextConnected':{'color':_0xe5d4(0x56e),'fontSize':0x10,'fontWeight':_0xe5d4(0x567)},'connectContainer':{'flex':0x1},'modalContent':{'flex':0x1,'backgroundColor':_0xe5d4(0x56f),'borderTopLeftRadius':0x14,'borderTopRightRadius':0x14,'padding':0x18},'backButton':{'padding':0x8,'width':0x28},'backButtonText':{'fontSize':0x18,'color':'#000000'},'backButtonSpacer':{'width':0x28},'headerTitle':{'fontSize':0x12,'fontWeight':_0xe5d4(0x567),'color':_0xe5d4(0x566),'textAlign':_0xe5d4(0x55d)},'privacyHeader':{'flexDirection':_0xe5d4(0x562),'alignItems':'center','justifyContent':_0xe5d4(0x56a),'paddingHorizontal':0x10,'paddingVertical':0x14,'backgroundColor':'#FFFFFF','borderBottomWidth':0x1,'borderBottomColor':_0xe5d4(0x570)},'privacyDetailsContainer':{'paddingHorizontal':0x18,'paddingVertical':0x8,'flex':0x1,'marginTop':0x14},'privacyDetailsTitle':{'fontSize':0x14,'fontWeight':_0xe5d4(0x567),'color':_0xe5d4(0x566),'marginBottom':0x0},'privacyBulletPoint':{'flexDirection':_0xe5d4(0x562),'marginBottom':0x10,'alignItems':'flex-start'},'bulletPoint':{'fontSize':0x12,'marginRight':0x8,'color':_0xe5d4(0x566)},'privacyBulletText':{'fontSize':0x10,'color':_0xe5d4(0x566),'flex':0x1,'lineHeight':0x18},'connectionsCountText':{'fontSize':0x12,'fontWeight':_0xe5d4(0x567),'color':_0xe5d4(0x566),'marginBottom':0x18},'personaContainer':{'flex':0x1,'padding':0x10,'backgroundColor':'#fff','justifyContent':'flex-start'},'personaHeaderWithBack':{'flexDirection':_0xe5d4(0x562),'alignItems':_0xe5d4(0x55d),'justifyContent':_0xe5d4(0x56a),'marginBottom':0x10,'paddingVertical':0x8},'personaBackButton':{'padding':0x8},'personaHeader':{'alignItems':_0xe5d4(0x55d),'marginBottom':0x20,'paddingHorizontal':0x18},'personaTitle':{'fontSize':0x14,'fontWeight':'600','color':_0xe5d4(0x566),'textAlign':_0xe5d4(0x55d),'flex':0x1,'marginBottom':0x8},'personaSubtitle':{'fontSize':0xe,'color':_0xe5d4(0x564),'marginBottom':0x18,'textAlign':'center'},'personaProgressContainer':{'marginBottom':0x18,'paddingHorizontal':0x0},'personaProgressBar':{'height':0x8,'backgroundColor':_0xe5d4(0x56c),'borderRadius':0x4,'overflow':_0xe5d4(0x571),'marginBottom':0xc},'personaProgressFill':{'height':_0xe5d4(0x55e),'backgroundColor':_0xe5d4(0x572),'borderRadius':0x4},'personaProgressText':{'fontSize':0x10,'fontWeight':_0xe5d4(0x567),'color':_0xe5d4(0x566),'textAlign':_0xe5d4(0x55d),'marginBottom':0x8},'personaStatusText':{'fontSize':0xe,'color':_0xe5d4(0x564),'textAlign':_0xe5d4(0x55d)},'personaCompleteContainer':{'alignItems':'center','paddingHorizontal':0x0},'personaCompleteTitle':{'fontSize':0x14,'fontWeight':_0xe5d4(0x567),'color':_0xe5d4(0x566),'marginBottom':0x8,'textAlign':'center'},'personaCompleteSubtitle':{'fontSize':0xe,'color':_0xe5d4(0x564),'textAlign':'center','marginBottom':0x28},'personaContinueButton':{'backgroundColor':_0xe5d4(0x568),'paddingVertical':0x10,'paddingHorizontal':0x30,'borderRadius':0x10,'alignItems':_0xe5d4(0x55d),'width':_0xe5d4(0x55e),'marginTop':0x20,'shadowColor':_0xe5d4(0x56e),'shadowOffset':{'width':0x0,'height':0x2},'shadowOpacity':0.1,'shadowRadius':0x4,'elevation':0x3},'personaContinueButtonText':{'color':_0xe5d4(0x561),'fontSize':0x10,'fontWeight':_0xe5d4(0x567)},'progressError':{'backgroundColor':'#FF3B30'},'dataWarningContainer':{'padding':0x10,'borderRadius':0xc,'marginTop':0x10,'borderWidth':0x1,'shadowColor':_0xe5d4(0x56e),'shadowOffset':{'width':0x0,'height':0x2},'shadowOpacity':0.1,'shadowRadius':0x4,'elevation':0x3},'dataWarningHeader':{'flexDirection':_0xe5d4(0x562),'alignItems':_0xe5d4(0x55d),'marginBottom':0x8},'dataWarningIcon':{'fontSize':0x14,'marginRight':0x8},'dataWarningTitle':{'fontSize':0x10,'fontWeight':'600','flex':0x1},'dataWarningMessage':{'fontSize':0xe,'marginBottom':0x0,'lineHeight':0x14},'dataWarningSuggestions':{'marginTop':0xc,'paddingTop':0xc,'borderTopWidth':0x1},'dataWarningSuggestionsTitle':{'fontSize':0xe,'fontWeight':_0xe5d4(0x567),'marginBottom':0x6},'dataWarningSuggestionItem':{'fontSize':0xd,'marginBottom':0x4,'lineHeight':0x12},'dataWarningContinueNote':{'fontSize':0xd,'fontWeight':_0xe5d4(0x573),'marginTop':0xc,'fontStyle':_0xe5d4(0x574)},'dataWarningError':{'backgroundColor':_0xe5d4(0x575),'borderColor':_0xe5d4(0x576)},'dataInfoContainer':{'backgroundColor':_0xe5d4(0x577),'borderColor':_0xe5d4(0x578)},'dataConnectionsRequired':{'backgroundColor':_0xe5d4(0x56c),'borderColor':'#D1D5DB','shadowColor':'#6B7280','shadowOffset':{'width':0x0,'height':0x0},'shadowOpacity':0.15,'shadowRadius':0x8},'highlightedBackButton':{'backgroundColor':'#F5F5F5','borderRadius':0x14,'borderWidth':0x2,'borderColor':_0xe5d4(0x568),'shadowColor':_0xe5d4(0x568),'shadowOffset':{'width':0x0,'height':0x0},'shadowOpacity':0.3,'shadowRadius':0x8,'elevation':0x5},'highlightedBackArrow':{'color':'#000000','fontWeight':_0xe5d4(0x565)},'goBackButton':{'backgroundColor':_0xe5d4(0x568),'paddingVertical':0xc,'paddingHorizontal':0x10,'borderRadius':0x8,'marginTop':0xc,'alignItems':_0xe5d4(0x55d),'shadowColor':_0xe5d4(0x568),'shadowOffset':{'width':0x0,'height':0x0},'shadowOpacity':0.3,'shadowRadius':0x6,'elevation':0x3},'goBackButtonText':{'color':'#FFFFFF','fontSize':0xe,'fontWeight':_0xe5d4(0x567)},'additionalPlatformsToggle':{'paddingVertical':0x10,'paddingHorizontal':0x8,'alignItems':_0xe5d4(0x55d),'borderBottomWidth':0x1,'borderBottomColor':'#E5E5E5'},'additionalPlatformsText':{'fontSize':0xe,'color':_0xe5d4(0x564),'fontWeight':_0xe5d4(0x573)},'asterisk':{'color':_0xe5d4(0x579),'fontSize':0x10,'fontWeight':'bold','marginLeft':0x2},'linkedinRequirementContainer':{'backgroundColor':_0xe5d4(0x57a),'borderWidth':0x1,'borderColor':'#E5E7EB','borderRadius':0x8,'paddingHorizontal':0xc,'paddingVertical':0x8,'marginTop':0x8,'marginHorizontal':0x4},'linkedinRequirementText':{'fontSize':0xc,'fontStyle':_0xe5d4(0x574),'textAlign':_0xe5d4(0x55d)},'linkedinRequirementAsterisk':{'color':_0xe5d4(0x579),'fontWeight':_0xe5d4(0x565)},'linkedinRequirementMessage':{'color':_0xe5d4(0x57b)},'existingUserBanner':{'backgroundColor':_0xe5d4(0x577),'borderWidth':0x1,'borderColor':_0xe5d4(0x57c),'borderRadius':0xc,'paddingHorizontal':0x10,'paddingVertical':0xc,'marginTop':0xc},'existingUserText':{'fontSize':0xe,'fontWeight':_0xe5d4(0x567),'color':'#0369A1','marginBottom':0x4},'existingUserSubtext':{'fontSize':0xc,'color':_0xe5d4(0x57d),'lineHeight':0x10}});
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.UniversalOnboarding = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
10
+ var _BrandMark = _interopRequireDefault(require("./BrandMark"));
11
+ var _HeadingGroup = _interopRequireDefault(require("./HeadingGroup"));
12
+ var _BodyText = _interopRequireDefault(require("./BodyText"));
13
+ var _PrimaryButton = _interopRequireDefault(require("./PrimaryButton"));
14
+ var _SignInStep = _interopRequireDefault(require("./SignInStep"));
15
+ var _VerificationStep = _interopRequireDefault(require("./VerificationStep"));
16
+ var _PlatformConnectorsStep = _interopRequireDefault(require("./PlatformConnectorsStep"));
17
+ var _PersonalizationConsentScreen = _interopRequireDefault(require("./PersonalizationConsentScreen"));
18
+ var _platformAuthService = require("../services/platformAuthService");
19
+ var _assetRegistry = require("../utils/assetRegistry");
20
+ var _googleAuthService = require("../services/googleAuthService");
21
+ var _haptics = require("../utils/haptics");
22
+ var _authService = require("../services/authService");
23
+ var _socket = require("socket.io-client");
24
+ var _pinStorageUtils = require("../services/pinStorageUtils");
25
+ var _pinEncryptionService = require("../services/pinEncryptionService");
26
+ var _mobileTrainingService = require("../services/mobileTrainingService");
27
+ var _llmDataStorage = require("../services/llmDataStorage");
28
+ var _connectedAccountsService = require("../services/connectedAccountsService");
29
+ var _api = require("../config/api");
30
+ var _jwtStorageService = require("../services/jwtStorageService");
31
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
32
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
33
+ // Removed navigation dependencies for SDK compatibility
34
+
35
+ // Import components and hooks
36
+
37
+ // Import Enoch-style UI components
38
+
39
+ // import { useConnections } from '../../hooks/useConnections'; // Commented out - file path issue
40
+ // import { useAuth } from '../../context/AuthContext'; // Commented out - file path issue
41
+
42
+ // CRITICAL FIX: Use static imports to avoid Hermes transpilation issues with await import()
43
+
44
+ // Import types
45
+ // import type { ConnectionStatus } from '../../hooks/useConnections'; // Commented out - file path issue
46
+ // Removed App-specific navigation types
47
+
48
+ const {
49
+ height,
50
+ width
51
+ } = _reactNative.Dimensions.get('window');
52
+ // ConnectionStatus interface is now imported from hooks/useConnections
53
+
54
+ const UniversalOnboarding = ({
55
+ visible,
56
+ onClose,
57
+ AppName,
58
+ requestData,
59
+ returnLink,
60
+ onComplete,
61
+ embedd = false,
62
+ debug = false,
63
+ test = false,
64
+ preferredPlatform,
65
+ primaryAuthOnly = false,
66
+ allowedPlatforms,
67
+ recommendedPlatforms,
68
+ allowSkip = true
69
+ }) => {
70
+ const [step, setStep] = (0, _react.useState)(primaryAuthOnly ? 'platforms' : 'welcome');
71
+ const [connections, setConnections] = (0, _react.useState)({});
72
+ const [pin, setPin] = (0, _react.useState)('');
73
+ const [selectedTier, setSelectedTier] = (0, _react.useState)('Medium');
74
+ // Training state is now handled by TrainingModal
75
+ const [slideAnim] = (0, _react.useState)(new _reactNative.Animated.Value(height));
76
+ const [backdropOpacity] = (0, _react.useState)(new _reactNative.Animated.Value(0));
77
+ const [platformToggles, setPlatformToggles] = (0, _react.useState)({});
78
+ const [oauthUrl, setOauthUrl] = (0, _react.useState)('');
79
+ const [currentPlatform, setCurrentPlatform] = (0, _react.useState)('');
80
+ const [email, setEmail] = (0, _react.useState)('');
81
+ const [userEmail, setUserEmail] = (0, _react.useState)(''); // For verification flow
82
+ const [authLoading, setAuthLoading] = (0, _react.useState)(false);
83
+ const [authError, setAuthError] = (0, _react.useState)('');
84
+
85
+ // Returning user state
86
+ const [isReturningUser, setIsReturningUser] = (0, _react.useState)(false);
87
+ const [returningUserConnections, setReturningUserConnections] = (0, _react.useState)([]);
88
+ const [longPressTimer, setLongPressTimer] = (0, _react.useState)(null);
89
+ // 🔧 FIX: Always initialize as false - let useEffect control visibility to prevent double animation glitch
90
+ const [modalVisible, setModalVisible] = (0, _react.useState)(false);
91
+
92
+ // Consent screen loading state
93
+ const [isConsentLoading, setIsConsentLoading] = (0, _react.useState)(false);
94
+
95
+ // DEBUG: Padding adjustment state (set to false to hide)
96
+ const [showDebugPanel, setShowDebugPanel] = (0, _react.useState)(false);
97
+ const [debugPaddingTop, setDebugPaddingTop] = (0, _react.useState)(0);
98
+ const [debugPaddingBottom, setDebugPaddingBottom] = (0, _react.useState)(8);
99
+ const [debugHandlePaddingTop, setDebugHandlePaddingTop] = (0, _react.useState)(6);
100
+
101
+ // Debug logging for modal visibility
102
+ (0, _react.useEffect)(() => {
103
+ console.log('🔍 UniversalOnboarding: visible prop changed to:', visible);
104
+ console.log('🔍 UniversalOnboarding: modalVisible state is:', modalVisible);
105
+ console.log('🔍 UniversalOnboarding: current step is:', step);
106
+ console.log('🔍 UniversalOnboarding: primaryAuthOnly is:', primaryAuthOnly);
107
+ }, [visible, modalVisible, step, primaryAuthOnly]);
108
+
109
+ // 🔄 FIX: Reset step when modal re-opens (visible goes false → true)
110
+ // This prevents stale step state from a previous session (e.g., stuck on 'platforms' after sign-out)
111
+ const prevVisibleRef = (0, _react.useRef)(visible);
112
+ (0, _react.useEffect)(() => {
113
+ if (visible && !prevVisibleRef.current && !primaryAuthOnly) {
114
+ console.log('🔄 [RESET] Modal re-opened - resetting step to welcome');
115
+ setStep('welcome');
116
+ }
117
+ prevVisibleRef.current = visible;
118
+ }, [visible, primaryAuthOnly]);
119
+
120
+ // 🍎 FIX: Watch for primaryAuthOnly prop changes (Apple Sign-In flow)
121
+ // When primaryAuthOnly becomes true AFTER the component mounts, go to welcome step
122
+ // This handles the case where Apple sign-in completes and then opens the SDK modal
123
+ // User will see "Welcome to Onairos" then click "Get Started" to go to platforms (skipping signin)
124
+ (0, _react.useEffect)(() => {
125
+ if (primaryAuthOnly && visible && (step === 'signin' || step === 'verification')) {
126
+ console.log('🍎 [APPLE FIX] primaryAuthOnly detected - resetting to welcome step');
127
+ console.log('🍎 [APPLE FIX] Current step was:', step, '-> Setting to: welcome');
128
+ setStep('welcome');
129
+ }
130
+ }, [primaryAuthOnly, visible]);
131
+ const isCompletingRef = (0, _react.useRef)(false);
132
+ const [connectionsCount, setConnectionsCount] = (0, _react.useState)(5); // Simulated connections count
133
+
134
+ // Add state for showing additional platforms
135
+ const [showAdditionalPlatforms, setShowAdditionalPlatforms] = (0, _react.useState)(false);
136
+ const [additionalPlatformsOpacity] = (0, _react.useState)(new _reactNative.Animated.Value(0));
137
+
138
+ // Add ref for ScrollView to control scroll position
139
+ const scrollViewRef = (0, _react.useRef)(null);
140
+ // Get the authenticated user from auth context
141
+ // const { user } = useAuth(); // Hook not available
142
+ const user = null;
143
+
144
+ // State for storing the correct username
145
+ const [username, setUsername] = (0, _react.useState)('');
146
+
147
+ // Real training state variables (replacing fake persona state)
148
+ const [personaProgress, setPersonaProgress] = (0, _react.useState)(0);
149
+ const [personaStatus, setPersonaStatus] = (0, _react.useState)('Initializing...');
150
+ const [isPersonaComplete, setIsPersonaComplete] = (0, _react.useState)(false);
151
+ const [socketConnected, setSocketConnected] = (0, _react.useState)(false);
152
+ const [hasError, setHasError] = (0, _react.useState)(false);
153
+ const [userTraits, setUserTraits] = (0, _react.useState)(null);
154
+ const [inferenceResults, setInferenceResults] = (0, _react.useState)(null);
155
+ const [userToken, setUserToken] = (0, _react.useState)(null);
156
+ const [userInfo, setUserInfo] = (0, _react.useState)(null);
157
+ const [animatedDots, setAnimatedDots] = (0, _react.useState)('');
158
+ const socketRef = (0, _react.useRef)(null);
159
+ const dotsAnimationRef = (0, _react.useRef)(null);
160
+
161
+ // Existing user state
162
+ const [isExistingUser, setIsExistingUser] = (0, _react.useState)(false);
163
+ const [existingUserToken, setExistingUserToken] = (0, _react.useState)(null);
164
+ const [existingUserInfo, setExistingUserInfo] = (0, _react.useState)(null);
165
+
166
+ // Data scenario states
167
+ const [dataScenario, setDataScenario] = (0, _react.useState)(null);
168
+ const [dataDetails, setDataDetails] = (0, _react.useState)(null);
169
+ const [showDataWarning, setShowDataWarning] = (0, _react.useState)(false);
170
+
171
+ // ✅ NEW: Background training state
172
+ const [isBackgroundTrainingStarted, setIsBackgroundTrainingStarted] = (0, _react.useState)(false);
173
+ const [backgroundTrainingProgress, setBackgroundTrainingProgress] = (0, _react.useState)('');
174
+ const [backgroundSocketId, setBackgroundSocketId] = (0, _react.useState)(null);
175
+
176
+ // Function to store connected platforms (writes to BOTH keys for consistency)
177
+ const storeConnectedPlatform = async platformId => {
178
+ try {
179
+ const storedPlatforms = await _asyncStorage.default.getItem('connectedPlatforms');
180
+ let platforms = storedPlatforms ? JSON.parse(storedPlatforms) : [];
181
+
182
+ // Add platform if not already in the list
183
+ if (!platforms.includes(platformId)) {
184
+ platforms.push(platformId);
185
+ await _asyncStorage.default.setItem('connectedPlatforms', JSON.stringify(platforms));
186
+ await _asyncStorage.default.setItem('user_connected_platforms', JSON.stringify(platforms));
187
+ console.log('📱 Stored connected platform:', platformId, 'Total platforms:', platforms);
188
+ }
189
+ } catch (error) {
190
+ console.error('Error storing connected platform:', error);
191
+ }
192
+ };
193
+
194
+ // Function to remove connected platform from storage (removes from BOTH keys)
195
+ const removeConnectedPlatform = async platformId => {
196
+ try {
197
+ const storedPlatforms = await _asyncStorage.default.getItem('connectedPlatforms');
198
+ let platforms = storedPlatforms ? JSON.parse(storedPlatforms) : [];
199
+
200
+ // Remove platform from the list
201
+ platforms = platforms.filter(platform => platform !== platformId);
202
+ await _asyncStorage.default.setItem('connectedPlatforms', JSON.stringify(platforms));
203
+ await _asyncStorage.default.setItem('user_connected_platforms', JSON.stringify(platforms));
204
+ console.log('📱 Removed connected platform:', platformId, 'Remaining platforms:', platforms);
205
+ } catch (error) {
206
+ console.error('Error removing connected platform:', error);
207
+ }
208
+ };
209
+
210
+ // Function to handle disconnect confirmation
211
+ const handleDisconnectPlatform = (platformId, platformName) => {
212
+ _reactNative.Alert.alert('Disconnect Platform', `Are you sure you want to disconnect ${platformName}?`, [{
213
+ text: 'No',
214
+ style: 'cancel'
215
+ }, {
216
+ text: 'Yes',
217
+ style: 'destructive',
218
+ onPress: async () => {
219
+ try {
220
+ // Update local state to show disconnected
221
+ setConnectionStatuses(prev => ({
222
+ ...prev,
223
+ [platformId]: 'disconnected'
224
+ }));
225
+ setConnections(prev => {
226
+ const newConnections = {
227
+ ...prev
228
+ };
229
+ delete newConnections[platformId];
230
+ return newConnections;
231
+ });
232
+ setPlatformToggles(prev => ({
233
+ ...prev,
234
+ [platformId]: false
235
+ }));
236
+
237
+ // Remove from storage
238
+ await removeConnectedPlatform(platformId);
239
+
240
+ // Call the disconnect function from the hook
241
+ await disconnectPlatform();
242
+ console.log('🔌 Disconnected platform:', platformId);
243
+ } catch (error) {
244
+ console.error('Error disconnecting platform:', error);
245
+ }
246
+ }
247
+ }]);
248
+ };
249
+
250
+ // Function to start animated dots
251
+ const startDotsAnimation = () => {
252
+ if (dotsAnimationRef.current) {
253
+ clearInterval(dotsAnimationRef.current);
254
+ }
255
+ let dotCount = 0;
256
+ dotsAnimationRef.current = setInterval(() => {
257
+ dotCount = (dotCount + 1) % 4; // 0, 1, 2, 3, then back to 0
258
+ if (dotCount === 0) {
259
+ setAnimatedDots('');
260
+ } else {
261
+ setAnimatedDots('.'.repeat(dotCount));
262
+ }
263
+ }, 500); // Change every 500ms
264
+ };
265
+
266
+ // Function to stop animated dots
267
+ const stopDotsAnimation = () => {
268
+ if (dotsAnimationRef.current) {
269
+ clearInterval(dotsAnimationRef.current);
270
+ dotsAnimationRef.current = null;
271
+ }
272
+ setAnimatedDots('');
273
+ };
274
+
275
+ // Split platforms into main and additional
276
+ const mainPlatforms = [{
277
+ id: 'pinterest',
278
+ name: 'Pinterest',
279
+ color: '#E60023'
280
+ }, {
281
+ id: 'youtube',
282
+ name: 'YouTube',
283
+ color: '#FFFFFF'
284
+ }, {
285
+ id: 'linkedin',
286
+ name: 'LinkedIn',
287
+ color: '#0077B5'
288
+ }];
289
+ const additionalPlatforms = [{
290
+ id: 'reddit',
291
+ name: 'Reddit',
292
+ color: '#FFFFFF'
293
+ }, {
294
+ id: 'gmail',
295
+ name: 'Gmail',
296
+ color: '#EA4335'
297
+ }, {
298
+ id: 'chatgpt',
299
+ name: 'ChatGPT',
300
+ color: '#10A37F'
301
+ }];
302
+
303
+ // Keep the original platforms array for compatibility
304
+ const platforms = [...mainPlatforms, ...additionalPlatforms];
305
+
306
+ // const {
307
+ // connectPlatform,
308
+ // disconnectPlatform,
309
+ // getConnectionStatus,
310
+ // isConnecting,
311
+ // } = useConnections(); // Hook not available
312
+ const connectPlatform = async () => {};
313
+ const disconnectPlatform = async () => {};
314
+ const getConnectionStatus = () => 'disconnected';
315
+ const isConnecting = false;
316
+ const isConnected = () => false;
317
+
318
+ // Track connection statuses and currently connecting platform
319
+ const [connectionStatuses, setConnectionStatuses] = (0, _react.useState)({});
320
+ const [connectingPlatform, setConnectingPlatform] = (0, _react.useState)(null);
321
+
322
+ // Function to get the platform icon based on platform ID
323
+ const getPlatformIcon = platformId => {
324
+ return (0, _assetRegistry.getUniversalOnboardingIcon)(platformId);
325
+ };
326
+
327
+ // Track if the modal has ever been visible to prevent initial onClose call
328
+ const hasBeenVisibleRef = (0, _react.useRef)(false);
329
+
330
+ // Store onClose in a ref to avoid dependency issues in useEffect
331
+ const onCloseRef = (0, _react.useRef)(onClose);
332
+ (0, _react.useEffect)(() => {
333
+ onCloseRef.current = onClose;
334
+ }, [onClose]);
335
+ (0, _react.useEffect)(() => {
336
+ if (visible) {
337
+ hasBeenVisibleRef.current = true; // Mark that modal has been visible
338
+ isCompletingRef.current = false; // Reset flag when becoming visible
339
+
340
+ // 🔧 FIX: Reset backdrop opacity before showing to prevent stale state
341
+ backdropOpacity.setValue(0);
342
+ setModalVisible(true);
343
+ loadInitialStatus();
344
+ // Fade in backdrop (slide is handled by Modal's animationType="slide")
345
+ // Small delay to ensure modal is mounted before animating backdrop
346
+ requestAnimationFrame(() => {
347
+ _reactNative.Animated.timing(backdropOpacity, {
348
+ toValue: 1,
349
+ duration: 300,
350
+ useNativeDriver: true
351
+ }).start();
352
+ });
353
+ const subscription = _reactNative.Linking.addEventListener('url', handleUrl);
354
+ return () => {
355
+ subscription.remove();
356
+ };
357
+ } else if (hasBeenVisibleRef.current && !isCompletingRef.current) {
358
+ // Only animate out if NOT completing - prevents flicker during successful completion
359
+ // Fade out backdrop (slide is handled by Modal's animationType="slide")
360
+ _reactNative.Animated.timing(backdropOpacity, {
361
+ toValue: 0,
362
+ duration: 250,
363
+ useNativeDriver: true
364
+ }).start(() => {
365
+ // Use a timeout to prevent animation state updates during unmount
366
+ setTimeout(() => {
367
+ var _onCloseRef$current;
368
+ setModalVisible(false);
369
+ (_onCloseRef$current = onCloseRef.current) === null || _onCloseRef$current === void 0 || _onCloseRef$current.call(onCloseRef); // Call onClose from ref to avoid stale closure
370
+ }, 16);
371
+ });
372
+ } else if (hasBeenVisibleRef.current && isCompletingRef.current) {
373
+ // If completing, hide modal immediately without any animation or delay
374
+ setModalVisible(false);
375
+ // Don't call onClose() when completing - let parent handle the navigation
376
+ isCompletingRef.current = false; // Reset for next time
377
+ }
378
+ }, [visible]); // Removed onClose from dependency array - using ref instead
379
+
380
+ // Cleanup socket connection and dots animation when component unmounts or becomes invisible
381
+ (0, _react.useEffect)(() => {
382
+ return () => {
383
+ if (socketRef.current) {
384
+ console.log('🔌 Cleaning up socket connection...');
385
+ socketRef.current.disconnect();
386
+ socketRef.current = null;
387
+ }
388
+ stopDotsAnimation();
389
+ };
390
+ }, [visible]);
391
+
392
+ // Set up deep link listener for OAuth callbacks
393
+ const handleUrl = (0, _react.useCallback)(({
394
+ url
395
+ }) => {
396
+ if ((0, _platformAuthService.isOAuthCallback)(url)) {
397
+ handleOAuthCallback(url);
398
+ }
399
+ }, []);
400
+
401
+ // Load user data and authentication token when modal becomes visible
402
+ // Also implements cached login - skip to consent for returning users with valid JWT
403
+ (0, _react.useEffect)(() => {
404
+ const loadUserData = async () => {
405
+ try {
406
+ // Check for existing user info first
407
+ const existingToken = await _asyncStorage.default.getItem('existing_user_token');
408
+ const existingInfo = await _asyncStorage.default.getItem('existing_user_info');
409
+ if (existingToken && existingInfo) {
410
+ console.log('🔍 Found existing user info - user wants to add more data');
411
+ setIsExistingUser(true);
412
+ setExistingUserToken(existingToken);
413
+ setExistingUserInfo(JSON.parse(existingInfo));
414
+
415
+ // Clear the temporary storage
416
+ await _asyncStorage.default.removeItem('existing_user_token');
417
+ await _asyncStorage.default.removeItem('existing_user_info');
418
+ }
419
+
420
+ // Use simplified JWT storage
421
+ const token = await (0, _jwtStorageService.getJWT)();
422
+ setUserToken(token);
423
+ if (token) {
424
+ var _user$email;
425
+ // Use provided username or get stored username
426
+ const storedUsername = await (0, _authService.getOnairosUsername)();
427
+ const storedEmail = await _asyncStorage.default.getItem('user_email');
428
+ const fallbackUsername = storedUsername || (user === null || user === void 0 || (_user$email = user.email) === null || _user$email === void 0 ? void 0 : _user$email.split('@')[0]) || (user === null || user === void 0 ? void 0 : user.name) || 'mobile_user';
429
+ console.log('🔍 Using username for training:', fallbackUsername);
430
+ setUserInfo({
431
+ username: fallbackUsername,
432
+ email: storedEmail || (user === null || user === void 0 ? void 0 : user.email) || null,
433
+ id: null // Will be filled by backend during training
434
+ });
435
+ setUsername(fallbackUsername);
436
+
437
+ // 🔑 CACHED LOGIN: Check if this is a returning user with a valid token
438
+ // Skip directly to consent screen like other normal logins
439
+ if (storedEmail && step === 'welcome' && !primaryAuthOnly) {
440
+ console.log('🔑 [CACHED LOGIN] Found valid token for user:', storedEmail);
441
+
442
+ // Check local storage AND server for connected platforms
443
+ const connectedPlatformsJson = await _asyncStorage.default.getItem('connectedPlatforms');
444
+ const cachedConnections = connectedPlatformsJson ? JSON.parse(connectedPlatformsJson) : [];
445
+
446
+ // Also fetch server-side connections for returning users
447
+ let serverConnections = [];
448
+ try {
449
+ const serverAccounts = await (0, _connectedAccountsService.getConnectedAccountsLookup)(storedEmail);
450
+ serverConnections = serverAccounts.map(a => a.platform.toLowerCase());
451
+ console.log('🔑 [CACHED LOGIN] Server connections:', serverConnections);
452
+ } catch (err) {
453
+ console.warn('🔑 [CACHED LOGIN] Server lookup failed, using local only:', err);
454
+ }
455
+
456
+ // Merge local + server connections (deduplicated)
457
+ const allConnections = Array.from(new Set([...cachedConnections, ...serverConnections]));
458
+
459
+ // Sync merged connections back to local storage
460
+ if (allConnections.length > 0) {
461
+ await _asyncStorage.default.setItem('connectedPlatforms', JSON.stringify(allConnections));
462
+ await _asyncStorage.default.setItem('user_connected_platforms', JSON.stringify(allConnections));
463
+ }
464
+ if (allConnections.length > 0) {
465
+ // User has existing connections - skip to consent screen
466
+ console.log('🔑 [CACHED LOGIN] User has existing connections:', allConnections);
467
+ console.log('🔑 [CACHED LOGIN] Skipping to consent screen');
468
+ setUserEmail(storedEmail);
469
+ setIsReturningUser(true);
470
+ setReturningUserConnections(allConnections);
471
+ setStep('consent');
472
+ } else {
473
+ // User has token but no connections - skip to platforms
474
+ console.log('🔑 [CACHED LOGIN] User authenticated but no connections - skipping to platforms');
475
+ setUserEmail(storedEmail);
476
+ setStep('platforms');
477
+ }
478
+ }
479
+ }
480
+ } catch (error) {
481
+ var _user$email2;
482
+ console.error('Error loading user data:', error);
483
+ // Fallback user info
484
+ const fallbackUsername = (user === null || user === void 0 || (_user$email2 = user.email) === null || _user$email2 === void 0 ? void 0 : _user$email2.split('@')[0]) || (user === null || user === void 0 ? void 0 : user.name) || 'mobile_user';
485
+ setUserInfo({
486
+ username: fallbackUsername,
487
+ email: (user === null || user === void 0 ? void 0 : user.email) || null,
488
+ id: null
489
+ });
490
+ setUsername(fallbackUsername);
491
+ }
492
+ };
493
+ if (visible) {
494
+ loadUserData();
495
+ }
496
+ }, [visible, user, step, primaryAuthOnly]);
497
+ const loadInitialStatus = async () => {
498
+ try {
499
+ // Get the stored Onairos username first
500
+ const storedUsername = await (0, _authService.getOnairosUsername)();
501
+ const fallbackUsername = (user === null || user === void 0 ? void 0 : user.email) || (user === null || user === void 0 ? void 0 : user.name) || `user_${Math.floor(Math.random() * 10000)}`;
502
+ const finalUsername = storedUsername || fallbackUsername;
503
+ console.log('🔍 Loading username for data connections:', {
504
+ storedUsername,
505
+ fallbackUsername,
506
+ finalUsername
507
+ });
508
+ setUsername(finalUsername);
509
+
510
+ // Initialize connection statuses
511
+ const connectionStatus = await getConnectionStatus();
512
+ console.log('Initial connection status:', connectionStatus);
513
+
514
+ // Update the main connections state
515
+ setConnections(connectionStatus);
516
+
517
+ // Convert connections object to status strings
518
+ const statuses = {};
519
+ Object.keys(connectionStatus).forEach(platform => {
520
+ var _connectionStatus$pla;
521
+ statuses[platform] = (_connectionStatus$pla = connectionStatus[platform]) !== null && _connectionStatus$pla !== void 0 && _connectionStatus$pla.connected ? 'connected' : 'disconnected';
522
+ });
523
+ setConnectionStatuses(statuses);
524
+
525
+ // Initialize platform toggles based on connection statuses
526
+ const toggles = {};
527
+ Object.keys(connectionStatus).forEach(platform => {
528
+ var _connectionStatus$pla2;
529
+ toggles[platform] = ((_connectionStatus$pla2 = connectionStatus[platform]) === null || _connectionStatus$pla2 === void 0 ? void 0 : _connectionStatus$pla2.connected) || false;
530
+ });
531
+ setPlatformToggles(toggles);
532
+ console.log('Connection statuses set:', statuses);
533
+ console.log('Platform toggles set:', toggles);
534
+ } catch (error) {
535
+ console.error('Error loading initial connection status:', error);
536
+ // Set empty objects as fallback
537
+ setConnections({});
538
+ setConnectionStatuses({});
539
+ setPlatformToggles({});
540
+
541
+ // Still set a fallback username even if other loading fails
542
+ const fallbackUsername = (user === null || user === void 0 ? void 0 : user.email) || (user === null || user === void 0 ? void 0 : user.name) || `user_${Math.floor(Math.random() * 10000)}`;
543
+ setUsername(fallbackUsername);
544
+ }
545
+ };
546
+ const handleClose = () => {
547
+ const currentlyCompleting = isCompletingRef.current; // Capture ref's current value
548
+
549
+ // Fade out backdrop (slide out is handled by Modal's animationType="slide")
550
+ _reactNative.Animated.timing(backdropOpacity, {
551
+ toValue: 0,
552
+ duration: 250,
553
+ useNativeDriver: true
554
+ }).start(() => {
555
+ // Small delay before closing modal to ensure animation completes fully
556
+ setTimeout(() => {
557
+ setModalVisible(false);
558
+ if (!currentlyCompleting) {
559
+ // Use the captured value
560
+ onClose();
561
+ }
562
+ // Do NOT reset isCompletingRef.current here. The useEffect watching props.visible is responsible for that.
563
+ }, 100);
564
+ });
565
+ };
566
+
567
+ // ============================================
568
+ // ENOCH-STYLE FLOW HANDLERS
569
+ // ============================================
570
+
571
+ const handleGetStarted = () => {
572
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
573
+
574
+ // 🍎 Apple Sign-In flow: Skip signin step since user already authenticated
575
+ if (primaryAuthOnly) {
576
+ console.log('🍎 Get Started pressed (Apple user) - skipping signin, going to platforms');
577
+ setStep('platforms');
578
+ return;
579
+ }
580
+ console.log('🚀 Get Started pressed - moving to signin');
581
+ setStep('signin');
582
+ };
583
+ const handleEmailSubmit = async emailInput => {
584
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
585
+ setAuthLoading(true);
586
+ setAuthError('');
587
+ try {
588
+ // Check for reviewer bypass
589
+ if (emailInput === 'reviewer@bypass.com') {
590
+ console.log('🔍 Reviewer bypass detected');
591
+ await _asyncStorage.default.setItem('onairos_user', 'true');
592
+ // Note: Reviewer bypass uses a placeholder token
593
+ // Store a valid-looking placeholder JWT for reviewer bypass
594
+ await (0, _jwtStorageService.storeJWT)('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXZpZXdlciI6dHJ1ZSwiaWF0IjoxNzA0MDY3MjAwfQ.reviewer-bypass-signature-placeholder');
595
+ setUserEmail(emailInput);
596
+ setStep('platforms');
597
+ setAuthLoading(false);
598
+ return;
599
+ }
600
+
601
+ // Check for test bypass - skip to verification screen without sending email
602
+ if (emailInput === 'test@bypass.com') {
603
+ console.log('🧪 Test bypass detected - skipping to verification screen');
604
+ setUserEmail('test@example.com');
605
+ setStep('verification');
606
+ setAuthLoading(false);
607
+ return;
608
+ }
609
+ console.log('📧 Sending verification code to:', emailInput);
610
+
611
+ // Use the email verification API
612
+ const result = await (0, _authService.sendEmailVerificationCode)(emailInput);
613
+ if (result.success) {
614
+ console.log('✅ Verification code sent successfully');
615
+ setUserEmail(emailInput);
616
+ setStep('verification');
617
+ } else {
618
+ console.log('❌ Failed to send verification code:', result.message);
619
+ setAuthError(result.message || 'Failed to send verification code. Please try again.');
620
+ }
621
+ } catch (error) {
622
+ console.error('❌ Error sending verification code:', error);
623
+ setAuthError('Network error. Please check your connection and try again.');
624
+ } finally {
625
+ setAuthLoading(false);
626
+ }
627
+ };
628
+ const handleGoogleSignIn = async () => {
629
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
630
+ setAuthLoading(true);
631
+ setAuthError('');
632
+ try {
633
+ console.log('🔗 Initiating Google Sign-In');
634
+
635
+ // Use the Google Auth Service to trigger native Google Sign-In
636
+ const result = await (0, _googleAuthService.signInWithGoogle)();
637
+ if (result.success && result.user) {
638
+ console.log('✅ Google Sign-In successful:', result.user.email);
639
+ console.log('🔍 Is new user?', result.isNewUser);
640
+
641
+ // Store the user email for later use
642
+ setUserEmail(result.user.email);
643
+
644
+ // Store username in state
645
+ const derivedUsername = result.user.username || result.user.email.split('@')[0];
646
+ setUsername(derivedUsername);
647
+
648
+ // ✅ FIX: Check if user is returning (already has an account)
649
+ if (result.isNewUser === false) {
650
+ console.log('👤 Returning user detected via Google Sign-In - checking for existing connections');
651
+ try {
652
+ // Try to fetch existing connected accounts
653
+ const existingConnections = await (0, _connectedAccountsService.getConnectedAccountsSmart)(result.user.email, result.user.id, derivedUsername);
654
+ if (existingConnections && existingConnections.length > 0) {
655
+ console.log(`✅ Found ${existingConnections.length} existing connections - skipping to consent`);
656
+ // Store connections for the consent screen and mark as returning user
657
+ setIsReturningUser(true);
658
+ setReturningUserConnections(existingConnections.map(c => c.platform));
659
+ setStep('consent');
660
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.SUCCESS);
661
+ return;
662
+ } else {
663
+ console.log('ℹ️ No existing connections found - proceeding to platforms step');
664
+ }
665
+ } catch (connError) {
666
+ console.log('⚠️ Could not fetch existing connections, proceeding to platforms:', connError);
667
+ }
668
+ }
669
+
670
+ // New user or no existing connections - proceed to platforms step
671
+ setStep('platforms');
672
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.SUCCESS);
673
+ } else if (result.cancelled) {
674
+ // User cancelled - just return without error
675
+ console.log('ℹ️ Google Sign-In cancelled by user');
676
+ } else {
677
+ // Show error message
678
+ setAuthError(result.message || 'Google Sign-In failed. Please try again.');
679
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.ERROR);
680
+ }
681
+ } catch (error) {
682
+ console.error('❌ Google Sign-In error:', error);
683
+ setAuthError(error.message || 'Google Sign-In failed. Please try again.');
684
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.ERROR);
685
+ setAuthError('Google Sign-In failed. Please try again.');
686
+ } finally {
687
+ setAuthLoading(false);
688
+ }
689
+ };
690
+ const handleCodeSubmit = async code => {
691
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
692
+ setAuthLoading(true);
693
+ setAuthError('');
694
+ try {
695
+ // Test bypass - any code works for test@example.com
696
+ if (userEmail === 'test@example.com') {
697
+ console.log('🧪 Test bypass - skipping code verification, going to platforms');
698
+ setStep('platforms');
699
+ setAuthLoading(false);
700
+ return;
701
+ }
702
+ console.log('🔍 Verifying email code:', userEmail, code);
703
+ console.log('🔍 App name:', AppName);
704
+ const result = await (0, _authService.confirmEmailVerificationCode)(userEmail, code);
705
+ if (result.success) {
706
+ var _result$existingUserD, _result$existingUserD2, _result$existingUserD3, _result$enochInstruct;
707
+ console.log('✅ Email verification successful');
708
+ console.log('🔍 Checking for returning user data...', {
709
+ isNewUser: result.isNewUser,
710
+ flowType: result.flowType,
711
+ hasExistingData: (_result$existingUserD = result.existingUserData) === null || _result$existingUserD === void 0 ? void 0 : _result$existingUserD.hasExistingData,
712
+ connectionsCount: ((_result$existingUserD2 = result.existingUserData) === null || _result$existingUserD2 === void 0 || (_result$existingUserD2 = _result$existingUserD2.connections) === null || _result$existingUserD2 === void 0 ? void 0 : _result$existingUserD2.length) || 0
713
+ });
714
+
715
+ // Check if this is a returning user with existing connections
716
+ const isReturning = result.isNewUser === false || result.flowType === 'returning_user';
717
+ // 🔧 FIX: Ensure connections is always an array to prevent crash
718
+ const rawConnections = (_result$existingUserD3 = result.existingUserData) === null || _result$existingUserD3 === void 0 ? void 0 : _result$existingUserD3.connections;
719
+ const existingConnections = Array.isArray(rawConnections) ? rawConnections : [];
720
+
721
+ // Extract platform names from connections
722
+ // 🔧 FIX: Add null check for each connection item
723
+ const connectedPlatformNames = existingConnections.filter(conn => conn && (conn.hasData || conn.status === 'active')).map(conn => conn === null || conn === void 0 ? void 0 : conn.platform).filter(Boolean); // Remove any undefined platform names
724
+
725
+ console.log('🔍 Returning user check:', {
726
+ isReturning,
727
+ connectedPlatformNames,
728
+ showWelcomeBack: (_result$enochInstruct = result.enochInstructions) === null || _result$enochInstruct === void 0 ? void 0 : _result$enochInstruct.showWelcomeBack
729
+ });
730
+ if (isReturning && connectedPlatformNames.length > 0) {
731
+ // Returning user with connected platforms - skip to consent screen
732
+ console.log('👋 Welcome back! User has existing connections, skipping to consent screen');
733
+ setIsReturningUser(true);
734
+ setReturningUserConnections(connectedPlatformNames);
735
+ setStep('consent');
736
+ } else {
737
+ // New user or returning user without connections - show platform connection
738
+ console.log('🆕 New user or no existing connections, showing platform connection screen');
739
+ setIsReturningUser(false);
740
+ setReturningUserConnections([]);
741
+ setStep('platforms');
742
+ }
743
+ } else {
744
+ console.log('❌ Email verification failed:', result.message);
745
+ setAuthError(result.message || 'Invalid verification code. Please try again.');
746
+ }
747
+ } catch (error) {
748
+ console.error('❌ Error verifying email code:', error);
749
+ setAuthError('Verification failed. Please try again.');
750
+ } finally {
751
+ setAuthLoading(false);
752
+ }
753
+ };
754
+ const handleBackToSignIn = () => {
755
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
756
+ setAuthError('');
757
+ setStep('signin');
758
+ };
759
+
760
+ // Handle logout - clears token and navigates to login page (not close overlay)
761
+ const handleLogout = async () => {
762
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
763
+ console.log('👋 Logout requested - clearing tokens and navigating to login');
764
+ try {
765
+ // Clear all auth tokens AND SDK-specific storage keys
766
+ await _asyncStorage.default.multiRemove(['sdk_jwt_token', 'onairos_jwt_token', 'user_email', 'onairos_username', 'auth_method', 'onairos_user', 'connectedPlatforms', 'user_connected_platforms', 'platform_account_details']);
767
+
768
+ // Clear LLM and LinkedIn connection keys
769
+ const llmPlatforms = ['chatgpt', 'claude', 'gemini', 'grok'];
770
+ for (const llm of llmPlatforms) {
771
+ await _asyncStorage.default.removeItem(`@onairos:llm_connected:${llm}`);
772
+ }
773
+ await _asyncStorage.default.removeItem('@onairos:linkedin_connected');
774
+
775
+ // Clear state
776
+ setUserToken(null);
777
+ setUserInfo(null);
778
+ setUserEmail('');
779
+ setIsReturningUser(false);
780
+ setReturningUserConnections([]);
781
+
782
+ // Navigate to signin step (NOT close the overlay)
783
+ setAuthError('');
784
+ setStep('signin');
785
+ console.log('✅ Logout complete - user is now on login page');
786
+ } catch (error) {
787
+ console.error('❌ Error during logout:', error);
788
+ // Still navigate to signin even on error
789
+ setStep('signin');
790
+ }
791
+ };
792
+ const handleResendCode = async () => {
793
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
794
+ setAuthLoading(true);
795
+ setAuthError('');
796
+ try {
797
+ console.log('🔄 Resending verification code to:', userEmail);
798
+ const result = await (0, _authService.sendEmailVerificationCode)(userEmail);
799
+ if (result.success) {
800
+ console.log('✅ Verification code resent successfully');
801
+ } else {
802
+ setAuthError(result.message || 'Failed to resend verification code.');
803
+ }
804
+ } catch (error) {
805
+ console.error('❌ Error resending verification code:', error);
806
+ setAuthError('Network error. Please try again.');
807
+ } finally {
808
+ setAuthLoading(false);
809
+ }
810
+ };
811
+ const handlePlatformUpdate = async connectedPlatforms => {
812
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.SUCCESS);
813
+ console.log('✅ Onboarding complete! Connected platforms:', connectedPlatforms);
814
+
815
+ // 🚀 OPTIMIZATION: Load auth data in parallel (fast!)
816
+ try {
817
+ const [token, email, storedUsername] = await Promise.all([(0, _authService.getAuthToken)(), _asyncStorage.default.getItem('user_email'), (0, _authService.getOnairosUsername)()]);
818
+ console.log('🔑 [SDK] Auth data retrieved in parallel');
819
+ console.log('🔑 [SDK] Token available:', token ? `${token.substring(0, 20)}...` : 'NO');
820
+ console.log('📧 [SDK] Email available:', email || 'NO');
821
+
822
+ // Set completing flag before closing
823
+ isCompletingRef.current = true;
824
+
825
+ // 🍎 FIX: Always include email if available (critical for Apple sign-in)
826
+ // Apple auth may not have SDK token, but app needs email for platform sync
827
+ const userData = {
828
+ connectedPlatforms
829
+ };
830
+ if (email) {
831
+ userData.email = email;
832
+ userData.username = storedUsername || email.split('@')[0];
833
+ }
834
+ if (token && email) {
835
+ // Full data available - include token
836
+ console.log('✅ [SDK] Calling onComplete with token and user data');
837
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(_api.API_CONFIG.BASE_URL, token, userData));
838
+ } else if (email) {
839
+ // 🍎 Apple sign-in case: Email available but no SDK token
840
+ // App can still sync platforms using email
841
+ console.log('🍎 [SDK] Calling onComplete with email (no SDK token - Apple auth)');
842
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(_api.API_CONFIG.BASE_URL, '', userData));
843
+ } else {
844
+ // Fallback: No email available
845
+ console.warn('⚠️ [SDK] No email found - calling onComplete with limited data');
846
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(_api.API_CONFIG.BASE_URL, '', userData));
847
+ }
848
+ } catch (error) {
849
+ console.error('❌ [SDK] Error retrieving auth data for onComplete:', error);
850
+ // Still close the modal even on error - try to get email one more time
851
+ const fallbackEmail = await _asyncStorage.default.getItem('user_email').catch(() => null);
852
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(_api.API_CONFIG.BASE_URL, '', {
853
+ connectedPlatforms,
854
+ ...(fallbackEmail && {
855
+ email: fallbackEmail
856
+ })
857
+ }));
858
+ }
859
+
860
+ // NOTE: Modal closes when parent sets visible={false} after onComplete finishes
861
+ // Do NOT call handleClose() here - let the loading animation stay visible
862
+ console.log('✅ [SDK] onComplete finished - waiting for parent to close modal');
863
+ };
864
+ const handlePlatformSkip = async () => {
865
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
866
+ console.log('⏭️ Skipping platform connections');
867
+
868
+ // Even when skipping, pass back the token so the app can register the user
869
+ try {
870
+ // 🚀 OPTIMIZATION: Load data in parallel (fast!)
871
+ const [token, email, storedUsername] = await Promise.all([(0, _authService.getAuthToken)(), _asyncStorage.default.getItem('user_email'), (0, _authService.getOnairosUsername)()]);
872
+
873
+ // Set completing flag before closing
874
+ isCompletingRef.current = true;
875
+ if (token && email) {
876
+ console.log('✅ [SDK] User skipped platforms - still calling onComplete with auth data');
877
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(_api.API_CONFIG.BASE_URL, token, {
878
+ email,
879
+ connectedPlatforms: [],
880
+ username: storedUsername || email.split('@')[0],
881
+ skipped: true
882
+ }));
883
+ } else {
884
+ console.warn('⚠️ [SDK] User skipped - no auth data available');
885
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(_api.API_CONFIG.BASE_URL, '', {
886
+ connectedPlatforms: [],
887
+ skipped: true
888
+ }));
889
+ }
890
+ } catch (error) {
891
+ console.error('❌ [SDK] Error during skip:', error);
892
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(_api.API_CONFIG.BASE_URL, '', {
893
+ connectedPlatforms: [],
894
+ skipped: true
895
+ }));
896
+ }
897
+
898
+ // NOTE: Modal closes when parent sets visible={false} after onComplete finishes
899
+ console.log('✅ [SDK] Skip complete - waiting for parent to close modal');
900
+ };
901
+ const handleReviewerBypass = async () => {
902
+ console.log('🔍 Reviewer bypass triggered from platforms');
903
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
904
+ try {
905
+ await _asyncStorage.default.setItem('onairos_user', 'true');
906
+ // Note: Reviewer bypass uses a placeholder token
907
+ await (0, _jwtStorageService.storeJWT)('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXZpZXdlciI6dHJ1ZSwiaWF0IjoxNzA0MDY3MjAwfQ.reviewer-bypass-signature-placeholder');
908
+ console.log('✅ Stored reviewer bypass markers');
909
+ handleClose();
910
+ } catch (error) {
911
+ console.error('❌ Failed to store reviewer bypass:', error);
912
+ handleClose();
913
+ }
914
+ };
915
+
916
+ // ============================================
917
+ // END ENOCH-STYLE FLOW HANDLERS
918
+ // ============================================
919
+
920
+ const handleConnectPlatform = async platformId => {
921
+ // Trigger haptic feedback when connect button is pressed
922
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
923
+ setConnectingPlatform(platformId);
924
+ try {
925
+ // Check if the platform has a native SDK
926
+ if ((0, _platformAuthService.hasNativeSDK)(platformId)) {
927
+ // Use native SDK authentication
928
+ setCurrentPlatform(platformId);
929
+ const success = await (0, _platformAuthService.initiateNativeAuth)(platformId, username);
930
+ if (success) {
931
+ // Update connections state
932
+ setConnections(prev => ({
933
+ ...prev,
934
+ [platformId]: {
935
+ userName: username,
936
+ connected: true
937
+ }
938
+ }));
939
+
940
+ // Update platform toggles
941
+ setPlatformToggles(prev => ({
942
+ ...prev,
943
+ [platformId]: true
944
+ }));
945
+
946
+ // Update connection statuses
947
+ setConnectionStatuses(prev => ({
948
+ ...prev,
949
+ [platformId]: 'connected'
950
+ }));
951
+
952
+ // Store the connected platform
953
+ await storeConnectedPlatform(platformId);
954
+ }
955
+ } else {
956
+ // For other platforms, use the web OAuth flow
957
+ setCurrentPlatform(platformId);
958
+ const oauthUrl = await (0, _platformAuthService.initiateOAuth)(platformId, username);
959
+ if (oauthUrl) {
960
+ setOauthUrl(oauthUrl);
961
+ setStep('oauth');
962
+ }
963
+ }
964
+ } catch (error) {
965
+ console.error(`Error connecting to ${platformId}:`, error);
966
+ } finally {
967
+ setConnectingPlatform(null);
968
+ }
969
+ };
970
+ const togglePlatform = (0, _react.useCallback)(async platformId => {
971
+ // If toggling on, initiate the OAuth flow for the platform
972
+ if (!platformToggles[platformId]) {
973
+ try {
974
+ // Special case for Instagram which uses the existing flow
975
+ if (platformId === 'instagram') {
976
+ setPlatformToggles(prev => ({
977
+ ...prev,
978
+ [platformId]: !prev[platformId]
979
+ }));
980
+ setConnections(prev => ({
981
+ ...prev,
982
+ [platformId]: {
983
+ userName: `${platformId}_user`,
984
+ connected: true
985
+ }
986
+ }));
987
+ // Store the connected platform
988
+ await storeConnectedPlatform(platformId);
989
+ return;
990
+ }
991
+
992
+ // ChatGPT/LLM: Full backend implementation - send data directly to backend
993
+ if (platformId === 'chatgpt' || platformId === 'llm') {
994
+ console.log('🤖 Handling LLM/ChatGPT connection - sending to backend...');
995
+
996
+ // In production, this would trigger OAuth flow to get actual ChatGPT data
997
+ // For now, using mock data structure
998
+ const llmData = {
999
+ userId: email || username,
1000
+ email: email || `${username}@temp.com`,
1001
+ appName: AppName,
1002
+ timestamp: Date.now(),
1003
+ data: {
1004
+ conversations: [],
1005
+ chatHistory: [],
1006
+ preferences: {},
1007
+ customData: {}
1008
+ },
1009
+ // These would come from actual OAuth flow
1010
+ accessToken: undefined,
1011
+ refreshToken: undefined,
1012
+ tokenExpiry: undefined
1013
+ };
1014
+
1015
+ // Send LLM data directly to backend for processing and storage
1016
+ const result = await (0, _llmDataStorage.sendLLMDataToBackend)(llmData);
1017
+ if (result.success) {
1018
+ console.log('✅ Backend received and stored LLM data');
1019
+ console.log('📝 Connection ID:', result.connectionId);
1020
+
1021
+ // Update platform toggle state
1022
+ setPlatformToggles(prev => ({
1023
+ ...prev,
1024
+ [platformId]: true
1025
+ }));
1026
+
1027
+ // Update connections state
1028
+ setConnections(prev => ({
1029
+ ...prev,
1030
+ [platformId]: {
1031
+ userName: username,
1032
+ connected: true,
1033
+ connectionId: result.connectionId,
1034
+ storedInBackend: true
1035
+ }
1036
+ }));
1037
+
1038
+ // Store the connected platform
1039
+ await storeConnectedPlatform(platformId);
1040
+ console.log(`✅ ${platformId} successfully connected and stored in backend`);
1041
+ } else {
1042
+ throw new Error(`Failed to send LLM data to backend: ${result.message}`);
1043
+ }
1044
+ return;
1045
+ }
1046
+
1047
+ // Check if the platform has a native SDK
1048
+ if ((0, _platformAuthService.hasNativeSDK)(platformId)) {
1049
+ // Use native SDK authentication
1050
+ setCurrentPlatform(platformId);
1051
+ const success = await (0, _platformAuthService.initiateNativeAuth)(platformId, username);
1052
+ if (success) {
1053
+ // Update connections state
1054
+ setConnections(prev => ({
1055
+ ...prev,
1056
+ [platformId]: {
1057
+ userName: username,
1058
+ connected: true
1059
+ }
1060
+ }));
1061
+
1062
+ // Update platform toggles
1063
+ setPlatformToggles(prev => ({
1064
+ ...prev,
1065
+ [platformId]: true
1066
+ }));
1067
+
1068
+ // Store the connected platform
1069
+ await storeConnectedPlatform(platformId);
1070
+ }
1071
+ return;
1072
+ }
1073
+
1074
+ // For other platforms, use the web OAuth flow
1075
+ setCurrentPlatform(platformId);
1076
+ const oauthUrl = await (0, _platformAuthService.initiateOAuth)(platformId, username);
1077
+
1078
+ // If oauthUrl is null, it means we should use native SDK (which should have been caught above)
1079
+ if (oauthUrl) {
1080
+ setOauthUrl(oauthUrl);
1081
+ setStep('oauth');
1082
+ }
1083
+ } catch (error) {
1084
+ console.error(`Error initiating OAuth for ${platformId}:`, error);
1085
+ // If there's an error, don't toggle the platform
1086
+ return;
1087
+ }
1088
+ } else {
1089
+ // If toggling off, just update the state
1090
+ setPlatformToggles(prev => ({
1091
+ ...prev,
1092
+ [platformId]: !prev[platformId]
1093
+ }));
1094
+
1095
+ // Remove connection
1096
+ setConnections(prev => {
1097
+ const newConnections = {
1098
+ ...prev
1099
+ };
1100
+ delete newConnections[platformId];
1101
+ return newConnections;
1102
+ });
1103
+ }
1104
+ }, [platformToggles, username]);
1105
+
1106
+ /**
1107
+ * Handles OAuth callback URLs
1108
+ */
1109
+ const handleOAuthCallback = (0, _react.useCallback)(url => {
1110
+ try {
1111
+ // Extract the authorization code from the URL
1112
+ const parsedUrl = new URL(url);
1113
+ const code = parsedUrl.searchParams.get('code');
1114
+ const platform = parsedUrl.searchParams.get('platform') || currentPlatform;
1115
+ if (code && platform) {
1116
+ // Update connections state
1117
+ setConnections(prev => ({
1118
+ ...prev,
1119
+ [platform]: {
1120
+ userName: username,
1121
+ connected: true
1122
+ }
1123
+ }));
1124
+
1125
+ // Update platform toggles
1126
+ setPlatformToggles(prev => ({
1127
+ ...prev,
1128
+ [platform]: true
1129
+ }));
1130
+
1131
+ // Return to the connect step
1132
+ setStep('connect');
1133
+ }
1134
+ } catch (error) {
1135
+ console.error('Error handling OAuth callback:', error);
1136
+ }
1137
+ }, [currentPlatform, username]);
1138
+
1139
+ /**
1140
+ * Handles successful OAuth authentication from the OAuthWebView
1141
+ */
1142
+ const handleOAuthSuccess = (0, _react.useCallback)(async code => {
1143
+ console.log(`🎉 OAuth success for ${currentPlatform} - backend callback completed`);
1144
+ console.log(`📝 Received result:`, code);
1145
+ if (currentPlatform) {
1146
+ console.log(`✅ Updating connection state for ${currentPlatform}`);
1147
+
1148
+ // Update connections state
1149
+ setConnections(prev => ({
1150
+ ...prev,
1151
+ [currentPlatform]: {
1152
+ userName: username,
1153
+ connected: true
1154
+ }
1155
+ }));
1156
+
1157
+ // Update platform toggles
1158
+ setPlatformToggles(prev => ({
1159
+ ...prev,
1160
+ [currentPlatform]: true
1161
+ }));
1162
+
1163
+ // Update connection statuses
1164
+ setConnectionStatuses(prev => ({
1165
+ ...prev,
1166
+ [currentPlatform]: 'connected'
1167
+ }));
1168
+
1169
+ // Store the connected platform
1170
+ await storeConnectedPlatform(currentPlatform);
1171
+ console.log(`💾 ${currentPlatform} connection stored successfully`);
1172
+ }
1173
+
1174
+ // Close the OAuth window by returning to the connect step
1175
+ console.log('🔄 Returning to connect step');
1176
+ setOauthUrl('');
1177
+ setStep('connect');
1178
+ }, [currentPlatform, username, storeConnectedPlatform]);
1179
+ const handlePinSubmit = (0, _react.useCallback)(async userPin => {
1180
+ setPin(userPin);
1181
+
1182
+ // Store PIN temporarily for training component access
1183
+ (0, _pinStorageUtils.setTemporaryPin)(userPin);
1184
+ console.log('🔐 [PIN SUBMIT] PIN submitted, checking for background training...');
1185
+
1186
+ // ✅ NEW: Check if background training is already running
1187
+ if (isBackgroundTrainingStarted && backgroundSocketId) {
1188
+ console.log('✅ [PIN SUBMIT] Background training detected, continuing with PIN validation...');
1189
+
1190
+ // Continue with existing training by sending PIN validation
1191
+ try {
1192
+ await continueBackgroundTrainingWithPin(userPin);
1193
+ setStep('persona'); // Move to persona step to show training progress
1194
+ } catch (error) {
1195
+ console.error('❌ [PIN SUBMIT] Failed to continue background training:', error);
1196
+ // ❌ DISABLED: Don't start new training when PIN is submitted
1197
+ // Just show persona step with error state
1198
+ setStep('persona');
1199
+ setPersonaStatus('Error: Failed to continue training');
1200
+ setHasError(true);
1201
+ }
1202
+ } else {
1203
+ console.log('ℹ️ [PIN SUBMIT] No background training detected');
1204
+ // ❌ DISABLED: Don't start training when PIN is submitted
1205
+ // Training should only start during connector→PIN transition
1206
+ setStep('persona');
1207
+ setPersonaStatus('No training in progress. Please restart the flow.');
1208
+ setHasError(true);
1209
+ }
1210
+ console.log('🔐 [PIN SUBMIT] PIN stored securely, moved to persona step');
1211
+ }, [isBackgroundTrainingStarted, backgroundSocketId]);
1212
+
1213
+ // Start real Enoch training via API (restored for backwards compatibility)
1214
+ const startEnochTraining = async (socketId, authToken) => {
1215
+ try {
1216
+ setPersonaStatus('Starting training...');
1217
+ setPersonaProgress(15);
1218
+
1219
+ // Use provided token or get from simplified JWT storage
1220
+ const token = authToken || (await (0, _jwtStorageService.getJWT)());
1221
+ if (!token) {
1222
+ console.error('❌ No authentication token available');
1223
+ throw new Error('No authentication token available');
1224
+ }
1225
+ console.log('🚀 Starting Enoch training with socketId:', socketId);
1226
+ console.log('🔑 Using auth token:', token ? `${token.substring(0, 20)}...` : 'None');
1227
+
1228
+ // Get stored Onairos username for API calls
1229
+ const storedUsername = await (0, _authService.getOnairosUsername)();
1230
+ const finalUsername = storedUsername || (userInfo === null || userInfo === void 0 ? void 0 : userInfo.username) || (userInfo === null || userInfo === void 0 ? void 0 : userInfo.name) || username || 'mobile_user';
1231
+
1232
+ // Get connected platforms information
1233
+ const connectedPlatforms = await _asyncStorage.default.getItem('connectedPlatforms');
1234
+ const platformsList = connectedPlatforms ? JSON.parse(connectedPlatforms) : [];
1235
+ console.log('📱 Connected platforms for training:', platformsList);
1236
+
1237
+ // Get encrypted PIN for training (if available)
1238
+ const encryptedPin = await (0, _pinEncryptionService.getEncryptedPinForAPI)().catch(error => {
1239
+ console.warn('⚠️ Could not get encrypted PIN for training:', error);
1240
+ return null;
1241
+ });
1242
+
1243
+ // Prepare user data for training - match backend expected format
1244
+ const trainingData = {
1245
+ socketId,
1246
+ username: finalUsername,
1247
+ email: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.email) || null,
1248
+ modelKey: null,
1249
+ connectedPlatforms: platformsList,
1250
+ platformConnections: connections,
1251
+ ...(encryptedPin && {
1252
+ encryptedPin: encryptedPin,
1253
+ hasPinData: true
1254
+ })
1255
+ };
1256
+ console.log('📤 Sending training data to /mobile-training/enoch:', trainingData);
1257
+
1258
+ // Use the new training function that includes YouTube migration check
1259
+ const result = await (0, _mobileTrainingService.startEnochTrainingWithYouTubeCheck)(trainingData);
1260
+ console.log('📡 Training API response:', result);
1261
+
1262
+ // Handle CONNECTIONS_REQUIRED scenario (pre-training validation)
1263
+ if (result.requiresConnections || result.code === 'CONNECTIONS_REQUIRED') {
1264
+ console.log('🔗 Connections required detected from HTTP response');
1265
+ setDataScenario('CONNECTIONS_REQUIRED');
1266
+ setDataDetails(result);
1267
+ setShowDataWarning(true);
1268
+ setPersonaStatus('Connections required');
1269
+ setHasError(true);
1270
+ stopDotsAnimation();
1271
+ return;
1272
+ }
1273
+ if (result.success) {
1274
+ console.log('🚀 Training Started:', result.message);
1275
+ console.log('🎯 Training Features:', result.features);
1276
+
1277
+ // Log the new features from the spec
1278
+ if (result.features) {
1279
+ console.log('✅ Inference enabled:', result.features.inference);
1280
+ console.log('💾 Storage method:', result.features.storage);
1281
+ console.log('🔒 Compression enabled:', result.features.compression);
1282
+ console.log('🔐 Encryption enabled:', result.features.encryption);
1283
+ console.log('📊 Training type:', result.features.type);
1284
+ console.log('🗄️ Databases:', result.features.databases);
1285
+ console.log('📈 Query scores enabled:', result.features.queryScores);
1286
+ }
1287
+ setPersonaStatus('Training model...');
1288
+ setPersonaProgress(25);
1289
+ } else {
1290
+ console.error('❌ Training start failed:', result.error);
1291
+ setPersonaStatus(`Error: ${result.error || 'Training failed to start'}`);
1292
+ setHasError(true);
1293
+ stopDotsAnimation();
1294
+ }
1295
+ } catch (error) {
1296
+ console.error('❌ Training start error:', error);
1297
+ setPersonaStatus(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
1298
+ setHasError(true);
1299
+ stopDotsAnimation();
1300
+ }
1301
+ };
1302
+
1303
+ // ✅ NEW: Continue background training with PIN validation
1304
+ const continueBackgroundTrainingWithPin = async userPin => {
1305
+ try {
1306
+ console.log('🔐 [BACKGROUND] Continuing existing background training with PIN validation');
1307
+ console.log('🔑 Using auth token:', `${userToken === null || userToken === void 0 ? void 0 : userToken.substring(0, 20)}...`);
1308
+
1309
+ // Check if we have a valid socket ID
1310
+ if (!backgroundSocketId) {
1311
+ throw new Error('No background socket ID available');
1312
+ }
1313
+
1314
+ // ❌ REMOVED: Don't send new training signal - training already started!
1315
+ // We should just validate the PIN with the existing training, not start new training
1316
+
1317
+ console.log('🔐 [BACKGROUND] PIN validation - continuing with existing training session');
1318
+ console.log('🔌 [BACKGROUND] Using existing socket ID:', backgroundSocketId);
1319
+
1320
+ // Just log that we're continuing - the existing training should handle PIN internally
1321
+ console.log('✅ [BACKGROUND] PIN submitted for existing training session');
1322
+ } catch (error) {
1323
+ console.error('❌ [BACKGROUND] Failed to continue background training:', error);
1324
+ throw error;
1325
+ }
1326
+ };
1327
+
1328
+ // Replace fake persona creation with real training setup
1329
+ const startPersonaCreation = async () => {
1330
+ setPersonaProgress(0);
1331
+ setPersonaStatus('Initializing');
1332
+ setIsPersonaComplete(false);
1333
+ setHasError(false);
1334
+
1335
+ // Start the dots animation
1336
+ startDotsAnimation();
1337
+ try {
1338
+ var _user$email4;
1339
+ console.log('🚀 Starting persona creation...');
1340
+
1341
+ // Ensure we have a valid authentication token before starting
1342
+ console.log('🔐 Step 1: Ensuring authentication token...');
1343
+ const authToken = await ensureAuthToken();
1344
+ if (!authToken) {
1345
+ throw new Error('Failed to create or retrieve authentication token');
1346
+ }
1347
+
1348
+ // Set the token in state
1349
+ setUserToken(authToken);
1350
+ console.log('✅ Authentication token set in state:', `${authToken.substring(0, 20)}...`);
1351
+ console.log('🔍 Token length:', authToken.length);
1352
+
1353
+ // Also verify it was stored properly using simplified JWT storage
1354
+ const storedToken = await (0, _jwtStorageService.getJWT)();
1355
+ console.log('🔑 Token stored verification:', storedToken ? `${storedToken.substring(0, 20)}...` : 'Not stored');
1356
+
1357
+ // If userInfo is not set, try to reload it
1358
+ if (!userInfo) {
1359
+ var _user$email3;
1360
+ console.log('🔄 UserInfo not available, attempting to reload...');
1361
+ const storedUsername = await (0, _authService.getOnairosUsername)();
1362
+ const fallbackUsername = storedUsername || (user === null || user === void 0 || (_user$email3 = user.email) === null || _user$email3 === void 0 ? void 0 : _user$email3.split('@')[0]) || (user === null || user === void 0 ? void 0 : user.name) || 'mobile_user';
1363
+ const newUserInfo = {
1364
+ username: fallbackUsername,
1365
+ email: (user === null || user === void 0 ? void 0 : user.email) || null,
1366
+ id: null
1367
+ };
1368
+ setUserInfo(newUserInfo);
1369
+ setUsername(fallbackUsername);
1370
+ console.log('🧑‍💻 Set user info:', newUserInfo);
1371
+
1372
+ // Give a moment for state to update
1373
+ await new Promise(resolve => setTimeout(() => resolve(), 200));
1374
+ }
1375
+
1376
+ // Check again after potential reload
1377
+ const currentUserInfo = userInfo || {
1378
+ username: username || (user === null || user === void 0 || (_user$email4 = user.email) === null || _user$email4 === void 0 ? void 0 : _user$email4.split('@')[0]) || (user === null || user === void 0 ? void 0 : user.name) || 'mobile_user',
1379
+ email: (user === null || user === void 0 ? void 0 : user.email) || null,
1380
+ id: null
1381
+ };
1382
+ if (!authToken) {
1383
+ console.error('❌ No authentication token available after ensureAuthToken');
1384
+ throw new Error('No authentication token available');
1385
+ }
1386
+ console.log('🔧 Setting up socket connection for real training...');
1387
+ console.log('🧑‍💻 User info available:', currentUserInfo);
1388
+ console.log('🔑 Token available:', !!authToken);
1389
+ console.log('🌐 Attempting to connect to: ${API_CONFIG.BASE_URL}');
1390
+ console.log('📱 Device platform:', _reactNative.Platform.OS);
1391
+ console.log('🔗 Network connectivity check starting...');
1392
+ setPersonaStatus('Connecting');
1393
+ setPersonaProgress(5);
1394
+
1395
+ // Initialize socket connection with enhanced configuration
1396
+ socketRef.current = (0, _socket.io)(_api.API_CONFIG.BASE_URL, {
1397
+ transports: ['websocket', 'polling'],
1398
+ // Add polling as fallback
1399
+ autoConnect: false,
1400
+ timeout: 15000,
1401
+ // Increase timeout to 15 seconds
1402
+ reconnection: true,
1403
+ // Enable reconnection with limits
1404
+ reconnectionAttempts: 3,
1405
+ reconnectionDelay: 1000,
1406
+ forceNew: true // Force a new connection
1407
+ });
1408
+ console.log('🔌 Socket instance created:', {
1409
+ connected: socketRef.current.connected,
1410
+ id: socketRef.current.id,
1411
+ disconnected: socketRef.current.disconnected
1412
+ });
1413
+
1414
+ // Socket event listeners with enhanced error handling
1415
+ socketRef.current.on('connect', () => {
1416
+ var _socketRef$current, _socketRef$current2, _socketRef$current3, _socketRef$current4;
1417
+ console.log('✅ Socket connected for training');
1418
+ console.log('🔌 Socket connection details:', {
1419
+ id: (_socketRef$current = socketRef.current) === null || _socketRef$current === void 0 ? void 0 : _socketRef$current.id,
1420
+ connected: (_socketRef$current2 = socketRef.current) === null || _socketRef$current2 === void 0 ? void 0 : _socketRef$current2.connected,
1421
+ transport: (_socketRef$current3 = socketRef.current) === null || _socketRef$current3 === void 0 || (_socketRef$current3 = _socketRef$current3.io) === null || _socketRef$current3 === void 0 || (_socketRef$current3 = _socketRef$current3.engine) === null || _socketRef$current3 === void 0 || (_socketRef$current3 = _socketRef$current3.transport) === null || _socketRef$current3 === void 0 ? void 0 : _socketRef$current3.name
1422
+ });
1423
+ setSocketConnected(true);
1424
+ setPersonaStatus('Starting training');
1425
+ setPersonaProgress(10);
1426
+ const socketId = (_socketRef$current4 = socketRef.current) === null || _socketRef$current4 === void 0 ? void 0 : _socketRef$current4.id;
1427
+ console.log('🔌 Socket ID for training:', socketId);
1428
+ if (socketId) {
1429
+ // Add a small delay to ensure socket is fully ready and registered on backend
1430
+ console.log('🔄 Socket ready for persona display with token:', authToken ? `${authToken.substring(0, 20)}...` : 'None');
1431
+ console.log('⏰ Socket registered but training will not start from persona screen...');
1432
+ // ❌ DISABLED: Don't start training from persona screen
1433
+ // Training should only start during connector→PIN transition
1434
+ // setTimeout(() => {
1435
+ // console.log('🚀 Now starting training with socket ID:', socketId);
1436
+ // startEnochTraining(socketId, authToken);
1437
+ // }, 2000);
1438
+
1439
+ // Just show the persona screen without starting training
1440
+ setPersonaStatus('Waiting for training to start from connector→PIN transition');
1441
+ } else {
1442
+ console.error('❌ No socket ID available after connection');
1443
+ setPersonaStatus('Connection error. Please try again.');
1444
+ setHasError(true);
1445
+ stopDotsAnimation();
1446
+ }
1447
+ });
1448
+ socketRef.current.on('disconnect', reason => {
1449
+ var _socketRef$current5;
1450
+ console.log('❌ Socket disconnected, reason:', reason);
1451
+ console.log('🔍 Disconnect details:', {
1452
+ reason: reason,
1453
+ wasConnected: socketConnected,
1454
+ socketId: (_socketRef$current5 = socketRef.current) === null || _socketRef$current5 === void 0 ? void 0 : _socketRef$current5.id
1455
+ });
1456
+ setSocketConnected(false);
1457
+ });
1458
+ socketRef.current.on('reconnect', attemptNumber => {
1459
+ console.log('🔄 Socket reconnected after', attemptNumber, 'attempts');
1460
+ setSocketConnected(true);
1461
+ });
1462
+ socketRef.current.on('reconnect_attempt', attemptNumber => {
1463
+ console.log('🔄 Socket reconnection attempt:', attemptNumber);
1464
+ setPersonaStatus(`Reconnecting... (${attemptNumber}/3)`);
1465
+ });
1466
+ socketRef.current.on('reconnect_error', error => {
1467
+ console.error('❌ Socket reconnection error:', error);
1468
+ });
1469
+ socketRef.current.on('reconnect_failed', () => {
1470
+ console.error('❌ Socket reconnection failed after all attempts');
1471
+ setPersonaStatus('Connection failed. Please try again.');
1472
+ setHasError(true);
1473
+ stopDotsAnimation();
1474
+ });
1475
+ socketRef.current.on('connect_error', error => {
1476
+ console.error('❌ Socket connection error:', error);
1477
+ console.error('❌ Socket error details:', {
1478
+ message: error.message,
1479
+ name: error.name,
1480
+ stack: error.stack,
1481
+ errorObject: error
1482
+ });
1483
+ setPersonaStatus('Connection error. Please try again.');
1484
+ setHasError(true);
1485
+ stopDotsAnimation();
1486
+ });
1487
+ socketRef.current.on('trainingCompleted', data => {
1488
+ console.log('✅ Training Complete:', data);
1489
+ setPersonaStatus('Running test inference');
1490
+ setPersonaProgress(60);
1491
+ });
1492
+ socketRef.current.on('inferenceCompleted', data => {
1493
+ console.log('🧠 Inference Complete:', data);
1494
+ setPersonaStatus('Uploading to S3');
1495
+ setPersonaProgress(80);
1496
+ setUserTraits(data.traits);
1497
+ setInferenceResults(data.inferenceResults);
1498
+ });
1499
+ socketRef.current.on('modelStandby', data => {
1500
+ console.log('🎉 All Complete:', data);
1501
+
1502
+ // Log completion details based on new spec
1503
+ if (data.completed) {
1504
+ console.log('✅ Training completed:', data.message);
1505
+ console.log('💾 Storage method:', data.storage);
1506
+ console.log('🔐 Encryption enabled:', data.encryption);
1507
+ console.log('🧠 Inference enabled:', data.inference);
1508
+
1509
+ // Log database info for Enoch mode
1510
+ if (data.databases && Array.isArray(data.databases)) {
1511
+ console.log('🗄️ Databases used:', data.databases.join(', '));
1512
+ }
1513
+
1514
+ // Log testing mode
1515
+ if (data.testing) {
1516
+ console.log('🧪 Testing mode enabled');
1517
+ }
1518
+ }
1519
+ setIsPersonaComplete(true);
1520
+ setPersonaStatus('Complete!');
1521
+ setPersonaProgress(100);
1522
+ stopDotsAnimation();
1523
+ });
1524
+ socketRef.current.on('trainingUpdate', data => {
1525
+ console.log('📊 Training update:', data);
1526
+
1527
+ // Handle YouTube token expiry
1528
+ if (data.error && data.error.includes('YouTube access token has expired')) {
1529
+ console.log('🔄 YouTube token expired, triggering reconnection...');
1530
+ setDataScenario(null);
1531
+ setShowDataWarning(false);
1532
+ setPersonaStatus('YouTube token expired - reconnecting...');
1533
+
1534
+ // Try to refresh tokens first before full reconnection
1535
+ setTimeout(async () => {
1536
+ try {
1537
+ console.log('🔄 Attempting to refresh YouTube tokens...');
1538
+ const refreshSuccess = await (0, _platformAuthService.refreshYouTubeTokens)();
1539
+ if (refreshSuccess) {
1540
+ console.log('✅ YouTube tokens refreshed, but training restart disabled');
1541
+ setPersonaStatus('YouTube tokens refreshed - but training only starts from connector→PIN');
1542
+
1543
+ // ❌ DISABLED: Don't restart training from persona screen
1544
+ // Training should only start during connector→PIN transition
1545
+ // if (socketRef.current?.id) {
1546
+ // startEnochTraining(socketRef.current.id, userToken ?? undefined);
1547
+ // }
1548
+
1549
+ setHasError(true); // Show error so user can restart flow properly
1550
+ } else {
1551
+ console.log('❌ Token refresh failed, attempting full reconnection...');
1552
+ setPersonaStatus('Token refresh failed - please restart from connector screen');
1553
+
1554
+ // ❌ DISABLED: Don't restart training from persona screen
1555
+ // Fall back to full reconnection
1556
+ try {
1557
+ await handleConnectPlatform('youtube');
1558
+ console.log('✅ YouTube reconnected, but training restart disabled');
1559
+ setPersonaStatus('YouTube reconnected - please restart from connector screen');
1560
+
1561
+ // ❌ DISABLED: Don't restart training from persona screen
1562
+ // Training should only start during connector→PIN transition
1563
+ // if (socketRef.current?.id) {
1564
+ // startEnochTraining(socketRef.current.id, userToken ?? undefined);
1565
+ // }
1566
+
1567
+ setHasError(true); // Show error so user can restart flow properly
1568
+ } catch (reconnectError) {
1569
+ console.error('❌ YouTube reconnection failed:', reconnectError);
1570
+ setPersonaStatus('YouTube reconnection failed. Please restart from connector screen.');
1571
+ setHasError(true);
1572
+ stopDotsAnimation();
1573
+ }
1574
+ }
1575
+ } catch (error) {
1576
+ console.error('❌ YouTube token refresh/reconnection error:', error);
1577
+ setPersonaStatus('YouTube connection failed. Please try again.');
1578
+ setHasError(true);
1579
+ stopDotsAnimation();
1580
+ }
1581
+ }, 1000);
1582
+ return;
1583
+ }
1584
+
1585
+ // Handle connections required scenario (pre-training validation)
1586
+ if (data.requiresConnections || data.code === 'CONNECTIONS_REQUIRED') {
1587
+ console.log('🔗 Connections required detected from socket');
1588
+ setDataScenario('CONNECTIONS_REQUIRED');
1589
+ setDataDetails(data);
1590
+ setShowDataWarning(true);
1591
+ setPersonaStatus('Connections required');
1592
+ setHasError(true);
1593
+ stopDotsAnimation();
1594
+ return;
1595
+ }
1596
+
1597
+ // Handle data scenario responses
1598
+ if (data.code === 'NO_DATA') {
1599
+ console.log('🚫 No data scenario detected');
1600
+ setDataScenario('NO_DATA');
1601
+ setDataDetails(data.details);
1602
+ setShowDataWarning(true);
1603
+ setPersonaStatus('No interaction data found');
1604
+ setHasError(true);
1605
+ stopDotsAnimation();
1606
+ return;
1607
+ }
1608
+ if (data.code === 'LIMITED_DATA') {
1609
+ console.log('ℹ️ Limited data scenario detected');
1610
+ setDataScenario('LIMITED_DATA');
1611
+ setDataDetails(data.details);
1612
+ setShowDataWarning(true);
1613
+ setPersonaStatus('Creating your persona with available data');
1614
+ // Don't set hasError - training continues
1615
+ return;
1616
+ }
1617
+
1618
+ // Handle regular training updates
1619
+ if (data.error) {
1620
+ console.error('❌ Training update error:', data.error);
1621
+ setPersonaStatus(`Error: ${data.error}`);
1622
+ setHasError(true);
1623
+ stopDotsAnimation();
1624
+ } else if (data.progress) {
1625
+ setPersonaProgress(data.progress);
1626
+ setPersonaStatus(data.status || 'Training in progress');
1627
+ // Clear data warning if training progresses normally
1628
+ if (showDataWarning && data.progress > 30) {
1629
+ setShowDataWarning(false);
1630
+ }
1631
+ }
1632
+ });
1633
+
1634
+ // Connect to socket with timeout
1635
+ console.log('🔌 Attempting to connect to socket...');
1636
+ console.log('🔌 Socket config:', {
1637
+ url: _api.API_CONFIG.BASE_URL,
1638
+ transports: ['websocket'],
1639
+ autoConnect: false,
1640
+ timeout: 10000,
1641
+ reconnection: false
1642
+ });
1643
+ socketRef.current.connect();
1644
+ console.log('🔌 Socket connect() called - waiting for connection...');
1645
+
1646
+ // Add immediate state check
1647
+ setTimeout(() => {
1648
+ var _socketRef$current6, _socketRef$current7, _socketRef$current8, _socketRef$current9;
1649
+ console.log('🔍 Socket state after 1 second:', {
1650
+ connected: (_socketRef$current6 = socketRef.current) === null || _socketRef$current6 === void 0 ? void 0 : _socketRef$current6.connected,
1651
+ disconnected: (_socketRef$current7 = socketRef.current) === null || _socketRef$current7 === void 0 ? void 0 : _socketRef$current7.disconnected,
1652
+ id: (_socketRef$current8 = socketRef.current) === null || _socketRef$current8 === void 0 ? void 0 : _socketRef$current8.id,
1653
+ engineConnected: (_socketRef$current9 = socketRef.current) === null || _socketRef$current9 === void 0 || (_socketRef$current9 = _socketRef$current9.io) === null || _socketRef$current9 === void 0 || (_socketRef$current9 = _socketRef$current9.engine) === null || _socketRef$current9 === void 0 ? void 0 : _socketRef$current9.readyState
1654
+ });
1655
+ }, 1000);
1656
+ setTimeout(() => {
1657
+ var _socketRef$current0, _socketRef$current1, _socketRef$current10, _socketRef$current11;
1658
+ console.log('🔍 Socket state after 5 seconds:', {
1659
+ connected: (_socketRef$current0 = socketRef.current) === null || _socketRef$current0 === void 0 ? void 0 : _socketRef$current0.connected,
1660
+ disconnected: (_socketRef$current1 = socketRef.current) === null || _socketRef$current1 === void 0 ? void 0 : _socketRef$current1.disconnected,
1661
+ id: (_socketRef$current10 = socketRef.current) === null || _socketRef$current10 === void 0 ? void 0 : _socketRef$current10.id,
1662
+ engineConnected: (_socketRef$current11 = socketRef.current) === null || _socketRef$current11 === void 0 || (_socketRef$current11 = _socketRef$current11.io) === null || _socketRef$current11 === void 0 || (_socketRef$current11 = _socketRef$current11.engine) === null || _socketRef$current11 === void 0 ? void 0 : _socketRef$current11.readyState
1663
+ });
1664
+ }, 5000);
1665
+
1666
+ // Set a timeout for socket connection with enhanced fallback
1667
+ setTimeout(() => {
1668
+ if (!socketConnected && socketRef.current && !socketRef.current.connected) {
1669
+ console.error('❌ Socket connection timeout after 20 seconds');
1670
+ console.error('🔍 Socket state:', {
1671
+ connected: socketRef.current.connected,
1672
+ disconnected: socketRef.current.disconnected,
1673
+ id: socketRef.current.id
1674
+ });
1675
+ setPersonaStatus('Connection timeout. Please check your internet and try again.');
1676
+ setHasError(true);
1677
+ stopDotsAnimation();
1678
+
1679
+ // Cleanup socket
1680
+ if (socketRef.current) {
1681
+ socketRef.current.disconnect();
1682
+ socketRef.current = null;
1683
+ }
1684
+ }
1685
+ }, 20000); // Increased timeout to 20 seconds
1686
+ } catch (error) {
1687
+ console.error('❌ Error in startPersonaCreation:', error);
1688
+ setPersonaStatus('Failed to initialize training. Please try again.');
1689
+ setHasError(true);
1690
+ stopDotsAnimation();
1691
+ }
1692
+ };
1693
+
1694
+ // Get user-friendly status message based on progress (updated for real training)
1695
+ const getPersonaStatusMessage = progress => {
1696
+ if (hasError) return 'Something went wrong. Please try again.';
1697
+ if (isPersonaComplete) return 'Your persona is ready! 🎉';
1698
+ let baseMessage = '';
1699
+ if (progress < 20) {
1700
+ baseMessage = 'Keeping your data private';
1701
+ } else if (progress < 40) {
1702
+ baseMessage = 'Trying to understand your mind';
1703
+ } else if (progress < 60) {
1704
+ baseMessage = 'You\'re more interesting than I expected';
1705
+ } else if (progress < 80) {
1706
+ baseMessage = 'Finalizing your unique persona';
1707
+ } else if (progress < 95) {
1708
+ baseMessage = 'Almost done';
1709
+ } else {
1710
+ baseMessage = 'Just a few more seconds';
1711
+ }
1712
+ return baseMessage + animatedDots;
1713
+ };
1714
+
1715
+ // Handle persona completion - now continues the onboarding flow instead of going to separate training
1716
+ const handlePersonaComplete = async () => {
1717
+ console.log('🎉 Real persona creation completed successfully');
1718
+ // Cleanup socket connection
1719
+ if (socketRef.current) {
1720
+ console.log('🔌 Disconnecting training socket...');
1721
+ socketRef.current.disconnect();
1722
+ socketRef.current = null;
1723
+ }
1724
+ // Clear temporary PIN since training is complete
1725
+ (0, _pinStorageUtils.clearTemporaryPin)();
1726
+ // Set the completion flag BEFORE calling onComplete
1727
+ isCompletingRef.current = true;
1728
+
1729
+ // Get the real authentication token using simplified JWT storage
1730
+ try {
1731
+ const realToken = await (0, _jwtStorageService.getJWT)();
1732
+ if (realToken) {
1733
+ console.log('✅ Using real authentication token for onComplete:', `${realToken.substring(0, 30)}...`);
1734
+ // Call onComplete with the REAL token that was created during ensureAuthToken
1735
+ onComplete === null || onComplete === void 0 || onComplete(_api.API_CONFIG.BASE_URL, realToken, {
1736
+ email: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.email) || '',
1737
+ ...userInfo
1738
+ });
1739
+ } else {
1740
+ console.error('❌ No real authentication token found after training completion');
1741
+ // Fallback to placeholder token if no real token exists
1742
+ onComplete === null || onComplete === void 0 || onComplete(_api.API_CONFIG.BASE_URL, 'training-complete-token', {
1743
+ email: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.email) || '',
1744
+ ...userInfo
1745
+ });
1746
+ }
1747
+ } catch (error) {
1748
+ console.error('❌ Error retrieving real token for onComplete:', error);
1749
+ // Fallback to placeholder token on error
1750
+ onComplete === null || onComplete === void 0 || onComplete(_api.API_CONFIG.BASE_URL, 'training-complete-token', {
1751
+ email: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.email) || '',
1752
+ ...userInfo
1753
+ });
1754
+ }
1755
+ };
1756
+
1757
+ // Ensure authentication token exists before training
1758
+ // NOTE: SDK no longer creates users - user should be authenticated first via Google/Apple/Email
1759
+ const ensureAuthToken = async () => {
1760
+ try {
1761
+ // Use simplified JWT storage to check for existing token
1762
+ const existingToken = await (0, _jwtStorageService.getJWT)();
1763
+ if (existingToken && existingToken.trim().length > 20) {
1764
+ console.log('✅ Authentication token already exists:', `${existingToken.substring(0, 20)}...`);
1765
+ console.log('🔍 Token length:', existingToken.length);
1766
+ return existingToken;
1767
+ }
1768
+
1769
+ // NOTE: SDK no longer creates users during onboarding
1770
+ // User should be authenticated first via Google/Apple/Email
1771
+ console.warn('⚠️ No authentication token found');
1772
+ console.warn('ℹ️ SDK does not create users during onboarding');
1773
+ console.warn('ℹ️ User should authenticate first via Google/Apple/Email');
1774
+
1775
+ // Return null - consuming app is responsible for ensuring user is authenticated
1776
+ return null;
1777
+ } catch (error) {
1778
+ console.error('❌ Error checking authentication token:', error);
1779
+ throw error;
1780
+ }
1781
+ };
1782
+ const canProceed = Object.values(platformToggles).some(value => value);
1783
+ const handleProceed = () => {
1784
+ if (canProceed) {
1785
+ // Trigger haptic feedback when continue button is pressed
1786
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
1787
+
1788
+ // ✅ NEW: Start background training when transitioning from connectors to PIN screen
1789
+ console.log('🚀 [TRANSITION] Starting background training during connect → pin transition');
1790
+ startBackgroundTraining().catch(error => {
1791
+ console.error('❌ [TRANSITION] Background training failed during transition:', error);
1792
+ // Continue to PIN screen even if training fails
1793
+ });
1794
+ setStep('pin');
1795
+ }
1796
+ };
1797
+
1798
+ // Removed navigation dependency for SDK compatibility
1799
+
1800
+ // Training is now handled by the TrainingModal component
1801
+
1802
+ // ✅ NEW: Background training function - starts when PIN screen appears
1803
+ const startBackgroundTraining = (0, _react.useCallback)(async () => {
1804
+ try {
1805
+ console.log('🚀 [BACKGROUND] Starting background training optimization...');
1806
+ setBackgroundTrainingProgress('Connecting...');
1807
+
1808
+ // Step 1: Ensure authentication token exists
1809
+ const authToken = await ensureAuthToken();
1810
+ if (!authToken) {
1811
+ throw new Error('Failed to create authentication token for background training');
1812
+ }
1813
+ console.log('✅ [BACKGROUND] Auth token ready:', `${authToken.substring(0, 20)}...`);
1814
+ setUserToken(authToken);
1815
+
1816
+ // Step 2: Set up user info if not available
1817
+ if (!userInfo) {
1818
+ var _user$email5;
1819
+ const storedUsername = await (0, _authService.getOnairosUsername)();
1820
+ const fallbackUsername = storedUsername || (user === null || user === void 0 || (_user$email5 = user.email) === null || _user$email5 === void 0 ? void 0 : _user$email5.split('@')[0]) || (user === null || user === void 0 ? void 0 : user.name) || 'mobile_user';
1821
+ const newUserInfo = {
1822
+ username: fallbackUsername,
1823
+ email: (user === null || user === void 0 ? void 0 : user.email) || null,
1824
+ id: null
1825
+ };
1826
+ setUserInfo(newUserInfo);
1827
+ setUsername(fallbackUsername);
1828
+ console.log('🧑‍💻 [BACKGROUND] User info set:', newUserInfo);
1829
+ }
1830
+
1831
+ // Step 3: Initialize socket connection for background training
1832
+ console.log('🔌 [BACKGROUND] Setting up socket for background training...');
1833
+ setBackgroundTrainingProgress('Initializing data collection...');
1834
+ const backgroundSocket = (0, _socket.io)(_api.API_CONFIG.BASE_URL, {
1835
+ transports: ['websocket', 'polling'],
1836
+ autoConnect: false,
1837
+ timeout: 15000,
1838
+ reconnection: true,
1839
+ reconnectionAttempts: 3,
1840
+ reconnectionDelay: 1000,
1841
+ forceNew: true
1842
+ });
1843
+
1844
+ // Set up socket event listeners for background training
1845
+ backgroundSocket.on('connect', async () => {
1846
+ console.log('✅ [BACKGROUND] Socket connected, starting background data collection...');
1847
+ const socketId = backgroundSocket.id;
1848
+ setBackgroundSocketId(socketId || null);
1849
+ setBackgroundTrainingProgress('Collecting your data...');
1850
+ if (socketId) {
1851
+ // Step 4: Start background training WITHOUT PIN (per backend instructions)
1852
+ await startBackgroundEnochTraining(socketId, authToken);
1853
+ }
1854
+ });
1855
+ backgroundSocket.on('trainingUpdate', data => {
1856
+ if (data.progress) {
1857
+ setBackgroundTrainingProgress(data.status || 'Processing...');
1858
+ console.log('📊 [BACKGROUND] Training progress:', data.progress, '%');
1859
+ }
1860
+ });
1861
+ backgroundSocket.on('disconnect', () => {
1862
+ console.log('❌ [BACKGROUND] Socket disconnected');
1863
+ });
1864
+
1865
+ // Store socket reference for later use
1866
+ socketRef.current = backgroundSocket;
1867
+
1868
+ // Connect the socket to start background training
1869
+ backgroundSocket.connect();
1870
+ console.log('✅ [BACKGROUND] Background training initiated successfully');
1871
+ } catch (error) {
1872
+ console.error('❌ [BACKGROUND] Background training failed:', error);
1873
+ setBackgroundTrainingProgress('');
1874
+ throw error;
1875
+ }
1876
+ }, [userInfo, username, user]);
1877
+
1878
+ // ✅ NEW: Background training API call - starts data collection without PIN
1879
+ const startBackgroundEnochTraining = async (socketId, authToken) => {
1880
+ try {
1881
+ console.log('🚀 [BACKGROUND] Starting background training with socketId:', socketId);
1882
+ console.log('🔑 Using auth token:', `${authToken.substring(0, 20)}...`);
1883
+
1884
+ // Prepare background training data
1885
+ const backgroundData = {
1886
+ socketId,
1887
+ username: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.username) || (userInfo === null || userInfo === void 0 ? void 0 : userInfo.name) || username || 'mobile_user',
1888
+ email: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.email) || null,
1889
+ modelKey: null,
1890
+ connectedPlatforms: [],
1891
+ // No connected platforms for background training
1892
+ platformConnections: {} // No platform connections for background training
1893
+ // No encrypted PIN for background training
1894
+ };
1895
+ console.log('📤 Sending background training data to /mobile-training/enoch:', backgroundData);
1896
+
1897
+ // Use the new training function that includes YouTube migration check
1898
+ const backgroundResult = await (0, _mobileTrainingService.startEnochTrainingWithYouTubeCheck)(backgroundData);
1899
+ console.log('📡 Background training API response:', backgroundResult);
1900
+
1901
+ // Handle CONNECTIONS_REQUIRED scenario (pre-training validation)
1902
+ if (backgroundResult.requiresConnections || backgroundResult.code === 'CONNECTIONS_REQUIRED') {
1903
+ console.log('🔗 Connections required detected from background training');
1904
+ setDataScenario('CONNECTIONS_REQUIRED');
1905
+ setDataDetails(backgroundResult);
1906
+ setShowDataWarning(true);
1907
+ setPersonaStatus('Connections required');
1908
+ setHasError(true);
1909
+ stopDotsAnimation();
1910
+ return;
1911
+ }
1912
+ if (backgroundResult.success) {
1913
+ console.log('🚀 Background training started:', backgroundResult.message);
1914
+ console.log('🎯 Background training Features:', backgroundResult.features);
1915
+
1916
+ // ✅ CRITICAL: Set background training started flag
1917
+ setIsBackgroundTrainingStarted(true);
1918
+
1919
+ // Log the new features from the spec
1920
+ if (backgroundResult.features) {
1921
+ console.log('✅ Inference enabled:', backgroundResult.features.inference);
1922
+ console.log('💾 Storage method:', backgroundResult.features.storage);
1923
+ console.log('🔒 Compression enabled:', backgroundResult.features.compression);
1924
+ console.log('🔐 Encryption enabled:', backgroundResult.features.encryption);
1925
+ console.log('📊 Training type:', backgroundResult.features.type);
1926
+ console.log('🗄️ Databases:', backgroundResult.features.databases);
1927
+ console.log('📈 Query scores enabled:', backgroundResult.features.queryScores);
1928
+ }
1929
+ setPersonaStatus('Background training model...');
1930
+ setPersonaProgress(25);
1931
+ } else {
1932
+ console.error('❌ Background training start failed:', backgroundResult.error);
1933
+ setPersonaStatus(`Error: ${backgroundResult.error || 'Background training failed to start'}`);
1934
+ setHasError(true);
1935
+ stopDotsAnimation();
1936
+ }
1937
+ } catch (error) {
1938
+ console.error('❌ Background training start error:', error);
1939
+ setPersonaStatus(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
1940
+ setHasError(true);
1941
+ stopDotsAnimation();
1942
+ }
1943
+ };
1944
+ return /*#__PURE__*/_react.default.createElement(_reactNative.Modal, {
1945
+ transparent: true,
1946
+ visible: modalVisible,
1947
+ animationType: "slide",
1948
+ onRequestClose: handleClose,
1949
+ statusBarTranslucent: true
1950
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
1951
+ style: styles.modalOverlay
1952
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableWithoutFeedback, {
1953
+ onPress: handleClose
1954
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, {
1955
+ style: [styles.backdrop, {
1956
+ opacity: backdropOpacity
1957
+ }]
1958
+ })), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
1959
+ style: styles.bottomSheet
1960
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
1961
+ style: styles.container
1962
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
1963
+ style: styles.handleContainer
1964
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
1965
+ onPress: handleClose,
1966
+ style: styles.handleButton
1967
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
1968
+ style: styles.handle
1969
+ }))), showDebugPanel && step === 'platforms' && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
1970
+ style: styles.debugPanel
1971
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
1972
+ style: styles.debugTitle
1973
+ }, "Debug Padding"), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
1974
+ style: styles.debugRow
1975
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
1976
+ style: styles.debugLabel
1977
+ }, "Container Top: ", debugPaddingTop), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
1978
+ onPress: () => setDebugPaddingTop(p => Math.max(0, p - 2)),
1979
+ style: styles.debugBtn
1980
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "-")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
1981
+ onPress: () => setDebugPaddingTop(p => p + 2),
1982
+ style: styles.debugBtn
1983
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "+"))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
1984
+ style: styles.debugRow
1985
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
1986
+ style: styles.debugLabel
1987
+ }, "Container Bottom: ", debugPaddingBottom), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
1988
+ onPress: () => setDebugPaddingBottom(p => Math.max(0, p - 2)),
1989
+ style: styles.debugBtn
1990
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "-")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
1991
+ onPress: () => setDebugPaddingBottom(p => p + 2),
1992
+ style: styles.debugBtn
1993
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "+"))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
1994
+ style: styles.debugRow
1995
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
1996
+ style: styles.debugLabel
1997
+ }, "Handle Top: ", debugHandlePaddingTop), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
1998
+ onPress: () => setDebugHandlePaddingTop(p => Math.max(0, p - 2)),
1999
+ style: styles.debugBtn
2000
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "-")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
2001
+ onPress: () => setDebugHandlePaddingTop(p => p + 2),
2002
+ style: styles.debugBtn
2003
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "+"))), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
2004
+ onPress: () => setShowDebugPanel(false),
2005
+ style: styles.debugCloseBtn
2006
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
2007
+ style: styles.debugCloseBtnText
2008
+ }, "Hide Debug"))), step === 'welcome' && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
2009
+ style: styles.welcomeContainer
2010
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
2011
+ style: styles.brandMarkContainer
2012
+ }, /*#__PURE__*/_react.default.createElement(_BrandMark.default, null)), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
2013
+ style: styles.headingContainer
2014
+ }, /*#__PURE__*/_react.default.createElement(_HeadingGroup.default, null)), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
2015
+ style: styles.bodyContainer
2016
+ }, /*#__PURE__*/_react.default.createElement(_BodyText.default, null)), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
2017
+ style: styles.welcomeSpacer
2018
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
2019
+ style: styles.welcomeButtonContainer
2020
+ }, /*#__PURE__*/_react.default.createElement(_PrimaryButton.default, {
2021
+ label: "Get Started",
2022
+ onPress: handleGetStarted,
2023
+ testID: "welcome-get-started-button"
2024
+ }))), step === 'signin' && /*#__PURE__*/_react.default.createElement(_SignInStep.default, {
2025
+ onEmailSubmit: handleEmailSubmit,
2026
+ onGoogleSignIn: handleGoogleSignIn,
2027
+ onContinue: () => setStep('verification'),
2028
+ loading: authLoading,
2029
+ error: authError,
2030
+ initialEmail: userEmail
2031
+ }), step === 'verification' && /*#__PURE__*/_react.default.createElement(_VerificationStep.default, {
2032
+ email: userEmail,
2033
+ onCodeSubmit: handleCodeSubmit,
2034
+ onBack: handleBackToSignIn,
2035
+ loading: authLoading,
2036
+ error: authError,
2037
+ onResendCode: handleResendCode
2038
+ }), step === 'platforms' && /*#__PURE__*/_react.default.createElement(_PlatformConnectorsStep.default, {
2039
+ onUpdate: handlePlatformUpdate,
2040
+ onSkip: allowSkip ? handlePlatformSkip : undefined,
2041
+ onReviewerBypass: handleReviewerBypass,
2042
+ onLogout: handleLogout,
2043
+ allowedPlatforms: allowedPlatforms,
2044
+ recommendedPlatforms: recommendedPlatforms,
2045
+ initialConnectedPlatforms: returningUserConnections,
2046
+ userEmail: userEmail
2047
+ }), step === 'consent' && /*#__PURE__*/_react.default.createElement(_PersonalizationConsentScreen.default, {
2048
+ visible: true,
2049
+ loading: isConsentLoading,
2050
+ onLogout: handleLogout,
2051
+ onAccept: async () => {
2052
+ console.log('✅ Returning user accepted consent');
2053
+
2054
+ // 🚀 Show loading on button immediately
2055
+ setIsConsentLoading(true);
2056
+
2057
+ // Small delay to ensure React renders the loading state
2058
+ await new Promise(resolve => setTimeout(resolve, 50));
2059
+
2060
+ // Call onComplete with the returning user's data
2061
+ try {
2062
+ // 🚀 OPTIMIZATION: Load data in parallel (fast!)
2063
+ const [token, email, storedUsername] = await Promise.all([(0, _authService.getAuthToken)(), _asyncStorage.default.getItem('user_email'), (0, _authService.getOnairosUsername)()]);
2064
+ console.log('🔑 [SDK] Auth data retrieved in parallel for returning user');
2065
+
2066
+ // Set completing flag before calling onComplete
2067
+ isCompletingRef.current = true;
2068
+ if (token && email) {
2069
+ console.log('✅ [SDK] Calling onComplete for returning user');
2070
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(_api.API_CONFIG.BASE_URL, token, {
2071
+ email,
2072
+ connectedPlatforms: returningUserConnections,
2073
+ username: storedUsername || email.split('@')[0],
2074
+ isReturningUser: true
2075
+ }));
2076
+ } else {
2077
+ console.warn('⚠️ [SDK] No token/email found for returning user');
2078
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(_api.API_CONFIG.BASE_URL, '', {
2079
+ connectedPlatforms: returningUserConnections,
2080
+ isReturningUser: true
2081
+ }));
2082
+ }
2083
+ } catch (error) {
2084
+ console.error('❌ [SDK] Error during returning user consent:', error);
2085
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(_api.API_CONFIG.BASE_URL, '', {
2086
+ connectedPlatforms: returningUserConnections,
2087
+ isReturningUser: true
2088
+ }));
2089
+ }
2090
+ // NOTE: Keep loading=true - modal stays open until parent sets visible={false}
2091
+ console.log('✅ [SDK] Returning user onComplete finished - waiting for parent to close modal');
2092
+ },
2093
+ onDecline: () => {
2094
+ console.log('❌ Returning user declined consent');
2095
+ handleClose();
2096
+ },
2097
+ connectedPlatforms: returningUserConnections,
2098
+ onConnectMore: () => {
2099
+ // Allow returning users to connect more platforms
2100
+ console.log('➕ Returning user wants to connect more platforms');
2101
+ setStep('platforms');
2102
+ },
2103
+ isReturningUser: isReturningUser,
2104
+ appName: AppName
2105
+ })))));
2106
+ };
2107
+
2108
+ // ============================================
2109
+ // LEGACY CODE REMOVED - The following step handlers were removed:
2110
+ // - step === 'connect' (old platform connection UI)
2111
+ // - step === 'pin' (old PIN input)
2112
+ // - step === 'persona' (old persona screen)
2113
+ // - step === 'oauth' (moved to PlatformConnectorsStep)
2114
+ // - step === 'privacy' (old privacy screen)
2115
+ // - step === 'connections' (old connections screen)
2116
+ // ============================================
2117
+ exports.UniversalOnboarding = UniversalOnboarding;
2118
+ const LEGACY_REMOVED = true; // Marker for removed legacy code
2119
+
2120
+ const styles = _reactNative.StyleSheet.create({
2121
+ modalOverlay: {
2122
+ flex: 1,
2123
+ justifyContent: 'flex-end'
2124
+ },
2125
+ backdrop: {
2126
+ ..._reactNative.StyleSheet.absoluteFillObject,
2127
+ backgroundColor: 'rgba(0, 0, 0, 0.5)'
2128
+ },
2129
+ bottomSheet: {
2130
+ backgroundColor: '#FAFAFA',
2131
+ borderTopLeftRadius: 24,
2132
+ borderTopRightRadius: 24,
2133
+ paddingTop: 0,
2134
+ paddingBottom: 0,
2135
+ minHeight: height * .86,
2136
+ overflow: 'hidden',
2137
+ width: '100%'
2138
+ },
2139
+ container: {
2140
+ flex: 1,
2141
+ backgroundColor: '#FAFAFA'
2142
+ },
2143
+ // ============================================
2144
+ // ENOCH-STYLE WELCOME FLOW STYLES
2145
+ // ============================================
2146
+ welcomeContainer: {
2147
+ flex: 1,
2148
+ alignItems: 'center',
2149
+ paddingTop: 70,
2150
+ paddingHorizontal: 24
2151
+ },
2152
+ brandMarkContainer: {
2153
+ marginBottom: 32
2154
+ },
2155
+ headingContainer: {
2156
+ marginBottom: 24
2157
+ },
2158
+ bodyContainer: {
2159
+ marginBottom: 32,
2160
+ width: '100%'
2161
+ },
2162
+ welcomeSpacer: {
2163
+ flex: 1,
2164
+ minHeight: 20
2165
+ },
2166
+ welcomeButtonContainer: {
2167
+ width: '100%',
2168
+ paddingBottom: 20
2169
+ },
2170
+ // ============================================
2171
+ handleContainer: {
2172
+ alignItems: 'center',
2173
+ paddingTop: 12,
2174
+ paddingBottom: 4,
2175
+ backgroundColor: 'transparent'
2176
+ },
2177
+ handleButton: {
2178
+ padding: 0,
2179
+ width: 120,
2180
+ alignItems: 'center'
2181
+ },
2182
+ handle: {
2183
+ width: 100,
2184
+ height: 6,
2185
+ borderRadius: 3,
2186
+ backgroundColor: '#D0D0D0'
2187
+ },
2188
+ debugPanel: {
2189
+ position: 'absolute',
2190
+ top: 60,
2191
+ right: 10,
2192
+ backgroundColor: 'rgba(0,0,0,0.85)',
2193
+ padding: 12,
2194
+ borderRadius: 8,
2195
+ zIndex: 9999,
2196
+ minWidth: 200
2197
+ },
2198
+ debugTitle: {
2199
+ color: '#fff',
2200
+ fontSize: 14,
2201
+ fontWeight: '700',
2202
+ marginBottom: 8
2203
+ },
2204
+ debugRow: {
2205
+ flexDirection: 'row',
2206
+ alignItems: 'center',
2207
+ marginBottom: 6
2208
+ },
2209
+ debugLabel: {
2210
+ color: '#fff',
2211
+ fontSize: 12,
2212
+ flex: 1
2213
+ },
2214
+ debugBtn: {
2215
+ backgroundColor: '#444',
2216
+ paddingHorizontal: 12,
2217
+ paddingVertical: 4,
2218
+ borderRadius: 4,
2219
+ marginLeft: 4
2220
+ },
2221
+ debugCloseBtn: {
2222
+ backgroundColor: '#666',
2223
+ paddingVertical: 6,
2224
+ borderRadius: 4,
2225
+ marginTop: 8,
2226
+ alignItems: 'center'
2227
+ },
2228
+ debugCloseBtnText: {
2229
+ color: '#fff',
2230
+ fontSize: 12
2231
+ },
2232
+ header: {
2233
+ alignItems: 'center',
2234
+ marginBottom: 20,
2235
+ paddingHorizontal: 24
2236
+ },
2237
+ headerContent: {
2238
+ flexDirection: 'row',
2239
+ alignItems: 'center',
2240
+ justifyContent: 'center',
2241
+ marginBottom: 24
2242
+ },
2243
+ appIcon: {
2244
+ width: 48,
2245
+ height: 48,
2246
+ borderRadius: 24,
2247
+ backgroundColor: '#F5F5F5',
2248
+ alignItems: 'center',
2249
+ justifyContent: 'center'
2250
+ },
2251
+ appIconText: {
2252
+ fontSize: 24,
2253
+ fontWeight: 'bold',
2254
+ color: '#333'
2255
+ },
2256
+ arrow: {
2257
+ marginHorizontal: 16,
2258
+ fontSize: 24,
2259
+ color: '#666'
2260
+ },
2261
+ onairosIcon: {
2262
+ width: 54,
2263
+ height: 54,
2264
+ borderRadius: 32,
2265
+ backgroundColor: 'transparent',
2266
+ alignItems: 'center',
2267
+ justifyContent: 'center'
2268
+ },
2269
+ onairosIconText: {
2270
+ fontSize: 24,
2271
+ fontWeight: 'bold',
2272
+ color: '#fff'
2273
+ },
2274
+ onairosIconImage: {
2275
+ width: 54,
2276
+ height: 54
2277
+ },
2278
+ titleContainer: {
2279
+ alignItems: 'center'
2280
+ },
2281
+ mainTitle: {
2282
+ fontSize: 24,
2283
+ fontWeight: '600',
2284
+ color: '#333',
2285
+ textAlign: 'center',
2286
+ marginBottom: 12
2287
+ },
2288
+ privacyMessage: {
2289
+ fontSize: 14,
2290
+ color: '#666',
2291
+ textAlign: 'center',
2292
+ marginBottom: 20
2293
+ },
2294
+ privacyLink: {
2295
+ color: '#000000',
2296
+ fontWeight: '600',
2297
+ textDecorationLine: 'underline'
2298
+ },
2299
+ boldText: {
2300
+ fontWeight: 'bold'
2301
+ },
2302
+ content: {
2303
+ flex: 1,
2304
+ paddingHorizontal: 24
2305
+ },
2306
+ platformsScrollView: {
2307
+ flex: 1,
2308
+ width: '100%'
2309
+ },
2310
+ platformsScrollContent: {
2311
+ paddingBottom: 0,
2312
+ paddingHorizontal: 24
2313
+ },
2314
+ platformsContainer: {
2315
+ marginTop: 16
2316
+ },
2317
+ platformItem: {
2318
+ flexDirection: 'row',
2319
+ alignItems: 'center',
2320
+ justifyContent: 'space-between',
2321
+ paddingVertical: 16,
2322
+ paddingHorizontal: 8,
2323
+ borderBottomWidth: 1,
2324
+ borderBottomColor: '#E5E5E5'
2325
+ },
2326
+ platformInfo: {
2327
+ flexDirection: 'row',
2328
+ alignItems: 'center'
2329
+ },
2330
+ platformIcon: {
2331
+ width: 40,
2332
+ height: 40,
2333
+ borderRadius: 20,
2334
+ backgroundColor: '#F5F5F5',
2335
+ alignItems: 'center',
2336
+ justifyContent: 'center',
2337
+ marginRight: 16
2338
+ },
2339
+ platformIconText: {
2340
+ fontSize: 18,
2341
+ fontWeight: 'bold',
2342
+ color: '#333',
2343
+ textAlign: 'center',
2344
+ textAlignVertical: 'center'
2345
+ },
2346
+ platformIconImage: {
2347
+ width: 24,
2348
+ height: 24
2349
+ },
2350
+ youtubeIconImage: {
2351
+ width: 58,
2352
+ height: 58
2353
+ },
2354
+ redditIconImage: {
2355
+ width: 34,
2356
+ height: 34
2357
+ },
2358
+ pinterestIconImage: {
2359
+ width: 48,
2360
+ height: 48
2361
+ },
2362
+ gmailIconImage: {
2363
+ width: 32,
2364
+ height: 32
2365
+ },
2366
+ linkedinPlatformIcon: {
2367
+ width: 40,
2368
+ height: 40,
2369
+ borderRadius: 8,
2370
+ backgroundColor: '#F5F5F5',
2371
+ alignItems: 'center',
2372
+ justifyContent: 'center',
2373
+ marginRight: 16
2374
+ },
2375
+ pinterestPlatformIcon: {
2376
+ width: 34,
2377
+ height: 34,
2378
+ borderRadius: 17,
2379
+ backgroundColor: '#F5F5F5',
2380
+ alignItems: 'center',
2381
+ justifyContent: 'center',
2382
+ marginRight: 16
2383
+ },
2384
+ platformName: {
2385
+ fontSize: 16,
2386
+ color: '#333',
2387
+ textAlignVertical: 'center'
2388
+ },
2389
+ footer: {
2390
+ flexDirection: 'row',
2391
+ alignItems: 'center',
2392
+ justifyContent: 'space-between',
2393
+ padding: 24,
2394
+ borderTopWidth: 1,
2395
+ borderTopColor: '#E5E5E5'
2396
+ },
2397
+ footerButtonCancel: {
2398
+ paddingVertical: 12,
2399
+ paddingHorizontal: 16
2400
+ },
2401
+ footerButtonText: {
2402
+ color: '#666',
2403
+ fontSize: 16
2404
+ },
2405
+ footerButtonConfirm: {
2406
+ paddingVertical: 12,
2407
+ paddingHorizontal: 24,
2408
+ backgroundColor: '#000000',
2409
+ borderRadius: 8,
2410
+ marginTop: 20
2411
+ },
2412
+ footerButtonConnected: {
2413
+ paddingVertical: 12,
2414
+ paddingHorizontal: 24,
2415
+ backgroundColor: '#E9C46A',
2416
+ borderRadius: 8
2417
+ },
2418
+ footerButtonDisabled: {
2419
+ backgroundColor: '#E5E5E5'
2420
+ },
2421
+ footerButtonTextConfirm: {
2422
+ color: '#fff',
2423
+ fontSize: 16,
2424
+ fontWeight: '600'
2425
+ },
2426
+ footerButtonTextConnected: {
2427
+ color: '#000',
2428
+ fontSize: 16,
2429
+ fontWeight: '600'
2430
+ },
2431
+ connectContainer: {
2432
+ flex: 1
2433
+ },
2434
+ modalContent: {
2435
+ flex: 1,
2436
+ backgroundColor: '#FFFFFF',
2437
+ borderTopLeftRadius: 20,
2438
+ borderTopRightRadius: 20,
2439
+ padding: 24
2440
+ },
2441
+ backButton: {
2442
+ padding: 8,
2443
+ width: 40
2444
+ },
2445
+ backButtonText: {
2446
+ fontSize: 24,
2447
+ color: '#000000'
2448
+ },
2449
+ backButtonSpacer: {
2450
+ width: 40
2451
+ },
2452
+ headerTitle: {
2453
+ fontSize: 18,
2454
+ fontWeight: '600',
2455
+ color: '#333',
2456
+ textAlign: 'center'
2457
+ },
2458
+ privacyHeader: {
2459
+ flexDirection: 'row',
2460
+ alignItems: 'center',
2461
+ justifyContent: 'space-between',
2462
+ paddingHorizontal: 16,
2463
+ paddingVertical: 20,
2464
+ backgroundColor: '#FFFFFF',
2465
+ borderBottomWidth: 1,
2466
+ borderBottomColor: '#F0F0F0'
2467
+ },
2468
+ privacyDetailsContainer: {
2469
+ paddingHorizontal: 24,
2470
+ paddingVertical: 8,
2471
+ flex: 1,
2472
+ marginTop: 20
2473
+ },
2474
+ privacyDetailsTitle: {
2475
+ fontSize: 20,
2476
+ fontWeight: '600',
2477
+ color: '#333',
2478
+ marginBottom: 0
2479
+ },
2480
+ privacyBulletPoint: {
2481
+ flexDirection: 'row',
2482
+ marginBottom: 16,
2483
+ alignItems: 'flex-start'
2484
+ },
2485
+ bulletPoint: {
2486
+ fontSize: 18,
2487
+ marginRight: 8,
2488
+ color: '#333'
2489
+ },
2490
+ privacyBulletText: {
2491
+ fontSize: 16,
2492
+ color: '#333',
2493
+ flex: 1,
2494
+ lineHeight: 24
2495
+ },
2496
+ connectionsCountText: {
2497
+ fontSize: 18,
2498
+ fontWeight: '600',
2499
+ color: '#333',
2500
+ marginBottom: 24
2501
+ },
2502
+ personaContainer: {
2503
+ flex: 1,
2504
+ padding: 16,
2505
+ backgroundColor: '#fff',
2506
+ justifyContent: 'flex-start'
2507
+ },
2508
+ personaHeaderWithBack: {
2509
+ flexDirection: 'row',
2510
+ alignItems: 'center',
2511
+ justifyContent: 'space-between',
2512
+ marginBottom: 16,
2513
+ paddingVertical: 8
2514
+ },
2515
+ personaBackButton: {
2516
+ padding: 8
2517
+ },
2518
+ personaHeader: {
2519
+ alignItems: 'center',
2520
+ marginBottom: 32,
2521
+ paddingHorizontal: 24
2522
+ },
2523
+ personaTitle: {
2524
+ fontSize: 20,
2525
+ fontWeight: '600',
2526
+ color: '#333',
2527
+ textAlign: 'center',
2528
+ flex: 1,
2529
+ marginBottom: 8
2530
+ },
2531
+ personaSubtitle: {
2532
+ fontSize: 14,
2533
+ color: '#666',
2534
+ marginBottom: 24,
2535
+ textAlign: 'center'
2536
+ },
2537
+ personaProgressContainer: {
2538
+ marginBottom: 24,
2539
+ paddingHorizontal: 0
2540
+ },
2541
+ personaProgressBar: {
2542
+ height: 8,
2543
+ backgroundColor: '#F5F5F5',
2544
+ borderRadius: 4,
2545
+ overflow: 'hidden',
2546
+ marginBottom: 12
2547
+ },
2548
+ personaProgressFill: {
2549
+ height: '100%',
2550
+ backgroundColor: '#1BA9D4',
2551
+ borderRadius: 4
2552
+ },
2553
+ personaProgressText: {
2554
+ fontSize: 16,
2555
+ fontWeight: '600',
2556
+ color: '#333',
2557
+ textAlign: 'center',
2558
+ marginBottom: 8
2559
+ },
2560
+ personaStatusText: {
2561
+ fontSize: 14,
2562
+ color: '#666',
2563
+ textAlign: 'center'
2564
+ },
2565
+ personaCompleteContainer: {
2566
+ alignItems: 'center',
2567
+ paddingHorizontal: 0
2568
+ },
2569
+ personaCompleteTitle: {
2570
+ fontSize: 20,
2571
+ fontWeight: '600',
2572
+ color: '#333',
2573
+ marginBottom: 8,
2574
+ textAlign: 'center'
2575
+ },
2576
+ personaCompleteSubtitle: {
2577
+ fontSize: 14,
2578
+ color: '#666',
2579
+ textAlign: 'center',
2580
+ marginBottom: 40
2581
+ },
2582
+ personaContinueButton: {
2583
+ backgroundColor: '#000000',
2584
+ paddingVertical: 16,
2585
+ paddingHorizontal: 48,
2586
+ borderRadius: 16,
2587
+ alignItems: 'center',
2588
+ width: '100%',
2589
+ marginTop: 32,
2590
+ shadowColor: '#000',
2591
+ shadowOffset: {
2592
+ width: 0,
2593
+ height: 2
2594
+ },
2595
+ shadowOpacity: 0.1,
2596
+ shadowRadius: 4,
2597
+ elevation: 3
2598
+ },
2599
+ personaContinueButtonText: {
2600
+ color: '#fff',
2601
+ fontSize: 16,
2602
+ fontWeight: '600'
2603
+ },
2604
+ progressError: {
2605
+ backgroundColor: '#FF3B30'
2606
+ },
2607
+ dataWarningContainer: {
2608
+ padding: 16,
2609
+ borderRadius: 12,
2610
+ marginTop: 16,
2611
+ borderWidth: 1,
2612
+ shadowColor: '#000',
2613
+ shadowOffset: {
2614
+ width: 0,
2615
+ height: 2
2616
+ },
2617
+ shadowOpacity: 0.1,
2618
+ shadowRadius: 4,
2619
+ elevation: 3
2620
+ },
2621
+ dataWarningHeader: {
2622
+ flexDirection: 'row',
2623
+ alignItems: 'center',
2624
+ marginBottom: 8
2625
+ },
2626
+ dataWarningIcon: {
2627
+ fontSize: 20,
2628
+ marginRight: 8
2629
+ },
2630
+ dataWarningTitle: {
2631
+ fontSize: 16,
2632
+ fontWeight: '600',
2633
+ flex: 1
2634
+ },
2635
+ dataWarningMessage: {
2636
+ fontSize: 14,
2637
+ marginBottom: 0,
2638
+ lineHeight: 20
2639
+ },
2640
+ dataWarningSuggestions: {
2641
+ marginTop: 12,
2642
+ paddingTop: 12,
2643
+ borderTopWidth: 1
2644
+ },
2645
+ dataWarningSuggestionsTitle: {
2646
+ fontSize: 14,
2647
+ fontWeight: '600',
2648
+ marginBottom: 6
2649
+ },
2650
+ dataWarningSuggestionItem: {
2651
+ fontSize: 13,
2652
+ marginBottom: 4,
2653
+ lineHeight: 18
2654
+ },
2655
+ dataWarningContinueNote: {
2656
+ fontSize: 13,
2657
+ fontWeight: '500',
2658
+ marginTop: 12,
2659
+ fontStyle: 'italic'
2660
+ },
2661
+ dataWarningError: {
2662
+ backgroundColor: '#FFF5F5',
2663
+ borderColor: '#FEB2B2'
2664
+ },
2665
+ dataInfoContainer: {
2666
+ backgroundColor: '#F0F9FF',
2667
+ borderColor: '#BAE6FD'
2668
+ },
2669
+ dataConnectionsRequired: {
2670
+ backgroundColor: '#F5F5F5',
2671
+ borderColor: '#D1D5DB',
2672
+ shadowColor: '#6B7280',
2673
+ shadowOffset: {
2674
+ width: 0,
2675
+ height: 0
2676
+ },
2677
+ shadowOpacity: 0.15,
2678
+ shadowRadius: 8
2679
+ },
2680
+ highlightedBackButton: {
2681
+ backgroundColor: '#F5F5F5',
2682
+ borderRadius: 20,
2683
+ borderWidth: 2,
2684
+ borderColor: '#000000',
2685
+ shadowColor: '#000000',
2686
+ shadowOffset: {
2687
+ width: 0,
2688
+ height: 0
2689
+ },
2690
+ shadowOpacity: 0.3,
2691
+ shadowRadius: 8,
2692
+ elevation: 5
2693
+ },
2694
+ highlightedBackArrow: {
2695
+ color: '#000000',
2696
+ fontWeight: 'bold'
2697
+ },
2698
+ goBackButton: {
2699
+ backgroundColor: '#000000',
2700
+ paddingVertical: 12,
2701
+ paddingHorizontal: 16,
2702
+ borderRadius: 8,
2703
+ marginTop: 12,
2704
+ alignItems: 'center',
2705
+ shadowColor: '#000000',
2706
+ shadowOffset: {
2707
+ width: 0,
2708
+ height: 0
2709
+ },
2710
+ shadowOpacity: 0.3,
2711
+ shadowRadius: 6,
2712
+ elevation: 3
2713
+ },
2714
+ goBackButtonText: {
2715
+ color: '#FFFFFF',
2716
+ fontSize: 14,
2717
+ fontWeight: '600'
2718
+ },
2719
+ additionalPlatformsToggle: {
2720
+ paddingVertical: 16,
2721
+ paddingHorizontal: 8,
2722
+ alignItems: 'center',
2723
+ borderBottomWidth: 1,
2724
+ borderBottomColor: '#E5E5E5'
2725
+ },
2726
+ additionalPlatformsText: {
2727
+ fontSize: 14,
2728
+ color: '#666',
2729
+ fontWeight: '500'
2730
+ },
2731
+ asterisk: {
2732
+ color: '#FF6B6B',
2733
+ fontSize: 16,
2734
+ fontWeight: 'bold',
2735
+ marginLeft: 2
2736
+ },
2737
+ linkedinRequirementContainer: {
2738
+ backgroundColor: '#F8F9FA',
2739
+ borderWidth: 1,
2740
+ borderColor: '#E5E7EB',
2741
+ borderRadius: 8,
2742
+ paddingHorizontal: 12,
2743
+ paddingVertical: 8,
2744
+ marginTop: 8,
2745
+ marginHorizontal: 4
2746
+ },
2747
+ linkedinRequirementText: {
2748
+ fontSize: 12,
2749
+ fontStyle: 'italic',
2750
+ textAlign: 'center'
2751
+ },
2752
+ linkedinRequirementAsterisk: {
2753
+ color: '#FF6B6B',
2754
+ fontWeight: 'bold'
2755
+ },
2756
+ linkedinRequirementMessage: {
2757
+ color: '#6B7280'
2758
+ },
2759
+ existingUserBanner: {
2760
+ backgroundColor: '#F0F9FF',
2761
+ borderWidth: 1,
2762
+ borderColor: '#0EA5E9',
2763
+ borderRadius: 12,
2764
+ paddingHorizontal: 16,
2765
+ paddingVertical: 12,
2766
+ marginTop: 12
2767
+ },
2768
+ existingUserText: {
2769
+ fontSize: 14,
2770
+ fontWeight: '600',
2771
+ color: '#0369A1',
2772
+ marginBottom: 4
2773
+ },
2774
+ existingUserSubtext: {
2775
+ fontSize: 12,
2776
+ color: '#0C4A6E',
2777
+ lineHeight: 16
2778
+ }
2779
+ });
2780
+ //# sourceMappingURL=UniversalOnboarding.js.map