fastlane_iac_publish 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (808) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +1 -0
  3. data/LICENSE +21 -0
  4. data/README.md +195 -0
  5. data/bin/bin-proxy +19 -0
  6. data/bin/fastlane +23 -0
  7. data/cert/README.md +17 -0
  8. data/cert/lib/cert.rb +4 -0
  9. data/cert/lib/cert/commands_generator.rb +59 -0
  10. data/cert/lib/cert/module.rb +14 -0
  11. data/cert/lib/cert/options.rb +92 -0
  12. data/cert/lib/cert/runner.rb +203 -0
  13. data/credentials_manager/README.md +64 -0
  14. data/credentials_manager/lib/credentials_manager.rb +7 -0
  15. data/credentials_manager/lib/credentials_manager/account_manager.rb +157 -0
  16. data/credentials_manager/lib/credentials_manager/appfile_config.rb +192 -0
  17. data/credentials_manager/lib/credentials_manager/cli.rb +67 -0
  18. data/deliver/README.md +17 -0
  19. data/deliver/lib/assets/DeliverfileDefault +3 -0
  20. data/deliver/lib/assets/DeliverfileDefault.swift +13 -0
  21. data/deliver/lib/assets/ScreenshotsHelp +7 -0
  22. data/deliver/lib/assets/summary.html.erb +299 -0
  23. data/deliver/lib/deliver.rb +15 -0
  24. data/deliver/lib/deliver/app_screenshot.rb +352 -0
  25. data/deliver/lib/deliver/commands_generator.rb +186 -0
  26. data/deliver/lib/deliver/detect_values.rb +93 -0
  27. data/deliver/lib/deliver/download_screenshots.rb +49 -0
  28. data/deliver/lib/deliver/generate_summary.rb +13 -0
  29. data/deliver/lib/deliver/html_generator.rb +71 -0
  30. data/deliver/lib/deliver/loader.rb +56 -0
  31. data/deliver/lib/deliver/module.rb +16 -0
  32. data/deliver/lib/deliver/options.rb +419 -0
  33. data/deliver/lib/deliver/runner.rb +202 -0
  34. data/deliver/lib/deliver/setup.rb +135 -0
  35. data/deliver/lib/deliver/submit_for_review.rb +122 -0
  36. data/deliver/lib/deliver/upload_assets.rb +27 -0
  37. data/deliver/lib/deliver/upload_metadata.rb +391 -0
  38. data/deliver/lib/deliver/upload_price_tier.rb +23 -0
  39. data/deliver/lib/deliver/upload_screenshots.rb +158 -0
  40. data/fastlane/README.md +11 -0
  41. data/fastlane/lib/assets/ActionDetails.md.erb +106 -0
  42. data/fastlane/lib/assets/Actions.md.erb +43 -0
  43. data/fastlane/lib/assets/AppfileTemplate +6 -0
  44. data/fastlane/lib/assets/AppfileTemplate.swift +7 -0
  45. data/fastlane/lib/assets/AppfileTemplateAndroid +2 -0
  46. data/fastlane/lib/assets/DefaultFastfileTemplate +20 -0
  47. data/fastlane/lib/assets/DefaultFastfileTemplate.swift +13 -0
  48. data/fastlane/lib/assets/completions/completion.bash +23 -0
  49. data/fastlane/lib/assets/completions/completion.fish +39 -0
  50. data/fastlane/lib/assets/completions/completion.sh +12 -0
  51. data/fastlane/lib/assets/completions/completion.zsh +23 -0
  52. data/fastlane/lib/assets/custom_action_template.rb +82 -0
  53. data/fastlane/lib/assets/mailgun_html_template.erb +142 -0
  54. data/fastlane/lib/assets/report_template.xml.erb +15 -0
  55. data/fastlane/lib/assets/s3_html_template.erb +105 -0
  56. data/fastlane/lib/assets/s3_plist_template.erb +31 -0
  57. data/fastlane/lib/assets/s3_version_template.erb +4 -0
  58. data/fastlane/lib/fastlane.rb +50 -0
  59. data/fastlane/lib/fastlane/action.rb +198 -0
  60. data/fastlane/lib/fastlane/action_collector.rb +35 -0
  61. data/fastlane/lib/fastlane/actions/README.md +3 -0
  62. data/fastlane/lib/fastlane/actions/actions_helper.rb +162 -0
  63. data/fastlane/lib/fastlane/actions/adb.rb +78 -0
  64. data/fastlane/lib/fastlane/actions/adb_devices.rb +71 -0
  65. data/fastlane/lib/fastlane/actions/add_extra_platforms.rb +45 -0
  66. data/fastlane/lib/fastlane/actions/add_git_tag.rb +122 -0
  67. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +193 -0
  68. data/fastlane/lib/fastlane/actions/appaloosa.rb +266 -0
  69. data/fastlane/lib/fastlane/actions/appetize.rb +188 -0
  70. data/fastlane/lib/fastlane/actions/appetize_viewing_url_generator.rb +146 -0
  71. data/fastlane/lib/fastlane/actions/appium.rb +206 -0
  72. data/fastlane/lib/fastlane/actions/appledoc.rb +226 -0
  73. data/fastlane/lib/fastlane/actions/appstore.rb +14 -0
  74. data/fastlane/lib/fastlane/actions/apteligent.rb +105 -0
  75. data/fastlane/lib/fastlane/actions/artifactory.rb +157 -0
  76. data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +220 -0
  77. data/fastlane/lib/fastlane/actions/backup_file.rb +41 -0
  78. data/fastlane/lib/fastlane/actions/backup_xcarchive.rb +135 -0
  79. data/fastlane/lib/fastlane/actions/badge.rb +155 -0
  80. data/fastlane/lib/fastlane/actions/build_and_upload_to_appetize.rb +107 -0
  81. data/fastlane/lib/fastlane/actions/build_android_app.rb +14 -0
  82. data/fastlane/lib/fastlane/actions/build_app.rb +14 -0
  83. data/fastlane/lib/fastlane/actions/build_ios_app.rb +151 -0
  84. data/fastlane/lib/fastlane/actions/bundle_install.rb +156 -0
  85. data/fastlane/lib/fastlane/actions/capture_android_screenshots.rb +63 -0
  86. data/fastlane/lib/fastlane/actions/capture_ios_screenshots.rb +61 -0
  87. data/fastlane/lib/fastlane/actions/capture_screenshots.rb +14 -0
  88. data/fastlane/lib/fastlane/actions/carthage.rb +215 -0
  89. data/fastlane/lib/fastlane/actions/cert.rb +14 -0
  90. data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +197 -0
  91. data/fastlane/lib/fastlane/actions/chatwork.rb +94 -0
  92. data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +53 -0
  93. data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +68 -0
  94. data/fastlane/lib/fastlane/actions/clean_cocoapods_cache.rb +52 -0
  95. data/fastlane/lib/fastlane/actions/clear_derived_data.rb +70 -0
  96. data/fastlane/lib/fastlane/actions/clipboard.rb +52 -0
  97. data/fastlane/lib/fastlane/actions/cloc.rb +89 -0
  98. data/fastlane/lib/fastlane/actions/cocoapods.rb +148 -0
  99. data/fastlane/lib/fastlane/actions/commit_github_file.rb +186 -0
  100. data/fastlane/lib/fastlane/actions/commit_version_bump.rb +301 -0
  101. data/fastlane/lib/fastlane/actions/copy_artifacts.rb +114 -0
  102. data/fastlane/lib/fastlane/actions/crashlytics.rb +203 -0
  103. data/fastlane/lib/fastlane/actions/create_app_on_managed_play_store.rb +174 -0
  104. data/fastlane/lib/fastlane/actions/create_app_online.rb +75 -0
  105. data/fastlane/lib/fastlane/actions/create_keychain.rb +173 -0
  106. data/fastlane/lib/fastlane/actions/create_pull_request.rb +190 -0
  107. data/fastlane/lib/fastlane/actions/danger.rb +124 -0
  108. data/fastlane/lib/fastlane/actions/debug.rb +32 -0
  109. data/fastlane/lib/fastlane/actions/default_platform.rb +47 -0
  110. data/fastlane/lib/fastlane/actions/delete_keychain.rb +68 -0
  111. data/fastlane/lib/fastlane/actions/deliver.rb +14 -0
  112. data/fastlane/lib/fastlane/actions/deploygate.rb +210 -0
  113. data/fastlane/lib/fastlane/actions/device_grid/README.md +157 -0
  114. data/fastlane/lib/fastlane/actions/docs/build_ios_app.md +245 -0
  115. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +259 -0
  116. data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +363 -0
  117. data/fastlane/lib/fastlane/actions/docs/check_app_store_metadata.md +103 -0
  118. data/fastlane/lib/fastlane/actions/docs/create_app_online.md +282 -0
  119. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +330 -0
  120. data/fastlane/lib/fastlane/actions/docs/get_certificates.md +86 -0
  121. data/fastlane/lib/fastlane/actions/docs/get_provisioning_profile.md +223 -0
  122. data/fastlane/lib/fastlane/actions/docs/get_push_certificate.md +134 -0
  123. data/fastlane/lib/fastlane/actions/docs/run_tests.md +151 -0
  124. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +479 -0
  125. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +730 -0
  126. data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +162 -0
  127. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +231 -0
  128. data/fastlane/lib/fastlane/actions/dotgpg_environment.rb +57 -0
  129. data/fastlane/lib/fastlane/actions/download.rb +76 -0
  130. data/fastlane/lib/fastlane/actions/download_dsyms.rb +266 -0
  131. data/fastlane/lib/fastlane/actions/download_from_play_store.rb +61 -0
  132. data/fastlane/lib/fastlane/actions/dsym_zip.rb +93 -0
  133. data/fastlane/lib/fastlane/actions/echo.rb +14 -0
  134. data/fastlane/lib/fastlane/actions/ensure_bundle_exec.rb +59 -0
  135. data/fastlane/lib/fastlane/actions/ensure_git_branch.rb +69 -0
  136. data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +81 -0
  137. data/fastlane/lib/fastlane/actions/ensure_no_debug_code.rb +135 -0
  138. data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +97 -0
  139. data/fastlane/lib/fastlane/actions/environment_variable.rb +77 -0
  140. data/fastlane/lib/fastlane/actions/erb.rb +88 -0
  141. data/fastlane/lib/fastlane/actions/fastlane_version.rb +15 -0
  142. data/fastlane/lib/fastlane/actions/flock.rb +82 -0
  143. data/fastlane/lib/fastlane/actions/frame_screenshots.rb +63 -0
  144. data/fastlane/lib/fastlane/actions/frameit.rb +14 -0
  145. data/fastlane/lib/fastlane/actions/gcovr.rb +163 -0
  146. data/fastlane/lib/fastlane/actions/get_build_number.rb +106 -0
  147. data/fastlane/lib/fastlane/actions/get_build_number_repository.rb +120 -0
  148. data/fastlane/lib/fastlane/actions/get_certificates.rb +76 -0
  149. data/fastlane/lib/fastlane/actions/get_github_release.rb +163 -0
  150. data/fastlane/lib/fastlane/actions/get_info_plist_value.rb +78 -0
  151. data/fastlane/lib/fastlane/actions/get_ipa_info_plist_value.rb +82 -0
  152. data/fastlane/lib/fastlane/actions/get_managed_play_store_publishing_rights.rb +120 -0
  153. data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +100 -0
  154. data/fastlane/lib/fastlane/actions/get_push_certificate.rb +87 -0
  155. data/fastlane/lib/fastlane/actions/get_version_number.rb +170 -0
  156. data/fastlane/lib/fastlane/actions/git_add.rb +93 -0
  157. data/fastlane/lib/fastlane/actions/git_branch.rb +58 -0
  158. data/fastlane/lib/fastlane/actions/git_commit.rb +80 -0
  159. data/fastlane/lib/fastlane/actions/git_pull.rb +53 -0
  160. data/fastlane/lib/fastlane/actions/git_submodule_update.rb +52 -0
  161. data/fastlane/lib/fastlane/actions/git_tag_exists.rb +74 -0
  162. data/fastlane/lib/fastlane/actions/github_api.rb +262 -0
  163. data/fastlane/lib/fastlane/actions/google_play_track_version_codes.rb +73 -0
  164. data/fastlane/lib/fastlane/actions/gradle.rb +249 -0
  165. data/fastlane/lib/fastlane/actions/gym.rb +14 -0
  166. data/fastlane/lib/fastlane/actions/hg_add_tag.rb +48 -0
  167. data/fastlane/lib/fastlane/actions/hg_commit_version_bump.rb +183 -0
  168. data/fastlane/lib/fastlane/actions/hg_ensure_clean_status.rb +53 -0
  169. data/fastlane/lib/fastlane/actions/hg_push.rb +64 -0
  170. data/fastlane/lib/fastlane/actions/hipchat.rb +200 -0
  171. data/fastlane/lib/fastlane/actions/hockey.rb +406 -0
  172. data/fastlane/lib/fastlane/actions/ifttt.rb +96 -0
  173. data/fastlane/lib/fastlane/actions/import.rb +49 -0
  174. data/fastlane/lib/fastlane/actions/import_certificate.rb +77 -0
  175. data/fastlane/lib/fastlane/actions/import_from_git.rb +71 -0
  176. data/fastlane/lib/fastlane/actions/increment_build_number.rb +117 -0
  177. data/fastlane/lib/fastlane/actions/increment_version_number.rb +177 -0
  178. data/fastlane/lib/fastlane/actions/install_on_device.rb +95 -0
  179. data/fastlane/lib/fastlane/actions/install_provisioning_profile.rb +58 -0
  180. data/fastlane/lib/fastlane/actions/install_xcode_plugin.rb +91 -0
  181. data/fastlane/lib/fastlane/actions/installr.rb +132 -0
  182. data/fastlane/lib/fastlane/actions/ipa.rb +246 -0
  183. data/fastlane/lib/fastlane/actions/is_ci.rb +51 -0
  184. data/fastlane/lib/fastlane/actions/jazzy.rb +56 -0
  185. data/fastlane/lib/fastlane/actions/jira.rb +115 -0
  186. data/fastlane/lib/fastlane/actions/lane_context.rb +60 -0
  187. data/fastlane/lib/fastlane/actions/last_git_commit.rb +58 -0
  188. data/fastlane/lib/fastlane/actions/last_git_tag.rb +51 -0
  189. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +134 -0
  190. data/fastlane/lib/fastlane/actions/lcov.rb +102 -0
  191. data/fastlane/lib/fastlane/actions/mailgun.rb +197 -0
  192. data/fastlane/lib/fastlane/actions/make_changelog_from_jenkins.rb +81 -0
  193. data/fastlane/lib/fastlane/actions/match.rb +14 -0
  194. data/fastlane/lib/fastlane/actions/min_fastlane_version.rb +57 -0
  195. data/fastlane/lib/fastlane/actions/modify_services.rb +173 -0
  196. data/fastlane/lib/fastlane/actions/nexus_upload.rb +230 -0
  197. data/fastlane/lib/fastlane/actions/notification.rb +75 -0
  198. data/fastlane/lib/fastlane/actions/notify.rb +40 -0
  199. data/fastlane/lib/fastlane/actions/number_of_commits.rb +75 -0
  200. data/fastlane/lib/fastlane/actions/oclint.rb +269 -0
  201. data/fastlane/lib/fastlane/actions/onesignal.rb +156 -0
  202. data/fastlane/lib/fastlane/actions/opt_out_crash_reporting.rb +33 -0
  203. data/fastlane/lib/fastlane/actions/opt_out_usage.rb +40 -0
  204. data/fastlane/lib/fastlane/actions/pem.rb +14 -0
  205. data/fastlane/lib/fastlane/actions/pilot.rb +14 -0
  206. data/fastlane/lib/fastlane/actions/pod_lib_lint.rb +183 -0
  207. data/fastlane/lib/fastlane/actions/pod_push.rb +145 -0
  208. data/fastlane/lib/fastlane/actions/podio_item.rb +217 -0
  209. data/fastlane/lib/fastlane/actions/precheck.rb +14 -0
  210. data/fastlane/lib/fastlane/actions/println.rb +14 -0
  211. data/fastlane/lib/fastlane/actions/produce.rb +14 -0
  212. data/fastlane/lib/fastlane/actions/prompt.rb +119 -0
  213. data/fastlane/lib/fastlane/actions/push_git_tags.rb +76 -0
  214. data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +127 -0
  215. data/fastlane/lib/fastlane/actions/puts.rb +68 -0
  216. data/fastlane/lib/fastlane/actions/read_podspec.rb +90 -0
  217. data/fastlane/lib/fastlane/actions/recreate_schemes.rb +46 -0
  218. data/fastlane/lib/fastlane/actions/register_device.rb +110 -0
  219. data/fastlane/lib/fastlane/actions/register_devices.rb +160 -0
  220. data/fastlane/lib/fastlane/actions/reset_git_repo.rb +121 -0
  221. data/fastlane/lib/fastlane/actions/reset_simulator_contents.rb +92 -0
  222. data/fastlane/lib/fastlane/actions/resign.rb +132 -0
  223. data/fastlane/lib/fastlane/actions/restore_file.rb +44 -0
  224. data/fastlane/lib/fastlane/actions/rocket.rb +83 -0
  225. data/fastlane/lib/fastlane/actions/rsync.rb +74 -0
  226. data/fastlane/lib/fastlane/actions/ruby_version.rb +56 -0
  227. data/fastlane/lib/fastlane/actions/run_tests.rb +131 -0
  228. data/fastlane/lib/fastlane/actions/s3.rb +460 -0
  229. data/fastlane/lib/fastlane/actions/say.rb +56 -0
  230. data/fastlane/lib/fastlane/actions/scan.rb +14 -0
  231. data/fastlane/lib/fastlane/actions/scp.rb +114 -0
  232. data/fastlane/lib/fastlane/actions/screengrab.rb +14 -0
  233. data/fastlane/lib/fastlane/actions/set_build_number_repository.rb +76 -0
  234. data/fastlane/lib/fastlane/actions/set_changelog.rb +172 -0
  235. data/fastlane/lib/fastlane/actions/set_github_release.rb +274 -0
  236. data/fastlane/lib/fastlane/actions/set_info_plist_value.rb +92 -0
  237. data/fastlane/lib/fastlane/actions/set_pod_key.rb +78 -0
  238. data/fastlane/lib/fastlane/actions/setup_ci.rb +121 -0
  239. data/fastlane/lib/fastlane/actions/setup_circle_ci.rb +58 -0
  240. data/fastlane/lib/fastlane/actions/setup_jenkins.rb +193 -0
  241. data/fastlane/lib/fastlane/actions/setup_travis.rb +57 -0
  242. data/fastlane/lib/fastlane/actions/sh.rb +71 -0
  243. data/fastlane/lib/fastlane/actions/sigh.rb +14 -0
  244. data/fastlane/lib/fastlane/actions/skip_docs.rb +52 -0
  245. data/fastlane/lib/fastlane/actions/slack.rb +288 -0
  246. data/fastlane/lib/fastlane/actions/slather.rb +314 -0
  247. data/fastlane/lib/fastlane/actions/snapshot.rb +14 -0
  248. data/fastlane/lib/fastlane/actions/sonar.rb +138 -0
  249. data/fastlane/lib/fastlane/actions/spaceship_logs.rb +135 -0
  250. data/fastlane/lib/fastlane/actions/splunkmint.rb +156 -0
  251. data/fastlane/lib/fastlane/actions/spm.rb +123 -0
  252. data/fastlane/lib/fastlane/actions/ssh.rb +162 -0
  253. data/fastlane/lib/fastlane/actions/supply.rb +14 -0
  254. data/fastlane/lib/fastlane/actions/swiftlint.rb +182 -0
  255. data/fastlane/lib/fastlane/actions/sync_code_signing.rb +103 -0
  256. data/fastlane/lib/fastlane/actions/team_id.rb +42 -0
  257. data/fastlane/lib/fastlane/actions/team_name.rb +42 -0
  258. data/fastlane/lib/fastlane/actions/testfairy.rb +263 -0
  259. data/fastlane/lib/fastlane/actions/testflight.rb +14 -0
  260. data/fastlane/lib/fastlane/actions/tryouts.rb +149 -0
  261. data/fastlane/lib/fastlane/actions/twitter.rb +89 -0
  262. data/fastlane/lib/fastlane/actions/typetalk.rb +93 -0
  263. data/fastlane/lib/fastlane/actions/unlock_keychain.rb +132 -0
  264. data/fastlane/lib/fastlane/actions/update_app_group_identifiers.rb +91 -0
  265. data/fastlane/lib/fastlane/actions/update_app_identifier.rb +124 -0
  266. data/fastlane/lib/fastlane/actions/update_fastlane.rb +177 -0
  267. data/fastlane/lib/fastlane/actions/update_icloud_container_identifiers.rb +99 -0
  268. data/fastlane/lib/fastlane/actions/update_info_plist.rb +143 -0
  269. data/fastlane/lib/fastlane/actions/update_plist.rb +80 -0
  270. data/fastlane/lib/fastlane/actions/update_project_code_signing.rb +76 -0
  271. data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +173 -0
  272. data/fastlane/lib/fastlane/actions/update_project_team.rb +95 -0
  273. data/fastlane/lib/fastlane/actions/update_urban_airship_configuration.rb +91 -0
  274. data/fastlane/lib/fastlane/actions/update_url_schemes.rb +123 -0
  275. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +244 -0
  276. data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +165 -0
  277. data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +65 -0
  278. data/fastlane/lib/fastlane/actions/upload_to_play_store.rb +80 -0
  279. data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +107 -0
  280. data/fastlane/lib/fastlane/actions/validate_play_store_json_key.rb +104 -0
  281. data/fastlane/lib/fastlane/actions/verify_build.rb +199 -0
  282. data/fastlane/lib/fastlane/actions/verify_pod_keys.rb +67 -0
  283. data/fastlane/lib/fastlane/actions/verify_xcode.rb +152 -0
  284. data/fastlane/lib/fastlane/actions/version_bump_podspec.rb +105 -0
  285. data/fastlane/lib/fastlane/actions/version_get_podspec.rb +71 -0
  286. data/fastlane/lib/fastlane/actions/xcode_install.rb +105 -0
  287. data/fastlane/lib/fastlane/actions/xcode_select.rb +63 -0
  288. data/fastlane/lib/fastlane/actions/xcode_server_get_assets.rb +312 -0
  289. data/fastlane/lib/fastlane/actions/xcodebuild.rb +641 -0
  290. data/fastlane/lib/fastlane/actions/xcov.rb +66 -0
  291. data/fastlane/lib/fastlane/actions/xctool.rb +55 -0
  292. data/fastlane/lib/fastlane/actions/xcversion.rb +55 -0
  293. data/fastlane/lib/fastlane/actions/zip.rb +120 -0
  294. data/fastlane/lib/fastlane/auto_complete.rb +82 -0
  295. data/fastlane/lib/fastlane/boolean.rb +5 -0
  296. data/fastlane/lib/fastlane/cli_tools_distributor.rb +185 -0
  297. data/fastlane/lib/fastlane/command_line_handler.rb +49 -0
  298. data/fastlane/lib/fastlane/commands_generator.rb +350 -0
  299. data/fastlane/lib/fastlane/configuration_helper.rb +26 -0
  300. data/fastlane/lib/fastlane/core_ext/bundler_monkey_patch.rb +14 -0
  301. data/fastlane/lib/fastlane/documentation/actions_list.rb +214 -0
  302. data/fastlane/lib/fastlane/documentation/docs_generator.rb +89 -0
  303. data/fastlane/lib/fastlane/documentation/markdown_docs_generator.rb +228 -0
  304. data/fastlane/lib/fastlane/environment_printer.rb +297 -0
  305. data/fastlane/lib/fastlane/erb_template_helper.rb +30 -0
  306. data/fastlane/lib/fastlane/fast_file.rb +351 -0
  307. data/fastlane/lib/fastlane/fastlane_require.rb +75 -0
  308. data/fastlane/lib/fastlane/features.rb +4 -0
  309. data/fastlane/lib/fastlane/helper/README.md +29 -0
  310. data/fastlane/lib/fastlane/helper/adb_helper.rb +52 -0
  311. data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +151 -0
  312. data/fastlane/lib/fastlane/helper/dotenv_helper.rb +50 -0
  313. data/fastlane/lib/fastlane/helper/gem_helper.rb +26 -0
  314. data/fastlane/lib/fastlane/helper/git_helper.rb +135 -0
  315. data/fastlane/lib/fastlane/helper/gradle_helper.rb +62 -0
  316. data/fastlane/lib/fastlane/helper/podspec_helper.rb +75 -0
  317. data/fastlane/lib/fastlane/helper/sh_helper.rb +134 -0
  318. data/fastlane/lib/fastlane/helper/xcodeproj_helper.rb +12 -0
  319. data/fastlane/lib/fastlane/helper/xcversion_helper.rb +25 -0
  320. data/fastlane/lib/fastlane/junit_generator.rb +27 -0
  321. data/fastlane/lib/fastlane/lane.rb +97 -0
  322. data/fastlane/lib/fastlane/lane_list.rb +137 -0
  323. data/fastlane/lib/fastlane/lane_manager.rb +140 -0
  324. data/fastlane/lib/fastlane/lane_manager_base.rb +92 -0
  325. data/fastlane/lib/fastlane/markdown_table_formatter.rb +62 -0
  326. data/fastlane/lib/fastlane/new_action.rb +47 -0
  327. data/fastlane/lib/fastlane/one_off.rb +45 -0
  328. data/fastlane/lib/fastlane/other_action.rb +29 -0
  329. data/fastlane/lib/fastlane/plugins/plugin_fetcher.rb +55 -0
  330. data/fastlane/lib/fastlane/plugins/plugin_generator.rb +86 -0
  331. data/fastlane/lib/fastlane/plugins/plugin_generator_ui.rb +19 -0
  332. data/fastlane/lib/fastlane/plugins/plugin_info.rb +49 -0
  333. data/fastlane/lib/fastlane/plugins/plugin_info_collector.rb +159 -0
  334. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +387 -0
  335. data/fastlane/lib/fastlane/plugins/plugin_search.rb +46 -0
  336. data/fastlane/lib/fastlane/plugins/plugin_update_manager.rb +70 -0
  337. data/fastlane/lib/fastlane/plugins/plugins.rb +12 -0
  338. data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +35 -0
  339. data/fastlane/lib/fastlane/plugins/template/.circleci/config.yml +43 -0
  340. data/fastlane/lib/fastlane/plugins/template/.gitignore +12 -0
  341. data/fastlane/lib/fastlane/plugins/template/.rspec +5 -0
  342. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +180 -0
  343. data/fastlane/lib/fastlane/plugins/template/.travis.yml +4 -0
  344. data/fastlane/lib/fastlane/plugins/template/Gemfile +6 -0
  345. data/fastlane/lib/fastlane/plugins/template/LICENSE.erb +21 -0
  346. data/fastlane/lib/fastlane/plugins/template/README.md.erb +52 -0
  347. data/fastlane/lib/fastlane/plugins/template/Rakefile +9 -0
  348. data/fastlane/lib/fastlane/plugins/template/fastlane/Fastfile.erb +3 -0
  349. data/fastlane/lib/fastlane/plugins/template/fastlane/Pluginfile.erb +1 -0
  350. data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%.rb.erb +16 -0
  351. data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/actions/%plugin_name%_action.rb.erb +47 -0
  352. data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/helper/%plugin_name%_helper.rb.erb +16 -0
  353. data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/version.rb.erb +5 -0
  354. data/fastlane/lib/fastlane/plugins/template/spec/%plugin_name%_action_spec.rb.erb +9 -0
  355. data/fastlane/lib/fastlane/plugins/template/spec/spec_helper.rb.erb +15 -0
  356. data/fastlane/lib/fastlane/runner.rb +371 -0
  357. data/fastlane/lib/fastlane/server/action_command.rb +61 -0
  358. data/fastlane/lib/fastlane/server/action_command_return.rb +14 -0
  359. data/fastlane/lib/fastlane/server/command_executor.rb +7 -0
  360. data/fastlane/lib/fastlane/server/command_parser.rb +44 -0
  361. data/fastlane/lib/fastlane/server/control_command.rb +23 -0
  362. data/fastlane/lib/fastlane/server/json_return_value_processor.rb +72 -0
  363. data/fastlane/lib/fastlane/server/socket_server.rb +232 -0
  364. data/fastlane/lib/fastlane/server/socket_server_action_command_executor.rb +101 -0
  365. data/fastlane/lib/fastlane/setup/setup.rb +355 -0
  366. data/fastlane/lib/fastlane/setup/setup_android.rb +97 -0
  367. data/fastlane/lib/fastlane/setup/setup_ios.rb +504 -0
  368. data/fastlane/lib/fastlane/shells.rb +6 -0
  369. data/fastlane/lib/fastlane/supported_platforms.rb +28 -0
  370. data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +383 -0
  371. data/fastlane/lib/fastlane/swift_fastlane_function.rb +320 -0
  372. data/fastlane/lib/fastlane/swift_lane_manager.rb +304 -0
  373. data/fastlane/lib/fastlane/swift_runner_upgrader.rb +206 -0
  374. data/fastlane/lib/fastlane/tools.rb +33 -0
  375. data/fastlane/lib/fastlane/version.rb +6 -0
  376. data/fastlane/swift/Appfile.swift +17 -0
  377. data/fastlane/swift/ArgumentProcessor.swift +93 -0
  378. data/fastlane/swift/ControlCommand.swift +76 -0
  379. data/fastlane/swift/Deliverfile.swift +21 -0
  380. data/fastlane/swift/DeliverfileProtocol.swift +129 -0
  381. data/fastlane/swift/Fastfile.swift +12 -0
  382. data/fastlane/swift/Fastlane.swift +4396 -0
  383. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +425 -0
  384. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  385. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme +103 -0
  386. data/fastlane/swift/FastlaneSwiftRunner/README.txt +10 -0
  387. data/fastlane/swift/Gymfile.swift +21 -0
  388. data/fastlane/swift/GymfileProtocol.swift +87 -0
  389. data/fastlane/swift/LaneFileProtocol.swift +140 -0
  390. data/fastlane/swift/Matchfile.swift +21 -0
  391. data/fastlane/swift/MatchfileProtocol.swift +61 -0
  392. data/fastlane/swift/Precheckfile.swift +21 -0
  393. data/fastlane/swift/PrecheckfileProtocol.swift +24 -0
  394. data/fastlane/swift/RubyCommand.swift +141 -0
  395. data/fastlane/swift/RubyCommandable.swift +44 -0
  396. data/fastlane/swift/Runner.swift +200 -0
  397. data/fastlane/swift/RunnerArgument.swift +24 -0
  398. data/fastlane/swift/Scanfile.swift +21 -0
  399. data/fastlane/swift/ScanfileProtocol.swift +117 -0
  400. data/fastlane/swift/Screengrabfile.swift +21 -0
  401. data/fastlane/swift/ScreengrabfileProtocol.swift +48 -0
  402. data/fastlane/swift/Snapshotfile.swift +21 -0
  403. data/fastlane/swift/SnapshotfileProtocol.swift +75 -0
  404. data/fastlane/swift/SocketClient.swift +305 -0
  405. data/fastlane/swift/SocketClientDelegateProtocol.swift +25 -0
  406. data/fastlane/swift/SocketResponse.swift +85 -0
  407. data/fastlane/swift/main.swift +52 -0
  408. data/fastlane/swift/upgrade_manifest.json +1 -0
  409. data/fastlane_core/README.md +79 -0
  410. data/fastlane_core/lib/assets/XMLTemplate.xml.erb +12 -0
  411. data/fastlane_core/lib/fastlane_core.rb +46 -0
  412. data/fastlane_core/lib/fastlane_core/analytics/action_completion_context.rb +34 -0
  413. data/fastlane_core/lib/fastlane_core/analytics/action_launch_context.rb +38 -0
  414. data/fastlane_core/lib/fastlane_core/analytics/analytics_event_builder.rb +23 -0
  415. data/fastlane_core/lib/fastlane_core/analytics/analytics_ingester_client.rb +54 -0
  416. data/fastlane_core/lib/fastlane_core/analytics/analytics_session.rb +71 -0
  417. data/fastlane_core/lib/fastlane_core/analytics/app_identifier_guesser.rb +64 -0
  418. data/fastlane_core/lib/fastlane_core/android_package_name_guesser.rb +79 -0
  419. data/fastlane_core/lib/fastlane_core/build_watcher.rb +80 -0
  420. data/fastlane_core/lib/fastlane_core/cert_checker.rb +116 -0
  421. data/fastlane_core/lib/fastlane_core/command_executor.rb +99 -0
  422. data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +103 -0
  423. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +314 -0
  424. data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +332 -0
  425. data/fastlane_core/lib/fastlane_core/configuration/configuration_file.rb +182 -0
  426. data/fastlane_core/lib/fastlane_core/core_ext/cfpropertylist.rb +23 -0
  427. data/fastlane_core/lib/fastlane_core/core_ext/shellwords.rb +63 -0
  428. data/fastlane_core/lib/fastlane_core/core_ext/string.rb +17 -0
  429. data/fastlane_core/lib/fastlane_core/device_manager.rb +331 -0
  430. data/fastlane_core/lib/fastlane_core/env.rb +9 -0
  431. data/fastlane_core/lib/fastlane_core/fastlane_folder.rb +72 -0
  432. data/fastlane_core/lib/fastlane_core/fastlane_pty.rb +57 -0
  433. data/fastlane_core/lib/fastlane_core/feature/feature.rb +51 -0
  434. data/fastlane_core/lib/fastlane_core/features.rb +4 -0
  435. data/fastlane_core/lib/fastlane_core/globals.rb +27 -0
  436. data/fastlane_core/lib/fastlane_core/helper.rb +414 -0
  437. data/fastlane_core/lib/fastlane_core/ios_app_identifier_guesser.rb +112 -0
  438. data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +63 -0
  439. data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +52 -0
  440. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +520 -0
  441. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +74 -0
  442. data/fastlane_core/lib/fastlane_core/languages.rb +16 -0
  443. data/fastlane_core/lib/fastlane_core/module.rb +31 -0
  444. data/fastlane_core/lib/fastlane_core/pkg_file_analyser.rb +44 -0
  445. data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +48 -0
  446. data/fastlane_core/lib/fastlane_core/print_table.rb +131 -0
  447. data/fastlane_core/lib/fastlane_core/project.rb +481 -0
  448. data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +111 -0
  449. data/fastlane_core/lib/fastlane_core/string_filters.rb +51 -0
  450. data/fastlane_core/lib/fastlane_core/swag.rb +85 -0
  451. data/fastlane_core/lib/fastlane_core/tag_version.rb +31 -0
  452. data/fastlane_core/lib/fastlane_core/test_parser.rb +107 -0
  453. data/fastlane_core/lib/fastlane_core/ui/disable_colors.rb +17 -0
  454. data/fastlane_core/lib/fastlane_core/ui/errors.rb +1 -0
  455. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_common_error.rb +19 -0
  456. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_crash.rb +11 -0
  457. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_error.rb +25 -0
  458. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_exception.rb +19 -0
  459. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_shell_error.rb +11 -0
  460. data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +294 -0
  461. data/fastlane_core/lib/fastlane_core/ui/github_issue_inspector_reporter.rb +62 -0
  462. data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +158 -0
  463. data/fastlane_core/lib/fastlane_core/ui/interface.rb +205 -0
  464. data/fastlane_core/lib/fastlane_core/ui/ui.rb +26 -0
  465. data/fastlane_core/lib/fastlane_core/update_checker/changelog.rb +37 -0
  466. data/fastlane_core/lib/fastlane_core/update_checker/update_checker.rb +109 -0
  467. data/frameit/README.md +17 -0
  468. data/frameit/lib/assets/empty.png +0 -0
  469. data/frameit/lib/frameit.rb +13 -0
  470. data/frameit/lib/frameit/commands_generator.rb +114 -0
  471. data/frameit/lib/frameit/config_parser.rb +114 -0
  472. data/frameit/lib/frameit/dependency_checker.rb +22 -0
  473. data/frameit/lib/frameit/device_types.rb +18 -0
  474. data/frameit/lib/frameit/editor.rb +563 -0
  475. data/frameit/lib/frameit/frame_downloader.rb +85 -0
  476. data/frameit/lib/frameit/mac_editor.rb +35 -0
  477. data/frameit/lib/frameit/module.rb +42 -0
  478. data/frameit/lib/frameit/offsets.rb +21 -0
  479. data/frameit/lib/frameit/options.rb +82 -0
  480. data/frameit/lib/frameit/runner.rb +82 -0
  481. data/frameit/lib/frameit/screenshot.rb +137 -0
  482. data/frameit/lib/frameit/strings_parser.rb +46 -0
  483. data/frameit/lib/frameit/template_finder.rb +42 -0
  484. data/frameit/lib/frameit/trim_box.rb +35 -0
  485. data/gym/README.md +17 -0
  486. data/gym/lib/assets/GymfileTemplate +13 -0
  487. data/gym/lib/assets/GymfileTemplate.swift +13 -0
  488. data/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh +61 -0
  489. data/gym/lib/gym.rb +9 -0
  490. data/gym/lib/gym/code_signing_mapping.rb +181 -0
  491. data/gym/lib/gym/commands_generator.rb +78 -0
  492. data/gym/lib/gym/detect_values.rb +171 -0
  493. data/gym/lib/gym/error_handler.rb +306 -0
  494. data/gym/lib/gym/generators/README.md +1 -0
  495. data/gym/lib/gym/generators/build_command_generator.rb +143 -0
  496. data/gym/lib/gym/generators/package_command_generator.rb +56 -0
  497. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +193 -0
  498. data/gym/lib/gym/manager.rb +22 -0
  499. data/gym/lib/gym/module.rb +36 -0
  500. data/gym/lib/gym/options.rb +262 -0
  501. data/gym/lib/gym/runner.rb +264 -0
  502. data/gym/lib/gym/xcode.rb +27 -0
  503. data/gym/lib/gym/xcodebuild_fixes/README.md +9 -0
  504. data/gym/lib/gym/xcodebuild_fixes/generic_archive_fix.rb +35 -0
  505. data/match/README.md +17 -0
  506. data/match/lib/assets/MatchfileTemplate +11 -0
  507. data/match/lib/assets/MatchfileTemplate.swift +9 -0
  508. data/match/lib/assets/READMETemplate.md +56 -0
  509. data/match/lib/match.rb +13 -0
  510. data/match/lib/match/change_password.rb +70 -0
  511. data/match/lib/match/commands_generator.rb +175 -0
  512. data/match/lib/match/encryption.rb +45 -0
  513. data/match/lib/match/encryption/interface.rb +17 -0
  514. data/match/lib/match/encryption/openssl.rb +161 -0
  515. data/match/lib/match/generator.rb +91 -0
  516. data/match/lib/match/migrate.rb +98 -0
  517. data/match/lib/match/module.rb +27 -0
  518. data/match/lib/match/nuke.rb +260 -0
  519. data/match/lib/match/options.rb +198 -0
  520. data/match/lib/match/runner.rb +333 -0
  521. data/match/lib/match/setup.rb +40 -0
  522. data/match/lib/match/spaceship_ensure.rb +83 -0
  523. data/match/lib/match/storage.rb +42 -0
  524. data/match/lib/match/storage/git_storage.rb +214 -0
  525. data/match/lib/match/storage/google_cloud_storage.rb +265 -0
  526. data/match/lib/match/storage/interface.rb +110 -0
  527. data/match/lib/match/table_printer.rb +51 -0
  528. data/match/lib/match/utils.rb +75 -0
  529. data/pem/README.md +17 -0
  530. data/pem/lib/pem.rb +4 -0
  531. data/pem/lib/pem/commands_generator.rb +46 -0
  532. data/pem/lib/pem/manager.rb +112 -0
  533. data/pem/lib/pem/module.rb +19 -0
  534. data/pem/lib/pem/options.rb +103 -0
  535. data/pilot/README.md +17 -0
  536. data/pilot/lib/pilot.rb +9 -0
  537. data/pilot/lib/pilot/build_manager.rb +453 -0
  538. data/pilot/lib/pilot/commands_generator.rb +174 -0
  539. data/pilot/lib/pilot/features.rb +0 -0
  540. data/pilot/lib/pilot/manager.rb +80 -0
  541. data/pilot/lib/pilot/module.rb +11 -0
  542. data/pilot/lib/pilot/options.rb +266 -0
  543. data/pilot/lib/pilot/tester_exporter.rb +58 -0
  544. data/pilot/lib/pilot/tester_importer.rb +53 -0
  545. data/pilot/lib/pilot/tester_manager.rb +168 -0
  546. data/pilot/lib/pilot/tester_util.rb +0 -0
  547. data/precheck/README.md +17 -0
  548. data/precheck/lib/assets/PrecheckfileTemplate +27 -0
  549. data/precheck/lib/assets/PrecheckfileTemplate.swift +19 -0
  550. data/precheck/lib/precheck.rb +3 -0
  551. data/precheck/lib/precheck/commands_generator.rb +74 -0
  552. data/precheck/lib/precheck/item_to_check.rb +58 -0
  553. data/precheck/lib/precheck/module.rb +21 -0
  554. data/precheck/lib/precheck/options.rb +79 -0
  555. data/precheck/lib/precheck/rule.rb +171 -0
  556. data/precheck/lib/precheck/rule_check_result.rb +19 -0
  557. data/precheck/lib/precheck/rule_processor.rb +231 -0
  558. data/precheck/lib/precheck/rules/abstract_text_match_rule.rb +80 -0
  559. data/precheck/lib/precheck/rules/all.rb +1 -0
  560. data/precheck/lib/precheck/rules/copyright_date_rule.rb +37 -0
  561. data/precheck/lib/precheck/rules/curse_words_rule.rb +62 -0
  562. data/precheck/lib/precheck/rules/custom_text_rule.rb +35 -0
  563. data/precheck/lib/precheck/rules/free_stuff_iap_rule.rb +31 -0
  564. data/precheck/lib/precheck/rules/future_functionality_rule.rb +33 -0
  565. data/precheck/lib/precheck/rules/negative_apple_sentiment_rule.rb +37 -0
  566. data/precheck/lib/precheck/rules/other_platforms_rule.rb +43 -0
  567. data/precheck/lib/precheck/rules/placeholder_words_rule.rb +31 -0
  568. data/precheck/lib/precheck/rules/rules_data/curse_word_hashes/en_us.txt +349 -0
  569. data/precheck/lib/precheck/rules/test_words_rule.rb +30 -0
  570. data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +47 -0
  571. data/precheck/lib/precheck/runner.rb +176 -0
  572. data/produce/README.md +17 -0
  573. data/produce/lib/produce.rb +6 -0
  574. data/produce/lib/produce/available_default_languages.rb +51 -0
  575. data/produce/lib/produce/cloud_container.rb +82 -0
  576. data/produce/lib/produce/commands_generator.rb +235 -0
  577. data/produce/lib/produce/developer_center.rb +134 -0
  578. data/produce/lib/produce/group.rb +90 -0
  579. data/produce/lib/produce/itunes_connect.rb +92 -0
  580. data/produce/lib/produce/manager.rb +15 -0
  581. data/produce/lib/produce/merchant.rb +121 -0
  582. data/produce/lib/produce/module.rb +14 -0
  583. data/produce/lib/produce/options.rb +172 -0
  584. data/produce/lib/produce/service.rb +313 -0
  585. data/scan/README.md +17 -0
  586. data/scan/lib/assets/ScanfileTemplate +16 -0
  587. data/scan/lib/assets/ScanfileTemplate.swift +13 -0
  588. data/scan/lib/scan.rb +10 -0
  589. data/scan/lib/scan/commands_generator.rb +78 -0
  590. data/scan/lib/scan/detect_values.rb +219 -0
  591. data/scan/lib/scan/error_handler.rb +52 -0
  592. data/scan/lib/scan/manager.rb +21 -0
  593. data/scan/lib/scan/module.rb +32 -0
  594. data/scan/lib/scan/options.rb +390 -0
  595. data/scan/lib/scan/runner.rb +173 -0
  596. data/scan/lib/scan/slack_poster.rb +60 -0
  597. data/scan/lib/scan/test_command_generator.rb +160 -0
  598. data/scan/lib/scan/test_result_parser.rb +26 -0
  599. data/scan/lib/scan/xcpretty_reporter_options_generator.rb +85 -0
  600. data/screengrab/README.md +17 -0
  601. data/screengrab/lib/assets/ScreengrabfileTemplate +15 -0
  602. data/screengrab/lib/assets/ScreengrabfileTemplate.swift +15 -0
  603. data/screengrab/lib/screengrab.rb +7 -0
  604. data/screengrab/lib/screengrab/android_environment.rb +91 -0
  605. data/screengrab/lib/screengrab/commands_generator.rb +70 -0
  606. data/screengrab/lib/screengrab/dependency_checker.rb +58 -0
  607. data/screengrab/lib/screengrab/detect_values.rb +16 -0
  608. data/screengrab/lib/screengrab/module.rb +24 -0
  609. data/screengrab/lib/screengrab/options.rb +135 -0
  610. data/screengrab/lib/screengrab/page.html.erb +190 -0
  611. data/screengrab/lib/screengrab/reports_generator.rb +36 -0
  612. data/screengrab/lib/screengrab/runner.rb +379 -0
  613. data/screengrab/lib/screengrab/setup.rb +24 -0
  614. data/sigh/README.md +17 -0
  615. data/sigh/lib/assets/resign.sh +888 -0
  616. data/sigh/lib/sigh.rb +4 -0
  617. data/sigh/lib/sigh/commands_generator.rb +153 -0
  618. data/sigh/lib/sigh/download_all.rb +45 -0
  619. data/sigh/lib/sigh/local_manage.rb +145 -0
  620. data/sigh/lib/sigh/manager.rb +47 -0
  621. data/sigh/lib/sigh/module.rb +16 -0
  622. data/sigh/lib/sigh/options.rb +160 -0
  623. data/sigh/lib/sigh/repair.rb +34 -0
  624. data/sigh/lib/sigh/resign.rb +220 -0
  625. data/sigh/lib/sigh/runner.rb +285 -0
  626. data/snapshot/README.md +17 -0
  627. data/snapshot/lib/assets/SnapfileTemplate +34 -0
  628. data/snapshot/lib/assets/SnapfileTemplate.swift +41 -0
  629. data/snapshot/lib/assets/SnapshotHelper.swift +303 -0
  630. data/snapshot/lib/assets/SnapshotHelperXcode8.swift +172 -0
  631. data/snapshot/lib/snapshot.rb +19 -0
  632. data/snapshot/lib/snapshot/collector.rb +140 -0
  633. data/snapshot/lib/snapshot/commands_generator.rb +115 -0
  634. data/snapshot/lib/snapshot/dependency_checker.rb +69 -0
  635. data/snapshot/lib/snapshot/detect_values.rb +71 -0
  636. data/snapshot/lib/snapshot/error_handler.rb +24 -0
  637. data/snapshot/lib/snapshot/fixes/README.md +5 -0
  638. data/snapshot/lib/snapshot/fixes/hardware_keyboard_fix.rb +27 -0
  639. data/snapshot/lib/snapshot/fixes/simulator_zoom_fix.rb +27 -0
  640. data/snapshot/lib/snapshot/latest_os_version.rb +34 -0
  641. data/snapshot/lib/snapshot/module.rb +44 -0
  642. data/snapshot/lib/snapshot/options.rb +223 -0
  643. data/snapshot/lib/snapshot/page.html.erb +285 -0
  644. data/snapshot/lib/snapshot/reports_generator.rb +125 -0
  645. data/snapshot/lib/snapshot/reset_simulators.rb +122 -0
  646. data/snapshot/lib/snapshot/runner.rb +146 -0
  647. data/snapshot/lib/snapshot/screenshot_flatten.rb +20 -0
  648. data/snapshot/lib/snapshot/screenshot_rotate.rb +36 -0
  649. data/snapshot/lib/snapshot/setup.rb +58 -0
  650. data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +54 -0
  651. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +215 -0
  652. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +143 -0
  653. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_xcode_8.rb +113 -0
  654. data/snapshot/lib/snapshot/test_command_generator.rb +102 -0
  655. data/snapshot/lib/snapshot/test_command_generator_base.rb +117 -0
  656. data/snapshot/lib/snapshot/test_command_generator_xcode_8.rb +67 -0
  657. data/snapshot/lib/snapshot/update.rb +36 -0
  658. data/spaceship/README.md +183 -0
  659. data/spaceship/lib/assets/displayFamilies.json +181 -0
  660. data/spaceship/lib/assets/languageMapping.json +306 -0
  661. data/spaceship/lib/assets/languageMappingReadable.json +30 -0
  662. data/spaceship/lib/spaceship.rb +26 -0
  663. data/spaceship/lib/spaceship/babosa_fix.rb +30 -0
  664. data/spaceship/lib/spaceship/base.rb +310 -0
  665. data/spaceship/lib/spaceship/client.rb +892 -0
  666. data/spaceship/lib/spaceship/commands_generator.rb +52 -0
  667. data/spaceship/lib/spaceship/connect_api.rb +47 -0
  668. data/spaceship/lib/spaceship/connect_api/client.rb +178 -0
  669. data/spaceship/lib/spaceship/connect_api/model.rb +152 -0
  670. data/spaceship/lib/spaceship/connect_api/models/app.rb +97 -0
  671. data/spaceship/lib/spaceship/connect_api/models/beta_app_localization.rb +28 -0
  672. data/spaceship/lib/spaceship/connect_api/models/beta_app_review_detail.rb +32 -0
  673. data/spaceship/lib/spaceship/connect_api/models/beta_app_review_submission.rb +26 -0
  674. data/spaceship/lib/spaceship/connect_api/models/beta_build_localization.rb +20 -0
  675. data/spaceship/lib/spaceship/connect_api/models/beta_build_metric.rb +24 -0
  676. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +41 -0
  677. data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +56 -0
  678. data/spaceship/lib/spaceship/connect_api/models/beta_tester_metric.rb +43 -0
  679. data/spaceship/lib/spaceship/connect_api/models/build.rb +144 -0
  680. data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +56 -0
  681. data/spaceship/lib/spaceship/connect_api/models/build_delivery.rb +36 -0
  682. data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +46 -0
  683. data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +37 -0
  684. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +48 -0
  685. data/spaceship/lib/spaceship/connect_api/models/device.rb +53 -0
  686. data/spaceship/lib/spaceship/connect_api/models/pre_release_version.rb +20 -0
  687. data/spaceship/lib/spaceship/connect_api/models/profile.rb +60 -0
  688. data/spaceship/lib/spaceship/connect_api/models/user.rb +50 -0
  689. data/spaceship/lib/spaceship/connect_api/provisioning/client.rb +59 -0
  690. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +48 -0
  691. data/spaceship/lib/spaceship/connect_api/response.rb +67 -0
  692. data/spaceship/lib/spaceship/connect_api/testflight/client.rb +33 -0
  693. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +322 -0
  694. data/spaceship/lib/spaceship/connect_api/token.rb +56 -0
  695. data/spaceship/lib/spaceship/connect_api/users/client.rb +33 -0
  696. data/spaceship/lib/spaceship/connect_api/users/users.rb +16 -0
  697. data/spaceship/lib/spaceship/du/du_client.rb +134 -0
  698. data/spaceship/lib/spaceship/du/upload_file.rb +58 -0
  699. data/spaceship/lib/spaceship/du/utilities.rb +99 -0
  700. data/spaceship/lib/spaceship/errors.rb +79 -0
  701. data/spaceship/lib/spaceship/globals.rb +12 -0
  702. data/spaceship/lib/spaceship/helper/net_http_generic_request.rb +14 -0
  703. data/spaceship/lib/spaceship/helper/plist_middleware.rb +16 -0
  704. data/spaceship/lib/spaceship/helper/rels_middleware.rb +28 -0
  705. data/spaceship/lib/spaceship/launcher.rb +99 -0
  706. data/spaceship/lib/spaceship/module.rb +8 -0
  707. data/spaceship/lib/spaceship/playground.rb +75 -0
  708. data/spaceship/lib/spaceship/portal/app.rb +192 -0
  709. data/spaceship/lib/spaceship/portal/app_group.rb +73 -0
  710. data/spaceship/lib/spaceship/portal/app_service.rb +87 -0
  711. data/spaceship/lib/spaceship/portal/certificate.rb +351 -0
  712. data/spaceship/lib/spaceship/portal/cloud_container.rb +74 -0
  713. data/spaceship/lib/spaceship/portal/device.rb +191 -0
  714. data/spaceship/lib/spaceship/portal/invite.rb +53 -0
  715. data/spaceship/lib/spaceship/portal/key.rb +101 -0
  716. data/spaceship/lib/spaceship/portal/legacy_wrapper.rb +21 -0
  717. data/spaceship/lib/spaceship/portal/merchant.rb +86 -0
  718. data/spaceship/lib/spaceship/portal/passbook.rb +78 -0
  719. data/spaceship/lib/spaceship/portal/person.rb +62 -0
  720. data/spaceship/lib/spaceship/portal/persons.rb +67 -0
  721. data/spaceship/lib/spaceship/portal/portal.rb +17 -0
  722. data/spaceship/lib/spaceship/portal/portal_base.rb +16 -0
  723. data/spaceship/lib/spaceship/portal/portal_client.rb +848 -0
  724. data/spaceship/lib/spaceship/portal/provisioning_profile.rb +559 -0
  725. data/spaceship/lib/spaceship/portal/provisioning_profile_template.rb +52 -0
  726. data/spaceship/lib/spaceship/portal/spaceship.rb +154 -0
  727. data/spaceship/lib/spaceship/portal/ui/select_team.rb +116 -0
  728. data/spaceship/lib/spaceship/portal/website_push.rb +88 -0
  729. data/spaceship/lib/spaceship/provider.rb +13 -0
  730. data/spaceship/lib/spaceship/spaceauth_runner.rb +74 -0
  731. data/spaceship/lib/spaceship/test_flight.rb +10 -0
  732. data/spaceship/lib/spaceship/test_flight/app_test_info.rb +40 -0
  733. data/spaceship/lib/spaceship/test_flight/base.rb +39 -0
  734. data/spaceship/lib/spaceship/test_flight/beta_review_info.rb +19 -0
  735. data/spaceship/lib/spaceship/test_flight/build.rb +239 -0
  736. data/spaceship/lib/spaceship/test_flight/build_trains.rb +46 -0
  737. data/spaceship/lib/spaceship/test_flight/client.rb +361 -0
  738. data/spaceship/lib/spaceship/test_flight/export_compliance.rb +12 -0
  739. data/spaceship/lib/spaceship/test_flight/group.rb +131 -0
  740. data/spaceship/lib/spaceship/test_flight/test_info.rb +56 -0
  741. data/spaceship/lib/spaceship/test_flight/tester.rb +136 -0
  742. data/spaceship/lib/spaceship/tunes/app_analytics.rb +168 -0
  743. data/spaceship/lib/spaceship/tunes/app_details.rb +147 -0
  744. data/spaceship/lib/spaceship/tunes/app_image.rb +51 -0
  745. data/spaceship/lib/spaceship/tunes/app_ratings.rb +58 -0
  746. data/spaceship/lib/spaceship/tunes/app_review.rb +55 -0
  747. data/spaceship/lib/spaceship/tunes/app_review_attachment.rb +49 -0
  748. data/spaceship/lib/spaceship/tunes/app_screenshot.rb +12 -0
  749. data/spaceship/lib/spaceship/tunes/app_status.rb +63 -0
  750. data/spaceship/lib/spaceship/tunes/app_submission.rb +161 -0
  751. data/spaceship/lib/spaceship/tunes/app_trailer.rb +64 -0
  752. data/spaceship/lib/spaceship/tunes/app_version.rb +961 -0
  753. data/spaceship/lib/spaceship/tunes/app_version_common.rb +35 -0
  754. data/spaceship/lib/spaceship/tunes/app_version_generated_promocodes.rb +28 -0
  755. data/spaceship/lib/spaceship/tunes/app_version_history.rb +52 -0
  756. data/spaceship/lib/spaceship/tunes/app_version_promocodes.rb +27 -0
  757. data/spaceship/lib/spaceship/tunes/app_version_ref.rb +15 -0
  758. data/spaceship/lib/spaceship/tunes/app_version_states_history.rb +27 -0
  759. data/spaceship/lib/spaceship/tunes/application.rb +448 -0
  760. data/spaceship/lib/spaceship/tunes/availability.rb +132 -0
  761. data/spaceship/lib/spaceship/tunes/b2b_user.rb +30 -0
  762. data/spaceship/lib/spaceship/tunes/build.rb +263 -0
  763. data/spaceship/lib/spaceship/tunes/build_details.rb +42 -0
  764. data/spaceship/lib/spaceship/tunes/build_train.rb +181 -0
  765. data/spaceship/lib/spaceship/tunes/developer_response.rb +23 -0
  766. data/spaceship/lib/spaceship/tunes/device_type.rb +17 -0
  767. data/spaceship/lib/spaceship/tunes/display_family.rb +84 -0
  768. data/spaceship/lib/spaceship/tunes/errors.rb +17 -0
  769. data/spaceship/lib/spaceship/tunes/iap.rb +151 -0
  770. data/spaceship/lib/spaceship/tunes/iap_detail.rb +243 -0
  771. data/spaceship/lib/spaceship/tunes/iap_families.rb +57 -0
  772. data/spaceship/lib/spaceship/tunes/iap_family_details.rb +73 -0
  773. data/spaceship/lib/spaceship/tunes/iap_family_list.rb +28 -0
  774. data/spaceship/lib/spaceship/tunes/iap_list.rb +76 -0
  775. data/spaceship/lib/spaceship/tunes/iap_status.rb +52 -0
  776. data/spaceship/lib/spaceship/tunes/iap_subscription_pricing_info.rb +46 -0
  777. data/spaceship/lib/spaceship/tunes/iap_subscription_pricing_tier.rb +25 -0
  778. data/spaceship/lib/spaceship/tunes/iap_type.rb +45 -0
  779. data/spaceship/lib/spaceship/tunes/language_converter.rb +65 -0
  780. data/spaceship/lib/spaceship/tunes/language_item.rb +61 -0
  781. data/spaceship/lib/spaceship/tunes/legacy_wrapper.rb +13 -0
  782. data/spaceship/lib/spaceship/tunes/member.rb +84 -0
  783. data/spaceship/lib/spaceship/tunes/members.rb +35 -0
  784. data/spaceship/lib/spaceship/tunes/pricing_info.rb +42 -0
  785. data/spaceship/lib/spaceship/tunes/pricing_tier.rb +25 -0
  786. data/spaceship/lib/spaceship/tunes/sandbox_tester.rb +74 -0
  787. data/spaceship/lib/spaceship/tunes/spaceship.rb +39 -0
  788. data/spaceship/lib/spaceship/tunes/territory.rb +39 -0
  789. data/spaceship/lib/spaceship/tunes/transit_app_file.rb +23 -0
  790. data/spaceship/lib/spaceship/tunes/tunes.rb +35 -0
  791. data/spaceship/lib/spaceship/tunes/tunes_base.rb +17 -0
  792. data/spaceship/lib/spaceship/tunes/tunes_client.rb +1572 -0
  793. data/spaceship/lib/spaceship/tunes/user_detail.rb +15 -0
  794. data/spaceship/lib/spaceship/tunes/version_set.rb +26 -0
  795. data/spaceship/lib/spaceship/two_step_or_factor_client.rb +287 -0
  796. data/spaceship/lib/spaceship/ui.rb +27 -0
  797. data/supply/README.md +17 -0
  798. data/supply/lib/supply.rb +30 -0
  799. data/supply/lib/supply/apk_listing.rb +14 -0
  800. data/supply/lib/supply/client.rb +458 -0
  801. data/supply/lib/supply/commands_generator.rb +66 -0
  802. data/supply/lib/supply/languages.rb +88 -0
  803. data/supply/lib/supply/listing.rb +32 -0
  804. data/supply/lib/supply/options.rb +266 -0
  805. data/supply/lib/supply/reader.rb +25 -0
  806. data/supply/lib/supply/setup.rb +112 -0
  807. data/supply/lib/supply/uploader.rb +349 -0
  808. metadata +1772 -0
