diff --git a/res/drawable-hdpi/ic_accessibility_generic.png b/res/drawable-hdpi/ic_accessibility_generic.png
deleted file mode 100644
index 2229409..0000000
--- a/res/drawable-hdpi/ic_accessibility_generic.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_accessibility_generic.png b/res/drawable-mdpi/ic_accessibility_generic.png
deleted file mode 100644
index d59cda6..0000000
--- a/res/drawable-mdpi/ic_accessibility_generic.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/nfc_how_it_works.png b/res/drawable-mdpi/nfc_how_it_works.png
deleted file mode 100644
index 1dc272c..0000000
--- a/res/drawable-mdpi/nfc_how_it_works.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/tapandpay_emptystate.png b/res/drawable-mdpi/tapandpay_emptystate.png
deleted file mode 100644
index 1c0eb76..0000000
--- a/res/drawable-mdpi/tapandpay_emptystate.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_accessibility_generic.png b/res/drawable-xhdpi/ic_accessibility_generic.png
deleted file mode 100644
index a4d4036..0000000
--- a/res/drawable-xhdpi/ic_accessibility_generic.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/nfc_how_it_works.png b/res/drawable-xhdpi/nfc_how_it_works.png
deleted file mode 100644
index e61d77f..0000000
--- a/res/drawable-xhdpi/nfc_how_it_works.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/tapandpay_emptystate.png b/res/drawable-xhdpi/tapandpay_emptystate.png
deleted file mode 100644
index f7f436b..0000000
--- a/res/drawable-xhdpi/tapandpay_emptystate.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_accessibility_generic.png b/res/drawable-xxhdpi/ic_accessibility_generic.png
deleted file mode 100644
index 361f5d5..0000000
--- a/res/drawable-xxhdpi/ic_accessibility_generic.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/nfc_how_it_works.png b/res/drawable-xxhdpi/nfc_how_it_works.png
deleted file mode 100644
index 0c816bd..0000000
--- a/res/drawable-xxhdpi/nfc_how_it_works.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/tapandpay_emptystate.png b/res/drawable-xxhdpi/tapandpay_emptystate.png
deleted file mode 100644
index 6e60022..0000000
--- a/res/drawable-xxhdpi/tapandpay_emptystate.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_accessibility_generic.png b/res/drawable-xxxhdpi/ic_accessibility_generic.png
deleted file mode 100644
index a960e79..0000000
--- a/res/drawable-xxxhdpi/ic_accessibility_generic.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/nfc_how_it_works.png b/res/drawable-xxxhdpi/nfc_how_it_works.png
deleted file mode 100644
index 0add50f..0000000
--- a/res/drawable-xxxhdpi/nfc_how_it_works.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/tapandpay_emptystate.png b/res/drawable-xxxhdpi/tapandpay_emptystate.png
deleted file mode 100644
index de8e437..0000000
--- a/res/drawable-xxxhdpi/tapandpay_emptystate.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/ic_accessibility_generic.xml b/res/drawable/ic_accessibility_generic.xml
new file mode 100644
index 0000000..2c7d413
--- /dev/null
+++ b/res/drawable/ic_accessibility_generic.xml
@@ -0,0 +1,30 @@
+<!--
+  Copyright 2019 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"
+        android:viewportHeight="24">
+    <path
+        android:pathData="M5.6875,22.8235C4.9092,22.4776 4.8184,22.2615 2.8752,16.1257 1.8439,12.8691 1.0015,10.0882 1.0033,9.946 1.0137,9.1246 1.3166,8.8389 6.25,4.9976 9.2052,2.6966 11.2442,1.1943 11.5332,1.1049 11.8724,0.9999 12.1235,0.996 12.432,1.0907 12.9214,1.2408 22.3634,8.7104 22.6857,9.2024 23.1266,9.8752 23.0768,10.1907 22.0053,13.5155 19.0153,22.7935 19.1481,22.461 18.2853,22.8286 17.7053,23.0757 6.2446,23.0711 5.6875,22.8235Z"
+        android:strokeWidth="0.31999999"
+        android:fillColor="#ced6da"/>
+    <path
+        android:pathData="M10.0615,19.3507C10.028,19.2609 9.9864,17.362 9.9691,15.1308L9.9375,11.0741 8.5,10.853c-2.1981,-0.3381 -2.1924,-0.3355 -2.1619,-0.978 0.0141,-0.2963 0.074,-0.587 0.1331,-0.6462 0.06,-0.06 0.7667,0.0113 1.5994,0.1614 2.1217,0.3824 5.7371,0.3824 7.8588,0 0.8206,-0.1479 1.5349,-0.2259 1.5874,-0.1733 0.0525,0.0526 0.1334,0.3334 0.1799,0.624 0.078,0.4881 0.0598,0.5378 -0.2384,0.6512 -0.1776,0.0675 -1.0143,0.2259 -1.8593,0.352l-1.5364,0.2293 -0.0625,4.182 -0.0625,4.182l-0.625,0 -0.625,0l-0.0625,-1.875 -0.0625,-1.875l-0.5625,0L11.4375,15.6875l-0.0625,1.875 -0.0625,1.875 -0.595,0.0382c-0.4038,0.0259 -0.6146,-0.0143 -0.6559,-0.125zM11.3716,8.912c-0.4861,-0.3351 -0.6133,-0.5622 -0.6176,-1.1029 -0.0047,-0.6005 0.2255,-0.9684 0.739,-1.1811 0.8994,-0.3726 1.7571,0.2075 1.7571,1.1885 0,0.4533 -0.0659,0.5905 -0.4418,0.9206 -0.5007,0.4396 -0.9697,0.4967 -1.4366,0.1749z"
+        android:strokeWidth="0.31999999"
+        android:fillColor="#ffffff"/>
+</vector>
\ No newline at end of file
diff --git a/res/drawable/nfc_how_it_works.xml b/res/drawable/nfc_how_it_works.xml
new file mode 100644
index 0000000..f2a6b61
--- /dev/null
+++ b/res/drawable/nfc_how_it_works.xml
@@ -0,0 +1,55 @@
+<!--
+  Copyright (C) 2019 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="1120dp"
+        android:height="752dp"
+        android:viewportWidth="1120"
+        android:viewportHeight="752">
+    <path
+        android:pathData="M228,215l-60,220l140,40l60,-220z"
+        android:fillColor="#ffffff"/>
+    <path
+        android:pathData="m27.34,720.25c-0.94,-1.51 -2.24,-3.21 -2.91,-3.77 -0.66,-0.56 -3.09,-5.45 -5.39,-10.87 -4.21,-9.9 -6.51,-19.56 -5.45,-22.91 0.31,-0.99 -0.07,-2.79 -0.86,-4 -2.46,-3.8 -2.95,-10.2 -1.07,-14.14 1.58,-3.32 1.58,-3.63 -0.09,-5.48 -1.42,-1.56 -1.62,-2.83 -1.03,-6.27 1.09,-6.34 1.17,-11.08 0.22,-13.06 -0.46,-0.96 -0.54,-4 -0.17,-6.75C11.21,628.34 11.45,628 14.07,628c1.55,0 3.09,0.45 3.43,1 1.14,1.85 2.5,1.02 2.5,-1.52 0,-2.14 -0.35,-2.43 -2.32,-1.94 -1.48,0.37 -2.8,0.01 -3.62,-0.98C13.34,623.7 12.16,623 11.44,623c-2.3,0 -2.67,-2 -0.87,-4.74 1.19,-1.82 1.38,-2.78 0.59,-3.04C9.48,614.66 9.73,613.16 12,610.27c2.25,-2.86 2.59,-6.28 0.8,-8.07 -0.93,-0.93 -0.92,-1.2 0.05,-1.2 0.69,0 1.91,-1.58 2.71,-3.5 1.59,-3.8 4.32,-4.65 5.12,-1.59 0.27,1.05 1.47,2.18 2.66,2.52 2.02,0.57 2.05,0.69 0.41,1.95 -2.47,1.9 -2.19,3.82 0.5,3.44 1.61,-0.23 2.16,-0.89 1.94,-2.32 -0.17,-1.1 -0.31,-2.86 -0.3,-3.91C25.91,594.92 24.18,592 22.59,592 20.35,592 18.93,580.78 21,579.5c0.55,-0.34 1,-1.94 1,-3.56C22,574.32 22.39,573 22.86,573c1.32,0 6.17,-5.14 5.64,-5.99 -0.25,-0.41 -1.66,-0.52 -3.14,-0.23 -2.65,0.51 -2.67,0.47 -1.98,-3.88 0.38,-2.42 2.12,-7.55 3.87,-11.4 2.79,-6.15 5.75,-9.68 24.3,-29 11.62,-12.1 22.82,-23.91 24.9,-26.25 2.08,-2.34 4.29,-4.23 4.91,-4.21 0.62,0.02 3.15,1.81 5.61,3.97l4.48,3.93 3.27,-3.17c5.7,-5.53 8.01,-9.97 11.28,-21.78 5.61,-20.22 18.82,-58.92 23.34,-68.36C131.76,401.61 136.28,393.23 139.4,388 146.42,376.25 169,331.71 169,329.61c0,-2.61 10.03,-34.98 11.57,-37.34 1.92,-2.95 6.79,-5.39 11.45,-5.73 2.07,-0.15 4.19,-0.55 4.72,-0.88 0.53,-0.33 1.97,-4.32 3.21,-8.88 2.1,-7.74 4.18,-15.3 10.7,-38.78 6.8,-24.51 7.5,-26.38 11.24,-30.1 6.5,-6.48 4.78,-6.74 67.37,10.5 30.93,8.52 57.42,15.77 58.86,16.12 2.5,0.61 2.92,0.04 9.86,-13.48 5.44,-10.59 7.96,-14.47 10.09,-15.57 4.25,-2.2 183.6,-2.21 187.86,-0.01 3.01,1.56 4.03,3.52 33.55,64.67l13.82,28.63 11.17,0.43c13.2,0.51 16.9,2.18 21.29,9.65L638.5,313.5l0.28,94c0.25,83.94 0.11,94.45 -1.31,98.19 -3.56,9.37 -9.57,13.25 -20.61,13.29 -5.38,0.02 -6.78,0.35 -7.34,1.77 -0.39,0.96 -10.09,26.38 -21.57,56.48 -11.48,30.1 -21.55,56.05 -22.39,57.67 -0.91,1.76 -2.84,3.38 -4.81,4.03 -2.47,0.81 -39.57,2.19 -53.74,1.99 -32.95,-0.46 -60.93,-0.54 -62.38,-0.17 1.48,0.52 -3.13,0.3 -4.69,0.23 -7.01,-0.13 -48.46,-0.22 -52.06,-0.11 -3.73,0.11 -4.74,0.53 -5.16,2.14 -0.72,2.76 -2.57,2.5 -3.72,-0.52 -0.53,-1.38 -1.98,-2.91 -3.23,-3.39 -1.25,-0.48 -3.02,-1.71 -3.94,-2.73 -0.92,-1.03 -11.77,-26.41 -24.12,-56.41 -12.35,-30 -23.2,-55.99 -24.11,-57.75L321.95,519 309.22,518.98c-10.29,-0.02 -13.52,-0.38 -16.87,-1.9l-4.14,-1.88 -3.86,3.97c-10.12,10.41 -26.62,16.48 -53.86,19.83 -10.99,1.35 -27.33,4.93 -41.92,9.18 -9.87,2.88 -11.6,3.75 -17.95,9.07 -10.98,9.19 -10.88,8.48 -2.16,16.38 4.11,3.72 7.68,7.31 7.94,7.97 0.25,0.66 -6.15,7.69 -14.22,15.62 -13.49,13.26 -25.03,24.38 -93.18,89.74C31.89,722.56 31.41,723 30.2,723c-0.63,0 -1.92,-1.24 -2.85,-2.75zM19.57,678.62c0.53,-2.16 0.38,-2.77 -0.61,-2.44 -2.06,0.69 -3.35,3.37 -2.59,5.35 0.86,2.24 2.23,0.99 3.2,-2.91zM20.97,619.75c-0.03,-2.76 -0.19,-2.98 -1.08,-1.44 -0.58,1 -0.8,2.46 -0.5,3.25 0.92,2.41 1.62,1.62 1.58,-1.81zM300.03,450.12 L302.04,442.87 299.52,434.88c-3.05,-9.66 -3.06,-10.13 -0.44,-15.55 1.63,-3.36 3.15,-4.79 6.95,-6.54 5.48,-2.51 6.92,-5.42 4.5,-9.1C308.2,400.13 305,390.06 305,386.28c0,-6.54 4.05,-11.48 11.39,-13.88 2.81,-0.92 5.22,-1.76 5.36,-1.87C322.4,370.01 352,261.59 352,259.72c0,-0.86 -1.56,-1.9 -3.75,-2.49 -2.06,-0.56 -27.42,-7.59 -56.35,-15.62C242.6,227.92 236,226.25 236,227.49c0,0.27 -2.9,10.96 -6.44,23.75 -12.16,43.94 -37.79,137.28 -42.84,156.02 -2.78,10.31 -4.77,19.04 -4.42,19.39 1.25,1.25 114.2,32.15 114.95,31.45 0.42,-0.39 1.67,-3.98 2.77,-7.97zM261.36,374.99c-10.84,-2.22 -20.5,-10.47 -24.42,-20.84 -4.46,-11.82 -0.76,-26.73 8.72,-35.08 6.61,-5.82 14.03,-8.33 23.34,-7.89 8.97,0.42 14.94,3.01 21.1,9.13 6.36,6.32 9.32,13.53 9.35,22.74 0.02,6.54 -0.42,8.44 -3.26,14.22 -6.46,13.12 -21.05,20.54 -34.83,17.72zM273.7,345.63C287.16,337.1 291.69,333 287.65,333c-0.82,0 -7.22,3.6 -14.21,8 -6.99,4.4 -13.09,8 -13.54,8 -0.45,0 -2.68,-2.73 -4.94,-6.06 -3.82,-5.63 -6.62,-7.27 -6.34,-3.72 0.12,1.55 8.97,15.77 9.81,15.77 0.26,0 7.13,-4.22 15.27,-9.37zM474.98,278.43c2.07,-4.95 2.48,-7.58 2.5,-15.93 0.02,-10.36 -2.21,-20.2 -5.13,-22.63 -2.46,-2.04 -2.42,-0.33 0.14,6.5 3.54,9.41 3.54,22.52 -0.01,31.13 -2.81,6.83 -2.98,7.83 -1.23,7.26 0.69,-0.22 2.36,-3.07 3.73,-6.33zM464.69,275.2c3.45,-8.26 3.32,-19.33 -0.31,-27.45 -1.64,-3.67 -3.41,-4.99 -3.34,-2.5 0.02,0.69 0.9,3.72 1.97,6.75 1.06,3.03 1.93,7.53 1.93,10 0,2.47 -0.87,6.97 -1.93,10 -1.06,3.03 -1.95,6.09 -1.97,6.81 -0.06,2.24 2.1,0.11 3.66,-3.61zM453.93,273.13c3.34,-6.23 3.12,-17.93 -0.41,-22.77 -2.13,-2.92 -2.8,-0.96 -1.08,3.15 1.97,4.71 1.99,11.01 0.06,16.49 -1.77,5.03 -1.77,5 -0.54,5 0.53,0 1.42,-0.84 1.97,-1.87zM445.88,265.43c1.2,-3.42 1.17,-4.41 -0.2,-7.68 -0.87,-2.06 -2.1,-3.75 -2.73,-3.75 -0.75,0 -0.87,0.62 -0.34,1.75 1.08,2.32 1.1,9.15 0.04,12.12 -0.65,1.8 -0.53,2.26 0.51,1.93 0.75,-0.24 1.97,-2.21 2.73,-4.37zM717.07,510.07c-1.68,-1.07 -0.98,-5 4.49,-25.07 7.79,-28.58 13.04,-42.22 26.94,-70 18.38,-36.74 42.31,-73.47 66.99,-102.87 8.9,-10.6 15.7,-16.4 23.05,-19.68 3.86,-1.72 6.72,-4.25 12.19,-10.78 3.93,-4.69 8.02,-10.25 9.09,-12.35 7.38,-14.48 6.86,-31.36 -1.45,-47.82 -6.86,-13.58 -11.69,-18.93 -34.55,-38.25C806.34,168.46 804,165.25 804,156c0,-6.58 2.92,-13.05 7.56,-16.76l3.34,-2.66 -0.56,-14.54c-0.47,-12.18 -0.24,-16.08 1.43,-24.04 4.32,-20.65 13.45,-37.22 28.4,-51.56 29.53,-28.33 71.8,-35.99 110.73,-20.07 22.51,9.21 44.45,31.42 53.1,53.78 5.56,14.35 7.29,25.16 6.67,41.51l-0.54,14.16 3.81,2.52c4.5,2.98 9.06,11.34 9.05,16.6 -0.01,5.36 -1.77,10.63 -4.71,14.13 -1.45,1.73 -11.22,10.38 -21.71,19.24 -25.71,21.7 -32.2,28.04 -35.64,34.83 -5.63,11.12 -5.59,23.61 0.1,35.31 3.84,7.89 9.45,15.4 12.32,16.49 1.26,0.48 5.18,3.99 8.71,7.8 7.11,7.66 8.59,8.66 14.43,9.71 5.82,1.05 13.71,5.05 19.86,10.06 16.43,13.38 51.58,80 69.61,131.9 9.59,27.61 21.02,67.43 21.03,73.23 0,1.18 -0.71,2.42 -1.58,2.75 -2.6,1 -390.76,0.67 -392.35,-0.33z"
+        android:fillColor="#fcddaf"/>
+    <path
+        android:pathData="m27.34,720.25c-0.94,-1.51 -2.24,-3.21 -2.91,-3.77 -0.66,-0.56 -3.09,-5.45 -5.39,-10.87 -4.21,-9.9 -6.51,-19.56 -5.45,-22.91 0.31,-0.99 -0.07,-2.79 -0.86,-4 -2.46,-3.8 -2.95,-10.2 -1.07,-14.14 1.58,-3.32 1.58,-3.63 -0.09,-5.48 -1.42,-1.56 -1.62,-2.83 -1.03,-6.27 1.09,-6.34 1.17,-11.08 0.22,-13.06 -0.46,-0.96 -0.54,-4 -0.17,-6.75C11.21,628.34 11.45,628 14.07,628c1.55,0 3.09,0.45 3.43,1 1.14,1.85 2.5,1.02 2.5,-1.52 0,-2.14 -0.35,-2.43 -2.32,-1.94 -1.48,0.37 -2.8,0.01 -3.62,-0.98C13.34,623.7 12.16,623 11.44,623c-2.3,0 -2.67,-2 -0.87,-4.74 1.19,-1.82 1.38,-2.78 0.59,-3.04C9.48,614.66 9.73,613.16 12,610.27c2.25,-2.86 2.59,-6.28 0.8,-8.07 -0.93,-0.93 -0.92,-1.2 0.05,-1.2 0.69,0 1.91,-1.58 2.71,-3.5 1.59,-3.8 4.32,-4.65 5.12,-1.59 0.27,1.05 1.47,2.18 2.66,2.52 2.02,0.57 2.05,0.69 0.41,1.95 -2.47,1.9 -2.19,3.82 0.5,3.44 1.61,-0.23 2.16,-0.89 1.94,-2.32 -0.17,-1.1 -0.31,-2.86 -0.3,-3.91C25.91,594.92 24.18,592 22.59,592 20.35,592 18.93,580.78 21,579.5c0.55,-0.34 1,-1.94 1,-3.56C22,574.32 22.39,573 22.86,573c1.32,0 6.17,-5.14 5.64,-5.99 -0.25,-0.41 -1.66,-0.52 -3.14,-0.23 -2.65,0.51 -2.67,0.47 -1.98,-3.88 0.38,-2.42 2.12,-7.55 3.87,-11.4 2.79,-6.15 5.75,-9.68 24.3,-29 11.62,-12.1 22.82,-23.91 24.9,-26.25 2.08,-2.34 4.32,-4.25 4.98,-4.25 0.66,0 9.19,7.5 18.96,16.67 9.76,9.17 19.41,17.97 21.43,19.57 5.52,4.35 17.42,15.32 25.77,23.77C162.72,567.29 177,582.01 177,582.32c0,0.53 -27.59,27.49 -57,55.71C68.02,687.9 45.49,709.51 38.42,716.25c-3.89,3.71 -7.59,6.75 -8.23,6.75 -0.63,0 -1.92,-1.24 -2.85,-2.75zM19.57,678.62c0.53,-2.16 0.38,-2.77 -0.61,-2.44 -2.06,0.69 -3.35,3.37 -2.59,5.35 0.86,2.24 2.23,0.99 3.2,-2.91zM20.97,619.75c-0.03,-2.76 -0.19,-2.98 -1.08,-1.44 -0.58,1 -0.8,2.46 -0.5,3.25 0.92,2.41 1.62,1.62 1.58,-1.81zM379.29,641.99c-0.29,-1.11 -1.55,-2.27 -2.81,-2.58 -1.26,-0.32 -3.18,-1.55 -4.28,-2.74C371.1,635.47 359.75,609.08 346.97,578c-12.78,-31.08 -23.64,-57.02 -24.14,-57.66 -0.59,-0.74 -5.85,-1.28 -14.67,-1.5 -11.2,-0.28 -14.27,-0.68 -16.52,-2.16 -1.52,-1 -2.59,-2.35 -2.38,-3 0.46,-1.44 26.87,-23.17 35.24,-28.99 3.3,-2.3 7.65,-4.93 9.67,-5.85 4.38,-2 5.83,-4.38 5.83,-9.6 0,-5.46 -4.52,-18.13 -7.62,-21.37 -1.43,-1.49 -2.31,-3.19 -1.95,-3.76 0.36,-0.58 4.34,-2.2 8.86,-3.6 4.52,-1.4 9.24,-3.07 10.49,-3.72 3.27,-1.68 6.22,-6.94 6.22,-11.12 0,-5.87 -4.49,-16.82 -8.12,-19.77 -3.64,-2.97 -3.26,-4.45 1.38,-5.45 7.81,-1.68 12.61,-5.67 14.1,-11.69 1.04,-4.23 -2.21,-15.52 -5.56,-19.35 -5.09,-5.8 -7.95,-6.06 -21.23,-1.91C325.19,371.05 323,371.22 323,368.53c0,-0.74 2.91,-11.85 6.46,-24.69 19.87,-71.79 23.23,-84.41 22.61,-85.09 -1.4,-1.55 -114.36,-32.63 -115.37,-31.75 -0.44,0.38 -7.48,24.95 -15.64,54.6 -8.17,29.65 -18.76,68.08 -23.54,85.4 -16.22,58.77 -16.27,58.97 -15.11,59.88 1.21,0.95 114.67,32.38 115.15,31.9 0.17,-0.17 1.23,-3.63 2.35,-7.68 1.12,-4.06 2.3,-7.63 2.61,-7.94 0.91,-0.91 7.48,3.03 7.48,4.48 0,0.72 -1.34,2.01 -2.97,2.85 -5.73,2.97 -6.37,7.67 -2.66,19.7 2.47,8.01 2.18,9.82 -1.61,9.82 -2.22,0 -133.45,-35.76 -135.69,-36.97 -0.87,-0.47 -2.89,-2.23 -4.49,-3.92 -5.58,-5.86 -5.22,-8.39 7.94,-55.61 12.76,-45.79 31.84,-114.94 38.5,-139.5 7.43,-27.42 8.96,-31.91 12.15,-35.54 3.34,-3.81 9.15,-5.89 13.54,-4.87 1.53,0.36 27.92,7.57 58.63,16.03C324.06,228.08 349.57,235 350.03,235c0.46,0 4.12,-6.34 8.12,-14.09 5.32,-10.28 8.03,-14.47 10.02,-15.5 4.07,-2.11 183.58,-2.11 187.65,-0 2.94,1.52 4.8,5.09 32.63,62.71l14.79,30.62 11.29,0.5c13.32,0.59 16.87,2.19 21.22,9.61L638.5,313.5l0.27,93.32c0.18,61.03 -0.08,94.63 -0.75,97.1C635.35,513.83 628.11,519 616.9,519h-6.68l-1.7,4.25c-0.94,2.34 -10.62,27.65 -21.51,56.25 -10.9,28.6 -20.37,53.22 -21.04,54.7 -2.78,6.08 0.47,5.88 -95.01,6.01 -83.33,0.12 -87.1,0.2 -88.04,1.95 -1.29,2.41 -2.97,2.33 -3.62,-0.18zM375.33,350.83c4.06,-2.06 6.67,-6.56 6.67,-11.47 0,-3.23 -4.57,-15.13 -6.77,-17.62 -2.56,-2.9 -8.61,-4.24 -13.06,-2.91l-3.83,1.15 -5.2,18.76c-2.86,10.32 -5.19,19.28 -5.17,19.91 0.03,1.33 21.31,-4.76 27.35,-7.82zM473.55,281.9c4.92,-9.51 5.9,-23.61 2.37,-34.18 -2.01,-6.02 -4.31,-9.67 -5.42,-8.56 -0.3,0.3 0.59,3.54 1.98,7.21 3.28,8.71 3.46,21.36 0.43,29.63 -3.11,8.5 -3.23,9 -2.06,9 0.6,0 1.81,-1.4 2.7,-3.1zM464.35,276.25c2.69,-6.08 3.71,-13.64 2.63,-19.5 -1.13,-6.11 -3.86,-12.75 -5.25,-12.75 -1.01,0 -0.84,0.99 1.71,9.97C464.3,256.98 465,260.59 465,262c0,1.41 -0.7,5.02 -1.55,8.03 -2.55,8.98 -2.72,9.97 -1.71,9.97 0.53,0 1.71,-1.69 2.62,-3.75zM454.62,271.77C457.83,265.55 455.91,249 451.97,249c-1.25,0 -1.25,-0.03 0.53,5 0.82,2.34 1.5,6.01 1.5,8.16 0,2.15 -0.68,5.52 -1.5,7.5 -1.75,4.19 -1.86,5.35 -0.53,5.35 0.54,0 1.73,-1.46 2.65,-3.23zM444.93,268.59c2.07,-2.49 2.36,-7.97 0.65,-12.06 -2.02,-4.83 -4.21,-3.66 -2.48,1.32 1.07,3.06 0.96,4.77 -0.63,9.9 -0.78,2.53 0.65,3.02 2.46,0.84zM763.38,509.54c-0.31,-0.8 -0.08,-2.94 0.5,-4.75 0.58,-1.81 1.74,-7.92 2.57,-13.58 0.83,-5.66 2.68,-15.49 4.1,-21.85 1.43,-6.36 2.34,-11.81 2.04,-12.11 -0.3,-0.3 -9.3,-0.77 -19.98,-1.04 -10.69,-0.27 -20.01,-0.84 -20.71,-1.28 -1.62,-1 3.91,-14.33 16.15,-38.94 18.64,-37.44 42.41,-74.06 67.44,-103.87 8.93,-10.63 15.7,-16.4 23.14,-19.72 3.91,-1.74 6.6,-4.09 11.31,-9.85 3.4,-4.16 6.63,-7.56 7.19,-7.56 0.55,0 14.49,10.24 30.97,22.75 16.48,12.51 30.34,22.88 30.8,23.04 0.46,0.16 13.38,-9.89 28.72,-22.33 15.34,-12.44 28.52,-22.89 29.29,-23.21 0.9,-0.37 4.23,2.37 9.19,7.55 4.85,5.07 8.84,8.36 10.59,8.74 16.36,3.52 25.35,9.93 36.1,25.74 19.51,28.68 42.18,74.96 57.09,116.51 2.71,7.56 5.23,15.36 5.61,17.33l0.67,3.59 -30.61,0.5c-16.84,0.28 -30.91,0.8 -31.27,1.16 -0.36,0.36 0.59,8.41 2.12,17.89 1.53,9.48 3.42,21.2 4.2,26.05 0.78,4.85 1.16,9.24 0.84,9.75 -0.35,0.56 -55.27,0.93 -139.04,0.93 -120.42,0 -138.55,-0.19 -139.03,-1.46zM312.18,408.76c0.35,-2.43 2.5,-3.28 4.72,-1.86 2.13,1.37 0.51,4.1 -2.43,4.1 -2.12,0 -2.54,-0.41 -2.28,-2.24zM261.36,374.99c-10.84,-2.22 -20.5,-10.47 -24.42,-20.84 -4.46,-11.82 -0.76,-26.73 8.72,-35.08 6.61,-5.82 14.03,-8.33 23.34,-7.89 8.97,0.42 14.94,3.01 21.1,9.13 6.36,6.32 9.32,13.53 9.35,22.74 0.02,6.54 -0.42,8.44 -3.26,14.22 -6.46,13.12 -21.05,20.54 -34.83,17.72zM273.7,345.63C287.16,337.1 291.69,333 287.65,333c-0.82,0 -7.22,3.6 -14.21,8 -6.99,4.4 -13.09,8 -13.54,8 -0.45,0 -2.68,-2.73 -4.94,-6.06 -3.82,-5.63 -6.62,-7.27 -6.34,-3.72 0.12,1.55 8.97,15.77 9.81,15.77 0.26,0 7.13,-4.22 15.27,-9.37zM877.47,165.97c-2.79,-3.08 -1,-7.37 3.23,-7.78 2.49,-0.24 3.53,0.24 4.85,2.25 1.56,2.37 1.56,2.74 0.04,5.06 -2,3.05 -5.59,3.26 -8.12,0.47zM947.28,166.75c-3.31,-4.28 -1.05,-9.05 4.05,-8.56 4.2,0.41 5.97,4.71 3.2,7.78 -2.06,2.28 -5.78,2.68 -7.25,0.78zM817.26,133.36c-0.42,-1.02 -0.75,-8.84 -0.74,-17.36 0.01,-12.93 0.39,-16.88 2.28,-23.84 4.61,-17 12.91,-31.18 25.58,-43.7C862.23,30.82 884.1,21.43 910,20.31 938.83,19.06 964.19,28.54 984.03,48c13.12,12.87 21.06,26 26.02,43.07 2.41,8.29 3.87,33.73 2.28,39.78l-0.88,3.35 -7.73,0.28c-7.39,0.27 -7.76,0.18 -8.32,-2.06 -1.06,-4.2 -2.16,-4.38 -16.92,-2.77 -9.86,1.08 -18.83,1.35 -30.47,0.94 -30.69,-1.09 -49.16,-6.77 -64.2,-19.73l-5.7,-4.91 -4.59,4.59c-5.69,5.69 -15.97,10.68 -28.53,13.85 -9.19,2.32 -9.52,2.5 -10.86,6 -1.34,3.49 -1.55,3.61 -6.5,3.62 -2.81,0.01 -6.12,0.28 -7.35,0.61 -1.61,0.43 -2.45,0.08 -3,-1.26z"
+        android:fillColor="#aebbc3"/>
+    <path
+        android:pathData="m28.88,719.25c-0.06,-0.41 -0.04,-1.54 0.06,-2.5 0.12,-1.22 -0.53,-1.75 -2.19,-1.75 -1.81,0 -2.88,-1.05 -4.56,-4.53C20.99,707.98 20,705.43 20,704.79c0,-0.64 -0.85,-2.99 -1.9,-5.22 -1.04,-2.24 -2.18,-6.37 -2.52,-9.19 -0.55,-4.57 -0.4,-5.19 1.38,-5.65C19.13,684.15 21,680.33 21,676.49c0,-3.67 -1.98,-4.05 -4.59,-0.87 -1.99,2.42 -2.52,2.64 -3.37,1.38 -1.56,-2.32 -1.23,-10.29 0.53,-12.8 1.45,-2.07 1.41,-2.5 -0.5,-5.6 -1.75,-2.84 -1.86,-3.53 -0.68,-4.52 0.77,-0.64 1.78,-1.09 2.25,-1.01C17.03,653.51 18,652.77 18,650.5c0,-2.92 -2.39,-3.38 -3.92,-0.75 -0.87,1.5 -1.02,1.35 -1.05,-1 -0.02,-1.51 -0.14,-3.09 -0.28,-3.5 -0.14,-0.41 0.79,-0.9 2.06,-1.08 2.94,-0.42 2.56,-3.55 -0.48,-3.98 -2.71,-0.39 -3.38,-2.1 -2.63,-6.72 0.7,-4.33 2.63,-5.38 5.36,-2.92 2.93,2.65 4.08,0.82 5.46,-8.71C23.87,612.53 23.54,610 20.98,610c-1.47,0 -1.9,1.22 -2.48,7 -0.66,6.57 -1.55,8.35 -3,6 -0.34,-0.55 -1.49,-1 -2.56,-1C11.87,622 11,621.33 11,620.5c0,-0.82 0.34,-1.5 0.76,-1.5 1.86,0 3.59,-5.04 3.89,-11.27 0.17,-3.73 0.96,-8 1.74,-9.5l1.43,-2.72 0.67,4c0.37,2.2 0.85,4.56 1.06,5.25 0.52,1.67 3.61,1.59 5.99,-0.15 1.77,-1.3 1.82,-1.85 0.7,-7.25C26.56,594.13 25.41,591.05 24.67,590.5 21.15,587.88 19.96,582.11 22.5,580c0.82,-0.68 1.5,-2.23 1.5,-3.43 0,-1.27 1.26,-3.12 3,-4.41 4.09,-3.02 4.14,-6.98 0.11,-7.79 -2.75,-0.55 -2.85,-0.74 -1.95,-3.98 2.99,-10.83 6.05,-15.13 24.34,-34.16 9.9,-10.3 21.22,-22.08 25.16,-26.18l7.16,-7.45 11.34,10.95c15.77,15.23 28.02,26.58 31.98,29.64 1.85,1.43 13.91,13.03 26.8,25.79 17.72,17.54 23.21,23.54 22.5,24.59 -0.52,0.77 -15.34,15.22 -32.94,32.11 -17.6,16.89 -49.2,47.28 -70.22,67.52C36.23,716.95 29.42,722.74 28.88,719.25ZM375.29,637.99c-1.22,-0.49 -2.76,-1.78 -3.43,-2.85 -0.67,-1.07 -11.84,-27.76 -24.81,-59.3L323.45,518.5 308.98,518c-14.59,-0.5 -19.44,-1.66 -18.79,-4.48 0.32,-1.39 30.82,-26.25 34.37,-28.02 1.11,-0.55 4.6,-2.28 7.76,-3.84 6.95,-3.43 8.67,-5.83 8.81,-12.26 0.13,-5.76 -4.04,-18.6 -7.08,-21.84C332.93,446.36 332,445.08 332,444.72c0,-0.36 3.94,-1.84 8.75,-3.29 14.51,-4.37 19.04,-10.7 15.79,-22.03 -2.01,-7.01 -5.82,-13.91 -8.18,-14.81 -2.22,-0.85 -0.87,-2.03 4.14,-3.6 7.88,-2.48 12.5,-7.94 12.5,-14.78 0,-6.11 -3.84,-15.86 -7.53,-19.1 -5.35,-4.7 -7.22,-4.77 -19.39,-0.72C326.84,370.12 324,370.66 324,369.08c0,-0.79 12.02,-44.98 25.97,-95.48 2.26,-8.2 3.76,-15.25 3.32,-15.67 -1.94,-1.85 -116.45,-33.17 -117.49,-32.13 -0.46,0.46 -10.99,37.71 -23.4,82.77 -35.04,127.23 -32.55,117.73 -31.15,119.01 0.68,0.62 27.02,8.23 58.53,16.9 53.92,14.84 57.4,15.67 59.13,14.1 1.75,-1.59 1.87,-1.48 2.51,2.13 0.37,2.09 1.58,6.6 2.69,10.02 1.11,3.42 1.74,6.69 1.39,7.25 -0.35,0.56 -1.9,1.02 -3.45,1.02 -2.26,0 -67.28,-17.41 -125.36,-33.56 -11.21,-3.12 -14.82,-5.76 -16.78,-12.31 -1.53,-5.12 -2.19,-2.62 38.72,-148.12 5.8,-20.63 12.74,-45.32 15.42,-54.87 2.68,-9.55 5.6,-18.48 6.5,-19.84 2.3,-3.51 9.72,-6.61 13.75,-5.74 1.76,0.38 28.37,7.62 59.13,16.11 30.76,8.48 56.48,15.21 57.16,14.95 0.68,-0.26 4.27,-6.38 7.99,-13.59 3.71,-7.22 7.87,-14 9.23,-15.07C370.21,205.05 372.64,205 462.08,205h91.81l2.58,2.25c1.59,1.39 10.9,19.42 24.39,47.25l21.81,45 11.42,0.58c6.28,0.32 12.37,1.09 13.53,1.71 3.49,1.87 8.21,7.91 9.33,11.93 0.7,2.51 1.05,34.86 1.05,96.41l0.01,92.64 -2.76,5.29C631.5,515.21 626.35,518 616.88,518c-5.82,0 -6.96,0.29 -7.9,2.04 -0.6,1.12 -10.72,27.3 -22.49,58.18 -12.33,32.36 -22.28,57.02 -23.47,58.21 -2.06,2.06 -2.48,2.07 -93.79,2.27 -52.46,0.11 -92.67,-0.19 -93.94,-0.7zM438.37,611.75c1.04,-3.88 0.68,-11.29 -0.63,-13.09 -1.09,-1.5 -2.85,-1.69 -13.25,-1.44L412.5,597.5l-0.29,8.25 -0.29,8.25h12.92c12.56,0 12.94,-0.06 13.53,-2.25zM479.8,606.09c0.21,-5.25 -0.08,-7.65 -1,-8.23 -1.49,-0.95 -21.85,-1.16 -24.22,-0.25C453.34,598.08 453,599.77 453,605.44c0,3.97 0.31,7.54 0.7,7.92 0.38,0.38 6.34,0.57 13.25,0.42L479.5,613.5ZM437.96,576.07c1.13,-2.12 1.36,-9.26 0.4,-12.82 -0.59,-2.19 -0.97,-2.25 -13.49,-2.25L412,561v7.83c0,4.31 0.3,8.13 0.67,8.5C413.03,577.7 418.64,578 425.13,578c10.64,0 11.9,-0.19 12.83,-1.93zM478.8,577.15c0.92,-0.58 1.21,-2.98 1,-8.23L479.5,561.5h-13,-13l-0.3,7.41c-0.21,5.25 0.08,7.65 1,8.23 0.71,0.45 6.25,0.82 12.3,0.82 6.05,0 11.58,-0.37 12.3,-0.82zM438.37,538.75c0.33,-1.24 0.6,-3.6 0.6,-5.25 0,-7.61 0.21,-7.5 -14.09,-7.5L412,526v7.5,7.5h12.88c12.52,0 12.9,-0.06 13.49,-2.25zM479.5,533.5v-7h-13,-13l-0.3,5.89c-0.47,9.07 -1.04,8.71 13.53,8.39L479.5,540.5ZM356.43,358.87c20.36,-6.12 23.53,-7.82 25.96,-13.88 2.24,-5.61 2.13,-6.38 -2.38,-15.49C375.45,320.31 372.57,318 365.71,318c-7.11,0 -7.87,1.24 -13.6,22.23 -2.81,10.3 -5.11,19.19 -5.11,19.75 0,1.46 1.47,1.28 9.43,-1.11zM438.92,292.63C437.9,291.71 432,289 432,289.44c0,0.62 5.18,3.46 6.42,3.52 0.5,0.02 0.73,-0.13 0.5,-0.33zM495.49,291.01c0.35,-0.57 -0.05,-0.73 -0.94,-0.39 -1.73,0.66 -2.05,1.38 -0.61,1.38 0.52,0 1.22,-0.44 1.55,-0.99zM503.8,285.5c4.22,-3.05 5.43,-5.5 2.7,-5.5 -0.82,0 -1.5,0.84 -1.5,1.86 0,1.05 -1.76,3.08 -4,4.64 -2.2,1.52 -4,2.96 -4,3.19 0,0.54 1.7,-0.51 6.8,-4.19zM430.45,288.24c-5.21,-4.19 -5.97,-4.66 -3.23,-1.99 1.55,1.51 3.12,2.75 3.5,2.75 0.38,0 0.26,-0.34 -0.27,-0.76zM473.47,283.75c2.79,-3.96 5.53,-14.67 5.52,-21.61C478.97,251.17 474.55,238 470.89,238c-2.42,0 -2.38,0.44 0.61,8.4 3.57,9.49 3.55,22.14 -0.06,31.17 -2.4,6 -2.53,8.43 -0.43,8.43 0.49,0 1.6,-1.01 2.47,-2.25zM420.94,279.25c-4.05,-4.62 -4.28,-4.84 -3.44,-3.25 0.99,1.87 4.67,6 5.35,6 0.28,0 -0.58,-1.24 -1.91,-2.75zM465.12,276.45c2.78,-6.28 3.74,-13.41 2.7,-20.04C466.78,249.8 463.57,243 461.48,243c-1.96,0 -1.82,2.34 0.52,9 1.06,3.03 1.93,7.53 1.93,10 0,2.47 -0.87,6.97 -1.93,10 -2.37,6.73 -2.48,9 -0.44,9 0.89,0 2.42,-1.96 3.57,-4.55zM514,279.06c0,-1.68 -1.77,-2.09 -2.36,-0.55C511.29,279.41 511.64,280 512.53,280 513.34,280 514,279.58 514,279.06ZM455.52,271.75c2.3,-5.63 2.3,-14.6 -0.01,-19.72 -2.92,-6.48 -6.78,-5 -4.05,1.55 1.96,4.68 1.96,11.47 0,16.15 -0.84,2.02 -1.31,4.25 -1.03,4.97 1,2.59 3.38,1.21 5.09,-2.95zM511.36,274.5C510.75,272.91 509,272.42 509,273.83c0,1.06 1.09,2.17 2.14,2.17 0.44,0 0.54,-0.68 0.23,-1.5zM501,272.56c0,-0.24 -0.45,-0.72 -1,-1.06 -0.55,-0.34 -1,-0.14 -1,0.44 0,0.58 0.45,1.06 1,1.06 0.55,0 1,-0.2 1,-0.44zM446.5,266.65c1.35,-3.53 1.46,-5.11 0.58,-8.38 -1.28,-4.74 -3.59,-7.15 -5.26,-5.48 -0.8,0.8 -0.76,1.93 0.16,4.14 1.19,2.87 1.1,4.71 -0.53,11.32 -0.57,2.32 -0.36,2.75 1.36,2.75 1.48,0 2.49,-1.19 3.7,-4.35zM499,263.5c-1.33,-1.6 -4,-2.05 -4,-0.67 0,1.37 1.21,2.17 3.29,2.17 1.63,0 1.75,-0.25 0.71,-1.5zM506,256c0,-0.55 -0.7,-1 -1.56,-1 -0.86,0 -1.28,0.45 -0.94,1 0.34,0.55 1.04,1 1.56,1 0.52,0 0.94,-0.45 0.94,-1zM507.46,252.07c0.32,-0.51 0.12,-1.21 -0.44,-1.56 -0.56,-0.35 -1.02,0.07 -1.02,0.93 0,1.76 0.6,2.02 1.46,0.63zM513.98,251.25c-0.01,-0.41 -0.92,-1.88 -2.01,-3.25 -1.92,-2.41 -1.96,-2.19 -0.5,2.5 0.47,1.52 2.55,2.14 2.51,0.75zM429.5,236.12c1.65,-1.25 2.33,-1.94 1.5,-1.53 -3.23,1.6 -9.07,6.7 -11.13,9.73 -1.63,2.39 -1.07,2.05 2.23,-1.37 2.42,-2.5 5.74,-5.58 7.39,-6.82zM507.44,241.91c-1.62,-1.7 -4.29,-4.02 -5.94,-5.16 -1.65,-1.14 -0.52,0.23 2.5,3.05 6.17,5.74 7.88,6.79 3.44,2.11zM498,234.52c0,-0.61 -7.65,-4.54 -8.71,-4.48 -0.43,0.02 1.24,1.13 3.71,2.45 5.04,2.7 5,2.68 5,2.02zM435.53,232.19c-0.31,-0.31 -1.11,-0 -1.79,0.68 -0.98,0.99 -0.87,1.1 0.56,0.56 0.99,-0.38 1.54,-0.93 1.23,-1.24zM765.47,508.96c-0.35,-0.57 0.1,-5.19 1.02,-10.25 2.84,-15.77 6.54,-34.33 7.54,-37.8 0.52,-1.83 0.62,-3.63 0.21,-4 -1.14,-1.05 -21.67,-2.91 -31.99,-2.91 -7.02,0 -9.25,-0.32 -9.25,-1.32 0,-1.6 5.75,-14.94 13.22,-30.67 16.93,-35.67 44.39,-78.44 69.33,-108 9.9,-11.73 15.53,-16.67 22.92,-20.13 5.12,-2.4 7.49,-4.38 12.5,-10.48l6.17,-7.52 3.18,2.39c1.75,1.31 15.44,11.69 30.42,23.07C905.71,312.69 918.55,322 919.26,322c0.71,0 13.79,-10.11 29.06,-22.47 15.27,-12.36 28.15,-22.7 28.6,-22.98 0.46,-0.28 4.38,3.09 8.71,7.5 7.35,7.47 8.31,8.11 14.29,9.51 12.93,3.02 22.68,10.46 32.13,24.51 17.8,26.48 38.71,68.28 52.88,105.74 4.14,10.94 10.07,28.4 10.07,29.63 0,0.18 -13.93,0.51 -30.97,0.71 -18.49,0.23 -31.34,0.78 -31.9,1.36 -0.58,0.61 -0.2,4.98 1,11.48 3.5,19.06 6.8,41.29 6.27,42.15 -0.79,1.28 -273.14,1.09 -273.93,-0.19zM301.01,452.92c0.01,-2.83 2.11,-8.92 3.08,-8.92 0.54,0 2.11,0.73 3.47,1.63 1.94,1.27 2.24,1.92 1.34,3 -0.63,0.76 -1.62,1.37 -2.2,1.37 -0.58,0 -2.1,0.98 -3.38,2.17 -1.65,1.55 -2.31,1.76 -2.31,0.75zM313,408.43c0,-0.93 0.68,-1.44 1.67,-1.25C317.18,407.66 317.52,410 315.08,410 313.86,410 313,409.35 313,408.43ZM261.22,373.97c-24.27,-4.95 -33.57,-34.98 -16.33,-52.74 5.69,-5.86 12.17,-8.63 21.25,-9.06 6.65,-0.32 8.44,-0.01 13.75,2.37 11.82,5.31 18.51,15.6 18.49,28.47 -0.01,9.67 -2.78,16.22 -9.53,22.53 -7.96,7.44 -17.78,10.44 -27.64,8.43zM274.52,346.25c12.37,-7.77 15.47,-10.15 15.25,-11.74 -0.15,-1.09 -1.02,-2.13 -1.94,-2.31 -0.92,-0.17 -7.41,3.31 -14.43,7.74C266.39,344.37 260.31,348 259.89,348c-0.41,0 -2.39,-2.7 -4.39,-6 -2,-3.3 -4.23,-6 -4.95,-6 -1.91,0 -3.84,2.71 -2.99,4.21 4.12,7.24 9.82,15.79 10.54,15.79 0.49,0 7.88,-4.39 16.42,-9.75zM878.75,166.92c-2.01,-1.17 -2.35,-5.92 -0.55,-7.72 0.66,-0.66 2.14,-1.2 3.3,-1.2 4.63,0 6.17,5.71 2.28,8.44 -2.58,1.81 -2.72,1.82 -5.03,0.48zM948.17,166.4c-3.25,-2.28 -2.61,-6.54 1.19,-7.86 2.45,-0.86 3.12,-0.67 4.75,1.34 2.38,2.94 2.37,3.64 -0.1,6.12 -2.41,2.41 -2.91,2.45 -5.83,0.4zM817.26,133.36c-0.42,-1.02 -0.75,-8.84 -0.74,-17.36 0.01,-12.93 0.39,-16.88 2.28,-23.84 4.61,-17 12.91,-31.18 25.58,-43.7C862.23,30.82 884.1,21.43 910,20.31 938.83,19.06 964.19,28.54 984.03,48c13.12,12.87 21.06,26 26.02,43.07 2.41,8.29 3.87,33.73 2.28,39.78l-0.88,3.35 -7.73,0.28c-7.39,0.27 -7.76,0.18 -8.32,-2.06 -1.06,-4.2 -2.16,-4.38 -16.92,-2.77 -9.86,1.08 -18.83,1.35 -30.47,0.94 -30.69,-1.09 -49.16,-6.77 -64.2,-19.73l-5.7,-4.91 -4.59,4.59c-5.69,5.69 -15.97,10.68 -28.53,13.85 -9.19,2.32 -9.52,2.5 -10.86,6 -1.34,3.49 -1.55,3.61 -6.5,3.62 -2.81,0.01 -6.12,0.28 -7.35,0.61 -1.61,0.43 -2.45,0.08 -3,-1.26z"
+        android:fillColor="#8cc9c4"/>
+    <path
+        android:pathData="m40.33,703.22c-2.01,-1.28 -2.62,-5.74 -0.96,-7.12 1.22,-1.01 1.85,-0.89 3.42,0.68 1.72,1.72 1.77,2.2 0.53,4.57 -1.56,2.97 -1.41,2.88 -2.99,1.87zM70.49,678.99c-0.38,-0.61 0.03,-1.91 0.91,-2.88 2.01,-2.22 2,-3 -0.09,-7.19 -0.93,-1.86 -1.8,-4.41 -1.93,-5.65C69.18,661.37 69.62,661 72.1,661c3.55,0 4.68,-2.17 2.88,-5.53 -1.04,-1.94 -1.04,-2.69 -0.01,-3.93C76.43,649.78 79,649.48 79,651.07c0,0.59 1.01,0.93 2.25,0.75 1.93,-0.27 2.22,-0.86 2.03,-4.1 -0.19,-3.28 0.14,-3.92 2.5,-4.86 1.5,-0.59 3.52,-1.48 4.49,-1.98 0.97,-0.5 2.79,-0.65 4.04,-0.34 1.8,0.45 2.95,-0.27 5.49,-3.43 1.77,-2.2 3.21,-4.84 3.21,-5.88 0,-1.04 1.16,-2.98 2.59,-4.31 2.1,-1.97 2.49,-3.05 2.04,-5.8 -0.42,-2.62 0.03,-4.13 2.03,-6.75C111.08,612.52 113.11,611 114.19,611 116.84,611 123,606.16 123,604.07c0,-0.93 0.59,-2.49 1.3,-3.47 1.21,-1.66 1.59,-1.54 5.59,1.81 2.36,1.97 4.67,3.59 5.13,3.59 1.38,0 4.97,-5.66 4.97,-7.85 0,-1.12 0.45,-2.31 1,-2.65 0.55,-0.34 1,-1.77 1,-3.18 0,-2.67 -0.12,-2.66 6.16,-0.66 2.22,0.7 4.44,-3.22 2.89,-5.1 -1.88,-2.26 -0.19,-4.63 2.8,-3.93 1.46,0.34 2.93,0.9 3.27,1.24 0.34,0.34 0.25,3.92 -0.2,7.96l-0.82,7.34 -14.8,14.2c-35.08,33.66 -52.7,50.24 -55.02,51.77 -1.37,0.9 -4.21,1.91 -6.32,2.25 -4,0.64 -5.63,2.91 -4.55,6.36 0.59,1.89 0.01,3.03 -2.57,5.05 -1.19,0.93 -1.86,0.98 -2.35,0.19zM375.29,637.99c-1.22,-0.49 -2.76,-1.78 -3.43,-2.85 -0.67,-1.07 -11.84,-27.76 -24.81,-59.3L323.45,518.5 308.98,518c-14.59,-0.5 -19.44,-1.66 -18.79,-4.48 0.45,-1.97 32.52,-27.51 34.57,-27.54 0.96,-0.01 64.63,-0 141.49,0.02l139.75,0.05v-76.39,-76.39l-3.75,-0.61c-2.06,-0.34 -52.58,-0.59 -112.25,-0.57l-108.5,0.04 -2.76,-5.35C375.47,320.44 371.84,318 365.71,318c-7.11,0 -7.87,1.24 -13.6,22.23C349.3,350.54 347,359.9 347,361.03c0,1.4 -1.08,2.52 -3.34,3.46 -5.93,2.48 -18.59,5.91 -19.27,5.22 -0.37,-0.37 1.85,-9.79 4.91,-20.94 3.07,-11.15 9.9,-35.98 15.19,-55.18 5.28,-19.2 9.25,-35.25 8.81,-35.67 -1.94,-1.86 -116.45,-33.18 -117.49,-32.14 -0.46,0.46 -10.99,37.71 -23.4,82.77 -35.04,127.23 -32.55,117.73 -31.15,119.01 0.68,0.62 27.02,8.23 58.53,16.9 53.92,14.84 57.4,15.67 59.13,14.1 1.75,-1.59 1.87,-1.48 2.51,2.13 0.37,2.09 1.58,6.6 2.69,10.02 1.11,3.42 1.74,6.69 1.39,7.25 -0.35,0.56 -1.9,1.02 -3.45,1.02 -2.26,0 -67.28,-17.41 -125.36,-33.56 -11.21,-3.12 -14.82,-5.76 -16.78,-12.31 -1.53,-5.12 -2.19,-2.62 38.72,-148.12 5.8,-20.63 12.74,-45.32 15.42,-54.87 2.68,-9.55 5.6,-18.48 6.5,-19.84 2.3,-3.51 9.72,-6.61 13.75,-5.74 1.76,0.38 28.37,7.62 59.13,16.11 30.76,8.48 56.48,15.21 57.16,14.95 0.68,-0.26 4.27,-6.38 7.99,-13.59 3.71,-7.22 7.87,-14 9.23,-15.07C370.21,205.05 372.64,205 462.08,205h91.81l2.58,2.25c1.59,1.39 10.9,19.42 24.39,47.25l21.81,45 11.42,0.58c6.28,0.32 12.37,1.09 13.53,1.71 3.49,1.87 8.21,7.91 9.33,11.93 0.7,2.51 1.05,34.86 1.05,96.41l0.01,92.64 -2.76,5.29C631.5,515.21 626.35,518 616.88,518c-5.82,0 -6.96,0.29 -7.9,2.04 -0.6,1.12 -10.72,27.3 -22.49,58.18 -12.33,32.36 -22.28,57.02 -23.47,58.21 -2.06,2.06 -2.48,2.07 -93.79,2.27 -52.46,0.11 -92.67,-0.19 -93.94,-0.7zM438.37,611.75c1.04,-3.88 0.68,-11.29 -0.63,-13.09 -1.09,-1.5 -2.85,-1.69 -13.25,-1.44L412.5,597.5l-0.29,8.25 -0.29,8.25h12.92c12.56,0 12.94,-0.06 13.53,-2.25zM479.8,606.09c0.21,-5.25 -0.08,-7.65 -1,-8.23 -1.49,-0.95 -21.85,-1.16 -24.22,-0.25C453.34,598.08 453,599.77 453,605.44c0,3.97 0.31,7.54 0.7,7.92 0.38,0.38 6.34,0.57 13.25,0.42L479.5,613.5ZM437.96,576.07c1.13,-2.12 1.36,-9.26 0.4,-12.82 -0.59,-2.19 -0.97,-2.25 -13.49,-2.25L412,561v7.83c0,4.31 0.3,8.13 0.67,8.5C413.03,577.7 418.64,578 425.13,578c10.64,0 11.9,-0.19 12.83,-1.93zM478.8,577.15c0.92,-0.58 1.21,-2.98 1,-8.23L479.5,561.5h-13,-13l-0.3,7.41c-0.21,5.25 0.08,7.65 1,8.23 0.71,0.45 6.25,0.82 12.3,0.82 6.05,0 11.58,-0.37 12.3,-0.82zM438.37,538.75c0.33,-1.24 0.6,-3.6 0.6,-5.25 0,-7.61 0.21,-7.5 -14.09,-7.5L412,526v7.5,7.5h12.88c12.52,0 12.9,-0.06 13.49,-2.25zM479.5,533.5v-7h-13,-13l-0.3,5.89c-0.47,9.07 -1.04,8.71 13.53,8.39L479.5,540.5ZM438.92,292.63C437.9,291.71 432,289 432,289.44c0,0.62 5.18,3.46 6.42,3.52 0.5,0.02 0.73,-0.13 0.5,-0.33zM495.49,291.01c0.35,-0.57 -0.05,-0.73 -0.94,-0.39 -1.73,0.66 -2.05,1.38 -0.61,1.38 0.52,0 1.22,-0.44 1.55,-0.99zM503.8,285.5c4.22,-3.05 5.43,-5.5 2.7,-5.5 -0.82,0 -1.5,0.84 -1.5,1.86 0,1.05 -1.76,3.08 -4,4.64 -2.2,1.52 -4,2.96 -4,3.19 0,0.54 1.7,-0.51 6.8,-4.19zM430.45,288.24c-5.21,-4.19 -5.97,-4.66 -3.23,-1.99 1.55,1.51 3.12,2.75 3.5,2.75 0.38,0 0.26,-0.34 -0.27,-0.76zM473.47,283.75c2.79,-3.96 5.53,-14.67 5.52,-21.61C478.97,251.17 474.55,238 470.89,238c-2.42,0 -2.38,0.44 0.61,8.4 3.57,9.49 3.55,22.14 -0.06,31.17 -2.4,6 -2.53,8.43 -0.43,8.43 0.49,0 1.6,-1.01 2.47,-2.25zM420.94,279.25c-4.05,-4.62 -4.28,-4.84 -3.44,-3.25 0.99,1.87 4.67,6 5.35,6 0.28,0 -0.58,-1.24 -1.91,-2.75zM465.12,276.45c2.78,-6.28 3.74,-13.41 2.7,-20.04C466.78,249.8 463.57,243 461.48,243c-1.96,0 -1.82,2.34 0.52,9 1.06,3.03 1.93,7.53 1.93,10 0,2.47 -0.87,6.97 -1.93,10 -2.37,6.73 -2.48,9 -0.44,9 0.89,0 2.42,-1.96 3.57,-4.55zM514,279.06c0,-1.68 -1.77,-2.09 -2.36,-0.55C511.29,279.41 511.64,280 512.53,280 513.34,280 514,279.58 514,279.06ZM455.52,271.75c2.3,-5.63 2.3,-14.6 -0.01,-19.72 -2.92,-6.48 -6.78,-5 -4.05,1.55 1.96,4.68 1.96,11.47 0,16.15 -0.84,2.02 -1.31,4.25 -1.03,4.97 1,2.59 3.38,1.21 5.09,-2.95zM511.36,274.5C510.75,272.91 509,272.42 509,273.83c0,1.06 1.09,2.17 2.14,2.17 0.44,0 0.54,-0.68 0.23,-1.5zM501,272.56c0,-0.24 -0.45,-0.72 -1,-1.06 -0.55,-0.34 -1,-0.14 -1,0.44 0,0.58 0.45,1.06 1,1.06 0.55,0 1,-0.2 1,-0.44zM446.5,266.65c1.35,-3.53 1.46,-5.11 0.58,-8.38 -1.28,-4.74 -3.59,-7.15 -5.26,-5.48 -0.8,0.8 -0.76,1.93 0.16,4.14 1.19,2.87 1.1,4.71 -0.53,11.32 -0.57,2.32 -0.36,2.75 1.36,2.75 1.48,0 2.49,-1.19 3.7,-4.35zM499,263.5c-1.33,-1.6 -4,-2.05 -4,-0.67 0,1.37 1.21,2.17 3.29,2.17 1.63,0 1.75,-0.25 0.71,-1.5zM506,256c0,-0.55 -0.7,-1 -1.56,-1 -0.86,0 -1.28,0.45 -0.94,1 0.34,0.55 1.04,1 1.56,1 0.52,0 0.94,-0.45 0.94,-1zM507.46,252.07c0.32,-0.51 0.12,-1.21 -0.44,-1.56 -0.56,-0.35 -1.02,0.07 -1.02,0.93 0,1.76 0.6,2.02 1.46,0.63zM513.98,251.25c-0.01,-0.41 -0.92,-1.88 -2.01,-3.25 -1.92,-2.41 -1.96,-2.19 -0.5,2.5 0.47,1.52 2.55,2.14 2.51,0.75zM429.5,236.12c1.65,-1.25 2.33,-1.94 1.5,-1.53 -3.23,1.6 -9.07,6.7 -11.13,9.73 -1.63,2.39 -1.07,2.05 2.23,-1.37 2.42,-2.5 5.74,-5.58 7.39,-6.82zM507.44,241.91c-1.62,-1.7 -4.29,-4.02 -5.94,-5.16 -1.65,-1.14 -0.52,0.23 2.5,3.05 6.17,5.74 7.88,6.79 3.44,2.11zM498,234.52c0,-0.61 -7.65,-4.54 -8.71,-4.48 -0.43,0.02 1.24,1.13 3.71,2.45 5.04,2.7 5,2.68 5,2.02zM435.53,232.19c-0.31,-0.31 -1.11,-0 -1.79,0.68 -0.98,0.99 -0.87,1.1 0.56,0.56 0.99,-0.38 1.54,-0.93 1.23,-1.24zM95,629c0,-0.55 0.7,-1 1.56,-1 0.86,0 1.28,0.45 0.94,1 -0.34,0.55 -1.04,1 -1.56,1C95.42,630 95,629.55 95,629ZM149.08,577.42c0.05,-1.16 0.28,-1.4 0.6,-0.6 0.29,0.72 0.25,1.58 -0.08,1.92 -0.33,0.33 -0.57,-0.26 -0.53,-1.31zM154.67,569.33C153.7,568.36 153.85,566 154.88,566c0.49,0 1.12,0.9 1.41,2 0.51,1.97 -0.31,2.64 -1.62,1.33zM140,548.5c-0.69,-0.84 -0.8,-1.5 -0.24,-1.5 0.55,0 1.56,0.68 2.24,1.5 0.69,0.84 0.8,1.5 0.24,1.5 -0.55,0 -1.56,-0.68 -2.24,-1.5zM131.34,541.17c-5.57,-4.41 -7.87,-6.96 -7.04,-7.8 0.7,-0.7 11.38,8.35 12.12,10.28 0.76,1.99 0.25,1.74 -5.08,-2.48zM765.26,506.25c0.27,-1.51 1.44,-8.38 2.61,-15.25 1.17,-6.88 3.2,-17.23 4.52,-23 1.32,-5.78 2.2,-10.84 1.95,-11.25C774.09,456.34 772.4,456 770.59,456 766.81,456 761,454.19 761,453.01c0,-0.44 0.68,-1.05 1.5,-1.37 0.82,-0.32 1.5,-1.5 1.5,-2.63 0,-1.22 1.02,-2.52 2.5,-3.19 2.65,-1.21 3.26,-3.23 1.35,-4.41 -1.47,-0.91 1.75,-3.41 4.39,-3.41 1.17,0 1.74,-0.6 1.56,-1.65 -0.45,-2.54 1.8,-2.71 4.04,-0.3 2.23,2.39 4.17,1.88 4.17,-1.11 0,-2.34 1.55,-2.57 2.39,-0.36 1.15,2.99 0.6,6.09 -2.84,15.99 -1.9,5.46 -3.76,11.95 -4.14,14.43 -0.38,2.47 -1.05,4.97 -1.5,5.54 -0.45,0.57 -2.15,9 -3.79,18.73 -1.64,9.73 -3.27,18.15 -3.61,18.71 -0.35,0.56 -1.33,1.02 -2.18,1.02 -1.15,0 -1.43,-0.72 -1.07,-2.75zM1033.82,454.32c-1.6,-0.42 -2.39,-2.88 -4.36,-13.59 -0.73,-3.99 0.58,-6.74 3.22,-6.74 0.99,0 1.25,0.63 0.81,2 -0.49,1.54 -0.18,2 1.35,2 4.35,0 7.22,3.14 3.9,4.25 -1.62,0.55 0.83,3.75 2.87,3.75 0.76,0 1.38,0.75 1.38,1.67 0,0.92 0.73,2.48 1.63,3.47 1.53,1.69 1.46,1.87 -1.07,2.83 -2.71,1.03 -6.63,1.17 -9.75,0.35zM301.01,452.92c0.01,-2.83 2.11,-8.92 3.08,-8.92 0.54,0 2.11,0.73 3.47,1.63 1.94,1.27 2.24,1.92 1.34,3 -0.63,0.76 -1.62,1.37 -2.2,1.37 -0.58,0 -2.1,0.98 -3.38,2.17 -1.65,1.55 -2.31,1.76 -2.31,0.75zM827.26,431.33C822.99,430.44 822,427.44 822,415.39c0,-9.5 0.28,-11.52 1.91,-13.53L825.82,399.5L852.5,399.5 879.18,399.5l1.91,2.36C882.72,403.87 883,405.89 883,415.5c0,17.05 1.92,15.97 -28.66,16.15 -13.66,0.08 -25.85,-0.06 -27.08,-0.32zM768,418.96c0,-0.57 0.79,-0.91 1.75,-0.75 1.81,0.3 1.96,-0.77 0.68,-5.02 -0.55,-1.83 -0.26,-2.42 1.44,-2.87 2.28,-0.59 2.77,-1.81 1.14,-2.82 -1.99,-1.23 1.74,-6.24 5,-6.72 3.17,-0.46 4.87,0.55 2.93,1.75 -0.71,0.44 -0.31,1.51 1.16,3.07 2.83,3.02 3.67,3 5.07,-0.08 0.84,-1.85 0.83,-2.82 -0.04,-3.88 -0.91,-1.09 -0.79,-2.07 0.52,-4.36 1.1,-1.91 1.41,-3.63 0.89,-4.87 -1.1,-2.64 -1.28,-6.46 -0.33,-7.05 0.43,-0.27 0.53,-1.52 0.21,-2.78 -0.47,-1.87 0.51,-3.26 5.24,-7.48 5.35,-4.77 5.89,-5.03 6.69,-3.21 0.97,2.17 -4.47,19.25 -7.1,22.3 -0.8,0.93 -1.18,2.14 -0.84,2.69 0.34,0.55 -0.58,3.99 -2.04,7.64 -2.35,5.86 -3.17,6.89 -7.02,8.76 -2.4,1.17 -4.36,2.48 -4.36,2.92 0,0.44 -1.13,0.8 -2.5,0.8 -1.56,0 -2.5,0.57 -2.5,1.5 0,1 -1,1.5 -3,1.5 -1.65,0 -3,-0.47 -3,-1.04zM779,408.44c0,-0.86 -0.46,-1.28 -1.02,-0.93 -0.56,0.35 -0.76,1.05 -0.44,1.56 0.86,1.39 1.46,1.13 1.46,-0.63zM1034,418.44c0,-0.94 -0.7,-1.44 -1.76,-1.26 -2.39,0.41 -9.24,-4.97 -9.24,-7.25 0,-1.01 0.94,-2.72 2.1,-3.79 1.38,-1.29 1.88,-2.62 1.47,-3.92 -0.56,-1.76 -0.28,-1.9 2.64,-1.3 3.6,0.74 7.45,5.93 5.05,6.81 -1.97,0.72 -1.46,2.29 0.75,2.29 2.24,0 2.83,3.77 0.89,5.71 -1.45,1.45 -0.25,3.36 1.64,2.64 0.81,-0.31 1.47,-0.07 1.47,0.54 0,0.61 -1.13,1.11 -2.5,1.11 -1.6,0 -2.5,-0.56 -2.5,-1.56zM1030,407.94c0,-0.52 -0.45,-0.94 -1,-0.94 -0.55,0 -1,0.7 -1,1.56 0,0.86 0.45,1.28 1,0.94 0.55,-0.34 1,-1.04 1,-1.56zM313,408.43c0,-0.93 0.68,-1.44 1.67,-1.25C317.18,407.66 317.52,410 315.08,410 313.86,410 313,409.35 313,408.43ZM1018,385.94c0,-0.58 0.45,-0.78 1,-0.44 0.55,0.34 1,0.82 1,1.06 0,0.24 -0.45,0.44 -1,0.44 -0.55,0 -1,-0.48 -1,-1.06zM1016.6,382.41c-0.33,-0.87 -0.6,-2.27 -0.6,-3.12 0,-1.26 0.28,-1.31 1.5,-0.3 1.67,1.39 1.97,3.59 0.6,4.44 -0.49,0.3 -1.17,-0.16 -1.5,-1.02zM254.48,370.69c-11.3,-5.38 -18.25,-17.52 -17.24,-30.14 0.91,-11.34 7.28,-20.17 18.11,-25.12 5.16,-2.36 6.77,-2.62 13.61,-2.23 6.26,0.36 8.8,1.03 13.14,3.47 20.79,11.66 20.33,42.61 -0.78,53.35 -7.2,3.66 -19.9,3.98 -26.85,0.67zM273.91,347.85c8.03,-5.03 15.21,-9.72 15.97,-10.42 1.65,-1.52 0.81,-5.96 -1.28,-6.76 -0.78,-0.3 -6.97,2.93 -13.76,7.18 -6.79,4.25 -12.88,8.06 -13.54,8.46 -0.77,0.47 -2.66,-1.42 -5.29,-5.29C253.77,337.71 251.46,335 250.9,335 248.84,335 246,337.11 246,338.63 246,340.81 256.69,357 258.14,357c0.65,0 7.75,-4.12 15.77,-9.15zM801.5,368c0.34,-0.55 0.82,-1 1.06,-1 0.24,0 0.44,0.45 0.44,1 0,0.55 -0.48,1 -1.06,1 -0.58,0 -0.78,-0.45 -0.44,-1zM884.25,357.3c-2.72,-4.84 -12.25,-21.96 -21.18,-38.05l-16.24,-29.25 5.17,-6.5c2.84,-3.57 5.47,-6.49 5.84,-6.48 0.37,0.01 13.94,10.13 30.16,22.49 16.23,12.35 30.29,22.47 31.26,22.48 0.97,0.01 14.24,-10.11 29.5,-22.48 15.26,-12.37 28.02,-22.5 28.37,-22.5 0.34,-0 4.02,3.74 8.18,8.31l7.55,8.32 -21.4,35.93C959.68,349.33 949.53,365.5 948.9,365.5c-0.64,0 -7.18,-8.77 -14.55,-19.5 -8.03,-11.69 -14.04,-19.5 -15,-19.5 -0.96,0 -6.97,7.81 -15,19.5 -7.36,10.73 -13.79,19.64 -14.28,19.8 -0.49,0.17 -3.11,-3.66 -5.83,-8.5zM878.75,166.92c-2.01,-1.17 -2.35,-5.92 -0.55,-7.72 0.66,-0.66 2.14,-1.2 3.3,-1.2 4.63,0 6.17,5.71 2.28,8.44 -2.58,1.81 -2.72,1.82 -5.03,0.48zM948.17,166.4c-3.25,-2.28 -2.61,-6.54 1.19,-7.86 2.45,-0.86 3.12,-0.67 4.75,1.34 2.38,2.94 2.37,3.64 -0.1,6.12 -2.41,2.41 -2.91,2.45 -5.83,0.4zM817.26,133.36c-0.42,-1.02 -0.75,-8.84 -0.74,-17.36 0.01,-12.93 0.39,-16.88 2.28,-23.84 4.61,-17 12.91,-31.18 25.58,-43.7C862.23,30.82 884.1,21.43 910,20.31 938.83,19.06 964.19,28.54 984.03,48c13.12,12.87 21.06,26 26.02,43.07 2.41,8.29 3.87,33.73 2.28,39.78l-0.88,3.35 -7.73,0.28c-7.39,0.27 -7.76,0.18 -8.32,-2.06 -1.06,-4.2 -2.16,-4.38 -16.92,-2.77 -9.86,1.08 -18.83,1.35 -30.47,0.94 -30.69,-1.09 -49.16,-6.77 -64.2,-19.73l-5.7,-4.91 -4.59,4.59c-5.69,5.69 -15.97,10.68 -28.53,13.85 -9.19,2.32 -9.52,2.5 -10.86,6 -1.34,3.49 -1.55,3.61 -6.5,3.62 -2.81,0.01 -6.12,0.28 -7.35,0.61 -1.61,0.43 -2.45,0.08 -3,-1.26z"
+        android:fillColor="#8dafad"/>
+    <path
+        android:pathData="M400,220l0,80l150,0l0,-80z"
+        android:fillColor="#ffffff"/>
+    <path
+        android:pathData="m374.13,636.25c-1.28,-1.07 -10.83,-23.01 -24.62,-56.55 -12.39,-30.14 -23.44,-56.58 -24.54,-58.75L322.96,517L310.13,517c-12.78,0 -19.54,-1.2 -18.86,-3.36 0.2,-0.62 7.46,-6.87 16.14,-13.89L323.18,487L465.09,487 607,487l0.12,-2.75c0.37,-8.32 -0.34,-151.79 -0.75,-152.46C606.1,331.36 555.39,331 493.69,331L381.49,331l-2.32,-5.06c-3.19,-6.96 -6.89,-9.16 -14.55,-8.67 -3.93,0.25 -6.28,0.92 -7.07,2 -0.65,0.89 -3.54,10.31 -6.41,20.93 -2.88,10.62 -5.6,20.22 -6.06,21.34 -0.61,1.49 -3.3,2.78 -10.07,4.8 -5.08,1.52 -9.4,2.6 -9.59,2.41 -0.2,-0.2 6.41,-25.02 14.68,-55.16 8.27,-30.14 14.83,-55.34 14.58,-56 -0.25,-0.66 -3.77,-2.11 -7.81,-3.22 -4.04,-1.11 -30.66,-8.47 -59.14,-16.35 -31.04,-8.59 -52.14,-13.97 -52.67,-13.42 -0.74,0.76 -15.2,52.7 -50.75,182.23 -3.78,13.79 -5.25,20.64 -4.56,21.33 1.02,1.02 109.32,31.36 116.62,32.67 3.83,0.69 3.88,0.76 6.09,8.43 1.23,4.25 2,7.96 1.72,8.25 -1.21,1.21 -7.08,-0.23 -57.53,-14.05 -79.53,-21.79 -78.56,-21.5 -81.73,-24.17 -4.27,-3.59 -5.34,-8.82 -3.36,-16.5 2.33,-9.07 33.86,-122.8 38.47,-138.77 2.14,-7.43 7.29,-25.88 11.43,-41 4.14,-15.13 8.28,-28.95 9.19,-30.73 2.07,-4.05 9.2,-7.76 13.14,-6.83 1.5,0.35 28.33,7.67 59.62,16.28l56.9,15.64 1.79,-2.21c0.98,-1.21 4.52,-7.57 7.86,-14.13 3.34,-6.56 7.07,-12.62 8.28,-13.47 1.95,-1.37 12.8,-1.55 93.93,-1.55h91.72l2.45,2.25c1.37,1.26 11.59,21.24 23.15,45.25 11.39,23.65 21.34,44.01 22.13,45.25 1.32,2.09 2.15,2.25 11.34,2.25 13.85,0 18.27,2.1 22.15,10.5 1.75,3.8 1.85,8.73 1.87,97.28 0.02,101.03 0.22,97.16 -5.28,103.05 -3.67,3.93 -7.17,5.17 -14.63,5.17 -6.2,0 -7.19,0.27 -8.45,2.25 -0.78,1.24 -10.75,26.77 -22.15,56.75 -11.4,29.98 -21.35,55.72 -22.11,57.22 -0.76,1.5 -2.25,3.18 -3.3,3.75 -1.28,0.68 -32.57,1.03 -93.38,1.03 -85.64,0 -91.59,-0.11 -93.54,-1.75zM438.8,614.8c0.72,-0.72 1.2,-4.22 1.2,-8.8 0,-4.58 -0.48,-8.08 -1.2,-8.8 -0.81,-0.81 -5.33,-1.2 -13.8,-1.2 -8.47,0 -12.99,0.39 -13.8,1.2 -1.6,1.6 -1.6,16 0,17.6 0.81,0.81 5.33,1.2 13.8,1.2 8.47,0 12.99,-0.39 13.8,-1.2zM479.79,615.15c0.94,-0.59 1.21,-3.28 1,-9.73L480.5,596.5 466.8,596.22c-13.15,-0.27 -13.75,-0.19 -14.86,1.88 -1.63,3.04 -0.81,15.74 1.09,16.94 1.81,1.14 24.98,1.24 26.76,0.11zM438.8,577.8c0.72,-0.72 1.2,-4.22 1.2,-8.8 0,-4.58 -0.48,-8.08 -1.2,-8.8 -0.81,-0.81 -5.33,-1.2 -13.8,-1.2 -8.47,0 -12.99,0.39 -13.8,1.2 -1.6,1.6 -1.6,16 0,17.6 0.81,0.81 5.33,1.2 13.8,1.2 8.47,0 12.99,-0.39 13.8,-1.2zM480.79,569.58c0.21,-6.46 -0.06,-9.14 -1,-9.73 -1.78,-1.13 -24.95,-1.04 -26.76,0.11 -1.9,1.2 -2.72,13.9 -1.09,16.94 1.11,2.07 1.7,2.15 14.86,1.88L480.5,578.5ZM438.07,541.96C439.7,541.09 440,539.83 440,533.9 440,522.91 440.12,523 425.54,523 410.21,523 410,523.14 410,533.52c0,5.97 0.33,7.57 1.75,8.4 2.3,1.34 23.83,1.38 26.32,0.04zM479.07,541.96c1.66,-0.89 1.93,-2.15 1.93,-8.8 0,-4.71 -0.47,-8.24 -1.2,-8.96 -0.8,-0.8 -5.24,-1.2 -13.38,-1.2 -14.36,0 -14.65,0.18 -15.24,9.5 -0.34,5.38 -0.1,6.59 1.71,8.4 1.89,1.89 3.25,2.11 13.18,2.11 6.09,0 11.94,-0.47 13,-1.04zM481.38,297.49c8.81,-2.29 15.49,-5.47 22.23,-10.58 3.36,-2.54 6.57,-4.91 7.13,-5.26 0.56,-0.35 2.71,0.71 4.77,2.36 3.66,2.91 6.48,3.84 6.48,2.15 0,-0.46 -1.11,-1.34 -2.46,-1.96 -1.36,-0.62 -3.58,-3.33 -4.95,-6.03 -1.74,-3.43 -5.36,-7.38 -12.04,-13.12 -9.04,-7.78 -10.81,-10.15 -8.58,-11.52 0.53,-0.33 5.36,1.64 10.73,4.38 5.37,2.74 10,4.73 10.28,4.43 0.29,-0.3 -0.58,-1.28 -1.93,-2.19 -4.88,-3.28 -6.36,-4.84 -5.65,-5.98 0.88,-1.43 7.05,-1.53 9.62,-0.15 1.04,0.56 5.56,6.52 10.05,13.25 7.82,11.73 9.92,14.22 9.92,11.79 0,-2.26 -14.46,-22.75 -20.38,-28.89 -13.6,-14.09 -15.67,-15.89 -21.77,-18.95 -9.69,-4.86 -17.73,-6.61 -30.35,-6.59 -17.55,0.02 -30.62,4.69 -41.3,14.73 -7.49,7.04 -10.17,13.03 -10.19,22.71 -0.01,6.12 0.48,8.53 2.56,12.72 4.96,9.95 18.18,19.28 32.07,22.65 8,1.94 26.43,1.98 33.74,0.08zM451.49,294.98c-16.92,-3.36 -29.95,-12.79 -34.6,-25.02 -2.43,-6.41 -2.38,-9.57 0.26,-16.64 4.12,-11.02 15.86,-19.83 31.85,-23.91 5.01,-1.28 9.36,-1.54 19,-1.17 13.79,0.54 21.93,2.86 30.32,8.63 4.63,3.19 11.68,10.51 11.68,12.13 0,1.68 -1.87,1.11 -2.94,-0.9 -1.55,-2.9 -19.04,-5.56 -20.54,-3.13 -1.33,2.15 -3.19,14.85 -2.39,16.28 0.46,0.83 2.87,1.81 5.34,2.18 4.12,0.62 4.66,1.04 6.44,5.06 1.07,2.41 1.7,5.3 1.41,6.41 -0.4,1.54 0.34,2.53 3.12,4.18 2.01,1.18 3.49,2.64 3.29,3.23 -0.63,1.88 -9.55,7.47 -15.49,9.7 -3.16,1.18 -8.21,2.56 -11.24,3.06 -6.52,1.08 -19.87,1.02 -25.51,-0.1zM474.87,283.25c6.69,-13.13 6.79,-29.24 0.26,-42 -1.47,-2.87 -2.83,-4.25 -4.18,-4.25 -3.12,0 -3.21,2.02 -0.38,8.98 3.68,9.07 3.71,21.6 0.06,31.29 -1.4,3.72 -2.29,7.43 -1.98,8.25 1.07,2.78 4.24,1.62 6.22,-2.27zM466,276.5c2.14,-4.28 2.5,-6.37 2.5,-14.5 0,-8.13 -0.36,-10.22 -2.5,-14.5 -4.69,-9.37 -8.72,-6.35 -5.14,3.86 2.71,7.71 2.71,12.86 0.01,21.08 -1.17,3.56 -1.85,7.2 -1.5,8.09 1.11,2.89 4.07,1.09 6.63,-4.03zM456.03,272.75C459.92,264.17 457.34,247 452.16,247c-2.75,0 -3.38,2.53 -1.65,6.68C451.33,255.64 452,259.38 452,262c0,2.62 -0.67,6.36 -1.49,8.32 -3.07,7.35 2.22,9.69 5.52,2.43zM447.17,267.35c1.81,-4.09 1.91,-5.14 0.84,-8.75C446.52,253.58 445.31,252 442.94,252c-2.69,0 -3.21,1.59 -1.79,5.52 1.01,2.79 1.02,4.44 0.05,8.07 -1.37,5.12 -0.98,6.42 1.93,6.42 1.42,0 2.6,-1.36 4.05,-4.65zM501.86,276.98 L499.5,274.95 503.5,275.56c6.01,0.92 7.59,1.48 6.96,2.51 -1.02,1.64 -6.16,0.99 -8.59,-1.09zM501.74,271.34C498.35,268.93 496.75,266 498.82,266c1.51,0 9.09,6.34 8.57,7.18 -0.8,1.29 -1.65,1.01 -5.65,-1.84zM489,261.22c-3.48,-1.13 -3.77,-2.08 -2.42,-7.87 1.8,-7.73 2.16,-7.97 10.08,-6.61 7.44,1.27 9.48,2.93 7.49,6.07 -0.67,1.06 -1.51,0.98 -4.38,-0.38 -6.55,-3.12 -11.87,0.71 -8.38,6.03 1.65,2.52 0.61,3.73 -2.38,2.76zM303,449.08c0,-0.51 0.27,-1.62 0.6,-2.48 0.48,-1.25 1.01,-1.34 2.68,-0.45 2.02,1.08 2.02,1.16 0.21,2.48C304.32,450.22 303,450.39 303,449.08ZM878.6,164.85c-2.13,-3.04 -0.41,-6.07 3.21,-5.66 3.02,0.35 4.2,3.87 2.14,6.36 -1.7,2.05 -3.6,1.79 -5.35,-0.71zM948.2,165.8c-2.51,-2.51 -0.64,-6.8 2.96,-6.8 0.97,0 2.23,0.87 2.8,1.93 1.34,2.5 1.32,2.64 -0.54,4.49 -1.88,1.88 -3.6,2 -5.23,0.37zM817.26,133.36c-0.42,-1.02 -0.75,-8.84 -0.74,-17.36 0.01,-12.93 0.39,-16.88 2.28,-23.84 4.61,-17 12.91,-31.18 25.58,-43.7C862.23,30.82 884.1,21.43 910,20.31 938.83,19.06 964.19,28.54 984.03,48c13.12,12.87 21.06,26 26.02,43.07 2.41,8.29 3.87,33.73 2.28,39.78l-0.88,3.35 -7.73,0.28c-7.39,0.27 -7.76,0.18 -8.32,-2.06 -1.06,-4.2 -2.16,-4.38 -16.92,-2.77 -9.86,1.08 -18.83,1.35 -30.47,0.94 -30.69,-1.09 -49.16,-6.77 -64.2,-19.73l-5.7,-4.91 -4.59,4.59c-5.69,5.69 -15.97,10.68 -28.53,13.85 -9.19,2.32 -9.52,2.5 -10.86,6 -1.34,3.49 -1.55,3.61 -6.5,3.62 -2.81,0.01 -6.12,0.28 -7.35,0.61 -1.61,0.43 -2.45,0.08 -3,-1.26z"
+        android:fillColor="#e8a001"/>
+    <path
+        android:pathData="m374.13,636.25c-1.28,-1.07 -10.83,-23.01 -24.62,-56.55 -12.39,-30.14 -23.44,-56.58 -24.54,-58.75L322.96,517L310.13,517c-12.78,0 -19.54,-1.2 -18.86,-3.36 0.2,-0.62 7.46,-6.87 16.14,-13.89L323.18,487L465.09,487 607,487l0.12,-2.75c0.37,-8.32 -0.34,-151.79 -0.75,-152.46C606.1,331.36 555.39,331 493.69,331L381.49,331l-2.32,-5.06c-3.19,-6.96 -6.89,-9.16 -14.55,-8.67 -3.93,0.25 -6.28,0.92 -7.07,2 -0.65,0.89 -3.54,10.31 -6.41,20.93 -2.88,10.62 -5.6,20.22 -6.06,21.34 -0.61,1.49 -3.3,2.78 -10.07,4.8 -5.08,1.52 -9.4,2.6 -9.59,2.41 -0.2,-0.2 6.41,-25.02 14.68,-55.16 8.27,-30.14 14.83,-55.34 14.58,-56 -0.25,-0.66 -3.77,-2.11 -7.81,-3.22 -4.04,-1.11 -30.66,-8.47 -59.14,-16.35 -31.04,-8.59 -52.14,-13.97 -52.67,-13.42 -0.74,0.76 -15.2,52.7 -50.75,182.23 -3.78,13.79 -5.25,20.64 -4.56,21.33 1.02,1.02 109.32,31.36 116.62,32.67 3.83,0.69 3.88,0.76 6.09,8.43 1.23,4.25 2,7.96 1.72,8.25 -1.21,1.21 -7.08,-0.23 -57.53,-14.05 -79.53,-21.79 -78.56,-21.5 -81.73,-24.17 -4.27,-3.59 -5.34,-8.82 -3.36,-16.5 2.33,-9.07 33.86,-122.8 38.47,-138.77 2.14,-7.43 7.29,-25.88 11.43,-41 4.14,-15.13 8.28,-28.95 9.19,-30.73 2.07,-4.05 9.2,-7.76 13.14,-6.83 1.5,0.35 28.33,7.67 59.62,16.28l56.9,15.64 1.79,-2.21c0.98,-1.21 4.52,-7.57 7.86,-14.13 3.34,-6.56 7.07,-12.62 8.28,-13.47 1.95,-1.37 12.8,-1.55 93.93,-1.55h91.72l2.45,2.25c1.37,1.26 11.59,21.24 23.15,45.25 11.39,23.65 21.34,44.01 22.13,45.25 1.32,2.09 2.15,2.25 11.34,2.25 13.85,0 18.27,2.1 22.15,10.5 1.75,3.8 1.85,8.73 1.87,97.28 0.02,101.03 0.22,97.16 -5.28,103.05 -3.67,3.93 -7.17,5.17 -14.63,5.17 -6.2,0 -7.19,0.27 -8.45,2.25 -0.78,1.24 -10.75,26.77 -22.15,56.75 -11.4,29.98 -21.35,55.72 -22.11,57.22 -0.76,1.5 -2.25,3.18 -3.3,3.75 -1.28,0.68 -32.57,1.03 -93.38,1.03 -85.64,0 -91.59,-0.11 -93.54,-1.75zM438.8,614.8c0.72,-0.72 1.2,-4.22 1.2,-8.8 0,-4.58 -0.48,-8.08 -1.2,-8.8 -0.81,-0.81 -5.33,-1.2 -13.8,-1.2 -8.47,0 -12.99,0.39 -13.8,1.2 -1.6,1.6 -1.6,16 0,17.6 0.81,0.81 5.33,1.2 13.8,1.2 8.47,0 12.99,-0.39 13.8,-1.2zM479.79,615.15c0.94,-0.59 1.21,-3.28 1,-9.73L480.5,596.5 466.8,596.22c-13.15,-0.27 -13.75,-0.19 -14.86,1.88 -1.63,3.04 -0.81,15.74 1.09,16.94 1.81,1.14 24.98,1.24 26.76,0.11zM438.8,577.8c0.72,-0.72 1.2,-4.22 1.2,-8.8 0,-4.58 -0.48,-8.08 -1.2,-8.8 -0.81,-0.81 -5.33,-1.2 -13.8,-1.2 -8.47,0 -12.99,0.39 -13.8,1.2 -1.6,1.6 -1.6,16 0,17.6 0.81,0.81 5.33,1.2 13.8,1.2 8.47,0 12.99,-0.39 13.8,-1.2zM480.79,569.58c0.21,-6.46 -0.06,-9.14 -1,-9.73 -1.78,-1.13 -24.95,-1.04 -26.76,0.11 -1.9,1.2 -2.72,13.9 -1.09,16.94 1.11,2.07 1.7,2.15 14.86,1.88L480.5,578.5ZM521.8,577.8c0.72,-0.72 1.2,-4.22 1.2,-8.8 0,-4.58 -0.48,-8.08 -1.2,-8.8 -1.51,-1.51 -24.09,-1.65 -26.87,-0.16 -1.66,0.89 -1.93,2.15 -1.93,8.8 0,4.71 0.47,8.24 1.2,8.96 0.81,0.81 5.33,1.2 13.8,1.2 8.47,0 12.99,-0.39 13.8,-1.2zM438.07,541.96C439.7,541.09 440,539.83 440,533.9 440,522.91 440.12,523 425.54,523 410.21,523 410,523.14 410,533.52c0,5.97 0.33,7.57 1.75,8.4 2.3,1.34 23.83,1.38 26.32,0.04zM479.07,541.96c1.66,-0.89 1.93,-2.15 1.93,-8.8 0,-4.71 -0.47,-8.24 -1.2,-8.96 -0.8,-0.8 -5.24,-1.2 -13.38,-1.2 -14.36,0 -14.65,0.18 -15.24,9.5 -0.34,5.38 -0.1,6.59 1.71,8.4 1.89,1.89 3.25,2.11 13.18,2.11 6.09,0 11.94,-0.47 13,-1.04zM481.38,297.49c8.81,-2.29 15.49,-5.47 22.23,-10.58 3.36,-2.54 6.57,-4.91 7.13,-5.26 0.56,-0.35 2.71,0.71 4.77,2.36 3.66,2.91 6.48,3.84 6.48,2.15 0,-0.46 -1.11,-1.34 -2.46,-1.96 -1.36,-0.62 -3.58,-3.33 -4.95,-6.03 -1.74,-3.43 -5.36,-7.38 -12.04,-13.12 -9.04,-7.78 -10.81,-10.15 -8.58,-11.52 0.53,-0.33 5.36,1.64 10.73,4.38 5.37,2.74 10,4.73 10.28,4.43 0.29,-0.3 -0.58,-1.28 -1.93,-2.19 -4.88,-3.28 -6.36,-4.84 -5.65,-5.98 0.88,-1.43 7.05,-1.53 9.62,-0.15 1.04,0.56 5.56,6.52 10.05,13.25 7.82,11.73 9.92,14.22 9.92,11.79 0,-2.26 -14.46,-22.75 -20.38,-28.89 -13.6,-14.09 -15.67,-15.89 -21.77,-18.95 -9.69,-4.86 -17.73,-6.61 -30.35,-6.59 -17.55,0.02 -30.62,4.69 -41.3,14.73 -7.49,7.04 -10.17,13.03 -10.19,22.71 -0.01,6.12 0.48,8.53 2.56,12.72 4.96,9.95 18.18,19.28 32.07,22.65 8,1.94 26.43,1.98 33.74,0.08zM451.49,294.98c-16.92,-3.36 -29.95,-12.79 -34.6,-25.02 -2.43,-6.41 -2.38,-9.57 0.26,-16.64 4.12,-11.02 15.86,-19.83 31.85,-23.91 5.01,-1.28 9.36,-1.54 19,-1.17 13.79,0.54 21.93,2.86 30.32,8.63 4.63,3.19 11.68,10.51 11.68,12.13 0,1.68 -1.87,1.11 -2.94,-0.9 -1.55,-2.9 -19.04,-5.56 -20.54,-3.13 -1.33,2.15 -3.19,14.85 -2.39,16.28 0.46,0.83 2.87,1.81 5.34,2.18 4.12,0.62 4.66,1.04 6.44,5.06 1.07,2.41 1.7,5.3 1.41,6.41 -0.4,1.54 0.34,2.53 3.12,4.18 2.01,1.18 3.49,2.64 3.29,3.23 -0.63,1.88 -9.55,7.47 -15.49,9.7 -3.16,1.18 -8.21,2.56 -11.24,3.06 -6.52,1.08 -19.87,1.02 -25.51,-0.1zM474.87,283.25c6.69,-13.13 6.79,-29.24 0.26,-42 -1.47,-2.87 -2.83,-4.25 -4.18,-4.25 -3.12,0 -3.21,2.02 -0.38,8.98 3.68,9.07 3.71,21.6 0.06,31.29 -1.4,3.72 -2.29,7.43 -1.98,8.25 1.07,2.78 4.24,1.62 6.22,-2.27zM466,276.5c2.14,-4.28 2.5,-6.37 2.5,-14.5 0,-8.13 -0.36,-10.22 -2.5,-14.5 -4.69,-9.37 -8.72,-6.35 -5.14,3.86 2.71,7.71 2.71,12.86 0.01,21.08 -1.17,3.56 -1.85,7.2 -1.5,8.09 1.11,2.89 4.07,1.09 6.63,-4.03zM456.03,272.75C459.92,264.17 457.34,247 452.16,247c-2.75,0 -3.38,2.53 -1.65,6.68C451.33,255.64 452,259.38 452,262c0,2.62 -0.67,6.36 -1.49,8.32 -3.07,7.35 2.22,9.69 5.52,2.43zM447.17,267.35c1.81,-4.09 1.91,-5.14 0.84,-8.75C446.52,253.58 445.31,252 442.94,252c-2.69,0 -3.21,1.59 -1.79,5.52 1.01,2.79 1.02,4.44 0.05,8.07 -1.37,5.12 -0.98,6.42 1.93,6.42 1.42,0 2.6,-1.36 4.05,-4.65zM501.86,276.98 L499.5,274.95 503.5,275.56c6.01,0.92 7.59,1.48 6.96,2.51 -1.02,1.64 -6.16,0.99 -8.59,-1.09zM501.74,271.34C498.35,268.93 496.75,266 498.82,266c1.51,0 9.09,6.34 8.57,7.18 -0.8,1.29 -1.65,1.01 -5.65,-1.84zM489,261.22c-3.48,-1.13 -3.77,-2.08 -2.42,-7.87 1.8,-7.73 2.16,-7.97 10.08,-6.61 7.44,1.27 9.48,2.93 7.49,6.07 -0.67,1.06 -1.51,0.98 -4.38,-0.38 -6.55,-3.12 -11.87,0.71 -8.38,6.03 1.65,2.52 0.61,3.73 -2.38,2.76zM303,449.08c0,-0.51 0.27,-1.62 0.6,-2.48 0.48,-1.25 1.01,-1.34 2.68,-0.45 2.02,1.08 2.02,1.16 0.21,2.48C304.32,450.22 303,450.39 303,449.08ZM878.6,164.85c-2.13,-3.04 -0.41,-6.07 3.21,-5.66 3.02,0.35 4.2,3.87 2.14,6.36 -1.7,2.05 -3.6,1.79 -5.35,-0.71zM948.2,165.8c-2.51,-2.51 -0.64,-6.8 2.96,-6.8 0.97,0 2.23,0.87 2.8,1.93 1.34,2.5 1.32,2.64 -0.54,4.49 -1.88,1.88 -3.6,2 -5.23,0.37z"
+        android:fillColor="#e45224"/>
+    <path
+        android:pathData="m374.13,636.25c-1.28,-1.07 -10.83,-23.01 -24.62,-56.55 -12.39,-30.14 -23.44,-56.58 -24.54,-58.75L322.96,517L310.13,517c-12.78,0 -19.54,-1.2 -18.86,-3.36 0.2,-0.62 7.46,-6.87 16.14,-13.89L323.18,487L465.09,487 607,487l0.12,-2.75c0.37,-8.32 -0.34,-151.79 -0.75,-152.46C606.1,331.36 555.39,331 493.69,331L381.49,331l-2.32,-5.06c-3.19,-6.96 -6.89,-9.16 -14.55,-8.67 -3.93,0.25 -6.28,0.92 -7.07,2 -0.65,0.89 -3.54,10.31 -6.41,20.93 -2.88,10.62 -5.6,20.22 -6.06,21.34 -0.61,1.49 -3.3,2.78 -10.07,4.8 -5.08,1.52 -9.4,2.6 -9.59,2.41 -0.2,-0.2 6.41,-25.02 14.68,-55.16 8.27,-30.14 14.83,-55.34 14.58,-56 -0.25,-0.66 -3.77,-2.11 -7.81,-3.22 -4.04,-1.11 -30.66,-8.47 -59.14,-16.35 -31.04,-8.59 -52.14,-13.97 -52.67,-13.42 -0.74,0.76 -15.2,52.7 -50.75,182.23 -3.78,13.79 -5.25,20.64 -4.56,21.33 1.02,1.02 109.32,31.36 116.62,32.67 3.83,0.69 3.88,0.76 6.09,8.43 1.23,4.25 2,7.96 1.72,8.25 -1.21,1.21 -7.08,-0.23 -57.53,-14.05 -79.53,-21.79 -78.56,-21.5 -81.73,-24.17 -4.27,-3.59 -5.34,-8.82 -3.36,-16.5 2.33,-9.07 33.86,-122.8 38.47,-138.77 2.14,-7.43 7.29,-25.88 11.43,-41 4.14,-15.13 8.28,-28.95 9.19,-30.73 2.07,-4.05 9.2,-7.76 13.14,-6.83 1.5,0.35 28.33,7.67 59.62,16.28l56.9,15.64 1.79,-2.21c0.98,-1.21 4.52,-7.57 7.86,-14.13 3.34,-6.56 7.07,-12.62 8.28,-13.47 1.95,-1.37 12.8,-1.55 93.93,-1.55h91.72l2.45,2.25c1.37,1.26 11.59,21.24 23.15,45.25 11.39,23.65 21.34,44.01 22.13,45.25 1.32,2.09 2.15,2.25 11.34,2.25 13.85,0 18.27,2.1 22.15,10.5 1.75,3.8 1.85,8.73 1.87,97.28 0.02,101.03 0.22,97.16 -5.28,103.05 -3.67,3.93 -7.17,5.17 -14.63,5.17 -6.2,0 -7.19,0.27 -8.45,2.25 -0.78,1.24 -10.75,26.77 -22.15,56.75 -11.4,29.98 -21.35,55.72 -22.11,57.22 -0.76,1.5 -2.25,3.18 -3.3,3.75 -1.28,0.68 -32.57,1.03 -93.38,1.03 -85.64,0 -91.59,-0.11 -93.54,-1.75zM438.8,614.8c0.72,-0.72 1.2,-4.22 1.2,-8.8 0,-4.58 -0.48,-8.08 -1.2,-8.8 -0.81,-0.81 -5.33,-1.2 -13.8,-1.2 -8.47,0 -12.99,0.39 -13.8,1.2 -1.6,1.6 -1.6,16 0,17.6 0.81,0.81 5.33,1.2 13.8,1.2 8.47,0 12.99,-0.39 13.8,-1.2zM479.79,615.15c0.94,-0.59 1.21,-3.28 1,-9.73L480.5,596.5 466.8,596.22c-13.15,-0.27 -13.75,-0.19 -14.86,1.88 -1.63,3.04 -0.81,15.74 1.09,16.94 1.81,1.14 24.98,1.24 26.76,0.11zM438.8,577.8c0.72,-0.72 1.2,-4.22 1.2,-8.8 0,-4.58 -0.48,-8.08 -1.2,-8.8 -0.81,-0.81 -5.33,-1.2 -13.8,-1.2 -8.47,0 -12.99,0.39 -13.8,1.2 -1.6,1.6 -1.6,16 0,17.6 0.81,0.81 5.33,1.2 13.8,1.2 8.47,0 12.99,-0.39 13.8,-1.2zM480.79,569.58c0.21,-6.46 -0.06,-9.14 -1,-9.73 -1.78,-1.13 -24.95,-1.04 -26.76,0.11 -1.9,1.2 -2.72,13.9 -1.09,16.94 1.11,2.07 1.7,2.15 14.86,1.88L480.5,578.5ZM521.8,577.8c0.72,-0.72 1.2,-4.22 1.2,-8.8 0,-4.58 -0.48,-8.08 -1.2,-8.8 -1.51,-1.51 -24.09,-1.65 -26.87,-0.16 -1.66,0.89 -1.93,2.15 -1.93,8.8 0,4.71 0.47,8.24 1.2,8.96 0.81,0.81 5.33,1.2 13.8,1.2 8.47,0 12.99,-0.39 13.8,-1.2zM438.07,541.96C439.7,541.09 440,539.83 440,533.9 440,522.91 440.12,523 425.54,523 410.21,523 410,523.14 410,533.52c0,5.97 0.33,7.57 1.75,8.4 2.3,1.34 23.83,1.38 26.32,0.04zM479.07,541.96c1.66,-0.89 1.93,-2.15 1.93,-8.8 0,-4.71 -0.47,-8.24 -1.2,-8.96 -0.8,-0.8 -5.24,-1.2 -13.38,-1.2 -14.36,0 -14.65,0.18 -15.24,9.5 -0.34,5.38 -0.1,6.59 1.71,8.4 1.89,1.89 3.25,2.11 13.18,2.11 6.09,0 11.94,-0.47 13,-1.04zM521.07,541.96c1.66,-0.89 1.93,-2.15 1.93,-8.8 0,-4.71 -0.47,-8.24 -1.2,-8.96 -0.81,-0.81 -5.33,-1.2 -13.8,-1.2 -8.47,0 -12.99,0.39 -13.8,1.2 -0.73,0.73 -1.2,4.26 -1.2,8.95 0,6.33 0.32,7.94 1.75,8.77 2.3,1.34 23.83,1.38 26.32,0.04zM481.38,297.49c8.81,-2.29 15.49,-5.47 22.23,-10.58 3.36,-2.54 6.57,-4.91 7.13,-5.26 0.56,-0.35 2.71,0.71 4.77,2.36 3.66,2.91 6.48,3.84 6.48,2.15 0,-0.46 -1.11,-1.34 -2.46,-1.96 -1.36,-0.62 -3.58,-3.33 -4.95,-6.03 -1.74,-3.43 -5.36,-7.38 -12.04,-13.12 -9.04,-7.78 -10.81,-10.15 -8.58,-11.52 0.53,-0.33 5.36,1.64 10.73,4.38 5.37,2.74 10,4.73 10.28,4.43 0.29,-0.3 -0.58,-1.28 -1.93,-2.19 -4.88,-3.28 -6.36,-4.84 -5.65,-5.98 0.88,-1.43 7.05,-1.53 9.62,-0.15 1.04,0.56 5.56,6.52 10.05,13.25 7.82,11.73 9.92,14.22 9.92,11.79 0,-2.26 -14.46,-22.75 -20.38,-28.89 -13.6,-14.09 -15.67,-15.89 -21.77,-18.95 -9.69,-4.86 -17.73,-6.61 -30.35,-6.59 -17.55,0.02 -30.62,4.69 -41.3,14.73 -7.49,7.04 -10.17,13.03 -10.19,22.71 -0.01,6.12 0.48,8.53 2.56,12.72 4.96,9.95 18.18,19.28 32.07,22.65 8,1.94 26.43,1.98 33.74,0.08zM451.49,294.98c-16.92,-3.36 -29.95,-12.79 -34.6,-25.02 -2.43,-6.41 -2.38,-9.57 0.26,-16.64 4.12,-11.02 15.86,-19.83 31.85,-23.91 5.01,-1.28 9.36,-1.54 19,-1.17 13.79,0.54 21.93,2.86 30.32,8.63 4.63,3.19 11.68,10.51 11.68,12.13 0,1.68 -1.87,1.11 -2.94,-0.9 -1.55,-2.9 -19.04,-5.56 -20.54,-3.13 -1.33,2.15 -3.19,14.85 -2.39,16.28 0.46,0.83 2.87,1.81 5.34,2.18 4.12,0.62 4.66,1.04 6.44,5.06 1.07,2.41 1.7,5.3 1.41,6.41 -0.4,1.54 0.34,2.53 3.12,4.18 2.01,1.18 3.49,2.64 3.29,3.23 -0.63,1.88 -9.55,7.47 -15.49,9.7 -3.16,1.18 -8.21,2.56 -11.24,3.06 -6.52,1.08 -19.87,1.02 -25.51,-0.1zM474.87,283.25c6.69,-13.13 6.79,-29.24 0.26,-42 -1.47,-2.87 -2.83,-4.25 -4.18,-4.25 -3.12,0 -3.21,2.02 -0.38,8.98 3.68,9.07 3.71,21.6 0.06,31.29 -1.4,3.72 -2.29,7.43 -1.98,8.25 1.07,2.78 4.24,1.62 6.22,-2.27zM466,276.5c2.14,-4.28 2.5,-6.37 2.5,-14.5 0,-8.13 -0.36,-10.22 -2.5,-14.5 -4.69,-9.37 -8.72,-6.35 -5.14,3.86 2.71,7.71 2.71,12.86 0.01,21.08 -1.17,3.56 -1.85,7.2 -1.5,8.09 1.11,2.89 4.07,1.09 6.63,-4.03zM456.03,272.75C459.92,264.17 457.34,247 452.16,247c-2.75,0 -3.38,2.53 -1.65,6.68C451.33,255.64 452,259.38 452,262c0,2.62 -0.67,6.36 -1.49,8.32 -3.07,7.35 2.22,9.69 5.52,2.43zM447.17,267.35c1.81,-4.09 1.91,-5.14 0.84,-8.75C446.52,253.58 445.31,252 442.94,252c-2.69,0 -3.21,1.59 -1.79,5.52 1.01,2.79 1.02,4.44 0.05,8.07 -1.37,5.12 -0.98,6.42 1.93,6.42 1.42,0 2.6,-1.36 4.05,-4.65zM501.86,276.98 L499.5,274.95 503.5,275.56c6.01,0.92 7.59,1.48 6.96,2.51 -1.02,1.64 -6.16,0.99 -8.59,-1.09zM501.74,271.34C498.35,268.93 496.75,266 498.82,266c1.51,0 9.09,6.34 8.57,7.18 -0.8,1.29 -1.65,1.01 -5.65,-1.84zM489,261.22c-3.48,-1.13 -3.77,-2.08 -2.42,-7.87 1.8,-7.73 2.16,-7.97 10.08,-6.61 7.44,1.27 9.48,2.93 7.49,6.07 -0.67,1.06 -1.51,0.98 -4.38,-0.38 -6.55,-3.12 -11.87,0.71 -8.38,6.03 1.65,2.52 0.61,3.73 -2.38,2.76zM303,449.08c0,-0.51 0.27,-1.62 0.6,-2.48 0.48,-1.25 1.01,-1.34 2.68,-0.45 2.02,1.08 2.02,1.16 0.21,2.48C304.32,450.22 303,450.39 303,449.08ZM878.6,164.85c-2.13,-3.04 -0.41,-6.07 3.21,-5.66 3.02,0.35 4.2,3.87 2.14,6.36 -1.7,2.05 -3.6,1.79 -5.35,-0.71zM948.2,165.8c-2.51,-2.51 -0.64,-6.8 2.96,-6.8 0.97,0 2.23,0.87 2.8,1.93 1.34,2.5 1.32,2.64 -0.54,4.49 -1.88,1.88 -3.6,2 -5.23,0.37z"
+        android:fillColor="#4a5c64"/>
+    <path
+        android:pathData="m376.32,636c-1.2,-0.49 -2.66,-1.77 -3.23,-2.84 -0.57,-1.07 -10.47,-24.84 -21.98,-52.81 -11.52,-27.97 -22.31,-53.86 -24,-57.53l-3.06,-6.68 -14.48,-0.32c-8.88,-0.2 -14.91,-0.75 -15.59,-1.44 -0.82,-0.82 2.87,-4.34 13.89,-13.25L322.87,489h141.86c109,0 142.14,-0.28 143.06,-1.2 1.51,-1.51 1.73,-154.42 0.22,-156.8 -0.83,-1.32 -14.71,-1.53 -113.23,-1.77L382.5,328.96 380,324.23c-3.47,-6.56 -9.35,-9.6 -16.84,-8.7 -4.87,0.58 -5.29,0.47 -4.79,-1.2C364.12,295.24 374,256.79 374,253.47c0,-6.55 -4.16,-10.85 -13.11,-13.57C356.7,238.63 354,237.26 354,236.42c0,-2.47 13.12,-26.39 15.31,-27.93 1.85,-1.3 13.93,-1.48 92.66,-1.42 49.79,0.04 91.39,0.41 92.45,0.82 1.29,0.51 9.2,15.78 24.16,46.68 16.36,33.78 22.86,46.25 24.58,47.16 1.39,0.73 6.33,1.24 12.19,1.25 11.96,0.02 14.66,1.29 18.21,8.55l2.47,5.05 -0.27,93.46c-0.25,89.05 -0.35,93.64 -2.14,97.23 -3.05,6.14 -6.67,8.04 -16.31,8.54 -4.61,0.24 -8.67,0.94 -9.07,1.56 -1.44,2.26 -5.7,13.13 -24.91,63.62 -10.78,28.33 -20.45,52.4 -21.49,53.5 -1.87,1.97 -3.33,2 -92.62,2.19 -51.09,0.11 -91.68,-0.19 -92.91,-0.69zM440.59,614.51c1.25,-1.91 1.54,-4.26 1.25,-10.1C441.32,594.17 441.05,594 425,594c-16.41,0 -16.5,0.06 -16.5,11.27 0,11.93 -0.28,11.73 16.6,11.73 13.66,0 13.88,-0.03 15.49,-2.49zM481.8,615.8c0.75,-0.75 1.2,-4.48 1.2,-9.94C483,594.22 482.7,594 466.5,594c-16.2,0 -16.5,0.22 -16.5,11.86 0,5.47 0.45,9.19 1.2,9.94 0.82,0.82 5.67,1.2 15.3,1.2 9.63,0 14.48,-0.38 15.3,-1.2zM439.56,579.58c1.68,-1.23 1.94,-2.67 1.94,-10.54 0,-7.02 -0.35,-9.34 -1.5,-10.07 -0.82,-0.52 -7.63,-0.96 -15.13,-0.96C408.25,558 408.5,557.82 408.5,569.73 408.5,580.94 408.59,581 425,581c9.32,0 13.13,-0.37 14.56,-1.42zM480.78,579.44c2.01,-1.41 2.22,-2.4 2.22,-10.3 0,-5.47 -0.45,-9.19 -1.2,-9.94 -0.82,-0.82 -5.67,-1.2 -15.3,-1.2 -9.63,0 -14.48,0.38 -15.3,1.2 -0.75,0.75 -1.2,4.48 -1.2,9.94 0,11.64 0.3,11.86 16.5,11.86 9.29,0 12.56,-0.36 14.28,-1.56zM522.56,579.58c1.68,-1.23 1.94,-2.67 1.94,-10.54 0,-7.02 -0.35,-9.34 -1.5,-10.07 -2.27,-1.44 -28.33,-1.24 -29.8,0.22 -0.76,0.76 -1.2,4.61 -1.2,10.53 0,8.74 0.14,9.39 2.25,10.24 3.86,1.55 26.07,1.25 28.31,-0.39zM440.61,541.47c1.29,-1.97 1.55,-4.07 1.16,-9.49 -0.27,-3.83 -1.06,-7.64 -1.75,-8.47C439,522.3 436.07,522 425,522c-16.63,0 -16.5,-0.09 -16.5,11 0,11.1 -0.14,11 16.6,11 13.71,0 13.87,-0.03 15.51,-2.53zM481.43,542.43C482.58,541.28 483,538.84 483,533.36 483,521.67 483.47,522 466.5,522 449.53,522 450,521.67 450,533.36 450,543.96 450.06,544 466.5,544c10.81,0 13.66,-0.3 14.93,-1.57zM521.78,542.44C523.71,541.09 524,539.99 524,533.88 524,522.77 524.34,523 507.94,523L493.95,523l-0.98,2.57C492.44,526.98 492,531 492,534.51c0,8.88 1.02,9.49 16,9.49 8.84,0 12.08,-0.37 13.78,-1.56zM482.5,298.52c8.74,-2.33 17.32,-6.6 22.81,-11.36 5.24,-4.54 6.76,-4.99 8.74,-2.6 1.9,2.3 6.91,4.66 8.54,4.04 2.37,-0.91 1.57,-3.47 -1.59,-5.1 -1.78,-0.92 -3.99,-3.51 -5.45,-6.39 -1.72,-3.39 -5.37,-7.34 -12.18,-13.17 -5.35,-4.58 -9.22,-8.49 -8.6,-8.7 0.62,-0.21 5.49,1.91 10.81,4.7 7.27,3.81 10.01,4.81 10.99,3.99 1.97,-1.63 0.86,-3.25 -4.1,-5.95C510.01,256.64 508,255.19 508,254.77c0,-1.35 6.47,-0.83 8.64,0.69 1.14,0.8 5.79,7.13 10.33,14.05 5.73,8.74 8.75,12.5 9.88,12.28 0.9,-0.17 1.76,-0.98 1.92,-1.8 0.46,-2.39 -15.84,-26.21 -19.68,-28.75 -1.88,-1.25 -4.91,-4.48 -6.74,-7.19 -4.53,-6.73 -14.56,-13.65 -25.18,-17.39 -7.95,-2.8 -9.74,-3.05 -21.67,-3.06 -19.51,-0.01 -31.43,4 -42.81,14.41 -7.94,7.26 -10.95,13.81 -10.95,23.84 0,8.99 1.94,14.27 7.63,20.81 13.13,15.07 40.42,21.93 63.14,15.88zM453,294.06c-11.57,-2.17 -23.18,-8.08 -29.1,-14.83 -15,-17.09 -4.77,-39.35 22,-47.88 6.09,-1.94 24.2,-2.84 31.1,-1.54 8.35,1.57 16.12,4.8 22.43,9.32 3.13,2.24 5.49,4.29 5.23,4.54 -0.26,0.26 -4.17,-0.1 -8.7,-0.8 -8.02,-1.23 -8.28,-1.2 -10.01,0.93 -2.34,2.89 -4.69,15.81 -3.28,18.05 1.02,1.62 3.18,2.54 8.58,3.63 1.85,0.37 2.75,1.18 2.75,2.48 0,1.06 0.45,2.2 1,2.54 0.55,0.34 1,2.19 1,4.11 0,2.83 0.57,3.81 2.99,5.19 1.65,0.94 2.85,2.15 2.68,2.7 -0.57,1.83 -11.09,7.54 -17.67,9.59 -7.29,2.27 -23.79,3.32 -31,1.97zM474.4,286.11c0.94,-1.04 2.8,-4.98 4.13,-8.75 4.08,-11.57 3.06,-26.36 -2.61,-37.48 -2.14,-4.19 -4.24,-5.31 -7.11,-3.78 -2.34,1.25 -2.16,3.23 1.06,11.91 2.84,7.64 2.85,20.02 0.02,27.77 -3.16,8.68 -3.24,9.12 -1.91,10.73 1.69,2.04 4.34,1.88 6.4,-0.4zM466.23,279.35c1.01,-1.73 2.51,-6.39 3.33,-10.34 1.68,-8.07 0.95,-14.79 -2.45,-22.47 -2.51,-5.67 -5.13,-7.16 -8.21,-4.66l-2.28,1.84 2.16,5.02c3.61,8.38 3.84,14.64 0.87,23.19 -1.93,5.55 -2.31,7.85 -1.54,9.28 1.57,2.94 5.9,1.95 8.12,-1.86zM457.17,273.25C462.42,261.34 457.35,242.06 450,246c-2.39,1.28 -2.52,3.51 -0.5,8.35 1.96,4.7 1.91,10.05 -0.17,15.84 -1.93,5.39 -0.9,7.81 3.33,7.81 1.92,0 2.84,-0.97 4.51,-4.75zM448.09,268.6c1.02,-2.26 1.86,-5.23 1.86,-6.6 0,-3.88 -3.53,-10.73 -5.91,-11.49 -3.26,-1.03 -5.35,1.24 -4.54,4.93 0.91,4.1 0.89,9.42 -0.04,12.96 -0.58,2.2 -0.35,3.21 0.93,4.14 2.73,2 5.68,0.49 7.69,-3.95zM487.48,258.75c-0.64,-1.78 1.96,-11.26 3.08,-11.22 5.6,0.16 12.43,1.83 12.43,3.05 0,1.77 -0.81,1.75 -4,-0.07 -3.5,-2 -5.66,-1.84 -8.11,0.61 -1.62,1.62 -1.98,2.9 -1.56,5.5 0.52,3.22 -0.86,4.83 -1.84,2.14zM879.17,162.83C879.39,161.28 880.17,160.5 881.5,160.5c2.98,0 2.68,3.9 -0.33,4.33 -1.94,0.27 -2.27,-0.06 -2,-2zM948.32,163.4c-0.63,-1.65 1.4,-3.61 3.18,-3.05 0.55,0.17 1.14,1.29 1.32,2.48 0.24,1.64 -0.19,2.17 -1.78,2.17 -1.16,0 -2.38,-0.72 -2.72,-1.6z"
+        android:fillColor="#199657"/>
+    <path
+        android:pathData="m376.32,636c-1.2,-0.49 -2.66,-1.77 -3.23,-2.84 -0.57,-1.07 -10.47,-24.84 -21.98,-52.81 -11.52,-27.97 -22.31,-53.86 -24,-57.53l-3.06,-6.68 -14.48,-0.32c-8.88,-0.2 -14.91,-0.75 -15.59,-1.44 -0.82,-0.82 2.87,-4.34 13.89,-13.25L322.87,489h141.86c109,0 142.14,-0.28 143.06,-1.2 1.51,-1.51 1.73,-154.42 0.22,-156.8 -0.83,-1.32 -14.71,-1.53 -113.23,-1.77L382.5,328.96 380,324.23c-3.47,-6.56 -9.35,-9.6 -16.84,-8.7 -4.87,0.58 -5.29,0.47 -4.79,-1.2C364.12,295.24 374,256.79 374,253.47c0,-6.55 -4.16,-10.85 -13.11,-13.57C356.7,238.63 354,237.26 354,236.42c0,-2.47 13.12,-26.39 15.31,-27.93 1.85,-1.3 13.93,-1.48 92.66,-1.42 49.79,0.04 91.39,0.41 92.45,0.82 1.29,0.51 9.2,15.78 24.16,46.68 16.36,33.78 22.86,46.25 24.58,47.16 1.39,0.73 6.33,1.24 12.19,1.25 11.96,0.02 14.66,1.29 18.21,8.55l2.47,5.05 -0.27,93.46c-0.25,89.05 -0.35,93.64 -2.14,97.23 -3.05,6.14 -6.67,8.04 -16.31,8.54 -4.61,0.24 -8.67,0.94 -9.07,1.56 -1.44,2.26 -5.7,13.13 -24.91,63.62 -10.78,28.33 -20.45,52.4 -21.49,53.5 -1.87,1.97 -3.33,2 -92.62,2.19 -51.09,0.11 -91.68,-0.19 -92.91,-0.69zM440.59,614.51c1.25,-1.91 1.54,-4.26 1.25,-10.1C441.32,594.17 441.05,594 425,594c-16.41,0 -16.5,0.06 -16.5,11.27 0,11.93 -0.28,11.73 16.6,11.73 13.66,0 13.88,-0.03 15.49,-2.49zM481.8,615.8c0.75,-0.75 1.2,-4.48 1.2,-9.94C483,594.22 482.7,594 466.5,594c-16.2,0 -16.5,0.22 -16.5,11.86 0,5.47 0.45,9.19 1.2,9.94 0.82,0.82 5.67,1.2 15.3,1.2 9.63,0 14.48,-0.38 15.3,-1.2zM521.92,614.6c0.74,-0.89 1.06,-4.46 0.87,-9.75L522.5,596.5 509.14,596.22c-9,-0.19 -13.81,0.1 -14.75,0.87 -1.79,1.48 -1.94,15.95 -0.19,17.71 1.83,1.83 26.18,1.65 27.72,-0.2zM439.56,579.58c1.68,-1.23 1.94,-2.67 1.94,-10.54 0,-7.02 -0.35,-9.34 -1.5,-10.07 -0.82,-0.52 -7.63,-0.96 -15.13,-0.96C408.25,558 408.5,557.82 408.5,569.73 408.5,580.94 408.59,581 425,581c9.32,0 13.13,-0.37 14.56,-1.42zM480.78,579.44c2.01,-1.41 2.22,-2.4 2.22,-10.3 0,-5.47 -0.45,-9.19 -1.2,-9.94 -0.82,-0.82 -5.67,-1.2 -15.3,-1.2 -9.63,0 -14.48,0.38 -15.3,1.2 -0.75,0.75 -1.2,4.48 -1.2,9.94 0,11.64 0.3,11.86 16.5,11.86 9.29,0 12.56,-0.36 14.28,-1.56zM522.56,579.58c1.68,-1.23 1.94,-2.67 1.94,-10.54 0,-7.02 -0.35,-9.34 -1.5,-10.07 -2.27,-1.44 -28.33,-1.24 -29.8,0.22 -0.76,0.76 -1.2,4.61 -1.2,10.53 0,8.74 0.14,9.39 2.25,10.24 3.86,1.55 26.07,1.25 28.31,-0.39zM440.61,541.47c1.29,-1.97 1.55,-4.07 1.16,-9.49 -0.27,-3.83 -1.06,-7.64 -1.75,-8.47C439,522.3 436.07,522 425,522c-16.63,0 -16.5,-0.09 -16.5,11 0,11.1 -0.14,11 16.6,11 13.71,0 13.87,-0.03 15.51,-2.53zM481.43,542.43C482.58,541.28 483,538.84 483,533.36 483,521.67 483.47,522 466.5,522 449.53,522 450,521.67 450,533.36 450,543.96 450.06,544 466.5,544c10.81,0 13.66,-0.3 14.93,-1.57zM521.78,542.44C523.71,541.09 524,539.99 524,533.88 524,522.77 524.34,523 507.94,523L493.95,523l-0.98,2.57C492.44,526.98 492,531 492,534.51c0,8.88 1.02,9.49 16,9.49 8.84,0 12.08,-0.37 13.78,-1.56zM482.5,298.52c8.74,-2.33 17.32,-6.6 22.81,-11.36 5.24,-4.54 6.76,-4.99 8.74,-2.6 1.9,2.3 6.91,4.66 8.54,4.04 2.37,-0.91 1.57,-3.47 -1.59,-5.1 -1.78,-0.92 -3.99,-3.51 -5.45,-6.39 -1.72,-3.39 -5.37,-7.34 -12.18,-13.17 -5.35,-4.58 -9.22,-8.49 -8.6,-8.7 0.62,-0.21 5.49,1.91 10.81,4.7 7.27,3.81 10.01,4.81 10.99,3.99 1.97,-1.63 0.86,-3.25 -4.1,-5.95C510.01,256.64 508,255.19 508,254.77c0,-1.35 6.47,-0.83 8.64,0.69 1.14,0.8 5.79,7.13 10.33,14.05 5.73,8.74 8.75,12.5 9.88,12.28 0.9,-0.17 1.76,-0.98 1.92,-1.8 0.46,-2.39 -15.84,-26.21 -19.68,-28.75 -1.88,-1.25 -4.91,-4.48 -6.74,-7.19 -4.53,-6.73 -14.56,-13.65 -25.18,-17.39 -7.95,-2.8 -9.74,-3.05 -21.67,-3.06 -19.51,-0.01 -31.43,4 -42.81,14.41 -7.94,7.26 -10.95,13.81 -10.95,23.84 0,8.99 1.94,14.27 7.63,20.81 13.13,15.07 40.42,21.93 63.14,15.88zM453,294.06c-11.57,-2.17 -23.18,-8.08 -29.1,-14.83 -15,-17.09 -4.77,-39.35 22,-47.88 6.09,-1.94 24.2,-2.84 31.1,-1.54 8.35,1.57 16.12,4.8 22.43,9.32 3.13,2.24 5.49,4.29 5.23,4.54 -0.26,0.26 -4.17,-0.1 -8.7,-0.8 -8.02,-1.23 -8.28,-1.2 -10.01,0.93 -2.34,2.89 -4.69,15.81 -3.28,18.05 1.02,1.62 3.18,2.54 8.58,3.63 1.85,0.37 2.75,1.18 2.75,2.48 0,1.06 0.45,2.2 1,2.54 0.55,0.34 1,2.19 1,4.11 0,2.83 0.57,3.81 2.99,5.19 1.65,0.94 2.85,2.15 2.68,2.7 -0.57,1.83 -11.09,7.54 -17.67,9.59 -7.29,2.27 -23.79,3.32 -31,1.97zM474.4,286.11c0.94,-1.04 2.8,-4.98 4.13,-8.75 4.08,-11.57 3.06,-26.36 -2.61,-37.48 -2.14,-4.19 -4.24,-5.31 -7.11,-3.78 -2.34,1.25 -2.16,3.23 1.06,11.91 2.84,7.64 2.85,20.02 0.02,27.77 -3.16,8.68 -3.24,9.12 -1.91,10.73 1.69,2.04 4.34,1.88 6.4,-0.4zM466.23,279.35c1.01,-1.73 2.51,-6.39 3.33,-10.34 1.68,-8.07 0.95,-14.79 -2.45,-22.47 -2.51,-5.67 -5.13,-7.16 -8.21,-4.66l-2.28,1.84 2.16,5.02c3.61,8.38 3.84,14.64 0.87,23.19 -1.93,5.55 -2.31,7.85 -1.54,9.28 1.57,2.94 5.9,1.95 8.12,-1.86zM457.17,273.25C462.42,261.34 457.35,242.06 450,246c-2.39,1.28 -2.52,3.51 -0.5,8.35 1.96,4.7 1.91,10.05 -0.17,15.84 -1.93,5.39 -0.9,7.81 3.33,7.81 1.92,0 2.84,-0.97 4.51,-4.75zM448.09,268.6c1.02,-2.26 1.86,-5.23 1.86,-6.6 0,-3.88 -3.53,-10.73 -5.91,-11.49 -3.26,-1.03 -5.35,1.24 -4.54,4.93 0.91,4.1 0.89,9.42 -0.04,12.96 -0.58,2.2 -0.35,3.21 0.93,4.14 2.73,2 5.68,0.49 7.69,-3.95zM487.48,258.75c-0.64,-1.78 1.96,-11.26 3.08,-11.22 5.6,0.16 12.43,1.83 12.43,3.05 0,1.77 -0.81,1.75 -4,-0.07 -3.5,-2 -5.66,-1.84 -8.11,0.61 -1.62,1.62 -1.98,2.9 -1.56,5.5 0.52,3.22 -0.86,4.83 -1.84,2.14zM879.17,162.83C879.39,161.28 880.17,160.5 881.5,160.5c2.98,0 2.68,3.9 -0.33,4.33 -1.94,0.27 -2.27,-0.06 -2,-2zM948.32,163.4c-0.63,-1.65 1.4,-3.61 3.18,-3.05 0.55,0.17 1.14,1.29 1.32,2.48 0.24,1.64 -0.19,2.17 -1.78,2.17 -1.16,0 -2.38,-0.72 -2.72,-1.6z"
+        android:fillColor="#36454e"/>
+</vector>
diff --git a/res/drawable/tapandpay_emptystate.xml b/res/drawable/tapandpay_emptystate.xml
new file mode 100644
index 0000000..8d623e8
--- /dev/null
+++ b/res/drawable/tapandpay_emptystate.xml
@@ -0,0 +1,34 @@
+<!--
+  Copyright (C) 2019 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="288dp"
+        android:height="268dp"
+        android:viewportWidth="288"
+        android:viewportHeight="268">
+    <path
+        android:pathData="M67.607,266.417C67.273,265.547 67,248.757 67,229.105v-35.73l-3.06,-2.262c-1.683,-1.244 -3.931,-3.691 -4.996,-5.438 -3.791,-6.217 -3.22,-7.462 14.624,-31.954l16.568,-22.739 54.149,0.259 54.149,0.259 16.284,22.371c17.59,24.166 18.188,25.493 14.34,31.805 -1.065,1.747 -3.313,4.194 -4.996,5.438L221,193.375v35.73c0,19.652 -0.273,36.442 -0.607,37.312C219.847,267.84 212.184,267.999 144,267.999 75.816,267.999 68.153,267.84 67.607,266.417ZM113.5,107.312c-1.65,-0.884 -5.87,-3.646 -9.378,-6.139L97.744,96.64 85.122,95.432C71.183,94.097 69.957,93.78 65.241,90.293 60.593,86.856 58,81.207 58,74.518v-5.56l-3.75,1.878C46.077,74.931 42.461,74.476 33.011,68.165 27.951,64.786 26.029,64.113 19.795,63.536 9.981,62.629 6.537,61.426 3.533,57.855 1.611,55.572 1.001,53.718 1.004,50.172 1.009,43.588 3.677,39.66 9.665,37.422 12.587,36.329 15.861,34.056 17.939,31.676 22.055,26.964 26.34,24.999 32.5,24.999c5.66,0 9.867,1.716 16.695,6.809 7.619,5.684 11.075,7.19 16.506,7.194 5.852,0.005 10.555,2.634 12.878,7.202 0.922,1.812 1.832,3.47 2.022,3.684 0.191,0.215 2.208,-1.292 4.483,-3.347 5.729,-5.176 10.2,-6.866 18.416,-6.962 8.421,-0.098 14.071,2.336 25.526,10.998 8.543,6.459 14.217,9.367 18.34,9.399 2.509,0.019 2.783,-0.259 2.194,-2.228 -0.37,-1.237 -0.908,-4.95 -1.197,-8.25 -0.456,-5.221 -0.157,-6.713 2.306,-11.493 3.663,-7.11 9.662,-11.717 16.426,-12.614 3.782,-0.502 5.434,-1.277 6.711,-3.152 4.008,-5.884 11.018,-12.633 15.674,-15.09 4.461,-2.354 6.133,-2.65 15.02,-2.65 11.923,-0.001 15.396,1.431 30.523,12.584 13.5,9.954 17.755,11.826 29.061,12.788 10.057,0.856 13.827,2.269 18.103,6.788 3.593,3.798 4.98,7.726 5.063,14.343 0.098,7.78 -1.722,12.39 -6.506,16.485 -4.453,3.812 -9.064,5.498 -15.059,5.507 -4.525,0.007 -6.125,0.771 -14.684,7.013 -8.505,6.203 -11.888,7.855 -18.64,9.103 -8.125,1.502 -13.852,-0.179 -23.023,-6.76 -11.838,-8.494 -13.442,-9.09 -26.63,-9.902L171,71.727v6.404c0,5.158 -0.479,7.109 -2.463,10.029C165.568,92.529 158.841,95.999 153.341,95.999c-3.226,0 -5.469,1.012 -11.272,5.088 -3.985,2.798 -8.766,5.723 -10.625,6.5 -4.519,1.888 -14.182,1.74 -17.944,-0.275z"
+        android:fillColor="#f4f4f4"/>
+    <path
+        android:pathData="m68,266.999c0,-0.55 0.45,-1 1,-1 0.648,0 1,-12.651 1,-35.952v-35.952l-4.499,-3.095C60.613,187.637 58,183.611 58,179.443c0,-1.838 4.518,-8.859 14.671,-22.8 8.069,-11.079 15.572,-21.157 16.674,-22.394L91.349,131.999h53.141,53.141l16.185,22.239c17.417,23.933 18.014,25.248 14.258,31.409 -1.056,1.732 -3.323,3.977 -5.037,4.99 -1.715,1.013 -3.343,2.746 -3.618,3.852 -0.275,1.106 -0.369,18.098 -0.209,37.761l0.291,35.751 -47.5,-0 -47.5,-0L124.5,237.749 124.5,207.499L104,207.499 83.5,207.499v30.25,30.25l-7.75,-0C71.25,267.999 68,267.579 68,266.999ZM204.5,229.999L204.5,207.499L168,207.499 131.5,207.499l-0.271,21.475c-0.149,11.811 -0.048,22.055 0.223,22.763 0.393,1.024 7.922,1.233 36.771,1.025L204.5,252.499ZM152.689,235.355c-1.114,-1.114 -0.79,-10.176 0.39,-10.905 0.813,-0.502 26.581,-0.885 33.97,-0.505 0.642,0.033 0.933,2.288 0.75,5.804l-0.3,5.75 -17.061,0.273c-9.383,0.15 -17.371,-0.038 -17.75,-0.417zM112.794,104.732c-2.038,-1.228 -6.229,-3.964 -9.312,-6.078 -3.992,-2.738 -7.172,-4.057 -11.043,-4.583 -6.672,-0.905 -7.578,-1.664 -3.827,-3.201 4.155,-1.703 18.174,-1.875 18.805,-0.231 0.35,0.913 2.336,1.191 6.832,0.955 6.697,-0.35 11.023,-2.029 14.159,-5.494C129.454,84.945 130.884,83.999 131.587,83.999 134.768,83.999 150,69.744 150,66.767c0,-5.87 4.888,-7.396 12.025,-3.755 5.717,2.916 7.071,5.567 7.15,13.993 0.053,5.623 -0.354,7.757 -1.866,9.782 -3.397,4.549 -7.034,6.548 -13.255,7.281 -4.914,0.579 -7.151,1.539 -12.52,5.37 -8.571,6.116 -12.268,7.565 -19.252,7.545 -4.189,-0.012 -6.803,-0.632 -9.488,-2.25zM219.737,86.632C217.667,85.858 212.727,82.857 208.759,79.961 199.926,73.516 194.736,71.08 189.5,70.921c-2.2,-0.067 -5.072,-0.422 -6.383,-0.789 -3.145,-0.881 -1.5,-2.149 5.973,-4.603 5.242,-1.721 5.797,-1.733 8.9,-0.185 1.952,0.974 3.761,1.298 4.41,0.791 0.605,-0.473 2.338,-1.156 3.85,-1.517 2.28,-0.545 2.75,-0.326 2.75,1.28 0,1.692 0.727,1.936 5.75,1.932 8.089,-0.007 14.803,-2.194 19.356,-6.308C236.251,59.584 238.622,57.999 239.375,57.999 240.91,57.999 251.978,49.743 256.329,45.353 261.592,40.042 262,39.337 262,35.549v-3.783l6.463,0.412c5.32,0.339 7.107,0.934 10.103,3.366 8.204,6.659 10.614,16.478 6.057,24.678 -3.652,6.572 -8.97,9.827 -17.605,10.775 -6.419,0.705 -8.006,1.338 -14.142,5.648 -11.894,8.353 -16.165,10.373 -23.068,10.906 -4.094,0.316 -7.629,-0.006 -10.072,-0.919zM41.03,70.886c-1.359,-0.542 -3.834,-2.022 -5.5,-3.288C31.24,64.338 26.444,61.999 24.05,61.999 20.781,61.999 21.68,60.145 25.25,59.524c3.074,-0.535 5.571,-0.347 13.75,1.035 4.374,0.739 6.628,-0.239 15.957,-6.926 4.602,-3.298 8.181,-6.74 9.348,-8.989 2.087,-4.022 4.087,-4.528 8.624,-2.182 3.104,1.605 3.935,3.069 5.098,8.981 1.432,7.281 -1.597,10.767 -10.889,12.529 -2.885,0.547 -8.456,2.577 -12.381,4.51 -7.442,3.666 -9.61,4.046 -13.727,2.403z"
+        android:fillColor="#ececec"/>
+    <path
+        android:pathData="m208.605,191.077c-1.592,-1.05 -3.774,-3.297 -4.848,-4.993 -2.37,-3.743 -3.026,-3.819 -4.775,-0.551 -3.097,5.786 -12.577,8.278 -18.953,4.981 -1.579,-0.817 -3.854,-2.865 -5.056,-4.552l-2.184,-3.067 -3.672,3.977c-4.133,4.477 -7.33,5.625 -13.428,4.823 -3.304,-0.435 -4.982,-1.439 -7.94,-4.752l-3.75,-4.201 -3.75,4.201c-2.958,3.313 -4.635,4.318 -7.94,4.752 -6.098,0.802 -9.295,-0.347 -13.428,-4.823l-3.672,-3.977 -2.184,3.067c-1.201,1.687 -3.476,3.736 -5.056,4.552 -6.376,3.297 -15.856,0.806 -18.953,-4.981 -1.699,-3.174 -2.37,-3.172 -4.458,0.014 -2.319,3.54 -7.436,6.444 -11.36,6.449 -6.375,0.007 -12.894,-5.234 -13.809,-11.103 -0.487,-3.123 0.747,-5.147 15.484,-25.393l16.013,-22 52.305,-0.5c28.768,-0.275 52.755,-0.368 53.305,-0.207 0.55,0.161 7.975,9.97 16.5,21.798 13.958,19.365 15.491,21.897 15.414,25.446 -0.096,4.408 -1.946,6.971 -7.645,10.592 -4.505,2.863 -8.291,3.003 -12.165,0.449zM159.25,66.884C155.485,64.473 155.271,63.999 157.944,63.999c1.069,0 3.207,1.111 4.75,2.468 3.515,3.093 1.176,3.376 -3.444,0.417zM69,59.499c3.491,-1.996 5.656,-1.996 4,0 -0.685,0.825 -2.427,1.484 -3.872,1.465L66.5,60.928Z"
+        android:fillColor="#e0e0e0"/>
+    <path
+        android:pathData="m218.176,178.249c-1.621,-1.513 -3.226,-3.674 -3.567,-4.803 -0.341,-1.129 -3.741,-4.653 -7.556,-7.831 -3.815,-3.178 -7.075,-6.713 -7.245,-7.856 -0.17,-1.143 -1.119,-2.195 -2.109,-2.338 -3.855,-0.555 -6.374,-5.269 -3.7,-6.922 2.102,-1.299 0.882,-2.403 -1.47,-1.332 -3.076,1.402 -5.12,-0.028 -6.042,-4.226 -0.353,-1.606 -1.057,-3.176 -1.564,-3.49C184.415,139.138 184,137.815 184,136.512c0,-2.122 0.574,-2.441 5.508,-3.057 3.625,-0.453 5.979,-0.297 6.886,0.456C199.602,136.573 228,177.006 228,178.911c0,3.273 -6.043,2.866 -9.824,-0.663zM168.25,138.314C167.563,138.049 167,136.97 167,135.916 167,134.209 167.768,133.999 174,133.999c5.428,0 7,0.324 7,1.441 0,0.793 -0.449,1.719 -0.998,2.058 -1.32,0.816 -10.16,1.43 -11.752,0.816zM146.146,136.744C143.824,134.422 145.22,133.999 155.2,133.999c7.488,0 9.904,0.296 9.087,1.113 -0.612,0.612 -2.614,1.238 -4.45,1.39 -1.836,0.153 -3.337,0.383 -3.337,0.511 0,0.892 -9.438,0.648 -10.354,-0.269z"
+        android:fillColor="#dcdcdc"/>
+</vector>
\ No newline at end of file
diff --git a/res/layout/nfc_payment.xml b/res/layout/nfc_payment.xml
deleted file mode 100644
index c7039cf..0000000
--- a/res/layout/nfc_payment.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2015 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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="vertical">
-
-    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-            xmlns:tools="http://schemas.android.com/tools"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:orientation="vertical" >
-            <ImageView
-                android:id="@+id/nfc_payment_tap_image"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content"
-                android:gravity="center"
-                android:visibility="gone"
-                android:src="@drawable/tapandpay_emptystate"/>
-            <TextView
-                android:id="@+id/nfc_payment_empty_text"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content"
-                android:gravity="center"
-                android:textSize="24sp"
-                android:visibility="gone"
-                android:paddingTop="32dp"
-                android:text="@string/nfc_payment_no_apps"/>
-        </LinearLayout>
-        <ListView android:id="@android:id/list"
-            android:drawSelectorOnTop="false"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:clipToPadding="false" />
-    </FrameLayout>
-</LinearLayout>
diff --git a/res/layout/nfc_payment_empty.xml b/res/layout/nfc_payment_empty.xml
index 74c15bc..c9a83a5 100644
--- a/res/layout/nfc_payment_empty.xml
+++ b/res/layout/nfc_payment_empty.xml
@@ -15,24 +15,22 @@
 -->
 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_gravity="center"
