cobench 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,23 @@
1
+ Feature: Gem Package
2
+ As a source code writer I want to be able to
3
+ package the Gem into .gem file
4
+
5
+ Scenario: Gem can be packaged
6
+ Given I have a "execs.rb" file with content:
7
+ """
8
+ #!/usr/bin/env ruby
9
+ require 'rubygems'
10
+ spec = Gem::Specification::load('./spec.rb')
11
+ if spec.executables.empty?
12
+ fail 'no executables: ' + File.read('./spec.rb')
13
+ end
14
+ """
15
+ When I run bash with:
16
+ """
17
+ cd cobench
18
+ gem build cobench.gemspec
19
+ gem specification --ruby cobench-*.gem > ../spec.rb
20
+ cd ..
21
+ ruby execs.rb
22
+ """
23
+ Then Exit code is zero
@@ -0,0 +1,86 @@
1
+ # Copyright (c) 2022 Yegor Bugayenko
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the 'Software'), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in all
11
+ # copies or substantial portions of the Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ # SOFTWARE.
20
+
21
+ require 'nokogiri'
22
+ require 'tmpdir'
23
+ require 'slop'
24
+ require 'English'
25
+
26
+ Before do
27
+ @cwd = Dir.pwd
28
+ @dir = Dir.mktmpdir('test')
29
+ FileUtils.mkdir_p(@dir)
30
+ Dir.chdir(@dir)
31
+ @opts = Slop.parse ['-v'] do |o|
32
+ o.bool '-v', '--verbose'
33
+ end
34
+ end
35
+
36
+ After do
37
+ Dir.chdir(@cwd)
38
+ FileUtils.rm_rf(@dir)
39
+ end
40
+
41
+ Given(/^I have a "([^"]*)" file with content:$/) do |file, text|
42
+ FileUtils.mkdir_p(File.dirname(file)) unless File.exist?(file)
43
+ File.write(file, text.gsub(/\\xFF/, 0xFF.chr))
44
+ end
45
+
46
+ When(%r{^I run bin/cobench with "([^"]*)"$}) do |arg|
47
+ home = File.join(File.dirname(__FILE__), '../..')
48
+ @stdout = `ruby -I#{home}/lib #{home}/bin/cobench #{arg}`
49
+ @exitstatus = $CHILD_STATUS.exitstatus
50
+ end
51
+
52
+ Then(/^Stdout contains "([^"]*)"$/) do |txt|
53
+ raise "STDOUT doesn't contain '#{txt}':\n#{@stdout}" unless @stdout.include?(txt)
54
+ end
55
+
56
+ Then(/^Stdout is empty$/) do
57
+ raise "STDOUT is not empty:\n#{@stdout}" unless @stdout == ''
58
+ end
59
+
60
+ Then(/^Exit code is zero$/) do
61
+ raise "Non-zero exit #{@exitstatus}:\n#{@stdout}" unless @exitstatus.zero?
62
+ end
63
+
64
+ Then(/^Exit code is not zero$/) do
65
+ raise 'Zero exit code' if @exitstatus.zero?
66
+ end
67
+
68
+ When(/^I run bash with "([^"]*)"$/) do |text|
69
+ FileUtils.copy_entry(@cwd, File.join(@dir, 'cobench'))
70
+ @stdout = `#{text}`
71
+ @exitstatus = $CHILD_STATUS.exitstatus
72
+ end
73
+
74
+ When(/^I run bash with:$/) do |text|
75
+ FileUtils.copy_entry(@cwd, File.join(@dir, 'cobench'))
76
+ @stdout = `#{text}`
77
+ @exitstatus = $CHILD_STATUS.exitstatus
78
+ end
79
+
80
+ Given(/^It is Unix$/) do
81
+ pending if Gem.win_platform?
82
+ end
83
+
84
+ Given(/^It is Windows$/) do
85
+ pending unless Gem.win_platform?
86
+ end
@@ -0,0 +1,21 @@
1
+ # Copyright (c) 2022 Yegor Bugayenko
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the 'Software'), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in all
11
+ # copies or substantial portions of the Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ # SOFTWARE.
20
+
21
+ require 'simplecov'
@@ -0,0 +1,38 @@
1
+ # Copyright (c) 2022 Yegor Bugayenko
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the 'Software'), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in all
11
+ # copies or substantial portions of the Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ # SOFTWARE.
20
+
21
+ # Mask to apply for a repo name.
22
+ # Author:: Yegor Bugayenko (yegor256@gmail.com)
23
+ # Copyright:: Copyright (c) 2022 Yegor Bugayenko
24
+ # License:: MIT
25
+ class Cobench::Mask
26
+ def initialize(txt)
27
+ @org, @repo = txt.split('/')
28
+ end
29
+
30
+ def matches?(repo)
31
+ org, repo = repo.split('/')
32
+ return false if ['', nil].include?(org)
33
+ return false if ['', nil].include?(repo)
34
+ return false if org != @org && @org != '*'
35
+ return false if repo != @repo && @repo != '*'
36
+ true
37
+ end
38
+ end
@@ -0,0 +1,54 @@
1
+ # Copyright (c) 2022 Yegor Bugayenko
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the 'Software'), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in all
11
+ # copies or substantial portions of the Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ # SOFTWARE.
20
+
21
+ require 'iri'
22
+ require_relative '../mask'
23
+
24
+ # Pulls in GitHub API.
25
+ # Author:: Yegor Bugayenko (yegor256@gmail.com)
26
+ # Copyright:: Copyright (c) 2022 Yegor Bugayenko
27
+ # License:: MIT
28
+ class Cobench::Pulls
29
+ def initialize(api, user, opts)
30
+ @api = api
31
+ @user = user
32
+ @opts = opts
33
+ end
34
+
35
+ def take(loog)
36
+ from = (Time.now - (60 * 60 * 24 * @opts[:days])).strftime('%Y-%m-%d')
37
+ q = "#{@user} in:comments type:pr author:#{@user} is:merged closed:>#{from}"
38
+ json = @api.search_issues(q)
39
+ total = json.items.count do |p|
40
+ pr = p.pull_request.url.split('/')[-1]
41
+ repo = p.repository_url.split('/')[-2..-1].join('/')
42
+ if @opts[:include].none? { |m| Cobench::Mask.new(m).matches?(repo) }
43
+ loog.debug("Excluding #{repo}##{pr} due to lack of --include")
44
+ next
45
+ end
46
+ if @opts[:exclude].any? { |m| Cobench::Mask.new(m).matches?(repo) }
47
+ loog.debug("Excluding #{repo}##{pr} due to --exclude")
48
+ next
49
+ end
50
+ loog.debug("Including #{repo}#{pr}")
51
+ end
52
+ [total, Iri.new('https://github.com/search').add(q: q)]
53
+ end
54
+ end
@@ -0,0 +1,27 @@
1
+ # Copyright (c) 2022 Yegor Bugayenko
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the 'Software'), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in all
11
+ # copies or substantial portions of the Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ # SOFTWARE.
20
+
21
+ # Cobench main module.
22
+ # Author:: Yegor Bugayenko (yegor256@gmail.com)
23
+ # Copyright:: Copyright (c) 2022 Yegor Bugayenko
24
+ # License:: MIT
25
+ module Cobench
26
+ VERSION = '0.0.1'.freeze
27
+ end
data/logo.svg ADDED
@@ -0,0 +1,40 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="39px" height="56px" viewBox="0 0 39 56" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>Group</title>
4
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
5
+ <g id="shutterstock_689919184" transform="translate(-266.000000, -257.000000)">
6
+ <g id="Group" transform="translate(266.570853, 257.024983)">
7
+ <path d="M5.26114736,52.8210167 C5.02214736,52.5840167 4.77614736,52.3690167 4.56814736,52.1230167 C4.36114736,51.8780167 4.18814736,51.6030167 4.00614736,51.3360167 C3.81014736,51.0480167 3.77414736,50.7380167 3.90014736,50.4100167 C3.96614736,50.2370167 4.01414736,50.0540167 4.10114736,49.8930167 C4.37314736,49.3910167 4.54614736,48.8820167 4.41414736,48.2970167 C4.35214736,48.0210167 4.45214736,47.7570167 4.56014736,47.4920167 C4.86114736,46.7550167 5.21714736,46.0590167 5.79514736,45.4960167 C5.85914736,45.4330167 5.90314736,45.3490167 6.00014736,45.2120167 C6.00114736,44.9990167 5.99214736,44.7230167 6.00714736,44.4480167 C6.02014736,44.2190167 6.03614736,43.9840167 6.09814736,43.7650167 C6.23614736,43.2770167 6.39314736,42.7930167 6.56614736,42.3170167 C6.60814736,42.2010167 6.73114736,42.0580167 6.84114736,42.0320167 C7.20614736,41.9450167 7.37514736,41.7640167 7.39614736,41.3700167 C7.41814736,40.9570167 7.50614736,40.5420167 7.61214736,40.1410167 C8.13414736,38.1820167 8.12714736,36.1930167 7.91414736,34.2020167 C7.83114736,33.4230167 7.64614736,32.6490167 7.43914736,31.8910167 C6.91314736,29.9690167 6.34914736,28.0580167 5.80114736,26.1420167 C5.44314736,24.8920167 5.10614736,23.6370167 5.04314736,22.3310167 C5.00114736,21.4520167 4.96514736,20.5700167 4.97514736,19.6910167 C4.98014736,19.2320167 5.06914736,18.7700167 5.15814736,18.3170167 C5.32814736,17.4550167 5.50314736,16.5920167 5.72014736,15.7400167 C5.85614736,15.2040167 6.06714736,14.6860167 6.37514736,14.2150167 C6.50114736,14.0210167 6.62214736,13.8180167 6.70314736,13.6030167 C7.12414736,12.4960167 7.89614736,11.6230167 8.61014736,10.7130167 C8.80914736,10.4590167 9.06614736,10.2510167 9.29614736,10.0230167 C9.49314736,9.82801673 9.71214736,9.65001673 9.88414736,9.43501673 C10.3891474,8.80801673 11.0191474,8.35201673 11.7311474,7.99101673 C12.4751474,7.61401673 13.2051474,7.20901673 13.9461474,6.82701673 C15.6791474,5.93201673 17.5171474,5.56901673 19.4611474,5.76201673 C20.2451474,5.84001673 21.0291474,5.93001673 21.8141474,5.98101673 C22.8411474,6.04701673 23.8131474,6.36201673 24.8001474,6.60801673 C25.4321474,6.76601673 26.0181474,7.05701673 26.5761474,7.39201673 C27.1321474,7.72601673 27.6671474,8.09601673 28.2191474,8.43701673 C29.1801474,9.03301673 29.9531474,9.82301673 30.6261474,10.7210167 C31.2671474,11.5760167 31.9041474,12.4360167 32.2481474,13.4630167 C32.5561474,14.3830167 32.8771474,15.3000167 32.9771474,16.2770167 C33.0661474,17.1530167 33.1541474,18.0310167 33.3031474,18.8980167 C33.4691474,19.8640167 33.4441474,20.8350167 33.4621474,21.8040167 C33.4721474,22.3100167 33.4481474,22.8390167 33.3101474,23.3200167 C32.9511474,24.5650167 32.6541474,25.8280167 32.1981474,27.0460167 C31.8071474,28.0920167 31.3421474,29.0970167 30.7901474,30.0660167 C30.4441474,30.6740167 30.0451474,31.2340167 29.5241474,31.7080167 C29.1811474,32.0190167 28.8581474,32.3550167 28.5501474,32.7010167 C28.0251474,33.2920167 27.4931474,33.8710167 26.8051474,34.2810167 C26.0641474,35.0490167 25.0771474,35.5330167 24.3951474,36.3720167 C24.2811474,36.5120167 24.1151474,36.6140167 23.9611474,36.7160167 C22.9201474,37.4080167 21.9611474,38.2160167 20.8681474,38.8340167 C20.4701474,39.0600167 20.1301474,39.3890167 19.7661474,39.6740167 C19.4021474,39.9590167 19.0481474,40.2580167 18.6781474,40.5350167 C17.1791474,41.6590167 16.1681474,43.1120167 15.6881474,44.9270167 C15.6531474,45.0590167 15.5971474,45.2330167 15.6521474,45.3330167 C15.9271474,45.8400167 15.6851474,46.1990167 15.3691474,46.5620167 C15.2821474,46.6610167 15.2491474,46.8100167 15.2051474,46.9410167 C14.7171474,48.3920167 14.1231474,49.8000167 13.5081474,51.2000167 C13.4311474,51.3730167 13.3731474,51.5520167 13.4381474,51.7350167 C13.5701474,52.1050167 13.3891474,52.3710167 13.1421474,52.5930167 C12.8671474,52.8400167 12.5591474,53.0500167 12.2751474,53.2860167 C12.0541474,53.4690167 11.8101474,53.5680167 11.5251474,53.6140167 C10.4151474,53.7930167 9.36014736,54.1230167 8.45814736,54.8310167 C8.04214736,55.1570167 7.52814736,55.2560167 7.04014736,55.3700167 C6.23614736,55.5570167 5.44614736,55.0050167 5.26014736,54.1860167 C5.21014736,53.9610167 5.17914736,53.7270167 5.17914736,53.4970167 C5.17914736,53.2730167 5.23114736,53.0490167 5.26114736,52.8210167" id="Fill-465" fill="#F0C800"></path>
8
+ <path d="M13.3961474,15.8510167 C15.8321474,15.6620167 19.7831474,10.8930167 15.7461474,10.0780167 C13.4701474,9.61801673 10.0461474,11.9770167 11.0371474,14.5270167 C11.3871474,15.4280167 12.4331474,15.9260167 13.3961474,15.8510167" id="Fill-466" fill="#FFFFFF"></path>
9
+ <path d="M20.3631474,12.4110167 C21.7031474,13.1470167 25.4051474,12.0060167 23.5721474,10.1950167 C22.5381474,9.17401673 19.9381474,9.23501673 19.5821474,10.9090167 C19.4571474,11.5010167 19.8331474,12.1200167 20.3631474,12.4110167" id="Fill-467" fill="#FFFFFF"></path>
10
+ <path d="M5.26114736,52.8210167 C5.02214736,52.5840167 4.77614736,52.3690167 4.56814736,52.1230167 C4.36114736,51.8780167 4.18814736,51.6030167 4.00614736,51.3360167 C3.81014736,51.0480167 3.77414736,50.7380167 3.90014736,50.4100167 C3.96614736,50.2370167 4.01414736,50.0540167 4.10114736,49.8930167 C4.37314736,49.3910167 4.54614736,48.8820167 4.41414736,48.2970167 C4.14114736,47.0880167 6.48014736,43.4630167 7.76214736,43.3250167 C8.90714736,43.2010167 9.76514736,44.7280167 10.7881474,45.0460167 C12.3761474,45.5400167 14.5361474,44.5290167 14.9731474,46.9450167 C15.2571474,48.5110167 12.9571474,50.3810167 13.4381474,51.7350167 C13.5701474,52.1050167 13.3891474,52.3710167 13.1421474,52.5930167 C12.8671474,52.8400167 12.5591474,53.0500167 12.2751474,53.2860167 C12.0541474,53.4690167 11.8101474,53.5680167 11.5251474,53.6140167 C10.4151474,53.7930167 9.36014736,54.1230167 8.45814736,54.8310167 C8.04214736,55.1570167 7.52814736,55.2560167 7.04014736,55.3700167 C6.23614736,55.5570167 5.44614736,55.0050167 5.26014736,54.1860167 C5.21014736,53.9610167 5.17914736,53.7270167 5.17914736,53.4970167 C5.17914736,53.2730167 5.23114736,53.0490167 5.26114736,52.8210167" id="Fill-468" fill="#CCCCCC"></path>
11
+ <path d="M23.9321474,26.0280167 C24.0281474,25.9690167 24.1221474,25.9360167 24.1791474,25.8710167 C24.6191474,25.3670167 24.8281474,24.7700167 24.8361474,24.1070167 C24.8381474,23.9800167 24.7591474,23.8460167 24.6991474,23.7240167 C24.6251474,23.5750167 24.3591474,23.4740167 24.2251474,23.5390167 C24.0611474,23.6180167 23.8861474,23.6880167 23.7471474,23.8000167 C23.2081474,24.2340167 22.7321474,24.7290167 22.3251474,25.3170167 C22.8331474,25.6450167 23.3501474,25.9250167 23.9321474,26.0280167 Z M9.87714736,43.6010167 C10.2681474,44.0380167 10.6701474,44.3350167 11.1331474,44.5490167 C11.2121474,44.5860167 11.3061474,44.5940167 11.3951474,44.6000167 C11.4311474,44.6030167 11.4931474,44.5760167 11.5051474,44.5470167 C11.7411474,43.9540167 11.9711474,43.3590167 12.2031474,42.7640167 C12.0121474,42.2140167 11.4421474,41.9900167 11.1401474,41.5330167 C11.0991474,41.4700167 10.9801474,41.4590167 10.8631474,41.4100167 C10.4941474,42.0890167 10.0711474,42.7430167 9.87714736,43.6010167 Z M12.2951474,38.3340167 C12.0241474,38.8090167 11.7461474,39.2800167 11.4841474,39.7600167 C11.1241474,40.4190167 11.1431474,40.5770167 11.6571474,41.0750167 C11.8521474,41.2650167 12.0741474,41.4300167 12.2891474,41.5990167 C12.4391474,41.7170167 12.6721474,41.6720167 12.7591474,41.5120167 C13.1521474,40.7920167 13.4831474,40.0460167 13.7721474,39.2990167 C13.2271474,38.7470167 13.0421474,38.6270167 12.2951474,38.3340167 Z M23.5731474,35.1230167 C23.5661474,35.0170167 23.5071474,34.9450167 23.3951474,34.9490167 C22.5811474,34.9730167 21.8491474,34.6930167 21.1451474,34.3300167 C20.5701474,34.0330167 20.0131474,33.7020167 19.4481474,33.3880167 C19.2981474,33.3040167 19.0361474,33.3250167 18.9241474,33.4310167 C18.2151474,34.1040167 17.6021474,34.8530167 17.1391474,35.7180167 C17.0531474,35.8800167 17.1141474,36.1220167 17.2761474,36.1910167 C18.1671474,36.5710167 19.0561474,36.9550167 19.9561474,37.3130167 C20.3201474,37.4580167 20.6951474,37.3890391 21.0141474,37.1620167 C21.8421474,36.5710167 22.6621474,35.9690167 23.4781474,35.3630167 C23.5371474,35.3200167 23.5431474,35.2050167 23.5731474,35.1230167 Z M12.5481474,44.9480167 C12.6231474,45.0360167 12.6681474,45.1220167 12.7391474,45.1640167 C13.1081474,45.3830167 13.5311474,45.4060167 13.9411474,45.4530167 C14.0521474,45.4660167 14.2111474,45.3730167 14.2901474,45.2790167 C14.4041474,45.1410167 14.4971474,44.9670167 14.5451474,44.7940167 C14.8811474,43.5740167 15.5251474,42.5040167 16.1561474,41.4260167 C16.5361474,40.7770167 17.0151474,40.2230167 17.6011474,39.7560167 C18.1081474,39.3530167 18.6201474,38.9550167 19.1141474,38.5360167 C19.3191474,38.3620167 19.5751474,38.2140167 19.6471474,37.8920167 C19.3531474,37.6770167 18.9801474,37.6660167 18.6491474,37.5440167 C18.3011474,37.4170167 17.9591474,37.2750167 17.6171474,37.1340167 C17.2811474,36.9950167 16.9481474,36.8490167 16.5851474,36.6950167 C16.1031474,37.3170167 15.8001474,37.9850167 15.5271474,38.6700167 C15.4671474,38.8210167 15.5981474,39.0870167 15.7551474,39.1220167 C16.0671474,39.1900167 16.3851474,39.2330167 16.6951474,39.3090167 C16.7621474,39.3260167 16.8391474,39.4330167 16.8511474,39.5080167 C16.8591474,39.5660167 16.7791474,39.6910167 16.7281474,39.6970167 C16.3631474,39.7410167 15.9871474,39.8230167 15.6311474,39.7760167 C15.0491474,39.6980167 14.7881474,39.9880167 14.5891474,40.4610167 C14.3221474,41.0930167 14.0331474,41.7140167 13.9451474,42.4440167 C14.1861474,42.5960167 14.4221474,42.7330167 14.6411474,42.8940167 C14.6901474,42.9290167 14.6891474,43.0470167 14.6881474,43.1270167 C14.6881474,43.1560167 14.6231474,43.2090167 14.5871474,43.2100167 C14.2691474,43.2180167 13.9501474,43.2160167 13.6301474,43.2180167 C13.3381474,43.4090167 13.2771474,43.7460167 13.1211474,44.0250167 C12.9431474,44.3430167 12.7371474,44.6460167 12.5481474,44.9480167 Z M15.4591474,36.0320167 C15.1081474,35.6950167 14.7681474,35.3830167 14.4491474,35.0530167 C14.3601474,34.9610167 14.3111474,34.8150167 14.2841474,34.6860167 C14.2691474,34.6100167 14.3111474,34.4960167 14.3681474,34.4400167 C14.4221474,34.3870167 14.5521474,34.3450167 14.6071474,34.3750167 C14.8071474,34.4820167 15.0101474,34.6000167 15.1741474,34.7540167 C15.3771474,34.9440167 15.5441474,35.1720167 15.9031474,35.2240167 C16.6171474,34.4220167 17.2071474,33.4830167 17.9021474,32.6300167 C17.9271474,32.6000167 17.9141474,32.5390167 17.9291474,32.3940167 C17.8201474,32.3250167 17.6611474,32.2320167 17.5111474,32.1250167 C17.3991474,32.0450167 17.2991474,31.9480167 17.1971474,31.8550167 C17.0961474,31.7640167 17.0911474,31.5350167 17.1931474,31.4880167 C17.2691474,31.4530167 17.3631474,31.4170167 17.4421474,31.4300167 C17.8511474,31.4970167 18.1481474,31.8890167 18.6171474,31.8410167 C19.1131474,31.3760167 19.6221474,30.9060167 20.1221474,30.4270167 C20.2211474,30.3330167 20.2881474,30.2060167 20.3701474,30.0940167 C20.4451474,29.9930167 20.4191474,29.7830167 20.3161474,29.7310167 C20.1521474,29.6490167 19.9731474,29.5910167 19.8191474,29.4940167 C19.5861474,29.3470167 19.3661474,29.1780167 19.1441474,29.0140167 C19.0541474,28.9470167 19.0391474,28.7340167 19.1021474,28.6340167 C19.1621474,28.5410167 19.3761474,28.4790167 19.4781474,28.5230167 C19.6051474,28.5780167 19.7331474,28.6310167 19.8581474,28.6910167 C20.1501474,28.8300167 20.4381474,28.9790167 20.7331474,29.1140167 C21.0451474,29.2570167 21.2961474,29.2300167 21.4921474,29.0080167 C22.0751474,28.3490167 22.6481474,27.6800167 23.2231474,27.0140167 C23.2531474,26.9800167 23.2861474,26.9300167 23.2821474,26.8910167 C23.2731474,26.8040167 23.2701474,26.6820167 23.2151474,26.6420167 C23.0291474,26.5070167 22.8281474,26.3910167 22.6221474,26.2870167 C22.3761474,26.1620167 22.1181474,26.0580167 21.8671474,25.9400167 C21.7381474,25.8790167 21.6641474,25.6600167 21.7131474,25.4660167 C21.7361474,25.3770167 21.8161474,25.2830167 21.8001474,25.2070167 C21.6801474,24.6560167 21.9191474,24.2160167 22.1971474,23.7770167 C22.2951474,23.6240167 22.3711474,23.4490167 22.4201474,23.2730167 C22.5471474,22.8110167 22.2371474,22.0870167 21.5271474,22.1860167 C20.8951474,22.2740167 20.3791474,22.5220167 20.1101474,23.1480167 C19.9261474,23.5760167 19.6981474,23.9760167 19.3351474,24.2860167 C19.1541474,24.4400167 18.8721474,24.4020167 18.7331474,24.2010167 C18.5931474,23.9980167 18.5501474,23.7760167 18.5761474,23.5420167 C18.6181474,23.1680167 18.7671474,22.8340167 18.9591474,22.5090167 C19.1221474,22.2330167 19.2671474,21.9350167 19.3511474,21.6270167 C19.4621474,21.2190167 19.0671474,20.6510167 18.5401474,20.7670167 C17.8761474,20.9130167 17.3101474,21.1810167 17.2341474,21.9880167 C17.2081474,22.2590167 17.1061474,22.5300167 17.0021474,22.7850167 C16.8311474,23.2040167 16.4701474,23.4090167 16.0531474,23.5150167 C15.9751474,23.5350167 15.8611474,23.5030167 15.7941474,23.4540167 C15.5971474,23.3120167 15.4571474,23.1020167 15.5041474,22.8640167 C15.5851474,22.4570167 15.7051474,22.0560167 15.8381474,21.6620167 C15.9321474,21.3800167 15.9321474,21.1100167 15.8151474,20.8500167 C15.6831474,20.5560167 15.5351474,20.2660167 15.3621474,19.9940167 C15.1521474,19.6610167 14.6131474,19.7310167 14.4571474,20.1110167 C14.2991474,20.4960167 14.1361474,20.8840167 14.0351474,21.2860167 C13.7971474,22.2290167 13.5751474,23.1800167 13.5881474,24.1600167 C13.6051474,25.5040167 13.6611474,26.8470167 13.6801474,28.1910167 C13.6941474,29.2540167 13.6941474,30.3170167 13.6701474,31.3800167 C13.6301474,33.1620167 13.6161474,33.1610167 13.1821474,34.9400167 C12.9861474,35.7430167 12.8081474,36.5510167 12.6311474,37.3160167 C12.9451474,37.7600167 13.3361474,38.0020167 13.7581474,38.2020167 C13.9181474,38.2780167 14.1941474,38.2310167 14.2661474,38.1070167 C14.6591474,37.4260167 15.0501474,36.7440167 15.4591474,36.0320167 Z M19.7501474,32.5770167 C19.8001474,32.6540167 19.8331474,32.7560167 19.9041474,32.8020167 C20.4461474,33.1560167 20.9661474,33.5620167 21.5491474,33.8310167 C22.5781474,34.3050167 23.6711474,34.4910167 24.7961474,34.1970167 C25.0121474,34.1400167 25.2351474,34.0350167 25.4071474,33.8950167 C25.9831474,33.4280167 26.5461474,32.9440167 27.0971474,32.4490167 C27.5111474,32.0770167 27.9061474,31.6850167 28.3961474,31.4090167 C28.7691474,31.1990167 29.0521474,30.8970167 29.2801474,30.5410167 C29.5041474,30.1900167 29.7411474,29.8450167 29.9441474,29.4820167 C30.6501474,28.2200167 31.0931474,26.8510167 31.5191474,25.4810167 C32.0181474,23.8760167 32.2501474,22.2330167 32.0241474,20.5480167 C31.9871474,20.2720167 31.9851474,19.9930167 31.9571474,19.7160167 C31.8361474,18.5180167 31.7621474,17.3140167 31.5391474,16.1280167 C31.3581474,15.1680167 31.1161474,14.2090167 30.6421474,13.3630167 C30.1921474,12.5610167 29.6281474,11.8090167 29.0251474,11.1110167 C27.7571474,9.64601673 26.1341474,8.66701673 24.3591474,7.92901673 C24.1481474,7.84101673 23.9191474,7.79001673 23.6951474,7.74001673 C22.9731474,7.57801673 22.2151474,7.51201673 21.5361474,7.24501673 C20.8631474,6.98001673 20.1921474,6.94601673 19.5001474,6.89501673 C17.4561474,6.74401673 15.5441474,7.18301673 13.7421474,8.14301673 C13.3751474,8.33901673 13.0201474,8.56401673 12.6381474,8.72701673 C12.2921474,8.87601673 12.0001474,9.08501673 11.6981474,9.30301673 C10.7871474,9.96001673 10.0181474,10.7530167 9.31314736,11.6200167 C7.53414736,13.8100167 6.54014736,16.3080167 6.35814736,19.1230167 C6.22214736,21.2180167 6.44214736,23.2800167 7.03214736,25.2960167 C7.43514736,26.6730167 7.82514736,28.0550167 8.25214736,29.4230167 C8.73914736,30.9810167 9.02314736,32.5650167 9.26114736,34.1680167 C9.44614736,35.4170167 9.33114736,36.6680167 9.29114736,37.9150167 C9.27014736,38.5500167 9.21614736,39.2260167 8.90414736,39.8070167 C8.44914736,40.6550167 8.41014736,41.5790167 8.32014736,42.4970167 C8.31414736,42.5620167 8.40314736,42.6580167 8.47214736,42.7030167 C8.58914736,42.7790167 8.72614736,42.8110167 8.86114736,42.7310167 C8.90114736,42.7070167 8.94814736,42.6870167 8.97314736,42.6520167 C9.43314736,42.0130167 9.88514736,41.3730167 10.1521474,40.6180167 C10.6291474,39.2640167 11.1271474,37.9180167 11.6201474,36.5700167 C12.2771474,34.7690167 12.6591474,32.9220167 12.5711474,30.9940167 C12.5611474,30.7630167 12.5681474,30.5300167 12.5821474,30.2990167 C12.6741474,28.8180167 12.6471474,27.3400167 12.5341474,25.8600167 C12.4841474,25.2150167 12.4471474,24.5590167 12.5021474,23.9160167 C12.6091474,22.6680167 12.9011474,21.4470167 13.1851474,20.2290167 C13.3131474,19.6840167 13.5511474,19.1800167 13.9281474,18.7530167 C14.2291474,18.4120167 14.6121474,18.2590167 15.0501474,18.3470167 C15.7051474,18.4790167 16.2881474,18.7420167 16.5941474,19.4010167 C16.6721474,19.5680167 16.7651474,19.7300167 16.8581474,19.8900167 C16.9421474,20.0370167 17.1871474,20.1190167 17.3421474,20.0520167 C17.7251474,19.8880167 18.1021474,19.7110167 18.4881474,19.5540167 C19.1851474,19.2700167 19.9661474,19.5430167 20.2051474,20.2390167 C20.4351474,20.9060167 20.6571474,20.9880167 21.3271474,20.8830167 C22.2661474,20.7370167 23.0801474,20.9840167 23.4981474,21.9630167 C23.5301474,22.0380167 23.6201474,22.0880167 23.6841474,22.1500167 C23.9161474,22.2480167 24.1371474,22.1160167 24.3631474,22.1150167 C24.6401474,22.1150167 24.9201474,22.1160167 25.1941474,22.1520167 C25.7981474,22.2300167 26.3961474,22.2030167 26.9961474,22.1250167 C27.4561474,22.0650167 27.9161474,22.0120167 28.3781474,21.9670167 C28.4621474,21.9590167 28.5731474,21.9760167 28.6321474,22.0270167 C28.6871474,22.0750167 28.7351474,22.2310167 28.7081474,22.2570167 C28.5771474,22.3810167 28.4341474,22.5330167 28.2701474,22.5730167 C27.7761474,22.6950167 27.2701474,22.7700167 26.7691474,22.8620167 C26.5461474,22.9040167 26.3061474,22.9000167 26.0971474,23.1170167 C26.0241474,24.0930167 25.9091474,25.1000167 25.3661474,26.0010167 C25.2301474,26.2270167 25.3521474,26.4500167 25.6021474,26.5370167 C26.2711474,26.7710167 26.9461474,26.8790167 27.6471474,26.6790167 C27.7771474,26.6420167 27.9191474,26.6470167 28.0551474,26.6350167 C28.1841474,26.6240167 28.2341474,26.6810167 28.2071474,26.8010167 C28.1971474,26.8440167 28.2061474,26.8990167 28.1821474,26.9300167 C28.1271474,27.0010167 28.0681474,27.0970167 27.9931474,27.1200167 C27.2801474,27.3280167 26.5431474,27.5280167 25.8111474,27.3510167 C24.4211474,27.0160167 24.5421474,27.2330167 23.7871474,28.0070167 C23.5611474,28.2390167 23.3161474,28.4560167 23.1041474,28.7000167 C22.8921474,28.9440167 22.7081474,29.2110167 22.5181474,29.4730167 C22.4131474,29.6180167 22.4971474,29.8450167 22.6811474,29.9310167 C22.8051474,29.9890167 22.9271474,30.0680167 23.0591474,30.0940167 C23.5131474,30.1810167 23.9681474,30.2700167 24.4271474,30.3190167 C25.2101474,30.4030167 25.9951474,30.4550167 26.7781474,30.5340167 C26.8371474,30.5400167 26.9271474,30.6570167 26.9271474,30.7210167 C26.9261474,30.7960167 26.8561474,30.9070167 26.7881474,30.9360167 C26.6221474,31.0060167 26.4401474,31.0780167 26.2651474,31.0780167 C25.4301474,31.0780167 24.6041474,30.9560167 23.7741474,30.8720167 C23.0381474,30.7970167 22.4101474,30.2730167 21.6361474,30.3970167 C21.0591474,30.8670167 20.7411474,31.5810167 20.1181474,32.0100167 C20.0071474,32.0860167 19.9251474,32.2110167 19.8481474,32.3250167 C19.7991474,32.3980167 19.7821474,32.4920167 19.7501474,32.5770167 Z M7.94814736,49.7730167 L7.90814736,49.7420167 L7.97814736,49.7420167 C8.02014736,49.9490167 8.19014736,50.0450167 8.35014736,50.1220167 C8.64214736,50.2600167 8.95314736,50.3580167 9.24614736,50.4950167 C9.30214736,50.5210167 9.34414736,50.6510167 9.33414736,50.7250167 C9.32314736,50.8030167 9.25714736,50.9030167 9.18714736,50.9380167 C9.06814736,50.9970167 8.91614736,51.0620167 8.79714736,51.0370167 C8.21014736,50.9100167 7.61314736,50.8340167 7.04414736,50.6120167 C6.48614736,50.3940167 5.90414736,50.2340167 5.32414736,50.0810167 C5.24114736,50.0590167 5.09014736,50.2000167 5.00914736,50.2980167 C4.96814736,50.3480167 4.97914736,50.4890167 5.02114736,50.5540167 C5.35514736,51.0640167 5.74814736,51.5090167 6.33614736,51.7470167 C6.59314736,51.8510167 6.83914736,51.9860167 7.08114736,52.1230167 C8.37914736,52.8580167 9.75014736,52.8110167 11.1341474,52.4780167 C11.3901474,52.4170167 11.6661474,52.2540167 11.8331474,52.0550167 C12.1881474,51.6320167 12.5341474,51.1940167 12.7591474,50.6750167 C13.0361474,50.0370167 13.3341474,49.4090167 13.6301474,48.7800167 C13.8711474,48.2720167 14.0211474,47.7410167 14.0751474,47.1810167 C14.1001474,46.9160167 13.9821474,46.7100167 13.7391474,46.6580167 C13.1951474,46.5430167 12.6481474,46.4390167 12.1031474,46.3300167 C11.9221474,46.2930167 11.7211474,46.2900167 11.5641474,46.2070167 C10.9911474,45.9040167 10.4161474,45.5990167 9.87514736,45.2450167 C9.29414736,44.8640167 8.75214736,44.4240167 8.18914736,44.0160167 C7.96514736,43.8530167 7.73114736,43.7030167 7.49914736,43.5530167 C7.40014736,43.4880167 7.18414736,43.5680167 7.14714736,43.6800167 C7.08914736,43.8550167 7.02914736,44.0300167 6.98514736,44.2090167 C6.90114736,44.5530167 6.96414736,44.8480167 7.28614736,45.0560167 C8.06414736,45.5570167 8.84214736,46.0610167 9.61614736,46.5690167 C9.92414736,46.7720167 10.2281474,46.9830167 10.5201474,47.2080167 C10.5731474,47.2490167 10.5801474,47.3760167 10.5741474,47.4610167 C10.5651474,47.5800167 10.3791474,47.7010167 10.2641474,47.6800167 C9.34714736,47.5100167 8.46914736,47.2370167 7.69914736,46.6840167 C7.36214736,46.4410167 7.04014736,46.1670167 6.59314736,46.0760167 C6.24314736,46.2250167 6.05114736,46.5420167 5.86314736,46.8620167 C5.76214736,47.0350167 5.79814736,47.2120167 5.97314736,47.3440167 C6.86014736,48.0150167 7.75114736,48.6810167 8.75314736,49.1800167 C8.81714736,49.2120167 8.84814736,49.3240167 8.88014736,49.4050167 C8.92214736,49.5100167 8.80214736,49.6600167 8.63914736,49.6870167 C8.41214736,49.7250167 8.18114736,49.7430167 7.94814736,49.7730167 Z M6.16414736,48.7230167 C6.17214736,48.8220167 6.15414736,48.8280167 6.11214736,48.7410167 C6.14114736,48.7420167 6.17014736,48.7430167 6.19914736,48.7430167 C6.06114736,48.9470167 6.18314736,48.7120167 6.16414736,48.7230167 Z M5.26114736,52.8210167 C5.02214736,52.5840167 4.77614736,52.3690167 4.56814736,52.1230167 C4.36114736,51.8780167 4.18814736,51.6030167 4.00614736,51.3360167 C3.81014736,51.0480167 3.77414736,50.7380167 3.90014736,50.4100167 C3.96614736,50.2370167 4.01414736,50.0540167 4.10114736,49.8930167 C4.37314736,49.3910167 4.54614736,48.8820167 4.41414736,48.2970167 C4.35214736,48.0210167 4.45214736,47.7570167 4.56014736,47.4920167 C4.86114736,46.7550167 5.21714736,46.0590167 5.79514736,45.4960167 C5.85914736,45.4330167 5.90314736,45.3490167 6.00014736,45.2120167 C6.00114736,44.9990167 5.99214736,44.7230167 6.00714736,44.4480167 C6.02014736,44.2190167 6.03614736,43.9840167 6.09814736,43.7650167 C6.23614736,43.2770167 6.39314736,42.7930167 6.56614736,42.3170167 C6.60814736,42.2010167 6.73114736,42.0580167 6.84114736,42.0320167 C7.20614736,41.9450167 7.37514736,41.7640167 7.39614736,41.3700167 C7.41814736,40.9570167 7.50614736,40.5420167 7.61214736,40.1410167 C8.13414736,38.1820167 8.12714736,36.1930167 7.91414736,34.2020167 C7.83114736,33.4230167 7.64614736,32.6490167 7.43914736,31.8910167 C6.91314736,29.9690167 6.34914736,28.0580167 5.80114736,26.1420167 C5.44314736,24.8920167 5.10614736,23.6370167 5.04314736,22.3310167 C5.00114736,21.4520167 4.96514736,20.5700167 4.97514736,19.6910167 C4.98014736,19.2320167 5.06914736,18.7700167 5.15814736,18.3170167 C5.32814736,17.4550167 5.50314736,16.5920167 5.72014736,15.7400167 C5.85614736,15.2040167 6.06714736,14.6860167 6.37514736,14.2150167 C6.50114736,14.0210167 6.62214736,13.8180167 6.70314736,13.6030167 C7.12414736,12.4960167 7.89614736,11.6230167 8.61014736,10.7130167 C8.80914736,10.4590167 9.06614736,10.2510167 9.29614736,10.0230167 C9.49314736,9.82801673 9.71214736,9.65001673 9.88414736,9.43501673 C10.3891474,8.80801673 11.0191474,8.35201673 11.7311474,7.99101673 C12.4751474,7.61401673 13.2051474,7.20901673 13.9461474,6.82701673 C15.6791474,5.93201673 17.5171474,5.56901673 19.4611474,5.76201673 C20.2451474,5.84001673 21.0291474,5.93001673 21.8141474,5.98101673 C22.8411474,6.04701673 23.8131474,6.36201673 24.8001474,6.60801673 C25.4321474,6.76601673 26.0181474,7.05701673 26.5761474,7.39201673 C27.1321474,7.72601673 27.6671474,8.09601673 28.2191474,8.43701673 C29.1801474,9.03301673 29.9531474,9.82301673 30.6261474,10.7210167 C31.2671474,11.5760167 31.9041474,12.4360167 32.2481474,13.4630167 C32.5561474,14.3830167 32.8771474,15.3000167 32.9771474,16.2770167 C33.0661474,17.1530167 33.1541474,18.0310167 33.3031474,18.8980167 C33.4691474,19.8640167 33.4441474,20.8350167 33.4621474,21.8040167 C33.4721474,22.3100167 33.4481474,22.8390167 33.3101474,23.3200167 C32.9511474,24.5650167 32.6541474,25.8280167 32.1981474,27.0460167 C31.8071474,28.0920167 31.3421474,29.0970167 30.7901474,30.0660167 C30.4441474,30.6740167 30.0451474,31.2340167 29.5241474,31.7080167 C29.1811474,32.0190167 28.8581474,32.3550167 28.5501474,32.7010167 C28.0251474,33.2920167 27.4931474,33.8710167 26.8051474,34.2810167 C26.0641474,35.0490167 25.0771474,35.5330167 24.3951474,36.3720167 C24.2811474,36.5120167 24.1151474,36.6140167 23.9611474,36.7160167 C22.9201474,37.4080167 21.9611474,38.2160167 20.8681474,38.8340167 C20.4701474,39.0600167 20.1301474,39.3890167 19.7661474,39.6740167 C19.4021474,39.9590167 19.0481474,40.2580167 18.6781474,40.5350167 C17.1791474,41.6590167 16.1681474,43.1120167 15.6881474,44.9270167 C15.6531474,45.0590167 15.5971474,45.2330167 15.6521474,45.3330167 C15.9271474,45.8400167 15.6851474,46.1990167 15.3691474,46.5620167 C15.2821474,46.6610167 15.2491474,46.8100167 15.2051474,46.9410167 C14.7171474,48.3920167 14.1231474,49.8000167 13.5081474,51.2000167 C13.4311474,51.3730167 13.3731474,51.5520167 13.4381474,51.7350167 C13.5701474,52.1050167 13.3891474,52.3710167 13.1421474,52.5930167 C12.8671474,52.8400167 12.5591474,53.0500167 12.2751474,53.2860167 C12.0541474,53.4690167 11.8101474,53.5680167 11.5251474,53.6140167 C10.4151474,53.7930167 9.36014736,54.1230167 8.45814736,54.8310167 C8.04214736,55.1570167 7.52814736,55.2560167 7.04014736,55.3700167 C6.23614736,55.5570167 5.44614736,55.0050167 5.26014736,54.1860167 C5.21014736,53.9610167 5.17914736,53.7270167 5.17914736,53.4970167 C5.17914736,53.2730167 5.23114736,53.0490167 5.26114736,52.8210167 L5.26114736,52.8210167 Z" id="Fill-469" fill="#000000"></path>
12
+ <path d="M1.91614736,14.6360167 C1.60614736,14.6390167 1.23614736,14.6610167 0.868147359,14.6410167 C0.618147359,14.6270167 0.465147359,14.4350167 0.358147359,14.2220167 C0.267147359,14.0390167 0.343147359,13.7470167 0.502147359,13.5830167 C0.669147359,13.4090167 0.872147359,13.3120167 1.10814736,13.2760167 C1.91614736,13.1550167 2.67914736,13.3100167 3.39714736,13.6760167 C3.49214736,13.7250167 3.57314736,13.9130167 3.56214736,14.0270167 C3.55214736,14.1420167 3.43614736,14.3160167 3.33514736,14.3420167 C2.88914736,14.4600167 2.43214736,14.5340167 1.91614736,14.6360167" id="Fill-470" fill="#F0C800"></path>
13
+ <path d="M13.9831474,2.47401673 C14.1011474,3.25001673 14.0581474,3.79401673 13.8691474,4.32101673 C13.8451474,4.38801673 13.7381474,4.43301673 13.6611474,4.47301673 C13.5681474,4.52101673 13.3631474,4.41301673 13.3321474,4.30501673 C13.2811474,4.12901673 13.2201474,3.95401673 13.1881474,3.77501673 C13.0881474,3.22901673 12.9181474,2.71001673 12.6661474,2.21401673 C12.5851474,2.05501673 12.5531474,1.86501673 12.5351474,1.68501673 C12.5151474,1.49801673 12.5821474,1.32701673 12.7491474,1.21101673 C12.9381474,1.07901673 13.2251474,1.08901673 13.3901474,1.22601673 C13.6841474,1.47001673 13.8691474,1.78101673 13.9481474,2.15001673 C13.9871474,2.32801673 13.9871474,2.51501673 13.9831474,2.47401673" id="Fill-471" fill="#F0C800"></path>
14
+ <path d="M18.1551474,3.55401673 C18.0661474,3.47801673 17.8981474,3.40601673 17.8811474,3.30901673 C17.8441474,3.09001673 17.8501474,2.85101673 17.8971474,2.63301673 C18.0221474,2.04701673 18.1541474,1.46601673 18.0681474,0.859016734 C18.0401474,0.658016734 18.1671474,0.503016734 18.3211474,0.399016734 C18.4681474,0.300016734 18.6221474,0.184016734 18.8281474,0.275016734 C19.0421474,0.370016734 19.2021474,0.578016734 19.2041474,0.804016734 C19.2051474,0.941016734 19.2291474,1.09001673 19.1871474,1.21601673 C18.9421474,1.95301673 18.6841474,2.68701673 18.4161474,3.41701673 C18.3941474,3.47801673 18.2651474,3.49901673 18.1551474,3.55401673" id="Fill-472" fill="#F0C800"></path>
15
+ <path d="M5.79414736,9.75401673 C5.72714736,9.79901673 5.63714736,9.90301673 5.59214736,9.88601673 C4.90714736,9.62301673 4.22214736,9.35801673 3.55014736,9.06401673 C3.14914736,8.88801673 3.05814736,8.35401673 3.35814736,8.01301673 C3.44114736,7.91801673 3.58614736,7.84001673 3.71014736,7.82801673 C3.99114736,7.79901673 4.26914736,7.87101673 4.48514736,8.05601673 C4.97514736,8.47401673 5.45414736,8.90701673 5.76414736,9.48501673 C5.80314736,9.55901673 5.78514736,9.66201673 5.79414736,9.75401673" id="Fill-473" fill="#F0C800"></path>
16
+ <path d="M9.51414736,6.37501673 C9.35214736,6.35201673 9.19314736,6.37301673 9.09314736,6.30601673 C8.60214736,5.97601673 8.14214736,5.60501673 7.78714736,5.12201673 C7.61214736,4.88501673 7.67114736,4.50801673 7.92814736,4.25801673 C8.11414736,4.07701673 8.46514736,4.05201673 8.68714736,4.20801673 C8.76114736,4.26001673 8.83914736,4.31001673 8.90114736,4.37501673 C9.35714736,4.84701673 9.59714736,5.43101673 9.72014736,6.06101673 C9.73714736,6.14901673 9.58814736,6.26901673 9.51414736,6.37501673" id="Fill-474" fill="#F0C800"></path>
17
+ <path d="M23.5231474,3.37301673 C23.4201474,3.40301673 23.3361474,3.36601673 23.3131474,3.25301673 C23.2771474,3.07501673 23.2071474,2.88101673 23.2451474,2.71501673 C23.4301474,1.90401673 23.6411474,1.09801673 23.8531474,0.293016734 C23.9011474,0.107016734 24.2211474,-0.035983266 24.4291474,0.008016734 C24.6001474,0.044016734 24.7501474,0.215016734 24.7691474,0.399016734 C24.7791474,0.490016734 24.7911474,0.583016734 24.7871474,0.674016734 C24.7831474,0.766016734 24.7761474,0.864016734 24.7411474,0.947016734 C24.4161474,1.71401673 24.0881474,2.48001673 23.7491474,3.24001673 C23.7201474,3.30501673 23.6011474,3.33001673 23.5231474,3.37301673" id="Fill-475" fill="#F0C800"></path>
18
+ <path d="M38.3261474,23.5420167 C38.3631474,23.7530167 38.2381474,23.9850167 38.0861474,24.0540167 C37.9641474,24.1090167 37.8201474,24.1960167 37.7041474,24.1730167 C37.1571474,24.0670167 36.6221474,24.1240167 36.0821474,24.2160167 C35.9561474,24.2380167 35.8171474,24.1560167 35.7631474,24.0100167 C35.7151474,23.8760167 35.7281474,23.7490167 35.8171474,23.6280167 C36.2051474,23.1030167 36.6981474,22.8460167 37.3571474,23.0220167 C37.6181474,23.0920167 37.8811474,23.1670167 38.1251474,23.2810167 C38.2281474,23.3300167 38.2831474,23.4830167 38.3261474,23.5420167" id="Fill-476" fill="#F0C800"></path>
19
+ <path d="M34.1441474,12.3680167 C34.0681474,12.3260167 33.9461474,12.3000167 33.9241474,12.2390167 C33.8261474,11.9740167 33.8231474,11.6880167 33.9911474,11.4570167 C34.5011474,10.7560167 35.2021474,10.3800167 36.0671474,10.3110167 C36.1101474,10.3080167 36.1721474,10.3120167 36.1981474,10.3390167 C36.2871474,10.4330167 36.3871474,10.5300167 36.4381474,10.6450167 C36.4661474,10.7070167 36.4291474,10.8360167 36.3761474,10.8890167 C36.2481474,11.0140167 36.1091474,11.1490167 35.9471474,11.2150167 C35.3501474,11.4610167 34.8071474,11.7730167 34.3911474,12.2830167 C34.3441474,12.3400167 34.2281474,12.3410167 34.1441474,12.3680167" id="Fill-477" fill="#F0C800"></path>
20
+ <path d="M37.2951474,14.7930167 C37.4441474,14.8390167 37.7121474,14.8960167 37.9561474,15.0060167 C38.1341474,15.0850167 38.2061474,15.2810167 38.1651474,15.4690167 C38.1381474,15.5910167 38.0551474,15.7680167 37.9621474,15.7940167 C37.6111474,15.8900167 37.2391474,15.9070167 36.8891474,16.0060167 C36.5861474,16.0920167 36.3061474,16.2570167 36.0071474,16.3640167 C35.9511474,16.3840167 35.8201474,16.3150167 35.7851474,16.2530167 C35.6941474,16.0920167 35.6441474,15.8980167 35.7411474,15.7270167 C36.0561474,15.1760167 36.5231474,14.8420167 37.2951474,14.7930167" id="Fill-478" fill="#F0C800"></path>
21
+ <path d="M38.0371474,18.6530167 C37.9831474,18.6570167 38.1741474,18.7550167 38.2421474,18.9020167 C38.3371474,19.1090167 38.2671474,19.3860167 38.0911474,19.5110167 C38.0171474,19.5640167 37.9531474,19.6430167 37.8711474,19.6710167 C37.3501474,19.8500167 36.8781474,20.1220167 36.4131474,20.4090167 C36.2921474,20.4840167 36.1581474,20.4750167 36.0311474,20.3940167 C35.8951474,20.3070167 35.8701474,20.1010167 35.9671474,19.9090167 C36.3451474,19.1570167 36.9311474,18.7150167 38.0371474,18.6530167" id="Fill-479" fill="#F0C800"></path>
22
+ <path d="M1.44014736,18.1350167 C1.67214736,18.1420167 1.85714736,18.1350167 2.03814736,18.1590167 C2.11714736,18.1690167 2.23614736,18.2290167 2.25214736,18.2880167 C2.28414736,18.4090167 2.27914736,18.5510167 2.24914736,18.6740167 C2.23014736,18.7540167 2.15114736,18.8310167 2.08014736,18.8860167 C1.64214736,19.2290167 1.15014736,19.4700167 0.616147359,19.6260167 C0.483147359,19.6640167 0.227147359,19.5620167 0.130147359,19.4290167 C-0.129852641,19.0750167 0.0171473593,18.5130167 0.416147359,18.3930167 C0.766147359,18.2870167 1.12614736,18.2130167 1.44014736,18.1350167" id="Fill-480" fill="#F0C800"></path>
23
+ <path d="M34.0771474,6.36301673 C34.0141474,6.53001673 33.9881474,6.66801673 33.9141474,6.77201673 C33.8371474,6.88001673 33.7231474,6.97201673 33.6071474,7.04101673 C33.3931474,7.16901673 32.4151474,7.93401673 32.2381474,8.10501673 C32.1871474,8.15501673 32.0651474,8.17201673 31.9931474,8.14801673 C31.9191474,8.12301673 31.8621474,8.03501673 31.8061474,7.96701673 C31.7791474,7.93301673 31.7641474,7.88301673 31.7581474,7.83901673 C31.7301474,7.60501673 31.7501474,7.37701673 31.8911474,7.18001673 C32.3481474,6.54801673 32.9451474,6.15801673 33.7491474,6.17201673 C33.8541474,6.17301673 33.9571474,6.29001673 34.0771474,6.36301673" id="Fill-481" fill="#F0C800"></path>
24
+ <path d="M29.6511474,2.49901673 C29.6431474,2.54301673 29.6441474,2.59101673 29.6251474,2.63001673 C29.2371474,3.41501673 28.6171474,4.03001673 28.0871474,4.71001673 C28.0561474,4.75101673 27.9051474,4.74101673 27.8421474,4.70201673 C27.7781474,4.66401673 27.7061474,4.55101673 27.7191474,4.48701673 C27.7631474,4.26701673 27.8011474,4.02701673 27.9171474,3.84401673 C28.2581474,3.30501673 28.6311474,2.78701673 29.0011474,2.26701673 C29.1171474,2.10301673 29.4541474,2.17301673 29.5861474,2.37801673 C29.6111474,2.41601673 29.6301474,2.45801673 29.6511474,2.49901673" id="Fill-482" fill="#F0C800"></path>
25
+ <path d="M35.2061474,26.9500167 C35.1001474,26.9580167 35.1471474,26.9470167 35.1911474,26.9530167 C35.6661474,27.0210167 36.0471474,27.2440167 36.3261474,27.6380167 C36.4261474,27.7790167 36.4281474,27.9910167 36.3321474,28.1530167 C36.2481474,28.2930167 35.9991474,28.3950167 35.8571474,28.3390167 C35.5191474,28.2060167 35.1861474,28.0590167 34.8461474,27.9300167 C34.6771474,27.8660167 34.4771444,27.8400167 34.4771444,27.6050167 C34.4761474,27.2540167 34.7291474,26.9830167 35.2061474,26.9500167" id="Fill-483" fill="#F0C800"></path>
26
+ <path d="M34.2101474,32.0060167 C34.2591474,32.2850167 34.0391474,32.5680167 33.8451474,32.5630167 C33.7551474,32.5610167 33.6621474,32.5570167 33.5741474,32.5350167 C33.1621474,32.4320167 32.8421474,32.1870167 32.5721474,31.8680167 C32.4371474,31.7100167 32.4641474,31.4260167 32.6301474,31.2470167 C32.7521474,31.1160167 32.9751474,31.0630167 33.1281474,31.1520167 C33.4391474,31.3360167 33.7531474,31.5200167 34.0461474,31.7300167 C34.1431474,31.8000167 34.1801474,31.9530167 34.2101474,32.0060167" id="Fill-484" fill="#F0C800"></path>
27
+ <path d="M31.1951474,35.0020167 C31.2191474,35.1500167 31.0151474,35.3060167 30.8351474,35.2600167 C30.3891474,35.1470167 30.1641474,34.8270167 30.0271474,34.4220167 C29.9681474,34.2460167 30.1071474,33.9760167 30.3221474,33.8680167 C30.4421474,33.8070167 30.5761474,33.7780167 30.6971474,33.8880167 C31.0181474,34.1780167 31.1481474,34.5550167 31.1951474,35.0020167" id="Fill-485" fill="#F0C800"></path>
28
+ <path d="M20.5771474,10.0980167 C20.6571474,10.4510167 20.7271474,10.8070167 20.8191474,11.1580167 C20.9101474,11.4990167 21.1831474,11.6990167 21.5241474,11.7200167 C22.3411474,11.7710167 23.0721474,11.5360167 23.7271474,11.0560167 C23.9471474,10.8940167 24.1541474,10.7150167 24.3711474,10.5500167 C24.3881474,10.5380167 24.4471474,10.5650167 24.4751474,10.5880167 C24.5091474,10.6160167 24.5511474,10.6570167 24.5541474,10.6950167 C24.5861474,11.0960167 24.4511474,11.4830167 24.0951474,11.6220167 C23.1971474,11.9730167 22.2981474,12.3520167 21.3181474,12.4210167 C21.1831474,12.4310167 21.0341474,12.4170167 20.9101474,12.3680167 C20.7881474,12.3190167 20.6141474,12.2280167 20.5931474,12.1280167 C20.4801474,11.5930167 20.2021474,11.0910167 20.2581474,10.5220167 C20.2761474,10.3350167 20.3111474,10.1590167 20.5771474,10.0980167" id="Fill-486" fill="#000000"></path>
29
+ <path d="M17.3181474,13.6530167 C17.3111474,13.6990167 17.3151474,13.7510167 17.2941474,13.7890167 C16.5581474,15.1380167 14.5451474,15.9810167 13.1121474,15.5150167 C12.6251474,15.3570167 12.1491474,15.1960167 11.7551474,14.8500167 C11.5431474,14.6640167 11.5951474,14.4600167 11.9351474,14.2250167 C12.4021474,14.4100167 12.7841474,14.7530167 13.2871474,14.9010167 C13.9931474,15.1080167 14.6591474,15.0550167 15.3201474,14.8040167 C15.8861474,14.5900167 16.3961474,14.2690167 16.8471474,13.8620167 C16.9881474,13.7350167 17.1421474,13.6430167 17.3431474,13.6780167 L17.3181474,13.6530167" id="Fill-487" fill="#000000"></path>
30
+ <path d="M17.7071474,13.3830167 C17.6571474,13.2550167 17.5391474,13.1080167 17.5691474,13.0030167 C17.7841474,12.2300167 17.6731474,11.4570167 17.6161474,10.6830167 C17.6101474,10.5950167 17.6361474,10.5030167 17.6591474,10.4160167 C17.6681474,10.3830167 17.7111474,10.3330167 17.7361474,10.334002 C17.8191474,10.3380167 17.9181474,10.3380167 17.9781474,10.3830167 C18.0441474,10.4330167 18.0981474,10.5270167 18.1141474,10.6100167 C18.3081474,11.5850167 18.2791474,12.5260167 17.6781474,13.3760167 C17.6741474,13.3730167 17.7071474,13.3830167 17.7071474,13.3830167" id="Fill-488" fill="#000000"></path>
31
+ <path d="M27.9511474,20.1670167 C27.8781474,20.1610167 27.8221474,20.1730167 27.7891474,20.1500167 C27.7211474,20.1020167 27.6351474,20.0450167 27.6141474,19.9750167 C27.5921474,19.9000167 27.6081474,19.7790167 27.6581474,19.7220167 C28.0111474,19.3230167 28.4761474,19.1540167 28.9961474,19.1260167 C29.0681474,19.1220167 29.1731474,19.1930167 29.2121474,19.2590167 C29.2501474,19.3240167 29.2441474,19.4330167 29.2191474,19.5110167 C29.1921474,19.5940167 29.1361474,19.6840167 29.0671474,19.7340167 C28.7251474,19.9760167 28.3471474,20.1320167 27.9511474,20.1670167" id="Fill-489" fill="#000000"></path>
32
+ <path d="M24.1151474,9.65001673 C24.1011474,9.69401673 24.1001474,9.75601673 24.0741474,9.76901673 C24.0041474,9.80501673 23.8901474,9.86501673 23.8521474,9.83701673 C23.7101474,9.73401673 23.5811474,9.60801673 23.4721474,9.47001673 C23.4341474,9.42201673 23.4391474,9.29201673 23.4791474,9.24301673 C23.5241474,9.18801673 23.6461474,9.14001673 23.7061474,9.16301673 C23.9241474,9.24901673 24.0631474,9.42001673 24.1151474,9.65001673" id="Fill-490" fill="#000000"></path>
33
+ <path d="M11.3491474,13.2950167 C11.3991474,12.8040167 11.6731474,12.4790167 12.1101474,12.2810167 C12.1291474,12.2720167 12.1921474,12.3230167 12.2091474,12.3580167 C12.2261474,12.3910167 12.2221474,12.4470167 12.2051474,12.4810167 C12.0241474,12.8410167 11.8251474,13.1860167 11.4421474,13.3730167 L11.3491474,13.2950167" id="Fill-491" fill="#000000"></path>
34
+ <path d="M15.6801474,10.4540167 C15.6491474,10.4530167 15.4721474,10.4460167 15.2951474,10.4410167 C15.1731474,10.4370167 15.1131474,10.3770167 15.1591474,10.2730167 C15.1901474,10.2020167 15.2531474,10.1070167 15.3171474,10.0940167 C15.4871474,10.0610167 15.6661474,10.0510167 15.8391474,10.0620167 C15.9091474,10.0670167 15.9781474,10.1460167 16.0411474,10.2000167 C16.1381474,10.2830167 16.0121474,10.4210167 15.6801474,10.4540167" id="Fill-492" fill="#000000"></path>
35
+ <path d="M11.4421474,13.3730167 C11.4631474,13.5700167 11.4011474,13.7300167 11.2331474,13.8420167 C11.1431474,13.9010167 11.0551474,13.8910167 10.9881474,13.8020167 C10.9681474,13.7750167 10.9771474,13.7150167 10.9901474,13.6750167 C11.0491474,13.4930167 11.1581474,13.3540167 11.3491474,13.2950167 L11.4421474,13.3730167" id="Fill-493" fill="#000000"></path>
36
+ <path d="M17.3431474,13.6780167 C17.3821474,13.4830167 17.5361474,13.4260167 17.7031474,13.3820167 C17.7071474,13.3830167 17.6741474,13.3730167 17.6781474,13.3760167 C17.5611474,13.4690167 17.4391474,13.5600167 17.3181474,13.6520167 C17.3181474,13.6530167 17.3431474,13.6780167 17.3431474,13.6780167" id="Fill-494" fill="#000000"></path>
37
+ </g>
38
+ </g>
39
+ </g>
40
+ </svg>
@@ -0,0 +1,30 @@
1
+ # Copyright (c) 2022 Yegor Bugayenko
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the 'Software'), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in all
11
+ # copies or substantial portions of the Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ # SOFTWARE.
20
+
21
+ $stdout.sync = true
22
+
23
+ require 'simplecov'
24
+ SimpleCov.start
25
+ if ENV['CI'] == 'true'
26
+ require 'codecov'
27
+ SimpleCov.formatter = SimpleCov::Formatter::Codecov
28
+ end
29
+
30
+ require 'minitest/autorun'
data/test/test_mask.rb ADDED
@@ -0,0 +1,40 @@
1
+ # Copyright (c) 2022 Yegor Bugayenko
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the 'Software'), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in all
11
+ # copies or substantial portions of the Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ # SOFTWARE.
20
+
21
+ require 'minitest/autorun'
22
+ require_relative '../lib/cobench/mask'
23
+
24
+ # Test for Mask.
25
+ # Author:: Yegor Bugayenko (yegor256@gmail.com)
26
+ # Copyright:: Copyright (c) 2022 Yegor Bugayenko
27
+ # License:: MIT
28
+ class TestMask < Minitest::Test
29
+ def test_positive
30
+ assert Cobench::Mask.new('*/*').matches?('foo/bar')
31
+ assert Cobench::Mask.new('test/*').matches?('test/one')
32
+ assert Cobench::Mask.new('test/hello').matches?('test/hello')
33
+ end
34
+
35
+ def test_negative
36
+ assert !Cobench::Mask.new('*/*').matches?('some text')
37
+ assert !Cobench::Mask.new('test/*').matches?('best/two')
38
+ assert !Cobench::Mask.new('test/hello').matches?('test/hello2')
39
+ end
40
+ end