bearcat 1.5.34.2 → 1.5.35

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 (256) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +0 -0
  3. data/lib/badgrcat/api_array.rb +0 -0
  4. data/lib/badgrcat/version.rb +0 -0
  5. data/lib/bearcat/api_array.rb +1 -1
  6. data/lib/bearcat/client/account_reports.rb +0 -0
  7. data/lib/bearcat/client/accounts.rb +0 -0
  8. data/lib/bearcat/client/analytics.rb +0 -0
  9. data/lib/bearcat/client/assignment_groups.rb +0 -0
  10. data/lib/bearcat/client/assignments.rb +0 -0
  11. data/lib/bearcat/client/blueprint_courses.rb +0 -0
  12. data/lib/bearcat/client/calendar_events.rb +0 -0
  13. data/lib/bearcat/client/canvas_files.rb +0 -0
  14. data/lib/bearcat/client/conferences.rb +0 -0
  15. data/lib/bearcat/client/content_exports.rb +0 -0
  16. data/lib/bearcat/client/content_migrations.rb +0 -0
  17. data/lib/bearcat/client/conversations.rb +0 -0
  18. data/lib/bearcat/client/custom_gradebook_columns.rb +0 -0
  19. data/lib/bearcat/client/discussions.rb +0 -0
  20. data/lib/bearcat/client/enrollments.rb +0 -0
  21. data/lib/bearcat/client/external_tools.rb +0 -0
  22. data/lib/bearcat/client/file_helper.rb +0 -0
  23. data/lib/bearcat/client/files.rb +0 -0
  24. data/lib/bearcat/client/folders.rb +0 -0
  25. data/lib/bearcat/client/group_categories.rb +0 -0
  26. data/lib/bearcat/client/group_memberships.rb +0 -0
  27. data/lib/bearcat/client/groups.rb +0 -0
  28. data/lib/bearcat/client/learning_outcomes.rb +0 -0
  29. data/lib/bearcat/client/logins.rb +0 -0
  30. data/lib/bearcat/client/module_items.rb +0 -0
  31. data/lib/bearcat/client/modules.rb +0 -0
  32. data/lib/bearcat/client/o_auth2.rb +0 -0
  33. data/lib/bearcat/client/outcome_groups.rb +0 -0
  34. data/lib/bearcat/client/outcome_imports.rb +0 -0
  35. data/lib/bearcat/client/outcomes.rb +0 -0
  36. data/lib/bearcat/client/pages.rb +0 -0
  37. data/lib/bearcat/client/progresses.rb +0 -0
  38. data/lib/bearcat/client/quizzes.rb +0 -0
  39. data/lib/bearcat/client/reports.rb +2 -9
  40. data/lib/bearcat/client/roles.rb +0 -0
  41. data/lib/bearcat/client/rubric.rb +0 -0
  42. data/lib/bearcat/client/rubric_assessment.rb +0 -0
  43. data/lib/bearcat/client/rubric_association.rb +0 -0
  44. data/lib/bearcat/client/search.rb +0 -0
  45. data/lib/bearcat/client/sections.rb +0 -0
  46. data/lib/bearcat/client/sis_imports.rb +0 -0
  47. data/lib/bearcat/client/tabs.rb +0 -0
  48. data/lib/bearcat/client_module.rb +0 -0
  49. data/lib/bearcat/rate_limiting/increment_bucket.lua +0 -0
  50. data/lib/bearcat/rate_limiting/redis_script.rb +0 -0
  51. data/lib/bearcat/rate_limiting.rb +0 -0
  52. data/lib/bearcat/version.rb +1 -1
  53. data/lib/bearcat.rb +12 -9
  54. data/lib/catalogcat/api_array.rb +0 -0
  55. data/lib/catalogcat/client/catalogs.rb +0 -0
  56. data/lib/catalogcat/client/certificates.rb +0 -0
  57. data/lib/catalogcat/client/courses.rb +0 -0
  58. data/lib/catalogcat/client/email_domain_sets.rb +0 -0
  59. data/lib/catalogcat/client/enrollments.rb +0 -0
  60. data/lib/catalogcat/client/orders.rb +0 -0
  61. data/lib/catalogcat/client/user_registrations.rb +0 -0
  62. data/lib/catalogcat/client.rb +0 -0
  63. data/lib/catalogcat/version.rb +0 -0
  64. data/lib/catalogcat.rb +0 -0
  65. data/spec/bearcat/api_array_spec.rb +0 -0
  66. data/spec/bearcat/client/accounts_spec.rb +0 -0
  67. data/spec/bearcat/client/analytics_spec.rb +0 -0
  68. data/spec/bearcat/client/assignment_groups_spec.rb +0 -0
  69. data/spec/bearcat/client/assignments_spec.rb +0 -0
  70. data/spec/bearcat/client/blueprint_courses_spec.rb +0 -0
  71. data/spec/bearcat/client/calendar_events_spec.rb +0 -0
  72. data/spec/bearcat/client/canvas_files_spec.rb +0 -0
  73. data/spec/bearcat/client/conferences_spec.rb +0 -0
  74. data/spec/bearcat/client/content_exports_spec.rb +0 -0
  75. data/spec/bearcat/client/content_migrations_spec.rb +0 -0
  76. data/spec/bearcat/client/conversations_spec.rb +0 -0
  77. data/spec/bearcat/client/courses_spec.rb +0 -0
  78. data/spec/bearcat/client/custom_gradebook_columns_spec.rb +0 -0
  79. data/spec/bearcat/client/discussions_spec.rb +0 -0
  80. data/spec/bearcat/client/enrollments_spec.rb +0 -0
  81. data/spec/bearcat/client/external_tools_spec.rb +0 -0
  82. data/spec/bearcat/client/files_spec.rb +0 -0
  83. data/spec/bearcat/client/folders_spec.rb +0 -0
  84. data/spec/bearcat/client/graph_ql_spec.rb +0 -0
  85. data/spec/bearcat/client/group_categories_spec.rb +0 -0
  86. data/spec/bearcat/client/group_membership_spec.rb +0 -0
  87. data/spec/bearcat/client/group_memberships_spec.rb +0 -0
  88. data/spec/bearcat/client/groups_spec.rb +0 -0
  89. data/spec/bearcat/client/learning_outcomes_spec.rb +0 -0
  90. data/spec/bearcat/client/module_items_spec.rb +0 -0
  91. data/spec/bearcat/client/modules_spec.rb +0 -0
  92. data/spec/bearcat/client/o_auth2_spec.rb +0 -0
  93. data/spec/bearcat/client/outcome_groups_spec.rb +0 -0
  94. data/spec/bearcat/client/outcomes_spec.rb +0 -0
  95. data/spec/bearcat/client/pages_spec.rb +0 -0
  96. data/spec/bearcat/client/quizzes_spec.rb +0 -0
  97. data/spec/bearcat/client/roles_spec.rb +0 -0
  98. data/spec/bearcat/client/rubric_assessment_spec.rb +0 -0
  99. data/spec/bearcat/client/rubric_association_spec.rb +0 -0
  100. data/spec/bearcat/client/rubric_spec.rb +0 -0
  101. data/spec/bearcat/client/search_spec.rb +0 -0
  102. data/spec/bearcat/client/sections_spec.rb +0 -0
  103. data/spec/bearcat/client/submissions_spec.rb +0 -0
  104. data/spec/bearcat/client/users_spec.rb +0 -0
  105. data/spec/bearcat/client_spec.rb +0 -0
  106. data/spec/bearcat/rate_limiting_spec.rb +0 -0
  107. data/spec/bearcat/stub_bearcat_spec.rb +0 -0
  108. data/spec/bearcat_spec.rb +0 -0
  109. data/spec/fixtures/access_token.json +0 -0
  110. data/spec/fixtures/account_admin_create.json +0 -0
  111. data/spec/fixtures/account_admin_delete.json +0 -0
  112. data/spec/fixtures/account_admins.json +0 -0
  113. data/spec/fixtures/account_courses.json +0 -0
  114. data/spec/fixtures/account_grading_standards.json +0 -0
  115. data/spec/fixtures/account_groups.json +0 -0
  116. data/spec/fixtures/account_reports.json +0 -0
  117. data/spec/fixtures/account_reports_index.json +0 -0
  118. data/spec/fixtures/account_reports_result_success.json +0 -0
  119. data/spec/fixtures/account_reports_start_result.json +0 -0
  120. data/spec/fixtures/account_role.json +0 -0
  121. data/spec/fixtures/account_roles.json +0 -0
  122. data/spec/fixtures/account_sis_imports.json +0 -0
  123. data/spec/fixtures/account_sub_accounts.json +0 -0
  124. data/spec/fixtures/account_user.json +0 -0
  125. data/spec/fixtures/account_users.json +0 -0
  126. data/spec/fixtures/accounts.json +0 -0
  127. data/spec/fixtures/add_custom_user_data.json +0 -0
  128. data/spec/fixtures/add_user.json +0 -0
  129. data/spec/fixtures/assignment.json +0 -0
  130. data/spec/fixtures/assignment_group.json +0 -0
  131. data/spec/fixtures/assignment_groups.json +0 -0
  132. data/spec/fixtures/assignment_section_override.json +0 -0
  133. data/spec/fixtures/assignments.json +0 -0
  134. data/spec/fixtures/bearcat.jpg +0 -0
  135. data/spec/fixtures/blueprint_migration.json +0 -0
  136. data/spec/fixtures/blueprint_subscriptions.json +0 -0
  137. data/spec/fixtures/blueprint_template.json +0 -0
  138. data/spec/fixtures/blueprint_update_assocations_success.json +0 -0
  139. data/spec/fixtures/calendar_event.json +0 -0
  140. data/spec/fixtures/calendar_events.json +0 -0
  141. data/spec/fixtures/canvas_files/declare_file.json +0 -0
  142. data/spec/fixtures/canvas_files/upload_success.json +0 -0
  143. data/spec/fixtures/cc.imscc +0 -0
  144. data/spec/fixtures/communication_channels.json +0 -0
  145. data/spec/fixtures/conclude_enrollment.json +0 -0
  146. data/spec/fixtures/content_export.json +0 -0
  147. data/spec/fixtures/content_migration_files/content_migration.json +0 -0
  148. data/spec/fixtures/content_migration_files/response.json +0 -0
  149. data/spec/fixtures/content_migration_files/upload_success.json +0 -0
  150. data/spec/fixtures/conversation.json +0 -0
  151. data/spec/fixtures/course.json +0 -0
  152. data/spec/fixtures/course_conferences.json +0 -0
  153. data/spec/fixtures/course_copy.json +0 -0
  154. data/spec/fixtures/course_enrollments.json +0 -0
  155. data/spec/fixtures/course_files.json +0 -0
  156. data/spec/fixtures/course_folder.json +0 -0
  157. data/spec/fixtures/course_folders.json +0 -0
  158. data/spec/fixtures/course_grading_standards.json +0 -0
  159. data/spec/fixtures/course_groups.json +0 -0
  160. data/spec/fixtures/course_sections.json +0 -0
  161. data/spec/fixtures/course_settings.json +0 -0
  162. data/spec/fixtures/course_students.json +0 -0
  163. data/spec/fixtures/create_course_discussion.json +0 -0
  164. data/spec/fixtures/create_group_discussion.json +0 -0
  165. data/spec/fixtures/create_outcome_in_group.json +0 -0
  166. data/spec/fixtures/create_section.json +0 -0
  167. data/spec/fixtures/created_assignment.json +0 -0
  168. data/spec/fixtures/created_course.json +0 -0
  169. data/spec/fixtures/created_group.json +0 -0
  170. data/spec/fixtures/created_group_category.json +0 -0
  171. data/spec/fixtures/created_group_membership.json +0 -0
  172. data/spec/fixtures/created_module.json +0 -0
  173. data/spec/fixtures/custom_data.json +0 -0
  174. data/spec/fixtures/custom_food_data.json +0 -0
  175. data/spec/fixtures/custom_gradebook_columns/column_data.json +0 -0
  176. data/spec/fixtures/custom_gradebook_columns/custom_gradebook_column.json +0 -0
  177. data/spec/fixtures/custom_gradebook_columns/custom_gradebook_columns.json +0 -0
  178. data/spec/fixtures/custom_gradebook_columns/gradebook_column_progress.json +0 -0
  179. data/spec/fixtures/dashboard.json +0 -0
  180. data/spec/fixtures/delete_course.json +0 -0
  181. data/spec/fixtures/delete_custom_data_scope.json +0 -0
  182. data/spec/fixtures/delete_group_category.json +0 -0
  183. data/spec/fixtures/delete_section.json +0 -0
  184. data/spec/fixtures/deleted_conversation.json +0 -0
  185. data/spec/fixtures/deleted_group.json +0 -0
  186. data/spec/fixtures/department_level_participation.json +0 -0
  187. data/spec/fixtures/department_level_statistics.json +0 -0
  188. data/spec/fixtures/discussion_entries.json +0 -0
  189. data/spec/fixtures/discussion_entry_replies.json +0 -0
  190. data/spec/fixtures/discussion_topic.json +0 -0
  191. data/spec/fixtures/discussion_topics.json +0 -0
  192. data/spec/fixtures/edited_group.json +0 -0
  193. data/spec/fixtures/edited_group_category.json +0 -0
  194. data/spec/fixtures/enroll_student.json +0 -0
  195. data/spec/fixtures/enrollment_terms.json +0 -0
  196. data/spec/fixtures/external_tool.json +0 -0
  197. data/spec/fixtures/external_tools.json +0 -0
  198. data/spec/fixtures/file.csv +0 -0
  199. data/spec/fixtures/gradebook_history.json +0 -0
  200. data/spec/fixtures/graph_ql_scores.json +0 -0
  201. data/spec/fixtures/group.json +0 -0
  202. data/spec/fixtures/group_categories.json +0 -0
  203. data/spec/fixtures/group_category.json +0 -0
  204. data/spec/fixtures/group_category_groups.json +0 -0
  205. data/spec/fixtures/group_conferences.json +0 -0
  206. data/spec/fixtures/group_membership.json +0 -0
  207. data/spec/fixtures/learning_outcome.json +0 -0
  208. data/spec/fixtures/link_unlink_outcome.json +0 -0
  209. data/spec/fixtures/merge_user.json +0 -0
  210. data/spec/fixtures/module.json +0 -0
  211. data/spec/fixtures/module_item.json +0 -0
  212. data/spec/fixtures/module_item_sequence.json +0 -0
  213. data/spec/fixtures/module_items.json +0 -0
  214. data/spec/fixtures/modules.json +0 -0
  215. data/spec/fixtures/no_custom_data.json +0 -0
  216. data/spec/fixtures/ok.json +0 -0
  217. data/spec/fixtures/outcome_group_import.json +0 -0
  218. data/spec/fixtures/outcome_groups.json +0 -0
  219. data/spec/fixtures/outcome_result.json +0 -0
  220. data/spec/fixtures/outcome_subgroup.json +0 -0
  221. data/spec/fixtures/outcome_subgroups.json +0 -0
  222. data/spec/fixtures/outcomes.json +0 -0
  223. data/spec/fixtures/paged_body.json +0 -0
  224. data/spec/fixtures/pages.json +0 -0
  225. data/spec/fixtures/progress.json +0 -0
  226. data/spec/fixtures/quizzes/course_quiz.json +0 -0
  227. data/spec/fixtures/quizzes/course_quiz_questions.json +0 -0
  228. data/spec/fixtures/quizzes/course_quizzes.json +0 -0
  229. data/spec/fixtures/quizzes/quiz_assignment_override.json +0 -0
  230. data/spec/fixtures/quizzes/quiz_extension.json +0 -0
  231. data/spec/fixtures/reactivate_enrollment.json +0 -0
  232. data/spec/fixtures/report_history.json +0 -0
  233. data/spec/fixtures/report_list.json +0 -0
  234. data/spec/fixtures/report_status.json +0 -0
  235. data/spec/fixtures/rubric.json +0 -0
  236. data/spec/fixtures/rubric_assessment.json +0 -0
  237. data/spec/fixtures/rubric_association.json +0 -0
  238. data/spec/fixtures/search_find_recipients.json +0 -0
  239. data/spec/fixtures/section.json +0 -0
  240. data/spec/fixtures/section_enrollments.json +0 -0
  241. data/spec/fixtures/single_account.json +0 -0
  242. data/spec/fixtures/start_report.json +0 -0
  243. data/spec/fixtures/submissions/submission.json +0 -0
  244. data/spec/fixtures/update_outcome.json +0 -0
  245. data/spec/fixtures/update_outcome_group.json +0 -0
  246. data/spec/fixtures/update_section.json +0 -0
  247. data/spec/fixtures/updated_course.json +0 -0
  248. data/spec/fixtures/user_avatars.json +0 -0
  249. data/spec/fixtures/user_details.json +0 -0
  250. data/spec/fixtures/user_enrollments.json +0 -0
  251. data/spec/fixtures/user_logins.json +0 -0
  252. data/spec/fixtures/user_page_views.json +0 -0
  253. data/spec/fixtures/user_profile.json +0 -0
  254. metadata +161 -159
  255. data/lib/bearcat/misc_exceptions/conflict.rb +0 -10
  256. data/lib/bearcat/rate_limiting/functions.lua +0 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 11b43399e6990820563db689764742ac25433494183cdf43cb736f8b2c941585