-        android:gravity="center"
-        android:orientation="vertical">
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:layout_gravity="center"
+              android:gravity="center"
+              android:orientation="vertical">
 
-        <ImageView
-            android:id="@+id/nfc_payment_tap_image"
-            android:layout_width="288dp"
-            android:layout_height="wrap_content"
-            android:src="@drawable/tapandpay_emptystate"/>
-        <TextView
-            android:id="@+id/nfc_payment_empty_text"
-            android:layout_width="264dp"
-            android:layout_height="wrap_content"
-            android:gravity="center"
-            android:textAppearance="?android:attr/textAppearanceLarge"
-            android:textColor="?android:attr/textColorSecondary"
-            android:paddingTop="36dp"
-            android:text="@string/nfc_payment_no_apps"/>
+    <ImageView
+        android:layout_width="288dp"
+        android:layout_height="wrap_content"
+        android:src="@drawable/tapandpay_emptystate"/>
+    <TextView
+        android:layout_width="264dp"
+        android:layout_height="wrap_content"
+        android:gravity="center"
+        android:textAppearance="?android:attr/textAppearanceLarge"
+        android:textColor="?android:attr/textColorSecondary"
+        android:paddingTop="36dp"
+        android:text="@string/nfc_payment_no_apps"/>
 </LinearLayout>
