<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
 * 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.
-->
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   width="1052.3622"
   height="744.09448"
   id="svg2"
   sodipodi:version="0.32"
   inkscape:version="0.46"
   sodipodi:docbase="helloworld-service-erlang"
   sodipodi:docname="helloworld-service.svg"
   version="1.0"
   inkscape:export-filename="helloworld-service.png"
   inkscape:export-xdpi="70.806541"
   inkscape:export-ydpi="70.806541"
   inkscape:output_extension="org.inkscape.output.svg.inkscape">
  <defs
     id="defs4">
    <inkscape:perspective
       sodipodi:type="inkscape:persp3d"
       inkscape:vp_x="0 : 372.04724 : 1"
       inkscape:vp_y="0 : 1000 : 0"
       inkscape:vp_z="1052.3622 : 372.04724 : 1"
       inkscape:persp3d-origin="526.18109 : 248.03149 : 1"
       id="perspective27" />
  </defs>
  <sodipodi:namedview
     id="base"
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1.0"
     gridtolerance="10000"
     guidetolerance="10"
     objecttolerance="10"
     inkscape:pageopacity="0.0"
     inkscape:pageshadow="2"
     inkscape:zoom="1.4"
     inkscape:cx="519.38407"
     inkscape:cy="414.63224"
     inkscape:document-units="px"
     inkscape:current-layer="layer1"
     inkscape:window-width="1111"
     inkscape:window-height="783"
     inkscape:window-x="169"
     inkscape:window-y="22"
     showgrid="false" />
  <metadata
     id="metadata7">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <g
     inkscape:label="Layer 1"
     inkscape:groupmode="layer"
     id="layer1">
    <g
       id="g2997"
       transform="matrix(0.991389,0,0,1,2.215655,0)">
      <rect
         rx="13.79423"
         ry="12.692303"
         y="192.00233"
         x="258.3114"
         height="299.99988"
         width="446.72086"
         id="rect2067"
         style="opacity:1;fill:#90baf4;fill-opacity:1;stroke:#060000;stroke-width:2.00866628;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
      <flowRoot
         id="flowRoot2954"
         xml:space="preserve"><flowRegion
           id="flowRegion2956"><rect
             y="212.66591"
             x="281.42856"
             height="61.42857"
             width="170"
             id="rect2958" /></flowRegion><flowPara
           id="flowPara2960">helloworld</flowPara></flowRoot>    </g>
    <rect
       style="fill:#317fed;fill-opacity:1;stroke:#060000;stroke-width:3.70037222;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
       id="rect2988"
       width="201.81923"
       height="168.4483"
       x="387.1951"
       y="262.30353"
       rx="12.207596"
       ry="13.974144" />
    <flowRoot
       xml:space="preserve"
       id="flowRoot2966"
       transform="translate(168.89697,70.2291)"><flowRegion
         id="flowRegion2968"><rect
           id="rect2970"
           width="170"
           height="61.42857"
           x="281.42856"
           y="212.66591" /></flowRegion><flowPara
         id="flowPara2972">HelloWorld</flowPara><flowPara
         id="flowPara1883">Service</flowPara><flowPara
         id="flowPara1885">Component</flowPara></flowRoot>    <path
       style="fill:#5b9d05;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
       d="M 353.15921,319.32458 L 420.34042,319.32458 L 432.55517,351.3994 L 418.30463,381.00696 L 353.15921,381.00696 L 368.42768,351.3994 L 353.15921,319.32458 z "
       id="path1892" />
    <flowRoot
       xml:space="preserve"
       id="flowRoot1894"
       transform="translate(88.234846,118.54669)"
       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans"><flowRegion
         id="flowRegion1896"><rect
           id="rect1898"
           width="170"
           height="61.42857"
           x="281.42856"
           y="212.66591"
           style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" /></flowRegion><flowPara
         id="flowPara1900">HelloWorld</flowPara><flowPara
         id="flowPara1904">Service</flowPara><flowPara
         id="flowPara2181">Erlang</flowPara></flowRoot>  </g>
</svg>