4
- data.tar.gz: 980ab9dcc33545d3ac06ed7dd7458c4c2a89b43d991865ef556758671be8cbcf
3
+ metadata.gz: b8fcfccbc8eea1fcb41fb3ade8623d386056025521d254fa8ec717cf7b6f3f2d
4
+ data.tar.gz: c85af5d2f4b9f8c5471d3d8f4d737b2ea02a8f3cb000ec4bb901b626e7860e88
5
5
  SHA512:
6
- metadata.gz: ab74953098572d472952137b87d00f4f67a2e34e3ceeba160853b9273b2e899255533caa093a034830d653c575787da34a01dd4f37be6243c42e1c37487473f8
7
- data.tar.gz: 46eacd9e8ef320596315092f493008819cc0effffd548ea6901efae04b681c4438fcaeecff3b73c220c5bc2ab8a30da619f202cd2a2bc3212fa116c0a7098e9d
6
+ metadata.gz: 07576ba51c616e275eb8c39cb619e8e517b2834ae02e1f3d2887fd0d3b7eb3705a534d01025d6c4be41a1d3e24d35793dcdb1e2581535288297bc502bf2a4f37
7
+ data.tar.gz: 8fb0f20d56e83efa61a0f9e66ad6c1ad49a75c8560e305eac89d4cba23d4102fe6d6b13bdf097f4ad84b8be6aeeff0bc27e123c82a5500f0755980838ba2c6e4
data/Rakefile CHANGED
File without changes
File without changes
File without changes
@@ -198,7 +198,7 @@ module Bearcat
198
198
  path = response.env[:url].path