diff --git a/res/values/config.xml b/res/values/config.xml
index bf1a67c..a329397 100755
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -421,6 +421,7 @@
     <!-- Reset application package name -->
     <string-array name="config_reset_app_package_name" translatable="false">
         <item>com.android.systemui</item>
+        <item>android</item>
     </string-array>
 
     <!-- Settings panel keeps observe this uri -->
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 1773314..430819f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -974,7 +974,7 @@
     <!-- Dialog title shown when the user removes an enrollment [CHAR LIMIT=35] -->
     <string name="security_settings_face_settings_remove_dialog_title">Delete face data?</string>
     <!-- Dialog contents shown when the user removes an enrollment [CHAR LIMIT=NONE] -->
-    <string name="security_settings_face_settings_remove_dialog_details">The images and face model used by face unlock will be permanently and securely deleted. After removal, you will need your PIN, pattern, or password to unlock your phone, sign in to apps, and confirm payments.</string>
+    <string name="security_settings_face_settings_remove_dialog_details">The face data used by face unlock will be permanently and securely deleted. After removal, you will need your PIN, pattern, or password to unlock your phone, sign in to apps, and confirm payments.</string>
     <!-- Subtitle shown for contextual setting face enrollment [CHAR LIMIT=NONE] -->
     <string name="security_settings_face_settings_context_subtitle">Use face unlock to unlock your phone</string>
 
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index eb77d4a..d79d401 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -98,17 +98,7 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.display_settings;
-                    result.add(sir);
-                    return result;
-                }
+            new BaseSearchIndexProvider(R.xml.display_settings) {
 
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
diff --git a/src/com/android/settings/accessibility/AccessibilityControlTimeoutPreferenceFragment.java b/src/com/android/settings/accessibility/AccessibilityControlTimeoutPreferenceFragment.java
index df950e8..de444f2 100644
--- a/src/com/android/settings/accessibility/AccessibilityControlTimeoutPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/AccessibilityControlTimeoutPreferenceFragment.java
@@ -105,20 +105,7 @@
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.accessibility_control_timeout_settings;
-                    return Arrays.asList(sir);
-                }
-
-                @Override
-                public List<String> getNonIndexableKeys(Context context) {
-                    final List<String> keys = super.getNonIndexableKeys(context);
-                    return keys;
-                }
+            new BaseSearchIndexProvider(R.xml.accessibility_control_timeout_settings) {
 
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
diff --git a/src/com/android/settings/accessibility/AccessibilitySettings.java b/src/com/android/settings/accessibility/AccessibilitySettings.java
index e4df675..4f9d965 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettings.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettings.java
@@ -507,16 +507,5 @@
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    List<SearchIndexableResource> indexables = new ArrayList<>();
-                    SearchIndexableResource indexable = new SearchIndexableResource(context);
-                    indexable.xmlResId = R.xml.accessibility_settings;
-                    indexables.add(indexable);
-                    return indexables;
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.accessibility_settings);
 }
