<?xml version="1.0" encoding="utf-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<svg version="1.1" id="Vector_Icons" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
	 y="0px" width="16px" height="16px" viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
	.st0{fill:#FFFFFF;}
	.st1{opacity:0.25;}
	.st2{fill:#FAFAFA;}
	.st3{opacity:0.33;}
	.st4{fill:none;stroke:#474747;stroke-miterlimit:10;}
	.st5{opacity:0.42;}
	.st6{fill:#CAE3FF;}
	.st7{opacity:0.2;}
	.st8{opacity:0.03;}
	.st9{opacity:0.1;}
	.st10{opacity:0.15;}
	.st11{opacity:0.45;}
	.st12{fill:#FFE1B0;}
	.st13{fill:#B3DBFF;}
	.st14{fill:#FBDC7C;}
	.st15{fill:#FFDB43;}
	.st16{fill:#E79B00;}
	.st17{fill:#3883CE;}
	.st18{fill:none;stroke:#003399;stroke-width:1.375;stroke-miterlimit:10;}
	.st19{fill:#E8513D;}
	.st20{fill:#1E1E1E;}
	.st21{fill:#FFC36D;}
	.st22{fill:#9FCBFF;}
	.st23{fill:#E9F7FF;}
	.st24{fill:#62707C;}
	.st25{fill:#7A8896;}
	.st26{fill:#57BFFF;}
	.st27{fill:#E69D35;}
	.st28{fill:#9CFF73;}
	.st29{fill:#4891CC;}
	.st30{fill:#474747;}
	.st31{fill:#CCA05E;}
	.st32{opacity:0.67;}
	.st33{opacity:0.3;}
	.st34{fill:#EAEAEA;}
	.st35{fill:#FFE945;}
	.st36{fill:#FFCF8C;}
	.st37{fill:#FF5252;}
	.st38{opacity:0.12;}
	.st39{fill:#45A5F4;}
	.st40{fill:url(#SVGID_1_);}
	.st41{fill:url(#SVGID_2_);}
	.st42{opacity:0.05;}
	.st43{fill:#3D81F5;}
	.st44{fill:#CECECE;}
	.st45{fill:#B5B5B5;}
	.st46{opacity:0.4;}
	.st47{fill:#595959;}
	.st48{fill:#80FF80;}
	.st49{fill:#C8FF80;}
	.st50{fill:#FFEE80;}
	.st51{fill:#FFA680;}
	.st52{fill:#FF8080;}
	.st53{fill:none;}
	.st54{fill:#007AFF;}
	.st55{fill:#EFFF78;}
	.st56{fill:#FFDA00;}
	.st57{fill:#3EADFF;}
	.st58{opacity:0.67;fill:#FFFFFF;}
	.st59{fill:#2E92FF;}
	.st60{fill:#3AEA00;}
	.st61{fill:#303030;}
</style>
<g>
	<polygon class="st15" points="1.5,14 15.5,14 8.5,0.5 	"/>
	<g class="st3">
		<path d="M8.5,2.672L13.855,13H3.145L8.5,2.672 M8.5,0.5L1.5,14h14L8.5,0.5L8.5,0.5z"/>
	</g>
</g>
<path d="M8.495,12.15c-0.378,0-0.679-0.288-0.679-0.659c0-0.353,0.301-0.641,0.679-0.641c0.388,0,0.689,0.288,0.689,0.641
	C9.184,11.862,8.883,12.15,8.495,12.15z"/>
<polygon points="8.05,9.75 7.9,5.75 9.1,5.75 8.95,9.75 "/>
</svg>
