remove_bg 1.5.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +329 -59
  3. data/.depfu.yml +21 -0
  4. data/.editorconfig +19 -0
  5. data/.gitignore +8 -8
  6. data/.grenrc.json +20 -0
  7. data/.rspec +5 -0
  8. data/.rubocop.yml +43 -0
  9. data/.tool-versions +1 -0
  10. data/Appraisals +49 -10
  11. data/CHANGELOG.md +19 -2
  12. data/Gemfile +2 -5
  13. data/Gemfile.lock +132 -78
  14. data/LICENSE.md +25 -0
  15. data/README.md +31 -12
  16. data/Rakefile +4 -0
  17. data/SECURITY.md +36 -0
  18. data/gemfiles/faraday_2_0.gemfile +7 -0
  19. data/gemfiles/faraday_2_1.gemfile +7 -0
  20. data/gemfiles/faraday_2_2.gemfile +7 -0
  21. data/gemfiles/faraday_2_3.gemfile +7 -0
  22. data/gemfiles/faraday_2_4.gemfile +7 -0
  23. data/gemfiles/faraday_2_5.gemfile +7 -0
  24. data/gemfiles/faraday_2_6.gemfile +7 -0
  25. data/gemfiles/faraday_2_7.gemfile +7 -0
  26. data/gemfiles/faraday_2_8.gemfile +7 -0
  27. data/gemfiles/faraday_2_9.gemfile +7 -0
  28. data/gemfiles/faraday_2_x.gemfile +7 -0
  29. data/lib/remove_bg/account_info.rb +2 -0
  30. data/lib/remove_bg/api.rb +2 -0
  31. data/lib/remove_bg/api_client.rb +12 -12
  32. data/lib/remove_bg/base_request_options.rb +2 -0
  33. data/lib/remove_bg/composite_result.rb +19 -10
  34. data/lib/remove_bg/configuration.rb +2 -0
  35. data/lib/remove_bg/error.rb +3 -1
  36. data/lib/remove_bg/http_connection.rb +7 -4
  37. data/lib/remove_bg/image_composer.rb +13 -12
  38. data/lib/remove_bg/rate_limit_info.rb +9 -6
  39. data/lib/remove_bg/request_options.rb +3 -3
  40. data/lib/remove_bg/result.rb +13 -3
  41. data/lib/remove_bg/result_metadata.rb +2 -0
  42. data/lib/remove_bg/upload.rb +5 -8
  43. data/lib/remove_bg/url_validator.rb +4 -4
  44. data/lib/remove_bg/version.rb +3 -1
  45. data/lib/remove_bg.rb +2 -0
  46. data/remove_bg.gemspec +43 -20
  47. data/resources/removebgByCanva.svg +47 -0
  48. data/sonar-project.properties +22 -0
  49. data/tasks/version.rake +34 -0
  50. metadata +207 -82
  51. data/.env.test +0 -2
  52. data/LICENSE +0 -21
  53. data/gemfiles/faraday_0_15.gemfile +0 -11
  54. data/gemfiles/faraday_0_16.gemfile +0 -11
  55. data/gemfiles/faraday_0_17.gemfile +0 -11
  56. data/gemfiles/faraday_1_x.gemfile +0 -11
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RemoveBg
2
4
  class Error < StandardError; end
3
5
 
@@ -48,7 +50,7 @@ module RemoveBg
48
50
 
49
51
  class FileOverwriteError < FileError
50
52
  def initialize(file_path)
51
- super("The file already exists: '#{file_path}' (specify #save(overwrite: true) to ignore)", file_path)
53
+ super("The file already exists: '#{file_path}' (use #save! or #save_zip! to overwrite existing files)", file_path)
52
54
  end
53
55
  end
54
56
 
@@ -1,11 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "faraday"
4
+ require "faraday/retry"
5
+
2
6
  require_relative "api"
3
7
  require_relative "version"
4
8
 
5
9
  module RemoveBg
6
10
  class HttpConnection
7
- USER_AGENT = "remove-bg-ruby-#{RemoveBg::VERSION}"
8
- HTTP_BASE_TIMEOUT = 10
11
+ USER_AGENT = "remove-bg-ruby-#{RemoveBg::VERSION}".freeze
12
+ HTTP_BASE_TIMEOUT = 20
9
13
  HTTP_WRITE_TIMEOUT = 120
10
14
 
11
15
  # @return [Faraday::Connection]
@@ -16,8 +20,7 @@ module RemoveBg
16
20
  interval: 0.2,
17
21
  backoff_factor: 2,
18
22
  methods: [:post],
19
- exceptions: Faraday::Request::Retry::DEFAULT_EXCEPTIONS +
20
- [Faraday::ConnectionFailed]
23
+ exceptions: Faraday::Retry::Middleware::DEFAULT_EXCEPTIONS + [Faraday::ConnectionFailed],
21
24
  }
22
25
 
23
26
  request_options = Faraday::RequestOptions.new.tap do |req_options|
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative "error"
2
4
 
3
5
  module RemoveBg
@@ -12,25 +14,24 @@ module RemoveBg
12
14
  end
13
15
 
14
16
  def self.detect_image_processor(detector: DEFAULT_BINARY_DETECTOR)
15
- case
16
- when detector.call("magick"), detector.call("convert"), detector.call("gm")
17
+ if detector.call("magick") || detector.call("convert") || detector.call("gm")
17
18
  :minimagick
18
- when detector.call("vips")
19
+ elsif detector.call("vips")
19
20
  :vips
20
21
  end
21
22
  end
22
23
 
23
24
  def compose(color_file:, alpha_file:, destination_path:)
24
25
  image = case configured_image_processor
25
- when :vips
26
- then vips_compose(color_file: color_file, alpha_file: alpha_file)
27
- when :minimagick
28
- then minimagick_compose(color_file: color_file, alpha_file: alpha_file)
29
- when nil
30
- raise RemoveBg::Error, "Please configure an image processor to use image composition"
31
- else
32
- raise RemoveBg::Error, "Unsupported image processor: #{configured_image_processor.inspect}"
33
- end
26
+ when :vips
27
+ vips_compose(color_file:, alpha_file:)
28
+ when :minimagick
29
+ minimagick_compose(color_file:, alpha_file:)
30
+ when nil
31
+ raise RemoveBg::Error, "Please configure an image processor to use image composition"
32
+ else
33
+ raise RemoveBg::Error, "Unsupported image processor: #{configured_image_processor.inspect}"
34
+ end
34
35
 
35
36
  image.call(destination: destination_path)
36
37
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "time"
2
4
 
3
5
  module RemoveBg
@@ -15,16 +17,17 @@ module RemoveBg
15
17
 
16
18
  def reset_at
17
19
  return if reset_timestamp.nil?
20
+
18
21
  Time.at(reset_timestamp).utc
19
22
  end
20
23
 
21
24
  def to_s
22
- "<RateLimit"\
23
- " reset_at='#{reset_at.iso8601}'"\
24
- " retry_after_seconds=#{retry_after_seconds}"\
25
- " total=#{total}"\
26
- " remaining=#{remaining}"\
27
- ">"
25
+ "<RateLimit " \
26
+ "reset_at='#{reset_at.iso8601}' " \
27
+ "retry_after_seconds=#{retry_after_seconds} " \
28
+ "total=#{total} " \
29
+ "remaining=#{remaining}" \
30
+ ">"
28
31
  end
29
32
 
30
33
  private
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative "base_request_options"
2
4
 
3
5
  module RemoveBg
@@ -25,9 +27,7 @@ module RemoveBg
25
27
  options = raw_options.dup
26
28
  options[:size] ||= SIZE_AUTO
27
29
 
28
- if options.key?(:format)
29
- options[:format] = optimize_format(options[:format])
30
- end
30
+ options[:format] = optimize_format(options[:format]) if options.key?(:format)
31
31
 
32
32
  super(options)
33
33
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "fileutils"
2
4
  require "forwardable"
3
5
  require "zip"
@@ -31,10 +33,18 @@ module RemoveBg
31
33
  # @return [nil]
32
34
  #
33
35
  def save(file_path, overwrite: false)
34
- if File.exist?(file_path) && !overwrite
35
- raise FileOverwriteError.new(file_path)
36
- end
36
+ raise FileOverwriteError.new(file_path) if File.exist?(file_path) && !overwrite
37
+
38
+ warn("DEPRECATION WARNING: overwrite: true is deprecated and will be removed from remove_bg 2.0 (use save! instead)") if overwrite
39
+
40
+ FileUtils.cp(image_file, file_path)
41
+ end
37
42
 
43
+ # Saves the processed image to the path specified, overwriting any existing file at the specified path
44
+ # @param file_path [string]
45
+ # @return [nil]
46
+ #
47
+ def save!(file_path)
38
48
  FileUtils.cp(image_file, file_path)
39
49
  end
40
50
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative "api"
2
4
 
3
5
  module RemoveBg