diff --git a/src/com/android/settings/accessibility/MagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/MagnificationPreferenceFragment.java
index b96d2b7..87b3de7 100644
--- a/src/com/android/settings/accessibility/MagnificationPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/MagnificationPreferenceFragment.java
@@ -168,14 +168,7 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.accessibility_magnification_settings;
-                    return Arrays.asList(sir);
-                }
+            new BaseSearchIndexProvider(R.xml.accessibility_magnification_settings) {
 
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
diff --git a/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java
index 49f752e..13a0ed1 100644
--- a/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java
@@ -188,16 +188,5 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.accessibility_autoclick_settings;
-                    result.add(sir);
-                    return result;
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.accessibility_autoclick_settings);
 }
diff --git a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
index e307e9b..ca52e29 100644
--- a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
@@ -128,17 +128,6 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.accessibility_daltonizer_settings;
-                    result.add(sir);
-                    return result;
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.accessibility_daltonizer_settings);
 
 }
diff --git a/src/com/android/settings/accessibility/VibrationSettings.java b/src/com/android/settings/accessibility/VibrationSettings.java
index 9d31220..88d07a2 100644
--- a/src/com/android/settings/accessibility/VibrationSettings.java
+++ b/src/com/android/settings/accessibility/VibrationSettings.java
@@ -52,15 +52,5 @@
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    List<SearchIndexableResource> indexables = new ArrayList<>();
-                    SearchIndexableResource indexable = new SearchIndexableResource(context);
-                    indexable.xmlResId = R.xml.accessibility_vibration_settings;
-                    indexables.add(indexable);
-                    return indexables;
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.accessibility_vibration_settings);
 }
