naeural-client 2.6.34__tar.gz → 2.6.35__tar.gz

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 (154) hide show
  1. {naeural_client-2.6.34 → naeural_client-2.6.35}/PKG-INFO +1 -1
  2. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/_ver.py +1 -1
  3. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/base_logger.py +4 -1
  4. {naeural_client-2.6.34 → naeural_client-2.6.35}/pyproject.toml +1 -1
  5. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/auth/auth.py +1 -1
  6. naeural_client-2.6.35/xperimental/ora/ora_check.py +46 -0
  7. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/test1.py +16 -3
  8. {naeural_client-2.6.34 → naeural_client-2.6.35}/.devcontainer/Dockerfile +0 -0
  9. {naeural_client-2.6.34 → naeural_client-2.6.35}/.devcontainer/devcontainer.json +0 -0
  10. {naeural_client-2.6.34 → naeural_client-2.6.35}/.gitattributes +0 -0
  11. {naeural_client-2.6.34 → naeural_client-2.6.35}/.github/workflows/python-publish.yml +0 -0
  12. {naeural_client-2.6.34 → naeural_client-2.6.35}/.gitignore +0 -0
  13. {naeural_client-2.6.34 → naeural_client-2.6.35}/.vscode/launch.json +0 -0
  14. {naeural_client-2.6.34 → naeural_client-2.6.35}/LICENSE +0 -0
  15. {naeural_client-2.6.34 → naeural_client-2.6.35}/README.md +0 -0
  16. {naeural_client-2.6.34 → naeural_client-2.6.35}/TODOs.md +0 -0
  17. {naeural_client-2.6.34 → naeural_client-2.6.35}/__init__.py +0 -0
  18. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/__init__.py +0 -0
  19. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/base/__init__.py +0 -0
  20. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/base/distributed_custom_code_presets.py +0 -0
  21. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/base/generic_session.py +0 -0
  22. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/base/instance.py +0 -0
  23. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/base/payload/__init__.py +0 -0
  24. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/base/payload/payload.py +0 -0
  25. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/base/pipeline.py +0 -0
  26. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/base/plugin_template.py +0 -0
  27. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/base/responses.py +0 -0
  28. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/base/transaction.py +0 -0
  29. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/base/webapp_pipeline.py +0 -0
  30. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/base_decentra_object.py +0 -0
  31. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/bc/__init__.py +0 -0
  32. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/bc/base.py +0 -0
  33. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/bc/chain.py +0 -0
  34. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/bc/ec.py +0 -0
  35. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/certs/__init__.py +0 -0
  36. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/certs/r9092118.ala.eu-central-1.emqxsl.com.crt +0 -0
  37. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/cli/README.md +0 -0
  38. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/cli/cli.py +0 -0
  39. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/cli/cli_commands.py +0 -0
  40. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/cli/nodes.py +0 -0
  41. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/cli/oracles.py +0 -0
  42. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/code_cheker/__init__.py +0 -0
  43. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/code_cheker/base.py +0 -0
  44. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/code_cheker/checker.py +0 -0
  45. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/comm/__init__.py +0 -0
  46. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/comm/amqp_wrapper.py +0 -0
  47. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/comm/mqtt_wrapper.py +0 -0
  48. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/const/README.md +0 -0
  49. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/const/__init__.py +0 -0
  50. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/const/apps.py +0 -0
  51. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/const/base.py +0 -0
  52. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/const/comms.py +0 -0
  53. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/const/environment.py +0 -0
  54. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/const/formatter.py +0 -0
  55. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/const/heartbeat.py +0 -0
  56. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/const/misc.py +0 -0
  57. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/const/payload.py +0 -0
  58. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/default/__init__.py +0 -0
  59. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/default/instance/__init__.py +0 -0
  60. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/default/instance/chain_dist_custom_job_01_plugin.py +0 -0
  61. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/default/instance/custom_webapi_01_plugin.py +0 -0
  62. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/default/instance/net_mon_01_plugin.py +0 -0
  63. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/default/instance/telegram_basic_bot_01_plugin.py +0 -0
  64. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/default/instance/telegram_conversational_bot_01_plugin.py +0 -0
  65. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/default/instance/view_scene_01_plugin.py +0 -0
  66. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/default/session/mqtt_session.py +0 -0
  67. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/io_formatter/__init__.py +0 -0
  68. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/io_formatter/base/__init__.py +0 -0
  69. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/io_formatter/base/base_formatter.py +0 -0
  70. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/io_formatter/default/__init__.py +0 -0
  71. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/io_formatter/default/a_dummy.py +0 -0
  72. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/io_formatter/default/aixp1.py +0 -0
  73. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/io_formatter/default/default.py +0 -0
  74. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/io_formatter/io_formatter_manager.py +0 -0
  75. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/__init__.py +0 -0
  76. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/logger_mixins/__init__.py +0 -0
  77. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/logger_mixins/class_instance_mixin.py +0 -0
  78. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/logger_mixins/computer_vision_mixin.py +0 -0
  79. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/logger_mixins/datetime_mixin.py +0 -0
  80. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/logger_mixins/download_mixin.py +0 -0
  81. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/logger_mixins/general_serialization_mixin.py +0 -0
  82. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/logger_mixins/json_serialization_mixin.py +0 -0
  83. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/logger_mixins/pickle_serialization_mixin.py +0 -0
  84. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/logger_mixins/process_mixin.py +0 -0
  85. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/logger_mixins/resource_size_mixin.py +0 -0
  86. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/logger_mixins/timers_mixin.py +0 -0
  87. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/logger_mixins/upload_mixin.py +0 -0
  88. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/logger_mixins/utils_mixin.py +0 -0
  89. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/small_logger.py +0 -0
  90. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/tzlocal/__init__.py +0 -0
  91. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/tzlocal/unix.py +0 -0
  92. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/tzlocal/utils.py +0 -0
  93. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/tzlocal/win32.py +0 -0
  94. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/logging/tzlocal/windows_tz.py +0 -0
  95. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/plugins_manager_mixin.py +0 -0
  96. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/utils/__init__.py +0 -0
  97. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/utils/comm_utils.py +0 -0
  98. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/utils/config.py +0 -0
  99. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/utils/dotenv.py +0 -0
  100. {naeural_client-2.6.34 → naeural_client-2.6.35}/naeural_client/utils/oracle_sync/multiple_requests.py +0 -0
  101. {naeural_client-2.6.34 → naeural_client-2.6.35}/nepctl.MD +0 -0
  102. {naeural_client-2.6.34 → naeural_client-2.6.35}/requirements.txt +0 -0
  103. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/.example_env +0 -0
  104. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/8. custom_code_fastapi_assets/index.html +0 -0
  105. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/9. code_sandbox_from_scratch_assets/index.html +0 -0
  106. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/_example_pk_sdk.pem +0 -0
  107. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/ex01_part1_connect.py +0 -0
  108. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/ex01_part2_filter.py +0 -0
  109. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/ex01_part3_adv_filter.py +0 -0
  110. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/ex02_deploy_end_to_end.ipynb +0 -0
  111. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/ex02_deploy_existing_plugin.py +0 -0
  112. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/ex03_custom_code_on_one_remote__example_1.py +0 -0
  113. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/ex04_custom_code_on_one_remote__example_2.py +0 -0
  114. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/ex05_custom_code_on_one_remote__example_3.py +0 -0
  115. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/ex06_custom_code_on_multiple_remotes__example_1.py +0 -0
  116. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/ex07_custom_code_on_multiple_remotes__example_2.py +0 -0
  117. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/ex08_custom_webapi.py +0 -0
  118. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/ex09_code_sandbox_from_scratch.py +0 -0
  119. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/ex10_telegram_echo_bot.py +0 -0
  120. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/ex11_telegram_blackjack_bot.py +0 -0
  121. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/ex12_telegram_smart_bot.py +0 -0
  122. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/ex13_launch_repo_based_webapp.py +0 -0
  123. {naeural_client-2.6.34 → naeural_client-2.6.35}/tutorials/video_presentation/1. hello_world.ipynb +0 -0
  124. {naeural_client-2.6.34 → naeural_client-2.6.35}/winrun.bat +0 -0
  125. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/.example_env +0 -0
  126. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/_archive/test.py +0 -0
  127. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/_tutorials/3. simple_real_time_custom_code.py +0 -0
  128. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/_tutorials/4. real_time_custom_code_2.py +0 -0
  129. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/_tutorials/8. chatbot.py +0 -0
  130. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/check_local_keys/check1.py +0 -0
  131. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/decentralized/chain_dist_example.py +0 -0
  132. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/decentralized/chain_dist_example_initiator.py +0 -0
  133. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/decentralized/chain_dist_example_worker.py +0 -0
  134. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/enc_dec/enc_dec_test.py +0 -0
  135. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/enc_dec/payload_tester.py +0 -0
  136. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/eth/eth_sign.py +0 -0
  137. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/eth/info.md +0 -0
  138. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/eth/sign.py +0 -0
  139. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/multi-enc-dec/multi_test1.py +0 -0
  140. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/multi-enc-dec/multi_test2.py +0 -0
  141. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/names/gen1.py +0 -0
  142. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/names/gen2.py +0 -0
  143. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/names/gen3.py +0 -0
  144. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/sign/simple_payload_checker.py +0 -0
  145. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/sign/test_sign1.py +0 -0
  146. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/sign/test_sign2.py +0 -0
  147. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/utils/get_documentation.py +0 -0
  148. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/various/README.md +0 -0
  149. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/various/attach_example.py +0 -0
  150. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/various/ex1.py +0 -0
  151. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/various/hello.py +0 -0
  152. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/various/remote_exec.py +0 -0
  153. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/various/save_images.py +0 -0
  154. {naeural_client-2.6.34 → naeural_client-2.6.35}/xperimental/wl/wl_add.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: naeural_client