@@ -1,15 +1,16 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "faraday"
4
+ require "faraday/multipart"
2
5
  require_relative "error"
3
6
 
4
7
  module RemoveBg
5
8
  class Upload
6
9
  def self.for_file(file_path)
7
- if !File.exist?(file_path)
8
- raise RemoveBg::FileMissingError.new(file_path)
9
- end
10
+ raise RemoveBg::FileMissingError.new(file_path) unless File.exist?(file_path)
10
11
 
11
12
  content_type = determine_content_type(file_path)
12
- FARADAY_FILE.new(file_path, content_type)
13
+ Faraday::Multipart::FilePart.new(file_path, content_type)
13
14
  end
14
15
 
15
16
  def self.determine_content_type(file_path)
@@ -22,9 +23,5 @@ module RemoveBg
22
23
  end
23
24
 
24
25
  private_class_method :determine_content_type
25
-
26
- # UploadIO for Faraday < 0.16.0
27
- FARADAY_FILE = defined?(Faraday::FilePart) ? Faraday::FilePart : Faraday::UploadIO
28
- private_constant :FARADAY_FILE
29
26
  end
30
27
  end
@@ -1,16 +1,16 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "uri"
2
4
  require_relative "error"
3
5
 
4
6
  module RemoveBg
5
7
  class UrlValidator
6
- PERMITTED_SCHEMES = ["http", "https"].freeze
8
+ PERMITTED_SCHEMES = %w[http https].freeze
7
9
 
8
10
  def self.validate(url)
9
11
  parsed = URI.parse(url)
10
12
 
11
- unless parsed.absolute? && PERMITTED_SCHEMES.include?(parsed.scheme)
12
- raise RemoveBg::InvalidUrlError.new(url)
13
- end
13
+ raise RemoveBg::InvalidUrlError.new(url) unless parsed.absolute? && PERMITTED_SCHEMES.include?(parsed.scheme)
14
14
  rescue URI::InvalidURIError
15
15
  raise RemoveBg::InvalidUrlError.new(url)
16
16
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RemoveBg
2
- VERSION = "1.5.0"
4
+ VERSION = "2.0.1"
3
5
  end
data/lib/remove_bg.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "remove_bg/version"
2
4
  require "remove_bg/api_client"
3
5
  require "remove_bg/configuration"
data/remove_bg.gemspec CHANGED
@@ -1,43 +1,66 @@
1
- lib = File.expand_path("../lib", __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path("lib", __dir__)
2
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
5
  require "remove_bg/version"
4
6
 
5
7
  Gem::Specification.new do |spec|
6
8
  spec.name = "remove_bg"
7
9
  spec.version = RemoveBg::VERSION
8
- spec.authors = ["Oliver Peate"]
9
- spec.email = ["team@remove.bg"]
10
+ spec.authors = ["Canva Austria GmbH"]
11
+ spec.email = ["ops@kaleido.ai"]
12
+
13
+ spec.platform = Gem::Platform::RUBY
10
14
 
11
15
  spec.summary = "Remove image background - 100% automatically"
16
+ spec.description = "Use remove.bg with our official Ruby library to quickly, easily and 100% automatically remove the background from images."
12
17
  spec.homepage = "https://www.remove.bg/"
13
18
  spec.license = "MIT"
14
- spec.metadata["source_code_uri"] = "https://github.com/remove-bg/ruby"
15
- spec.metadata["changelog_uri"] = "https://github.com/remove-bg/ruby/blob/master/CHANGELOG.md"
19
+ spec.metadata = {
20
+ "bug_tracker_uri" => "https://github.com/remove-bg/ruby/issues",
21
+ "source_code_uri" => "https://github.com/remove-bg/ruby",
22
+ "changelog_uri" => "https://github.com/remove-bg/ruby/blob/main/CHANGELOG.md",
23
+ "allowed_push_host" => "https://rubygems.org",
24
+ "rubygems_mfa_required" => "true",
25
+ }
26
+
27
+ # Require at least Ruby 3.1
28
+ spec.required_ruby_version = ">= 3.1"
16
29
 
17
30
  # Specify which files should be added to the gem when it is released.
18
31
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
19
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
32
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
20
33
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|examples)/}) }
21
34
  end
22
35
  spec.bindir = "exe"
23
36
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
37
  spec.require_paths = ["lib"]
25
38
 
26
- spec.add_dependency "faraday", ">= 0.15", "< 2"
27
- spec.add_dependency "image_processing", ">= 1.9", "< 2"
39
+ spec.add_dependency "faraday", ">= 2", "<= 3"
40
+ spec.add_dependency "faraday-multipart", "~> 1.0"
41
+ spec.add_dependency "faraday-retry", "~> 2.2"
42
+
43
+ spec.add_dependency "image_processing", "~> 1.12"
28
44
  spec.add_dependency "rubyzip", ">= 2.0", "< 3"
29
45
 
46
+ spec.add_development_dependency "appraisal", "~> 2.5"
47
+
30
48
  spec.add_development_dependency "bundler", "~> 2.0"
31
- spec.add_development_dependency "codecov"
32
- spec.add_development_dependency "dotenv"
33
- spec.add_development_dependency "pry"
34
- spec.add_development_dependency "rake"
35
- spec.add_development_dependency "rspec_junit_formatter"
36
- spec.add_development_dependency "rspec-with_params"
37
- spec.add_development_dependency "rspec", "~> 3.8"
38
- spec.add_development_dependency "simplecov"
39
- spec.add_development_dependency "vcr_better_binary"
40
- spec.add_development_dependency "vcr"
41
- spec.add_development_dependency "webmock"
42
- spec.add_development_dependency "yard"
49
+ spec.add_development_dependency "pry", "~> 0.14"
50
+ spec.add_development_dependency "rake", "~> 13.2"
51
+ spec.add_development_dependency "rspec", "~> 3.13"
52
+ spec.add_development_dependency "rspec_junit_formatter", "~> 0.6"
53
+ spec.add_development_dependency "rspec-sonarqube-formatter", "~> 1.5"
54
+ spec.add_development_dependency "rspec-with_params", "~> 0.3"
55
+ spec.add_development_dependency "rubocop", "~> 1.64"
56
+ spec.add_development_dependency "rubocop-performance", "~> 1.21"
57
+ spec.add_development_dependency "rubocop-rake", "~> 0.6"
58
+ spec.add_development_dependency "rubocop-rspec", "~> 3.0"
59
+ spec.add_development_dependency "simplecov", "~> 0.22"
60
+ spec.add_development_dependency "simplecov-cobertura", "~> 2.1"
61
+ spec.add_development_dependency "simplecov_json_formatter", "~> 0.1"
62
+ spec.add_development_dependency "vcr", "~> 6.2"
63
+ spec.add_development_dependency "vcr_better_binary", "~> 0.2"
64
+ spec.add_development_dependency "webmock", "~> 3.23"
65
+ spec.add_development_dependency "yard", "~> 0.9"
43
66
  end