diff --git a/src/com/android/settings/applications/defaultapps/AutofillPicker.java b/src/com/android/settings/applications/defaultapps/AutofillPicker.java
index fb9d631..e443f4f 100644
--- a/src/com/android/settings/applications/defaultapps/AutofillPicker.java
+++ b/src/com/android/settings/applications/defaultapps/AutofillPicker.java
@@ -55,15 +55,7 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    SearchIndexableResource searchIndexableResource =
-                            new SearchIndexableResource(context);
-                    searchIndexableResource.xmlResId = R.xml.default_autofill_picker_settings;
-                    return Arrays.asList(searchIndexableResource);
-                }
+            new BaseSearchIndexProvider(R.xml.default_autofill_picker_settings) {
 
                 @Override
                 public List<AbstractPreferenceController> getPreferenceControllers(Context
diff --git a/src/com/android/settings/applications/managedomainurls/ManageDomainUrls.java b/src/com/android/settings/applications/managedomainurls/ManageDomainUrls.java
index 010bc94..8b133c7 100644
--- a/src/com/android/settings/applications/managedomainurls/ManageDomainUrls.java
+++ b/src/com/android/settings/applications/managedomainurls/ManageDomainUrls.java
@@ -62,16 +62,5 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.manage_domain_url_settings;
-                    result.add(sir);
-                    return result;
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.manage_domain_url_settings);
 }
