<!--
  Copyright (C) 2018 The Android Open Source Project

  Licensed 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.
  -->

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0"
        android:tint="?android:attr/colorControlNormal">
    <path
        android:fillColor="#FFFFFF"
        android:pathData="M12,5.52l4.25,4.24c1.11,1.11 1.75,2.66 1.75,4.23c0,1.59 -0.64,3.14 -1.75,4.26C15.11,19.37 13.6,20 12,20s-3.11,-0.63 -4.25,-1.76C6.64,17.12 6,15.57 6,13.98c0,-1.57 0.64,-3.11 1.75,-4.22L12,5.52M12,2.69L6.34,8.34C4.78,9.9 4,11.98 4,13.98s0.78,4.11 2.34,5.67C7.9,21.21 9.95,22 12,22s4.1,-0.79 5.66,-2.35c1.56,-1.56 2.34,-3.67 2.34,-5.67s-0.78,-4.08 -2.34,-5.64L12,2.69L12,2.69z"/>
    <path
        android:fillColor="#FFFFFF"
        android:pathData="M11,9h2v6h-2z"/>
    <path
        android:fillColor="#FFFFFF"
        android:pathData="M9,13l0,-2l6,0l-0,2z"/>
    <path
        android:fillColor="#FFFFFF"
        android:pathData="M9,18l0,-2l6,0l-0,2z"/>
</vector>