@@ -0,0 +1,47 @@
1
+ <svg width="2120" height="441" viewBox="0 0 2120 441" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M579.082 408V329.353H610.712C615.554 329.353 619.66 330.124 623.031 331.666C626.402 333.173 628.931 335.342 630.616 338.175C632.338 341.009 633.198 344.38 633.198 348.289C633.198 351.731 632.32 354.816 630.562 357.541C628.805 360.267 626.277 362.401 622.977 363.943V365.072C628.07 366.363 631.961 368.712 634.651 372.119C637.376 375.526 638.739 379.758 638.739 384.815C638.739 392.274 636.534 398.012 632.122 402.029C627.711 406.01 621.166 408 612.488 408H579.082ZM608.937 361.576C612.918 361.576 615.948 360.59 618.028 358.617C620.144 356.645 621.202 353.847 621.202 350.225C621.202 342.766 617.114 339.036 608.937 339.036H591.454V361.576H608.937ZM611.304 398.048C621.202 398.048 626.151 393.565 626.151 384.6C626.151 375.634 621.202 371.151 611.304 371.151H591.454V398.048H611.304ZM690.744 348.665H702.794L677.619 414.509C675.897 418.956 673.997 422.524 671.917 425.214C669.872 427.94 667.434 429.948 664.601 431.239C661.767 432.53 658.378 433.176 654.434 433.176C652.174 433.176 650.094 432.996 648.193 432.638C646.293 432.279 644.715 431.777 643.46 431.131L645.396 421.664L646.418 421.287C647.279 421.717 648.355 422.094 649.646 422.417C650.973 422.74 652.336 422.901 653.734 422.901C656.173 422.901 658.181 422.578 659.759 421.933C661.373 421.287 662.736 420.211 663.847 418.705C664.959 417.199 665.963 415.101 666.86 412.411L667.882 409.614L644.105 348.665H656.639L673.369 393.476H674.552L690.744 348.665Z" fill="black"/>
3
+ <path d="M1097.35 381.668C1096.74 381.668 1096.19 382.061 1095.9 382.882C1092.25 393.319 1087.3 399.528 1083.24 399.528C1080.9 399.528 1079.95 396.923 1079.95 392.837C1079.95 382.614 1086.07 360.937 1089.16 351.053C1089.52 349.857 1089.75 348.787 1089.75 347.877C1089.75 345.004 1088.18 343.595 1084.29 343.595C1080.1 343.595 1075.58 345.236 1071.19 352.926C1069.68 346.146 1065.09 343.185 1058.69 343.185C1051.28 343.185 1044.13 347.948 1038.24 355.673C1032.35 363.399 1025.43 365.932 1020.22 364.683C1023.97 355.513 1025.36 348.662 1025.36 343.577C1025.36 335.602 1021.42 330.785 1015.05 330.785C1005.36 330.785 999.774 340.027 999.774 349.75C999.774 357.261 1003.18 364.987 1010.67 368.733C1004.39 382.935 995.224 395.781 991.745 395.781C987.249 395.781 985.929 373.783 986.179 358.046C986.339 349.019 987.088 348.555 987.088 345.825C987.088 344.255 986.071 343.185 981.986 343.185C972.458 343.185 969.515 351.249 969.069 360.509C968.926 364.023 968.373 367.52 967.427 370.91C963.449 385.112 955.241 395.888 949.889 395.888C947.409 395.888 946.731 393.408 946.731 390.161C946.731 379.938 952.458 367.163 952.458 356.262C952.458 348.251 948.943 343.185 942.324 343.185C934.528 343.185 924.215 352.462 914.456 369.84C917.667 356.53 918.988 343.648 909.478 343.648C907.409 343.684 905.393 344.201 903.573 345.183C902.324 345.772 901.557 347.056 901.646 348.43C902.556 362.596 890.227 398.885 878.541 398.885C876.418 398.885 875.383 396.584 875.383 392.873C875.383 382.632 881.485 361.008 884.554 351.106C884.946 349.822 885.16 348.715 885.16 347.752C885.16 345.04 883.483 343.648 879.683 343.648C875.508 343.648 870.976 345.236 866.605 352.926C865.071 346.146 860.486 343.185 854.081 343.185C843.572 343.185 831.832 354.3 826.676 368.787C819.772 388.127 805.855 406.807 787.122 406.807C770.119 406.807 761.145 392.659 761.145 370.303C761.145 338.028 784.838 311.659 802.412 311.659C810.815 311.659 814.83 317.011 814.83 325.218C814.83 335.156 809.281 339.777 809.281 343.559C809.281 344.719 810.244 345.861 812.153 345.861C819.789 345.861 828.782 336.886 828.782 324.647C828.782 312.408 818.844 303.452 801.27 303.452C772.224 303.452 743 332.676 743 370.125C743 399.92 757.701 417.887 783.125 417.887C800.467 417.887 815.615 404.398 823.786 388.662C824.714 401.704 830.637 408.52 839.665 408.52C847.693 408.52 854.188 403.738 859.148 395.335C861.057 404.131 866.124 408.431 872.707 408.431C880.254 408.431 886.57 403.649 892.582 394.764C892.493 401.74 894.081 408.306 900.129 408.306C902.984 408.306 906.392 407.646 906.998 405.148C913.368 378.814 929.104 357.315 933.921 357.315C935.348 357.315 935.741 358.689 935.741 360.312C935.741 367.467 930.692 382.132 930.692 391.499C930.692 401.615 934.991 408.306 943.877 408.306C953.725 408.306 963.734 396.245 970.407 378.618C972.494 395.085 977.008 408.377 984.073 408.377C992.744 408.377 1008.14 390.125 1017.47 370.803C1021.13 371.267 1026.63 371.142 1031.91 367.413C1029.66 373.105 1028.34 379.331 1028.34 385.558C1028.34 403.488 1036.9 408.52 1044.27 408.52C1052.28 408.52 1058.78 403.738 1063.75 395.335C1065.39 402.918 1069.59 408.413 1077.29 408.413C1089.36 408.413 1099.83 396.084 1099.83 385.968C1099.83 383.292 1098.69 381.668 1097.35 381.668ZM847.015 398.582C842.145 398.582 840.236 393.676 840.236 386.361C840.236 373.658 848.924 352.444 858.113 352.444C862.127 352.444 863.644 357.172 863.644 362.953C863.644 375.852 855.383 398.582 847.015 398.582ZM1013.85 360.669C1010.94 357.208 1009.89 352.498 1009.89 348.305C1009.89 343.131 1011.78 338.76 1014.05 338.76C1016.31 338.76 1017.01 340.99 1017.01 344.094C1017.01 349.286 1015.15 356.869 1013.85 360.669ZM1051.62 398.582C1046.75 398.582 1044.84 392.944 1044.84 386.361C1044.84 374.104 1053.53 352.444 1062.79 352.444C1066.8 352.444 1068.23 357.136 1068.23 362.953C1068.23 375.852 1060.11 398.582 1051.62 398.582Z" fill="#7D2AE7"/>
4
+ <path d="M1097.35 381.668C1096.74 381.668 1096.19 382.061 1095.9 382.882C1092.25 393.319 1087.3 399.528 1083.24 399.528C1080.9 399.528 1079.95 396.923 1079.95 392.837C1079.95 382.614 1086.07 360.937 1089.16 351.053C1089.52 349.857 1089.75 348.787 1089.75 347.877C1089.75 345.004 1088.18 343.595 1084.29 343.595C1080.1 343.595 1075.58 345.236 1071.19 352.926C1069.68 346.146 1065.09 343.185 1058.69 343.185C1051.28 343.185 1044.13 347.948 1038.24 355.673C1032.35 363.399 1025.43 365.932 1020.22 364.683C1023.97 355.513 1025.36 348.662 1025.36 343.577C1025.36 335.602 1021.42 330.785 1015.05 330.785C1005.36 330.785 999.774 340.027 999.774 349.75C999.774 357.261 1003.18 364.987 1010.67 368.733C1004.39 382.935 995.224 395.781 991.745 395.781C987.249 395.781 985.929 373.783 986.179 358.046C986.339 349.019 987.088 348.555 987.088 345.825C987.088 344.255 986.071 343.185 981.986 343.185C972.458 343.185 969.515 351.249 969.069 360.509C968.926 364.023 968.373 367.52 967.427 370.91C963.449 385.112 955.241 395.888 949.889 395.888C947.409 395.888 946.731 393.408 946.731 390.161C946.731 379.938 952.458 367.163 952.458 356.262C952.458 348.251 948.943 343.185 942.324 343.185C934.528 343.185 924.215 352.462 914.456 369.84C917.667 356.53 918.988 343.648 909.478 343.648C907.409 343.684 905.393 344.201 903.573 345.183C902.324 345.772 901.557 347.056 901.646 348.43C902.556 362.596 890.227 398.885 878.541 398.885C876.418 398.885 875.383 396.584 875.383 392.873C875.383 382.632 881.485 361.008 884.554 351.106C884.946 349.822 885.16 348.715 885.16 347.752C885.16 345.04 883.483 343.648 879.683 343.648C875.508 343.648 870.976 345.236 866.605 352.926C865.071 346.146 860.486 343.185 854.081 343.185C843.572 343.185 831.832 354.3 826.676 368.787C819.772 388.127 805.855 406.807 787.122 406.807C770.119 406.807 761.145 392.659 761.145 370.303C761.145 338.028 784.838 311.659 802.412 311.659C810.815 311.659 814.83 317.011 814.83 325.218C814.83 335.156 809.281 339.777 809.281 343.559C809.281 344.719 810.244 345.861 812.153 345.861C819.789 345.861 828.782 336.886 828.782 324.647C828.782 312.408 818.844 303.452 801.27 303.452C772.224 303.452 743 332.676 743 370.125C743 399.92 757.701 417.887 783.125 417.887C800.467 417.887 815.615 404.398 823.786 388.662C824.714 401.704 830.637 408.52 839.665 408.52C847.693 408.52 854.188 403.738 859.148 395.335C861.057 404.131 866.124 408.431 872.707 408.431C880.254 408.431 886.57 403.649 892.582 394.764C892.493 401.74 894.081 408.306 900.129 408.306C902.984 408.306 906.392 407.646 906.998 405.148C913.368 378.814 929.104 357.315 933.921 357.315C935.348 357.315 935.741 358.689 935.741 360.312C935.741 367.467 930.692 382.132 930.692 391.499C930.692 401.615 934.991 408.306 943.877 408.306C953.725 408.306 963.734 396.245 970.407 378.618C972.494 395.085 977.008 408.377 984.073 408.377C992.744 408.377 1008.14 390.125 1017.47 370.803C1021.13 371.267 1026.63 371.142 1031.91 367.413C1029.66 373.105 1028.34 379.331 1028.34 385.558C1028.34 403.488 1036.9 408.52 1044.27 408.52C1052.28 408.52 1058.78 403.738 1063.75 395.335C1065.39 402.918 1069.59 408.413 1077.29 408.413C1089.36 408.413 1099.83 396.084 1099.83 385.968C1099.83 383.292 1098.69 381.668 1097.35 381.668ZM847.015 398.582C842.145 398.582 840.236 393.676 840.236 386.361C840.236 373.658 848.924 352.444 858.113 352.444C862.127 352.444 863.644 357.172 863.644 362.953C863.644 375.852 855.383 398.582 847.015 398.582ZM1013.85 360.669C1010.94 357.208 1009.89 352.498 1009.89 348.305C1009.89 343.131 1011.78 338.76 1014.05 338.76C1016.31 338.76 1017.01 340.99 1017.01 344.094C1017.01 349.286 1015.15 356.869 1013.85 360.669ZM1051.62 398.582C1046.75 398.582 1044.84 392.944 1044.84 386.361C1044.84 374.104 1053.53 352.444 1062.79 352.444C1066.8 352.444 1068.23 357.136 1068.23 362.953C1068.23 375.852 1060.11 398.582 1051.62 398.582Z" fill="url(#paint0_radial_109_183)"/>
5
+ <path d="M1097.35 381.668C1096.74 381.668 1096.19 382.061 1095.9 382.882C1092.25 393.319 1087.3 399.528 1083.24 399.528C1080.9 399.528 1079.95 396.923 1079.95 392.837C1079.95 382.614 1086.07 360.937 1089.16 351.053C1089.52 349.857 1089.75 348.787 1089.75 347.877C1089.75 345.004 1088.18 343.595 1084.29 343.595C1080.1 343.595 1075.58 345.236 1071.19 352.926C1069.68 346.146 1065.09 343.185 1058.69 343.185C1051.28 343.185 1044.13 347.948 1038.24 355.673C1032.35 363.399 1025.43 365.932 1020.22 364.683C1023.97 355.513 1025.36 348.662 1025.36 343.577C1025.36 335.602 1021.42 330.785 1015.05 330.785C1005.36 330.785 999.774 340.027 999.774 349.75C999.774 357.261 1003.18 364.987 1010.67 368.733C1004.39 382.935 995.224 395.781 991.745 395.781C987.249 395.781 985.929 373.783 986.179 358.046C986.339 349.019 987.088 348.555 987.088 345.825C987.088 344.255 986.071 343.185 981.986 343.185C972.458 343.185 969.515 351.249 969.069 360.509C968.926 364.023 968.373 367.52 967.427 370.91C963.449 385.112 955.241 395.888 949.889 395.888C947.409 395.888 946.731 393.408 946.731 390.161C946.731 379.938 952.458 367.163 952.458 356.262C952.458 348.251 948.943 343.185 942.324 343.185C934.528 343.185 924.215 352.462 914.456 369.84C917.667 356.53 918.988 343.648 909.478 343.648C907.409 343.684 905.393 344.201 903.573 345.183C902.324 345.772 901.557 347.056 901.646 348.43C902.556 362.596 890.227 398.885 878.541 398.885C876.418 398.885 875.383 396.584 875.383 392.873C875.383 382.632 881.485 361.008 884.554 351.106C884.946 349.822 885.16 348.715 885.16 347.752C885.16 345.04 883.483 343.648 879.683 343.648C875.508 343.648 870.976 345.236 866.605 352.926C865.071 346.146 860.486 343.185 854.081 343.185C843.572 343.185 831.832 354.3 826.676 368.787C819.772 388.127 805.855 406.807 787.122 406.807C770.119 406.807 761.145 392.659 761.145 370.303C761.145 338.028 784.838 311.659 802.412 311.659C810.815 311.659 814.83 317.011 814.83 325.218C814.83 335.156 809.281 339.777 809.281 343.559C809.281 344.719 810.244 345.861 812.153 345.861C819.789 345.861 828.782 336.886 828.782 324.647C828.782 312.408 818.844 303.452 801.27 303.452C772.224 303.452 743 332.676 743 370.125C743 399.92 757.701 417.887 783.125 417.887C800.467 417.887 815.615 404.398 823.786 388.662C824.714 401.704 830.637 408.52 839.665 408.52C847.693 408.52 854.188 403.738 859.148 395.335C861.057 404.131 866.124 408.431 872.707 408.431C880.254 408.431 886.57 403.649 892.582 394.764C892.493 401.74 894.081 408.306 900.129 408.306C902.984 408.306 906.392 407.646 906.998 405.148C913.368 378.814 929.104 357.315 933.921 357.315C935.348 357.315 935.741 358.689 935.741 360.312C935.741 367.467 930.692 382.132 930.692 391.499C930.692 401.615 934.991 408.306 943.877 408.306C953.725 408.306 963.734 396.245 970.407 378.618C972.494 395.085 977.008 408.377 984.073 408.377C992.744 408.377 1008.14 390.125 1017.47 370.803C1021.13 371.267 1026.63 371.142 1031.91 367.413C1029.66 373.105 1028.34 379.331 1028.34 385.558C1028.34 403.488 1036.9 408.52 1044.27 408.52C1052.28 408.52 1058.78 403.738 1063.75 395.335C1065.39 402.918 1069.59 408.413 1077.29 408.413C1089.36 408.413 1099.83 396.084 1099.83 385.968C1099.83 383.292 1098.69 381.668 1097.35 381.668ZM847.015 398.582C842.145 398.582 840.236 393.676 840.236 386.361C840.236 373.658 848.924 352.444 858.113 352.444C862.127 352.444 863.644 357.172 863.644 362.953C863.644 375.852 855.383 398.582 847.015 398.582ZM1013.85 360.669C1010.94 357.208 1009.89 352.498 1009.89 348.305C1009.89 343.131 1011.78 338.76 1014.05 338.76C1016.31 338.76 1017.01 340.99 1017.01 344.094C1017.01 349.286 1015.15 356.869 1013.85 360.669ZM1051.62 398.582C1046.75 398.582 1044.84 392.944 1044.84 386.361C1044.84 374.104 1053.53 352.444 1062.79 352.444C1066.8 352.444 1068.23 357.136 1068.23 362.953C1068.23 375.852 1060.11 398.582 1051.62 398.582Z" fill="url(#paint1_radial_109_183)"/>
6
+ <path d="M1097.35 381.668C1096.74 381.668 1096.19 382.061 1095.9 382.882C1092.25 393.319 1087.3 399.528 1083.24 399.528C1080.9 399.528 1079.95 396.923 1079.95 392.837C1079.95 382.614 1086.07 360.937 1089.16 351.053C1089.52 349.857 1089.75 348.787 1089.75 347.877C1089.75 345.004 1088.18 343.595 1084.29 343.595C1080.1 343.595 1075.58 345.236 1071.19 352.926C1069.68 346.146 1065.09 343.185 1058.69 343.185C1051.28 343.185 1044.13 347.948 1038.24 355.673C1032.35 363.399 1025.43 365.932 1020.22 364.683C1023.97 355.513 1025.36 348.662 1025.36 343.577C1025.36 335.602 1021.42 330.785 1015.05 330.785C1005.36 330.785 999.774 340.027 999.774 349.75C999.774 357.261 1003.18 364.987 1010.67 368.733C1004.39 382.935 995.224 395.781 991.745 395.781C987.249 395.781 985.929 373.783 986.179 358.046C986.339 349.019 987.088 348.555 987.088 345.825C987.088 344.255 986.071 343.185 981.986 343.185C972.458 343.185 969.515 351.249 969.069 360.509C968.926 364.023 968.373 367.52 967.427 370.91C963.449 385.112 955.241 395.888 949.889 395.888C947.409 395.888 946.731 393.408 946.731 390.161C946.731 379.938 952.458 367.163 952.458 356.262C952.458 348.251 948.943 343.185 942.324 343.185C934.528 343.185 924.215 352.462 914.456 369.84C917.667 356.53 918.988 343.648 909.478 343.648C907.409 343.684 905.393 344.201 903.573 345.183C902.324 345.772 901.557 347.056 901.646 348.43C902.556 362.596 890.227 398.885 878.541 398.885C876.418 398.885 875.383 396.584 875.383 392.873C875.383 382.632 881.485 361.008 884.554 351.106C884.946 349.822 885.16 348.715 885.16 347.752C885.16 345.04 883.483 343.648 879.683 343.648C875.508 343.648 870.976 345.236 866.605 352.926C865.071 346.146 860.486 343.185 854.081 343.185C843.572 343.185 831.832 354.3 826.676 368.787C819.772 388.127 805.855 406.807 787.122 406.807C770.119 406.807 761.145 392.659 761.145 370.303C761.145 338.028 784.838 311.659 802.412 311.659C810.815 311.659 814.83 317.011 814.83 325.218C814.83 335.156 809.281 339.777 809.281 343.559C809.281 344.719 810.244 345.861 812.153 345.861C819.789 345.861 828.782 336.886 828.782 324.647C828.782 312.408 818.844 303.452 801.27 303.452C772.224 303.452 743 332.676 743 370.125C743 399.92 757.701 417.887 783.125 417.887C800.467 417.887 815.615 404.398 823.786 388.662C824.714 401.704 830.637 408.52 839.665 408.52C847.693 408.52 854.188 403.738 859.148 395.335C861.057 404.131 866.124 408.431 872.707 408.431C880.254 408.431 886.57 403.649 892.582 394.764C892.493 401.74 894.081 408.306 900.129 408.306C902.984 408.306 906.392 407.646 906.998 405.148C913.368 378.814 929.104 357.315 933.921 357.315C935.348 357.315 935.741 358.689 935.741 360.312C935.741 367.467 930.692 382.132 930.692 391.499C930.692 401.615 934.991 408.306 943.877 408.306C953.725 408.306 963.734 396.245 970.407 378.618C972.494 395.085 977.008 408.377 984.073 408.377C992.744 408.377 1008.14 390.125 1017.47 370.803C1021.13 371.267 1026.63 371.142 1031.91 367.413C1029.66 373.105 1028.34 379.331 1028.34 385.558C1028.34 403.488 1036.9 408.52 1044.27 408.52C1052.28 408.52 1058.78 403.738 1063.75 395.335C1065.39 402.918 1069.59 408.413 1077.29 408.413C1089.36 408.413 1099.83 396.084 1099.83 385.968C1099.83 383.292 1098.69 381.668 1097.35 381.668ZM847.015 398.582C842.145 398.582 840.236 393.676 840.236 386.361C840.236 373.658 848.924 352.444 858.113 352.444C862.127 352.444 863.644 357.172 863.644 362.953C863.644 375.852 855.383 398.582 847.015 398.582ZM1013.85 360.669C1010.94 357.208 1009.89 352.498 1009.89 348.305C1009.89 343.131 1011.78 338.76 1014.05 338.76C1016.31 338.76 1017.01 340.99 1017.01 344.094C1017.01 349.286 1015.15 356.869 1013.85 360.669ZM1051.62 398.582C1046.75 398.582 1044.84 392.944 1044.84 386.361C1044.84 374.104 1053.53 352.444 1062.79 352.444C1066.8 352.444 1068.23 357.136 1068.23 362.953C1068.23 375.852 1060.11 398.582 1051.62 398.582Z" fill="url(#paint2_radial_109_183)"/>
7
+ <path d="M1097.35 381.668C1096.74 381.668 1096.19 382.061 1095.9 382.882C1092.25 393.319 1087.3 399.528 1083.24 399.528C1080.9 399.528 1079.95 396.923 1079.95 392.837C1079.95 382.614 1086.07 360.937 1089.16 351.053C1089.52 349.857 1089.75 348.787 1089.75 347.877C1089.75 345.004 1088.18 343.595 1084.29 343.595C1080.1 343.595 1075.58 345.236 1071.19 352.926C1069.68 346.146 1065.09 343.185 1058.69 343.185C1051.28 343.185 1044.13 347.948 1038.24 355.673C1032.35 363.399 1025.43 365.932 1020.22 364.683C1023.97 355.513 1025.36 348.662 1025.36 343.577C1025.36 335.602 1021.42 330.785 1015.05 330.785C1005.36 330.785 999.774 340.027 999.774 349.75C999.774 357.261 1003.18 364.987 1010.67 368.733C1004.39 382.935 995.224 395.781 991.745 395.781C987.249 395.781 985.929 373.783 986.179 358.046C986.339 349.019 987.088 348.555 987.088 345.825C987.088 344.255 986.071 343.185 981.986 343.185C972.458 343.185 969.515 351.249 969.069 360.509C968.926 364.023 968.373 367.52 967.427 370.91C963.449 385.112 955.241 395.888 949.889 395.888C947.409 395.888 946.731 393.408 946.731 390.161C946.731 379.938 952.458 367.163 952.458 356.262C952.458 348.251 948.943 343.185 942.324 343.185C934.528 343.185 924.215 352.462 914.456 369.84C917.667 356.53 918.988 343.648 909.478 343.648C907.409 343.684 905.393 344.201 903.573 345.183C902.324 345.772 901.557 347.056 901.646 348.43C902.556 362.596 890.227 398.885 878.541 398.885C876.418 398.885 875.383 396.584 875.383 392.873C875.383 382.632 881.485 361.008 884.554 351.106C884.946 349.822 885.16 348.715 885.16 347.752C885.16 345.04 883.483 343.648 879.683 343.648C875.508 343.648 870.976 345.236 866.605 352.926C865.071 346.146 860.486 343.185 854.081 343.185C843.572 343.185 831.832 354.3 826.676 368.787C819.772 388.127 805.855 406.807 787.122 406.807C770.119 406.807 761.145 392.659 761.145 370.303C761.145 338.028 784.838 311.659 802.412 311.659C810.815 311.659 814.83 317.011 814.83 325.218C814.83 335.156 809.281 339.777 809.281 343.559C809.281 344.719 810.244 345.861 812.153 345.861C819.789 345.861 828.782 336.886 828.782 324.647C828.782 312.408 818.844 303.452 801.27 303.452C772.224 303.452 743 332.676 743 370.125C743 399.92 757.701 417.887 783.125 417.887C800.467 417.887 815.615 404.398 823.786 388.662C824.714 401.704 830.637 408.52 839.665 408.52C847.693 408.52 854.188 403.738 859.148 395.335C861.057 404.131 866.124 408.431 872.707 408.431C880.254 408.431 886.57 403.649 892.582 394.764C892.493 401.74 894.081 408.306 900.129 408.306C902.984 408.306 906.392 407.646 906.998 405.148C913.368 378.814 929.104 357.315 933.921 357.315C935.348 357.315 935.741 358.689 935.741 360.312C935.741 367.467 930.692 382.132 930.692 391.499C930.692 401.615 934.991 408.306 943.877 408.306C953.725 408.306 963.734 396.245 970.407 378.618C972.494 395.085 977.008 408.377 984.073 408.377C992.744 408.377 1008.14 390.125 1017.47 370.803C1021.13 371.267 1026.63 371.142 1031.91 367.413C1029.66 373.105 1028.34 379.331 1028.34 385.558C1028.34 403.488 1036.9 408.52 1044.27 408.52C1052.28 408.52 1058.78 403.738 1063.75 395.335C1065.39 402.918 1069.59 408.413 1077.29 408.413C1089.36 408.413 1099.83 396.084 1099.83 385.968C1099.83 383.292 1098.69 381.668 1097.35 381.668ZM847.015 398.582C842.145 398.582 840.236 393.676 840.236 386.361C840.236 373.658 848.924 352.444 858.113 352.444C862.127 352.444 863.644 357.172 863.644 362.953C863.644 375.852 855.383 398.582 847.015 398.582ZM1013.85 360.669C1010.94 357.208 1009.89 352.498 1009.89 348.305C1009.89 343.131 1011.78 338.76 1014.05 338.76C1016.31 338.76 1017.01 340.99 1017.01 344.094C1017.01 349.286 1015.15 356.869 1013.85 360.669ZM1051.62 398.582C1046.75 398.582 1044.84 392.944 1044.84 386.361C1044.84 374.104 1053.53 352.444 1062.79 352.444C1066.8 352.444 1068.23 357.136 1068.23 362.953C1068.23 375.852 1060.11 398.582 1051.62 398.582Z" fill="url(#paint3_radial_109_183)"/>
8
+ <path d="M1097.35 381.668C1096.74 381.668 1096.19 382.061 1095.9 382.882C1092.25 393.319 1087.3 399.528 1083.24 399.528C1080.9 399.528 1079.95 396.923 1079.95 392.837C1079.95 382.614 1086.07 360.937 1089.16 351.053C1089.52 349.857 1089.75 348.787 1089.75 347.877C1089.75 345.004 1088.18 343.595 1084.29 343.595C1080.1 343.595 1075.58 345.236 1071.19 352.926C1069.68 346.146 1065.09 343.185 1058.69 343.185C1051.28 343.185 1044.13 347.948 1038.24 355.673C1032.35 363.399 1025.43 365.932 1020.22 364.683C1023.97 355.513 1025.36 348.662 1025.36 343.577C1025.36 335.602 1021.42 330.785 1015.05 330.785C1005.36 330.785 999.774 340.027 999.774 349.75C999.774 357.261 1003.18 364.987 1010.67 368.733C1004.39 382.935 995.224 395.781 991.745 395.781C987.249 395.781 985.929 373.783 986.179 358.046C986.339 349.019 987.088 348.555 987.088 345.825C987.088 344.255 986.071 343.185 981.986 343.185C972.458 343.185 969.515 351.249 969.069 360.509C968.926 364.023 968.373 367.52 967.427 370.91C963.449 385.112 955.241 395.888 949.889 395.888C947.409 395.888 946.731 393.408 946.731 390.161C946.731 379.938 952.458 367.163 952.458 356.262C952.458 348.251 948.943 343.185 942.324 343.185C934.528 343.185 924.215 352.462 914.456 369.84C917.667 356.53 918.988 343.648 909.478 343.648C907.409 343.684 905.393 344.201 903.573 345.183C902.324 345.772 901.557 347.056 901.646 348.43C902.556 362.596 890.227 398.885 878.541 398.885C876.418 398.885 875.383 396.584 875.383 392.873C875.383 382.632 881.485 361.008 884.554 351.106C884.946 349.822 885.16 348.715 885.16 347.752C885.16 345.04 883.483 343.648 879.683 343.648C875.508 343.648 870.976 345.236 866.605 352.926C865.071 346.146 860.486 343.185 854.081 343.185C843.572 343.185 831.832 354.3 826.676 368.787C819.772 388.127 805.855 406.807 787.122 406.807C770.119 406.807 761.145 392.659 761.145 370.303C761.145 338.028 784.838 311.659 802.412 311.659C810.815 311.659 814.83 317.011 814.83 325.218C814.83 335.156 809.281 339.777 809.281 343.559C809.281 344.719 810.244 345.861 812.153 345.861C819.789 345.861 828.782 336.886 828.782 324.647C828.782 312.408 818.844 303.452 801.27 303.452C772.224 303.452 743 332.676 743 370.125C743 399.92 757.701 417.887 783.125 417.887C800.467 417.887 815.615 404.398 823.786 388.662C824.714 401.704 830.637 408.52 839.665 408.52C847.693 408.52 854.188 403.738 859.148 395.335C861.057 404.131 866.124 408.431 872.707 408.431C880.254 408.431 886.57 403.649 892.582 394.764C892.493 401.74 894.081 408.306 900.129 408.306C902.984 408.306 906.392 407.646 906.998 405.148C913.368 378.814 929.104 357.315 933.921 357.315C935.348 357.315 935.741 358.689 935.741 360.312C935.741 367.467 930.692 382.132 930.692 391.499C930.692 401.615 934.991 408.306 943.877 408.306C953.725 408.306 963.734 396.245 970.407 378.618C972.494 395.085 977.008 408.377 984.073 408.377C992.744 408.377 1008.14 390.125 1017.47 370.803C1021.13 371.267 1026.63 371.142 1031.91 367.413C1029.66 373.105 1028.34 379.331 1028.34 385.558C1028.34 403.488 1036.9 408.52 1044.27 408.52C1052.28 408.52 1058.78 403.738 1063.75 395.335C1065.39 402.918 1069.59 408.413 1077.29 408.413C1089.36 408.413 1099.83 396.084 1099.83 385.968C1099.83 383.292 1098.69 381.668 1097.35 381.668ZM847.015 398.582C842.145 398.582 840.236 393.676 840.236 386.361C840.236 373.658 848.924 352.444 858.113 352.444C862.127 352.444 863.644 357.172 863.644 362.953C863.644 375.852 855.383 398.582 847.015 398.582ZM1013.85 360.669C1010.94 357.208 1009.89 352.498 1009.89 348.305C1009.89 343.131 1011.78 338.76 1014.05 338.76C1016.31 338.76 1017.01 340.99 1017.01 344.094C1017.01 349.286 1015.15 356.869 1013.85 360.669ZM1051.62 398.582C1046.75 398.582 1044.84 392.944 1044.84 386.361C1044.84 374.104 1053.53 352.444 1062.79 352.444C1066.8 352.444 1068.23 357.136 1068.23 362.953C1068.23 375.852 1060.11 398.582 1051.62 398.582Z" fill="url(#paint4_radial_109_183)"/>
9
+ <g clip-path="url(#clip0_109_183)">
10
+ <path d="M4.78205 123.924L209.114 230.534C210.38 231.2 211.789 231.547 213.219 231.547C214.649 231.547 216.058 231.2 217.324 230.534L421.661 123.924C423.102 123.175 424.309 122.045 425.152 120.657C425.995 119.269 426.441 117.677 426.441 116.053C426.441 114.429 425.995 112.836 425.152 111.448C424.309 110.061 423.102 108.93 421.661 108.182L217.324 1.57166C216.052 0.915101 214.641 0.57251 213.21 0.57251C211.779 0.57251 210.368 0.915101 209.096 1.57166L4.76439 108.182C3.32582 108.933 2.1209 110.065 1.2807 111.454C0.440511 112.843 -0.00279033 114.435 -0.000970985 116.058C0.000848365 117.681 0.447709 119.273 1.29101 120.66C2.13432 122.047 3.34179 123.176 4.78205 123.924Z" fill="#54616C"/>
11
+ <path d="M421.661 179.253L387.847 161.608L225.534 246.294C221.742 248.272 217.529 249.308 213.252 249.314C208.975 249.321 204.759 248.297 200.962 246.33L38.5912 161.61L4.78212 179.256C3.3406 180.004 2.13226 181.134 1.28892 182.523C0.44559 183.911 -0.000366211 185.504 -0.000366211 187.128C-0.000366211 188.753 0.44559 190.346 1.28892 191.734C2.13226 193.122 3.3406 194.252 4.78212 195.001L209.114 301.606C210.38 302.271 211.789 302.619 213.219 302.619C214.649 302.619 216.058 302.271 217.324 301.606L421.661 195.001C423.101 194.251 424.308 193.12 425.15 191.732C425.992 190.344 426.437 188.752 426.437 187.128C426.437 185.505 425.992 183.912 425.15 182.524C424.308 181.136 423.101 180.006 421.661 179.256V179.253Z" fill="#BAC0C4"/>
12
+ <path d="M675.337 75.2319C676.133 76.1093 676.744 77.138 677.134 78.2566C677.524 79.3753 677.684 80.561 677.606 81.7431V105.814C677.606 110.915 674.774 113.748 669.111 114.314C662.865 114.742 656.736 116.226 650.986 118.703C644.733 121.4 639.131 125.408 634.558 130.455C627.765 137.818 624.367 148.58 624.364 162.742V223.065C624.463 224.205 624.312 225.354 623.92 226.429C623.528 227.505 622.905 228.482 622.096 229.292C621.286 230.101 620.309 230.724 619.234 231.116C618.158 231.507 617.01 231.659 615.869 231.56H590.661C589.52 231.659 588.372 231.507 587.296 231.116C586.22 230.724 585.243 230.101 584.434 229.292C583.624 228.482 583.002 227.505 582.61 226.429C582.218 225.354 582.067 224.205 582.166 223.065V84.2942C582.067 83.1536 582.218 82.0051 582.61 80.9294C583.002 79.8537 583.624 78.8767 584.434 78.0672C585.243 77.2576 586.22 76.6351 587.296 76.2433C588.372 75.8514 589.52 75.6998 590.661 75.799H615.869C617.01 75.6998 618.158 75.8514 619.234 76.2433C620.309 76.6351 621.286 77.2576 622.096 78.0672C622.905 78.8767 623.528 79.8537 623.92 80.9294C624.312 82.0051 624.463 83.1536 624.364 84.2942V96.4747C629.648 89.4596 636.547 83.8239 644.475 80.0466C652.213 76.3213 660.558 74.016 669.111 73.2404C670.232 73.0896 671.372 73.1901 672.449 73.5346C673.525 73.879 674.512 74.4588 675.337 75.2319Z" fill="#54616C"/>
13
+ <path d="M736.794 227.313C724.071 221.78 713.033 212.988 704.795 201.825C695.541 189.742 690.915 173.882 690.918 154.247C690.618 139.322 694.492 124.61 702.106 111.769C709.411 99.635 719.955 89.7778 732.552 83.3039C745.864 76.49 760.642 73.0386 775.595 73.2509C789.214 73.1708 802.657 76.326 814.819 82.457C826.918 88.5215 837.22 97.6466 844.7 108.925C849.399 115.579 852.763 123.081 854.607 131.015C856.226 139.318 856.986 147.765 856.876 156.223C857.003 159.788 855.904 163.288 853.763 166.14C852.719 167.45 851.379 168.493 849.853 169.182C848.326 169.87 846.658 170.185 844.985 170.1H733.117C733.912 174.634 735.728 178.927 738.426 182.655C741.125 186.384 744.635 189.45 748.693 191.623C756.937 196.142 766.196 198.484 775.597 198.429C782.366 198.602 789.102 197.447 795.426 195.029C800.892 192.769 805.887 189.504 810.15 185.404C811.978 183.6 814.383 182.497 816.944 182.291C818.775 182.334 820.552 182.926 822.043 183.99L840.445 194.754C841.706 195.267 842.8 196.121 843.601 197.222C844.403 198.323 844.881 199.625 844.983 200.983C844.795 202.967 844.003 204.845 842.714 206.365C825.342 225.81 802.968 235.532 775.592 235.531C762.231 235.498 749.021 232.7 736.794 227.313ZM746.853 118.847C743.371 121.297 740.447 124.456 738.274 128.117C736.102 131.778 734.73 135.858 734.249 140.088H812.129C811.517 134.866 809.566 129.891 806.465 125.646C803.141 121.017 798.776 117.233 793.722 114.6C788.037 111.675 781.712 110.215 775.32 110.352C765.15 109.936 755.132 112.926 746.853 118.847Z" fill="#54616C"/>
14
+ <path d="M1123.23 90.2462C1134.09 101.763 1139.52 118.188 1139.51 139.523V223.065C1139.61 224.207 1139.46 225.356 1139.07 226.433C1138.68 227.51 1138.05 228.487 1137.24 229.297C1136.43 230.107 1135.45 230.729 1134.38 231.12C1133.3 231.511 1132.15 231.661 1131.01 231.56H1105.25C1104.11 231.659 1102.96 231.508 1101.88 231.116C1100.8 230.724 1099.83 230.101 1099.02 229.291C1098.21 228.481 1097.59 227.504 1097.19 226.428C1096.8 225.352 1096.65 224.203 1096.75 223.062V139.525C1096.75 128.77 1094.06 120.84 1088.68 115.737C1083.31 110.633 1075.9 108.083 1066.45 108.088C1062.5 108.021 1058.58 108.809 1054.96 110.398C1051.35 111.987 1048.12 114.339 1045.49 117.294C1039.83 123.43 1036.9 132.633 1036.72 144.902V223.065C1036.82 224.206 1036.66 225.355 1036.27 226.431C1035.88 227.507 1035.26 228.485 1034.45 229.295C1033.64 230.105 1032.66 230.727 1031.59 231.119C1030.51 231.511 1029.36 231.662 1028.22 231.563H1002.45C1001.31 231.663 1000.16 231.513 999.08 231.121C998.004 230.73 997.026 230.107 996.216 229.297C995.407 228.487 994.784 227.509 994.393 226.432C994.002 225.355 993.851 224.206 993.952 223.065V139.525C993.952 128.77 991.308 120.84 986.019 115.737C980.731 110.633 973.367 108.083 963.929 108.088C959.814 107.968 955.725 108.785 951.972 110.478C948.219 112.171 944.9 114.695 942.266 117.859C936.695 124.374 933.91 134.806 933.912 149.152L933.629 223.065C933.629 228.728 930.796 231.561 925.129 231.563H899.921C898.78 231.663 897.631 231.513 896.554 231.121C895.478 230.73 894.5 230.107 893.69 229.297C892.88 228.487 892.258 227.509 891.867 226.432C891.475 225.355 891.325 224.206 891.426 223.065V84.2946C891.325 83.1535 891.475 82.0041 891.867 80.9275C892.258 79.8508 892.88 78.873 893.69 78.0628C894.5 77.2527 895.478 76.63 896.554 76.2385C897.631 75.847 898.78 75.6963 899.921 75.7969H925.129C926.27 75.6968 927.42 75.8479 928.496 76.2396C929.573 76.6312 930.55 77.2538 931.361 78.0638C932.171 78.8737 932.794 79.8512 933.186 80.9276C933.578 82.004 933.729 83.1533 933.629 84.2946V89.9588C939.501 84.8077 946.204 80.69 953.453 77.7807C960.15 74.8023 967.367 73.1673 974.693 72.9685C996.589 72.9685 1013.3 80.0486 1024.82 94.2089C1030.77 87.3433 1038.23 81.9613 1046.63 78.4916C1055.6 74.7524 1065.23 72.8733 1074.95 72.9685C1096.28 72.9736 1112.37 78.7328 1123.23 90.2462Z" fill="#54616C"/>
15
+ <path d="M1218.1 224.341C1205.45 217.336 1194.85 207.131 1187.37 194.747C1179.96 182.486 1176.05 168.432 1176.05 154.106C1176.05 139.78 1179.96 125.726 1187.37 113.466C1194.9 101.03 1205.54 90.7754 1218.24 83.7201C1237.69 72.9237 1260.54 69.9902 1282.08 75.523C1303.63 81.0558 1322.24 94.6343 1334.08 113.466C1341.51 125.672 1345.43 139.694 1345.4 153.986C1345.38 168.277 1341.41 182.284 1333.93 194.464C1322.11 213.32 1303.52 226.928 1281.97 232.485C1260.42 238.043 1237.57 235.128 1218.1 224.341ZM1238.92 115.876C1232.42 119.634 1227.04 125.06 1223.34 131.593C1219.65 138.543 1217.7 146.289 1217.68 154.161C1217.65 162.032 1219.55 169.791 1223.2 176.763C1226.76 183.352 1232.11 188.8 1238.64 192.48C1243.51 195.428 1248.94 197.358 1254.58 198.155C1260.22 198.952 1265.97 198.599 1271.47 197.118C1276.98 195.636 1282.12 193.057 1286.6 189.535C1291.08 186.012 1294.8 181.62 1297.54 176.622C1301.31 169.668 1303.26 161.876 1303.21 153.968C1303.29 146.206 1301.39 138.552 1297.68 131.734C1294.07 125.108 1288.74 119.581 1282.25 115.734C1275.61 111.949 1268.08 109.992 1260.44 110.065C1252.87 110.021 1245.44 112.029 1238.92 115.876Z" fill="#54616C"/>
16
+ <path d="M1437.73 231.842C1435.46 231.842 1433.48 230.237 1431.78 227.025L1359.28 86.5607C1358.57 85.2523 1358.19 83.7979 1358.14 82.3131C1358.14 78.3471 1360.6 76.3649 1365.51 76.3665H1394.11C1396.25 76.2096 1398.38 76.726 1400.21 77.8432C1402.04 78.9604 1403.47 80.6223 1404.31 82.5955L1437.44 152.548L1470.58 82.5955C1471.41 80.6221 1472.84 78.96 1474.67 77.8427C1476.5 76.7255 1478.63 76.2092 1480.77 76.3665H1509.66C1514.56 76.3665 1517.02 78.3488 1517.02 82.3131C1516.98 83.798 1516.59 85.2524 1515.89 86.5607L1443.38 227.025C1441.88 230.242 1439.99 231.848 1437.73 231.842Z" fill="#54616C"/>
17
+ <path d="M1575.64 227.313C1562.92 221.78 1551.88 212.988 1543.64 201.825C1534.39 189.742 1529.76 173.882 1529.77 154.247C1529.47 139.322 1533.34 124.61 1540.95 111.769C1548.26 99.6351 1558.8 89.778 1571.4 83.3039C1584.71 76.49 1599.49 73.0386 1614.44 73.2509C1628.06 73.1715 1641.5 76.3267 1653.66 82.457C1665.76 88.5181 1676.07 97.6439 1683.54 108.925C1688.24 115.579 1691.61 123.081 1693.46 131.015C1695.08 139.318 1695.84 147.765 1695.73 156.223C1695.85 159.788 1694.75 163.288 1692.61 166.14C1691.57 167.451 1690.22 168.495 1688.7 169.183C1687.17 169.872 1685.5 170.187 1683.82 170.1H1571.96C1572.76 174.633 1574.57 178.926 1577.27 182.655C1579.97 186.383 1583.48 189.45 1587.53 191.623C1595.78 196.141 1605.04 198.484 1614.44 198.429C1621.21 198.602 1627.94 197.446 1634.27 195.029C1639.73 192.77 1644.73 189.505 1648.99 185.404C1650.82 183.598 1653.23 182.496 1655.79 182.291C1657.62 182.335 1659.4 182.926 1660.89 183.99L1679.29 194.754C1680.55 195.267 1681.64 196.121 1682.45 197.222C1683.25 198.323 1683.73 199.625 1683.83 200.983C1683.64 202.967 1682.85 204.846 1681.56 206.365C1664.18 225.81 1641.81 235.532 1614.43 235.531C1601.07 235.498 1587.87 232.7 1575.64 227.313ZM1585.7 118.847C1582.22 121.297 1579.29 124.457 1577.12 128.118C1574.95 131.779 1573.58 135.858 1573.09 140.088H1650.99C1650.37 134.866 1648.42 129.892 1645.32 125.646C1642 121.017 1637.63 117.233 1632.58 114.6C1626.89 111.674 1620.57 110.214 1614.17 110.352C1604 109.934 1593.98 112.924 1585.7 118.847Z" fill="#54616C"/>
18
+ <path d="M1796.47 229.433C1794.75 230.927 1792.51 231.691 1790.24 231.56H1765.32C1764.18 231.66 1763.03 231.509 1761.95 231.118C1760.87 230.726 1759.9 230.104 1759.09 229.294C1758.28 228.484 1757.65 227.507 1757.26 226.431C1756.87 225.355 1756.72 224.206 1756.82 223.065V25.9554C1756.72 24.8141 1756.87 23.6648 1757.26 22.5883C1757.65 21.5117 1758.27 20.5341 1759.08 19.7243C1759.9 18.9144 1760.87 18.2921 1761.95 17.9009C1763.03 17.5097 1764.18 17.3593 1765.32 17.4603H1790.23C1791.37 17.3583 1792.52 17.508 1793.59 17.8989C1794.67 18.2898 1795.65 18.9123 1796.46 19.7224C1797.27 20.5326 1797.89 21.5106 1798.28 22.5876C1798.67 23.6645 1798.82 24.8142 1798.72 25.9554V91.9426C1803.83 85.6595 1810.46 80.7841 1817.98 77.7781C1826.86 74.083 1836.4 72.2528 1846.02 72.4012C1860.51 72.0948 1874.81 75.7671 1887.36 83.0189C1899.13 89.9626 1908.66 100.135 1914.83 112.331C1921.15 125.185 1924.35 139.349 1924.18 153.672C1924.4 168 1921.2 182.174 1914.83 195.013C1908.8 207.081 1899.48 217.197 1887.94 224.194C1875.22 231.541 1860.72 235.263 1846.03 234.958C1836.3 235.013 1826.67 233.084 1817.71 229.289C1808.83 225.518 1802.5 221.082 1798.73 215.981V223.627C1798.79 224.7 1798.62 225.773 1798.23 226.774C1797.84 227.775 1797.24 228.681 1796.47 229.433ZM1808.5 185.823C1816.15 193.657 1826.58 197.573 1839.8 197.569C1845.52 197.787 1851.22 196.803 1856.54 194.681C1861.85 192.56 1866.67 189.348 1870.67 185.253C1874.65 181.046 1877.76 176.086 1879.8 170.664C1881.84 165.242 1882.78 159.467 1882.57 153.677C1882.57 140.461 1878.7 129.79 1870.96 121.663C1863.22 113.536 1852.83 109.476 1839.8 109.482C1826.96 109.482 1816.62 113.542 1808.79 121.663C1800.96 129.783 1797.05 140.455 1797.04 153.677C1797.03 167.271 1800.86 177.985 1808.5 185.823Z" fill="#BAC0C4"/>
19
+ <path d="M2116.48 78.0655C2117.26 78.896 2117.87 79.8763 2118.26 80.9471C2118.65 82.0178 2118.81 83.1567 2118.75 84.2945V217.67C2118.75 240.327 2111.81 258.074 2097.93 270.91C2084.06 283.746 2064.75 290.165 2040.02 290.169C2013.58 290.169 1991.02 283.938 1972.33 271.477C1971.18 270.881 1970.2 269.991 1969.51 268.897C1968.81 267.803 1968.42 266.544 1968.36 265.248C1968.45 263.293 1969.15 261.413 1970.34 259.866L1981.39 243.733C1982.07 242.584 1983.01 241.62 1984.15 240.929C1985.29 240.237 1986.58 239.84 1987.91 239.773C1989.82 239.839 1991.68 240.427 1993.28 241.472C1999.58 245.552 2006.45 248.654 2013.68 250.673C2021.23 252.845 2029.04 253.942 2036.9 253.932C2063.52 253.932 2076.83 241.848 2076.83 217.68V215.132C2065.69 224.387 2051.15 229.012 2033.22 229.009C2018.24 229.314 2003.42 225.804 1990.17 218.81C1978.03 212.33 1968 202.501 1961.28 190.491C1954.68 178.43 1951.27 164.881 1951.37 151.131C1951.15 137.276 1954.57 123.605 1961.28 111.484C1968.02 99.6529 1977.93 89.9408 1989.89 83.4449C2003.15 76.1693 2018.11 72.5559 2033.22 72.976C2051.15 72.976 2065.69 77.6017 2076.83 86.8531V84.2945C2076.73 83.1535 2076.88 82.0044 2077.28 80.9279C2077.67 79.8515 2078.29 78.8738 2079.1 78.0638C2079.91 77.2537 2080.89 76.631 2081.96 76.2393C2083.04 75.8477 2084.19 75.6966 2085.33 75.7968H2110.25C2111.39 75.7335 2112.53 75.9019 2113.6 76.2919C2114.67 76.6818 2115.65 77.2853 2116.48 78.0655ZM2057.44 187.806C2063.9 184.173 2069.24 178.831 2072.87 172.366C2076.61 165.914 2078.56 158.586 2078.53 151.131C2078.63 143.593 2076.73 136.164 2073.01 129.603C2069.35 123.203 2064.01 117.919 2057.58 114.315C2050.9 110.662 2043.38 108.807 2035.77 108.933C2030.09 108.708 2024.42 109.647 2019.11 111.692C2013.8 113.737 2008.96 116.845 2004.9 120.826C2000.96 124.8 1997.87 129.538 1995.82 134.75C1993.78 139.961 1992.82 145.536 1993.01 151.131C1993.01 163.782 1996.88 173.978 2004.63 181.719C2012.37 189.459 2022.75 193.329 2035.77 193.327C2043.35 193.415 2050.82 191.512 2057.44 187.806Z" fill="#BAC0C4"/>
20
+ </g>
21
+ <defs>
22
+ <radialGradient id="paint0_radial_109_183" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(925.696 430.304) rotate(-45.8069) scale(107.497 71.441)">
23
+ <stop stop-color="#6420FF"/>
24
+ <stop offset="1" stop-color="#6420FF" stop-opacity="0"/>
25
+ </radialGradient>
26
+ <radialGradient id="paint1_radial_109_183" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(751.564 379.635) rotate(5.08826) scale(209.212 166.747)">
27
+ <stop offset="0.25" stop-color="#00C4CC"/>
28
+ <stop offset="1" stop-color="#00C4CC" stop-opacity="0"/>
29
+ </radialGradient>
30
+ <radialGradient id="paint2_radial_109_183" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(895.276 417.815) rotate(-38.8493) scale(134.819 92.185)">
31
+ <stop stop-color="#6420FF"/>
32
+ <stop offset="1" stop-color="#6420FF" stop-opacity="0"/>
33
+ </radialGradient>
34
+ <radialGradient id="paint3_radial_109_183" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(753.17 417.815) rotate(-26.1243) scale(155.594 106.39)">
35
+ <stop stop-color="#6420FF"/>
36
+ <stop offset="1" stop-color="#6420FF" stop-opacity="0"/>
37
+ </radialGradient>
38
+ <radialGradient id="paint4_radial_109_183" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(777.256 313.978) rotate(12.4717) scale(310.634 380.98)">
39
+ <stop stop-color="#00C4CC" stop-opacity="0.725916"/>
40
+ <stop stop-color="#00C4CC"/>
41
+ <stop offset="1" stop-color="#00C4CC" stop-opacity="0"/>
42
+ </radialGradient>
43
+ <clipPath id="clip0_109_183">
44
+ <rect width="2120" height="302.497" fill="white" transform="translate(0 0.573242)"/>
45
+ </clipPath>
46
+ </defs>
47
+ </svg>
@@ -0,0 +1,22 @@
1
+ sonar.host.url=https://sonarcloud.io
2
+
3
+ sonar.organization=remove-bg
4
+ sonar.projectKey=remove-bg_ruby
5
+ sonar.projectName=remove.bg Ruby Gem
6
+ sonar.projectVersion=
7
+
8
+ sonar.pullrequest.provider=GitHub
9
+ sonar.pullrequest.github.repository=remove-bg/ruby
10
+
11
+ sonar.sourceEncoding=UTF-8
12
+
13
+ sonar.sources=lib,tasks,Rakefile
14
+ sonar.tests=spec
15
+ sonar.exclusions=spec,resources,gemfiles,examples,coverage,bin
16
+ sonar.test.inclusions=**/*_spec.rb
17
+ sonar.testExecutionReportPaths=rspec/test-report.xml
18
+ sonar.ruby.coverage.reportPaths=coverage/coverage.json
19
+ sonar.ruby.rubocop.reportPaths=rubocop-result.json
20
+
21
+ sonar.links.ci=https://app.circleci.com/pipelines/github/remove-bg/ruby/
22
+ sonar.links.scm=https://github.com/remove-bg/remove-bg/ruby/
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ desc "Bump version of this gem"
4
+ task :version, [:version] do |_task, args|
5
+ args.with_defaults(version: nil)
6
+
7
+ if args[:version].nil?
8
+ puts "Version: #{RemoveBg::VERSION}"
9
+ exit 0
10
+ end
11
+
12
+ unless /(\d+)\.(\d+)\.(\d+)/.match?(args[:version])
13
+ puts "#{args[:version]} needs to be a major/minor/patch SemVer version number!"
14
+ exit 1
15
+ end
16
+
17
+ version_file_path = "lib/remove_bg/version.rb"
18
+ version_pattern = /VERSION = "(.+)"/
19
+
20
+ # Read the current version from file
21
+ content = File.read(version_file_path)
22
+
23
+ unless content.match(version_pattern)
24
+ puts "Error in #{version_file_path} file! Cannot determine current version!"
25
+ exit 1
26
+ end
27
+
28
+ puts "Setting gem version to #{args[:version]}..."
29
+ File.open(version_file_path, "w") do |file|
30
+ file.puts content.sub(version_pattern, %(VERSION = "#{args[:version]}"))
31
+ end
32
+
33
+ puts "Version set to #{args[:version]}"
34
+ end