diff --git a/src/com/android/settings/applications/specialaccess/SpecialAccessSettings.java b/src/com/android/settings/applications/specialaccess/SpecialAccessSettings.java
index 4d9a427..6e8ed5a 100644
--- a/src/com/android/settings/applications/specialaccess/SpecialAccessSettings.java
+++ b/src/com/android/settings/applications/specialaccess/SpecialAccessSettings.java
@@ -50,16 +50,5 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.special_access;
-                    result.add(sir);
-                    return result;
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.special_access);
 }
diff --git a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminSettings.java b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminSettings.java
index 66e3996..1549ba2 100644
--- a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminSettings.java
+++ b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminSettings.java
@@ -48,16 +48,5 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.device_admin_settings;
-                    result.add(sir);
-                    return result;
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.device_admin_settings);
 }
diff --git a/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureSettings.java b/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureSettings.java
index fdbe1d8..3671f05 100644
--- a/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureSettings.java
+++ b/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureSettings.java
@@ -220,16 +220,5 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.picture_in_picture_settings;
-                    result.add(sir);
-                    return result;
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.picture_in_picture_settings);
 }
diff --git a/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsAccess.java b/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsAccess.java
index a40ddc9..00c60d5 100644
--- a/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsAccess.java
+++ b/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsAccess.java
@@ -253,16 +253,5 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.premium_sms_settings;
-                    result.add(sir);
-                    return result;
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.premium_sms_settings);
 }
diff --git a/src/com/android/settings/applications/specialaccess/vrlistener/VrListenerSettings.java b/src/com/android/settings/applications/specialaccess/vrlistener/VrListenerSettings.java
index fec57c2..38240fc 100644
--- a/src/com/android/settings/applications/specialaccess/vrlistener/VrListenerSettings.java
+++ b/src/com/android/settings/applications/specialaccess/vrlistener/VrListenerSettings.java
@@ -85,17 +85,6 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final List<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.vr_listeners_settings;
-                    result.add(sir);
-                    return result;
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.vr_listeners_settings);
 
 }
