@tidecloak/js 0.12.33 → 0.12.39

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 (528) hide show
  1. package/dist/cjs/lib/tidecloak.js +1743 -1629
  2. package/dist/cjs/lib/tidecloak.js.map +1 -1
  3. package/dist/cjs/src/IAMService.js +5 -11
  4. package/dist/cjs/src/IAMService.js.map +1 -1
  5. package/dist/cjs/src/index.js +4 -21
  6. package/dist/cjs/src/index.js.map +1 -1
  7. package/dist/cjs/src/policy-react.js +3 -0
  8. package/dist/cjs/src/policy-react.js.map +1 -0
  9. package/dist/cjs/src/policy.css +1 -0
  10. package/dist/esm/lib/tidecloak.js +1744 -1619
  11. package/dist/esm/lib/tidecloak.js.map +1 -1
  12. package/dist/esm/src/IAMService.js +1 -1
  13. package/dist/esm/src/IAMService.js.map +1 -1
  14. package/dist/esm/src/index.js +2 -6
  15. package/dist/esm/src/index.js.map +1 -1
  16. package/dist/esm/src/policy-react.js +3 -0
  17. package/dist/esm/src/policy-react.js.map +1 -0
  18. package/dist/esm/src/policy.css +1 -0
  19. package/dist/types/IAMService.d.ts +106 -0
  20. package/dist/types/index.d.ts +3 -0
  21. package/dist/types/lib/tidecloak.d.ts +324 -35
  22. package/dist/types/src/IAMService.d.ts +1 -2
  23. package/dist/types/src/index.d.ts +2 -3
  24. package/dist/types/src/policy-react.d.ts +1 -0
  25. package/package.json +18 -29
  26. package/scripts/postinstall.cjs +36 -0
  27. package/silent-check-sso.html +1 -0
  28. package/dist/cjs/modules/tide-js/Clients/ClientBase.js +0 -213
  29. package/dist/cjs/modules/tide-js/Clients/ClientBase.js.map +0 -1
  30. package/dist/cjs/modules/tide-js/Clients/EnclaveToMobileTunnelClient.js +0 -55
  31. package/dist/cjs/modules/tide-js/Clients/EnclaveToMobileTunnelClient.js.map +0 -1
  32. package/dist/cjs/modules/tide-js/Clients/NetworkClient.js +0 -96
  33. package/dist/cjs/modules/tide-js/Clients/NetworkClient.js.map +0 -1
  34. package/dist/cjs/modules/tide-js/Clients/NodeClient.js +0 -532
  35. package/dist/cjs/modules/tide-js/Clients/NodeClient.js.map +0 -1
  36. package/dist/cjs/modules/tide-js/Clients/PollingClient.js +0 -87
  37. package/dist/cjs/modules/tide-js/Clients/PollingClient.js.map +0 -1
  38. package/dist/cjs/modules/tide-js/Clients/VoucherClient.js +0 -37
  39. package/dist/cjs/modules/tide-js/Clients/VoucherClient.js.map +0 -1
  40. package/dist/cjs/modules/tide-js/Clients/WebSocketClientBase.js +0 -51
  41. package/dist/cjs/modules/tide-js/Clients/WebSocketClientBase.js.map +0 -1
  42. package/dist/cjs/modules/tide-js/Cryptide/Components/BaseComponent.js +0 -180
  43. package/dist/cjs/modules/tide-js/Cryptide/Components/BaseComponent.js.map +0 -1
  44. package/dist/cjs/modules/tide-js/Cryptide/Components/ComponentRegistry.js +0 -30
  45. package/dist/cjs/modules/tide-js/Cryptide/Components/ComponentRegistry.js.map +0 -1
  46. package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/AES/AESScheme.js +0 -11
  47. package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/AES/AESScheme.js.map +0 -1
  48. package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/BaseScheme.js +0 -13
  49. package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/BaseScheme.js.map +0 -1
  50. package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Components.js +0 -166
  51. package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Components.js.map +0 -1
  52. package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Scheme.js +0 -62
  53. package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Scheme.js.map +0 -1
  54. package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/SchemeRegistry.js +0 -13
  55. package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/SchemeRegistry.js.map +0 -1
  56. package/dist/cjs/modules/tide-js/Cryptide/Ed25519.js +0 -535
  57. package/dist/cjs/modules/tide-js/Cryptide/Ed25519.js.map +0 -1
  58. package/dist/cjs/modules/tide-js/Cryptide/Encryption/AES.js +0 -109
  59. package/dist/cjs/modules/tide-js/Cryptide/Encryption/AES.js.map +0 -1
  60. package/dist/cjs/modules/tide-js/Cryptide/Encryption/DH.js +0 -53
  61. package/dist/cjs/modules/tide-js/Cryptide/Encryption/DH.js.map +0 -1
  62. package/dist/cjs/modules/tide-js/Cryptide/Encryption/ElGamal.js +0 -71
  63. package/dist/cjs/modules/tide-js/Cryptide/Encryption/ElGamal.js.map +0 -1
  64. package/dist/cjs/modules/tide-js/Cryptide/Hashing/H2P.js +0 -248
  65. package/dist/cjs/modules/tide-js/Cryptide/Hashing/H2P.js.map +0 -1
  66. package/dist/cjs/modules/tide-js/Cryptide/Hashing/Hash.js +0 -60
  67. package/dist/cjs/modules/tide-js/Cryptide/Hashing/Hash.js.map +0 -1
  68. package/dist/cjs/modules/tide-js/Cryptide/Interpolation.js +0 -107
  69. package/dist/cjs/modules/tide-js/Cryptide/Interpolation.js.map +0 -1
  70. package/dist/cjs/modules/tide-js/Cryptide/Math.js +0 -134
  71. package/dist/cjs/modules/tide-js/Cryptide/Math.js.map +0 -1
  72. package/dist/cjs/modules/tide-js/Cryptide/Serialization.js +0 -682
  73. package/dist/cjs/modules/tide-js/Cryptide/Serialization.js.map +0 -1
  74. package/dist/cjs/modules/tide-js/Cryptide/Signing/BlindSig.js +0 -56
  75. package/dist/cjs/modules/tide-js/Cryptide/Signing/BlindSig.js.map +0 -1
  76. package/dist/cjs/modules/tide-js/Cryptide/Signing/EdDSA.js +0 -84
  77. package/dist/cjs/modules/tide-js/Cryptide/Signing/EdDSA.js.map +0 -1
  78. package/dist/cjs/modules/tide-js/Cryptide/Signing/TideSignature.js +0 -102
  79. package/dist/cjs/modules/tide-js/Cryptide/Signing/TideSignature.js.map +0 -1
  80. package/dist/cjs/modules/tide-js/Cryptide/TideKey.js +0 -85
  81. package/dist/cjs/modules/tide-js/Cryptide/TideKey.js.map +0 -1
  82. package/dist/cjs/modules/tide-js/Cryptide/TideMemoryObjects.js +0 -34
  83. package/dist/cjs/modules/tide-js/Cryptide/TideMemoryObjects.js.map +0 -1
  84. package/dist/cjs/modules/tide-js/Cryptide/index.js +0 -74
  85. package/dist/cjs/modules/tide-js/Cryptide/index.js.map +0 -1
  86. package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCMKAcceptAdminFlow.js +0 -6
  87. package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCMKAcceptAdminFlow.js.map +0 -1
  88. package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordFlow.js +0 -134
  89. package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordFlow.js.map +0 -1
  90. package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordlessFlow.js +0 -83
  91. package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordlessFlow.js.map +0 -1
  92. package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCVKAuthenticationFlow.js +0 -3
  93. package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCVKAuthenticationFlow.js.map +0 -1
  94. package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dMobileAuthenticationFlow.js +0 -199
  95. package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dMobileAuthenticationFlow.js.map +0 -1
  96. package/dist/cjs/modules/tide-js/Flow/DecryptionFlows/dVVKDecryptionFlow.js +0 -58
  97. package/dist/cjs/modules/tide-js/Flow/DecryptionFlows/dVVKDecryptionFlow.js.map +0 -1
  98. package/dist/cjs/modules/tide-js/Flow/EncryptionFlows/AuthorizedEncryptionFlow.js +0 -180
  99. package/dist/cjs/modules/tide-js/Flow/EncryptionFlows/AuthorizedEncryptionFlow.js.map +0 -1
  100. package/dist/cjs/modules/tide-js/Flow/SigningFlows/AuthorizedSigningFlow.js +0 -49
  101. package/dist/cjs/modules/tide-js/Flow/SigningFlows/AuthorizedSigningFlow.js.map +0 -1
  102. package/dist/cjs/modules/tide-js/Flow/SigningFlows/dTestVVkSigningFlow.js +0 -70
  103. package/dist/cjs/modules/tide-js/Flow/SigningFlows/dTestVVkSigningFlow.js.map +0 -1
  104. package/dist/cjs/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow.js +0 -74
  105. package/dist/cjs/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow.js.map +0 -1
  106. package/dist/cjs/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow2Step.js +0 -134
  107. package/dist/cjs/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow2Step.js.map +0 -1
  108. package/dist/cjs/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow_DEPRECATED.js +0 -67
  109. package/dist/cjs/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow_DEPRECATED.js.map +0 -1
  110. package/dist/cjs/modules/tide-js/Flow/SimulatorFlow.js +0 -57
  111. package/dist/cjs/modules/tide-js/Flow/SimulatorFlow.js.map +0 -1
  112. package/dist/cjs/modules/tide-js/Flow/VoucherFlows/VoucherFlow.js +0 -51
  113. package/dist/cjs/modules/tide-js/Flow/VoucherFlows/VoucherFlow.js.map +0 -1
  114. package/dist/cjs/modules/tide-js/Flow/dAccountRecoveryFlow.js +0 -95
  115. package/dist/cjs/modules/tide-js/Flow/dAccountRecoveryFlow.js.map +0 -1
  116. package/dist/cjs/modules/tide-js/Flow/dKeyGenerationFlow.js +0 -199
  117. package/dist/cjs/modules/tide-js/Flow/dKeyGenerationFlow.js.map +0 -1
  118. package/dist/cjs/modules/tide-js/Math/DecryptRequest.js +0 -52
  119. package/dist/cjs/modules/tide-js/Math/DecryptRequest.js.map +0 -1
  120. package/dist/cjs/modules/tide-js/Math/EncryptRequest.js +0 -96
  121. package/dist/cjs/modules/tide-js/Math/EncryptRequest.js.map +0 -1
  122. package/dist/cjs/modules/tide-js/Math/KeyAuthentication.js +0 -317
  123. package/dist/cjs/modules/tide-js/Math/KeyAuthentication.js.map +0 -1
  124. package/dist/cjs/modules/tide-js/Math/KeyDecryption.js +0 -18
  125. package/dist/cjs/modules/tide-js/Math/KeyDecryption.js.map +0 -1
  126. package/dist/cjs/modules/tide-js/Math/KeyGeneration.js +0 -148
  127. package/dist/cjs/modules/tide-js/Math/KeyGeneration.js.map +0 -1
  128. package/dist/cjs/modules/tide-js/Math/KeySigning.js +0 -24
  129. package/dist/cjs/modules/tide-js/Math/KeySigning.js.map +0 -1
  130. package/dist/cjs/modules/tide-js/Models/AdminAuthorization.js +0 -83
  131. package/dist/cjs/modules/tide-js/Models/AdminAuthorization.js.map +0 -1
  132. package/dist/cjs/modules/tide-js/Models/AuthRequest.js +0 -66
  133. package/dist/cjs/modules/tide-js/Models/AuthRequest.js.map +0 -1
  134. package/dist/cjs/modules/tide-js/Models/AuthorizationBuilder.js +0 -61
  135. package/dist/cjs/modules/tide-js/Models/AuthorizationBuilder.js.map +0 -1
  136. package/dist/cjs/modules/tide-js/Models/BaseTideRequest.js +0 -127
  137. package/dist/cjs/modules/tide-js/Models/BaseTideRequest.js.map +0 -1
  138. package/dist/cjs/modules/tide-js/Models/Cardano/CardanoTxBody.js +0 -198
  139. package/dist/cjs/modules/tide-js/Models/Cardano/CardanoTxBody.js.map +0 -1
  140. package/dist/cjs/modules/tide-js/Models/Datum.js +0 -41
  141. package/dist/cjs/modules/tide-js/Models/Datum.js.map +0 -1
  142. package/dist/cjs/modules/tide-js/Models/Doken.js +0 -140
  143. package/dist/cjs/modules/tide-js/Models/Doken.js.map +0 -1
  144. package/dist/cjs/modules/tide-js/Models/EnclaveEntry.js +0 -50
  145. package/dist/cjs/modules/tide-js/Models/EnclaveEntry.js.map +0 -1
  146. package/dist/cjs/modules/tide-js/Models/Infos/KeyInfo.js +0 -49
  147. package/dist/cjs/modules/tide-js/Models/Infos/KeyInfo.js.map +0 -1
  148. package/dist/cjs/modules/tide-js/Models/Infos/OrkInfo.js +0 -53
  149. package/dist/cjs/modules/tide-js/Models/Infos/OrkInfo.js.map +0 -1
  150. package/dist/cjs/modules/tide-js/Models/InitializationCertificate.js +0 -35
  151. package/dist/cjs/modules/tide-js/Models/InitializationCertificate.js.map +0 -1
  152. package/dist/cjs/modules/tide-js/Models/ModelRegistry.js +0 -226
  153. package/dist/cjs/modules/tide-js/Models/ModelRegistry.js.map +0 -1
  154. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Authenticate/AuthenticateResponse.js +0 -34
  155. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Authenticate/AuthenticateResponse.js.map +0 -1
  156. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/CMKConvertResponse.js +0 -36
  157. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/CMKConvertResponse.js.map +0 -1
  158. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/ConvertRememberedResponse.js +0 -36
  159. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/ConvertRememberedResponse.js.map +0 -1
  160. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedCMKConvertResponse.js +0 -34
  161. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedCMKConvertResponse.js.map +0 -1
  162. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedConvertRememberedResponse.js +0 -37
  163. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedConvertRememberedResponse.js.map +0 -1
  164. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedDeviceConvertResponse.js +0 -45
  165. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedDeviceConvertResponse.js.map +0 -1
  166. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedPrismConvertResponse.js +0 -37
  167. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedPrismConvertResponse.js.map +0 -1
  168. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DeviceConvertResponse.js +0 -36
  169. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DeviceConvertResponse.js.map +0 -1
  170. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/PrismConvertResponse.js +0 -36
  171. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/PrismConvertResponse.js.map +0 -1
  172. package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/GenShard/DecryptedGenShardResponse.js +0 -49
  173. package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/GenShard/DecryptedGenShardResponse.js.map +0 -1
  174. package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/GenShard/GenShardResponse.js +0 -34
  175. package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/GenShard/GenShardResponse.js.map +0 -1
  176. package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/SetShard/DecryptedSetShardResponse.js +0 -39
  177. package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/SetShard/DecryptedSetShardResponse.js.map +0 -1
  178. package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/SetShard/SetShardResponse.js +0 -31
  179. package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/SetShard/SetShardResponse.js.map +0 -1
  180. package/dist/cjs/modules/tide-js/Models/Responses/Reservation/ReservationConfirmation.js +0 -26
  181. package/dist/cjs/modules/tide-js/Models/Responses/Reservation/ReservationConfirmation.js.map +0 -1
  182. package/dist/cjs/modules/tide-js/Models/Responses/Vendor/VoucherResponse.js +0 -41
  183. package/dist/cjs/modules/tide-js/Models/Responses/Vendor/VoucherResponse.js.map +0 -1
  184. package/dist/cjs/modules/tide-js/Models/Rules/RuleSettingSignRequest.js +0 -81
  185. package/dist/cjs/modules/tide-js/Models/Rules/RuleSettingSignRequest.js.map +0 -1
  186. package/dist/cjs/modules/tide-js/Models/Rules/RuleSettings.js +0 -28
  187. package/dist/cjs/modules/tide-js/Models/Rules/RuleSettings.js.map +0 -1
  188. package/dist/cjs/modules/tide-js/Models/SerializedField.js +0 -63
  189. package/dist/cjs/modules/tide-js/Models/SerializedField.js.map +0 -1
  190. package/dist/cjs/modules/tide-js/Models/Transactions/CardanoTxBodySignRequest.js +0 -57
  191. package/dist/cjs/modules/tide-js/Models/Transactions/CardanoTxBodySignRequest.js.map +0 -1
  192. package/dist/cjs/modules/tide-js/Models/VendorData.js +0 -36
  193. package/dist/cjs/modules/tide-js/Models/VendorData.js.map +0 -1
  194. package/dist/cjs/modules/tide-js/Models/VendorSettings.js +0 -26
  195. package/dist/cjs/modules/tide-js/Models/VendorSettings.js.map +0 -1
  196. package/dist/cjs/modules/tide-js/RulesEngine/RuleEngineService.js +0 -92
  197. package/dist/cjs/modules/tide-js/RulesEngine/RuleEngineService.js.map +0 -1
  198. package/dist/cjs/modules/tide-js/RulesEngine/helperFunctions.js +0 -78
  199. package/dist/cjs/modules/tide-js/RulesEngine/helperFunctions.js.map +0 -1
  200. package/dist/cjs/modules/tide-js/RulesEngine/jsonHelpers.js +0 -68
  201. package/dist/cjs/modules/tide-js/RulesEngine/jsonHelpers.js.map +0 -1
  202. package/dist/cjs/modules/tide-js/RulesEngine/thresholdRules.js +0 -106
  203. package/dist/cjs/modules/tide-js/RulesEngine/thresholdRules.js.map +0 -1
  204. package/dist/cjs/modules/tide-js/Tests/AccountRecovery.js +0 -58
  205. package/dist/cjs/modules/tide-js/Tests/AccountRecovery.js.map +0 -1
  206. package/dist/cjs/modules/tide-js/Tests/Components.js +0 -18
  207. package/dist/cjs/modules/tide-js/Tests/Components.js.map +0 -1
  208. package/dist/cjs/modules/tide-js/Tests/Encryption.js +0 -172
  209. package/dist/cjs/modules/tide-js/Tests/Encryption.js.map +0 -1
  210. package/dist/cjs/modules/tide-js/Tests/KeyAuthentication.js +0 -270
  211. package/dist/cjs/modules/tide-js/Tests/KeyAuthentication.js.map +0 -1
  212. package/dist/cjs/modules/tide-js/Tests/KeyGeneration.js +0 -224
  213. package/dist/cjs/modules/tide-js/Tests/KeyGeneration.js.map +0 -1
  214. package/dist/cjs/modules/tide-js/Tests/StripeLicensing.js +0 -41
  215. package/dist/cjs/modules/tide-js/Tests/StripeLicensing.js.map +0 -1
  216. package/dist/cjs/modules/tide-js/Tests/TideKey.js +0 -17
  217. package/dist/cjs/modules/tide-js/Tests/TideKey.js.map +0 -1
  218. package/dist/cjs/modules/tide-js/Tests/Tunelling.js +0 -63
  219. package/dist/cjs/modules/tide-js/Tests/Tunelling.js.map +0 -1
  220. package/dist/cjs/modules/tide-js/Tests/Verifier.js +0 -12
  221. package/dist/cjs/modules/tide-js/Tests/Verifier.js.map +0 -1
  222. package/dist/cjs/modules/tide-js/Tests/index.js +0 -50
  223. package/dist/cjs/modules/tide-js/Tests/index.js.map +0 -1
  224. package/dist/cjs/modules/tide-js/Tools/Utils.js +0 -287
  225. package/dist/cjs/modules/tide-js/Tools/Utils.js.map +0 -1
  226. package/dist/cjs/modules/tide-js/index.js +0 -71
  227. package/dist/cjs/modules/tide-js/index.js.map +0 -1
  228. package/dist/esm/modules/tide-js/Clients/ClientBase.js +0 -210
  229. package/dist/esm/modules/tide-js/Clients/ClientBase.js.map +0 -1
  230. package/dist/esm/modules/tide-js/Clients/EnclaveToMobileTunnelClient.js +0 -49
  231. package/dist/esm/modules/tide-js/Clients/EnclaveToMobileTunnelClient.js.map +0 -1
  232. package/dist/esm/modules/tide-js/Clients/NetworkClient.js +0 -90
  233. package/dist/esm/modules/tide-js/Clients/NetworkClient.js.map +0 -1
  234. package/dist/esm/modules/tide-js/Clients/NodeClient.js +0 -526
  235. package/dist/esm/modules/tide-js/Clients/NodeClient.js.map +0 -1
  236. package/dist/esm/modules/tide-js/Clients/PollingClient.js +0 -81
  237. package/dist/esm/modules/tide-js/Clients/PollingClient.js.map +0 -1
  238. package/dist/esm/modules/tide-js/Clients/VoucherClient.js +0 -31
  239. package/dist/esm/modules/tide-js/Clients/VoucherClient.js.map +0 -1
  240. package/dist/esm/modules/tide-js/Clients/WebSocketClientBase.js +0 -48
  241. package/dist/esm/modules/tide-js/Clients/WebSocketClientBase.js.map +0 -1
  242. package/dist/esm/modules/tide-js/Cryptide/Components/BaseComponent.js +0 -169
  243. package/dist/esm/modules/tide-js/Cryptide/Components/BaseComponent.js.map +0 -1
  244. package/dist/esm/modules/tide-js/Cryptide/Components/ComponentRegistry.js +0 -24
  245. package/dist/esm/modules/tide-js/Cryptide/Components/ComponentRegistry.js.map +0 -1
  246. package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/AES/AESScheme.js +0 -5
  247. package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/AES/AESScheme.js.map +0 -1
  248. package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/BaseScheme.js +0 -11
  249. package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/BaseScheme.js.map +0 -1
  250. package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Components.js +0 -157
  251. package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Components.js.map +0 -1
  252. package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Scheme.js +0 -57
  253. package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Scheme.js.map +0 -1
  254. package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/SchemeRegistry.js +0 -7
  255. package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/SchemeRegistry.js.map +0 -1
  256. package/dist/esm/modules/tide-js/Cryptide/Ed25519.js +0 -523
  257. package/dist/esm/modules/tide-js/Cryptide/Ed25519.js.map +0 -1
  258. package/dist/esm/modules/tide-js/Cryptide/Encryption/AES.js +0 -102
  259. package/dist/esm/modules/tide-js/Cryptide/Encryption/AES.js.map +0 -1
  260. package/dist/esm/modules/tide-js/Cryptide/Encryption/DH.js +0 -49
  261. package/dist/esm/modules/tide-js/Cryptide/Encryption/DH.js.map +0 -1
  262. package/dist/esm/modules/tide-js/Cryptide/Encryption/ElGamal.js +0 -68
  263. package/dist/esm/modules/tide-js/Cryptide/Encryption/ElGamal.js.map +0 -1
  264. package/dist/esm/modules/tide-js/Cryptide/Hashing/H2P.js +0 -245
  265. package/dist/esm/modules/tide-js/Cryptide/Hashing/H2P.js.map +0 -1
  266. package/dist/esm/modules/tide-js/Cryptide/Hashing/Hash.js +0 -55
  267. package/dist/esm/modules/tide-js/Cryptide/Hashing/Hash.js.map +0 -1
  268. package/dist/esm/modules/tide-js/Cryptide/Interpolation.js +0 -97
  269. package/dist/esm/modules/tide-js/Cryptide/Interpolation.js.map +0 -1
  270. package/dist/esm/modules/tide-js/Cryptide/Math.js +0 -120
  271. package/dist/esm/modules/tide-js/Cryptide/Math.js.map +0 -1
  272. package/dist/esm/modules/tide-js/Cryptide/Serialization.js +0 -644
  273. package/dist/esm/modules/tide-js/Cryptide/Serialization.js.map +0 -1
  274. package/dist/esm/modules/tide-js/Cryptide/Signing/BlindSig.js +0 -50
  275. package/dist/esm/modules/tide-js/Cryptide/Signing/BlindSig.js.map +0 -1
  276. package/dist/esm/modules/tide-js/Cryptide/Signing/EdDSA.js +0 -79
  277. package/dist/esm/modules/tide-js/Cryptide/Signing/EdDSA.js.map +0 -1
  278. package/dist/esm/modules/tide-js/Cryptide/Signing/TideSignature.js +0 -91
  279. package/dist/esm/modules/tide-js/Cryptide/Signing/TideSignature.js.map +0 -1
  280. package/dist/esm/modules/tide-js/Cryptide/TideKey.js +0 -79
  281. package/dist/esm/modules/tide-js/Cryptide/TideKey.js.map +0 -1
  282. package/dist/esm/modules/tide-js/Cryptide/TideMemoryObjects.js +0 -30
  283. package/dist/esm/modules/tide-js/Cryptide/TideMemoryObjects.js.map +0 -1
  284. package/dist/esm/modules/tide-js/Cryptide/index.js +0 -34
  285. package/dist/esm/modules/tide-js/Cryptide/index.js.map +0 -1
  286. package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCMKAcceptAdminFlow.js +0 -3
  287. package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCMKAcceptAdminFlow.js.map +0 -1
  288. package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordFlow.js +0 -128
  289. package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordFlow.js.map +0 -1
  290. package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordlessFlow.js +0 -77
  291. package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordlessFlow.js.map +0 -1
  292. package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCVKAuthenticationFlow.js +0 -2
  293. package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCVKAuthenticationFlow.js.map +0 -1
  294. package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dMobileAuthenticationFlow.js +0 -193
  295. package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dMobileAuthenticationFlow.js.map +0 -1
  296. package/dist/esm/modules/tide-js/Flow/DecryptionFlows/dVVKDecryptionFlow.js +0 -52
  297. package/dist/esm/modules/tide-js/Flow/DecryptionFlows/dVVKDecryptionFlow.js.map +0 -1
  298. package/dist/esm/modules/tide-js/Flow/EncryptionFlows/AuthorizedEncryptionFlow.js +0 -174
  299. package/dist/esm/modules/tide-js/Flow/EncryptionFlows/AuthorizedEncryptionFlow.js.map +0 -1
  300. package/dist/esm/modules/tide-js/Flow/SigningFlows/AuthorizedSigningFlow.js +0 -43
  301. package/dist/esm/modules/tide-js/Flow/SigningFlows/AuthorizedSigningFlow.js.map +0 -1
  302. package/dist/esm/modules/tide-js/Flow/SigningFlows/dTestVVkSigningFlow.js +0 -64
  303. package/dist/esm/modules/tide-js/Flow/SigningFlows/dTestVVkSigningFlow.js.map +0 -1
  304. package/dist/esm/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow.js +0 -68
  305. package/dist/esm/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow.js.map +0 -1
  306. package/dist/esm/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow2Step.js +0 -128
  307. package/dist/esm/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow2Step.js.map +0 -1
  308. package/dist/esm/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow_DEPRECATED.js +0 -61
  309. package/dist/esm/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow_DEPRECATED.js.map +0 -1
  310. package/dist/esm/modules/tide-js/Flow/SimulatorFlow.js +0 -51
  311. package/dist/esm/modules/tide-js/Flow/SimulatorFlow.js.map +0 -1
  312. package/dist/esm/modules/tide-js/Flow/VoucherFlows/VoucherFlow.js +0 -45
  313. package/dist/esm/modules/tide-js/Flow/VoucherFlows/VoucherFlow.js.map +0 -1
  314. package/dist/esm/modules/tide-js/Flow/dAccountRecoveryFlow.js +0 -89
  315. package/dist/esm/modules/tide-js/Flow/dAccountRecoveryFlow.js.map +0 -1
  316. package/dist/esm/modules/tide-js/Flow/dKeyGenerationFlow.js +0 -193
  317. package/dist/esm/modules/tide-js/Flow/dKeyGenerationFlow.js.map +0 -1
  318. package/dist/esm/modules/tide-js/Math/DecryptRequest.js +0 -46
  319. package/dist/esm/modules/tide-js/Math/DecryptRequest.js.map +0 -1
  320. package/dist/esm/modules/tide-js/Math/EncryptRequest.js +0 -90
  321. package/dist/esm/modules/tide-js/Math/EncryptRequest.js.map +0 -1
  322. package/dist/esm/modules/tide-js/Math/KeyAuthentication.js +0 -303
  323. package/dist/esm/modules/tide-js/Math/KeyAuthentication.js.map +0 -1
  324. package/dist/esm/modules/tide-js/Math/KeyDecryption.js +0 -15
  325. package/dist/esm/modules/tide-js/Math/KeyDecryption.js.map +0 -1
  326. package/dist/esm/modules/tide-js/Math/KeyGeneration.js +0 -141
  327. package/dist/esm/modules/tide-js/Math/KeyGeneration.js.map +0 -1
  328. package/dist/esm/modules/tide-js/Math/KeySigning.js +0 -20
  329. package/dist/esm/modules/tide-js/Math/KeySigning.js.map +0 -1
  330. package/dist/esm/modules/tide-js/Models/AdminAuthorization.js +0 -79
  331. package/dist/esm/modules/tide-js/Models/AdminAuthorization.js.map +0 -1
  332. package/dist/esm/modules/tide-js/Models/AuthRequest.js +0 -63
  333. package/dist/esm/modules/tide-js/Models/AuthRequest.js.map +0 -1
  334. package/dist/esm/modules/tide-js/Models/AuthorizationBuilder.js +0 -55
  335. package/dist/esm/modules/tide-js/Models/AuthorizationBuilder.js.map +0 -1
  336. package/dist/esm/modules/tide-js/Models/BaseTideRequest.js +0 -124
  337. package/dist/esm/modules/tide-js/Models/BaseTideRequest.js.map +0 -1
  338. package/dist/esm/modules/tide-js/Models/Cardano/CardanoTxBody.js +0 -195
  339. package/dist/esm/modules/tide-js/Models/Cardano/CardanoTxBody.js.map +0 -1
  340. package/dist/esm/modules/tide-js/Models/Datum.js +0 -38
  341. package/dist/esm/modules/tide-js/Models/Datum.js.map +0 -1
  342. package/dist/esm/modules/tide-js/Models/Doken.js +0 -134
  343. package/dist/esm/modules/tide-js/Models/Doken.js.map +0 -1
  344. package/dist/esm/modules/tide-js/Models/EnclaveEntry.js +0 -44
  345. package/dist/esm/modules/tide-js/Models/EnclaveEntry.js.map +0 -1
  346. package/dist/esm/modules/tide-js/Models/Infos/KeyInfo.js +0 -43
  347. package/dist/esm/modules/tide-js/Models/Infos/KeyInfo.js.map +0 -1
  348. package/dist/esm/modules/tide-js/Models/Infos/OrkInfo.js +0 -50
  349. package/dist/esm/modules/tide-js/Models/Infos/OrkInfo.js.map +0 -1
  350. package/dist/esm/modules/tide-js/Models/InitializationCertificate.js +0 -32
  351. package/dist/esm/modules/tide-js/Models/InitializationCertificate.js.map +0 -1
  352. package/dist/esm/modules/tide-js/Models/ModelRegistry.js +0 -218
  353. package/dist/esm/modules/tide-js/Models/ModelRegistry.js.map +0 -1
  354. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Authenticate/AuthenticateResponse.js +0 -31
  355. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Authenticate/AuthenticateResponse.js.map +0 -1
  356. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/CMKConvertResponse.js +0 -33
  357. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/CMKConvertResponse.js.map +0 -1
  358. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/ConvertRememberedResponse.js +0 -33
  359. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/ConvertRememberedResponse.js.map +0 -1
  360. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedCMKConvertResponse.js +0 -31
  361. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedCMKConvertResponse.js.map +0 -1
  362. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedConvertRememberedResponse.js +0 -34
  363. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedConvertRememberedResponse.js.map +0 -1
  364. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedDeviceConvertResponse.js +0 -39
  365. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedDeviceConvertResponse.js.map +0 -1
  366. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedPrismConvertResponse.js +0 -34
  367. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedPrismConvertResponse.js.map +0 -1
  368. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DeviceConvertResponse.js +0 -33
  369. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DeviceConvertResponse.js.map +0 -1
  370. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/PrismConvertResponse.js +0 -33
  371. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/PrismConvertResponse.js.map +0 -1
  372. package/dist/esm/modules/tide-js/Models/Responses/KeyGen/GenShard/DecryptedGenShardResponse.js +0 -46
  373. package/dist/esm/modules/tide-js/Models/Responses/KeyGen/GenShard/DecryptedGenShardResponse.js.map +0 -1
  374. package/dist/esm/modules/tide-js/Models/Responses/KeyGen/GenShard/GenShardResponse.js +0 -31
  375. package/dist/esm/modules/tide-js/Models/Responses/KeyGen/GenShard/GenShardResponse.js.map +0 -1
  376. package/dist/esm/modules/tide-js/Models/Responses/KeyGen/SetShard/DecryptedSetShardResponse.js +0 -36
  377. package/dist/esm/modules/tide-js/Models/Responses/KeyGen/SetShard/DecryptedSetShardResponse.js.map +0 -1
  378. package/dist/esm/modules/tide-js/Models/Responses/KeyGen/SetShard/SetShardResponse.js +0 -28
  379. package/dist/esm/modules/tide-js/Models/Responses/KeyGen/SetShard/SetShardResponse.js.map +0 -1
  380. package/dist/esm/modules/tide-js/Models/Responses/Reservation/ReservationConfirmation.js +0 -23
  381. package/dist/esm/modules/tide-js/Models/Responses/Reservation/ReservationConfirmation.js.map +0 -1
  382. package/dist/esm/modules/tide-js/Models/Responses/Vendor/VoucherResponse.js +0 -38
  383. package/dist/esm/modules/tide-js/Models/Responses/Vendor/VoucherResponse.js.map +0 -1
  384. package/dist/esm/modules/tide-js/Models/Rules/RuleSettingSignRequest.js +0 -75
  385. package/dist/esm/modules/tide-js/Models/Rules/RuleSettingSignRequest.js.map +0 -1
  386. package/dist/esm/modules/tide-js/Models/Rules/RuleSettings.js +0 -25
  387. package/dist/esm/modules/tide-js/Models/Rules/RuleSettings.js.map +0 -1
  388. package/dist/esm/modules/tide-js/Models/SerializedField.js +0 -61
  389. package/dist/esm/modules/tide-js/Models/SerializedField.js.map +0 -1
  390. package/dist/esm/modules/tide-js/Models/Transactions/CardanoTxBodySignRequest.js +0 -51
  391. package/dist/esm/modules/tide-js/Models/Transactions/CardanoTxBodySignRequest.js.map +0 -1
  392. package/dist/esm/modules/tide-js/Models/VendorData.js +0 -30
  393. package/dist/esm/modules/tide-js/Models/VendorData.js.map +0 -1
  394. package/dist/esm/modules/tide-js/Models/VendorSettings.js +0 -23
  395. package/dist/esm/modules/tide-js/Models/VendorSettings.js.map +0 -1
  396. package/dist/esm/modules/tide-js/RulesEngine/RuleEngineService.js +0 -89
  397. package/dist/esm/modules/tide-js/RulesEngine/RuleEngineService.js.map +0 -1
  398. package/dist/esm/modules/tide-js/RulesEngine/helperFunctions.js +0 -69
  399. package/dist/esm/modules/tide-js/RulesEngine/helperFunctions.js.map +0 -1
  400. package/dist/esm/modules/tide-js/RulesEngine/jsonHelpers.js +0 -64
  401. package/dist/esm/modules/tide-js/RulesEngine/jsonHelpers.js.map +0 -1
  402. package/dist/esm/modules/tide-js/RulesEngine/thresholdRules.js +0 -100
  403. package/dist/esm/modules/tide-js/RulesEngine/thresholdRules.js.map +0 -1
  404. package/dist/esm/modules/tide-js/Tests/AccountRecovery.js +0 -52
  405. package/dist/esm/modules/tide-js/Tests/AccountRecovery.js.map +0 -1
  406. package/dist/esm/modules/tide-js/Tests/Components.js +0 -15
  407. package/dist/esm/modules/tide-js/Tests/Components.js.map +0 -1
  408. package/dist/esm/modules/tide-js/Tests/Encryption.js +0 -164
  409. package/dist/esm/modules/tide-js/Tests/Encryption.js.map +0 -1
  410. package/dist/esm/modules/tide-js/Tests/KeyAuthentication.js +0 -259
  411. package/dist/esm/modules/tide-js/Tests/KeyAuthentication.js.map +0 -1
  412. package/dist/esm/modules/tide-js/Tests/KeyGeneration.js +0 -215
  413. package/dist/esm/modules/tide-js/Tests/KeyGeneration.js.map +0 -1
  414. package/dist/esm/modules/tide-js/Tests/StripeLicensing.js +0 -34
  415. package/dist/esm/modules/tide-js/Tests/StripeLicensing.js.map +0 -1
  416. package/dist/esm/modules/tide-js/Tests/TideKey.js +0 -11
  417. package/dist/esm/modules/tide-js/Tests/TideKey.js.map +0 -1
  418. package/dist/esm/modules/tide-js/Tests/Tunelling.js +0 -56
  419. package/dist/esm/modules/tide-js/Tests/Tunelling.js.map +0 -1
  420. package/dist/esm/modules/tide-js/Tests/Verifier.js +0 -9
  421. package/dist/esm/modules/tide-js/Tests/Verifier.js.map +0 -1
  422. package/dist/esm/modules/tide-js/Tests/index.js +0 -44
  423. package/dist/esm/modules/tide-js/Tests/index.js.map +0 -1
  424. package/dist/esm/modules/tide-js/Tools/Utils.js +0 -275
  425. package/dist/esm/modules/tide-js/Tools/Utils.js.map +0 -1
  426. package/dist/esm/modules/tide-js/index.js +0 -27
  427. package/dist/esm/modules/tide-js/index.js.map +0 -1
  428. package/dist/types/modules/tide-js/Clients/ClientBase.d.ts +0 -72
  429. package/dist/types/modules/tide-js/Clients/EnclaveToMobileTunnelClient.d.ts +0 -19
  430. package/dist/types/modules/tide-js/Clients/NetworkClient.d.ts +0 -23
  431. package/dist/types/modules/tide-js/Clients/NodeClient.d.ts +0 -211
  432. package/dist/types/modules/tide-js/Clients/PollingClient.d.ts +0 -22
  433. package/dist/types/modules/tide-js/Clients/VoucherClient.d.ts +0 -12
  434. package/dist/types/modules/tide-js/Clients/WebSocketClientBase.d.ts +0 -12
  435. package/dist/types/modules/tide-js/Cryptide/Components/BaseComponent.d.ts +0 -59
  436. package/dist/types/modules/tide-js/Cryptide/Components/ComponentRegistry.d.ts +0 -19
  437. package/dist/types/modules/tide-js/Cryptide/Components/Schemes/AES/AESScheme.d.ts +0 -4
  438. package/dist/types/modules/tide-js/Cryptide/Components/Schemes/BaseScheme.d.ts +0 -10
  439. package/dist/types/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Components.d.ts +0 -51
  440. package/dist/types/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Scheme.d.ts +0 -12
  441. package/dist/types/modules/tide-js/Cryptide/Components/Schemes/SchemeRegistry.d.ts +0 -3
  442. package/dist/types/modules/tide-js/Cryptide/Ed25519.d.ts +0 -114
  443. package/dist/types/modules/tide-js/Cryptide/Encryption/AES.d.ts +0 -30
  444. package/dist/types/modules/tide-js/Cryptide/Encryption/DH.d.ts +0 -12
  445. package/dist/types/modules/tide-js/Cryptide/Encryption/ElGamal.d.ts +0 -25
  446. package/dist/types/modules/tide-js/Cryptide/Hashing/H2P.d.ts +0 -7
  447. package/dist/types/modules/tide-js/Cryptide/Hashing/Hash.d.ts +0 -16
  448. package/dist/types/modules/tide-js/Cryptide/Interpolation.d.ts +0 -47
  449. package/dist/types/modules/tide-js/Cryptide/Math.d.ts +0 -45
  450. package/dist/types/modules/tide-js/Cryptide/Serialization.d.ts +0 -195
  451. package/dist/types/modules/tide-js/Cryptide/Signing/BlindSig.d.ts +0 -32
  452. package/dist/types/modules/tide-js/Cryptide/Signing/EdDSA.d.ts +0 -24
  453. package/dist/types/modules/tide-js/Cryptide/Signing/TideSignature.d.ts +0 -50
  454. package/dist/types/modules/tide-js/Cryptide/TideKey.d.ts +0 -26
  455. package/dist/types/modules/tide-js/Cryptide/TideMemoryObjects.d.ts +0 -15
  456. package/dist/types/modules/tide-js/Cryptide/index.d.ts +0 -10
  457. package/dist/types/modules/tide-js/Flow/AuthenticationFlows/dCMKAcceptAdminFlow.d.ts +0 -2
  458. package/dist/types/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordFlow.d.ts +0 -63
  459. package/dist/types/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordlessFlow.d.ts +0 -37
  460. package/dist/types/modules/tide-js/Flow/AuthenticationFlows/dMobileAuthenticationFlow.d.ts +0 -39
  461. package/dist/types/modules/tide-js/Flow/DecryptionFlows/dVVKDecryptionFlow.d.ts +0 -31
  462. package/dist/types/modules/tide-js/Flow/EncryptionFlows/AuthorizedEncryptionFlow.d.ts +0 -75
  463. package/dist/types/modules/tide-js/Flow/SigningFlows/AuthorizedSigningFlow.d.ts +0 -51
  464. package/dist/types/modules/tide-js/Flow/SigningFlows/dTestVVkSigningFlow.d.ts +0 -25
  465. package/dist/types/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow.d.ts +0 -32
  466. package/dist/types/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow2Step.d.ts +0 -69
  467. package/dist/types/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow_DEPRECATED.d.ts +0 -30
  468. package/dist/types/modules/tide-js/Flow/SimulatorFlow.d.ts +0 -13
  469. package/dist/types/modules/tide-js/Flow/VoucherFlows/VoucherFlow.d.ts +0 -23
  470. package/dist/types/modules/tide-js/Flow/dAccountRecoveryFlow.d.ts +0 -41
  471. package/dist/types/modules/tide-js/Flow/dKeyGenerationFlow.d.ts +0 -88
  472. package/dist/types/modules/tide-js/Math/DecryptRequest.d.ts +0 -19
  473. package/dist/types/modules/tide-js/Math/EncryptRequest.d.ts +0 -57
  474. package/dist/types/modules/tide-js/Math/KeyAuthentication.d.ts +0 -144
  475. package/dist/types/modules/tide-js/Math/KeyDecryption.d.ts +0 -7
  476. package/dist/types/modules/tide-js/Math/KeyGeneration.d.ts +0 -42
  477. package/dist/types/modules/tide-js/Math/KeySigning.d.ts +0 -10
  478. package/dist/types/modules/tide-js/Models/AdminAuthorization.d.ts +0 -16
  479. package/dist/types/modules/tide-js/Models/AuthRequest.d.ts +0 -28
  480. package/dist/types/modules/tide-js/Models/AuthorizationBuilder.d.ts +0 -17
  481. package/dist/types/modules/tide-js/Models/BaseTideRequest.d.ts +0 -61
  482. package/dist/types/modules/tide-js/Models/Cardano/CardanoTxBody.d.ts +0 -16
  483. package/dist/types/modules/tide-js/Models/Datum.d.ts +0 -14
  484. package/dist/types/modules/tide-js/Models/Doken.d.ts +0 -52
  485. package/dist/types/modules/tide-js/Models/EnclaveEntry.d.ts +0 -22
  486. package/dist/types/modules/tide-js/Models/Infos/KeyInfo.d.ts +0 -30
  487. package/dist/types/modules/tide-js/Models/Infos/OrkInfo.d.ts +0 -24
  488. package/dist/types/modules/tide-js/Models/InitializationCertificate.d.ts +0 -21
  489. package/dist/types/modules/tide-js/Models/ModelRegistry.d.ts +0 -15
  490. package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Authenticate/AuthenticateResponse.d.ts +0 -9
  491. package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Convert/CMKConvertResponse.d.ts +0 -11
  492. package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Convert/ConvertRememberedResponse.d.ts +0 -11
  493. package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedCMKConvertResponse.d.ts +0 -9
  494. package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedConvertRememberedResponse.d.ts +0 -11
  495. package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedDeviceConvertResponse.d.ts +0 -15
  496. package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedPrismConvertResponse.d.ts +0 -12
  497. package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Convert/DeviceConvertResponse.d.ts +0 -11
  498. package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Convert/PrismConvertResponse.d.ts +0 -11
  499. package/dist/types/modules/tide-js/Models/Responses/KeyGen/GenShard/DecryptedGenShardResponse.d.ts +0 -18
  500. package/dist/types/modules/tide-js/Models/Responses/KeyGen/GenShard/GenShardResponse.d.ts +0 -10
  501. package/dist/types/modules/tide-js/Models/Responses/KeyGen/SetShard/DecryptedSetShardResponse.d.ts +0 -10
  502. package/dist/types/modules/tide-js/Models/Responses/KeyGen/SetShard/SetShardResponse.d.ts +0 -8
  503. package/dist/types/modules/tide-js/Models/Responses/Reservation/ReservationConfirmation.d.ts +0 -14
  504. package/dist/types/modules/tide-js/Models/Responses/Vendor/VoucherResponse.d.ts +0 -25
  505. package/dist/types/modules/tide-js/Models/Rules/RuleSettingSignRequest.d.ts +0 -39
  506. package/dist/types/modules/tide-js/Models/Rules/RuleSettings.d.ts +0 -12
  507. package/dist/types/modules/tide-js/Models/SerializedField.d.ts +0 -20
  508. package/dist/types/modules/tide-js/Models/Transactions/CardanoTxBodySignRequest.d.ts +0 -29
  509. package/dist/types/modules/tide-js/Models/VendorData.d.ts +0 -17
  510. package/dist/types/modules/tide-js/Models/VendorSettings.d.ts +0 -14
  511. package/dist/types/modules/tide-js/RulesEngine/RuleEngineService.d.ts +0 -25
  512. package/dist/types/modules/tide-js/RulesEngine/helperFunctions.d.ts +0 -7
  513. package/dist/types/modules/tide-js/RulesEngine/jsonHelpers.d.ts +0 -11
  514. package/dist/types/modules/tide-js/RulesEngine/thresholdRules.d.ts +0 -17
  515. package/dist/types/modules/tide-js/Tests/AccountRecovery.d.ts +0 -1
  516. package/dist/types/modules/tide-js/Tests/Components.d.ts +0 -1
  517. package/dist/types/modules/tide-js/Tests/Encryption.d.ts +0 -3
  518. package/dist/types/modules/tide-js/Tests/KeyAuthentication.d.ts +0 -6
  519. package/dist/types/modules/tide-js/Tests/KeyGeneration.d.ts +0 -4
  520. package/dist/types/modules/tide-js/Tests/StripeLicensing.d.ts +0 -2
  521. package/dist/types/modules/tide-js/Tests/TideKey.d.ts +0 -1
  522. package/dist/types/modules/tide-js/Tests/Tunelling.d.ts +0 -2
  523. package/dist/types/modules/tide-js/Tests/Verifier.d.ts +0 -1
  524. package/dist/types/modules/tide-js/Tests/index.d.ts +0 -44
  525. package/dist/types/modules/tide-js/Tools/Utils.d.ts +0 -34
  526. package/dist/types/modules/tide-js/index.d.ts +0 -8
  527. package/scripts/postinstall.js +0 -43
  528. /package/dist/types/{modules/tide-js/Flow/AuthenticationFlows/dCVKAuthenticationFlow.d.ts → policy-react.d.ts} +0 -0
