passenger 4.0.24 → 4.0.25
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- data.tar.gz.asc +7 -7
- data/INSTALL.md +2 -2
- data/NEWS +12 -0
- data/README.md +14 -6
- data/build/packaging.rb +3 -1
- data/doc/Users guide Apache.idmap.txt +19 -17
- data/doc/Users guide Apache.txt +146 -95
- data/doc/Users guide Nginx.txt +6 -6
- data/doc/Users guide Standalone.idmap.txt +19 -15
- data/doc/Users guide Standalone.txt +26 -1
- data/doc/Users guide.txt +9 -0
- data/doc/images/passenger_nodejs_architecture.svg +558 -0
- data/doc/users_guide_snippets/installation.txt +19 -16
- data/ext/common/AgentsStarter.h +1 -11
- data/ext/common/ApplicationPool2/AppTypes.cpp +5 -0
- data/ext/common/ApplicationPool2/AppTypes.h +1 -0
- data/ext/common/ApplicationPool2/Options.h +8 -4
- data/ext/common/ApplicationPool2/Spawner.h +1 -0
- data/ext/common/Constants.h +2 -2
- data/ext/common/ServerInstanceDir.h +9 -24
- data/ext/common/agents/HelperAgent/RequestHandler.h +1 -0
- data/ext/nginx/CacheLocationConfig.c +40 -0
- data/ext/nginx/ConfigurationCommands.c +30 -0
- data/ext/nginx/ConfigurationFields.h +6 -0
- data/ext/nginx/ContentHandler.c +40 -32
- data/ext/nginx/CreateLocationConfig.c +15 -0
- data/ext/nginx/MergeLocationConfig.c +18 -0
- data/helper-scripts/node-loader.js +2 -1
- data/lib/phusion_passenger.rb +3 -3
- data/lib/phusion_passenger/constants.rb +1 -1
- data/lib/phusion_passenger/nginx/config_options.rb +13 -0
- data/lib/phusion_passenger/standalone/start_command.rb +19 -2
- data/lib/phusion_passenger/utils/tmpdir.rb +0 -1
- data/resources/templates/standalone/config.erb +8 -1
- data/test/integration_tests/native_packaging_spec.rb +14 -4
- metadata +3 -2
- metadata.gz.asc +7 -7
data/doc/Users guide Nginx.txt
CHANGED
@@ -89,7 +89,7 @@ And you want your Rails application, located in `/websites/rails`, to be accessi
|
|
89
89
|
|
90
90
|
To do this, you need to perform the following:
|
91
91
|
|
92
|
-
1. Create a `location <SUBURI
|
92
|
+
1. Create a `location` with parameter `^/<SUBURI>(/|$)`. This is a regular expression that says: "match everything that is exactly <SUBURI>, or starts with <SUBDURI>/".
|
93
93
|
2. Inside the location block, set `passenger_base_uri <SUBURI>`.
|
94
94
|
3. Inside the location block, set `alias <PATH TO YOUR APPLICATION'S PUBLIC DIRECTORY>`.
|
95
95
|
4. Inside the location block, set `passenger_app_root <PATH TO YOUR APPLICATION ROOT>`.
|
@@ -107,7 +107,7 @@ http {
|
|
107
107
|
root /websites/phusion;
|
108
108
|
|
109
109
|
# This block has been added.
|
110
|
-
location
|
110
|
+
location ^/subapp(/|$) {
|
111
111
|
passenger_base_uri /subapp;
|
112
112
|
alias /websites/rails/public; # <-- be sure to point to 'public'!
|
113
113
|
passenger_app_root /websites/rails;
|
@@ -280,7 +280,7 @@ And you want your Rack application, located in `/websites/rack`, to be accessibl
|
|
280
280
|
|
281
281
|
To do this, you need to perform the following:
|
282
282
|
|
283
|
-
1. Create a `location <SUBURI
|
283
|
+
1. Create a `location` with parameter `^/<SUBURI>(/|$)`. This is a regular expression that says: "match everything that is exactly <SUBURI>, or starts with <SUBDURI>/".
|
284
284
|
2. Inside the location block, set `passenger_base_uri <SUBURI>`.
|
285
285
|
3. Inside the location block, set `alias <PATH TO YOUR APPLICATION'S PUBLIC DIRECTORY>`.
|
286
286
|
4. Inside the location block, set `passenger_app_root <PATH TO YOUR APPLICATION ROOT>`.
|
@@ -298,7 +298,7 @@ http {
|
|
298
298
|
root /websites/phusion;
|
299
299
|
|
300
300
|
# This block has been added.
|
301
|
-
location
|
301
|
+
location ^/subapp(/|$) {
|
302
302
|
passenger_base_uri /subapp;
|
303
303
|
alias /websites/rack/public; # <-- be sure to point to 'public'!
|
304
304
|
passenger_app_root /websites/rack;
|
@@ -440,7 +440,7 @@ And you want your WSGI application, located in `/websites/wsgi`, to be accessibl
|
|
440
440
|
|
441
441
|
To do this, you need to perform the following:
|
442
442
|
|
443
|
-
1. Create a `location <SUBURI
|
443
|
+
1. Create a `location` with parameter `^/<SUBURI>(/|$)`. This is a regular expression that says: "match everything that is exactly <SUBURI>, or starts with <SUBDURI>/".
|
444
444
|
2. Inside the location block, set `passenger_base_uri <SUBURI>`.
|
445
445
|
3. Inside the location block, set `alias <PATH TO YOUR APPLICATION'S PUBLIC DIRECTORY>`.
|
446
446
|
4. Inside the location block, set `passenger_app_root <PATH TO YOUR APPLICATION ROOT>`.
|
@@ -458,7 +458,7 @@ http {
|
|
458
458
|
root /websites/phusion;
|
459
459
|
|
460
460
|
# This block has been added.
|
461
|
-
location
|
461
|
+
location ^/subapp(/|$) {
|
462
462
|
passenger_base_uri /subapp;
|
463
463
|
alias /websites/wsgi/public; # <-- be sure to point to 'public'!
|
464
464
|
passenger_app_root /websites/wsgi;
|
@@ -76,33 +76,37 @@
|
|
76
76
|
|
77
77
|
4.3. Advanced configuration => advanced-configuration-e3v4pk
|
78
78
|
|
79
|
-
5.
|
79
|
+
5. Using Passenger Standalone in production => using-passenger-standalone-in-production-1i7yjcz
|
80
80
|
|
81
|
-
|
81
|
+
5.1. Starting Passenger Standalone at system boot => starting-passenger-standalone-at-system-boot-jpem2b
|
82
82
|
|
83
|
-
6.
|
83
|
+
6. Mass deployment => mass-deployment-1xqriy4
|
84
84
|
|
85
|
-
|
85
|
+
7. Troubleshooting => troubleshooting-o7g75o
|
86
86
|
|
87
|
-
7.
|
87
|
+
7.1. Generic troubleshooting tips => generic-troubleshooting-tips-2vokcr
|
88
88
|
|
89
|
-
7.
|
89
|
+
7.2. Upon uploading a file, Phusion Passenger reports "client_body_temp/00000000xx failed (2: No such file or directory)" => upon-uploading-a-file-phusion-passenger-reports-client-body-temp-00000000xx-failed-2-no-such-file-or-directory--d01goe
|
90
90
|
|
91
|
-
|
91
|
+
8. Appendix: About environment variables => appendix-about-environment-variables-1ct91x3
|
92
92
|
|
93
|
-
|
93
|
+
8.1. Working with environment variables => working-with-environment-variables-11cmwlv
|
94
94
|
|
95
|
-
|
95
|
+
8.2. The PATH environment variable => the-path-environment-variable-yzfn3k
|
96
96
|
|
97
|
-
|
97
|
+
8.2.1. Adding Phusion Passenger’s administration tools to PATH => adding-phusion-passenger-s-administration-tools-to-path-d7k5mh
|
98
98
|
|
99
|
-
|
99
|
+
8.3. Making environment variables permanent => making-environment-variables-permanent-mkq46d
|
100
100
|
|
101
|
-
|
101
|
+
8.3.1. bash => bash-hmcscc
|
102
102
|
|
103
|
-
|
103
|
+
8.3.2. Apache => apache-15y3bm0
|
104
104
|
|
105
|
-
|
105
|
+
8.3.3. Nginx => nginx-uarf27
|
106
106
|
|
107
|
-
|
107
|
+
8.3.4. cron => cron-6272ar
|
108
|
+
|
109
|
+
8.3.5. Phusion Passenger-served apps => phusion-passenger-served-apps-127wbl2
|
110
|
+
|
111
|
+
8.4. Environment variables and sudo => environment-variables-and-sudo-znzmif
|
108
112
|
|
@@ -38,7 +38,7 @@ Most configuration is done by customizing the arguments passed to the `passenger
|
|
38
38
|
`--port NUMBER`::
|
39
39
|
The port number that Phusion Passenger should listen on. Defaults to 3000.
|
40
40
|
`--environment NAME`::
|
41
|
-
Customizes the value of the `RAILS_ENV`, `RACK_ENV` and `PASSENGER_ENV` environment
|
41
|
+
Customizes the value of the `RAILS_ENV`, `RACK_ENV`, `WSGI_ENV`, `NODE_ENV` and `PASSENGER_ENV` environment variables. Some web frameworks, for example Rails and Connect.js, adjust their behavior according to the environment. The default value is 'development'.
|
42
42
|
`--max-pool-size NUMBER`::
|
43
43
|
The maximum number of application processes to run. The maximum number that you can run depends on the amount of memory your server has. The article link:http://blog.phusion.nl/2013/03/12/tuning-phusion-passengers-concurrency-settings/[Tuning Phusion Passenger's concurrency settings] explains how you can infer a good number for this option.
|
44
44
|
`--min-instances NUMBER`::
|
@@ -110,6 +110,31 @@ NOTE: If you installed Phusion Passenger using the Debian or Ubuntu packages, th
|
|
110
110
|
Please note that changes to this file only last until you reinstall or upgrade Phusion Passenger. We are currently working on a mechanism for permanently editing the configuration file.
|
111
111
|
|
112
112
|
|
113
|
+
== Using Passenger Standalone in production
|
114
|
+
|
115
|
+
[[starting_at_system_boot]]
|
116
|
+
=== Starting Passenger Standalone at system boot
|
117
|
+
|
118
|
+
The easiest way to have Passenger Standalone started during system boot is add it to the file `/etc/rc.local`. This script is called during system boot.
|
119
|
+
|
120
|
+
Here's an example of what you may want to add to `/etc/rc.local`. If there is an `exit` command in `rc.local`, make sure you add these _before_ the `exit` command.
|
121
|
+
|
122
|
+
[source,sh]
|
123
|
+
------------------------------------------
|
124
|
+
# If you installed Phusion Passenger from tarball, add its `bin` directory to PATH.
|
125
|
+
#export PATH=/path-to-passenger/bin:$PATH
|
126
|
+
|
127
|
+
# Change working directory to your webapp.
|
128
|
+
cd /path-to-your-webapp
|
129
|
+
|
130
|
+
# Start Passenger Standalone in daemonized mode. Passenger will be started as
|
131
|
+
# root when run from this file, so we also tell it to drop its privileges to a
|
132
|
+
# normal user. Replace 'someusername' with the user you want to run your
|
133
|
+
# application under.
|
134
|
+
passenger start --daemonize --port 80 --user someusername
|
135
|
+
------------------------------------------
|
136
|
+
|
137
|
+
|
113
138
|
[[mass_deployment]]
|
114
139
|
== Mass deployment
|
115
140
|
:version: 3.0.0
|
data/doc/Users guide.txt
CHANGED
@@ -43,6 +43,15 @@ Please refer to:
|
|
43
43
|
* link:Users%20guide%20Apache.html#installation[**Apache** mode installation & upgrade]
|
44
44
|
* link:Users%20guide%20Standalone.html#installation[**Standalone** mode installation & upgrade]
|
45
45
|
|
46
|
+
[[troubleshooting]]
|
47
|
+
== Troubleshooting
|
48
|
+
|
49
|
+
Please refer to:
|
50
|
+
|
51
|
+
* link:Users%20guide%20Nginx.html#troubleshooting[**Nginx** mode troubleshooting]
|
52
|
+
* link:Users%20guide%20Apache.html#troubleshooting[**Apache** mode troubleshooting]
|
53
|
+
* link:Users%20guide%20Standalone.html#troubleshooting[**Standalone** mode troubleshooting]
|
54
|
+
|
46
55
|
[[support]]
|
47
56
|
== Where to get support
|
48
57
|
|
@@ -0,0 +1,558 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
+
|
4
|
+
<svg
|
5
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
6
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
7
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
8
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
9
|
+
xmlns="http://www.w3.org/2000/svg"
|
10
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
11
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
12
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
13
|
+
width="850"
|
14
|
+
height="1052.3622"
|
15
|
+
id="svg2"
|
16
|
+
version="1.1"
|
17
|
+
inkscape:version="0.48.2 r9819"
|
18
|
+
inkscape:export-filename="/Users/hongli/Desktop/passenger_node.png"
|
19
|
+
inkscape:export-xdpi="80.629997"
|
20
|
+
inkscape:export-ydpi="80.629997"
|
21
|
+
sodipodi:docname="passenger_nodejs_architecture.svg">
|
22
|
+
<defs
|
23
|
+
id="defs4">
|
24
|
+
<linearGradient
|
25
|
+
id="linearGradient3873">
|
26
|
+
<stop
|
27
|
+
style="stop-color:#636363;stop-opacity:1;"
|
28
|
+
offset="0"
|
29
|
+
id="stop3875" />
|
30
|
+
<stop
|
31
|
+
style="stop-color:#b1b1b1;stop-opacity:1;"
|
32
|
+
offset="1"
|
33
|
+
id="stop3877" />
|
34
|
+
</linearGradient>
|
35
|
+
<linearGradient
|
36
|
+
id="linearGradient3863">
|
37
|
+
<stop
|
38
|
+
style="stop-color:#eeeeee;stop-opacity:1;"
|
39
|
+
offset="0"
|
40
|
+
id="stop3865" />
|
41
|
+
<stop
|
42
|
+
style="stop-color:#ffffff;stop-opacity:1;"
|
43
|
+
offset="1"
|
44
|
+
id="stop3867" />
|
45
|
+
</linearGradient>
|
46
|
+
<marker
|
47
|
+
inkscape:stockid="Arrow1Mstart"
|
48
|
+
orient="auto"
|
49
|
+
refY="0.0"
|
50
|
+
refX="0.0"
|
51
|
+
id="Arrow1Mstart"
|
52
|
+
style="overflow:visible">
|
53
|
+
<path
|
54
|
+
id="path4005"
|
55
|
+
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
56
|
+
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
|
57
|
+
transform="scale(0.4) translate(10,0)" />
|
58
|
+
</marker>
|
59
|
+
<marker
|
60
|
+
inkscape:stockid="Arrow2Send"
|
61
|
+
orient="auto"
|
62
|
+
refY="0"
|
63
|
+
refX="0"
|
64
|
+
id="Arrow2Send"
|
65
|
+
style="overflow:visible">
|
66
|
+
<path
|
67
|
+
id="path4032"
|
68
|
+
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
69
|
+
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
70
|
+
transform="matrix(-0.3,0,0,-0.3,0.69,0)"
|
71
|
+
inkscape:connector-curvature="0" />
|
72
|
+
</marker>
|
73
|
+
<marker
|
74
|
+
inkscape:stockid="Arrow2Sstart"
|
75
|
+
orient="auto"
|
76
|
+
refY="0"
|
77
|
+
refX="0"
|
78
|
+
id="Arrow2Sstart"
|
79
|
+
style="overflow:visible">
|
80
|
+
<path
|
81
|
+
id="path4029"
|
82
|
+
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
83
|
+
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
84
|
+
transform="matrix(0.3,0,0,0.3,-0.69,0)"
|
85
|
+
inkscape:connector-curvature="0" />
|
86
|
+
</marker>
|
87
|
+
<marker
|
88
|
+
inkscape:stockid="Arrow2Mend"
|
89
|
+
orient="auto"
|
90
|
+
refY="0"
|
91
|
+
refX="0"
|
92
|
+
id="Arrow2Mend"
|
93
|
+
style="overflow:visible">
|
94
|
+
<path
|
95
|
+
id="path4026"
|
96
|
+
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
97
|
+
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
98
|
+
transform="scale(-0.6,-0.6)"
|
99
|
+
inkscape:connector-curvature="0" />
|
100
|
+
</marker>
|
101
|
+
<marker
|
102
|
+
inkscape:stockid="Arrow2Mstart"
|
103
|
+
orient="auto"
|
104
|
+
refY="0"
|
105
|
+
refX="0"
|
106
|
+
id="Arrow2Mstart"
|
107
|
+
style="overflow:visible">
|
108
|
+
<path
|
109
|
+
id="path4023"
|
110
|
+
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
111
|
+
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
112
|
+
transform="scale(0.6,0.6)"
|
113
|
+
inkscape:connector-curvature="0" />
|
114
|
+
</marker>
|
115
|
+
<radialGradient
|
116
|
+
inkscape:collect="always"
|
117
|
+
xlink:href="#linearGradient3863"
|
118
|
+
id="radialGradient3871"
|
119
|
+
cx="399.86142"
|
120
|
+
cy="173.65393"
|
121
|
+
fx="399.86142"
|
122
|
+
fy="173.65393"
|
123
|
+
r="124.21188"
|
124
|
+
gradientTransform="matrix(0.08359871,-0.53730252,1.4968758,0.23289847,152.10997,303.41193)"
|
125
|
+
gradientUnits="userSpaceOnUse" />
|
126
|
+
<radialGradient
|
127
|
+
inkscape:collect="always"
|
128
|
+
xlink:href="#linearGradient3873"
|
129
|
+
id="radialGradient3881"
|
130
|
+
cx="420.47626"
|
131
|
+
cy="176.68454"
|
132
|
+
fx="420.47626"
|
133
|
+
fy="176.68454"
|
134
|
+
r="124.21188"
|
135
|
+
gradientTransform="matrix(0.19105948,-0.65672497,1.4449036,0.42036247,84.848158,325.87482)"
|
136
|
+
gradientUnits="userSpaceOnUse" />
|
137
|
+
</defs>
|
138
|
+
<sodipodi:namedview
|
139
|
+
id="base"
|
140
|
+
pagecolor="#ffffff"
|
141
|
+
bordercolor="#666666"
|
142
|
+
borderopacity="1.0"
|
143
|
+
inkscape:pageopacity="0.0"
|
144
|
+
inkscape:pageshadow="2"
|
145
|
+
inkscape:zoom="1"
|
146
|
+
inkscape:cx="170.25044"
|
147
|
+
inkscape:cy="740"
|
148
|
+
inkscape:document-units="px"
|
149
|
+
inkscape:current-layer="layer1"
|
150
|
+
showgrid="false"
|
151
|
+
inkscape:snap-bbox="false"
|
152
|
+
inkscape:snap-bbox-midpoints="false"
|
153
|
+
inkscape:window-width="1333"
|
154
|
+
inkscape:window-height="856"
|
155
|
+
inkscape:window-x="0"
|
156
|
+
inkscape:window-y="0"
|
157
|
+
inkscape:window-maximized="0">
|
158
|
+
<inkscape:grid
|
159
|
+
type="xygrid"
|
160
|
+
id="grid3901"
|
161
|
+
empspacing="5"
|
162
|
+
visible="true"
|
163
|
+
enabled="true"
|
164
|
+
snapvisiblegridlinesonly="true" />
|
165
|
+
</sodipodi:namedview>
|
166
|
+
<metadata
|
167
|
+
id="metadata7">
|
168
|
+
<rdf:RDF>
|
169
|
+
<cc:Work
|
170
|
+
rdf:about="">
|
171
|
+
<dc:format>image/svg+xml</dc:format>
|
172
|
+
<dc:type
|
173
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
174
|
+
<dc:title></dc:title>
|
175
|
+
</cc:Work>
|
176
|
+
</rdf:RDF>
|
177
|
+
</metadata>
|
178
|
+
<g
|
179
|
+
inkscape:label="Layer 1"
|
180
|
+
inkscape:groupmode="layer"
|
181
|
+
id="layer1">
|
182
|
+
<g
|
183
|
+
id="g3963"
|
184
|
+
transform="matrix(0.63975588,0,0,0.63975588,121.89997,153.53014)">
|
185
|
+
<rect
|
186
|
+
ry="15"
|
187
|
+
rx="15"
|
188
|
+
y="96.362183"
|
189
|
+
x="403"
|
190
|
+
height="134"
|
191
|
+
width="187.5"
|
192
|
+
id="rect3958"
|
193
|
+
style="fill:#106bce;fill-opacity:1;stroke:none" />
|
194
|
+
<rect
|
195
|
+
ry="15"
|
196
|
+
rx="15"
|
197
|
+
y="96.362183"
|
198
|
+
x="206"
|
199
|
+
height="134"
|
200
|
+
width="200"
|
201
|
+
id="rect3917"
|
202
|
+
style="fill:#3d93f0;fill-opacity:1;stroke:none" />
|
203
|
+
<text
|
204
|
+
xml:space="preserve"
|
205
|
+
style="font-size:25.53247833px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
206
|
+
x="306.66592"
|
207
|
+
y="136.18573"
|
208
|
+
id="text3923"
|
209
|
+
sodipodi:linespacing="125%"><tspan
|
210
|
+
style="font-size:25.53247833px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:condensed;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans Medium Condensed"
|
211
|
+
sodipodi:role="line"
|
212
|
+
id="tspan3925"
|
213
|
+
x="306.66592"
|
214
|
+
y="136.18573">Passenger</tspan><tspan
|
215
|
+
style="font-size:25.53247833px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:condensed;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans Medium Condensed"
|
216
|
+
id="tspan3927"
|
217
|
+
sodipodi:role="line"
|
218
|
+
x="306.66592"
|
219
|
+
y="168.10133">+</tspan><tspan
|
220
|
+
id="tspan3929"
|
221
|
+
style="font-size:25.53247833px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:condensed;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans Medium Condensed"
|
222
|
+
sodipodi:role="line"
|
223
|
+
x="306.66592"
|
224
|
+
y="200.01692">Nginx</tspan></text>
|
225
|
+
<rect
|
226
|
+
style="fill:#106bce;fill-opacity:1;stroke:none"
|
227
|
+
id="rect3931"
|
228
|
+
width="187.5"
|
229
|
+
height="134"
|
230
|
+
x="385"
|
231
|
+
y="96.362183" />
|
232
|
+
<text
|
233
|
+
sodipodi:linespacing="125%"
|
234
|
+
id="text3933"
|
235
|
+
y="137.68573"
|
236
|
+
x="486.66595"
|
237
|
+
style="font-size:25.53247833px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
238
|
+
xml:space="preserve"><tspan
|
239
|
+
id="tspan3946"
|
240
|
+
y="137.68573"
|
241
|
+
x="486.66595"
|
242
|
+
sodipodi:role="line"
|
243
|
+
style="font-size:25.53247833px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans Condensed">Management</tspan></text>
|
244
|
+
<path
|
245
|
+
sodipodi:nodetypes="scssssss"
|
246
|
+
inkscape:connector-curvature="0"
|
247
|
+
id="rect3960"
|
248
|
+
d="m 418,163.86218 172.5,0 0,51.5 c 0,8.31 -6.69,15 -15,15 l -157.5,0 c -8.31,0 -15,-6.69 -15,-15 l 0,-36.5 c 0,-8.31 6.69857,-15.37734 15,-15 z"
|
249
|
+
style="fill:#137bed;fill-opacity:1;stroke:none" />
|
250
|
+
<rect
|
251
|
+
y="163.86218"
|
252
|
+
x="385"
|
253
|
+
height="66.5"
|
254
|
+
width="187.5"
|
255
|
+
id="rect3950"
|
256
|
+
style="fill:#137bed;fill-opacity:1;stroke:none" />
|
257
|
+
<text
|
258
|
+
xml:space="preserve"
|
259
|
+
style="font-size:25.53247833px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
260
|
+
x="485.16595"
|
261
|
+
y="203.68573"
|
262
|
+
id="text3952"
|
263
|
+
sodipodi:linespacing="125%"><tspan
|
264
|
+
style="font-size:25.53247833px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans Condensed"
|
265
|
+
sodipodi:role="line"
|
266
|
+
x="485.16595"
|
267
|
+
y="203.68573"
|
268
|
+
id="tspan3954">Inspection</tspan></text>
|
269
|
+
</g>
|
270
|
+
<g
|
271
|
+
id="g3805"
|
272
|
+
transform="matrix(0.96875643,0,0,0.96875643,54.85768,351.22217)">
|
273
|
+
<rect
|
274
|
+
ry="10"
|
275
|
+
rx="10"
|
276
|
+
y="96.362183"
|
277
|
+
x="28"
|
278
|
+
height="77"
|
279
|
+
width="170"
|
280
|
+
id="rect2985"
|
281
|
+
style="fill:#5dc737;fill-opacity:1;stroke:none" />
|
282
|
+
<text
|
283
|
+
sodipodi:linespacing="125%"
|
284
|
+
id="text2987"
|
285
|
+
y="145.36218"
|
286
|
+
x="52"
|
287
|
+
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
288
|
+
xml:space="preserve"><tspan
|
289
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans Bold"
|
290
|
+
y="145.36218"
|
291
|
+
x="52"
|
292
|
+
id="tspan2989"
|
293
|
+
sodipodi:role="line">Node.js</tspan></text>
|
294
|
+
</g>
|
295
|
+
<g
|
296
|
+
transform="matrix(0.96875643,0,0,0.96875643,246.56886,351.22217)"
|
297
|
+
id="g3986">
|
298
|
+
<rect
|
299
|
+
style="fill:#5dc737;fill-opacity:1;stroke:none"
|
300
|
+
id="rect3988"
|
301
|
+
width="170"
|
302
|
+
height="77"
|
303
|
+
x="28"
|
304
|
+
y="96.362183"
|
305
|
+
rx="10"
|
306
|
+
ry="10" />
|
307
|
+
<text
|
308
|
+
xml:space="preserve"
|
309
|
+
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
310
|
+
x="52"
|
311
|
+
y="145.36218"
|
312
|
+
id="text3990"
|
313
|
+
sodipodi:linespacing="125%"><tspan
|
314
|
+
sodipodi:role="line"
|
315
|
+
id="tspan3992"
|
316
|
+
x="52"
|
317
|
+
y="145.36218"
|
318
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans Bold">Node.js</tspan></text>
|
319
|
+
</g>
|
320
|
+
<path
|
321
|
+
style="fill:none;stroke:#000000;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Sstart);marker-end:url(#Arrow2Send)"
|
322
|
+
d="m 281.76628,316.63576 -68.6403,124.81129"
|
323
|
+
id="path3994"
|
324
|
+
inkscape:connector-curvature="0"
|
325
|
+
sodipodi:nodetypes="cc" />
|
326
|
+
<path
|
327
|
+
sodipodi:nodetypes="cc"
|
328
|
+
inkscape:connector-curvature="0"
|
329
|
+
id="path5004"
|
330
|
+
d="M 357.84638,444.47452 357.56679,316.65484"
|
331
|
+
style="fill:none;stroke:#000000;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Sstart);marker-end:url(#Arrow2Send)" />
|
332
|
+
<text
|
333
|
+
xml:space="preserve"
|
334
|
+
style="font-size:12.87560654px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
335
|
+
x="-216.75558"
|
336
|
+
y="369.31613"
|
337
|
+
id="text5006"
|
338
|
+
sodipodi:linespacing="125%"
|
339
|
+
transform="matrix(0.47513133,-0.87991489,0.87991489,0.47513133,0,0)"><tspan
|
340
|
+
sodipodi:role="line"
|
341
|
+
id="tspan5008"
|
342
|
+
x="-216.75558"
|
343
|
+
y="369.31613"
|
344
|
+
style="font-size:12.87560654px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans Condensed">High-performance</tspan><tspan
|
345
|
+
sodipodi:role="line"
|
346
|
+
x="-216.75558"
|
347
|
+
y="385.41064"
|
348
|
+
id="tspan5010"
|
349
|
+
style="font-size:12.87560654px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans Condensed">Unix channel</tspan></text>
|
350
|
+
<g
|
351
|
+
id="g5055"
|
352
|
+
transform="translate(31,183)">
|
353
|
+
<rect
|
354
|
+
ry="10"
|
355
|
+
rx="10"
|
356
|
+
y="111.36218"
|
357
|
+
x="-14"
|
358
|
+
height="57"
|
359
|
+
width="143"
|
360
|
+
id="rect5049"
|
361
|
+
style="fill:#92c61d;fill-opacity:1;stroke:none" />
|
362
|
+
<text
|
363
|
+
sodipodi:linespacing="125%"
|
364
|
+
id="text5051"
|
365
|
+
y="145.36218"
|
366
|
+
x="13"
|
367
|
+
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
368
|
+
xml:space="preserve"><tspan
|
369
|
+
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:condensed;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans Medium Condensed"
|
370
|
+
y="145.36218"
|
371
|
+
x="13"
|
372
|
+
id="tspan5053"
|
373
|
+
sodipodi:role="line">Filesystem</tspan></text>
|
374
|
+
</g>
|
375
|
+
<path
|
376
|
+
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Sstart);marker-end:url(#Arrow2Send)"
|
377
|
+
d="m 253,258.36218 -166,0 0,33.52872"
|
378
|
+
id="path5060"
|
379
|
+
inkscape:connector-curvature="0" />
|
380
|
+
<text
|
381
|
+
xml:space="preserve"
|
382
|
+
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
383
|
+
x="84"
|
384
|
+
y="248.36218"
|
385
|
+
id="text5444"
|
386
|
+
sodipodi:linespacing="125%"><tspan
|
387
|
+
sodipodi:role="line"
|
388
|
+
id="tspan5446"
|
389
|
+
x="84"
|
390
|
+
y="248.36218"
|
391
|
+
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans Condensed">Static file acceleration</tspan></text>
|
392
|
+
<g
|
393
|
+
id="g6238"
|
394
|
+
transform="translate(3,133)">
|
395
|
+
<g
|
396
|
+
transform="translate(38,-12)"
|
397
|
+
id="g5462">
|
398
|
+
<path
|
399
|
+
style="fill:#6fb6de;fill-opacity:1;stroke:none"
|
400
|
+
d="m 654,73.875 c -13.71265,0 -24.82895,11.116298 -24.82895,24.828947 0,9.155773 4.99343,17.101053 12.36883,21.405843 -14.03045,5.70434 -24.05304,20.7911 -24.05304,38.47574 0,10.01686 3.24256,19.1791 8.58059,26.28947 l 55.86514,0 c 5.33803,-7.11037 8.58059,-16.27261 8.58059,-26.28947 0,-17.68464 -10.02259,-32.7714 -24.05304,-38.47574 7.3754,-4.30479 12.36883,-12.25007 12.36883,-21.405843 C 678.82895,84.991298 667.71265,73.875 654,73.875 z"
|
401
|
+
id="path5448"
|
402
|
+
inkscape:connector-curvature="0" />
|
403
|
+
<path
|
404
|
+
style="fill:none;stroke:#3389ff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
405
|
+
d="m 644,106.36218 c 0,0 9.5,12 20,0"
|
406
|
+
id="path5456"
|
407
|
+
inkscape:connector-curvature="0"
|
408
|
+
sodipodi:nodetypes="cc" />
|
409
|
+
<path
|
410
|
+
sodipodi:type="arc"
|
411
|
+
style="fill:#3389ff;fill-opacity:1;stroke:none"
|
412
|
+
id="path5458"
|
413
|
+
sodipodi:cx="572.5"
|
414
|
+
sodipodi:cy="103.86218"
|
415
|
+
sodipodi:rx="3"
|
416
|
+
sodipodi:ry="3"
|
417
|
+
d="m 575.5,103.86218 c 0,1.65686 -1.34315,3 -3,3 -1.65685,0 -3,-1.34314 -3,-3 0,-1.65685 1.34315,-3 3,-3 1.65685,0 3,1.34315 3,3 z"
|
418
|
+
transform="translate(72.5,-9.5)" />
|
419
|
+
<path
|
420
|
+
transform="translate(90.5,-9.5)"
|
421
|
+
d="m 575.5,103.86218 c 0,1.65686 -1.34315,3 -3,3 -1.65685,0 -3,-1.34314 -3,-3 0,-1.65685 1.34315,-3 3,-3 1.65685,0 3,1.34315 3,3 z"
|
422
|
+
sodipodi:ry="3"
|
423
|
+
sodipodi:rx="3"
|
424
|
+
sodipodi:cy="103.86218"
|
425
|
+
sodipodi:cx="572.5"
|
426
|
+
id="path5460"
|
427
|
+
style="fill:#3389ff;fill-opacity:1;stroke:none"
|
428
|
+
sodipodi:type="arc" />
|
429
|
+
</g>
|
430
|
+
<text
|
431
|
+
sodipodi:linespacing="125%"
|
432
|
+
id="text5468"
|
433
|
+
y="197.36218"
|
434
|
+
x="691.82397"
|
435
|
+
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
436
|
+
xml:space="preserve"><tspan
|
437
|
+
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans"
|
438
|
+
y="197.36218"
|
439
|
+
x="691.82397"
|
440
|
+
id="tspan5470"
|
441
|
+
sodipodi:role="line">You only deal with one</tspan><tspan
|
442
|
+
id="tspan5472"
|
443
|
+
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans"
|
444
|
+
y="219.86218"
|
445
|
+
x="691.82397"
|
446
|
+
sodipodi:role="line">thing. Much easier.</tspan></text>
|
447
|
+
</g>
|
448
|
+
<path
|
449
|
+
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Mstart)"
|
450
|
+
d="m 525,256.36218 119,0"
|
451
|
+
id="path5474"
|
452
|
+
inkscape:connector-curvature="0" />
|
453
|
+
<path
|
454
|
+
style="fill:url(#radialGradient3871);fill-opacity:1;stroke:url(#radialGradient3881);stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
455
|
+
d="m 365.31316,30.858157 c -31.87555,3.054126 -58.12241,15.226805 -67.31975,29.681083 -33.71321,4.861688 -58.83608,21.896149 -57.14883,39.5058 1.79097,18.69207 33.103,30.98397 69.93739,27.45472 9.48641,-0.90893 18.42234,-2.79353 26.41904,-5.38809 14.33469,10.45714 41.87556,15.92236 72.75561,12.96362 43.98136,-4.21403 78.07668,-23.89729 76.15403,-43.963782 -1.29771,-13.544074 -18.69292,-23.79842 -43.3747,-27.739499 0.21494,-1.421792 0.26078,-2.848192 0.12347,-4.281294 C 440.98944,39.573986 406.2708,26.93384 365.31316,30.858157 z"
|
456
|
+
id="path6248"
|
457
|
+
inkscape:connector-curvature="0" />
|
458
|
+
<text
|
459
|
+
xml:space="preserve"
|
460
|
+
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#464646;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
461
|
+
x="330"
|
462
|
+
y="96.362183"
|
463
|
+
id="text6276"
|
464
|
+
sodipodi:linespacing="125%"><tspan
|
465
|
+
sodipodi:role="line"
|
466
|
+
id="tspan6278"
|
467
|
+
x="330"
|
468
|
+
y="96.362183"
|
469
|
+
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:condensed;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans Medium Condensed;fill:#464646;fill-opacity:1">Web</tspan></text>
|
470
|
+
<path
|
471
|
+
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:15,15;stroke-dashoffset:0"
|
472
|
+
d="m 375,141.36218 0,70"
|
473
|
+
id="path6293"
|
474
|
+
inkscape:connector-curvature="0" />
|
475
|
+
<path
|
476
|
+
transform="matrix(18.915507,0,0,19.762923,-6593.8118,-7739.4215)"
|
477
|
+
d="m 383,416.36218 a 5,6 0 1 1 -10,0 5,6 0 1 1 10,0 z"
|
478
|
+
sodipodi:ry="6"
|
479
|
+
sodipodi:rx="5"
|
480
|
+
sodipodi:cy="416.36218"
|
481
|
+
sodipodi:cx="378"
|
482
|
+
id="path6507"
|
483
|
+
style="fill:#ffffff;stroke:#000000;stroke-width:0.17735070000000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;fill-opacity:1"
|
484
|
+
sodipodi:type="arc" />
|
485
|
+
<text
|
486
|
+
xml:space="preserve"
|
487
|
+
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
488
|
+
x="558.68427"
|
489
|
+
y="439.86218"
|
490
|
+
id="text6485"
|
491
|
+
sodipodi:linespacing="125%"><tspan
|
492
|
+
sodipodi:role="line"
|
493
|
+
id="tspan6487"
|
494
|
+
x="558.68427"
|
495
|
+
y="439.86218"
|
496
|
+
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:condensed;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans Medium Condensed">Taken care for you:</tspan><tspan
|
497
|
+
sodipodi:role="line"
|
498
|
+
x="558.68427"
|
499
|
+
y="459.86218"
|
500
|
+
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans Condensed"
|
501
|
+
id="tspan6489">Process spawning</tspan><tspan
|
502
|
+
sodipodi:role="line"
|
503
|
+
x="558.68427"
|
504
|
+
y="479.86218"
|
505
|
+
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans Condensed"
|
506
|
+
id="tspan6491">Process scaling</tspan><tspan
|
507
|
+
sodipodi:role="line"
|
508
|
+
x="558.68427"
|
509
|
+
y="499.86218"
|
510
|
+
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans Condensed"
|
511
|
+
id="tspan6493">Load balancing</tspan><tspan
|
512
|
+
sodipodi:role="line"
|
513
|
+
x="558.68427"
|
514
|
+
y="519.86218"
|
515
|
+
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans Condensed"
|
516
|
+
id="tspan6495">Multi-core support</tspan><tspan
|
517
|
+
sodipodi:role="line"
|
518
|
+
x="558.68427"
|
519
|
+
y="539.86218"
|
520
|
+
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans Condensed"
|
521
|
+
id="tspan6497">Supervision</tspan><tspan
|
522
|
+
sodipodi:role="line"
|
523
|
+
x="558.68427"
|
524
|
+
y="559.86218"
|
525
|
+
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Pluto Sans;-inkscape-font-specification:Pluto Sans Condensed"
|
526
|
+
id="tspan6499">...and more!</tspan></text>
|
527
|
+
<path
|
528
|
+
sodipodi:type="arc"
|
529
|
+
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.44975093;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
530
|
+
id="path6501"
|
531
|
+
sodipodi:cx="378"
|
532
|
+
sodipodi:cy="416.36218"
|
533
|
+
sodipodi:rx="5"
|
534
|
+
sodipodi:ry="6"
|
535
|
+
d="m 383,416.36218 a 5,6 0 1 1 -10,0 5,6 0 1 1 10,0 z"
|
536
|
+
transform="matrix(1.4620453,0,0,1.3017044,-170.15311,-155.1183)" />
|
537
|
+
<path
|
538
|
+
transform="matrix(2.095475,0,0,1.9962292,-379.08955,-432.29214)"
|
539
|
+
d="m 383,416.36218 a 5,6 0 1 1 -10,0 5,6 0 1 1 10,0 z"
|
540
|
+
sodipodi:ry="6"
|
541
|
+
sodipodi:rx="5"
|
542
|
+
sodipodi:cy="416.36218"
|
543
|
+
sodipodi:cx="378"
|
544
|
+
id="path6503"
|
545
|
+
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
546
|
+
sodipodi:type="arc" />
|
547
|
+
<path
|
548
|
+
sodipodi:type="arc"
|
549
|
+
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
550
|
+
id="path6505"
|
551
|
+
sodipodi:cx="378"
|
552
|
+
sodipodi:cy="416.36218"
|
553
|
+
sodipodi:rx="5"
|
554
|
+
sodipodi:ry="6"
|
555
|
+
d="m 383,416.36218 a 5,6 0 1 1 -10,0 5,6 0 1 1 10,0 z"
|
556
|
+
transform="matrix(3,0,0,3,-682,-834.72437)" />
|
557
|
+
</g>
|
558
|
+
</svg>
|