diff --git a/src/com/android/settings/backup/BackupSettingsFragment.java b/src/com/android/settings/backup/BackupSettingsFragment.java
index f08c8e7..58bfef0 100644
--- a/src/com/android/settings/backup/BackupSettingsFragment.java
+++ b/src/com/android/settings/backup/BackupSettingsFragment.java
@@ -71,8 +71,7 @@
     // The intention is to index {@link UserBackupSettingsActivity} instead of the fragments,
     // therefore leaving this index provider empty.
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-            };
+            new BaseSearchIndexProvider();
 
     @Override
     public int getMetricsCategory() {
diff --git a/src/com/android/settings/backup/PrivacySettings.java b/src/com/android/settings/backup/PrivacySettings.java
index e6d2bd4..c07fdee 100644
--- a/src/com/android/settings/backup/PrivacySettings.java
+++ b/src/com/android/settings/backup/PrivacySettings.java
@@ -72,14 +72,7 @@
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.privacy_settings;
-                    return Arrays.asList(sir);
-                }
+            new BaseSearchIndexProvider(R.xml.privacy_settings) {
 
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
diff --git a/src/com/android/settings/biometrics/face/FaceSettings.java b/src/com/android/settings/biometrics/face/FaceSettings.java
index 8771802..c55a252 100644
--- a/src/com/android/settings/biometrics/face/FaceSettings.java
+++ b/src/com/android/settings/biometrics/face/FaceSettings.java
@@ -271,14 +271,7 @@
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.security_settings_face;
-                    return Arrays.asList(sir);
-                }
+            new BaseSearchIndexProvider(R.xml.security_settings_face) {
 
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
diff --git a/src/com/android/settings/biometrics/face/FaceSettingsLockscreenBypassPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsLockscreenBypassPreferenceController.java
index 15fab26..e717cb2 100644
--- a/src/com/android/settings/biometrics/face/FaceSettingsLockscreenBypassPreferenceController.java
+++ b/src/com/android/settings/biometrics/face/FaceSettingsLockscreenBypassPreferenceController.java
@@ -47,10 +47,10 @@
 
     @Override
     public boolean isChecked() {
-        boolean defaultValue = mContext.getResources().getBoolean(
-                com.android.internal.R.bool.config_faceAuthDismissesKeyguard);
-        return Settings.Secure.getInt(mContext.getContentResolver(),
-                Settings.Secure.FACE_UNLOCK_DISMISSES_KEYGUARD, defaultValue ? 1 : 0) != 0;
+        int defaultValue = mContext.getResources().getBoolean(
+                com.android.internal.R.bool.config_faceAuthDismissesKeyguard) ? 1 : 0;
+        return Settings.Secure.getIntForUser(mContext.getContentResolver(),
+                Settings.Secure.FACE_UNLOCK_DISMISSES_KEYGUARD, defaultValue, getUserId()) != 0;
     }
 
     @Override
@@ -81,7 +81,8 @@
         }
 
         if (mFaceManager != null && mFaceManager.isHardwareDetected()) {
-            return mFaceManager.hasEnrolledTemplates() ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
+            return mFaceManager.hasEnrolledTemplates(getUserId())
+                    ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
         } else {
             return UNSUPPORTED_ON_DEVICE;
         }
diff --git a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
index 7df2603..4cadae9 100644
--- a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
+++ b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
@@ -80,13 +80,5 @@
      * For Search.
      */
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.connected_devices;
-                    return Arrays.asList(sir);
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.connected_devices);
 }
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java
index 6d8de6d..bf760f0 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java
@@ -94,14 +94,7 @@
      * For Search.
      */
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    SearchIndexableResource res = new SearchIndexableResource(context);
-                    res.xmlResId = R.xml.usb_details_fragment;
-                    return Lists.newArrayList(res);
-                }
+            new BaseSearchIndexProvider(R.xml.usb_details_fragment) {
 
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
diff --git a/src/com/android/settings/datausage/BillingCycleSettings.java b/src/com/android/settings/datausage/BillingCycleSettings.java
index 9c46d39..e203456 100644
--- a/src/com/android/settings/datausage/BillingCycleSettings.java
+++ b/src/com/android/settings/datausage/BillingCycleSettings.java
@@ -26,7 +26,6 @@
 import android.net.NetworkTemplate;
 import android.os.Bundle;
 import android.provider.SearchIndexableResource;
-import android.text.format.Time;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -50,6 +49,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.TimeZone;
 
 @SearchIndexable
 public class BillingCycleSettings extends DataUsageBaseFragment implements
@@ -403,7 +403,7 @@
             mCycleDayPicker.clearFocus();
 
             final int cycleDay = mCycleDayPicker.getValue();
-            final String cycleTimezone = new Time().timezone;
+            final String cycleTimezone = TimeZone.getDefault().getID();
             editor.setPolicyCycleDay(template, cycleDay, cycleTimezone);
             target.updateDataUsage();
         }
@@ -473,17 +473,7 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.billing_cycle;
-                    result.add(sir);
-                    return result;
-                }
+            new BaseSearchIndexProvider(R.xml.billing_cycle) {
 
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
diff --git a/src/com/android/settings/datausage/DataSaverSummary.java b/src/com/android/settings/datausage/DataSaverSummary.java
index a2106d9..b3a63d7 100644
--- a/src/com/android/settings/datausage/DataSaverSummary.java
+++ b/src/com/android/settings/datausage/DataSaverSummary.java
@@ -198,17 +198,7 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.data_saver;
-                    result.add(sir);
-                    return result;
-                }
+            new BaseSearchIndexProvider(R.xml.data_saver) {
 
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
diff --git a/src/com/android/settings/datausage/UnrestrictedDataAccess.java b/src/com/android/settings/datausage/UnrestrictedDataAccess.java
index d40537f..cbc148c 100644
--- a/src/com/android/settings/datausage/UnrestrictedDataAccess.java
+++ b/src/com/android/settings/datausage/UnrestrictedDataAccess.java
@@ -118,16 +118,5 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.unrestricted_data_access_settings;
-                    result.add(sir);
-                    return result;
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.unrestricted_data_access_settings);
 }
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index 9bd8516..0e7873c 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -522,7 +522,7 @@
      * For Search.
      */
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
+            new BaseSearchIndexProvider(R.xml.development_settings) {
 
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
@@ -530,15 +530,6 @@
                 }
 
                 @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.development_settings;
-                    return Arrays.asList(sir);
-                }
-
-                @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(Context
                         context) {
                     return buildPreferenceControllers(context, null /* activity */,
diff --git a/src/com/android/settings/development/gamedriver/GameDriverDashboard.java b/src/com/android/settings/development/gamedriver/GameDriverDashboard.java
index db456bd..e1f7908 100644
--- a/src/com/android/settings/development/gamedriver/GameDriverDashboard.java
+++ b/src/com/android/settings/development/gamedriver/GameDriverDashboard.java
@@ -76,16 +76,7 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final List<SearchIndexableResource> result = new ArrayList<>();
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.game_driver_settings;
-                    result.add(sir);
-                    return result;
-                }
+            new BaseSearchIndexProvider(R.xml.game_driver_settings) {
 
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
diff --git a/src/com/android/settings/development/qstile/DevelopmentTileConfigFragment.java b/src/com/android/settings/development/qstile/DevelopmentTileConfigFragment.java
index c6f0ecd..82d01ac 100644
--- a/src/com/android/settings/development/qstile/DevelopmentTileConfigFragment.java
+++ b/src/com/android/settings/development/qstile/DevelopmentTileConfigFragment.java
@@ -50,17 +50,7 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final List<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.development_tile_settings;
-                    result.add(sir);
-                    return result;
-                }
+            new BaseSearchIndexProvider(R.xml.development_tile_settings) {
 
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
diff --git a/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java b/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java
index e6afb7b..8cbe05f 100644
--- a/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java
+++ b/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java
@@ -174,15 +174,7 @@
      * For Search.
      */
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.my_device_info;
-                    return Arrays.asList(sir);
-                }
+            new BaseSearchIndexProvider(R.xml.my_device_info) {
 
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionSettings.java b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionSettings.java
index 90c3b56..0971ba8 100644
--- a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionSettings.java
+++ b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionSettings.java
@@ -48,17 +48,5 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.firmware_version;
-                    result.add(sir);
-                    return result;
-                }
-
-            };
+            new BaseSearchIndexProvider(R.xml.firmware_version);
 }
diff --git a/src/com/android/settings/deviceinfo/hardwareinfo/HardwareInfoFragment.java b/src/com/android/settings/deviceinfo/hardwareinfo/HardwareInfoFragment.java
index 40e73ef..aadb0d5 100644
--- a/src/com/android/settings/deviceinfo/hardwareinfo/HardwareInfoFragment.java
+++ b/src/com/android/settings/deviceinfo/hardwareinfo/HardwareInfoFragment.java
@@ -51,17 +51,7 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.hardware_info;
-                    result.add(sir);
-                    return result;
-                }
+            new BaseSearchIndexProvider(R.xml.hardware_info) {
 
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
diff --git a/src/com/android/settings/display/AdaptiveSleepSettings.java b/src/com/android/settings/display/AdaptiveSleepSettings.java
index 09e558b..ff955c7 100644
--- a/src/com/android/settings/display/AdaptiveSleepSettings.java
+++ b/src/com/android/settings/display/AdaptiveSleepSettings.java
@@ -78,13 +78,5 @@
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.adaptive_sleep_detail;
-                    return Arrays.asList(sir);
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.adaptive_sleep_detail);
 }
diff --git a/src/com/android/settings/display/NightDisplaySettings.java b/src/com/android/settings/display/NightDisplaySettings.java
index 9f32de2..490e4fa 100644
--- a/src/com/android/settings/display/NightDisplaySettings.java
+++ b/src/com/android/settings/display/NightDisplaySettings.java
@@ -176,16 +176,7 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.night_display_settings;
-                    result.add(sir);
-                    return result;
-                }
+            new BaseSearchIndexProvider(R.xml.night_display_settings) {
 
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
diff --git a/src/com/android/settings/dream/DreamSettings.java b/src/com/android/settings/dream/DreamSettings.java
index c36970e..5b1a843 100644
--- a/src/com/android/settings/dream/DreamSettings.java
+++ b/src/com/android/settings/dream/DreamSettings.java
@@ -138,14 +138,7 @@
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER
-            = new BaseSearchIndexProvider() {
-        @Override
-        public List<SearchIndexableResource> getXmlResourcesToIndex(
-                Context context, boolean enabled) {
-            final SearchIndexableResource sir = new SearchIndexableResource(context);
-            sir.xmlResId = R.xml.dream_fragment_overview;
-            return Arrays.asList(sir);
-        }
+            = new BaseSearchIndexProvider(R.xml.dream_fragment_overview) {
 
         @Override
         public List<AbstractPreferenceController> createPreferenceControllers(Context context) {
diff --git a/src/com/android/settings/enterprise/EnterprisePrivacySettings.java b/src/com/android/settings/enterprise/EnterprisePrivacySettings.java
index c5beb86..1490feb 100644
--- a/src/com/android/settings/enterprise/EnterprisePrivacySettings.java
+++ b/src/com/android/settings/enterprise/EnterprisePrivacySettings.java
@@ -99,19 +99,12 @@
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
+            new BaseSearchIndexProvider(R.xml.enterprise_privacy_settings) {
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
                     return isPageEnabled(context);
                 }
 
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.enterprise_privacy_settings;
-                    return Arrays.asList(sir);
-                }
 
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 4b127ac..42ea52b 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -396,13 +396,5 @@
 
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.power_usage_summary;
-                    return Collections.singletonList(sir);
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.power_usage_summary);
 }
diff --git a/src/com/android/settings/gestures/DoubleTapPowerSettings.java b/src/com/android/settings/gestures/DoubleTapPowerSettings.java
index acabdbc..628a213 100644
--- a/src/com/android/settings/gestures/DoubleTapPowerSettings.java
+++ b/src/com/android/settings/gestures/DoubleTapPowerSettings.java
@@ -64,13 +64,5 @@
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.double_tap_power_settings;
-                    return Arrays.asList(sir);
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.double_tap_power_settings);
 }
diff --git a/src/com/android/settings/gestures/DoubleTapScreenSettings.java b/src/com/android/settings/gestures/DoubleTapScreenSettings.java
index 300ce48..9a21fed 100644
--- a/src/com/android/settings/gestures/DoubleTapScreenSettings.java
+++ b/src/com/android/settings/gestures/DoubleTapScreenSettings.java
@@ -49,7 +49,7 @@
         prefs.edit().putBoolean(PREF_KEY_SUGGESTION_COMPLETE, true).apply();
 
         use(DoubleTapScreenPreferenceController.class)
-            .setConfig(new AmbientDisplayConfiguration(context));
+                .setConfig(new AmbientDisplayConfiguration(context));
     }
 
     @Override
@@ -73,13 +73,5 @@
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.double_tap_screen_settings;
-                    return Arrays.asList(sir);
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.double_tap_screen_settings);
 }
diff --git a/src/com/android/settings/gestures/GlobalActionsPanelSettings.java b/src/com/android/settings/gestures/GlobalActionsPanelSettings.java
index fe9a9e8..fee793f 100644
--- a/src/com/android/settings/gestures/GlobalActionsPanelSettings.java
+++ b/src/com/android/settings/gestures/GlobalActionsPanelSettings.java
@@ -49,13 +49,5 @@
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-        new BaseSearchIndexProvider() {
-            @Override
-            public List<SearchIndexableResource> getXmlResourcesToIndex(
-                    Context context, boolean enabled) {
-                final SearchIndexableResource sir = new SearchIndexableResource(context);
-                sir.xmlResId = R.xml.global_actions_panel_settings;
-                return Arrays.asList(sir);
-            }
-        };
+        new BaseSearchIndexProvider(R.xml.global_actions_panel_settings);
 }
diff --git a/src/com/android/settings/gestures/PickupGestureSettings.java b/src/com/android/settings/gestures/PickupGestureSettings.java
index f1cc3f0..caf0d7d 100644
--- a/src/com/android/settings/gestures/PickupGestureSettings.java
+++ b/src/com/android/settings/gestures/PickupGestureSettings.java
@@ -73,14 +73,6 @@
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.pick_up_gesture_settings;
-                    return Arrays.asList(sir);
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.pick_up_gesture_settings);
 
 }
diff --git a/src/com/android/settings/gestures/PreventRingingGestureSettings.java b/src/com/android/settings/gestures/PreventRingingGestureSettings.java
index 47cd3ea..9740a3f 100644
--- a/src/com/android/settings/gestures/PreventRingingGestureSettings.java
+++ b/src/com/android/settings/gestures/PreventRingingGestureSettings.java
@@ -75,14 +75,7 @@
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.prevent_ringing_gesture_settings;
-                    return Arrays.asList(sir);
-                }
+            new BaseSearchIndexProvider(R.xml.prevent_ringing_gesture_settings) {
 
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
diff --git a/src/com/android/settings/gestures/SwipeToNotificationSettings.java b/src/com/android/settings/gestures/SwipeToNotificationSettings.java
index 230cdda..90ac4e6 100644
--- a/src/com/android/settings/gestures/SwipeToNotificationSettings.java
+++ b/src/com/android/settings/gestures/SwipeToNotificationSettings.java
@@ -64,14 +64,7 @@
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.swipe_to_notification_settings;
-                    return Arrays.asList(sir);
-                }
+            new BaseSearchIndexProvider(R.xml.swipe_to_notification_settings) {
 
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
diff --git a/src/com/android/settings/gestures/SystemNavigationGestureSettings.java b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
index 5e6d96c..54064ad 100644
--- a/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
+++ b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
@@ -359,14 +359,7 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.system_navigation_gesture_settings;
-                    return Arrays.asList(sir);
-                }
+            new BaseSearchIndexProvider(R.xml.system_navigation_gesture_settings) {
 
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
diff --git a/src/com/android/settings/gestures/TapScreenGestureSettings.java b/src/com/android/settings/gestures/TapScreenGestureSettings.java
index a86e682..bd09d55 100644
--- a/src/com/android/settings/gestures/TapScreenGestureSettings.java
+++ b/src/com/android/settings/gestures/TapScreenGestureSettings.java
@@ -68,13 +68,5 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.tap_screen_gesture_settings;
-                    return Arrays.asList(sir);
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.tap_screen_gesture_settings);
 }
diff --git a/src/com/android/settings/homepage/TopLevelSettings.java b/src/com/android/settings/homepage/TopLevelSettings.java
index f5dee0c..ce53e52 100644
--- a/src/com/android/settings/homepage/TopLevelSettings.java
+++ b/src/com/android/settings/homepage/TopLevelSettings.java
@@ -104,14 +104,7 @@
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.top_level_settings;
-                    return Arrays.asList(sir);
-                }
+            new BaseSearchIndexProvider(R.xml.top_level_settings) {
 
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
diff --git a/src/com/android/settings/language/LanguageAndInputSettings.java b/src/com/android/settings/language/LanguageAndInputSettings.java
index 3a8aeac..771d718 100644
--- a/src/com/android/settings/language/LanguageAndInputSettings.java
+++ b/src/com/android/settings/language/LanguageAndInputSettings.java
@@ -162,14 +162,7 @@
             = (activity, summaryLoader) -> new SummaryProvider(activity, summaryLoader);
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.language_and_input;
-                    return Arrays.asList(sir);
-                }
+            new BaseSearchIndexProvider(R.xml.language_and_input) {
 
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java
index 21b031b..d36eaad 100644
--- a/src/com/android/settings/location/LocationSettings.java
+++ b/src/com/android/settings/location/LocationSettings.java
@@ -129,14 +129,7 @@
      * For Search.
      */
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.location_settings;
-                    return Arrays.asList(sir);
-                }
+            new BaseSearchIndexProvider(R.xml.location_settings) {
 
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(Context
diff --git a/src/com/android/settings/location/RecentLocationRequestSeeAllFragment.java b/src/com/android/settings/location/RecentLocationRequestSeeAllFragment.java
index 9e4a77f..b704cb4 100644
--- a/src/com/android/settings/location/RecentLocationRequestSeeAllFragment.java
+++ b/src/com/android/settings/location/RecentLocationRequestSeeAllFragment.java
@@ -106,14 +106,7 @@
      * For Search.
      */
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.location_recent_requests_see_all;
-                    return Arrays.asList(sir);
-                }
+            new BaseSearchIndexProvider(R.xml.location_recent_requests_see_all) {
 
                 @Override
                 public List<AbstractPreferenceController> getPreferenceControllers(Context
diff --git a/src/com/android/settings/location/ScanningSettings.java b/src/com/android/settings/location/ScanningSettings.java
index 31ec955..c031f4d 100644
--- a/src/com/android/settings/location/ScanningSettings.java
+++ b/src/com/android/settings/location/ScanningSettings.java
@@ -69,14 +69,7 @@
      * For Search.
      */
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.location_scanning;
-                    return Arrays.asList(sir);
-                }
+            new BaseSearchIndexProvider(R.xml.location_scanning) {
 
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(Context
diff --git a/src/com/android/settings/media/MediaOutputIndicatorSlice.java b/src/com/android/settings/media/MediaOutputIndicatorSlice.java
index 75213c0..073682c 100644
--- a/src/com/android/settings/media/MediaOutputIndicatorSlice.java
+++ b/src/com/android/settings/media/MediaOutputIndicatorSlice.java
@@ -65,7 +65,9 @@
     @Override
     public Slice getSlice() {
         if (!isVisible()) {
-            return null;
+            return new ListBuilder(mContext, MEDIA_OUTPUT_INDICATOR_SLICE_URI, ListBuilder.INFINITY)
+                    .setIsError(true)
+                    .build();
         }
         final IconCompat icon = IconCompat.createWithResource(mContext,
                 com.android.internal.R.drawable.ic_settings_bluetooth);
diff --git a/src/com/android/settings/network/MobileNetworkListFragment.java b/src/com/android/settings/network/MobileNetworkListFragment.java
index 4690a28..5afa994 100644
--- a/src/com/android/settings/network/MobileNetworkListFragment.java
+++ b/src/com/android/settings/network/MobileNetworkListFragment.java
@@ -57,16 +57,7 @@
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.mobile_network_list;
-                    result.add(sir);
-                    return result;
-                }
+            new BaseSearchIndexProvider(R.xml.mobile_network_list) {
 
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
diff --git a/src/com/android/settings/nfc/PaymentSettings.java b/src/com/android/settings/nfc/PaymentSettings.java
index 5742d1a..62a3d54 100644
--- a/src/com/android/settings/nfc/PaymentSettings.java
+++ b/src/com/android/settings/nfc/PaymentSettings.java
@@ -74,11 +74,10 @@
     @Override
     public void onViewCreated(View view, Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);
-        ViewGroup contentRoot = (ViewGroup) getListView().getParent();
+
         View emptyView = getActivity().getLayoutInflater().inflate(
-                R.layout.nfc_payment_empty, contentRoot, false);
-        contentRoot.addView(emptyView);
-        setEmptyView(emptyView);
+                R.layout.nfc_payment_empty, null, false);
+        ((ViewGroup) view.findViewById(android.R.id.list_container)).addView(emptyView);
     }
 
     @Override
@@ -103,14 +102,7 @@
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.nfc_payment_settings;
-                    return Arrays.asList(sir);
-                }
+            new BaseSearchIndexProvider(R.xml.nfc_payment_settings) {
 
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
diff --git a/src/com/android/settings/notification/ConfigureNotificationSettings.java b/src/com/android/settings/notification/ConfigureNotificationSettings.java
index d21be16..7174b9d 100644
--- a/src/com/android/settings/notification/ConfigureNotificationSettings.java
+++ b/src/com/android/settings/notification/ConfigureNotificationSettings.java
@@ -218,14 +218,7 @@
      * For Search.
      */
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.configure_notification_settings;
-                    return Arrays.asList(sir);
-                }
+            new BaseSearchIndexProvider(R.xml.configure_notification_settings) {
 
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
diff --git a/src/com/android/settings/notification/NotificationAccessSettings.java b/src/com/android/settings/notification/NotificationAccessSettings.java
index 81edc5b..a8533fa 100644
--- a/src/com/android/settings/notification/NotificationAccessSettings.java
+++ b/src/com/android/settings/notification/NotificationAccessSettings.java
@@ -191,16 +191,5 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final List<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.notification_access_settings;
-                    result.add(sir);
-                    return result;
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.notification_access_settings);
 }
diff --git a/src/com/android/settings/notification/NotificationAssistantPicker.java b/src/com/android/settings/notification/NotificationAssistantPicker.java
index 868e0a9..41fc7c1 100644
--- a/src/com/android/settings/notification/NotificationAssistantPicker.java
+++ b/src/com/android/settings/notification/NotificationAssistantPicker.java
@@ -129,18 +129,7 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final List<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.notification_assistant_settings;
-                    result.add(sir);
-                    return result;
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.notification_assistant_settings);
 
     public static class CandidateNone extends CandidateInfo {
 
diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java
index eec0fb8..6e33711 100644
--- a/src/com/android/settings/notification/SoundSettings.java
+++ b/src/com/android/settings/notification/SoundSettings.java
@@ -286,14 +286,7 @@
     // === Indexing ===
 
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.sound_settings;
-                    return Arrays.asList(sir);
-                }
+            new BaseSearchIndexProvider(R.xml.sound_settings) {
 
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
diff --git a/src/com/android/settings/notification/ZenAccessSettings.java b/src/com/android/settings/notification/ZenAccessSettings.java
index fca8255..947bf1f 100644
--- a/src/com/android/settings/notification/ZenAccessSettings.java
+++ b/src/com/android/settings/notification/ZenAccessSettings.java
@@ -160,16 +160,5 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.zen_access_settings;
-                    result.add(sir);
-                    return result;
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.zen_access_settings);
 }