@@ -1,523 +0,0 @@
1
- //
2
- // Tide Protocol - Infrastructure for a TRUE Zero-Trust paradigm
3
- // Copyright (C) 2022 Tide Foundation Ltd
4
- //
5
- // This program is free software and is subject to the terms of
6
- // the Tide Community Open Code License as published by the
7
- // Tide Foundation Limited. You may modify it and redistribute
8
- // it in accordance with and subject to the terms of that License.
9
- // This program is distributed WITHOUT WARRANTY of any kind,
10
- // including without any implied warranty of MERCHANTABILITY or
11
- // FITNESS FOR A PARTICULAR PURPOSE.
12
- // See the Tide Community Open Code License for more details.
13
- // You should have received a copy of the Tide Community Open
14
- // Code License along with this program.
15
- // If not, see https://tide.org/licenses_tcoc2-0-0-en
16
- //
17
- // Some parts of the code were taken from @noble/curves project and are protected under the following license:
18
- //
19
- // The MIT License (MIT)
20
- //
21
- // Copyright (c) 2022 Paul Miller (https://paulmillr.com)
22
- //
23
- // Permission is hereby granted, free of charge, to any person obtaining a copy
24
- // of this software and associated documentation files (the "Software"), to deal
25
- // in the Software without restriction, including without limitation the rights
26
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
27
- // copies of the Software, and to permit persons to whom the Software is
28
- // furnished to do so, subject to the following conditions:
29
- //
30
- // The above copyright notice and this permission notice shall be included in
31
- // all copies or substantial portions of the Software.
32
- //
33
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
34
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
35
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
36
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
37
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
38
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
39
- // THE SOFTWARE.
40
- //
41
- import { base64ToBytes, bytesToBase64 } from "./Serialization.js";
42
- import { SHA256_Digest } from "./Hashing/Hash.js";
43
- const P = 2n ** 255n - 19n; // ed25519 is twisted edwards curve
44
- const N = 2n ** 252n + 27742317777372353535851937790883648493n; // curve's (group) order
45
- const Gx = 0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an; // base point x
46
- const Gy = 0x6666666666666666666666666666666666666666666666666666666666666658n; // base point y
47
- const _d = 37095705934669439343138083508754565189542113879843219016388785533085940283555n;
48
- const MASK = 2n ** 256n;
49
- /**
50
- * ed25519 curve parameters. Equation is −x² + y² = -a + dx²y².
51
- * Gx and Gy are generator coordinates. p is field order, n is group order.
52
- * h is cofactor.
53
- */
54
- const CURVE = {
55
- a: -1n, // -1 mod p
56
- d: _d, // -(121665/121666) mod p
57
- p: P, n: N, h: 8, Gx: Gx, Gy: Gy // field prime, curve (group) order, cofactor
58
- };
59
- const err = (m = '') => { throw new Error(m); }; // error helper, messes-up stack trace
60
- const isS = (s) => typeof s === 'string'; // is string
61
- const isB = (s) => typeof s === 'bigint'; // is bigint
62
- const isu8 = (a) => (a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array'));
63
- const au8 = (a, l) => // is Uint8Array (of specific length)
64
- !isu8(a) || (typeof l === 'number' && l > 0 && a.length !== l) ?
65
- err('Uint8Array of valid length expected') : a;
66
- const u8n = (len) => new Uint8Array(len); // creates Uint8Array
67
- const u8fr = (buf) => Uint8Array.from(buf);
68
- const toU8 = (a, len) => au8(isS(a) ? h2b(a) : u8fr(au8(a)), len); // norm(hex/u8a) to u8a
69
- const M = (a, b = P) => { let r = a % b; return r >= 0n ? r : b + r; }; // mod division
70
- const arange = (n, min, max = MASK, msg = 'bad number: out of range') => isB(n) && min <= n && n < max ? n : err(msg);
71
- const apoint = (p) => (p instanceof Point ? p : err('Point expected')); // is xyzt point
72
- /** Point in xyzt extended coordinates. */
73
- class Point {
74
- constructor(ex, ey, ez, et) {
75
- this.ex = arange(ex, 0n);
76
- this.ey = arange(ey, 0n);
77
- this.ez = arange(ez, 1n);
78
- this.et = arange(et, 0n);
79
- Object.freeze(this);
80
- }
81
- static fromAffine(p) { return new Point(p.x, p.y, 1n, M(p.x * p.y)); }
82
- /** RFC8032 5.1.3: hex / Uint8Array to Point. */
83
- static fromHex(hex) {
84
- hex = toU8(hex, 32);
85
- return this.fromBytes(hex);
86
- }
87
- static fromBase64(b64string) {
88
- if (isS(b64string))
89
- return this.fromBytes(base64ToBytes(b64string));
90
- else
91
- err("Point.fromBase64 not provided with a string");
92
- }
93
- static fromBytes(bytes, zip215 = false) {
94
- const { d } = CURVE;
95
- const normed = bytes.slice(); // copy the array to not mess it up
96
- const lastByte = bytes[31];
97
- normed[31] = lastByte & ~0x80; // adjust first LE byte = last BE byte
98
- const y = b2n_LE(normed); // decode as little-endian, convert to num
99
- const max = zip215 ? MASK : P; // RFC8032 prohibits >= p, ZIP215 doesn't
100
- arange(y, 0n, max); // zip215=true: 0 <= y < 2^256
101
- // zip215=false: 0 <= y < 2^255-19
102
- const y2 = M(y * y); // y²
103
- const u = M(y2 - 1n); // u=y²-1
104
- const v = M(d * y2 + 1n); // v=dy²+1
105
- let { isValid, value: x } = uvRatio(u, v); // (uv³)(uv⁷)^(p-5)/8; square root
106
- if (!isValid)
107
- err('bad y coord 3'); // not square root: bad point
108
- const isXOdd = (x & 1n) === 1n; // adjust sign of x coordinate
109
- const isLastByteOdd = (lastByte & 0x80) !== 0; // x_0, last bit
110
- if (!zip215 && x === 0n && isLastByteOdd)
111
- err('bad y coord 4'); // x=0 and x_0 = 1
112
- if (isLastByteOdd !== isXOdd)
113
- x = M(-x);
114
- return new Point(x, y, 1n, M(x * y)); // Z=1, T=xy
115
- }
116
- get x() { return this.toAffine().x; } // .x, .y will call expensive toAffine.
117
- get y() { return this.toAffine().y; } // Should be used with care.
118
- assertValidity() {
119
- const { a, d } = CURVE;
120
- const p = this;
121
- if (p.is0())
122
- throw new Error('bad point: ZERO'); // TODO: optimize, with vars below?
123
- // Equation in affine coordinates: ax² + y² = 1 + dx²y²
124
- // Equation in projective coordinates (X/Z, Y/Z, Z): (aX² + Y²)Z² = Z⁴ + dX²Y²
125
- const { ex: X, ey: Y, ez: Z, et: T } = p;
126
- const X2 = M(X * X); // X²
127
- const Y2 = M(Y * Y); // Y²
128
- const Z2 = M(Z * Z); // Z²
129
- const Z4 = M(Z2 * Z2); // Z⁴
130
- const aX2 = M(X2 * a); // aX²
131
- const left = M(Z2 * M(aX2 + Y2)); // (aX² + Y²)Z²
132
- const right = M(Z4 + M(d * M(X2 * Y2))); // Z⁴ + dX²Y²
133
- if (left !== right)
134
- throw new Error('bad point: equation left != right (1)');
135
- // In Extended coordinates we also have T, which is x*y=T/Z: check X*Y == Z*T
136
- const XY = M(X * Y);
137
- const ZT = M(Z * T);
138
- if (XY !== ZT)
139
- throw new Error('bad point: equation left != right (2)');
140
- return true;
141
- }
142
- equals(other) {
143
- const { ex: X1, ey: Y1, ez: Z1 } = this;
144
- const { ex: X2, ey: Y2, ez: Z2 } = apoint(other); // isPoint() checks class equality
145
- const X1Z2 = M(X1 * Z2), X2Z1 = M(X2 * Z1);
146
- const Y1Z2 = M(Y1 * Z2), Y2Z1 = M(Y2 * Z1);
147
- return X1Z2 === X2Z1 && Y1Z2 === Y2Z1;
148
- }
149
- is0() { return this.equals(I); }
150
- negate() {
151
- return new Point(M(-this.ex), this.ey, this.ez, M(-this.et));
152
- }
153
- /** Point doubling. Complete formula. */
154
- double() {
155
- const { ex: X1, ey: Y1, ez: Z1 } = this; // Cost: 4M + 4S + 1*a + 6add + 1*2
156
- const { a } = CURVE; // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended.html#doubling-dbl-2008-hwcd
157
- const A = M(X1 * X1);
158
- const B = M(Y1 * Y1);
159
- const C = M(2n * M(Z1 * Z1));
160
- const D = M(a * A);
161
- const x1y1 = X1 + Y1;
162
- const E = M(M(x1y1 * x1y1) - A - B);
163
- const G = D + B;
164
- const F = G - C;
165
- const H = D - B;
166
- const X3 = M(E * F);
167
- const Y3 = M(G * H);
168
- const T3 = M(E * H);
169
- const Z3 = M(F * G);
170
- return new Point(X3, Y3, Z3, T3);
171
- }
172
- /** Point addition. Complete formula. */
173
- add(other) {
174
- const { ex: X1, ey: Y1, ez: Z1, et: T1 } = this; // Cost: 8M + 1*k + 8add + 1*2.
175
- const { ex: X2, ey: Y2, ez: Z2, et: T2 } = apoint(other); // doesn't check if other on-curve
176
- const { a, d } = CURVE; // http://hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html#addition-add-2008-hwcd-3
177
- const A = M(X1 * X2);
178
- const B = M(Y1 * Y2);
179
- const C = M(T1 * d * T2);
180
- const D = M(Z1 * Z2);
181
- const E = M((X1 + Y1) * (X2 + Y2) - A - B);
182
- const F = M(D - C);
183
- const G = M(D + C);
184
- const H = M(B - a * A);
185
- const X3 = M(E * F);
186
- const Y3 = M(G * H);
187
- const T3 = M(E * H);
188
- const Z3 = M(F * G);
189
- return new Point(X3, Y3, Z3, T3);
190
- }
191
- mul(n, safe = true) {
192
- if (n === 0n)
193
- return safe === true ? err('cannot multiply by 0') : I;
194
- arange(n, 1n, N);
195
- if (n === 1n || (!safe && this.is0()))
196
- return this; // safe=true bans 0. safe=false allows 0.
197
- if (this.equals(G))
198
- return wNAF(n).p; // use wNAF precomputes for base points
199
- let p = I, f = G; // init result point & fake point
200
- for (let d = this; n > 0n; d = d.double(), n >>= 1n) { // double-and-add ladder
201
- if (n & 1n)
202
- p = p.add(d); // if bit is present, add to point
203
- else if (safe)
204
- f = f.add(d); // if not, add to fake for timing safety
205
- }
206
- return p;
207
- }
208
- multiply(scalar) { return this.mul(scalar); } // Aliases for compatibilty
209
- divide(scalar) { return this.mul(invert(scalar, CURVE.n)); }
210
- clearCofactor() { return this.mul(BigInt(CURVE.h), false); } // multiply by cofactor
211
- isSmallOrder() { return this.clearCofactor().is0(); } // check if P is small order
212
- isTorsionFree() {
213
- let p = this.mul(N / 2n, false).double(); // ensures the point is not "bad".
214
- if (N % 2n)
215
- p = p.add(this); // P^(N+1) // P*N == (P*(N/2))*2+P
216
- return p.is0();
217
- }
218
- /** converts point to 2d xy affine point. (x, y, z, t) ∋ (x=x/z, y=y/z, t=xy). */
219
- toAffine() {
220
- const { ex: x, ey: y, ez: z } = this;
221
- if (this.equals(I))
222
- return { x: 0n, y: 1n }; // fast-path for zero point
223
- const iz = invert(z, P); // z^-1: invert z
224
- if (M(z * iz) !== 1n)
225
- err('invalid inverse'); // (z * z^-1) must be 1, otherwise bad math
226
- return { x: M(x * iz), y: M(y * iz) }; // x = x*z^-1; y = y*z^-1
227
- }
228
- toRawBytes() {
229
- const { x, y } = this.toAffine(); // convert to affine 2d point
230
- this.assertValidity();
231
- const b = n2b_32LE(y); // encode number to 32 bytes
232
- b[31] |= x & 1n ? 0x80 : 0; // store sign in first LE byte
233
- return b;
234
- }
235
- toHex() { return b2h(this.toRawBytes()); } // encode to hex string
236
- toBase64() { return bytesToBase64(this.toRawBytes()); }
237
- async hash() { return M(b2n_LE(await SHA256_Digest(this.toRawBytes())), CURVE.n); }
238
- }
239
- /** Generator / Base point */
240
- Point.BASE = new Point(Gx, Gy, 1n, M(Gx * Gy));
241
- /** Identity / Zero point */
242
- Point.ZERO = new Point(0n, 1n, 1n, 0n);
243
- const { BASE: G, ZERO: I } = Point; // Generator, identity points
244
- const padh = (num, pad) => num.toString(16).padStart(pad, '0');
245
- const b2h = (b) => Array.from(au8(b)).map(e => padh(e, 2)).join(''); // bytes to hex
246
- const C = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 }; // ASCII characters
247
- const _ch = (ch) => {
248
- if (ch >= C._0 && ch <= C._9)
249
- return ch - C._0; // '2' => 50-48
250
- if (ch >= C.A && ch <= C.F)
251
- return ch - (C.A - 10); // 'B' => 66-(65-10)
252
- if (ch >= C.a && ch <= C.f)
253
- return ch - (C.a - 10); // 'b' => 98-(97-10)
254
- return;
255
- };
256
- const h2b = (hex) => {
257
- const e = 'hex invalid';
258
- if (!isS(hex))
259
- return err(e);
260
- const hl = hex.length, al = hl / 2;
261
- if (hl % 2)
262
- return err(e);
263
- const array = u8n(al);
264
- for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) { // treat each char as ASCII
265
- const n1 = _ch(hex.charCodeAt(hi)); // parse first char, multiply it by 16
266
- const n2 = _ch(hex.charCodeAt(hi + 1)); // parse second char
267
- if (n1 === undefined || n2 === undefined)
268
- return err(e);
269
- array[ai] = n1 * 16 + n2; // example: 'A9' => 10*16 + 9
270
- }
271
- return array;
272
- };
273
- const n2b_32LE = (num) => h2b(padh(num, 32 * 2)).reverse(); // number to bytes LE
274
- const b2n_LE = (b) => BigInt('0x' + b2h(u8fr(au8(b)).reverse())); // bytes LE to num
275
- const concatB = (...arrs) => {
276
- const r = u8n(arrs.reduce((sum, a) => sum + au8(a).length, 0)); // create u8a of summed length
277
- let pad = 0; // walk through each array,
278
- arrs.forEach(a => { r.set(a, pad); pad += a.length; }); // ensure they have proper type
279
- return r;
280
- };
281
- const invert = (num, md) => {
282
- if (!isB(num))
283
- throw Error("Expecting bigint");
284
- if (num === 0n || md <= 0n)
285
- err('no inverse n=' + num + ' mod=' + md); // no neg exponent for now
286
- let a = M(num, md), b = md, x = 0n, y = 1n, u = 1n, v = 0n;
287
- while (a !== 0n) { // uses euclidean gcd algorithm
288
- const q = b / a, r = b % a; // not constant-time
289
- const m = x - u * q, n = y - v * q;
290
- b = a, a = r, x = u, y = v, u = m, v = n;
291
- }
292
- return b === 1n ? M(x, md) : err('no inverse'); // b is gcd at this point
293
- };
294
- const pow2 = (x, power) => {
295
- let r = x;
296
- while (power-- > 0n) {
297
- r *= r;
298
- r %= P;
299
- }
300
- return r;
301
- };
302
- const pow_2_252_3 = (x) => {
303
- const x2 = (x * x) % P; // x^2, bits 1
304
- const b2 = (x2 * x) % P; // x^3, bits 11
305
- const b4 = (pow2(b2, 2n) * b2) % P; // x^(2^4-1), bits 1111
306
- const b5 = (pow2(b4, 1n) * x) % P; // x^(2^5-1), bits 11111
307
- const b10 = (pow2(b5, 5n) * b5) % P; // x^(2^10)
308
- const b20 = (pow2(b10, 10n) * b10) % P; // x^(2^20)
309
- const b40 = (pow2(b20, 20n) * b20) % P; // x^(2^40)
310
- const b80 = (pow2(b40, 40n) * b40) % P; // x^(2^80)
311
- const b160 = (pow2(b80, 80n) * b80) % P; // x^(2^160)
312
- const b240 = (pow2(b160, 80n) * b80) % P; // x^(2^240)
313
- const b250 = (pow2(b240, 10n) * b10) % P; // x^(2^250)
314
- const pow_p_5_8 = (pow2(b250, 2n) * x) % P; // < To pow to (p+3)/8, multiply it by x.
315
- return { pow_p_5_8, b2 };
316
- };
317
- const RM1 = 19681161376707505956807079304988542015446066515923890162744021073123829784752n; // √-1
318
- const uvRatio = (u, v) => {
319
- const v3 = M(v * v * v); // v³
320
- const v7 = M(v3 * v3 * v); // v⁷
321
- const pow = pow_2_252_3(u * v7).pow_p_5_8; // (uv⁷)^(p-5)/8
322
- let x = M(u * v3 * pow); // (uv³)(uv⁷)^(p-5)/8
323
- const vx2 = M(v * x * x); // vx²
324
- const root1 = x; // First root candidate
325
- const root2 = M(x * RM1); // Second root candidate; RM1 is √-1
326
- const useRoot1 = vx2 === u; // If vx² = u (mod p), x is a square root
327
- const useRoot2 = vx2 === M(-u); // If vx² = -u, set x <-- x * 2^((p-1)/4)
328
- const noRoot = vx2 === M(-u * RM1); // There is no valid root, vx² = -u√-1
329
- if (useRoot1)
330
- x = root1;
331
- if (useRoot2 || noRoot)
332
- x = root2; // We return root2 anyway, for const-time
333
- if ((M(x) & 1n) === 1n)
334
- x = M(-x); // edIsNegative
335
- return { isValid: useRoot1 || useRoot2, value: x };
336
- };
337
- const modL_LE = (hash) => M(b2n_LE(hash), N); // modulo L; but little-endian
338
- const sha512a = (...m) => etc.sha512Async(...m); // Async SHA512
339
- const sha512s = (...m) => {
340
- const fn = etc.sha512Sync;
341
- if (typeof fn !== 'function')
342
- err('etc.sha512Sync not set');
343
- return fn(...m);
344
- };
345
- const hash2extK = (hashed) => {
346
- const head = hashed.slice(0, 32); // slice creates a copy, unlike subarray
347
- head[0] &= 248; // Clamp bits: 0b1111_1000,
348
- head[31] &= 127; // 0b0111_1111,
349
- head[31] |= 64; // 0b0100_0000
350
- const prefix = hashed.slice(32, 64); // private key "prefix"
351
- const scalar = modL_LE(head); // modular division over curve order
352
- const point = G.mul(scalar); // public key point
353
- const pointBytes = point.toRawBytes(); // point serialized to Uint8Array
354
- return { head, prefix, scalar, point, pointBytes };
355
- };
356
- // RFC8032 5.1.5; getPublicKey async, sync. Hash priv key and extract point.
357
- const getExtendedPublicKeyAsync = (priv) => sha512a(toU8(priv, 32)).then(hash2extK);
358
- const getExtendedNonDeterministicPublicKeyAsync = (priv) => {
359
- const prefix = etc.randomBytes(32); // private key "prefix"
360
- const point = G.mul(priv); // public key point
361
- const pointBytes = point.toRawBytes(); // point serialized to Uint8Array
362
- return { head: undefined, prefix, scalar: priv, point, pointBytes }; // head is undefined as we didn't hash the priv
363
- };
364
- const getExtendedPublicKey = (priv) => hash2extK(sha512s(toU8(priv, 32)));
365
- /** Creates 32-byte ed25519 public key from 32-byte private key. Async. */
366
- const getPublicKeyAsync = (priv) => getExtendedPublicKeyAsync(priv).then(p => p.pointBytes);
367
- /** Creates 32-byte ed25519 public key from 32-byte private key. To use, set `etc.sha512Sync` first. */
368
- const getPublicKey = (priv) => getExtendedPublicKey(priv).pointBytes;
369
- function hashFinish(asynchronous, res) {
370
- if (asynchronous)
371
- return sha512a(res.hashable).then(res.finish);
372
- return res.finish(sha512s(res.hashable));
373
- }
374
- const _sign = (e, rBytes, msg) => {
375
- const { pointBytes: P, scalar: s } = e;
376
- const r = modL_LE(rBytes); // r was created outside, reduce it modulo L
377
- const R = G.mul(r).toRawBytes(); // R = [r]B
378
- const hashable = concatB(R, P, msg); // dom2(F, C) || R || A || PH(M)
379
- const finish = (hashed) => {
380
- const S = M(r + modL_LE(hashed) * s, N); // S = (r + k * s) mod L; 0 <= s < l
381
- return au8(concatB(R, n2b_32LE(S)), 64); // 64-byte sig: 32b R.x + 32b LE(S)
382
- };
383
- return { hashable, finish };
384
- };
385
- /** Signs message (NOT message hash) using private key. Async. */
386
- const signAsync = async (msg, privKey) => {
387
- const m = toU8(msg); // RFC8032 5.1.6: sign msg with key async
388
- const e = await getExtendedPublicKeyAsync(privKey); // pub,prfx
389
- const rBytes = await sha512a(e.prefix, m); // r = SHA512(dom2(F, C) || prefix || PH(M))
390
- return hashFinish(true, _sign(e, rBytes, m)); // gen R, k, S, then 64-byte signature
391
- };
392
- /** Signs message (NOT message hash) using private key without determinism. Async. */
393
- const signNonDeterministicAsync = async (msg, privKey) => {
394
- const m = toU8(msg); // RFC8032 5.1.6: sign msg with key async
395
- const e = await getExtendedNonDeterministicPublicKeyAsync(privKey); // pub,prfx
396
- const rBytes = await sha512a(e.prefix, m); // r = SHA512(dom2(F, C) || prefix || PH(M))
397
- return hashFinish(true, _sign(e, rBytes, m)); // gen R, k, S, then 64-byte signature
398
- };
399
- /** Signs message (NOT message hash) using private key. To use, set `etc.sha512Sync` first. */
400
- const sign = (msg, privKey) => {
401
- const m = toU8(msg); // RFC8032 5.1.6: sign msg with key sync
402
- const e = getExtendedPublicKey(privKey); // pub,prfx
403
- const rBytes = sha512s(e.prefix, m); // r = SHA512(dom2(F, C) || prefix || PH(M))
404
- return hashFinish(false, _sign(e, rBytes, m)); // gen R, k, S, then 64-byte signature
405
- };
406
- const dvo = { zip215: false }; // Julio set this to false
407
- const _verify = (sig, msg, pub, opts = dvo) => {
408
- sig = toU8(sig, 64); // Signature hex str/Bytes, must be 64 bytes
409
- msg = toU8(msg); // Message hex str/Bytes
410
- pub = toU8(pub, 32);
411
- const { zip215 } = opts; // switch between zip215 and rfc8032 verif
412
- let A, R, s, SB, hashable = new Uint8Array();
413
- try {
414
- A = Point.fromHex(pub, zip215); // public key A decoded
415
- R = Point.fromHex(sig.slice(0, 32), zip215); // 0 <= R < 2^256: ZIP215 R can be >= P
416
- s = b2n_LE(sig.slice(32, 64)); // Decode second half as an integer S
417
- SB = G.mul(s, false); // in the range 0 <= s < L
418
- hashable = concatB(R.toRawBytes(), A.toRawBytes(), msg); // dom2(F, C) || R || A || PH(M)
419
- }
420
- catch (error) { }
421
- const finish = (hashed) => {
422
- if (SB == null)
423
- return false; // false if try-catch catched an error
424
- if (!zip215 && A.isSmallOrder())
425
- return false; // false for SBS: Strongly Binding Signature
426
- const k = modL_LE(hashed); // decode in little-endian, modulo L
427
- const RkA = R.add(A.mul(k, false)); // [8]R + [8][k]A'
428
- return RkA.add(SB.negate()).clearCofactor().is0(); // [8][S]B = [8]R + [8][k]A'
429
- };
430
- return { hashable, finish };
431
- };
432
- // RFC8032 5.1.7: verification async, sync
433
- /** Verifies signature on message and public key. Async. */
434
- const verifyAsync = async (s, m, p, opts = dvo) => hashFinish(true, _verify(s, m, p, opts));
435
- /** Verifies signature on message and public key. To use, set `etc.sha512Sync` first. */
436
- const verify = (s, m, p, opts = dvo) => hashFinish(false, _verify(s, m, p, opts));
437
- const cr = () => // We support: 1) browsers 2) node.js 19+
438
- typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;
439
- const subtle = () => {
440
- const c = cr();
441
- return c && c.subtle || err('crypto.subtle must be defined');
442
- };
443
- /** Math, hex, byte helpers. Not in `utils` because utils share API with noble-curves. */
444
- const etc = {
445
- bytesToHex: b2h,
446
- hexToBytes: h2b,
447
- concatBytes: concatB,
448
- mod: M,
449
- invert: invert,
450
- randomBytes: (len = 32) => {
451
- const c = cr(); // Can be shimmed in node.js <= 18 to prevent error:
452
- // import { webcrypto } from 'node:crypto';
453
- // if (!globalThis.crypto) globalThis.crypto = webcrypto;
454
- if (!c || !c.getRandomValues)
455
- err('crypto.getRandomValues must be defined');
456
- return c.getRandomValues(u8n(len));
457
- },
458
- sha512Async: async (...messages) => {
459
- const s = subtle();
460
- const m = concatB(...messages);
461
- return u8n(await s.digest('SHA-512', m.buffer));
462
- },
463
- sha512Sync: undefined, // Actual logic below
464
- bigIntToBytes: n2b_32LE,
465
- bytesToBigInt: b2n_LE
466
- };
467
- /** ed25519-specific key utilities. */
468
- const utils = {
469
- getExtendedPublicKeyAsync: getExtendedPublicKeyAsync,
470
- getExtendedPublicKey: getExtendedPublicKey,
471
- randomPrivateKey: () => etc.randomBytes(32),
472
- precompute: (w = 8, p = G) => { p.multiply(3n); w; return p; }, // no-op
473
- };
474
- const W = 8; // Precomputes-related code. W = window size
475
- const scalarBits = 256;
476
- const pwindows = Math.ceil(scalarBits / W) + 1;
477
- const pwindowSize = 2 ** (W - 1);
478
- const precompute = () => {
479
- const points = []; // 10x sign(), 2x verify(). To achieve this,
480
- let p = G, b = p; // a lot of points related to base point G.
481
- for (let w = 0; w < pwindows; w++) { // Points are stored in array and used
482
- b = p; // any time Gx multiplication is done.
483
- points.push(b); // They consume 16-32 MiB of RAM.
484
- for (let i = 1; i < pwindowSize; i++) {
485
- b = b.add(p);
486
- points.push(b);
487
- }
488
- p = b.double(); // Precomputes don't speed-up getSharedKey,
489
- } // which multiplies user point by scalar,
490
- return points; // when precomputes are using base point
491
- };
492
- let Gpows = undefined; // precomputes for base point G
493
- const wNAF = (n) => {
494
- // Compared to other point mult methods,
495
- const comp = Gpows || (Gpows = precompute()); // stores 2x less points using subtraction
496
- const ctneg = (cnd, p) => { let n = p.negate(); return cnd ? n : p; }; // negate
497
- let p = I, f = G; // f must be G, or could become I in the end
498
- const pow_2_w = 2 ** W; // W=8 256
499
- const maxNum = pow_2_w; // W=8 256
500
- const mask = BigInt(pow_2_w - 1); // W=8 255 == mask 0b11111111
501
- const shiftBy = BigInt(W); // W=8 8
502
- for (let w = 0; w < pwindows; w++) {
503
- let wbits = Number(n & mask); // extract W bits.
504
- n >>= shiftBy; // shift number by W bits.
505
- if (wbits > pwindowSize) {
506
- wbits -= maxNum;
507
- n += 1n;
508
- } // split if bits > max: +224 => 256-32
509
- const off = w * pwindowSize;
510
- const offF = off, offP = off + Math.abs(wbits) - 1; // offsets, evaluate both
511
- const isEven = w % 2 !== 0, isNeg = wbits < 0; // conditions, evaluate both
512
- if (wbits === 0) {
513
- f = f.add(ctneg(isEven, comp[offF])); // bits are 0: add garbage to fake point
514
- }
515
- else { // ^ can't add off2, off2 = I
516
- p = p.add(ctneg(isNeg, comp[offP])); // bits are 1: add to result point
517
- }
518
- }
519
- return { p, f }; // return both real and fake points for JIT
520
- }; // !! you can disable precomputes by commenting-out call of the wNAF() inside Point#mul()
521
- // !! Remove the export to easily use in REPL / browser console
522
- export { CURVE, etc, Point, getPublicKey, getPublicKeyAsync, sign, signAsync, signNonDeterministicAsync, utils, verify, verifyAsync };
523
- //# sourceMappingURL=Ed25519.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Ed25519.js","sourceRoot":"","sources":["../../../../../modules/tide-js/Cryptide/Ed25519.js"],"names":[],"mappings":"AAAA,EAAE;AACF,gEAAgE;AAChE,yCAAyC;AACzC,EAAE;AACF,+DAA+D;AAC/D,2DAA2D;AAC3D,8DAA8D;AAC9D,kEAAkE;AAClE,4DAA4D;AAC5D,+DAA+D;AAC/D,oCAAoC;AACpC,6DAA6D;AAC7D,6DAA6D;AAC7D,wCAAwC;AACxC,qDAAqD;AACrD,EAAE;AACF,8GAA8G;AAC9G,EAAE;AACF,wBAAwB;AACxB,GAAG;AACH,yDAAyD;AACzD,GAAG;AACH,+EAA+E;AAC/E,gFAAgF;AAChF,+EAA+E;AAC/E,4EAA4E;AAC5E,wEAAwE;AACxE,2DAA2D;AAC3D,GAAG;AACH,6EAA6E;AAC7E,sDAAsD;AACtD,GAAG;AACH,6EAA6E;AAC7E,2EAA2E;AAC3E,8EAA8E;AAC9E,yEAAyE;AACzE,gFAAgF;AAChF,4EAA4E;AAC5E,gBAAgB;AAChB,GAAG;AACH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,MAAM,CAAC,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,mCAAmC;AAC/D,MAAM,CAAC,GAAG,EAAE,IAAI,IAAI,GAAG,uCAAuC,CAAC,CAAC,wBAAwB;AACxF,MAAM,EAAE,GAAG,mEAAmE,CAAC,CAAC,eAAe;AAC/F,MAAM,EAAE,GAAG,mEAAmE,CAAC,CAAC,eAAe;AAC/F,MAAM,EAAE,GAAG,8EAA8E,CAAC;AAC1F,MAAM,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC;AACxB;;;;GAIG;AACH,MAAM,KAAK,GAAG;IACV,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW;IACnB,CAAC,EAAE,EAAE,EAAE,yBAAyB;IAChC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,6CAA6C;CACjF,CAAC;AACF,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC;AACvF,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,YAAY;AACtD,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,YAAY;AACtD,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,UAAU,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC;AAChH,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,qCAAqC;CAC1D,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7D,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB;AAC/D,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3C,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,uBAAuB;AAC1F,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;AACvF,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,0BAA0B,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtH,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB;AACxF,0CAA0C;AAC1C,MAAM,KAAK;IACP,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QACtB,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACzB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,gDAAgD;IAChD,MAAM,CAAC,OAAO,CAAC,GAAG;QACd,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,CAAC,UAAU,CAAC,SAAS;QACvB,IAAG,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;;YAC9D,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK;QAClC,MAAM,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,mCAAmC;QACjE,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,EAAE,CAAC,GAAG,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,sCAAsC;QACrE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,0CAA0C;QACpE,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yCAAyC;QACxE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,+BAA+B;QACnD,kCAAkC;QAClC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK;QAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS;QAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU;QACpC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,kCAAkC;QAC7E,IAAI,CAAC,OAAO;YACR,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,6BAA6B;QACvD,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,8BAA8B;QAC9D,MAAM,aAAa,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB;QAC/D,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,aAAa;YACpC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB;QAC5C,IAAI,aAAa,KAAK,MAAM;YACxB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACd,OAAO,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY;IACtD,CAAC;IACD,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uCAAuC;IAC7E,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B;IAClE,cAAc;QACV,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;QACvB,MAAM,CAAC,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,CAAC,GAAG,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,mCAAmC;QAC3E,uDAAuD;QACvD,+EAA+E;QAC/E,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK;QAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK;QAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK;QAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK;QAC5B,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM;QAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe;QACjD,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa;QACtD,IAAI,IAAI,KAAK,KAAK;YACd,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC7D,6EAA6E;QAC7E,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpB,IAAI,EAAE,KAAK,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,CAAC,KAAK;QACR,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;QACxC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,kCAAkC;QACpF,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3C,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC;IAC1C,CAAC;IACD,GAAG,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM;QACF,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,wCAAwC;IACxC,MAAM;QACF,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,mCAAmC;QAC5E,MAAM,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,sFAAsF;QAC3G,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACnB,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpB,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,wCAAwC;IACxC,GAAG,CAAC,KAAK;QACL,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,+BAA+B;QAChF,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,kCAAkC;QAC5F,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,yFAAyF;QACjH,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpB,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,CAAC,yCAAyC;QAC1D,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACd,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uCAAuC;QAC7D,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,iCAAiC;QACnD,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,wBAAwB;YAC3E,IAAI,CAAC,GAAG,EAAE;gBACN,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC;iBAC/C,IAAI,IAAI;gBACT,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,wCAAwC;QAC9D,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IACD,QAAQ,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B;IACzE,MAAM,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,aAAa,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB;IACpF,YAAY,KAAK,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,4BAA4B;IAClF,aAAa;QACT,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,kCAAkC;QAC5E,IAAI,CAAC,GAAG,EAAE;YACN,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,8CAA8C;QACnE,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;IACnB,CAAC;IACD,iFAAiF;IACjF,QAAQ;QACJ,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;QACrC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACd,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,2BAA2B;QACxD,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB;QAC1C,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE;YAChB,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,2CAA2C;QACvE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,yBAAyB;IACpE,CAAC;IACD,UAAU;QACN,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,6BAA6B;QAC/D,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B;QACnD,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,8BAA8B;QAC1D,OAAO,CAAC,CAAC;IACb,CAAC;IACD,KAAK,KAAK,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB;IAClE,QAAQ,KAAI,OAAO,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,KAAI,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrF;AACD,6BAA6B;AAC7B,KAAK,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/C,4BAA4B;AAC5B,KAAK,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACvC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,6BAA6B;AACjE,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC/D,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe;AACpF,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,mBAAmB;AAC9E,MAAM,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE;IACf,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE;QACxB,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,eAAe;IACrC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACtB,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,oBAAoB;IAChD,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACtB,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,oBAAoB;IAChD,OAAO;AACX,CAAC,CAAC;AACF,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE;IAChB,MAAM,CAAC,GAAG,aAAa,CAAC;IACxB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QACT,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IAClB,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACnC,IAAI,EAAE,GAAG,CAAC;QACN,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IAClB,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IACtB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,2BAA2B;QAC1E,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,sCAAsC;QAC1E,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB;QAC5D,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS;YACpC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QAClB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,6BAA6B;IAC3D,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AACF,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,qBAAqB;AACjF,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB;AACpF,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE;IACxB,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,8BAA8B;IAC9F,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,2BAA2B;IACxC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+BAA+B;IACvF,OAAO,CAAC,CAAC;AACb,CAAC,CAAC;AACF,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;IACvB,IAAG,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,MAAM,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC9C,IAAI,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;QACtB,GAAG,CAAC,eAAe,GAAG,GAAG,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,0BAA0B;IACzE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IAC3D,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,+BAA+B;QAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB;QAChD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,yBAAyB;AAC7E,CAAC,CAAC;AACF,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;IACtB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;QAClB,CAAC,IAAI,CAAC,CAAC;QACP,CAAC,IAAI,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC,CAAC;AACF,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,EAAE;IACtB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB;IAC5C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB;IAC9C,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,uBAAuB;IAC3D,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAwB;IAC3D,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW;IAChD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW;IACnD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW;IACnD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW;IACnD,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY;IACrD,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY;IACtD,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY;IACtD,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,yCAAyC;IACrF,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;AAC7B,CAAC,CAAC;AACF,MAAM,GAAG,GAAG,8EAA8E,CAAC,CAAC,MAAM;AAClG,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IACrB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK;IAC9B,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK;IAChC,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,gBAAgB;IAC3D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,qBAAqB;IAC9C,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM;IAChC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,uBAAuB;IACxC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,oCAAoC;IAC9D,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,yCAAyC;IACrE,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yCAAyC;IACzE,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,sCAAsC;IAC1E,IAAI,QAAQ;QACR,CAAC,GAAG,KAAK,CAAC;IACd,IAAI,QAAQ,IAAI,MAAM;QAClB,CAAC,GAAG,KAAK,CAAC,CAAC,yCAAyC;IACxD,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE;QAClB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;IAC9B,OAAO,EAAE,OAAO,EAAE,QAAQ,IAAI,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACvD,CAAC,CAAC;AACF,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,8BAA8B;AAC5E,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe;AAChE,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE;IACrB,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC;IAC1B,IAAI,OAAO,EAAE,KAAK,UAAU;QACxB,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAClC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC;AACF,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,EAAE;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,wCAAwC;IAC1E,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,2BAA2B;IAC3C,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,eAAe;IAChC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,cAAc;IAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,uBAAuB;IAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,oCAAoC;IAClE,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB;IAChD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,iCAAiC;IACxE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACvD,CAAC,CAAC;AACF,4EAA4E;AAC5E,MAAM,yBAAyB,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACpF,MAAM,yCAAyC,GAAG,CAAC,IAAI,EAAE,EAAE;IACvD,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB;IAC3D,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB;IAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,iCAAiC;IACxE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,+CAA+C;AACxH,CAAC,CAAA;AACD,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1E,0EAA0E;AAC1E,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAC5F,uGAAuG;AACvG,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;AACrE,SAAS,UAAU,CAAC,YAAY,EAAE,GAAG;IACjC,IAAI,YAAY;QACZ,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7C,CAAC;AACD,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;IAC7B,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IACvC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,4CAA4C;IACvE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,WAAW;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,gCAAgC;IACrE,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,EAAE;QACtB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,oCAAoC;QAC7E,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mCAAmC;IAChF,CAAC,CAAC;IACF,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAChC,CAAC,CAAC;AACF,iEAAiE;AACjE,MAAM,SAAS,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;IACrC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,yCAAyC;IAC9D,MAAM,CAAC,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;IAC/D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,4CAA4C;IACvF,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC;AACxF,CAAC,CAAC;AACF,qFAAqF;AACrF,MAAM,yBAAyB,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;IACrD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,yCAAyC;IAC9D,MAAM,CAAC,GAAG,MAAM,yCAAyC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;IAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,4CAA4C;IACvF,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC;AACxF,CAAC,CAAC;AACF,8FAA8F;AAC9F,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;IAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,wCAAwC;IAC7D,MAAM,CAAC,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,4CAA4C;IACjF,OAAO,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC;AACzF,CAAC,CAAC;AACF,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,0BAA0B;AACzD,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE;IAC1C,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,4CAA4C;IACjE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAwB;IACzC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,0CAA0C;IACnE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,UAAU,EAAE,CAAC;IAC7C,IAAI,CAAC;QACD,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,uBAAuB;QACvD,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,uCAAuC;QACpF,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,qCAAqC;QACpE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,0BAA0B;QAChD,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,gCAAgC;IAC7F,CAAC;IACD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC;IACjB,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,EAAE;QACtB,IAAI,EAAE,IAAI,IAAI;YACV,OAAO,KAAK,CAAC,CAAC,sCAAsC;QACxD,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,YAAY,EAAE;YAC3B,OAAO,KAAK,CAAC,CAAC,4CAA4C;QAC9D,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,oCAAoC;QAC/D,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB;QACtD,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,4BAA4B;IACnF,CAAC,CAAC;IACF,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAChC,CAAC,CAAC;AACF,0CAA0C;AAC1C,2DAA2D;AAC3D,MAAM,WAAW,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5F,wFAAwF;AACxF,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAClF,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,yCAAyC;CACzD,OAAO,UAAU,KAAK,QAAQ,IAAI,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1F,MAAM,MAAM,GAAG,GAAG,EAAE;IAChB,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,+BAA+B,CAAC,CAAC;AACjE,CAAC,CAAC;AACF,yFAAyF;AACzF,MAAM,GAAG,GAAG;IACR,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,GAAG;IACf,WAAW,EAAE,OAAO;IACpB,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,MAAM;IACd,WAAW,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE;QACtB,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,oDAAoD;QACpE,2CAA2C;QAC3C,yDAAyD;QACzD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe;YACxB,GAAG,CAAC,wCAAwC,CAAC,CAAC;QAClD,OAAO,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,WAAW,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,EAAE;QAC/B,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,UAAU,EAAE,SAAS,EAAE,qBAAqB;IAC5C,aAAa,EAAE,QAAQ;IACvB,aAAa,EAAE,MAAM;CACxB,CAAC;AACF,sCAAsC;AACtC,MAAM,KAAK,GAAG;IACV,yBAAyB,EAAE,yBAAyB;IACpD,oBAAoB,EAAE,oBAAoB;IAC1C,gBAAgB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;IAC3C,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ;CAC3E,CAAC;AACF,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,4CAA4C;AACzD,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,MAAM,UAAU,GAAG,GAAG,EAAE;IACpB,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,4CAA4C;IAC/D,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,2CAA2C;IAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,sCAAsC;QACvE,CAAC,GAAG,CAAC,CAAC,CAAC,sCAAsC;QAC7C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,iCAAiC;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,2CAA2C;IAC/D,CAAC,CAAC,yCAAyC;IAC3C,OAAO,MAAM,CAAC,CAAC,wCAAwC;AAC3D,CAAC,CAAC;AACF,IAAI,KAAK,GAAG,SAAS,CAAC,CAAC,+BAA+B;AACtD,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE;IACf,wCAAwC;IACxC,MAAM,IAAI,GAAG,KAAK,IAAI,CAAC,KAAK,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC,0CAA0C;IACxF,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;IAChF,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,4CAA4C;IAC9D,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU;IAClC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,UAAU;IAClC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,6BAA6B;IAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,kBAAkB;QAChD,CAAC,KAAK,OAAO,CAAC,CAAC,0BAA0B;QACzC,IAAI,KAAK,GAAG,WAAW,EAAE,CAAC;YACtB,KAAK,IAAI,MAAM,CAAC;YAChB,CAAC,IAAI,EAAE,CAAC;QACZ,CAAC,CAAC,sCAAsC;QACxC,MAAM,GAAG,GAAG,CAAC,GAAG,WAAW,CAAC;QAC5B,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAyB;QAC7E,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,4BAA4B;QAC3E,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACd,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,wCAAwC;QAClF,CAAC;aACI,CAAC,CAAC,sCAAsC;YACzC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC;QAC3E,CAAC;IACL,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,2CAA2C;AAChE,CAAC,CAAC,CAAC,yFAAyF;AAC5F,+DAA+D;AAC/D,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC"}