199
199
  if path.match(/.*\/(courses||groups)\/\d+\/conferences/)
200
200
  key = 'conferences'
201
- elsif path.match(/.*\/accounts\/(?:(?:\d+~)?\d+|self)\/terms/)
201
+ elsif path.match(/.*\/accounts\/[^\/]+\/terms/)
202
202
  key = 'enrollment_terms'
203
203
  end
204
204
  end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -5,21 +5,14 @@ module Bearcat
5
5
  module Reports
6
6
  extend ClientModule
7
7
 
8
- PREFIX = "/api/v1/accounts"
9
-
10
- prefix "#{PREFIX}/:account/reports/" do
8
+ prefix "/api/v1/accounts/:account/reports/" do
11
9
  get :report_list
10
+ post :start_report, ":report_name"
12
11
  get :report_history, ":report_name"
13
12
  get :report_status, ":report_name/:report_id"
14
13
  delete :delete_report, ":report_name/:report_id"
15
14
  end
16
15
 
17
- def start_report(canvas_account_id, report_name, payload)
18
- post("#{PREFIX}/#{canvas_account_id}/reports/#{report_name}", payload)
19
- rescue Bearcat::MiscExceptions::Conflict => e
20
- JSON.parse(e.response.response_body)
21
- end
22
-
23
16
  def download_report(url, save_location=nil)