3
- Version: 2.6.34
3
+ Version: 2.6.35
4
4
  Summary: `naeural_client` is the Python SDK required for client app development for the Naeural Edge Protocol Edge Protocol framework
5
5
  Project-URL: Homepage, https://github.com/NaeuralEdgeProtocol/naeural_client
6
6
  Project-URL: Bug Tracker, https://github.com/NaeuralEdgeProtocol/naeural_client/issues
@@ -1,4 +1,4 @@
1
- __VER__ = "2.6.34"
1
+ __VER__ = "2.6.35"
2
2
 
3
3
  if __name__ == "__main__":
4
4
  with open("pyproject.toml", "rt") as fd:
@@ -1687,8 +1687,11 @@ class BaseLogger(object):
1687
1687
  def now_str_fmt(fmt=None):
1688
1688
  if fmt is None:
1689
1689
  fmt = '%Y-%m-%d %H:%M:%S.%f'
1690
-
1691
1690
  return dt.now().strftime(fmt)
1691
+
1692
+ @staticmethod
1693
+ def str_to_bool(s):
1694
+ return str(s).lower() in ['true', 't', 'yes', 'y', '1', 'on']
1692
1695
 
1693
1696
  def get_error_info(self, return_err_val=False):
1694
1697
  """
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "naeural_client"
7
- version = "2.6.34"
7
+ version = "2.6.35"
8
8
  authors = [
9
9
  { name="Andrei Ionut Damian", email="andrei.damian@me.com" },
10
10
  { name="Cristan Bleotiu", email="cristibleotiu@gmail.com" },
@@ -16,7 +16,7 @@ if __name__ == '__main__' :
16
16
  }
17
17
  )
18
18
 
19
- for _ in range(2):
19
+ for _ in range(4):
20
20
  d = eng1.dauth_autocomplete(
21
21
  add_env=False,
22
22
  debug=True,
@@ -0,0 +1,46 @@
1
+ import requests
2
+ import json
3
+ import pandas as pd
4
+
5
+ if __name__ == "__main__":
6
+ N = 4
7
+
8
+ # the provided url, note: if this does not return json directly, it might need adjustment
9
+ url = "https://naeural-oracle.ngrok.app/active_nodes_list"
10
+ server_alias_counts = {}
11
+
12
+ for i in range(N):
13
+ try:
14
+ response = requests.get(url)
15
+ response.raise_for_status()
16
+ data = response.json()
17
+ except Exception as e:
18
+ print(f"error occurred during request {i+1}: {e}")
19
+ continue
20
+
21
+ # extract nodes data from the json response
22
+ result = data.get("result", {})
23
+ server_alias = result.get("server_alias")
24
+ if server_alias:
25
+ server_alias_counts[server_alias] = server_alias_counts.get(server_alias, 0) + 1
26
+ nodes = result.get("nodes", {})
27
+ node_list = []
28
+ for node_addr, node_data in nodes.items():
29
+ if not isinstance(node_data, dict):
30
+ continue
31
+ eth_addr = node_data.get("eth_addr")
32
+ alias = node_data.get("alias")
33
+ node_list.append({
34
+ "Node alias": alias,
35
+ "Node ETH": eth_addr,
36
+ "Node addr": node_addr
37
+ })
38
+
39
+ # create and display the pandas dataframe for this request
40
+ df = pd.DataFrame(node_list)
41
+ print(f"\nResponse #{i+1} from {server_alias}:")
42
+ print(df)
43
+
44
+ # update the server_alias counts
45
+
46
+ print("\nserver_alias counts:", server_alias_counts)
@@ -5,8 +5,21 @@ def run_predict(plugin: CustomPluginTemplate, inputs: list[int], nr_steps: int)
5
5
  Here we use the Ratio1 build in basic ML internal API
6
6
  """
7
7
  preds = plugin.basic_ts_fit_predict(inputs, nr_steps)
8
-
9
- return preds
8
+ # now we apply some simple heuristic to get the lower and upper bounds
9
+ lower_bound = []
10
+ upper_bound = []
11
+ heuristic_factor = 0.1
12
+ for pred in preds:
13
+ lower_bound.append(int(pred - abs(pred * heuristic_factor)))
14
+ upper_bound.append(int(pred + abs(pred * heuristic_factor)))
15
+ #endfor
16
+ result = {
17
+ "predictions": [round(x,1) for x in preds],
18
+ "lower_bound": lower_bound,
19
+ "upper_bound": upper_bound
20
+ }
21
+ return result
22
+
10
23
 
11
24
  if __name__ == '__main__':
12
25
 
@@ -32,5 +45,5 @@ if __name__ == '__main__':
32
45
  session.wait(
33
46
  close_pipeline_on_timeout=True,
34
47
  close_session_on_timeout=True,
35
- seconds=180
48
+ seconds=300
36
49
  )
File without changes