playwright-runner 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: eb83cf6ffdbe44db313ffa0df1f4d4ea4bcec52d9e1794180c4743b4be5ccf36
4
+ data.tar.gz: f5e1161fe4e70c3341eb5061762c48d1268101fd233bcb949ff4e8e5ee59a03e
5
+ SHA512:
6
+ metadata.gz: ffbf52ebc42b1c0c32261a839dfc2d6f62f2b21371153c83873e665efba28f5745a38230d9874cbf3563b589bdbd581aba91cfa10e83924988cb6da8b8b72bd5
7
+ data.tar.gz: 3ca59db2b366e4d034da55c82caeaff811cf86a3d9862616a55dab221e87a692adc5111700215e5bae04020ffbb3c9c30ba2ef43e931b1c45d7792fc28ed7649
@@ -0,0 +1,18 @@
1
+ name: Ruby
2
+
3
+ on: [push,pull_request]
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - uses: actions/checkout@v2
10
+ - name: Set up Ruby
11
+ uses: ruby/setup-ruby@v1
12
+ with:
13
+ ruby-version: 2.7.4
14
+ - name: Run the default task
15
+ run: |
16
+ gem install bundler -v 2.2.5
17
+ bundle install
18
+ bundle exec rake
data/.gitignore ADDED
@@ -0,0 +1,8 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
data/.rubocop.yml ADDED
@@ -0,0 +1,17 @@
1
+ AllCops:
2
+ DisplayCopNames: true
3
+ NewCops: enable
4
+ TargetRubyVersion: 2.7
5
+
6
+ require:
7
+ - rubocop-performance
8
+ - rubocop-rake
9
+
10
+ Metrics/MethodLength:
11
+ Max: 100
12
+
13
+ Metrics/AbcSize:
14
+ Max: 120
15
+
16
+ Style/Documentation:
17
+ Enabled: false
data/Gemfile ADDED
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ gemspec
6
+
7
+ gem 'rake', '~> 13.0'
8
+ gem 'rubocop', '~> 1.45.1'
9
+ gem 'rubocop-performance'
10
+ gem 'rubocop-rake'
11
+ gem 'simplecov'
12
+ gem 'test-unit'
data/LICENSE.txt ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2023 Kenshi Muto
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 NONINFRINGEMENT. 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.
data/README.md ADDED
@@ -0,0 +1,131 @@
1
+ # Playwright Runner
2
+
3
+ Playwright Runner is a set of runners for [Playwright](https://playwright.dev/).
4
+
5
+ This module is intended to provide useful toolset for [Re:VIEW](https://reviewml.org/), but it can also be used for general purpose applications.
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'playwrightrunner'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle install
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install playwright-runner
22
+
23
+ Of course PlaywrightRunner needs Playwright npm library.
24
+
25
+ $ npm install playwright (locally)
26
+ $ npm install -g playwright (globally)
27
+
28
+ ## Usage
29
+
30
+ ### Mermaid to PDF or SVG
31
+
32
+ Let's convert HTML files contain [Mermaid](https://mermaid.js.org/) to PDF/SVG.
33
+ You have to install two components also to crop and convert PDF before running:
34
+
35
+ - [pdfcrop](https://www.ctan.org/pkg/pdfcrop) in TeXLive.
36
+ - [pdftocairo](https://gitlab.freedesktop.org/poppler/poppler) in poppler (if you'd like to get SVG).
37
+
38
+ On Debian GNU/Linux or its derivatives, ues `apt-get install texlive-extra-utils poppler-utils`.
39
+
40
+ ```ruby
41
+ PlaywrightRunner.mermaids_to_images(
42
+ {
43
+ playwright_path: './node_modules/.bin/playwright', // playwright binary path
44
+ pdfcrop_path: 'pdfcrop', // pdfcrop path
45
+ pdftocairo_path: 'pdftocairo' // pdftocairo path
46
+ },
47
+ src: '.', // source folder contains html files
48
+ dest: '.', // destination folder to export pdf or svg
49
+ type: 'pdf' // 'pdf' or 'svg'
50
+ )
51
+ ```
52
+
53
+ It converts all HTML files in the folder specified by `src` into PDF or SVG files (specified by `type`) using that name and writes them in the folder specified by `dest`.
54
+
55
+ For Example, here is `p1.html` contains Mermaid code.
56
+
57
+ ```html
58
+ <!DOCTYPE html>
59
+ <html>
60
+ <head>
61
+ <meta charset="UTF-8">
62
+ <script type="module">import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs'; mermaid.initialize({ startOnLoad: true });</script>
63
+ </head>
64
+ <body>
65
+ <div id="p1">
66
+ <pre class="mermaid">
67
+ graph TD
68
+ A[Client] --> B[Load Balancer]
69
+ B --> C[Server1]
70
+ B --> D[Server2]
71
+ </pre>
72
+ </div>
73
+ </body>
74
+ </html>
75
+ ```
76
+
77
+ Now convert it to PDF. `p1.pdf` will be created.
78
+
79
+ ```ruby
80
+ require 'playwrightrunner'
81
+
82
+ PlaywrightRunner.mermaids_to_images(
83
+ {
84
+ playwright_path: './node_modules/.bin/playwright' // modify for your env
85
+ },
86
+ src: '.',
87
+ dest: '.',
88
+ type: 'pdf'
89
+ )
90
+ ```
91
+
92
+ Convert it to SVG. `p1.svg` will be created.
93
+
94
+ ```ruby
95
+ require 'playwrightrunner'
96
+
97
+ PlaywrightRunner.mermaids_to_images(
98
+ {
99
+ playwright_path: './node_modules/.bin/playwright' // modify for your env
100
+ },
101
+ src: '.',
102
+ dest: '.',
103
+ type: 'svg'
104
+ )
105
+ ```
106
+
107
+ ![sample SVG](p1.svg)
108
+
109
+ ## License
110
+
111
+ ```
112
+ Copyright (c) 2023 Kenshi Muto
113
+
114
+ Permission is hereby granted, free of charge, to any person obtaining a copy
115
+ of this software and associated documentation files (the "Software"), to deal
116
+ in the Software without restriction, including without limitation the rights
117
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
118
+ copies of the Software, and to permit persons to whom the Software is
119
+ furnished to do so, subject to the following conditions:
120
+
121
+ The above copyright notice and this permission notice shall be included in all
122
+ copies or substantial portions of the Software.
123
+
124
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
125
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
126
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
127
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
128
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
129
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
130
+ SOFTWARE.
131
+ ```
data/Rakefile ADDED
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ task default: %i[test rubocop]
5
+
6
+ desc 'Run tests'
7
+ task :test, :target do |_, argv|
8
+ if argv[:target].nil?
9
+ ruby('test/run_test.rb')
10
+ else
11
+ ruby('test/run_test.rb', "--pattern=#{argv[:target]}")
12
+ end
13
+ end
14
+
15
+ desc 'Check with rubocop'
16
+ task :rubocop do
17
+ require 'rubocop/rake_task'
18
+ RuboCop::RakeTask.new
19
+ rescue LoadError
20
+ warn 'rubocop not found'
21
+ end
data/bin/console ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'bundler/setup'
5
+ require 'playwright/runner'
6
+
7
+ # You can add fixtures and/or initialization code here to make experimenting
8
+ # with your gem easier. You can also use a different console, if you like.
9
+
10
+ # (If you use this, don't forget to add pry to your Gemfile!)
11
+ # require "pry"
12
+ # Pry.start
13
+
14
+ require 'irb'
15
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PlaywrightRunner
4
+ VERSION = '1.0.0'
5
+ end
@@ -0,0 +1,49 @@
1
+ # Playwright Runner
2
+ # Copyright 2023 Kenshi Muto
3
+ # frozen_string_literal: true
4
+
5
+ require_relative 'playwrightrunner/version'
6
+
7
+ require 'playwright'
8
+ require 'open3'
9
+ require 'fileutils'
10
+
11
+ module PlaywrightRunner
12
+ def complement_config(config)
13
+ config[:playwright_path] ||= './node_modules/.bin/playwright'
14
+ config[:pdfcrop_path] ||= 'pdfcrop'
15
+ config[:pdftocairo_path] ||= 'pdftocairo'
16
+
17
+ config
18
+ end
19
+
20
+ def mermaids_to_images(config, src: '.', dest: '.', type: 'pdf')
21
+ Playwright.create(playwright_cli_executable_path: config[:playwright_path]) do |playwright|
22
+ playwright.chromium.launch(headless: true) do |browser|
23
+ page = browser.new_page
24
+ Dir.glob(File.join(src, '*.html')).each do |entry|
25
+ id = File.basename(entry).sub('.html', '')
26
+ page.goto("file:///#{File.absolute_path(entry)}")
27
+ page.locator('svg').click # to wait drawn
28
+
29
+ page.pdf(path: File.join(dest, '__PLAYWRIGHT_TMP__.pdf'))
30
+ Open3.capture2e(config[:pdfcrop_path],
31
+ File.join(dest, '__PLAYWRIGHT_TMP__.pdf'),
32
+ File.join(dest, "#{id}.pdf"))
33
+
34
+ next unless type == 'svg'
35
+
36
+ Open3.capture2e(config[:pdftocairo_path],
37
+ '-svg',
38
+ File.join(dest, "#{id}.pdf"),
39
+ File.join(dest, "#{id}.svg"))
40
+ FileUtils.rm_f(File.join(dest, "#{id}.pdf"))
41
+ end
42
+
43
+ FileUtils.rm_f(File.join(dest, '__PLAYWRIGHT_TMP__.pdf'))
44
+ end
45
+ end
46
+ end
47
+
48
+ module_function :complement_config, :mermaids_to_images
49
+ end
data/p1.svg ADDED
@@ -0,0 +1,165 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="146pt" height="151pt" viewBox="0 0 146 151" version="1.2">
3
+ <defs>
4
+ <g>
5
+ <symbol overflow="visible" id="glyph0-0">
6
+ <path style="stroke:none;" d="M 1.203125 -8.25 L 7.796875 -8.25 L 7.796875 0 L 1.203125 0 Z M 1.640625 -7.8125 L 1.640625 -0.453125 L 7.34375 -0.453125 L 7.34375 -7.8125 Z M 1.640625 -7.8125 "/>
7
+ </symbol>
8
+ <symbol overflow="visible" id="glyph0-1">
9
+ <path style="stroke:none;" d="M 4.640625 -7.46875 C 3.722656 -7.46875 3.007812 -7.171875 2.5 -6.578125 C 2 -5.992188 1.75 -5.191406 1.75 -4.171875 C 1.75 -3.160156 2.007812 -2.34375 2.53125 -1.71875 C 3.0625 -1.101562 3.78125 -0.796875 4.6875 -0.796875 C 5.84375 -0.796875 6.710938 -1.367188 7.296875 -2.515625 L 8.203125 -2.0625 C 7.867188 -1.351562 7.394531 -0.8125 6.78125 -0.4375 C 6.164062 -0.0625 5.453125 0.125 4.640625 0.125 C 3.804688 0.125 3.082031 -0.046875 2.46875 -0.390625 C 1.863281 -0.742188 1.398438 -1.238281 1.078125 -1.875 C 0.765625 -2.519531 0.609375 -3.285156 0.609375 -4.171875 C 0.609375 -5.484375 0.960938 -6.507812 1.671875 -7.25 C 2.390625 -8 3.375 -8.375 4.625 -8.375 C 5.507812 -8.375 6.242188 -8.203125 6.828125 -7.859375 C 7.421875 -7.515625 7.859375 -7.003906 8.140625 -6.328125 L 7.078125 -5.984375 C 6.878906 -6.460938 6.566406 -6.828125 6.140625 -7.078125 C 5.722656 -7.335938 5.222656 -7.46875 4.640625 -7.46875 Z M 4.640625 -7.46875 "/>
10
+ </symbol>
11
+ <symbol overflow="visible" id="glyph0-2">
12
+ <path style="stroke:none;" d="M 0.8125 0 L 0.8125 -8.703125 L 1.859375 -8.703125 L 1.859375 0 Z M 0.8125 0 "/>
13
+ </symbol>
14
+ <symbol overflow="visible" id="glyph0-3">
15
+ <path style="stroke:none;" d="M 0.796875 0 L 0.796875 -6.34375 L 1.859375 -6.34375 L 1.859375 0 Z M 0.796875 -7.6875 L 0.796875 -8.703125 L 1.859375 -8.703125 L 1.859375 -7.6875 Z M 0.796875 -7.6875 "/>
16
+ </symbol>
17
+ <symbol overflow="visible" id="glyph0-4">
18
+ <path style="stroke:none;" d="M 1.625 -2.953125 C 1.625 -2.222656 1.769531 -1.660156 2.0625 -1.265625 C 2.363281 -0.867188 2.804688 -0.671875 3.390625 -0.671875 C 3.847656 -0.671875 4.210938 -0.757812 4.484375 -0.9375 C 4.765625 -1.125 4.953125 -1.359375 5.046875 -1.640625 L 5.96875 -1.390625 C 5.59375 -0.378906 4.734375 0.125 3.390625 0.125 C 2.453125 0.125 1.738281 -0.15625 1.25 -0.71875 C 0.757812 -1.28125 0.515625 -2.113281 0.515625 -3.21875 C 0.515625 -4.257812 0.757812 -5.054688 1.25 -5.609375 C 1.738281 -6.171875 2.4375 -6.453125 3.34375 -6.453125 C 5.207031 -6.453125 6.140625 -5.332031 6.140625 -3.09375 L 6.140625 -2.953125 Z M 5.046875 -3.75 C 4.992188 -4.425781 4.828125 -4.914062 4.546875 -5.21875 C 4.265625 -5.519531 3.859375 -5.671875 3.328125 -5.671875 C 2.816406 -5.671875 2.410156 -5.5 2.109375 -5.15625 C 1.816406 -4.820312 1.65625 -4.351562 1.625 -3.75 Z M 5.046875 -3.75 "/>
19
+ </symbol>
20
+ <symbol overflow="visible" id="glyph0-5">
21
+ <path style="stroke:none;" d="M 4.828125 0 L 4.828125 -4.015625 C 4.828125 -4.429688 4.785156 -4.753906 4.703125 -4.984375 C 4.628906 -5.222656 4.5 -5.390625 4.3125 -5.484375 C 4.132812 -5.585938 3.875 -5.640625 3.53125 -5.640625 C 3.019531 -5.640625 2.617188 -5.460938 2.328125 -5.109375 C 2.035156 -4.765625 1.890625 -4.285156 1.890625 -3.671875 L 1.890625 0 L 0.828125 0 L 0.828125 -4.984375 C 0.828125 -5.722656 0.816406 -6.175781 0.796875 -6.34375 L 1.796875 -6.34375 C 1.796875 -6.320312 1.796875 -6.265625 1.796875 -6.171875 C 1.804688 -6.085938 1.8125 -5.988281 1.8125 -5.875 C 1.820312 -5.769531 1.832031 -5.5625 1.84375 -5.25 L 1.859375 -5.25 C 2.097656 -5.6875 2.375 -5.992188 2.6875 -6.171875 C 3.007812 -6.359375 3.410156 -6.453125 3.890625 -6.453125 C 4.578125 -6.453125 5.082031 -6.28125 5.40625 -5.9375 C 5.726562 -5.59375 5.890625 -5.019531 5.890625 -4.21875 L 5.890625 0 Z M 4.828125 0 "/>
22
+ </symbol>
23
+ <symbol overflow="visible" id="glyph0-6">
24
+ <path style="stroke:none;" d="M 3.25 -0.046875 C 2.894531 0.046875 2.539062 0.09375 2.1875 0.09375 C 1.34375 0.09375 0.921875 -0.382812 0.921875 -1.34375 L 0.921875 -5.578125 L 0.1875 -5.578125 L 0.1875 -6.34375 L 0.953125 -6.34375 L 1.265625 -7.765625 L 1.96875 -7.765625 L 1.96875 -6.34375 L 3.140625 -6.34375 L 3.140625 -5.578125 L 1.96875 -5.578125 L 1.96875 -1.578125 C 1.96875 -1.265625 2.015625 -1.046875 2.109375 -0.921875 C 2.210938 -0.804688 2.390625 -0.75 2.640625 -0.75 C 2.773438 -0.75 2.976562 -0.773438 3.25 -0.828125 Z M 3.25 -0.046875 "/>
25
+ </symbol>
26
+ <symbol overflow="visible" id="glyph0-7">
27
+ <path style="stroke:none;" d="M 0.984375 0 L 0.984375 -8.25 L 2.109375 -8.25 L 2.109375 -0.921875 L 6.28125 -0.921875 L 6.28125 0 Z M 0.984375 0 "/>
28
+ </symbol>
29
+ <symbol overflow="visible" id="glyph0-8">
30
+ <path style="stroke:none;" d="M 6.171875 -3.171875 C 6.171875 -2.066406 5.925781 -1.238281 5.4375 -0.6875 C 4.945312 -0.144531 4.238281 0.125 3.3125 0.125 C 2.382812 0.125 1.679688 -0.15625 1.203125 -0.71875 C 0.734375 -1.289062 0.5 -2.109375 0.5 -3.171875 C 0.5 -5.359375 1.445312 -6.453125 3.34375 -6.453125 C 4.3125 -6.453125 5.023438 -6.1875 5.484375 -5.65625 C 5.941406 -5.125 6.171875 -4.296875 6.171875 -3.171875 Z M 5.0625 -3.171875 C 5.0625 -4.046875 4.929688 -4.679688 4.671875 -5.078125 C 4.410156 -5.472656 3.972656 -5.671875 3.359375 -5.671875 C 2.742188 -5.671875 2.296875 -5.46875 2.015625 -5.0625 C 1.742188 -4.664062 1.609375 -4.035156 1.609375 -3.171875 C 1.609375 -2.335938 1.742188 -1.707031 2.015625 -1.28125 C 2.285156 -0.863281 2.710938 -0.65625 3.296875 -0.65625 C 3.929688 -0.65625 4.382812 -0.859375 4.65625 -1.265625 C 4.925781 -1.671875 5.0625 -2.304688 5.0625 -3.171875 Z M 5.0625 -3.171875 "/>
31
+ </symbol>
32
+ <symbol overflow="visible" id="glyph0-9">
33
+ <path style="stroke:none;" d="M 2.421875 0.125 C 1.785156 0.125 1.304688 -0.0390625 0.984375 -0.375 C 0.671875 -0.71875 0.515625 -1.179688 0.515625 -1.765625 C 0.515625 -2.421875 0.726562 -2.925781 1.15625 -3.28125 C 1.59375 -3.632812 2.289062 -3.820312 3.25 -3.84375 L 4.671875 -3.875 L 4.671875 -4.21875 C 4.671875 -4.726562 4.5625 -5.09375 4.34375 -5.3125 C 4.125 -5.539062 3.78125 -5.65625 3.3125 -5.65625 C 2.84375 -5.65625 2.5 -5.570312 2.28125 -5.40625 C 2.0625 -5.25 1.929688 -4.992188 1.890625 -4.640625 L 0.796875 -4.75 C 0.972656 -5.882812 1.816406 -6.453125 3.328125 -6.453125 C 4.128906 -6.453125 4.726562 -6.269531 5.125 -5.90625 C 5.53125 -5.539062 5.734375 -5.015625 5.734375 -4.328125 L 5.734375 -1.59375 C 5.734375 -1.28125 5.773438 -1.046875 5.859375 -0.890625 C 5.941406 -0.734375 6.097656 -0.65625 6.328125 -0.65625 C 6.429688 -0.65625 6.546875 -0.664062 6.671875 -0.6875 L 6.671875 -0.03125 C 6.410156 0.03125 6.140625 0.0625 5.859375 0.0625 C 5.472656 0.0625 5.1875 -0.0390625 5 -0.25 C 4.820312 -0.457031 4.722656 -0.78125 4.703125 -1.21875 L 4.671875 -1.21875 C 4.398438 -0.726562 4.082031 -0.378906 3.71875 -0.171875 C 3.363281 0.0234375 2.929688 0.125 2.421875 0.125 Z M 2.671875 -0.671875 C 3.054688 -0.671875 3.398438 -0.757812 3.703125 -0.9375 C 4.003906 -1.113281 4.238281 -1.351562 4.40625 -1.65625 C 4.582031 -1.96875 4.671875 -2.285156 4.671875 -2.609375 L 4.671875 -3.125 L 3.515625 -3.109375 C 3.015625 -3.097656 2.632812 -3.046875 2.375 -2.953125 C 2.125 -2.859375 1.929688 -2.710938 1.796875 -2.515625 C 1.660156 -2.328125 1.59375 -2.070312 1.59375 -1.75 C 1.59375 -1.40625 1.6875 -1.140625 1.875 -0.953125 C 2.0625 -0.765625 2.328125 -0.671875 2.671875 -0.671875 Z M 2.671875 -0.671875 "/>
34
+ </symbol>
35
+ <symbol overflow="visible" id="glyph0-10">
36
+ <path style="stroke:none;" d="M 4.8125 -1.015625 C 4.613281 -0.609375 4.351562 -0.316406 4.03125 -0.140625 C 3.707031 0.0351562 3.3125 0.125 2.84375 0.125 C 2.039062 0.125 1.445312 -0.144531 1.0625 -0.6875 C 0.6875 -1.226562 0.5 -2.046875 0.5 -3.140625 C 0.5 -5.347656 1.28125 -6.453125 2.84375 -6.453125 C 3.320312 -6.453125 3.71875 -6.363281 4.03125 -6.1875 C 4.351562 -6.019531 4.613281 -5.742188 4.8125 -5.359375 L 4.828125 -5.359375 L 4.8125 -6.0625 L 4.8125 -8.703125 L 5.859375 -8.703125 L 5.859375 -1.3125 C 5.859375 -0.644531 5.875 -0.207031 5.90625 0 L 4.890625 0 C 4.878906 -0.0625 4.863281 -0.207031 4.84375 -0.4375 C 4.832031 -0.664062 4.828125 -0.859375 4.828125 -1.015625 Z M 1.609375 -3.171875 C 1.609375 -2.285156 1.722656 -1.648438 1.953125 -1.265625 C 2.191406 -0.890625 2.578125 -0.703125 3.109375 -0.703125 C 3.703125 -0.703125 4.132812 -0.90625 4.40625 -1.3125 C 4.675781 -1.726562 4.8125 -2.375 4.8125 -3.25 C 4.8125 -4.082031 4.675781 -4.691406 4.40625 -5.078125 C 4.132812 -5.472656 3.707031 -5.671875 3.125 -5.671875 C 2.59375 -5.671875 2.207031 -5.472656 1.96875 -5.078125 C 1.726562 -4.691406 1.609375 -4.054688 1.609375 -3.171875 Z M 1.609375 -3.171875 "/>
37
+ </symbol>
38
+ <symbol overflow="visible" id="glyph0-11">
39
+ <path style="stroke:none;" d=""/>
40
+ </symbol>
41
+ <symbol overflow="visible" id="glyph0-12">
42
+ <path style="stroke:none;" d="M 7.375 -2.328125 C 7.375 -1.585938 7.101562 -1.015625 6.5625 -0.609375 C 6.03125 -0.203125 5.289062 0 4.34375 0 L 0.984375 0 L 0.984375 -8.25 L 3.984375 -8.25 C 5.921875 -8.25 6.890625 -7.582031 6.890625 -6.25 C 6.890625 -5.757812 6.753906 -5.347656 6.484375 -5.015625 C 6.210938 -4.691406 5.828125 -4.472656 5.328125 -4.359375 C 5.984375 -4.273438 6.488281 -4.050781 6.84375 -3.6875 C 7.195312 -3.332031 7.375 -2.878906 7.375 -2.328125 Z M 6.234375 -2.421875 C 6.234375 -3.390625 5.550781 -3.875 4.1875 -3.875 L 2.109375 -3.875 L 2.109375 -0.890625 L 4.28125 -0.890625 C 4.957031 -0.890625 5.453125 -1.015625 5.765625 -1.265625 C 6.078125 -1.523438 6.234375 -1.910156 6.234375 -2.421875 Z M 5.765625 -6.125 C 5.765625 -6.5625 5.613281 -6.875 5.3125 -7.0625 C 5.007812 -7.257812 4.566406 -7.359375 3.984375 -7.359375 L 2.109375 -7.359375 L 2.109375 -4.75 L 3.984375 -4.75 C 4.578125 -4.75 5.019531 -4.859375 5.3125 -5.078125 C 5.613281 -5.304688 5.765625 -5.65625 5.765625 -6.125 Z M 5.765625 -6.125 "/>
43
+ </symbol>
44
+ <symbol overflow="visible" id="glyph0-13">
45
+ <path style="stroke:none;" d="M 1.609375 -3.203125 C 1.609375 -2.359375 1.738281 -1.734375 2 -1.328125 C 2.269531 -0.921875 2.675781 -0.71875 3.21875 -0.71875 C 3.59375 -0.71875 3.90625 -0.816406 4.15625 -1.015625 C 4.40625 -1.222656 4.5625 -1.535156 4.625 -1.953125 L 5.6875 -1.890625 C 5.601562 -1.273438 5.34375 -0.785156 4.90625 -0.421875 C 4.46875 -0.0546875 3.910156 0.125 3.234375 0.125 C 2.347656 0.125 1.671875 -0.15625 1.203125 -0.71875 C 0.742188 -1.28125 0.515625 -2.097656 0.515625 -3.171875 C 0.515625 -4.242188 0.75 -5.054688 1.21875 -5.609375 C 1.6875 -6.171875 2.359375 -6.453125 3.234375 -6.453125 C 3.878906 -6.453125 4.414062 -6.285156 4.84375 -5.953125 C 5.269531 -5.617188 5.539062 -5.15625 5.65625 -4.5625 L 4.5625 -4.484375 C 4.507812 -4.835938 4.367188 -5.113281 4.140625 -5.3125 C 3.921875 -5.519531 3.609375 -5.625 3.203125 -5.625 C 2.640625 -5.625 2.234375 -5.4375 1.984375 -5.0625 C 1.734375 -4.695312 1.609375 -4.078125 1.609375 -3.203125 Z M 1.609375 -3.203125 "/>
46
+ </symbol>
47
+ <symbol overflow="visible" id="glyph0-14">
48
+ <path style="stroke:none;" d="M 0.828125 0 L 0.828125 -4.859375 C 0.828125 -5.304688 0.816406 -5.800781 0.796875 -6.34375 L 1.796875 -6.34375 C 1.828125 -5.625 1.84375 -5.191406 1.84375 -5.046875 L 1.859375 -5.046875 C 2.023438 -5.585938 2.21875 -5.957031 2.4375 -6.15625 C 2.65625 -6.351562 2.96875 -6.453125 3.375 -6.453125 C 3.507812 -6.453125 3.648438 -6.4375 3.796875 -6.40625 L 3.796875 -5.4375 C 3.660156 -5.46875 3.472656 -5.484375 3.234375 -5.484375 C 2.796875 -5.484375 2.460938 -5.296875 2.234375 -4.921875 C 2.003906 -4.546875 1.890625 -4.007812 1.890625 -3.3125 L 1.890625 0 Z M 0.828125 0 "/>
49
+ </symbol>
50
+ <symbol overflow="visible" id="glyph0-15">
51
+ <path style="stroke:none;" d="M 7.453125 -2.28125 C 7.453125 -1.519531 7.15625 -0.925781 6.5625 -0.5 C 5.96875 -0.0820312 5.128906 0.125 4.046875 0.125 C 2.035156 0.125 0.867188 -0.578125 0.546875 -1.984375 L 1.625 -2.203125 C 1.75 -1.703125 2.015625 -1.332031 2.421875 -1.09375 C 2.828125 -0.863281 3.378906 -0.75 4.078125 -0.75 C 4.804688 -0.75 5.363281 -0.875 5.75 -1.125 C 6.144531 -1.375 6.34375 -1.738281 6.34375 -2.21875 C 6.34375 -2.488281 6.28125 -2.707031 6.15625 -2.875 C 6.039062 -3.039062 5.867188 -3.175781 5.640625 -3.28125 C 5.421875 -3.394531 5.15625 -3.488281 4.84375 -3.5625 C 4.539062 -3.644531 4.203125 -3.726562 3.828125 -3.8125 C 3.171875 -3.957031 2.671875 -4.097656 2.328125 -4.234375 C 1.992188 -4.378906 1.726562 -4.539062 1.53125 -4.71875 C 1.34375 -4.90625 1.195312 -5.113281 1.09375 -5.34375 C 0.988281 -5.582031 0.9375 -5.859375 0.9375 -6.171875 C 0.9375 -6.878906 1.207031 -7.421875 1.75 -7.796875 C 2.289062 -8.179688 3.0625 -8.375 4.0625 -8.375 C 5 -8.375 5.71875 -8.226562 6.21875 -7.9375 C 6.71875 -7.65625 7.066406 -7.171875 7.265625 -6.484375 L 6.15625 -6.28125 C 6.039062 -6.71875 5.8125 -7.035156 5.46875 -7.234375 C 5.125 -7.429688 4.65625 -7.53125 4.0625 -7.53125 C 3.394531 -7.53125 2.882812 -7.421875 2.53125 -7.203125 C 2.1875 -6.984375 2.015625 -6.660156 2.015625 -6.234375 C 2.015625 -5.972656 2.082031 -5.757812 2.21875 -5.59375 C 2.351562 -5.425781 2.546875 -5.285156 2.796875 -5.171875 C 3.054688 -5.054688 3.566406 -4.914062 4.328125 -4.75 C 4.578125 -4.695312 4.828125 -4.640625 5.078125 -4.578125 C 5.335938 -4.515625 5.582031 -4.441406 5.8125 -4.359375 C 6.039062 -4.273438 6.253906 -4.175781 6.453125 -4.0625 C 6.648438 -3.945312 6.820312 -3.804688 6.96875 -3.640625 C 7.125 -3.484375 7.242188 -3.289062 7.328125 -3.0625 C 7.410156 -2.84375 7.453125 -2.582031 7.453125 -2.28125 Z M 7.453125 -2.28125 "/>
52
+ </symbol>
53
+ <symbol overflow="visible" id="glyph0-16">
54
+ <path style="stroke:none;" d="M 3.59375 0 L 2.34375 0 L 0.046875 -6.34375 L 1.171875 -6.34375 L 2.5625 -2.21875 C 2.613281 -2.0625 2.75 -1.597656 2.96875 -0.828125 L 3.171875 -1.515625 L 3.40625 -2.203125 L 4.84375 -6.34375 L 5.953125 -6.34375 Z M 3.59375 0 "/>
55
+ </symbol>
56
+ <symbol overflow="visible" id="glyph0-17">
57
+ <path style="stroke:none;" d="M 0.921875 0 L 0.921875 -0.890625 L 3.015625 -0.890625 L 3.015625 -7.25 L 1.15625 -5.921875 L 1.15625 -6.921875 L 3.109375 -8.25 L 4.078125 -8.25 L 4.078125 -0.890625 L 6.09375 -0.890625 L 6.09375 0 Z M 0.921875 0 "/>
58
+ </symbol>
59
+ <symbol overflow="visible" id="glyph0-18">
60
+ <path style="stroke:none;" d="M 0.609375 0 L 0.609375 -0.75 C 0.804688 -1.207031 1.046875 -1.609375 1.328125 -1.953125 C 1.617188 -2.304688 1.921875 -2.625 2.234375 -2.90625 C 2.554688 -3.1875 2.867188 -3.445312 3.171875 -3.6875 C 3.484375 -3.9375 3.765625 -4.179688 4.015625 -4.421875 C 4.265625 -4.660156 4.46875 -4.910156 4.625 -5.171875 C 4.78125 -5.441406 4.859375 -5.742188 4.859375 -6.078125 C 4.859375 -6.535156 4.722656 -6.890625 4.453125 -7.140625 C 4.191406 -7.390625 3.828125 -7.515625 3.359375 -7.515625 C 2.898438 -7.515625 2.523438 -7.390625 2.234375 -7.140625 C 1.953125 -6.898438 1.785156 -6.5625 1.734375 -6.125 L 0.65625 -6.21875 C 0.726562 -6.875 1.003906 -7.394531 1.484375 -7.78125 C 1.972656 -8.175781 2.597656 -8.375 3.359375 -8.375 C 4.179688 -8.375 4.816406 -8.175781 5.265625 -7.78125 C 5.710938 -7.394531 5.9375 -6.84375 5.9375 -6.125 C 5.9375 -5.800781 5.863281 -5.476562 5.71875 -5.15625 C 5.570312 -4.84375 5.351562 -4.523438 5.0625 -4.203125 C 4.78125 -3.890625 4.226562 -3.40625 3.40625 -2.75 C 2.957031 -2.375 2.597656 -2.039062 2.328125 -1.75 C 2.066406 -1.457031 1.878906 -1.171875 1.765625 -0.890625 L 6.078125 -0.890625 L 6.078125 0 Z M 0.609375 0 "/>
61
+ </symbol>
62
+ </g>
63
+ <clipPath id="clip1">
64
+ <path d="M 70 58 L 75.25 58 L 75.25 63 L 70 63 Z M 70 58 "/>
65
+ </clipPath>
66
+ <clipPath id="clip2">
67
+ <path d="M 70 58 L 75.25 58 L 75.25 64 L 70 64 Z M 70 58 "/>
68
+ </clipPath>
69
+ <clipPath id="clip3">
70
+ <path d="M 25 120 L 29.875 120 L 29.875 126 L 25 126 Z M 25 120 "/>
71
+ </clipPath>
72
+ <clipPath id="clip4">
73
+ <path d="M 116 120 L 120.621094 120 L 120.621094 126 L 116 126 Z M 116 120 "/>
74
+ </clipPath>
75
+ <clipPath id="clip5">
76
+ <path d="M 115 120 L 120.621094 120 L 120.621094 126 L 115 126 Z M 115 120 "/>
77
+ </clipPath>
78
+ <clipPath id="clip6">
79
+ <path d="M 58 8 L 88.40625 8 L 88.40625 17 L 58 17 Z M 58 8 "/>
80
+ </clipPath>
81
+ <clipPath id="clip7">
82
+ <path d="M 35 70 L 111.542969 70 L 111.542969 80 L 35 80 Z M 35 70 "/>
83
+ </clipPath>
84
+ <clipPath id="clip8">
85
+ <path d="M 7 132 L 48.609375 132 L 48.609375 142 L 7 142 Z M 7 132 "/>
86
+ </clipPath>
87
+ <clipPath id="clip9">
88
+ <path d="M 97.367188 132 L 139 132 L 139 142 L 97.367188 142 Z M 97.367188 132 "/>
89
+ </clipPath>
90
+ </defs>
91
+ <g id="surface1">
92
+ <path style="fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(19.999695%,19.999695%,19.999695%);stroke-opacity:1;stroke-miterlimit:4;" d="M 96.031261 33.000002 L 96.031261 37.166669 C 96.031261 41.333336 96.031261 49.66667 96.031261 58.000003 C 96.031261 66.333337 96.031261 74.666671 96.031261 78.833337 L 96.031261 83.000004 " transform="matrix(0.749775,0,0,0.75,0.998197,0.749999)"/>
93
+ <g clip-path="url(#clip1)" clip-rule="nonzero">
94
+ <path style=" stroke:none;fill-rule:nonzero;fill:rgb(19.999695%,19.999695%,19.999695%);fill-opacity:1;" d="M 75.25 58.5 L 73 63 L 70.75 58.5 Z M 75.25 58.5 "/>
95
+ </g>
96
+ <g clip-path="url(#clip2)" clip-rule="nonzero">
97
+ <path style=" stroke:none;fill-rule:nonzero;fill:rgb(19.999695%,19.999695%,19.999695%);fill-opacity:1;" d="M 75.25 59.003906 L 75.046875 59.40625 L 74.644531 59.203125 L 74.847656 58.800781 Z M 75.046875 59.40625 L 74.847656 59.808594 L 74.445312 59.605469 L 74.644531 59.203125 Z M 74.847656 59.808594 L 74.644531 60.210938 L 74.242188 60.007812 L 74.445312 59.605469 Z M 74.644531 60.210938 L 74.445312 60.613281 L 74.042969 60.410156 L 74.242188 60.007812 Z M 74.445312 60.613281 L 74.242188 61.015625 L 73.839844 60.8125 L 74.042969 60.410156 Z M 74.242188 61.015625 L 74.042969 61.417969 L 73.640625 61.21875 L 73.839844 60.8125 Z M 74.042969 61.417969 L 73.839844 61.820312 L 73.4375 61.621094 L 73.640625 61.21875 Z M 73.839844 61.820312 L 73.640625 62.222656 L 73.238281 62.023438 L 73.4375 61.621094 Z M 73.640625 62.222656 L 73.4375 62.625 L 73.035156 62.425781 L 73.238281 62.023438 Z M 73.4375 62.625 L 73.238281 63.027344 L 72.835938 62.828125 L 73.035156 62.425781 Z M 73.238281 63.027344 L 73 63.503906 L 72.632812 62.769531 L 73.035156 62.570312 L 73.203125 62.898438 L 73 63 L 72.796875 62.898438 L 72.835938 62.828125 Z M 72.632812 62.769531 L 72.433594 62.367188 L 72.835938 62.167969 L 73.035156 62.570312 Z M 72.433594 62.367188 L 72.230469 61.964844 L 72.632812 61.765625 L 72.835938 62.167969 Z M 72.230469 61.964844 L 72.03125 61.5625 L 72.433594 61.363281 L 72.632812 61.765625 Z M 72.03125 61.5625 L 71.828125 61.160156 L 72.230469 60.960938 L 72.433594 61.363281 Z M 71.828125 61.160156 L 71.628906 60.757812 L 72.03125 60.558594 L 72.230469 60.960938 Z M 71.628906 60.757812 L 71.425781 60.355469 L 71.828125 60.15625 L 72.03125 60.558594 Z M 71.425781 60.355469 L 71.226562 59.953125 L 71.628906 59.753906 L 71.828125 60.15625 Z M 71.226562 59.953125 L 71.023438 59.550781 L 71.425781 59.347656 L 71.628906 59.753906 Z M 71.023438 59.550781 L 70.824219 59.148438 L 71.226562 58.945312 L 71.425781 59.347656 Z M 70.824219 59.148438 L 70.621094 58.746094 L 71.023438 58.542969 L 71.226562 58.945312 Z M 70.621094 58.746094 L 70.386719 58.273438 L 71.039062 58.273438 L 71.039062 58.726562 L 70.75 58.726562 L 70.75 58.5 L 70.953125 58.398438 L 71.023438 58.542969 Z M 71.039062 58.273438 L 71.488281 58.273438 L 71.488281 58.726562 L 71.039062 58.726562 Z M 71.488281 58.273438 L 71.9375 58.273438 L 71.9375 58.726562 L 71.488281 58.726562 Z M 71.9375 58.273438 L 72.386719 58.273438 L 72.386719 58.726562 L 71.9375 58.726562 Z M 72.386719 58.273438 L 72.835938 58.273438 L 72.835938 58.726562 L 72.386719 58.726562 Z M 72.835938 58.273438 L 73.289062 58.273438 L 73.289062 58.726562 L 72.835938 58.726562 Z M 73.289062 58.273438 L 73.738281 58.273438 L 73.738281 58.726562 L 73.289062 58.726562 Z M 73.738281 58.273438 L 74.1875 58.273438 L 74.1875 58.726562 L 73.738281 58.726562 Z M 74.1875 58.273438 L 74.636719 58.273438 L 74.636719 58.726562 L 74.1875 58.726562 Z M 74.636719 58.273438 L 75.085938 58.273438 L 75.085938 58.726562 L 74.636719 58.726562 Z M 75.085938 58.273438 L 75.613281 58.273438 L 75.25 59.003906 L 74.847656 58.800781 L 75.046875 58.398438 L 75.25 58.5 L 75.25 58.726562 L 75.085938 58.726562 Z M 75.085938 58.273438 "/>
98
+ </g>
99
+ <path style="fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(19.999695%,19.999695%,19.999695%);stroke-opacity:1;stroke-miterlimit:4;" d="M 71.971948 116.000006 L 65.897206 120.166673 C 59.817254 124.333339 47.66777 132.666673 41.593027 141.000007 C 35.513075 149.33334 35.513075 157.666674 35.513075 161.833341 L 35.513075 166.000008 " transform="matrix(0.749775,0,0,0.75,0.998197,0.749999)"/>
100
+ <g clip-path="url(#clip3)" clip-rule="nonzero">
101
+ <path style=" stroke:none;fill-rule:nonzero;fill:rgb(19.999695%,19.999695%,19.999695%);fill-opacity:1;" d="M 29.875 120.75 L 27.625 125.25 L 25.378906 120.75 Z M 29.875 120.75 "/>
102
+ <path style=" stroke:none;fill-rule:nonzero;fill:rgb(19.999695%,19.999695%,19.999695%);fill-opacity:1;" d="M 29.875 121.253906 L 29.675781 121.65625 L 29.273438 121.453125 L 29.472656 121.050781 Z M 29.675781 121.65625 L 29.472656 122.058594 L 29.070312 121.855469 L 29.273438 121.453125 Z M 29.472656 122.058594 L 29.273438 122.460938 L 28.871094 122.257812 L 29.070312 121.855469 Z M 29.273438 122.460938 L 29.070312 122.863281 L 28.667969 122.660156 L 28.871094 122.257812 Z M 29.070312 122.863281 L 28.871094 123.265625 L 28.46875 123.0625 L 28.667969 122.660156 Z M 28.871094 123.265625 L 28.667969 123.667969 L 28.265625 123.46875 L 28.46875 123.0625 Z M 28.667969 123.667969 L 28.46875 124.070312 L 28.066406 123.871094 L 28.265625 123.46875 Z M 28.46875 124.070312 L 28.265625 124.472656 L 27.863281 124.273438 L 28.066406 123.871094 Z M 28.265625 124.472656 L 28.066406 124.875 L 27.664062 124.675781 L 27.863281 124.273438 Z M 28.066406 124.875 L 27.863281 125.277344 L 27.460938 125.078125 L 27.664062 124.675781 Z M 27.863281 125.277344 L 27.625 125.753906 L 27.261719 125.019531 L 27.664062 124.820312 L 27.828125 125.148438 L 27.625 125.25 L 27.425781 125.148438 L 27.460938 125.078125 Z M 27.261719 125.019531 L 27.058594 124.617188 L 27.460938 124.417969 L 27.664062 124.820312 Z M 27.058594 124.617188 L 26.859375 124.214844 L 27.261719 124.015625 L 27.460938 124.417969 Z M 26.859375 124.214844 L 26.65625 123.8125 L 27.058594 123.613281 L 27.261719 124.015625 Z M 26.65625 123.8125 L 26.457031 123.410156 L 26.859375 123.210938 L 27.058594 123.613281 Z M 26.457031 123.410156 L 26.253906 123.007812 L 26.65625 122.808594 L 26.859375 123.210938 Z M 26.253906 123.007812 L 26.054688 122.605469 L 26.457031 122.40625 L 26.65625 122.808594 Z M 26.054688 122.605469 L 25.851562 122.203125 L 26.253906 122.003906 L 26.457031 122.40625 Z M 25.851562 122.203125 L 25.652344 121.800781 L 26.054688 121.597656 L 26.253906 122.003906 Z M 25.652344 121.800781 L 25.449219 121.398438 L 25.851562 121.195312 L 26.054688 121.597656 Z M 25.449219 121.398438 L 25.25 120.996094 L 25.652344 120.792969 L 25.851562 121.195312 Z M 25.25 120.996094 L 25.011719 120.523438 L 25.664062 120.523438 L 25.664062 120.976562 L 25.378906 120.976562 L 25.378906 120.75 L 25.578125 120.648438 L 25.652344 120.792969 Z M 25.664062 120.523438 L 26.113281 120.523438 L 26.113281 120.976562 L 25.664062 120.976562 Z M 26.113281 120.523438 L 26.566406 120.523438 L 26.566406 120.976562 L 26.113281 120.976562 Z M 26.566406 120.523438 L 27.015625 120.523438 L 27.015625 120.976562 L 26.566406 120.976562 Z M 27.015625 120.523438 L 27.464844 120.523438 L 27.464844 120.976562 L 27.015625 120.976562 Z M 27.464844 120.523438 L 27.914062 120.523438 L 27.914062 120.976562 L 27.464844 120.976562 Z M 27.914062 120.523438 L 28.363281 120.523438 L 28.363281 120.976562 L 27.914062 120.976562 Z M 28.363281 120.523438 L 28.8125 120.523438 L 28.8125 120.976562 L 28.363281 120.976562 Z M 28.8125 120.523438 L 29.265625 120.523438 L 29.265625 120.976562 L 28.8125 120.976562 Z M 29.265625 120.523438 L 29.714844 120.523438 L 29.714844 120.976562 L 29.265625 120.976562 Z M 29.714844 120.523438 L 30.238281 120.523438 L 29.875 121.253906 L 29.472656 121.050781 L 29.675781 120.648438 L 29.875 120.75 L 29.875 120.976562 L 29.714844 120.976562 Z M 29.714844 120.523438 "/>
103
+ </g>
104
+ <path style="fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(19.999695%,19.999695%,19.999695%);stroke-opacity:1;stroke-miterlimit:4;" d="M 120.090573 116.000006 L 126.165316 120.166673 C 132.245268 124.333339 144.394752 132.666673 150.469494 141.000007 C 156.549446 149.33334 156.549446 157.666674 156.549446 161.833341 L 156.549446 166.000008 " transform="matrix(0.749775,0,0,0.75,0.998197,0.749999)"/>
105
+ <g clip-path="url(#clip4)" clip-rule="nonzero">
106
+ <path style=" stroke:none;fill-rule:nonzero;fill:rgb(19.999695%,19.999695%,19.999695%);fill-opacity:1;" d="M 120.621094 120.75 L 118.375 125.25 L 116.125 120.75 Z M 120.621094 120.75 "/>
107
+ </g>
108
+ <g clip-path="url(#clip5)" clip-rule="nonzero">
109
+ <path style=" stroke:none;fill-rule:nonzero;fill:rgb(19.999695%,19.999695%,19.999695%);fill-opacity:1;" d="M 120.621094 121.253906 L 120.421875 121.65625 L 120.019531 121.453125 L 120.21875 121.050781 Z M 120.421875 121.65625 L 120.21875 122.058594 L 119.816406 121.855469 L 120.019531 121.453125 Z M 120.21875 122.058594 L 120.019531 122.460938 L 119.617188 122.257812 L 119.816406 121.855469 Z M 120.019531 122.460938 L 119.816406 122.863281 L 119.414062 122.660156 L 119.617188 122.257812 Z M 119.816406 122.863281 L 119.617188 123.265625 L 119.214844 123.0625 L 119.414062 122.660156 Z M 119.617188 123.265625 L 119.414062 123.667969 L 119.011719 123.46875 L 119.214844 123.0625 Z M 119.414062 123.667969 L 119.214844 124.070312 L 118.8125 123.871094 L 119.011719 123.46875 Z M 119.214844 124.070312 L 119.011719 124.472656 L 118.609375 124.273438 L 118.8125 123.871094 Z M 119.011719 124.472656 L 118.8125 124.875 L 118.410156 124.675781 L 118.609375 124.273438 Z M 118.8125 124.875 L 118.609375 125.277344 L 118.207031 125.078125 L 118.410156 124.675781 Z M 118.609375 125.277344 L 118.375 125.753906 L 118.007812 125.019531 L 118.410156 124.820312 L 118.574219 125.148438 L 118.375 125.25 L 118.171875 125.148438 L 118.207031 125.078125 Z M 118.007812 125.019531 L 117.804688 124.617188 L 118.207031 124.417969 L 118.410156 124.820312 Z M 117.804688 124.617188 L 117.605469 124.214844 L 118.007812 124.015625 L 118.207031 124.417969 Z M 117.605469 124.214844 L 117.402344 123.8125 L 117.804688 123.613281 L 118.007812 124.015625 Z M 117.402344 123.8125 L 117.203125 123.410156 L 117.605469 123.210938 L 117.804688 123.613281 Z M 117.203125 123.410156 L 117 123.007812 L 117.402344 122.808594 L 117.605469 123.210938 Z M 117 123.007812 L 116.800781 122.605469 L 117.203125 122.40625 L 117.402344 122.808594 Z M 116.800781 122.605469 L 116.597656 122.203125 L 117 122.003906 L 117.203125 122.40625 Z M 116.597656 122.203125 L 116.398438 121.800781 L 116.800781 121.597656 L 117 122.003906 Z M 116.398438 121.800781 L 116.195312 121.398438 L 116.597656 121.195312 L 116.800781 121.597656 Z M 116.195312 121.398438 L 115.996094 120.996094 L 116.398438 120.792969 L 116.597656 121.195312 Z M 115.996094 120.996094 L 115.761719 120.523438 L 116.410156 120.523438 L 116.410156 120.976562 L 116.125 120.976562 L 116.125 120.75 L 116.324219 120.648438 L 116.398438 120.792969 Z M 116.410156 120.523438 L 116.859375 120.523438 L 116.859375 120.976562 L 116.410156 120.976562 Z M 116.859375 120.523438 L 117.3125 120.523438 L 117.3125 120.976562 L 116.859375 120.976562 Z M 117.3125 120.523438 L 117.761719 120.523438 L 117.761719 120.976562 L 117.3125 120.976562 Z M 117.761719 120.523438 L 118.210938 120.523438 L 118.210938 120.976562 L 117.761719 120.976562 Z M 118.210938 120.523438 L 118.660156 120.523438 L 118.660156 120.976562 L 118.210938 120.976562 Z M 118.660156 120.523438 L 119.109375 120.523438 L 119.109375 120.976562 L 118.660156 120.976562 Z M 119.109375 120.523438 L 119.558594 120.523438 L 119.558594 120.976562 L 119.109375 120.976562 Z M 119.558594 120.523438 L 120.011719 120.523438 L 120.011719 120.976562 L 119.558594 120.976562 Z M 120.011719 120.523438 L 120.460938 120.523438 L 120.460938 120.976562 L 120.011719 120.976562 Z M 120.460938 120.523438 L 120.988281 120.523438 L 120.621094 121.253906 L 120.21875 121.050781 L 120.421875 120.648438 L 120.621094 120.75 L 120.621094 120.976562 L 120.460938 120.976562 Z M 120.460938 120.523438 "/>
110
+ </g>
111
+ <path style="fill-rule:nonzero;fill:rgb(92.549133%,92.549133%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(57.649231%,43.919373%,85.879517%);stroke-opacity:1;stroke-miterlimit:4;" d="M -27.951103 -16.499999 L 27.951112 -16.499999 L 27.951112 16.500002 L -27.951103 16.500002 Z M -27.951103 -16.499999 " transform="matrix(0.749775,0,0,0.75,72.999997,13.124999)"/>
112
+ <g clip-path="url(#clip6)" clip-rule="nonzero">
113
+ <g style="fill:rgb(19.999695%,19.999695%,19.999695%);fill-opacity:1;">
114
+ <use xlink:href="#glyph0-1" x="57.66476" y="16.874999"/>
115
+ <use xlink:href="#glyph0-2" x="66.328172" y="16.874999"/>
116
+ <use xlink:href="#glyph0-3" x="68.993386" y="16.874999"/>
117
+ <use xlink:href="#glyph0-4" x="71.658601" y="16.874999"/>
118
+ <use xlink:href="#glyph0-5" x="78.330424" y="16.874999"/>
119
+ <use xlink:href="#glyph0-6" x="85.002246" y="16.874999"/>
120
+ </g>
121
+ </g>
122
+ <path style="fill-rule:nonzero;fill:rgb(92.549133%,92.549133%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(57.649231%,43.919373%,85.879517%);stroke-opacity:1;stroke-miterlimit:4;" d="M -59.095878 -16.499996 L 59.095887 -16.499996 L 59.095887 16.500006 L -59.095878 16.500006 Z M -59.095878 -16.499996 " transform="matrix(0.749775,0,0,0.75,72.999997,75.374996)"/>
123
+ <g clip-path="url(#clip7)" clip-rule="nonzero">
124
+ <g style="fill:rgb(19.999695%,19.999695%,19.999695%);fill-opacity:1;">
125
+ <use xlink:href="#glyph0-7" x="34.316309" y="79.124996"/>
126
+ <use xlink:href="#glyph0-8" x="40.988131" y="79.124996"/>
127
+ <use xlink:href="#glyph0-9" x="47.659954" y="79.124996"/>
128
+ <use xlink:href="#glyph0-10" x="54.331777" y="79.124996"/>
129
+ <use xlink:href="#glyph0-11" x="61.003599" y="79.124996"/>
130
+ <use xlink:href="#glyph0-12" x="64.336582" y="79.124996"/>
131
+ <use xlink:href="#glyph0-9" x="72.338083" y="79.124996"/>
132
+ <use xlink:href="#glyph0-2" x="79.009906" y="79.124996"/>
133
+ <use xlink:href="#glyph0-9" x="81.67512" y="79.124996"/>
134
+ <use xlink:href="#glyph0-5" x="88.346943" y="79.124996"/>
135
+ <use xlink:href="#glyph0-13" x="95.018765" y="79.124996"/>
136
+ <use xlink:href="#glyph0-4" x="101.016962" y="79.124996"/>
137
+ <use xlink:href="#glyph0-14" x="107.688785" y="79.124996"/>
138
+ </g>
139
+ </g>
140
+ <path style="fill-rule:nonzero;fill:rgb(92.549133%,92.549133%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(57.649231%,43.919373%,85.879517%);stroke-opacity:1;stroke-miterlimit:4;" d="M -35.513223 -16.499992 L 35.513328 -16.499992 L 35.513328 16.500009 L -35.513223 16.500009 Z M -35.513223 -16.499992 " transform="matrix(0.749775,0,0,0.75,27.626914,137.624994)"/>
141
+ <g clip-path="url(#clip8)" clip-rule="nonzero">
142
+ <g style="fill:rgb(19.999695%,19.999695%,19.999695%);fill-opacity:1;">
143
+ <use xlink:href="#glyph0-15" x="6.621508" y="141.374993"/>
144
+ <use xlink:href="#glyph0-4" x="14.623009" y="141.374993"/>
145
+ <use xlink:href="#glyph0-14" x="21.294831" y="141.374993"/>
146
+ <use xlink:href="#glyph0-16" x="25.289724" y="141.374993"/>
147
+ <use xlink:href="#glyph0-4" x="31.287921" y="141.374993"/>
148
+ <use xlink:href="#glyph0-14" x="37.959744" y="141.374993"/>
149
+ <use xlink:href="#glyph0-17" x="41.954637" y="141.374993"/>
150
+ </g>
151
+ </g>
152
+ <path style="fill-rule:nonzero;fill:rgb(92.549133%,92.549133%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(57.649231%,43.919373%,85.879517%);stroke-opacity:1;stroke-miterlimit:4;" d="M -35.513313 -16.499992 L 35.513239 -16.499992 L 35.513239 16.500009 L -35.513313 16.500009 Z M -35.513313 -16.499992 " transform="matrix(0.749775,0,0,0.75,118.373075,137.624994)"/>
153
+ <g clip-path="url(#clip9)" clip-rule="nonzero">
154
+ <g style="fill:rgb(19.999695%,19.999695%,19.999695%);fill-opacity:1;">
155
+ <use xlink:href="#glyph0-15" x="97.367671" y="141.374993"/>
156
+ <use xlink:href="#glyph0-4" x="105.369172" y="141.374993"/>
157
+ <use xlink:href="#glyph0-14" x="112.040995" y="141.374993"/>
158
+ <use xlink:href="#glyph0-16" x="116.035887" y="141.374993"/>
159
+ <use xlink:href="#glyph0-4" x="122.034085" y="141.374993"/>
160
+ <use xlink:href="#glyph0-14" x="128.705907" y="141.374993"/>
161
+ <use xlink:href="#glyph0-18" x="132.7008" y="141.374993"/>
162
+ </g>
163
+ </g>
164
+ </g>
165
+ </svg>
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/playwrightrunner/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'playwright-runner'
7
+ spec.version = PlaywrightRunner::VERSION
8
+ spec.authors = ['Kenshi Muto']
9
+ spec.email = ['kmuto@kmuto.jp']
10
+
11
+ spec.summary = 'Playwright Runner'
12
+ spec.description = 'Provide useful methods to run Playwright, intended to be used with Re:VIEW'
13
+ spec.homepage = 'https://github.com/kmuto/playwright-runner'
14
+ spec.license = 'MIT'
15
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.7.0')
16
+
17
+ spec.metadata['rubygems_mfa_required'] = 'true'
18
+ spec.metadata['homepage_uri'] = spec.homepage
19
+ spec.metadata['source_code_uri'] = 'https://github.com/kmuto/playwright-runner'
20
+ spec.metadata['changelog_uri'] = 'https://github.com/kmuto/playwright-runner/commits/main'
21
+
22
+ # Specify which files should be added to the gem when it is released.
23
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
25
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
26
+ end
27
+ spec.bindir = 'exe'
28
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
29
+ spec.require_paths = ['lib']
30
+
31
+ spec.add_dependency 'playwright-ruby-client', '~> 1.0'
32
+ end
metadata ADDED
@@ -0,0 +1,74 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: playwright-runner
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Kenshi Muto
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2023-04-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: playwright-ruby-client
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ description: Provide useful methods to run Playwright, intended to be used with Re:VIEW
28
+ email:
29
+ - kmuto@kmuto.jp
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".github/workflows/main.yml"
35
+ - ".gitignore"
36
+ - ".rubocop.yml"
37
+ - Gemfile
38
+ - LICENSE.txt
39
+ - README.md
40
+ - Rakefile
41
+ - bin/console
42
+ - bin/setup
43
+ - lib/playwrightrunner.rb
44
+ - lib/playwrightrunner/version.rb
45
+ - p1.svg
46
+ - playwright-runner.gemspec
47
+ homepage: https://github.com/kmuto/playwright-runner
48
+ licenses:
49
+ - MIT
50
+ metadata:
51
+ rubygems_mfa_required: 'true'
52
+ homepage_uri: https://github.com/kmuto/playwright-runner
53
+ source_code_uri: https://github.com/kmuto/playwright-runner
54
+ changelog_uri: https://github.com/kmuto/playwright-runner/commits/main
55
+ post_install_message:
56
+ rdoc_options: []
57
+ require_paths:
58
+ - lib
59
+ required_ruby_version: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 2.7.0
64
+ required_rubygems_version: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ requirements: []
70
+ rubygems_version: 3.2.5
71
+ signing_key:
72
+ specification_version: 4
73
+ summary: Playwright Runner
74
+ test_files: []