24
17
  #This method takes the verified URL returned in a Canvas report (attachment['url']), and if
25
18
  #a save_location is included, it will download it in chunks to the disk to save memory. You
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,3 +1,3 @@
1
1
  module Bearcat
2
- VERSION = '1.5.34.2' unless defined?(Bearcat::VERSION)
2
+ VERSION = '1.5.35' unless defined?(Bearcat::VERSION)
3
3
  end
data/lib/bearcat.rb CHANGED
@@ -1,18 +1,21 @@
1
1
  require 'bearcat/version'
2
2
  require 'bearcat/client'
3
- require 'bearcat/misc_exceptions/conflict'
3
+ require 'bearcat/redis_connection'
4
4
 
5
5
  module Bearcat
6
6
  class << self
7
7
  require 'logger'
8
8
  attr_accessor :master_rate_limit
9
- attr_writer :rate_limit_min, :rate_limits, :max_sleep_seconds, :min_sleep_seconds, :logger
9
+ attr_writer :rate_limit_min, :rate_limits, :max_sleep_seconds,
10
+ :min_sleep_seconds, :logger, :rate_limiter
10
11
 
11
12
  def configure
12
13
  yield self if block_given?
13
14
  end
14
15
 
15
- attr_accessor :rate_limiter
16
+ def rate_limiter
17
+ @rate_limiter
18
+ end
16
19
 
17
20
  def rate_limit_min
18
21
  @rate_limit_min ||= 175
@@ -28,7 +31,6 @@ module Bearcat
28
31
 
29
32
  def logger
30
33
  return @logger if defined? @logger
31
-
32
34
  @logger = Logger.new(STDOUT)
33
35
  @logger.level = Logger::DEBUG
34
36
  @logger
@@ -36,13 +38,14 @@ module Bearcat
36
38
 
37
39
  def redis_pool
38
40
  require 'bearcat/redis_connection'
39
- @redis_pool ||= Bearcat::RedisConnection.create(env_prefix: 'BEARCAT')
41
+ @redis_pool ||= Bearcat::RedisConnection.create(env_prefix: "BEARCAT")
40
42
  end
41
43
 
42
- def redis(&block)
43
- raise ArgumentError, 'requires a block' unless block_given?
44
-
45
- redis_pool.with(&block)
44
+ def redis
45
+ raise ArgumentError, "requires a block" unless block_given?
46
+ redis_pool.with do |conn|
47
+ yield conn
48
+ end
46
49
  end
47
50
  end
48
51
  end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/lib/catalogcat.rb CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/spec/bearcat_spec.rb CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes