This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 11.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/11.0.x by this push: new e316affa7e Convert diagram 3, the first part of the start process e316affa7e is described below commit e316affa7e130cf576ac705a7d1b2faa89b72fe6 Author: Mark Thomas <ma...@apache.org> AuthorDate: Fri Sep 6 16:39:21 2024 +0100 Convert diagram 3, the first part of the start process --- webapps/docs/architecture/startup.xml | 6 +- .../architecture/startup/3_catalina_start_1.png | Bin 0 -> 158971 bytes .../architecture/startup/3_catalina_start_1.svg | 762 --------------------- .../architecture/startup/3_catalina_start_1.uml | 154 +++++ 4 files changed, 158 insertions(+), 764 deletions(-) diff --git a/webapps/docs/architecture/startup.xml b/webapps/docs/architecture/startup.xml index 6bdd7d1b38..10d423ec3b 100644 --- a/webapps/docs/architecture/startup.xml +++ b/webapps/docs/architecture/startup.xml @@ -80,8 +80,10 @@ only has one. Each Service may have multiple Connectors. A Connector instance is associated with a single Protocol instance and a single CoyoteAdapter instance. </p> <p> -Diagram 3 will show how the Server initialises the Service(s), Engine(s) and -Host(s). +<a href="startup/3_catalina_start_1.png">Diagram 3</a> shows how Tomcat starts +the objects created by the Digester that were initialized in the previous step. +This diagram also shows when lifecycle events are fired. There is more detail to +the starting of the Engine which is shown inthe following diagram. </p> <p> Diagram 4 will show how the Host initialises the Context(s). diff --git a/webapps/docs/architecture/startup/3_catalina_start_1.png b/webapps/docs/architecture/startup/3_catalina_start_1.png new file mode 100644 index 0000000000..3d8d57fbaa Binary files /dev/null and b/webapps/docs/architecture/startup/3_catalina_start_1.png differ diff --git a/webapps/docs/architecture/startup/3_catalina_start_1.svg b/webapps/docs/architecture/startup/3_catalina_start_1.svg deleted file mode 100644 index 2f0dc2399e..0000000000 --- a/webapps/docs/architecture/startup/3_catalina_start_1.svg +++ /dev/null @@ -1,762 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.0//EN' - 'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'> -<svg fill-opacity="0" xmlns:xlink="http://www.w3.org/1999/xlink" color-rendering="auto" color-interpolation="auto" text-rendering="auto" stroke="rgb(0,0,0)" stroke-linecap="square" width="761" stroke-miterlimit="10" shape-rendering="auto" stroke-opacity="0" fill="rgb(0,0,0)" stroke-dasharray="none" font-weight="normal" stroke-width="1" height="943" xmlns="http://www.w3.org/2000/svg" font-family="'Dialog'" font-style="normal" stroke-linejoin="miter" font-size="12px" stroke-dashoffset="0" [...] -><!--Generated by the Batik Graphics2D SVG Generator--><defs id="genericDefs" - /><g - ><defs id="defs1" - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath1" - ><path d="M-7 -7 L121 -7 L121 942 L-7 942 L-7 -7 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath2" - ><path d="M-7 -7 L107 -7 L107 942 L-7 942 L-7 -7 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath3" - ><path d="M-7 -7 L123 -7 L123 942 L-7 942 L-7 -7 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath4" - ><path d="M-7 -7 L227 -7 L227 84 L-7 84 L-7 -7 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath5" - ><path d="M0 0 L0 73 L201 73 L201 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath6" - ><path d="M-7 -7 L155 -7 L155 57 L-7 57 L-7 -7 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath7" - ><path d="M0 0 L0 46 L129 46 L129 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath8" - ><path d="M-7 -7 L19 -7 L19 110 L-7 110 L-7 -7 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath9" - ><path d="M-7 -7 L19 -7 L19 30 L-7 30 L-7 -7 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath10" - ><path d="M-7 -7 L19 -7 L19 324 L-7 324 L-7 -7 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath11" - ><path d="M-7 -7 L19 -7 L19 596 L-7 596 L-7 -7 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath12" - ><path d="M-7 -7 L19 -7 L19 569 L-7 569 L-7 -7 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath13" - ><path d="M-7 -7 L19 -7 L19 702 L-7 702 L-7 -7 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath14" - ><path d="M-7 -7 L19 -7 L19 814 L-7 814 L-7 -7 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath15" - ><path d="M-7 -7 L19 -7 L19 843 L-7 843 L-7 -7 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath16" - ><path d="M-7 -7 L19 -7 L19 862 L-7 862 L-7 -7 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath17" - ><path d="M-110 -14 L220 -14 L220 28 L-110 28 L-110 -14 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath18" - ><path d="M-96 -14 L192 -14 L192 28 L-96 28 L-96 -14 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath19" - ><path d="M-112 -14 L224 -14 L224 28 L-112 28 L-112 -14 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath20" - ><path d="M-96 -28 L192 -28 L192 56 L-96 56 L-96 -28 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath21" - ><path d="M0 0 L188 0 L188 104 L0 104 L0 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath22" - ><path d="M115 36 L115 50 L70 50 L70 36 ZM0 0 L0 104 L188 104 L188 61 L164 61 L164 47 L188 47 L188 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath23" - ><path d="M0 0 L193 0 L193 104 L0 104 L0 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath24" - ><path d="M117 36 L117 50 L72 50 L72 36 ZM0 0 L0 25 L23 25 L23 39 L0 39 L0 104 L164 104 L164 92 L193 92 L193 70 L171 70 L171 56 L193 56 L193 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath25" - ><path d="M0 0 L204 0 L204 134 L0 134 L0 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath26" - ><path d="M118 108 L118 122 L73 122 L73 108 ZM0 0 L0 16 L20 16 L20 30 L0 30 L0 134 L165 134 L165 123 L204 123 L204 86 L67 86 L67 72 L204 72 L204 50 L74 50 L74 36 L204 36 L204 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath27" - ><path d="M118 72 L118 86 L73 86 L73 72 ZM0 0 L0 134 L164 134 L164 123 L204 123 L204 101 L165 101 L165 87 L204 87 L204 50 L67 50 L67 36 L204 36 L204 14 L74 14 L74 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath28" - ><path d="M0 0 L194 0 L194 104 L0 104 L0 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath29" - ><path d="M118 36 L118 50 L73 50 L73 36 ZM0 0 L0 104 L194 104 L194 101 L164 101 L164 87 L194 87 L194 65 L165 65 L165 51 L194 51 L194 14 L67 14 L67 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath30" - ><path d="M0 0 L203 0 L203 134 L0 134 L0 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath31" - ><path d="M122 108 L122 122 L77 122 L77 108 ZM0 0 L0 21 L20 21 L20 35 L0 35 L0 134 L203 134 L203 86 L66 86 L66 72 L203 72 L203 50 L67 50 L67 36 L203 36 L203 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath32" - ><path d="M122 72 L122 86 L77 86 L77 72 ZM0 0 L0 134 L203 134 L203 112 L176 112 L176 98 L203 98 L203 50 L66 50 L66 36 L203 36 L203 14 L67 14 L67 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath33" - ><path d="M0 0 L203 0 L203 104 L0 104 L0 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath34" - ><path d="M122 36 L122 50 L77 50 L77 36 ZM0 0 L0 104 L166 104 L166 103 L203 103 L203 76 L176 76 L176 62 L203 62 L203 14 L66 14 L66 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath35" - ><path d="M0 0 L199 0 L199 134 L0 134 L0 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath36" - ><path d="M176 78 L176 92 L55 92 L55 78 ZM142 118 L142 132 L59 132 L59 118 ZM0 0 L0 11 L11 11 L11 25 L0 25 L0 134 L199 134 L199 51 L65 51 L65 37 L199 37 L199 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath37" - ><path d="M176 42 L176 56 L55 56 L55 42 ZM142 82 L142 96 L59 96 L59 82 ZM140 118 L140 132 L60 132 L60 118 ZM0 0 L0 134 L199 134 L199 15 L65 15 L65 1 L199 1 L199 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath38" - ><path d="M176 1 L176 15 L55 15 L55 1 ZM142 41 L142 55 L59 55 L59 41 ZM140 77 L140 91 L60 91 L60 77 ZM149 118 L149 132 L62 132 L62 118 ZM0 0 L0 134 L199 134 L199 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath39" - ><path d="M142 5 L142 19 L59 19 L59 5 ZM140 41 L140 55 L60 55 L60 41 ZM149 82 L149 96 L62 96 L62 82 ZM118 113 L118 127 L32 127 L32 113 ZM0 0 L0 134 L199 134 L199 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath40" - ><path d="M149 41 L149 55 L62 55 L62 41 ZM118 72 L118 86 L32 86 L32 72 ZM121 108 L121 122 L76 122 L76 108 ZM0 0 L0 129 L199 129 L199 0 L140 0 L140 14 L60 14 L60 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath41" - ><path d="M149 5 L149 19 L62 19 L62 5 ZM118 36 L118 50 L32 50 L32 36 ZM121 72 L121 86 L76 86 L76 72 ZM0 0 L0 93 L199 93 L199 0 ZM0 107 L0 134 L157 134 L157 123 L199 123 L199 107 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath42" - ><path d="M0 0 L200 0 L200 104 L0 104 L0 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath43" - ><path d="M121 36 L121 50 L76 50 L76 36 ZM0 0 L0 57 L200 57 L200 0 L118 0 L118 14 L32 14 L32 0 ZM0 71 L0 104 L200 104 L200 101 L157 101 L157 87 L200 87 L200 71 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath44" - ><path d="M174 72 L174 86 L53 86 L53 72 ZM140 113 L140 127 L57 127 L57 113 ZM0 0 L0 21 L17 21 L17 35 L0 35 L0 42 L120 42 L120 56 L0 56 L0 134 L203 134 L203 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath45" - ><path d="M174 36 L174 50 L53 50 L53 36 ZM140 77 L140 91 L57 91 L57 77 ZM139 113 L139 127 L58 127 L58 113 ZM0 0 L0 6 L120 6 L120 20 L0 20 L0 134 L203 134 L203 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath46" - ><path d="M0 0 L198 0 L198 104 L0 104 L0 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath47" - ><path d="M141 5 L141 19 L55 19 L55 5 ZM120 36 L120 50 L75 50 L75 36 ZM0 0 L0 68 L137 68 L137 82 L0 82 L0 92 L133 92 L133 104 L198 104 L198 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath48" - ><path d="M140 41 L140 55 L57 55 L57 41 ZM139 77 L139 91 L58 91 L58 77 ZM141 112 L141 126 L55 126 L55 112 ZM0 0 L0 134 L203 134 L203 0 L174 0 L174 14 L53 14 L53 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath49" - ><path d="M140 5 L140 19 L57 19 L57 5 ZM139 41 L139 55 L58 55 L58 41 ZM141 76 L141 90 L55 90 L55 76 ZM120 107 L120 121 L75 121 L75 107 ZM0 0 L0 134 L203 134 L203 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath50" - ><path d="M139 6 L139 20 L58 20 L58 6 ZM141 41 L141 55 L55 55 L55 41 ZM120 72 L120 86 L75 86 L75 72 ZM0 0 L0 104 L137 104 L137 118 L0 118 L0 128 L133 128 L133 134 L203 134 L203 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath51" - ><path d="M39 0 L39 3 L0 3 L0 20 L18 20 L18 34 L0 34 L0 52 L35 52 L35 66 L0 66 L0 76 L31 76 L31 90 L0 90 L0 103 L26 103 L26 117 L0 117 L0 134 L203 134 L203 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath52" - ><path d="M18 0 L18 14 L0 14 L0 32 L35 32 L35 46 L0 46 L0 56 L31 56 L31 70 L0 70 L0 83 L26 83 L26 97 L0 97 L0 134 L203 134 L203 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath53" - ><path d="M0 0 L0 6 L35 6 L35 20 L0 20 L0 30 L31 30 L31 44 L0 44 L0 57 L26 57 L26 71 L0 71 L0 134 L203 134 L203 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath54" - ><path d="M0 0 L409 0 L409 323 L0 323 L0 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath55" - ><path d="M169 25 L169 39 L124 39 L124 25 ZM272 46 L272 60 L28 60 L28 46 ZM326 76 L326 90 L205 90 L205 76 ZM292 117 L292 131 L209 131 L209 117 ZM291 153 L291 167 L210 167 L210 153 ZM293 188 L293 202 L207 202 L207 188 ZM272 219 L272 233 L227 233 L227 219 ZM289 251 L289 265 L95 265 L95 251 ZM285 275 L285 289 L41 289 L41 275 ZM280 302 L280 316 L85 316 L85 302 ZM0 0 L0 323 L409 323 L409 0 L166 0 L166 3 L80 3 L80 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath56" - ><path d="M0 0 L409 0 L409 303 L0 303 L0 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath57" - ><path d="M169 25 L169 39 L124 39 L124 25 ZM272 46 L272 60 L28 60 L28 46 ZM326 76 L326 90 L205 90 L205 76 ZM292 117 L292 131 L209 131 L209 117 ZM291 153 L291 167 L210 167 L210 153 ZM293 188 L293 202 L207 202 L207 188 ZM272 219 L272 233 L227 233 L227 219 ZM289 251 L289 265 L95 265 L95 251 ZM285 275 L285 289 L41 289 L41 275 ZM0 0 L0 303 L85 303 L85 302 L280 302 L280 303 L409 303 L409 0 L166 0 L166 3 L80 3 L80 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath58" - ><path d="M0 0 L409 0 L409 349 L0 349 L0 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath59" - ><path d="M169 25 L169 39 L124 39 L124 25 ZM272 46 L272 60 L28 60 L28 46 ZM326 76 L326 90 L205 90 L205 76 ZM292 117 L292 131 L209 131 L209 117 ZM291 153 L291 167 L210 167 L210 153 ZM293 188 L293 202 L207 202 L207 188 ZM272 219 L272 233 L227 233 L227 219 ZM289 251 L289 265 L95 265 L95 251 ZM285 275 L285 289 L41 289 L41 275 ZM280 302 L280 316 L85 316 L85 302 ZM0 0 L0 349 L409 349 L409 0 L166 0 L166 3 L80 3 L80 0 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath60" - ><path d="M-194 -14 L388 -14 L388 28 L-194 28 L-194 -14 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath61" - ><path d="M-195 -14 L390 -14 L390 28 L-195 28 L-195 -14 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath62" - ><path d="M-244 -14 L488 -14 L488 28 L-244 28 L-244 -14 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath63" - ><path d="M-86 -14 L172 -14 L172 28 L-86 28 L-86 -14 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath64" - ><path d="M-81 -14 L162 -14 L162 28 L-81 28 L-81 -14 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath65" - ><path d="M-83 -14 L166 -14 L166 28 L-83 28 L-83 -14 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath66" - ><path d="M-45 -14 L90 -14 L90 28 L-45 28 L-45 -14 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath67" - ><path d="M-121 -14 L242 -14 L242 28 L-121 28 L-121 -14 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath68" - ><path d="M-87 -14 L174 -14 L174 28 L-87 28 L-87 -14 Z" - /></clipPath - ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath69" - ><path d="M-80 -14 L160 -14 L160 28 L-80 28 L-80 -14 Z" - /></clipPath - ></defs - ><g fill="white" text-rendering="geometricPrecision" fill-opacity="1" stroke-opacity="1" stroke="white" - ><rect x="0" width="761" height="943" y="0" stroke="none" - /></g - ><g font-size="11px" transform="translate(599,2)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="109" height="35" y="0" clip-path="url(#clipPath1)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(599,2)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="109" height="35" y="0" clip-path="url(#clipPath1)" - /><line clip-path="url(#clipPath1)" fill="none" x1="54" x2="54" y1="35" y2="931" stroke-linejoin="bevel" stroke-dasharray="8,3" - /></g - ><g font-size="11px" transform="translate(504,2)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="95" height="35" y="0" clip-path="url(#clipPath2)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(504,2)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="95" height="35" y="0" clip-path="url(#clipPath2)" - /><line clip-path="url(#clipPath2)" fill="none" x1="47" x2="47" y1="35" y2="931" stroke-linejoin="bevel" stroke-dasharray="8,3" - /></g - ><g font-size="11px" transform="translate(388,2)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="111" height="35" y="0" clip-path="url(#clipPath3)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(388,2)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="111" height="35" y="0" clip-path="url(#clipPath3)" - /><line clip-path="url(#clipPath3)" fill="none" x1="55" x2="55" y1="35" y2="931" stroke-linejoin="bevel" stroke-dasharray="8,3" - /></g - ><g font-size="11px" transform="translate(289,2)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="95" height="35" y="0" clip-path="url(#clipPath2)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(289,2)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="95" height="35" y="0" clip-path="url(#clipPath2)" - /><line clip-path="url(#clipPath2)" fill="none" x1="47" x2="47" y1="35" y2="931" stroke-linejoin="bevel" stroke-dasharray="8,3" - /></g - ><g font-size="11px" transform="translate(191,2)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="95" height="35" y="0" clip-path="url(#clipPath2)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(191,2)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="95" height="35" y="0" clip-path="url(#clipPath2)" - /><line clip-path="url(#clipPath2)" fill="none" x1="47" x2="47" y1="35" y2="931" stroke-linejoin="bevel" stroke-dasharray="8,3" - /></g - ><g font-size="11px" transform="translate(94,2)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="95" height="35" y="0" clip-path="url(#clipPath2)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(94,2)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="95" height="35" y="0" clip-path="url(#clipPath2)" - /><line clip-path="url(#clipPath2)" fill="none" x1="47" x2="47" y1="35" y2="931" stroke-linejoin="bevel" stroke-dasharray="8,3" - /></g - ><g font-size="11px" transform="translate(2,2)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="95" height="35" y="0" clip-path="url(#clipPath2)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(2,2)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="95" height="35" y="0" clip-path="url(#clipPath2)" - /><line clip-path="url(#clipPath2)" fill="none" x1="47" x2="47" y1="35" y2="931" stroke-linejoin="bevel" stroke-dasharray="8,3" - /></g - ><g transform="translate(188,467)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><polygon points=" 0 0 200 0 215 15 200 15 200 0 215 15 215 72 0 72" stroke="none" clip-path="url(#clipPath4)" - /></g - ><g stroke-linecap="butt" transform="translate(188,467)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" stroke-miterlimit="0" - ><polygon fill="none" points=" 0 0 200 0 215 15 200 15 200 0 215 15 215 72 0 72" clip-path="url(#clipPath4)" - /></g - ><g font-size="15px" transform="translate(188,467)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="'Ubuntu'" stroke="black" stroke-opacity="1" - ><path d="M7.1094 6.5605 L5.5 10.9043 L8.7188 10.9043 L7.1094 6.5605 ZM6.4375 5.3887 L7.7812 5.3887 L11.1094 14.1387 L9.875 14.1387 L9.0781 11.8887 L5.1406 11.8887 L4.3438 14.1387 L3.0938 14.1387 L6.4375 5.3887 ZM12.125 5.0137 L13.2031 5.0137 L13.2031 14.1387 L12.125 14.1387 L12.125 5.0137 ZM15.125 5.0137 L16.2031 5.0137 L16.2031 14.1387 L15.125 14.1387 L15.125 5.0137 ZM27.4219 5.6699 L27.4219 6.8262 Q26.75 6.5137 26.1406 6.3574 Q25.5469 6.1855 25 6.1855 Q24.0312 6.1855 23.5 6.5605 Q [...] - /><path d="M9.75 25.5918 L9.75 26.1074 L4.7812 26.1074 Q4.8594 27.2324 5.4531 27.8105 Q6.0625 28.3887 7.125 28.3887 Q7.75 28.3887 8.3281 28.248 Q8.9219 28.0918 9.5 27.7793 L9.5 28.8105 Q8.9062 29.0449 8.2969 29.1699 Q7.6875 29.3105 7.0625 29.3105 Q5.5 29.3105 4.5781 28.4043 Q3.6562 27.4824 3.6562 25.9199 Q3.6562 24.3105 4.5312 23.373 Q5.4062 22.4199 6.875 22.4199 Q8.2031 22.4199 8.9688 23.2793 Q9.75 24.123 9.75 25.5918 ZM8.6719 25.2637 Q8.6562 24.3887 8.1719 23.8574 Q7.6875 23.3262 [...] - /></g - ><g transform="translate(597,419)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><polygon points=" 0 0 128 0 143 15 128 15 128 0 143 15 143 45 0 45" stroke="none" clip-path="url(#clipPath6)" - /></g - ><g stroke-linecap="butt" transform="translate(597,419)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" stroke-miterlimit="0" - ><polygon fill="none" points=" 0 0 128 0 143 15 128 15 128 0 143 15 143 45 0 45" clip-path="url(#clipPath6)" - /></g - ><g font-size="15px" transform="translate(597,419)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="'Ubuntu'" stroke="black" stroke-opacity="1" - ><path d="M9.1406 8.8574 L7.4375 8.8574 L6.9375 10.8105 L8.6562 10.8105 L9.1406 8.8574 ZM8.25 5.5293 L7.6406 7.9512 L9.3594 7.9512 L9.9688 5.5293 L10.9062 5.5293 L10.3125 7.9512 L12.1406 7.9512 L12.1406 8.8574 L10.0781 8.8574 L9.5938 10.8105 L11.4688 10.8105 L11.4688 11.7168 L9.375 11.7168 L8.7656 14.1387 L7.8281 14.1387 L8.4219 11.7168 L6.7031 11.7168 L6.1094 14.1387 L5.1562 14.1387 L5.7656 11.7168 L3.9219 11.7168 L3.9219 10.8105 L5.9844 10.8105 L6.4844 8.8574 L4.5938 8.8574 L4.5938 [...] - /></g - ><g font-size="11px" transform="translate(650,723)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="99" y="0" clip-path="url(#clipPath8)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(650,723)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="99" y="0" clip-path="url(#clipPath8)" - /></g - ><g font-size="11px" transform="translate(654,785)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(654,785)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" - /></g - ><g font-size="11px" transform="translate(654,759)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(654,759)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" - /></g - ><g font-size="11px" transform="translate(654,739)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(654,739)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" - /></g - ><g font-size="11px" transform="translate(548,529)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="313" y="0" clip-path="url(#clipPath10)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(548,529)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="313" y="0" clip-path="url(#clipPath10)" - /></g - ><g font-size="11px" transform="translate(552,687)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(552,687)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" - /></g - ><g font-size="11px" transform="translate(552,652)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(552,652)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" - /></g - ><g font-size="11px" transform="translate(552,616)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(552,616)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" - /></g - ><g font-size="11px" transform="translate(552,580)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(552,580)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" - /></g - ><g font-size="11px" transform="translate(552,544)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(552,544)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" - /></g - ><g font-size="11px" transform="translate(440,278)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="585" y="0" clip-path="url(#clipPath11)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(440,278)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="585" y="0" clip-path="url(#clipPath11)" - /></g - ><g font-size="11px" transform="translate(444,303)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="558" y="0" clip-path="url(#clipPath12)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(444,303)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="558" y="0" clip-path="url(#clipPath12)" - /></g - ><g font-size="11px" transform="translate(444,493)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(444,493)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" - /></g - ><g font-size="11px" transform="translate(444,457)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(444,457)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" - /></g - ><g font-size="11px" transform="translate(444,416)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(444,416)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" - /></g - ><g font-size="11px" transform="translate(444,380)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(444,380)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" - /></g - ><g font-size="11px" transform="translate(444,339)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(444,339)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" - /></g - ><g font-size="11px" transform="translate(444,303)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(444,303)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" - /></g - ><g font-size="11px" transform="translate(333,191)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="691" y="0" clip-path="url(#clipPath13)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(333,191)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="691" y="0" clip-path="url(#clipPath13)" - /></g - ><g font-size="11px" transform="translate(337,242)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(337,242)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" - /></g - ><g font-size="11px" transform="translate(337,206)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(337,206)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" - /></g - ><g font-size="11px" transform="translate(235,99)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="803" y="0" clip-path="url(#clipPath14)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(235,99)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="803" y="0" clip-path="url(#clipPath14)" - /></g - ><g font-size="11px" transform="translate(239,155)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(239,155)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" - /></g - ><g font-size="11px" transform="translate(239,119)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(239,119)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="19" y="0" clip-path="url(#clipPath9)" - /></g - ><g font-size="11px" transform="translate(138,88)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="832" y="0" clip-path="url(#clipPath15)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(138,88)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="832" y="0" clip-path="url(#clipPath15)" - /></g - ><g font-size="11px" transform="translate(46,88)" fill-opacity="1" fill="rgb(255,255,204)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="rgb(255,255,204)" stroke-opacity="1" - ><rect x="0" width="8" height="851" y="0" clip-path="url(#clipPath16)" stroke="none" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(46,88)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="black" stroke-opacity="1" stroke-miterlimit="0" - ><rect fill="none" x="0" width="8" height="851" y="0" clip-path="url(#clipPath16)" - /></g - ><g font-size="11px" transform="translate(599,2)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="black" stroke-opacity="1" - ><text x="8" xml:space="preserve" y="11" clip-path="url(#clipPath17)" stroke="none" - >StandardPipeline</text - ></g - ><g font-size="11px" transform="translate(504,2)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="black" stroke-opacity="1" - ><text x="9" xml:space="preserve" y="11" clip-path="url(#clipPath18)" stroke="none" - >StandardHost</text - ></g - ><g font-size="11px" transform="translate(388,2)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="black" stroke-opacity="1" - ><text x="12" xml:space="preserve" y="11" clip-path="url(#clipPath19)" stroke="none" - >StandardEngine</text - ></g - ><g font-size="11px" transform="translate(289,2)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="black" stroke-opacity="1" - ><text x="5" xml:space="preserve" y="11" clip-path="url(#clipPath20)" stroke="none" - >StandardServic</text - ><text x="44" xml:space="preserve" y="25" clip-path="url(#clipPath20)" stroke="none" - >e</text - ></g - ><g font-size="11px" transform="translate(191,2)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="black" stroke-opacity="1" - ><text x="4" xml:space="preserve" y="11" clip-path="url(#clipPath18)" stroke="none" - >StandardServer</text - ></g - ><g font-size="11px" transform="translate(94,2)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="black" stroke-opacity="1" - ><text x="24" xml:space="preserve" y="11" clip-path="url(#clipPath18)" stroke="none" - >Catalina</text - ></g - ><g font-size="11px" transform="translate(2,2)" fill-opacity="1" fill="black" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="black" stroke-opacity="1" - ><text x="21" xml:space="preserve" y="11" clip-path="url(#clipPath18)" stroke="none" - >Bootstrap</text - ></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(4,38)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath22)" x2="134" y1="50" - /><polygon fill="white" clip-path="url(#clipPath22)" points=" 134 50 122 44 122 56" stroke="none" - /><polygon fill="none" points=" 134 50 122 44 122 56" clip-path="url(#clipPath22)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(96,49)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath24)" x2="139" y1="50" - /><polygon fill="white" clip-path="url(#clipPath24)" points=" 139 50 127 44 127 56" stroke="none" - /><polygon fill="none" points=" 139 50 127 44 127 56" clip-path="url(#clipPath24)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(193,69)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath26)" x2="150" y1="50" - /><line y2="80" fill="none" x1="150" clip-path="url(#clipPath26)" x2="150" y1="50" - /><line y2="80" fill="none" x1="150" clip-path="url(#clipPath26)" x2="54" y1="80" - /><polygon fill="white" clip-path="url(#clipPath26)" points=" 54 80 66 86 66 74" stroke="none" - /><polygon fill="none" points=" 54 80 66 86 66 74" clip-path="url(#clipPath26)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(193,105)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath27)" x2="150" y1="50" - /><line y2="80" fill="none" x1="150" clip-path="url(#clipPath27)" x2="150" y1="50" - /><line y2="80" fill="none" x1="150" clip-path="url(#clipPath27)" x2="54" y1="80" - /><polygon fill="white" clip-path="url(#clipPath27)" points=" 54 80 66 86 66 74" stroke="none" - /><polygon fill="none" points=" 54 80 66 86 66 74" clip-path="url(#clipPath27)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(193,141)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath29)" x2="140" y1="50" - /><polygon fill="white" clip-path="url(#clipPath29)" points=" 140 50 128 44 128 56" stroke="none" - /><polygon fill="none" points=" 140 50 128 44 128 56" clip-path="url(#clipPath29)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(291,156)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath31)" x2="149" y1="50" - /><line y2="80" fill="none" x1="149" clip-path="url(#clipPath31)" x2="149" y1="50" - /><line y2="80" fill="none" x1="149" clip-path="url(#clipPath31)" x2="54" y1="80" - /><polygon fill="white" clip-path="url(#clipPath31)" points=" 54 80 66 86 66 74" stroke="none" - /><polygon fill="none" points=" 54 80 66 86 66 74" clip-path="url(#clipPath31)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(291,192)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath32)" x2="149" y1="50" - /><line y2="80" fill="none" x1="149" clip-path="url(#clipPath32)" x2="149" y1="50" - /><line y2="80" fill="none" x1="149" clip-path="url(#clipPath32)" x2="54" y1="80" - /><polygon fill="white" clip-path="url(#clipPath32)" points=" 54 80 66 86 66 74" stroke="none" - /><polygon fill="none" points=" 54 80 66 86 66 74" clip-path="url(#clipPath32)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(291,228)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath34)" x2="149" y1="50" - /><polygon fill="white" clip-path="url(#clipPath34)" points=" 149 50 137 44 137 56" stroke="none" - /><polygon fill="none" points=" 149 50 137 44 137 56" clip-path="url(#clipPath34)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(402,253)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath36)" x2="145" y1="50" - /><line y2="80" fill="none" x1="145" clip-path="url(#clipPath36)" x2="145" y1="50" - /><line y2="80" fill="none" x1="145" clip-path="url(#clipPath36)" x2="50" y1="80" - /><polygon fill="white" clip-path="url(#clipPath36)" points=" 50 80 62 86 62 74" stroke="none" - /><polygon fill="none" points=" 50 80 62 86 62 74" clip-path="url(#clipPath36)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(402,289)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath37)" x2="145" y1="50" - /><line y2="80" fill="none" x1="145" clip-path="url(#clipPath37)" x2="145" y1="50" - /><line y2="80" fill="none" x1="145" clip-path="url(#clipPath37)" x2="50" y1="80" - /><polygon fill="white" clip-path="url(#clipPath37)" points=" 50 80 62 86 62 74" stroke="none" - /><polygon fill="none" points=" 50 80 62 86 62 74" clip-path="url(#clipPath37)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(402,330)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath38)" x2="145" y1="50" - /><line y2="80" fill="none" x1="145" clip-path="url(#clipPath38)" x2="145" y1="50" - /><line y2="80" fill="none" x1="145" clip-path="url(#clipPath38)" x2="50" y1="80" - /><polygon fill="white" clip-path="url(#clipPath38)" points=" 50 80 62 86 62 74" stroke="none" - /><polygon fill="none" points=" 50 80 62 86 62 74" clip-path="url(#clipPath38)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(402,366)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath39)" x2="145" y1="50" - /><line y2="80" fill="none" x1="145" clip-path="url(#clipPath39)" x2="145" y1="50" - /><line y2="80" fill="none" x1="145" clip-path="url(#clipPath39)" x2="50" y1="80" - /><polygon fill="white" clip-path="url(#clipPath39)" points=" 50 80 62 86 62 74" stroke="none" - /><polygon fill="none" points=" 50 80 62 86 62 74" clip-path="url(#clipPath39)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(402,407)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath40)" x2="145" y1="50" - /><line y2="80" fill="none" x1="145" clip-path="url(#clipPath40)" x2="145" y1="50" - /><line y2="80" fill="none" x1="145" clip-path="url(#clipPath40)" x2="50" y1="80" - /><polygon fill="white" clip-path="url(#clipPath40)" points=" 50 80 62 86 62 74" stroke="none" - /><polygon fill="none" points=" 50 80 62 86 62 74" clip-path="url(#clipPath40)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(402,443)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath41)" x2="145" y1="50" - /><line y2="80" fill="none" x1="145" clip-path="url(#clipPath41)" x2="145" y1="50" - /><line y2="80" fill="none" x1="145" clip-path="url(#clipPath41)" x2="50" y1="80" - /><polygon fill="white" clip-path="url(#clipPath41)" points=" 50 80 62 86 62 74" stroke="none" - /><polygon fill="none" points=" 50 80 62 86 62 74" clip-path="url(#clipPath41)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(402,479)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath43)" x2="146" y1="50" - /><polygon fill="white" clip-path="url(#clipPath43)" points=" 146 50 134 44 134 56" stroke="none" - /><polygon fill="none" points=" 146 50 134 44 134 56" clip-path="url(#clipPath43)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(506,494)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath44)" x2="149" y1="50" - /><line y2="80" fill="none" x1="149" clip-path="url(#clipPath44)" x2="149" y1="50" - /><line y2="80" fill="none" x1="149" clip-path="url(#clipPath44)" x2="54" y1="80" - /><polygon fill="white" clip-path="url(#clipPath44)" points=" 54 80 66 86 66 74" stroke="none" - /><polygon fill="none" points=" 54 80 66 86 66 74" clip-path="url(#clipPath44)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(506,530)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath45)" x2="149" y1="50" - /><line y2="80" fill="none" x1="149" clip-path="url(#clipPath45)" x2="149" y1="50" - /><line y2="80" fill="none" x1="149" clip-path="url(#clipPath45)" x2="54" y1="80" - /><polygon fill="white" clip-path="url(#clipPath45)" points=" 54 80 66 86 66 74" stroke="none" - /><polygon fill="none" points=" 54 80 66 86 66 74" clip-path="url(#clipPath45)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(506,673)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath47)" x2="144" y1="50" - /><polygon fill="white" clip-path="url(#clipPath47)" points=" 144 50 132 44 132 56" stroke="none" - /><polygon fill="none" points=" 144 50 132 44 132 56" clip-path="url(#clipPath47)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(506,566)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath48)" x2="149" y1="50" - /><line y2="80" fill="none" x1="149" clip-path="url(#clipPath48)" x2="149" y1="50" - /><line y2="80" fill="none" x1="149" clip-path="url(#clipPath48)" x2="54" y1="80" - /><polygon fill="white" clip-path="url(#clipPath48)" points=" 54 80 66 86 66 74" stroke="none" - /><polygon fill="none" points=" 54 80 66 86 66 74" clip-path="url(#clipPath48)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(506,602)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath49)" x2="149" y1="50" - /><line y2="80" fill="none" x1="149" clip-path="url(#clipPath49)" x2="149" y1="50" - /><line y2="80" fill="none" x1="149" clip-path="url(#clipPath49)" x2="54" y1="80" - /><polygon fill="white" clip-path="url(#clipPath49)" points=" 54 80 66 86 66 74" stroke="none" - /><polygon fill="none" points=" 54 80 66 86 66 74" clip-path="url(#clipPath49)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(506,637)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath50)" x2="149" y1="50" - /><line y2="80" fill="none" x1="149" clip-path="url(#clipPath50)" x2="149" y1="50" - /><line y2="80" fill="none" x1="149" clip-path="url(#clipPath50)" x2="54" y1="80" - /><polygon fill="white" clip-path="url(#clipPath50)" points=" 54 80 66 86 66 74" stroke="none" - /><polygon fill="none" points=" 54 80 66 86 66 74" clip-path="url(#clipPath50)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(608,689)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath51)" x2="149" y1="50" - /><line y2="80" fill="none" x1="149" clip-path="url(#clipPath51)" x2="149" y1="50" - /><line y2="80" fill="none" x1="149" clip-path="url(#clipPath51)" x2="54" y1="80" - /><polygon fill="white" clip-path="url(#clipPath51)" points=" 54 80 66 86 66 74" stroke="none" - /><polygon fill="none" points=" 54 80 66 86 66 74" clip-path="url(#clipPath51)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(608,709)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath52)" x2="149" y1="50" - /><line y2="80" fill="none" x1="149" clip-path="url(#clipPath52)" x2="149" y1="50" - /><line y2="80" fill="none" x1="149" clip-path="url(#clipPath52)" x2="54" y1="80" - /><polygon fill="white" clip-path="url(#clipPath52)" points=" 54 80 66 86 66 74" stroke="none" - /><polygon fill="none" points=" 54 80 66 86 66 74" clip-path="url(#clipPath52)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(608,735)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="50" fill="none" x1="50" clip-path="url(#clipPath53)" x2="149" y1="50" - /><line y2="80" fill="none" x1="149" clip-path="url(#clipPath53)" x2="149" y1="50" - /><line y2="80" fill="none" x1="149" clip-path="url(#clipPath53)" x2="54" y1="80" - /><polygon fill="white" clip-path="url(#clipPath53)" points=" 54 80 66 86 66 74" stroke="none" - /><polygon fill="none" points=" 54 80 66 86 66 74" clip-path="url(#clipPath53)" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(354,490)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke-dasharray="4" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="269" fill="none" x1="50" clip-path="url(#clipPath55)" x2="355" y1="50" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(354,490)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke-dasharray="4" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="249" fill="none" x1="50" clip-path="url(#clipPath57)" x2="355" y1="50" - /></g - ><g stroke-linecap="butt" font-size="11px" transform="translate(354,490)" fill-opacity="1" fill="rgb(153,0,51)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke-linejoin="round" stroke-dasharray="4" stroke="rgb(153,0,51)" stroke-opacity="1" - ><line y2="295" fill="none" x1="50" clip-path="url(#clipPath59)" x2="355" y1="50" - /></g - ><g font-size="11px" transform="translate(449,741)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="194" height="14" y="0" clip-path="url(#clipPath60)" stroke="none" - /><text fill="black" x="5" xml:space="preserve" y="11" clip-path="url(#clipPath60)" stroke="none" - >fireLifecycleEvent(AFTER_EVENT)</text - ></g - ><g font-size="11px" transform="translate(439,792)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="195" height="14" y="0" clip-path="url(#clipPath61)" stroke="none" - /><text fill="black" x="4" xml:space="preserve" y="11" clip-path="url(#clipPath61)" stroke="none" - >fireLifecycleEvent(START_EVENT)</text - ></g - ><g font-size="11px" transform="translate(395,765)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="244" height="14" y="0" clip-path="url(#clipPath62)" stroke="none" - /><text fill="black" x="5" xml:space="preserve" y="11" clip-path="url(#clipPath62)" stroke="none" - >fireLifecycleEvent(BEFORE_START_EVENT)</text - ></g - ><g font-size="11px" transform="translate(561,678)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="86" height="14" y="0" clip-path="url(#clipPath63)" stroke="none" - /><text fill="black" x="4" xml:space="preserve" y="11" clip-path="url(#clipPath63)" stroke="none" - >findChildren()</text - ></g - ><g font-size="11px" transform="translate(564,643)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="81" height="14" y="0" clip-path="url(#clipPath64)" stroke="none" - /><text fill="black" x="5" xml:space="preserve" y="11" clip-path="url(#clipPath64)" stroke="none" - >findMapper()</text - ></g - ><g font-size="11px" transform="translate(563,607)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="83" height="14" y="0" clip-path="url(#clipPath65)" stroke="none" - /><text fill="black" x="5" xml:space="preserve" y="11" clip-path="url(#clipPath65)" stroke="none" - >logger.start()</text - ></g - ><g font-size="11px" transform="translate(581,709)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="45" height="14" y="0" clip-path="url(#clipPath66)" stroke="none" - /><text fill="black" x="4" xml:space="preserve" y="11" clip-path="url(#clipPath66)" stroke="none" - >start()</text - ></g - ><g font-size="11px" transform="translate(559,566)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="121" height="14" y="0" clip-path="url(#clipPath67)" stroke="none" - /><text fill="black" x="5" xml:space="preserve" y="11" clip-path="url(#clipPath67)" stroke="none" - >addDefaultMapper()</text - ></g - ><g font-size="11px" transform="translate(382,536)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="244" height="14" y="0" clip-path="url(#clipPath62)" stroke="none" - /><text fill="black" x="5" xml:space="preserve" y="11" clip-path="url(#clipPath62)" stroke="none" - >fireLifecycleEvent(BEFORE_START_EVENT)</text - ></g - ><g font-size="11px" transform="translate(478,515)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="45" height="14" y="0" clip-path="url(#clipPath66)" stroke="none" - /><text fill="black" x="4" xml:space="preserve" y="11" clip-path="url(#clipPath66)" stroke="none" - >start()</text - ></g - ><g font-size="11px" transform="translate(434,479)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="86" height="14" y="0" clip-path="url(#clipPath63)" stroke="none" - /><text fill="black" x="4" xml:space="preserve" y="11" clip-path="url(#clipPath63)" stroke="none" - >findChildren()</text - ></g - ><g font-size="11px" transform="translate(464,448)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="87" height="14" y="0" clip-path="url(#clipPath68)" stroke="none" - /><text fill="black" x="5" xml:space="preserve" y="11" clip-path="url(#clipPath68)" stroke="none" - >findMappers()</text - ></g - ><g font-size="11px" transform="translate(462,407)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="80" height="14" y="0" clip-path="url(#clipPath69)" stroke="none" - /><text fill="black" x="5" xml:space="preserve" y="11" clip-path="url(#clipPath69)" stroke="none" - >realm.start()</text - ></g - ><g font-size="11px" transform="translate(461,371)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="83" height="14" y="0" clip-path="url(#clipPath65)" stroke="none" - /><text fill="black" x="5" xml:space="preserve" y="11" clip-path="url(#clipPath65)" stroke="none" - >logger.start()</text - ></g - ><g font-size="11px" transform="translate(457,331)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="121" height="14" y="0" clip-path="url(#clipPath67)" stroke="none" - /><text fill="black" x="5" xml:space="preserve" y="11" clip-path="url(#clipPath67)" stroke="none" - >addDefaultMapper()</text - ></g - ><g font-size="11px" transform="translate(467,290)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="244" height="14" y="0" clip-path="url(#clipPath62)" stroke="none" - /><text fill="black" x="5" xml:space="preserve" y="11" clip-path="url(#clipPath62)" stroke="none" - >fireLifecycleEvent(BEFORE_START_EVENT)</text - ></g - ><g font-size="11px" transform="translate(368,264)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="45" height="14" y="0" clip-path="url(#clipPath66)" stroke="none" - /><text fill="black" x="4" xml:space="preserve" y="11" clip-path="url(#clipPath66)" stroke="none" - >start()</text - ></g - ><g font-size="11px" transform="translate(357,228)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="195" height="14" y="0" clip-path="url(#clipPath61)" stroke="none" - /><text fill="black" x="4" xml:space="preserve" y="11" clip-path="url(#clipPath61)" stroke="none" - >fireLifecycleEvent(START_EVENT)</text - ></g - ><g font-size="11px" transform="translate(358,192)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="244" height="14" y="0" clip-path="url(#clipPath62)" stroke="none" - /><text fill="black" x="5" xml:space="preserve" y="11" clip-path="url(#clipPath62)" stroke="none" - >fireLifecycleEvent(BEFORE_START_EVENT)</text - ></g - ><g font-size="11px" transform="translate(266,177)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="45" height="14" y="0" clip-path="url(#clipPath66)" stroke="none" - /><text fill="black" x="4" xml:space="preserve" y="11" clip-path="url(#clipPath66)" stroke="none" - >start()</text - ></g - ><g font-size="11px" transform="translate(260,141)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="195" height="14" y="0" clip-path="url(#clipPath61)" stroke="none" - /><text fill="black" x="4" xml:space="preserve" y="11" clip-path="url(#clipPath61)" stroke="none" - >fireLifecycleEvent(START_EVENT)</text - ></g - ><g font-size="11px" transform="translate(267,105)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="244" height="14" y="0" clip-path="url(#clipPath62)" stroke="none" - /><text fill="black" x="5" xml:space="preserve" y="11" clip-path="url(#clipPath62)" stroke="none" - >fireLifecycleEvent(BEFORE_START_EVENT)</text - ></g - ><g font-size="11px" transform="translate(168,85)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="45" height="14" y="0" clip-path="url(#clipPath66)" stroke="none" - /><text fill="black" x="4" xml:space="preserve" y="11" clip-path="url(#clipPath66)" stroke="none" - >start()</text - ></g - ><g font-size="11px" transform="translate(74,74)" fill-opacity="1" fill="white" text-rendering="geometricPrecision" image-rendering="optimizeQuality" font-family="sans-serif" stroke="white" stroke-opacity="1" - ><rect x="0" width="45" height="14" y="0" clip-path="url(#clipPath66)" stroke="none" - /><text fill="black" x="4" xml:space="preserve" y="11" clip-path="url(#clipPath66)" stroke="none" - >start()</text - ></g - ><g font-size="10px" transform="rotate(-45) translate(-667.8917,0)" fill-opacity="1" fill="rgb(120,120,120)" text-rendering="geometricPrecision" image-rendering="optimizeQuality" stroke="rgb(120,120,120)" stroke-opacity="1" - ></g - ></g -></svg -> diff --git a/webapps/docs/architecture/startup/3_catalina_start_1.uml b/webapps/docs/architecture/startup/3_catalina_start_1.uml new file mode 100644 index 0000000000..2872395dd4 --- /dev/null +++ b/webapps/docs/architecture/startup/3_catalina_start_1.uml @@ -0,0 +1,154 @@ +@startuml + +' Licensed to the Apache Software Foundation (ASF) under one or more +' contributor license agreements. See the NOTICE file distributed with +' this work for additional information regarding copyright ownership. +' The ASF licenses this file to You under the Apache License, Version 2.0 +' (the "License"); you may not use this file except in compliance with +' the License. You may obtain a copy of the License at +' +' http://www.apache.org/licenses/LICENSE-2.0 +' +' Unless required by applicable law or agreed to in writing, software +' distributed under the License is distributed on an "AS IS" BASIS, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' See the License for the specific language governing permissions and +' limitations under the License. + +hide footbox +skinparam style strictuml + +activate Catalina + +Catalina -> Server: start() +activate Server + +Server -> Server: fireLifecycleEvent(\n BEFORE_START_EVENT) + +Server -> Server: startInternal() +activate Server + +Server -> Server: fireLifecycleEvent(\n CONFIGURE_START_EVENT) +Server -> Server: fireLifecycleEvent(\n START_EVENT) + +Server -> "Global\nNaming\nResources" as GNR: start() +activate GNR + +GNR -> GNR: fireLifecycleEvent(\n BEFORE_START_EVENT) +GNR -> GNR: startInternal() +activate GNR + +GNR -> GNR: fireLifecycleEvent(\n CONFIGURE_START_EVENT) +GNR -> GNR: fireLifecycleEvent(\n START_EVENT) + +GNR -->> GNR +deactivate GNR + +GNR -> GNR: fireLifecycleEvent(\n AFTER_START_EVENT) + +Server <<-- GNR +deactivate GNR + +Server -> "Service(s)" as Services: start() +activate Services + +Services -> Services: fireLifecycleEvent(\n BEFORE_START_EVENT) + +Services -> Services: startInternal() +activate Services + +Services -> Services: fireLifecycleEvent(\n START_EVENT) + +Services -> Engine: start() +activate Engine + +Engine -> Engine: fireLifecycleEvent(\n BEFORE_START_EVENT) + +Engine -> Engine: startInternal() +activate Engine + +Engine -> Engine: fireLifecycleEvent(\n START_EVENT) + +Engine -->> Engine +deactivate Engine + +Engine -> Engine: fireLifecycleEvent(\n AFTER_START_EVENT) + +Services <<-- Engine +deactivate Engine + +Services -> "Executor(s)" as Executors: start() +activate Executors + +Executors -> Executors: fireLifecycleEvent(\n BEFORE_START_EVENT) + +Executors -> Executors: startInternal() +activate Executors + +Executors -> Executors: fireLifecycleEvent(\n START_EVENT) + +Executors -->> Executors +deactivate Executors + +Executors -> Executors: fireLifecycleEvent(\n AFTER_START_EVENT) + +Services <<-- Executors +deactivate Executors + +Services -> "Mapper\nListener" as MapperListener: start() +activate MapperListener + +MapperListener -> MapperListener: fireLifecycleEvent(\n BEFORE_START_EVENT) + +MapperListener -> MapperListener: startInternal() +activate MapperListener + +MapperListener -> MapperListener: fireLifecycleEvent(\n START_EVENT) + +MapperListener -->> MapperListener +deactivate MapperListener + +MapperListener -> MapperListener: fireLifecycleEvent(\n AFTER_START_EVENT) + +Services <<-- MapperListener +deactivate MapperListener + +Services -> "Connector(s)" as Connectors: start() +activate Connectors + +Connectors -> Connectors: fireLifecycleEvent(\n BEFORE_START_EVENT) +Connectors -> Connectors: startInternal() +activate Connectors + +Connectors -> Connectors: fireLifecycleEvent(\n START_EVENT) + +Connectors -> Protocol: start() +activate Protocol +Connectors <<-- Protocol +deactivate Protocol + +Connectors -->> Connectors +deactivate Connectors + +Connectors -> Connectors: fireLifecycleEvent(\n AFTER_INIT_EVENT) + +Services <<-- Connectors +deactivate Connectors + +Services -->> Services +deactivate Services + +Services -> Services: fireLifecycleEvent(\n AFTER_START_EVENT) + +Server <<-- Services +deactivate Services + +Server -->> Server +deactivate Server + +Server -> Server: fireLifecycleEvent(\n AFTER_START_EVENT) + +Server -->> Catalina +deactivate Server + +@enduml \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org