path: resources/vector/body/brown/penis 0.svg

license: mit


path: resources/vector/body/brown/penis 1.svg


path: resources/vector/body/brown/penis 2.svg


path: resources/vector/body/brown/penis 3.svg


path: resources/vector/body/brown/penis 4.svg


path: resources/vector/body/brown/penis 5.svg


path: resources/vector/body/brown/penis 6.svg


code:
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 viewBox="0 0 1000 1000" style="enable-background:new 0 0 1000 1000;" xml:space="preserve">
<style type="text/css">
	.st0{fill:#7A3D00;}
</style>
<path id="Vagina" class="st0" d="M486.1,434.3c3,13.5,5.9,25.9,9.3,33C487.8,458.8,484.6,448.4,486.1,434.3z"/>
</svg>


path: resources/vector/body/dark brown/arm left high.svg


path: resources/vector/body/dark brown/arm left low.svg


path: resources/vector/body/dark brown/arm left mid.svg


path: resources/vector/body/dark brown/arm left rebel.svg


path: resources/vector/body/dark brown/arm right high.svg


path: resources/vector/body/dark brown/arm right low.svg


path: resources/vector/body/dark brown/arm right mid.svg


path: resources/vector/body/dark brown/boob 0 areola.svg


path: resources/vector/body/dark brown/boob 1 areola.svg


path: resources/vector/body/dark brown/boob 2 areola.svg


path: resources/vector/body/dark brown/boob 3 areola.svg


path: resources/vector/body/dark brown/boob 4 areola.svg


path: resources/vector/body/dark brown/boob 5 areola.svg


path: resources/vector/body/dark brown/boob 6 areola.svg


path: resources/vector/body/dark brown/boob 7 areola.svg


path: resources/vector/body/dark brown/flaccid  3.svg


path: resources/vector/body/dark brown/leg stump narrow.svg


path: resources/vector/body/dark brown/leg stump normal.svg


path: resources/vector/body/dark brown/leg stump wide.svg


code:
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 viewBox="0 0 1000 1000" style="enable-background:new 0 0 1000 1000;" xml:space="preserve">
<style type="text/css">
	.st0{fill:#46210D;}
</style>
<path id="Vagina" class="st0" d="M486.1,434.3c3,13.5,5.9,25.9,9.3,33C487.8,458.8,484.6,448.4,486.1,434.3z"/>
</svg>


path: resources/vector/body/tanned/ball 0.svg


path: resources/vector/body/tanned/ball 1.svg


path: resources/vector/body/tanned/ball 2.svg


path: resources/vector/body/tanned/ball 3.svg


path: resources/vector/body/tanned/ball 4.svg


path: resources/vector/body/tanned/boob 0.svg


path: resources/vector/body/tanned/boob 1.svg


path: resources/vector/body/tanned/boob 2.svg


path: resources/vector/body/tanned/boob 3.svg


path: resources/vector/body/tanned/boob 4.svg


path: resources/vector/body/tanned/boob 5.svg


path: resources/vector/body/tanned/boob 6.svg


path: resources/vector/body/tanned/boob 7.svg


path: resources/vector/body/tanned/butt 0.svg


path: resources/vector/body/tanned/butt 1.svg


path: resources/vector/body/tanned/butt 2.svg


path: resources/vector/body/tanned/butt 3.svg


code:
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 viewBox="0 0 1000 1000" style="enable-background:new 0 0 1000 1000;" xml:space="preserve">
<style type="text/css">
	.st0{fill:#C6763F;}
</style>
<path id="Vagina" class="st0" d="M486.1,434.3c3,13.5,5.9,25.9,9.3,33C487.8,458.8,484.6,448.4,486.1,434.3z"/>
</svg>


path: resources/vector/body/white/ball 0.svg


path: resources/vector/body/white/ball 1.svg


path: resources/vector/body/white/ball 2.svg


path: resources/vector/body/white/ball 3.svg


path: resources/vector/body/white/ball 4.svg


path: resources/vector/body/white/boob 0.svg


path: resources/vector/body/white/boob 1.svg


path: resources/vector/body/white/boob 2.svg


path: resources/vector/body/white/boob 3.svg


path: resources/vector/body/white/boob 4.svg


path: resources/vector/body/white/boob 5.svg


path: resources/vector/body/white/boob 6.svg


path: resources/vector/body/white/boob 7.svg


path: resources/vector/body/white/butt 0.svg


path: resources/vector/body/white/butt 1.svg


path: resources/vector/body/white/butt 2.svg


path: resources/vector/body/white/butt 3.svg


path: resources/vector/body/white/penis 0.svg


path: resources/vector/body/white/penis 1.svg


path: resources/vector/body/white/penis 2.svg


path: resources/vector/body/white/penis 3.svg


path: resources/vector/body/white/penis 4.svg


path: resources/vector/body/white/penis 5.svg


path: resources/vector/body/white/penis 6.svg


code:
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 viewBox="0 0 1000 1000" style="enable-background:new 0 0 1000 1000;" xml:space="preserve">
<style type="text/css">
	.st0{fill:#D76B93;}
</style>
<path id="Vagina" class="st0" d="M486.1,434.3c3,13.5,5.9,25.9,9.3,33C487.8,458.8,484.6,448.4,486.1,434.3z"/>
</svg>


code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->

<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"
   version="1.1"
   id="Layer_1"
   x="0px"
   y="0px"
   viewBox="0 0 1000 1000"
   style="enable-background:new 0 0 1000 1000;"
   xml:space="preserve"
   sodipodi:docname="neat back.svg"
   inkscape:version="0.92pre3 15195"><metadata
     id="metadata10"><rdf:RDF><cc:Work
         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
     id="defs8" /><sodipodi:namedview
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1"
     objecttolerance="10"
     gridtolerance="10"
     guidetolerance="10"
     inkscape:pageopacity="0"
     inkscape:pageshadow="2"
     inkscape:window-width="1557"
     inkscape:window-height="879"
     id="namedview6"
     showgrid="false"
     inkscape:zoom="2.6700352"
     inkscape:cx="499.80468"
     inkscape:cy="857.13839"
     inkscape:window-x="0"
     inkscape:window-y="0"
     inkscape:window-maximized="0"
     inkscape:current-layer="Layer_1" /><style
     type="text/css"
     id="style2">
	.st0{fill:#8D4F21;}
</style><path
     id="Hair_Aft_1_"
     class="st0"
     d="M564.6,100.2c13.5,72.4,34.5,66.5,14,103.3c-43.3,47.7-90.1,7-98.1-9.8  c-41.1-23.4-0.3-140.8,48.3-130.3C562.1,70.6,562.1,82.9,564.6,100.2"
     style="fill:#474e62;fill-opacity:1" /></svg>

path: resources/vector/hair/neat back.svg


code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->

<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"
   version="1.1"
   id="Layer_1"
   x="0px"
   y="0px"
   viewBox="0 0 1000 1000"
   style="enable-background:new 0 0 1000 1000;"
   xml:space="preserve"
   sodipodi:docname="neat front.svg"
   inkscape:version="0.92pre3 15195"><metadata
     id="metadata10"><rdf:RDF><cc:Work
         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
     id="defs8" /><sodipodi:namedview
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1"
     objecttolerance="10"
     gridtolerance="10"
     guidetolerance="10"
     inkscape:pageopacity="0"
     inkscape:pageshadow="2"
     inkscape:window-width="1342"
     inkscape:window-height="837"
     id="namedview6"
     showgrid="false"
     inkscape:zoom="0.944"
     inkscape:cx="350.53577"
     inkscape:cy="680.50251"
     inkscape:window-x="0"
     inkscape:window-y="0"
     inkscape:window-maximized="0"
     inkscape:current-layer="Layer_1" /><style
     type="text/css"
     id="style2">
	.st0{fill:#5FBA46;}
</style><path
     id="Hair_Green"
     class="st0"
     d="M484.6,101.6c5.1,7.6,15,14,52.5,7.3c18.7,5.2,2.6,37.9,1.1,61c-1.3,19.3-7.8,36.4-18.9,51.5  c17.1-12.2,36.2-10.4,50.8-41.2c41.1-23.4-1.2-125.9-49.9-115.4C487.2,71.9,487.1,84.2,484.6,101.6z"
     style="fill:#b4b3b7;fill-opacity:1" /></svg>

path: resources/vector/hair/neat front.svg


path: resources/vector/outfit/arm left high latex.svg


path: resources/vector/outfit/arm left low latex.svg


path: resources/vector/outfit/arm left mid latex.svg


path: resources/vector/outfit/arm left rebel latex.svg


path: resources/vector/outfit/arm right high latex.svg


path: resources/vector/outfit/arm right low latex.svg


path: resources/vector/outfit/arm right mid latex.svg


code:
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<svg version="1.1"
	 id="svg4356" inkscape:version="0.92.0 r15299" sodipodi:docname="fc vector edit.svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg"
	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000"
	 style="enable-background:new 0 0 1000 1000;" xml:space="preserve">
<style type="text/css">
	.st0{opacity:0.24;fill:#BF2126;enable-background:new    ;}
	.st1{fill:#070505;}
	.st2{fill:#BF2126;}
</style>
<g id="collar_2">
	<path d="M488.2,163.9l53.1,1.1c0,0-9.1,17.6-35.3,19C498.3,184.4,488.2,163.9,488.2,163.9z"/>
</g>
<g id="Gag">
	<path id="XMLID_867_" inkscape:connector-curvature="0" class="st0" d="M498,167.3c2.6,3.9,7.6,0.9,14,5.1c7.8,5,8.1,14,13.2,14
		c1.7,0,3.5-1,4.3-2.4c4.5-7.7-18.1-34.7-27.5-31.1C497.6,154.6,495.3,163.1,498,167.3z"/>
	<polygon id="XMLID_892_" class="st1" points="541.3,165 489,163.9 486.4,157.1 545.1,157.1 	"/>
	<ellipse id="XMLID_893_" class="st2" cx="502.8" cy="161.1" rx="7.6" ry="8.7"/>
</g>
</svg>


code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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"
   version="1.1"
   x="0px"
   y="0px"
   viewBox="0 0 1000 1000"
   style="enable-background:new 0 0 1000 1000;"
   xml:space="preserve"
   id="svg4356"
   sodipodi:docname="boob 0 straps.svg"
   inkscape:version="0.91 r13725"><metadata
     id="metadata4362"><rdf:RDF><cc:Work
         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
     id="defs4360" /><sodipodi:namedview
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1"
     objecttolerance="10"
     gridtolerance="10"
     guidetolerance="10"
     inkscape:pageopacity="0"
     inkscape:pageshadow="2"
     inkscape:window-width="1280"
     inkscape:window-height="952"
     id="namedview4358"
     showgrid="false"
     inkscape:zoom="2.404163"
     inkscape:cx="504.81177"
     inkscape:cy="675.75124"
     inkscape:window-x="0"
     inkscape:window-y="0"
     inkscape:window-maximized="1"
     inkscape:current-layer="Boob_0_straps"
     inkscape:object-nodes="true"
     inkscape:object-paths="false"
     inkscape:snap-smooth-nodes="true" /><style
     type="text/css"
     id="style3680">
	.st0{fill:#FFFFFF;}
	.st1{fill:#76C043;}
	.st2{fill:#2680BC;}
	.st3{fill:#F6E0E8;}
	.st4{fill:#515351;}
	.st5{fill:#F4F1A3;}
	.st6{fill:#8E4F21;}
	.st7{fill:#BC2027;}
	.st8{fill:#60BB46;}
	.st9{fill:#4686C6;}
	.st10{fill:#D28DBD;}
	.st11{fill:#3F403F;}
	.st12{fill:#010101;}
	.st13{fill:#8F8F8E;}
	.st14{fill:#515251;}
	.st15{fill:#4F6AB2;}
	.st16{fill:#3E65B0;}
	.st17{fill:#15406D;}
	.st18{fill:#65AD45;}
	.st19{fill:#787878;}
	.st20{fill:#D76B93;}
	.st21{fill:#4DB748;}
	.st22{opacity:0.24;fill:#BF2126;enable-background:new    ;}
	.st23{fill:#070505;}
	.st24{fill:#BF2126;}
</style><g
     inkscape:groupmode="layer"
     id="Boob_0_straps"
     inkscape:label="Boob_0_straps"
     style="display:inline"><path
       id="path9222-6"
       style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-opacity:1"
       d="M 470.40961,273.28725 510.2,215.4 M 528.38181,272.82448 510.2,215.4 l -18.94327,64.68054 -1.27331,13.22861"
       inkscape:connector-curvature="0"
       sodipodi:nodetypes="cccccc" /><path
       id="path4809-3"
       style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
       d="m 525.55979,279.17038 -34.30306,0.91012 -19.71707,-3.9374 m -5.39254,-1.34213 -6.18716,-1.84961 m 75.79813,6.08134 22.68007,-4.6221 9.32701,-2.31465"
       inkscape:connector-curvature="0"
       sodipodi:nodetypes="cccccccc" /><path
       style="display:inline;fill:none;stroke:#b3b3b3;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none"
       inkscape:connector-curvature="0"
       d="m 467.8,271.4 c 1.3,-0.4 2.9,1.2 3.5,3.5 0.5,2.3 -0.1,4.5 -1.3,4.9 -1.3,0.4 -2.9,-1.2 -3.5,-3.5 -0.8,-2.4 -0.1,-4.5 1.3,-4.9 z"
       class="st20"
       id="XMLID_552_-5" /><path
       style="display:inline;fill:none;stroke:#b3b3b3;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none"
       d="m 531.02854,284.89997 a 6.1000179,4.9000146 86.283549 0 1 -5.28511,-5.76958 6.1000179,4.9000146 86.283549 0 1 4.49431,-6.4048 6.1000179,4.9000146 86.283549 0 1 5.28511,5.76958 6.1000179,4.9000146 86.283549 0 1 -4.49431,6.4048 z"
       id="XMLID_553_-6"
       inkscape:connector-curvature="0" /><path
       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
       d="m 531.02854,284.89997 2.62912,12.56863"
       id="path3338"
       inkscape:connector-curvature="0"
       sodipodi:nodetypes="cc" /></g></svg>


code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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" version="1.1" x="0px" y="0px" viewBox="0 0 1000 1000" style="enable-background:new 0 0 1000 1000;" xml:space="preserve" id="svg4356" sodipodi:docname="vector source.svg" inkscape:version="0.91 r13725">
  <metadata id="metadata4362">
    <rdf:RDF>
      <cc:Work rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
        <dc:title/>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <defs id="defs4360"/>
  <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1280" inkscape:window-height="952" id="namedview4358" showgrid="false" inkscape:zoom="1.2020815" inkscape:cx="434.47578" inkscape:cy="639.70571" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="svg4356" inkscape:object-nodes="true" inkscape:object-paths="false" inkscape:snap-smooth-nodes="true"/>
  <style type="text/css" id="style3680">
	.st0{fill:#FFFFFF;}
	.st1{fill:#76C043;}
	.st2{fill:#2680BC;}
	.st3{fill:#F6E0E8;}
	.st4{fill:#515351;}
	.st5{fill:#F4F1A3;}
	.st6{fill:#8E4F21;}
	.st7{fill:#BC2027;}
	.st8{fill:#60BB46;}
	.st9{fill:#4686C6;}
	.st10{fill:#D28DBD;}
	.st11{fill:#3F403F;}
	.st12{fill:#010101;}
	.st13{fill:#8F8F8E;}
	.st14{fill:#515251;}
	.st15{fill:#4F6AB2;}
	.st16{fill:#3E65B0;}
	.st17{fill:#15406D;}
	.st18{fill:#65AD45;}
	.st19{fill:#787878;}
	.st20{fill:#D76B93;}
	.st21{fill:#4DB748;}
	.st22{opacity:0.24;fill:#BF2126;enable-background:new    ;}
	.st23{fill:#070505;}
	.st24{fill:#BF2126;}
</style>
  <svg:g inkscape:groupmode="layer" id="Boob_1_straps" inkscape:label="Boob_1_straps" style="display:inline">
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 511.2,215.6 C 497.352,235.58 454.855,245.458 452.673,271.24" id="path7375" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 515.844,272.368 C 518.949,250.694 511.172,236.274 511.2,215.6" id="path7377" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 514.353,285.57 C 513.863,290.735 519.114,296.818 521.485,298.101" id="path7381" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 453.492,280.324 C 453.976,285.711 462.107,291.148 471.921,291.74" id="path7383" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 509.289,278.981 C 503.14,278.558 499.567,277.327 495.588,275.038" id="path7385" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 455.768,276.097 C 466.382,277.399 484.75,276.419 495.588,275.038" id="path7387" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 495.411,278.532 L 495.588,275.038 C 494.921,255.563 501.294,235.697 511.2,215.6" id="path7389" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/>
    <svg:path style="display:inline;fill:none;stroke:#b3b3b3;stroke-width:1.29999995;stroke-miterlimit:4;stroke-dasharray:none" inkscape:connector-curvature="0" d="M 452.35,271.436 C 454.004,271.157 455.289,273.643 455.578,275.295 C 455.887,277.056 455.463,280.019 453.701,280.321 C 452.009,280.61 450.58,278.146 450.301,276.453 C 450.008,274.67 450.569,271.737 452.35,271.436 Z" class="st20" id="path7391" sodipodi:nodetypes="ccccc"/>
    <svg:path style="display:inline;fill:none;stroke:#b3b3b3;stroke-width:1.29999983;stroke-miterlimit:4;stroke-dasharray:none" d="M 515.334,285.383 C 512.641,285.561 510.145,282.014 509.968,279.321 C 509.794,276.672 511.834,272.936 514.483,272.761 C 517.176,272.584 519.672,276.131 519.849,278.823 C 520.023,281.472 517.983,285.209 515.334,285.383 Z" id="path7393" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
    <svg:path id="path9222-3" style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 520.102,279.565 C 530.704,279.485 544.773,271.622 551.242,267.345 C 554.436,248.041 514.781,235.469 511.2,215.6" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/>
  </svg:g>
</svg>


code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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" version="1.1" x="0px" y="0px" viewBox="0 0 1000 1000" style="enable-background:new 0 0 1000 1000;" xml:space="preserve" id="svg4356" sodipodi:docname="vector source.svg" inkscape:version="0.91 r13725">
  <metadata id="metadata4362">
    <rdf:RDF>
      <cc:Work rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
        <dc:title/>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <defs id="defs4360"/>
  <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1280" inkscape:window-height="952" id="namedview4358" showgrid="false" inkscape:zoom="1.2020815" inkscape:cx="434.47578" inkscape:cy="639.70571" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="svg4356" inkscape:object-nodes="true" inkscape:object-paths="false" inkscape:snap-smooth-nodes="true"/>
  <style type="text/css" id="style3680">
	.st0{fill:#FFFFFF;}
	.st1{fill:#76C043;}
	.st2{fill:#2680BC;}
	.st3{fill:#F6E0E8;}
	.st4{fill:#515351;}
	.st5{fill:#F4F1A3;}
	.st6{fill:#8E4F21;}
	.st7{fill:#BC2027;}
	.st8{fill:#60BB46;}
	.st9{fill:#4686C6;}
	.st10{fill:#D28DBD;}
	.st11{fill:#3F403F;}
	.st12{fill:#010101;}
	.st13{fill:#8F8F8E;}
	.st14{fill:#515251;}
	.st15{fill:#4F6AB2;}
	.st16{fill:#3E65B0;}
	.st17{fill:#15406D;}
	.st18{fill:#65AD45;}
	.st19{fill:#787878;}
	.st20{fill:#D76B93;}
	.st21{fill:#4DB748;}
	.st22{opacity:0.24;fill:#BF2126;enable-background:new    ;}
	.st23{fill:#070505;}
	.st24{fill:#BF2126;}
</style>
  <svg:g inkscape:groupmode="layer" id="Boob_2_straps" inkscape:label="Boob_2_straps" style="display:inline">
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 510.2,215.4 c -17.19712,24.81244 -69.92394,37.12918 -72.63365,69.14594" id="path7375" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 515.7378,286.27032 C 519.6138,259.22032 510.165,241.202 510.2,215.4" id="path7377" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 514.05917,301.66813 c -0.634,6.678 6.32316,14.44794 9.38983,16.10687" id="path7381" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 438.613,295.601 c 0.61,6.791 10.93048,13.5302 23.30084,14.27656" id="path7383" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 507.58865,293.98112 C 500.10265,293.46612 495.491,292.993 490.646,290.207" id="path7385" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 441.52165,290.46212 c 13.09,1.606 35.75835,1.44788 49.12435,-0.25512" id="path7387" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 490.469,293.701 0.177,-3.494 c -0.83858,-24.50293 7.09082,-49.52162 19.554,-74.807" id="path7389" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/>
    <svg:path style="display:inline;fill:none;stroke:#b3b3b3;stroke-width:1.29999995;stroke-miterlimit:4;stroke-dasharray:none" inkscape:connector-curvature="0" d="m 437.15035,284.73606 c 2.0422,-0.3446 3.74092,2.62993 4.09824,4.66994 0.38247,2.18359 -0.24149,5.81825 -2.42659,6.192 -2.08027,0.35582 -3.79527,-2.70955 -4.13812,-4.792 -0.35479,-2.15496 0.31294,-5.70656 2.46647,-6.06994 z" class="st20" id="path7391" sodipodi:nodetypes="ccccc"/>
    <svg:path style="display:inline;fill:none;stroke:#b3b3b3;stroke-width:1.29999983;stroke-miterlimit:4;stroke-dasharray:none" d="m 515.2283,301.48099 c -3.28587,0.2164 -6.73211,-3.73639 -6.94851,-7.02226 -0.21427,-3.25353 2.6553,-7.58112 5.90883,-7.79539 3.28587,-0.2164 6.73212,3.73638 6.94852,7.02225 0.21427,3.25354 -2.6553,7.58113 -5.90884,7.7954 z" id="path7393" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
    <svg:path id="path9222-3" style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 521.39035,294.70259 C 534.50935,294.60359 551.681,284.278 559.686,278.986 563.61961,255.21307 514.61044,239.86827 510.2,215.4" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/>
  </svg:g>
</svg>


code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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" version="1.1" x="0px" y="0px" viewBox="0 0 1000 1000" style="enable-background:new 0 0 1000 1000;" xml:space="preserve" id="svg4356" sodipodi:docname="vector source.svg" inkscape:version="0.91 r13725">
  <metadata id="metadata4362">
    <rdf:RDF>
      <cc:Work rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
        <dc:title/>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <defs id="defs4360"/>
  <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1280" inkscape:window-height="952" id="namedview4358" showgrid="false" inkscape:zoom="1.2020815" inkscape:cx="434.47578" inkscape:cy="639.70571" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="svg4356" inkscape:object-nodes="true" inkscape:object-paths="false" inkscape:snap-smooth-nodes="true"/>
  <style type="text/css" id="style3680">
	.st0{fill:#FFFFFF;}
	.st1{fill:#76C043;}
	.st2{fill:#2680BC;}
	.st3{fill:#F6E0E8;}
	.st4{fill:#515351;}
	.st5{fill:#F4F1A3;}
	.st6{fill:#8E4F21;}
	.st7{fill:#BC2027;}
	.st8{fill:#60BB46;}
	.st9{fill:#4686C6;}
	.st10{fill:#D28DBD;}
	.st11{fill:#3F403F;}
	.st12{fill:#010101;}
	.st13{fill:#8F8F8E;}
	.st14{fill:#515251;}
	.st15{fill:#4F6AB2;}
	.st16{fill:#3E65B0;}
	.st17{fill:#15406D;}
	.st18{fill:#65AD45;}
	.st19{fill:#787878;}
	.st20{fill:#D76B93;}
	.st21{fill:#4DB748;}
	.st22{opacity:0.24;fill:#BF2126;enable-background:new    ;}
	.st23{fill:#070505;}
	.st24{fill:#BF2126;}
</style>
  <svg:g inkscape:groupmode="layer" id="Boob_3_straps" inkscape:label="Boob_3_straps" style="display:inline">
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 512.6,212.2 C 491.836,242.159 428.12,256.975 424.848,295.633" id="path7375" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 519.238,297.973 C 523.929,265.237 512.558,243.426 512.6,212.2" id="path7377" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 517.359,315.966 C 516.585,324.111 525.21,333.506 528.951,335.53" id="path7381" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 426.147,308.804 C 426.89,317.081 439.544,325.174 454.623,326.084" id="path7383" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 509.389,306.981 C 500.356,306.36 494.678,306.332 488.832,302.97" id="path7385" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 429.591,302.714 C 445.377,304.651 472.713,305.024 488.832,302.97" id="path7387" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 488.655,306.464 L 488.832,302.97 C 487.814,273.235 497.476,242.885 512.6,212.2" id="path7389" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/>
    <svg:path style="display:inline;fill:none;stroke:#b3b3b3;stroke-width:1.29999995;stroke-miterlimit:4;stroke-dasharray:none" inkscape:connector-curvature="0" d="M 424.35,295.836 C 426.787,295.425 428.852,298.939 429.278,301.373 C 429.737,303.994 428.978,308.352 426.356,308.801 C 423.882,309.224 421.942,305.494 421.535,303.018 C 421.117,300.481 421.815,296.264 424.35,295.836 Z" class="st20" id="path7391" sodipodi:nodetypes="ccccc"/>
    <svg:path style="display:inline;fill:none;stroke:#b3b3b3;stroke-width:1.29999983;stroke-miterlimit:4;stroke-dasharray:none" d="M 518.729,315.778 C 514.778,316.039 510.353,311.573 510.092,307.622 C 509.833,303.681 513.548,298.625 517.488,298.366 C 521.439,298.106 525.864,302.571 526.125,306.523 C 526.384,310.463 522.669,315.519 518.729,315.778 Z" id="path7393" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
    <svg:path id="path9222-3" style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 526.378,307.866 C 542.125,307.747 562.476,294.729 572.085,288.376 C 576.803,259.86 517.89,241.551 512.6,212.2" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/>
  </svg:g>
</svg>


code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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" version="1.1" x="0px" y="0px" viewBox="0 0 1000 1000" style="enable-background:new 0 0 1000 1000;" xml:space="preserve" id="svg4356" sodipodi:docname="vector source.svg" inkscape:version="0.91 r13725">
  <metadata id="metadata4362">
    <rdf:RDF>
      <cc:Work rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
        <dc:title/>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <defs id="defs4360"/>
  <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1280" inkscape:window-height="952" id="namedview4358" showgrid="false" inkscape:zoom="1.2020815" inkscape:cx="434.47578" inkscape:cy="639.70571" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="svg4356" inkscape:object-nodes="true" inkscape:object-paths="false" inkscape:snap-smooth-nodes="true"/>
  <style type="text/css" id="style3680">
	.st0{fill:#FFFFFF;}
	.st1{fill:#76C043;}
	.st2{fill:#2680BC;}
	.st3{fill:#F6E0E8;}
	.st4{fill:#515351;}
	.st5{fill:#F4F1A3;}
	.st6{fill:#8E4F21;}
	.st7{fill:#BC2027;}
	.st8{fill:#60BB46;}
	.st9{fill:#4686C6;}
	.st10{fill:#D28DBD;}
	.st11{fill:#3F403F;}
	.st12{fill:#010101;}
	.st13{fill:#8F8F8E;}
	.st14{fill:#515251;}
	.st15{fill:#4F6AB2;}
	.st16{fill:#3E65B0;}
	.st17{fill:#15406D;}
	.st18{fill:#65AD45;}
	.st19{fill:#787878;}
	.st20{fill:#D76B93;}
	.st21{fill:#4DB748;}
	.st22{opacity:0.24;fill:#BF2126;enable-background:new    ;}
	.st23{fill:#070505;}
	.st24{fill:#BF2126;}
</style>
  <svg:g inkscape:groupmode="layer" id="Boob_4_straps" inkscape:label="Boob_4_straps" style="display:inline">
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 509.9,214 C 482.757,253.163 399.692,272.768 395.415,323.302" id="path7375" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 518.408,326.677 C 524.569,283.679 509.844,255.015 509.9,214" id="path7377" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 516.189,349.061 C 515.145,360.057 527.335,372.407 532.384,375.139" id="path7381" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 397.102,340.331 C 398.091,351.341 415.301,361.467 435.355,362.677" id="path7383" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 505.689,337.881 C 494.143,337.087 486.655,338.418 479.182,334.121" id="path7385" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 401.669,332.336 C 422.329,334.871 458.087,336.809 479.182,334.121" id="path7387" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 479.005,337.615 L 479.182,334.121 C 477.837,294.83 489.915,254.546 509.9,214" id="path7389" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/>
    <svg:path style="display:inline;fill:none;stroke:#b3b3b3;stroke-width:1.29999995;stroke-miterlimit:4;stroke-dasharray:none" inkscape:connector-curvature="0" d="M 394.75,323.536 C 397.89,323.006 400.699,327.4 401.248,330.536 C 401.855,334.001 400.779,339.735 397.311,340.328 C 394.122,340.874 391.74,335.969 391.214,332.777 C 390.678,329.523 391.498,324.085 394.75,323.536 Z" class="st20" id="path7391" sodipodi:nodetypes="ccccc"/>
    <svg:path style="display:inline;fill:none;stroke:#b3b3b3;stroke-width:1.29999983;stroke-miterlimit:4;stroke-dasharray:none" d="M 517.898,348.874 C 512.816,349.209 506.748,343.879 506.414,338.797 C 506.077,333.692 511.213,327.406 516.319,327.07 C 521.401,326.736 527.469,332.065 527.803,337.147 C 528.14,342.253 523.004,348.538 517.898,348.874 Z" id="path7393" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
    <svg:path id="path9222-3" style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 528.056,339.041 C 548.774,338.885 575.111,320.755 587.753,312.398 C 593.878,275.378 516.768,252.103 509.9,214" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/>
  </svg:g>
</svg>


code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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" version="1.1" x="0px" y="0px" viewBox="0 0 1000 1000" style="enable-background:new 0 0 1000 1000;" xml:space="preserve" id="svg4356" sodipodi:docname="vector source.svg" inkscape:version="0.91 r13725">
  <metadata id="metadata4362">
    <rdf:RDF>
      <cc:Work rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
        <dc:title/>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <defs id="defs4360"/>
  <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1280" inkscape:window-height="952" id="namedview4358" showgrid="false" inkscape:zoom="1.2020815" inkscape:cx="434.47578" inkscape:cy="639.70571" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="svg4356" inkscape:object-nodes="true" inkscape:object-paths="false" inkscape:snap-smooth-nodes="true"/>
  <style type="text/css" id="style3680">
	.st0{fill:#FFFFFF;}
	.st1{fill:#76C043;}
	.st2{fill:#2680BC;}
	.st3{fill:#F6E0E8;}
	.st4{fill:#515351;}
	.st5{fill:#F4F1A3;}
	.st6{fill:#8E4F21;}
	.st7{fill:#BC2027;}
	.st8{fill:#60BB46;}
	.st9{fill:#4686C6;}
	.st10{fill:#D28DBD;}
	.st11{fill:#3F403F;}
	.st12{fill:#010101;}
	.st13{fill:#8F8F8E;}
	.st14{fill:#515251;}
	.st15{fill:#4F6AB2;}
	.st16{fill:#3E65B0;}
	.st17{fill:#15406D;}
	.st18{fill:#65AD45;}
	.st19{fill:#787878;}
	.st20{fill:#D76B93;}
	.st21{fill:#4DB748;}
	.st22{opacity:0.24;fill:#BF2126;enable-background:new    ;}
	.st23{fill:#070505;}
	.st24{fill:#BF2126;}
</style>
  <svg:g inkscape:groupmode="layer" id="Boob_5_straps" inkscape:label="Boob_5_straps" style="display:inline">
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 509.1,214.2 C 472.601,266.862 360.884,293.204 355.132,361.156" id="path7375" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 520.665,366.284 C 528.982,308.245 509.025,269.561 509.1,214.2" id="path7377" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 517.932,395.255 C 516.506,410.268 533.234,427.08 540.129,430.809" id="path7381" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 357.656,383.97 C 358.993,398.859 382.403,412.317 409.524,413.954" id="path7383" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 503.589,380.781 C 488.021,379.71 477.762,382.825 467.686,377.031" id="path7385" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 363.649,373.197 C 391.39,376.6 439.361,380.64 467.686,377.031" id="path7387" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 467.509,380.525 L 467.686,377.031 C 465.864,323.787 482.018,269.144 509.1,214.2" id="path7389" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/>
    <svg:path style="display:inline;fill:none;stroke:#b3b3b3;stroke-width:1.29999995;stroke-miterlimit:4;stroke-dasharray:none" inkscape:connector-curvature="0" d="M 354.25,361.436 C 358.444,360.729 362.352,366.45 363.086,370.638 C 363.909,375.338 362.568,383.163 357.865,383.967 C 353.588,384.699 350.473,378.058 349.768,373.777 C 349.057,369.459 349.935,362.164 354.25,361.436 Z" class="st20" id="path7391" sodipodi:nodetypes="ccccc"/>
    <svg:path style="display:inline;fill:none;stroke:#b3b3b3;stroke-width:1.29999983;stroke-miterlimit:4;stroke-dasharray:none" d="M 520.156,395.068 C 513.357,395.515 504.794,388.91 504.346,382.111 C 503.894,375.243 511.194,367.129 518.061,366.677 C 524.86,366.229 533.423,372.834 533.871,379.633 C 534.323,386.501 527.023,394.615 520.156,395.068 Z" id="path7393" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
    <svg:path id="path9222-3" style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 534.124,382.355 C 559.041,382.167 590.74,360.416 605.944,350.365 C 614.101,301.065 518.246,264.942 509.1,214.2" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/>
  </svg:g>
</svg>


code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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" version="1.1" x="0px" y="0px" viewBox="0 0 1000 1000" style="enable-background:new 0 0 1000 1000;" xml:space="preserve" id="svg4356" sodipodi:docname="vector source.svg" inkscape:version="0.91 r13725">
  <metadata id="metadata4362">
    <rdf:RDF>
      <cc:Work rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
        <dc:title/>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <defs id="defs4360"/>
  <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1280" inkscape:window-height="952" id="namedview4358" showgrid="false" inkscape:zoom="1.2020815" inkscape:cx="434.47578" inkscape:cy="639.70571" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="svg4356" inkscape:object-nodes="true" inkscape:object-paths="false" inkscape:snap-smooth-nodes="true"/>
  <style type="text/css" id="style3680">
	.st0{fill:#FFFFFF;}
	.st1{fill:#76C043;}
	.st2{fill:#2680BC;}
	.st3{fill:#F6E0E8;}
	.st4{fill:#515351;}
	.st5{fill:#F4F1A3;}
	.st6{fill:#8E4F21;}
	.st7{fill:#BC2027;}
	.st8{fill:#60BB46;}
	.st9{fill:#4686C6;}
	.st10{fill:#D28DBD;}
	.st11{fill:#3F403F;}
	.st12{fill:#010101;}
	.st13{fill:#8F8F8E;}
	.st14{fill:#515251;}
	.st15{fill:#4F6AB2;}
	.st16{fill:#3E65B0;}
	.st17{fill:#15406D;}
	.st18{fill:#65AD45;}
	.st19{fill:#787878;}
	.st20{fill:#D76B93;}
	.st21{fill:#4DB748;}
	.st22{opacity:0.24;fill:#BF2126;enable-background:new    ;}
	.st23{fill:#070505;}
	.st24{fill:#BF2126;}
</style>
  <svg:g inkscape:groupmode="layer" id="Boob_6_straps" inkscape:label="Boob_6_straps" style="display:inline">
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 507.1,214.2 C 459.007,283.59 311.88,318.377 304.302,407.915" id="path7375" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 522.185,414.992 C 533.165,338.371 507.001,287.286 507.1,214.2" id="path7377" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 518.811,452.147 C 516.906,472.213 539.677,494.423 548.892,499.407" id="path7381" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 307.885,437.891 C 309.656,457.61 340.886,475.044 376.806,477.211" id="path7383" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 499.689,433.581 C 479.328,432.18 465.803,437.427 452.626,429.85" id="path7385" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 315.689,423.718 C 352.214,428.199 415.33,434.602 452.626,429.85" id="path7387" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 452.449,433.344 L 452.626,429.85 C 450.213,359.364 471.248,286.937 507.1,214.2" id="path7389" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/>
    <svg:path style="display:inline;fill:none;stroke:#b3b3b3;stroke-width:1.29999995;stroke-miterlimit:4;stroke-dasharray:none" inkscape:connector-curvature="0" d="M 303.15,408.236 C 308.67,407.305 313.959,414.696 314.924,420.21 C 316.014,426.432 314.321,436.823 308.094,437.888 C 302.454,438.853 298.419,430.037 297.489,424.392 C 296.562,418.761 297.524,409.186 303.15,408.236 Z" class="st20" id="path7391" sodipodi:nodetypes="ccccc"/>
    <svg:path style="display:inline;fill:none;stroke:#b3b3b3;stroke-width:1.29999983;stroke-miterlimit:4;stroke-dasharray:none" d="M 521.676,451.959 C 512.736,452.548 501.075,444.365 500.486,435.425 C 499.889,426.364 509.88,415.982 518.941,415.385 C 527.881,414.796 539.542,422.98 540.131,431.919 C 540.727,440.981 530.737,451.363 521.676,451.959 Z" id="path7393" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
    <svg:path id="path9222-3" style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 540.384,435.669 C 573.257,435.421 614.637,405.748 634.696,392.488 C 645.399,327.801 519.101,280.779 507.1,214.2" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/>
  </svg:g>
</svg>


code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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" version="1.1" x="0px" y="0px" viewBox="0 0 1000 1000" style="enable-background:new 0 0 1000 1000;" xml:space="preserve" id="svg4356" sodipodi:docname="vector source.svg" inkscape:version="0.91 r13725">
  <metadata id="metadata4362">
    <rdf:RDF>
      <cc:Work rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
        <dc:title/>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <defs id="defs4360"/>
  <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1280" inkscape:window-height="952" id="namedview4358" showgrid="false" inkscape:zoom="1.2020815" inkscape:cx="434.47578" inkscape:cy="639.70571" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="svg4356" inkscape:object-nodes="true" inkscape:object-paths="false" inkscape:snap-smooth-nodes="true"/>
  <style type="text/css" id="style3680">
	.st0{fill:#FFFFFF;}
	.st1{fill:#76C043;}
	.st2{fill:#2680BC;}
	.st3{fill:#F6E0E8;}
	.st4{fill:#515351;}
	.st5{fill:#F4F1A3;}
	.st6{fill:#8E4F21;}
	.st7{fill:#BC2027;}
	.st8{fill:#60BB46;}
	.st9{fill:#4686C6;}
	.st10{fill:#D28DBD;}
	.st11{fill:#3F403F;}
	.st12{fill:#010101;}
	.st13{fill:#8F8F8E;}
	.st14{fill:#515251;}
	.st15{fill:#4F6AB2;}
	.st16{fill:#3E65B0;}
	.st17{fill:#15406D;}
	.st18{fill:#65AD45;}
	.st19{fill:#787878;}
	.st20{fill:#D76B93;}
	.st21{fill:#4DB748;}
	.st22{opacity:0.24;fill:#BF2126;enable-background:new    ;}
	.st23{fill:#070505;}
	.st24{fill:#BF2126;}
</style>
  <svg:g inkscape:groupmode="layer" id="Boob_7_straps" inkscape:label="Boob_7_straps" style="display:inline">
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 508.3,214.2 C 449.714,298.729 270.477,341.098 261.246,450.171" id="path7375" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 526.574,459.199 C 539.97,365.712 508.179,303.374 508.3,214.2" id="path7377" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 522.623,503.54 C 520.28,528.215 548.507,555.384 559.839,561.514" id="path7381" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 265.667,486.42 C 267.838,510.591 306.187,531.841 350.216,534.498" id="path7383" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 499.189,481.381 C 474.478,479.681 457.992,487.065 442,477.868" id="path7385" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 275.097,469.249 C 319.63,474.712 396.528,483.662 442,477.868" id="path7387" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 441.823,481.362 L 442,477.868 C 439.051,391.71 464.477,303.109 508.3,214.2" id="path7389" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/>
    <svg:path style="display:inline;fill:none;stroke:#b3b3b3;stroke-width:1.29999995;stroke-miterlimit:4;stroke-dasharray:none" inkscape:connector-curvature="0" d="M 259.85,450.536 C 266.525,449.41 273.01,458.259 274.177,464.926 C 275.502,472.49 273.446,485.122 265.876,486.417 C 259.054,487.584 254.245,476.862 253.121,470.032 C 252.004,463.249 253.071,451.68 259.85,450.536 Z" class="st20" id="path7391" sodipodi:nodetypes="ccccc"/>
    <svg:path style="display:inline;fill:none;stroke:#b3b3b3;stroke-width:1.29999983;stroke-miterlimit:4;stroke-dasharray:none" d="M 526.065,503.352 C 515.208,504.067 500.738,494.532 500.023,483.676 C 499.297,472.661 511.737,460.317 522.752,459.592 C 533.609,458.877 548.079,468.412 548.794,479.268 C 549.52,490.283 537.08,502.627 526.065,503.352 Z" id="path7393" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
    <svg:path id="path9222-3" style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 549.048,483.92 C 589.096,483.618 639.217,446.836 663.654,430.681 C 676.663,352.064 522.885,295.117 508.3,214.2" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/>
  </svg:g>
</svg>


path: resources/vector/outfit/boot latex.svg


path: resources/vector/outfit/boot wide.svg


path: resources/vector/outfit/chastity male fore 0.svg


path: resources/vector/outfit/chastity male fore 1.svg


path: resources/vector/outfit/chastity male fore 2.svg


path: resources/vector/outfit/chastity male fore 3.svg


path: resources/vector/outfit/chastity male fore 4.svg


path: resources/vector/outfit/chastity male fore 5.svg


path: resources/vector/outfit/chastity male fore 6.svg


path: resources/vector/outfit/dildo gag.svg


path: resources/vector/outfit/extreme heel wide latex.svg


path: resources/vector/outfit/flat latex.svg


path: resources/vector/outfit/head latex.svg


path: resources/vector/outfit/heavy gold.svg


path: resources/vector/outfit/heel latex.svg


path: resources/vector/outfit/neck corset.svg


path: resources/vector/outfit/tight steel.svg


code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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" version="1.1" x="0px" y="0px" viewBox="0 0 1000 1000" style="enable-background:new 0 0 1000 1000;" xml:space="preserve" id="svg4356" sodipodi:docname="vector source.svg" inkscape:version="0.91 r13725">
  <metadata id="metadata4362">
    <rdf:RDF>
      <cc:Work rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
        <dc:title/>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <defs id="defs4360"/>
  <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1280" inkscape:window-height="952" id="namedview4358" showgrid="false" inkscape:zoom="4.808326" inkscape:cx="531.76051" inkscape:cy="751.71421" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="Boob_Large_3_" inkscape:object-nodes="true" inkscape:object-paths="false" inkscape:snap-smooth-nodes="true" inkscape:snap-object-midpoints="true"/>
  <style type="text/css" id="style3680">
	.st0{fill:#FFFFFF;}
	.st1{fill:#76C043;}
	.st2{fill:#2680BC;}
	.st3{fill:#F6E0E8;}
	.st4{fill:#515351;}
	.st5{fill:#F4F1A3;}
	.st6{fill:#8E4F21;}
	.st7{fill:#BC2027;}
	.st8{fill:#60BB46;}
	.st9{fill:#4686C6;}
	.st10{fill:#D28DBD;}
	.st11{fill:#3F403F;}
	.st12{fill:#010101;}
	.st13{fill:#8F8F8E;}
	.st14{fill:#515251;}
	.st15{fill:#4F6AB2;}
	.st16{fill:#3E65B0;}
	.st17{fill:#15406D;}
	.st18{fill:#65AD45;}
	.st19{fill:#787878;}
	.st20{fill:#D76B93;}
	.st21{fill:#4DB748;}
	.st22{opacity:0.24;fill:#BF2126;enable-background:new    ;}
	.st23{fill:#070505;}
	.st24{fill:#BF2126;}
</style>
  <svg:g inkscape:groupmode="layer" id="Torso_Hourglass_straps" inkscape:label="Torso_Hourglass_straps" style="display:inline">
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 500.97796,204.16551 c -0.71264,4.69149 3.72511,8.09539 9.22204,11.23449 12.56584,-0.1687 25.13169,-3.25605 37.69753,-9.69857" id="path9218" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/>
    <svg:path id="path9222" style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-opacity:1" d="m 495.8,467.5 -14.5431,-61.0527 4.91522,-55.28426 5.08461,-71.0825 L 510.2,215.4 530.35082,279.04329 523.449,317.775 508.76009,353.35994 481.2569,406.4473 471.9861,352.02373 461.91384,309.87756 468.81988,275.6 510.2,215.4" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccccccc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 463.2324,352.85095 8.7537,-0.82722 14.18602,-0.86069 22.58797,2.1969 37.46362,7.77538" id="path9224" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 460.59329,375.71105 c 8.26177,10.3193 15.11821,15.52324 20.66361,30.73625 14.56337,-16.56115 48.05529,-16.49869 68.44366,-26.50672" id="path9226" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/>
    <svg:path id="path4809" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 587.45053,268.9835 -27.76453,10.0025 -29.33518,0.0573 -39.09409,1.03724 -22.43685,-4.48053 -8.85992,-2.64861" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccc"/>
  </svg:g>
</svg>


code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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" version="1.1" x="0px" y="0px" viewBox="0 0 1000 1000" style="enable-background:new 0 0 1000 1000;" xml:space="preserve" id="svg4356" sodipodi:docname="vector source.svg" inkscape:version="0.91 r13725">
  <metadata id="metadata4362">
    <rdf:RDF>
      <cc:Work rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
        <dc:title/>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <defs id="defs4360"/>
  <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1280" inkscape:window-height="952" id="namedview4358" showgrid="false" inkscape:zoom="4.808326" inkscape:cx="531.76051" inkscape:cy="751.71421" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="Boob_Large_3_" inkscape:object-nodes="true" inkscape:object-paths="false" inkscape:snap-smooth-nodes="true" inkscape:snap-object-midpoints="true"/>
  <style type="text/css" id="style3680">
	.st0{fill:#FFFFFF;}
	.st1{fill:#76C043;}
	.st2{fill:#2680BC;}
	.st3{fill:#F6E0E8;}
	.st4{fill:#515351;}
	.st5{fill:#F4F1A3;}
	.st6{fill:#8E4F21;}
	.st7{fill:#BC2027;}
	.st8{fill:#60BB46;}
	.st9{fill:#4686C6;}
	.st10{fill:#D28DBD;}
	.st11{fill:#3F403F;}
	.st12{fill:#010101;}
	.st13{fill:#8F8F8E;}
	.st14{fill:#515251;}
	.st15{fill:#4F6AB2;}
	.st16{fill:#3E65B0;}
	.st17{fill:#15406D;}
	.st18{fill:#65AD45;}
	.st19{fill:#787878;}
	.st20{fill:#D76B93;}
	.st21{fill:#4DB748;}
	.st22{opacity:0.24;fill:#BF2126;enable-background:new    ;}
	.st23{fill:#070505;}
	.st24{fill:#BF2126;}
</style>
  <svg:g inkscape:groupmode="layer" id="Torso_Normal_straps" inkscape:label="Torso_Normal_straps" style="display:inline">
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 500.903,204.256 C 500.191,208.948 504.628,212.352 510.125,215.491 C 522.07,215.33 533.649,211.074 545.594,204.95" id="path9218" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/>
    <svg:path id="path9222" style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-opacity:1" d="M 492.779,466.2 L 479.154,404.326 L 481.969,348.317 L 491.442,278.56 L 510.125,215.491 L 531.396,274.432 L 535.475,313.426 L 525.004,352.471 L 479.154,404.326 L 467.783,349.178 L 461.718,308.021 L 469.006,274.079 L 510.125,215.491" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccccccc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 459.029,350.005 L 467.783,349.178 L 481.969,348.317 L 525.004,352.471 L 562.468,360.247" id="path9224" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 458.065,372.805 C 466.525,383.372 473.476,388.748 479.154,404.326 C 495.782,385.418 536.776,393.898 560.054,382.472" id="path9226" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/>
    <svg:path id="path4809" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 587.622,264.803 L 560.344,274.43 L 531.396,274.432 L 491.442,278.56 L 469.006,274.079 L 460.146,271.43" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccc"/>
  </svg:g>
</svg>


code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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" version="1.1" x="0px" y="0px" viewBox="0 0 1000 1000" style="enable-background:new 0 0 1000 1000;" xml:space="preserve" id="svg4356" sodipodi:docname="vector source.svg" inkscape:version="0.91 r13725">
  <metadata id="metadata4362">
    <rdf:RDF>
      <cc:Work rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
        <dc:title/>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <defs id="defs4360"/>
  <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1280" inkscape:window-height="952" id="namedview4358" showgrid="false" inkscape:zoom="4.808326" inkscape:cx="531.76051" inkscape:cy="751.71421" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="Boob_Large_3_" inkscape:object-nodes="true" inkscape:object-paths="false" inkscape:snap-smooth-nodes="true" inkscape:snap-object-midpoints="true"/>
  <style type="text/css" id="style3680">
	.st0{fill:#FFFFFF;}
	.st1{fill:#76C043;}
	.st2{fill:#2680BC;}
	.st3{fill:#F6E0E8;}
	.st4{fill:#515351;}
	.st5{fill:#F4F1A3;}
	.st6{fill:#8E4F21;}
	.st7{fill:#BC2027;}
	.st8{fill:#60BB46;}
	.st9{fill:#4686C6;}
	.st10{fill:#D28DBD;}
	.st11{fill:#3F403F;}
	.st12{fill:#010101;}
	.st13{fill:#8F8F8E;}
	.st14{fill:#515251;}
	.st15{fill:#4F6AB2;}
	.st16{fill:#3E65B0;}
	.st17{fill:#15406D;}
	.st18{fill:#65AD45;}
	.st19{fill:#787878;}
	.st20{fill:#D76B93;}
	.st21{fill:#4DB748;}
	.st22{opacity:0.24;fill:#BF2126;enable-background:new    ;}
	.st23{fill:#070505;}
	.st24{fill:#BF2126;}
</style>
  <svg:g inkscape:groupmode="layer" id="Torso_Unnatural_straps" inkscape:label="Torso_Unnatural_straps" style="display:inline">
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 501.152,204.07 C 500.44,208.762 504.877,212.166 510.374,215.305 C 523.664,215.126 537.25,213.091 550.54,206.278" id="path9218" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/>
    <svg:path id="path9222" style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-opacity:1" d="M 496.678,465.98 L 482.188,407.3 L 491.521,353.918 L 491.181,281.745 L 510.374,215.305 L 528.877,283.779 L 512.809,320.263 L 498.229,354.208 L 482.188,407.3 L 477.335,354.779 L 462.265,311.869 L 468.744,277.264 L 510.374,215.305" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccccccc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 468.581,355.606 L 477.335,354.779 L 491.521,353.918 L 498.229,354.208 L 535.693,361.984" id="path9224" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
    <svg:path style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 465.026,377.931 C 472.614,387.409 477.095,393.328 482.188,407.3 C 495.417,392.256 523.809,387.614 542.329,378.524" id="path9226" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc"/>
    <svg:path id="path4809" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 586.895,273.468 L 558.608,283.791 L 528.877,283.779 L 491.181,281.745 L 468.744,277.264 L 459.884,274.615" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccc"/>
  </svg:g>
</svg>


code:
#!/bin/bash
if [ ! -d ".git" ]; then
	#not running in git repo, so can't use git commands :-)
	echo "No .git repo found - skipping sanity checks"
	exit 0
fi

WARNING='\033[93m'
WARNING='\033[93m'
ENDC='\033[0m'

myprint() {
	while read data; do
		echo -n -e "[$1]$WARNING"
		echo "$data"
	done
}

GREP="git grep -n --color"
# Check for missing right angle bracket: <</if>
$GREP "<</[^>]*>[^>]" -- 'src/*'  | myprint "MissingClosingAngleBracket"
$GREP "<<[^>()]*>[^()<>"$'\r]*\r'"\?$" -- 'src/*' | myprint "MissingClosingAngleBracket"
# Check for missing left angle bracket: </if>>
$GREP "\([^<]\|^\)</\?\(if\|else\|case\|set\|print\|elseif\)" -- 'src/*' | myprint "MissingOpeningAngleBracket2"
# Check for accidental assignment.  e.g.:   <<if $foo = "hello">>
$GREP "<<[ ]*if[^>=]*[^><\!=]=[^=][^>]*>>" -- 'src/*' | myprint "AccidentalAssignmentInIf"
# Check for accidental assignment.  e.g.:   <<elseif $foo = "hello">>
$GREP "<<[ ]*elseif[^>=]*[^><\!=]=[^=][^>]*>>" -- 'src/*' | myprint "AccidentalAssignmentInElseIf"
# Check for missing ".  e.g.:   <<if $foo == "hello>>
$GREP "<<[^\"<>]*\"[^\"<>]*>>" -- 'src/*' | myprint "MissingSpeechMark"
# Check for missing ".  e.g.:   <<if $foo = "hello)
$GREP "<<[^\"<>]*\([^\"<>]*\"[^><\"]*\"\| [<>] \)*\"\([^\"<>]*\"[^><\"]*\"\| [<>] \)*\([^\"<>]\| [<>] \)*>>" -- 'src/*' | myprint "MissingSpeechMark2"
# Check for colors like: @@color:red   - should be @@.red
$GREP -e "@@color:" --and --not -e  "@@color:rgb([0-9 ]\+,[0-9 ]\+,[0-9 ]\+)" -- "src/*" | myprint "UseCssColors"
# Check for missing $ in activeSlave or PC
$GREP "<<[ ]*[^\$><_\[]*\(activeSlave\|PC\)[.]"  -- "src/*" | myprint "MissingDollar"
# Check for closing bracket without opening bracket.  e.g.:  <<if foo)>>      (but  <<case "foo")>>   is valid, so ignore those
$GREP -e "<<[ a-zA-Z]\+\([^()<>]\|[^()<>][<>][^()<>]\)*)" --and --not -e "<< *case"  -- "src/*" | myprint "MissingOpeningBracket"
# Check for opening bracket without closing bracket.  e.g.:  <<if (foo>>
$GREP -e "<<[ a-zA-Z]\([^<>]\|[^<>][<>][^<>]\)\+(\([^()<>]\|[^<>()][<>][^<>()]\|([^<>()]*])\)*>>" -- "src/*" | myprint "MissingClosingBracket"
# Check for two closing brackets but one opening bracket.  e.g.:  <<if (foo))>>
$GREP -e "<<[ a-zA-Z]\+[^()<>]*([^()]*)[^()]*)[^()<>]*>>"  -- "src/*" | myprint "MissingOpeningBracket2"
# Check for one closing bracket but two opening brackets.  e.g.:  <<if ((foo)>>
$GREP -e "<<[ a-zA-Z]\+[^()<>]*([^()]*([^()]*)[^()<>]*>>"  -- "src/*" | myprint "MissingClosingBracket2"
$GREP -e "<<.*[(][^<>)]*[(][^<>)]*)\?[^<>)]*>>" -- "src/*" | myprint "MissingClosingBracket3"
# Check for missing >>.  e.g.:   <<if $foo
$GREP "<<[^<>]*[^,\"\[{"$'\r]\r'"\?$" -- 'src/*' | myprint "MissingClosingAngleBrackets"
# Check for too many >>>.  e.g.: <</if>>>
$GREP "<<[^<>]*[<>]\?[^<>]*>>>" -- "src/*.tw" | myprint "TooManyAngleBrackets"
# Check for too many <<<.  e.g.: <<</if>>
$GREP "<<<[^<>]*[<>]\?[^<>]*>>" -- "src/*.tw" | myprint "TooManyAngleBrackets"
# Check for wrong capitalization on 'activeslave' and other common typos
$GREP -e "\$act" --and --not -e "\$\(activeSlave\|activeArcology\|activeStandard\|activeOrgan\|activeLimbs\|setBellySize\|SetbellySize\|setbellySize\|bellypreg\|bellyimplant\|bellyfluid\)" -- "src/*" | myprint "WrongCapitilization"
$GREP  "\(csae\|[a-z] She \|attepmts\|youreslf\|advnaces\)" -- 'src/*' | myprint "SpellCheck"
$GREP "\$slave\[" -- 'src/*' | myprint "ShouldBeSlaves"
# Check for strange spaces e.g.  $slaves[$i]. lips
$GREP "\$slaves\[\$i\]\. " -- 'src/*' | myprint "MissingPropertyAfterSlaves"
# Check using refreshmentType instead of refreshment
$GREP "\$PC.refreshmentType[^ =]" -- 'src/*' | myprint "ShouldBeRefreshment"
# Check, e.g., <<//if>>
$GREP "<</[a-zA-Z]*[^a-zA-Z<>]\+[a-zA-Z]*>>" -- 'src/*' | myprint "DoubleSlash"
# Check, e.g.  <<else $foo==4
$GREP "<<else >\?[^>]" -- 'src/*' | myprint "ShouldBeElseIf"
# Check, e.g., =to
$GREP "=to" -- 'src/*' | myprint "EqualAndTo"
# Check doing  $slaves.foo instead of $slaves[i].foo
$GREP -e "[$]slaves[.]"  --and --not -e '[$]slaves[.]\(length\|random\|map\|filter\|deleteAt\|push\|find\|includes\|delete\|forEach\)' -- 'src/*' | myprint "MissingSlavesIndex"
# Try to check for accidentally mixing slaves[] and activeSlave.  This can have a lot of false matches, but has caught a lot of bugs so it's worth the pain
$GREP -e "activeSlave[.]" --and -e "slaves\[..\?\][.]" --and --not -e '[.]ID' --and --not -e 'slaves\[..\?\][.]\(slaveName\|slaveSurname\|actualAge\|relation\|assignment\|age\|devotion\|trust\|vagina\|mother\|father\)' -- 'src/*' | myprint "MaybeAccidentalMixingOfSlavesAndActiveSlave"
# Check, e.g.  <<set foo == 4>>
$GREP "<<set[^{>=]*==" -- 'src/*' | myprint "DoubleEqualsInSet"
# Check for, e.g   <<if slaves[foo]>>
$GREP "<<\([^>]\|[^>]>[^>]\)*[^$]slaves\[" -- 'src/*' | myprint "MissingDollar"
# Check for missing $ or _ in variable name:
$GREP -e "<<[a-zA-Z]\([^>\"]\|[^>]>[^>]\|\"[^\"]*\"\)* [a-zA-Z]\+ * =" -- src/*.tw | myprint "MissingDollar2"
# Check for missing command, e.g.  <<foo =
$GREP -e "<<[a-zA-Z]* = *" -- src/*.tw | myprint "BadCommand"
# Check for duplicate words, e.g. with with
$GREP -e  " \(\b[a-zA-Z][a-zA-Z]\+\) \1\b " --and --not -e " her her " --and --not -e " you you " --and --not -e " New New " --and --not -e " that that " --and --not -e " in in " --and --not -e " is is " -- 'src/*' | myprint "Duplicate words"
# Check for obsolete SugarCube macros
$GREP -E "<<display|<<click|<<.*\.contains" -- src/*.tw | myprint "ObsoleteMacro"
# Check for double articles
$GREP -E "\Wa an\W" -- src/*.tw | myprint "DoubleArticle"
# Check for incorrect articles
$GREP -i -E "\Wa (a|e|i|o|u)." -- src/*.tw | grep -i -vE "\Wa (un|eu|us|ut|on|ur|in)." | grep -i -vE "(&|<<s>>|UM)." | myprint "IncorrectArticle"
$GREP -i -E "\Wan (b|c|d|f|g|j|k|l|m|n|p|q|r|s|t|v|w|x|y|z)\w." -- src/*.tw | grep -i -vE "[A-Z]{3}" | myprint "IncorrectArticle"
# Check for $ sign mid-word
$GREP -i "\w$\w" -- src/*.tw | myprint "VarSignMidWord"

# Check that we do not have any variables that we use only once.   e.g.     $onlyUsedOnce
# Ignore  *Nationalities
(
cd src/
cat $(find . -name "*.tw" ) | tr -c '$a-zA-Z' '\n'  | sed -n '/^[$]/p' | grep -v "Nationalities" | sort | uniq -u | sed 's/^[$]/-e[$]/' | sed 's/$/\\\\W/' | xargs -r  git grep -n --color | myprint "OnlyUsedOnce"
cat $(find . -name "*.tw" ) | tr -c '.$a-zA-Z[]_' '\n' | sed -n -e 's/^[$]\(PC\|activeSlave\|\(slaves\|tanks\)\[[^]]*\]*\)[.]\([a-zA-Z]*\).*$/[.]\3/p' | sort | uniq -u |sed 's/^\(.*\)$/-e\1\\\\\b/'  | xargs -r git grep -n --color | myprint "SlaveAttributeUsedOnce"
)

# Check that all the tags are properly opened and closed
git ls-files "src/*.tw" | xargs -d '\n' ./devTools/check.py

path: sanityCheck


code:
:: art widgets [nobr widget]

/%
Call as <<AssistantArt>>
Displays assistant images. Currently passage-based.
$args[0]: Image size/center.
	3: Large, right. Example: description.
	2: Medium, right. Example: random events.
%/
<<widget "AssistantArt">>

<<if $imageChoice == 0>> /* RENDERED IMAGES BY SHOKUSHU */

<<switch $assistantAppearance>>
<<case "monstergirl">>
	<<set _fileName = "'resources/renders/assistant monstergirl.png' ">>
<<case "shemale">>
	<<set _fileName = "'resources/renders/assistant shemale.png' ">>
<<case "amazon">>
	<<set _fileName = "'resources/renders/assistant amazon.png' ">>
<<case "businesswoman">>
	<<set _fileName = "'resources/renders/assistant businesswoman.png' ">>
<<case "goddess">>
	<<set _fileName = "'resources/renders/assistant goddess.png' ">>
<<case "schoolgirl">>
	<<set _fileName = "'resources/renders/assistant schoolgirl.png' ">>
<<default>>
	<<set _fileName = "'resources/renders/assistant default.png' ">>
<</switch>>
<<if $args[1] == 3>>
	<<print "">>
<<else>>
	<<print "">>
<</if>>

<</if>> /* CLOSES IMAGE CHOICE */

<</widget>>

/%
Call as <<SlaveArt>>
Displays slave images. Currently passage-based.
$args[0]: Slave.
$args[1]: Image size/center.
	3: Large, right. Example: long slave description.
	2: Medium, right. Example: random events.
	1: Small, left. Example: lists.
	0: Tiny, left. Example: facilities
$args[2]: icon UI Display for vector art, 1 for on.
%/
<<widget "SlaveArt">>

<<if ndef $args[0].customImage>><<set $args[0].customImage = 0>><</if>>
<<if $args[0].customImage != 0>>
	<<set _fileFormat = ($args[0].customImageFormat || "png"),
		_fileName = "'resources/" + $args[0].customImage + "." + _fileFormat + "' ",
		_fileTypeStart = (_fileFormat === "webm" ? "video loop autoplay" : "img"),
		_fileTypeEnd = (_fileFormat === "webm" ? "</video>" : "")>>
	<<if $args[1] == 3>>
		<<print "<" + _fileTypeStart + " src=" + _fileName + "style='float:right; border:3px hidden'>" + _fileTypeEnd>>
	<<elseif $args[1] == 2>>
		<<print "<" + _fileTypeStart + " src=" + _fileName + "style='float:right; border:3px hidden' width='300' height='300'>" + _fileTypeEnd>>
	<<elseif $args[1] == 1>>
		<<print "<" + _fileTypeStart + " src=" + _fileName + "style='float:left; border:3px hidden' width='150' height='150'>" + _fileTypeEnd>>
	<<else>>
		<<print "<" + _fileTypeStart + " src=" + _fileName + "style='float:left; border:3px hidden' width='120' height='120'>" + _fileTypeEnd>>
	<</if>>

<<elseif $imageChoice == 1>> /* VECTOR ART BY NOX*/

<<if ndef $seeVectorArtHighlights>>
	<<set $seeVectorArtHighlights = 1>>
<</if>>
<<set _artSlave to $args[0] >>
<<silently>>
/* prepare HTML colour codes for slave display */
/* note: latex clothing is mostly emulated by rubber colour for skin (and shoes) */
/* TODO: consistently use american "color" instead of "colour" for all identifiers */
<<include Art_Vector_Set_Colour_Outfit_>>
<<include Art_Vector_Set_Colour_Skin_>>
<<include Art_Vector_Set_Colour_Hair_>>
<<include Art_Vector_Set_Colour_Shoe_>>
<</silently>>
<<include Art_Vector_Generate_Stylesheet_>>
/*
each passage adds one layer of vector art
vector art added later is drawn over previously added art
(what is listed on the bottom in the code appears on the top of the image)
*/
<<include Art_Vector_Arm_>>
<<include Art_Vector_Hair_Back_>>
<<include Art_Vector_Butt_>>
<<include Art_Vector_Leg_>>
<<include Art_Vector_Feet_>> /* includes shoes */
<<include Art_Vector_Torso_>>
<<include Art_Vector_Pussy_>>
<<include Art_Vector_Pubic_Hair_>>
<<include Art_Vector_Pussy_Piercings_>>
<<include Art_Vector_Chastity_Belt_>>
<<include Art_Vector_Torso_Outfit_>> /* note: clothing covers chastity belts */
<<include Art_Vector_Belly_>> /* includes navel piercing and belly-related clothing options */
<<include Art_Vector_Balls_>>
<<include Art_Vector_Penis_>> /* for dicks behind boobs */
<<include Art_Vector_Boob_>> /* includes areolae and piercings */
<<include Art_Vector_Penis_>> /* for dicks in front of boobs */
<<include Art_Vector_Boob_Addons_>> /* piercings always appear in front of boobs AND dick */
<<include Art_Vector_Clavicle>>
<<include Art_Vector_Collar_>>
<<include Art_Vector_Head_>> /* includes glasses */
<<include Art_Vector_Hair_Fore_>>

<<elseif $imageChoice == 2>> /* VECTOR ART BY NOX - Pregmod Legacy Version */
<<SVGFilters>>

/* 000-250-006 */
/*
 */
/* 000-250-006 */

<<set _folderLoc = "'resources/vector">>

<<if $args[2] == 1>>
	<<print "">>
<</if>>

/% Set skin colour %/
<<set _skinFilter = "filter: url(#skin-" + _.kebabCase($args[0].skin) + ");">>
/% Set hair colour %/
<<set _hairFilter = "filter: url(#hair-" + _.kebabCase($args[0].hColor) + ");">>
<<set _pubesFilter = "filter: url(#hair-" + _.kebabCase($args[0].pubicHColor) + ");">>
<<set _axillaryFilter = "filter: url(#hair-" + _.kebabCase($args[0].underArmHColor) + ");">>
<<if $args[0].customHairVector>>
	<<set _hairStyle = $args[0].customHairVector>>
<<else>>
	<<set _hairStyle = ["neat", "eary", "ponytail", "messy"].includes($args[0].hStyle) ? $args[0].hStyle : "neat">>
<</if>>

<<set _imgSkinLoc = _folderLoc + "/body/white">>

/% Shoulder width and arm or no arm %/
<<if $args[0].amp != 1>>
<<if $args[0].devotion > 50>>
	<<set _leftArmType = "high">>
	<<set _rightArmType = "high">>
<<elseif $args[0].trust >= -20>>
	<<if $args[0].devotion < -20>>
		<<set _leftArmType = "rebel">>
		<<set _rightArmType = "low">>
	<<elseif $args[0].devotion <= 20>>
		<<set _leftArmType = "low">>
		<<set _rightArmType = "low">>
	<<else>>
		<<set _leftArmType = "mid">>
		<<set _rightArmType = "high">>
	<</if>>
<<else>>
	<<set _leftArmType = "mid">>
	<<set _rightArmType = "mid">>
<</if>>
<<if $args[0].fuckdoll == 0 && $args[0].clothes != "restrictive latex" && $args[0].clothes != "a latex catsuit">>
	<<print "">>
	<<print "">>
<<else>>
	<<if $args[0].fuckdoll != 0>>
		<<set _leftArmType = "mid">>
		<<set _rightArmType = "mid">>
	<</if>>
	<<print "">>
	<<print "">>
<</if>>
<</if>>

/% Hair Aft %/
<<if $args[0].hStyle != "shaved" && $args[0].fuckdoll == 0>>
	<<= "">>
<</if>>

/% Butt %/
<<if $args[0].amp != 1>>
<<if $args[0].butt > 6>>
	<<set _buttSize = 3>>
<<elseif $args[0].butt > 4>>
	<<set _buttSize = 2>>
<<elseif $args[0].butt > 2>>
	<<set _buttSize = 1>>
<<else>>
	<<set _buttSize = 0>>
<</if>>
<<if $args[0].fuckdoll != 0 || $args[0].clothes == "restrictive latex" || $args[0].clothes == "a latex catsuit">>
	<<set _buttSize = _buttSize + " latex">>
	<<print "">>
<<else>>
	<<print "">>
<</if>>
<</if>>

/% Leg + 1 size up when chubby or fat%/
<<if $args[0].hips < 0>>
	<<if $args[0].weight > 95>>/%Chubby%/
		<<set _legSize = "normal">>
	<<else>>
		<<set _legSize = "narrow">>
	<</if>>
<<elseif $args[0].hips == 0>>
	<<if $args[0].weight > 95>>/%Chubby%/
		<<set _legSize = "wide">>
	<<else>>
		<<set _legSize = "normal">>
	<</if>>
<<elseif $args[0].hips > 0>>
	<<set _legSize = "wide">>
<</if>>
<<if $args[0].amp == 1>>
	<<set _legSize = "stump " + _legSize>>
<</if>>
<<if ($args[0].fuckdoll != 0 || $args[0].clothes == "restrictive latex" || $args[0].clothes == "a latex catsuit") && $args[0].amp != 1>>
	<<set _legSize = _legSize + " latex">>
	<<print "">>
<<else>>
	<<print "">>
<</if>>

/% Feet %/
<<if $args[0].amp != 1>>
<<if $args[0].shoes == "heels">>
	<<set _shoesType = "heel">>
<<elseif $args[0].shoes == "extreme heels">>
	<<if $args[0].weight > 95>>/%Chubby%/
		<<set _shoesType = "extreme heel wide">>
	<<else>>
		<<set _shoesType = "extreme heel">>
	<</if>>
<<elseif $args[0].shoes == "boots">>
	<<if $args[0].weight > 95>>/%Chubby%/
		<<set _shoesType = "boot wide">>
	<<else>>
		<<set _shoesType = "boot">>
	<</if>>
<<elseif $args[0].shoes == "flats">>
	<<set _shoesType = "flat">>
<<else>>
	<<print "">>
<</if>>
<<if $args[0].shoes == "extreme heels" or $args[0].shoes == "boots">>
	<<if $args[0].fuckdoll != 0 || $args[0].clothes == "restrictive latex" || $args[0].clothes == "a latex catsuit">>
		<<set _shoesType = _shoesType + " latex">>
	<</if>>
	<<print "">>
<</if>>
<<if $args[0].shoes == "heels" or $args[0].shoes == "flats">>
	<<if $args[0].fuckdoll != 0 || $args[0].clothes == "restrictive latex" || $args[0].clothes == "a latex catsuit">>
		<<set _shoesType = _shoesType + " latex">>
		<<print "">>
	<<else>>
		<<print "">>
	<</if>>
<</if>>
<</if>>

/% Torso %/
<<if $args[0].waist < -40>>/*Unnatural*/
	<<if $args[0].weight > 30>>/%Chubby%/
		<<set _torsoSize = "hourglass">>
	<<else>>
		<<set _torsoSize = "unnatural">>
	<</if>>
<<elseif $args[0].waist <= 10>>/%Hour glass%/
	<<if $args[0].weight > 30>>/%Chubby%/
		<<set _torsoSize = "normal">>
	<<else>>
		<<set _torsoSize = "hourglass">>
	<</if>>
<<else>>/*Normal*/
	<<set _torsoSize = "normal">>
<</if>>
<<print "">>
<<if $args[0].fuckdoll != 0 || $args[0].clothes == "restrictive latex" || $args[0].clothes == "a latex catsuit">>
	<<set _torsoOutfit = " latex">>
<<elseif $args[0].clothes == "uncomfortable straps">>
	<<set _torsoOutfit = " straps">>
<</if>>
<<if _torsoOutfit>>
	<<print "">>
<</if>>

/*Navel Piercing*/
<<if $args[0].navelPiercing >= 1>>
	<<print "">>
<</if>>
<<if $args[0].navelPiercing == 2>>
	<<print "">>
<</if>>

/% Vagina %/
<<if $args[0].vagina >= 0>>
	<<print "">>
	<<if $args[0].clitPiercing == 1>>
		<<print "">>
	<<elseif $args[0].clitPiercing == 2>>
		<<print "">>
	<<elseif $args[0].clitPiercing == 3>>
		<<print "">>
	<</if>>
	<<if $args[0].vaginaPiercing == 1>>
		<<print "">>
	<<elseif $args[0].vaginaPiercing == 2>>
		<<print "">>
	<</if>>
<</if>>

/% Collar %/
<<switch $args[0].collar>>
<<case "bowtie">>
<<case "ancient Egyptian">>
<<case "nice retirement counter" "cruel retirement counter" "leather with cowbell" "pretty jewelry" "heavy gold" "satin choker" "stylish leather" "neck corset" "shock punishment" "tight steel" "uncomfortable leather" "dildo gag">>
	<<print "">>
<</switch>>

/% Head base image %/
<<if $args[0].fuckdoll != 0 || $args[0].clothes == "restrictive latex" || $args[0].clothes == "a latex catsuit">>
	<<print "">>
<<else>>
	<<print "">>
<</if>>

/% Glasses %/
<<if $args[0].eyewear == "corrective glasses" or $args[0].eyewear == "glasses" or $args[0].eyewear == "blurring glasses">>
	<<print "">>
<</if>>

/% Chastity belt or Pubic hair %/
<<if $args[0].dickAccessory == "chastity" || $args[0].dickAccessory == "anal chastity" || $args[0].dickAccessory == "combined chastity" || $args[0].vaginalAccessory == "chastity belt" || $args[0].vaginalAccessory == "anal chastity" || $args[0].vaginalAccessory == "combined chastity">>
	<<if $args[0].dickAccessory == "chastity" || $args[0].dickAccessory == "combined chastity">>
		<<print "">>
	<</if>>
	<<if $args[0].vaginalAccessory == "chastity belt" || $args[0].vaginalAccessory == "combined chastity">>
		<<print "">>
	<</if>>
	<<print "">>
<<else>>
	<<if $args[0].pubicHStyle != "waxed">>
		<<set _pubicHStyle = ($args[0].pubicHStyle == "in a strip" ? "strip" : $args[0].pubicHStyle)>>
		<<= "">>
	<</if>>
<</if>>

/%if pregnant%/
<<if $args[0].belly >= 5000>>
	<<print "">>
	<<if $args[0].navelPiercing >= 1>>/*Navel Piercing*/
		<<print "">>
	<</if>>
	<<if $args[0].navelPiercing == 2>>
		<<print "">>
	<</if>>
<</if>>

/% Boob %/
<<if $args[0].boobs < 250>>
	<<set _boobSize = 0>>
<<elseif $args[0].boobs < 500>>
	<<set _boobSize = 1>>
<<elseif $args[0].boobs < 800>>
	<<set _boobSize = 2>>
<<elseif $args[0].boobs < 1600>>
	<<set _boobSize = 3>>
<<elseif $args[0].boobs < 3200>>
	<<set _boobSize = 4>>
<<elseif $args[0].boobs < 6400>>
	<<set _boobSize = 5>>
<<elseif $args[0].boobs < 12000>>
	<<set _boobSize = 6>>
<<else>>
	<<set _boobSize = 7>>
<</if>>

/% Scrotum %/
<<if $args[0].scrotum > 0>>
	<<if $args[0].scrotum >= 6>>
		<<set _ballSize = 4>>
	<<elseif $args[0].scrotum >= 4>>
		<<set _ballSize = 3>>
	<<elseif $args[0].scrotum >= 3>>
		<<set _ballSize = 2>>
	<<elseif $args[0].scrotum >= 2>>
		<<set _ballSize = 1>>
	<<else>>
		<<set _ballSize = 0>>
	<</if>>
<</if>>

/% Penis %/
<<if $args[0].dick > 0>>
	<<if $args[0].dick >= 8>>
		<<set _penisSize = 6>>
	<<elseif $args[0].dick >= 7>>
		<<set _penisSize = 5>>
	<<elseif $args[0].dick >= 6>>
		<<set _penisSize = 4>>
	<<elseif $args[0].dick >= 5>>
		<<set _penisSize = 3>>
	<<elseif $args[0].dick >= 4>>
		<<set _penisSize = 2>>
	<<elseif $args[0].dick >= 2>>
		<<set _penisSize = 1>>
	<<else>>
		<<set _penisSize = 0>>
	<</if>>
<</if>>

/% Boob %/
<<set _needBoobs = 1>>
<<if $args[0].dick > 0>>
<<if canAchieveErection($args[0])>>
<<if _boobSize < 6>>
	<<if $args[0].fuckdoll != 0 || $args[0].clothes == "restrictive latex" || $args[0].clothes == "a latex catsuit">>
		/* normal case: outfit hides boobs */
		<<set _boobOutfit = " latex" >>
	<</if>>
	<<if _boobOutfit >>
		<<print "">>
		<<if $args[0].lactation > 0>>
			<<print "">>
		<</if>>
	<<else>>
		<<print "">>
		<<print "">>
	<</if>>
	/* special case: straps are actually dawn over the boobs */
	<<if $args[0].clothes == "uncomfortable straps">>
		<<set _boobOutfit = " straps" >>
		<<print "">>
	<</if>>
	<<set _needBoobs = 0>>
<</if>>
<</if>>
<</if>>
<<if $args[0].vagina > 0>>
	<<if $args[0].dick > 0>>

		<<if $args[0].scrotum > 0>>
			<<print "">>
		<</if>>
		<<if canAchieveErection($args[0])>>
			<<print "">>
		<<else>>
			<<print "">>
			<<if $args[0].dickAccessory == "chastity" || $args[0].dickAccessory == "combined chastity">>
				<<print "">>
			<</if>>
		<</if>>

	<</if>>
<<else>>
	<<if $args[0].dick > 0>>

		<<if $args[0].scrotum > 0>>
			<<print "">>
		<</if>>
		<<if canAchieveErection($args[0])>>
			<<print "">>
		<<else>>
			<<print "">>
			<<if $args[0].dickAccessory == "chastity" || $args[0].dickAccessory == "combined chastity">>
				<<print "">>
			<</if>>
		<</if>>

	<</if>>
<</if>>
<<if _needBoobs>>
	<<if $args[0].fuckdoll != 0 || $args[0].clothes == "restrictive latex" || $args[0].clothes == "a latex catsuit">>
		<<print "">>
		<<if $args[0].lactation > 0>><<print "">><</if>>
	<<else>>
		<<print "">>
		<<print "">>
	<</if>>
	/* special case: straps are actually dawn over the boobs */
	<<if $args[0].clothes == "uncomfortable straps">>
		<<set _boobOutfit = " straps" >>
		<<print "">>
	<</if>>
<</if>>

/% piercings %/
<<if $args[0].nipplesPiercing == 1>>
	<<print "">>
<<elseif $args[0].nipplesPiercing == 2>>
	<<print "">>
<</if>>
<<if $args[0].areolaePiercing == 1>>
	<<print "">>
<</if>>

/% clavicle %/
<<print "">>

/% Hair Foreground %/
<<if $args[0].hStyle != "shaved" && $args[0].fuckdoll == 0>>
	<<= "">>
<</if>>

<<else>> /* RENDERED IMAGES BY SHOKUSHU */

<<if $args[0].vagina > -1>>
	<<if $args[0].dick > 0>>
		<<if $args[0].balls > 0>>
			<<set _fileName = "futanari">>
		<<else>>
			<<set _fileName = "herm">>
		<</if>>
	<<else>>
		<<set _fileName = "female">>
	<</if>>
<<else>>
	<<if $args[0].balls > 0>>
		<<set _fileName = "shemale">>
	<<else>>
		<<set _fileName = "gelding">>
	<</if>>
<</if>>
<<if $args[0].belly > 1500>>
	<<set _fileName = "preg " + _fileName>>
<</if>>
<<if $args[0].boobs < 400>>
	<<set _fileName = _fileName + " small">>
<<elseif $args[0].boobs < 800>>
	<<set _fileName = _fileName + " big">>
<<elseif $args[0].boobs < 6000>>
	<<set _fileName = _fileName + " huge">>
<<else>>
	<<set _fileName = _fileName + " hyper">>
<</if>>
<<if $args[0].muscles > 30>>
	<<set _fileName = _fileName + " muscle">>
<<else>>
	<<set _fileName = _fileName + " soft">>
<</if>>
<<if $args[0].fuckdoll > 0>>
	<<set _fileName = _fileName + " rebellious">>
<<elseif $args[0].devotion <= 20>>
	<<if $args[0].trust < -20>>
		<<set _fileName = _fileName + " reluctant">>
	<<else>>
		<<set _fileName = _fileName + " rebellious">>
	<</if>>
<<elseif $args[0].fetish == "mindbroken">>
	<<set _fileName = _fileName + " reluctant">>
<<elseif $args[0].devotion <= 50 || $args[0].fetishKnown != 1 || ($seeMainFetishes == 0 && $args[1] < 2)>>
	<<set _fileName = _fileName + " obedient">>
<<else>>
	<<if $args[0].fetish == "none">>
		<<set _fileName = _fileName + " obedient">>
	<<else>>
		<<set _fileName = _fileName + " " + $args[0].fetish>>
	<</if>>
<</if>>

<<set _fileName = "'resources/renders/" + _fileName + ".png' ">>
<<if $args[1] == 3>>
	<<print "">>
<<elseif $args[1] == 2>>
	<<print "">>
<<elseif $args[1] == 1>>
	<<print "">>
<<else>>
	<<print "">>
<</if>>

<</if>> /* CLOSES IMAGE CHOICE */

<</widget>>


code:
:: Art_Vector_Arm_ [nobr]

/* Arms position switch courtesy of Nov-X */

<<if $args[0].amp != 1>>
	<<if $args[0].devotion > 50>>
		<<set _leftArmType = "High">>
		<<set _rightArmType = "High">>
	<<elseif $args[0].trust >= -20>>
		<<if $args[0].devotion < -20>>
			<<set _leftArmType = "Rebel">>
			<<set _rightArmType = "Low">>
		<<elseif $args[0].devotion <= 20>>
			<<set _leftArmType = "Low">>
			<<set _rightArmType = "Low">>
		<<else>>
			<<set _leftArmType = "Mid">>
			<<set _rightArmType = "High">>
		<</if>>
	<<else>>
		<<set _leftArmType = "Mid">>
		<<set _rightArmType = "Mid">>
	<</if>>

	<<set _art = "Art_Vector_Arm_Right_"+_rightArmType >>
	<<include _art>>
	<<set _art = "Art_Vector_Arm_Left_"+_leftArmType >>
	<<include _art>>

	/* shiny clothings */
	<<if $seeVectorArtHighlights == 1>>
		<<if _artSlave.fuckdoll != 0 || _artSlave.clothes == "restrictive latex" || _artSlave.clothes == "a latex catsuit">>
			/* only some arm positions have art (feel free to add more) */
			<<switch _leftArmType>>
			<<case "High">>
				<<include Art_Vector_Arm_Outfit_Shine_Left_High>>
			<<case "Mid">>
			<<include Art_Vector_Arm_Outfit_Shine_Left_Mid>>
			<<case "Low">>
				<<include Art_Vector_Arm_Outfit_Shine_Left_Low>>
			<<default>>
				/* no art for this arm position */
			<</switch>>
		<</if>>
	<</if>>
<</if>>


code:
:: Art_Vector_Balls_ [nobr]

<<if _artSlave.scrotum > 0 && _artSlave.balls > 0 >>
	<<if _artSlave.scrotum >= 6>>
		<<set _ballSize = 4>>
	<<elseif _artSlave.scrotum >= 4>>
		<<set _ballSize = 3>>
	<<elseif _artSlave.scrotum >= 3>>
		<<set _ballSize = 2>>
	<<elseif _artSlave.scrotum >= 2>>
		<<set _ballSize = 1>>
	<<else>>
		<<set _ballSize = 0>>
	<</if>>
  <<set _art = "Art_Vector_Balls_"+_ballSize>>
  <<include _art>>
<</if>>


code:
:: Art_Vector_Belly_ [nobr]

<<set _showNavelPiercings = $showBodyMods == 1 && _artSlave.clothes != "restrictive latex" && _artSlave.clothes != "a latex catsuit">>

<<if _artSlave.belly >= 5000>>
	<<include Art_Vector_Belly>>

	/* shiny clothings */
	<<if $seeVectorArtHighlights == 1>>
		<<if _artSlave.fuckdoll != 0 || _artSlave.clothes == "restrictive latex" || _artSlave.clothes == "a latex catsuit">>
			<<include Art_Vector_Belly_Outfit_Shine>>
		<</if>>
	<</if>>

	/* belly piercings */
	<<if _showNavelPiercings >>
		<<if _artSlave.navelPiercing >= 1>>
			<<include Art_Vector_Belly_Piercing>>
		<</if>>
		<<if _artSlave.navelPiercing == 2>>
			<<include Art_Vector_Belly_Piercing_Heavy>>
		<</if>>
	<</if>>
<<else>>

	/* flat midriff piercings */
	<<if _showNavelPiercings >>
		<<if _artSlave.navelPiercing >= 1>>
			<<include Art_Vector_Navel_Piercing>>
		<</if>>
		<<if _artSlave.navelPiercing == 2>>
			<<include Art_Vector_Navel_Piercing_Heavy>>
		<</if>>
	<</if>>
<</if>>


code:
:: Art_Vector_Boob_ [nobr]

/* BEWARE: _art_have_boobs and _art_scale_factor interfere with Art_Vector_Penis_ */
<<set _art_have_boobs to true>>

/* BEWARE: _art_boob_transform is also read by Art_Vector_Boob_Addons_ */

/*
Prepare SVG transform matrix for continous boob scaling.
This transform affects boobs, areolae and piercings.
The parameters were fit by points (300,1.0) and (15000,2.5).
See https://www.wolframalpha.com/input/?i=log+fit+%7B%7B300,1%7D,%7B15000,2.5%7D%7D .
Boobs start at 300cc as of "flesh description widgets".
Upper value was discussed at https://github.com/Free-Cities/Free-Cities/issues/950#issuecomment-321359466 .
*/
<<set _art_scale_factor = 0.383433*Math.log(0.0452403*_artSlave.boobs) >>
<<set _art_translation_x = -292.841*_art_scale_factor+292.349 >>
<<set _art_translation_y = -216.438*_art_scale_factor+216.274 >>
<<set _art_boob_transform = "matrix(" + _art_scale_factor +",0,0," + _art_scale_factor + "," + _art_translation_x + "," + _art_translation_y + ")">>
/*
_art_boob_transform is for internal program usage.
_art_transform will affect the display.
*/
<<set _art_transform = _art_boob_transform>>

<<if _artSlave.boobs < 300 >>
  /* boobs too small - draw areolae directly onto torso */
  <<set _art_scale_factor = 1 >>
  <<set _art_translation_x = 16 >> /* a little shift to the right is needed due to perspective */
  <<set _art_translation_y = 0 >>
  <<set _art_boob_transform = "matrix(" + _art_scale_factor +",0,0," + _art_scale_factor + "," + _art_translation_x + "," + _art_translation_y + ")">>
  <<set _art_transform = _art_boob_transform>>
<<else>>
  <<include Art_Vector_Boob>>
  /* shiny clothings */
  <<if $seeVectorArtHighlights == 1>>
    <<if _artSlave.fuckdoll != 0 || _artSlave.clothes == "a latex catsuit">>
      <<include Art_Vector_Boob_Outfit_Shine>>
    <</if>>
  <</if>>
<</if>>
<<include Art_Vector_Boob_Areola>>

/* set _art_transform to empty string so stray SVG groups in other passages are not affected */
<<set _art_transform = "">>


code:
:: Art_Vector_Boob_Addons_ [nobr]

/* BEWARE: _art_boob_transform is set by Art_Vector_Boob_ */

/* load _art_transform from _art_boob_transform */
<<set _art_transform = _art_boob_transform>>

/* this outfit is worn under the piercings */
<<if _artSlave.clothes == "uncomfortable straps">>
  <<include Art_Vector_Boob_Outfit_Straps>>
<</if>>

<<set _showNipplePiercings = $showBodyMods == 1 && _artSlave.clothes != "restrictive latex" && _artSlave.clothes != "a latex catsuit" >>

<<if _showNipplePiercings>>
  <<if _artSlave.nipplesPiercing == 1>>
    <<include Art_Vector_Boob_Piercing>>
  <<elseif _artSlave.nipplesPiercing == 2>>
    <<include Art_Vector_Boob_Piercing_Heavy>>
  <</if>>
  <<if _artSlave.areolaePiercing == 1>>
    <<include Art_Vector_Boob_Areola_Piercing>>
  <</if>>
<</if>>

/* set _art_transform to empty string so stray SVG groups in other passages are not affected */
<<set _art_transform = "">>


code:
:: Art_Vector_Butt_ [nobr]

/* BEWARE: _buttSize is also used in Art_Vector_Leg_ */

<<if _artSlave.amp != 1>>
  <<if _artSlave.butt > 6>>
    <<set _buttSize = 3>>
  <<elseif _artSlave.butt > 4>>
    <<set _buttSize = 2>>
  <<elseif _artSlave.butt > 2>>
    <<set _buttSize = 1>>
  <<else>>
    <<set _buttSize = 0>>
  <</if>>
  <<set _art = "Art_Vector_Butt_"+_buttSize >>
  <<include _art >>
<</if>>