diff --git a/src/com/android/settings/notification/ZenModeAutomationSettings.java b/src/com/android/settings/notification/ZenModeAutomationSettings.java
index 0f87907..5498c3a 100644
--- a/src/com/android/settings/notification/ZenModeAutomationSettings.java
+++ b/src/com/android/settings/notification/ZenModeAutomationSettings.java
@@ -149,18 +149,7 @@
      * For Search.
      */
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.zen_mode_automation_settings;
-                    result.add(sir);
-                    return result;
-                }
+            new BaseSearchIndexProvider(R.xml.zen_mode_automation_settings) {
 
                 @Override
                 public List<String> getNonIndexableKeys(Context context) {
diff --git a/src/com/android/settings/notification/ZenModeBlockedEffectsSettings.java b/src/com/android/settings/notification/ZenModeBlockedEffectsSettings.java
index 9cb3f59..d361de8 100644
--- a/src/com/android/settings/notification/ZenModeBlockedEffectsSettings.java
+++ b/src/com/android/settings/notification/ZenModeBlockedEffectsSettings.java
@@ -94,17 +94,7 @@
      * For Search.
      */
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.zen_mode_block_settings;
-                    result.add(sir);
-                    return result;
-                }
+            new BaseSearchIndexProvider(R.xml.zen_mode_block_settings) {
 
             @Override
             public List<AbstractPreferenceController> createPreferenceControllers(Context context) {
diff --git a/src/com/android/settings/notification/ZenModeBypassingAppsSettings.java b/src/com/android/settings/notification/ZenModeBypassingAppsSettings.java
index 455de42..2c0c84a 100644
--- a/src/com/android/settings/notification/ZenModeBypassingAppsSettings.java
+++ b/src/com/android/settings/notification/ZenModeBypassingAppsSettings.java
@@ -76,18 +76,7 @@
      * For Search.
      */
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.zen_mode_bypassing_apps;
-                    result.add(sir);
-                    return result;
-                }
+            new BaseSearchIndexProvider(R.xml.zen_mode_bypassing_apps) {
 
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
diff --git a/src/com/android/settings/notification/ZenModeCallsSettings.java b/src/com/android/settings/notification/ZenModeCallsSettings.java
index a1d0ec7..0e979e5 100644
--- a/src/com/android/settings/notification/ZenModeCallsSettings.java
+++ b/src/com/android/settings/notification/ZenModeCallsSettings.java
@@ -68,18 +68,7 @@
      * For Search.
      */
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.zen_mode_calls_settings;
-                    result.add(sir);
-                    return result;
-                }
+            new BaseSearchIndexProvider(R.xml.zen_mode_calls_settings) {
 
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
diff --git a/src/com/android/settings/notification/ZenModeMessagesSettings.java b/src/com/android/settings/notification/ZenModeMessagesSettings.java
index a03d088..a514420 100644
--- a/src/com/android/settings/notification/ZenModeMessagesSettings.java
+++ b/src/com/android/settings/notification/ZenModeMessagesSettings.java
@@ -65,18 +65,7 @@
      * For Search.
      */
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.zen_mode_messages_settings;
-                    result.add(sir);
-                    return result;
-                }
+            new BaseSearchIndexProvider(R.xml.zen_mode_messages_settings) {
 
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
diff --git a/src/com/android/settings/notification/ZenModeRestrictNotificationsSettings.java b/src/com/android/settings/notification/ZenModeRestrictNotificationsSettings.java
index 90d97f0..ea7e213 100644
--- a/src/com/android/settings/notification/ZenModeRestrictNotificationsSettings.java
+++ b/src/com/android/settings/notification/ZenModeRestrictNotificationsSettings.java
@@ -78,17 +78,7 @@
      * For Search.
      */
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.zen_mode_restrict_notifications_settings;
-                    result.add(sir);
-                    return result;
-                }
+            new BaseSearchIndexProvider(R.xml.zen_mode_restrict_notifications_settings) {
 
             @Override
             public List<AbstractPreferenceController> createPreferenceControllers(Context context) {
diff --git a/src/com/android/settings/notification/ZenModeSettings.java b/src/com/android/settings/notification/ZenModeSettings.java
index f35c649..d4e5e3c 100644
--- a/src/com/android/settings/notification/ZenModeSettings.java
+++ b/src/com/android/settings/notification/ZenModeSettings.java
@@ -314,15 +314,7 @@
      * For Search.
      */
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.zen_mode_settings;
-                    return Arrays.asList(sir);
-                }
+            new BaseSearchIndexProvider(R.xml.zen_mode_settings) {
 
                 @Override
                 public List<String> getNonIndexableKeys(Context context) {
diff --git a/src/com/android/settings/notification/ZenModeSoundVibrationSettings.java b/src/com/android/settings/notification/ZenModeSoundVibrationSettings.java
index 9f30759..0b96867 100644
--- a/src/com/android/settings/notification/ZenModeSoundVibrationSettings.java
+++ b/src/com/android/settings/notification/ZenModeSoundVibrationSettings.java
@@ -71,18 +71,7 @@
      * For Search.
      */
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.zen_mode_sound_vibration_settings;
-                    result.add(sir);
-                    return result;
-                }
+            new BaseSearchIndexProvider(R.xml.zen_mode_sound_vibration_settings) {
 
                 @Override
                 public List<String> getNonIndexableKeys(Context context) {
diff --git a/src/com/android/settings/panel/PanelFragment.java b/src/com/android/settings/panel/PanelFragment.java
index 54d9e8d..006ed00 100644
--- a/src/com/android/settings/panel/PanelFragment.java
+++ b/src/com/android/settings/panel/PanelFragment.java
@@ -53,9 +53,10 @@
 
 import com.google.android.setupdesign.DividerItemDecoration;
 
-import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Map;
 
 public class PanelFragment extends Fragment {
 
@@ -86,7 +87,7 @@
     private MetricsFeatureProvider mMetricsProvider;
     private String mPanelClosedKey;
 
-    private final List<LiveData<Slice>> mSliceLiveData = new ArrayList<>();
+    private final Map<Uri, LiveData<Slice>> mSliceLiveData = new LinkedHashMap<>();
 
     @VisibleForTesting
     PanelSlicesLoaderCountdownLatch mPanelSlicesLoaderCountdownLatch;
@@ -97,14 +98,14 @@
 
     private final ViewTreeObserver.OnGlobalLayoutListener mOnGlobalLayoutListener =
             new ViewTreeObserver.OnGlobalLayoutListener() {
-        @Override
-        public void onGlobalLayout() {
-            animateIn();
-            if (mPanelSlices != null) {
-                mPanelSlices.getViewTreeObserver().removeOnGlobalLayoutListener(this);
-            }
-        }
-    };
+                @Override
+                public void onGlobalLayout() {
+                    animateIn();
+                    if (mPanelSlices != null) {
+                        mPanelSlices.getViewTreeObserver().removeOnGlobalLayoutListener(this);
+                    }
+                }
+            };
 
     private PanelSlicesAdapter mAdapter;
 
@@ -121,9 +122,9 @@
      * Animate the old panel out from the screen, then update the panel with new content once the
      * animation is done.
      * <p>
-     *     Takes the entire panel and animates out from behind the navigation bar.
+     * Takes the entire panel and animates out from behind the navigation bar.
      * <p>
-     *     Call createPanelContent() once animation end.
+     * Call createPanelContent() once animation end.
      */
     void updatePanelWithAnimation() {
         final View panelContent = mLayoutView.findViewById(R.id.panel_container);
@@ -210,10 +211,14 @@
         mPanelSlicesLoaderCountdownLatch = new PanelSlicesLoaderCountdownLatch(sliceUris.size());
 
         for (Uri uri : sliceUris) {
-            final LiveData<Slice> sliceLiveData = SliceLiveData.fromUri(getActivity(), uri);
+            final LiveData<Slice> sliceLiveData = SliceLiveData.fromUri(getActivity(), uri,
+                    (int type, Throwable source)-> {
+                            removeSliceLiveData(uri);
+                            mPanelSlicesLoaderCountdownLatch.markSliceLoaded(uri);
+                    });
 
             // Add slice first to make it in order.  Will remove it later if there's an error.
-            mSliceLiveData.add(sliceLiveData);
+            mSliceLiveData.put(uri, sliceLiveData);
 
             sliceLiveData.observe(getViewLifecycleOwner(), slice -> {
                 // If the Slice has already loaded, do nothing.
@@ -238,12 +243,7 @@
                  */
                 final SliceMetadata metadata = SliceMetadata.from(getActivity(), slice);
                 if (slice == null || metadata.isErrorSlice()) {
-                    final List<String> whiteList = Arrays.asList(
-                            getResources().getStringArray(
-                                    R.array.config_panel_keep_observe_uri));
-                    if (!whiteList.contains(uri.toString())) {
-                        mSliceLiveData.remove(sliceLiveData);
-                    }
+                    removeSliceLiveData(uri);
                     mPanelSlicesLoaderCountdownLatch.markSliceLoaded(uri);
                 } else if (metadata.getLoadingState() == SliceMetadata.LOADED_ALL) {
                     mPanelSlicesLoaderCountdownLatch.markSliceLoaded(uri);
@@ -260,12 +260,21 @@
         }
     }
 
+    private void removeSliceLiveData(Uri uri) {
+        final List<String> whiteList = Arrays.asList(
+                getResources().getStringArray(
+                        R.array.config_panel_keep_observe_uri));
+        if (!whiteList.contains(uri.toString())) {
+            mSliceLiveData.remove(uri);
+        }
+    }
+
     /**
      * When all of the Slices have loaded for the first time, then we can setup the
      * {@link RecyclerView}.
      * <p>
-     *     When the Recyclerview has been laid out, we can begin the animation with the
-     *     {@link mOnGlobalLayoutListener}, which calls {@link #animateIn()}.
+     * When the Recyclerview has been laid out, we can begin the animation with the
+     * {@link mOnGlobalLayoutListener}, which calls {@link #animateIn()}.
      */
     private void loadPanelWhenReady() {
         if (mPanelSlicesLoaderCountdownLatch.isPanelReadyToLoad()) {
@@ -276,19 +285,21 @@
                     .addOnGlobalLayoutListener(mOnGlobalLayoutListener);
             mPanelSlices.setVisibility(View.VISIBLE);
 
-            DividerItemDecoration itemDecoration = new DividerItemDecoration(getActivity());
+            final DividerItemDecoration itemDecoration = new DividerItemDecoration(getActivity());
             itemDecoration
                     .setDividerCondition(DividerItemDecoration.DIVIDER_CONDITION_BOTH);
-            mPanelSlices.addItemDecoration(itemDecoration);
+            if (mPanelSlices.getItemDecorationCount() == 0) {
+                mPanelSlices.addItemDecoration(itemDecoration);
+            }
         }
     }
 
     /**
      * Animate a Panel onto the screen.
      * <p>
-     *     Takes the entire panel and animates in from behind the navigation bar.
+     * Takes the entire panel and animates in from behind the navigation bar.
      * <p>
-     *     Relies on the Panel being having a fixed height to begin the animation.
+     * Relies on the Panel being having a fixed height to begin the animation.
      */
     private void animateIn() {
         final View panelContent = mLayoutView.findViewById(R.id.panel_container);
@@ -319,7 +330,7 @@
         animatorSet.setInterpolator(new DecelerateInterpolator());
         animatorSet.playTogether(
                 ObjectAnimator.ofFloat(sheet, View.TRANSLATION_Y, startY, endY),
-                ObjectAnimator.ofFloat(sheet, View.ALPHA, startAlpha,endAlpha));
+                ObjectAnimator.ofFloat(sheet, View.ALPHA, startAlpha, endAlpha));
         return animatorSet;
     }
 
diff --git a/src/com/android/settings/panel/PanelSlicesAdapter.java b/src/com/android/settings/panel/PanelSlicesAdapter.java
index 21e1b3a..60c434d 100644
--- a/src/com/android/settings/panel/PanelSlicesAdapter.java
+++ b/src/com/android/settings/panel/PanelSlicesAdapter.java
@@ -20,6 +20,7 @@
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
+import android.net.Uri;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -38,6 +39,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * RecyclerView adapter for Slices in Settings Panels.
@@ -56,9 +58,9 @@
     private final PanelFragment mPanelFragment;
 
     public PanelSlicesAdapter(
-            PanelFragment fragment, List<LiveData<Slice>> sliceLiveData, int metricsCategory) {
+            PanelFragment fragment, Map<Uri, LiveData<Slice>> sliceLiveData, int metricsCategory) {
         mPanelFragment = fragment;
-        mSliceLiveData = new ArrayList<>(sliceLiveData);
+        mSliceLiveData = new ArrayList<>(sliceLiveData.values());
         mMetricsCategory = metricsCategory;
     }
 
diff --git a/src/com/android/settings/print/PrintSettingsFragment.java b/src/com/android/settings/print/PrintSettingsFragment.java
index 09a0a27..b262ebe 100644
--- a/src/com/android/settings/print/PrintSettingsFragment.java
+++ b/src/com/android/settings/print/PrintSettingsFragment.java
@@ -492,16 +492,5 @@
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    List<SearchIndexableResource> indexables = new ArrayList<>();
-                    SearchIndexableResource indexable = new SearchIndexableResource(context);
-                    indexable.xmlResId = R.xml.print_settings;
-                    indexables.add(indexable);
-                    return indexables;
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.print_settings);
 }
diff --git a/src/com/android/settings/search/BaseSearchIndexProvider.java b/src/com/android/settings/search/BaseSearchIndexProvider.java
index 80775bf..64e6a9c 100644
--- a/src/com/android/settings/search/BaseSearchIndexProvider.java
+++ b/src/com/android/settings/search/BaseSearchIndexProvider.java
@@ -41,6 +41,7 @@
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -49,12 +50,22 @@
 public class BaseSearchIndexProvider implements Indexable.SearchIndexProvider {
 
     private static final String TAG = "BaseSearchIndex";
+    private int mXmlRes = 0;
 
     public BaseSearchIndexProvider() {
     }
 
+    public BaseSearchIndexProvider(int xmlRes) {
+        mXmlRes = xmlRes;
+    }
+
     @Override
     public List<SearchIndexableResource> getXmlResourcesToIndex(Context context, boolean enabled) {
+        if (mXmlRes != 0) {
+            final SearchIndexableResource sir = new SearchIndexableResource(context);
+            sir.xmlResId = mXmlRes;
+            return Arrays.asList(sir);
+        }
         return null;
     }
 
diff --git a/src/com/android/settings/security/LockscreenDashboardFragment.java b/src/com/android/settings/security/LockscreenDashboardFragment.java
index 3472d48..f502ee6 100644
--- a/src/com/android/settings/security/LockscreenDashboardFragment.java
+++ b/src/com/android/settings/security/LockscreenDashboardFragment.java
@@ -131,14 +131,7 @@
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.security_lockscreen_settings;
-                    return Arrays.asList(sir);
-                }
+            new BaseSearchIndexProvider(R.xml.security_lockscreen_settings) {
 
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
diff --git a/src/com/android/settings/security/SecuritySettings.java b/src/com/android/settings/security/SecuritySettings.java
index 7c3391c..021d203 100644
--- a/src/com/android/settings/security/SecuritySettings.java
+++ b/src/com/android/settings/security/SecuritySettings.java
@@ -139,18 +139,7 @@
      * For Search. Please keep it in sync when updating "createPreferenceHierarchy()"
      */
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final List<SearchIndexableResource> index = new ArrayList<>();
-                    // Append the rest of the settings
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.security_dashboard_settings;
-                    index.add(sir);
-                    return index;
-                }
+            new BaseSearchIndexProvider(R.xml.security_dashboard_settings) {
 
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(Context
diff --git a/src/com/android/settings/security/screenlock/ScreenLockSettings.java b/src/com/android/settings/security/screenlock/ScreenLockSettings.java
index 3fa9dd8..dab4836 100644
--- a/src/com/android/settings/security/screenlock/ScreenLockSettings.java
+++ b/src/com/android/settings/security/screenlock/ScreenLockSettings.java
@@ -87,17 +87,7 @@
 
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.screen_lock_settings;
-                    result.add(sir);
-                    return result;
-                }
+            new BaseSearchIndexProvider(R.xml.screen_lock_settings) {
 
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
diff --git a/src/com/android/settings/security/trustagent/TrustAgentSettings.java b/src/com/android/settings/security/trustagent/TrustAgentSettings.java
index 36a3867..4f652b2 100644
--- a/src/com/android/settings/security/trustagent/TrustAgentSettings.java
+++ b/src/com/android/settings/security/trustagent/TrustAgentSettings.java
@@ -54,15 +54,5 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final List<SearchIndexableResource> result = new ArrayList<>();
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.trust_agent_settings;
-                    result.add(sir);
-                    return result;
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.trust_agent_settings);
 }
diff --git a/src/com/android/settings/system/ResetDashboardFragment.java b/src/com/android/settings/system/ResetDashboardFragment.java
index 5243d6a..b0611fc 100644
--- a/src/com/android/settings/system/ResetDashboardFragment.java
+++ b/src/com/android/settings/system/ResetDashboardFragment.java
@@ -68,17 +68,7 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.reset_dashboard_fragment;
-                    result.add(sir);
-                    return result;
-                }
+            new BaseSearchIndexProvider(R.xml.reset_dashboard_fragment) {
 
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
diff --git a/src/com/android/settings/tts/TextToSpeechSettings.java b/src/com/android/settings/tts/TextToSpeechSettings.java
index b4ff0f4..bcfad92 100644
--- a/src/com/android/settings/tts/TextToSpeechSettings.java
+++ b/src/com/android/settings/tts/TextToSpeechSettings.java
@@ -796,14 +796,6 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.tts_settings;
-                    return Arrays.asList(sir);
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.tts_settings);
 
 }
diff --git a/src/com/android/settings/tts/TtsEnginePreferenceFragment.java b/src/com/android/settings/tts/TtsEnginePreferenceFragment.java
index fb8072b..3308f1e 100644
--- a/src/com/android/settings/tts/TtsEnginePreferenceFragment.java
+++ b/src/com/android/settings/tts/TtsEnginePreferenceFragment.java
@@ -222,13 +222,5 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.tts_engine_picker;
-                    return Arrays.asList(sir);
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.tts_engine_picker);
 }
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index bcf0b29..c98f174 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -1222,7 +1222,7 @@
             (activity, summaryLoader) -> new SummaryProvider(activity, summaryLoader);
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
+            new BaseSearchIndexProvider(R.xml.user_settings) {
 
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
@@ -1231,17 +1231,6 @@
                 }
 
                 @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final List<SearchIndexableResource> index = new ArrayList<>();
-                    // Append the rest of the settings
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.user_settings;
-                    index.add(sir);
-                    return index;
-                }
-
-                @Override
                 public List<String> getNonIndexableKeysFromXml(Context context, int xmlResId,
                         boolean suppressAllPage) {
                     final List<String> niks = super.getNonIndexableKeysFromXml(context, xmlResId,
diff --git a/src/com/android/settings/wfd/WifiDisplaySettings.java b/src/com/android/settings/wfd/WifiDisplaySettings.java
index 9aef21d..d7385dc 100755
--- a/src/com/android/settings/wfd/WifiDisplaySettings.java
+++ b/src/com/android/settings/wfd/WifiDisplaySettings.java
@@ -836,16 +836,5 @@
             = (activity, summaryLoader) -> new SummaryProvider(activity, summaryLoader);
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.wifi_display_settings;
-                    result.add(sir);
-                    return result;
-                }
-            };
+            new BaseSearchIndexProvider(R.xml.wifi_display_settings);
 }
diff --git a/src/com/android/settings/wifi/ConfigureWifiSettings.java b/src/com/android/settings/wifi/ConfigureWifiSettings.java
index 613a2cb..6dd68c7 100644
--- a/src/com/android/settings/wifi/ConfigureWifiSettings.java
+++ b/src/com/android/settings/wifi/ConfigureWifiSettings.java
@@ -109,14 +109,7 @@
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.wifi_configure_settings;
-                    return Arrays.asList(sir);
-                }
+            new BaseSearchIndexProvider(R.xml.wifi_configure_settings) {
 
                 @Override
                 public List<String> getNonIndexableKeys(Context context) {
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSettings.java b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
index 3636eb8..6b11cba 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSettings.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
@@ -237,14 +237,7 @@
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.wifi_tether_settings;
-                    return Arrays.asList(sir);
-                }
+            new BaseSearchIndexProvider(R.xml.wifi_tether_settings) {
 
                 @Override
                 public List<String> getNonIndexableKeys(Context context) {
diff --git a/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorSliceTest.java b/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorSliceTest.java
index ca9c6b9..3b5a349 100644
--- a/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorSliceTest.java
+++ b/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorSliceTest.java
@@ -17,6 +17,8 @@
 
 package com.android.settings.media;
 
+import static android.app.slice.Slice.HINT_ERROR;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.spy;
@@ -110,11 +112,13 @@
     }
 
     @Test
-    public void getSlice_noConnectedDevice_returnNull() {
+    public void getSlice_noConnectedDevice_returnErrorSlice() {
         mDevicesList.clear();
         when(mA2dpProfile.getConnectedDevices()).thenReturn(mDevicesList);
 
-        assertThat(mMediaOutputIndicatorSlice.getSlice()).isNull();
+        final Slice mediaSlice = mMediaOutputIndicatorSlice.getSlice();
+        final SliceMetadata metadata = SliceMetadata.from(mContext, mediaSlice);
+        assertThat(metadata.isErrorSlice()).isTrue();
     }
 
     @Test
@@ -129,6 +133,7 @@
         assertThat(metadata.getTitle()).isEqualTo(mContext.getText(R.string.media_output_title));
         assertThat(metadata.getSubtitle()).isEqualTo(mContext.getText(
                 R.string.media_output_default_summary));
+        assertThat(metadata.isErrorSlice()).isFalse();
     }
 
     @Test
@@ -141,6 +146,7 @@
         final SliceMetadata metadata = SliceMetadata.from(mContext, mediaSlice);
         assertThat(metadata.getTitle()).isEqualTo(mContext.getText(R.string.media_output_title));
         assertThat(metadata.getSubtitle()).isEqualTo(TEST_A2DP_DEVICE_NAME);
+        assertThat(metadata.isErrorSlice()).isFalse();
     }
 
     @Test
@@ -154,32 +160,39 @@
         final SliceMetadata metadata = SliceMetadata.from(mContext, mediaSlice);
         assertThat(metadata.getTitle()).isEqualTo(mContext.getText(R.string.media_output_title));
         assertThat(metadata.getSubtitle()).isEqualTo(TEST_HAP_DEVICE_NAME);
+        assertThat(metadata.isErrorSlice()).isFalse();
     }
 
     @Test
-    public void getSlice_audioModeIsInCommunication_returnNull() {
+    public void getSlice_audioModeIsInCommunication_returnErrorSlice() {
         mDevicesList.add(mA2dpDevice);
         when(mA2dpProfile.getConnectedDevices()).thenReturn(mDevicesList);
         mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
 
-        assertThat(mMediaOutputIndicatorSlice.getSlice()).isNull();
+        final Slice mediaSlice = mMediaOutputIndicatorSlice.getSlice();
+        final SliceMetadata metadata = SliceMetadata.from(mContext, mediaSlice);
+        assertThat(metadata.isErrorSlice()).isTrue();
     }
 
     @Test
-    public void getSlice_audioModeIsRingtone_returnNull() {
+    public void getSlice_audioModeIsRingtone_returnErrorSlice() {
         mDevicesList.add(mA2dpDevice);
         when(mA2dpProfile.getConnectedDevices()).thenReturn(mDevicesList);
         mAudioManager.setMode(AudioManager.MODE_RINGTONE);
 
-        assertThat(mMediaOutputIndicatorSlice.getSlice()).isNull();
+        final Slice mediaSlice = mMediaOutputIndicatorSlice.getSlice();
+        final SliceMetadata metadata = SliceMetadata.from(mContext, mediaSlice);
+        assertThat(metadata.isErrorSlice()).isTrue();
     }
 
     @Test
-    public void getSlice_audioModeIsInCall_returnNull() {
+    public void getSlice_audioModeIsInCall_returnErrorSlice() {
         mDevicesList.add(mA2dpDevice);
         when(mA2dpProfile.getConnectedDevices()).thenReturn(mDevicesList);
         mAudioManager.setMode(AudioManager.MODE_IN_CALL);
 
-        assertThat(mMediaOutputIndicatorSlice.getSlice()).isNull();
+        final Slice mediaSlice = mMediaOutputIndicatorSlice.getSlice();
+        final SliceMetadata metadata = SliceMetadata.from(mContext, mediaSlice);
+        assertThat(metadata.isErrorSlice()).isTrue();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java b/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java
index 922e629..89288f6 100644
--- a/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java
+++ b/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java
@@ -49,7 +49,9 @@
 import org.robolectric.android.controller.ActivityController;
 
 import java.util.ArrayList;
+import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Map;
 
 @RunWith(RobolectricTestRunner.class)
 public class PanelSlicesAdapterTest {
@@ -61,7 +63,7 @@
     private PanelFeatureProvider mPanelFeatureProvider;
     private FakeFeatureFactory mFakeFeatureFactory;
     private FakePanelContent mFakePanelContent;
-    private List<LiveData<Slice>> mData = new ArrayList<>();
+    private Map<Uri, LiveData<Slice>> mData = new LinkedHashMap<>();
 
     @Before
     public void setUp() {
@@ -93,7 +95,7 @@
         doReturn(uri).when(slice).getUri();
         final LiveData<Slice> liveData = mock(LiveData.class);
         when(liveData.getValue()).thenReturn(slice);
-        mData.add(liveData);
+        mData.put(uri, liveData);
     }
 
     @Test
@@ -111,7 +113,7 @@
     @Test
     public void sizeOfAdapter_shouldNotExceedMaxNum() {
         for (int i = 0; i < MAX_NUM_OF_SLICES + 2; i++) {
-            addTestLiveData(DATA_URI);
+            addTestLiveData(Uri.parse("uri" + i));
         }
 
         assertThat(mData.size()).isEqualTo(MAX_NUM_OF_SLICES + 2);
diff --git a/tests/robotests/src/com/android/settings/security/OwnerInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/OwnerInfoPreferenceControllerTest.java
index c472922..0130aa1 100644
--- a/tests/robotests/src/com/android/settings/security/OwnerInfoPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/OwnerInfoPreferenceControllerTest.java
@@ -187,8 +187,6 @@
 
         preference.performClick();
 
-        // Called once in setTargetFragment, and a second time to display the fragment.
-        verify(mFragment, times(2)).getFragmentManager();
         verify(mFragment.getFragmentManager().beginTransaction())
                 .add(any(OwnerInfoSettings.class), anyString());
     }
diff --git a/tests/robotests/src/com/android/settings/testutils/FakeIndexProvider.java b/tests/robotests/src/com/android/settings/testutils/FakeIndexProvider.java
index dce039a..a8a65e5 100644
--- a/tests/robotests/src/com/android/settings/testutils/FakeIndexProvider.java
+++ b/tests/robotests/src/com/android/settings/testutils/FakeIndexProvider.java
@@ -18,13 +18,11 @@
 package com.android.settings.testutils;
 
 import android.content.Context;
-import android.provider.SearchIndexableResource;
 
 import com.android.settings.R;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.search.Indexable;
 
-import java.util.ArrayList;
 import java.util.List;
 
 public class FakeIndexProvider implements Indexable {
@@ -32,16 +30,7 @@
     public static final String KEY = "TestKey";
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    List<SearchIndexableResource> resources = new ArrayList<>();
-                    SearchIndexableResource res = new SearchIndexableResource(context);
-                    res.xmlResId = R.xml.location_settings;
-                    resources.add(res);
-                    return resources;
-                }
+            new BaseSearchIndexProvider(R.xml.location_settings) {
 
                 @Override
                 public List<String> getNonIndexableKeys(Context context) {