@@ -0,0 +1,111 @@
1
+ require_relative 'ui/ui'
2
+
3
+ module FastlaneCore
4
+ class ProvisioningProfile
5
+ class << self
6
+ # @return (Hash) The hash with the data of the provisioning profile
7
+ # @example
8
+ # {"AppIDName"=>"My App Name",
9
+ # "ApplicationIdentifierPrefix"=>["5A997XSAAA"],
10
+ # "CreationDate"=>#<DateTime: 2015-05-24T20:38:03+00:00 ((2457167j,74283s,0n),+0s,2299161j)>,
11
+ # "DeveloperCertificates"=>[#<StringIO:0x007f944b9666f8>],
12
+ # "Entitlements"=>
13
+ # {"keychain-access-groups"=>["5A997XSAAA.*"],
14
+ # "get-task-allow"=>false,
15
+ # "application-identifier"=>"5A997XAAA.net.sunapps.192",
16
+ # "com.apple.developer.team-identifier"=>"5A997XAAAA",
17
+ # "aps-environment"=>"production",
18
+ # "beta-reports-active"=>true},
19
+ # "ExpirationDate"=>#<DateTime: 2015-11-25T22:45:50+00:00 ((2457352j,81950s,0n),+0s,2299161j)>,
20
+ # "Name"=>"net.sunapps.192 AppStore",
21
+ # "TeamIdentifier"=>["5A997XSAAA"],
22
+ # "TeamName"=>"SunApps GmbH",
23
+ # "TimeToLive"=>185,
24
+ # "UUID"=>"1752e382-53bd-4910-a393-aaa7de0005ad",
25
+ # "Version"=>1}
26
+ def parse(path, keychain_path = nil)
27
+ require 'plist'
28
+
29
+ plist = Plist.parse_xml(decode(path, keychain_path))
30
+ if (plist || []).count > 5
31
+ plist
32
+ else
33
+ UI.crash!("Error parsing provisioning profile at path '#{path}'")
34
+ end
35
+ end
36
+
37
+ # @return [String] The UUID of the given provisioning profile
38
+ def uuid(path, keychain_path = nil)
39
+ parse(path, keychain_path).fetch("UUID")
40
+ end
41
+
42
+ # @return [String] The Name of the given provisioning profile
43
+ def name(path, keychain_path = nil)
44
+ parse(path, keychain_path).fetch("Name")
45
+ end
46
+
47
+ def mac?(path, keychain_path = nil)
48
+ parse(path, keychain_path).fetch("Platform", []).include?('OSX')
49
+ end
50
+
51
+ def profile_filename(path, keychain_path = nil)
52
+ basename = uuid(path, keychain_path)
53
+ if mac?(path, keychain_path)
54
+ basename + ".provisionprofile"
55
+ else
56
+ basename + ".mobileprovision"
57
+ end
58
+ end
59
+
60
+ def profiles_path
61
+ path = File.expand_path("~") + "/Library/MobileDevice/Provisioning Profiles/"
62
+ # If the directory doesn't exist, create it first
63
+ unless File.directory?(path)
64
+ FileUtils.mkdir_p(path)
65
+ end
66
+
67
+ return path
68
+ end
69
+
70
+ # Installs a provisioning profile for Xcode to use
71
+ def install(path, keychain_path = nil)
72
+ UI.message("Installing provisioning profile...")
73
+ destination = File.join(profiles_path, profile_filename(path, keychain_path))
74
+
75
+ if path != destination
76
+ # copy to Xcode provisioning profile directory
77
+ FileUtils.copy(path, destination)
78
+ unless File.exist?(destination)
79
+ UI.user_error!("Failed installation of provisioning profile at location: '#{destination}'")
80
+ end
81
+ end
82
+
83
+ destination
84
+ end
85
+
86
+ private
87
+
88
+ def decode(path, keychain_path = nil)
89
+ require 'tmpdir'
90
+ Dir.mktmpdir('fastlane') do |dir|
91
+ err = "#{dir}/cms.err"
92
+ # we want to prevent the error output to mix up with the standard output because of
93
+ # /dev/null: https://github.com/fastlane/fastlane/issues/6387
94
+ if Helper.mac?
95
+ if keychain_path.nil?
96
+ decoded = `security cms -D -i "#{path}" 2> #{err}`
97
+ else
98
+ decoded = `security cms -D -i "#{path}" -k "#{keychain_path.shellescape}" 2> #{err}`
99
+ end
100
+ else
101
+ # `security` only works on Mac, fallback to `openssl`
102
+ # via https://stackoverflow.com/a/14379814/252627
103
+ decoded = `openssl smime -inform der -verify -noverify -in #{path} 2> #{err}`
104
+ end
105
+ UI.error("Failure to decode #{path}. Exit: #{$?.exitstatus}: #{File.read(err)}") if $?.exitstatus != 0
106
+ decoded
107
+ end
108
+ end
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,51 @@
1
+ class String
2
+ # Truncates a given +text+ after a given <tt>length</tt> if +text+ is longer than <tt>length</tt>:
3
+ #
4
+ # 'Once upon a time in a world far far away'.truncate(27)
5
+ # # => "Once upon a time in a wo..."
6
+ #
7
+ # Pass a string or regexp <tt>:separator</tt> to truncate +text+ at a natural break:
8
+ #
9
+ # 'Once upon a time in a world far far away'.truncate(27, separator: ' ')
10
+ # # => "Once upon a time in a..."
11
+ #
12
+ # 'Once upon a time in a world far far away'.truncate(27, separator: /\s/)
13
+ # # => "Once upon a time in a..."
14
+ #
15
+ # The last characters will be replaced with the <tt>:omission</tt> string (defaults to "...")
16
+ # for a total length not exceeding <tt>length</tt>:
17
+ #
18
+ # 'And they found that many people were sleeping better.'.truncate(25, omission: '... (continued)')
19
+ # # => "And they f... (continued)"
20
+ def truncate(truncate_at, options = {})
21
+ return dup unless length > truncate_at
22
+
23
+ omission = options[:omission] || '...'
24
+ length_with_room_for_omission = truncate_at - omission.length
25
+ stop = \
26
+ if options[:separator]
27
+ rindex(options[:separator], length_with_room_for_omission) || length_with_room_for_omission
28
+ else
29
+ length_with_room_for_omission
30
+ end
31
+
32
+ "#{self[0, stop]}#{omission}"
33
+ end
34
+
35
+ # Base taken from: https://www.ruby-forum.com/topic/57805
36
+ def wordwrap(length = 80)
37
+ return [] if length == 0
38
+ self.gsub!(/(\S{#{length}})(?=\S)/, '\1 ')
39
+ self.scan(/.{1,#{length}}(?:\s+|$)/)
40
+ end
41
+
42
+ # Base taken from: http://stackoverflow.com/a/12202205/1945875
43
+ def middle_truncate(length = 20, options = {})
44
+ omission = options[:omission] || '...'
45
+ return self if self.length <= length + omission.length
46
+ return self[0..length] if length < omission.length
47
+ len = (length - omission.length) / 2
48
+ s_len = len - length % 2
49
+ self[0..s_len] + omission + self[self.length - len..self.length]
50
+ end
51
+ end
@@ -0,0 +1,85 @@
1
+ require "stringio"
2
+
3
+ require_relative 'helper'
4
+
5
+ module FastlaneCore
6
+ class Swag
7
+ # rubocop:disable LineLength
8
+ require 'zlib'
9
+ FRAMES = ["x\x9C\xED[\xD9u\xDB0\x10\xFCO\v\xFEq\t<C\xE0\xB9\x14\xD7\xE0\x1ERE\nt%\x91D\x12<0\xB3\aH\xC9\x8A\x9F\xF3\xF2\x13\x02\xC4\xB13;{Pyyo\xE3[\x17?^O\xFF\xF3\xF2\xDE\xDDV\xFE\xF5\xF2\xB3\xC5\xCF\x16_\xB2\xC5\xFC\xC28?\xBC\xF5oM\xFD\xFB\x03>\xAE\xE0\xE3\xEA\xBA\x87}z\xBE\xB8\xCF\f\xBE\v\xEA\a\x98\x9E\xCD\x97i>>\xFF\xFE\xD9\x0FWQ\x1En6\xC3\xE2\x8C\xA0\xCE\xA0k\xC8\x87\xE0W\xE0\x808,\xEF1;\xDA{\xF0\e\xBD1\x0E\aq\xF8\xB23\xB2Vu\xFDWf\xA7\xF1Z\xE8\xA0\xFB\xC9\x96M\xACG,\x06t(\x06\xB4\x10\xCE\x1D\x11K\xAE\xB5\fC\x93\xD6\x03\x03&7@\xDD\xB7\xE8\xF1\xD0g\\\xAB\xEBz\x1Ck[\xB0\xE9\xD0\v\x83\xF5\xF5Dp\x14o\x97\x1D\xD6H\xA1\xD1\x1C\x84\a\x94\xAA\xE7B\x8D\xC00\xF1\x9BiV\xE2\xF0Et\xE1\r\b\x12\x17\x9B\xE6\xAB\xB5\xED\x1A\x88\xF5_\x06Y\xB6\xCCL\x1C\xD5sL\xEF0\xB2\xF5\xF3A\x11\xE2\x9CO:Q\xF9\xCA\xAB\xD3\xD8\x1C\x05\xD3\xE0 W\x14\x86\x1FSA\xE2\x03\x84A5\xA4,\xA1\x10\x9BE\\r\xBB\xCA~0\xDEMiZ\xA8\x82\xB9\xFE\xC8\x147qX<\xA8|\xFFv\xED{||\x02H\x9Cc\x90\x01\x8F\xF5U\x03\xEB\xBA\xE0\xF5\x12\x1E<\x8B%u`\xEE$\xA6\x05Hg\x90\xBB^\x81G\xCF\xC7e\xEC\xF3kS \xA73K\x8E\xB2cV\x11\xA7\xA4u\x1F\xE6\xEE[\xA9w/\xECpO\x83\xC5i\xF2\x15;\xF88\f8\x04\xE5\xD3\x1DTX;\xA8\x17=Q\x11zf\x0E\xEC\xD7\xAE\xE2\x93'C\x85\xAE_\x059T\xD2l-;\xAA\xDB\x05\x1F\xE8mQx\xF3\x86\x97MU\xE2|\xBE\xBE\x82\vU\xD30V\xAF.n\x86\xFD\v\xF0\xED\x95\xBC\xA5\xF7\xBB4c\xB8'\xAA\x15\xC6\xB4\x14s@S\xC5\xD75Q\n\xA3#U\xD1\x01\x12u\x8BzI\x1C8\x83cwz\e\x1F-\xD13\x02\xD2\x00C\xF4\xADHOIcE\xEE\xA6 \x98\xCBH9MQ\x01\x94\xC5\xB0<\e\xDE\xA5WJ1\xA3\xB6\xE9l\x17\xA2\x1C\xADD\xE6%\xF41\xBC\xBA|)\v\xF0\xED\xB1|\xF1\x92\xDB\x9C\x91\xE0j\x99\xFB\xAA\x97\x19\xBA0NL\x19\a;t\x910U\xE7\x1D\x02\xA5\xEB\xD7\x83%\\\xFF\xDF\x84\x95p\xF7\xAE\xAA\xE9P\xAE\xB8h\x16\xE5kA\xC6\xAFe\xD0X'\xB1\r\x15\xD6\xDA8+\xB3\xB23\f\x86Z\xE0s\xDD 3\x04R@\n\x85\xDF\x1D\xC46,nB2bo\xEB\xF4\xA9\xC8\x9C\xD3\x96X}\xCDu\x1F&>F\xDA\b\xB9UB\x17!\xC5\xF6\xDDM\x9C\xAD\x05\xEA\xED\xC3$z\x1C\xF0\xE3\xE6\xC1B[\xD1\xBBH\x7F\xCE\xA5\xA7\x92\x05\xA8\xF4\x14\x8F\xA82h\xAD]X\x81,T\xC9\xDEdbC;\xC9Dl>IwR\xEFI\x7F\x01\x80\x8A\xBE\x04O2\xFA \x00S\xD8\"\xBD\x17\x9EY#Sx\x00\\V\"\x9F\xA5\xCA\x00\xC4\x1D\xA6g\xF7\xC0%-\xED\x11\x87\x12\x84(\xDD\x11\xF1\xBD\xE4\r>\x0FE\x8A\xB8\x85v\xC4K\x9C\x81{kEZ\xFB\r\x9C\x15\x82-\xC1|\xC0\x8D\xB1I\"w\xF2i?\x96T\xA0lc7}\xC3_\x7F\xC5\x96N\xC7\x18\xFA$*p,\xC9\f\x03\e^\xED\x8A@\x88\xB6\xAF\xC6\n\x03a\xC4\x90(\x88\xEB\r\eAu\x91\xD2^\xD6v>1\xC8%\xA6\x1F)O\xE6\xFE\b\xE2\x05+\xD1z\xF0\xEB\xA7-\x0F3\t:\x81\xA6\xC9EXK\xDCM,d\x90\x064\x8CD\xE5\x13\x8A\x8Alq4u\x9D\x8B\xE2\xB2\xE5\x04\xF9\xF4\t\x14\xA0\xD9\x00Z]a\x0E8-\xFC\xD62\f\x9Ba\xA4,t\x81\xC4\#$!H\xA0d:\x16\xC5\xD3\xA4{F\xBE\x99\xE8\xC6%\xED.)\x14\x8Dmq\xD9\xD0$\x1F:6[D;$\xB3\x17\x9C\xF7\x94 iv\xDA\x03\x1D\x0F\xE9\x94\x10;\x15\x98\xB9\xEA\xA48\x86>=\x1F\x00\xDF\xAC9\xB4D-W\x05\x9A6\xE9\x8D\x9A\xDC\x17\x912\xC4\x05\xE1\x83\x82\xE1#\x0FV\x98\xF4\xCE\xA0\xB7\xCCwN\x0F\t\xAC\xA4J\xD6\b\xC6\xBE\x8A\x1C\xE0\xD4\xF3h\x8A\x90\x92\xDB\x05\xC8\xCE\xBF\x0Eo\xF7 \xFE\xD1I\x8A\x00\x86\xF9\x17\x84\x99Z\xB1\xA4k`Q.\b)\x1C}\xA9\xE5\xBF\xCC\x80/\x11wYr\xB2\x12w\xB1\xE6\x83\xC6\xE6\x85\xC3_\x8C\xE1La\xC4I\xF9\xCBi\r\x14\\^H\xCDt\xD1\x99\x11\xE0\\P\x89\x8F\x14,\x80\xB9\xE2\xF1\x8B\x15\xFAJ\x15q\xB0\xA0\x9Db\x06V6\xD0k\xE05\x8C%~\x1Cw\xA7S>\xE2HQg\xF1\x89\x00\x931\x9D |\x01\xC5{\f\xB5\x93\x90*$7\xC1\xBF\e\x8B\xCCE\xF1\xA1\x92p\x14\xB8\xC9\xD6\xE0\x19\x83X}\xCA\xD5\x12\x91C\xC9\x9B\x94\xC5h\x03\xE0\xCAo\xEF\xCF\xAA\n\xEA%\x03\x8D\xB8tce\xD3\xBAJ\x86\xBE\x91\xF3e\xB4c\xC6&):u5\xBB\"\xB2\x91;5\x16\xCC\x9F`.h*\x94\xC0\x1D\x18\xE9\xAD\xE9\x166\x017\xA0\x92\\\xC2\xB0\xFEj\xAF\x92c\xE1\xB1\x8E\xE1JM\xA9\xC1Q\n#\xBC8\x8D\xEE\xD3\x8C\x82;\x992s\xBD\x1D\xE5K\xF0\xF1Q\x94l\xE4l\x03#\e3_1\xD5\x02\xE7V$\xC5Fx\xCE\xFF\xEB\xFE\xB3\xC5w\xD8\xE2\x1F\x8E\x13\xC7\t",
10
+ "x\x9C\xED[\xDBq\xDB0\x10\xFCO\v\xFEI\t\x02\t\x9A\xE4\xA8\x14\xD7\xE0\x1ERE\nL%\xA1D\x11\x10\x89\xDD{\x00\xB4'3\x91\xC6\x1F\xB6@\xE2q\xB7\xBB\xF7 \xFD\xF6\xD1\xCF\xD78\x7F\xFE<\xFD\xF3\xF6\x11\xEF3\xFFx{-\xF1Z\xE2\xB5\x84\x7F\x89\xED\xCA\xF5\xC2\xE9:\\\xBB\xF0\xFE\x89\xBE\xBEt\xBB\xAF\x1F\x97\xE6\xC1?\xBF\x7F\x1D\x87/\xF3n8\xFD\x14\xD3\\\xC4i\xC2\xC8\x86\xD3\x96/\xC7-\x1F\x8E\\\xDE\x13\x86\x1E\x1Ds\x1C\x8AS.W\xAEc}\x0Fv\x17B\x10F\xC7\xE1y\x10\x9E^\x9E />\xE3\xB3\x1F6\xCCOGA`\x05\v\xC2\xC4\\b\xE2\xE0\xF4b\xB83\x0E\x1F\xCF\xBB\x1F^@\x8A\x86\xA7\xDB_\x04\x893u\x81:\xADqS&\x16 \xF8\x8E\x82\xB3t\xE7\xEEp\xB2\xE0A\x83\xE1a\xB0\x97\xE0\xDDK\xD3>o\b/\xCAm.\xDF+/+mX<*\xB7\x92\x00|#?\xB8jY@#\xE1f\x81\a\x18\xEE\xFA\x12\xEB\xEB\xF6\\bg\xD4FBtx\xB4[T\xC0;\xF3a:\xB9\x12\xADR\x8F\xDA\xBB\xE0\x9A-7C\xCB\x85a\x898\xE8\xFB\xA9\xA0\xF2:K\xD4\r\x1An\x88\x91\x8E\xDA@\x06\x12<\xCCa\xA2\x92\x037=n\x88\x05O\xE1\x1D\xA2\xC9\xA5\x81\xDB\x99\r\x1A(\nV}\x98\xA6v\xCA)\x80\x1F\xE9\xB3\x84\xF4\xC1\xA2\x11\x0F\x98g`\xA3\x89\x1E\x19Z\x80\x00\rq\xDE\r\xE3<\x87\xCF\xC1\xB9\x06v\x8A\xCE\xA4ZB\xB4a\xD8\xA4\xDA\x1E\x15j\xF9\xA0\x8A~\xCE\xA8\x89\x82\x12\x86\eN-d\xE0{\x85\x11~\xC8}\v\x80U\xDD\x82\x13l\xDB\x0FE\x8C#0\x8D\xD8\xF9\x19\\\x18\xBF\x10\xA0\xD2u\x84\x06!#\xF5d\xEFX\xEF<\x1D\x92Td]\x12\xCDs\xDB\xA2\x9Atp:\xC1CL\x12-\xE8s\xDD\x9A2W\xBB\x9E\xCAV\xBE\xCB\xAB\x8C\xDB\x02Q\b\x8F:\xB2\xED\xBC 1t\xD3B\xD9\xA8r\x10\x85;I\x13\x17\xBEl\x854O;\xB4rNWa\x06\xEB\v\xCC\x161\xDAm\xBB6C\xA1\xC2\xD1\xED\xD1\x95R\x82'\xD3-\x1E-\xAB)PS\xEC\x9D\x89\xAB$C\x99\x95\xAE\x98X\xF3\xC9~>\xC0\xFCs\"\x16\x8DD\x8C\xD7\xCA\xF6\\\x9D\xC1\xBB!\xBA\xBE\x91T9\xD2\x1C'pm$\xA7\xAAKQU\x11\xC2\xE5L6\xE7\xC1G\xF93\xC1\xD5\x83\xEB\xCD\x1C]Y\xF9>\xC5U\bJ-*OY\xA5<\x96\xFEG4\xE9<\x13+)\xB5#\x1A\xB4\x1A\xF2\x8Bd`\x1Akd@7%p\xD5\x00#\xDE\x14p\x1F\xE3\xF6K\x84\xFC\x1C\xF2\x9DZBB\xA2\xEA\x01\xE3m\xAD\x05\x9F\x16A\xD76\xE9\x91\x95BQ\xA8\xAC9\n\x12\xF6d\x1A\x0E\xC1@C\x155fO\xDF\xC11\b \x89\x8F\x1DG\x94\xBBo\x83p\xDA\x89\xA7#'k\xAC\xFCL\x80wg]\xD8\xCA\xFA\x8B\xB9t\xB9F\xB9\xA0m\xAE/\x14}\x12\xB1U\x9CV\x83\x10S\x12\x8C\xA0h@\x10\xBC\x13vZ\xD7\xFD \xF5\x81-]\xF8\xECK{\x1Ej/<H?D\xF9\x00j\x8F\xB8!\xDD\x0F\xB8\x7F\x1D\v%X\x15\xC6T;\x00\xEE\x9D!\x81\x9ETWA\x18\x93\xA8\xD0!z\xD84\n23W\xBBv\x9C\xA1(7;\x01\xA5\xA4\xDE\xA8\x9EUau<\xDB8f\x10\x81\xA3\xF7\xC3n\x98\xEC\xCB\x85,%\xC4\xB6\xE5Pi\xF2I\xE7\x9C\x13^]\xCFP`\x8Err\x12e\xEC\x9B\n\xBA\"\xE2\xC8\x1F\xF7\xBC\xE52\x93\xAD\t\xA0`\xEA\xB3\xA6\xF9p\x87r\xA6>\x03\xD0F\xD0\xE3C<\x17\xF4\x94~r;\xF4\x8E;\xDB\xB4\xCB\x1F:\xA7@`\xF9\xA4\x95*e-\r\x9Bw\x9A\xD1\xF2\x179L\x91[\xCF>\xD3(=\xA4\xF8N\x86\x0E_\xF0\x86FB\x9CU6\xE9\x15\x11\x1E)\r\x17\x88\xDE\x0F\xAF\xEC\xF1O0rjSIm\xAByH\xCAiJ\xAD\xBD\xA9\xE60c\xC4m<*\x95V\x97p)}\xE0Ur\xC6\xAD\xA3\x0E\a\xA4D\x93\xEC\xF8\r\xB3\x9A\xE6\xB2L\xD6\x141\x9A\xF9\x14\xA7\x96\x86\xB3H\xC3\x18\xCEb\xA9\x9BE\xF0\b\xE5\x9B#\x0F\x12\xD0\xD7R(\x9D0\xDB\xBE\x83\x8C*\eq\xE9'\xF2QL\xA9\xE4\xA8G\\\xB7G\xF0\x99]\x89m\x10\x8B\b\xEAY<`\x8F\a\xD8\ri\x19\\\xCDTk\x15e\xEF\x93\xCA\x98\x94j\xE7wS1\xB0\xC5\xBB/\x8C\xA6m<}\xA4or\x9Agi\xE2\xB5e\x92i\x18\xF7yR\xA3HSQ\x9D\xA8b\xF0t\x80\x18F\xDC\xA7%\xAD\x01Z#\x83A\nN\x8F\xDB\xC4\xCA\xDF\x9E(\xE2B)2\xBD\x99d1\xB7h\xFF\xEA\xAAm\x01\xBC=c\xCCp\xE0Q\x04'\x03`K$\xA9RK\x00\x1Fl\xA0t\r\xC9\x87 \xC4P\x9E\x03\xBDc\xAD\x13(\xBC\xA6\x99M`\xF2P\x9BK\x95P1\xA1\x98\xE3\xCD-\f5s\x93\xA4p\xCC\x18\x1E\x8A\x19\x9D\x94\x9AtE\xB1\xF8EN\xA2\e0uk\xECi\xB8\xC7\xD3\x9BYk\x12\xA2\xA3\xBB\x9D\xF7\xA7\xA5\xCD\r`\x18\vtG'K\x15v\xFE&G\xA3\xA8\xB1\xDF\xBB\xD2\xAF\xC0\b\xE0]f.\x01\x0E\xAE\xD3\xB4\x81\xBC\xE8D\x93t\xCF\xB3$\xE8b_;\xDDid%\xA4\x9F\x89\x8B\n`\xD4F \x1D\e=\xFE\xB7\xB8[%\x01\xC3I\x0F\xFE\xEF\xCF\xFD\x9C\xC3y\xCEj\xDF\xD48\xC7\xE9\x9E&\xBF\x99\xF8\xAE\x98\xAC\xAA\xC7Y\x9B\xD9\x9Eol\xDF\xE7\xB5\xC4\x7F\xB9\xC4_\x06\x16#\x10",
11
+ "x\x9C\xEDZ\xD9\x91\xDB:\x10\xFCw\n\xFB\xE3\x10\b\x1EK\xA2\x14\xCA\xC6\xA0\x1C\x1C\x85\x03t$&%\x82\x17\xBAg\x06\xC7\xAE\\\xE5}\xE5\x9F'\b\xD7LwOcVo\x1F\x9D\xBF\xF5\xFE\xFE\xB3\xFA\x7Fo\x1F\xFDc\xE5\x1Fo\xDF[|o\xF1\xFA-\xC2\xEC\xE7\xE4\xE96\xDC\x9C\e\xEF\xE0\xE3q\xB8\xDB'h\x87(8\xB3\xBE\xFF\xE3\xB3\xA1{\x0Ev\xFE\xFE\xE7\xF7\xAF\xCB\xE88\xAC\x83\x1D\x18\f\xCB\xE2Ai\xD908\x87j\x1E|\xFE\xCB\x99\x0Fw\xA6g\xF6\xDB\x8A\x15r\x93\x9F\x18\x96\x80g0\xEA\xC5\xF8p\xB1x\xD49\xB7\xFC\x1F\x18X\x8Es\x1D\b\x17\xB4|W\\=\x9C\x18\x1FJL\xAB\x18\t\x1ED%7\xD9id\a\x98\xAF\x9E|3)\x8D\x8FP\xAE;\xC0\xAB\x01(\xFB.\xA6\xB9\x0F\xE7\e\x1A\x18\xBFf\x1D~\xA6\r}\xC3\x9D\xBE\x01\xB6\x9DW\x06\f\"\xEC\x8C\xAFcF\xB4\x8C\x808\x01r^m\b\x88\xAF\xDB\xBAw\x14\xFC\xB6\xF1Q\xF0[7\x86\xC1\x16\x1C}\x9Er\x1Af\x928\xEF\xC8\x969,`;\xEA\xE1\x9A$AX\x8E,\xC2\xCB8H1\x87!\xD9\xFB+$Y`vpOWY\x91AX\xFF\x8E\x05 \xD3\xF3\xA6\x80`\xFD\xF4\x8A%\xFA\r\x87\xC2~\x18F\x12\xDD6\xD3\x8DI\xC4c*\"\xEEa\xCDwy\x18\x9Eh\xB91\xABH\xD0\xE6\f\x1D\xAE\xF0\x8E\xD9\xB5\x8A\x9E\xA8\xC4\x99`\x0FBi\xE3\xA1\x0En\xB4I`\x95R\r(\xDD\xA2\x13\x94h>$#\x9FZL8\xA3v/\x80\xB7\xF3\x8D\xCE\xC6\xC8_\n\x03\x86\xB6\x19\xD6\xCF\xE7\x86\xE9\xEBV\xE3\x9B\xCB\x16\x88\xC7\xE0_\xD2\x18Qf\x9ADHu\xB2S;\x84\x05\x9F7\xC9\xF0Jv\x1A\xD1\n\xAFA\x17o\x84\x81|\x8D\xD0\xE8\xDF\xB3\xD92'm\xBC\x04\xB4lc?{\xF0LS\t-\ecnd{\x9F\x00c\xFC\xD8\xF5\xD9\x1C\x91f~:G\xA0\x9EW\xE5\b\xC4\xC5j\xF5\xC8ji\x05\x10-K\xC1\x1D(\xC5\xCDt!\xE2W\xB8\xE3\x9B\x1D@\x9D\x83\xF9\xDD8\xDA0\xBF\x95^\xC3\x8BV0\xE7\x87\xCAQ\x1D\x13\x04\x1A\\H\x8D\xB2\xA8\xCC\xAE,\x8Bi^\xE5\xAC~\x8A\x87\xD7\xD4\x8F\xBD#\xE1\x83\xD1\x92\"\xBB\xDD\x93a\x95\xA1J\xF2\xB6I\x80B\xA0\xDA\xFA\x1F\xBE\xAF\xAF:\xBC;\x93\xA3:\x19\x80\xE2\x9A#\eX\xFD\xB9ihZ@_\xDA&7\xCB\xD3e j\x17T\x90\x01^@\xD0lkc\x83\xE2b\x88lz\x14%\x03\x1Cb@\xA0G\xF79\xE3\x1A \x94\x12F\xDB\x13\xCA{\xCB\x8B\xC3j\x91\xB3\xC3g/\x16E\x84\xC7\x18\xDB\x9C;A\xD0?\xF1\x0E\xC8&\xC2\xE1\xEE28M\xD0D\xE8$!:\x14F\xDC\xBD\xD2\xE1\xE7\xB3\x01\xF4\x13>\xC3G\xF07\xB7)\xD0\xBA\e\xE2c\xF8}\xCC\xB0\x1E.\xCD\x8B\x17y\xE1\xC3\x90\xB5a\xD3\x13\x0F3_\x94\xE0M!\"\xEBdH0Md\x8F\x1C\xC9\x9C\xC2k\x9E\xA9\xD2\xF3\x95\xD6c\xD1\\\fpk+w\xB9\xE1\xE8E\xEE\xBE0\x81M\x01C\xA30\xB9\x9DVe\t\xE4+\xB1\x04\xBA*\xE2\xAB\xBF6\xF2S\xF5\xFEB15J\xE9\x16\xF6\x0E\xBE//\t\xA4\xC3\n\x7F\x15tLPLG\xDA\xDC\x85z-\x90Y\xD1]\xABj\xB3v}\"T\xE2\xCCL\xB0WL~RQ]\x10\xF2Q\x86,\v\xA8\xA6\x97r\xAD\x8B\x04\x05i\x04\x948&~O\x16\xFA8\xF6\xFB!\xF3\\`\x14\xD4\xE4\x81\x8A>\x87\xB3\\\x1E\xBA\x12\xC8D\xC0J\x8F\x12\xD1\xAF$\xEA\x91_\xEF\aa\xE6\xBC\xD7\xBE)\xBA\r\xC7l\xEE\xAB\xB8a\v(\x98E\x90\x05?\xF7\x18\xC7\x14\xC8&\xEA\xDEd\xFA\x9B\x06\x01\xB2R\xBD\x10\xF6\n\x9EW\x16c\f\"\x9E\x86\xD8\xA7\x04nR\x98\x8A\xCC^\x98\xE9Pc&\xC2\xA4\xDF\xC1\x14C\xB59a\xB1D^\xED\r\x1C\xB3\xC7Hw\xD0\x89Ex\xF2B\xC2):L\x94\xD4ABe\xA6Eg\x15%J\x84\xD0\xA6\x8B\xF1_-9Vb3\x05\xC0 8^A\x049\x02\xBEV\xBE0\xA6\x04_\xA6\xA16-\xD5H\x81B\x92\xD3ubKr4\x95\x18\xAB\xE4\xD6-\xE1\xBF\xDC\xD13\xFD\x84A>\xFFQ?\xE5\xABG\xA3~\xA3\x8C\xDD\x96\xB6Z+\x9Dj\x14\x96\x18\xF8H\xB4\xAF\xA1@\xAF\xA0\x16\xC5n\xE6\x042(3\x83\x94\x86\xB6#S\xC5\xD0\xA2g%m\xDE\xB1\xDF\x969P\xD1\x99\xB6A\xEB\x18\xCE\x8E\x89'][\x0EX\xCF\x94W\xAD\xED\xA6ue3\x8B\x06\xBF\x90I\xE4\xA7C\x03\xF4\x03&\xB8\x84\xCD\xCC\xBC\xB5xS\x8BO\xD0\x8D\xC6\x14\xCE\xC1\x1A<\x05\x04\x86Z)\x91W\x86[\x06\xB5).N\xC6\x85\x11\x7FA\ru;\xF8\xC9%n\xF8Y|\x84q\r9\xB1X\xEF@0V\xDA\xC5\x9Ca\xD7g\x97\x88D\xCBx\x16\x02Mbh\xE5\xA2onl;\xD2[\xAA\xC8\x13&\xBC(L\xFC\xB23L\xCA\xAE\x9EEK\x19\xC8\x9D\x8Dwf\xE7\x15^\x8E<(\xCC\xB5\xAAA\xC9p\x1A&\xF4\xE9m\e\x9B\xF7\xDC\x1E\x14\x19\xA0\xBC\xF8\xB7\xB4\xA7\x83\r\x9C2^\x0F\x85\x87{S\x91N\x86\xCAIS|\xC5n*|\xD1\xC2\xD4\xB9}e/\xABB\xD9\xD62g\xB4$&PR\x9D\x8D\x86\xFD>`\x88\xF1v7c:\x8A\xBB\xE1\xF9\xDD\xC5\xEA\xA9\xC2\xD5\xABB\xB2\xF0\xCD/)\xCB]&\xFF\xEFN\x9F\x12B\x80xRF\xE0\xD1\xF4\xB0\xB3\x1F\xCA\xD0\xD52 T\x1E\x84\xB4P}o\xF1_m\xF1\x17\x17\xBF\xAB\xA5",
12
+ "x\x9C\xEDZ\xDB\x91\x9C0\x10\xFCw\n\xFB\xE3\x10\x16\x04\x06\xEAB\xB9\x186\aG\xE1\x00\x1D\x89Y@\x82E\xDD3\xA3\au\xE7\xAA\xBD\xBA\x0F[\x02I\xCCt\xF7<t\xB7O7}t\xD3\xE3g\xF5\x9F\xDBg\xB7\xAC\xFC\xE3\xF6\xDE\xE2\xBD\x85\xFE\xE2\xFA\xDE\xF8\xD1\x7F4\xBD{\xA0\xE1\xA6\xC1\xC3\xC3\xE3\xBC\x8Au\xF7\xBCC\xC7g\x18\xFA\x97\x93m\xC7Z\xE7\x9C{\xFC\xFD\xF3\xFB4;\xF4\xC2\xA4_\x15O\xBA\xE3\xE4\xFA\x9B\xF2\xBE\xB83?4\xFEP\xA3\xCDr\xCC\xAC\xFB_\xB7\xA33L\xCE_\xC4\x8D\xF4D\"\xB2R\xF3\xFC\x1F\x98\xE8]<\xB1~024\\\x82\xAD}$G\xE2\xD7\x88v\xA0\x16<\xD2+\xD5\xE5\x19\x0E\xD7w.\xF3wp\xE9\xBC*r\x10\xD4\xA1{\xEC\xB8\xC9\xED\x93\x90}\xCD\xD4\xBD<\x01\xD6\x1D\x91I-X\x92?\xE4K|]\xE6\xEA\x00\xF92\xF0Fo\xC6>]m\xDA0\xD7,\xA3\x9D\xB7\xC3jx\xEC\xDEn\x12\xD7\xE8\xEF/kpp4&\x9D`(8\x8Ab\xA2\x1C\x04{S*\\\xEC\xF0\x1D\xC1\xD2\xD9e\x04\x03\x95%\xA9\x032\xEA}'\xA2\x0E\x83D\x0F\x9B@\x14\xD6\xA0\x1A\xD1G\xC9NR\xD8,\xA0c\xEFv[\n\xEE\x81\xA8\x94|\x17pW\xE8<\x1A|\xBDM\xA7N\x9E\x86\x87{N\xE7,\xAB\xC8A\x19\x96\xF4P2!\x93\xD5\xC0H\xBCW\eG\x87u\xF8\x0E\x87\xEF\xCB\xBA\xE8\xF9_\xE4\xC8\xD9\x95\x80\x9C\xBA\xAA)\xB1)O\xC4b\xF5\xD4\xA3\xC4L\x90\x90NG5\x84mZ4\"\xB4\x83\x0E\xE4\xD02=KD,l\x98\xF0\xB8\r\xE3:\xAAuHoc\x1E\xC1#0\xE9\x8Ck?\xDD\xC2\xE9\xF6eZ|\x02\xAF\xDF\xEE\x04\"\v\x1CN\x8F\x11fK\xA6\x83\xD2C-\xBF\xA8\xB4\x92\xEB\x18X\x17E\xDED2I\xC9#\a\xE9\x1A\xAC:O\x8F\x03\x9BV\x18\xD7\x03Y;\xD5\eI\x04G\xDF\xA2\xA7$t%~\x14\xBF\x05,l\x12i\xCA\xE9\x88\x8C\x9D\xC2\xB7\x06Ypa\x13\\Y\x84\xA2\xA9x\xDAH\xC0\xF2\xDF\xAB\x98\x05\vC\xD8XP\xA4\xB4\x02\xBF\xA22\xA7B\xD2de'N\xD8&!2[\x9E-JB\xCB\x84E'\xE0\xBC\xABL@\x8D~\x94}s\xD6\x96\xC7>-X\xB1\xA0$6\xE6\x8E\xDD\xCFL\x0E\x89\x05L\xE5lO%\x18\xC5Y.\x96\xA3\x98\x14(\x05\t9\xF8\x90\xE5`\xC7\xC0\xF5\xE2\xB4\xF2\xF6\xE8\xD8t\x88\e\x96\xC2O7R\x96\x9A\x84h\x8DHU\xC8\x9E=W\xB4\xC4.\xFB\xDB\x84:\x9E\xAC\x96\xC6\x8AD\x9FI`\xE0\xBEI\x94\xC0I\x88\xC7\xB8\x0F\xC0\x19`\xC8:\xC1N\xCA^\xBAF\xC0\x18\xB2Up{Y\x0F\bC.\xD4\xED\x11m#\eeC\xCA$\xC8\xF6\xE2\xE5 \xD3:\x15\xCB\xBA\x92\xD2\xD5U\xDE\xAD\x8C\x8E<\b=\xE8\xDA\x1C\xD0\x8D\xE4@\x89\xC9|6\xE8\xEA\xC4yE\xA3\xCA$\x8C\xE2\rv\x83,e\xE1KD\xAE\x10\x94u\x95\xCA\n\x8Ea\x1AG\xDE\x8Ee\x92\xA3%\xB6\x93\xBC\xCF\x026k\e\e\xBF\x1D\xE4SW\xB8\xBC\x92\x0F\xA3md\xC9\xE4\t\x8CJg%\x11\xAB\eP5(\xCF\xBB\x02\xDF,\x8DP4\xDC\x82\xD6\x13\xDDc\x19m\x9D\x92\x10\xA4\xA0:de\xD6\xD8K\x17 \xEA\xF7\x1D`\xAA\xDC\xF4\x8C\x96n\x93\xA9an\x87\xF0$\b\xADE\x81Y4R\xE1=\xE6I\xB1\tQ\xD3\x0E\x85\xC8\xC1:\x92B\x1C\x8D\xA0\xE8\xCF\x10\xF9U\xAA\xBFi\xEDlb\x8D\xC1\xD9\xD8\xE5-I\x8A\xAA\x85\xD0\xB3\xA8\xA58\xE8\xFA@\xC6\xE3\x95x6\xFD\xA2\x92\x8A\xA4\x16\x04XKb\xEFi\xE8y\x94h\xCFb\t\r\x0Ea\td\xA1\xE9\xBEG\xF5\xA0\x9FM\x92\x0F^\xD9Y@\xABKKm\x13_\x94I7\xF7\xAC\xD8O\x11\x97\vY\xC5\x1D\xA1\xCF\x94\xD6\xEB)rB\xBC\xC9\xD8\x90\v\xC6(-\x89\x8B\xDB/\xD3\x17\x8B\xA0\xCA%C\xF0^vJ7\xA5\xB3\xC5\xE8%T\xD1m\xAE\x8A\x0F\xD2m\xFD\x93\x0Eu=\xC3\xA4\xD2\x9E\xB2\x16O\xF0\x12\xB8\xFC\x96W^`\xBF\xD5*\x91R\x1D\xE2\xCB\x98\xAF\e\xA0\xC5\xC6\xE6hk\x8C\v\xBA@\n\xB1\x84v\xC9u\xF0\xCCC\xA7\xB7I:8\xE9\x9B\xDB\xE6\x1C&\xC6\xDBM\x9E\xFE\xD3\x95\xF0\xD6\xC1\xEFVP\xC8\xBFg#\xF5\x16\x06G\xAB\x97Y3%\xE3\x8A\x92\xD8\x8B \x84ocM\x18*b\xDB\x9E0\xD4\xE8\x95h\x15'-u\x97\x7F\xB4j\x83`\xFB,\xD1dvD\x917\x9B\xE8\x1C\xDE\xDA\x93\x8Er\xB6f\x14f\xD4\x10\x85\xD0O\x1E\x81\xFA\x13\x90e\x8Ep\x99e9\xCF\x15+se\xF1<\xB4c_\xAA\xC3\xD1\xE4!CT)\xC4+z\x7F^\x92\xA8\xEB\n\x8C\x8F!\x9E\xDC\x8Es\xE5\xEF\xBAMI\xB9\x17I4<\x98\xEE\x88\x88Oi/\xFFHD\xCBb\x14\xED\x03\xF8S\xB7\xB2*RI\xAC\x93Z\x1F\x19U\x8DhO.\a\xAA\x92\xE41\xC8\x94\x11\xCE\xE3\xF8\x13\xA8,\x86\xCC=\xFD4\xA6r\x81j\xA9\xE2\xB9\xEAY\xACVA\xAB\x7F-\xE1z\xD4\x12\xE5\xEF\xD5$\x00\xBF\xC4Z\x0FqI\a\x10I$\v\x17\x12\t\xE4\\l\x05\x88\x18\x8Fq\x06\xC1\xB6\xB5\xFD1k\xE2\xD5tQ\xE1\xDF\xF1O\xDC\x1FRp\x1D\xB9X>\xF3H\x95\xBB\x18\x15\xB9?\xEF-\xDE[\xFC\xB7[\xFC\x03\e\x86S#",
13
+ "x\x9C\xEDZ\xCBu\xE30\f\xBCo\v\xB9\xA4\x04S\xA4\"\xE9\xA5\x94\xD4\xE0\x1ER\xC5\x16\xB8\x95\xACb[\x94,\xCE\xE0C\xCAI\x0E\xCE\xCBI4\t\x123\x00\x06\x94^>\xE2\xF4\x9E\xA6\xF3\xEB\xE1\x7F/\x1F\xE9\xB2\xF2\x9F\x97\xA7\x89\xA7\x89\x1F1\xB1L\xB8\xFE~|\xEF\xDF\x87\xFE\xBC}\xFA\xF5(\x84\xE1:\x16\xA7\xF3\xBF\xBF\x9F\xBB\xD1\xA1\xDF\x0E\x96\xE3\xCB\xC21J\x93#\x9E|\xBF\xB8\xBA\xDB\xDB\xD3y\xC3\xFB\xC7vo;}\xE8\xF2U\xF6\x85\xE2\xAB\xF9X|0t\xCC\x93\xCB\xAAx\xAE\xB4!\xD1 \xDB-?k;\x0E>\x14\xAC\xACQ\xF9(\xFA#\xBB\xB8<\x128{\x7F\xC2\xCF\xA7\x88|b0\xE5\xC4\x8B\xF8\xA4\x98\xF9(P\xAC\xF6\xCDL\xC3\xAEG\x9E\x0Fe\n\xEBO+,\xD8DZ\xA6'\xB6\x89\xBC\x06\xDAJ\xC6\\\xC5V8\f\xF1\x1F\xA7\x0E:/\xDF\x8C\xC0\xBF_\x037\xF1\xD9\x0E?\x05\x9A6x3E\xC0\x8F\xA6\xC8\xF6ap;\xF5\xBB\xBE\xCC\rh\x9B\x13\xB6\a\xD8\xFE\x1Fq\x18\xC4\x82V\xA2\xE8\xA5\xD2\x93\xC3sY\"\xA9\x0Ey\x01\x19Y\xFD9A3\n%\xD3\xE4\x01\xAB\xC2v\xDB\x9E\x83\x8DA\xF6\x1Ch\\\xC0\xC69O\xF6C\x81\"\xEFr\a\x8D\xC7\xBF\x88,$e\x89\xBC\xAAMB\x9E\xC0l\xD2P!\x04\x12\x98Q\xCA\xEC\xD1\"\xF6\xCDb~\xBBe\xC9\x8B\xCD\xC1K\x97\xB1Fqa\x85\xAA\x93\xA1\xD0\xC4\x97\xC7\x11\xF4]\xC3\xB0\x0ER&D\xDC\x02\x8D\x16\x99\xD9\x94\x0F\x1C\x82\xA2\x9A\x89\x8B\x8D]#!\xB2I\xE5\xA1\xAA\x93uq\x86\xF8H\xE2\x85\x85;A$\xF6{\xCC\t=\x97MUd\x906|\xD4\xC0U+\xB4\t\x9D9\x01\xB1\xE2n\xC2\a\xA3\x94\xDD\x9B\xE0\xEA\x82\xF7MM\xDF.\x16\xBCE\x95d\x11?X\xE5\xD6\xBA\xF0\x86\xF2Dw\x82Y\xAA;u\xC6_\xEF9(D\xEC\xA5\xA4\xD4i\xBA\xCC\x98\xA6\x90\xA5\xACH,vK>\xD0_\xCCy\xDD\xCA\x92\x11\xF8\xC6\xAA&5\xDD\xB5\xA7u\x9D2\xD0\xF9s}6,\xBC\x18\xC1\xAEf\xB6\xAClB\xC3\xDD\xDD\xB0\xF8\v\xBC~\xB7\xD2\xD2\xE8{\x90\xAA\xEE\xEF kR\x15\x94BP@i\xC9\xF5\xB1\xFC\xB3\b#\xB3\xE0I\xA6\xA3iL\xD3s\xCC\r\x7F\x0F\x93\xEC<\xC94\xB5\xDF\xEB\x95w\x9A\x84W\xC6t'\xCA\x97c\xD2]\x1D\xB3\xD2r\xDBP\x94JC\xBD%x\xA3\xBCR\xF6o\x96\xCC\xB0\x99n\xA2\xBD\xED^\xDE-\x17mB\xD3\xBD\xACW\xE6\xFCZ\x94wu\x00\xC7\x9F\x84\xB6\x02\xE7W8j\xA8\b\xFD\x9Dr\x91\x14\x98\x91\x87@\x91\xDB\xBD\xEF\x80b.\xE7U%9\xBC\xD9k\xEE\xD6\xC3\nP\xC2\xAB+\xE9\xBE\xA1.\x176\xC5\t\xAB\xB3\x15\xE0\xF02Wd\xB5\xA3\xD0\x81\x81d\xEANIy\xDE\xF0\tu\x06\x0F\x89\x8F\b.v\x97\x01T\xB2\xCB+\x17\xBC7\x8F,\xA6\xCA\xC1\xA48\xEC\xF5\r+\x9A\x15\xE7\xFD\xF0f^\xB9\xDFp\x92uR\x9B\xCA\xA2\xB39u\\\xAF\nV\x8A\x8C\xE4s\x01A\r\x13\x8EU\xD1\xCC\xC4'\x95L\x00\x9E7F'\x95g\xD7t\xDE\xC0D%\xE3\xC0\xEC}\x19&7\xD9\xF6\xDE\r\x13\x9C2\xB5.\xE1\x94\v\xA4\x1E\xBE\x90Cl\x90\xAF\x06\xACT\xAB$\x92\x81G\x15\x84r\xE5'{r\xAA\x88t\xA6\xEC\x12\xAA\xF7\xE9\xE6\xD5\x940\xEBR\xDA\x8E\x8B\x93\xCDv\t1\x1A\xF1?\xF8u\x8D\xA5\x14\xE9\xA2a\x1F\xA9z\xDE\xDA\xA8;\xF0x\x84_&\xA4\xB2W\x1E\x83\x84[\xDA\x81N\x04\xBD\x10\xC1?\b\x14,\xC2\xBF0(1z6\xF8\xD6\xE0A\xF8\xC9\xE0JA)\x87s\x92\x12E\xCAg\xC0\x89bA\x1D~Lw?[\xB4\xEB\x9C<\xF2KA\xBB\x0E\xF9\x0E\xDE\x9Ac\xFC\xCB\x83z\x1D\xDD\xB46\xCD\x8D'\xBE%\xC8\xAA\xD7\xAC\x15\xD4|U\x92\xF7\x87\xF8K\x06\ty\xC9\x175\x88z9x\xE5&Zo\xB5*\x18K\x87\xF1\xAB9$\xC4\x0E\xA5\xF9\x1D\x9A$\xB63\el\"\xC1\xD9Q\xF1\xBA\xC6Yl\x04\xB9\xA8\xA1\xE4`\xF8\x9Af&\x9A\xEC|@\x90\x11\xBC\nu\\\xB3`\x8E\x88_DX\x16hy\xA1\x92\x87\x8D7N\xC7\x11\xD1\x93V\x16$\x8B\xCC\xC1(\xEA\xBD\xAA`\x8D3\xEC6\n\x92\xF2L[\x9F,Uz\x96\xC5ud\x1Fg\x89\xFD\xDEt\x16\xCE\xCF\xDF\"#c\x94\x10-\xAC\xC9Q,\xAA\x1A\x9F\x0E\xC3\x8012M\xD8\x05\xF2M\xC1H&\xB5\x12\xAA\xBA4\xF3l\xA8\"R\t\xA47\x8F\xCB\xCA\xD4\xAD\xC2C?\xF1\xC2\xB6\xB8\xF7\xD5\xD8\r\x1C\xA0\xF7\xA5\xDE\x7F\xDEk=(\xDE\xE6\xCD\x8C\xCB\x03\xFB\tS)\xF0\x8B\xC8\x9Eq\\\x14\x8B=\x88p\x8F\xFF\xDD\x00T\xFC=M<M<\xC6\xC4\x7F\xBBC\xCD\xA2",
14
+ "x\x9C\xED[\xD9\x95\xDB0\f\xFCO\v\xFB\xB3%X\x87W\xE2s)[\x83{H\x15)0\x95\xC4\x97HK\x9C\x01\a\xA4\xE2\xE4%\xBBo\xBFD\xF1\x02\x06\x83\x01l\xBF}\x0E\xE14\x86\xF3\xFB\xEE\x7Fo\x9F\xE3m\xE5oo_[|m\xF1\xEFm\xB1\xBCz\x7Fs>\x1DO]7\x9D\xC1\xE3\xE9\xB8zz\x7F\xB3\xBB\x8F\r\xC3\xF9\xE7\x8F\xEF\x9B\xD1\xE9\xF8<\x18\xFF\xB35\xA6\xC7ka\xB3\x06\xDE\x97\x1FrsK0'\x8Cp\xA9\xE3\xE1\xFC\x9E]-\fi\x14\x9C:\x0E\x8F\xDBcK\xB3G6\xFC|&\xF0x\x86\xAE\x01\x17\xA3.\x97\xA1\x81l\xDE9!\xB0\xCC\xC4\x83Ct0\x1F\xBC\xEE\x89\xD7Ev\xBFB.\x9C!\xCE\x92e\xAD\xB3\x90\xED\xCC\x93ZwL\xE6!\xE8\xBE\x1E\x87\xBB\x0E\xB9z\xC8}P@\xDB\xF1`bu\f\xAB\xD9\xD6\e\x01\xDE1\xAE\x7F\x81a\xD5\x02\xE5\x13\x14\xAE\xC0\r\xE0\x8E\x105>\xB2\x13VcdAW\x06\x91g\x12\xC5\xB0\xBD\xED\n\x90\x150KdP39\x05\xBF\r\r\x898\xDD\x8COe\x02\r\x85\r\x85\xA2\x88ub\x9E#\x1AZ=x\xAC>\x93\xC7\xC3y\e\xDF\x81\xA4!x\x83x\xC4\x8B\xFB\x1A.\x88\xEEA\xDC\x8FCA\x8C\x972\xF3\xAD\xE2\x04]9\xC6\x89%6r\x02\xE7\xE10\xE6\xC0\x9D\xA7]\x98\x94%\xA1v\x1E\xBB\x06\xABm\xD5C~\xAB\xB8+\xBE\xD5\xE6\xD8z0p\xCC\x83$5-\xA6\x1D\x10C^\x9E\xAE\x86I\x1E\xE9\xD8\x1A\xCB\xCE\x13\x94\x85\xDC \x90<T\x83\xB4f\e\x7F\xEC\xACR\x8D-e\xA2\xECf\x82\xFB*\xA1\v\xFE\\\x83RJ\xDEm!\xB3\xEF\xEC\\W\x88\xFF\xBA\t\xB0\xC9\"\xD6'H\xCE\x10\xEBhs#)(\x1E\xF1\xC2w\x9DX\xEFjn?\x18o\xAF\xB1P\xB6\xA9\xFF\xED\xCA\xD2%\xAA\v\xB2U\x02\x0F\x7F\t\xAB\x90\xEET\x905$\xC4g\x96\xF6#tf\xE8z\x86,\n\xD0YW\x8F ]\xEE\x94X2\xE3\xB5\xAA\rH\x99\x96\xA6\xB0\xEB>\xA1\xBD!\x97\x03\x8BI\x8A\xFD\v\xE36\xC9{\"\b\x10\xBC0?\x19\t\xD3)\x0E\"\x99H\x01\xE0qn~\xBC\x0E\xC4\xD9\xDA\xBD\x88\x87K\x99\xD2$(\xA3\xF4\xD2\xCE\x1C\xB5\x8C\x9A#\xCA:K\x02\x91\xAF'\xB8\x16\x1C\x82\x19\xD9 .\xFB\xBAD\xD8\xBA%+\xD8r\x84\xF4\xBC\xB1\xB1\xAEXw2\xB4V\x14\xD1l'S\x14+\x8Ad\x00\xF0t\xB1\x17\xE1\xECg\xC9\x95\xC6\xF5k\v\xB3\xD7\xE7\x0Ezt\xB6h-)\xF0\xFD%\x90N\n\x8A}\xF3\r\xFA\xEE\x03\t\x84\xFE\x90\xE9\x86\xDB\x82N2\t\xCD\x9D2R\xD68<T\xE6\x13\n\xF4B\x95\e\xE3\x80T\xB9!\r\vu5\xBEX\xD9\xABe\xE7=\x9E-\x83=\xB8\xCB\xE5\xA98<\xC3\xE1'4)\x12\xA4\x9D\x05\x91\x14+}\xF8V\xAB\xBC\n\xF9\xA60\xFBN\f\x18`e\br\x86xP8;#\xB2G\x11L[\xBFv\x1F\tQ\xBF\x054pY\xD2?F)5D4\xD0\xAC\xE1\xC7XA\xE6L\xE9(n\bb\x99\x80k4\xFC\xC9m\xD7C\xDA@\xD8~\xB5\x8A\xD2X\xAD\x04\xC26\f\"8}@8IF_\x91\x95\xD4\xA0\xC3aL%\x8C\x8F\xB6\bb\xAE\xCF\xE6\aQ\x8C\xC8o\xE3\xE3\n#j\x8E\x8C\xA35h\xCD\x8C{\xC2\x9E\xCB\xF1q\xDA\xB9\xD8\xC4\x8FT\xF6\x87u\xBF\x17\x9A)\xA7V\xD1\xE3\xCC\xE8\x91\xC4t,\xB0\xB4\x02\x98\x81\xF1\x894[S\xE8\x02\x80\xCC\xC5N\\y'\x8F\n\xD6\xC9\xF5(@\xEAJ\xF7\xBD\xD8\r\xFATa\xB7\x89a\x90K\xAF\xFA\xEE\xCADt\xCA3\x7F\x12\xFAS)\xF8V\x91\x885\x8F#\x9D\xCE\xF9\xD7]L\xFA\xD2(\x13\x02pT\x82\x82\x18\xD2\x9C<\xD3\x0Et9\x11{\xF5\xA6P\xDB\xBB\xE5$/\x13\x1C\xA9\x1C3\xEA3x\xE0\xA1\xCB\xEF\x16v\x10\x8F\xC8\xEB\xAC\xA7d\x01O\xA3\xF5\x90%dG\xBD\xF1Jh#tF!P\x84m\xE1M\x01\xE1!a\xBB\x02\xF8\x85F\x0E\xEA\"TD\x04\xC4\x9B-\x1EJ\x89\xA1Mz\xE0\xE1\xB0Ey\xC5\x1Am\xB5ao3\x05\xC0\xC9f\x1E\xFA\fk\x17\x86!\xE1\x8B\xCB2;S\x81b#E.\x8A?-c\xF9\x93R\xFC^\x9A\xF7\xFB\\b\xDE\xD9\x88\xF0\xAAVGs\b\xA3\x92\xD8\x92hf\xA3Z\x8Fc\n\xD5\xD9\xC00\xF9\xCAQZ\x8D\\C?\x96\xB5{\x03\xB1\xD0\xEC\xA7\xE6\xEF\xEC\xAB\xD2\xC9\xFEb\x04-ugC\x04Y\x89\xD1\x8E\xA0\x1E5\t\xB8n\x03>\xB3\e\xD6!\xC5\x0F\t!8UK_2\xFA\xFF\xCA\x9CfC\xAF\x1F\x14b\xCFP\x06*\xA8\xB9\xB3\xD8R\xD2Of7\x85\xF4KD'\xF8~\x88R\x91XE\xE9\xCEu\x03\xF5SH[\xE4^`N\x80P\xAAoiE\xF6\xA8\xF8\xE4i\x97\xE81\xFBxM\r\xB7\xDC\xD9\xAEx\xB3|\x9A\xBA\x18\xF8\xF3\x1F&r*\xFAFVx\x15\xBF\r\xF9*\xE7U\xA0\x92\xBA\x96\xA4:h\xD8\xBD\xA8w\x1FE\x9E\x1Dq\xB9J\x9FKD\xBB}\xAD\x84\xF3\xEBh\x93\xE5~\xDB\xE9\xEE\xBE|\xB7\xA4,\xD4\xC9|\xDCX\xB0n\x1E\xFC\xFCE\xB0jYR\xB5\x7F\xB8@\xBA\x86F7`\x7F\xA7B\x8E\x82\t\xDE,\x96\x1C\xCD?\xD3\x8C\x8Cj%r\xB4%\xAA\xB7E+[\xCE\xFB\eX\xC5\xDF\xA6+\xA2\xAEv\xCC\xB9EU\xE5E\e\xEE\xEA\xF8\xFB\xDA\xE2\xBF\xDC\xE2\x17\x17\x8B\x11\xBC",
15
+ "x\x9C\xED[\xC9\x91\xDB@\f\xFC;\x85\xFD8\x04\xF1Z\x91\xB5\xA18\x86\xCD\xC1Q8\xC0\x8D\xC4\xA2\xC8\xE1\x85n\x1C3\x94\xB6\xEC\x92\xCB/\x82\x9C\xC1\x00\x8D\xC61\xDA\xB7_\xCD\xF0\xD1\x0E\x9F?O\xFF\xF7\xF6\xAB\xBD\xAF\xFC\xE3\xED\xB5\xC5k\v\xEF\xE7\xD3\xD7\xFDG\xF7Q\r\xCD'z\xDC_\xE1\xE3\xAE\x8A\xBC-\xD76\x15.8 R\xA0\xC5\xA7\xB8\xEC\x1E\xCFG\x98\x85\xB7g_\x7F~\x1F\xC5\xDDe'\x06o\xB4\x9B\xD5\xA77\xB2\x96Y\xF4\x98\x96\xB1\xB57\xAD\x94oR\xDB\xD3\xE8P\x86a\xB8\xB8b\x86\x87\xCB\x0E\x8D\x14\xA4\xE3y\xDE\xDD\xAB~CJ\\\xB7E\xEC\xC2Lq\x80d;R\x98\xA3]\xF7\x0F\xE9\xED\xF1\xE7j\xD2\xE3\xE2\x93\xCE\bT\xF8q[\x810mfa\xD3\xA1\xCD\xAFWU\xCC\xBFN{^\x05\x93\rR\x89\xD1~\x06\x9C\xA0a\x9F\x8B\x17'\\\xE46\xD7\x0E\xC4\xF8l\xB9\x06j^U\xB3\x14\x1D\xFB\xDAm\x85\x98\xF5\xD4\x05\xF8\xE6\xC9.\x95HK\x9B\xD3R3\e|d8\t\xF1\xF3\xB8\xABX\xAFR!\xD9t;\xF1\xF6?E\xEF\r\xA4\xAE\xAD\xCBN\xBAf\xA2#\xF9\x95\xE3\x0E\xA5\xB5\x86\xA3\xEE\x8AL\xB7\xC7\xD5A\xD84\x0E!\\v\x05\xD5\xD1\xCAI\x8A\xAC5*\x83\x9E\xB3\xF7\x8D]\x9A\x15\xD8\xFC\xE0\xA3\xC9\xA8c\xCAK=P$=0t8\xBF\xD1\x88\x11a\x10\r\xA8%[\xF4\xC4\x90\xF4\x04=\xDC\xDA\xCA\x8C\xD5z\xCC\x93\x03\xCA\x17OK\xC4@DfG\xCC\x9D\xBDI)\xE6\x87!i-H\xCA+^\x17\xC1{h|\xFEs\xA5oW\x8B@\xDF\xC0\x003\xCAU^+\x83\x82\x85@|\x8C\t\xB8FC\x18n\r8\x11E\x19\xE1\xEA\xCF\x9E\xC3\xBAl\xAC\xC9\x8C\x85\xD3\xAE<\xC1\tC\r\x9CA\v\x9C\x8E\xF606\xBE\xA3\x98\xF3\x82\xD6h\\\xAD&\xEE\xC9\xC8\xEE\x19\\\x15\xC83/\xF7$W\xAF 4\x10\xBEd\x9CP\xDFQ\xDC\xBD\x13\x96\x8F\x83\x95~i\xA5CW9P\x00\xAF\xD0\x10\xC0\xEB~\n\x03\xB6\xE6\xE2\xE7\x16N\x03\x8A\x99\xAC?{\x1A\xC0hL\x16\x8E;hh\xF5\xAA\xDE\xA0\x11\xE0\xB8\xBD\xE6\xED\x9F]#6\xBCF\x00\x18!\x8E\xF0fA\x9B#\x04\xBA\x8A\xABC\xC6\x10:\x0E\xE2\xFC\xC1\xDB\xF85\v:JU\x7F\nw\x15-\xF9!kM\x93\x06]\\4\xAA2\xC6\x06\x87\xAF\xA39'\xD9\x04\xF6\x83\xB67<\x98\x93\xD9\x82D\xBD\x0F\x8D\xB8\x15\xCE\xE7,1\x95r\xD7|\x16<\x9FG\x19\x8E\xD2z\xE0Dyj\xDD\x9E\x05@\x13i.\x9C\x05\xA0\x06;\xD5-T\xCE\xAF\x99\"@aZ#\x04\x89\xCC\x9A\x8CZ\xC1qN_\xE1f\xBC\x13\x8B\x80|mWD\x19\x18\xF1\x82\xC0\x8B\x81'\xD6\xC1N\xA7\x12\x8FL\xEE\x98d-\xD2\xAD\x9D\xAFg\xDA\x96\x06o\xDBm_9\xDA\xBDn\x16\xA7\xBB\xEA\xF8\a\x16\xB6\xFF\x8B/gGjC\xDBR\xB7\xED\xBF'_z]\xBA\xD4\a.\x97\xCA7\xEA\x1A\x8C{\x8E&\xFB\xC7\xDDI\xC3d\xE7*5B5\xA1\xBA\xAC*\xC4\xF8\xBA\xC3\xCF\x9D\x06z0-\xB2s6\x9Ftd\xC6\xB2\xD4\xAC\x96\t\n\xDD\xD9\x7F\aD\x82\xDC\x1D\x0Fb\r\x19}h\x88.\xB3f\xCA\xC30{+\xF4\x1D(3mPD\xBB\xD1\x05\x13\xEFB\xEF\xFA\x92\x84\x97\x1A\xE8}{\xAA\x8A\xAB\xF7$\xF6\r\xBE\xBF\x01o\xA2j\x1D<|\x94\x9D:\b\xABt\x91\xE2\x12\xB1J\xF8\x82;\xB7\xFC\xC0}\n\xEA\xFD\x81\xE5\x1D\xC0\x14)\xB0a\x10B\x00Dol\xE0\xED4p\xF8\x16\\mr]\xB8\xCD\x1A\xE9\xF9\x19\xB4\x96'\nT\xBF'1\xA8$E\x80\xFA=\x9CHG\xEB\x9B\x1Df\xA0m\xA5;\x0F\xDA\x84\xB8\x7F\x18\xDD})s\xFBT\x11GP\x12\xA2\xBD\x82d\x9BK{\x16\xB6\x9F\xE7\xD3\xE5\xEB>\xE4\xD3\x9C\xF1>\xF08y\x85\xFF\x04\x00\xEF\xCD\xA8\x0E\xE6\xFC\x84'i\x91\x8D-\xD0b\x17\xD7\x1EJ^\xD8r0\x18\x81$\xC5|\r;\x01\xF1\xC8\x85y%B\x00sK\xE1#6;`\xEE\b\xAA\xE2\xAA*\xED*-\x8E\x92\x8B\xFA+*\xCC6\x91\xEB\xF2\x13JJ\xA6\xC7\x86l\x8D\xB85l\xF8(\x8CsG`\xC4\x93\x96\xCC\x91^\xB7\xE8\xF7LE\xBC\xEC>\xACK\x1A\xF1\e\x8C\x16\x18.\x069\x97q7\xC6\x80\xCDs\xDC\xD9\f\e\x9C\n\xBCp\xA7o\x88\x02V\xB7]M\xE2[\xB16\xA9\xC7\xEE*\xE8\x0E\xC0\xBA\xC5\xDCg\xD4\xEF\xD1@6|\x9C\xC7E\xA7\xD3\f\f.\x96\xBA\x1E\x10\xDC\xF0\xEE\xA1$\xB6s\xA2\e\x9E\xCB\x8F\x1EO\x125b\xEBB\xDA\r\x0E\xFD\n\xFC\x1Cfo\x93\x13\xE2\xAE/\x8D\xBB}\x0E\xC5G\xB4\xA64\xACW\x18\xB1\xA3\xC01\xDCW*\xA3\xFD3`\x89\\\xC29\x92\xFC\x98\x01~!\xF6t\xC5\xD9\x14\x9E\xF97\x82+\xF7XEf\x01\xF9\xC6s\x0F\xC6Lr-\x1E\xABy\xA6\r\x10O\n\x16\xCF\x82\x8C\x8E x\x1F0\xA9\x9B{`:\x98\xD9`\xC6\xAC\x139\xD9 \xDE\xF2;3\x99\e\f\x94\x96\xAB\x9C\xFC\x89\x12\xFCr\xC9~A\x17\xE7\xFB\xD8\xDD*q\xD5\xB6\xA7*\x80\x80J\x93\x86\x94\xC0\xA7\x05\x7FX\xB6x.\xAC\x8Co\"\x0E\x01\x91{\xCF\xF6\b\x87\x03\x9F\xB3\xC0\xA6\x1DX\xE7\xC1\xC2|\xDA\xA89Zp\x11\xAC)\x931Y+6`\xCC\xCC\xAF-^[\x9C\xBB\xC5_;Y\xD3.",
16
+ "x\x9C\xED[K\x96\x9B0\x10\xDC\xE7\n\xB3\xC9\x11\x10\x88A\xBC9J\xCE\xE0;\xE4\x149`N\x12\xDBX`\xA3\xAA\xFEHx\xE2\x85\xFD\xBCB\xA0OwU\xF5\xC7\xF8\xE3\xD70\x7F\xC5\xF9\xF4\xF3\xF0\xCF\xC7\xAFx\x9D\xF9\xC7\xC7{\x89\xF7\x12\xCAS\xCBC\xE9k\xFC\n\xF3pB\x97\xC7\xEE\xE1\xF2\xED\xD6m\xF0\xEF\x9F\xDF\xFB\xE11\xC8\xC3\xDD\xC3\xF0\xF2\xDD\xDF\x94&q\x8E9\xB2\xE1\xBC\xEF4\xED\x8Fc2M\x8D9\x91\xD5Bi5\xE5H\xA5Y\xE8\x1DgW\x91\xE1y\xB3h\xDD\x04\xC6\x1D,\v\xB9\xBCb0e\x85\xF1\xF9\x16\xC2S\x8C|\x99\x7F\x7F\xF6e\xAB\b\x83\x98R\xD3\x19\x9A\xB6\xDB\xE7Sy\xC2\v\xBB\xA0\xF5\xF5\xB3q\xDE\x9A\xAC}\x80{4\xEE\x933\xA7\xBC\xF1aD'\x1F\xC6\x87a\x8A\xFFib\xD3\x88.\xA0D\x9Ec\xA5\x1F\"\xC3\x98\xC5\xACOq\x83]\xC3\x89M\xB2\x87\x12\xC4&\xF3\x10\x11\xFFac\x8A\t\x1F\x17`\xCF\xE5I\xBE\x1D\xD5\x15\xBA*\xC6+\x04`\xD9\xBE\x85\xC5\x88\xF9\x0F\x9F \x06\x91\xA2\x9C\xC1\xB2\xFA\x1D\xE2<\xB0Z(\xCC\xBD\\\x0E'|\xFFHw\xA7\xA7RJlD\x18q\x06^\xEB\xD3\xDE\x98\x06\xD1\xAE\x830\xC1et\f\xE9\xFA\x1C\x831\xD0j\xD8\xD1\x81c\x02\xC1\xE5\xF24\x96\xDE\x0E76\f\xC8\x12\xD3(\f\x0E\x83e\xF0.\xCF#\x93_\x10\x8E]\xDA\x96\xFB\xBB\x93{zG\x82JC\xD3\e\x05\xA5\b\xA9i sE\xB6H\xB3\f\xEA:\xC7 \xECJ!#\xAA/\xE4$I\x11h\x18\xA1\x9Ds\xE8\xFC\x1DF\x9A\x11k\xFCU\x19kbf;\xF7.1\x02\xD3\x0E\"*0\xB5\x1C\x018\xD7s\x19KJ\xAD\x10o&cG6o \xA3\x93\x92[\xF08\x86\x98mi\x0E\xDE\x04\x95\r\x1A\x12E\xA1\xF9_AT\x8F\x96\x1A\xD7\x10\x9697\xF2\xC2~\xCE\xAD\xC1l$\x85R\x1DO\\\xAD\x8B:\xA2\x89Y\x18,\egI\x0Fx\x02\xE3 \x96\f(\xCC\b\x84\xECeW\xC0\xF4=\fV\t\x06\xBC8b\xF7\x95s\x90j\xF3p\xF6\x98\xE9\xE1dG\x06\xF1\x84b\xA6\t\xFE\xC5\x93%\xFA-\xB9Y\\\xB3\aP+s\x1C\xA3,\x87\xA2B\xFA\x14\xAB\xE5\xFD\x14\xA9\xEA\x02\x90\eP\x10[b\xBC\x1F\xA4\xFB\f\xD3\nA\x93\x01W|D\xD8=\xDC\xC1\xC7\x9E\x1D\xBD\x00\x86\x06\xE0\xAF,\xAD:\xE1\xDC\x1D\x0E\x7F\r\xBB\xA2\xD3[\xC3\xEA\xC0\xDB\x1F'\x05\x11x\x18[\x1C\xA1Vt\xF1\xC8l\x12\xA76\x04\xD1D\xF4.YvBk\xABr\x19\xB6\xCA.\v\xC0\x16\n|r\xF6\xA9DR\x9E\xB5\xFAB\xAC\x8A\x9F\xC2\xF1%|\xD8 2v\x1E\xC4\xB0L\xB4\xEF?\xB3S\xD1\n\xD1$oRnY\x84W?>\xDD\x00\xC5fyl\x89x2O\xDE\xA4\x99\xD7)IQ\x892\x97\x01\xC9&\xCD\x8B}\xA2E\xF8\xE4\f\x93f\x15\xA4\t\x1E\xE9F\f\xA0\x03\xD6\"vk45\x90U\x85\x19\xAEV\x10ZX\r\xBFU\xFE\x12\x00'\xB1\xF2l\x8B\xD1PG+\x04K\x94\x1D\x8C \x16\xE3*\xA4\xC7R\xD8{j\xE8DWwC\xC4\a\x94\x03B&K\xE9\xCD.\xE5\xB9m[\x10\x822,l\xCEl\xDC\xF2\x00k\xB5\xA2\xB7\xBA]\xBA^\xAD\xBAz9\xFA\\\xC5m\xB50\xAB\x1AH[\xE6\xF8\xB2\xC1\xB8\xAF\xEF\x97\xA3\xA3-\xFB:\xD2\x80l`\x94\x05\xA1`.<S\x11\x89\xAC\xD6-W\xE9\xF1\xAF\xB3}\xF8\xB4\xBC c\xD4\x158\xF8\x04]\xB1\xA6\xB9,\xBF\x97\xAB\x02SA\x01\xA9\xA4\xFB\x1A\xB6\xE2\x1A<\xAD;\xFAz\xAD\xCB\x83]\x0F\xB6}\xBE*\x0E\x87.\x0F\x9B\xDB\x96c\xA9\xF1T\xFE\x1A!\xA4\x95\x1C\x13\xFE}\xCC$\xB6&\xC2,\xA6I\xA5\xD5\xC3'3\xEB\x9D;\xE0\x1A\x9D\xA5\x7F\x04\x94\xF9^\xCF-\x9D\x18\x16D\xF6\x83^\xF8\xFA\xD1\xAB\x00\xCD\x02\xD3m8A\x14[\xDA\xEEr\xD4(\x91*\x94'j\xF0\xD9o\xB0\x1F\xC4\xD3gm\xB9\x9D\xDE\xF2\xB5\x03\x12\xD9\xD76\x93\xCD\xA4\x1AX\xFD\x19\xB7\xDA\x88>\f\x95\x9BxV\xA12i\"`\xE9\xE8\xF1_\xED\x1E0\xA9K\xAB\\I\xB3\x12\x1E/\xCD\xD4\xBF\a\x19~c\b\xDA\x86e\x1F\x9C\xD5\xD9\xCD\n\xEB\xDC:+8R0\xE5\xEB\x93v\xDA.=\\\x92?1q\x9DV\xB3\xA3\xC1\xC3\n\xBD\xED\x84\x95\x99\xBF'b\xCC\xA76\xF9\x83\xA1\xA61P\x01\x93?z\f\xA53\xC5\xE6Q\x88\t\xA4\x8D\x7FG \x944\xEC\xF9\xE5}\x1A\x88?3\xF7\xFE \xB2\xD4\xAB<9\xB0/SQ{=\x95A4\xAE\xA0l\x01\xE5\x9E\x04\xEEE\xEE\x99\x1D\xEF\xB8\xBB+\x9D(\xEC\xE8\xF9\xF1\x01\xE1\x9ER\xCA\x009\xA9]E\x93\xE8\xEB\xBC9\xC9c\x15\"~\xB3\x83\xBD[]\xB2^\xB8;\x81\xB7xrk\x03\xF2C<\x89\x89v\xB8\xA7\xE4k\x87ZyW\xC3<E\xED4bZ\xC4_\xCB9\x949j\xF6\xAF\xA3\xBD4\x16m\x95\xE4\xEC\xAFG\x89\xA7\xE8gG\x1F\x05\x1A\xC9\xF4\xBC\xB82\xDE4:\xAAE\xD0m\xFFfA\xB2G\xDE\r2Dz>1-\xA9\xAE\x12\xE3\xFCU[?\xCE\xCB\xFD\xDD\xF6\xBD\xC4{\x89\x17X\xE2\x1FG\xA5\x05\xF7",
17
+ "x\x9C\xED[\xDBq\xE30\f\xFC\xBF\x16\xF2s%\x98z\x9C\xC4q)\xA9\xC1=\xA4\x8A+0\x95\x9C\x1DK\xB4%\xEE\xE2AR\x99\xCC\x8D\xF3)\xF0\x01\x02\x8B\x05@:o\xEF}<\x0F\xF1\xF2\xBB\xF9\xDF\xDB\xFB\xF0\xB5\xF2\xAF\xB7\xD7\x16\xAF-\xE8\xF8\xFB\xF0\xF9<\x9EC\x1C.\xE8\xF3x\xBAl\x86/c\x1F\xD2\xCF\xBF\x1F\x99\xB8\xDF\x88\xB7#\xD8\xC2I\x8F~\xAF\x87\xC7`>C \xB5\xC2%;\xEE\x18\xC4\xE3\x8E'Q<D\xC1\x1A\xDB\x11\xF3$\xAE\x7F\x17\x8B[\x04\x83\x06t\xFD\xEB7$\x0ELLl\xE6r\x99\xCBa\n\xD0\x9C\a\xB3\x9A\xE5\x1A\x19\b\xE4\xC3\x19\x19$bT\xCF\x10\xD5\x965-\xBA('Ib\xBC8\xB7\"\xE7\x06\xAB\x83=\xEE\xE5zATWz70\xF7\xE9\xDE[\xBE-\xC2~D\xEB\xF7\xE3F\x8C\xE3v\x9A\xD8\x1A\"n\x90\xA1(lhLc,pT\x1F\xED\xEE\a\xCB\xCA$\xA6D\b\x021\x8A\xB5!\xD1\x1A\xDC\x0E\xFA\x8F\xB0o\xD0\xBCx\x15 XM\x93\x05m;;\x9A&\xAC\a\xF3\xA2\x96\x03R9)\xB2\x99s\xB6\xB27\xD7\x9C\x9C\xD7f\xCE\xB6\xD0-\xA2g\x85\xC8\x1E\xC5\xD6\x1E\xA8\x98\rnv\x84\v%\xF78\x10_\xBA\xC6\x04+\x99\x16\x1AT\xC3\xA4E0\x1E\x95#\n\xEC\x195zr\e\xDDoRS\x88UUzu\x05\x90\x16az\x01dI\xC33K\xC34\"\xD1\x8C\xD54t,aV9\xE4gE\xDC\x1F\x15\xAE\xBE\x94\xE1\x0F\x01nB\xE0\xC6\x00c|\x0E;{\xAF\xC3;\x8B\xD7\e\xD1\xAD\xBF\xA8\xB0\x04\x9D+\xE6\x84\x8A\xAC\xA4\xAD0\xB7W{\xEC\x01E\xCD\xA1&FBU\fT\xC0o\xC1^B[\xBE\xCE\xB0\xEC2 v\e\x06\x8B\x10\xA1H\x9E)\xED\x19\xC6H\xD4ur\x9F\x1E\xE0)\xA1g\x16\xAE\x86\xB4\xCE\xE4\rp\xAE\\\xFF\xF0F\xD3\x12\x83s\x90P\xB3q\xAFP\x03\xAC\xAB\xDC\b\xD0\xD4\x1C\xE9^K\xFC\xD4\xCCk\xC0Y#nl\x02,\xF4'\\\xD7\xE5\x83\xEF\x9B\xF32\xFB\xD0\xBB$H2\xEE\xAE\x9B\xF9wD\xCAUP\xC4 \xA0\x8FoJ@U]\rK\xE5\x92\x0Fm*z\x16\xE8\xDCe=r\xDA:\x11\v\x97\xA3\xF6\xC8\x1F\xABpBf\x98F{\xA8Vp\xDAQ\x97g&.v\x12\x9Bu&\x81\x1D\xCF/\x96:L\xA9\xE2P\xF5\x87-\xA1`R\xAFV\x9F\xD1!\x83N\x12R\xD0\xE1\xDC\xE6hP\xEA\bT\xCB\xA2\n\x81Z\x99\xE1G r\x8E\xC4\xDCv4ix\xD2\x93i\x1D\x9C\x1E4\xA5\x9F9)\x00\xEE#S\xEB\xAD\xA0b\xA0\xAD\xAF\\\x9C\x99\xF3\xF2\xDE\xAF*z\xBE\x11?\xE2\xEE\xAA\xFFS \xE3\xB4\xA23\x87\x94\xE8R[s\x83\x97\xA5QH,\x81\x03\xD9\xFA\x96j\x82\x8B2\xBB\xE0\xA2\x88*\xFF\x9F\xC1\x85{\xD5\\\xDD\xC8p\xC9\xD2\x10G\x8B\x92.,\x8FE\nuh\xCF\xFAp\x8B\xC2\x97\xB2\x9F\x8C\x02\x96\x1E\x14\xD2\x80(\x10Icd\xC5\b\xC9U\x18\x1C\xF4\x113={\xBAJW\xBD\x02\x13\xB5\xFBV\xA7g\xAD\\|\\e\"\x85\xB3\xE3\x11\x85\xB5\xC6\tuH\x12\t\xE4\xE5A%r\xC4\x96,\xE1*\x93F\xE9\x8A\xA0\x17n\xEB\xC4\xE2\xA7\xA0\n/\x0E\x8B\xA2R\x16\a\xAE\xD8\xD5o/\v\x80\\\xBA5L\xF0t_):`\xAAa\x14g3\x045\xD6\xF6<\a\xBA\x8Amh\xA5^.\xB7\"\xD7G\xDF\x17vpJ\xD6eQ\xD3\x8A\xD1\xBE|\x8B\x8E4\x13\x82\x18\xC4\xD4b\xE3\xC0\x92{k?\x98\xF8\x91\xC9\x95\xB7\x91\xFB\\\xC4B\xF9K\xCD\xF4\x8F\xC9]\xF8\x93\xF1\xDC\xF5\xDB\"<u@\x9F\xEE\x14e\xF1\\3\x9B\xEF\xBD\xCE\xB3<\xC0%\xAE\xEB\x90E\e\xBC\x80\xD0\x9B\xB8b$\xF1B\xABy\xB9\x1D\xC8Tg\xE0\xEBhJ\xAE\xCE=\xA4\xA2\xA8\xDB\x88?\xF9;\xC6\xD3J\xB6G7FK\xC9\xF3\xEE+q_\xD9\xED\x02\x859o\x95g\x02\x8D`\xE8kI5\x10\x9E \xD0\x9A\x84\x10|\xF8 d\xD0'\xF1|\xD4\x16\xB7C\xDAA+\xE4\xC6\xE2\xA7b\xF5\x15\xB0\x06\xBB\x85\x9C\xD6\xB2\x98I1#!\xBC\xB7vz\xF8\x12\xB3\xC3-!\xA4\xBDU\x15w\xFA+C}1\xA6\xE5\x88\xB8\x867\xC9\xFCx\x1Ea\\\x01\xFF\x19t\x1E\x8B\xA0u\xC0o\x9A\xB38J\xE9\r~\x9E\xF3\x8Bh\xB1\xA84\x15\x11\xC6\xA8r\x85\x15\x87\f\xB5\xBD\x04\xB8\x13\x03D\x0E\xF7\xE7\b6\xC4(\xED\x83\xA2\x14\xAB#\xAD\x94!1v,\x1F:\xE9\xDB\e\tM\xA1\x0E\xD2|\xD7\v\xFD\xB8\xDC\xED\xACS3iL\xF5\x8D\x8E\x7F<v\xC3\xA6\xFEF\xAC\xEEw\x05\xC6\x8B\xD5\x9AX\xE2\xA5\xA4\t34\xD4\xE4X\xB24\x85\xDA\xA5\x02\xEC\x03<\xBF\e\xD8\x9D\xA0(f\xA8\xF5\xB6~0\xF8v%Q\xE9\xA7+\x96\x8B,h\xB3\xB4\x00\xEE\x0E\xD9\xBB7b\x1A\n\xB0&\x8C\x0E\xF53dy\x9E\x128\x10\rw^p3x\xDDK\xE0\xA5\xA5*\xD3\xC1\xBE\xE9?\x91x\xFDQ\xDCF\xF8I\x03\x95\x91\xEB\xE7\xBC\xC5\xDA\x97M|$-O}\x05\xA6\xD7\x12\x91\xE1\xDA\xE1Cg\v\xB2\xD7\xA1#\x17t\xAD\xDCK\xCA\xEE\xF9\xF8n\x95\xE9\x8FN\xEC\xB1\xB7\xBB\xE7\xC3q/+}H\xB8\x97\xAA\xEF\xFE{m\xF1\xDA\xE2\x98-\xFE\x01\x17j\xD8\xE6",
18
+ "x\x9C\xED\x9A\xCB\x95\xDB0\fE\xF7ia6)\xC1\x94\xE4\x91x\\Jjp\x0F\xA9\"\x05\xA6\x92\xD8c\xEBc\xF1=\xFCHM6\xF6\xF1\xCA\x94D\x90\xB8x\x00!\x7F\xFC\xEA\xF3e\xC8\xD7\x9F\xCD?\x1F\xBF\x86\xAF'\xFF\xF8xO\xF1\x9E\xE2\xBB\xA7\x98\xAF}\\:]\xCE\x97\x94\xFB+\xFA\xF9\x9C\xF0\xCF\xA7\xAB\xF1)\x91\xA5\x9A\x97B,\xDB\xFC\xFC\xB4j\x1D\xFC\xFB\xE7\xF7~\xF8|\xB2\r\xDF~\xF3\xDF=d\xCF\xDC\x8FoqQb\x16\x90U\e\xDD\x01\xEE\x18G\xF8\xA0\xFE\\\xEE\xEA8\xAE\x83\xC0\xE8\xFE\xFC2\xBC\xFD\x16{\x94\xC4'\xF1\x89\x88y&f\x14\xB8\xF4\xDDt\xF8\xEFt!\xEC\xA4r`\xB6\tAL\x01T\xC8L5\xD8\xDF\x96\x8D-,w*\xC6\x05\xBD\xE2\x06#\x19\x86\xEB\xBDO\x9C\xAF\x12h\xF4\xD6e\xCA\x01n\x95hs^o5B\xE8G\xD0\xA54^\x1A\x9E&4U\x83`\x9C6gia\xA2\x98\x16\x98\x97\xE0r\x87r\xB5SZ\x86\xE0B\x87b\x9D\x8F\xBB\xD0\xEA\x91\x18\xCA\x8C\xD2\xC5N=\v\x1CN\x99\x8DEgF5\xA3\b\xEFFJG}\xB6CTK=\xAE\xF4\x82\x92S\xF5\x03\x8E\x9E>\xF4\f[ =!3\xBA\x06\xC4\xCD\xF0\x9Cf\x18\xC0R\x87a;\xC8\xDC%\x85\x1E\v'%\x99H\xB2\xD54j\x96:\xAEH\xA9\x81R\xD1T\xACg,\xD4F}1\xA5R\xE3\x17i\x95\x1A\xE433\xC8\xDE\x05\x17\x1466\x96f\x1C'=#\xBE\xC6@\xACJ\xA8bI\xA8\x06\xA01V\tFN\x98)\xAB\x84i\x83\x87%\xC9\x91\xB5\xEFoMdJ\x8D\x93\xC2\xC9%'\x1E\xB5J]\xEF\x83\xC7!\xB1\xCD\xD37\xA6\a:N\x11\xA1\xFA\xCC\xAEH\x18\xA2\xCE\xB6&\x1A\xCD\xAA\xA3\xB5\x9Cb\xC2\xDE\x10\xBAzk\xC6~\bC\xDB\x1D\xA9\xFAmv\xD0\xA0\x13EX\x8C\x9F4\xCA\xF1\xA3XV\xB1\x97\x8D\xDB<\xB2\x15\xEC\xE8p?lD\xF7\x93\xB5A:G\xF7\xCD\xBC\x8F\xCE\xD2\xDF\x80\xA4]\xFB\x99\x11\a\x86z\xD5f\x01\x9FD\x9AF\xDAn \xA6\x1AG\xA7\x94\xDD\x16\xD6l\xB0\xA9\x9B\a\x9E\x9E\xC0\xA9n\x16\x8C\x1E-u<\v\x83\xF3c\x8BA2\x1D\xC9\xE05\xE4\xAB.\xA5Ba`\xBC\xAA8\xF6`\xB1D\x8F\xA8\xE8\xC5hf\xFD\x8F\xC7v\x15\xA7G\x8E\bc\x88\x992\xA2\xF5\xBF\xE2\xC0\xC7SB[?\x82:S\x05\xC6\xD2\x80%R\x89\xD3\xBF\x81'\xAA\x12\x16\xDB\xA9\xA4TU\xD9mu\x88R@(\xA9\x80d?\xD8+R\xA4\x03\x92W\xDF\xDB\xF2\x03V\xAE\xC0\v\xB7\xF2)]\xFAD\x91\xD9\x9D\xBA\xC2\xB6\xDB\xA5\xEB \xB3\xAA;M\xF0y\xE54\xE5\x91R\x02\xEF\e\x18\xF2!$g\x1D\r\x12\x96\x92\x90\x94,J\x10z\x85\xB9;\xB5\x913y\x0EN\xE1\xCBm\x04\x86'S{\xB8\x98\xB57\xC4^.5\tZ\xACd\x94\xCA\xEE6\xF8\xF8\x05H\xC2\x87'U\xE4\xD2#\x9B\x00\xCA\xC3\x95\xBB\xB5\xD7\x92\xA0\xCAP0DJUn\xCB^\xE2j \xED\xD6i\xEA!\x15\x9B\xE7\x87AJ\xCF\xFE\xF3\x1E\xCA\xF4\xA2\xBE\x85F\xEF\b_\x13Rz\xB1\x9Cy\xDE\"\x8D\xE5\xAB\x8A\xC5\xC6\xC8\x02z\xEB\xFBE\xFD\xC5\x81\x96\xA2'\xA0\xA2\xD9\xC3/\x1F\x9E\xC4\xE1\x9BAD\x96\x11,_\xF7\x91z\xFB\xCB`k\x1E\xCC\xCD#d\exeW\xC6\x1F?\x85\xD1[\xFF\xF32\xA1\"\x8C`o0%\x9DQ_A#\xCE'V;\xA65\x86\xCEj1)\tG\e\xC8\x16\xBEh\x13#\n%<cp\xACa\x81W$\xFD\x89A\x7F\x19\xEB9\xEC\xA1\x02\x1Em\xBB\x1AE\x10N\x96\x88\xFC\t\xEA\x05I\xB1\x0F@\xC1\x8C\x9F\xFE\xD4\xC4\x1A^OD)Xc\xCD\x16CGUU\xF6bJ\x8B\x93r\xEB\xE7#!\xE9\xC2\x8Bg\xCD\x97f\x064\xD5\xD4\f\xB9wP\xE3\xD1\x13\xF8K\xB1#\x9A\x84l\xD5\x9EAJ\x19\xAF\x99\xD0u\xB8\xB9HJ.\x0E'fkj\xC0.|\xF2}b\xEF\xCB\x90\x90\xF7#\x00 |\xE5</\x95+rG\xED\xE5\xCE\x16\x157P\\5\xD5*\x951\xA5\x80\x97\r\xF6\xB0\xB4{R\x17\xDCMIb\xBB\xBA\xD4\xEBy\xC3-\x14hJ fW\x88\xC3\x92\x93hA\xEE\x8F\xC1tR\x0E\xE3\a\xFA\xC9\x94\xC0*\xE8\x03;\xB2:P\xD2q\xB9s\xD9\xB6\xD0\xE7\x16\x11\x9Fj\xAA\xAC\xBB\xFCs\r\xCC\xFF\xE2r$\xEF-X\xC8\xAA\x12\xC1\xFF\xD1\xD0\n\xD4x\xBCpu!\xF4\xA4\x98\xAB\xBC\x13\xC9\x81\x85\x7FH\t\xBEF\eis\x18\x9B$^\xF7\xED\x84\x8Ay\xF7\xAE\xEB\xEE\x02[\x9E\xF4\xD8\xFA\xBB\xB9#\x81/\x91\x01r\xF1e.\ax\x9BQ\xED\x871\xA3\x12\xE8\xBD\x9B\xD7\x1E\xDB0\xD7\xE7=\xC5{\x8Ac\xA6\xF8\a\xDF\xC8'\xB0",
19
+ "x\x9C\xED[\xDBq\xDB0\x10\xFCO\v\xFEI\t\x04\x1F\x061.%5\xA8\x87T\x91\x02SID\x8B\x04)`\xF7\xEE\x00P\x8A\xC7#\x8D~L<\x0E\xC0\xEE\xDE\x03\x94\xDF~\r\xE1c\f\x97\x9F\xA7\x7F\xDE~\x8D\x9F3\xFFx{\x99x\x990\x8D\xBD\r\x9D?\xA6\x0F7\x0F\x17\xF4x\x98.w\xDD\xD7\xBE{\xEB\xDF?\xBF\xAF_2\x12<\x1E\x1D|\x9C\x9BW7T}\x00\xBAy\xB4\xCB\xB4y\x98\xD2C\x90:y/\xCEq\xB5\xAF\x8F6-\"\xED1:q\x17\xF3\x01\x17\x8C\xE3\x1C\xCA\x90\xA9\x85\x85\xAEL9:\xBAs\xE5\xEC\xBD_\xFE\xCA\xF6\x1C.\x90 \xCEg\xCF\x03\xA0L\xC8\xE7\xA4\xC6\x8A\b\x82\xD1\xE3\xE0V\xEA\xCA\n\x1E\xB0\x14\xB0\x03\x99\x88\xDE=|\x1CFq\xB9F\xE5\xB6p#\x036n\x04\xE0\xED\xFC\xADqD\xE8\x8C\xAB\x8Dq\xA4\xFEav\xC7.\xE9\xEC\xD3jz\x06\xD2,!\xDF\x039\xD6L&\x9DH+/6\x14:xR\xDD\xE6\xC5\x02\x01<\xF6\xC0\x13\x8C\xC16\x7F\xAD\xF90\xB0\t,\xCC\xA7\x91I\t\e\x94\xFE|\x02L\xAD\x8D\xE7\x8B\e\x04D\x1F\x05\x16G\x15@\x89\x98F\xC2\xC6j\x9BQV\x8B\xA2-\x9B\xF7\xBED>gKD\xA7\x8AB0\xC4\xD0Z\xFA\a\xC8\xB7\xA5\x19N\xBB,\n7\x8C\xA5#f\x16@\xA9q4b?bp\xAC\x1E\x87$\x92\xB0&\xE9\xEDi\x19c\x9C\x83D\xA6\xD4\xE8\xC6uE\x9A\xC4\x13\xDC\xCB\xA8@I\xC7\xBCH\x8FL\f\xD5\xE5D\xE4\x90E\x1CT\x83\xA2\x8C\x82\x9A\x9C(\x89\xA8\x18\xCEJa4\xA29M<\x84\xCA\xAC\xAA03W`\x05\xAA\xD0\xAD+\xB9\x84] \xED%\x15v\x81\x8E\xF9\x11\x8A\x15\n\xCDn\xF3:\\K-A\xB4&O\x14?%r\xB9\x0F4<\x16\x1C\x88/\xA5B!\xDD\x8CU\x01\x9C+\xC9\xF7I\xD4\xA1\xC5\x9DL\x1Dv\xC4s\xF4<h\xD2\x8D'\x19\xD8*\x89x\xB5rH\x88J\x8A\xC5\x16\xF2\xC0\x05\xB6e\xE1{\nd\xAC\x97\xA4\xA8\xC4\xA9eA\x9F\x9F\x1C\xD2.\x84\xB9\xDEY4\x15\x95\r`\xE7{\x93\xD3\xC6\xEA\x10\x1A\xF6i\x9F\x9B{X\x9DH\x8B3ht\v\xE5eV\xA5[0\xE5\x82+\xD1\nn\xD4\xCE\xE0\x1D\xAD.\xAC\x84\xAC\xAA\xA1b\xC2\x88\x9B\xF9\r\xC6\xC1*\f~\xE4\xA6\xAC\xEEbo[NOdQ\x1F^\xB2\xEB\xAE\xA2\xC1i\x9D\x02\xA7\x90=[\xE41\xC8+6\"j'\xA6\x93\xAD\x90nr\xB9m\xE2\xE1\xC9\xAES\xC9\b\xAB\xBC\x0E\x8ER3K\xA9\x1D-\xE6A4\xC4n\x9D\xC5M:w\f\xA8'gU\x94\x93\xDC+\xB2\xFC\xAF\xE0\xD2}\xF5\f\xBB\x8Bx.I\x90C\xEF\x93\x8D\xAE\xCF\xD6\xC6n\x06k\xE8\xBBml\xD7c\xA6\xF7\xEE\xFD\xAE\a0\xDB)\xD1I\xA4K\xA4\xF7\x89i\x96\x186\xBF\x11\xEE\t\x82\xC8\xD8\x15\xB5\x14`\xE6\xDB\x0FH\xEBo\xE5\xEE\xE2M}\xC6\x93\xA3\xFE\x02I@h\xEF'\x8B\x99\x9C*\x90H\x9F\x17\xF6\xF5\xB7\xFE\xDF\x1DV\xEE[\x8D\xA8\xD2\x1E\xD0\xF9]Q\xC6>\xF3\x13h\xD8\x80b/\xC5\x1E\x84\v1\xBF3%\x9F0~\viE!%\xF2mxp\v\xBB\x013\x80\xBB\xEB[\a\x98\x89~\x19\xAA\xA1\xD8\xFE\x9E\xC7\xF6$x+\xFC\xE3\xCD\x98J\xEF\x05T\xEA\xE1\xD5u\x9E\xEF\xAF\xE1\xE2D\xDA\x89U\xF7\xB4/\xAF\x9A\x94\x06V2\xFAy\xB4\xA8a \xDC<6\xC2\x91>&\xD0\xE4\x95\f\xE5ov\x1F\xD7\xCC\xDF\xCF\x06\xE5\xB7\"\x0F\xF7\x9E\xF3\xAE\x8D\"_HK,1\a\xBDy6\x81ee%\x98\x91}\x15w\xBC\xED\xF4\eha'\xF1Og\xC8\xED\xD99/\xCAG\xF5\x87&x\x02\xF1\x1A\xA8\xE0\xE7V\xFF\xC1#\x83\xDB\f\xA3\xE6\xAC\xDC\xD9\\L9u\xE8H\xE2\x9B\"\vL\xB1UH\x8A\xF58\x8B*\xC3\xC1t\xF5Y\xEA\xB2\xE6S\xD0/vg\xA7\xC3\x9F+\\w\x1DAh\xBC\xCE'\xB2\x03i\xF4\x84\xFBc\xCC\x97\xBD\x13NU\x81\xC3\xC6\xAB\xDC6\xB5d\x93\xDA\x81p\xC1\xE0\x03s\xCEr\x9C\x99\x9F\x0E0'\x0E\xFB:\x99\x18\x04R\xA1\xC4pe\xA4\xCCr\\\xA3*\"\xA0\x12\"nW\x93@y\xFA\xE6\xC5x.\x86HY\x04\xB1*!\xA8\x19\xAB\x12$\x0E\xEE\xE9@\x91\xC7\xE9\xA3\xEE\xC1\xB4{|p\x9E\xBC\x96\e\x06\x8B\xCF!\x1A\x93\xD2\xE5z\xA4N\x91&)=\xFD\xC4#\x92*d\x1D=^\xFA\x9A\x1C\x87\x8D\x82\x87\x8B&\x18\xAA\xF4\xD4\xBD\x1F\x94\xAB\xC6\x069\xC3|\xB8\x9C\xAF6n\xE9\xF4)e\x906\xFAQ\xFA\x84\xC7\xB4\x9F0b\x122\x12e.\xD8W\x94^\x8F\x86\xE4_\xE2yJ\xB9$-\x9D4!\x98jX>:\r\x95'\xA8\x00\t\x81\xD4\xA2\xD45\a\x8A\xA5\x0034\x03\x16Y\xC2(=\x04\xE4\xF0\x9A\xC3:\xC1\xD6uM\xD8\xCE\x8F\xC5VE[x\x9D\x93\x90\x0F8i1\xD9*`\xCFA\xEE\xC5\\\xB1\xC7\fc\xD0\xE1Q\xEBi\x90\x90H\xA4\xD5~\xD5Is\xB4\x8A\x9B\x0F\xDE\v$\x1F\x00\xFDu>\x98\xC2\xB0\xEE]N\x99\xD3\xEEI\xAA^\x83=\x00h\xAC>\x05j\xA5|j}\x9Dk-\xC4\x1C\xBA\x86\xABy\xC5\xF4\x98\x83-;\\\xBAj\xF2K \xE15\x87uQ_\xF4?\xCC_&^&\xB8\x89\x7Fa\x1A\xA1\xF7",
20
+ "x\x9C\xED[\xDBq\xDB@\f\xFCO\v\xFEI\t\xE2\xCB\xE4\x8DKI\r\xEE!U\xA4\xC0T\x12Y\xE2\x9DH\xDE.\xB0 %\xD93\xB1G_\xBA\xA7\x80\xC5b\x01\xD2/\xBF\xBA\xF4\xD6\xA7\xF7\x9Fw\xFF{\xF9\xD5_v\xFE\xF1\xF2}\xC4\xF7\x11\xE6\x9A\xEB\x92\xE9mxk\xA6\xEE\x1D}\xDD\r\xAB\xAF\xE7\xA9\xB7\xC1\xBF\x7F~o\x87\xFB\xC6\x1C\xEE\x86\xD5\xF0\xF5\x13\xDC\x83\xDF\x80\xDC\x9B\xFFJ\xCD%q#\xFB\x87+\xB6\xAC\x8DEg\x8C#\xDB 1/\xC1\x81q\x8C\xAE\xA0g\bw\xB3\x7F\x9C\xEF\xE7\xF3\xCE;\x1C\x1Av\xA7\xE8\xCD\x18\xF4\xE9p\xDF0\xD0o\xCD|\xBD<\xB8]\v\xC3yj\xD0\xB7=\x8C\x15<\xB7i\x90\xC1\x95\xAB\x1EF\xC4\xA1\x18>\xE2\xF15\x14\x0Fcyr\x9Dx\x996\xDC\xFCP\xEF\xD6\xCF\xC7\xF5=\x1A\xEC\x97\x83\xF06\xE6\xFA\xB3\x8F\xC9\xD1\xC4\xDB\xC9\xF36\x06\xB4\x13\x0E\xE3\xC8,\xFE$\x97\xF3\v\xA8._@V0\xE4\xD4\xDCb\xEC\x98W\x91=\xD7\xEB\xD5\x95\x94\f>\xCC\xA93\xD4s\xE2\xD3\x06!uS\xF13\xCD2SE\xB2\xD8{\xE8\x02\xD9\xEE\xB6W\xCD(\x9F\x97\x1A>\r;<c\r\x13@\xE6\x1E\x06\a\x9C\x05\xEE\xE2dpX\xC2\xD2t\xAA\xEEp\xBD;\xCE[dv\xBDw\xBE\x95\xAE\x91\xFB\xA6\xE6D\x8E\xA9\xA8\xAE\xAB\xB8C\n\xB5(8[t\xCA\x03\xE0e\x8B\x8B\x01\xC5\x19\xF3F=\xB9@S\x9C\x8F1\xEB\xA2\xD4\a\xDD\x8C\xB8<x\x821v\xCA\xF0I\x04\x02}Zm\x80'\x95m&\x96%%>Cb\xDA\x91\xE0Q \xE3,J\xAB\n%\x99 \xDEB\x9By\xF0\xB75\x16D\xBF$\xA0\x82\xF0\xAFY\x15L\xB6\x0Fp\xB9=\xA0\x1CCl\xB0\xDA\xF6s\xF2\x8D\x13\xB8>\xFB\xCF\xA1\xBC\x8AK\x1A\x94\xCE0\x0Fz\xB8.\x99h\x7Fz\xAC:\x82\xBD*a\x82\xF2o\xBB\xB2%\xE2\xAD'\x9D\x05;n\x05\xA1l\xADgdq\t:8Ph'\xB0\x88R\xD2Z\xF3\xED\x8FAJ\x19,\xC6\x84\xFChG\x98\x1A`'3D\x9C\x00+\xAB\x13\xAE\xA9\x04\xDD\xA6\xC4\xCAF\xBF\x85zS%\xAF=R\x00\xA26\x1D\x954 \xE4\x18.\v\xFE\x06\x15\xB5\xD7Sk\xB3\xB7MMQm;[\xAD=M`\xFB\xB6y\xCD\xC3-6K\x9Ba<\xCF@\xC7\xBE\n\x1D*\x8BqDfa\x19n\x7F|\xC9\xE1UR\x06V~\xA18\xC2Q\x98z\xC1\xD1\xEB8P\xBB$\xCB\x0F\x8D\x1AR\xF5\x00}g\x81\x9E\xD0R\xDB\xD6\x84\xD0\x9E\x12\x03\xD6\xFC\xED\x16\x99\xECG\xDC zF\xA2bA/\x14\xE3\xE5W!\xFB:\x8B\xDC\x0Fv\t\x9E,\b \x03\x95)\xD7\xA3\x84\xDD\x15\xC9\x11R2\eT\x06\x8B\x97]x\xACLz\xE6B\x06\x18\x13z|\x1E2\xC9\x85[\xB5\x90\xE6\xE8qe\x86\b\xCB\xAA\xDD\x10\x86%\x97\x15\xC7\xE8\x10\x99(\xE3\x19\xD07\"0\xFB!\xD9\x1Dr9\x05\x12g\x1E\x02$:\x83l\x00\xF0^\x0E\x96\x9FM\x01]`\x97\xACJ\xE7Zb:\x0FS\x1CT\xBB\xC8n7\xE6\xD6\\Xm\xBE\x84$bhk\xA1\v*\x9E\x17\xA1b\xDB`J\xE7\xA4:\x80\x12\xEDw\x1C\x80\x87U0\x95\a.\x95\xD6\x85\x86\xF2\xC0\x03\xE0\xC3\xD8@\xC5\x95\xC3eVcp\x03>\x040* }\x9Cp\xE1\x0E\xF9\xC1g\x9E\xB2\x01K\r\xB2\xEF\x96n\xC7\x19\x8CV\xF8C\xB8\x83\xE1=\xAFzP\x96\xA2\x94p\xC6\x93Sd\xB0\xEB\xE50\xDF\x94Ok\x81\"ic\xCA D\x0F;w\x8B\x9A\x18\x95.\x8E\xF5\x14\xDB\x97h\t\xB3\xEA\xB3\x18\xD5\xC9\xC4\a\xCD\\k\xEF,\xE6*\xAD\xAE\xE4F5\xF9\x05\xB9\xE9q\xBC$\xE9\x8B\x1Df\xFD\xCA\x14\x01\xE8\xE1.\xA53\xF7R\xA8\xA9s\xC8\xF4H\x98\xC2\xC72#~\x95p@O\x8E\x11i|\x1D.R\xB8\xC2\xD6\xF9^}p\x0FO\xCB\xAF\x16H~F)\x9E+\x83|\x8B\x0EQZ\xD7\x19\x83\xA3W\x87 m\xB8\x1F\x01\xFE\xD3c\xBF|\xE0\xEF>\x98a2\x82W\x82\x9BF0\xCDu\x90\xC8\xAEygR\xE8\b\xB1\x06\xFB\eJ\xC6T\xD5\v\xAB`\xEE\x06\xCDl\xC4\xCA\f.\xF8\x16\xAE\x91\xB0\xE7\xB4\x8E\x9D\xDC\\W\x16\xC4\xADV*B\xD7\xCA\xED\vh\x80\nE\xCA\xC74\xA211\x1F&\x1At\xA1\x12v\xF2by.\x12\x90\x19{@\xC6iJf\xB8j\xF032\xA2S\xF3:\x9A\xD3\xEF.\x93\xDFd\xDAA\x0E\xD3\x0F\xA1\x81\xED\x9B|l\xB3=\a\xEB:\x02\xA5\xD8\x01\x83\\\x16MyA1\xCE\x87\xF1\xA3\xC3P\xE1\xB3[;\xA0\x9BS\xFA=\x1ES\xB5$\x85/\xDE\xD27\x13\xF2\xFB&DD\x1E\xE9\xD9\x1E\x8F\x03h/\xA1\t#\xD5\a\x19h>%1\xB7n\x02R\xBF\xA7X6\xDD\x1Ee\xEF\xACMw5V\xC4\xC2\x94\xC5\xFAQ\x9A\x89\x80\xA8\b\x02\x16\x1E\x1FR\x94K|\x93\xB4v\xA0\xD6\xFA\x91\xB6}b\x98\xA6t\xB6\x81\xC515\v\x87\xFD\xF2\xEC\x94\xD03\ac\xA1r\xEC\xB1\x96\x17\xAAV\rd\xAB\x11 \xF3\xC4E\xB8\xC3\xBC\xD0)AcK\xB1\x91\xFF\x97\xA4\xB3\x81)\f\n\xB7\xC5\x91\n\xDDO\xDEk\xBCu\x8E\xE1\v\xE6\x8B~\x02\x12l[\xC73C\xC8\xDB@C\xC1\xCB[\xB8\xF8\xB2\xFF\xD6\xFB}\xC4\xF7\x11\xFF\xCB\x11\xFF\x002\x958\xDE",
21
+ "x\x9C\xEDZ\xCBu\xE30\f\xBCo\v\xB9l\t\x96DE\xE2K)\xA9\xC1=l\x15[\xE0V\xB2rlR\x968\x83\x0F)\xBD\xE4\xE0\xBC\x9CL\x8A\x1F`0\x18@z\xFB\x1C\xE2G\x88\xD7\xDF\x87\xFF\xBD}\x86\xAF\x95\x7F\xBD\xBD\xB6xmA\xE7\xDF\xA7\xCF\x1F\xE3G7\x0FW\xF4\xF34]\xE1\xF4\xD0\xE1\xDFo\xF3\xB7?;\xEF\xEB\xBA\x8A~\x8F\xC7o\x8F\xC1a\xBC\xFE\xFB\xFBg?\x1C:qx\x187\xC3\xE5\xFF\xFE\x81ib\xEB\xC5u\xA0\xC1J\x1E\x139MQ\xDE\x95\xCEX\fM\xEE\x1E\xD1\xC0m\xE3\xFD@:\xBCen\xF6\x14\x1C\xC8\xA7Z\xF0\xA7_\xCB\xEF\xB0\x16X;\xDCE\xBDe\xBA\x96\xD1\x1D\xF73\x80K\xF6 t\xFA\xC7\t\x022\xDC\xFC\b\x9C\x10\xAE(\x18\x1E\xEB\xCE\x1D\xB2\x9D\x82+\xD7]\xCEw\x84n\xE9L\"\v3\xC232\xDB!\xC3\x86P\x1A\x16o\xDBMd\x19j|\xE4\xEA\xBD5\xC0\x13#\xC4\xCCn\xF9\xC7L\xE1f\xEB\x81\x83\x1FP\xDB\xE5\xF7\v\xC87\xEE\xAC\x11|\x04J\xAAX\x88\xA7\xA1\x9C\xDB\n\x1F\xC4\xC2\xFC\xC9\x847\x17\v\xC0\xB2\xA2\x8EL\x99;\x1C\x06\x8E\xF55\xD7\x9B\x81\xB3\xC2M\a\xA8\x82\x7F\x1D\xF7r\xD0\xDD\x7F\x14n)\x9A`k\\2x;\x10\xDF\x94\x8FV<\x15\xD6\xD09\xCF\xD3\xD6|qd\x9CR}\x91#\xB4 \xF1cdD)\xB2\x01\xBA\xC6\x88O7'\xF1C\x82\x83\xE4F\xEB\xF2_\xA9^\xDC\xF7\x04\xF4\x88P\xF7CK\x8C=\x8A;o^\xAA9\x116\x83\xE0\xB7\x12=}\xF7\x0E\x7F\xBEDX\x8A\x81\xE9N\xB0\xE9\xCE\xF5\x13`\x16\x94\x85\xE7I\f\xB7\x16;r\x9C?\x97t4\x9C\x8BJ\xA78\x879\xC6\x90\xBF\xBF%\xC6\xB2\x7F\x8BG1m,hJp\x9B\xC1r\xFD\xA5O\xC3\xFDF\xB2\x16\xF3\xE2f^%l\x8D\"\xC7M\x11Y\\\x96\vc\xEC\xD5%!\x92\x0E\x94$bIAJ\x02\xF3\x95P\x05\x04\bx\xA9\xF31\x042\x92\b\xF4\xA8OD\xE5\xE3\xA7\xE6LE4\x06*\x9C\r\xBC\x1CY\xAD\x05\xE6\xEE\xFA\f\x84\xAC\xE8\f\xDC\x93\x91Z/&\xBF\xBFk~_b\xD6\x04\v>\x03\xAF\x9F8\xA1\aR\x11i\eY\x98[h\x01\x92%\xE4\xF3:\x8C \x16\x00>\x8F\t\x9A\xE3\x05\x9E\xE7b\e\xC6IHy:\xEF\x1D\t\a\x1A\x99\xAC\xB9\xD5\xB8&`o\xDB\xC7\x8F\xC4\x95\x94\xF6Pfr\fU\x86\x8E\xA6\x8E'YK\xF2\xDE\a@\x9D\x9E\xEEW\xEBD\x84\x84(\xE2+\x0F+\xE8\x8C8\x05_0\xDB|\xE1R\xAFq\x0EbR\xDC\xC1\xF12\xE9I`\x84\xBC\xE7\x91\x95\x0EBS\x10e\x05\x94\xCCHf\xC4\xC0\xFC\x16\x03\xBB\x8C\xCETqE\x84\x97\xC0|J\r\xDD\xBA[\xCF\xE4\xC4\xD4)\xA8\x927\xD2\xDC\x7F\x00q\xF0\xC4Dp\xEF~?\xA2\x17{\xA8w\xE3y\x9F\xFA\x93\x9C\x91\xCD\t\x93\xCA\xD1\xCE\xE0\xF5\xB2\xD7\x19\xBC\x8A\xA9\b\x8C\xA4\t{X+\xFE\x10W\xAD\x9A\x8B\xE6\xC4z\xBD\xC7\xC5d\\w-K\x14K\xF1\x98\xDD\xD5\xF4V\x16\x03\x06\xBD\xECu\x06c\\+\xCD\x96\x18-\xAA\x93\xB8\"\x02\x97vN8@<\xC8Q9C\x93Z\x13i-P\x96\x01(\x85\xF1[\x96\x99|<\xB2[E\xD9\xBB\xF9\xE4>y\x96\xBA\x02*_\xD8[!\xB4\xAE-\x9A`;\xDC\xB1\x1E\xD9\x05\xBD\bt\x83\x0E\xA7o\x19v\x98\x9F\xC2\x13\x10\xFC\xF4e\x05\xED}\xD8\xBF\x80r:\xEB\xD3\x15i2\x89V+I`D\xF2\xBE[d\x03\xD6\xC6\x8C\xA5\x97\xEB\x87\xA7\xED]\xBB\x06N\xC8\x8BI\xEA\x17@ \xA2\x04\xD5\x06;D\xE3\xE4\xD3F\xA4\xA1\x8A\x8EJSN\xA0,I\x82f@\a\x9FFa\xB0\xEB:2\xFA\xD8n \x9D\x0E\xC3kKC\x97\xD0\xC4\x98v\xAEl\x80\x15A\xD7\xCC\x14N\eE\xCC\xD3Q\x14\x01\x1E\x05\xD2&#dB\x85\xE90<c@\x90\xE1\tJ\xC5*8\xD4\x84\xBE\xBEUoMl\x01l\x10\x87\xA7+\x04\xD6w\xF3\x82\xEE\xEB'\x8Eh!\t\r\"l\x90|\x8B\x80\xF0%.A\x0EW\xF1f\xD2\xA8\xC8\xEC\x15b;\xEEpU\xDE\xD4\x04\xAB%\x99\x91|\xB2M\xC8\xC7\x85?5\x954f\xAE\xBC\xAA\x86Xd\x9B4(\xD2!~\x87>\x10\x855\xB1\x92\xB7\xA3\n:\x11\x8E\xB0\x18V\xB7h\xC9\"\x05\xC7\x15\xC2\xBC\xA2\xA9\r\x90\x9C\x83\xAD\x1D\x10{\x84 3qwp\x01\xB3\xC5\x17\xA9\xD7MB\xA6\xB1\x17\xB3\xD3\x02\xD8\xA5\x8D\xD5,\xC5\x16\x89\x1A\x83\x0E\xA8\x89\xA7\xA3B\x86\xA9.t\xAD\x8C&\xBD\xEC\xD8%\a\x00\xEE\xF4\xE0R\x06\xA1\xF5\xD8\x87U\xBB\xE9h\x1F\xBB\x8AE!\xE8U\xD0\xC0\xE2,\xEA\xEA#\xB3\xA3_\f\xE9h\x8A?4.\xFD\xCBd\x05W\x1C\x02\x1F:Y\xCD\x1F\x82\x9A\xFC\xC6n\x12\x9A\x053\e\xB06\vD\xC3\xA9\xCB\xCCbu\x80\xAAG\x8E\xCF\x06\x14\x13\xF3\x984\x82\x9Cu\x8Cu\x92A\x00\x9Az\xBB\xFE\x05Pw\x8F\t\tTW\xCA\n\xCD\x82\xE5%\x1C<\xFD\x90z\xB7\xC38<\xDA\xEFJ3\x05\xEBb\xCCu\xBF\xCD\xB5\xFDh\xA9\x9DZ<\x84\xA1S\xF3\xE1C\xA5\xEB\xCC1\xCB\x14E\xBDO\xB7e\x86h\\\xB5\xB6\x95\\\x80O\x16E\x17\xF02\xC0\xFC\xE7q\x82\xC3\x0F4\xB8v\x85\xCDa\xDA\xEF\xA4\xFB\xD6\xFC\xBD\xB6xmq\xCE\x16\xFF\x01\x82\x9Bki",
22
+ "x\x9C\xEDZ\xC9q\xDC0\x10\xFC;\x85\xFD8\x84\xE5%\x12\xA5P\x14\x83rp\x14\x0E\xD0\x91x\xA9%\x01\x12\xE8\x9E\x03$\xAD*Y*\xBD\b\x10\xC7LwO\x03\xDC\xDB[\x17^\xFB\xF0\xFE\xF3\xF4\xBF\xDB[\xFF1\xF2\x8F\xDB\xF7\x14\xDFS|\xB1)\xD6~\xCFn\xD3\xEB\xF0\xDAL\xDD;z\xDC\r\xBB\xC7K\xD7\xD4\xF8\xE7\xF7\xAF\xBCy\x1C\xC5\xE6\xBE\x11\x9B\xBB\xE1\xC8\xDB\xCA\xDC|\xE5\xEB~\xFB\x06\x86a\n\xF9\xE3}l\xC1+C\xF1\xCA\xFCxj\xCAx\xB6\xCB\xAAz\xB4\xE6i\xD9p\xDF\xCF\x8D\xDB\xFF|\x98!\x90a\xF0\xD4\n\x04mP\xD2\x81dAL\x96s\xA9\xC78\x8A\x03<\xF2D@\x13\x84\x91\xE1Ki\xCCNl~ \xA6jK1&\xC5\x96\xF6\xE1\xD6\xA1%g\xFF\xF9p\v\xA2\xBC\xB174Nh\x97\xEB\xB0\xF3\x82p+z>5\xF89\xEB\xAF\xCC\".\xB073\x8B\xC5\xB3\x18W\xE4\x8D\x895F\xD2\x1C\x13J\x8513\xFA\xF2p>\x17\fV\xD7\x8CL\xCA\x8C\xCA\a\xF0:+5\xE0d\r\xF6c\"!\xF4\xAB\xD1\xFD\xD8\xB6=Fm\xF3\x02\x1F\xDFq\xEF\xFB\xE4\xE9]\xC6\x1F\x04\x14\xADvK\x1F\x99 (:4\xAEb\xA2O\xE1\xC5\xBE\x98\x9B$\xD6)\xD0&\x02\xEC\xCA\xB3(\x81\x06e\x85e@|\xBF\xA2\xA4/\xBD\x11u>\xF8\xEA\xEA]\xDB9\xE2\xB1\xB2\xE6H\x88\xFD\x88\x89)q\x0FJ&Z\x95\x03\xB5\xF7vmnw\xD6\xAA\xE87\xED\xFA\x99h\xEB\xE1\xA7T\xA3\xC48\xC5\x10{jT\x15\x13c)\xAAb\"/d\xCB\x02\x88\xEE\x18\x14K\xC8\xDB^\xDB\x8D\xFFd%s\x05\xB4\xAC\xFC\x81\x84*\xC8\xA1\xAE\x9B\xC2b,\xD3\xA04Fyq\x83\x8B&\xE12\x95W|v\xB5\x91\xB6\b\x88\xD7g\xF2\xF6\x12*k4\xB1h)\xE1i\x99l$,\xC1\t7P3\"\xD1\x0Ee\x8C}\xAEFf\e\x06Q*\xD8\xB0z\x10B\x85\x93\x8F\x81\x14\x7F\xFC\xCE!$\xD54\x98~aO\x82\xD0\x14\xF2`L\xEF\x9A\xAD\xB6\xB9\x9BE\x19\x06\xC8\x99\x1Ec~\x8A\x04!\xBF\x16\x13$g\xAE\xF6\x84\xCE\x95\xC9\x97\xAA\xC9\xC3DNC\xE0>\xC4;Dc\xA0\x85j\x7F\xC1\xC1\xB3mA\xBA\\\xE1\x9C]\x9D\x12\xC8\xA9\"\xCE\xDC,*q\xB6\x86\xD9^\xB6\xBCu\xAF\xB8\xF42\xAE\xB8NK\xFC\xF6\xB8<\x1A\v\xAB\xF3\xCB\x03\x91\xD3kI\x0E\xE3x\x1D\xD1\x9F\xD4\xA9\xA8\x174\x8C\xC8?\x82S\\XA6\xE4e\xE2\xD9\xDC\xA7w\xB5*\x12\x12\\\xB9\t<&9\xE4\xA8\x0F\f\x9F;\xB9Q\x1FZdS\x0F\x8A\x0F\xE7\x10\x82\x06)\xE8/\x1A~<\xB7K^@\x19\xE14\xDC\xD7L\xE1\x8B\xFA`k\xC6`\x8C\x83\x87\xDCdbK\xF3\x89\x12\f\xE5#\xD8\x10F\x9AW\x90\x137\xDF\x96\x1C\xC8\x90Y%Z2p\x13&sVx4M\x86\x9ES\xB1\xAC\b<\x0E\xB1\x90\xC0\xC5\x91W\xFBA,z4\xE5\xEB\x91\x8E\xBDu\x99\xF8\x92\x7F\xC4\x17~M\x03?&Vx\xB5kJ\xA5A\xD3DT\xD1:\x17\xE0%E\x84\x05F\x8D\"k\xD3\xC8\x06'\xBA\xE5\xAB\x96\xE4\x96\x89\xD8&\xBFp=\xB0\xF0\x1C\xAAC\xBB[\xE7\xE9P\xE0\xBAn\xDB\xE8|y\x1C\xC8\xB4\x91\xC2hg\x05D\xD5\xFB\x95\x7Fp\x9C\xF0a\xB1c\x1Ad\xC1\xA2\xA2\x7Fip\x8CE\x8B\xB7\xB2x2\eF\xF7h\xF7;\xF4\x12\xAAc\xD2/\x01n\x10\xC89V1b;a\x884\xFD`c\xBAj\f\xAD:y\x18\x84\xDC\xC9M\xD0;)\x92\xC7A\x1A\x12\xFET\xF2\xCA\x97B\e\xCC\xB8\xAF)\xB4_\x7F\x8C\x8EO\xC3\xF9V\xF6\x05\xC5\x17\x00\x15\xE5D\xFB\x96g\xB1\xA6\vj\nu\xDA$\xE2\x12k\b\xE1\xA4\x15m,\bo\xC4\xD7\xED#\xBFd\xB2\v\xB5\x89ar\x91@\xFE\xE78\xF5f\xEC\xC8\xAC\xC2.\xC5\xEAm\x95\xCA@\x11\xFBh0\xC0?>\xEE\xB1\xB3$\xDD\xB3\xC1\x95%Y6d\x95(\xD2\xDC\xC8\xD1:\x87\xDF&W\xB3\x90\x84\xFB\xB2\x93)\xED\xA6^T\x1F\xC6\x05\xE4\xE0_ <\xF2K\x8C\xAC\xCEUUI\xF9,b\xE5\xB0Bb\xEC\xE3\x14\x1AC\x83\x97\xD1\xF8\xB0\x05<p\x9E\xD1\x9A\xF1\x0F8\xE4\xED\x89a\x91\xE3\xA5X\x91*\x95\x88\x873\xB7\xEC\xF5\xDE\x9F\fC\x0E\x8F\x879,5R+p\x84\xC2O\xDA\xDC=u\x95\xD9i\xF3E\x01\xF9t\x11\x8C\xDC\xB5}w@\xD8\xE0wn\x1C\xC9\xA8\x80\xA79]\xE5^\xB9\xC4\x82\x04\xBC\xDC\a\xF0\x1F\x9A\x83\xDE\r\xB8\x1E\e\xA4\xFA#;\xD5j\xD4o\v,9\xBA\tP\xB2T\r\n\xC9H\x18\xB9\x00Y\x0F\xBF\x16(\x7Fve2aK\x92\xE3jp\x16j\xED\xF8\xAD\xDE\xF6\xFA\xD3\x89\xBD\xBA\xDB*\xF5\xCF\x9DkI\xC6jm\xC0V\x04O\xAE\xB0\xE8\xF7[\x04\x9D\x8E\xDB\e\xE6\x94\xCB\xBC^\x94\x06\xB6\x00\xFF\xD1|m,\xDE\\\x96A\xCF-UgDw\xCA\xF5kD\xA1\x0E|\x85\x8C\xE2r\"W\"yg#O8\x17\x12\xBF\xCB\xB6{\x1A\x9ARt\t%\x7F,\x10\xABw\x10b&z\xD3\x93Sm/\x17\xD5Y\x16)\xCF\xEDQ\x8A\x90\x81a\x9BZf\xEF}\xD1\x19\xC5\x7F\xCF\xE0\xFE\xDD\xE1\xA1\x8Cc~\x8B\xAB>\xC0{Q[MC\xC8\xDF7\xEA,\xEE\xF91Eq\x8D<v\x18\xDE\x13\x97\xE3\xF9\xFB\x9E\xE2\xBF\x9C\xE2/\x1C\xDAvg",
23
+ "x\x9C\xEDZ\xD9\x95\xDB0\f\xFCO\v\xFB\x93\x12L\x8BZIoKI\r\xEE!U\xA4\xC0T\x12\xADl\x9D\x9C\xC1AR\xEB\xEC{\xF6\xA7`^\x98\x010\xA0\xF4\xF6\xAB\x19>\xE2p\xFBY\xFD\xF7\xF6+N3\xFFx{-\xF1Z\xE2\xA9K\xCC\x03\xEF\xE3\xFA\x8F\xF6#\xB4\xE3\xE8\xF4q\x1FvO\xA7\x7F^\x9B\xBB-\xC6\xDB\xDF?\xBF\x0F\xD6><\x8C-0\xC6V\x18\x19\xA3d\xCC\x1E)n(\x84\x8EX\xF1\xF9-N\xCE\x05\xE5\xB8\xB5v\xB0xr2r\xFB\xB8\x7Fl\x1C\x88\xAB\x86\xC7|\xE2\xAC#\x05\x04\x18\xF0\x9AQ8\xCD\x82\xD1\x11\xC0\\\x1421\xC8\xE224j\xA7=\xBA\xFF\xBE\xC9\xF4\xE4\xD7\xF0\x0E\x1F_\xF0\xBF/\xD7\e\nn\xF0\xF7\xE1\x96\x1C\x97\xD1B<\x8C\x18{K\xAAH(\xA1\x82bB\x10\xA4\xB1\xBEA\x8E\t1a\xD0\xF4\xB8iod\x9E\xAE\x83\x03\xD2\xE97;\x03\xFF\xBF6I\xFE|\x0Eq\xEE4\xE8W\x9E\xA4\xD3\x8FOwf\x96\x05F6\xB1i0\xB1\xE68\x92\x13\x83\x98\xF6Az.\xE6\x0F\xE1\xC3\x91\xC3]\xB7\x1A\x01\xC5\x9Bvg\x96\xFE\x11\xD1\xF9W\xF3H\xB9\xB2\t\xE8\x0E>\x8F\x80\x89C=\x11:^\xF8iQ\xD1+\xB4\xA7\xCC\x1Ei\x17\xDEq~\xA2\xBC\x15\xFF\xDA\x9B\xA8+\xD7\xD1'QWOW\x0F\xB6x\x88\x9BA:\x89R\x16RQ\xF0\x1F~\xE3\xCA\xD3$\x894\x15\x031\xE59\xD6\xC7G\x99\xA8\xE1\x82#\x15P\x19\xAD:\xD7t\xCB6'\xA7\xA1\xDDL\xDAW\x86\xB0\x90\x9C5YxO\x8E\xE2i1\x9Dt!\x97\x15\xC5\xA2l\xD5\xC9\xBA\x1FZ+\x9B\xC20\xA8\xDD\x19p\xB6 \x9D\xA0$lK>w\xC9\x0F\xA4}TRg\xD0\xDAVt\xAD\xD4\xB5C\x1Ew\xC9-g\x8A<\xE0\v\x92\a\xCF\x82\xEF\xB6jnnh\x9E\x04p\x92\xBAd\x80?\xCB`Q\x97\x95\x99\x11\xD2u%\xB7}\xD7`v\x03\x8D\xC4q\r\x06 ]\xC6\x89\xA1gW\r ]\x1E\xDFUG^\xBC]\x89\x00\x92\xC5\nG\x17M\x90\x98;\x8D\e\xE4\x1A\xC4F\x19\xBDE\xF4S%\xC9\xF5\x84I.2MO\xFBF`\xA3Y\xB69\xA2\xF9\xD8 \x99\xA2\xD98\x9A3\x11\xC4\x81\xAFh\x18;D\x7F\x1E\xB2\x94\x1C\x9DR^V\xC9t\xCB\xB8\x10\xB0\x97J=\xB1\x00\x12\xA5\x19nX\xAB\xCF\xF1\xF9\xB4\x91d\xD6>_\x1E\x1C\xB2\n\xE9\xF1\xFD\x90a\xD0\xCE\x83\x009\xB0K\e\xE2\xEE\xB1J\x83\xAE\xE3\x9BfkL\xED\xE2\xE0\xE5\xC5Hg\xD36k\xFC\x94\xA3f\x90\x95\xFF'h\xCC\x87X\xF0\xCD\xB86(\xB6\x12\xF0\xA0\xD3\xC4)6\xCB\x93\xDB\xF7\x92,y\x1EH\xCB\x85\xC1\xE9 m3S>8\xCCH*\x998s\xA7Iu{\xD48\x10\xFD\xAEX\x9Ar\xA4\rIh\x1CX\xFC\xCCP\xE1\xB03\xDD \x12U\xF1PGF\x91\x95\xA5\xC1l\x80g\xA8\xE3aV\xA8-Rw\xE3S\xD1\xCCGc\xEA\x9F\xCA-\x94$\xC0\x97\x10!\x18\xE8#f\x89\xA4\xBC2jie\x97p\xA1\xF70\xA9@W\xC3\n\a\x95#t\xBDJ6\x85L\xB8\xA3j\xCDw\xF9E/\xF9\x86\xD5f\xE8:=\xB9K\xD6w\"\xBF\x06\x81_\xE2\xE5\x9D\xABS4\xB7\x05>:\x18\x18Q\x96|H\xFE1\x92\xC5\xF7J\x83\xD2\x93Oc\xAB\xB0\x82|Y\xB4_~f\xA2\xFA\xA4\xFA+#\x8E\x15L\xECq>7.\xBF\xBC\xCC\x10\x86S\xBCX\xD5\x00\x10\x8Ck\xE1\xE7\x86\x0F\x97|\x99\xC0\x8Fgv&\xA8\x87(\x8A-\x8B&\xD0\xA0\x0E\n\xD4\xC7\x01=\xDB\x87~\xD3\"~\x9C\x01\x87\xF2\x8F.\xEA\n'\xC5I\x8BY\x99<\x92~E\xF6r\x01\xFB\x8DzZTJb'FcfI\x9C\xD5?+\xCC%\xBE\x0E\x8C\xC3\xED\x03\xFCF\xCD0A\x8D\x90\x94G\x7F\x9A\xE18\xD1Q\x94\x99\x97\xF5\xC4:\xF3Mnv\xF1_\t\xDE\xAD\x9B\xAB\xCB\x15N\x0F\xE3\xAE KH\x04\x91\v,K\xF3\xCC\x82\xAF\xF3\x88eK\xE8a&\xCB$\xC5\xBC\x81\xBD\x85$\xE4\x14\xC1\x82\xF6\xB1;\xC2W\x04\x835\xAC\xB3J\x90B\xC6C\xCE\xD0\x9Ch+\xE6\xF9\xF7:3\xAB\xD9\xD5v\x11\t\xAB\xE1)\xF4#x\xA9\xD9\xC9W-\xFD/Y\xADH\x92e\xCB\t\x7F\x85Hr\xD3\xB0\xA6\xA5<ZHr\xE14Z(4\xA1\xEB\x9F%t$6\x1A\e\x9F\xAF\xE9T*\b3\x13\x02\xB0\e\xDA\xEE\xACf\x1D\xDC\xF9\xEA\xE8\x8Eu\x10\x8Cq\xE0\xF6\xD0ZR\x9E|\x91\xA4\xBC\xB1\xF0}?T\x86\x8C\x1D\e\xDA7l\xC8\xEF\xED*\x18\x11=\xDE\x12\a\xDB_)\x98|\x96\xEDd\xFB\xEF\xB5\xC4k\x89s\x96\xF8\a\xAAU-\xB8",
24
+ "x\x9C\xED[\xDB\x91\xDB0\f\xFCO\v\xF7\x93\x12,\x8B2\xA5\xB9R\xAE\x06\xF7\x90*R`*\x89e\x99\x94e.\x80\x05)\xFB\x92\x19{\xEE##\x8A\"\t\xEC.\x1ER>\xBE\xFA\xE93L\xE7\x9F\xBB\xFF>\xBE\xC2\xF5\xC9?>\xDEK\xBC\x97\xD0'-s\xC6\xCF\xE1\xB3\e.3\xC1\xE5.\xA2\xCBcw\x16\x1ES\xDEO\x1F\xDA\x7F\x12\xFA\x18\xF3~\xEF\xAE.\x97\x96\xA10\x9C\xFF\xFC\xFE\xF50\x18\x86\xDB`\xD0\x06\xE1\xCC@\f^\xB6s\x19\xF4N\xD6\xF6\x94O\x83\x06\xBBc/<\xB7\xD5kn\x97\xD9k\x9B\xA7\xC9F\xD2\x06\x17\v\x83\xC7N\xC8>\xC3T\x0E\xA4\xE30\xF7\xDE\xCE\x81\a\x92\xDFfh\xEE\xE9\xF2\xEBN\xE0YY\xF7y\xBD\xB7\xA7\xF3\xD0q\xD3\xCC\xF9\xA9\xE8D\xE5\xFAG\xB0\xFEqv\xC4\xF5\x1F\x87\x11,r<\xA4\xB9\x87#\x1C\x1E\xF5a}vw\x92\x86\xF3\x8EO\x80j4\x96\x18u\xC1hIV\xA9EK\x03X\xF4\xF5mNkz\xABpWv\x1D2\xED\xC5c\e\xD7\xDD\xFF\xF1O\xBAY\x86\x14\x9Et\xEC\x12\xF0\e:\x1C\xFB\xEFu\xD9\xD3\x94\x8B zf\x95\xE1\xB3V\x97\xDA\xC4=\x14\nDf6O\x96Y\xB7\x14\xB4\xF9\xC6\xE1\x9C\xC4L\xC1\xDCx\xD2\xB8*{\xB3\xC3w\x17\xEF:\f\xD8\x00\x00.\x8F0\xF1\xEE\xFA\xA1\x8C\x16c\xBF\x0E\n\x18O\xD3\xC7\x1E\x1F\x80\xCE\xA4C\xB9~C&\xCD\x843Y\x1C\xA5\x94\r\xAA\x19!\"\xDF\x01\xB9hA\x0E\xE6\v\xC8a\xE0N\x01\xB3iAh\xA2\xAD^\xDA\x13\xF3\xE5\x11'hxSG\x01\x87>\xE6\xD8\x00G\xFCx\x1C\xEE\a@\x1F\xF1\xA6\x18\x89\x9BF!b\xD34\x03\x05k\x0E\xC7{\xF3l\xD8\xBBd\xC2\x1E\xDA\xC6\x04\x99\x84'\x9De8\xA7\x7F\x12\t\x99\xD9e\x92Q\xAB \xCB\xD1\xD5;\x0EOP(\xBD\xE0\xA9\xACh|L&\x89\\2\xD5\xA0\xE9\xE3p\x04u\x95L\xCD9\xEB\xE2)\x8B\x92\xB4=8\xEBns\xCC\x8F\xA5;\x14\x96\xF2\xDEsD\xCF\xF2\xAAAk\xB0\xCA\xB7\xAA~\xC6\x8A\x9C\xC0\x90#\x89\xF3\xAB\xA6P\x16\xA7\xE9qud\xE86<0h\xC2s\xA4\xA4\xC2\x06\xC4\"\xDAV\x9CJ\xA1\xB1\r\xCD\x89u\x8D\x986\x90mT\xA27\x9AG\x90\x80w7\x7F\xF4\x8Fa\x7F\x99p?\x88\x8E \xCD\xC6+b'\xADQ\x8AB,\x1F\x04\x1C*\xAF\x82\xB8H\xCA\xB2\xD0C\xBF\xDAR\x9F\xB3:!\xD9\x92P,t3\x9A\x9B\xFA:\x01\x94\xE5u\xB8\"\xDB\r\xE9\xE8\xB0bI.\x83h\xEC\xFB\a4\xC2\xDD\xAA\x8FP\x96\x87\x96_\xB5\xD0*\xB0D1=I\xD8v\xC3P\xCE)\x02R\x1FKKe%\xBE\x83w\xC9\e2\xCB\xD6\x85q\x03J\xE7d\xAB\xD5\xAE\xFF\x04\xB4\bp\xEC58\xF2X\x95\x06\x91\xE1\xD6\x1DA\xA7\xCE\x00\xE6z\xC6k\xF6K6\x18\x99\f\xA3\x1D\xB4#8\xC0K\xD0\x1C:\x98\xFA\xC2\xB6Re\xC9\xC8\b`R\x94\x88\x8EQ\x0F\x9B\x98s\r\xA8{r\xAE\x01\xE2\xE5AE\x13SI\xCA\xC3\xFA{-\x8E\xD2:\xE0`\xB8\x16\x11\xB7\x03\x14]h\xBC^\x8D\xB1\xF1\x01\x06\x19\xD6\x04\xC5\xFF\xFA\x05\x15\x8De=\xBB\xCD\f=(\xCE@e\x9B\xF4\xBEw_\xDEbL/\x96X\tt6\xCAu!\fR\xE3*\xE3\xD5h \xBC2\x1D\xE0\x95/9\xBEB\xF8&e\xA6\x12\x11\xE5z\xA9\xDE\xCF\x94\xAB}\xFEv\xD4\v\x85g-'\xC8\xF9/\xC2H}\xF8\xC9\x95`\x19\x7F\xF4-\x92\xC6,\x0E\x92%\xB4\x908\xD6\xA6\x95\x1A\xF9:}t\xFA\x9A\xB5\xE4\xBFQF\x90{K\xB0z\xA1h\xECn\xDF\xB5\xDAo\xA5\xBF\xD4\xF5\xA2\xB6\x91\xA9\x0F3D\xD5\\T\xC1\x82\v\xEE\xBA\x0EQ\x8B\v\x10\x02A{{\xCA\xE6x\xEC\xF1N\xEB\x00\xD8\x9A\x88\xFFf!B\xDEMO\xA6l\x04\xA6N\xC5\xD4\xE5rh\xF8\x92K/5\x12V\xFC\x8C]\xB1\x02\x98\x89\x84\x96A\xBF\x06\x15\xDB^7\x1CHHY\x00\x90\xE6\xE2\xE8\x9EgO\xF6\x8B\xD5-\xDB\x1D\xAF|5\xD1\x90u\x19Z\x93\a\xD1\x88?\xF3\x98\xEFVdh\n\xAA5\rc\xE7\xE1\x00\xFA\xDE\xCC\x03\xE4\xE5}$\xE0\xF4R\x85y1uG<o%\xAE\x80\x1E\xB2\xA5\xD7\x90\xE2\xC3\xB1!\xDDMs\n\xDCd\x03}\x8C+f)T\xD9\xF6\xD8\xDD\xA0\xBE\xD9\xDF\xB0\x03C\xE8\xF20k\x9F\x06\xF2N\x8F\xEF\xE2\x04\xF2\xE6V\xB1\xBF\xDAIYM{,\xAA\xA2n\xC0\xB2\xD3\x18\x8C\xD4\xA4\a\x05#\xF4\xD5\xC1\x96\xAF\xB5-2\xF6\x016\xC3\x85\xA4f\xCF\xD8-K\xA0\x84\xE4Q2\xDC\xFD$\xF8\xC7'\x10\x02\xED\xAC\xC7`\xEEH\x15\xAC?\xC0\x893[\xE3\e\x94uF\x8B\x9CB\x97\xA3\x85X\x1A\x94\xA9O\xDA\xB0]G\xEC \xB5+.!w&\xB3\xB8\xC5u\x18\xDA<\xFE\xEFU$\x13\xE4\x94\xB2C\x1F\tj\x9F\"P\xAD)\\\xEB{\xBF\xB3\xA0\xA0(\x9B\xA0\x8D\xBF\xB5H\x10\x86;\x0E\xE8v@n\x8BFjJ`\xF8\x86\xCE\xC8\xF5/\v\xD4\x16\x06#gB2\x1F\xB5\xD1a\xB3\xAAwz}\x13Q/\xC2\xEFR\x18a\xCF\xAE\xD6\x18\xC7\x17/eLDN\xC1\xC2\x14\x19\x96\xC1\x9E\x19\x9B$\x0F\xA9/\xF1\xD5\x16\x891\xDAE|\b\xFD\x9B\x858\xC0\xD3\xAB\x8E\xF18\xB1\xFE\xF7^\xE2\xBD\xC4\x7F\xBB\xC4_\x7F.\xA2\xDD",
25
+ "x\x9C\xED\x9B\xDD\x95\x9B0\x10\x85\xDF\xD3\xC2\xBE\xA4\x040\xB0BgK\xD9\x1A\xDCC\xAAH\x81\xA9$\xD8F2\xA0{\xE7\a\x81\xF7\xE4d\xF3\x94\x83\x00Is\xBF\xF9\xD1\x98}\xFB\xEC\xE2G\x1F\xAF?\x0F\xFF\xF7\xF6\xD9\xDF\xDF\xFC\xE3\xED{\x8A\xEF)^?E\xBA\xFBq\xF3\xF81|\xB4\xC3\xF4Hyyl\xD1\xD5~X]\xBD?\x7F\xE9\xF2\xD8\x9F\xDF\xBF\xB6\xA3m\x98G\xFB\xDB(\xB8\x81>\x8E\xA7L\xABn\xC3\xF6\xB2\xCF\xB8\x1E\xB3\xE9\xD3\xAF\xB7\x8A\f\xD1\x0F\xD2`o\x18\x9C\x14\xE1\x83\xB7\x05\t\xA3\x93\xC6|Id\xD4\xF4fqQ\x0F\xCD7\x83c+\fNK\x91i\x00\xB4:tw\x88\xCE\x16\x867<\b{\x12\xAD\x915\x80V\xBE#\xB5\x15\xE7\xB1\xF0\xD24\x97\xD2%\x1E\x97\xDF\xAF[\x84\xE3\xB5\xDC \x9A\xEA$\xA5\x8F\xF0a\xBB\x94:Du\x12\xA6m\x96\x12Z\x95\x9Ae\x9A\a\x9B\v\x98d\xBA\xBA\x1A\x86\xB1\xF4\xD2D\xF1\x1D)@M\xF7\xC1\x95n\xD7t\xDBY$a{\x88\x8CL\xD9\xF6w\x1CM\xF0\x1A$u\x89\xBF\xCA6\xD3\x7F\xDC\xAE*\x05\xE9\xE7\x8Bu\n\xD6rO\xF6\xB0\xCAMu\xE7\xEC,\x80@Vo\b\x9FX\xA3\xC9fT#\xFB[\x9A\x11X\xA3\x91\xE1\x97\xB9\xB6\xF9\xC6X3\x85\xC1\xC2\xD6\xC4\xB4\x1F^\xE4s\xCB\xD8\xE5\x0F\xD1\xB9f)\x1E\xC5\xD4\xDE(G+xZ\x17\xE6\xB1\x85B\xF8\xE9B\xC0\xBD/P\xA6\xD7\x9C\xCD\xB8\xBA#\xF9\xD9Df;^Z4\xAD\xCF0^3&<\xC9\xFE\xD9XC\xB06\xABj\x92\xCD.\x18\xB7-\xF4\xD5\x8A\xA2\xF2\xF55\x17>\xD6\xE1\xAA\x1AA*\xA4|*\xB9]\xEFQ\x05\xA1\xCE\x7FGO\xAAu\xCE\x82\xB6[\xD81\xDB\xBB\xC8\xA4\xB7\xCBa\xB8\xC2L\nn\a\xD5\xDA\x93h\xCD]\x98\x7F\xA7\x1AfJ\xC7je\xE7E\x1F\xB2\xCF\x19?\xEB@e+[M\xE8W\xB3\fU2a4C\x91v\x8A,\x18f;t\xA8\xCE\xED\xBA\xE5 \x84!\xB1\a\x9F\xCF\xE2\x05pL\x17\xD1\xAC\f\xD5\x06\xE9|\\\xEA\xB1p\xB5_\xB9{\xE3>5\xE4\xA3c\xD1\x81\x11VM\x84\xC6\xC0#\xA5\xA1\xDE\xE95/Rt<\\Q\xA0\xE4\b\xA3l\e\x02l\x88X\xFB|b\x03\xCB\xC4\x02\fyB\xAF\xC7\x16Q3\b\x83\xE4\xF2\x85\xBE%%l\x10\t\xBDLQ(\xDC\x82\xF3\x02).\xDE=<I\x1569\x80{\x91\xD2y\x9A\xAF\xCD\x83\x1Dl\vt\xC3j\x18\xF7R\xF2M=\x04#O1\xDA\xDA6\xC6F\xF4k\xA2\x15\"u\xCAXR\xEA\x92i\x8C\xBE8\x95;\v\xA6>\x8B\xB7\xE6k\xEC.+\xE3V\x8D\x15\xBDc\x84\x8E\x19\x84`\xF3\x8F\x85A)\x14\x1E\xCF\x97\xF7T\xE4\xA1\x80B\x10`-\xABC\xA0E\x0E\x9B\xD2\xF2/|\x99\x03qP*\xD5\x8Fl\xB9\xCF\xF1i\aB\xAF\fR\xCA\nLp\xE8\xEA\xF7i\x03EZ\xC1\xB1RT\xD2Q\xE4j\x0F\v\xE7\t\xD2\x86|\x95nZ\x11|\x84nY\x15\x93S\xD3\xA7\x8B\xE1\xF8t\xF5\xB2\xB85gr\xB5\bp8\xEDK\"\xFF\x91\xB1?\x9F\x99}\xABp\xC7tdt\xAD\bT\xB8\bA\xE5\x02\xF5\x90,\x913\x01\xC3~\t\x14d\xB3.\xE3\xC5\xEE\x8D\xF4M\xAF4\xE4Di\xCD\xFE*O\x86\x01Wo\x8E\xD8\x8Fq\xE1\xE5e|\x0E\x90\x05W\x95\xA5\xFA\xC4N@8\x1Eb;$\xC1\xECl|\x89]\xB5\xDC\x91\xA3|\xE1>\xAE\x97\"\aG}K\x066\x80Iw(yJ\tW\xCA\xD3\x9Coy\xD9'%\xCF\xE0\xFB\"\x05\xBC!\xF6\x960K\xF4\nd\xDF\xCB\x00\xB5\xB3A#\x13k.x429\xA3\xD9\xF8\xC5Y\xE4\xB8\xD0a\xFE6\f\t\a\x9A;1M9l\x7F\x10\x99\xAF&\x1F\xE0\xE1Dx\a\x99\x19#\x93\xE3\x9A\xD8\xDD\xAB@\xA0d\x8B\xD8\xCF\x8E\xC0\x8E|\xF7\xA5~mr\xE7\xC7F\xE0\xA7v7\x89K_oD\x86\xFA\xB8eH\xA1\xAC\xE2\x05\x88@p\x0E\xA4\xA7 s\x81e\r'\x0E\x94J\x96\"a\xE9\x19hv\xD6N\xB5\x81\xE6\x14\x8Cb/b4\x06\x11\x922RQ\x8C\x1E\xEF\x17\xEF\x80\x19\xDF\xF1\x02\xEB\"\xD0&\xF7\xFE\xC4\xBE\xAA\xDE`\x94\xB4\x80}F\x90\x04l\xA3\xEE\xEC\xA9q\xD2\xC8}\x87\xBF\xC5\xC7\xD1\xD5\xEE\x06\x90w9\xF5~=\xEFy\x8A\x88\xD3*\xF8i\x80B\x9Cwlh\xC9\xD3{\xE7\xB5\xFA\xDF\x0E\x14\xD9\x1C\x84W\xCE\xA3\x7FP@\xEA\x0F\x98O\x84\x9F\b+\x9C\x8A\xD24\xE2\x86\xB1\x9Cb3l\xC6\x04\xBA\xE8\xBB\eS\x10\xAD\x1E\xC5\xBE\x0E(\x13oiB\xF6\bS\x19\xE2|\xFAX\xD8a\n\r\xE0/\x8FRM,\x7F\xA3\xC2N\xE3\x1D\xCC\e\x01\x86\xB8\x8E\x1C\xE2h6\xA9\xF0\x16\xCBk\xDD?\xB7\x1F\xE9L\xD9\x1Dp\xE4\xDB\x8D\x12\xCF\x12\xC0\xFA\xC7\xB9\x18\xEFd\x10\xEF>\xCB\x95\xD6* \xD8\xD9\xE9N\xAAg\xE4F\x98\xDCQ\x10O\x00\xF2\xA3d\xDA(\xF1\x8B\xDA\x1F\x02\x9Au\xE9\xE0\x84()\xE6\t\x1F\xDA\xC6\xA6\x1D\xB9\t\xAF\xCE\xFA-\x8Ev\xD6\xB0\x1EH\x95\xCA-\x82O\x94\xCF\xF8\xFB\xAF=\xEA\xCB'\x1C\xE5i\x92\xF1\xA8Q\xD3k\xC9iPc\x86\xDF\x97\x82\xB4\xB5\xE6\x1E\xDA\x9A\r*\xBA\xA3\x1A\xC1\xA5\xB8\xEFLe.Q\xFA\x85\xA1v\x9D\x13\f\xB5\xD1\xC2juG\x11^\xBER\xE6\xEAl\xEE3:\xB0{v6\xA9:\xF4\x17\x88g-\x7F\xC7\xBF\xEF)\xFE\xCB)\xFE\x02\xFB\xC0\xDC\x91",
26
+ "x\x9C\xED[\xD1u\xDB0\f\xFC\xEF\n\xF9\xE9\b\x92-E\xD2\xCB(\x99\xC1;t\x8A\x0E\xD8Ij\xC5&-\x89w\xC0A\x94\xF3\xFA\xD2\xE4\xE5K\x14I\x108\x1C\x0ET\xF2\xF2~\x9E\xDE\xBA\xE9\xF2\xF3\xF0\x9F\x97\xF7\xEEc\xE5\x1F/\xDF[|o\xF1\x05\xB7H\xEF\xDE^\x1D\xDF\xFA\xB7\xF6t\xBE\xA0\xC7\xEDp\xD9\xBE\x8EW.\xE7\x9E\xF0\x92\xA7yI\xE9m\xC7K\xEA\x81\xC9\xA9\x16\x8F?\x9E\xF5\xF7\xC1\xAE\xBF\xFC\xF9\xFDk3:\xB6\xF7\xC1n\x1E,\xC7\xBB~3\x0E\xDFZ\xAF\xB25\xA0\x1D\x88\x01w\xC3\xC6\xD6v\x10r\xF5kq\xCE\xAB\x9F\xEF\x83\xCD\b\xAC\xB8NI\xC3'4\xDCL\xF6\xF0i5\f\xBD\xB0]\x03\x191\xB0]\xC8\xC9l\xB4hH\x018\xE9\xA7\x12'4L%\x0E\xB6\x83\x9D5\xB3{`\x13#gb\xA0\x99\xB0\x17\xDB9\xD2h\x12[,\x19?\x1F\x9B\ex\x85\xA1q4t\xEE\x04\xFBb\xE6:\x16>UH\x00-\x10H\xDF\xB8b\x88\xA0\x93x\xF4\xD46|,\xCF\xE3\xFB\xA1\xC8.\f\xB6gG\xF31\xFB\xB0\x913E\xCA\x13-M2\xD5YX\xC7Y\xD2\e8\xFB`\xE9\xAD\x9Fn\xA6J$\x91\\\x15E\x95OHMa\xC2\xB4\xAE\x9C\x8E\xF9\xC1,\x88\xF1p\x10s\xB33T'\xB7=\x11\x0EE\xB5\x9A\x1F\x0F}!'\xC8\"%\xA4N\x8C\xCF\xAE\x95\xCC\xCEh\x97\x12rM,\x160\xD2%\x9A-\xAB\xEA\x11gQ\xB3zd\xF5Rr7\xF6\xE5\x03\xD0\n\xEB\x18\x9A\xC6C\xE2&\xB1\xEC\xDFj\xB5A\x8FyU\x97\"\x9EA\xB6\rwJ:o\x17\xB9=\\\x0EB3\xD2\xDAp~\x86\xC4\x00t\x1F\xE0\x90\x85S\xEA\n\x86\xCDC\xD5PO\x15\x00\v\x1A\xA9\x04`\x9D\x9C\xA1\xEE\xC7t}b\x95\x1D8\x1C\xC5R}\xDBH\xF9\xD5\x99\f\x83!!\x13;\x19A\x13\xEE\x9B\x96\xF9b\x10\x84\xE5\xD6\xD5\x18\x92\x96-\x06\t}\x10\xF6\x05\x056\xA4\x15\x1D(\x93\xD9\xAE\xF8`\x8E\x9C\xF1\x81\xECM\x00\x9B\xAB=\x1F-PUb\x93\x11&\xEDy\x92j\x90j\xDDk\x90\x00\xF8\x02[\xBF\xD6\x026\x8CX\x87M\xC3=\xE9\xA3\x9D%\x80.o\x1D8\xCCmG,w\xB4\xC0\x14\x87\xCB\x15~1\xFE\xCA\xF9'GS\fgyZ&Z\xC5\x80\x92\xFB&\xB1\xA5\xF6\xB3Z-\x1E!E\xD3\x9F\xD9\xC2\xA6y\x81;L\xD5\x1D\xB2\xD4\x88v\x9BA\x17\xC71\x9D5'\xD8?\x91\x9F\x9A\x81\xFB\xD1\x9B\xB4\x16v\xEC\xEE\xCB\xAE\x05\x85\xC7\xDC\e&\x13XA\x1C2q\xF4x\x9D\x8BQ$\x8F\xBC>\xD9\xC7\f\xC0\xB5\x15\xEC@\xFB\xA5\x1D\xD5\xC3\xF7+X\x7F\x00\xF7\xFBc\"\xA53D\xE40\xB0\xE1\xB4\xE8\b\x13\xEE\x9Fe\"\x10\xD2\xC5-\xCC\x91|\xBF\x0E7\xACW9\xA9\x18$\xE6\x8B\xA1\xDD$\xE7@\xC4\x8F\xA5\x83\x80\xFB\xD3\xD5\xB0\xF5\xC6\bye\x04J\xE0f\xED\x13X\xD7\xA2\x06\xD68G\xA0\xC4\x89w\xB2h#7\x12\xF4\x9E\xC4n3L*\xB2\xCC\xB1uc\x15Q\xD9\xE8\x13\xC1W\x8F.J\x10\xAE\xA6\xCF:\x95V\x1C\xF3\xC3\xE5\x93\xCA\x11q\xDE\x84\xAF\x9B\xFB\xE6B\x9C-\xF4\xE3\x1F\x825\x0E\xE6}5p\xA3\x90\x15\xBF\xC8\b[\xF3\xD8\x80\x8C\xB6\x91V]\xD4\x8CK&~\xF7\xBD\x83~\xA6\xEE\x11_\xE4\xDF\xE6>\f\xC3\xDAv\xD3j\x98Z<\x9D\x1F\xF0R\x1CU/\xF7%\xD1\xF9\xA9x\xE0\xDA\x87\x95\x17\xAD\xA3eN\xE7\xCB\x84\xF4\x0E\xE1\x8B[4[\x16V\x8E\x8E:\x84\xD1\xD9\"\xB0\xF8\r\x87,\xDD\x9E\x80,\xA4h\xD6\x98\xEA\xA0\x98\xDD@\xEE )\xAE*\x94\xCE\xD4 p\x1A+\xA4\xB0\x94o\x1A\r|\x82A\xEE\x80\x10\xA6;Z\x03)\xD4\x1D\x1C:(v\x12e\xC2E\xAE1\x877\xB3\xC9\x02\xD0\xAE\x99\xFD\xE5\x18\xB5\xA5\xDA\t|\xD0#35v\xD2\e\x131\x9FvP\xB8\x98Rg\xDC\x80\xCD8\x85\x18\xDC\xBC\x8F\x90\xEF\x9B\x89\x8D\xEDZs\x19\xBE\x8BI\x0FB^\xF5@\x17s\tpd\x02\xF5\xB8\xE9?\x04\xFF\xB8\x87\x96^\xBC\xD7\rH\xAD\xB7\xDA\x12m\xB9\xCCf-\x96\\^va%D\xF3\xEB\x98\xC4sz7\xA7\x1E:\xBB\x8C\xD0F\xCA\x1A\xA8%\xF4\xFD\x902\xE8sy\xC6IYQ\xD8\x1D\x94\xAC\xBBr\xF9Q\xED\xE0w\xB6\x89\xDE\xFE\x80[w\xF3\xBE\xA3\xB8n3\xF3/\x98\x82\xF6G\xB8\x05S\x84\x94S8sqy\x04x^\xCD\x963\xA3c\x7FN[]h\xFD\xE2T*\xBF\x94\xDB$\x01\x10\xF9\xEB \xAF\x012\xBEh\xB2\xA3\x8C\xB0\x8C\xBF\xE2\x93\x18,\xAF\b\xD59p\x17\n,\r}&\x12]\xA1\x86\xA9\xFA\x89:\x0E-\x10\x14V>y\xC3\xAEEa\xBA5\xB0\xA4\xB6\x9Bv2\xACeV\x83(\x87\x9Dt^\xB6\x98Z{R\xAD\xA3\x96x\xC8\x94R\x80\x06\xFB\x7F\xCC\x9BC\x90\xA9\xD9\x8F\x873\xF9\x14\xE4\x10\xCB$5\b\x8A\xF2U\xECvJ\xFFC8\x90\xBB\xC9j\xA5\xE4\bCL\b\xFA'\xA3\x1Ct\xDCIx\xB9\xE5\a=\xFE\xF1\xB16\xE7\xD6Y\x8FU\x95\nf/\xEA\xE2-\x9C/(BA\xAC,\xED\x87\xD5\xF5g\x11(DiU\x9F\xEC\xC0wG\x98\xD3\x00#\x9B\x03\xC2\xB1;Z\xFBrn\xDF\x7F\x9B\xCA\xA1r\xFA\x9C|,\xA9\xFAPbt\x96q\x8Cp4\xEA\x13\xDC\x17\xFC\xF9\xDE\xE2\xBF\xDC\xE2/\x85\x90\x1EB",
27
+ "x\x9C\xEDZ\xDDy\xDB0\f|\xEF\ny\xE9\b\xA2%F\xE2\x97Q2Cv\xE8\x14\x1D\xB0\x934\x89,\xEA\x87w\x00\b\xCAv\xFA5~4-\xFE\xE0\x0E\x87\x03\xE5\xA7\xD7>\xBD\f\xE9\xED\xE7\xE9\x9F\xA7\xD7\xE1s\xE6\x1FO\xDFK|/\xF1\xE8%\x96g\xE7G\xA7\x97\xF8r\t\xCFo\xE8\xEBn\x9E\xD7\xFE@\x18\x8F_\xEB;s\x1FE\xDF\xD6uO\xCBi.o\x7F~\xFF:\x0EwI\x1E\xBE\xEC\x86\xC5_\xA4\xEB/|\xD3\xC8\xFB\xB8\xF4\xBBU\xCE\x88\xBD7\xF0<\xC0\xC7\xAD\xD5F\xF0\x1D>\x12\x19p\xE8\x82\x9By3x\e`\x16\x84\x9F\xB2};l\xDB$\xAA\xC1\xC5\tK\x11\x88\xE7FTBG\xC3^\x9Er\x8CE\xE2\x85\x85\x17=\xDA\xC0\x18\xAF\x83=\x18\\\x1F=\x8E\xE2\xE5\xCAm\xED\xB1!\xBCR\x90\x9D4dK\x11\x14\xC1\xB2\x00[\xAE\x12b\xC1\x9F\x8F\xAF\xA7P\x06|\xD1\x88!\x82\xF3L\xE1:8\xAC*\x05\x81\xCF\xC1\x9F\x7F\xA9.\xBD?\n\xCF\x8F\xB6\xEC\xD2\x998\xEF=d\x82\x94\xD3\xF5\xFD\x96Ub\b\xD84\xF3\xB2v\xD11e\x99x\xC2\x06:\xE9d\xD2i3DB\x86\xF9K\xE9\xC9!\xD3\x85O\xFB\xB1!\xCCU^L\xE5g\x97e\xDFi,dA\xF9\xEC\x1A\xC2J\x7FT\xEB7\x1A\x9C\x80X\xEA\x89\xC0\xE28\xE4T@!$yB\x178\x02\xECM\x12M\xA6i]_\x82rr\x02\xD9\xF2'\v\xAB\x94\x048}\xA2\x90!\x01\xC5\xAB\x88,g\xC4JP\xB3Qo%\xFE\xB3L\xFC\xA4\x12\xDF\xE1\xB5\xBD^\x92Xlk\x99!\\\xFE\xC8\t\x98Q\x99?\xC8\xEE\xE4QG\xAA&\xC9F\xC5^,c\xF2\xA7&=\xB6y\x80\xF5\xDE\x9F\a1\x951\xE5\nc\xF7\x1A\xBCW\x9BN'*gi\xE7QD\x81\xC4\\58r\x9FvG*\x04\x067\xC5\x1CT\xC1\xDA\r\xD7\xAB\xDA\xA2;\xF2\x91*:V\x83J\x8F+RO\xE6\x05j\xC9\xEC\xA8\x13\xF0#\x90\xBD\nUB\xE8\xCB\xCD\x9D_\x95j)\x90[\x19\xD9*\xD6W\xEEOQ\x82\xE4r{\x1F\x14\xE4\xAAz\x87\x95\x84\xBA#\xAD\xE4\x89\x00\x1C- .k7T\x8F\xF7\x05+\xD4\xA3\xAAU\xDA*\x80\xCC\x9B\x06e1\xB7\xD6mZi\xCFqt\x94\x13r\x1C\x9A\x16~\xBD\xB3\a__\x96t\xEF\xD5\xB7G\xF6(\xEBT*\x83\x0F\f\xCCB\x06?\xBD\xF4f]\x0E\x0EQ.;\xA9\xCEH~\xC9t\x10N\x92`f\xE7\rO\xAD\xCC\xE9\x16*\x9A\x04\x9B\xBC\xD28e`\x14b\x15+)\xA2\x996\x89S=3\xB8\xDE\xE0\xA8\xA4\x01&`\xECp\xB7\x1A\"\x8A\xA2U\xE3l<\xBDqwe\x04\x99\xD5\xA1z\x87\xD2\x00&B \xF5 \xE0\xDD\x8A\e\b\xCF\xB0<\vQY\x87MO\x83_L#\x9B\xE0zD\xC6\x83\x06?\xEB\xB6#\xFF*\xFE\xFBH'\xE8\x85\xAB\x91\xC4x*tJC\x99\xDEX\b\xB2\xE9\xAF\a:'\xBCh[J%9\x1D\xF0G\xA97Q\xE8\xAB\x06\x88\x00e\xFC\xDA\xF2=\xC2K\xA0<\x9C\xB0\x14w\"C\x13ms\xF4\\\x16\xF3\xDF\xAC\x1C'\xD5\b\xB0\xDD\xA9\x90\x9E9`\xD8x|\x01\xBA\xA13\x8CgW\x17MLLW\xBD\\\xDD\x91\xB7\xDBy\x82\xFAw\xDE&#\x82%\rZ\x1F\x17\xC1\n\xE5\xDF\xD0\t\xAC\xDB/%\xB5\x8F\xA4H\x8F\xE3JSK\x91~@\xC1\xBB\xAB\xCC\xADB\x05u\x8C\x179&I\xB8gI\x16\xA2\xD5\xB7m2\v\xD1-2\f\xBE\xCA\xC3\x82\x86\v$#\\\xB8\x9D\x86(\xE9o\xF3\xA6\\z\xFF\xE1\xBAj\xB4\xAB,\xF2\xF0\xDCD[TV!\xFB$\xDDJ#s\x85]\x17\xB9&\x11^\x90\xF2p\x98)7\x04\xBF\xF2\xC9\xD2f\xA8\xB5\x82M\xF6\xC8\x1CR\x99/\xA8p\xAAB\xD7\x83\xE7\xD0\v\xEE\xAB\xF8\xAB\xFF\xE6\xD7\v\x10j\xF1\x1E\xD0\xF6\xF7\x80}\x11/\xC4o\x1F\xAC\x1E\xEDs\x95N<\x9C\xA5\xB9\x18N\xEB\x00R\xA3\x11\xFEc\x01\x87]\xD15\xD0\xAB\xD4\xE9\x9Ax\xBB\xE0\xEF\xA7\xEC\xF5-\x11\x89\xCBL5\xA9\x90\x1D:\x0E\x02\xBAX#\xBB\x93\xFF\xA5e{o\x9F\xD6\xF3\xF1,\xC6\xA7S\x0E\x9F\x87g\r0\xC9\x80b\x1E\x1E\x99\x01\xF6\xCE\x8FL[6\x84f\x99\x83\xED\x92E\xEC\xAD\xA5\x02O\xCE\xCB\x94\x9A\x82\xBENGNA\xAC\x9E\xBA\xF7Thl\xA3\x8F\xE0\x89\xF1\xB4'%\x0F\xD6\x9D<\xF9\xC4J9\xDA-\f\xEF\xC8l\xDF\xC0l\x9F\x15\x10k\xEDw%\xBDu\x1A\x0ECU\x02\xC6p\x8F<+&o6f5\x89&\x02.3!K\xBC\"\xF4\x9C1fn\x1E\x8Fy\x0F\xA2\x1F8\xD6\xDC\xE2\x1EP\xC7]g\xD3\xF5[vO\xD3\xE9\x7F\xCA\x95\x1F\xE3\xB6p\x93\"\x15\rQZSC\xCFR\x8A}s\r\xB1\xFA@<?J9^\xE8\xFD\xA8\e.]1\xE3nO\x8A\fs\x93\x8DQ\x9Ev\xD8\x18N.\xC2jtU~\xDB\e\xCB\xE0E\xCD\v\e\xF8;\x01\x93\xC8\x95q\xF2[#S`$\x1D\xA3\xBF\xC8\xE1qqCa\x96u\xFF\xE4\xAA\xA5\xF2\xCF}\x8D\xA0U\xE4\e\xBA\x18\xCC'\xDA\xBF%>\xED\\mG\xAB\r\xC1\xF7\x12\xFF\xD5\x12\x7F\x01\x1DLt\xF0",
28
+ "x\x9C\xEDZ\xCBu\xDC0\f\xBC\xA7\x05_\\\x82\xA8\x8F%=\x97\xE2\x1A\xB6\aW\x91\x02SI\xBC\xD1\x92Z\x913\xF8P\xF4:\x87\xF5\xF3\xC5\x02E\x82\x98\x010\xA4\xFC\xF21\xAC\xEF\xE3zym\xFE\xF3\xF21\xFE\x9B\xF9\xD7\xCBs\x89\xE7\x12?\xB6D|i{gy\x9F\xDE\xFB\xD0]\xD0\xE3n9<\xDE\x86\xBEEc\x7F\xF9\xF3\xFB37w\xEB\xC1\xBC\xFD\x16stl\x0E\xB2rz\xBC\xE6\x8F\x8DQ\xAD\b\x94\xBE<\xDApa\xEE\xF3x\xF0\x11\xAB8Ax\x83\xE6\xE5\xFA\x17yO\x99\xB0\x93\x1D\x96\xDF&\xDB]D\xF3N\x9E\x85\x00\xFF\xB5\xCB\n\x84\xFD\xF0r\xCF,\xDB\xF6\x00q\x9D97\xDC|,\xF7\x1F\xC2\\<\xCFF&\xD6)\x8EV\xC1G\xC9|\n\x1F7<\x14\x1D\x92\x04::+\x9B\x00\a\xF8\v\x87\xED\x85\x01\x85q\x9En\xC6\x01\x18c\xA8\xB0q\xA8}\x93{\xC4(\xD2\xB3\\;\xCD\x84G@\xCE\x11\xD3!W0\xBD&\x99\x10}\x84\xF8\x117\xD6\xD8\xD2(4E\ba\xB3\xCE\x13\x8C\xA8+\xC5\xB1\x01\xBC\xF1\xC0\x04U\nN\r\vw\xA1\x00\xFA\x05\x80\xF8\x9A\x98\x12|E\xE8\xED\xC0\xAF\xB8\xB2\x1C_\x16J\x05\x00\xE6\xE6Q\x8D\xA2\xF1\x02f\xAA\xE4\x11\b\xA1\x94\xE8\"\x06\xC3\xAC\x95_\x98\xAB \xA40U\xF6\xC1\x00\x1C\xF6\\\xA7\xC3\x80\xF7*\x16\xE2[\xA2\xFB1\xD5\x01-\x17ZB\x19\x8A\xFE\xC6\xD7q\x04[[\xC2\xBD\xB1\xB4\x8F\x93\xD1\x8E\xE2\xB6\x97\xD7>\xEF_iC\x0F\xD7\xD4D\xE3\x1A\n\xA5\xB5\xB2$\xD0\xFD=Ej\xF7Z\xDD\x18\x8A\x93P\x92\x8F6\x9DYp\x14\xCC*:R\n!\xD4\x16Ewm\xC5OK\rSb\x1C\xA9\x9F\xF3z4\x18\xBF&\xC5\x19\x81\x02s]\x8Et\x04\xF5\x15\v~0m\xF8\xB1\xDA]\xC5\xCD\xFA\x82v\x7F\b\xA6;\xA9P\xCCE\x95%f\\A\xD7\x1A\xE9.6\r\xE2q\f\x9C\xA8\x1A\xE5\xDD\xE2eM\xC7\t\xACFgQ\x8D\xFAr\x90u!\x9C3\x96l\x83-&&q\x98\xAA\x13\xE5^\xE6\xC0\xE7\x15W^\x8B'\xED\xBC9\xC7\xC4\xBE9\xE7 @m\x15\x93DQ\x94\xE3\x9B\x9F\xA0+\xAD\x03|<u\x99D,\xE1\xB6\x94\x13\x7F\ni]\x98\xF4\xDB\xFA\xCC\x11\x15\x96\x98817\x8A\x94\xC3\xB1\xF2k,V\xBEZ\x88-\x9D\xB0\xEB\xB0s\x01T\xB3\xE9\xD6\xFA\x02\xEB\xBAa\\\xEB'\xB8\xE7\xA1z\x18\x99\x94\x14\xAA\xD7\x82\x96R\xFD\xDF\xD2\xCDu/)\xD1\xCDW\xF8(\xA1\x12\xE0\x98\x0F\x89.B\xE3\xCEI\xA3\xCC\xC1=\xB0\xC5PT\xE2&%\xD0\x9E@\xA9#\x17g>\xBD\xD3O\xC4\xB8B\x11\x0F\x93M\xBEw\xAA\xFA\x9E\xA2\x7F\x1D\xC1\xED\xB8\xABb%\xACs\n[:\x03!\vJ%\xB3Y9e\x873\xB5J\x89\xB2<r\xB7\xD4\xB8~\nR\x0E\x16\xAAP\x15\x94\x94\x83\xF7\xF32\x82\x8E\xC5\xE9\x95\xD2\x96\x8CS\xA4\x83\x89,Q7\x99(CG\x14\x13xh!\x7F,q\\\xAFR\xD2\xE4w+\x12+\xE8\r\x9A\xB5Q\xA3\x83\xF8=\x93\xF0U\x8F\xAD\x95N\x96\x8B7\xB1\x8A\xFA[\xB1\x87Q\xD6\xAE\xA8\x88\xA8\xC2\x8C;\x9Ax\fQ\t\xA5\x1C\xC4\x11HpA\x91,\xF2\x05{>}\x1F\xAB\xB7pv}P\xA7\xAC\a\x1D\x97\n\xD4\x98\xA4\x95l\x01,\xBD\x89\x9B\xF5_\x1D\xA4zm\xBA\xD1\xC0\x1E\xAC{=\xFC\xAE\xDC`\xA5\xB6m\x18w*\xBA\xFA\xA1\x14\xDFT\xE6\xBD\x85\xC6\x19HEU\xABE\xE6l$\xA9\xBE\xC0u\xFFL\xE6\x1A\xEE\x0F\x840\x06\e\x1F\x950b3?o7\x892\b\xC5\x8CC\xF1\xC3\xE5\xC1\"\xA1\x95\xFC\xAE\xE8\x9C\x8E\xEB\x8730\xE4^,\xC3\x8E\x05pr\x88zl\x002\x06wxO\xD7k\xA5\xC0\x8DIe\xA2`\xDC\xAE\x83\xB2~\xC6pyN3\xDC\x90Z>\xE8El\x8F#\nr\xC8\xD0\e\x1A\r\x13\x1DTSS\xFC\xF1\xB5\xF2\x82\xAF\x957\\]A!\xCE\xFA\bA\xCE\x17\x06B\xD4T\xE5\xEF\xE2\xC3<\x1FF\xA8|pTn\xCA\a\xED,\xAF~h8]\xE6\x8E#\xC6\xE0N\x164\xC1\xB9\xB7[Lpb\x0E-7\x12Yj\xBF\x02Y\x8Be\x85\xC0\xAE\xCB\x8D1\xECu\xA5\xA2M\xA6\xDAc*\xA1P\xC3\x93\x0F]U\xFF\xAA \x9C\x89\xF5\n\xD7\xAAw(\xD1\x86~\x9F\xCF18\xED\xC2\x0F\xBA:)\ew\xE9bE\x94GF\f\x12kQ\xBD&\x9CL\x90\xBFB\xFD3\x80\xBB@\xDE\x16Zs\xC5\xDE\x1C\x11X\x05\xEC33\xAF\xBB\xC1P\xAD\xA2\x93\xA6\x91h\xDE\xA3\xB3g\x94\x82\xE3\xBA\xC6HG\xAC\x13dBZ\x8B\xA4\xD4>\f\xA9\x0E\x9D\xE0mG\xA6\x11\r\xBA\xF3C\x9E\x85x\xFA\xA7k\xD3\xFD\x9C\xF5\x80\xC9?\x15\xB8>_\x99\t\xC3\x7F\xFC\x81oB\xF5V\xEE[\xB7\xF7\\\xE2\xB9D\xDB%\xFE\x02\xED \xF4("]
29
+
30
+ def self.stop_loader
31
+ return unless should_be_shown?
32
+ @break = true
33
+ @thr.join
34
+ # Process.kill("KILL", @sound_pid) if @sound_thr
35
+ STDOUT.print("\e[H\e[2J")
36
+ STDOUT.print("\e[?25l")
37
+ end
38
+
39
+ def self.should_be_shown?
40
+ return false unless FastlaneCore::Env.truthy?("FL_ENABLE_LOGO_ANIMATION")
41
+ return false if Helper.ci?
42
+ return false unless UI.interactive?
43
+ return true
44
+ end
45
+
46
+ def self.show_loader
47
+ return unless should_be_shown?
48
+ # sound is disabled as i didn't find a royality free nice midi :(
49
+ @output = StringIO.new
50
+ # if FastlaneCore::Env.truthy?("FL_DO_SOUND")
51
+ # @sound_thr = Thread.new do
52
+ # audio = File.join(FastlaneCore::ROOT, "lib/assets/sound.xm")
53
+ # pipe = IO.popen("timidity #{audio.shellescape}")
54
+ # # Get the pid of the spawned process
55
+ # @sound_pid = pipe.pid
56
+ # end
57
+ # end
58
+
59
+ @thr = Thread.new do
60
+ spinit until @break
61
+ end
62
+ end
63
+
64
+ def self.spinit
65
+ do_break = true
66
+ interrupted = false
67
+ begin
68
+ loop do
69
+ STDOUT.print("\e[H\e[2J")
70
+ STDOUT.print("\e[?25l")
71
+ FRAMES.each.with_index(1) do |frame, nxt|
72
+ STDOUT.print(Zlib::Inflate.inflate(frame))
73
+ sleep(0.1)
74
+ break if interrupted
75
+ STDOUT.print("\e[H\e[2J") if FRAMES[nxt]
76
+ end
77
+ break if do_break
78
+ end
79
+ STDOUT.puts
80
+ ensure
81
+ print("\e[?25h")
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,31 @@
1
+ require "rubygems/version"
2
+
3
+ module FastlaneCore
4
+ # Utility class to construct a Gem::Version from a tag.
5
+ # Accepts vX.Y.Z and X.Y.Z.
6
+ class TagVersion < Gem::Version
7
+ class << self
8
+ def correct?(tag)
9
+ result = superclass.correct?(version_number_from_tag(tag))
10
+
11
+ # It seems like depending on the Ruby env, the result is
12
+ # slightly different. We actually just want `true` and `false`
13
+ # values here
14
+ return false if result.nil?
15
+ return true if result == 0
16
+ return result
17
+ end
18
+
19
+ # Gem::Version.new barfs on things like "v0.1.0", which is the style
20
+ # generated by the rake release task. Just strip off any initial v
21
+ # to generate a Gem::Version from a tag.
22
+ def version_number_from_tag(tag)
23
+ tag.sub(/^v/, "")
24
+ end
25
+ end
26
+
27
+ def initialize(tag)
28
+ super(self.class.version_number_from_tag(tag))
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,107 @@
1
+ require 'plist'
2
+
3
+ require 'fastlane/junit_generator'
4
+
5
+ require_relative 'ui/ui'
6
+ require_relative 'print_table'
7
+
8
+ module FastlaneCore
9
+ class TestParser
10
+ attr_accessor :data
11
+
12
+ attr_accessor :file_content
13
+
14
+ attr_accessor :raw_json
15
+
16
+ def initialize(path)
17
+ path = File.expand_path(path)
18
+ UI.user_error!("File not found at path '#{path}'") unless File.exist?(path)
19
+
20
+ self.file_content = File.read(path)
21
+ self.raw_json = Plist.parse_xml(self.file_content)
22
+ return if self.raw_json["FormatVersion"].to_s.length.zero? # maybe that's a useless plist file
23
+
24
+ ensure_file_valid!
25
+ parse_content
26
+ end
27
+
28
+ private
29
+
30
+ def ensure_file_valid!
31
+ format_version = self.raw_json["FormatVersion"]
32
+ supported_versions = ["1.1", "1.2"]
33
+ UI.user_error!("Format version '#{format_version}' is not supported, must be #{supported_versions.join(', ')}") unless supported_versions.include?(format_version)
34
+ end
35
+
36
+ # Converts the raw plist test structure into something that's easier to enumerate
37
+ def unfold_tests(data)
38
+ # `data` looks like this
39
+ # => [{"Subtests"=>
40
+ # [{"Subtests"=>
41
+ # [{"Subtests"=>
42
+ # [{"Duration"=>0.4,
43
+ # "TestIdentifier"=>"Unit/testExample()",
44
+ # "TestName"=>"testExample()",
45
+ # "TestObjectClass"=>"IDESchemeActionTestSummary",
46
+ # "TestStatus"=>"Success",
47
+ # "TestSummaryGUID"=>"4A24BFED-03E6-4FBE-BC5E-2D80023C06B4"},
48
+ # {"FailureSummaries"=>
49
+ # [{"FileName"=>"/Users/krausefx/Developer/themoji/Unit/Unit.swift",
50
+ # "LineNumber"=>34,
51
+ # "Message"=>"XCTAssertTrue failed - ",
52
+ # "PerformanceFailure"=>false}],
53
+ # "TestIdentifier"=>"Unit/testExample2()",
54
+
55
+ tests = []
56
+ data.each do |current_hash|
57
+ if current_hash["Subtests"]
58
+ tests += unfold_tests(current_hash["Subtests"])
59
+ end
60
+ if current_hash["TestStatus"]
61
+ tests << current_hash
62
+ end
63
+ end
64
+ return tests
65
+ end
66
+
67
+ # Convert the Hashes and Arrays in something more useful
68
+ def parse_content
69
+ self.data = self.raw_json["TestableSummaries"].collect do |testable_summary|
70
+ summary_row = {
71
+ project_path: testable_summary["ProjectPath"],
72
+ target_name: testable_summary["TargetName"],
73
+ test_name: testable_summary["TestName"],
74
+ duration: testable_summary["Tests"].map { |current_test| current_test["Duration"] }.inject(:+),
75
+ tests: unfold_tests(testable_summary["Tests"]).collect do |current_test|
76
+ current_row = {
77
+ identifier: current_test["TestIdentifier"],
78
+ test_group: current_test["TestIdentifier"].split("/")[0..-2].join("."),
79
+ name: current_test["TestName"],
80
+ object_class: current_test["TestObjectClass"],
81
+ status: current_test["TestStatus"],
82
+ guid: current_test["TestSummaryGUID"],
83
+ duration: current_test["Duration"]
84
+ }
85
+ if current_test["FailureSummaries"]
86
+ current_row[:failures] = current_test["FailureSummaries"].collect do |current_failure|
87
+ {
88
+ file_name: current_failure['FileName'],
89
+ line_number: current_failure['LineNumber'],
90
+ message: current_failure['Message'],
91
+ performance_failure: current_failure['PerformanceFailure'],
92
+ failure_message: "#{current_failure['Message']} (#{current_failure['FileName']}:#{current_failure['LineNumber']})"
93
+ }
94
+ end
95
+ end
96
+ current_row
97
+ end
98
+ }
99
+ summary_row[:number_of_tests] = summary_row[:tests].count
100
+ summary_row[:number_of_failures] = summary_row[:tests].find_all { |a| (a[:failures] || []).count > 0 }.count
101
+ summary_row
102
+ end
103
+ self.data.first[:run_destination_name] = self.raw_json["RunDestination"]["Name"]
104
+ return self.data
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,17 @@
1
+ # This code overwrites the methods from the colored gem
2
+ # via https://github.com/defunkt/colored/blob/master/lib/colored.rb
3
+
4
+ require 'colored'
5
+
6
+ class String
7
+ Colored::COLORS.keys.each do |color|
8
+ define_method(color) do
9
+ self # do nothing with the string, but return it
10
+ end
11
+ end
12
+ Colored::EXTRAS.keys.each do |extra|
13
+ define_method(extra) do
14
+ self # do nothing with the string, but return it
15
+ end
16
+ end
17
+ end
@@ -0,0 +1 @@
1
+ Dir[File.dirname(__FILE__) + "/errors/*.rb"].each { |f| require_relative f }
@@ -0,0 +1,19 @@
1
+ require_relative 'fastlane_exception'
2
+
3
+ module FastlaneCore
4
+ class Interface
5
+ # Super class for exception types that we do not want to record
6
+ # explicitly as crashes or user errors
7
+ class FastlaneCommonException < FastlaneException; end
8
+
9
+ # Raised when there is a build failure in xcodebuild
10
+ class FastlaneBuildFailure < FastlaneCommonException; end
11
+
12
+ # Raised when a test fails when being run by tools such as scan or snapshot
13
+ class FastlaneTestFailure < FastlaneCommonException; end
14
+
15
+ # Raise this type of exception when a failure caused by a third party
16
+ # dependency (i.e. xcodebuild, gradle, slather) happens.
17
+ class FastlaneDependencyCausedException < FastlaneCommonException; end
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ require_relative 'fastlane_exception'
2
+
3
+ module FastlaneCore
4
+ class Interface
5
+ class FastlaneCrash < FastlaneException
6
+ def prefix
7
+ '[FASTLANE_CRASH]'
8
+ end
9
+ end
10
+ end
11
+ end